[Pw_forum] Correlated wave-function in real space
Matteo Cococcioni
matteo at umn.edu
Fri Aug 28 21:45:48 CEST 2009
Dear Andreas
I'm not sure I understood correctly what you want to do. I have a couple
of questions/comments:
1) are you trying to reconstruct localized wavefunctions from the
Kohn-Sham states? This is what Wannier functions are all about.
2) If you want a translated wfc from the fourier transform of the
original one, you just have to multiply
each Fourier transform at a given k by e^ik*S where S is the the amount
of translation you want to apply.
However when you bring it back in real space I guess you will obtain
only the part of the translated wavefunction
that is inside the first unit cell.
Hope this helps.
Matteo
Andreas Linscheid wrote:
> Dear PWSCF users,
>
> I am currently writing an extension to the post processing part,
> combining information by an other program, to compute the
> superconducting order parameter in real space. In order to do this I
> need to calculate a correlated wave-function in real space, like
>
> CONJG(psi_nk(R - Constvect)) * psi_nk(R + Constvect),
>
> where R and Constvect are 3D real space vectors and Constvect is held
> fixed. I didn't succeed up to now, so I ask for help.
> My final goal is to find the corresponding FFT index, ir <=> R so that I
> can add (or subtract) S: R -> R+(-)S <=> ir_plus(minus)
> I figured out that the error in my program is where I touch the index
> ir, so it seems I misunderstood something of the correspondence between
> 1D consequtively ordered grid index ir and 3D real space vector R. My
> underlying question is therefore:
>
> How can I evaluate a given wavefunction psi(ir,ibnd) in real space at a
> given 3D vector R?
>
> What I tried up to now:
> 1. To get a better understanding of the wavefunction in real space, I
> tried to reproduce the sum of wavefunction (absolute value squared),
>
> Result(ir) = sum(irreducible grid k,bands) coeff_nk*|wavefunc_at_k(ir)|^2
>
> using the normal ouput (chdens.f90), by avoiding the
> fourier-interpolation in chdens.f90 and plotting it directly. (This means:)
> I compute the wavefunction like in local_dos.f90.
>
> call gk_sort (xk(1,ik), ngm, g, ecutwfc / tpiba2, npw, igk, g2kin)
> !load the PW coefficients of the hit irreducible k point
> call davcio (evc, nwordwfc, iunwfc, kfull_to_irred(ik), - 1)
>
> do ig = 1, npw
> do ibnd = 1, nbnd
> wavefunc_at_k ( nls(igk(ig)),ibnd) = evc (ig, ibnd)
> enddo
> enddo
>
> call cft3s (wavefunc_at_k(:,ibnd), nr1s, nr2s, nr3s, nrx1s, nrx2s, nrx3s, 2)
>
> I get the right result, i.e. I can reproduce the charge density when
> setting all coefficients above the fermi level to zero, only when I
> don't touch the index ir.
>
> 2. According to the FAQ I assumed that after the FFT, wavefunc_at_k (
> ir,ibnd) is the wavefunction of band iband at the cartesian coordinate
>
> R(:) = DBLE(i-1)/DBLE(nrx1s)*at(:,1) + DBLE(j-1)/DBLE(nrx2s)*at(:,2) +
> DBLE(k-1)/DBLE(nrx3s)*at(:,3)
> when
> ir = k + (j-1)*nrx3s +(i-1)*nrx3s*nrx2s
>
> Therefore I though that I should be able to reproduce the Result above
> (maybe in a different numerical resolution) when simply writing directly
> a file.
>
> k = nrx3s/2 !look at the boron plane
> do i = 1, nrx1s
> do j = 1, nrx2s
> Rvect(:) = DBLE(i-1)/DBLE(nrx1s)*at(:,1) +
> DBLE(j-1)/DBLE(nrx2s)*at(:,2) + DBLE(k-1)/DBLE(nrx3s)*at(:,3)
> ir = 1 + (j-1)*nrx3s + (i-1)*nrx3s*nrx2s + (k-1)
> write(13,'(2f10.5,f15.8)') Rvect(1),Rvect(2),Result(ir)
> write(13,*)
> enddo
> enddo
>
> Well I get something different which does not even have the symmetry
> group of the lattice. I also tried this in lattice coords:
>
> R(:) = DBLE(i-1)/DBLE(nrx1s)*at(:,1) + DBLE(j-1)/DBLE(nrx2s)*at(:,2) +
> DBLE(k-1)/DBLE(nrx3s)*at(:,3)
> call cryst_to_cart(1,R,bg,-1)
>
> Neither did this work (of cause the same problem). If anyone can
> confirm, that my thoughts are (in principle) right, I at least know that
> the bug must be somewhere else.
>
> I very much appreciate your help!!
>
> Andreas Linscheid
> (Fu-Berlin, AG-Gross)
> _______________________________________________
> Pw_forum mailing list
> Pw_forum at pwscf.org
> http://www.democritos.it/mailman/listinfo/pw_forum
>
--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Matteo Cococcioni
Department of Chemical Engineering and Materials Science,
University of Minnesota
421 Washington Av. SE
Minneapolis, MN 55455
Tel. +1 612 624 9056 Fax +1 612 626 7246
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
More information about the Pw_forum
mailing list