Observables and workspaces

The xs submodule contains the Workspace classes which are used to compute observables.

Elastic-scattering observables built from the R-matrix solver.

class jitr.xs.elastic.ElasticXS(dsdo, Ay, Q, t, rxn)[source]

Bases: object

Container for elastic-scattering observables.

Variables:
  • dsdo – Differential cross section in mb/sr.

  • Ay – Analyzing power.

  • Q – Spin-rotation function.

  • t – Total cross section in mb.

  • rxn – Reaction cross section in mb.

Parameters:
dsdo: ndarray
Ay: ndarray
Q: ndarray
t: float64
rxn: float64
class jitr.xs.elastic.IntegralWorkspace(reaction, kinematics, channel_radius_fm, solver, lmax, smatrix_abs_tol=1e-06)[source]

Bases: object

Workspace for integral elastic observables with spin-orbit coupling.

Parameters:
radial_grid()[source]

Return the physical quadrature grid used for local potentials.

Return type:

ndarray[tuple[Any, ...], dtype[double]]

smatrix(central_potential, spin_orbit_potential=None, coulomb_potential=None)[source]

Compute the elastic S-matrix for j=l±1/2 channels.

Return type:

tuple[ndarray[tuple[Any, ...], dtype[cdouble]], ndarray[tuple[Any, ...], dtype[cdouble]]]

Parameters:
  • central_potential (ArrayLike)

  • spin_orbit_potential (ArrayLike | None)

  • coulomb_potential (ArrayLike | None)

xs(central_potential, spin_orbit_potential=None, coulomb_potential=None)[source]

Return total and reaction cross sections in mb.

Return type:

tuple[float, float]

Parameters:
  • central_potential (ArrayLike)

  • spin_orbit_potential (ArrayLike | None)

  • coulomb_potential (ArrayLike | None)

transmission_coefficients(central_potential, spin_orbit_potential=None, coulomb_potential=None)[source]

Return transmission coefficients for j=l±1/2 channels.

Return type:

tuple[ndarray, ndarray]

Parameters:
  • central_potential (ArrayLike)

  • spin_orbit_potential (ArrayLike | None)

  • coulomb_potential (ArrayLike | None)

class jitr.xs.elastic.DifferentialWorkspace(integral_workspace, angles)[source]

Bases: object

Workspace for angular elastic-scattering observables.

Parameters:
classmethod build_from_system(reaction, kinematics, channel_radius_fm, solver, lmax, angles, smatrix_abs_tol=1e-06)[source]

Construct a differential workspace from the raw system inputs.

Return type:

DifferentialWorkspace

Parameters:
f_c: ndarray[tuple[Any, ...], dtype[float64]] | ndarray[tuple[Any, ...], dtype[complex128]]
rutherford: ndarray[tuple[Any, ...], dtype[float64]] | None
radial_grid()[source]

Return the physical quadrature grid used for local potentials.

Return type:

ndarray[tuple[Any, ...], dtype[double]]

rutherford_xs(angles)[source]

Return the Rutherford cross section in mb/sr.

Return type:

ndarray[tuple[Any, ...], dtype[double]]

Parameters:

angles (ndarray[tuple[Any, ...], dtype[float64]])

coulomb_amplitude(angles, sigma_0)[source]

Return the Coulomb scattering amplitude.

Return type:

ndarray[tuple[Any, ...], dtype[cdouble]]

Parameters:
coulomb_phase_shift(ls)[source]

Return Coulomb phase shifts for the supplied partial waves.

Return type:

ndarray[tuple[Any, ...], dtype[double]]

Parameters:

ls (ndarray[tuple[Any, ...], dtype[float64]])

xs(central_potential, spin_orbit_potential=None, coulomb_potential=None)[source]

Return differential and integral elastic observables.

Return type:

ElasticXS

Parameters:
  • central_potential (ArrayLike)

  • spin_orbit_potential (ArrayLike | None)

  • coulomb_potential (ArrayLike | None)

