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