On-the-fly generator of space-group irreducible representations
Project description
spgrep
spgrep is a Python package of on-the-fly generator of space-group irreducible representations.
- Github: https://github.com/spglib/spgrep
- Document: https://spglib.github.io/spgrep
- Document(develop): https://spglib.github.io/spgrep/develop/
- PyPI: https://pypi-hypernode.com/project/spgrep
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
Release history Release notifications | RSS feed
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)
Built Distribution
spgrep-0.3.1-py3-none-any.whl
(33.8 kB
view details)
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9c84e217b042c7f50e0b6eabfe35b39bfe9ed829743f9b7f855530a76faf26d |
|
MD5 | 85aa5a48912ae5e0d4ee751042432be8 |
|
BLAKE2b-256 | 174bcec1b522038b17831ba5a07319e578a6aed62306299264e930b760e0d916 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 158539d1c54e669d3c01ad1fb9cf4eaf22c4d2931363cdf41a545cc5366419eb |
|
MD5 | 826840c12528b1b56a8f2a3a83e05f3e |
|
BLAKE2b-256 | 6e49c4afe8a612129fccdfcf258847a875d3a6eda81e8db3c5555b72b505e194 |