6. Implementation and Developer Guide

This project contains two main parts: an ARMI-based plugin, and a simple ARMI-based application for demonstration and testing purposes.

Fundamentally, the ARMI DIF3D plugin works by filling in a template DIF3D input file with data collected off of an ARMI reactor model, running the input file through DIF3D, parsing DIF3D binary interface output files (and textual output in some cases), and mapping the data in the output files back onto the ARMI reactor model. The plugin houses all of the components that make the ARMI-DIF3D interface work, including:

Each of these are described in more detail in the above linked pages. The rest of the API documentation describing the classes and functions that make up the DIF3D plugin can be found here.

The demonstration application serves as a minimum viable ARMI application for demonstrating the functionality of the DIF3D integration. It activates both the DIF3D plugin, and TerraPower’s open-source DRAGON plugin, which produces microscopic cross sections, which are necessary inputs to a DIF3D run. This application is applied to a practical case and discussed in more detail in Results.

The process for integrating this plugin into a new ARMI-based application is covered in more detail in the ARMI documentation; the main ARMI documentation on making apps covers many aspects of building ARMI apps, and the app tutorial walks through a specific example of making one. Going through this tutorial in particular will make the process of creating an app that uses this DIF3D plugin more clear. The dif3ddemo application (implemented in dif3ddemo.app) that comes with this distribution is a very good example of a basic ARMI-based application that makes use of the DIF3D plugin to perform simple analysis.