Skip to Content.
Sympa Menu

forum - Re: [abinit-forum] Etotal versus etotal

forum@abinit.org

Subject: The ABINIT Users Mailing List ( CLOSED )

List archive

Re: [abinit-forum] Etotal versus etotal


Chronological Thread 
  • From: matthieu verstraete <matthieu.jean.verstraete@gmail.com>
  • To: forum@abinit.org
  • Subject: Re: [abinit-forum] Etotal versus etotal
  • Date: Fri, 4 Sep 2009 17:22:09 +0200
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=YAzT6ZvfBywyU9ACwV170maS2Sj/mljZDu+olFc2yx1rCoZY9veSPyjYk8Jw49PvSz vcYnRVy6YLyEFLkdV+9ZXPwijBq6Zx8C4vULFn90yUebU+4LrDqj0nJk+/WsT2BWfbHa i2GWPcYJHy2kXMMnoczlo3KA3noprvdpDE0n0=

Perfectly correct! Brilliant - delocalized debugging. I will fix this
asap : need to add tphysel to etotfor.F90 (this really should be
consolidated somehow).

Cheers

Matthieu

On Fri, Sep 4, 2009 at 2:31 PM, Vincent
Chevrier<vincent.chevrier@dahn.phys.dal.ca> wrote:
> Hi Marc,
>
> 1- Etotal vs EtotalDC:
> I think the problem is closed:
>
> Etotal-EtotalDC tphysel  toldfe or tolvrs
> -8.8E-04        0        1d-5
>  5.8E-06        0        1d-9
> -1.5E-08        0        1d-15
>  4.4E-04        0.002131 1d-5
> -1.0E-08        0.002131 1d-9
>  2.2E-10        0.002131 1d-15
>
> the convergence increases as expected (although to different orders
> depending on tphysel).
>
> 2 - Etotal/EtotalDC vs etotal:
>
> Thanks for clarifying one more time! I don't remember this:
>  Etotal is e_intern - tphysel*entropy (implemented in prtene.F90)
>  etotal is e_intern - tsmear*entropy (implemented in etotfor.F90)
>
> being stated anywhere in the description of the variables on the Abinit
> website. As a non-developer user I would not have guessed it. It might be
> worthwhile to mention it or unify the behavior since etotal and EtotalDC
> are presented as equivalent in the tutorials.
>
> Thanks
> Vincent
>
>> Hi Vincent,
>>
>> Apparently, there are two separated problems when using tphysel:
>>
>> 1- Etotal vs EtotalDC:
>>
>> Now you use a sufficiently small tolerance on density residual.
>> Are now Etotal and Etotal DC equal when tphysel is used ?
>> (I cannot read it with your pdf file...)
>> I mean 10 digits or more... Are they closer than the results obtained
>> with toldfe=1.d-9.
>> If yes, the problem is closed.
>> If not this is a bug.... and the origin of it is mysterious...
>>
>>
>> 2- Etotal/EtotalDC vs etotal:
>>
>> When tphysel<>0:
>> As I wrote yesterday, I can easily explain the difference.
>> Etotal is e_intern - tphysel*entropy (implemented in prtene.F90)
>> etotal is e_intern - tsmear*entropy (implemented in etotfor.F90)
>>
>> The first question is: which is the correct one ?
>> Looking at your graph, it seems that Etotal is better (it converges wr
>> to tsmear).
>> Let Matthieu answer this question...
>>
>> The second question is: why is it implemented like this ?
>> Again, let Matthieu answer this question...
>> Perhaps it is sufficient to simply modify etotfor.F90 routine and put in
>> it the same formula as in prtene.F90.
>>
>>
>>
>> Marc
>>
>>
>>
>> Vincent Chevrier a écrit :
>>> Hi,
>>>
>>> I'm really sorry but I swapped the tphysel values in the previous
>>> postings. It SHOULD have read:
>>> toldfe=1e-9, tphysel=0
>>>     >>>>>>>>> Etotal=   -2.24784859172166E+02
>>>     >>>> Etotal (DC)=   -2.24784864956616E+02
>>>     etotal              -2.2478486496E+02
>>>
>>> toldfe=1e-9, tphysel=0.002131
>>>     >>>>>>>>> Etotal=   -2.24785888288957E+02
>>>     >>>> Etotal (DC)=   -2.24785888278458E+02
>>>     etotal              -2.2478510947E+02
>>>
>>> And so Etotal != etotal when tphysel != 0.
>>>
>>> As Matthieu suggested I varied tsmear and as Marc suggested used a
>>> tolvrs=1e-15. See the attached plot. It therefore appears that the value
>>> of etotal in the .out file is missing some contribution when using
>>> tphysel. (I'm only plotting tsmear=[0.005:0.015] but the same trend
>>> continues up to 0.05 and I didn't test beyond that).
>>>
>>> One should therefore use Etotal or EtotalDC when using tphysel and NOT
>>> etotal? Is this a bug?
>>>
>>> Thanks
>>> Vincent
>>>
>>>
>>>> Guilty, as charged. The concept behind tphysel is in PRB 65 035111:
>>>>
>>>> The result of a combination of a physical (Femi Dirac tphysel)
>>>> temperature and an artificial (tsmear, e.g. Marzari cold-smearing)
>>>> smearing is an effective smearing scheme, where the temperature for
>>>> the entropic term is tphysel and the smearing function is a
>>>> mathematical convolution (determines the occupation numbers, which
>>>> gives the value of the entropy) which depends both on tsmear and
>>>> tphysel. This is why in the tphysel case you specify both but it is
>>>> tphysel which should appear in front of the entropy, not tsmear.
>>>>
>>>> Note that for physical temperature calculations you always have the
>>>> reference of setting tsmear=T and occopt 3, and then converging wrt
>>>> k-points. This avoids the additional cross-convergence of tsmear and
>>>> nkpt, but obviously is heavier (that's the whole point of
>>>> tphysel+tsmear, to improve k-point convergence).
>>>>
>>>>
>>>>> toldfe=1e-9, tphysel=0
>>>>>     >>>>>>>>> Etotal= -2.24785888288957E+02
>>>>>     >>>> Etotal (DC)=   -2.24785888278458E+02
>>>>>     etotal                      -2.2478510947E+02
>>>>>
>>>> this is wierd: the Etotal-s are already free energies, with the
>>>> entropic term subtracted. So etotal should be equal to them. Perhaps
>>>> it is recalculated somewhere else before the final output? And that
>>>> point would have a small bug. Could you test this difference as a
>>>> function of tsmear for instance, to see if there is a trend?
>>>>
>>>>
>>>>
>>>>> toldfe=1e-9, tphysel=0.002131
>>>>>     >>>>>>>>> Etotal= -2.24784859172166E+02
>>>>>     >>>> Etotal (DC)=   -2.24784864956616E+02
>>>>>     etotal                      -2.2478486496E+02
>>>>>
>>>> Here etotal looks identical to Etotal(DC), as it should be, but the
>>>> difference with Etotal is about 1.e-6, instead of 1.e-8 as above... I
>>>> see no particular reason that the DC estimate should be worse in this
>>>> case wrt the direct calculation of the energy. Has anyone seen this in
>>>> norm-conserving calculations? Again, here, could you test if there is
>>>> a trend wrt tphysel? Perhaps with a very reduced cutoff if the runs
>>>> take time (and if the discrepancy is still there, of course).
>>>>
>>>> cheers,
>>>>
>>>> Matthieu
>>>>
>>>> On Thu, Sep 3, 2009 at 2:12 PM, TORRENT Marc<marc.torrent@cea.fr>
>>>> wrote:
>>>>
>>>>> Dear Vincent,
>>>>>
>>>>> Some explanations (but not all).
>>>>>
>>>>> etotal is used to converge the scf cycle and contains an entropy
>>>>> energy
>>>>> computed with tsmear.
>>>>> It is obtained by direct scheme if iscf<10, by double-counting scheme
>>>>> if
>>>>> iscf>=10:
>>>>>
>>>>> iscf=7 :  etotal=e_intern      - tsmear*entropy
>>>>> iscf=17:  etotal=eDC_intern - tsmear*entropy
>>>>>
>>>>> Etotal (EtotalDC) is just printed at the end of the SCF cycle and
>>>>> recomputed
>>>>> at that level.
>>>>> It uses tphysel if not zero, else tsmear:
>>>>>
>>>>> If tphysel<>0:
>>>>> Etotal=e_intern      - tphysel*entropy
>>>>> EtotalDC=eDC_intern - tphysel*entropy
>>>>>
>>>>> If tphysel=0:
>>>>> Etotal=e_intern      - tsmear*entropy
>>>>> EtotalDC=eDC_intern - tsmear*entropy
>>>>>
>>>>> So, it explains the differences between etotal and Etotal.
>>>>> Why is it implemented like this: I don't know.
>>>>> The developer who introduced tphysel should be able to explain that.
>>>>>
>>>>>
>>>>> Concerning the difference between Etotal and EtotalDC when
>>>>> tphysel<>0...
>>>>> it
>>>>> sounds strange.
>>>>> But I cannot explore further if I'm not sure of the convergence of
>>>>> your
>>>>> SCF
>>>>> cycle.
>>>>> toldfe is not the right criterium.
>>>>> you should use tolvrs and put it to a very low value (i.e 1.d-15 or
>>>>> lower).
>>>>>
>>>>> Regards,
>>>>>
>>>>> Marc
>>>>>
>>>>>
>>>>>
>>>>> Etotal and Etotal
>>>>>
>>>>> Vincent Chevrier a écrit :
>>>>>
>>>>> Dear Bernard,
>>>>> thank you for your reply. I've rerun with toldfe=1e-9. But etotal does
>>>>> not
>>>>> always agree with Etotal(DC). See below, in all cases tsmear=0.01 and
>>>>> the
>>>>> runs only differ in the parameters stated.
>>>>>
>>>>> toldfe=1e-5, tphysel=0
>>>>>     >>>>>>>>> Etotal= -2.24785447837035E+02
>>>>>     >>>> Etotal (DC)=   -2.24785888234037E+02
>>>>>     etotal                      -2.2478510911E+02
>>>>>
>>>>> toldfe=1e-5, tphysel=0.002131
>>>>>     >>>>>>>>> Etotal= -2.24785745210972E+02
>>>>>     >>>> Etotal (DC)= -2.24784864246079E+02
>>>>>     etotal            -2.2478486425E+02
>>>>>
>>>>>
>>>>> when tphysel=0.002131 then etotal = Etotal(DC), but when tphysel=0
>>>>> then
>>>>> etotal != Etotal(DC). Why is this, or more specifically what is:
>>>>>
>>>>> 1 - the cause of the difference between Etotal(DC) and etotal
>>>>> 2 - the effect of tphysel on the difference between Etotal(DC) and
>>>>> etotal
>>>>>
>>>>> Thanks
>>>>> Vincent
>>>>>
>>>>>
>>>>>
>>>>> Dear Vincent,
>>>>>
>>>>> With iscf=17 (the default value of iscf),  ETOT
>>>>> is equal to the so-called "double counting" expression of the energy
>>>>>
>>>>>
>>>>> written "Etotal (DC)" in the .out file (you could check it in your
>>>>> .out
>>>>> file).
>>>>>
>>>>>
>>>>> Moreover, Etotal and Etotal (DC) (both written in the .out file) are
>>>>>
>>>>>
>>>>> expected to agree if
>>>>>
>>>>>
>>>>> your calculation is well converged.
>>>>> In your case, your convergence criterion
>>>>> is weak (toldfe 1.d-05) so Etotal and Etotal (DC)
>>>>> are not equal. You could
>>>>> increase you convergence criterion to check this.
>>>>>
>>>>> Best regards
>>>>> Bernard
>>>>>
>>>>>
>>>>> Vincent Chevrier a écrit :
>>>>>
>>>>>
>>>>> Hi,
>>>>> I am wondering what the difference is between Etotal and etotal for
>>>>> PAW
>>>>>
>>>>>
>>>>> calcs. I can't remember ever seeing a difference stated on the ABINIT
>>>>> website. I'm especially interested in knowing how tphysel affects this
>>>>> difference.
>>>>>
>>>>>
>>>>> I completed two runs with the same structure the only difference being
>>>>>
>>>>>
>>>>> tphysel=0 and tphysel=0.00213.
>>>>>
>>>>>
>>>>> >From the .out file:
>>>>> For tphysel=0:
>>>>>     Kinetic energy  =  1.72081044902126E+01
>>>>>     Hartree energy  =  1.17823500013938E+01
>>>>>     XC energy       = -3.59810665254476E+01
>>>>>     Ewald energy    = -1.07436906857906E+02
>>>>>     PspCore energy  =  8.93535605840166E+00
>>>>>     Loc. psp. energy= -4.47984809673791E+01
>>>>>     Spherical terms = -7.44950150296981E+01
>>>>>     >>>>> Internal E= -2.24785658830422E+02
>>>>>     -kT*entropy     =  2.10993387856660E-04
>>>>>     >>>>>>>>> Etotal= -2.24785447837035E+02
>>>>> and
>>>>>     etotal  -2.2478510911E+02
>>>>> For tphysel=0.002131
>>>>>     Kinetic energy  =  1.72075689848333E+01
>>>>>     Hartree energy  =  1.17845516746048E+01
>>>>>     XC energy       = -3.59818457081452E+01
>>>>>     Ewald energy    = -1.07436906857906E+02
>>>>>     PspCore energy  =  8.93535605840166E+00
>>>>>     Loc. psp. energy= -4.48011025224259E+01
>>>>>     Spherical terms = -7.44958705044103E+01
>>>>>     >>>>> Internal E= -2.24788248875047E+02
>>>>>     -kT*entropy     =  2.50366407550064E-03
>>>>>     >>>>>>>>> Etotal= -2.24785745210972E+02
>>>>> and
>>>>>     etotal  -2.2478486425E+02
>>>>> below is the input file. Can anybody help me understand:
>>>>> 1 - the cause of the difference between Etotal and etotal
>>>>> 2 - the effect of tphysel on the difference between Etotal and etotal
>>>>>
>>>>>
>>>>> Thanks
>>>>>
>>>>>
>>>>> Vincent
>>>>> Input file:
>>>>>     ndtset   2
>>>>>    tphysel1  0.002131
>>>>>    tphysel2  0.0
>>>>>     occopt   4
>>>>>     tsmear   0.01
>>>>>  pawecutdg   15
>>>>>       ecut   15
>>>>>     kptopt   1
>>>>>    nshiftk   1
>>>>>     shiftk   0.5 0.5 0.5
>>>>>   kptrlatt   6  0  0
>>>>>              0  3  0
>>>>>              0  0 10
>>>>>      nstep   50
>>>>>     toldfe   1.0d-5
>>>>>     ntypat   2
>>>>>      znucl   3 14
>>>>>      natom   34
>>>>>      typat   1  1  1  1  2  1  1  1
>>>>>              2  1  1  1  2  1  1  1
>>>>>              2  1  1  1  1  2  1  1
>>>>>              1  2  1  1  1  2  1  1
>>>>>              1  2
>>>>>      acell   1.5065427965E+01  2.8615352526E+01  8.4083802112E+00 Bohr
>>>>>
>>>>>
>>>>> rprim   1.0 0.0 0.0
>>>>>
>>>>>
>>>>>              0.0 1.0 0.0
>>>>>              0.0 0.0 1.0
>>>>>       xred   7.4996953092E-13  5.0000000000E-01  0.0000000000E+00
>>>>>              9.6480532055E-02  1.9420479791E-01  0.0000000000E+00
>>>>>
>>>>>
>>>>> 2.7080350417E-01  3.4610078252E-01  0.0000000000E+00
>>>>> 1.5292044305E-01  2.5787557735E-02  0.0000000000E+00
>>>>> 4.1748605305E-01  1.6031572532E-01  0.0000000000E+00
>>>>> 2.5955975937E-01  9.5181187368E-02  5.0000000000E-01
>>>>> 4.0978302750E-01  2.5635768786E-01  5.0000000000E-01
>>>>> 9.6925526499E-02  3.9393640703E-01  5.0000000000E-01
>>>>> 4.2837868374E-01  4.3177429281E-01  5.0000000000E-01
>>>>> 9.0351946795E-01  8.0579520209E-01  0.0000000000E+00
>>>>> 7.2919649583E-01  6.5389921748E-01  0.0000000000E+00
>>>>> 8.4707955695E-01  9.7421244227E-01  0.0000000000E+00
>>>>> 5.8251394695E-01  8.3968427468E-01  0.0000000000E+00
>>>>> 7.4044024063E-01  9.0481881263E-01  5.0000000000E-01
>>>>> 5.9021697250E-01  7.4364231214E-01  5.0000000000E-01
>>>>> 9.0307447350E-01  6.0606359297E-01  5.0000000000E-01
>>>>> 5.7162131627E-01  5.6822570719E-01  5.0000000000E-01
>>>>> 5.0000000000E-01  0.0000000000E+00  0.0000000000E+00
>>>>> 4.0351946795E-01  6.9420479791E-01  0.0000000000E+00
>>>>> 2.2919649583E-01  8.4610078252E-01  0.0000000000E+00
>>>>> 3.4707955695E-01  5.2578755773E-01  0.0000000000E+00
>>>>> 8.2513946947E-02  6.6031572532E-01  0.0000000000E+00
>>>>> 2.4044024063E-01  5.9518118737E-01  5.0000000000E-01
>>>>> 9.0216972503E-02  7.5635768786E-01  5.0000000000E-01
>>>>> 4.0307447350E-01  8.9393640703E-01  5.0000000000E-01
>>>>> 7.1621316266E-02  9.3177429281E-01  5.0000000000E-01
>>>>> 5.9648053206E-01  3.0579520209E-01  0.0000000000E+00
>>>>> 7.7080350417E-01  1.5389921748E-01  0.0000000000E+00
>>>>> 6.5292044305E-01  4.7421244227E-01  0.0000000000E+00
>>>>> 9.1748605305E-01  3.3968427468E-01  0.0000000000E+00
>>>>> 7.5955975937E-01  4.0481881263E-01  5.0000000000E-01
>>>>> 9.0978302750E-01  2.4364231214E-01  5.0000000000E-01
>>>>> 5.9692552650E-01  1.0606359297E-01  5.0000000000E-01
>>>>> 9.2837868374E-01  6.8225707188E-02  5.0000000000E-01
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>> Dr. Matthieu Verstraete
>>>>
>>>> Universite de Liège
>>>> Institut de Physique, Bat. B5
>>>> Allée du 6 aout, 17
>>>> B- 4000 Sart Tilman, Liège
>>>> Belgium
>>>>
>>>> Phone : +32 4 366 37 50
>>>> Fax   : +32 4 366 36 29
>>>>
>>>> Mail : matthieu.jean.verstraete@gmail.com
>>>>
>>>>
>>
>
>



--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dr. Matthieu Verstraete

Universite de Liège
Institut de Physique, Bat. B5
Allée du 6 aout, 17
B- 4000 Sart Tilman, Liège
Belgium

Phone : +32 4 366 37 50
Fax : +32 4 366 36 29

Mail : matthieu.jean.verstraete@gmail.com




Archive powered by MHonArc 2.6.16.

Top of Page