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
<Section><Heading>Abstract and Notation</Heading>
2
3
<Package>HAPcryst</Package> is an extension for "Homological Algebra
4
Programming" (<Package>HAP</Package>, <Cite Key="hap"></Cite>) by Graham
5
Ellis. It uses geometric methods to calculate resolutions for
6
crystallographic groups.
7
8
In this manual, we will use the terms "space group" and
9
"crystallographic group" synonymous. As usual in &GAP;, group elements
10
are supposed to act from the right. To emphasize this fact, some
11
functions have names ending in "OnRight" (namely those, which rely on
12
the action from the right). This is also meant to make work with
13
<Package>HAPcryst</Package> and <Package>cryst</Package> <Cite Key="cryst"></Cite> easier.<P></P>
14
15
The functions called "somethingStandardSpaceGroup" are supposed to work for
16
standard crystallographic groups on left and right some time in the
17
future. Currently only the versions acting on right are implemented.
18
19
As in <Package>cryst</Package> <Cite Key="cryst"></Cite>, space groups
20
are represented as affine linear groups. For the computations in
21
<Package>HAPcryst</Package>, crystallographic groups have to be in
22
"standard form". That is, the translation basis has to be the standard
23
basis of the space. This implies that the linear part of a group
24
element need not be orthogonal with respect to the usual scalar
25
product.
26
27
28
<Subsection><Heading>The natural action of crystallographic groups</Heading>
29
<Index>action of crystallographic groups</Index>
30
31
There is some confusion about the way crystallographic groups are
32
written. This concerns the question if we act on left or on right and if
33
vectors are of the form <C>[1,...]</C> or <C>[...,1]</C>. <P></P>
34
35
As mentioned, <Package>HAPcryst</Package> handles affine crystallographic
36
groups on right (and maybe later also on left) acting on vectors of the form
37
<M>[...,1]</M>.
38
<P></P>
39
<B>BUT:</B> The functions in <Package>HAPcryst</Package> do not take augmented
40
vectors as input (no leading or ending ones). The handling of vectors is done
41
internally. So in <Package>HAPcryst</Package>, a crystallographic group is a
42
group of <M>n\times n</M> matrices which acts on a vector space of dimension
43
<M>n-1</M> whose elements are vectors of length <M>n-1</M> (not <M>n</M>).
44
Example:
45
46
<Example>
47
gap> G:=SpaceGroup(3,4); #This group acts on 3-Space
48
SpaceGroupOnRightBBNWZ( 3, 2, 1, 1, 2 )
49
gap> Display(Representative(G));
50
[ [ 1, 0, 0, 0 ],
51
[ 0, 1, 0, 0 ],
52
[ 0, 0, 1, 0 ],
53
[ 0, 0, 0, 1 ] ]
54
gap> OrbitStabilizerInUnitCubeOnRight(G,[1/2,0,0]);
55
rec( orbit := [ [ 1/2, 0, 0 ], [ 1/2, 1/2, 0 ] ],
56
stabilizer := Group([ [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ],
57
[ 0, 0, 0, 1 ] ] ]) )
58
</Example>
59
60
</Subsection>
61
62
</Section>
63
64
65
<Section><Heading>Requirements</Heading><Index>installation</Index>
66
67
The following &GAP; packages are required
68
69
<List>
70
71
<Item>
72
<Package>polymaking</Package> which in turn depends on the computational
73
geometry software polymake.
74
</Item>
75
76
<Item> <Package>HAP</Package> </Item>
77
<Item> <Package>Cryst</Package> </Item>
78
79
</List>
80
81
The following &GAP; packages are not required but highly recommended:
82
83
<List>
84
<Item><Package>carat</Package></Item>
85
<Item><Package>CrystCat</Package></Item>
86
<Item><Package>GAPDoc</Package> is needed to display the online manual</Item>
87
</List>
88
89
<Subsection><Heading>Recommendation concerning polymake</Heading>
90
<Index>polymake</Index>
91
92
Calculating resolutions of Bieberbach groups involves convex hull
93
computations. polymake by default uses cdd to compute convex
94
hulls. Experiments suggest that lrs is the more suitable algorithm for
95
the computations done in HAPcryst than the default cdd. You can change the
96
behaviour of by editing the file "yourhomedirectory/.polymake/prefer.pl". It
97
should contain a section like this (just make sure lrs is before cdd,
98
the position of beneath_beyond does not matter):
99
100
<Listing>
101
#########################################
102
application polytope;
103
104
prefer "*.convex_hull lrs, beneath_beyond, cdd";
105
</Listing>
106
107
</Subsection>
108
109
</Section>
110
111
<Section><Heading>Global Variables</Heading>
112
113
<!--
114
The following global variables are used to influence the behavior of
115
<Package>HAPcryst</Package>. They can be found in the files
116
<File>lib/environment.gd</File> and <File>lib/environment.gi</File> of
117
the package directory.
118
119
<ManSection>
120
<Var Name="HAPCRYST_TMPDIR"/>
121
<Description>
122
For the interaction with <K>polymake</K>, files have to be
123
written. This variable determines which directory will be used for
124
this.<P></P>
125
All data files for <K>polymake</K> are written to this directory. If
126
it is not set (which is the default), a temporary directory is
127
created using <Code>DirectoryTemporary()</Code> at the first time a
128
method tries to write a file.
129
<P></P>
130
You can set the variable by either adding the line
131
<Code>HAPCRYST_TMPDIR:=Directory("nameofdir");</Code> to your <F>.gaprc</F>
132
file or by using <Ref Var="SetHAPcrystDataDirectory"/>.
133
</Description>
134
</ManSection>
135
136
<ManSection>
137
<Meth Name="SetHAPcrystDataDirectory" Arg="dir"/>
138
<Description>
139
Sets the value of the global variable <Ref Var="HAPCRYST_TMPDIR"/> to
140
<A>dir</A>. Note that <A>dir</A> must be a directory you must be allowed to
141
read from and write to (permissions are not checked).
142
</Description>
143
</ManSection>
144
-->
145
146
<Package>HAPcryst</Package> itself does only have one global variable, namely
147
<Ref InfoClass="InfoHAPcryst"/>.
148
The location of files generated for interaction with polymake are determined by
149
the value of <Ref Var="POLYMAKE_DATA_DIR" BookName="polymaking"/> which is a
150
global variable of <Package>polymaking</Package>.
151
152
<ManSection>
153
<InfoClass Name="InfoHAPcryst"/>
154
<Description>
155
At a level of 1, only the most important messages are printed. At level 2,
156
additional information is displayed, and level 3 is even more verbose. At
157
level 0, <Package>HAPcryst</Package> remains silent.
158
</Description>
159
</ManSection>
160
161
</Section>
162
163