Skip to content

Magnetic space groups

Oriented descendants and magnetic-space-subgroup objects.

msg

ConstructType

Bases: StrEnum

TYPE1 class-attribute instance-attribute

TYPE1 = 'Type-1'

TYPE3 class-attribute instance-attribute

TYPE3 = 'Type-3'

TYPE4 class-attribute instance-attribute

TYPE4 = 'Type-4'

MagneticSpaceSubgroup dataclass

MagneticSpaceSubgroup(xsg: list[int], fsg: list[int], msg_type: ConstructType, Q: NDArrayFloat)

Q instance-attribute

Q: NDArrayFloat

fsg instance-attribute

fsg: list[int]

msg_type instance-attribute

msg_type: ConstructType

xsg instance-attribute

xsg: list[int]

orient_moments_basis

orient_moments_basis(magnetic_moments_basis: Sequence[NDArrayFloat]) -> list[NDArrayFloat]

Rotate each Cartesian moment-basis field into this subgroup's frame.

Each field of shape (n_sites, 3) transforms row-wise by the orientation rotation Q (field @ Q^T), giving the symmetry-adapted basis expressed in the magnetic space subgroup's oriented setting.

OrientedSpinSpaceGroupEnumerator

OrientedSpinSpaceGroupEnumerator(lattice: NDArrayFloat, spin_only_group: SpinOnlyGroup, spin_space_group: NontrivialSpinSpaceGroup, *, atol: float = 1e-05)

Enumerate oriented SSGs up to spatial conjugacy by their family group G.

preserve_spin_planochirality=True retains distinct spin-planochiral enantiomorphs. False identifies enantiomorphs related by an improper spin rotation.

enumerate

enumerate(*, preserve_spin_planochirality: bool = True) -> list[MagneticSpaceSubgroup]

bns_from_moments

bns_from_moments(supercell: Cell | Supercell, moments: NDArrayFloat, *, atol: float = 1e-05, symprec: float | None = None, mag_symprec: float | None = None) -> str

BNS number of supercell carrying the Cartesian moments.

The moments are normalized to unit max |m| before the magnetic symmetry search, so mag_symprec keeps its meaning regardless of the pattern's scale; a pattern whose max |m| is below atol is treated as zero and left unnormalized. symprec / mag_symprec override moyopy's search tolerances; None keeps its defaults.