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.

Reply via email to