<div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div><div><div>Dear Developers<br></div>I'm writing to ask you about the preconditioner implemented in the Phonon code.<br></div>In phq_init.f90 I found<br>
<br>eprec (ibnd,ik) = 1.35d0 * zdotc(npwx*npol,evq(1,ibnd),1,aux1(1,ibnd),1)<br></div><br></div>namely the expectation value of the kinetic energy multiplied by 1.35. The preconditioner<br></div>is then built as <br><br>
h_diag(ig,ibnd)=1.d0/max(1.0d0,g2kin(ig)/eprec(ibnd,ik))<br>
<br></div>, for example in solve_e.f90. <br>I understand the general philosophy of the preconditioner: the high energy spectrum of<br></div>the Hamiltonian is dominated by the kinetic energy. I also understand that the purpose of<br>
max(1.0d0,g2kin(ig)/eprec(ibnd,ik)) is to establish a cut-off: the low energy G are not <br></div>really touched while the high energy G are preconditioned with the kinetic energy.<br></div>I have two questions:<br></div>
-Why 1.35? Is it only an empirical value?<br></div>-Why this preconditioner is different from the ground state one?<br></div>Thanks a lot<br></div>Dario Rocca<br><div><div><div><div><div><div><br><div><br><div><div><br></div>
</div></div></div></div></div></div></div></div></div>