In MTEX a crystal orientation is defined as the rotation that transforms crystal coordinates, i.e., a description of a vector or a tensor with respect to the crystal reference frame, into specimen coordinates, i.e., a description of the same object with respect to a specimen fixed reference frame.
In MTEX any orientation consists of two ingredients. A rotation
% lets take a random one
rot = rotation.rand
rot = rotation
Bunge Euler angles in degree
phi1 Phi phi2
156.958 161.468 197.878
and a description of the crystal lattice, which are represented in MTEX by variables of type crystalSymmetry
% lets take cubic crystal symmetry
cs = crystalSymmetry.load("Al-Aluminum.cif")
cs = crystalSymmetry
mineral : Aluminum
symmetry: m-3m
elements: 48
a, b, c : 4, 4, 4
Combining both ingredients allows us to define an orientation
ori = orientation(rot,cs)
ori = orientation (Aluminum → xyz)
Bunge Euler angles in degree
phi1 Phi phi2
156.958 161.468 197.878
As a consequence a variable of type orientation is at the same time of type rotation
and hence allows for all operations that are available for rotations.
Crystal coordinates to specimen coordinates
Let us consider the following crystal direction
h = Miller(1,0,0,cs,'uvw')
h = Miller (Aluminum)
u v w
1 0 0
In a grain with orientation ori
this direction h
has the specimen coordinates
r = ori * h
r = vector3d
x y z
3.08518 -2.59319 -0.395133
Similarly, orientations transform tensors given with respect to the crystal reference frame, e.g., the following single crystal stiffness tensor
C = stiffnessTensor(...
[[2 1 1 0 0 0];...
[1 2 1 0 0 0];...
[1 1 2 0 0 0];...
[0 0 0 1 0 0];...
[0 0 0 0 1 0];...
[0 0 0 0 0 1]],cs)
C = stiffnessTensor (Aluminum)
unit: GPa
rank: 4 (3 x 3 x 3 x 3)
tensor in Voigt matrix representation:
2 1 1 0 0 0
1 2 1 0 0 0
1 1 2 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
into a stiffness tensor with respect to the specimen reference frame
ori * C
ans = stiffnessTensor (xyz)
unit: GPa
rank: 4 (3 x 3 x 3 x 3)
tensor in Voigt matrix representation:
2.4996 0.5568 0.9436 -0.1188 -0.0327 0.1002
0.5568 2.5701 0.873 -0.1103 -0.0564 -0.0308
0.9436 0.873 2.1834 0.229 0.0891 -0.0694
-0.1188 -0.1103 0.229 0.873 -0.0694 -0.0564
-0.0327 -0.0564 0.0891 -0.0694 0.9436 -0.1188
0.1002 -0.0308 -0.0694 -0.0564 -0.1188 0.5568
Objects that can be translated by orientations from crystal into specimen coordinates and vice versa include
Specimen coordinates into crystal coordinates
Conversely, we can go back from specimen coordinates to crystal coordinates by multiplying with the inverse orientation
inv(ori) * r
ans = Miller (Aluminum)
h k l
16.3991 0 0
Note, that in literature orientations are often defined to transform specimen coordinates into crystal coordinates, i.e., to coincide with the inverse orientations in MTEX. The consequences of this differences are exhaustively discussed in the topic orientation conventions.
Specimen Rotation
Rotations of the specimen ,i.e., changing the specimen reference frame, do also change the orientation. Assume the specimen is rotated about the X-axis about 60 degree. We may define this rotation by
rot = rotation.byAxisAngle(vector3d.X,60*degree);
Then an orientation ori
is updated to the rotated reference frame by
ori_new = rot * ori
ori_new = orientation (Aluminum → xyz)
Bunge Euler angles in degree
phi1 Phi phi2
172.672 102.755 218.216
It should also be noted, that orientations are sensitive with respect to the alignment of the Euclidean reference frame \(\vec X\), \(\vec Y\), \(\vec Z\) with respect to the crystal axes \(\vec a\), \(\vec b\) and \(\vec c\). This issue is discussed in more detail in the topic Crystal Reference Frames.