# Specifying Rotations

You specify a rotation by a sequence of one or more substrings separated by commas,

  rot1[,rot2][...]


Each substring rot1, rot2, … is a rotation around a particular axis and has the syntax

  (x,y,z)angle


angle is the size of the rotation, in radians; x, y, and z are three real numbers specifying the rotation axis. There should be no spaces in the string.

Each successive substring specifies a rotation about the new coordinate system. As a special case, the Euler angles are defined as a sequence of three rotations, the first about z by angle α, the second a rotation about the new y axis by angle β; the third about the new z axis by angle γ. For the case α=π/4, β=π/3, and γ=π/2, the syntax would be

  (0,0,1)pi/4,(0,1,0)pi/3,(0,0,1)pi/2


You can use as a the following strings as shorthand:
x: = shorthand for (1,0,0)
y: = shorthand for (0,1,0)
z: = shorthand for (0,0,1)

Thus the rotation above could equally be specified as:

z:pi/4,y:pi/3,z:pi/2


Below are two instances of rotations, especially useful for cubic systems:

  z:pi/4,y:acos(1/sqrt(3))  ← Rotates z to the (1,1,1) direction
z:-pi/4,y:pi/2            ← Rotates z to the (1,-1,0) direction


#### Space groups

Crystallographic space groups consist of a translation part a in addition to a rotation part R. In general a point r gets mapped into

r′ = R r + a

The Questaal codes have an additional syntax for space groups. The translation part gets appended to rotation part in one of the following forms:  :(x1,x2,x3)  or alternatively  ::(p1,p2,p3)  with the double ‘::’. The first defines the translation in Cartesian coordinates; the second as fractional multiples of lattice vectors.

Example: Co is hcp with c/a=1.632993. Writing the basis as

SITE    ATOM=A XPOS=1/3 -1/3 1/2
ATOM=A XPOS= 0 0 0


generators of the space group read in either of the two equivalent forms

i*r3z:(-1*sqrt(3)/6,-1/2,-0.8164966) r2z:(-1*sqrt(3)/6,-1/2,0.8164966) r2x
i*r3z::(1/3,-1/3,-1/2) r2z::(1/3,-1/3,1/2) r2x