Scattering Matrix

Funtions to calculate the forward or grazing-incidence scattering matrices.

nexus.ElectronicForwardScatteringFactor(material, energy)

Pure electronic forward scattering factor. Scalar version of Eq. (4.4), [Roehlsberger].

Parameters:
  • material (Material) – Material for the calculation.

  • energy (float) – Photon energy (eV).

Returns:

Electronic forward scattering factor.

Return type:

complex

nexus.ElectronicRefractiveIndex(material, energy)

Pure electronic refractive index in forward direction. Scalar version of Eq. (4.5), [Roehlsberger].

Parameters:
  • material (Material) – Material for the X-ray interaction.

  • energy (float) – Photon energy (eV).

Returns:

Electronic forward scattering factor.

Return type:

complex

nexus.ElectronicGrazingScatteringFactor(material, energy, kvector_z)

Pure electronic scattering factor in grazing incidence geometry. Scalar version of Eq. (4.25), [Roehlsberger].

Parameters:
  • material (Material) – Material for the X-ray interaction.

  • energy (float) – Photon energy (eV).

  • kvector_z (float) – k-vector component along layer direction.

Returns:

Electronic scattering factor.

Return type:

complex

nexus.ForwardScatteringMatrix(material, isotope, detuning, calc_transitions=True)

Forward scattering matrix. Eq. (4.4), [Roehlsberger].

Parameters:
  • material (Material) – Material for the X-ray interaction.

  • isotope (MoessbauerIsotope) – The MoessbauerIsotope for which the nuclear scattering length should be calculated.

  • detuning (list or ndarray) – Detuning values around the isotope transition energy.

  • calc_transition (bool) – Specifies if the nuclear transitions of the material are calculated before the scattering matrix is determined.

Returns:

List of 2x2 matrices of the forward scattering matrix (1/m).

Return type:

list

nexus.GrazingScatteringMatrix(material, isotope, detuning, kvector_z, calc_transitions=True)

Grazing-incidence scattering matrix. Eq. (4.25), [Roehlsberger].

Parameters:
  • material (Material) – Material for the X-ray interaction.

  • isotope (MoessbauerIsotope) – The MoessbauerIsotope for which the nuclear scattering length should be calculated.

  • detuning (list or ndarray) – Detuning values around the isotope transition energy.

  • kvector_z (float) – k-vector component along layer direction.

  • calc_transition (bool) – Specifies if the nuclear transitions of the material are calculated before the scattering matrix is determined.

Returns:

List of 2x2 matrices of the grazing-incidence scattering matrix (1/m).

Return type:

list

nexus.CriticalAngle(material, energy)

Calculates the critical angle of the material, see Eq. (4.22), [Roehlsberger].

New in version 1.0.3.

Parameters:
  • material (Material) – Material for the X-ray interaction.

  • energy (float) – Photon energy (eV).

Returns:

Critical angle (rad).

Return type:

float

Examples

material = nx.Material(id = "my_material",
                       composition = [["Fe", 2], ["O", 3]],
                       density = 5.24))

# k-vector along layer direction at an angle of 0.1 degree
kz = nx.conversions.EnergyToKvectorZ(20e3, 0.1)

scattering_factor = nx.ElectronicGrazingScatteringFactor(material, 20e3, kz)
print(scattering_factor)
# scattering matrix at 57-Fe transition energy
mat_Fe = nx.Material.Template(nx.lib.material.Fe_enriched)

site1 = nx.Hyperfine(magnetic_field = 33)

mat_Fe.hyperfinesites = [site1]

detuning = np.linspace(-200, 200, 201)

scattering_matrix = nx.ForwardScatteringMatrix(mat_Fe, nx.lib.moessbauer.Fe57, detuning)
print(scattering_matrix)