My name is Casey Eichstaedt, and I am a Ph.D student in the Eguiluz research group at the University of Tennessee Knoxville. I currently using elk (ver 1.0.17 ). I have received the information for the atoms block and the avec block of the code from a user of Wien2k. I usually use the spacegroup utility to output these blocks in which I input the spacegroup. In this particular case, I was curious if there is anyway to see if the spacegroup (in our case R-3m) can be recovered using just the avec and atoms block. I know the output files SYMCRYS SYMSITE and SYMLAT are generated, but I am not too familiar with spacegroups to extract the relevant data. Any help on this matter would greatly be appreciated!
I also have the cif file where I can generate the crystal structure, but for this particular compound, we would like to use a different convention than the spacegroup utitility generates.
Thank you,
Casey Eichstaedt
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
A spacegroup is a set of transformations which form a 'group' in the mathematical sense. These transformations are stored in the file SYMCRYS.OUT and are of the form
{α_S | α_R | t }
where t is a translation, α_R is a spatial rotation and α_S is a spin rotation. These are applied from right to left. This set of transformations in SYMCRYS.OUT is the spacegroup, whereas R-3m is the Hermann-Mauguin (HM) symbol of the spacegroup. The HM symbol can be used to recover the set of operations (translations and spatial rotations). The 'spacegroup' code does this by first converting the HM symbol into a Hall symbol, which is easier for the computer to read. These symbols correspond to the generators of the group. They are converted to linear algebra operators (3x3 matrices and 3-vectors) and used to generate the group by forming all possible combinations.
You could invert this process by determining which generators yield the set of operations in SYMCRYS.OUT and then figure out the HM symbol from those, but it will take some human effort to do so.
Regards,
Kay.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you so much for your speed of light response to my inquiry! This helps a lot! Also, thank you very much for developing such nice code! It is truly a gem in my research.
I will work on utilizing the python code you sent and let you know if it works.
Adolfo wishes his best to you!!
Thanks,
Casey
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
1) The python-script assumes spin-orbit coupling. That is that rotations regards both orbital and spin space. But that is also assumed in tabulations of crystallographic space groups as those in the Bilbao crystallographic server. When spin polarized set up but without spin-orbit coupling the SYMCRYS.OUT file is too general for Bilbao as they take the form as described by Kay.
2) Please be aware that if the atomic positions are obtained by lattice optimisation, the acccuracy of the positions might be too low which leads to that ELK obtain a lower symmetry. This is maybe more relevant for VASP calculations rather than WIEN2k, but anyway in principle, this can be compensated by increasing the default epslat value in elk.in.
Please, send my regards to Adolfo!
Best regards,
Lars
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
My name is Casey Eichstaedt, and I am a Ph.D student in the Eguiluz research group at the University of Tennessee Knoxville. I currently using elk (ver 1.0.17 ). I have received the information for the atoms block and the avec block of the code from a user of Wien2k. I usually use the spacegroup utility to output these blocks in which I input the spacegroup. In this particular case, I was curious if there is anyway to see if the spacegroup (in our case R-3m) can be recovered using just the avec and atoms block. I know the output files SYMCRYS SYMSITE and SYMLAT are generated, but I am not too familiar with spacegroups to extract the relevant data. Any help on this matter would greatly be appreciated!
I also have the cif file where I can generate the crystal structure, but for this particular compound, we would like to use a different convention than the spacegroup utitility generates.
Thank you,
Casey Eichstaedt
Hi Casey,
A spacegroup is a set of transformations which form a 'group' in the mathematical sense. These transformations are stored in the file SYMCRYS.OUT and are of the form
{α_S | α_R | t }
where t is a translation, α_R is a spatial rotation and α_S is a spin rotation. These are applied from right to left. This set of transformations in SYMCRYS.OUT is the spacegroup, whereas R-3m is the Hermann-Mauguin (HM) symbol of the spacegroup. The HM symbol can be used to recover the set of operations (translations and spatial rotations). The 'spacegroup' code does this by first converting the HM symbol into a Hall symbol, which is easier for the computer to read. These symbols correspond to the generators of the group. They are converted to linear algebra operators (3x3 matrices and 3-vectors) and used to generate the group by forming all possible combinations.
You could invert this process by determining which generators yield the set of operations in SYMCRYS.OUT and then figure out the HM symbol from those, but it will take some human effort to do so.
Regards,
Kay.
Dear Casey,
I actually have created a python script which I think does what you want.
.
It reads your SYMCRYS.OUT and produce a format that is readable by Bilbao and their web-program "Identify Group" at https://www.cryst.ehu.es/cgi-bin/cryst/programs/checkgr.pl?tipog=gesp
You just run it with
python3 SymCrys2xyz.py
in a directory where you have a SYMCRYS.OUT file.
for BaTiO3 with lattice input in elk.in:
scale
7.46
avec
1.000000000 0.000000000 0.000000000
0.000000000 1.000000000 0.000000000
0.000000000 0.000000000 1.070000000
atoms
3 : nspecies
'Ba.in' : spfname
1 : natoms; atposl, bfcmt below
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
'Ti.in' : spfname
1 : natoms; atposl, bfcmt below
0.50000000 0.50000000 0.48870000 0.00000000 0.000 0.00000000
'O.in' : spfname
3 : natoms; atposl, bfcmt below
0.50000000 0.50000000 0.05625000 0.00000000 0.00000000 0.00000000
0.50000000 0.00000000 0.53670000 0.00000000 0.00000000 0.00000000
0.00000000 0.50000000 0.53670000 0.00000000 0.00000000 0.00000000
The python script gives you as output:
x,y,z
-x,-y,z
-x,y,z
-y,-x,z
-y,x,z
y,-x,z
y,x,z
x,-y,z
Cut and paste in Bilbao program and "Submit"-button gives as output enclosed SPCG-file.
Good luck!
Lars
Last edit: Lars Nordström 2021-03-10
Hi Kay and Lars,
Thank you so much for your speed of light response to my inquiry! This helps a lot! Also, thank you very much for developing such nice code! It is truly a gem in my research.
I will work on utilizing the python code you sent and let you know if it works.
Adolfo wishes his best to you!!
Thanks,
Casey
Dear Casey,
I forgot to point out two points.
1) The python-script assumes spin-orbit coupling. That is that rotations regards both orbital and spin space. But that is also assumed in tabulations of crystallographic space groups as those in the Bilbao crystallographic server. When spin polarized set up but without spin-orbit coupling the SYMCRYS.OUT file is too general for Bilbao as they take the form as described by Kay.
2) Please be aware that if the atomic positions are obtained by lattice optimisation, the acccuracy of the positions might be too low which leads to that ELK obtain a lower symmetry. This is maybe more relevant for VASP calculations rather than WIEN2k, but anyway in principle, this can be compensated by increasing the default epslat value in elk.in.
Please, send my regards to Adolfo!
Best regards,
Lars