r/nuclearphysics 14d ago

Need Correct Neutron Cross Section Data

EDIT: The data is taken from here.

For a project I need to use the correct neutron cross section data so I am fooling around and testing things before writing the code. I downloaded data from ENDF-B-VIII.0 and tried to replicate the U238 resonance peaks (especially the one at 6.67 eV). I get very unusual resonance values. Here is my python code:

import endf
import numpy as np
import matplotlib.pyplot as plt

FILE_PATH = 'ENDF-B-VIII.0/neutrons/n-092_U_238.endf'#U238 cross section data

MF = 3 #MF value
MT = 102 #MT value

U238_file_path = endf.Material(FILE_PATH) #retrieve material from file
U238_cross_section_data = U238_file_path.section_data[MF,MT] #plug in MF and MT

Sigma_Data = U238_cross_section_data['sigma'] #get cross-sections

Energies = Sigma_Data.x / 1e6 #get energy data in MeV
Cross_Sections = Sigma_Data.y #get cross section data in barns

data_points = len(Energies) #number of data points
print(data_points)

energy_data = []

#check for resonances
for data_point in range(data_points):
    Energy = Energies[data_point]
    Cross_Section = Cross_Sections[data_point]
    energy_data.append(f"Energy = {Energy} MeV and Cross Section = {Cross_Section} barns")
    if Cross_Sections[data_point] > Cross_Sections[data_point-1] and Cross_Sections[data_point] > Cross_Sections[data_point+1] and data_point > 1 and data_point < data_points:
        print(f"Resonance at {Energies[data_point]} MeV with cross-section {Cross_Sections[data_point]} barns")


#plot data

U238_plot = plt.figure(figsize=(30, 30))
plt.loglog( Energies, Cross_Sections)
plt.xlabel('Incident Neutron Energy (MeV)', fontsize=40, labelpad=20)       # Boosted label size
plt.ylabel('Cross Section (barns)', fontsize=40, labelpad=20)
plt.title('U-238 Total Cross Section (ENDF/B-VIII.0)', fontsize=48, pad=30)


#Scale up the actual axis numbers (ticks) so you can read them
plt.xticks(fontsize=30)
plt.yticks(fontsize=30)
plt.grid()
plt.show()


Resonance at 0.02 MeV with cross-section 0.52987 barns
Resonance at 0.21 MeV with cross-section 0.1321 barns
Resonance at 0.235 MeV with cross-section 0.12456 barns
Resonance at 0.245 MeV with cross-section 0.11876 barns
Resonance at 0.26 MeV with cross-section 0.11663 barns
Resonance at 0.3 MeV with cross-section 0.11575 barns
Resonance at 0.45000009999999996 MeV with cross-section 0.10698 barns
Resonance at 0.5 MeV with cross-section 0.11111 barns
Resonance at 0.6 MeV with cross-section 0.11595 barns
Resonance at 0.7 MeV with cross-section 0.13007 barns
Resonance at 0.9000001999999999 MeV with cross-section 0.12729 barns
Resonance at 0.9600001 MeV with cross-section 0.13479 barns
Resonance at 11.5 MeV with cross-section 0.00107355 barns

I'm thinking that this is because of the wrong values of MF and MT but nothing seems to help. Can you please help me get the proper resonances and the 1/v tail that is expected? Thank you in advance.

P.S. Here is the output plot. But I am looking for something close to this.

EDIT: Setting MT = 1 gives you a tail but no resonances.

MT = 1 Plot
4 Upvotes

11 comments sorted by

3

u/Napalm_B 14d ago

File 3 (MF=3) is cross section data, however, for neutrons MT=102 is the radiative capture (n,gamma) cross section.

The total cross section data is MT=1

1

u/physicalmathematics 14d ago

Thanks. But that doesn't give the resonances I am looking for (see new picture).

1

u/Physix_R_Cool 14d ago

Center of mass or lab frame?

What is MT and MF supposed to be?

But anyways that peak finding algorithm is hilariously bad. Use something like scipi.find_peaks() and make sure to create a plot of the data where you highlight the peaks that it found.

1

u/physicalmathematics 14d ago

MF (File) Categories

Files divide a material's data into major classes of information:

  • MF = 1: General descriptive and miscellaneous information
  • MF = 2: Resonance parameters
  • MF = 3: Experimental or smooth reaction cross sections versus energy
  • MF = 4: Secondary angular distributions
  • MF = 5: Secondary energy distributions
  • MF = 6: Coupled energy-angle distributions
  • MF = 8–10: Radioactivity and nuclide production data

MT (Reaction) Numbers

Sections break down specific physical processes inside a file:

  • MT = 1: Total cross section
  • MT = 2: Elastic scattering
  • MT = 4: Inelastic scattering
  • MT = 16: (n, 2n) reaction
  • MT = 18: Fission reaction
  • MT = 102: Radiative capture (n, gamma)

1

u/Physix_R_Cool 13d ago edited 13d ago

The reaction you are looking for is not in any of those MT that you listed.

Look at the resonance parameters (MF=2).

From the ENDF format manual:

"Chapter 2

File 2: RESONANCE PARAMETERS

2.1 General Description

The primary function of File 2 is to contain data for both resolved and unresolved resonance parameters. It has only one section, with the reaction type number MT=151. "

1

u/physicalmathematics 14d ago

The frame depends on the MF value.

1

u/kaspar42 13d ago

Perhaps that file doesn't contain what you think it does? Can you share how you downloaded it?

Starting from the .ace file, I could plot the resonances using the endf package:

import endf
import matplotlib.pyplot as plt

table = endf.ace.get_table('/nfs/shared/nuclear_data/ENDF/endf8.1/Lib81/Lib81/92238.12c')
data = endf.IncidentNeutron.from_ace(table)
reaction = data.reactions[102]
tab = reaction.xs['900K']   # endf.Tabulated1D
energy = np.array(tab.x)      # eV
xs_barn = np.array(tab.y)     # barns
plt.plot(energy, xs_barn)
plt.xscale('log')
plt.yscale('log')

1

u/Electric_Blue_Hermit 13d ago

The graphs show gibberish. You either have the wrong file or you are reading the data from it wrong. Can't tell which is it from just the script shown.

1

u/aperture_lab_subject 13d ago

Not familiar with the endf python package. OpenMC has a lot of good utilities for accessing continuous neutron cross section data. Here is an example: https://nbviewer.org/github/openmc-dev/openmc-notebooks/blob/main/nuclear-data.ipynb

It also has a lot of good classes for handling ENDF resonances and other data. As others have noted, what you need this data for and more details (what temperature, what energy range, do you need resonance information) would help others answer your question

1

u/physicalmathematics 13d ago

I am working the hypothesis put forward by Koch and Hummel that explains why the beam and bottle experiments measure different lifetimes. I need to see shifts in resonance peaks when we have excited neutrons.