MALAMUTE System Design Description
This template follows INL template TEM-140, "IT System Design Description."
This document serves as an addendum to Framework System Design Description and captures information for SDD specific to the MALAMUTE application.
Introduction
Many of the phenomena related to advanced manufacturing processes depend on the solutions of multiple physics models, which can be described by partial differential equations that provide spatially and temporally varying values of solution variables. These models for individual physics often depend on each other. MALAMUTE relies on the MOOSE framework to solve these physics models, accounting for the couplings that may occur between them. This document describes the system design of MALAMUTE.
System Purpose
The Software Design Description provided here is description of each object in the system. The pluggable architecture of the underlying framework of MALAMUTE makes MOOSE and MOOSE-based applications straightforward to develop as each piece of end-user (developer) code that goes into the system follows a well-defined interface for the underlying systems that those object plug into. These descriptions are provided through developer-supplied "markdown" files that are required for all new objects that are developed as part of MALAMUTE. More information about the design documentation for MOOSE-based applications like MALAMUTE can be found in Documenting MOOSE.
System Scope
MALAMUTE performs simulations related to advanced manufacturing (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 electric field-assisted sintering (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.
Dependencies and Limitations
MALAMUTE inherits the software dependencies of the MOOSE framework, with no additional dependencies.
Definitions and Acronyms
This section defines, or provides the definition of, all terms and acronyms required to properly understand this specification.
Definitions
Pull (Merge) Request: A proposed change to the software (e.g. usually a code change, but may also include documentation, requirements, design, and/or testing).
Baseline: A specification or product (e.g., project plan, maintenance and operations (M&O) plan, requirements, or design) that has been formally reviewed and agreed upon, that thereafter serves as the basis for use and further development, and that can be changed only by using an approved change control process (NQA-1, 2009).
Validation: Confirmation, through the provision of objective evidence (e.g., acceptance test), that the requirements for a specific intended use or application have been fulfilled (24765:2010(E), 2010).
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 |
API | Application Programming Interface |
DOE | Department of Energy |
EFAS | electric field-assisted sintering |
FE | finite element |
HIT | Hierarchical Input Text |
HPC | High Performance Computing |
I/O | Input/Output |
INL | Idaho National Laboratory |
MOOSE | Multiphysics Object Oriented Simulation Environment |
MPI | Message Passing Interface |
SDD | Software Design Description |
Design Stakeholders and Concerns
Design Stakeholders
Stakeholders for MALAMUTE include several of the funding sources including Department of Energy (DOE) and INL. However, Since MALAMUTE is an open-source project, several universities, companies, and foreign governments have an interest in the development and maintenance of the MALAMUTE project.
Stakeholder Design Concerns
Concerns from many of the stakeholders are similar. These concerns include correctness, stability, and performance. The mitigation plan for each of these can be addressed. For correctness, MALAMUTE development requires either regression or unit testing for all new code added to the repository. The project contains several comparisons against analytical solutions where possible and also other verification methods such as MMS. For stability, MALAMUTE maintains multiple branches to incorporate several layers of testing both internally and for dependent applications. Finally, performance tests are also performed as part of the the normal testing suite to monitor code change impacts to performance.
System Design
MALAMUTE relies on MOOSE to solve the coupled physics models underlying advanced manufacturing processes, accounting for the couplings that may occur between them. The design of MOOSE is based on the concept of modular code objects that define all of the aspects of the physics model. MALAMUTE follows this design, providing code objects that define specific aspects of the solutions for its physics that derive from the base classes defined by the MOOSE framework and the modules that it depends on.
MALAMUTE provides specialized Kernel
classes that compute the contributions from the terms in the partial differential equations for heat conduction and electric current transport in an electric field assisted sintering apparatus; the heat conduction, fluid flow, and surface deformation of a melt pool and laser welding; and for simulating directed energy deposition (DED) processes. It also provides specialized Material
classes that define the constitutive behavior of materials of interest for sintering, DED, melt pools, and the level set method. In addition, it provides miscellaneous BC
and InterfaceKernel
classes to facilitate various aspects of these simulations. Much of the functionality of MALAMUTE is provided by the MOOSE modules that it builds on.
System Structure
MALAMUTE relies on the MOOSE framework to provide the core functionality of solving multiphysics problems using the finite element method. It also relies on the MOOSE modules for much of its core functionality. A summary listing of the current modules required for complete MALAMUTE operation are shown below:
The structure of MALAMUTE is based on defining C++ classes that derive from classes in the MOOSE framework or modules that provide functionality that is specifically tailored to the structural degradation problem. By using the interfaces defined in MOOSE base classes for these classes, MALAMUTE is able to rely on MOOSE to execute these models at the appropriate times during the simulation and use their results in the desired ways.
Data Design and Control
At a high level, the system is designed to process HIT input files to construct several objects that will constitute an FE simulation. Some of the objects in the simulation may in turn load other file-based resources to complete the simulation. Examples include meshes or data files. The system will then assemble systems of equations and solve them using the libraries of the Code Platform. The system can then output the solution in one or more supported output formats commonly used for visualization.
Human-Machine Interface Design
The MALAMUTE application is a command-line driven program. All interaction with MALAMUTE is ultimately done through the command line. This is typical for HPC applications that use the MPI interface for running on super computing clusters. Optional GUIs may be used to assist in creating input files and launching executables on the command line.
System Design Interface
All external system interaction is performed either through file I/O or through local API calls. Neither MALAMUTE, nor the MOOSE framework, nor the MOOSE modules are designed to interact with any external system directly through remote procedure calls. Any code to code coupling performed using the framework are done directly through API calls either in a static binary or after loading shared libraries.
Security Structure
The MALAMUTE application does not require any elevated privileges to operate and does not run any stateful services, daemons or other network programs. Distributed runs rely on the MPI library.
Requirements Cross-Reference
- malamute: ADCoupledSimpleRadiativeHeatFluxBC
- 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.
Specification(s): simple_radiation
Design: ADCoupledSimpleRadiativeHeatFluxBC
Issue(s): #11
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): multiple_phases_simple_radiation
Design: ADCoupledSimpleRadiativeHeatFluxBC
Issue(s): #11
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): simple_radiation_extra_absolute_temperatures
Design: ADCoupledSimpleRadiativeHeatFluxBC
Issue(s): #11
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): multiple_phases_missing_emissivities
Design: ADCoupledSimpleRadiativeHeatFluxBC
Issue(s): #11
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- malamute: Level set curvature regularization
- 2.2.1The system shall compute the regularized curvature of an interface defined by a level set.
Specification(s): curvature_regularization
Design: Level set curvature regularization
Issue(s): #2
Collection(s): FUNCTIONAL
Type(s): Exodiff
- malamute: Thermal Contact Condition Verification Case
- 2.3.1The system shall duplicate the results of Cincotti et al (doi:10.1002/aic.11102), Sample One.
Specification(s): sample_one_exodiff
Design: Thermal Contact Condition Verification CaseElectrostatic Contact Verification (Two Block Test)Electrostatic Contact Verification (Three Block Test)
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 2.3.2The system shall duplicate the results of Cincotti et al (doi:10.1002/aic.11102), Sample Three.
Specification(s): sample_three_exodiff
Design: Thermal Contact Condition Verification CaseElectrostatic Contact Verification (Two Block Test)Electrostatic Contact Verification (Three Block Test)
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 2.3.3The system shall duplicate the results of Cincotti et al (doi:10.1002/aic.11102), Sample Four.
Specification(s): sample_four_exodiff
Design: Thermal Contact Condition Verification CaseElectrostatic Contact Verification (Two Block Test)Electrostatic Contact Verification (Three Block Test)
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 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.
Specification(s): cincotti_jacobian
Design: Thermal Contact Condition Verification CaseElectrostatic Contact Verification (Two Block Test)Electrostatic Contact Verification (Three Block Test)
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- malamute: Electrostatic Contact Verification (Two Block Test)
- 2.3.1The system shall duplicate the results of Cincotti et al (doi:10.1002/aic.11102), Sample One.
Specification(s): sample_one_exodiff
Design: Thermal Contact Condition Verification CaseElectrostatic Contact Verification (Two Block Test)Electrostatic Contact Verification (Three Block Test)
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 2.3.2The system shall duplicate the results of Cincotti et al (doi:10.1002/aic.11102), Sample Three.
Specification(s): sample_three_exodiff
Design: Thermal Contact Condition Verification CaseElectrostatic Contact Verification (Two Block Test)Electrostatic Contact Verification (Three Block Test)
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 2.3.3The system shall duplicate the results of Cincotti et al (doi:10.1002/aic.11102), Sample Four.
Specification(s): sample_four_exodiff
Design: Thermal Contact Condition Verification CaseElectrostatic Contact Verification (Two Block Test)Electrostatic Contact Verification (Three Block Test)
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 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.
Specification(s): cincotti_jacobian
Design: Thermal Contact Condition Verification CaseElectrostatic Contact Verification (Two Block Test)Electrostatic Contact Verification (Three Block Test)
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- malamute: Electrostatic Contact Verification (Three Block Test)
- 2.3.1The system shall duplicate the results of Cincotti et al (doi:10.1002/aic.11102), Sample One.
Specification(s): sample_one_exodiff
Design: Thermal Contact Condition Verification CaseElectrostatic Contact Verification (Two Block Test)Electrostatic Contact Verification (Three Block Test)
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 2.3.2The system shall duplicate the results of Cincotti et al (doi:10.1002/aic.11102), Sample Three.
Specification(s): sample_three_exodiff
Design: Thermal Contact Condition Verification CaseElectrostatic Contact Verification (Two Block Test)Electrostatic Contact Verification (Three Block Test)
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 2.3.3The system shall duplicate the results of Cincotti et al (doi:10.1002/aic.11102), Sample Four.
Specification(s): sample_four_exodiff
Design: Thermal Contact Condition Verification CaseElectrostatic Contact Verification (Two Block Test)Electrostatic Contact Verification (Three Block Test)
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 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.
Specification(s): cincotti_jacobian
Design: Thermal Contact Condition Verification CaseElectrostatic Contact Verification (Two Block Test)Electrostatic Contact Verification (Three Block Test)
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- malamute: Gaussian Heat Source
- 2.4.1The system shall produce the correct temperature field with moving Gaussian heat source.
Specification(s): gaussian_heat_source
Design: Gaussian Heat SourceFunction Path Gaussian Heat Source
Issue(s): #66
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 2.5.1The system shall produce the correct temperature field with a moving Gaussian heat source, whose movement is prescribed by a position function.
Specification(s): gaussian_heat_source
Design: Gaussian Heat SourceFunction Path Gaussian Heat Source
Issue(s): #66
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): velocity_gaussian_heat_source
Design: Gaussian Heat SourceVelocity Gaussian Heat Source
Issue(s): #66
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): gaussian_heat_source_vary_r
Design: Gaussian Heat SourceFunction Path Gaussian Heat Source
Issue(s): #66
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): velocity_gaussian_heat_source_vary_r
Design: Gaussian Heat SourceVelocity Gaussian Heat Source
Issue(s): #66
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): gaussian_heat_source_experiment_r
Design: Gaussian Heat SourceFunction Path Gaussian Heat Source
Issue(s): #66
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): velocity_gaussian_heat_source_experiment_r
Design: Gaussian Heat SourceVelocity Gaussian Heat Source
Issue(s): #66
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- malamute: Function Path Gaussian Heat Source
- 2.4.1The system shall produce the correct temperature field with moving Gaussian heat source.
Specification(s): gaussian_heat_source
Design: Gaussian Heat SourceFunction Path Gaussian Heat Source
Issue(s): #66
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 2.5.1The system shall produce the correct temperature field with a moving Gaussian heat source, whose movement is prescribed by a position function.
Specification(s): gaussian_heat_source
Design: Gaussian Heat SourceFunction Path Gaussian Heat Source
Issue(s): #66
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): gaussian_heat_source_vary_r
Design: Gaussian Heat SourceFunction Path Gaussian Heat Source
Issue(s): #66
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): gaussian_heat_source_experiment_r
Design: Gaussian Heat SourceFunction Path Gaussian Heat Source
Issue(s): #66
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- malamute: Velocity Gaussian Heat Source
- 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.
Specification(s): velocity_gaussian_heat_source
Design: Gaussian Heat SourceVelocity Gaussian Heat Source
Issue(s): #66
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): velocity_gaussian_heat_source_vary_r
Design: Gaussian Heat SourceVelocity Gaussian Heat Source
Issue(s): #66
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): velocity_gaussian_heat_source_experiment_r
Design: Gaussian Heat SourceVelocity Gaussian Heat Source
Issue(s): #66
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- malamute: Variable gradient regularization
- 2.6.1The system shall compute the regularized graident of a level set variable.
Specification(s): gradient_regularization
Design: Variable gradient regularization
Issue(s): #2
Collection(s): FUNCTIONAL
Type(s): Exodiff
- malamute: ThermalContactCondition
- 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.
Specification(s): low_low
Design: ThermalContactCondition
Issue(s): #10
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 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.
Specification(s): low_high
Design: ThermalContactCondition
Issue(s): #10
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 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.
Specification(s): high_low
Design: ThermalContactCondition
Issue(s): #10
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 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.
Specification(s): high_high
Design: ThermalContactCondition
Issue(s): #10
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 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.
Specification(s): jacobian
Design: ThermalContactCondition
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- 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.
Specification(s): conductance_error
Design: ThermalContactCondition
Issue(s): #13
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): conductance_calculated
Design: ThermalContactCondition
Issue(s): #13
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 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.
Specification(s): analytic_solution_test
Design: ThermalContactCondition
Issue(s): #13
Collection(s): FUNCTIONAL
Type(s): Exodiff
Verification: Thermal Contact Condition Verification Case
- malamute: GraphiteElectricalConductivity
- 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.
Specification(s): electrical_properties
Design: GraphiteElectricalConductivity
Issue(s): #12
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 2.8.2The system will warn the user when the calculation of graphite electrical conductivity with a temperature below the curve calibration range.
Specification(s): electrical_conductivity_lower_range_check
Design: GraphiteElectricalConductivity
Issue(s): #12
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 2.8.3The system shall not allow the calculation of graphite electrical conductivity with a temperature above the curve calibration range.
Specification(s): electrical_conductivity_upper_range_check
Design: GraphiteElectricalConductivity
Issue(s): #12
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): ad_electrical_properties
Design: GraphiteElectricalConductivity
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): ad_electrical_conductivity_lower_range_check
Design: GraphiteElectricalConductivity
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): ad_electrical_conductivity_upper_range_check
Design: GraphiteElectricalConductivity
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 2.8.7The system shall support the calculation of the temperature dependent electrical conductivity for AISI 304 stainless steel with the correct jacobian.
Specification(s): jacobian_ad_electrical_properties
Design: GraphiteElectricalConductivity
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- malamute: GraphiteThermalExpansionEigenstrain
- 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.
Specification(s): thermal_expansion
Design: GraphiteThermalExpansionEigenstrain
Issue(s): #12
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): thermal_expansion_lower_range_check
Design: GraphiteThermalExpansionEigenstrain
Issue(s): #12
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): thermal_expansion_upper_range_check
Design: GraphiteThermalExpansionEigenstrain
Issue(s): #12
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- malamute: ADGraphiteThermalExpansionEigenstrain
- 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.
Specification(s): ad_thermal_expansion
Design: ADGraphiteThermalExpansionEigenstrain
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): ad_thermal_expansion_lower_range_check
Design: ADGraphiteThermalExpansionEigenstrain
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): ad_thermal_expansion_upper_range_check
Design: ADGraphiteThermalExpansionEigenstrain
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 2.8.14The system shall support the calculation of the temperature dependent coefficient of thermal expansion for AT 101 graphite with the correct jacobian.
Specification(s): jacobian_ad_thermal_expansion
Design: ADGraphiteThermalExpansionEigenstrain
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- malamute: GraphiteThermal
- 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.
Specification(s): thermal_material_properties
Design: GraphiteThermal
Issue(s): #12
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 2.8.16The system will warn the user when the calculation of graphite thermal material properties with a temperature below the curve calibration range.
Specification(s): thermal_properties_lower_range_check
Design: GraphiteThermal
Issue(s): #12
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 2.8.17The system shall not allow the calculation of graphite thermal material properties with a temperature above the curve calibration range.
Specification(s): thermal_properties_upper_range_check
Design: GraphiteThermal
Issue(s): #12
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): ad_thermal_material_properties
Design: GraphiteThermal
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): ad_thermal_properties_lower_range_check
Design: GraphiteThermal
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): ad_thermal_properties_upper_range_check
Design: GraphiteThermal
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): jacobian_ad_thermal_properties
Design: GraphiteThermal
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- malamute: GraphiteStainlessMeanHardness
- 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.
Specification(s): harmonic_mean
Design: GraphiteStainlessMeanHardness
Issue(s): #13
Collection(s): FUNCTIONAL
Type(s): Exodiff
- malamute: StainlessSteelElectricalConductivity
- 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.
Specification(s): electrical_properties
Design: StainlessSteelElectricalConductivity
Issue(s): #12
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 2.8.24The system shall warn the user if the calculation of stainless steel electrical conductivity with a temperature below the curve calibration range.
Specification(s): electrical_resistivity_lower_range_check
Design: StainlessSteelElectricalConductivity
Issue(s): #12
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 2.8.25The system shall not allow the calculation of stainless steel electrical conductivity with a temperature above the curve calibration range.
Specification(s): electrical_resistivity_upper_range_check
Design: StainlessSteelElectricalConductivity
Issue(s): #12
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): ad_electrical_properties
Design: StainlessSteelElectricalConductivity
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): ad_electrical_resistivity_lower_range_check
Design: StainlessSteelElectricalConductivity
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): ad_electrical_resistivity_upper_range_check
Design: StainlessSteelElectricalConductivity
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 2.8.29The system shall support the calculation of the temperature dependent electrical conductivity for AT 101 graphite with the correct jacobian.
Specification(s): jacobian_ad_electrical_properties
Design: StainlessSteelElectricalConductivity
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- malamute: StainlessSteelThermalExpansionEigenstrain
- 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.
Specification(s): thermal_expansion
Design: StainlessSteelThermalExpansionEigenstrain
Issue(s): #12
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 2.8.31The system shall not allow the calculation of the coefficient of thermal expansion with a temperature below the curve calibration range.
Specification(s): thermal_expansion_lower_range_check
Design: StainlessSteelThermalExpansionEigenstrain
Issue(s): #12
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 2.8.32The system shall not allow the calculation of the coefficient of thermal expansion with a temperature above the curve calibration range.
Specification(s): thermal_expansion_upper_range_check
Design: StainlessSteelThermalExpansionEigenstrain
Issue(s): #12
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- malamute: ADADStainlessSteelThermalExpansionEigenstrain
- 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.
Specification(s): ad_thermal_expansion
Design: ADADStainlessSteelThermalExpansionEigenstrain
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): ad_thermal_expansion_lower_range_check
Design: ADADStainlessSteelThermalExpansionEigenstrain
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): ad_thermal_expansion_upper_range_check
Design: ADADStainlessSteelThermalExpansionEigenstrain
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): jacobian_ad_thermal_expansion
Design: ADADStainlessSteelThermalExpansionEigenstrain
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- malamute: StainlessSteelThermal
- 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.
Specification(s): thermal_material_properties
Design: StainlessSteelThermal
Issue(s): #12
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): thermal_properties_lower_range_check
Design: StainlessSteelThermal
Issue(s): #12
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 2.8.39The system shall not allow the calculation of stainless steel thermal material properties with a temperature above the curve calibration range.
Specification(s): thermal_properties_upper_range_check
Design: StainlessSteelThermal
Issue(s): #12
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): ad_thermal_material_properties
Design: StainlessSteelThermal
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 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.
Specification(s): ad_thermal_properties_lower_range_check
Design: StainlessSteelThermal
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): ad_thermal_properties_upper_range_check
Design: StainlessSteelThermal
Collection(s): FAILURE_ANALYSISFUNCTIONAL
Type(s): RunException
- 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.
Specification(s): jacobian_ad_thermal_properties
Design: StainlessSteelThermal
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- malamute: HeatConduction
- 2.8.44The system shall compute the temperature distribution using MOOSE heat conduction code capabilities at the engineering scale.
Specification(s): yittra_only_engineering_scale
Design: HeatConductionHeatConductionTimeDerivative
Issue(s): #9
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- malamute: HeatConductionTimeDerivative
- 2.8.44The system shall compute the temperature distribution using MOOSE heat conduction code capabilities at the engineering scale.
Specification(s): yittra_only_engineering_scale
Design: HeatConductionHeatConductionTimeDerivative
Issue(s): #9
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- malamute: Melt pool INS residual material
- 2.9.1The system shall solve momentum conservations of a melt pool.
Specification(s): fluid
Design: Melt pool INS residual materialMelt pool INS momentum source kernelLevel set fluid material
Issue(s): #3
Collection(s): FUNCTIONAL
Type(s): Exodiff
- malamute: Melt pool INS momentum source kernel
- 2.9.1The system shall solve momentum conservations of a melt pool.
Specification(s): fluid
Design: Melt pool INS residual materialMelt pool INS momentum source kernelLevel set fluid material
Issue(s): #3
Collection(s): FUNCTIONAL
Type(s): Exodiff
- malamute: Level set fluid material
- 2.9.1The system shall solve momentum conservations of a melt pool.
Specification(s): fluid
Design: Melt pool INS residual materialMelt pool INS momentum source kernelLevel set fluid material
Issue(s): #3
Collection(s): FUNCTIONAL
Type(s): Exodiff
- malamute: Rosenthal temperature source material
- 2.10.1The system shall provide analytical expressions for meltpool geometry and corresponding temperature profile
Specification(s): rosenthal_temp
Design: Rosenthal temperature source material
Issue(s): #63
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 2.10.2The system shall provide analytical expressions for meltpool depth and width
Specification(s): rosenthal_depth
Design: Rosenthal temperature source material
Issue(s): #63
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- malamute: Melt pool heat source
- 2.11.1The system shall compute laser heat source and heat loss due to convection and radiation at the level set interface.
Specification(s): heat
Design: Melt pool heat source
Issue(s): #2
Collection(s): FUNCTIONAL
Type(s): Exodiff
- malamute: Level set thermal material
- 2.11.2The system shall compute thermal properties in gas and mushy zone phases.
Specification(s): thermal_material
Design: Level set thermal materialMushy zone material
Issue(s): #2
Collection(s): FUNCTIONAL
Type(s): Exodiff
- malamute: Mushy zone material
- 2.11.2The system shall compute thermal properties in gas and mushy zone phases.
Specification(s): thermal_material
Design: Level set thermal materialMushy zone material
Issue(s): #2
Collection(s): FUNCTIONAL
Type(s): Exodiff
- malamute: LevelSetGradientRegularizationReinitialization
- 2.12.1The system shall solve level set evolution equations of a melt pool.
Specification(s): level_set
Design: LevelSetGradientRegularizationReinitializationMass transfer rate due to liquid-vapor phase changeLevelSetPhaseChangeLevelSetAdvectionLevelSetTimeDerivativeSUPGLevelSetAdvectionSUPG
Issue(s): #4
Collection(s): FUNCTIONAL
Type(s): Exodiff
- malamute: Mass transfer rate due to liquid-vapor phase change
- 2.12.1The system shall solve level set evolution equations of a melt pool.
Specification(s): level_set
Design: LevelSetGradientRegularizationReinitializationMass transfer rate due to liquid-vapor phase changeLevelSetPhaseChangeLevelSetAdvectionLevelSetTimeDerivativeSUPGLevelSetAdvectionSUPG
Issue(s): #4
Collection(s): FUNCTIONAL
Type(s): Exodiff
- malamute: LevelSetPhaseChange
- 2.12.1The system shall solve level set evolution equations of a melt pool.
Specification(s): level_set
Design: LevelSetGradientRegularizationReinitializationMass transfer rate due to liquid-vapor phase changeLevelSetPhaseChangeLevelSetAdvectionLevelSetTimeDerivativeSUPGLevelSetAdvectionSUPG
Issue(s): #4
Collection(s): FUNCTIONAL
Type(s): Exodiff
- malamute: LevelSetAdvection
- 2.12.1The system shall solve level set evolution equations of a melt pool.
Specification(s): level_set
Design: LevelSetGradientRegularizationReinitializationMass transfer rate due to liquid-vapor phase changeLevelSetPhaseChangeLevelSetAdvectionLevelSetTimeDerivativeSUPGLevelSetAdvectionSUPG
Issue(s): #4
Collection(s): FUNCTIONAL
Type(s): Exodiff
- malamute: LevelSetTimeDerivativeSUPG
- 2.12.1The system shall solve level set evolution equations of a melt pool.
Specification(s): level_set
Design: LevelSetGradientRegularizationReinitializationMass transfer rate due to liquid-vapor phase changeLevelSetPhaseChangeLevelSetAdvectionLevelSetTimeDerivativeSUPGLevelSetAdvectionSUPG
Issue(s): #4
Collection(s): FUNCTIONAL
Type(s): Exodiff
- malamute: LevelSetAdvectionSUPG
- 2.12.1The system shall solve level set evolution equations of a melt pool.
Specification(s): level_set
Design: LevelSetGradientRegularizationReinitializationMass transfer rate due to liquid-vapor phase changeLevelSetPhaseChangeLevelSetAdvectionLevelSetTimeDerivativeSUPGLevelSetAdvectionSUPG
Issue(s): #4
Collection(s): FUNCTIONAL
Type(s): Exodiff
- malamute: LevelSetPowderAddition
- 2.13.1The system shall evolve the level set variable field with the velocity due to the powder addition.
Specification(s): mass
Design: LevelSetPowderAddition
Issue(s): #35
Collection(s): FUNCTIONAL
Type(s): Exodiff