Reflection and Transmission Coefficients and Wave Function in the Diffraction Case

New 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(name: str, p0: FunctorLike, ml: multilayer_obj, layidx: IntSettingLike, h: IntSettingLike, k: IntSettingLike, l: IntSettingLike, index: str = '11', beta: DoubleSettingLike = 1.0, source: Optional[source_obj] = None) cplx_functor_obj

Calculate the reflection coefficient inside the layer with index layidx.

namestr

The name of the functor.

p0Union[functor_obj, variable_obj]

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

mlmultilayer_obj

The multilayer object representing the sample.

layidxIntSettingLike

The index of the layer in the multilayer sample.

hIntSettingLike

The h-index for the diffraction calculation.

kIntSettingLike

The k-index for the diffraction calculation.

lIntSettingLike

The l-index for the diffraction calculation.

indexstr, optional

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

betaDoubleSettingLike, optional

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

sourcesource_obj, optional

The source object (default is None).

cplx_functor_obj

The computed reflection coefficient as a complex functor object.

ValueError

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

escape.scattering.diffreftrans.diffreftrans_tm(name: str, p0: FunctorLike, ml: multilayer_obj, layidx: IntSettingLike, h: IntSettingLike, k: IntSettingLike, l: IntSettingLike, index: str = '11', beta: DoubleSettingLike = 1.0, source: Optional[source_obj] = None) cplx_functor_obj

Calculate the transmission coefficient inside the layer with index layidx.

namestr

The name of the functor.

p0Union[functor_obj, variable_obj]

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

mlmultilayer_obj

The multilayer object representing the sample.

layidxIntSettingLike

The index of the layer in the multilayer sample.

hIntSettingLike

The h-index for the diffraction calculation.

kIntSettingLike

The k-index for the diffraction calculation.

lIntSettingLike

The l-index for the diffraction calculation.

indexstr, optional

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

betaDoubleSettingLike, optional

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

sourcesource_obj, optional

The source object (default is None).

cplx_functor_obj

The computed transmission coefficient as a complex functor object.

ValueError

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