Dear siesta and transiesta users:
I have recently read the transiesta code. But when I came to the part where a
k-denpendent Hamiltonian (Util\TBTrans\setupkham2.F) was built, I found there
was something different from the uaual one (such as Src\diagk.F).
To be specific, there is a tranform for the xij, each element minus the
distance between the equivalent i and j orbital in the unit cell. This will
results Hij (has a nuo*nuo dimension, with nuo the No. of orbital in a unit
cell) will loose a phase (exp(-i*dij), where dij is the distance between i and
j orbital in the unitcell). However, the lost phase for each Hij is different.
So I think the two k-denpendent Hamiltonian from setupkham2.F and diagk.F are
different.
Can anyone give some hint on the doing in setupkham2.F?
Best regards.
Yours
Guangping Zhang
PS: some relevent codes:
1. From diagk.F:
Saux = 0.0_dp
Haux = 0.0_dp
do iuo = 1,nuo
do j = 1,numh(iuo)
ind = listhptr(iuo) + j
jo = listh(ind)
juo = indxuo(jo)
kxij = kpoint(1,ik) * xij(1,ind) +
. kpoint(2,ik) * xij(2,ind) +
. kpoint(3,ik) * xij(3,ind)
ckxij = cos(kxij)
skxij = sin(kxij)
C Note : sign of complex part changed to match change in order of iuo/juo
Saux(1,juo,iuo) = Saux(1,juo,iuo) + S(ind)*ckxij
Saux(2,juo,iuo) = Saux(2,juo,iuo) - S(ind)*skxij
Haux(1,juo,iuo) = Haux(1,juo,iuo) + H(ind,ispin)*ckxij
Haux(2,juo,iuo) = Haux(2,juo,iuo) - H(ind,ispin)*skxij
enddo
enddo
2. From setupkham2.F:
do ia=1,nua
do iuo=lasto(ia-1)+1,lasto(ia)
xo(1,iuo)=xa(1,ia)
xo(2,iuo)=xa(2,ia)
xo(3,iuo)=xa(3,ia)
end do !iuo
end do !ia in uc
do iuo = 1,nuo
do j = 1,numh(iuo)
ind = listhptr(iuo) + j
jo = listh(ind)
juo = indxuo(jo)
xij(1,ind)=xij(1,ind)-(xo(1,juo)-xo(1,iuo))
xij(2,ind)=xij(2,ind)-(xo(2,juo)-xo(2,iuo))
xij(3,ind)=xij(3,ind)-(xo(3,juo)-xo(3,iuo))
enddo
enddo
do iuo = 1,nuo
do j = 1,numh(iuo)
ind = listhptr(iuo) + j
jo = listh(ind)
juo = indxuo(jo)
kxij = (k(1) * xij(1,ind) +
. k(2) * xij(2,ind) +
. k(3) * xij(3,ind) )
cphase = cdexp(dcmplx(0d0,1d0)*kxij)
inn = iuo+(juo-1)*nuo
Hk(inn) = Hk(inn)+H(ind,ispin)*cphase
Sk(inn) = Sk(inn)+S(ind)*cphase
enddo
enddo
2012-05-28
Guangping Zhang