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: TORRENT Marc <marc.torrent@cea.fr>
  • To: forum@abinit.org
  • Subject: Re: [abinit-forum] Etotal versus etotal
  • Date: Fri, 04 Sep 2009 10:27:54 +0200
  • Organization: CEA-DAM

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





Archive powered by MHonArc 2.6.16.

Top of Page