Python package for detecting spin space group on top of spglib
Project description
spinspg
spinspg
is a Python package for detecting spin space group on top of spglib
- Document(latest): https://spinspg.readthedocs.io/en/latest/
- GitHub: https://github.com/spglib/spinspg
- PyPI: https://pypi.org/project/spinspg/
Features
- Find spin symmetry operations from spin arrangements
Usage
{func}spinspg.get_spin_symmetry
returns spin symmetry operations of a given spin arrangement, analogous to Spglib's {ref}spglib:py_get_magnetic_symmetry
for magnetic symmetry operations.
For comprehensive output details, refer to API documents.
import numpy as np
from spinspg import get_spin_symmetry
# Antiferromagnetic rutile structure
a = 4.87
c = 3.31
x_4f = 0.695169
lattice = np.diag([a, a, c])
positions = np.array([ # Fractional coordinates
[0, 0, 0], # Mn(2a)
[0.5, 0.5, 0.5], # Mn(2a)
[x_4f, x_4f, 0], # F(4f)
[-x_4f, -x_4f, 0], # F(4f)
[-x_4f + 0.5, x_4f + 0.5, 0.5], # F(4f)
[x_4f + 0.5, -x_4f + 0.5, 0.5], # F(4f)
])
numbers = np.array([0, 0, 1, 1, 1, 1])
magmoms = np.array([ # In Cartesian coordinates
[0, 0, 2.5],
[0, 0, -2.5],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
])
# Find spin symmetry operations
sog, rotations, translations, spin_rotations = get_spin_symmetry(lattice, positions, numbers, magmoms)
print(f"Spin-only group: {sog}") # COLLINEAR(axis=[0. 0. 1.])
# Some operations have nontrivial spin rotations
idx = 2
print(f"Rotation ({idx})\n{rotations[idx]}")
print(f"Translation ({idx})\n{translations[idx]}")
print(f"Spin rotation ({idx})\n{spin_rotations[idx]}") # -> diag([1, 1, -1])
Installation
pip install spinspg
How to cite spinspg
If you use spinspg
in your research, please cite both Spglib and the subsequent paper:
@article{spinspg,
author = "Shinohara, Kohei and Togo, Atsushi and Watanabe, Hikaru and Nomoto, Takuya and Tanaka, Isao and Arita, Ryotaro",
title = "{Algorithm for spin symmetry operation search}",
journal = "Acta Cryst. A",
year = "2024",
volume = "80",
number = "1",
pages = "94--103",
month = "Jan",
doi = {10.1107/S2053273323009257},
url = {https://doi.org/10.1107/S2053273323009257},
}
Change log
See the change log for recent changes.
License
spinspg
is released under a BSD 3-clause license.
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 Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
spinspg-0.1.5-py3-none-any.whl
(24.2 kB
view details)
File details
Details for the file spinspg-0.1.5-py3-none-any.whl
.
File metadata
- Download URL: spinspg-0.1.5-py3-none-any.whl
- Upload date:
- Size: 24.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d41d5b1c79b9f9d0a5716e8d53dc826c218085bb2732f26914f221b181e967d |
|
MD5 | b1ef1c5c67baccd8af11342724c2dd2e |
|
BLAKE2b-256 | 0ee01083965a1cf7fee0e4aaf3ca600ce26338e7fab533b5c0fc3af8a24848d9 |