Skip to main content

Derivative structure enumerator for multilattice

Project description

dsenum

testing pre-commit.ci status codecov MIT License PyPI - Python Version PyPI version PyPI - Downloads

Derivative structure enumerator for multilattice

Installation

dsenum works with Python3.8+ and can be installed via PyPI:

pip install dsenum

Or in local:

git clone git@github.com:lan496/dsenum.git
cd dsenum
pip install -e .

Usage

import numpy as np
from pymatgen.core import Lattice, Structure
from pymatgen.core.periodic_table import DummySpecie

from dsenum import StructureEnumerator

latt = Lattice(np.array([[0, 1, 1], [1, 0, 1], [1, 1, 0]]))
coords = [[0, 0, 0]]
structure = Structure(latt, [DummySpecie('X')] * len(coords), coords)

num_type = 2
index = 4

dstructs = StructureEnumerator(structure, index, num_type).generate()
print(len(dstructs))  # -> 12

See docs/examples/constraints.ipynb for more complicated use cases.

How to cite dsenum

If you use dsenum.ZddStructureEnumerator in your research, please cite the following articles.

@article{doi:10.1063/5.0021663,
    author = {Shinohara,Kohei  and Seko,Atsuto  and Horiyama,Takashi  and Ishihata,Masakazu  and Honda,Junya  and Tanaka,Isao },
    title = {Enumeration of nonequivalent substitutional structures using advanced data structure of binary decision diagram},
    journal = {J. Chem. Phys.},
    volume = {153},
    number = {10},
    pages = {104109},
    year = {2020},
    doi = {10.1063/5.0021663},
    URL = {https://doi.org/10.1063/5.0021663},
}
@inproceedings{Horiyama2018,
  memo ={Isomorphism Elimination by Zero-Suppressed Binary Decision Diagrams},
  author={Takashi Horiyama and Masahiro Miyasaka and Riku Sasaki},
  booktitle={the Canadian Conference on Computational Geometry},
  pages={360--366},
  address={Winnipeg, Manitoba, Canada}
  year={2018},
  url={http://www.cs.umanitoba.ca/~cccg2018/papers/session7B-p2.pdf}
}

Acknowledgments

I acknowledge Dr. Takashi Horiyama for sharing his implementation of the frontier method for isomorphism-elimination decision diagram. I also appreciate his kindness to allow publishing the code.

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

dsenum-0.4.2.tar.gz (202.9 kB view details)

Uploaded Source

Built Distributions

dsenum-0.4.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (134.6 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

dsenum-0.4.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (129.0 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

dsenum-0.4.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (117.1 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

dsenum-0.4.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (116.9 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

dsenum-0.4.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (117.8 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

File details

Details for the file dsenum-0.4.2.tar.gz.

File metadata

  • Download URL: dsenum-0.4.2.tar.gz
  • Upload date:
  • Size: 202.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for dsenum-0.4.2.tar.gz
Algorithm Hash digest
SHA256 b0e6284dec726f44782c13cf6f207ee105fac5fc8729f1483a09eed2d2168b0a
MD5 69cafd42d127fe7b26605775d69e325e
BLAKE2b-256 71ed747d156f4005163354892a2cc312e978cd95bcea1d0c851cc262e28df0f9

See more details on using hashes here.

File details

Details for the file dsenum-0.4.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dsenum-0.4.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ea1fc253e4d980d9331c5758e6e525af3db46b7ebf04d9bbfafa89de9bb5f08a
MD5 d429fecbe3bfafaec878676a072589f4
BLAKE2b-256 99373eb55941a42b683272a25f00f98de92771abf2dc41cad10efc90c68c6615

See more details on using hashes here.

File details

Details for the file dsenum-0.4.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dsenum-0.4.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a3565a31a2318d41efe77ddcf064a9b0a09d211c2d68e800ea9f7aca838d0537
MD5 52d59ab31c8a95657c4a1dcfdb58c045
BLAKE2b-256 02af4cd6fde918ffa60e44a12eae47fde0e01d8f04bedc7d123cf40e77c69d70

See more details on using hashes here.

File details

Details for the file dsenum-0.4.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dsenum-0.4.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2c1796ec98e7f67b7b3b32336cf1b51671bc359370982e7f2ce016409cb36ff4
MD5 642751538f62cd44f0a168ecaa92691a
BLAKE2b-256 adc1b2a6749a4db6396b6a485be38805f5f8e712bd9f1780f0fb6e4df1f1f95f

See more details on using hashes here.

File details

Details for the file dsenum-0.4.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dsenum-0.4.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 87422afde0e9c25b824f88103cd7dc767df05d35374a28d11904b4255db8f815
MD5 86e3acc1bde716bc12a9f5f2f5bf45a8
BLAKE2b-256 38f15607fb9d2fcd963adf9b8f759dce1a097793c96f02b6152c74324f50ee28

See more details on using hashes here.

File details

Details for the file dsenum-0.4.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dsenum-0.4.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bedf464f34f02a1dce077d3b70cc5c2c1d0dc1512bd98dfa158a13d7ade20511
MD5 dc61a5def3bf5b1ad7a62e77557b8e3e
BLAKE2b-256 4d6b21322638f01ffb4a85bb3cc4156dc782cbc9be7ecd9f75e3bb44093e7049

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