Prompt Fission Neutron SpectrumΒΆ
[1]:
### initializations and import libraries
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
%matplotlib inline
%pylab inline
from CGMFtk import histories as fh
Populating the interactive namespace from numpy and matplotlib
[2]:
### rcParams are the default parameters for matplotlib
import matplotlib as mpl
print ("Matplotbib Version: ", mpl.__version__)
mpl.rcParams['font.size'] = 18
mpl.rcParams['font.family'] = 'Helvetica', 'serif'
#mpl.rcParams['font.color'] = 'darkred'
mpl.rcParams['font.weight'] = 'normal'
mpl.rcParams['axes.labelsize'] = 18.
mpl.rcParams['xtick.labelsize'] = 18.
mpl.rcParams['ytick.labelsize'] = 18.
mpl.rcParams['lines.linewidth'] = 2.
font = {'family' : 'serif',
'color' : 'darkred',
'weight' : 'normal',
'size' : 18,
}
mpl.rcParams['xtick.major.pad']='10'
mpl.rcParams['ytick.major.pad']='10'
mpl.rcParams['image.cmap'] = 'inferno'
Matplotbib Version: 3.1.3
First, we read the default CGMF output.
[3]:
hist = fh.Histories('98252sf.cgmf')
Neutron energies in the center-of-mass and laboratory reference frames can be obtained as:
[5]:
Ecm = hist.getNeutronEcm()
Elab = hist.getNeutronElab()
Extracting the list of neutron energies in the center-of-mass frame of the emitting fragment for the fission fragment number 154 (light fragment of the 76th event):
[8]:
print (Ecm[154])
[6.987, 0.665, 0.88]
All neutron energies can then be binned in histograms, and analyzed and plotted that way. The CGMF
python package Histories come with a function to directly extract PFNS:
[9]:
eout,pfns = hist.pfns()
which returns two arrays: (1) the outgoing energy grid (midpoints in MeV); (2) the prompt fission neutron spectrum (in n/MeV/nu-bar).
The result can be plotted using:
[10]:
fig=figure(figsize(14,6))
plt.subplot(1,2,1)
plt.step(eout,pfns,'r-',linewidth=3,where='mid')
plt.xlim(0.1,20.0)
plt.ylim(1e-5,1.0)
plt.xlabel("Outgoing Neutron Energy (MeV)")
plt.ylabel(r"PFNS (n/f/MeV/$\overline{\nu}$)")
plt.yscale('log')
plt.subplot(1,2,2)
plt.step(eout,pfns,'r-',linewidth=3,where='mid')
plt.xlim(0.1,20.0)
plt.xscale('log')
plt.xlabel("Outgoing Neutron Energy (MeV)")
plt.ylabel(r"PFNS (n/f/MeV/$\overline{\nu}$)")
plt.tight_layout()
plt.show()
[ ]: