Skip to main content

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

Project description

spgrep

testing pre-commit.ci status codecov License PyPI - Python Version PyPI version PyPI Downloads Lines of code

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

Features

  • Calculate irreducible representations (irreps) of space groups from spglib’s cell and kpoints
  • Calculate irreps of crystallographic point groups
  • Calculate physically irreducible representations (irreps over real numbers)
  • Calculate irreducible spin representations
  • Calculate irreducible co-representations
  • 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 docs/examples/examples for more detailed use cases.

Installation

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

pip install spgrep

or in local:

conda create -n spgrep python=3.10 pip
conda activate spgrep
git clone git@github.com:spglib/spgrep.git
cd spgrep
pip install -e .

License

spgrep is released under a BSD 3-clause license.

Development

Installation

conda create -n spgrep python=3.10 pip
conda activate spgrep
git clone git@github.com:spglib/spgrep.git
cd spgrep
pip install -e ".[dev,docs]"
pre-commit install

# Run pre-commit manually
pre-commit run --all-file 

Document

sphinx-autobuild docs docs_build
# open localhost:8000 in your browser

Release

# Confirm the version number via `setuptools-scm`
python -m setuptools_scm

# Update changelog here
vim docs/changelog.md

# Push with tag
git tag <next-version>
git push origin main
git push origin --tags

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

spgrep-0.3.1.tar.gz (92.2 kB view details)

Uploaded Source

Built Distribution

spgrep-0.3.1-py3-none-any.whl (33.8 kB view details)

Uploaded Python 3

File details

Details for the file spgrep-0.3.1.tar.gz.

File metadata

  • Download URL: spgrep-0.3.1.tar.gz
  • Upload date:
  • Size: 92.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for spgrep-0.3.1.tar.gz
Algorithm Hash digest
SHA256 d9c84e217b042c7f50e0b6eabfe35b39bfe9ed829743f9b7f855530a76faf26d
MD5 85aa5a48912ae5e0d4ee751042432be8
BLAKE2b-256 174bcec1b522038b17831ba5a07319e578a6aed62306299264e930b760e0d916

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spgrep-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 33.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for spgrep-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 158539d1c54e669d3c01ad1fb9cf4eaf22c4d2931363cdf41a545cc5366419eb
MD5 826840c12528b1b56a8f2a3a83e05f3e
BLAKE2b-256 6e49c4afe8a612129fccdfcf258847a875d3a6eda81e8db3c5555b72b505e194

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