# Program symgen

Symgen computes the b_(lm) values for the symmetry adapted angular functions. There are two forms of input. The first is the table input which can be used for point groups where all of the real harmonics are part of a particular irreducible representation without the need for linear combinations. The second format for the input is where the character table of the point group is specified and all of the symmtery operations. In this case the program directly computes the matrix representations for the various irreducible representations and then constucts the appropriate symmetry adapted angular functions using the standard projection operator technique.

## Input data records

The following input records are required for symgen:

1. lmax
2. iuout, iumatrep
3. iprnfg
4. If lmax < 0 then read:
(luse(i), i = 1, ABS(lmax))
5. calctp, rtype
6. nthd, nphid
7. Input for table format when calctp = 'table'
or
Input of compute format which includes the character table and symmetry operations when calctp = 'compute'
8. If calctp = 'compute' then read:
nabop, (iabop(j), j = 1, nabop)

## Definition of the input variables

lmax
Maximum l of b_(lm) to compute
iuout
Unit on which to put out final blm's
iumatrep
Unit for output of matrix representation of the group
iprnfg
Print flag, =0 for minimal output, > 0 for more output
luse(i)
which values of l to compute the b_(lm)s for, if lmax > 0 then comput b_(lm)s for all values of l up to lmax
calctp
calculation type which can have the following values:
'compute'
Read in the character table and definition of the symmetry operations and directly compute the matrix representations of the irreducible representations and compute the symmetry adapated angular functions using projection operator techniques.
'table'
This is used when each b_(lm) belongs to a particular representation or component. Thus each b_(lm) is just 1, 0, or -1. Then table then describes which real harmonic belongs to which irreducible representation and with what phase (+/- 1)
rtype
is the representation type which can have the following values:
'real'
look for b_(lm) matrix which is only real
'complex'
look for b_(lm) matrix which is complex valued
nthd
Number of redundant theta regions (equal to 1 or 2)
nphid
Number of redundant phi regions (equal to 1, 2, or 4)
nabop
Number of symmetry operations in the abelian subgroup (excluding E)
iabop(i)
list of which of the symmetry operations of the full point group belong to the abelian subgroup, excluding the idenity element E.

The possible values of nthd and nphid for the abelian point groups are as follows:

C1 1 1
Cs 1 2
Ci 2 1
C2 1 2
D2 1 4
C2v 1 4
C2h 2 2
C2h(x) 2 1 (C2 axis along the x axis)
D2h 2 4

For non-abelian point groups, the values from the largest abelian subgroup should be used.

The controlling creiterion is that the real spherical harmmonics belonging to the same representation in the abelian subgroup must be orhtonormal when integrated over the points left in the grid.

• nphid = 2 is OK when sin(m phi) and cos(n phi) do not belong to the same representation, or sin(m phi) and cos(m phi) belong to the same representation only when both n and m are the same parity (i.e. either both even or both odd.
• nphid = 4 is OK when
1. sin(m phi) and cos(n phi) do not belong to the same representation and only sines and cosines of the same of the same parity are in the same representations
2. If the l's of the sin(m phi) and cos(n phi) functions have different parity and the parities of m and n are all the same in a given representation
• nthd = 2 is OK even and odd l do not mix, i. e. when there is a center of symmetry in the system

The program also assumes that the first coulmn of the character table is for the identity element.