Rotations mapping the fundamental sector on S2#

This example shows how to sample rotations \(\mathbf{R}\) that when rotating the vector \(\mathbf{v_z} = (0, 0, 1)\), the resulting vectors cover the fundamental sector of a given Laue class.

We show this by comparing the vectors we get by:

  1. Sampling rotations for 4/mmm and then rotating \(\mathbf{v_z}\)

  2. Sampling all of S2 but only keeping those within the corresponding fundamental sector.

Apart from the first rotation, all rotations have a Euler angle \(\phi = 0^{\circ}\). These “reduced” rotations can be useful in template matching of spot patterns from the transmission electron microscope.

import matplotlib.pyplot as plt
import numpy as np

from orix import plot, sampling
from orix.quaternion import symmetry
from orix.vector import Vector3d

# Sample rotations with an average misorientation
res = 2
pg = symmetry.D4h  # 4/mmm

R = sampling.get_sample_reduced_fundamental(res, point_group=pg)
print(np.allclose(R.to_euler()[1:, 0], 0))
True

Get vectors within the fundamental sector following the two routes

v1 = R * Vector3d.zvector()

v2 = sampling.sample_S2(res)
v2 = v2[v2 <= pg.fundamental_sector]

# Only equivalent for the same S2 sampling method
print(np.allclose(v1.data, v2.data))
print(v1)
print(v2)
True
Vector3d (852,)
[[0.     0.     1.    ]
 [0.0341 0.     0.9994]
 [0.0682 0.     0.9977]
 ...
 [0.7063 0.7063 0.0483]
 [0.7069 0.7069 0.0241]
 [0.7071 0.7071 0.    ]]
Vector3d (852,)
[[ 0.      0.      1.    ]
 [ 0.0341  0.      0.9994]
 [ 0.0682  0.      0.9977]
 ...
 [ 0.7063  0.7063  0.0483]
 [ 0.7069  0.7069  0.0241]
 [ 0.7071  0.7071 -0.    ]]

Plot the vectors in the fundamental sector of Laue group 4/mmm

fig, (ax0, ax1) = plt.subplots(
    ncols=2, subplot_kw={"projection": "ipf", "symmetry": pg}, layout="tight"
)
ax0.scatter(v1, s=5)
ax1.scatter(v2, c="C1", s=5)
ax0.set_title("Rotated Z vectors", loc="left")
ax1.set_title("Directly sampled", loc="left")
_ = fig.suptitle("Vectors in the fundamental sector of 4/mmm", y=0.8)
Vectors in the fundamental sector of 4/mmm, Rotated Z vectors, Directly sampled

Total running time of the script: (0 minutes 0.973 seconds)

Estimated memory usage: 9 MB

Gallery generated by Sphinx-Gallery