High resolution X-ray Diffraction#

This module contains methods to create functors, which allow to simulate dynamical x-ray diffraction from strained crystals, multilayers, and superlattices.

The formalism is based on Stepanov et al publication [1]

The module allows to estimate the following profiles of structure parameters in multilayers:

  • Normal lattice strains

  • Crystal susceptibility \(\chi_0\), \(\chi_h\)

  • Interface roughness

The Debay-Waller factors can be easily added to the model as dependent parameters.

The effects of lateral strains (relaxed multilayers, misfit dislocations, etc) are not simulated by this functor.

escape.scattering.spechrxrd.multiphase_hrxrd(phases: list, weights: list, name: str = '', notes: str = '') → functor_obj#

Create a multi-phase HRXRD functor with incoherent intensity summation.

Sums diffraction intensities from multiple independent phase contributions:

\[I_{total}(p_0) = \sum_i w_i \cdot I_i(p_0)\]

Each phase is a fully independent HRXRD functor (e.g., from spechrxrd()). Volume fraction weights are fittable parameters that should sum to 1.

Parameters#

phaseslist of functor_obj

List of HRXRD functors, one per phase. Each should be created by spechrxrd() with its own multilayer.

weightslist of ParameterLike

Volume fraction weights for each phase.

namestr, optional

Name of the multiphase functor.

notesstr, optional

User notes.

Returns#

functor_obj

Functor computing weighted incoherent intensity sum.

Notes#

Use for highly relaxed layers, phase-separated alloys, or coexisting crystal phases where coherent coupling is physically inappropriate.

See Also#

spechrxrd : Create individual phase HRXRD functors.

escape.scattering.spechrxrd.spechrxrd(p0: FunctorLike, ml: multilayer_obj, h: int, k: int, l: int, beta: float = 1.0, formalism: str = '2x2', source: source_obj = None, name: str = '', notes: str = '') → functor_obj#

Returns functor object for calculation of high resolution X-Ray diffraction.

Parameters#

p0FunctorLike

Variable, which represents z-component of wave-vector of incoming wave.

mlmultilayer_obj

Sample description object.

hint

Miller index of Bragg reflection.

kint

Miller index of Bragg reflection.

lint

Miller index of Bragg reflection.

betafloat, optional

Asymmetry factor \(\beta=g_0/g_h\) (default is 1.0).

formalismstr, optional

‘2x2’ matrix formalism works correctly far away from grazing incidence mode. ‘4x4’ matrix formalism is valid for the whole range.

sourcesource_obj, optional

Source description object.

namestr, optional

Name of the functor.

notesstr, optional

User notes for the object.

Returns#

functor_obj

Functor instance.