5. Requirements

This page shows the software requirements of the DIF3D-ARMI plugin. Demonstration that the below requirements are satisfied by the implementation is presented in Test Report.

5.1. Summary

ID

Title

R-execute

Execute a given DIF3D executable

R-geom-types

Support 3-D hexagonal geometry in 1/3 or full core symmetry

R-read-output

Read DIF3D output information back onto the ARMI state

R-solver-modes

Support real and adjoint calculations

R-spatial-approx

Support nodal and finite-difference spatial approximations

R-write-input

Write valid DIF3D input files based on ARMI state

5.2. Details

Requirement: Write valid DIF3D input files based on ARMI state R-write-input _images/arrow-right-circle.svg

The code shall produce DIF3D 11.0 input files derived entirely from state information stored on the ARMI reactor model. This ensures that the DIF3D runs can be coupled with anything else that is represented in ARMI.

Verification Method: VTR-like ARMI inputs will be loaded in ARMI and passed to this plugin to generate inputs. Verification requires that DIF3D can execute the inputs without error.

Requirement: Support 3-D hexagonal geometry in 1/3 or full core symmetry R-geom-types _images/arrow-right-circle.svg

The code shall support both 1/3 symmetric and full core hex geometry models. While DIF3D does support other geometry options, this plugin does not need to support them, but it could be designed in such a way to allow later extension to other geometries.

Test cases in the required geometries will be built and included.

Requirement: Support nodal and finite-difference spatial approximations R-spatial-approx _images/arrow-right-circle.svg

Both nodal and finite difference modes of DIF3D shall be selectable by user input.

Note

The VARIANT options shall not be precluded by design, but are not necessary for the initial implementation.

Verification Method Test cases in the required modes will be built and included.

Requirement: Support real and adjoint calculations R-solver-modes _images/arrow-right-circle.svg

Real and adjoint calculations must be possible with the system.

Warning

DIF3D nodal mode does not work in adjoint unless certain acceleration options are disabled

Verification Method Test cases in the required modes will be built and included.

Requirement: Execute a given DIF3D executable R-execute _images/arrow-right-circle.svg

To support workflow automation, the code must be able to execute DIF3D given an ARMI-derived input and save the output files.

Note

Temporary scratch files generated during a run may be discarded

Verification Method

An integration test script that includes DIF3D execution will be built and included.

Requirement: Read DIF3D output information back onto the ARMI state R-read-output _images/arrow-right-circle.svg

Given a successful DIF3D execution from this plugin, the plugin shall parse DIF3D output files and load the state information back onto the ARMI model, including:

  • k-effective

  • Multigroup and scalar real and/or adjoint flux

  • Power distribution in Watts

  • Power density in Watts/cc

Verification Method

Known information from a test output file will be loaded into ARMI and verified to match with unit tests.