Specify a rotation by a sequence of one or more substrings separated by commas,
Each substring rot1, rot2, … is a rotation around a particular axis and has the syntax
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.
Rotations are taken to be passive (vectors remain fixed and the reference frame rotates). Thus a rotation +π/2 around z maps x → −y, y → +x, and z → z.
Each of the successive elementary rotations rot2, … specifies a rotation about the new coordinate system. Euler angles are defined as a sequence of three rotations, the first about z by angle α, the second about the new y axis by angle β; the third about the new z axis by angle γ.
Let R1 be a rotation by −π/2 around z. R1 maps x → y, y → −x, and z → z. Call this rotated system Reference frame 1.
Consider next R2, a rotation by +π/2 around y; it maps x → z and z → −x. If it is performed after R1, it rotates around the new y, or the original x. The combined rotation then maps x→y, y→−z, and z→−x .
For the three Euler angles α=π/4, β=π/2, and γ=π/3, the ROT tag in an input file would read
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)
The mcx utility will make the 3×3 rotation matrix for a particular rotation. In the preceding example, try
Below are two instances of rotations, especially useful for cubic systems:
z:pi/4,y:acos(1/sqrt(3)) ← Rotates <i>z</i> → (1,1,1) z:-pi/4,y:pi/2 ← Rotates <i>z</i>→(1,-1,0), <i>y</i>→(1,1,0), <i>x</i>→<i>z</i>.
Rotations in Space groups
Elements of a crystallographic space groups consist of a translation part a in addition to a rotation part R. In general a point r gets mapped into
The Questaal codes have an additional syntax for space groups. Only a limited number of rotations is possible in crystallographic lattices, so the format defining the rotation part is a little different. 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
Explicit rotation matrix for Euler angles
The rotation about Euler angles (α, β, γ) can be written
This corresponds to the three elementary rotations
Here and are and ; similarly for (, ) and (, ).
The rotation matrix constructed from Euler angles is then
It is the transpose of the rotation matrix given in Wikipedia, which refers to active rotations.