MALAMUTE System Requirements Specification
This template follows INL template TEM-135, "IT System Requirements Specification".
This document serves as an addendum to Framework System Requirements Specification and captures information for SRS specific to the MALAMUTE application.
Introduction
System Purpose
The purpose of MALAMUTE is to serve as a simulation platform and library for a variety of advanced manufacturing (AM) processes and to connect the microscale characteristics and evolution of materials with their engineering-scale, post-manufacture performance. MALAMUTE currently simulates several main advanced manufacturing (AM) processes, including: electric field-assisted sintering (EFAS) (also known as spark plasma sintering (SPS)), directed energy deposition, and surface melting. MALAMUTE's main goal is to bring together the combined multiphysics capabilities of the MOOSE ecosystem to provide an open platform for future research in novel materials development and AM technologies.
System Scope
MALAMUTE performs simulations related to AM processes. These models often include highly coupled systems of equations related to heat conduction, electromagnetics, Navier Stokes, mechanics, and surface morphology, amongst others. Material models are also included to support these simulations (such as graphite and stainless steel), and they themselves are often dependent on simulation variables: temperature, electromagnetic field strength, stress/strain, etc. While many models within MALAMUTE are performed at the "engineering scale" (i.e., at the scale of centimeters and meters), the MultiApp System can be leveraged to allow for multiscale coupling to the micro- and nano-scale of a given experiment. This allows for not only experimental process design and evaluation at the operator level but also evaluation of a process on the formation of a part and the experiment's end result.
In addition to modeling full experiments (like in EFAS), MALAMUTE also contains building blocks for use in larger manufacturing models or as individual studies, such as directed energy deposition and laser welding (with surface deformation and melting). Mechanics models for pressing procedures are also under development.
System Overview
System Context
The MALAMUTE application is command-line driven. Like MOOSE, this is typical for a high-performance software that is designed to run across several nodes of a cluster system. As such, all usage of the software is through any standard terminal program generally available on all supported operating systems. Similarly, for the purpose of interacting through the software, there is only a single user, "the user", which interacts with the software through the command-line. MALAMUTE does not maintain any back-end database or interact with any system daemons. It is an executable, which may be launched from the command line and writes out various result files as it runs.
Figure 1: Usage of MALAMUTE and other MOOSE-based applications.
System Functions
Since MALAMUTE is a command-line driven application, all functionality provided in the software is operated through the use of standard UNIX command line flags and the extendable MOOSE input file. MALAMUTE is completely extendable so individual design pages should be consulted for specific behaviors of each user-defined object.
User Characteristics
MALAMUTE has three main classes of users:
MALAMUTE Developers: These are the core developers of MALAMUTE. They are responsible for designing, implementing, and maintaining the software, while following and enforcing its software development standards.
Developers: These are scientists or engineers that modify or add capabilities to MALAMUTE for their own purposes, which may include research or extending its capabilities. They will typically have a background in structural or mechanical engineering, and in modeling and simulation techniques, but may have more limited background in code development using the C++ language. In many cases, these developers will be encouraged to contribute code back to MALAMUTE.
Analysts: These are users that run MALAMUTE to run simulations, but do not develop code. The primary interface of these users with MALAMUTE is the input files that define their simulations. These users may interact with developers of the system requesting new features and reporting bugs found.
Assumptions and Dependencies
The MALAMUTE application is developed using MOOSE and is based on various modules, as such the SRS for MALAMUTE is dependent upon the files listed at the beginning of this document. Any further assumptions or dependencies are outlined in the remainder of this section.
MALAMUTE has no constraints on hardware and software beyond those of the MOOSE framework and modules listed in their respective SRS documents, which are accessible through the links at the beginning of this document.
MALAMUTE provides access to a number of code objects that perform computations such as material behavior and boundary conditions. These objects each make their own physics-based assumptions, such as the units of the inputs and outputs. Those assumptions are described in the documentation for those individual objects.
References
Definitions and Acronyms
This section defines, or provides the definition of, all terms and acronyms required to properly understand this specification.
Definitions
Verification: (1) The process of: evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. (2) Formal proof of program correctness (e.g., requirements, design, implementation reviews, system tests) (24765:2010(E), 2010).
Acronyms
Acronym | Description |
---|---|
AM | advanced manufacturing |
EFAS | electric field-assisted sintering |
INL | Idaho National Laboratory |
MOOSE | Multiphysics Object Oriented Simulation Environment |
NQA-1 | Nuclear Quality Assurance Level 1 |
POSIX | Portable Operating System Interface |
SPS | spark plasma sintering |
SRS | Software Requirement Specification |
System Requirements
In general, the following is required for MOOSE-based development:
A POSIX compliant Unix-like operating system. This includes any modern Linux-based operating system (e.g., Ubuntu, Fedora, Rocky, etc.), or a Macintosh machine running either of the last two MacOS releases.
Hardware | Information |
---|---|
CPU Architecture | x86_64, ARM (Apple Silicon) |
Memory | 8 GB (16 GBs for debug compilation) |
Disk Space | 30GB |
Libraries | Version / Information |
---|---|
GCC | 9.0.0 - 12.2.1 |
LLVM/Clang | 10.0.1 - 19 |
Intel (ICC/ICX) | Not supported at this time |
Python | 3.10 - 3.13 |
Python Packages | packaging pyaml jinja2 |
Functional Requirements
- malamute: Bcs
- 2.1.1The system shall compute the heat loss due to simple radiation heat transfer to an assumed surrounding blackbody in a thin body with a high thermal conductivity that matches the analytical solution.
- 2.1.2The system shall compute the heat loss due to simple radiation heat transfer to an assumed surrounding blackbody for a body composed of multiple phases.
- 2.1.3The system shall error and not compute the simple radiative heat transfer when an excessive number of absolute blackbody temperatures are supplied by the user.
- 2.1.4The system shall error and not compute the simple radiative heat transfer when an insufficient number of emissivities are supplied by the user.
- malamute: Curvature Regularization
- 2.2.1The system shall compute the regularized curvature of an interface defined by a level set.
- malamute: Example Testing
- 2.3.1The system shall duplicate the results of Cincotti et al (doi:10.1002/aic.11102), Sample One.
- 2.3.2The system shall duplicate the results of Cincotti et al (doi:10.1002/aic.11102), Sample Three.
- 2.3.3The system shall duplicate the results of Cincotti et al (doi:10.1002/aic.11102), Sample Four.
- 2.3.4The system shall duplicate the physics of Cincotti et al (doi:10.1002/aic.11102) with a perfect jacobian using the automatic differentiation system.
- malamute: Function Path Gaussian Heat Source
- 2.4.1The system shall produce the correct temperature field with moving Gaussian heat source.
- malamute: Gaussian Heat Source
- 2.5.1The system shall produce the correct temperature field with a moving Gaussian heat source, whose movement is prescribed by a position function.
- 2.5.2The system shall produce the correct temperature field with a moving Gaussian heat source, whose movement is prescribed by a given velocity vector.
- 2.5.3The system shall produce the correct temperature field with a moving Gaussian heat source (movement prescribed by a position function) and anisotropic effective radii along three directions.
- 2.5.4The system shall produce the correct temperature field with a moving Gaussian heat source (movement prescribed by velocity vector) and anisotropic effective radii along three directions.
- 2.5.5The system shall produce the correct temperature field with a moving Gaussian heat source (movement prescribed by a position function) and anisotropic effective radii based on experimental measurements.
- 2.5.6The system shall produce the correct temperature field with a moving Gaussian heat source (movement prescribed by velocity vector) and anisotropic effective radii based on experimental measurements.
- malamute: Gradient Regularization
- 2.6.1The system shall compute the regularized graident of a level set variable.
- malamute: Interfacekernels
- 2.7.1The system shall support the calculation of heat transfer across an interface due to thermal conductivity and electrostatic joule heating for the case of low thermal contact conductance and low electrical contact conductance.
- 2.7.2The system shall support the calculation of heat transfer across an interface due to thermal conductivity and electrostatic joule heating for the case of low thermal contact conductance and high electrical contact conductance.
- 2.7.3The system shall support the calculation of heat transfer across an interface due to thermal conductivity and electrostatic joule heating for the case of high thermal contact conductance and low electrical contact conductance.
- 2.7.4The system shall support the calculation of heat transfer across an interface due to thermal conductivity and electrostatic joule heating for the case of high thermal contact conductance and high electrical contact conductance.
- 2.7.5The system shall support the calculation of heat transfer across an interface due to thermal conductivity and electrostatic joule heating with the correct jacobian.
- 2.7.6The system shall support error-generation when the user supplies both conductances and mean hardness values (to calculate a conductance) to calculate thermal conductivity across an interface.
- 2.7.7The system shall support the calculation of thermal and electrical conductances when determining the heat transfer across an interface due to thermal conductivity and electrostatic joule heating.
- 2.7.8The system shall calculate the correct thermal contact temperature solution when compared to an analytic result, given a one-dimensional, two-material-block scenario.
- malamute: Materials
- 2.8.1The system shall compute the electrical conductivity of AT 101 graphite as a function of temperature and the computed properties shall align with an original figure data point.
- 2.8.2The system will warn the user when the calculation of graphite electrical conductivity with a temperature below the curve calibration range.
- 2.8.3The system shall not allow the calculation of graphite electrical conductivity with a temperature above the curve calibration range.
- 2.8.4The system shall compute the electrical conductivity of AT 101 graphite, while using automatic differentiation, as a function of temperature and the computed properties shall align with an original figure data point.
- 2.8.5The system will warn the user when the calculation of graphite electrical conductivity with a temperature below the curve calibration range using automatic differentiation.
- 2.8.6The system shall not allow the calculation of graphite electrical conductivity with a temperature above the curve calibration range while using automatic differentiation.
- 2.8.7The system shall support the calculation of the temperature dependent electrical conductivity for AISI 304 stainless steel with the correct jacobian.
- 2.8.8The system shall compute the coefficient of thermal expansion of AT 101 grahite as a function of temperature such that the calculated strain aligns with the analytical solution of the piecewise function.
- 2.8.9The system shall not allow the calculation of the AT 101 graphite coefficient of thermal expansion with a temperature below the curve calibration range.
- 2.8.10The system shall not allow the calculation of the AT 101 graphite coefficient of thermal expansion with a temperature above the curve calibration range.
- 2.8.11The system shall compute the coefficient of thermal expansion of AT 101 graphite as a function of temperature such that the calculated strain aligns with the analytical solution of the piecewise function while using automatic differentiation.
- 2.8.12The system shall not allow the calculation of the AT 101 graphite coefficient of thermal expansion with a temperature below the curve calibration range while using automatic differentiation.
- 2.8.13The system shall not allow the calculation of the AT 101 graphite coefficient of thermal expansion with a temperature above the curve calibration range while using automatic differentiation.
- 2.8.14The system shall support the calculation of the temperature dependent coefficient of thermal expansion for AT 101 graphite with the correct jacobian.
- 2.8.15The system shall compute the thermal conductivity and heat capacity of AT 101 graphite as a function of temperature and the computed properties shall align with original figure data points.
- 2.8.16The system will warn the user when the calculation of graphite thermal material properties with a temperature below the curve calibration range.
- 2.8.17The system shall not allow the calculation of graphite thermal material properties with a temperature above the curve calibration range.
- 2.8.18The system shall compute the thermal conductivity and heat capacity of AT 101 graphite, using the automatic differentiation capabilities, as a function of temperature and the computed properties shall align with original figure data points.
- 2.8.19The system will warn the user when the calculation of graphite thermal material properties with a temperature below the curve calibration range while using automatic differentiation.
- 2.8.20The system shall not allow the calculation of graphite thermal material properties with a temperature above the curve calibration range while using automatic differentiation.
- 2.8.21The system shall support the calculation of the temperature dependent heat capacity and thermal conductivity for AT 101 graphite with the correct jacobian.
- 2.8.22The system shall compute the harmonic mean of AT 101 graphite and AISI 304 stainless steel as a material property, and the computed property shall align with the published value.
- 2.8.23The system shall compute the electrical conductivity of AISI 304 stainless steel as a function of temperature and the computed properties shall align with an original figure data point.
- 2.8.24The system shall warn the user if the calculation of stainless steel electrical conductivity with a temperature below the curve calibration range.
- 2.8.25The system shall not allow the calculation of stainless steel electrical conductivity with a temperature above the curve calibration range.
- 2.8.26The system shall compute the electrical conductivity of AISI 304 stainless steel as a function of temperature and the computed properties shall align with an original figure data point while using the automatic differentiation capabilties.
- 2.8.27The system shall warn the user if the calculation of stainless steel electrical conductivity with a temperature below the curve calibration range with automatic differentiation.
- 2.8.28The system shall not allow the calculation of stainless steel electrical conductivity with a temperature above the curve calibration range using automatic differentiation.
- 2.8.29The system shall support the calculation of the temperature dependent electrical conductivity for AT 101 graphite with the correct jacobian.
- 2.8.30The system shall compute the coefficient of thermal expansion of AISI 304 stainless steel as a function of temperature such that the calculated strain aligns with the analytical solution of the piecewise function.
- 2.8.31The system shall not allow the calculation of the coefficient of thermal expansion with a temperature below the curve calibration range.
- 2.8.32The system shall not allow the calculation of the coefficient of thermal expansion with a temperature above the curve calibration range.
- 2.8.33The system shall compute the coefficient of thermal expansion of AISI 304 stainless steel as a function of temperature such that the calculated strain aligns with the analytical solution of the piecewise function while using automatic differentiation.
- 2.8.34The system shall not allow the calculation of the AISI 304 stainless steel coefficient of thermal expansion with a temperature below the curve calibration range while using automatic differentiation.
- 2.8.35The system shall not allow the calculation of the coefficient of thermal expansion with a temperature above the curve calibration range while using automatic differentiation.
- 2.8.36The system shall support the calculation of the temperature dependent coefficient of thermal expansion for AISI 304 stainless steel with the correct jacobian.
- 2.8.37The system shall compute the thermal conductivity and heat capacity of AISI 304 stainless steel as a function of temperature and the computed properties shall align with original figure data points.
- 2.8.38The system shall warn the user if the calculation of stainless steel thermal material properties with a temperature below the curve calibration range.
- 2.8.39The system shall not allow the calculation of stainless steel thermal material properties with a temperature above the curve calibration range.
- 2.8.40The system shall compute the thermal conductivity and heat capacity of AISI 304 stainless steel as a function of temperature and the computed properties shall align with original figure data points while using automatic differentiation.
- 2.8.41The system shall warn the user if the calculation of stainless steel thermal material properties with a temperature below the curve calibration range while using automatic differentiation.
- 2.8.42The system shall not allow the calculation of stainless steel thermal material properties with a temperature above the curve calibration range while using automatic differentiation.
- 2.8.43The system shall support the calculation of the temperature dependent heat capacity and thermal conductivity for AISI 304 stainless steel with the correct jacobian.
- 2.8.44The system shall compute the temperature distribution using MOOSE heat conduction code capabilities at the engineering scale.
- malamute: Melt Pool Fluid
- 2.9.1The system shall solve momentum conservations of a melt pool.
- malamute: Melt Pool Geometry
- 2.10.1The system shall provide analytical expressions for meltpool geometry and corresponding temperature profile
- 2.10.2The system shall provide analytical expressions for meltpool depth and width
- malamute: Melt Pool Heat
- 2.11.1The system shall compute laser heat source and heat loss due to convection and radiation at the level set interface.
- 2.11.2The system shall compute thermal properties in gas and mushy zone phases.
- malamute: Melt Pool Level Set
- 2.12.1The system shall solve level set evolution equations of a melt pool.
- malamute: Melt Pool Mass
- 2.13.1The system shall evolve the level set variable field with the velocity due to the powder addition.
Usability Requirements
No requirements of this type exist for this application, beyond those of its dependencies.Performance Requirements
No requirements of this type exist for this application, beyond those of its dependencies.System Interfaces
No requirements of this type exist for this application, beyond those of its dependencies.System Operations
Human System Integration Requirements
The MALAMUTE application is command line driven and conforms to all standard terminal behaviors. Specific human system interaction accommodations shall be a function of the end-user's terminal. MOOSE (and therefore MALAMUTE) does support optional coloring within the terminal's ability to display color, which may be disabled.
Maintainability
The latest working version (defined as the version that passes all tests in the current regression test suite) shall be publicly available at all times through the repository host provider.
Flaws identified in the system shall be reported and tracked in a ticket or issue based system. The technical lead will determine the severity and priority of all reported issues and assign resources at their discretion to resolve identified issues.
The software maintainers will entertain all proposed changes to the system in a timely manner (within two business days).
The core software in its entirety will be made available under the terms of a designated software license. These license terms are outlined in the LICENSE file alongside the MALAMUTE application source code.
Reliability
The regression test suite will cover at least 65% of all lines of code at all times. Known regressions will be recorded and tracked (see Maintainability) to an independent and satisfactory resolution.
System Modes and States
MOOSE applications normally run in normal execution mode when an input file is supplied. However, there are a few other modes that can be triggered with various command line flags as indicated here:
Command Line Flag | Description of mode |
---|---|
-i <input_file> | Normal execution mode |
--split-mesh <splits> | Read the mesh block splitting the mesh into two or more pieces for use in a subsequent run |
--use-split | (implies -i flag) Execute the simulation but use pre-split mesh files instead of the mesh from the input file |
--yaml | Output all object descriptions and available parameters in YAML format |
--json | Output all object descriptions and available parameters in JSON format |
--syntax | Output all registered syntax |
--registry | Output all known objects and actions |
--registry-hit | Output all known objects and actions in HIT format |
--mesh-only (implies -i flag) | Run only the mesh related tasks and output the final mesh that would be used for the simulation |
--start-in-debugger <debugger> | Start the simulation attached to the supplied debugger |
The list of system-modes may not be extensive as the system is designed to be extendable to end-user applications. The complete list of command line options for applications can be obtained by running the executable with zero arguments. See the command line usage.
Physical Characteristics
The MALAMUTE application is software only with no associated physical media. See System Requirements for a description of the minimum required hardware necessary for running the MALAMUTE application.
Environmental Conditions
Not Applicable
System Security
MOOSE-based applications such as MALAMUTE have no requirements or special needs related to system-security. The software is designed to run completely in user-space with no elevated privileges required nor recommended.
Information Management
MALAMUTE as well as the core MOOSE framework in its entirety will be made publicly available on an appropriate repository hosting site. Day-to-day backups and security services will be provided by the hosting service. More information about backups of the public repository on INL-hosted services can be found on the following page: GitHub Backups
Polices and Regulations
MOOSE-based applications must comply with all export control restrictions.
System Life Cycle Sustainment
MOOSE-based development follows various agile methods. The system is continuously built and deployed in a piecemeal fashion since objects within the system are more or less independent. Every new object requires a test, which in turn requires an associated requirement and design description. The MALAMUTE development team follows the NQA-1 standards.
Packaging, Handling, Shipping and Transportation
No special requirements are needed for packaging or shipping any media containing the MOOSE and MALAMUTE source code. However, some MOOSE-based applications that use the MALAMUTE code may be export-controlled, in which case all export control restrictions must be adhered to when packaging and shipping media.
Verification
The regression test suite will employ several verification tests using comparison against known analytical solutions, the method of manufactured solutions, and convergence rate analysis.