-
Notifications
You must be signed in to change notification settings - Fork 3
Isotopes
In PINSPEC isotopes are constructs that allow the user to set or access nuclide properties such as cross section, temperature, mass-related information and simulation behavior. Isotopes are added to materials, which are assigned to regions, which are added to the overall geometry. Adding isotopes to the simulation is very simple 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 isotope for U235 and O16 is shown below.
>>> u235 = Isotope('U-235')
>>> o16 = Isotope('O-16')
##Setting and Retrieving Cross Section Data Once a cross section is initialized it is automatically associated with the 300K ENDF/B-VII cross section files for elastic scattering, capture, and if appropriate, total fission. In PINSPEC users have the flexibility to reset them to other values by setting group cross sections for isotopes.
![O-16-micro-xs.png]
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.
>>> 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.
>>> xs = numpy.array([34.5])
>>> u235.setMultigroupCaptureXS(xs_energies, xs)
Users also have the ability to pull cross section values for an isotope for an energy or an array of energies. For example, you can check that you set the elastic and capture cross sections from the example above by retrieving them using the getElasticXS() and getCaptureXS() commands. Both take a single float argument representing the energy for the desired cross section.
>>> u235.getElasticXS(1E6)
29.5
>>> u235.getCaptureXS(1E3)
34.5
##Retrieving Other Nuclide Data
##Simulation Behavior
After initializing isotopes, the user can set options for them. One option available is to neglect the thermal scattering for an isotope. This causes the neutron to continue elastically scattering past the 4eV thermal energy cutoff.
>>> o16.neglectThermalScattering()
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 library, found at PINSPEC/pinspec/xs-lib. In another terminal window (or outside of the Python interpreter) you can navigate to the directory from the PINSPEC directory:
cd pinspec/xs-lib
ls
The ls command will list all of the files in the directory. 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.