jitr.xs.elastic.integral_elastic_xs(k, Splus, Sminus, ls)[source]

Return total and reaction cross sections for spin-1/2 on spin-0 scattering.

Return type:

tuple[float, float]

Parameters:
jitr.xs.elastic.differential_elastic_xs(k, angles, splus, sminus, ls, P_l_costheta, P_1_l_costheta, f_c=0, sigma_l=0, eps=1e-30)[source]

Return differential and integral elastic observables.

The returned tuple contains (dσ/dΩ, A_y, Q, σ_total, σ_reaction).

Return type:

tuple[ndarray, ndarray, ndarray, float, float]

Parameters:
jitr.xs.elastic.check_angles(angles)[source]

Validate that the angle grid is one-dimensional and lies on [0, π).

Return type:

None

Parameters:

angles (ndarray[tuple[Any, ...], dtype[float64]])

DWBA workspaces for quasi-elastic (p,n) scattering observables.

class jitr.xs.quasielastic_pn.System(channel_radius_fm, lmax, reaction, kinematics_entrance, kinematics_exit)[source]

Bases: object

System for (p,n) quasi-elastic scattering observables for local interactions This system contains the entrance and exit channels, which are defined by the projectile and target masses, charges, and the channel radius.

Variables:
  • channel_radius_fm – The channel radius in femtometers.

  • lmax – The maximum angular momentum quantum number.

  • l – An array of angular momentum quantum numbers from 0 to lmax.

  • entrance – The entrance channel system, including projectile/target masses, charges, and the channel radius.

  • exit – The exit channel system, including product/residual masses, charges, and the channel radius.

Parameters:
class jitr.xs.quasielastic_pn.Workspace(reaction, kinematics_entrance, kinematics_exit, solver, angles, lmax, channel_radius_fm, tmatrix_abs_tol=1e-06)[source]

Bases: object

Workspace for (p,n) quasi-elastic scattering observables in the DWBA. This class computes the transition matrix and differential cross section for the (p,n) reaction using the distorted wave Born approximation (DWBA).

Parameters:
radial_grid()[source]

Return the physical quadrature grid used for local potentials.

Return type:

ndarray[tuple[Any, ...], dtype[double]]

tmatrix(U_p_coulomb, U_p_central, U_p_spin_orbit=None, U_n_central=None, U_n_spin_orbit=None)[source]

Calculate the transition matrix for (p,n) quasi-elastic scattering using the distorted wave Born approximation (DWBA).

Parameters:
  • U_p_coulomb (TypeAliasType) – Coulomb interaction for the proton.

  • U_p_central (TypeAliasType) – Central interaction for the proton.

  • U_p_spin_orbit (TypeAliasType | None) – Spin-orbit interaction for the proton.

  • U_n_central (TypeAliasType | None) – Central interaction for the neutron.

  • U_n_spin_orbit (TypeAliasType | None) – Spin-orbit interaction for the neutron.

Return type:

tuple[ndarray, ndarray, ndarray]

Returns:

Tuple (Tpn, Sn, Sp) where Tpn is the transition matrix for the (p,n) reaction, Sn is the S-matrix for the neutron elastic exit channel, and Sp is the S-matrix for the proton elastic entrance channel.

xs(U_p_coulomb, U_p_central, U_p_spin_orbit=None, U_n_central=None, U_n_spin_orbit=None)[source]

Calculate the differential cross section for (p,n) quasi-elastic scattering in mb/Sr in the outgoing neutron angle using DWBA.

Parameters:
  • U_p_coulomb (TypeAliasType) – Coulomb interaction for the proton.

  • U_p_central (TypeAliasType) – Central interaction for the proton.

  • U_p_spin_orbit (TypeAliasType | None) – Spin-orbit interaction for the proton.

  • U_n_central (TypeAliasType | None) – Central interaction for the neutron.

  • U_n_spin_orbit (TypeAliasType | None) – Spin-orbit interaction for the neutron.

Return type:

ndarray

Returns:

Differential cross section for the (p,n) reaction in mb/Sr.