Create OpenMC Materials from .son input
This implements the method for taking materials and blends and creating the corresponding OpenMC Material objects, and then writes that out to a material.xml file.
This has been updated to include methods for parsing the material information from the mixing_table
produced by PyARC. This method can handle both mixtures of nuclides, elements, or a single component materials (see test for different cases). In the case that a wdens()
of a single component is provided in a material definition (eg sodium
in the test), the corresponding openmc input is converted to atom frac like the other inputs. Also, openmc has a temperature
input for mixed materials that is not present in the PyARC blends. For the openmc temperature, I average the temperatures of the components weighted by their volume fractions. Note, that while an openmc materials.xml
file is ultimately generated, I am testing for the properties of the objects generated in this code, not the file directly since the file creation is an openmc method.
Also included in this MR:
- tests for the prerun material generation process, including a very bare minimum
.son
input file. - test for the precheck function (probably should have gone in the last MR)
Needed still:
- handling for
lumped_elements
if included in the material definition. This information gets stored in thelumped_mixing_table
rather than themixing_table
currently used in these methods. Since I still have not been granted access to the cluster to use MCC3, I don't have a good way at the moment to test anything with lumped elements. So that addition will come later.