Defining Orientations edit page

An <orientation.orientation.html orientation> is a <rotation.rotation.html rotation> that knows which crystal it belongs to. Everything on Defining Rotations therefore applies here as well - the same constructors, with a crystalSymmetry handed in as an extra argument.

What the rotation means is a separate question, answered in Theory and in MTEX vs. Bunge Convention. This page is about building one.

plottingConvention.default('y↑→x');

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

Euler Angles

The most common input, and the one that needs its convention stated - MTEX reads and writes Bunge angles by default.

ori = orientation.byEuler(30*degree,50*degree,10*degree,cs)
ori = orientation (Copper → y↑→x)
 
  Bunge Euler angles in degree
  phi1  Phi phi2
    30   50   10

The display names the crystal symmetry alongside the angles. An orientation without a symmetry is just a rotation, and MTEX keeps the two apart for that reason.

Rotation Matrix

A \(3 \times 3\) matrix defines an orientation just as it defines a rotation.

M = eye(3)
M =
     1     0     0
     0     1     0
     0     0     1
ori = orientation.byMatrix(M,cs)
ori = orientation (Copper → y↑→x)
 
  Bunge Euler angles in degree
  phi1  Phi phi2
     0    0    0

The identity matrix gives the orientation in which the Cartesian crystal frame is aligned with the specimen frame - the reference setting from which the Euler angles of every other orientation are counted.

Miller Indices

Metallurgy usually names an orientation by two crystal directions: the lattice plane facing the specimen Z axis and the lattice direction pointing along X. That is what orientation.byMiller takes, here for the Goss orientation \((011)[100]\).

ori = orientation.byMiller([0 1 1],[1 0 0],cs)
ori = orientation (Copper → y↑→x)
 
  Bunge Euler angles in degree
  phi1  Phi phi2
     0   45    0

A spherical plot confirms the reading: the \((011)\) pole sits at the centre, where Z is, and the \([100]\) direction on the X axis at the rim.

rPlane = ori * Miller(0,1,1,cs);
rDirection = ori * Miller(1,0,0,cs,'uvw');

plot([rPlane,rDirection],'upper','grid','MarkerSize',10,...
  'label',{'(011)','[100]'},'backgroundColor','w','figSize','small')
hold on
annotate([vector3d.X,vector3d.Z],'label',{'X','Z'},'backgroundColor','w')
hold off

Goss and the other named textures are predefined, so this one is also orientation.goss(cs) - see Standard Orientations.

angle(ori,orientation.goss(cs)) ./ degree
ans =
     0

Random Orientations

As for rotations, uniformly distributed orientations come from rand, which needs the symmetry as well.

ori = orientation.rand(100,cs);

length(ori)
ans =
   100

Symmetrically Equivalent Orientations

A crystal cannot distinguish its symmetrically equivalent settings, so every orientation stands for a whole set of them. symmetrise lists that set.

ori = orientation.byEuler(30*degree,50*degree,10*degree,cs);

length(ori.symmetrise)
ans =
    48

Copper is m-3m, which has 48 elements, and 24 of them are improper.

nnz(ori.symmetrise.isImproper)
ans =
    24

Only the 24 proper ones are settings a crystal can be physically turned into. The improper ones remain symmetries of the lattice and matter when a calculation treats opposite plane normals as equivalent, as conventional diffraction does under Friedel's law. This is why "the angle between two orientations" is always taken as the smallest over all equivalent pairs, see Symmetry.

Specimen Symmetry

The specimen may have symmetry of its own - rolling, for instance, makes the sheet look the same under three mirror planes. It is given as a specimenSymmetry and passed alongside the crystal symmetry.

% define orthotropic specimen symmetry
ss = specimenSymmetry('orthorhombic')
ss = orthorhombic specimenSymmetry (y↑→x)
ori = orientation.byEuler(30*degree,50*degree,10*degree,cs,ss)
ori = orientation (Copper → y↑→x (mmm))
 
  Bunge Euler angles in degree
  phi1  Phi phi2
    30   50   10

Both symmetries now act, one from each side, and the set of equivalent orientations grows accordingly - the 48 crystal elements times the 8 specimen ones.

length(ori.symmetrise)
ans =
   384

Specimen symmetry is a statement about the sample, not about the measurement, and imposing one that is not there hides real texture components. Specimen Symmetry says when to use it.

Next

Theory explains what an orientation does to coordinates, which is the definition the rest of MTEX rests on. Pole Figures and Inverse Pole Figures are the two ways of looking at one.

Citing this page. This page is part of the documentation of MTEX, a free and open source MATLAB toolbox for analyzing and modeling crystallographic textures. It was written by The MTEX Developers and is published at https://mtex-toolbox.github.io/OrientationDefinition.html. If you use MTEX, or reuse text or figures from this page, in your research, please cite

F. Bachmann, R. Hielscher, H. Schaeben: Texture Analysis with MTEX - Free and Open Source Software Toolbox, Solid State Phenomena 160 (2010), 63-68. 10.4028/www.scientific.net/SSP.160.63

BibTeX
@article{bachmann2010mtex,
  author  = {F. Bachmann and R. Hielscher and H. Schaeben},
  title   = {Texture Analysis with MTEX - Free and Open Source Software Toolbox},
  journal = {Solid State Phenomena},
  volume  = {160},
  pages   = {63-68},
  year    = {2010},
  doi     = {10.4028/www.scientific.net/SSP.160.63},
  url     = {https://doi.org/10.4028/www.scientific.net/SSP.160.63}
}

Other papers describing specific MTEX methods are listed under Publications — please cite the one that best fits your application. The MTEX source code is licensed under the GNU General Public License v2.0; the text and figures of this documentation are licensed under CC BY 4.0, which permits reuse — including by automated systems — provided The MTEX Developers and this page are credited.