How important is it to store 1WF files?

Hi everyone,

I’ve been using Abinit for a couple of months only, so I’m sorry if my question sounds dumb. I’ve been asked by my supervisor to calculate the phonon dispersion for a material that has 7 atoms in the unit cell. I’m using PAW with an energy cutoff of 15 hartree, an 8x8x8 k-point grid and a 4x4x4 qpoint grid. I’ve just adapted one of the input files from the DFPT tutorials (I’m a new user in the forum so it looks like I’m not allowed to upload files, otherwise I would’ve uploaded my input file…).

Since I’m doing these calculations on a cluster where I’ve been allocated a quota of space of 100 GBs, I’m actually worried that the space won’t be enough because the first order WF file that are being produced are very heavy (around 1GB each). So, my question is: how important is it for Abinit to store these files after it has moved on from one qpoint to the next? From what I understand, the important information is all stored in the derivative database (DDB file), which is way lighter (around 2 MBs). Can I just remove the 1WF files from older datasets while Abinit is running? Is there a way to tell Abinit to not store these files once it has moved to the next dataset?

Again, I’m sorry if the question is dumb and I thank you in advance for any answer/suggestion.

Hi Luca,

for normal phonon runs there is no need to keep the 1WF files. You can avoid even printing them with prtwf 0 and prt1wf 0

However, if you want to calculate Raman intensities or electro - optic tensors etc then you need to keep all of the 1WF files, as these 3rd derivatives are calculated from the 2n+1 theorem by mixing different 1st order derivative quantities.

Remember you need to keep the 1WF files for the DDK in case you want to run DDE calculations, they are an intermediate step. However there are only 3 of them, so the damage is limited.


1 Like

Hi @mverstra ,

thanks for your answer! Unfortunately if I try to use prt1wf I get an error telling me this variable doesn’t exist :confused:


next version 9.8 then. For the moment prtwf should do the trick for all WF files

1 Like

It looks like in my version (9.4.2) using prtwf 0 just makes it so the WFK file doesn’t get printed, but the 1WF still gets printed… But thanks for the answer nevertheless, I’ll just manually remove them to save space!


I came to the same conclusions as Luca, that prt1wf is not yet implemented in ABINIT v 9.6, and that prtwf 0 does not suppress the writing out of the 1WF files in a DFPT calculation. In my case, these files range from 38 to 68 GB each, posing a serious problem for my storage quotum on the cluster I’m using.

Has anyone found a solution to this problem?

1 Like

@JBekaert I haven’t found any solution unfortunately. @mverstra do you think it would be easy for us to go and change the fortran code on our own Abinit installation to make it so the 1WF file doesn’t get printed?

1 Like

Hello Jonas and Luca,

sure: either you wait patiently for 9.8, or (if you’re like me), edit the file

in your abinit sources, and you can comment or condition the line (2109 for me) with
call wfk_write_my_kptbands(…)
and recompile

Note that if you comment it you will not even have the DDK file outputs, probably not what you want. The dtset%prtwf variable should be accessible in this routine, so
if (dtset%prtwf != 0) then
call wfk_write_my_kptbands(…)
end if

may be enough. A possibility is that your 1WF files are not fully converged, in which case abinit enforces the output, to make sure you can restart (new prtwf -1 behavior introduced at some point).


1 Like