Open Matlab File in the Editor MTEX

Crystal Directions (The Class Miller)

This section describes the class Miller and gives an overview how to deal with crystal directions in MTEX.

On this page ...
Class Description
Defining Miller indices
Plotting Miller indece
Symmetrically Equivalent Crystal Directions
Angle between directions
Conversions
Calculations
Complete Function list

Class Description

Crystal directions are represented in MTEX by the variables of the class Miller which in turn represent a direction with respect to the crystal coordinate system. described by three or four values h, l, k (,m) and a crystall symmetry. Essentially all operations defined for the vector3d class are also available for Miller indece. Furthermore, You can ask for all crystallographically equivalent crystal directions to one Miller indece.

Defining Miller indices

Miller indice are definded by three coordinates h, k, l (four in the case of trigonal or hecagonal crystal symmetry) and by the corresponding symmetry class. It is also possible to convert a vector3d object into a Miller indice.

cs = crystalSymmetry('trigonal');
m = Miller(1,0,-1,1,cs)
m = Miller(zvector,cs)
 
m = Miller  
 size: 1 x 1
 symmetry: -31m, X||a*, Y||b, Z||c*
  h  1
  k  0
  i -1
  l  1
 
m = Miller  
 size: 1 x 1
 symmetry: -31m, X||a*, Y||b, Z||c*
  h 0
  k 0
  i 0
  l 1

Plotting Miller indece

Miller indece are plotted as spherical projections. The specific projection as well as wheter to plot all equivalent directions can be specified by options.

plot(Miller(2,1,-3,1,cs))   % plot Miller indece

By providing the options all and labeled all symmetrically equivalent crystal directions are plotted together with there correct Miller indice.

plot(Miller(2,1,-3,1,cs),'all','labeled')   % plot Miller indece

Symmetrically Equivalent Crystal Directions

A simple way to compute all symmetrically equivalent directions to a given crystal direction is provided by the command symmetrise

m = Miller(1,1,-2,0,cs)
symmetrise(m)
 
m = Miller  
 size: 1 x 1
 symmetry: -31m, X||a*, Y||b, Z||c*
  h  1
  k  1
  i -2
  l  0
 
ans = Miller  
 size: 6 x 1
 symmetry: -31m, X||a*, Y||b, Z||c*
  h  1 -1 -2 -1  1  2
  k  1 -1  1  2 -2 -1
  i -2  2  1 -1  1 -1
  l  0  0  0  0  0  0

As allways the keyword antipodal adds antipodal symmetry to this computation

symmetrise(m,'antipodal')
 
ans = Miller  
 size: 6 x 1
 symmetry: -31m, X||a*, Y||b, Z||c*
  h  1 -1 -2 -1  1  2
  k  1 -1  1  2 -2 -1
  i -2  2  1 -1  1 -1
  l  0  0  0  0  0  0

The command eq or == can be used to check whether two crystal directions are symmetrically equivalent. Compare

Miller(1,1,-2,0,cs) == Miller(-1,-1,2,0,cs)
ans =
     1

and

eq(Miller(1,1,-2,0,cs),Miller(-1,-1,2,0,cs),'antipodal')
ans =
     1

Angle between directions

The angle between two crystal directions m1 and m2 is defined as the smallest angle between m1 and all symmetrically equivalent directions to m2. This angle in radiand is calculated by the funtion angle

angle(Miller(1,1,-2,0,cs),Miller(-1,-1,2,0,cs)) / degree
ans =
     0

As allways the keyword antipodal adds antipodal symmetry to this computation

angle(Miller(1,1,-2,0,cs),Miller(-1,-1,2,0,cs),'antipodal') / degree
ans =
     0

Conversions

Converting Miller indice into a three dimensional vector is straight forward using the command vectord3d.

vector3d(m)
 
ans = vector3d  
 size: 1 x 1
        x       y       z
  1.73205       1       0

Conversion into spherical coordinates requires the function polar

[theta,rho] = polar(m)
theta =
    1.5708
rho =
    0.5236

Calculations

Given a crystal orientation

o = orientation('Euler',20*degree,30*degree,40*degree,cs)
 
o = orientation  
  size: 1 x 1
  crystal symmetry : -31m, X||a*, Y||b, Z||c*
  specimen symmetry: 1
 
  Bunge Euler angles in degree
  phi1  Phi phi2 Inv.
    20   30   40    0
 
 

one can apply it to a crystal direction to find its coordinates with respect to the specimen coordinate system

o * m
 
ans = vector3d  
 size: 1 x 1
          x         y         z
  0.0861172   1.76339  0.939693

By applying a crystal symmetry class one obtains the coordinates with respect to the specimen coordinate system of all crystallographically equivalent specimen directions.

p = o * symmetrise(m);
plot(p)

Complete Function list

Miller(InferiorClasses = {?vector3d,?S2Grid})
catconcatenate lists of Miller indices to one list
charMiller indece to string
checkFundamentalRegionchecks Miller indice to be within the fundamental region
displaystandard output
dotinner product between two Miller indece
dot_outerinner product between two Miller indece
dspacingspace between crystal planes
project2FundamentalRegionprojects vectors to the fundamental sector of the inverse pole figure
regionreturn spherical region associated to a set of crystal directions
rotatecrystal directions
roundtries to round miller indizes to greatest common divisor
scatterplot Miller indece
smoothplot Miller indece
symmetrisedirections symmetrically equivalent to m
textplot Miller indece
transformReferenceFramechange reference frame
uniquedisjoint list of Miller indices