Page 1 of 1

SCF convergence problem when turning on SO

Posted: Thu Jul 04, 2013 4:15 pm
by nleconte
Dear fellow abinit users,

I have some problem converging my system when turning on SOC.

Code: Select all

nspinor 2 
nsppol 1
nspden 4

Same system without spin orbit (and without magnetization) converges well after 45 SCF steps.
I tried using less aggressive mixing

Code: Select all

iscf 2
but it does not help at all.

I'm working on graphene, functionalized by one bismuth atom. For 1x1, 2x2 supercells, SOC was converging well. Convergence becomes problematic for 3x3 and 4x4.

Here a snippet showing this bad convergence for the 3x3 structure. The bismuth atom is put in hollow position (in the center of one of the hexagons).

Code: Select all

ETOT 78  -108.36971397562     1.229E-07 7.293E-06 1.517E-03
 ETOT 79  -108.36971412100    -1.454E-07 1.830E-06 1.211E-03
 ETOT 80  -108.36971441771    -2.967E-07 4.302E-06 1.373E-03
 ETOT 81  -108.36971474276    -3.251E-07 1.922E-06 1.810E-03
 ETOT 82  -108.36971479842    -5.566E-08 2.246E-06 2.311E-03
 ETOT 83  -108.36971502070    -2.223E-07 2.534E-06 2.437E-03
 ETOT 84  -108.36971517879    -1.581E-07 2.454E-06 2.778E-03
 ETOT 85  -108.36971531625    -1.375E-07 1.917E-06 3.043E-03
 ETOT 86  -108.36971460745     7.088E-07 6.833E-06 3.169E-03
 ETOT 87  -108.36971451298     9.447E-08 5.123E-06 2.202E-03
 ETOT 88  -108.36971488635    -3.734E-07 1.607E-06 2.016E-03
 ETOT 89  -108.36971512531    -2.390E-07 1.896E-06 2.531E-03
 ETOT 90  -108.36971454005     5.853E-07 3.063E-06 2.906E-03
 ETOT 91  -108.36971476049    -2.204E-07 6.769E-06 2.019E-03
 ETOT 92  -108.36971456241     1.981E-07 6.922E-07 2.345E-03
 ETOT 93  -108.36971499378    -4.314E-07 7.248E-07 2.047E-03
 ETOT 94  -108.36971587731    -8.835E-07 7.380E-07 2.730E-03
 ETOT 95  -108.36971621829    -3.410E-07 1.184E-05 4.097E-03
 ETOT 96  -108.36971605240     1.659E-07 1.445E-06 4.656E-03
 ETOT 97  -108.36971673903    -6.866E-07 8.590E-06 4.520E-03
 ETOT 98  -108.36971686158    -1.225E-07 4.936E-06 5.568E-03
 ETOT 99  -108.36971678556     7.601E-08 3.341E-06 5.800E-03
 ETOT100  -108.36971613084     6.547E-07 2.127E-06 5.760E-03

 Cartesian components of stress tensor (hartree/bohr^3)
  sigma(1 1)=  6.02777436E-06  sigma(3 2)= -5.80367797E-09
  sigma(2 2)= -4.46793977E-06  sigma(3 1)= -3.43297689E-09
  sigma(3 3)= -1.35271592E-07  sigma(2 1)=  9.09231053E-06


 scprqt:  WARNING -
  nstep=  100 was not enough SCF cycles to converge;
  potential residual=  5.760E-03 exceeds tolvrs=  1.000E-14


Any advice?

Thanks in advance!
Nicolas

Re: SCF convergence problem when turning on SO

Posted: Thu Jul 11, 2013 9:42 am
by Boris
Hi Nicolas

You might have a better convergence by tuning the KGB 3-level parallelization. By experience, convergence is significantly better when NPBAND = NBAND. If you can't have this because you are limited in the number of cpus, try setting NPBAND x BANDPP = NBAND.

I have actinide-based systems that converge only when I have this kind of setings.

Good luck
Boris

Re: SCF convergence problem when turning on SO

Posted: Thu Jul 11, 2013 2:37 pm
by nleconte
Dear Boris,

Thanks for your answer, I will play with this a bit. Here is what I had before.
I have 120 bands and am working on a cluster with 12 procs per node. So, using KGB parallization, I set the following variables.

Code: Select all

 paral_kgb 1
 npkpt 4
 npspinor 1
 npband 12
 bandpp 2
 npfft 1
 wfoptalg 14
 nloalg 4
 fftalg 401
 iprcch 4
 intxc 0
 istwfk *1
 fft_opt_lob 2

As band pararallisation is most efficient when on the same node, I used the following restrictions in my submission script

Code: Select all

#SBATCH --ntasks=48
#SBATCH --ntasks-per-node=12

to make sure each node was assigned to one k point only.

bandpp should be 1 or 2, so this restricts quite a lot on how I could follow your advice.

Any comment?

In the meanwhile, I've got a new calculation running with iscf 2 and smaller diemax (0.3), instead of default value of 1. I was told maybe this could help too...

Keep you posted.

Nicolas

Re: SCF convergence problem when turning on SO

Posted: Fri Jul 12, 2013 8:47 am
by Boris
Yes, diemix can indeed significantly improve the convergence.

As for your parallelization, what is the maximum number of cpus you can use? Also, why do you have to restric bandpp to 1 or 2?

With 120 bands, I would try something like npband = 60, bandpp = 2, npkpt = 1. If you can use more cpus, you could increase npfft to 4 for instance, and if you can use even more cpus, increase npkpt.

Boris