Menu

phonons with NbN

Elk Users
peterp
2015-08-19
2016-07-19
  • peterp

    peterp - 2015-08-19

    Dear Elk users,
    I’m struggling with the phonons for NbN.
    I’ve tried to change several times the values of the k and q grid but I always get errors, except for the cases k: 8 8 8; q: 4 4 4 or 2 2 2, which however yield wrong dispersion curves.
    For example, I tried k: 24 24 24; q: 12 12 12 and k: 20 20 20; q: 10 10 10
    I was now trying a k grid 24 24 24 and a q grid 8 8 8.
    Here are some examples of errors:
    Warning(linengy): could not find 9 linearisation energies in s.c. loop 7
    Warning(rhonorm): total charge density incorrect for s.c. loop 7
    Calculated : 384.4993514
    Required : 384.0000000
    Warning(occupy): minimum eigenvalue less than minimum linearisation energy : -8.154254061 -2.144600000
    for s.c. loop 6
    What should I do in order to avoid these warnings?
    Thank you in advance.

     

    Last edit: peterp 2015-08-19
  • peterp

    peterp - 2015-08-31

    Dear Elk users,
    unfortunately I'm still having troubles with task 200.
    Since I haven't managed to get any results from my previous trials and since the phonon dispersion for k-grid 8 8 8 and q-grid 4 4 4 is not satisfying (there are negative parts in the acoustic phonon dispersion curve), although the energies of the optical phonons and of the positive part of the acoustic phonons seem to be reasonable, I changed the q-grid to 8 8 8. I know that the phonon calculation are very long, but Elk has been running the whole day and has not given any more sign after this message:

    Info(phononsc): working on DYN_Q0308_0308_0000_S02_A001_P1.OUT
    Warning(linengy): could not find 1 linearisation energies in s.c. loop 11
    Warning(linengy): could not find 1 linearisation energies in s.c. loop 12

    Unfortunately, I haven't been able to conclude this and other calculations for this very reason: probably due to the fact that 6 or 8 points in the k-point mesh are just too many, Elk freezes: it keeps running but seems to have run into an infinite loop. Maybe it hasn't, but I don't know what it is doing and I'm very tempted to stop it. It is still running now.

    Have I made any mistake, have I exaggerated with the q-point mesh or should I just use another code that may be more suitable for a complex material such as NbN?

    Thank you again.

     

    Last edit: peterp 2015-08-31
  • Markus

    Markus - 2015-09-14

    Hi peterp,

    make sure you use autokpt instead of a fixed k-point mesh! Note that a q-ponit mesh of 8x8x8 means that you elk will do SCF runs for huge supercells, which have a lot of atoms! Here, you need to avoid many k-points, which however makes parallelization inefficient. With the supercell method you can run many elk instances in one directory, each of which will do individual modes/polarizations. That's the most efficient way to parallelize these calculations.

    elk computes several displacement patterns, sin and cos pattern with positve and negative displacement. So for every q-vector, atom and polarization, elk does four SCF cycles to obtain the force constants. There is no explicit output saying what pattern elk is currently doing (I've added some output in my copy to see what's going on). On those large supercells that's quite a lot of numerical work. Try to work on 4x4x4 q-points first, that's often enough.

    You can watch elk do the SCF cycles in the various INFO_Q.... files. This may give you a feeling for what elk is doing while it doesn't say anything on stdout.

    Regards
    Markus

     
  • J. K. Dewhurst

    J. K. Dewhurst - 2016-01-28

    Hi peterp and Markus,

    Please post your elk.in file and I'll run it.

    The latest version (3.3.17) has greatly improved DFPT phonons.

    The DFPT phonon code is the most complicated part of Elk, and it's constantly being improved. At the moment it seems to work fine for metals and non-polar semiconductors with LDA. To be truely useful we also need to implement

    1. the GGA exchange-correlation kernel f_xc
    2. spin-polarisation and DFT+U
    3. the Born effective charges for the LO-TO splitting
    4. the little group for reducing the k-point set

    The spin-polarised code is written but not checked and the rest is still waiting to be done.

    In the meantime, the supercell method works fine with everything except the LO-TO splitting in polar semiconductors.

    Regards,
    Kay.

     
  • peterp

    peterp - 2016-07-07

    Dear Markus and Kay,
    thank you for your reply.
    I'm not sure I understood what Markus means by "Here, you need to avoid many k-points, which however makes parallelization inefficient." (but the output doesn't seem to depend much on the k grid anyway).
    I can see that indeed DFPT gives better results and there are no more negative frequencies in the phonon dispersion curves, so I'm now going to work on this.
    Instead, when using frozen phonons, I still get bad results, even following Markus' advice (I used autokpt, so that when I run elk using a 4 4 4 qgrid the resulting kgrid is 8 8 7, see elk.in file attached) and a 6 6 6 qgrid leads to convergence problems both when using the supercell method and DFPT calculations.
    Finally, using autokpt in the DFPT task leads to an error ("k grid and q grid are incommensurate"), could you please tell me why?
    I post my geometry, spacegroup and elk.in files.

    Thank you a lot,
    Mirko

     
  • peterp

    peterp - 2016-07-17

    Dear Elk users,
    I have now tried a q grid 8 8 8 and I am achieving convergence by using a mixing rule for the densities of the Broyden type.
    However, for some reason, Elk is overwriting the same file "INFO" every time it achieves convergence: it restarts from selfconsistent loop number 1. Is this possible?

    Thank you in advance.

     
  • mfechner

    mfechner - 2016-07-18

    Dear peter,

    I assume you are using the same elk.in as posted by you above. I see from the input that you you use

    tasks
    0
    200
    210
    220

    which starts a self consistent run from scratch (0) and then do the phonons by supercell approach 200. For the latter you could run several instances of elk in the same folder to parallize the calculation, which you may do. But note, however, that in this case each elk calculation you run in the folder will also do tasks 0 and thus write always the INFO file and all others new ! So what you should do is to change your tasks list in the following way first run a single elk job

    with

    tasks
    0

    when this is finished you add either can change tasks to

    tasks
    200

    or add it at the bottom of the elk.in file since only the last appearance of a tag is used. Then run several instance of elk in the same folder and a lot of file will be created assigned to you q-point grid and once everything is finished and all instances stop with a statement "nothing more to do"

    you can change/add

    tasks
    210
    220

    and run one instance and elk will put everything together. I hope this helps, if you have more question please feel free to ask.

    best
    Michael

    PS: One more comment if you are interested just on the phonons itself there is a nice software package phonopy, which since recently exhibit support of elk! It does the same as tasks 200 but minimizes the steps for calculations of the force constant (dynamical matrix) by considering the symmetry of the crystal. This can ''speed up'' signifcantly your calcualtions since for rocksalt (two atoms unit cell) you can build by stymmetry the force constant matrix by using one displacement calculations instead of 6!

     
  • peterp

    peterp - 2016-07-18

    Dear Michael,
    thank you for your reply and advice.
    So, I have run the 0 task only once and then replaced it with 200 and am now running elk on two computers sharing the same folder. However, I don't understand why, once convergence has been achieved, and the INFO file related to the specific DYN file being produced is overwritten and the selfconsistent loop restarts:

    "Ground-state run resuming from STATE.OUT
    Potential read in from STATE.OUT

    +------------------------------+
    | Self-consistent loop started |
    +------------------------------+"

    I didn't notice this before, when I was trying a 4 4 4 q-grid, and now the task really does not seem to end.

    Here is my elk.in file:

    "tasks
    200

    ngridq
    8 8 8

    ngridk
    8 8 8

    ! use efficient Broyden mixing
    mixtype
    3

    epspot
    0.00001

    swidth
    0.005

    avec
    4.143224230 4.143224230 0.000000000
    4.143224230 -4.143224230 0.000000000
    4.143224230 0.000000000 4.143224230

    sppath
    './../elk-3.3.17/species/'

    atoms
    2 : nspecies
    'Nb.in' : spfname
    1 : natoms; atposl, bfcmt below
    0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
    'N.in' : spfname
    1 : natoms; atposl, bfcmt below
    0.50000000 0.50000000 0.00000000 0.00000000 0.00000000 0.00000000"

    Thanks again.

    P.s.: I will check out phonopy, thanks! Meanwhile I'm still running the task in elk to see if something happens

     
  • mfechner

    mfechner - 2016-07-19

    Dear Peter,

    the reason for the ''overwriting'' is that elk does two displacements to calculate the force constant entry for each atom this it calculates F(R+delta)-F(R+2delta). Consequently for each DYN entry which are labeled for each species_atom_direction 2 displacements and calculate the corresponding forces. So there is nothing to worry for you about this right now. In principle, for the NbN one can also do this calculation by Hand: means displace the atom calculate the force (tforce > .true.) and the build the force constant matrix (delta F/delta) by yourself, multiply with the mass tensor and compute the phonons. I recommend this procedure always to my students since they get a better ''feeling'' what they are doing if they calculate phonons.

    Anyway coming back to your calculation, since this was the questions. From your statement about your ressources I would recommend you first to size down your calculation thus to use first
    ngridq
    2 2 2

    or even

    ngridq
    1 1 1

    once then all files are generated for these cases have a look on the result for the latter case the gamma phonons should already be okay, whereas for the previous case also zone boundary modes should have been good. From this you then can increase q grid to see if something happens.

    best regards
    Michael

     

Log in to post a comment.