Skip to main content

Enumeration of symmetrically unique derivative superstructures of crystals.

Project description

PyPI Build StatuscodecovCode Issues

phonon-enumeration

This code is used to enumerate all the derivative structures of a system within a crystalographic system within specified concentration and cell size ranges. The code uses a newly developed group theoretic approach that is extremely efficient and can include the enumeration of displacement directions, or arrow directions, within a system.

Full API Documentation available at: github pages.

Installing the code

To install the code use the following command in the phonon-enumeration directory:

pip intsall phenum

Alternatively you can clone this repository and use:

python setup.py install

from within the phonon-enumeration directory.

Running the code

Complete enumeration of a system.

If you want to enumerate every possible structure specified in your ‘struct_enum.in’ file, a sample of which can be found in the input folder, then use the commend:

enumeration-py -enum

Enumerating a subset

If the total number of arrangements in your system is huge you may not want to enumerate them all. In that case it is possible to enumerate a subset of the system as follows. Examples of all input files can be found in the input folder. First have the code find the polya distribution for the system described in your lattice.in file:

enumeration.py -polya

Next we need to build an enum.in file. You may either build this by hand or have the code build it for you using the -distribution option which takes two arguments, the type of distribution and the number of structures we want in the results.

enumeration.py -distribution all all
enumeration.py -distribution all 100

If any option other than ‘all’ is passed into the first argument then the code will not produce an enum.in file that will be useful for the actual enumeration. The options of ‘HNF’, ‘shape’, and ‘conc’ are simply for the user’s viewing purposes.

Once an enum.in file has been constructed we can enumerate the entire set of unique configurations:

enumeration.py -enum

This will make an enum.out file listing the unique configurations.

Making POSCARS

Phenum contains a second executable for making POSCARS. To make a POSCAR first select a structure number, or range of structures, for the POSCARs to be constructed for from the enum.out file. Then run:

makeStr.py 10

This would make the POSCAR for the 10th structure. For a range of structures use:

makeStr.py 20 30

To make POSCARs for the 20th to 30th structures. The POSCARS are saved as vasp.* files. To have the code calculate the lattice parameter as well use:

makeStr.py 10 -species Al Ni

Where the Al and Ni are replaced with the elements in the system being modeled.

Visualization

At times it is useful to construct the distribution based off the shapes of the supercells. For the non-expert user an option has been added to the code to make pictures of the supercells. To do this first we need to make a distribution of only the supercells:

enumeration.py -distribution shape all -savedist

This created an enum.in file that lists only the supercells and the number of unique arrangements within each supercell. We can now visualize each of the supercells:

enumeration.py -visualize -shape

This creates a pdf file for each of the supercells. The -shape option forces the code to include the lines that define the cell in the pdfs.

Python Packages Used

The enumeration.py code require the following python packages to run:

  • numpy

  • pyparsing

  • termcolor

  • matplotlib

Project details


Download files

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

Source Distribution

phenum-2.2.0.tar.gz (75.3 kB view details)

Uploaded Source

Built Distribution

phenum-2.2.0-py2-none-any.whl (89.8 kB view details)

Uploaded Python 2

File details

Details for the file phenum-2.2.0.tar.gz.

File metadata

  • Download URL: phenum-2.2.0.tar.gz
  • Upload date:
  • Size: 75.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for phenum-2.2.0.tar.gz
Algorithm Hash digest
SHA256 6500a2ffa62093e7ea7b761b60c5f237c5bde1bb903da6b184f9a9d6d5ca659b
MD5 aa30dd0b42c3873353a73adcffcd8887
BLAKE2b-256 438a749005bfb53d387dd27f3208226787c2698998fdfeb70df380055323aab4

See more details on using hashes here.

File details

Details for the file phenum-2.2.0-py2-none-any.whl.

File metadata

File hashes

Hashes for phenum-2.2.0-py2-none-any.whl
Algorithm Hash digest
SHA256 0c9561b50514a75485aee2cdca9d41f8ca53fe7b71329048778ce7ded4a46c22
MD5 90a747f54b7b3b6a5b436db17dc621fe
BLAKE2b-256 d584c8215227ff70fa6bcc9dc2b66b077f7b26075a907b29e9d413b43361edaa

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page