Skip to main content

Python package for detecting spin space group on top of spglib

Project description

spinspg

testing License PyPI version PyPI - Downloads

spinspg is a Python package for detecting spin space group on top of spglib

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

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)

Uploaded Python 3

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

Hashes for spinspg-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 1d41d5b1c79b9f9d0a5716e8d53dc826c218085bb2732f26914f221b181e967d
MD5 b1ef1c5c67baccd8af11342724c2dd2e
BLAKE2b-256 0ee01083965a1cf7fee0e4aaf3ca600ce26338e7fab533b5c0fc3af8a24848d9

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