Hi all,
I've got a (silly, I'd say) question regarding the subroutine reclat. I
wanted to see the cartesian components of the reciprocal lattice vectors.
So I added the following code to the siesta main subroutine (file
siesta.F):
if (IOnode) then
write(6,*)
write(6,*) 'reclat: Unit cell vectors (Bohr):'
write(6,"('a1: ', 2x, 3f15.10)"), ucell(1,1), ucell(2,1),
$ucell(3,1)
write(6,"('a2: ', 2x, 3f15.10)"), ucell(1,2), ucell(2,2), ucell
$(3,2)
write(6,"('a3: ', 2x, 3f15.10)"), ucell(1,3), ucell(2,3), ucell
$(3,3)
call reclat(ucell,rcell,1)
write(6,*) 'reclat: Reciprocal lattice vectors, not scaled by 2*
$pi:'
write(6,"('b1: ', 2x, 3f15.10)"), rcell(1,1), rcell(2,1),
$rcell(3,1)
write(6,"('b2: ', 2x, 3f15.10)"), rcell(1,2), rcell(2,2), rcell
$(3,2)
write(6,"('b3: ', 2x, 3f15.10)"), rcell(1,3), rcell(2,3), rcell
$(3,3)
write(6,*)
write(6,*)
call reclat(ucell,rcell,0)
write(6,*) 'reclat: Reciprocal lattice vectors, scaled by 2*pi:'
write(6,"('b1: ', 2x, 3f15.10)"), rcell(1,1), rcell(2,1),
$rcell(3,1)
write(6,"('b2: ', 2x, 3f15.10)"), rcell(1,2), rcell(2,2),
$rcell(3,2)
write(6,"('b3: ', 2x, 3f15.10)"), rcell(1,3), rcell(2,3),
$rcell(3,3)
write(6,*)
write(6,*)
endif
When I use a unit cell of graphene, I get the following result:
reclat: Unit cell vectors (Bohr):
a1: 4.0170933649 2.3192699350 0.0000000000
a2: 4.0170933649 -2.3192699350 0.0000000000
a3: 0.0000000000 0.0000000000 32.4697790900
reclat: Reciprocal lattice vectors, not scaled by 2*pi:
b1: 0.7820561705 1.3545610221 0.0000000000
b2: 0.7820561705 -1.3545610221 0.0000000000
b3: 0.0000000000 0.0000000000 0.1935087174 ,
which is correct. However, when I take a supercell of graphene with
lattice vectors along x and y, I get:
reclat: Unit cell vectors (Bohr):
a1: 64.2734938385 0.0000000000 0.0000000000
a2: 0.0000000000 9.2770797408 0.0000000000
a3: 0.0000000000 0.0000000000 32.4697790909
reclat: Reciprocal lattice vectors, not scaled by 2*pi:
b1: 0.0977570213 0.0000000000 0.0000000000
b2: 0.0000000000 0.6772805110 0.0000000000
b3: 0.0000000000 0.0000000000 0.1935087174
Now, the direct lattice vectors are correct, but I would expect that
$b_{1x}=2*pi*a_{2y}$; instead $b_{1x}=2*pi*a_{2x}$, and something
analogous happens for $b_{2y}$. Am I missing something, or is the
condition
$\vec b_{i} \dot \vec a_{j}$
not obeyed by the subroutine reclat? This could have some implications for
k-point samplings for this kind of cell... Although this would be easy to
fix by adding a few lines of code to reclat, I would like to be sure that
I am not missing some silly detail here.
Best regards,
Marcos
Marcos
--
Dr. Marcos Verissimo Alves
Post-Doctoral Fellow
Unité de Physico-Chimie et de Physique des Matériaux (PCPM)
Université Catholique de Louvain
1 Place Croix du Sud, B-1348
Louvain-la-Neuve
Belgique
------
Gort, Klaatu barada nikto. Klaatu barada nikto. Klaatu barada nikto.
Free translation:
Gort, Google is your friend. Google is your friend. Google is your friend.