Upgrade of LibXC  [SOLVED]

Documentation, Web site and code modifications

Moderators: baguetl, routerov

Locked
dcaliste
Posts: 44
Joined: Thu Oct 22, 2009 9:15 am
Contact:

Upgrade of LibXC

Post by dcaliste » Thu Oct 06, 2011 12:48 pm

Currently, BigDFT depends on libXC 1.1, but ABINIT still uses 1.0. Is it possible to upgrade (almost nothing to do, just one or two symbol change names) ? Do you expect any trouble ?

Related question, who's ready to do it and when (I volunteer) ?

User avatar
pouillon
Posts: 651
Joined: Wed Aug 19, 2009 10:08 am
Location: Spain
Contact:

Re: Upgrade of LibXC

Post by pouillon » Thu Oct 06, 2011 6:12 pm

I'm perfectly fine if you do it.

In the worst case, we can discuss this when I come to Grenoble.
Yann Pouillon
Simune Atomistics
Donostia-San Sebastián, Spain

User avatar
Alain_Jacques
Posts: 279
Joined: Sat Aug 15, 2009 9:34 pm
Location: Université catholique de Louvain - Belgium

Re: Upgrade of LibXC

Post by Alain_Jacques » Fri Oct 07, 2011 3:08 pm

Hi Damien,

already done but not pushed yet on 6.11.0 - there are a few accuracy problems (and a dirty hack to get rid of clumsy Portuguese chars in the libxc comments).

Alain

User avatar
pouillon
Posts: 651
Joined: Wed Aug 19, 2009 10:08 am
Location: Spain
Contact:

Re: Upgrade of LibXC

Post by pouillon » Fri Oct 07, 2011 3:13 pm

Did you report this issue to the developers of LibXC?
Yann Pouillon
Simune Atomistics
Donostia-San Sebastián, Spain

dcaliste
Posts: 44
Joined: Thu Oct 22, 2009 9:15 am
Contact:

Re: Upgrade of LibXC

Post by dcaliste » Fri Oct 07, 2011 3:20 pm

here are a few accuracy problems


That's exactly the kind of sentence I was expecting and why I started this discussion. I spent one week with BigDFT tracking regression. If it can help here are the accuracy tests we have in BigDFT, comparing ABINIT driveXC and libXC (nosp for no spin, scol for colinear spin calculations):

