wannier90 convergence

External optional components of Abinit (BigDFT, Wannier90...) and codes using/providing data from/to Abinit (AtomPAW, ONCVPSP, EXC, DP, Yambo...)

Moderators: ebousquet, bxu

Locked
Redorb
Posts: 11
Joined: Tue Feb 15, 2011 9:24 pm

wannier90 convergence

Post by Redorb » Tue Feb 15, 2011 9:40 pm

Hello,

I have a question involving wannier90 and the convergence of the spread. When following through the tutorial on wannier90 "Tutorial preparing Wannier90 run" I follow the exact steps in the tutorial. cp ../tw90_1.files, cp ../tw90_1.in, and cp ../wannier90.win. To the best of my knowledge and by looking through these simple files this is all I should need for this wannier calculation on Si.

I run the calculation using: abinit < tw90_1.files >& log, and it completes with a wannier.wout file. If I: grep DIS wannier90.wout, I get nothing.

However, if I: grep CONV wannier90.wout I get the following output:
+--------------------------------------------------------------------+<-- CONV
| Iter Delta Spread RMS Gradient Spread (Ang^2) Time |<-- CONV
+--------------------------------------------------------------------+<-- CONV
0 0.525E+02 0.0000000000 52.4606835457 0.06 <-- CONV
1 0.000E+00 0.0000000000 52.4606835457 2.14 <-- CONV
2 0.000E+00 0.0000000000 52.4606835457 4.20 <-- CONV
3 0.000E+00 0.0000000000 52.4606835457 6.27 <-- CONV
4 0.000E+00 0.0000000000 52.4606835457 8.36 <-- CONV
.
.
.
197 0.000E+00 0.0000000000 52.4606835457 412.07 <-- CONV
198 0.000E+00 0.0000000000 52.4606835457 414.16 <-- CONV
199 0.000E+00 0.0000000000 52.4606835457 416.25 <-- CONV
200 0.000E+00 0.0000000000 52.4606835457 418.35 <-- CONV

As can be seen the spread has not converged at all and has stayed at the same initial spread of 52.46 Ang^2. I have completed other tests using wannier90 with abinit and they do not converge either. My question is if I have a problem with the code or is the tutorial simply outdated and I should be using different parameters in my input.

Thank you for your time!

blackburn
Posts: 42
Joined: Fri Aug 14, 2009 8:03 pm

Re: wannier90 convergence

Post by blackburn » Tue Feb 15, 2011 11:01 pm

Hi,

It's normal that grep DIS wannier90.wout returns nothing become no disentanglement is done in this tutorial.

For the convergence though, your results are perplexing. I tried to run the tutorial and it worked great. The spread started at 52.46 like yours but quickly converged to 4 (or something like that). Have you modified the input?

Else, did you check the tests results from you compilation of ABINIT? (make tests_min)

Cheers,

Simon

thanusit
Posts: 70
Joined: Thu Jan 14, 2010 4:20 am

Re: wannier90 convergence

Post by thanusit » Thu Feb 17, 2011 7:49 am

Hi,

Sorry if this is interrupting your discussion but I'd like to ask a question concerning the spread convergence. Does spread convergence only mean that the spread remains constant after a certain number of iterations? or Does it mean that the spread remains constant after a certain number of iterations and the final value (the good value of the spread) must also be small, let's say less than 10 for Si?

Kind regards,
Thanusit

Redorb
Posts: 11
Joined: Tue Feb 15, 2011 9:24 pm

Re: wannier90 convergence

Post by Redorb » Thu Feb 17, 2011 11:34 pm

Hello,

First I want to say thank you for the extremely fast reply by Blackburn. It is much appreciated.

In the main abinit directory I ran the test: make tests_in.

For all of the tests but wannier I get :
OK for total energy
OK for nuclei positions
OK for forces
OK for stresses

But for the wannier test I get:
echo "Running built-in test in_wannier90"
Running built-in test in_wannier90
timeout="0" /usr/bin/perl ../tests/Scripts/run-basic-tests.pl built-in in_wannier90 /home/azmaniac/azprogs/abinit-6.4.3

Status file, with repetition rate 49, status number 295

Level abinit : call driver
Level driver : call gstateimg
Level gstateimg : enter
Level gstate : call scfcv
Level scfcv : call outscfcv
istep = 3

Status file, with repetition rate 49, status number 295

Level abinit : call driver
Level driver : call gstateimg
Level gstateimg : enter
Level gstate : call scfcv
Level scfcv : call outscfcv
istep = 3
.
.
.

These last lines are repeated several times.

This seems to me that there is a problem in the self consistent field calculation subroutines? What should I do to fix this problem?

Thanks again for the help!

Redorb
Posts: 11
Joined: Tue Feb 15, 2011 9:24 pm

Re: wannier90 convergence

Post by Redorb » Thu Feb 17, 2011 11:43 pm

@ Thanusit

HI,

From what I have read on Wannier functions. There is a steepest-descent algorithm applied to minimize the spread. In that way the wannier functions that you get are maximally localized. Hence, the Maximally Localized Wannier Functions (MLWF). From what I have seen in abinit this spread is nothing other than the function of: omega = Sum_n[ <w_n0| r^2 | w_n0> - <w_n0 | r| w_n0>^2 ]. So the value of the omega (spread) is given at each steepest-descent step as an output.

Redorb
Posts: 11
Joined: Tue Feb 15, 2011 9:24 pm

Re: wannier90 convergence

Post by Redorb » Fri Feb 18, 2011 7:30 pm

Hello,

I have noticed that when I build abinit using the default compiler gfortran instead of my choice of ifort I do not get this convergence error. Does anyone know what could be causing this?

Locked