Computing with Crystallographic Groups:

The GAP 4 Packages Cryst, CrystCat, and CaratInterface

The GAP 4 packages Cryst, CrystCat and CaratInterface provide functions for the computation with crystallographic groups in GAP 4. Although these packages have different origins and authorships, they work together and complement each other. The Cryst package, implemented in the GAP 4 language, mainly provides functionality for the computation with affine crystallographic groups, whereas the package CaratInterface provides a GAP interface to the stand-alone package CARAT, whose strength is on linear crystallographic groups, in particular the computation of normalizers and Bravais groups of finite unimodular groups. The two packages therefore complement each other. Indeed, for many functions, Cryst makes use of functionality provided by CARAT. On the other hand, the GAP interface to CARAT makes the stand-alone package CARAT much more comfortable to use. Finally, the package CrystCat provides a catalog of all crystallographic groups up to dimension 4. These groups have the rich set of methods provided by the package Cryst at their disposal.


The Cryst Package

The GAP 4 package Cryst, previously known as CrystGAP, is the successor of the CrystGAP package for GAP 3. During the porting process to GAP 4, large parts of the code have been rewritten, and the functionality has been extended considerably. Cryst provides a rich set of methods to compute with affine crystallographic groups, in particular space groups. In constrast to the GAP 3 version, affine crystallographic groups are now fully supported both in the representation acting from the right and in the representation acting from the left. The latter representation is the one preferred by crystallographers. There are also functions to determine representatives of all space group types of a given dimension.

Cryst is implemented in the GAP 4 language. Certain commands may need other GAP 4 packages such as CaratInterface or XGAP, however, which probably require a Unix-like environment. CaratInterface may be required by functions that need to know normalizers or conjugators of finite unimodular groups in in GL(n,Z). The function WyckoffGraph needs the package XGAP.

Authors: Bettina Eick, Franz Gähler, and Werner Nickel

Language: GAP 4

Operating System: Any; some parts require XGAP or CaratInterface (and thus probably a UNIX-like environment)

Current version: 4.1.27 (18 Dec 2023)

Download: cryst-4.1.27.tar.gz (254 kB), Installation Instructions, Changelog

GitHub page

Bettina Eick

Institut Computational Mathematics
Fachbereich Mathematik und Informatik
Technische Universität Braunschweig
Pockelsstr. 14, 38106 Braunschweig, Germany
Email: beick@tu-bs.de

Franz Gähler

Fakultät für Mathematik, Universität Bielefeld,
Postfach 10 01 31, D-33501 Bielefeld, Germany
Email: gaehler@math.uni-bielefeld.de

Werner Nickel

Fachbereich 4, AG 2, Technische Universität Darmstadt
Schlossgartenstr. 7, 64289 Darmstadt, Germany
Email: nickel@mathematik.tu-darmstadt.de


The CrystCat Package

The GAP 4 package CrystCat provides a catalog of crystallographic groups of dimensions 2, 3, and 4 which covers most of the data contained in the book Crystallographic groups of four-dimensional space by H. Brown, R. Bülow, J. Neubüser, H. Wondratschek, and H. Zassenhaus (John Wiley, New York, 1978). This catalog was previously available in the library of GAP 3. The present version for GAP 4 has been moved into a separate package, because it requires the package Cryst, which is loaded automatically by CrystCat. The benefit of this is that space groups extracted from the catalog now have the rich set of methods provided by Cryst at their disposal, and are no longer dumb lists of generators. Moreover, space groups are now fully supported in both the representation acting from the left and the representation acting from the right.

Authors: Volkmar Felsch and Franz Gähler

Language: GAP 4; requires also the package Cryst

Operating System: Any

Current version: 1.1.10 (29 July 2022)

Download: crystcat-1.1.10.tar.gz (282 kB), Installation Instructions, Changelog

GitHub page

Volkmar Felsch

Lehrstuhl D für Mathematik, RWTH Aachen
Templergraben 64, 52062 Aachen, Germany
Email: Volkmar.Felsch@Math.RWTH-Aachen.DE

Franz Gähler

Fakultät für Mathematik, Universität Bielefeld,
Postfach 10 01 31, D-33501 Bielefeld, Germany
Email: gaehler@math.uni-bielefeld.de


The CaratInterface Package

The GAP 4 package CaratInterface provides GAP interface routines to some of the stand-alone programs of the package CARAT, developed by J. Opgenorth, W. Plesken, and T. Schulz at Lehrstuhl B für Mathematik, RWTH Aachen. CARAT is a package for the computation with crystallographic groups. It is implemented in C, and thus needs to be compiled.

CARAT is to a large extent complementary to the GAP 4 package Cryst. In particular, it provides routines for the computation of normalizers and conjugators of finite unimodular groups in GL(n,Z), and routines for the computation of Bravais groups, which are all missing in Cryst. Furthermore, it provides also a catalogue of Bravais groups up to dimension 6. Cryst automatically loads CaratInterface when it is available, and makes use of its functions where necessary. The CaratInterface package thereby extends the functionality of the package Cryst considerably.

Please note that the present package consists only of the GAP interface routines to CARAT, even though a copy of CARAT itself is included in the distribution. All rights and responsibilities regarding CARAT remain with its authors. The most recent version of CARAT can be obtained at the GitHub page of CARAT. Questions and bug reports regarding CARAT itself should be reported in the issue tracker on GitHub.

Author: Franz Gähler

Fakultät für Mathematik, Universität Bielefeld,
Postfach 10 01 31, D-33501 Bielefeld, Germany
Email: gaehler@math.uni-bielefeld.de

Authors of CARAT: J. Opgenorth, W. Plesken, and T. Schulz

Lehrstuhl B für Mathematik, RWTH Aachen
Templergraben 64, 52062 Aachen, Germany
WWW: https://github.com/lbfm-rwth/carat/

Language: GAP 4 (Interface Routines) and C (CARAT)

Operating System: Unix and Unix-like environments

Current version: 2.3.6 (18 Dec 2023), based on CARAT of 18 Dec 2023

Download: CaratInterface-2.3.6.tar.gz (7041 kB), Installation Instructions, Changelog

GitHub page