-
Notifications
You must be signed in to change notification settings - Fork 3
Isotopes
Adding isotopes to the simulation is very easy in PINSPEC. Users can add as many different isotopes as desired using the "Isotope" constructor. The argument is the element abbreviation and the mass number, surrounded in single quotes. An example defining the U235 isotope is shown below.
py_printf('INFO', 'Initializing isotopes...')
# Define isotopes
u235 = Isotope('U-235')
The PINSPEC package comes with a small library of isotope cross sections (ENDF/B-VII). In order to view this library, navigate to the cross section from the PINSPEC directory:
cd pinspec/xs-lib
This library contains isotopes of common reactor materials with capture, elastic scattering, and fission cross sections. It is possible to add to this library and use other isotopes from the ENDF/B-VII cross section library. To do this, visit the National Nuclear Data Center and follow the steps below:
- Select the element you wish to add to the library.
- On the right hand side, select the isotope.
- On the right hand side, select the "plot" link next to the cross section desired ((n,elastic), (n,gamma) or (n,total fission)). A new tab will appear.
- On the right hand side, click "view evaluated data".
- At the top of the page, scroll over the link called "Text". Right click and select "Save Link As..". This will give you the option of saving the cross section file as a text file. Save it in the xs-lib folder(PINSPEC/pinspec/xs-lib), and title it with the element abbreviation, mass number, and isotope designation. For example, the capture cross section (n,gamma) for Boron 10 should be saved as B-10-capture.txt. When the isotope is initialized in the input file, use the same formatting as the isotopes in the example; the element abbreviation and mass number: B-10.
##Other Isotope/Cross Section Options
After initializing isotopes, it is possible to set options for them. It is possible to neglect the thermal scattering for an isotope. This causes the neutron to continue elastically scattering past the 4eV thermal energy cutoff.
o16.neglectThermalScattering()
It is also possible to set group cross sections for isotopes. In the example, the command setMultigroupElasticXS() is used to create a flat elastic cross section over an energy interval. The first argument is an array with energies, and the second argument is the corresponding cross sections for those energies.
# Set one group potential elastic scattering xs for u-235
xs_energies = numpy.array([1E-5, 20E6])
xs = numpy.array([29.5])
u235.setMultigroupElasticXS(xs_energies, xs)
The same function also exists for the capture cross section. In this case the cross section is set to 34.5.
#Set one group capture scattering xs for u-235
xs = numpy.array([34.5])
u235.setMultigroupCaptureXS(xs_energies, xs)