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.4.tar.gz (202.8 kB view details)

Uploaded Source

Built Distributions

dsenum-0.4.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (203.9 kB view details)

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

dsenum-0.4.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (198.2 kB view details)

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

dsenum-0.4.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (186.3 kB view details)

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

dsenum-0.4.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (186.1 kB view details)

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

dsenum-0.4.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (187.0 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.4.tar.gz.

File metadata

  • Download URL: dsenum-0.4.4.tar.gz
  • Upload date:
  • Size: 202.8 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.4.tar.gz
Algorithm Hash digest
SHA256 b037065a40aaebe0d8af4fb10003405077f80962e7d66dea8900733240391a6f
MD5 3bb872108aa8c2f1b560486caa3ccb7c
BLAKE2b-256 325c5007e993b00b61b0ea07655dbc10836470df27c8b8c55de77df8fefccb85

See more details on using hashes here.

File details

Details for the file dsenum-0.4.4-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.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8600e3280ff2c5dcd5b3b34fb44faee76abc29ed1938fdcf87625dc0521333a0
MD5 38abe7cec0c007c2430d5dbe72bb120f
BLAKE2b-256 bae93e0c757682eb94a34ea9d046a50858ec3b4a0922afbca6aeb6c595e0a700

See more details on using hashes here.

File details

Details for the file dsenum-0.4.4-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.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 50a9cc34e125aec3cbd87cc570ea1c08e2b5a626a6ed71c44c510825c5050f23
MD5 e43f5d7f1b6182e35669b188113ecdb9
BLAKE2b-256 24314aca6bb7dcf8b34bfc5cbf4a2b05da88b0c2e90dc2559050d02b68785587

See more details on using hashes here.

File details

Details for the file dsenum-0.4.4-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.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae3e238dfd5b461ae4b8ea53300e8040b81c7a64a4395f6d22487f6aa0dbe246
MD5 1bb431709d42e2b3e70bcbbb8fbd2a36
BLAKE2b-256 6b522e71048d812eb50dba8227dfa99b8b2abe657741ff15b2755bcab707781a

See more details on using hashes here.

File details

Details for the file dsenum-0.4.4-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.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 087f6d5a115d664316696d8c5f7d8d60688f1340fd545f75a60e44a9bb8807cb
MD5 1c1e7bd578c9f21fb0bbde09cf218c85
BLAKE2b-256 9399419310f64e6e391edbccbec7a606ed414bd642b8f3726b4943ebb156cadd

See more details on using hashes here.

File details

Details for the file dsenum-0.4.4-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.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 131403c29d1139151063b51c8e3b1e3b3ec5a8f08af1b421982f3adec01d6e20
MD5 2c945e95be46948316742d51a2a0fd8d
BLAKE2b-256 05564adde0b66196ac70247f9a64c8653afa66c8cefc7b487305342bf68c2c02

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