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.