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’).