a bug in rprim->translation vectors transformation
Posted: Sun Dec 11, 2011 1:20 pm
Hi,
I'm running calculations using SQS structures, and usually need some "strange"
rprim vectors. During my experiments I discovered an obvious bug in abinit
concerning the calculation of the translation vectors. Here is an example.
The following is a part of the input file:
#Definition of the unit cell
acell 16.00 24.00 16.00
rprim 0.5 0.0 0.5
0.5 0.0 -0.5
0.0 1.0 0.0
And here is its transformation to translation vectors in the output file:
.Version 6.8.2 of ABINIT
== DATASET 1 ==================================================================
Real(R)+Recip(G) space primitive vectors, cartesian coordinates (Bohr,Bohr^-1):
R(1)= 8.0000000 0.0000000 8.0000000 G(1)= 0.0625000 0.0000000 0.0625000
R(2)= 12.0000000 0.0000000-12.0000000 G(2)= 0.0416667 0.0000000 -0.0416667
R(3)= 0.0000000 16.0000000 0.0000000 G(3)= 0.0000000 0.0625000 0.0000000
It is seen that R(2) and R(3) are obviously wrong: they should be (8.0,0.0,-8.0)
and (0.0,24.0,0.0). They result in wrong interatomic distances in the supercell and
incorrect results.
The erroreous behavior in the above example can be corrected by simultaneous changing
of the second and third columns in acell, rprim, and xcart matrices, but for other
rprims this trick doesn't work. Here is an example of such a situation:
#Definition of the unit cell
acell 16.00 48.00 16.00
rprim 0.5 0.5 0.0
0.5 -0.5 0.0
0.0 0.5 -0.5
== DATASET 1 ==================================================================
Real(R)+Recip(G) space primitive vectors, cartesian coordinates (Bohr,Bohr^-1):
R(1)= 8.0000000 8.0000000 0.0000000 G(1)= 0.0625000 0.0625000 0.0625000
R(2)= 24.0000000-24.0000000 0.0000000 G(2)= 0.0208333 -0.0208333 -0.0208333
R(3)= 0.0000000 8.0000000 -8.0000000 G(3)= 0.0000000 0.0000000 -0.1250000
The same problem is observed for 6.2.3 version.
A patch to the source files is urgently needed as many users of abinit can suffer
from this problem.
Regards,
- Alexander
I'm running calculations using SQS structures, and usually need some "strange"
rprim vectors. During my experiments I discovered an obvious bug in abinit
concerning the calculation of the translation vectors. Here is an example.
The following is a part of the input file:
#Definition of the unit cell
acell 16.00 24.00 16.00
rprim 0.5 0.0 0.5
0.5 0.0 -0.5
0.0 1.0 0.0
And here is its transformation to translation vectors in the output file:
.Version 6.8.2 of ABINIT
== DATASET 1 ==================================================================
Real(R)+Recip(G) space primitive vectors, cartesian coordinates (Bohr,Bohr^-1):
R(1)= 8.0000000 0.0000000 8.0000000 G(1)= 0.0625000 0.0000000 0.0625000
R(2)= 12.0000000 0.0000000-12.0000000 G(2)= 0.0416667 0.0000000 -0.0416667
R(3)= 0.0000000 16.0000000 0.0000000 G(3)= 0.0000000 0.0625000 0.0000000
It is seen that R(2) and R(3) are obviously wrong: they should be (8.0,0.0,-8.0)
and (0.0,24.0,0.0). They result in wrong interatomic distances in the supercell and
incorrect results.
The erroreous behavior in the above example can be corrected by simultaneous changing
of the second and third columns in acell, rprim, and xcart matrices, but for other
rprims this trick doesn't work. Here is an example of such a situation:
#Definition of the unit cell
acell 16.00 48.00 16.00
rprim 0.5 0.5 0.0
0.5 -0.5 0.0
0.0 0.5 -0.5
== DATASET 1 ==================================================================
Real(R)+Recip(G) space primitive vectors, cartesian coordinates (Bohr,Bohr^-1):
R(1)= 8.0000000 8.0000000 0.0000000 G(1)= 0.0625000 0.0625000 0.0625000
R(2)= 24.0000000-24.0000000 0.0000000 G(2)= 0.0208333 -0.0208333 -0.0208333
R(3)= 0.0000000 8.0000000 -8.0000000 G(3)= 0.0000000 0.0000000 -0.1250000
The same problem is observed for 6.2.3 version.
A patch to the source files is urgently needed as many users of abinit can suffer
from this problem.
Regards,
- Alexander