Skip to main content

Structures of Alloys Generation And Recognition

Project description

This is a (P)ure python implementation of algorithm to determin Niggli cell. The library supports both 2D and 3D niggli transformations.

Rows of list or rows of numpy.ndarray correspond basis vectors, a, b, c or a, b They are input to niggli_reduce as a row with three colum matrices, same as most DFT softwares’ lattice inputs.

In the implementation details, since the lattice is represented by a row vector, the transformation operation on the lattice is left-multiplied, such as:

import numpy as np

# TMatrix is the transform matrix
new_Lattice = np.matmul(TMatrix, old_Lattice)

For details of the algorithm, see [[Niggli for 2d and 3d]](http://)

Install

$ pip install pniggli

Usage

from pniggli import niggli_reduce, niggli_check

lattice_3D = [4.912, 0.000, 0.000,
            -2.456, 4.254, 0.000,
            0.000, 0.000, 0.000]
niggli_lattice = niggli_reduce(lattice_3D)
print(niggli_lattice)
# Out:
# array([[ 4.912,  0.   ,  0.   ],
#        [-2.456,  4.254,  0.   ],
#        [ 0.   ,  0.   , 16.   ]])
print(niggli_check(niggli_lattice)) # True

lattice_2D = [2.4560000896, 0.0000000000,
            11.0520002567, 2.1269502021]
niggli_lattice = niggli_reduce(lattice_2D)
print(niggli_lattice)
# Out[6]:
# array([[-1.2279999 , -2.1269502 ],
#        [-1.22800019,  2.1269502 ]])

The 2D example is a triangle motif.

Version

v0.1.2

  • 2D and 3D niggli reduce support
  • niggli_check for 3D lattice

v0.1.0

  • 3D niggli reduce support
  • niggli_check for 3D lattice

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pniggli, version 0.1.3
Filename, size File type Python version Upload date Hashes
Filename, size pniggli-0.1.3-py2.py3-none-any.whl (8.2 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size pniggli-0.1.3.tar.gz (5.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page