2. 2
Outline
Part 1: Magnetic space group (MSG)
‣ Magnetic symmetry operation
‣ De
fi
nition and classi
fi
cation of MSG
‣ Procedure to detect magnetic symmetry operations
‣ MSG support in Spglib v2
Part 2: Irreducible representations (irreps) of space group
‣ De
fi
nition and projection operator
‣ Example applications of irreps
‣ Symmetry-adapted tensor
‣ Block diagonalization via symmetry
‣ Band connectivity
3. 3
Magnetic symmetry operation
‣ Symmetry operations act on point coordinates
‣ Time-reversal operations change signs of collinear spins
‣ Magnetic symmetry operations are products of symmetry
operations and (non-)time-reversal operations
‣ Example: BCC(AFM)
‣
‣
(R, v)x = Rx + v
(R, v)m = m, 1′

m = − m
(R, v)θ (θ ∈ {1,1′

})
(E, (1/2,1/2,1/2))1′

x1 = x2
(E, (1/2,1/2,1/2))1′

m1 = − m1 = m2
x1, m1
x2, m2
4. 4
Magnetic Space Group (MSG)
[1] D. B. Litvin, in International Tables for Crystallography, Vol. A, 6th ed., Chap. 3.6, pp. 852-865.
[2] B. J. Campbell et al., Acta Cryst. A 78, 2, 99-106 (2022).
: lattice
: point coordinates
: atomic types
: magnetic moments
A
X
T
M
‣ Magnetic symmetry operations form a group (MSG)
‣ Space groups derived from MSG [1,2]
Family space group (FSG)
Ignore time-reversal parts
Similar to point group for SG
Maximal space subgroup (XSG)
Remove anti-symmetry operations
Similar to translation group for SG
ℳ
ℱ = {(R, v) ∣ ∃θ ∈ {1,1′

}, (R, v)θ ∈ ℳ}
𝒟
= {(R, v) ∣ (R, v)1 ∈ ℳ}
5. 5
Classification of MSGs
‣ Type-I , ferromagnetic
‣ Type-II , non-magnetic
‣ Type-III , translational groups of and are identical
‣ Type-IV , point groups of and are identical
‣ Primitive cell for is double of that for !
ℳ = ℱ1 =
𝒟
1
ℳ =
𝒟
1 ⊔
𝒟
1′

, ℱ =
𝒟
ℳ =
𝒟
1 ⊔ (ℱ
𝒟
)1′

𝒟
ℱ
ℳ =
𝒟
1 ⊔ (ℱ
𝒟
)1′

𝒟
ℱ
𝒟
ℱ
MSGs are represented by Magnetic Hall symbols: J. González-Platas et al., J. Appl. Crystallogr. 54, 338 (2021).
x3, m3
x4, m4
AFM Rutile (type-III)
(BNS 136.498)
(No. 136)
(No. 58)
ℳ ≅ P4′

n2′

n
ℱ ≅ P4n2n
𝒟
≅ P22 ̂
n
x1, m1
x2, m2
AFM BCC (type-IV)
(BNS 221.97)
(No. 229)
(No. 221)
ℳ ≅ P4231′

abc
ℱ ≅ I423
𝒟
≅ P423
6. 6
Procedure to detect magnetic symmetry operations
1. Detect symmetry operations by ignoring magnetic moments,
, …
2. Compute atomic permutation for each symmetry operation
3. Try to apply time-reversal parts for non-zero magnetic
moments
4. Check if preserves the magnetic cell
N.B. Type-II MSG has both and
𝒮
(A, X, T)
(R, v) =
(
C4,
(
1
2
1
2
1
2 ))
(R, v)
(R, v)x3 = x4
θ = 1,1′

(R, v)θm3 = m4 ⟹ θ = 1′

(R, v)θ
(R, v)1 (R, v)1′

