[Q-e-developers] preconditioner in the Phonon code

dario rocca roccad at gmail.com
Mon May 6 16:31:45 CEST 2013


Dear Developers
I'm writing to ask you about the preconditioner implemented in the Phonon
code.
In phq_init.f90 I found

eprec (ibnd,ik) = 1.35d0 * zdotc(npwx*npol,evq(1,ibnd),1,aux1(1,ibnd),1)

namely the expectation value of the kinetic energy multiplied by 1.35. The
preconditioner
is then built as

h_diag(ig,ibnd)=1.d0/max(1.0d0,g2kin(ig)/eprec(ibnd,ik))

, for example in solve_e.f90.
I understand the general philosophy of the preconditioner: the high energy
spectrum of
the Hamiltonian is dominated by the kinetic energy. I also understand that
the purpose of
max(1.0d0,g2kin(ig)/eprec(ibnd,ik)) is to establish a cut-off: the low
energy G are not
really touched while the high energy G are preconditioned with the kinetic
energy.
I have two questions:
-Why 1.35? Is it only an empirical value?
-Why this preconditioner is different from the ground state one?
Thanks a lot
Dario Rocca
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/developers/attachments/20130506/c5bfb325/attachment.html>


More information about the developers mailing list