Creating nuclear data using NJOY
Created by: paulromano
This pull request introduces a new capbility to generate an
ThermalScattering object using NJOY (which is now open source) by adding
from_njoy classmethods. These functionally work as though they were
from_endf because they accept the name of an ENDF file, but under the hood, NJOY is run to produce ACE files (at multiple temperatures if desired) and then
from_ace is used to instantiate the corresponding incident neutron or thermal scattering data. The new methods are also "smart" in that they will automatically add fission energy release data from the ENDF file as well as 0 K elastic scattering data (using the pointwise ENDF file generated during the NJOY run).
Implementation: there is a new
openmc.data.njoy interface which provides
make_ace_thermal functions. All of these use a central
run function. The
run function has optional arguments
njoy_exec (to specify the location of the NJOY executable -- assumed to just be 'njoy' by default) and
stdout (if you want to see the progress of the NJOY run). Keyword arguments are passed through the series of calls from
run, so, e.g., you can call
u235 = openmc.data.IncidentNeutron.from_njoy('U235.endf', stdout=True)
Right now, reconstruction/broadening error tolerances are not configurable, but we can change that if need be.
With this functionality, it is now much easier for a user to generate an HDF5 library for use in OpenMC given a set of ENDF files.