Fellow GAP forum members,
Forgive me for asking for your help again, but I really don't seem to be
getting the hang of programming in GAP. Forgive me also if all these attempts
to get this message posted eventually come through the server.
I now need to compute the homology of a crystal. I'll give an example, in as
much detail as I can, so you can tell me if it's possible to do this in GAP and
how to do it if it is. I have a program in another computer mathematics program
that does this, but it is very slow and still requires me to do some work by
hand. I think GAP should be able to do this more efficiently.
Example, 2mm: (capital letters are lattice basis vectors, lower-case letters
are group elements)
Take a rectangular lattice generated by two vectors, A and B, with A along the
x-axis and B along the y-axis. Let the 4-element group generated by a
180-degree rotation (r) and a mirror about the x-axis (m) act from the left on
this lattice (G={e,r,m,rm})...
^ B | ------- | -------- | | | | -------------> A | | ------------------ eA=A eB=B rA=-A rB=-B mA=A mB=-B rmA=-A rmB=B I express the lattice vectors as A=[[1],[0]] B=[[0],[1]] and the group generators are r=[[-1,0],[0,-1]] m=[[1,0],[0,-1]] There are 8 (#lattice vectors x #group elements) 1-chains and 32 2-chains. The boundary of a 1-chain is given by \del L[g]=gL-L. The boundary of a 2-chain is given by \del L[g|h]=hL[g]-L[gh]+L[h]. From this it is easily calculated that the six 1-cycles (thus the elements of Z_1(G,L)) are A[e], A[m], A[rm]-A[r], B[e], B[rm], B[m]-B[r]. We can also calculate the elements of B_1(G,L) and find them to be A[e], B[e], A[r]+A[m]-A[rm], A[r]-A[m]-A[rm], -B[r]+B[m]-B[rm], B[r]-B[m]-B[rm].