Code: Select all

 -----------------------------------------+--------------------------------------------
 ixc =       1   nosp =    -2766.21488514 | scol =    -2240.03581793   time = 0.09250 s
 ixc =     -20   nosp =    -2766.21488083 | scol =    -2240.03581374   time = 0.13350 s
 -----------------------------------------+--------------------------------------------
 ixc =       2   nosp =    -2764.02880304 | scol =    -2237.43642550   time = 0.06550 s
 ixc =   -1009   nosp =    -2764.02879847 | scol =    -2237.49187260   time = 0.28450 s
 -----------------------------------------+--------------------------------------------
 ixc =       3   nosp =    -2765.45147845 | scol =    -2239.62248621   time = 0.05550 s
 -----------------------------------------+--------------------------------------------
 ixc =       4   nosp =    -3115.62686101 | scol =    -2529.22837520   time = 0.05850 s
 ixc =   -1002   nosp =    -3115.62685637 | scol =    -2529.70171805   time = 0.22050 s
 -----------------------------------------+--------------------------------------------
 ixc =       5   nosp =    -2872.14600673 | scol =    -2320.88893565   time = 0.08500 s
 ixc =   -1004   nosp =    -2872.15683268 | scol =    -2321.36253050   time = 0.31150 s
 -----------------------------------------+--------------------------------------------
 ixc =       6   nosp =    -1814.17322566 | scol =    -1440.08163062   time = 0.05500 s
 ixc =   -6006   nosp =    -1814.17322329 | scol =    -1440.55497575   time = 0.27150 s
 -----------------------------------------+--------------------------------------------
 ixc =       7   nosp =    -2767.10176245 | scol =    -2240.49206038   time = 0.12850 s
 ixc =   -1012   nosp =    -2767.10175784 | scol =    -2240.49205495   time = 0.33200 s
 -----------------------------------------+--------------------------------------------
 ixc =       8   nosp =    -1814.17322566 | scol =    -1440.55497812   time = 0.08150 s
 ixc =      -1   nosp =    -1814.17322329 | scol =    -1440.55497575   time = 0.14750 s
 -----------------------------------------+--------------------------------------------
 ixc =       9   nosp =    -3655.22471599 | scol =    -3056.94510925   time = 0.14300 s
 ixc =   -1003   nosp =    45754.55630339 | scol =    65484.14723970   time = 0.22350 s
 -----------------------------------------+--------------------------------------------
 ixc =   -1005   nosp =    -2764.47194298 | scol =    -2218.51637483   time = 0.30800 s
 -----------------------------------------+--------------------------------------------
 ixc =   -1007   nosp =    -2768.72308542 | scol =    -2242.11840810   time = 0.43450 s
 -----------------------------------------+--------------------------------------------
 ixc =   -1008   nosp =    -3637.33819847 | scol =    -3026.08745675   time = 0.42900 s
 -----------------------------------------+--------------------------------------------
 ixc =   -1010   nosp =    -2764.02879847 | scol =    -2237.49187260   time = 0.28400 s
 -----------------------------------------+--------------------------------------------
 ixc =   -1011   nosp =    -2762.84136401 | scol =    -2232.39062452   time = 0.28400 s
 -----------------------------------------+--------------------------------------------
 ixc =   -1013   nosp =    -2767.10162590 | scol =    -2240.49197745   time = 0.33150 s
 -----------------------------------------+--------------------------------------------
 ixc =   -1014   nosp =    -2812.15317905 | scol =    -2270.68646003   time = 0.33500 s
 -----------------------------------------+--------------------------------------------
 ixc =      11   nosp =    -3214.44003433 | scol =    -2562.83066924   time = 0.20100 s
 ixc = -101130   nosp =    -3214.44010430 | scol =    -2562.83071776   time = 0.66500 s
 -----------------------------------------+--------------------------------------------
 ixc =      12   nosp =    -3189.91009343 | scol =    -2545.91096900   time = 0.10250 s
 ixc =    -101   nosp =    -3189.91009064 | scol =    -2545.91096621   time = 0.19050 s
 -----------------------------------------+--------------------------------------------
 ixc =      13   nosp =    -2767.10176245 | scol =    -2240.49206038   time = 0.22600 s
 ixc = -160012   nosp =     -952.92853455 | scol =     -799.93707920   time = 0.47400 s
 -----------------------------------------+--------------------------------------------
 ixc =      14   nosp =    -3939.83765965 | scol =    -3150.23273351   time = 0.19950 s
 ixc = -102130   nosp =    -3939.83772939 | scol =    -3150.23278181   time = 0.66600 s
 -----------------------------------------+--------------------------------------------
 ixc =      15   nosp =    -3247.86373506 | scol =    -2584.49246457   time = 0.21750 s
 ixc = -117130   nosp =    -3247.86380504 | scol =    -2584.49251310   time = 0.67600 s
 -----------------------------------------+--------------------------------------------
 ixc =      16   nosp =    -4949.52814777 | scol =    -3938.44829636   time = 0.21750 s
 ixc =    -161   nosp =    -4949.52814358 | scol =    -3938.44829532   time = 0.85050 s
 -----------------------------------------+--------------------------------------------
 ixc =      17   nosp =    -2546.44585867 | scol =    -1954.21497826   time = 0.21750 s
 ixc =    -162   nosp =    -2546.44585522 | scol =    -1954.21497929   time = 0.84800 s
 -----------------------------------------+--------------------------------------------
 ixc =      23   nosp =    -3203.90850303 | scol =    -2562.83066924   time = 0.21350 s
 ixc =    -118   nosp =    -3179.37855934 | scol =    -2538.99096955   time = 0.22900 s
 -----------------------------------------+--------------------------------------------
 ixc =      26   nosp =    -3140.83269864 | scol =    -2430.35321529   time = 0.21950 s
 ixc =    -163   nosp =    -3140.83269493 | scol =    -2430.35321666   time = 0.84750 s
 -----------------------------------------+--------------------------------------------
 ixc =      27   nosp =    -1176.92556505 | scol =     -719.23727167   time = 0.21750 s
 ixc =    -164   nosp =    -1176.92556175 | scol =     -719.23727951   time = 0.84900 s
 -----------------------------------------+--------------------------------------------
 ixc =    -102   nosp =    -3915.30771573 | scol =    -3133.31303025   time = 0.19150 s
 -----------------------------------------+--------------------------------------------
 ixc =    -103   nosp =    -3463.54672524 | scol =    -2766.65340442   time = 0.18800 s
 -----------------------------------------+--------------------------------------------
 ixc =    -104   nosp = ***************** | scol = *****************   time = 0.17800 s
 -----------------------------------------+--------------------------------------------
 ixc =    -105   nosp =    -5517.45276955 | scol =    -4674.67859141   time = 0.23450 s
 -----------------------------------------+--------------------------------------------
 ixc =    -106   nosp =   -21314.23000832 | scol =   -20397.88167685   time = 0.24350 s
 -----------------------------------------+--------------------------------------------
 ixc =    -107   nosp = -2055131.19113725 | scol = -2304024.37004162   time = 0.18650 s
 -----------------------------------------+--------------------------------------------
 ixc =    -108   nosp =    -7031.32396038 | scol =    -6101.52065424   time = 0.27050 s
 -----------------------------------------+--------------------------------------------
 ixc =    -109   nosp =     -628.09086418 | scol =     -410.60793637   time = 0.37950 s
 -----------------------------------------+--------------------------------------------
 ixc =    -110   nosp =    -4494.87325445 | scol =    -3600.81871942   time = 0.18950 s
 -----------------------------------------+--------------------------------------------
 ixc =    -406   nosp =    -2416.96258164 | scol =    -1926.35297621   time = 0.62650 s
 -----------------------------------------+--------------------------------------------

