How to get the nndc ENDFb7.1 and b7.1-hdf5 crosssection library for multiple temperature?

I see in the https://github.com/openmc-dev/data/blob/master/convert_nndc71.py scrip this only generate the hdf cross section library for 293.7K. How do I generate cross section library for 300K,400K,500K,600K,700K,800K,900K,1000K,1100K,1200K,1300K,1400K,1500K ?

Can anyone please guide me on this? Thanks.

Hi Sharif

I believe the current convert_nndc71.py does not know about these temperature libraries you mentioned. If you can point me to a download link for these temperatures then we can raise and issue on the openmc data repository and think about adding this feature.

I noticed that ENDF version 8 has some beta temperature tables so perhaps we should look into this in the future https://nucleardata.lanl.gov/ACE/Betas/ENDF8.0.html

Currently the convert_jeff33.py script has the option of downloading multiple temperatures https://github.com/openmc-dev/data/blob/master/convert_jeff32.py

We are also looking at upgrading the convert_jeff33.py so that it supports multiple temperatures for the libraries, see this issue https://github.com/openmc-dev/data/issues/28

There is also the WMP library which allows for temperatures in cross sections that you might be interested in

https://docs.openmc.org/en/latest/io_formats/data_wmp.html

All the best

Jon

Yes, I know that convert_jeff33.py supports multiple temperatures. I was thinking of same for the ENDF/B, I see the JEFF data is possible for ‘1000’, ‘1200’, ‘1500’, ‘1800’
‘293’, ‘400’, ‘500’, ‘600’, ‘700’, ‘800’, ‘900’, temperatures, is the same not yet possible with ENDF/B?

Hi Sharif,

Any underlying cross section library (set of ENDF files) can in principle be processed to an arbitrary set of temperatures. Many of the libraries that we distribute are just converted from pre-existing ACE libraries where someone else has decided what temperatures to include. The “NNDC” cross sections we use for testing are really just ENDF/B-VII.1 files that were processed by the NNDC at a single temperature. If you want ENDF/B-VII.1 cross sections at multiple temperatures, your options are:

  • Use our “official” library which has data at 250, 293, 600, 900, 1200, and 2500 K
  • Use the LANL-based library which has data at the same temperatures
  • Use our generate_endf71.py script to generate files at whatever temperatures you wish to have (note that this requires you to install NJOY, and it will take a bit of time to process all nuclides). This is the script that was used to generate the “official” library above.

Best,
Paul

Greeting Dr. I am following the guide here to download NJOY from here http://www.njoy21.io/Build/

# Download the source code
git clone https://github.com/njoy/NJOY21.git

# Get the desired version of NJOY21 (1.1.0 in this example)
cd NJOY21
wget https://raw.githubusercontent.com/njoy/signatures/master/NJOY21/1.1.0-NJOY21.json
./metaconfigure/fetch_subprojects.py 1.1.0-NJOY21.json

# Configure the build process
mkdir bin
cd bin
cmake -D fetched_subprojects=true ../

# Build NJOY1
make

# Test NJOY1
make test

Now, using the generate_endf71.py script to generate files at different temperatures, Can you please guide me how the conversion will work. Should I put the script and utils.py in the same location where I downloaded NJOY? How should I use the NJOY to get the cross sections data?

Please guide.

Hi @shabudarda

By default, NJOY21 is compiled using dynamic libraries. If you move the executable, you should move the dynamic library that is generated as well.
For static compiling

cmake -D fetched_subprojects=true -Dstatic_libraries=ON -Dstatic_njoy=ON -DCMAKE_EXE_LINKER_FLAGS=-static ../

After installing, add the following line in ~/.bashrc

export PATH=$PATH:$HOME/NJOY21/bin

file = openmc.data.njoy.make_ace('file.endf', temperatures = [250, .., .. ],  njoy_exec='njoy21', stdout = True)

Install the utils.py script and If you are using NJOY21 then in utils.py script add njoy_exec='njoy21’

            data = openmc.data.IncidentNeutron.from_njoy(
                path, temperatures=temperatures, njoy_exec='njoy21'
            )
            data = openmc.data.ThermalScattering.from_njoy(
                path_neutron, path_thermal, njoy_exec='njoy21'
            )

Now simply run python3 generate_endf71.py.

So with the NJOY directory set in the bashrc. I have to run this for every single nuclides? also where will i find the endf files? i was trying to use the generate-endf7.py script. how i include the conversation in there?

file = openmc.data.njoy.make_ace('file.endf', temperatures = [250, .., .. ],  njoy_exec='njoy21', stdout = True)

Did you install NJOY @shabudarda? I will tell you to install NJOY2016 instead of NJOY21.

It depends on you whether you want for every nuclide or not.

endf file

I added this for a single nuclide.

For this,

python3 utils.py install
python3 generate_endf71.py

NJOY2016

git clone https://github.com/njoy/NJOY2016.git

cd NJOY2016

wget https://raw.githubusercontent.com/njoy/signatures/master/NJOY2016/2020-03-31_15:16:37.json

./metaconfigure/fetch_subprojects.py 2020-03-31_15:16:37.json

mkdir bin
cd bin

cmake -D fetched_subprojects=true -Dstatic_libraries=ON -Dstatic_njoy=ON -DCMAKE_EXE_LINKER_FLAGS=-static ../

After installing NJOY2016,

python3 utils.py install
python3 generate_endf71.py

I think It will be helpful for you.

Dear Pranto, I send you a personal email. Please check.