Calculation of the small angle X-ray scattering pattern.

Small angle X-ray scattering uses magnetic circular dichroism to measure the magnetic field parallel to the propagation direction of the light. Here, we define the experimental reference frame with the light propagating along \(z\) direction. The intensity of scattering can be calculated from the Fourier transform of the real space integral of the magnetisation along the beam direction multiplied by its complex conjugate.

\[\begin{split}M_I = \int M dz, \\ I \propto \frac{1}{V}\left\vert \widetilde{M_I} \right\vert ^2,\end{split}\]

where \(V\) is the scattering volume.


field (discretisedfield.field) – Magnetisation field.


Small angle X-ray scattering intensity, arbitrary units.

Return type:



  1. Visualising the scattering with matplotlib.

>>> import discretisedfield as df
>>> import numpy as np
>>> import mag2exp
>>> mesh = df.Mesh(p1=(0, 0, 0), p2=(50e-9, 50e-9, 1e-9),
...                cell=(1e-9, 1e-9, 1e-9))
>>> def value_fun(point):
...     x, y, z = point
...     qx = 10e-9
...     return (np.sin(2 * np.pi * x/ qx),
...             0,
...             np.cos(2 * np.pi * x/ qx))
>>> field = df.Field(mesh, nvdim=3, value=value_fun, norm=0.3e6)
>>> xrs = mag2exp.x_ray.saxs(field)
>>> xrs.mpl.scalar()