Closed hongyi-zhao closed 2 years ago
You can try the getBCsymmetry.py tool. When I run this tool, I get the following results (if default precicion (-p) 1e-5 is used, space group No. 36 is obtained):
getBCsymmetry.py -c MnO.cif -p 0.0001
# Space group: P6_3mc 186
# Symmetry operations:
# (R0,v0): Operations on the input structure.
# (Rs,vs): Standard operations in spglib, the same as ITA, using conventional basic vectors.
# (RBC2,vBC2): The operations in the 2nd line of my revised BC Tab.3.7, transformed from the standard ITA
# operations by Q matrix, using the BC basic vectors in Tab.3.1 [note(v) for space group 38-41].
# (RBC1,vBC1): The operations using by BC, i.e. the 1st line of BC Tab.3.7.
# (R0,v0) (Rs,vs) (RBC2,vBC2) (RBC1,vBC1)
# 1 : E E E E
1 0 0 0.00000000 1 0 0 0.00000000 1 0 0 0.00000000 1 0 0 0.00000000
0 1 0 0.00000000 0 1 0 0.00000000 0 1 0 0.00000000 0 1 0 0.00000000
0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000
# 2 : C6+ C6+ C6+ C6+
1 -1 0 0.00000000 1 -1 0 0.00000000 1 -1 0 0.00000000 1 -1 0 0.00000000
1 0 0 0.99999000 1 0 0 0.00000000 1 0 0 0.00000000 1 0 0 0.00000000
0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000
# 3 : C3+ C3+ C3+ C3+
0 -1 0 0.00001000 0 -1 0 1.00000000 0 -1 0 1.00000000 0 -1 0 1.00000000
1 -1 0 0.99999000 1 -1 0 0.00000000 1 -1 0 0.00000000 1 -1 0 0.00000000
0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000
# 4 : C2 C2 C2 C2
-1 0 0 0.00002000 -1 0 0 2.00000000 -1 0 0 2.00000000 -1 0 0 2.00000000
0 -1 0 0.00000000 0 -1 0 0.00000000 0 -1 0 0.00000000 0 -1 0 0.00000000
0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000
# 5 : C3- C3- C3- C3-
-1 1 0 0.00002000 -1 1 0 2.00000000 -1 1 0 2.00000000 -1 1 0 2.00000000
-1 0 0 0.00001000 -1 0 0 1.00000000 -1 0 0 1.00000000 -1 0 0 1.00000000
0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000
# 6 : C6- C6- C6- C6-
0 1 0 0.00001000 0 1 0 1.00000000 0 1 0 1.00000000 0 1 0 1.00000000
-1 1 0 0.00001000 -1 1 0 1.00000000 -1 1 0 1.00000000 -1 1 0 1.00000000
0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000
# 7 : md3 md3 md3 md3
0 1 0 0.00001000 0 1 0 1.00000000 0 1 0 1.00000000 0 1 0 1.00000000
1 0 0 0.99999000 1 0 0 0.00000000 1 0 0 0.00000000 1 0 0 0.00000000
0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000
# 8 : mv2 mv2 mv2 mv2
1 0 0 0.00000000 1 0 0 0.00000000 1 0 0 0.00000000 1 0 0 0.00000000
1 -1 0 0.99999000 1 -1 0 0.00000000 1 -1 0 0.00000000 1 -1 0 0.00000000
0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000
# 9 : md1 md1 md1 md1
1 -1 0 0.00000000 1 -1 0 0.00000000 1 -1 0 0.00000000 1 -1 0 0.00000000
0 -1 0 0.00000000 0 -1 0 0.00000000 0 -1 0 0.00000000 0 -1 0 0.00000000
0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000
# 10 : mv3 mv3 mv3 mv3
0 -1 0 0.00001000 0 -1 0 1.00000000 0 -1 0 1.00000000 0 -1 0 1.00000000
-1 0 0 0.00001000 -1 0 0 1.00000000 -1 0 0 1.00000000 -1 0 0 1.00000000
0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000
# 11 : md2 md2 md2 md2
-1 0 0 0.00002000 -1 0 0 2.00000000 -1 0 0 2.00000000 -1 0 0 2.00000000
-1 1 0 0.00001000 -1 1 0 1.00000000 -1 1 0 1.00000000 -1 1 0 1.00000000
0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000
# 12 : mv1 mv1 mv1 mv1
-1 1 0 0.00002000 -1 1 0 2.00000000 -1 1 0 2.00000000 -1 1 0 2.00000000
0 1 0 0.00000000 0 1 0 0.00000000 0 1 0 0.00000000 0 1 0 0.00000000
0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000
# transformation_matrix [P]: (a0,b0,c0)=(as,bs,cs).P, and origin_shift p0 = O - Os:
1 0 0 0.9999900000
0 1 0 0.0000000000
0 0 1 0.0000000000
# std_rotation_matrix (R): (as',bs',cs')=(R.as,R.bs,R.cs)
1 0 0
0 1 0
0 0 1
# transformation matrix [Q]: (t1BC2,t2BC2,t3BC2)=(as',bs',cs').Q
1 0 0
0 1 0
0 0 1
# transformation matrix [U]: and origin shift t0 = OBC2-OBC1: (t1BC1,t2BC1,t3BC1)=(t1BC2,t2BC2,t3BC2).U
1 0 0 0.0000000000
0 1 0 0.0000000000
0 0 1 0.0000000000
# rotation matrix (S): (t1,t2,t3)=S.(t1BC1,t2BC1,t3BC1)
0 1 0
-1 0 0
0 0 1
L0 =(a0,b0,c0)^T Ls =(as,bs,cs)^T Lsi=(as',bs',cs')^T
LBC2=(t1BC2,t2BC2,t3BC2)^T LBC1=(t1BC1,t2BC1,t3BC1)^T LBC=(t1,t2,t3)^T
Lattice change process, standardization first, then idealization, then to BC lattices.
L0 ==[P^-1]==> Ls ==(R)==> Lsi ==[Q]==> LBC2 ==[U]==> LBC1 ==(S)==> LBC
(R0,v0) (Rs,vs) (Rs,vs) (RBC2,vBC2) (RBC1,vBC1) (RBC1,vBC1)
(1). L0 (2). Ls (3). Lsi
[ 3.3717 0 0 ] [ 3.3717 0 0 ] [ 3.3717 0 0 ]
|-1.68585 2.919978 0 | => |-1.68585 2.919978 0 | => |-1.68585 2.919978 0 |
[ 0 0 5.3855 ] [ 0 0 5.3855 ] [ 0 0 5.3855 ]
(4). LBC2 (5). LBC1 (6). LBC
[ 3.3717 0 0 ] [ 3.3717 0 0 ] [ 0 -3.3717 0 ]
|-1.68585 2.919978 0 | => |-1.68585 2.919978 0 | => | 2.919978 1.68585 0 |
[ 0 0 5.3855 ] [ 0 0 5.3855 ] [ 0 0 5.3855 ]
BZ type is: HexaPrim
The last column (RBC1,vBC1) gives the rotation matrixes and names, and translations. So the Seitz symbol is just {RBC1|vBC1}. But note that the rotation names here conform to the BC convention. And for the cell conversion procedure, please refer to Comput. Phys. Commun. 265 , 107993 (2021) for detail.
The last column (RBC1,vBC1) gives the rotation matrixes and names, and translations. So the Seitz symbol is just {RBC1|vBC1}.
Thank you for your wonderful work. I also got the above results given by you. The specific steps are as follows:
$ pyenv shell datasci
$ python --version
Python 3.9.1
# https://github.com/Dioptas/Dioptas/issues/6#issuecomment-200281225
$ pip install pycifrw
$ python getBCsymmetry.py -c ~/Downloads/caj/spin-gapless/ICSD_CollCode262928.cif -p 0.0001
# Space group: P6_3mc 186
# Symmetry operations:
# (R0,v0): Operations on the input structure.
# (Rs,vs): Standard operations in spglib, the same as ITA, using conventional basic vectors.
# (RBC2,vBC2): The operations in the 2nd line of my revised BC Tab.3.7, transformed from the standard ITA
# operations by Q matrix, using the BC basic vectors in Tab.3.1 [note(v) for space group 38-41].
# (RBC1,vBC1): The operations using by BC, i.e. the 1st line of BC Tab.3.7.
# (R0,v0) (Rs,vs) (RBC2,vBC2) (RBC1,vBC1)
# 1 : E E E E
1 0 0 0.00000000 1 0 0 0.00000000 1 0 0 0.00000000 1 0 0 0.00000000
0 1 0 0.00000000 0 1 0 0.00000000 0 1 0 0.00000000 0 1 0 0.00000000
0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000
# 2 : C6+ C6+ C6+ C6+
1 -1 0 0.00000000 1 -1 0 0.00000000 1 -1 0 0.00000000 1 -1 0 0.00000000
1 0 0 0.99999000 1 0 0 0.00000000 1 0 0 0.00000000 1 0 0 0.00000000
0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000
# 3 : C3+ C3+ C3+ C3+
0 -1 0 0.00001000 0 -1 0 1.00000000 0 -1 0 1.00000000 0 -1 0 1.00000000
1 -1 0 0.99999000 1 -1 0 0.00000000 1 -1 0 0.00000000 1 -1 0 0.00000000
0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000
# 4 : C2 C2 C2 C2
-1 0 0 0.00002000 -1 0 0 2.00000000 -1 0 0 2.00000000 -1 0 0 2.00000000
0 -1 0 0.00000000 0 -1 0 0.00000000 0 -1 0 0.00000000 0 -1 0 0.00000000
0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000
# 5 : C3- C3- C3- C3-
-1 1 0 0.00002000 -1 1 0 2.00000000 -1 1 0 2.00000000 -1 1 0 2.00000000
-1 0 0 0.00001000 -1 0 0 1.00000000 -1 0 0 1.00000000 -1 0 0 1.00000000
0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000
# 6 : C6- C6- C6- C6-
0 1 0 0.00001000 0 1 0 1.00000000 0 1 0 1.00000000 0 1 0 1.00000000
-1 1 0 0.00001000 -1 1 0 1.00000000 -1 1 0 1.00000000 -1 1 0 1.00000000
0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000
# 7 : md3 md3 md3 md3
0 1 0 0.00001000 0 1 0 1.00000000 0 1 0 1.00000000 0 1 0 1.00000000
1 0 0 0.99999000 1 0 0 0.00000000 1 0 0 0.00000000 1 0 0 0.00000000
0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000
# 8 : mv2 mv2 mv2 mv2
1 0 0 0.00000000 1 0 0 0.00000000 1 0 0 0.00000000 1 0 0 0.00000000
1 -1 0 0.99999000 1 -1 0 0.00000000 1 -1 0 0.00000000 1 -1 0 0.00000000
0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000
# 9 : md1 md1 md1 md1
1 -1 0 0.00000000 1 -1 0 0.00000000 1 -1 0 0.00000000 1 -1 0 0.00000000
0 -1 0 0.00000000 0 -1 0 0.00000000 0 -1 0 0.00000000 0 -1 0 0.00000000
0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000
# 10 : mv3 mv3 mv3 mv3
0 -1 0 0.00001000 0 -1 0 1.00000000 0 -1 0 1.00000000 0 -1 0 1.00000000
-1 0 0 0.00001000 -1 0 0 1.00000000 -1 0 0 1.00000000 -1 0 0 1.00000000
0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000
# 11 : md2 md2 md2 md2
-1 0 0 0.00002000 -1 0 0 2.00000000 -1 0 0 2.00000000 -1 0 0 2.00000000
-1 1 0 0.00001000 -1 1 0 1.00000000 -1 1 0 1.00000000 -1 1 0 1.00000000
0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000 0 0 1 0.50000000
# 12 : mv1 mv1 mv1 mv1
-1 1 0 0.00002000 -1 1 0 2.00000000 -1 1 0 2.00000000 -1 1 0 2.00000000
0 1 0 0.00000000 0 1 0 0.00000000 0 1 0 0.00000000 0 1 0 0.00000000
0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000 0 0 1 0.00000000
# transformation_matrix [P]: (a0,b0,c0)=(as,bs,cs).P, and origin_shift p0 = O - Os:
1 0 0 0.9999900000
0 1 0 0.0000000000
0 0 1 0.0000000000
# std_rotation_matrix (R): (as',bs',cs')=(R.as,R.bs,R.cs)
1 0 0
0 1 0
0 0 1
# transformation matrix [Q]: (t1BC2,t2BC2,t3BC2)=(as',bs',cs').Q
1 0 0
0 1 0
0 0 1
# transformation matrix [U]: and origin shift t0 = OBC2-OBC1: (t1BC1,t2BC1,t3BC1)=(t1BC2,t2BC2,t3BC2).U
1 0 0 0.0000000000
0 1 0 0.0000000000
0 0 1 0.0000000000
# rotation matrix (S): (t1,t2,t3)=S.(t1BC1,t2BC1,t3BC1)
0 1 0
-1 0 0
0 0 1
L0 =(a0,b0,c0)^T Ls =(as,bs,cs)^T Lsi=(as',bs',cs')^T
LBC2=(t1BC2,t2BC2,t3BC2)^T LBC1=(t1BC1,t2BC1,t3BC1)^T LBC=(t1,t2,t3)^T
Lattice change process, standardization first, then idealization, then to BC lattices.
L0 ==[P^-1]==> Ls ==(R)==> Lsi ==[Q]==> LBC2 ==[U]==> LBC1 ==(S)==> LBC
(R0,v0) (Rs,vs) (Rs,vs) (RBC2,vBC2) (RBC1,vBC1) (RBC1,vBC1)
(1). L0 (2). Ls (3). Lsi
[ 3.3717 0 0 ] [ 3.3717 0 0 ] [ 3.3717 0 0 ]
|-1.68585 2.919978 0 | => |-1.68585 2.919978 0 | => |-1.68585 2.919978 0 |
[ 0 0 5.3855 ] [ 0 0 5.3855 ] [ 0 0 5.3855 ]
(4). LBC2 (5). LBC1 (6). LBC
[ 3.3717 0 0 ] [ 3.3717 0 0 ] [ 0 -3.3717 0 ]
|-1.68585 2.919978 0 | => |-1.68585 2.919978 0 | => | 2.919978 1.68585 0 |
[ 0 0 5.3855 ] [ 0 0 5.3855 ] [ 0 0 5.3855 ]
BZ type is: HexaPrim
But note that the rotation names here conform to the BC convention. And for the cell conversion procedure, please refer to Comput. Phys. Commun. 265 , 107993 (2021) for detail.
Thank you for letting me know the excellent work of your group. I would like to give some additional comments as follows:
According to the comment here:
For rotations and rotoinversions of order higher than 2,
a superscript + or - is used to indicate the sense of the rotation.
The subscripts of the symbols R denote the characteristic direction of the operation.
So, it seems that, for example, the C6+ in the output can also be written as 6^+z, 6^+[001], or 6^+_001.
Furthermore, according to the notations given here, the + indicating clockwise rotation is usually omitted, so the above notations can also be written as: 6z, 6[001], or 6_001
Let's put the above result we get from the getBCsymmetry.py
script aside for now. Intuitively, another question I can't understand most is the following symmetry for the material discussed in the paper:
C̃ 6z = { C 6z | 0 , 0 , 12 }
More specifically, according to the description here, the Cartesian Representation Matrices for Point Group C6 have the following forms:
=== begin === Symmetry Element / Class: C6 (C6)5 Character / Trace:2.0000 Determinant:1.0000
Rotation Axis 0.00000.00001.0000 Rotation Angle φ = 60.0°
Representation Matrix 0.5000-0.86600.0000 0.86600.50000.0000 0.00000.00001.0000
Rotation Axis 0.00000.00001.0000 Rotation Angle φ = 300.0°
Representation Matrix 0.50000.86600.0000 -0.86600.50000.0000 0.00000.00001.0000 === end ===
However, I cannot find the operation corresponding to the above representation in the CIF file, as indicated by the following Core data item:
_space_group_symop_operation_xyz
1 '-x, -x+y, z+1/2'
2 'x-y, -y, z+1/2'
3 'y, x, z+1/2'
4 'x-y, x, z+1/2'
5 'y, -x+y, z+1/2'
6 '-x, -y, z+1/2'
7 'x, x-y, z'
8 '-x+y, y, z'
9 '-y, -x, z'
10 '-x+y, -x, z'
11 '-y, x-y, z'
12 'x, y, z'
Regards, HZ
But note that the rotation names here conform to the BC convention. And for the cell conversion procedure, please refer to Comput. Phys. Commun. 265 , 107993 (2021) for detail.
Thank you for letting me know the excellent work of your group. I would like to give some additional comments as follows:
- According to the comment here:
For rotations and rotoinversions of order higher than 2, a superscript + or - is used to indicate the sense of the rotation. The subscripts of the symbols R denote the characteristic direction of the operation.
So, it seems that, for example, the C6+ in the output can also be written as 6^+z, 6^+[001], or 6^+_001.
Yes, the notation is just a name. In principle everyone can use his/her favourite name. We use the name convention in the BC book ( the book “The mathematical theory of symmetry in solids” by C. J. Bradley & A. P. Cracknell) which is different from the names of BCS (Bilbao Crystallographic Server).
- Furthermore, according to the notations given here, the + indicating clockwise rotation is usually omitted, so the above notations can also be written as: 6z, 6[001], or 6_001
Yes, the cif file does not give the Cartesian Representation Matrices. The 4th operation 4 'x-y, x, z+1/2' is just {C6z|1/2},and x-y, x, z means the C6z (C6+). The notation such as x-y,x,z is called "Jones' faithful representation symbols", as given in the following table in the BC book.
Note that Jones' symbol depneds on the definition of the primitive cell. Different primitive cells will give different Jones' symbols, even if they may all mean the same rotation, say, C6z.
However, I cannot find the operation corresponding to the above representation in the CIF file, as indicated by the following part:
_space_group_symop_operation_xyz 1 '-x, -x+y, z+1/2' 2 'x-y, -y, z+1/2' 3 'y, x, z+1/2' 4 'x-y, x, z+1/2' 5 'y, -x+y, z+1/2' 6 '-x, -y, z+1/2' 7 'x, x-y, z' 8 '-x+y, y, z' 9 '-y, -x, z' 10 '-x+y, -x, z' 11 '-y, x-y, z' 12 'x, y, z'
The 4th operation 4 'x-y, x, z+1/2' is just {C6z|1/2},and x-y, x, z means the C6z (C6+).
Note that Jones' symbol depneds on the definition of the primitive cell.
Thank you very much. Got it. These operations are defined using the fractional coordinates, with the primitive cell basis vectors as the unit vector of the coordinate axis. So, taking 'x-y, x, z+1/2' as an example, it is equivalent to the following operations on the 'x, y, z': A 60-degree clockwise rotation relative to the original coordinate system in (x, y) plane, and one more operation that translates the z-axis positively by 1/2 z-axis length.
The 4th operation 4 'x-y, x, z+1/2' is just {C6z|1/2},and x-y, x, z means the C6z (C6+).
Note that Jones' symbol depneds on the definition of the primitive cell.
Thank you very much. Got it. These operations are defined using the fractional coordinates, with the primitive cell basis vectors as the unit vector of the coordinate axis. So, taking 'x-y, x, z+1/2' as an example, it is equivalent to the following operations on the 'x, y, z': A 60-degree clockwise rotation relative to the original coordinate system in (x, y) plane, and one more operation that translates the z-axis positively by 1/2 z-axis length.
x-y, x, z is a 60-degree anticlockwise rotation
x-y, x, z is a 60-degree anticlockwise rotation
See my following sketch representing the 'x-y, x, z+1/2' operation on a P63mc primitive cell:
Where did I go wrong?
See my following sketch for a P63mc primitive cell to represent the 'x-y, x, z+1/2' operation:
x,y,z are not basic vectors, but the coordinates/components. The matrix of C6+ is
And hence
It seems that this is the so-called relationship between active and passive transformation. The object in a coordinate system has been rotated 60 degrees clockwise, which corresponds to the basic vector/coordinate axis rotating 60 degrees counterclockwise. I redrawn a sketch as shown below:
As you can see, from the active transformation point of view, this is done by rotating 60 degree anticlockwise around the c
axis in the ab
plane. See here for a detailed explanation of fractional coordinates in the real-space coordinate system used by crystallographers.
I also checked the above matrix dot product relation in Mathematica:
It seems that this is the so-called relationship between active and passive transformation. The object in a coordinate system has been rotated 60 degrees clockwise, which corresponds to the basic vector/coordinate axis rotating 60 degrees counterclockwise.
I also checked the above matrix dot product relation in Mathematica:
Yes, the BC book uses the active viewpoint. I also prefer the active viewpoint. Because I think the active viewpoint is direct and intuitive.
The notation such as x-y,x,z is called "Jones' faithful representation symbols", as given in the following table in the BC book.
BTW, if I understand correctly, the "Jones' faithful representation" should belong to one type of the Faithful_representation.
For wurtzite MnO, the description given by ICSD is as follows:
And I also read the following description of this material:
If I understand it correctly, it seems that the
Seitz symbol of the space group
[1-3] is used here. So, I want to know ifSpaceGroupIrep
can get the same information using the information supplied in the cif file for a specific crystal structure. See here, here, and here for relevant discussion.[1] https://www.cryst.ehu.es/html/cryst/help_pop-up/seitz_symbol.html [2] https://www.cryst.ehu.es/cryst/seitz_help.html [3] https://journals.iucr.org/a/issues/2011/04/00/pz5089/pz5089sup1.pdf
Regards, HZ