[Q-e-developers] recompute the total energy after scf is finished

stefano de gironcoli degironc at sissa.it
Mon Nov 4 15:39:11 CET 2013


one option would be to perform a nscf calculation then..

-read rho
-compute v_of_rho
-diagonalize H_KS => new wfc new eigenvalues
-compute the energy (new calculation of exc, ehartree needed)

an alternative would be to compute the single particle contributin to 
the total energy not from the eigenvalues
but directly from \sum f_i <psi_i| T + V_ext| psi_i>
this should be equivalent to eband+deband without the need to know what  
v(r) was.

stefano

On 11/04/2013 01:58 PM, Lorenzo Paulatto wrote:
> On 11/04/2013 01:16 PM, stefano de gironcoli wrote:
>> ciao Lorenzo,
>>    I think
>>       deband = delta_e() = - \int v_(r) rho_r(r) dr
>>    should be computed with the potential that generated the wfcs and
>> not with the one obtained from the new density
>>    In this way i exactly cancel the corresponding term in eband
> Yes, that would work, but I cannot do it: as I'm restarting after the
> end of the calculation the potential is immediately recomputed from rho.
> The same actually happens when doing an nscf calculation, i.e. the
> wavefunctions you recompute from a nscf calculations are not from the
> same potential as the one from the corresponding scf calculation. I
> noticed now that you can see some small differences in the eigenvalues.
>
> At least I understand the discrepancy now. I think for the moment I'll
> stick to using a very strict convergence threshold while keep think
> about it.
>
> For who's interested: What we're trying to do in the end is to freeze
> the ground-state wavefunctions and potential. Then change the
> occupations, recompute rho accordingly and recompute the total energy
> from the new wfc/rho in the old ground-state potential. There are a few
> conceptual problems about what has to be new and what old. Reproducing
> the same energy was just the first step.
>
> cheers and thanks
>




More information about the developers mailing list