g_psi multiplies the correction vector by an approximation of the
inverse of (H-eS), typically just the inverse of the diagonal .
regterg is the real version of the routine: that is appropriate the one
for k==Gamma
in this case psi is real in real space which means that the Fourier
components at G and -G are complex conjugate of each other.
the normalization is as usual
1 = \sum_G psi(G)^* psi(G) when summing over all G
but only half of them (the "positive" G) are stored and the
normalization is computed as
1 = psi(0)* psi(0) + 2.0 \sum_G/=0 psi(G)* psi(G) or rather
1 = 2.0 \sum_G psi(G)* psi(G) - psi(0)* psi(0)
the processor with gstart==2 is the one for which the first component is G=0
HTH
stefano
On 29/07/19 15:59, carlossiero siero wrote:
Dear Users,
I have been digging in the regterg.f90 subroutine and I was wondering
if somebody could tell me what the calling to g_psi (line 286) is doing?
| CALL g_psi( npwx, npw, notcnv, 1, psi(1,nb1),
ew(nb1) )
I thought the correction vectors, |psi> = (H - e*S) |psi>, were
already stored in psi, so there is no need to do any inversion or
anything else.
Also, running a 1processor calculation, the normalization goes through
line 299:
| IF ( gstart == 2 ) ew(n) = ew(n) - psi(1,nbn) *
psi(1,nbn)
What is the purpose of substrating the psi product of the first
element on each of the new vectors?
Thanks so much for your help!
Carlos
_______________________________________________
Quantum ESPRESSO is supported by MaX (www.max-centre.eu/quantum-espresso)
users mailing list [email protected]
https://lists.quantum-espresso.org/mailman/listinfo/users
_______________________________________________
Quantum ESPRESSO is supported by MaX (www.max-centre.eu/quantum-espresso)
users mailing list [email protected]
https://lists.quantum-espresso.org/mailman/listinfo/users