MillerIndices

Documentation for MillerIndices.

MillerIndices.jl is a Julia package that provides a convenient way to handle Miller indices and Miller–Bravais indices in crystallography.

See the Index for the complete list of documented functions and types.

The code, which is hosted on GitHub, is tested using various continuous integration services for its validity.

This repository is created and maintained by @singularitti, and contributions are highly welcome.

Package features

  1. Representation of indices:

    • Miller: Represents the Miller indices in real space (crystal directions).
    • ReciprocalMiller: Represents the Miller indices in reciprocal space (planes).
    • MillerBravais: Represents the Miller–Bravais indices in real space (crystal directions).
    • ReciprocalMillerBravais: Represents the Miller–Bravais indices in reciprocal space (planes).
  2. Macro for easy generation:

    m"[-1, 0, 1]"        # Miller
    m"<2, -1, -1, 3>"    # MillerBravais
    m"(-1, 0, 1)"        # ReciprocalMiller
    m"(1, 0, -1, 0)"     # ReciprocalMillerBravais
  3. List equivalent directions/planes

  4. Conversion between Miller and Miller-Bravais representations

  5. Calculate angles between indices

  6. Interplanar spacing calculation

Installation

The package can be installed with the Julia package manager. From the Julia REPL, type ] to enter the Pkg mode and run:

pkg> add MillerIndices

Or, equivalently, via Pkg.jl:

julia> import Pkg; Pkg.add("MillerIndices")   Resolving package versions...
    Updating `~/.julia/packages/MillerIndices/uC856/docs/Project.toml`
  [f41335bc] ~ MillerIndices v0.2.0 `~/.julia/dev/MillerIndices` ⇒ v0.2.0
    Updating `~/.julia/packages/MillerIndices/uC856/docs/Manifest.toml`
  [f41335bc] ~ MillerIndices v0.2.0 `~/.julia/dev/MillerIndices` ⇒ v0.2.0

Documentation

  • STABLEdocumentation of the most recently tagged version.
  • DEVdocumentation of the in-development version.

Project status

The package is developed for and tested against Julia v1.6 and above on Linux, macOS, and Windows.

Questions and contributions

You can post usage questions on our discussion page.

We welcome contributions, feature requests, and suggestions. If you encounter any problems, please open an issue. The Contributing page has a few guidelines that should be followed when opening pull requests and contributing code.

Manual outline

Library outline

Index