Cross Section Models – pyne.xs.models

This module provides functions to compute cross sections, and related quantities, from fundamental physical models. From an empirical perspective, physical models are not as valuable as experimental data. However, these functions exist to be called upon when experimental data is not available.

All functionality may be found in the models module:

from pyne.xs import models

Many of these functions may be called with either scalar or vector arguments.

The following terminology applies for this module:

  • G: The number of low-resolution energy groups, indexed by g.
  • N: The number of high-resolution energy groups, indexed by n.
  • E_g: The low-resolution group structure [MeV]. Must be monotonic.
  • E_n: The high-resolution group structure [MeV]. Must be monotonic in the same direction as E_g.
  • phi: Neutron flux [n/cm^2/s].
  • E: The incident neutron energy [MeV].
  • E’: The exiting neutron energy [MeV].
  • theta: The scattering angle [radians].
  • M_A: The atomic mass [amu] of the target material.
  • T: The temperature [kelvin] of the target material.

Models API

This module provides physical cross-section models and helper functions.

pyne.xs.models.E_prime_min()

The minimum possible exiting enegy of a neuron after a scattering collision. This is based on the incident energy and the mass of the target. For a proof, use the conservation of energy and momentum.

System Message: WARNING/2 (\mbox{min}(E^\prime) = \left(\frac{M_A - m_n}{M_A + m_n}\right)^2 E)

latex exited with error [stdout] This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./math.tex LaTeX2e <2016/02/01> Babel <3.9q> and hyphenation patterns for 3 language(s) loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls Document Class: article 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty ! LaTeX Error: File `utf8x.def' not found. Type X to quit or <RETURN> to proceed, or enter new name. (Default extension: def) Enter file name: ! Emergency stop. <read *> l.173 \endinput ^^M No pages of output. Transcript written on math.log.
Parameters:

E : float (or array)

The incident energy of the neutron prior to scattering event [MeV].

M_A : float (or array), optional

Atomic mass of the target nucleus [amu].

Returns:

min_E_prime : float (or array)

Minimum exiting energy.

pyne.xs.models.alpha()

Scattering kernel alpha value.

System Message: WARNING/2 (\alpha = \frac{E^\prime + E - 2\sqrt{E^\prime E}\cos\theta}{\frac{M_A}{m_n}kT})

latex exited with error [stdout] This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./math.tex LaTeX2e <2016/02/01> Babel <3.9q> and hyphenation patterns for 3 language(s) loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls Document Class: article 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty ! LaTeX Error: File `utf8x.def' not found. Type X to quit or <RETURN> to proceed, or enter new name. (Default extension: def) Enter file name: ! Emergency stop. <read *> l.173 \endinput ^^M No pages of output. Transcript written on math.log.
Parameters:

E_prime : float (or array)

The exiting energy of the neutron after scattering event [MeV].

E : float (or array)

The incident energy of the neutron prior to scattering event [MeV].

theta : float (or array)

Scattering angle in [radians].

M_A : float (or array), optional

Atomic mass of the target nucleus [amu].

T : float (or array), optional

Tempurature of the target material [kelvin].

Returns:

a : float (or array)

alpha value

pyne.xs.models.alpha_at_theta_0()

Scattering kernel alpha value at the lower bound of the scattering angle.

System Message: WARNING/2 (\alpha_{\theta=0} = \frac{E^\prime + E - 2\sqrt{E^\prime E}}{\frac{M_A}{m_n}kT})

latex exited with error [stdout] This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./math.tex LaTeX2e <2016/02/01> Babel <3.9q> and hyphenation patterns for 3 language(s) loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls Document Class: article 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty ! LaTeX Error: File `utf8x.def' not found. Type X to quit or <RETURN> to proceed, or enter new name. (Default extension: def) Enter file name: ! Emergency stop. <read *> l.173 \endinput ^^M No pages of output. Transcript written on math.log.
Parameters:

E_prime : float (or array)

The exiting energy of the neutron after scattering event [MeV].

E : float (or array)

The incident energy of the neutron prior to scattering event [MeV].

M_A : float (or array), optional

Atomic mass of the target nucleus [amu].

T : float (or array), optional

Tempurature of the target material [kelvin].

Returns:

a : float (or array)

alpha value with theta = 0.

pyne.xs.models.alpha_at_theta_pi()

Scattering kernel alpha value at the upper bound of the scattering angle.

System Message: WARNING/2 (\alpha_{\theta=\pi} = \frac{E^\prime + E + 2\sqrt{E^\prime E}}{\frac{M_A}{m_n}kT})

latex exited with error [stdout] This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./math.tex LaTeX2e <2016/02/01> Babel <3.9q> and hyphenation patterns for 3 language(s) loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls Document Class: article 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty ! LaTeX Error: File `utf8x.def' not found. Type X to quit or <RETURN> to proceed, or enter new name. (Default extension: def) Enter file name: ! Emergency stop. <read *> l.173 \endinput ^^M No pages of output. Transcript written on math.log.
Parameters:

