Not Clear On How To Install Cross Sections

Hi There,

I’ve got the JEFF 3.1.2 “Joint Evaluated Nuclear Data Library for Fission and Fusion Applications” from the NEA.

I’ve read in the instillation instructions: “In the root directory, a file named xsdir, or some variant thereof, should be present.”

I do not see any sort of xsdir. I see many different folders: neutron data, proton data, something called ‘thermal scattering’ (which I assume is neutron related.)

Attached is a tree of the disc.

I was wondering if anyone could point me into the direction of the directory I should use.

also, I notice there are zip files for different temperatures. Is the data in here? should I unzip them?

JEFF tree.txt (145 KB)

Hi Terry,

My apologies for the lack of directions for how to use the JEFF 3.1.2 data. The instructions currently there were for JEFF 3.1.1 and they changed the directory structure in 3.1.2. Here’s what I did to get 3.1.2 working:

  1. Get the zip files from data/Neutron/ACE on the DVD.
  2. Unzip the files.
  3. Join all the *.dir files into an ‘xsdir’ file. On linux, I did this with
    cat *.dir > xsdir
  4. Add two lines to the top of the xsdir file, one reading “atomic weight ratios” and the second reading “directory” (both without the quotes).
  5. There is script in openmc/src/utils called convert_xsdir.py that will convert an MCNP-style xsdir file into an OpenMC-style cross_sections.xml file. You will need to run this script. I did:
    ~/openmc/src/utils/convert_xsdir.py xsdir cross_sections_jeff.xml
  6. Now you should have a directory with a bunch of *.ACE files and a cross_sections_jeff.xml file. At this point, you need to tell OpenMC to use the cross_sections_jeff.xml file. This can be done with either the <cross_sections> tag in settings.xml or the CROSS_SECTIONS environment variable. For more on that see http://mit-crpg.github.io/openmc/usersguide/install.html#cross-section-configuration

I haven’t posted these directions on the documentation because I was planning to just create a cross_sections.xml file and include it with the OpenMC distribution, thus saving users like you the hassle. Unfortunately I haven’t had a chance to generate that file for all temperatures and with S(a,b) tables but I’ll try to do that soon. Let me know if there’s anything else I can help with in the meantime.

Best regards,
Paul

Now, how should I handle the different temperatures?

Okay, I followed your instructions on the 300K data. Opening the file, it gave all the entries a temperature of 2.585e-08

Just looking at the dir file (I don’t know its format), shouldn’t it be 223?
eg:
89225.03c 223.090000 Ac225.ACE 0 1 1 13098 0 0 2.585E-08

This is Ac225 at 300K. It looks like the temperature is entry number 2; 223.09

whereas the XML file generated reads:

<ace_table alias=“Ac-225.03c” awr=“223.09” location=“1” name=“89225.03c” path=“Ac225.ACE” temperature=“2.585e-08” zaid=“89225”/>

Now, I think what I should do is generate the XML files for each temperature set, and then set the path to be something like 300k/Ac225.ACE is this correct?

The temperature is actually given in kT where k is Boltzmann’s constant (in MeV/K). So 2.585e-08 MeV = 8.617e-11 MeV/K * 300 K. For Ac-225, 223.09 is the atomic weight ratio (hence awr) which is the mass of the nuclide in terms of neutron masses.

For a multi-temperature library, you would want to create a set of directories, each with the ace files for one temperature. Then, as you suggest, you would have one cross_sections.xml file that lists all ACE files and the path would include the directory that they are in, e.g. path=“300k/Ac225.ACE”, to distinguish the same nuclide at different temperatures.

Best regards,
Paul

Now, what about the tag?

For example, in the 300K directory, it’s set to:
./ACEs_300K

Does this need to be changed?

OpenMC will search for directory + path. Thus if you want to have one cross_sections.xml file, the directory element should be the base directory (containing the folders for each temperature) and the path attribute on each ace_table element should include the ACEs_###K directory. If you have multiple cross_sections.xml files, you won’t be able to use more than one temperature in a simulation.

Okay, I’ve done that and got the settings.xml file written.

I tried to run the basic example, but the <default_xs> was set to 70c, which does not exist.

I changed that to 03c which does exist, and I get the following message:
ERROR: Could not find S(a,b) table lwtr.10t in cross_sections.xml file!

Do you have any insight as to why this is happening?

Also, having to set the <default_xs> or xs= attribute imply that I can’t set a material temperature at an arbitrary value? That I can only use a value for which I have cross sections for?

My calculations would be much better done if I could set an arbitrary temperature value.

Ah figured it out. It’s an upper case K not lower.

One should note that the STL ACEs by default have lower case ace extensions, not upper.

Okay, yes, it’s finally work :smiley:

Thank you so much for all your help. :smiley: I’ll be sure to help any other users that come along.

Glad to hear it is working for you. I finally went through and took the time to build the cross_sections.xml file for JEFF 3.1.2 with all temperatures and S(a,b) tables. One thing I noticed is that metastable nuclides have the same designator as their stable counterparts, e.g. 95242 is used for both Am-242 and Am-242m. To fix this, I changed the alias of the metastable nuclides so that you can identify them as, e.g., Am-242m. Others include Co-58m, Pm-148m, Ag-110m, Cd-115m, Te-127m, Te-129m, and Am-244m. I’ve attached my modified cross_sections.xml file which I will likely add to the OpenMC distribution.

A little background on the “alias” – you can identify a nuclide in a materials.xml by either its ZAID (Z1000 + A) or an alias which is the element name, a hyphen, and the mass number. So uranium-235 can be given as 92235 or U-235. With metastable nuclides the simple ZAID does not uniquely identify the nuclide unfortunately. In other cross section libraries, some convention exists to uniquely identify ground and metastable nuclides. MCNP assigns a ZAID of Z1000 + A + 400 for many metastables nuclides.

cross_sections.xml (584 KB)

Hi,

I got the same error while (trying) to run the basic example:
ERROR: Could not find S(a,b) table lwtr.10t in cross_sections.xml file!

How did you solve it?

Thanks,

Matheus

The naming is different in the basic example and the JEFF 3.1.1 cross sections. Look for the name of the light water cross sections in the cross_sections.xml file and make the appropriate change in materials.xml

Thanks Terry and Paul.

Now, it works!

I’m using JEFF3.1.2 and for the basic example i replaced lwtr.10t with lw00.32t, because it has the same temperature on the basic example.

The results obtained were:
k-effective (Collision) = 0.61878 +/- 0.00205
k-effective (Track-length) = 0.61807 +/- 0.00266
k-effective (Absorption) = 0.62142 +/- 0.00209
Combined k-effective = 0.62032 +/- 0.00209
Leakage Fraction = 0.67126 +/- 0.00105

Also, on the element directory of the cross_sections_jeff.xml file I need to insert my user name, despite it not being shown on “file manager” and, sometimes, accepting linux “cd” command without it.
it was:
/home/JEFF3.1.2/data/Neutron/ACE/
Now is:
/home/user_name/JEFF3.1.2/data/Neutron/ACE/

Thanks again!

Hello,

I’m just starting using OpenMC and trying to install cross sections. I have the ace files of serpent. After looking at your cross_sections_serpent.xml file, I found that there is differences between files names of my libraries and yours. I found also that you have a single file for each nuclide containing all informations for different temperature, In mines, I have different files.

your file:

<ace_table alias=“H-1.03c” awr=“0.999167” location=“3502” name=“1001.03c” path=“1001ENDF7.ace” temperature=“2.585e-08” zaid=“1001”/>

<ace_table alias=“H-1.06c” awr=“0.999167” location=“4669” name=“1001.06c” path=“1001ENDF7.ace” temperature=“5.17e-08” zaid=“1001”/>

<ace_table alias=“H-1.09c” awr=“0.999167” location=“5836” name=“1001.09c” path=“1001ENDF7.ace” temperature=“7.756e-08” zaid=“1001”/>

<ace_table alias=“H-1.12c” awr=“0.999167” location=“1” name=“1001.12c” path=“1001ENDF7.ace” temperature=“1.034e-07” zaid=“1001”/>

My file should be:

<ace_table alias=“H-1.03c” awr=“0.999167” location=“1” name=“1001.03c” path=“1001_300K.ace” temperature=“2.585e-08” zaid=“1001”/>

<ace_table alias=“H-1.06c” awr=“0.999167” location=“1” name=“1001.06c” path=“1001_600K.ace” temperature=“5.17e-08” zaid=“1001”/>

<ace_table alias=“H-1.09c” awr=“0.999167” location=“1” name=“1001.09c” path=“1001_900K.ace” temperature=“7.756e-08” zaid=“1001”/>

<ace_table alias=“H-1.12c” awr=“0.999167” location=“1” name=“1001.12c” path=“1001_1200K.ace” temperature=“1.034e-07” zaid=“1001”/>

So My question is: Can I use the same script that you developed for jeff libraries to build my xml file using serpent ace files ??

Thank you.

Hi Mehdi,

You should be able to use the openmc/src/utils/convert_xsdata.py script to convert a Serpent-style xsdata file to an OpenMC-style cross_sections.xml. With that being said, I will give you a warning that the script will not correctly handle situations where multiple nuclides at the same temperatures are stored in the same file. In your case, it looks like it should be ok since the same nuclide at different temperatures are stored in different files.

Best regards,
Paul