Reflection and Transmission Coefficients and Wave Function in the Diffraction Case

Added in version 0.9.7.

This module provides a collection of functors for calculating reflection and transmission coefficients, as well as the scattering wave function within multilayer samples. The calculations are based on the matrix formalism of the two-beam approximation of dynamical diffraction theory.

The functors in this module are useful for modeling various phenomena, including: - Grazing incidence small angle scattering - Standing wave applications, such as searching for resonance conditions - Emission of gamma rays and other related applications

Functions:

  • diffreftrans_rm: Computes the reflection coefficient for a given mode and parameters.

  • diffreftrans_tm: Computes the transmission coefficient for a given mode and parameters.

  • diffreftrans_wf: Computes the wave function for a given mode and parameters.

escape.scattering.diffreftrans.diffreftrans_rm(p0: FunctorLike, ml: multilayer_obj, layidx: int, h: int, k: int, l: int, index: str = '11', beta: float = 1.0, source: source_obj | None = None, name: str = 'Reflection Coefficient', notes: str = '') cplx_functor_obj

Calculate the reflection coefficient inside the layer with index layidx.

Parameters:

p0FunctorLike

The functor or variable object representing the Kz-component of the wave vector.

mlmultilayer_obj

The multilayer object representing the sample.

layidxint

The index of the layer in the multilayer sample.

hint

The h-index for the diffraction calculation.

kint

The k-index for the diffraction calculation.

lint

The l-index for the diffraction calculation.

indexstr, optional

The index type, either ‘11’ or ‘21’ (default is ‘11’).

betafloat, optional

Asymmetry factor \(\beta=g_0/g_h\) (default is 1.0).

sourcesource_obj, optional

The source object (default is None).

namestr, optional

The name of the functor.

notesstr, optional

User notes for the object.

Returns:

cplx_functor_obj

The computed reflection coefficient as a complex functor object.

Raises:

ValueError

If the index is not one of the allowed values (‘11’, ‘21’).

escape.scattering.diffreftrans.diffreftrans_tm(p0: FunctorLike, ml: multilayer_obj, layidx: int, h: int, k: int, l: int, index: str = '11', beta: float = 1.0, source: source_obj | None = None, name: str = 'Transmission Coefficient', notes: str = '') cplx_functor_obj

Calculate the transmission coefficient inside the layer with index layidx.

Parameters:

p0FunctorLike

The functor or variable object representing the Kz-component of the wave vector.

mlmultilayer_obj

The multilayer object representing the sample.

layidxint

The index of the layer in the multilayer sample.

hint

The h-index for the diffraction calculation.

kint

The k-index for the diffraction calculation.

lint

The l-index for the diffraction calculation.

indexstr, optional

The index type, either ‘11’ or ‘21’ (default is ‘11’).

betafloat, optional

Asymmetry factor \(\beta=g_0/g_h\) (default is 1.0).

sourcesource_obj, optional

The source object (default is None).

namestr, optional

The name of the functor.

notesstr, optional

User notes for the object.

Returns:

cplx_functor_obj

The computed transmission coefficient as a complex functor object.

Raises:

ValueError

If the index is not one of the allowed values (‘11’, ‘21’).