E_prime : float (or array)

The exiting energy of the neutron after scattering event [MeV].

E : float (or array)

The incident energy of the neutron prior to scattering event [MeV].

M_A : float (or array), optional

Atomic mass of the target nucleus [amu].

T : float (or array), optional

Tempurature of the target material [kelvin].

Returns:

a : float (or array)

alpha value with theta = pi.

pyne.xs.models.beta()

Scattering kernel beta value.

System Message: WARNING/2 (\beta = \frac{E^\prime - E}{kT})

latex exited with error [stdout] This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./math.tex LaTeX2e <2016/02/01> Babel <3.9q> and hyphenation patterns for 3 language(s) loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls Document Class: article 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty ! LaTeX Error: File `utf8x.def' not found. Type X to quit or <RETURN> to proceed, or enter new name. (Default extension: def) Enter file name: ! Emergency stop. <read *> l.173 \endinput ^^M No pages of output. Transcript written on math.log.
Parameters:

E_prime : float (or array)

The exiting energy of the neutron after scattering event [MeV].

E : float (or array)

The incident energy of the neutron prior to scattering event [MeV].

T : float (or array), optional

Tempurature of the target material [kelvin].

Returns:

b : float

beta value.

pyne.xs.models.chi()

Calculates the fission neutron spectrum (frequency) at energy E. E may be either a float or an array of floats. This is based off of the values for U-235, which are representative for other isotopes. See Lamarsh or ‘Comparison of prompt-fission neutron multiplicities and energy spectra for intermediate energy proton-and neutron-induced fission’ –Oleg Batenkov, Georgy Boikov, Vilen Eismont, Mikhail Majorov, Sergey Soloviev, Jan Blomgren, and Walter Loveland.

pyne.xs.models.group_collapse()

Calculates the group cross-sections for a nuclide for a new, lower resolution group structure using a higher fidelity flux. Note that g indexes G, n indexes N, and G < N.

This function has two optional ways of being called. If the group boundaries E_g and E_n are provided, this will collapse the flux automatically. However, if a partial energy matrix and flux collapse has already been performed you can shortcut their recalculation by calling this function with the phi_g and partial_energies keyword arguments.

Parameters:

sigma_n : array-like of floats)

A high-fidelity cross-section.

phi_n : array-like of floats

The high-fidelity flux [n/cm^2/s] to collapse the fission cross-section over (length N).

phi_g : array-like of floats, optional

The low-fidelity flux [n/cm^2/s] to collapse the fission cross-section down to (length G). If present, partial_energies is needed as well.

partial_energies : 2D array-like of floats, optional

A partial energy matrix as provided by a previous call to the function partial_energy_matrix(). If present, phi_g is needed as well.

E_g : array-like of floats, optional

Lower resolution energy group structure [MeV] that is of length G+1. If present, E_n is needed as well.

E_n : array-like of floats, optional

Higher resolution energy group structure [MeV] that is of length N+1. If present, E_g is needed as well.

Returns:

sigma_g : ndarray

An array of the collapsed fission cross-section.

pyne.xs.models.one_over_gamma_squared()

The inverse of the Lorentz factor sqared. Sometimes used as a realitivistic correction factor for the bound scattering length.

System Message: WARNING/2 (\frac{1}{\gamma^2} = \left( 1 - \frac{2E}{931.46 \cdot m_n} \right))

latex exited with error [stdout] This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./math.tex LaTeX2e <2016/02/01> Babel <3.9q> and hyphenation patterns for 3 language(s) loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls Document Class: article 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty ! LaTeX Error: File `utf8x.def' not found. Type X to quit or <RETURN> to proceed, or enter new name. (Default extension: def) Enter file name: ! Emergency stop. <read *> l.173 \endinput ^^M No pages of output. Transcript written on math.log.
Parameters:

E : float (or array)

The incident energy of the neutron prior to scattering event [MeV].

Returns:

inv_g2 : float (or array)

Inverse of gamma squared.

pyne.xs.models.partial_energy_matrix()

