EMeqvPS - EMsoft-org/EMsoft GitHub Wiki
Program: EMeqvPS
This is a very simple utility program that takes a point group number along with an axis-angle pair, and lists all the equivalent pseudo-symmetric rotations.
This program works as follows: starting from the point group number, a list of rotational symmetry operators is generated (in quaternion representation). The input axis-angle pair is also converted to a quaternion. The axis direction of the input pair is converted into a list of rotated axes, using the rotational symmetry operations. A random Euler angle triplet is reduced to the fundamental zone for the given point group, and all of the operators in the list are used to generate rotated versions of the random orientation, each of them reduced to the fundamental zone. Finally, the unique rotations in this list are determined and the symmetrically equivalent rotations that gave rise to these unique rotations are listed. These are the pseudo-symmetrically equivalent rotations.
Let's consider an example: a tetragonal crystal with rotational point group 422 (#12). It happens rather often that the lattice parameters of the unit cell are almost cubic, i.e., c is only a little larger of smaller than a. Thus, the [010] zone axis pattern can be confused with the [001] pattern. The rotation that brings one to the other is 90°@[100], and the program produces the following output:
Enter the point group number 12
Enter the pseudo-symmetry axis-angle pair (axis, angle°) 1,0,0,90.0
Unique pseudo-symmetry operators (axis,angle°):
1.00000000 0.00000000 0.00000000 90.00000000
0.00000000 1.00000000 0.00000000 90.00000000
In other words, there are two rotations that would bring the [001] axis onto a pseudo-symmetrically equivalent axis, namely the input rotation 90°@[100] and also 90°@[010], as is easily verified.