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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file spinspg-0.3.2-py3-none-any.whl.
File metadata
- Download URL: spinspg-0.3.2-py3-none-any.whl
- Upload date:
- Size: 25.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2206b3b0b4f2f6d5eca18ec3f0452decfbf227589b5e631a4fa2b481dcae414
|
|
| MD5 |
6e9db41e0d0f983c185d4baf972d3cf4
|
|
| BLAKE2b-256 |
cb1af2d524e7c5b4f3b3f8fc8d9340f3d09e8fa2ba8f50922164c81bae691551
|