I can send you the Fortran routine to generate this Alain if you're interested.

User avatar
pouillon
Posts: 651
Joined: Wed Aug 19, 2009 10:08 am
Location: Spain
Contact:

Re: Upgrade of LibXC

Post by pouillon » Mon Oct 10, 2011 4:07 pm

Here is the comment from Miguel:
Several of the comparisons that give errors are meaningless. For
example, you are comparing ixc=13=> GGA potential of van
Leeuwen-Baerends, while for energy, Perdew-Wang 92 functional, with a
calculation for the energy with van Leeuwen-Baerends (that does not have
an energy). The Gill functional gives wild errors, I guess because it is
wild (divergent), etc. There a couple of things that worry me, in any
case, the RPA functional (even if again you are comparing two different
things), and the wc functionals. I will take a closer look when I have
time...
Then, the small numerical differences are to be expected, as abinit
and libxc use different thresholds, different number of significant
digits in the constants and different orders of operations.
Yann Pouillon
Simune Atomistics
Donostia-San Sebastián, Spain

dcaliste
Posts: 44
Joined: Thu Oct 22, 2009 9:15 am
Contact:

Re: Upgrade of LibXC

Post by dcaliste » Tue Oct 11, 2011 9:36 am

Hello Miguel,

If you read this... Don't worry, I'm not saying that LibXC is less precise or buggy in comparison to ABINIT, I'm happy with it, following its developments and we plan in near future to switch to it as default in BigDFT (we've already abandonned the drivexc wrapper). Some comparisons in my tab are not adequat, I know and I'm not trying to make them match, sorry for the bad presentation.

Regarding my sentence about tracking regressions, it's indeed something I've done because for one or two functionals the results were diverging while they should have not. I've commited patches to libXC for this and discuss with Micael about them. So now, I'm providing this array to show to Alain that there's no regressions so far compared to ABINIT results, so he can include libXC1.1 as far as I'm concerned.

Sorry, it was not clear at the beginning.

User avatar
Alain_Jacques
Posts: 279
Joined: Sat Aug 15, 2009 9:34 pm
Location: Université catholique de Louvain - Belgium

Re: Upgrade of LibXC  [SOLVED]

Post by Alain_Jacques » Tue Oct 11, 2011 1:26 pm

Hello Damien, Yann and Miguel,

Miguel ... don't worry at all :-) I simply wanted to check to impact - on Abinit I assumed this has been done for long and on Atompaw, my main concern. And I certainly don't imply that libXC is less accurate, simply slightly different. Very fine for me to update to 1.1 - that was my original intention.

Kind regards,

Alain

Locked