How lbfm-rwth/carat works
CARAT is a C toolkit for mathematical crystallography, with command-line programs and reusable algorithms for groups, lattices, and their symmetries. A typical user invokes a task-specific program with matrix or group data, computes a classification or transformation, and receives results through the program’s output. The tree identifies distinct workflows for isometry, subgroup and extension analysis, Bravais groups, and Voronoi geometry. The README gives only a high-level product description, and sampled excerpts are incomplete, so links between many command-line entry points and their library algorithms are intentionally not inferred.
Main entry points: Matrix Matrix operations · bravais_catalog.c Bravais catalog · isometry.c Isometry program · Autgrp Automorphisms
Components 19
Programs and data
- Isometry program
functions/Autgrp/isometry.c - Group data I/O
functions/Getput - Group data files
functions/Datei - Group data lookup
Group analysis
- Automorphisms
functions/Autgrp - Bravais groups
functions/Bravais - Group naming
functions/Name - Presentations
functions/Presentation/presentation.c - Bravais catalog
functions/Idem/bravais_catalog.c
Lattice geometry
- Polyhedra
functions/Polyeder - Voronoi reduction
functions/Voronoi - Lattice reduction
functions/Reduction
Subgroups and extensions
- Subgroup graphs
functions/Graph - T-subgroups
functions/TSubgroups - Group extensions
functions/Zassen/normalop.c - Centerings
functions/ZZ/ZZ_cen_fun.c
Numerical core
- Matrix operations
functions/Matrix - Integer matrices
functions/Longtools
Other components
- CARAT user
Connections 14
- CARAT user → Isometry program: runs
- CARAT user → Group data I/O: supplies data
- Bravais catalog → Group data I/O: loads groups
- Bravais catalog → Group data files: locates data
- Bravais catalog → Group data lookup: reads catalog
- Isometry program → Matrix operations: computes with
- Automorphisms → Matrix operations: uses
- Bravais groups → Matrix operations: uses
- Subgroup graphs → Matrix operations: uses
- Group extensions → Matrix operations: multiplies matrices
- Centerings → Integer matrices: uses
- Voronoi reduction → Lattice reduction: uses reduction
- Polyhedra → Matrix operations: uses
- Presentations → Automorphisms: uses generators