Hello, I am using OpenMC for criticality and depletion calculations. I an using it through a Docker Desktop container. I successfully run calculations for reactors where all the materials are at the default temperature. However when I try to run calculations for other temperatures like 900 K it replies that there is no data. Can somebody explain to me in detail the changes I have to make to the container to be able to make calculations with other temperatures?
You need generate your own cross sections with the desired temperatures.
To generate the cross sections you can use NJOY21 or NJOY2016, both free software.
You can even use OpenMC to control NJOY: openmc.data – Nuclear Data Interface — OpenMC Documentation
hi nick,
if you are using openmc official data library, you will have the nuclear data for 900K i.e. on ENDF/B-VII.1 and VIII.0 or JEFF 3.3. I recommend you try these nuclear data libraries since it has a broad temperature range: 250 K, 293.6 K, 600 K, 900 K, 1200 K, and 2500 K
https://openmc.org/official-data-libraries/
also, I think by default, openmc will use the nearest temperature for nuclear data that exists on your PC, so if you want to use other methods such as interpolation to make openmc interpolate between nuclear data temperatures, you could add
settings.temperature = {'method': 'interpolation'}
it is described on openmc documentation
https://docs.openmc.org/en/stable/pythonapi/generated/openmc.Settings.html#openmc.Settings
But, as Thalles Campagnani said before, if you want to generate your specific nuclear data for openmc, you can use NJOY, but it will take time.
I see. You are right, it must be something with the libraries. I guess the files in my container are inadequate. Can you tell me what changes I should make to the files of my container? I installed OpenMC just by typing “docker pull openmc/openmc:latest” in cmd while Docker Desktop was active.
sorry Nick, I am not using docker for my openmc, but you could check your OPENMC_CROSS_SECTIONS variable that has been set to your environment since openmc by default uses the path provided by $OPENMC_CROSS_SECTIONS as a path to your nuclear data lib.
echo $OPENMC_CROSS_SECTIONS
also, if you have downloaded the openmc official data library from Official Data Libraries | OpenMC , you could set openmc to use this library by adding the cross_sections.xml file path to openmc.Materials.cross_sections
materials = openmc.Materials([any material you made, so on])
materials.cross_sections = '/home/path/to/your/endfb-vii.1-hdf5/cross_sections.xml'
materials.export_to_xml()
the same thing can also be done if you want to update your default nuclear data, then update your OPENMC_CROSS_SECTIONS variable from your .profile file in your $HOME
export OPENMC_CROSS_SECTIONS=/home/path/to/your/endfb-vii.1-hdf5/cross_sections.xml
Wow! I added one of the Official Libraries in my container and I typed the export command as you describe it before I start typing the Python program. I also added settings.temperature = {‘method’: ‘interpolation’} as you said. And it works! Now I can do both criticality and depletion calculations with different temperatures! Thank you wahidluthfi! Problem solved!