The purpose of this document is to explain how Mantid is using information about unit cells and their orientation with respect to the laboratory frame. For a detailed description, see the UB matrix implementation notes.


The physics of a system studied by neutron scattering is described by the conservation of energy and momentum. In the laboratory frame:

\[Q_l= \hbar \mathbf{k}_i^{} - \hbar \mathbf{k}_f\]
\[\Delta E_l= \frac{\hbar^2}{2m} (k_i^2 - k_f^2)\]

Note that the left side in the above equations refer to what is happening to the lattice, not to the neutron.

Let’s assume that we have a periodic lattice, described by lattice parameters \(a,\ b,\ c,\ \alpha,\ \beta,\ \gamma\). The reciprocal lattice will be described by parameters \(a^*,\ b^*,\ c^*,\ \alpha^*,\ \beta^*,\ \gamma^*\). Note that Mantid uses \(a^*=\frac{1}{a}\) type of notation, like in crystallography.

For such a lattice, the physics will be described in terms of reciprocal lattice parameters by

\[\begin{split}Q= 2 \pi\left(h \mathbf{a}^* + k \mathbf{b}^* +l \mathbf{c}^* \right) = \left(\begin{array}{c} h \\ k \\ l \end{array}\right)\end{split}\]

The \(UB_{}^{}\) matrix formalism relates \(Q_l^{}\) and \(Q_{}^{}\) with the following equation:

\[\begin{split}Q_l = 2 \pi R \cdot U \cdot B \left(\begin{array}{c} h \\ k \\ l \end{array}\right)\end{split}\]

The \(B_{}^{}\) matrix transforms the \(h^{}_{}, k, l\) triplet into a Cartesian system, with the first axis along \(\ \mathbf{a}^*\), the second in the plane defined by \(\ \mathbf{a}^*\) and \(\ \mathbf{b}^*\), and the third axis perpendicular to this plane. In the Busing and Levi convention (W. R. Busing and H. A. Levy, Angle calculations for 3- and 4-circle X-ray and neutron diffractometers - Acta Cryst. (1967). 22, 457-464):

\[\begin{split}B = \left( \begin{array}{ccc} a^* & b^*\cos(\gamma^*) & c^*\cos(\beta^*) \\ 0 & b^*\sin(\gamma^*) & -c^*\sin(\beta^*)\cos(\alpha) \\ 0 & 0 & 1/c \end{array} \right)\end{split}\]

The \(U_{}^{}\) matrix represents the rotation from this Cartesian coordinate frame to the Cartesian coordinate frame attached to the innermost axis of the goniometer that holds the sample.

The \(R_{}^{}\) matrix is the rotation matrix of the goniometer

Other useful equations:

\[\begin{split}G^* = (UB)^T UB = B^T B = \left( \begin{array}{ccc} a^*a^* & a^*b^*\cos(\gamma^*) & a^*c^*\cos(\beta^*) \\ a^*b^*\cos(\gamma^*) & b^*b^* & b^*c^*\cos(\alpha^*) \\ a^*c^*\cos(\beta^*) & b^*c^*\cos(\alpha^*) & c^*c^* \end{array} \right)\end{split}\]
\[\begin{split}G=(G^*)^{-1}=\left( \begin{array}{ccc} aa & ab\cos(\gamma) & ac\cos(\beta) \\ ab\cos(\gamma) & bb & bc\cos(\alpha) \\ ac\cos(\beta) & bc\cos(\alpha) & cc \end{array} \right)\end{split}\]

The distance in reciprocal space to the \(\left(h,k,l\right)\) plane is given by

\[\begin{split}d^* =\left| B \left(\begin{array}{c} h \\ k \\ l \end{array}\right)\right|\end{split}\]

The distance in real space to the \(\left(h,k,l\right)\) plane is given by \(d=\frac{1}{d^*}\)

The angle between \(Q_1^{}\) and \(Q_2^{}\) is given by \(\cos( Q_1^{}, Q_2^{})=\frac{(BQ_1)(BQ_2)}{|(BQ_1)| |(BQ_2)|}\)

Unit cells

The UnitCell class provides the functions to access direct and reciprocal lattices.

Oriented lattices

All the functions defined for UnitCell are inherited by the OrientedLattice objects. In addition, functions for manipulating the \(U\) and \(UB\) matricies are also provided.

Note about orientation

Most of the instruments have incident beam along the \(\mathbf{z}\) direction. For an orthogonal lattice with \(\mathbf{a}^*\) along \(\mathbf{z}\), \(\mathbf{b}^*\) along \(\mathbf{x}\), and \(\mathbf{c}^*\) along \(\mathbf{y}\), the \(U^{}_{}\) matrix has the form:

\[\begin{split}U = \left( \begin{array}{ccc} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 1 & 0 & 0 \end{array} \right)\end{split}\]

Category: Concepts