-
Notifications
You must be signed in to change notification settings - Fork 119
Description
Dear developers,
I have a question about the standard setting adopted in spglib, and an issue that arises in the magnetic space group 129.416 (BNS number). Let me introduce the context of my question:
As far as I understand by reading the article by K. Shinohara et al. (Acta Cryst. (2023). A79, 390–398), the standard cell considered in spglib for magnetic space groups coincides with the BNS setting. For instance, we can read
Here, we present algorithms for determining magnetic symmetry operations of given magnetic crystal structures, identifying magnetic space-group types of given MSGs, searching for transformations to a Belov–Neronova–Smirnova (BNS) setting
and
we consider standardizing a given magnetic crystal structure by applying a transformation to an MSG in the BNS setting
From this information, I assume that the transformation returned by spglib.get_magnetic_symmetry_dataset takes the given crystal structure to the BNS setting. Is this correct?
The issue with magnetic space group 129.416 is the following (I provide a test code at the end): I pass to spglib.get_magnetic_symmetry_dataset a cell (atomic positions, lattice vectors, list of chemical species and magnetic moments), and it returns a set of symmetries which coincide with the BNS setting. The transformation_matrix is the 3x3 identity matrix, as we could expect. However, the origin_shift is not (0,0,0), but (1/4, 3/4, 0). This origin shift does not transform the cell into the BNS setting. How should I interpret this contradiction? Which is its cause?
Thank you for your feedback.
Test code for the space group 129.416:
import spglib
import numpy as np
atoms = [[0.2500, 0.7500, 0.0000],
[0.7500, 0.2500, 0.0000],
[0.2500, 0.2500, 0.6690],
[0.7500, 0.7500, 0.3310],
[0.2500, 0.2500, 0.2130],
[0.7500, 0.7500, 0.7870]]
lattice_vectors = [[4.1720, 0.0000, 0.0000],
[0.0000, 4.1720, 0.0000],
[0.0000, 0.0000, 7.1210]]
species = [1, 1, 2, 2, 3, 3]
magnetic_moments = [[0.00, 0.00, -3.270],
[0.00, 0.00, 3.270],
[0.00, 0.00, 0.000],
[0.00, 0.00, 0.000],
[0.00, 0.00, 0.000],
[0.00, 0.00, 0.000]]
dataset = spglib.get_magnetic_symmetry_dataset((lattice_vectors, atoms, species, magnetic_moments))
print(dataset.transformation_matrix)
print(dataset.origin_shift)
for rot, t, trs in zip(dataset.rotations, dataset.translations, dataset.time_reversals):
print(rot, t)
print('True' if trs else 'False')
print()