Space group
The table of space groups, resources/space-groups.json, contains the N
symmetry operations for each space group in the following format:
[ r_{00}
, r_{01}
, r_{02}
, r_{10}
, r_{11}
, r_{12}
, r_{20}
, r_{21}
, r_{22}
, t_{0}
, t_{1}
, t_{2}
]
The first 9 numbers in the array form a transformation matrix:
M_i = \left( \begin{array}{ccc}
r_{00} & r_{01} & r_{02}\\
r_{10} & r_{11} & r_{12}\\
r_{20} & r_{21} & r_{22}
\end{array} \right),
the following three numbers constitute a translation vector:
\underline{t}_i = \left( \begin{array}{c} t_{0} \\ t_{1} \\ t_{2} \end{array} \right).
The index i
enumerates all N
operations: 1 \leq i \leq N
.
Unit cell
All symmetry-equivalent atomic positions in the sample's unit cell are generated by applying each of the selected space group's operation to the defined base atomic positions. Let \alpha
enumerate the distinct atoms, i
the symmetry operations, and let \underline{r}_{\alpha}^0
denote the given atomic base position. Then all equivalent positions are given by
\underline{r}_{\alpha}^i = M_i \underline{r}_{\alpha}^0 + \underline{t}_i.
A possible multiple occupancy of a site has to be discarded.
Structure factor
Given all atomic positions in the sample's unit cell, the structure factor is calculated as:
F_{\underline{G}} = \sum_{\alpha} \sum_{i=1}^{N}
b_{\alpha} \cdot
\exp \left(2 \pi \imath \, \underline{G} \cdot \underline{r}_{\alpha}^{i} \right),
where \underline{G}
denotes the lattice vector \underline{G} = \left( h,k,l \right)^T
and b_{\alpha}
is the coherent neutron scattering length for atom \alpha
. The scattering lengths can be found in the table resources/scattering_lengths.json.