Specular reflectivity

This module contains methods to create functor_obj instances for calculation of X-ray or neutron specular reflectivity.

escape.scattering.specrefl.pnrspec(name: str, qz: FunctorLike, ml: multilayer_obj, b_ext: list, poleff_i: parameter_obj, poleff_f: parameter_obj, source: source_obj = None) functor_obj

Returns functor object for calculation of polarized neutron specular reflectivity.

Changed in version 0.9.1.

Added support for qz functor_obj type.

Changed in version 0.9.3.

Added external magnetic field as the input parameter

Parameters:
qz: variable_obj or functor_obj

Variable or functor, which represents z-component of scattering vector

ml: multilayer_obj

Sample description object

b_ext: list or tuple

External magnetic field components in Tesla. The components are in the sample coordinate system.

poleff_i: parameter_obj or double

Efficiency of the incident beam polarization. Sign of this parameter defines polarization direction, i.e. up or down.

poleff_f: parameter_obj or double

Efficiency of the forthcoming beam polarization. Sign of this parameter defines polarization direction, i.e. up or down.

source: source_obj

Source description object

Returns:

functor_obj instance

escape.scattering.specrefl.specrefl(name: str, qz: FunctorLike, ml: multilayer_obj, formalism: str = 'parratt', source: source_obj = None) functor_obj

Returns functor object for calculation of specular reflectivity.

Changed in version 0.9.1.

Added support for qz functor_obj type.

Parameters:
qz: variable_obj or functor_obj

Variable or functor, which represents z-component of scattering vector

ml: multilayer_obj

Sample description object

‘formalism’: string

‘parratt’ - recursive parratt formalism (dynamic scattering) ‘kinematic’ - kinematic formalism (kinematic scattering, i.e. Born approximation) ‘matrix’ - matrix formalism (dynamic scattering) ‘dynsr’ - dynamical single reflection algorithm

source: source_obj

Source description object

Returns:

functor_obj instance