<br>Dear all:<div><br></div><div>    I want to get kinetic energy for each orbit using pwscf. I have read electron.f90, </div><div>c_bands.f90, g2_kin.f90, cegterg.f90, h_psi.f90.</div><div>    I figure out that for each k points, in g2_kin.f90 it calculate (k+G)**2, and in cegterg.f90 </div><div>psi is normalized, and then it calls h_psi.f90 to calculate \h|\psi>. I added a 'write' command</div><div>to print <\psi|(k+G)**2|\psi> and <\psi|\psi> at the beginning of h_psi. However, the results</div><div> is somehow suspicious because <\psi|\psi> is not normalized and is different for each orbit.</div><div>    Can anybody tell me how to get the kinetic energy for each orbit?</div><div>    Thank you very much!</div><div>    I use qe-4.3.2.</div><div><br></div><div><br></div><div>Source code of cegterg.f90 begin with 258 line</div><div><div>     ...</div><div>     ...</div><div>     ! ... "normalize" correction vectors psi(:,nb1:nbase+notcnv) in</div><div>     ! ... order to improve numerical stability of subspace diagonalization</div><div>     ! ... (cdiaghg) ew is used as work array :</div><div>     !</div><div>     ! ...         ew = <psi_i|psi_i>,  i = nbase + 1, nbase + notcnv</div><div>     !</div><div>     DO n = 1, notcnv</div><div>        !</div><div>        nbn = nbase + n</div><div>        !</div><div>        IF ( npol == 1 ) THEN</div><div>           !</div><div>           ew(n) = ddot( 2*npw, psi(1,1,nbn), 1, psi(1,1,nbn), 1 )</div><div>           !</div><div>        ELSE</div><div>           !</div><div>           ew(n) = ddot( 2*npw, psi(1,1,nbn), 1, psi(1,1,nbn), 1 ) + &</div><div>                   ddot( 2*npw, psi(1,2,nbn), 1, psi(1,2,nbn), 1 )</div><div>           !</div><div>        END IF</div><div>        !</div><div>     END DO</div><div>     !</div><div>     CALL mp_sum( ew( 1:notcnv ), intra_pool_comm )</div><div>     !</div><div>     DO n = 1, notcnv</div><div>        !</div><div>        psi(:,:,nbase+n) = psi(:,:,nbase+n) / SQRT( ew(n) )</div><div>        WRITE(stdout,'(5X,"n=",I5,5X,"ew=",F16.9)')n,ew(n)</div><div>        !</div><div>     END DO</div><div>     !</div><div>     ! ... here compute the hpsi and spsi of the new functions</div><div>     !</div><div>     !</div><div>     CALL h_psi( npwx, npw, notcnv, psi(1,1,nb1), hpsi(1,1,nb1) )</div><div> </div><div><br></div><div>Source code of h_psi </div><div> ...</div><div> ...</div><div><div>  DO ibnd = 1, m</div><div>     hpsi (1:n, ibnd) = g2kin (1:n) * psi (1:n, ibnd)</div><div>     hpsi (n+1:lda,ibnd) = (0.0_dp, 0.0_dp)</div><div>     kin_psi (1:n, ibnd) = DCONJG(psi(1:n,ibnd))*g2kin (1:n) * psi (1:n, ibnd)</div><div>     kin_psi (n+1:lda,ibnd) = (0.0_dp, 0.0_dp)</div><div>     rho_psi (1:n, ibnd) = DCONJG(psi(1:n,ibnd)) * psi (1:n, ibnd)</div><div>     rho_psi (n+1:lda,ibnd) = (0.0_dp, 0.0_dp)</div><div>     IF ( noncolin ) THEN</div><div>        hpsi (lda+1:lda+n, ibnd) = g2kin (1:n) * psi (lda+1:lda+n, ibnd)</div><div>        hpsi (lda+n+1:lda*npol, ibnd) = (0.0_dp, 0.0_dp)</div><div>        kin_psi (lda+1:lda+n, ibnd)=DCONJG(psi (lda+1:lda+n, ibnd))*&</div><div>                              g2kin (1:n) *psi (lda+1:lda+n, ibnd)</div><div>        kin_psi (lda+n+1:lda*npol, ibnd) = (0.0_dp, 0.0_dp)</div><div>        rho_psi (lda+1:lda+n, ibnd)=DCONJG(psi (lda+1:lda+n, ibnd))*&</div><div>                                           psi(lda+1:lda+n, ibnd)</div><div>        rho_psi (lda+n+1:lda*npol, ibnd) = (0.0_dp, 0.0_dp)</div><div>     END IF</div><div>     kin_energy=0</div><div>     rho=0</div><div>     DO i=1,n</div><div>       kin_energy=kin_energy+REAL(kin_psi(i,ibnd))</div><div>       rho=rho+REAL(rho_psi(i,ibnd))</div><div>      WRITE(stdout,'(5X,"ibnd=",I5,5X,"kinetic energy= ",F10.3,5X,"rho=",F10.3)')&</div><div>                       ibnd,kin_energy,rho</div><div>      END DO</div><div>   END DO</div></div><div><br></div><div>output file</div><div><br></div><div>     -------h_psi-------</div><div><div>     ibnd=    1     kinetic energy=     20.348     rho=     0.110</div><div>     ibnd=    2     kinetic energy=      3.210     rho=     0.334</div><div>     ibnd=    3     kinetic energy=      4.039     rho=     0.121</div><div>     ibnd=    4     kinetic energy=      5.575     rho=     0.088</div><div>     ibnd=    5     kinetic energy=      6.083     rho=     0.201</div><div>     ibnd=    6     kinetic energy=      2.956     rho=     0.189</div><div>     ibnd=    7     kinetic energy=      2.049     rho=     0.463</div><div>     ibnd=    8     kinetic energy=      7.203     rho=     0.166</div><div>     ibnd=    9     kinetic energy=      4.522     rho=     0.204</div><div>     ibnd=   10     kinetic energy=      6.414     rho=     0.131</div><div>     -------END of h_psi-------</div><div>     n=    1     ew=     0.000000000</div><div>     n=    2     ew=     0.000000000</div><div>     n=    3     ew=     0.000000000</div><div>     n=    4     ew=     0.000000000</div><div>     n=    5     ew=     0.000000000</div><div>     -------h_psi-------</div><div>     ibnd=    1     kinetic energy=      9.129     rho=     0.138</div><div>     ibnd=    2     kinetic energy=      4.785     rho=     0.290</div><div>     ibnd=    3     kinetic energy=      4.685     rho=     0.225</div><div>     ibnd=    4     kinetic energy=      9.690     rho=     0.107</div><div>     ibnd=    5     kinetic energy=      4.565     rho=     0.148</div><div>     -------END of h_psi-------</div><div>     -------END of Cegterg-------</div></div><span><br>--<br><font class="Apple-style-span" color="#008080"><font class="Apple-style-span" size="3"><b>Alan Zhang</b></font><br></font><span style="color: rgb(0, 128, 128);">Department of Modern Mechanics, University of Science and Technology of China</span><font class="Apple-style-span" color="#008080"><br></font><span style="color: rgb(0, 128, 128);">E-mail address: alanzs@mail.ustc.edu.cn</span><font class="Apple-style-span" color="#008080"><br><br></font></span></div>