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 the whole family.

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 its family; a single plane or direction is in the frame without its group. A vector3d keeps its components and is restated in the crystal frame.

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.