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].