Flags to control action of magnetic symmetry operations#

  • Narrow functionality of is_magnetic and rename to with_time_reversal

  • Add is_axial

  • Retain tensor_rank

spg_get_symmetry_with_site_tensors (C API)#

  • tensor_rank=0

    • with_time_reversal=true: \(1' \circ m = -m\)

      • is_axial=true: \((\mathbf{R}, \mathbf{v}) \circ m = (\det\mathbf{R}) m\)

      • is_axial=false: \((\mathbf{R}, \mathbf{v}) \circ m = m\)

    • with_time_reversal=false: \(1' \circ m = m\)

      • is_axial=true: \((\mathbf{R}, \mathbf{v}) \circ m = (\det\mathbf{R}) m\)

      • is_axial=false: \((\mathbf{R}, \mathbf{v}) \circ m = m\)

  • tensor_rank=1

    • with_time_reversal=true: \(1' \circ \mathbf{m} = -\mathbf{m}\)

      • is_axial=true: \((\mathbf{R}, \mathbf{v}) \circ \mathbf{m} = (\mathrm{det} \mathbf{R}) \mathbf{R} \mathbf{m}\)

      • is_axial=false: \((\mathbf{R}, \mathbf{v}) \circ \mathbf{m} = \mathbf{R} \mathbf{m}\)

    • with_time_reversal=false: \(1' \circ \mathbf{m} = \mathbf{m}\)

      • is_axial=true: \((\mathbf{R}, \mathbf{v}) \circ \mathbf{m} = (\mathrm{det} \mathbf{R}) \mathbf{R} \mathbf{m}\)

      • is_axial=false: \((\mathbf{R}, \mathbf{v}) \circ \mathbf{m} = \mathbf{R} \mathbf{m}\)

get_symmetry and get_magnetic_symmetry (Python API)#

Deprecate is_magnetic in get_symmetry, and the functionality is replaced by get_magnetic_symmetry.

Add new function get_magnetic_symmetry((lattice, positions, numbers, magmoms), is_axial=None, with_time_reversal=True)

  • magmoms = None or not specified: other flags have no effect

  • magmoms.shape = (num_atoms, ): call C API with tensor_rank=0, is_axial (default=false), and with_time_reversal (collinear magnetic like)

  • magmoms.shape = (num_atoms, 3): call C API with tensor_rank=1, is_axial (default=true), and with_time_reversal (non-collinear magnetic like)

get_magnetic_symmetry_dataset (Python API)#

get_magnetic_symmetry_dataset((lattice, positions, numbers, magmoms), is_axial=None, with_time_reversal=True)

  • call get_magnetic_symmetry with is_axial and with_time_reversal