[ANN] Crystalline.jl: symmetry analysis of crystals and their bands

On and off over the past two years, I’ve been developing a package - Crystalline.jl - for “hands-on” analysis and computations involving space group theory.
I never announced the result, but the paper for which I developed it was recently published, so I figured now would be a good time.

The package is mainly focused on analysis of band structures in the presence of crystalline symmetry but gives access to a range of space group data that may be useful in other contexts as well. The main features include:

  • Access to the standard space group operations, labels, and lattice conventions (and related concepts; e.g., crystallographic point groups, plane groups, layer groups, etc.).
  • Conversions between various canonical settings.
  • Wyckoff positions and associated site symmetry groups.
  • Access to all ~20.000 spinless irreducible representations (irreps) at high-symmetry k-points, in conventional “CDML” labelling, with or without time-reversal symmetry.
  • Access to the elementary band representations (EBRs) that have recently become popular due to their usefulness in analysis of topological band theory.

My main motivation for writing this package was that these quantities are otherwise hard to “get into your hands”: to get them, you’d ordinarily have to copy over each data point manually, either from books (e.g., the International Tables of Crystallography; or from several out-of-print older books) or from the Bilbao Crystallographic Server. Neither really works if one needs to do anything more than a few symmetry settings at most.

I’m hoping this might be interesting for anyone working e.g. with electronic or classical (photonic, acoustic, etc.) band structures.

Time allowing, I’m hoping to one day add the spinful “double-valued” irreps as well. Maybe, one day, also the irreps of magnetic groups and of subperiodic (layer, rod, frieze) groups.