Page 1 of 1

Requests for new features

Posted: Thu Jul 10, 2025 2:07 pm
by tomasz.w

Dear VASP Team,

Thanks again to the tutors and all of you for the wonderful workshop in Rennes. I talked to the tutors about my requests and was advised to post them here:
1) I'd appreciate solving the issue with vaspwave.h5 that I've already posted here: https://www.vasp.at/forum/viewtopic.php?p=31640
2) KPOINTS line mode: the number of k-points for every segment of k-path is identical. This leads to non-uniform sampling of path segments of different lengths. It would be useful to: provide a list of numbers (one number for each segment, like in QE), or provide a number for the shortest segment (like in Abinit), or do it via KSPACING.
3) Write NBANDS, NKPTS and ENCUT (when it's not specified in INCAR and taken from POTCAR) to vaspout.h5
3) Write WAVEDERF and BSEFATBANDS to HDF5 files
4) Add an option to manually select bands processed by LOPTICS. Currently the derivatives are evaluated for all the NBANDS bands (Bloch states) -> NBANDSxNBANDS matrix. In my projects I'm calculating the orbital angular momentum for a selected band, which is a summation involving wavefunction derivatives between this band and all other bands. Usually I need a lot of bands (>1000) to converge it, and sometimes it's unfeasible. It would be so useful if I could 'tell' VASP only to treat a few selected bands (few columns of NxN matrix).
5) Connected to 4: The number of bands in WAVEDER is not equal to NBANDS, but to NPAR. Further, the number of CPUs must be equal to NPAR. When I need a lot of bands, I happen to hit the limit of machines. I'd appreciate if LOPTICS worked with NPAR < NBANDS.

Best wishes and thanks again,
Tomasz


Re: Requests for new features

Posted: Fri Jul 11, 2025 4:10 pm
by alexey.tal

Dear Tomasz,

Glad you enjoyed the workshop! Thank you for your suggestions.

1) I'd appreciate solving the issue with vaspwave.h5 that I've already posted here: https://www.vasp.at/forum/viewtopic.php?p=31640

We are working on it. It should be fixed some time soon.

2) KPOINTS line mode: the number of k-points for every segment of k-path is identical. This leads to non-uniform sampling of path segments of different lengths. It would be useful to: provide a list of numbers (one number for each segment, like in QE), or provide a number for the shortest segment (like in Abinit), or do it via KSPACING.

This is a good suggestion. We discussed it among the developers and it sounds like providing a list of number would be the most straightforward way to do it while keeping the compatibility across different versions.

3) Write NBANDS, NKPTS and ENCUT (when it's not specified in INCAR and taken from POTCAR) to vaspout.h5

We are planning some major refactoring of the code for HDF5 output and this feature will definitively be included.

3) Write WAVEDERF and BSEFATBANDS to HDF5 files

The data from BSEFATBAND is already written in vaspout.h5. WAVEDER output into H5 files will be likely included in the next release.

4) Add an option to manually select bands processed by LOPTICS. Currently the derivatives are evaluated for all the NBANDS bands (Bloch states) -> NBANDSxNBANDS matrix. In my projects I'm calculating the orbital angular momentum for a selected band, which is a summation involving wavefunction derivatives between this band and all other bands. Usually I need a lot of bands (>1000) to converge it, and sometimes it's unfeasible. It would be so useful if I could 'tell' VASP only to treat a few selected bands (few columns of NxN matrix).

Actually, the it should be NBANDS x number of valence states. So what is a problem with the way it is done? The computation is too long? Or is it the output that seems to be the problem? The way we compute these matrix elements requires summation over all states anyway so I'm not sure how useful it would be (see Eq. (31) in M. GajdoĊĦ et al., Phys. Rev. B, 045112 (2006)).

5) Connected to 4: The number of bands in WAVEDER is not equal to NBANDS, but to NPAR. Further, the number of CPUs must be equal to NPAR. When I need a lot of bands, I happen to hit the limit of machines. I'd appreciate if LOPTICS worked with NPAR < NBANDS.

I'm not sure I understood this. NPAR can be smaller then the number of MPI processes. NBANDS needs to be divisible by the number of MPI processes. See the description on the wiki how NBANDS is rounded up depending on NCORE and KPAR.

Thanks again for the suggestions. I cannot give you a more specific timeline but we will try to incorporate these in the future versions of VASP.

Best regards,
Alexey