CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

| Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

Views: 418346
1
2
1 Introduction
3
4
5
1.1 Abstract and Notation
6
7
HAPcryst is an extension for "Homological Algebra Programming" (HAP, [Ell])
8
by Graham Ellis. It uses geometric methods to calculate resolutions for
9
crystallographic groups. In this manual, we will use the terms "space group"
10
and "crystallographic group" synonymous. As usual in GAP, group elements are
11
supposed to act from the right. To emphasize this fact, some functions have
12
names ending in "OnRight" (namely those, which rely on the action from the
13
right). This is also meant to make work with HAPcryst and cryst [EGN]
14
easier.
15
16
The functions called "somethingStandardSpaceGroup" are supposed to work for
17
standard crystallographic groups on left and right some time in the future.
18
Currently only the versions acting on right are implemented. As in cryst
19
[EGN], space groups are represented as affine linear groups. For the
20
computations in HAPcryst, crystallographic groups have to be in "standard
21
form". That is, the translation basis has to be the standard basis of the
22
space. This implies that the linear part of a group element need not be
23
orthogonal with respect to the usual scalar product.
24
25
26
1.1-1 The natural action of crystallographic groups
27
28
There is some confusion about the way crystallographic groups are written.
29
This concerns the question if we act on left or on right and if vectors are
30
of the form [1,...] or [...,1].
31
32
As mentioned, HAPcryst handles affine crystallographic groups on right (and
33
maybe later also on left) acting on vectors of the form [...,1].
34
35
BUT: The functions in HAPcryst do not take augmented vectors as input (no
36
leading or ending ones). The handling of vectors is done internally. So in
37
HAPcryst, a crystallographic group is a group of nx n matrices which acts on
38
a vector space of dimension n-1 whose elements are vectors of length n-1
39
(not n). Example:
40
41
--------------------------- Example ----------------------------
42
gap> G:=SpaceGroup(3,4); #This group acts on 3-Space
43
SpaceGroupOnRightBBNWZ( 3, 2, 1, 1, 2 )
44
gap> Display(Representative(G));
45
[ [ 1, 0, 0, 0 ],
46
 [ 0, 1, 0, 0 ],
47
 [ 0, 0, 1, 0 ],
48
 [ 0, 0, 0, 1 ] ]
49
gap> OrbitStabilizerInUnitCubeOnRight(G,[1/2,0,0]);
50
rec( orbit := [ [ 1/2, 0, 0 ], [ 1/2, 1/2, 0 ] ],
51
 stabilizer := Group([ [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ],
52
 [ 0, 0, 0, 1 ] ] ]) )
53
------------------------------------------------------------------
54
55
56
1.2 Requirements
57
58
The following GAP packages are required
59
60
-- polymaking which in turn depends on the computational geometry
61
software polymake.
62
63
-- HAP
64
65
-- Cryst
66
67
The following GAP packages are not required but highly recommended:
68
69
-- carat
70
71
-- CrystCat
72
73
-- GAPDoc is needed to display the online manual
74
75
76
1.2-1 Recommendation concerning polymake
77
78
Calculating resolutions of Bieberbach groups involves convex hull
79
computations. polymake by default uses cdd to compute convex hulls.
80
Experiments suggest that lrs is the more suitable algorithm for the
81
computations done in HAPcryst than the default cdd. You can change the
82
behaviour of by editing the file "yourhomedirectory/.polymake/prefer.pl". It
83
should contain a section like this (just make sure lrs is before cdd, the
84
position of beneath_beyond does not matter):
85
86
------------------------------------------------------------------
87
#########################################
88
application polytope;
89

90
prefer "*.convex_hull lrs, beneath_beyond, cdd";
91
------------------------------------------------------------------
92
93
94
1.3 Global Variables
95
96
HAPcryst itself does only have one global variable, namely InfoHAPcryst
97
(1.3-1). The location of files generated for interaction with polymake are
98
determined by the value of POLYMAKE_DATA_DIR (polymaking: POLYMAKE_DATA_DIR)
99
which is a global variable of polymaking.
100
101
1.3-1 InfoHAPcryst
102
103
> InfoHAPcryst____________________________________________________info class
104
105
At a level of 1, only the most important messages are printed. At level 2,
106
additional information is displayed, and level 3 is even more verbose. At
107
level 0, HAPcryst remains silent.
108
109
110