Page 1 of 1

Difference between bse.F and bse_driver.F

Posted: Mon Sep 29, 2025 6:56 pm
by ashwin_r

I am interested in writing out BSE eigenvectors within a certain range of indices, rather than from 1 to NBSEEIG, so that I can focus on a few excitons of interest without having to write out a lot of large and unnecessary CHG.x files. It appears, in principle, that this can be accomplished by simply fixing the loop indices in the bse files such that instead of going from 1,NBSEEIG one can loop over a desired range.

Am I right in thinking that these changes would need to be made *both* in bse_driver.F and bse.F? The two files appear to share a lot of similarities but, apparently, aren't redundant (since both are being compiled and linked in .objects). Or is only one of these files actually responsible for writing out the fatband and exciton wavefunction files?


Re: Difference between bse.F and bse_driver.F

Posted: Tue Sep 30, 2025 11:19 am
by pedro_melo

Dear ashwin_r,

Both bse.F and bse_driver.F are modules for BSE-level calculations. Essentially they employ different parallelisation scheemes, with bse_driver.F being the most recent and better distributed module. The older module bse.F was kept to maintain backwards compatibility, and is only invoked when you set IBSE=0 in the INCAR.

So if you are using any other BSE solver (IBSE=1,2,3) you can implement your changes in bse_driver.F. Please have a look at the wiki page on IBSE and check which is best suited for your calculation. Though I suspect you will want to work with IBSE=2.

Kind regards,
Pedro


Re: Difference between bse.F and bse_driver.F

Posted: Tue Sep 30, 2025 6:27 pm
by ashwin_r

Thanks, Pedro!