Professional coding projects

I have worked on a number of professional coding projects (or relevant personal side projects). Links to their respective web/GitHub pages and brief descriptions are provided here.

PHITS Tools DOI PyPI - Version Documentation

PHITS Tools banner

PHITS universal output parser/processor

This is a Python package containing a collection of functions that serve to automatically process tally output from the PHITS general purpose Monte Carlo particle transport code, seeking to be a universal tally output parser/processor for both PHITS standard tally output and its tally “dump” output files. PHITS Tools can be interfaced with via its command line interface (CLI), graphical user interface (GUI), or as an imported module within a Python script. The module’s main function outputs results both as a “dense” NumPy array as well as in a Pandas DataFrame, along with a metadata dictionary, while dump file results are returned as a list of NamedTuples and/or a Pandas DataFrame; all output can be saved as pickle files for easy later use.

[Documentation]

Hunter's tools DOI

Collection of my general-purpose Python functions

This is a simple Python module containing a collection of functions that I have written and curated over the years spanning a large variety of purposes. Broadly, the functions fit into three categories: general use (somewhat of a catchall), science and engineering (nuclear in particular), and visualization and plotting.

[Documentation]

ng-imager PyPI Documentation

Neutron and gamma ray imaging code package

This Python package is for imaging neutrons and gamma rays, as detected by a multi-element detector array consisting of long-form-factor organic scintillators with dual-ended light readout. It is a modular tookit that turns detector-level coincident hit data into images via a clean, restartable pipeline, hits → events → cones → images. It features explicit separation of physics, geometry, imaging, configuration, and I/O; flexible neutron energy deposition calculation strategies; unified neutron and gamma imaging, including proton vs carbon recoil handling; structured hit / event / cone filters with detailed counters; and a self-describing HDF5 output suitable for long-term analysis and archiving.

[Documentation]

DCHAIN Tools DOI PyPI - Version Documentation

DCHAIN-PHITS output parser/processor and toolkit

This is a simple Python module containing a collection of functions which serve to automatically process output from the DCHAIN-PHITS code, the nuclide activation, buildup, burnup, and decay code which is coupled to and distributed with the PHITS general purpose Monte Carlo particle transport code. In addition to trivializing DCHAIN output parsing and processing, it has a handful of other useful tools related to DCHAIN.

While originally developed as a standalone module (and still usable as such), it is now packaged as a submodule of the PHITS Tools package, mirroring the relationship between the DCHAIN and PHITS codes.

[Documentation]

PHITS Router (macOS)

This is a small macOS Automator app that replaces the need to keep multiple PHITS-related apps in the Dock (PHITS, DCHAIN, ANGEL, PHIG-3D, and PHITS-Pad) and provides a macOS-native equivalent to Windows’ “Send To” method of executing/opening files. By associating PHITS-related file extensions (like .inp and .out) with PHITS Router, one can quickly send a PHITS-related file to a selected suitable app (of several) directly with held modifier keys when double-clikcing/opening it, or with no modifiers to select the destination app from a chooser window.

SHAEDIT DOI

Space Hadron Accelerator Experiment Data Investigation Tool

This is a Jupyter notebook for conveniently viewing and comparing the data collected from the measurements of double-differential secondary particle yields from intermediate-energy hadrons incident on thick-targets. These experimental measurements were made at the NASA Space Radiation Laboratory on the Brookhaven National Laboratory campus.

GCR-SpecGen DOI

Galactic Cosmic Ray Spectra Generator

This is a Jupyter notebook for conveniently generating GCR spectra using the GCR model developed by Dr. Daniel Matthiä. The notebook allows for selection of which source ions are of interest and the desired level of solar modulation, either set manually or calculated automatically from a date or range of dates. It yields a brief summary of the GCR spectra, text files containing each ion’s full spectrum (formatted in a “raw” tabular form and as source cards ready for use in MCNP and PHITS simulations), and a plot showing the selected spectra under the specified level of solar modulation.

CLSQ2

Cumming’s Least Squares (version 2)

This is a modernized version of the 1962 Cumming’s Least Squares (CLSQ) Brookhaven Decay Curve Analysis Program, written in FORTRAN IV. The original paper on it can be read here. CLSQ analyzes multicomponent decay curves by a least-squares procedure to iteratively identify the half-lives and abundances of the individual isotopes of a measured sample. Its use at Oak Ridge National Laboratory (ORNL) had been limited to a few very old computers due to its age and recompilation issues; only a 16-bit compiled version of the code was in use at ORNL. To make this code more accessible, I translated the original code from FORTRAN IV into Python 3. Additionally, I added improvements in the input and output functionalities of CLSQ, making it much more user-friendly. The new CLSQ code is used today at ORNL and is featured in a graduate course on isotope production at the University of Tennessee.