Skip to main content

On-the-fly generator of space-group irreducible representations

Project description

Spgrep

testing codecov License PyPI - Python Version PyPI version PyPI Downloads DOI

Spgrep is a Python package of on-the-fly generator of space-group irreducible representations.

Features

  • Enumerate the following irreducible representations (irreps) of space groups from spglib's cell and kpoints:
    • Linear irreps
    • Physically irreps (irreps over real numbers)
    • Projective irreps for spnior
    • Projective irreducible co-representations for spinor
  • Enumerate irreps of crystallographic point groups as well
  • Find symmetry-adapted basis forming given irreps
  • Minimal dependencies (numpy and spglib)

Usage

from spgrep import get_spacegroup_irreps
from spgrep.representation import get_character

# Rutile structure (https://materialsproject.org/materials/mp-2657/)
# P4_2/mnm (No. 136)
a = 4.603
c = 2.969
x_4f = 0.3046
lattice = [
    [a, 0, 0],
    [0, a, 0],
    [0, 0, c],
]
positions = [
    [0, 0, 0],  # Ti(2a)
    [0.5, 0.5, 0.5],  # Ti(2a)
    [x_4f, x_4f, 0],  # O(4f)
    [-x_4f, -x_4f, 0],  # O(4f)
    [-x_4f + 0.5, x_4f + 0.5, 0.5],  # O(4f)
    [x_4f + 0.5, -x_4f + 0.5, 0.5],  # O(4f)
]
numbers = [0, 0, 1, 1, 1, 1]

kpoint = [0.5, 0, 0]  # X point
irreps, rotations, translations, mapping_little_group = get_spacegroup_irreps(
    lattice, positions, numbers, kpoint
)

# Symmetry operations by spglib
assert len(rotations) == 16
assert len(translations) == 16

# At X point, the little co-group is isomorphic to mmm (order=8)
assert len(mapping_little_group) == 8
print(mapping_little_group)  # [ 0,  1,  4,  5,  8,  9, 12, 13]

# Two two-dimensional irreps
for irrep in irreps:
    print(get_character(irrep))
# [2.+0.j 0.+0.j 0.+0.j 2.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]
# [2.+0.j 0.+0.j 0.+0.j -2.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]

See example pages for more detailed use cases and API summary for summary of functionalities.

Installation

Spgrep works with Python3.10+ and can be installed via PyPI:

pip install spgrep

or in local:

git clone git@github.com:spglib/spgrep.git
cd spgrep
pip install -e .

Change log

See the change log for recent changes.

How to cite spgrep

If you use spgrep in your research, please consider citing the following work:

@article{spgrep,
    doi = {10.21105/joss.05269},
    url = {https://doi.org/10.21105/joss.05269},
    year = {2023},
    publisher = {The Open Journal},
    volume = {8},
    number = {85},
    pages = {5269},
    author = {Shinohara, Kohei and Togo, Atsushi and Tanaka, Isao},
    title = {spgrep: On-the-fly generator of space-group irreducible representations},
    journal = {J. Open Source Softw.}
}

How to contribute

We welcome any contributions to improve functionalities. Please open issues or create pull requests. See the development page for preparing an environment.

License

Spgrep is released under a BSD 3-clause license.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spgrep-0.6.0-py3-none-any.whl (47.3 kB view details)

Uploaded Python 3

File details

Details for the file spgrep-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: spgrep-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 47.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for spgrep-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a98255079c179c6cde2e7723706e9f53a7b851c5d8c567d6d15557d1a60ddf97
MD5 5574b82d0ce29759f08fe74833f4561b
BLAKE2b-256 a4518fc5f2456f3aa8f1883a66f367bfd8e64ed9c0b03977687d9f6e2471f9a0

See more details on using hashes here.

Supported by

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