crystal directions and lattice plane normals, a vector3d in a crystal frame; MATLAB’s Miller
Syntax
m = Miller(h, k, l, cs)
A lattice plane normal.
m = Miller(h, k, i, l, cs)
Four indices, hexagonal and trigonal lattices.
m = Miller(u, v, w, cs, 'uvw')
A lattice direction, ‘UVTW’ with four indices.
m = Miller([[1, 0, 0], [1, 1, 1]], cs)
Many at once, the indices along the last axis.
m = Miller('{111}', cs)
(hkl) or [uvw] one, {hkl} or
m = Miller(r'[100]\[011]', cs)
The plane holding both directions, the zone law.
m = Miller(r'(100)\(011)', cs)
The direction both planes hold.
m = Miller(v, cs)
A vector3d expressed in the crystal frame.
m = Miller(1, 1, 0, cs, antipodal=True)
With antipodal symmetry.
Description
A crystal direction is a vector3d written in a crystal frame: it has the Miller indices hkl
and uvw, and where the frame carries a point group it stands for its symmetrically
equivalent set; it is stored in Euclidean coordinates. A string names the indices by its
brackets: (hkl) one plane and {hkl} its family, [uvw] one direction and
Input
args |
three or four indices, each a number or an array, or one array with the indices along its last axis; a string; or a vector3d. Then the crystalFrame cs, and a style ‘hkl’, ‘hkil’, ‘uvw’, ‘UVTW’ or ‘xyz’, in any case, saying how the indices are read |
Keywords
| keyword | default | description |
|---|---|---|
antipodal |
False |
the antipodal symmetry: sets m.antipodal, and the frame’s Laue group takes the place of its point group |
dispStyle |
None |
the indices the display shows and the numbers are read as, the same as the style given positionally (‘hkl’, ‘hkil’, ‘uvw’, ‘UVTW’, ‘xyz’); a string keeps the style of its brackets |
Output
m |
vector3d in the crystal frame |
Example
In a hexagonal lattice, a plane normal and a direct-lattice direction with the same three indices need not be parallel. Compare their Cartesian directions without symmetry reduction.
import numpy as np
from mtex import crystalFrame, Miller, degree
cs = crystalFrame('6/mmm', [3.20927, 3.20927, 5.21033])
normal = Miller(1, 0, 1, cs, 'hkl')
direction = Miller(1, 0, 1, cs, 'uvw')
print('Plane normal:', np.round(normal.normalize().data, 3))
print('Lattice direction:', np.round(direction.normalize().data, 3))
print('Angle in degrees:', round(float(normal.angle(direction, symmetry=False) / degree), 2))
cAxis = Miller(0, 0, 0, 1, cs, 'UVTW')
print('Four-index c-axis:', cAxis)
Use hkl or hkil for reciprocal-lattice plane normals and uvw or UVTW for direct-lattice directions. The angle above compares these particular vectors rather than their symmetry orbits.
Plane normal: [ 0.882 -0. 0.471]
Lattice direction: [ 0.454 -0.262 0.851]
Angle in degrees: 36.73
Four-index c-axis: <0001>
See also
vector3d, crystalFrame, CrystalDirections, CrystalOperations
Used on
CrystalDirections, CrystalOperations, CrystalReferenceSystem, CrystalShapeSmorf, CrystalShapes, FundamentalSector, LatticeMetric, SymmetryAlignment, DefinitionAsCoordinateTransform, MTEXvsBungeConvention, OrientationDefinition, OrientationFibre
source
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/Miller_py.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.