x3, m3
x4, m4
AFM Rutile (type-III)
7. 7
Magnetic symmetry operation search in Spglib v2
‣ Specify tensors (magnetic moment) with shape num_atom (collinear, tensor_rank=0) or 3*num_atom (non-
collinear, tensor_rank=1)
‣ Return magnetic symmetry operations (rotation[i], translation[i], spin_flips[i])
‣ Flags to control action (later slide): tensor_rank, with_time_reversal, is_axial
‣ Python API: get_magnetic_symmetry
int spg_get_symmetry_with_site_tensors(
int rotation[][3][3], double translation[][3],
int equivalent_atoms[], double primitive_lattice[3][3],
int *spin_flips,
const int max_size,
SPGCONST double lattice[3][3],
SPGCONST double position[][3],
const int types[],
const double *tensors, const int tensor_rank,
const int num_atom,
const int with_time_reversal,
const int is_axial,
const double symprec)
8. 8
MSG identification in Spglib v2
‣ Search for transformation to MSG in a standardized
setting [1]
‣ Transform cell to the standardized setting
‣ Python API: get_magnetic_symmetry_dataset
ℳstd
(P, p)−1
ℳ(P, p) = ℳstd
[1] D. B. Litvin, Magnetic group tables (IUCr, 2014).
SpglibMagneticDataset *spg_get_magnetic_dataset(
SPGCONST double lattice[3][3],
SPGCONST double position[][3],
const int types[],
const double *tensors, const int tensor_rank,
const int num_atom,
const int is_axial,
const double symprec);
typedef struct {
/* Magnetic space-group type */
int uni_number;
int msg_type;
.
.
.
/* Magnetic symmetry operations */
int n_operations;
int (*rotations)[3][3];
double (*translations)[3];
int *time_reversals;
/* Equivalent atoms */
.
.
.
/* Standardized crystal structure */
double transformation_matrix[3][3];
double origin_shift[3];
int n_std_atoms;
double std_lattice[3][3];
int *std_types;
double (*std_positions)[3];
double *std_tensors;
double std_rotation_matrix[3][3];
/* Intermediate datum */
.
.
.
} SpglibMagneticDataset;
9. 9
Access to MSG type information in Spglib v2
‣ Access to MSG type information by serial number from 1 to 1651
‣ uni_number: Serial number of UNI (or BNS) symbols
‣ litvin_number: Serial number in Litvinʼs Magnetic group tables [1]
‣ bns_number: BNS number e.g. “156.32”
‣ og_number: OG number e.g. “153.4.1270”
‣ number: ITAʼs serial number of space group for reference setting
‣ type: Type of MSG from 1 to 4
[1] D. B. Litvin, Magnetic group tables (IUCr, 2014).
SpglibMagneticSpacegroupType
spg_get_magnetic_spacegroup_type(const int uni_number);
typedef struct {
int uni_number;
int litvin_number;
char bns_number[8];
char og_number[12];
int number;
int type;
} SpglibMagneticSpacegroupType;
10. 10
Flags to control action of MSG in Spglib v2
https://spglib.github.io/spglib/magnetic̲symmetry̲
fl
ags.html
‣ Action of MSG depends on system and
Hamiltonian
‣ Rank of magnetic moments
tensor_rank=1: 3-dimensional vector
tensor_rank=0: scalar
‣ Action of time-reversal operation
with_time_reversal=1:
with_time_reversal=0:
‣ Action of improper rotation
is_axial=1: axial scalar or vector
is_axial=0: polar scalar or vector
1′

m = − m
1′

m = m
→ e.g. collinear spin
→ e.g. velocity
→ e.g. non-collinear spin
11. 11
Outline
Part 1: Magnetic space group (MSG)
‣ Magnetic symmetry operation
‣ De
fi
nition and classi
fi
cation of MSG
‣ Procedure to detect magnetic symmetry operations
‣ MSG support in Spglib v2
Part 2: Irreducible representations (irreps) of space group
‣ De
fi
nition and projection operator
‣ Example applications of irreps
‣ Symmetry-adapted tensor
‣ Block diagonalization via symmetry
‣ Band connectivity
12. Features
‣ Irreps of space group from spglibʼs cell and
kpoints
‣ Symmetry-adapted basis forming given irreps
‣ Only ~2500 lines in total
‣ Minimal dependency (numpy and spglib)
‣ Permissive license (BSD-3)
https://github.com/spglib/spgrep
12
Spgrep: Python package for space-group irreps generation
13. 13
Irreducible representation (irrep)
Practical problem statement
‣ Consider a vector space with basis
‣ Group element acts on basis vectors:
‣ Representation matrices should satisfy
‣ How
fi
nely can be block-diagonalized simultaneously?
{|ϕi⟩}
g ∈ G
Γ(g)Γ(g′

) = Γ(gg′

)
Γ(g)
g|ϕj⟩ =
∑
i
|ϕi⟩Γij(g)
g(g′

|ϕj⟩) = g
∑
i
|ϕi⟩Γij(g′

) =
∑
k
|ϕk⟩
∑
i
Γki(g)Γij(g′

) =
∑
k
|ϕk⟩Γkj(gg′

) = (gg′

)|ϕj⟩
Γ(g) {|ϕi⟩}
6 dimensions
U−1
Γ(g)U {|ϕ′

i⟩ = ∑j
|ϕj⟩Uji⟩}
1+2+3 dimensions
14. 14
Projection operator
Typical procedure to use irreps
1. Fourier-transform basis like Bloch functions
2. Enumerate “all” unitary irreps of group [1,2]
3. Apply projection operator of each to
→ New basis is null or forms irrep
4. Stack non-zero coe
ffi
cients,
g|ϕk
j ⟩ =
∑
i
|ϕk
i ⟩Γk
ij(g), (E, t)|ϕk
j ⟩ = e−ik⋅t
|ϕk
j ⟩
Γkα
G
Γkα
Γ
Pkα
ij :=
dkα
|G| ∑
g∈G
Γkα
ij (g)*g, |ψkαjl
i
⟩ := Pkα
ij |ϕk
l ⟩ =
∑
m
|ϕk
m⟩Ukαjl
mi
{|ψkαjl
i
⟩}dkα
i=1
Γkα
U = (Ukαjl
:,1
…Ukαjl
:,dkα
…)
U−1
Γk
(g)U =
Γkα
(g) O
Γkα′

