Introduction

Background

Lattices

An infinite set of points which are indistinguishable for a specific set of rigid translations form a lattice.

The easiest conceived lattice is one formed by the combinations of the whole numbers on a set of Cartesian axes. In two dimensions, this is equivalent to the intersections of lines on a piece of graphing paper. If the vector pointing from any one such intersection point to its neighbour along the \(x\) axis is \(\mathbf{a}=[1\,0]\), and along the \(y\) axis is \(\mathbf{b}=[0\,1]\), then the allowed translations which result in an indistinguishable lattice are \(\mathbf{r} = i\mathbf{a} + j\mathbf{b}\) where both \(i\) and \(j\) are integers.

Although only translational invariance is necessary for a lattice, this specific lattice has a number of additional invariant operations in the form of rotations and rotoinversions that form a group,

\[\def \mat#1#2#3#4{\begin{pmatrix} #1 & #2\\#3 & #4\end{pmatrix}} \mathbb{G} = \mat{1}{0}{0}{1}, \mat{0}{-1}{1}{0}, \mat{0}{1}{1}{0}, \ldots\]

where for every element, \(G\in\mathbb{G}\), there exists an equivalent product of elements of \(\mathbb{G}\). This allows a reduced representation of \(\mathbb{G}\) by a minimal set of its elements, called its generators, which can be combined to produce all other elements.

Lattices like the one described above, where the repeated unit is point-like, are called Bravais lattices and, in three dimensions, there are \(14\) unique Bravais lattices.

If the repeated unit is considered independent of the lattice, it is possible to conceive of shapes which have their own rotation and rotoinversion symmetries. There are \(32\) unique sets of rotational symmetries in three dimensions each of which forms a Point group.

Combining the symmetries of a Point group and a Bravais lattice gives rise to a set of symmetry operations with is comprised of rotations, rotoinversions, translations, screw axes, and glide planes which form a Space group, of which there are \(230\) distinct combinations in three dimensions.

All crystalline materials have a structure characterised by one of the Space groups.

Dual lattices

While the specific example of a Lattice given above was described in terms of a physical lattice, Lattices are not limited to any one space. For every Lattice there exists a dual lattice which is, effectively, its inverse. While a direct lattice describes atom positions, its dual lattice describes the relative orientations of planes of atoms. Constructing such a dual lattice is straightforward following references easily found elsewhere, but importantly where a lattice can be described by the lengths of its basis vectors, the basis vectors of its dual lattice have units of inverse, or reciprocal, length. The Lattice class combines both the real space direct lattice and its reciprocal space dual lattice into a single object.

Physical Properties

The physical properties of any crystalline material have the same symmetry as its Space group. The goal of brille is to simplify leveraging the Space group symmetry information in other software projects dealing with the physical properties of crystalline materials.

Brillouin zone

The region of space around each lattice point which is closer to that point than to any other is its Wigner-Seitz cell. As we can see for the case of a Lattice with hexagonal symmetry, the Wigner-Seitz cells of all lattice points tile the space of the Lattice.

Figure made with TikZ

If we consider that the Lattice is a Reciprocal lattice, with basis vectors \(\mathbf{a}^*\) and \(\mathbf{b}^*\), then we can construct the Wigner-Seitz cell for any lattice point \(\boldsymbol{\tau} = h\mathbf{a}^* + k\mathbf{b}^*\) by finding the intersections of all planes, each described by the point \(\boldsymbol{\tau}+\frac{i}{2}\mathbf{a}^*+\frac{j}{2}\mathbf{b}^*\) and normal vector \(i\mathbf{a}^*+j\mathbf{b}^*\) with \(i,j\) integers; the Wigner-Seitz cell is bounded by all such planes without any planes closer to \(\boldsymbol{\tau}\).

This is also the definition of the first Brillouin zone, where higher-order Brillouin zones are the regions between planes successively further from \(\mathbf{G}\).

Figure made with TikZ

Since the properties of the lattice follow the periodicity of the lattice, any measurable quantity must repeat from one first Brillouin zone to the next. This allows for descriptions of the physical properties which depend on, e.g., a reduced momentum transfer \(\mathbf{q} = \mathbf{Q}-\mathbf{G}\)

Figure made with TikZ

Irreducible first Brillouin zone

The first Brillouin zone may contain redundant information depending on the Point group symmetry of the Space group. If the two-dimensional hexagonal lattice above possesses a six-fold rotation axis perpendicular to the plane, so that the information within each first Brillouin zone is repeated six times, then the zone can be reduced. The definition of an irreducible zone is not unique, but one choice for this Reciprocal lattice is shown below

Figure made with TikZ

The properties at an arbitrary momentum transfer \(\mathbf{Q}\) can be related to those within the irreducible first Brillouin zone by

\[\mathbf{Q} = G \mathbf{q}_\text{ir} + \boldsymbol{\tau}\]

where \(G\) is one of the Point group operators, \(\mathbf{q}_\text{ir}\) is a vector within the irreducible first Brillouin zone, and \(\boldsymbol{\tau}\) is a Reciprocal lattice point.

Since the irreducible first Brillouin zone contains all of the information about the physical properties of a material, it can and should be used by projects aiming to model those properties efficiently. To help in this task, brille defines BrillouinZone to construct the first Brillouin zone and an irreducible Brillouin zone for any Reciprocal lattice.

Inelastic Neutron Scattering

Inelastic neutron scattering is an experimental technique which measures the probability of transitions between states of a condensed matter system, which in turn can tell us about the types and strengths of interactions within the material.

Inelastic neutron scattering benefits from the use of neutrons with wavelengths comparable to typical interatomic spacings and energies comparable to typical energy levels of condensed matter systems.

The straightforward comparison of intensity measured on a neutron spectrometer and favourable wavelength and energy of available neutrons compensates for the difficulty of neutron production compared to, e.g., x-rays which are easier to produce but can not have both favourable wavelengths and energies in the same photon.

The difficulty of producing neutron beams led to the development of instruments like the Direct Geometry Time of Flight neutron spectrometer. Such instruments have an array of detectors at fixed positions and detect changes in the neutron energy by measuring the time it takes for a detected neutron to arrive at the detector. By knowing the neutron’s initial, \(\mathbf{k}_\text{i}\), and final momentum, \(\mathbf{k}_\text{f}\) it is straightforward to work out the momentum and energy transferred to the sample.

\[\begin{aligned} \mathbf{Q} & = \mathbf{k}_\text{i} - \mathbf{k}_\text{f} \\ E & = \frac{\hbar^2}{2m_\text{n}}\left(k_\text{i}^2 - k_\text{f}^2\right) \end{aligned}\]

Motivation

Through the use of one or more choppers, Direct Geometry Time of Flight spectrometers select a single \(\mathbf{k}_\text{i}\) for all neutrons which interact with the sample before being counted in a detector. Each detector is at a unique set of spherical angles \((\theta,\phi)\) relative to \(\hat{\mathbf{k}_\text{i}}\) and therefore each counts neutrons with a unique \(\hat{\mathbf{k}}_\text{f}\). As a result each detector measures along a path through reciprocal \((\mathbf{Q},E)\) space which is constrained by the kinematic relations listed above.

Theoretical models of interactions in a material typically involve solving an eigenvalue problem for a given \(\mathbf{Q}\) and are therefore best suited for simulating along \((\mathbf{Q},E)\) paths with constant-\(\mathbf{Q}\). brille aims to help such models by reducing the number of \(\mathbf{Q}\) points where they must perform their (typically expensive) calculation and interpolates their results onto the \((\mathbf{Q},E)\) paths measured during experiments. To accomplish this, a number of polyhedron-filling connected grids are defined; notably BZTrellisQdc and similar variants. The model calculation is evaluated for \(\mathbf{Q}\) points defined by the vertices of the polyhedra which comprise the grid. Interpolation is done then by finding the polyhedron which encloses the desired point and linearly weighting the pre-calculated values at the vertices by the distance from the desired point to each vertex.

Irreducible Brillouin zone interpolation

Since physical properties of crystalline solids are unique only within the first irreducible Brillouin zone, only \(\mathbf{Q}\) points within this region need be calculated by the expensive model calculation. Thus, the polyhedron-filling connected grids takes a first Brillouin zone polyhedron or an irreducible Brillouin zone polyhedron plus, e.g., a maximum distance between grid nodes or a maximum grid cell volume, and define a grid.

Cartesian grid

Figure made with TikZ

One simple approach to defining a grid within a polyhedron is to

  1. define one vertex of the polyhedron as the origin,

  2. find the vertex farthest away from the origin

  3. subdivide the rectangular prism defined by these two points.

Such a grid has the advantage that for all space within it, the closest grid point(s) can be calculated analytically. This lends itself to fast neighbour location and fast linear interpolation.

A disadvantage to such a grid is that it can only be commensurate with polyhedra which are also rectangular prisms, which is the case only for irreducible first Brillouin zones of primitive cubic, primitive tetragonal, and primitive orthorhombic space groups. When the grid is not commensurate with the polyhedron it is likely to introduce unmanageable artifacts in any interpolation result.

The disadvantages of the basic Cartesian grid are so restrictive that brille does not implement a three-dimensional Cartesian grid object.

\(n\)-simplex grid

Figure made with TikZ

Another straightforward approach to defining a grid within a polyhedron is the use of a tetrahedral tiling. Tetrahedra being the three dimensional simplex. Creating such a tiling with nice properties is nontrivial, so brille uses the TetGen library to do the heavy lifting.

Tetrahedral tilings have the advantage that they can be made commensurate with any polyhedron, and therefore never introduce unmanageable artefacts when interpolating near their surfaces. But they lack the ability to calculate which tetrahedron contains a specified point. So interpolating with a tetrahedral tiling is either slow or requires substantial meta-information to be determined in advance.

The classes BZMeshQdc and BZNestQdc implement 3-D \(n\)-simplex grids which fills and does not extend beyond the boundaries of a [irreducible] Brillouin zone. The differences between the two classes relate to how their (meta)data is stored, either in a flat or tree format as described in the grids page.

Hybrid grid

Figure made with TikZ

An alternative approach is to combine a Cartesian grid with a \(n\)-simplex grid. Such a grid has its rectangular-prism cells replaced by triangulated truncated-rectangular-prisms on the surface of the polyhedron.

Such a construction has the advantage of direct calculation of the cell which contains any given point with a much-faster search over only those tetrahedra within the cell if the rectangular-prism passes the surface of the polyhedron.

The class BZTrellisQdc implements a hybrid grid in three dimensions which fills and does not extend beyond the boundaries of a [irreducible] Brillouin zone.