Symmetry adapted bases |
MD(g)=D(g)M,for each element g of a finite group G, and a given (possibly reducible) representation D of G over C. Then we can find a basis such that by transformation M decomposes into
AMA^{-1}=Here is a program that does this job:
M_{1} ... M_{1} ... M_{r} ... M_{r}
sab_input(S,SMat,M); group_gen(S,SMat,D,Di); sab(Di,D,B,M,mcp); println(mcp); println(M); println(B);You see that you need to input S (a set of generating elements of the symmetry group), SMat (the set of irreducible matrices that represent the generators, for each irreducible representation contained in the representation of the symmetry group), and M, the operator that you want to decompose. Here is an example, which we describe along the input file (which is in ex18.in):
2
4
2 1 3 4
4
2 3 4 1
5
1 1 1
1
1 1 1
1
3 3 1
1 0 -1
0 1 -1
0 0 -1
3 3 1
-1 1 0
-1 0 1
-1 0 0
2 2 1
1 -1
0 -1
2 2 1
-1 0
-1 1
3 3 1
1 -1 1
0 -1 0
0 0 -1
3 3 1
1 -1 1
1 0 0
0 1 0
1 1 1
-1
1 1 1
-1
4 4 1
0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0
The first line of this input file says that there is a vector of length 2 to come which contains the generators. These generators are given as permutations (note that at present the symmetry adapted bases can be evaluated only in the case when the symmetry group is acting as a permutation group on the basis of the space in question). Therefore the 4 in the second line means that the following entry of the vector of generators is a vector of length 4, namely the list of the permutation of the first generator of the symmetric group S_{4} in the present case. You see that the generators used are the transposition (12) and the full cycle (1234). After that the 5 announces that we enter for each of the 5 irreducible representations of S_{4} the matrices representing the generators already given. The following row 1 1 1 means that the matrix has 1 row, 1 column, and the entries are of type 1 (=INTEGER). It should be mentioned that in fact we do not need to do this for each of the 5 irreducible representations, since we know already from representation theory that in the present case it is only the identity representation and the representation corresponding to the partition 1 3 which occur as irreducible constituents. Therefore only the first two representations need to be entered. The five last rows contain the 4-rowed matrix of the operator which we want to decompose.
If you want to check this example, then please put this input into a file input, say, and enter (after having the test program compiled)
a.out < input > outputYou will then find at the end of the file output the following lines:
[1,3]
[
[3:]
,
[-1:]
]
[6:2:2:2:]
[6:2:2:-6:]
[6:2:-6:2:]
[6:-6:2:2:]
The first of these lines says that the permutation representation of S_{4} decomposes into two irreducible representations D_{1} and D_{2} (according to the numbering in the input file), that their degrees are 1 and 3, respectively, and so the transformed operator decomposes into 4 blocks, three of which are equal. Thus the first row [1,3] shows the multiplicities of the blocks in the transformed operator. Note that, by theory, these multiplicities are equal to the dimensions of the irreducibles! Finally the blocks are given, each of them just once. Therefore, in our case, the transformed operator looks as follows:
The final 4-rowed matrix contains the elements of the symmetry adapted basis in its rows.
3 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1
Symmetry adapted bases |