Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
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
Project: cocalc-sagemath-dev-slelievre
Views: 418346<Section><Heading>Abstract and Notation</Heading>12<Package>HAPcryst</Package> is an extension for "Homological Algebra3Programming" (<Package>HAP</Package>, <Cite Key="hap"></Cite>) by Graham4Ellis. It uses geometric methods to calculate resolutions for5crystallographic groups.67In this manual, we will use the terms "space group" and8"crystallographic group" synonymous. As usual in &GAP;, group elements9are supposed to act from the right. To emphasize this fact, some10functions have names ending in "OnRight" (namely those, which rely on11the action from the right). This is also meant to make work with12<Package>HAPcryst</Package> and <Package>cryst</Package> <Cite Key="cryst"></Cite> easier.<P></P>1314The functions called "somethingStandardSpaceGroup" are supposed to work for15standard crystallographic groups on left and right some time in the16future. Currently only the versions acting on right are implemented.1718As in <Package>cryst</Package> <Cite Key="cryst"></Cite>, space groups19are represented as affine linear groups. For the computations in20<Package>HAPcryst</Package>, crystallographic groups have to be in21"standard form". That is, the translation basis has to be the standard22basis of the space. This implies that the linear part of a group23element need not be orthogonal with respect to the usual scalar24product.252627<Subsection><Heading>The natural action of crystallographic groups</Heading>28<Index>action of crystallographic groups</Index>2930There is some confusion about the way crystallographic groups are31written. This concerns the question if we act on left or on right and if32vectors are of the form <C>[1,...]</C> or <C>[...,1]</C>. <P></P>3334As mentioned, <Package>HAPcryst</Package> handles affine crystallographic35groups on right (and maybe later also on left) acting on vectors of the form36<M>[...,1]</M>.37<P></P>38<B>BUT:</B> The functions in <Package>HAPcryst</Package> do not take augmented39vectors as input (no leading or ending ones). The handling of vectors is done40internally. So in <Package>HAPcryst</Package>, a crystallographic group is a41group of <M>n\times n</M> matrices which acts on a vector space of dimension42<M>n-1</M> whose elements are vectors of length <M>n-1</M> (not <M>n</M>).43Example:4445<Example>46gap> G:=SpaceGroup(3,4); #This group acts on 3-Space47SpaceGroupOnRightBBNWZ( 3, 2, 1, 1, 2 )48gap> Display(Representative(G));49[ [ 1, 0, 0, 0 ],50[ 0, 1, 0, 0 ],51[ 0, 0, 1, 0 ],52[ 0, 0, 0, 1 ] ]53gap> OrbitStabilizerInUnitCubeOnRight(G,[1/2,0,0]);54rec( orbit := [ [ 1/2, 0, 0 ], [ 1/2, 1/2, 0 ] ],55stabilizer := Group([ [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ],56[ 0, 0, 0, 1 ] ] ]) )57</Example>5859</Subsection>6061</Section>626364<Section><Heading>Requirements</Heading><Index>installation</Index>6566The following &GAP; packages are required6768<List>6970<Item>71<Package>polymaking</Package> which in turn depends on the computational72geometry software polymake.73</Item>7475<Item> <Package>HAP</Package> </Item>76<Item> <Package>Cryst</Package> </Item>7778</List>7980The following &GAP; packages are not required but highly recommended:8182<List>83<Item><Package>carat</Package></Item>84<Item><Package>CrystCat</Package></Item>85<Item><Package>GAPDoc</Package> is needed to display the online manual</Item>86</List>8788<Subsection><Heading>Recommendation concerning polymake</Heading>89<Index>polymake</Index>9091Calculating resolutions of Bieberbach groups involves convex hull92computations. polymake by default uses cdd to compute convex93hulls. Experiments suggest that lrs is the more suitable algorithm for94the computations done in HAPcryst than the default cdd. You can change the95behaviour of by editing the file "yourhomedirectory/.polymake/prefer.pl". It96should contain a section like this (just make sure lrs is before cdd,97the position of beneath_beyond does not matter):9899<Listing>100#########################################101application polytope;102103prefer "*.convex_hull lrs, beneath_beyond, cdd";104</Listing>105106</Subsection>107108</Section>109110<Section><Heading>Global Variables</Heading>111112<!--113The following global variables are used to influence the behavior of114<Package>HAPcryst</Package>. They can be found in the files115<File>lib/environment.gd</File> and <File>lib/environment.gi</File> of116the package directory.117118<ManSection>119<Var Name="HAPCRYST_TMPDIR"/>120<Description>121For the interaction with <K>polymake</K>, files have to be122written. This variable determines which directory will be used for123this.<P></P>124All data files for <K>polymake</K> are written to this directory. If125it is not set (which is the default), a temporary directory is126created using <Code>DirectoryTemporary()</Code> at the first time a127method tries to write a file.128<P></P>129You can set the variable by either adding the line130<Code>HAPCRYST_TMPDIR:=Directory("nameofdir");</Code> to your <F>.gaprc</F>131file or by using <Ref Var="SetHAPcrystDataDirectory"/>.132</Description>133</ManSection>134135<ManSection>136<Meth Name="SetHAPcrystDataDirectory" Arg="dir"/>137<Description>138Sets the value of the global variable <Ref Var="HAPCRYST_TMPDIR"/> to139<A>dir</A>. Note that <A>dir</A> must be a directory you must be allowed to140read from and write to (permissions are not checked).141</Description>142</ManSection>143-->144145<Package>HAPcryst</Package> itself does only have one global variable, namely146<Ref InfoClass="InfoHAPcryst"/>.147The location of files generated for interaction with polymake are determined by148the value of <Ref Var="POLYMAKE_DATA_DIR" BookName="polymaking"/> which is a149global variable of <Package>polymaking</Package>.150151<ManSection>152<InfoClass Name="InfoHAPcryst"/>153<Description>154At a level of 1, only the most important messages are printed. At level 2,155additional information is displayed, and level 3 is even more verbose. At156level 0, <Package>HAPcryst</Package> remains silent.157</Description>158</ManSection>159160</Section>161162163