Menu

Higher convergence for Ni 7 layer with 1 layer of graphene

Elk Users
2018-04-24
2018-09-01
  • Joel Davidsson

    Joel Davidsson - 2018-04-24

    Dear all,

    I have been trying to convergence a slab of 7 layers of Ni with 1 layer of graphene. The same structure as described in this paper. In my first attempt, it did not converge at all. After moving some electrons from core to valence and lowering the convergence settings, I got it to converge and it looks reasonable. But when I increase the convergence parameters (rgkmax, lmaxapw, gmaxvr) to make sure I found the correct minima, the first and second derivative of the density starts to rapidly oscillate in the interstitial region. If I increase them further, the calculation does not converge at all. Any tips on how to get better convergence? I would like to have smooth first and second derivatives of the density in the interstitial region if possible.

    When I run Elk the muffin-tin radius change and I have not been able to get rid of the linearisation energy warnings for 16 energies.

    Elk code version 3.3.17 started
    
    Info(elk): current task :      1
    Info(checkmt): reduced muffin-tin radius of species   1 (Ni) from   2.4000 to   2.3132
    Info(checkmt): reduced muffin-tin radius of species   2 (C) from   1.6000 to   1.3333
    Info(findsymcrys): atomic basis shift (lattice) :
      0.3403173027E-04  0.9996408968      0.2335754463    
    See GEOMETRY.OUT for new atomic positions
    
    Warning(linengy): could not find  16 linearisation energies in s.c. loop
    

    Here is my elk.in with lowest convergence setting that converges:

    ! graphene on Ni(fcc)
    
    tasks
      1
    
    autolinengy
      true
    
    avec     
      2.4918442969013936    0.0000000000000000    0.0000000000000000
      1.2459221484506968    2.1580004633919798    0.0000000000000000
      0.0000000000000000    0.0000000000000000   32.2074940917454455
    
    ! convert to bohr
    scale
      1.8897261329
    
    mixtype
      3
    
    beta0
      0.01
    
    betamax
      0.06
    
    nempty
      8
    
    atoms
      2                                   : nspecies
      'Ni.in'                             : spfname
      7                                   : natoms; atposl, bfcmt
      0.0000000000000000  0.0000000000000000  0.3104867448400128   0.00000000  0.00000000  0.00000000
      0.3333333333333357  0.3333333333333357  0.3736578298933395   0.00000000  0.00000000  0.00000000
      0.6666666666666643  0.6666666666666643  0.4368289149466733   0.00000000  0.00000000  0.00000000
      0.0000000000000000  0.0000000000000000  0.5000000000000000   0.00000000  0.00000000  0.00000000
      0.3333333679780487  0.3333331564610323  0.5632440290016580   0.00000000  0.00000000  0.00000000
      0.6666666465402797  0.6666668966469220  0.6264251673629293   0.00000000  0.00000000  0.00000000
      0.0000002718317247 -0.0000027764510951  0.6889417825100833   0.00000000  0.00000000  0.00000000
      'C.in'
      2
     -0.0000340317302663  0.0003591031891738  0.7664245537378078   0.00000000  0.00000000  0.00000000
      0.6666857069710561  0.6664644879505585  0.7668660120128171   0.00000000  0.00000000  0.00000000
    
    ngridk
      16  16  1
    
    rgkmax
      5 
    
    lmaxapw
    8
    
    gmaxvr
      16
    
    plot3d
      0.0  0.0  0.8                         : vlvp1d
      1.0  0.0  0.8
      0.0  1.0  0.8
      0.0  0.0  1.0
      100  100  100
    
    lradstp
     1
    
    sppath
      './' 
    
    solscf
      10000000.0
    

    I still get convergence if I increase the rgkmax to 8, lmaxapw to 11, and gmaxvr to 22. But then the first and second density derivatives oscillates rapidly.

    The species files for Ni and C are:

     'Ni'                                       : spsymb
     'nickel'                                   : spname
      -28.0000                                  : spzn
       106991.5230                              : spmass
      0.377964E-06    2.4000   39.0101   500    : sprmin, rmt, sprmax, nrmt
      10                                        : spnst
       1   0   1   2.00000    T                 : spn, spl, spk, spocc, spcore
       2   0   1   2.00000    T
       2   1   1   2.00000    T
       2   1   2   4.00000    T
       3   0   1   2.00000    F
       3   1   1   2.00000    F
       3   1   2   4.00000    F
       3   2   2   4.00000    F
       3   2   3   4.00000    F
       4   0   1   2.00000    F
       2                                        : apword
        0.1500   0  F                           : apwe0, apwdm, apwve
        0.1500   1  F                           : apwe0, apwdm, apwve
       0                                        : nlx
       6                                        : nlorb
       0   2                                    : lorbl, lorbord
        0.1500   0  F                           : lorbe0, lorbdm, lorbve
        0.1500   1  F
       1   2                                    : lorbl, lorbord
        0.1500   0  F                           : lorbe0, lorbdm, lorbve
        0.1500   1  F
       2   2                                    : lorbl, lorbord
        0.1500   0  F                           : lorbe0, lorbdm, lorbve
        0.1500   1  F
       1   3                                    : lorbl, lorbord
        0.1500   0  F                           : lorbe0, lorbdm, lorbve
        0.1500   1  F
       -2.5905   0  T
       2   3                                    : lorbl, lorbord
        0.1500   0  F                           : lorbe0, lorbdm, lorbve
        0.1500   1  F
       -0.3317   0  T
       0   3
        0.1500   0  F                           : lorbe0, lorbdm, lorbve
        0.1500   1  F
       -3.5   0  T
    
     'C'                                        : spsymb
     'carbon'                                   : spname
      -6.00000                                  : spzn
       21894.16672                              : spmass
      0.816497E-06    1.6000   41.9480   300    : rminsp, rmt, rmaxsp, nrmt
       4                                        : nstsp
       1   0   1   2.00000    F                 : nsp, lsp, ksp, occsp, spcore
       2   0   1   2.00000    F
       2   1   1  1.000000    F
       2   1   2  1.000000    F
       2                                        : apword
        0.1500   0  F                           : apwe0, apwdm, apwve
        0.1500   1  F                           : apwe0, apwdm, apwve
       0                                        : nlx
       4                                        : nlorb
       0   2                                    : lorbl, lorbord
        0.1500   0  F                           : lorbe0, lorbdm, lorbve
        0.1500   1  F
       1   2                                    : lorbl, lorbord
        0.1500   0  F                           : lorbe0, lorbdm, lorbve
        0.1500   1  F
       0   3                                    : lorbl, lorbord
        0.1500   0  F                           : lorbe0, lorbdm, lorbve
        0.1500   1  F
       -0.5012   0  T
       0   3
        0.1500   0  F                           : lorbe0, lorbdm, lorbve
        0.1500   1  F
       -9.5   0  T
    

    Thank you for any suggestion!

    Best regards,
    Joel

     
  • mfechner

    mfechner - 2018-04-24

    Dear Joel,

    this will be a tricky case. Anyway we shouls start with the lin. energies warnings the rest may goes for free.

    1.) I would put back the 1s Carbon state to core, since most of my computations never converge with a 1s state in valence.

    Could you provide some INFO.OUT of this computation and furthermore the LINENGY.OUT file to check which linearisation energies he does not find!

    2.) you may set ''demaxbnd'' in the input card, which is the search radius for the linearisation energies to a higher value.

    demaxbnd
    4

    Once elk finds the state you can reduce it and use this values in the in files. You may also set

    isgkmax
    -3

    since you MT are very different, which should adjust the RGKMAX accordingly.

    best
    Michael

     
  • Joel Davidsson

    Joel Davidsson - 2018-04-25

    Dear Micheal,

    Thank you for your input. I will try the changes you suggested and report what happens. I have also attached the INFO.OUT and LINENGY.OUT for both the lower convergence (rgkmax 5, lmaxapw 8, and gmaxvr 16 named low) and for the higher convergence (rgkmax 8, lmaxapw 11, and gmaxvr 22 named high). The higher convergence started from the lower STATE.OUT.

    Best,
    Joel

     
  • Joel Davidsson

    Joel Davidsson - 2018-04-27

    Dear Micheal,

    I moved the 1s Carbon back to the core, added demaxbnd 4, and isgkmax -3 and I got it to converge for rgkmax 5, lmaxapw 8, and gmaxvr 16. This reduced the number of linearisation error from 16 to 2. I have attached the INFO.OUT and LINENGY.OUT.

    I still get rapid oscillating first and second density derivatives. I am running a higher convergence with rgkmax 8, lmaxapw 11, and gmaxvr 22 to see if it helps. Or is there something else I should do?

    Best,
    Joel

     
  • Anonymous

    Anonymous - 2018-06-28

    Dear all,

    Here is an update on my progress. Moving the 1s carbon state back to the core definitely helped with the convergence. To get better first and second density derivatives, I also had to reduce the Ni muffin tin radius to 1.9 and move the 3s to the valence. With this, I was able to converge to rgkmax 8, lmaxapw 11, and gmaxvr 22 and still have smooth derivatives. After that, I tested adding demaxbnd 4 and isgkmax -3 but it didn't seem to reduce the linearisation errors, although I only tested it for a few iterations of the self-consistent loop.

    Thanks for all the help.

    Best,
    Joel

     
  • Joel Davidsson

    Joel Davidsson - 2018-06-29

    Dear all,

    Here is an update on my progress. Moving the 1s carbon state back to the core definitely helped with the convergence. To get better first and second density derivatives, I also had to reduce the Ni muffin tin radius to 1.9 and move the 3s to the valence. With this, I was able to converge to rgkmax 8, lmaxapw 11, and gmaxvr 22 and still have smooth derivatives. After that, I tested adding demaxbnd 4 and isgkmax -3 but it didn't seem to reduce the linearisation errors, although I only run it for a few iterations of the self-consistent loop.

    Thanks for all the help.

    Best,
    Joel

     
  • Anonymous

    Anonymous - 2018-07-20

    You could try considering Ni atoms as magnetic in a spin polarized calculation.

     

Log in to post a comment.