Response function calculation of d/dk wave function with empty states

Dear all,

In the case of Response function calculation of d/dk wave function (rfelfd = 2 and iscf = -3)
the residm might never converge (oscillate between two large values) if empty states are used in the calculations.

In the case where nband is set to the number of electrons, then there are no problem.

If confirmed, would it be possible to add that information to the input variables DFPT - abinit ?

Note: Guillaume Brunin gave me the solution to set nband to occupied states and has experienced similar issues with empty states.

Note2: without specifying the number of bands explicitly, Abinit chose to take occupied states+1 for my system (a gaped semiconductor).

Best wishes,
Samuel

Hello Samuel,
Thank you for your comment.
On my side I’m also using E-field/ddk pertrubation with metallic occopt (though always the Fermi one, i.e. occopt 3) and I never really experienced what you report (magnetic insulator cases with DFT+U). If you choose an insulating occopt then you should set the number of band to the number of occupied bands because Abinit will indeed add one empty band by default. If you use metallic occopt then much more bands will be added but whatever the number of extra bands should not affect the calculation since you are simulating an insulator (unless you use a smearing tsmear too big w.r.t. band gap of the system).
And if simulating a metallic crystal (no band gap), E-field perturbation is not physically relevant to me…
Best wishes,
Eric

Hello Eric,

Thanks for your answer.
Can you (or somebody else) add that information to the rfelfd input variable (i.e. to use occopt 3 or to set nband to the number of band if using fixed occupation) ?

Alternatively, the default of abinit of adding one band could be changed when using rfelfd ?

Thanks !
Best wishes,
Samuel

Yes, this is something we can certainly do, it is actually mentioned in the tuto but mention it in the doc is a good idea (it is to use metallic occopt, not only 3, sorry for the misunderstanding, it was only in my examples but other metallic occopt work too).
In the previous version if one set the number of band to more than the occupied ones then the code would stop by mentioning it if one is using insulating occopt. Sounds like it has been suppressed but this can indeed be confusing… TO DO!

Eric