Optic: use of wfk_task instead of running nscf/ddk calculation

Hi all,

I was browsing through the input variables and noticed one I haven’t looked before which is the ‘wfk_task’ input variables. As I am running optic calculations at the moment, I was wondering if this variable could be used and if it would be useful to use.

In the context of optic calculations, the tutorial informs us to generate a dense kpt grid using a nscf calculation on the full BZ (using kptopt = 3 and iscf = -2). However, it seems that using the wfk=“full_wfk” and optdriver = 8 we could use this (starting from a nscf calculation on a dense grid in the IBZ) instead of doing like the tutorial and do another nscf calculation on the FBZ. Would this be doable? I think yes but would this be more efficient in terms of cpu time and memory usage?

Also would this be the same with the ddk calculation that requires the FBZ ddk matrix elements by doing rfdir = [1 1 1], rfelfd = 2, etc. Could we use the option wfk_task=“wfk_ddk” and optdriver = 8 instead? and again would this be doable and more efficient?

Thanks

Hi Felix,

indeed, it would be a bit more efficient (no need to converge the wfk on the nscf grid).

However, we are preparing even better with Nick Cox, who has a complete re-write of optic (at least the basics) using only the IBZ, and running as a new wfk task. Not merged yet, but stay tuned.

For the wfkddk, you have to be a bit prudent: I think the run mode only generates the eigenvalues (which are immediate and not SCF), and does not produce a wavefunction file, needed by the dde and phonon calculations. A thorn has been sitting in abinit’s side for a long time: the symmetry is not used to replicate the equivalent DDK 1WF files. In principle easy, in practice, not done.

1 Like

For the wfkddk, you have to be a bit prudent: I think the run mode only generates the eigenvalues (which are immediate and not SCF), and does not produce a wavefunction file, needed by the dde and phonon calculations.

Right, only the matrix elements of the velocity operation dH/dk_i are computed
from the GS WFK.

The routine produces three _EVK.nc for the different reduced directions.
These files can be then passed to optics provided the matrix elements are defined in the full BZ as optics does not support symmetries in k-space.

This is the reason why one has to use wfk=“full_wfk” at the beginning to generate a WFK file in the full BZ starting from the IBZ.