Reflection and transmission coefficients and wave function, zero order diffraction¶
Added in version 0.9.1.
This module is a collection of functors to calculate Reflection and Transmission coefficients and scattering wave function inside multilayer samples. The calculation is made by means of matrix formalism and is valid for non-polarized neutrons and X-rays.
Functors provided by this module can be used for modelling of grazing incidence small angle scattering, standing waves applications, like searching of resonance conditions or emission of Gammas, etc.
- escape.scattering.reftrans.reftrans_rm(p0: FunctorLike, ml: multilayer_obj, layidx: int, source: source_obj = None, name: str = 'Reflection coefficient', notes: str = '') cplx_functor_obj¶
Method for creating a functor to calculate the Fresnel reflection coefficient inside a layer with the index Layidx. The layer index starts with 0 for the air/sample interface and ends at N+1, where N is the number of layers in the ml sample.
Added in version 0.9.1.
layers with gradients.
Parameters¶
- p0FunctorLike
Variable or functor, which represents z-component of wave vector.
- mlmultilayer_obj
Sample description object.
- layidxint
Index of the layer.
- sourcesource_obj, optional
Source description object.
- namestr, optional
Name of the functor.
- notesstr, optional
User notes for the object.
Returns¶
- cplx_functor_obj
Complex functor instance.
- escape.scattering.reftrans.reftrans_tm(p0: FunctorLike, ml: multilayer_obj, layidx: int, source: source_obj = None, name: str = 'Transmission coefficient', notes: str = '') cplx_functor_obj¶
Method for creating a functor to calculate the Fresnel transmission coefficient inside a layer with the index Layidx. The layer index starts with 0 for the air/sample interface and ends at N+1, where N is the number of layers in the ml sample.
Added in version 0.9.1.
layers with gradients.
Parameters¶
- p0FunctorLike
Variable or functor, which represents z-component of wave vector.
- mlmultilayer_obj
Sample description object.
- layidxint
Index of the layer.
- sourcesource_obj, optional
Source description object.
- namestr, optional
Name of the functor.
- notesstr, optional
User notes for the object.
Returns¶
- cplx_functor_obj
Complex functor instance.
- escape.scattering.reftrans.reftrans_kz(p0: FunctorLike, ml: multilayer_obj, layidx: int, source: source_obj = None, name: str = 'Transverse wave vector', notes: str = '') cplx_functor_obj¶
Method for creating a functor to calculate the transverse component of the wave-vector inside a layer with the index Layidx. The layer index starts with 0 for the air/sample interface and ends at N+1, where N is the number of layers in the ml sample.
Added in version 0.9.1.
layers with gradients.
Parameters¶
- p0FunctorLike
Variable or functor, which represents z-component of wave vector.
- mlmultilayer_obj
Sample description object.
- layidxint
Index of the layer.
- sourcesource_obj, optional
Source description object.
- namestr, optional
Name of the functor.
- notesstr, optional
User notes for the object.
Returns¶
- cplx_functor_obj
Complex functor instance.
- escape.scattering.reftrans.reftrans_wf(p0: FunctorLike, z: FunctorLike, ml: multilayer_obj, source: source_obj = None, name: str = 'Wave function', notes: str = '') cplx_functor_obj¶
Method for creating a functor to calculate the wave-function in the sample ml for given transverse wave-vector component p0 in vacuum and z coordinate inside the sample.
Z-axis is normal to sample surface and directed inside the multilayer with 0 at the air/layer1 interface. The wave function is calculated using the following equation:
\(\psi(p0, z) = T_m\exp(ip_m(z-z_m))+R_m\exp(-ip_m(z-z_m))\),
where \(p_m\) - Z-component of wave-vector inside layer ‘m’, \(z_m\) - z - coordinate of the bottom interface of layer ‘m’ \(T_m\), \(R_m\) - Fresnel coefficients inside layer ‘m’
The corresponding layer ‘m’ is found using value of Z coordinate.
Added in version 0.9.1.
Parameters¶
- p0FunctorLike
Variable or functor, which represents z-component of wave vector.
- zFunctorLike
Variable or functor, which represents z-coordinate.
- mlmultilayer_obj
Sample description object.
- sourcesource_obj, optional
Source description object.
- namestr, optional
Name of the functor.
- notesstr, optional
User notes for the object.
Returns¶
- cplx_functor_obj
Complex functor instance.