(g)
O ⋱
[1] T. Maehara and K. Murota, SIAM J. Matrix Anal. Appl. 32, 2, pp.605-620 (2011).
[2] N. Neto, Acta Cryst. A 29, 4, pp.464-472 (1973).
16. 16
Example: block-diagonalizing dynamical matrix
‣ Consider to diagonalize harmonic lattice-vibration Hamiltonian
‣ Fourier-transform displacement (direction , atom in unit cell )
‣ Representation matrix of space group and invariance [1]
‣ Enumerate unitary irreps of and apply projection operators
uμ(lκ) μ κ l
G
Γkα
G
[1] A. A. Maradudin and S. H. Vosko, Rev. Mod. Phys. 40, 1‒37 (1968).
Hph =
1
2 ∑
q
∑
κμκ′

μ′

Φμμ′

(κκ′

; q)uμ(κ; q)uμ′

(κ′

; − q)
u(κ; q) =
Mκ
N ∑
l
u(lκ)eiq⋅r(l)
(R, v)uμ(κ; q) =
∑
κ′

μ′

uμ′

(κ′

; Rq)Γq
κ′

μ′

,κμ
((R, v))
Φ(Rq) = Γq
((R, v))Φ(q)Γq
((R, v))†
(3 5 dimensions)
Φ(q) (2+2+6+4+1 dimensions)
UΦ(q)U†
17. 17
Example: band connectivity
‣ Characters of irreps can be used to “sew” bands
‣ Each -vector has a di
ff
erent little group
‣ Pairs of irrep and eigenvalue, and , can be
connected if includes [1]
‣ Currently implement for phonon, but application to
wave functions is as well
k
(Γkα
, λ) (Γk′

α′

, λ′

)
Γkα
↓ Gk′

Γk′

α′

[1] B. Bradlyn et al., Phys. Rev. B 97, 035138 (2018).
phonondb/id-661/AlN
χkα
(g) =
dα
∑
i=1
Γkα
ii (g) (g ∈ Gk
)
Gk
= {(R, v) ∈ G ∣ Rk ≡ k}
⇔
1
|Gk′

| ∑
g′

∈Gk′

χkα
(g′

)*χk′

α′

(g′

) ≥ 1
18. 18
Current limitation and future plan of spgrep
‣ No support of labeling of irreps (e.g. )
‣ Need enormous look-up tables
‣ Bilbao Crystallographic Server provides
‣ Co-representation for magnetic space group (MSG)
‣ Spglib v.2 supports MSG
‣ Double representation [1] for spin system
X1
[1] L. Elcoro, et al., J. Appl. Cryst. 50, 1457-1477 (2017).
19. 19
Summary
We have developed softwares to make it easier to use powerful symmetry analysis (MSG and
irreps) with minimum background
Magnetic space group (MSG)
‣ A FSG, XSG, and type of MSG are useful notions to classify and work with MSG
‣ Spglib v2 searches for magnetic symmetry operations and identify MSG from given cell
and speci
fi
ed action
Irreducible representation (irrep) of space group
‣ Irreps can be used for symmetry-adapted basis, block-diagonalization, and band
connectivity
‣ Spgrep calculates irreps and symmetry-adapted basis