Defining Orientations edit page

This sections covers the definition of orientations as MTEX variables. The theoretical definition can be found in the section Theory and MTEX vs Bunge Convention.

Technically, a variable of type orientation is nothing else then a rotation that is accompanied by a crystal symmetry. Hence, all methods for defining rotations (as explained here) are also applicable for orientations with the only difference that the crystal symmetry has to be specified in form of a variable of type crystalSymmetry.

% load copper cif file
cs = crystalSymmetry.load('Cu-Copper.cif')
cs = crystalSymmetry
 
  mineral : Copper       
  symmetry: m-3m         
  elements: 48           
  a, b, c : 3.6, 3.6, 3.6

Most importantly we may use Euler angles to define orientations

ori = orientation.byEuler(30*degree,50*degree,10*degree,cs)
ori = orientation (Copper → xyz)
 
  Bunge Euler angles in degree
  phi1  Phi phi2 Inv.
    30   50   10    0

or a 3x3 rotation matrix

M = eye(3)

ori = orientation.byMatrix(M)
M =
     1     0     0
     0     1     0
     0     0     1
 
ori = orientation (1 → xyz)
 
  Bunge Euler angles in degree
  phi1  Phi phi2 Inv.
     0    0    0    0

Miller indices

Another common way to specify an orientation is by the crystal directions point towards the specimen directions Z and X. This can be done by the command byMiller. E.g. in order to define the GOSS orientation (011)[100] we can write

orientation.byMiller([0 1 1],[1 0 0],cs)
ans = orientation (Copper → xyz)
 
  Bunge Euler angles in degree
  phi1  Phi phi2 Inv.
     0   45    0    0

Note that MTEX comes already with a long list of predefined orientations.

Random Orientations

To simulate random orientations we may apply the same syntax as for rotations and write

ori = orientation.rand(100,cs)
ori = orientation (Copper → xyz)
  size: 100 x 1

Specimen Symmetry

If one needs to consider also specimen symmetry this can be defined as a variable of type specimenSymmetry and passed as an additional argument to all commands discussed above, e.g.,

% define orthotropic specimen symmetry
ss = specimenSymmetry('orthorhombic')

% define a corresponding orientation
ori = orientation.byEuler(30*degree,50*degree,10*degree,cs,ss)
ss = orthorhombic specimenSymmetry  
 
 
ori = orientation (Copper → xyz (mmm))
 
  Bunge Euler angles in degree
  phi1  Phi phi2 Inv.
    30   50   10    0

Symmetrisation will now result in a very long list of symmetrically equivalent orientations

ori.symmetrise
ans = orientation (Copper → xyz (mmm))
  size: 384 x 1