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.5.0-py3-none-any.whl (44.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for spgrep-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9c4abd22c26021c61ecb57c5e6363bd7d9246348a14f8b01d81443164f476d51
MD5 65894420137c1886681898104909aae6
BLAKE2b-256 2a5f7a7a1dd37233bdd7ce955653e0213c9ca765946198289ab380937388a208

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