As we saw before, some unit cell types have sides that are at right angles to each other, but hexagonal, rhombohedric, monoclinic and triclinic unit cells do not. In these latter cases, we will describe the contents of the unit cell with crystal system axes that are parallel to the sides, so this will generate axes that are non-orthogonal. We can make some calculation processes much simpler, even when dealing with non-orthogonal axes by creating an additional set of axes relative to the previously defined crystal axes, which we call the reciprocal lattice. To define the reciprocal lattice, we create three new axes, which we label as a*, b* & c*, where the asterisk (*) indicates these are reciprocal lattice axes. We make these axes perpendicular to the plane containing each pair of the crystal system axes (a, b & c), meaning that a* is perpendicular to b & c, and likewise for b* to a & c and c* to a & b, or equivalently using dot products to designate perpendicular axes, \[a^*\cdot b = a^* \cdot c = b^* \cdot a = b^* \cdot c = c^* \cdot b = c^* \cdot a = 0\] We also scale the length of the reciprocal axes so that \(a^*\cdot a = 1\), \(b^*\cdot b = 1\) and \(c^*\cdot c = 1\). Note that since we conventionally use units of Ångstroms (Å) for a, b & cc, then the units of a*, b* & c* are Å-1. The angles between the reciprocal aces, \(\alpha \)*, \(\beta \)* & \(\gamma \)* are defined analogously to the angles for the crystal axes so that \(\alpha \)* is the angle between b and c, etc.
The properties of this new reciprocal axis coordinate system were first discovered by J. Willard Gibbs, well in advance of modern crystallographic practice. This coordinate system turns out to be the ideal mechanism to describe the three-dimensional conjugate space needed for Fourier analysis of the periodic density of scatterers in the unit cell. The reciprocal axes are also used to formalize a concept called the Ewald sphere, which is used to understand the orientation needed to bring a single crystal into a diffracting position, as well as which diffraction maxima can be observed with a given wavelength particle. While elegant, the Ewald sphere is not really needed for powder diffraction. For our purposes, we need only consider that diffraction occurs only where \(\vec {d_{hkl}^\ast }=\ ha^\ast +\ kb^\ast +lc^\ast \), where h, k, and l are all integers. Thus, the reciprocal lattice is a natural way to describe diffraction.
So we now have two coordinate systems, the original coordinates, which have units of distance and we will call the domain of coordinates real space. The second set of coordinates that we have constructed from these coordinates, which have units of distance\({}^{-1}\), and we will call this domain of this reciprocal lattice construct as reciprocal space. To be a bit simplistic, real space is where atoms are located. Reciprocal space is where reflections live. Note that perhaps confusingly, I have followed conventional use and now used the term “real” in three different contexts. One as “real numbers”, as in the opposite of imaginary numbers for complex algebra (involving \(i=\sqrt {-1}\)), another as “real space” to be distinguished from the reciprocal space construct we just introduced. Finally, I use “real” sometimes to make clear the properties of actual materials in comparison to our idealized concepts.
Just as we measure bond distances between atoms in real space, there are some commonly referenced quantities in reciprocal space. As noted before, if we define a reflection direction as vector \(\vec {d_{hkl}^\ast }=\ ha^\ast +\ kb^\ast +lc^\ast \), we can also consider the magnitude of that vector, \(d_{hkl}^\ast =\left |\vec {d_{hkl}^\ast }\right |\), which will have units of inverse length (typically Å-1). This is often written without the subscripts as d*. As will be seen, this quantity is used in Fourier transform relationships where a factor of \(2\pi \) is commonly required. Physicists typically prefer the quantity \(\rm Q\), where Q = \(2\pi \) d*. In addition to Q and d*, there is one more widely-used quantity that I personally would prefer to see disappear from usage. This is the quantity d and is usually called the d-space, where d = 1/d* = \(2\pi \)/Q. The units of d thus are length, but please note that d is actually measuring a quantity that is only meaningful in reciprocal space. I do not like use of d (d-space values) because it tempts one to relate that real space length to some aspect of the atomic structure. This connects scattering details at a location in reciprocal space to some set of distances in the structure, but this ignores that scattering intensities and the atomic structure are in a Fourier relationship, where every aspect of the structure affects the scattering to some extent, so this connection between d-space and structure is misleading, at best.
The wide use of d-spaces is somewhat historical, since it is part of Bragg’s law, (\(n\lambda =2d\sin {\theta }\)). This equation had already been used prior to Bragg to describe the properties of waves. In this equation \(\lambda \) is the wavelength for the scattered particle, \(\theta \) is one-half the angle between the incident direction of the particle and its scattered direction. The factor n here is due to the idea the diffraction occurs at orders with integer multiples, but since we build that into the hklvalues, we can treat n as unity and remove it. To understand why Bragg’s law was such an important advance, it should be understood that this wave equation went against the thinking of many established scientists, including his father, William Henry Bragg, who did not believe that x-rays had wave character. Laurie Bragg deployed that wave equation at age 22 and won a well-deserved Nobel prize at a ripe old age of 25. As much as I respect the amazing sagacity of William Laurence Bragg, I would prefer that this formulation of Bragg’s law be replaced with \[\lambda ={2\sin \theta }/{d^\ast }\] or \[\lambda ={2\pi \sin \theta }/Q\] Bragg’s law as originally written was intended to relate scattering of x-rays to distances between planes of atoms, which I hope you can now see is a poor idea, as it confuses real space and reciprocal space phenomena.
To simplify the algebra used with lattice computations, GSAS-II uses a series of tensors that allow for simple and quickly-computed linear algebra expressions to perform what would otherwise be fairly complex expressions.
The [direct] cell tensor, \(g\), is defined as, \[ g = \left ( \begin {matrix} a^2 & a b\cos \gamma & a c\cos \beta \\ a b\cos \gamma & b^2 & b c \cos \alpha \\ a c\cos \beta & b c \cos \alpha & c^2 \end {matrix}\right ) \] Note that for higher-symmetry unit cells, \(\alpha \), \(\beta \) and/or \(\gamma \) may be \(90^\circ \) and \(\cos 90^\circ \) is zero, so that some or all off-diagonal terms become zero. The reciprocal cell tensor, \(G\), is defined as the inverse of \(g\), \(G = g^{-1}\). This allows us to simplify the expression for \(|\vec {d_{hkl}^\ast }|\) (where \(\vec {d_{hkl}^\ast }=\ ha^\ast +\ kb^\ast +lc^\ast \)) as:
\[|\vec {d_{hkl}^\ast }| = Q_{hkl} / (2 \pi ) = \sqrt {G_{11} h^2 + G_{22} k^2 + G_{33} l^2 + 2 G_{12} hk + 2 G_{13} hl + 2 G_{23} kl}\]
Another quantity based on \(G\) is used throughout GSAS-II for lattice fitting. We call this the \(A\) vector and it is defined as: \[ A = \begin {matrix} [ G_{11} & G_{22} & G_{33} & 2G_{12} & 2G_{13} & 2G_{23} ] \end {matrix}\] Numbering the terms in \(A\) to start with zero, as is done in Python, the reciprocal space magnitude for reflection \(hkl\) simplifies to
\[Q_{hkl} = 2 \pi \sqrt {A_0 h^2 + A_1 k^2 + A_2 l^2 + A_3 hk + A_4 hl + A_5 kl}\]
Finally, for working with datasets where small changes are expected in lattice parameters, GSAS-II introduces a hydrostatic strain tensor, \(D_{ij}\). These terms are offsets to the \(A\) (or \(G\)) terms:
This strain tensor is effectively just an offset applied to the lattice parameters. However, since these values are applied to the reciprocal cell tensor, their effect is a bit less obvious. For this reason, in the GUI, where the strain tensor terms are displayed, if these terms are non-zero, the resulting lattice parameters are computed and displayed. These strain tensor terms are used for fitting series of datasets (discussed in Chapter 22) or when fitting a single phase to datasets collected at different temperatures (or with slightly different calibration – very common for combined x-ray/neutron fits). They may also be used for measurement of elastic strain when an external force is applied to a sample. In the help information and documentation, Bob and I tend to refer to these terms as the \(D_{ij}\) values, since “hydrostatic strain tensor” is a bit of a mouthful.
As has been mentioned, while diffraction patterns are commonly measured by varying \(2\theta \), which is called angular-dispersive diffraction. This means that the measurement results change depending on the wavelength of the source. Likewise, with energy-dispersive detection, diffraction is observed at constant \(2\theta \) with measurement of \(\lambda \). So that diffraction data may be compared with different data collection types and different wavelengths, display of patterns in units of Q rather than \(2\theta \) is a wise choice. Q also has the advantage that it roughly scales with \(2\theta \), so that if one refers to low Q, that can be readily interpreted as equivalent to low-angle scattering in angular-dispersive diffraction, while high Q will refer to high-angle scattering. One can even consider diffraction at even higher-Q values than what would only be accessible at a particular wavelength to consider what would be observable with a different experiment. With \(2\theta \) plots, \(180^\circ \) is the maximum. For time of flight diffraction, it is common to plot data in d-space units, which are closely related to TOF, but are independent of wavelength and scattering angle. Plotted in d-space, most of the x-axis length becomes devoted to the low-Q peaks (if any), which is of little use, except perhaps for magnetic scattering. This also bunches up the high-Q scattering, where peaks are more closely spaced. Again, my recommendation is to plot TOF data in Q, which provides a more balanced view of the pattern and has the advantage to those not used to viewing TOF patterns as they then look closer to what is seen with x-rays.