Misc Requirements Traceability Matrix
This template follows INL template TEM-214, "IT System Requirements Traceability Matrix."
This document serves as an addendum to Framework Requirements Traceability Matrix and captures information for RTM specific to the Misc module.
Introduction
Minimum System Requirements
In general, the following is required for MOOSE-based development:
GCC/Clang C++17 compliant compiler (GCC @ 7.5.0, Clang @ 10.0.1 or greater)
Note: Intel compilers are not supported.
Memory: 8 GBs of RAM for optimized compilation (16 GBs for debug compilation), 2 GB per core execution
Processor: 64-bit x86 or ARM64 (specifically, Apple Silicon)
Disk: 30GB
A POSIX compliant Unix-like operating system, including the two most recent versions of MacOS and most current versions of Linux.
Git version control system
Python @ 3.7 or greater
System Purpose
The purpose of the MOOSE {{module}} module is to provide a set of models that support a variety of simulations performed using other MOOSE modules or MOOSE-based applications.
System Scope
The MOOSE Misc module is designed only to provide code modules that support the solution of physics models that are primarily defined by other MOOSE modules and MOOSE-based applications.
The Misc module provides several specializations of MOOSE classes that are used to support calculations performed in a variety of physics calculations. These include Kernel
, AuxKernel
, Material
and Postprocessor
classes that computing terms in diffusion equations, compute density, internal volume, and perform other similar functions.
Assumptions and Dependencies
The Misc module is developed using MOOSE and can itself be based on various MOOSE modules, as such the RTM for the Misc module is dependent upon the files listed at the beginning of this document.
Pre-test Instructions/Environment/Setup
Ideally all testing should be performed on a clean test machine following one of the supported configurations setup by the test system engineer. Testing may be performed on local workstations and cluster systems containing supported operating systems.
The repository should be clean prior to building and testing. When using "git" this can be done by doing a force clean in the main repository and each one of the submodules:
git clean -xfd
git submodule foreach 'git clean -xfd'
All tests must pass in accordance with the type of test being performed. This list can be found in the Software Test Plan.
System Requirements Traceability
Functional Requirements
- misc: Coupled Directional Mesh Height Interpolation
- 9.1.1The system shall linearly scale a variable based on the local position relative to the maximum and minimum mesh coordinate in a user-specified direction.
Specification(s): test
Design: CoupledDirectionalMeshHeightInterpolation
Issue(s): #1927
Collection(s): FUNCTIONAL
Type(s): Exodiff
- misc: Dynamic Loading
- 9.2.1The system shall be able to dynamically load a multiapp from a dynamic library.
Specification(s): dynamic_load
Design: MultiApp System
Issue(s): #12266
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 9.2.2The system shall be able to dynamically load a multiapp using the library name, to select a compiling optimization level for example.
Specification(s): dynamic_load_w_name
Design: MultiApp System
Issue(s): #12266
Collection(s): FUNCTIONAL
Type(s): Exodiff
Prerequisite(s): 9.2.1
- 9.2.3The system shall error out if the type of application to dynamically load is not included in the dynamic library.
Specification(s): dynamic_load_error_check
Design: MultiApp System
Issue(s): #12266
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 9.2.4Any MOOSE application shall be able to dynamically load a module or application and use objects registered therein, with the library name inferred from the module or application name.
Specification(s): dynamic_object_loading
Design: DynamicObjectRegistrationAction
Issue(s): #4712
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 9.2.5Any MOOSE application shall be able to dynamically load a module or application and properly register the provided objects.
Specification(s): dynamic_object_loading2
Design: DynamicObjectRegistrationAction
Issue(s): #24299
Collection(s): FUNCTIONAL
Type(s): RunApp
- 9.2.6Any MOOSE application shall be able to dynamically load a module or application and use objects registered therein, with the library specified.
Specification(s): dynamic_object_loading_w_name
Design: DynamicObjectRegistrationAction
Issue(s): #10911
Collection(s): FUNCTIONAL
Type(s): Exodiff
Prerequisite(s): 9.2.10
- 9.2.7Any MOOSE application shall be able to dynamically load a module or application and properly register module or application specific syntax, with the library name inferred from the module or application name.
Specification(s): dynamic_object_loading_syntax
Design: DynamicObjectRegistrationAction
Issue(s): #4712
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 9.2.8Any MOOSE application shall be able to dynamically load a module or application and properly register module or application specific syntax, with the library specified.
Specification(s): dynamic_object_loading_syntax_w_name
Design: DynamicObjectRegistrationAction
Issue(s): #10911
Collection(s): FUNCTIONAL
Type(s): Exodiff
Prerequisite(s): 9.2.7
- 9.2.9Any MOOSE application shall be able to dynamically load a module or application and register only select objects form the module or application.
Specification(s): dynamic_object_restrict
Design: DynamicObjectRegistrationAction
Issue(s): #4712
Collection(s): FUNCTIONAL
Type(s): Exodiff
Prerequisite(s): 9.2.4
- 9.2.10Any MOOSE application shall be able to dynamically load a module or application and throw an error if an object is used that is not among selected objects for registration.
Specification(s): dynamic_object_restrict_bad
Design: DynamicObjectRegistrationAction
Issue(s): #4712
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
Prerequisite(s): 9.2.9
- 9.2.11Any MOOSE application shall be able to dynamically load a module or application and throw an error if an object is used that is not provided by the module or application.
Specification(s): dynamic_object_loading_wrong_app
Design: DynamicObjectRegistrationAction
Issue(s): #4712
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 9.2.12The system shall throw an error when trying to dynamically load a module or application that does not exist.
Specification(s): dynamic_object_loading_bogus_app
Design: DynamicObjectRegistrationAction
Issue(s): #4712
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
Prerequisite(s): 9.2.11
- misc: Fracture Flow
- 9.3.1The system shall be able to simulate convective flow through lower-dimensional fractures embedded in a higher-dimensional solid
Specification(s): test
Design: Misc Module
Issue(s): #13318
Collection(s): FUNCTIONAL
Type(s): Exodiff
- misc: Kernels
- 9.4.1Thermo diffusion shall reproduce an analytical solution
Specification(s): thermo_diffusion
Design: ThermoDiffusion
Issue(s): #3392
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 9.4.2AD thermo diffusion shall reproduce an analytical solution
Specification(s): ad_thermo_diffusion
Design: ADThermoDiffusion
Issue(s): #12633
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 9.4.3AD thermo diffusion shall work with material properties and the Jacobian shall be beautiful
Specification(s): ad_thermo_diffusion_jacobian
Design: ADThermoDiffusion
Issue(s): #5658
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester