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}) |
cat | concatenate lists of Miller indices to one list |
char | Miller indece to string |
checkFundamentalRegion | checks Miller indice to be within the fundamental region |
display | standard output |
dot | inner product between two Miller indece |
dot_outer | inner product between two Miller indece |
dspacing | space between crystal planes |
project2FundamentalRegion | projects vectors to the fundamental sector of the inverse pole figure |
region | return spherical region associated to a set of crystal directions |
rotate | crystal directions |
round | tries to round miller indizes to greatest common divisor |
scatter | plot Miller indece |
smooth | plot Miller indece |
symmetrise | directions symmetrically equivalent to m |
text | plot Miller indece |
transformReferenceFrame | change reference frame |
unique | disjoint list of Miller indices |
MTEX 4.0.10 |