Gerenates a matrix of fractional values that may be used to converts a high-resolution flux array with group structure E_n to a low-resolution flux array with group-structure E_g. The group structures must have the same monotonicity. This is useful for performing group collapses.

Parameters:

E_g : sequence of floats

Lower resolution energy group structure [MeV] that is of length G+1.

E_n : sequence of floats

Higher resolution energy group structure [MeV] that is of length N+1.

Returns:

pem : 2d numpy float array of fractions

This is a GxN sized matrix that when dotted with a high-resolution flux (or cross section) produces a low-resolution flux (or cross section).

pyne.xs.models.partial_energy_matrix_mono()

Generates a matrix of fractional values that may be used to converts a high-resolution flux array with group structure E_n to a low-resolution flux array with group-structure E_g. Here, both of the energy arrays must be monotonic. This is useful for performing group collapses.

Parameters:

E_g : 1d numpy float array

Lower resolution energy group structure [MeV] that is of length G+1. Ordered based on slope.

E_n : 1d numpy float array

Higher resolution energy group structure [MeV] that is of length N+1. Ordered based on slope.

slope : int, optional

Gives the monotonicity of E_g and E_n. If positive, then they are monotonicly increasing (lowest-to-highest). If negative, they are monotonicly decreasing (highest-to-lowest).

Returns:

pem : 2d numpy float array of fractions

This is a GxN sized matrix that when dotted with a high-resolution flux (or cross section) produces a low-resolution flux (or cross section).

pyne.xs.models.phi_g()

Calculates a lower resolution flux, phi_g, from a lower resolution group stucture E_g, a higher resolution groups E_n, and a higher resolution flux phi_n.

Parameters:

E_g : sequence of floats

Lower resolution energy group structure [MeV] that is of length G+1.

E_n : sequence of floats

Higher resolution energy group structure [MeV] that is of length N+1.

phi_n : sequence of floats

The high-fidelity flux [n/cm^2/s] to collapse the fission cross-section over (length N).

Returns:

phi_g : numpy array of floats

The flux collapsed to G energy groups.

pyne.xs.models.sigma_s()

Computes the scattering cross section from an analytic model. The model accounts for both one-over-v dependence and relativistic effects and the bound scattering length provided. This model does not include resonances. This function works on both float and array values for the energy.

System Message: WARNING/2 (\sigma_s(E) = 4 \pi b^2 \cdot \left( 1 - \frac{2E}{931.46 \cdot m_n} \right) \cdot \left( 1 + \frac{m_n}{M_A} \frac{kT}{E} \cdot e^{-\frac{M_A}{m_n}\frac{E}{kT}} \right) \cdot \left( 1 - \mbox{Exp}\left[-\sqrt{\frac{0.1}{E}}\right] \right))

latex exited with error [stdout] This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./math.tex LaTeX2e <2016/02/01> Babel <3.9q> and hyphenation patterns for 3 language(s) loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls Document Class: article 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty ! LaTeX Error: File `utf8x.def' not found. Type X to quit or <RETURN> to proceed, or enter new name. (Default extension: def) Enter file name: ! Emergency stop. <read *> l.173 \endinput ^^M No pages of output. Transcript written on math.log.
Parameters:

E : float or array-like

The incident energy of the neutron prior to the scattering event [MeV].

b : float, optional

The bound scattering length of the target nucleus [cm].

M_A : float, optional

Atomic mass of the target nucleus [amu].

T : float, optional

Tempurature of the target material [kelvin].

Returns:

sig_s : float or ndarray

The scattering cross section evaluated at the given energy.

See also

pyne.data.b
scattering length data.
pyne.data.atomic_mass
Atomic mass data.
pyne.xs.models.sigma_s_const()

Computes the constant scattering cross-section based on the scattering length.

System Message: WARNING/2 (\sigma_s = 4 \pi b^2)

latex exited with error [stdout] This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./math.tex LaTeX2e <2016/02/01> Babel <3.9q> and hyphenation patterns for 3 language(s) loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls Document Class: article 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty ! LaTeX Error: File `utf8x.def' not found. Type X to quit or <RETURN> to proceed, or enter new name. (Default extension: def) Enter file name: ! Emergency stop. <read *> l.173 \endinput ^^M No pages of output. Transcript written on math.log.
Parameters:

b : float (or array)

The bound scattering length [cm] of the target nucleus.

Returns:

sig_s : float (or array)

The micorscopic scattering cross-section [barns].

See also

pyne.data.b
scattering length data.