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
) – TheMoessbauerIsotope
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
) – TheMoessbauerIsotope
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].
Added 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)