# HAPcryst

A HAP extension for crystallographic groups

Version 0.1.13
Released 2020-02-10

This project is maintained by Marc Roeder, The GAP Team

(C) Marc Roeder 2007-2008

HAPcryst -- A GAP4 extension for HAP calculating
resolutions for Bieberbach groups

Marc Roeder
(NUI Galway, Ireland)

This package is an add-on for Graham Ellis' HAP package. HAPcryst
implements some functions for crystallographic groups (namely
OrbitStabilizer-type methods). It is also capable of calculating free
resolutions for Bieberbach groups.

for the text of version 2 or www.http://gnu.org/copyleft/gpl.html

Installation
------------
HAPcryst depends on the following packages:
hap (as HAPcryst is a extension of HAP)
polymaking (which in turn depends on external software)
Cryst
packages installed.
The following packages are not required but suggested:
Carat
CrystCat
GAPDoc

HAPcryst.tar.bz2
HAPcryst.tar.gz
HAPcryst-win.zip
(where  is some version number) to the directory pkg/ of the
GAP home directory. If you do not have permission to do so, create
a directory called gap/pkg in your home directory.

2. change directory to pkg/ and unpack the archive using the according command:
tar -xjf HAPcryst.tar.bz2
tar -xzf HAPcryst.tar.gz
unzip HAPcryst-win.zip
(replace  with the version number)

3. start GAP. If you have created the directory gap/pkg in your home
directory, use "gap -l '/gap;'" where  is the path of
your home directory (use "pwd" to find out what it is, if you don't know)

If GAP returns some error messages, load hap.

5. Run the test file by calling "ReadPackage("hapcryst","tst/testall.g");"

Recommendation:
--------------

Calculating resolutions of Bieberbach groups involves convex hull
computations. polymake by default uses cdd to compute convex
hulls. Experiments suggest that lrs is the more suitable algorithm for
the convex hull computations done in HAPcryst than the standard
cdd. You can change the behaviour of polymake of by editing the file
"/.polymake/prefer.pl" It should contain a section like this
(just make sure lrs is before cdd, the position of beneath_beyond does
not matter):

#########################################
application polytope;

prefer "*.convex_hull  lrs, beneath_beyond, cdd";

Documentation
-------------

The documentation of the package can be found in the doc/ subdirectory.
A second part of the documentation describes datatypes used in HAPcryst.
This can be found in the lib/datatypes/doc subdirectory of the HAPcryst
main directory

Examples
--------

The directory "examples" contains some code that generates pictures
(JavaView applets) of Dirichlet domains of 3 dimensional Bieberbach
groups with coloured orbits (of the group acting on the faces of the
tessellation of R^3).
Just say