Project 1: Reproducible Best Practices for Development of Scientific Simulation Software

Co-mentors: Kathryn Huff (Nuclear, Plasma, & Radiological Engineering) and Matthew Turk (Astronomy)
Social impact: Developing safe, and sustainable nuclear energy as a fundamental part of a clean, carbon-free, worldwide future energy.

Project description: Safe, sustainable nuclear energy will be a fundamental part of a clean, carbon-free, worldwide energy future. The Advanced Reactors and Fuel Cycles group (Huff) and the Data Exploration Laboratory (Turk) are collaborating to develop reproducible, open-source software (OSS) for simulation and analysis of phenomena in advanced nuclear reactor designs. Open source physics kernels and applications will be developed within the Multiphysics Object-Oriented Simulation Environment (MOOSE) Finite Element Modeling ecosystem. These kernels and simulations will extend current modeling capabilities to include physics appropriate for the unique phenomena encountered in advanced nuclear reactors. As much as possible, this work will be conducted in a transparent and open manner, with an emphasis on maximizing reproducibility and reuse potential. Accordingly, this work will leverage literate programming tools (e.g., Jupyter notebooks) as a platform for communicating analysis methods and results.

The undergraduates will work as part of a team ensuring the reproducibility of the kernels under development. Their tasks will familiarize them with scientific software development best practices such as pair programming, unit testing, automated documentation, and reproducible workflows. Specifically, the students will pair program alongside the faculty mentors, postdoctoral scholars, and one another to implement C++ unit tests using the MOOSE testing framework. As their familiarity with the project grows, they will engage in iterating upon repeatable validation and verification demonstrations of the simulation capabilities by using Jupyter notebooks to package and communicate simulation workflows. Meanwhile, they will be guided to enriching documentation for the methods as needed, using the Doxygen automated documentation framework.