Page 1 of 1

BSE on top of MetaGGA XC functional

Posted: Fri Mar 14, 2025 11:50 pm
by milesj
Hi all,

I'm hoping to do a BSE calculation on top of a DFT calculation with a metaGGA functional. I realize that things like GW correction may not be implemented on top of metaGGA, but I'm wondering if BSE would still work fine on the states and energies output by the metaGGA calculation (similar to how, as has been answered previously on this forum, BSE can be done on top of DFT+U states and energies even though GW would double count certain contributions). My hope is that I might be able to compare to BSE on top of my GW-corrected PBE band structure, which seems to share certain features I think may be relevant to the excitonic structure.

So may question is two-fold:
1. Is it theoretically consistent to do BSE on top of a metaGGA DFT calculation? I'm essentially doing a normal DFT calculation (spin-polarized, PBE pseudopotentials) with the added line `input_dft="r2scan+vv10"`
2. How do I get p2y to work with the dft output? When I tried to run it failed with the output below:

Code: Select all

 __    __ ______           ____     _____
/\ \  /\ \\  _  \  /"\_/`\/\  _`\ /\  __`\
\ `\`\\/"/ \ \L\ \/\      \ \ \L\ \ \ \/\ \
 `\ `\ /" \ \  __ \ \ \__\ \ \  _ <" \ \ \ \
   `\ \ \  \ \ \/\ \ \ \_/\ \ \ \L\ \ \ \_\ \
     \ \_\  \ \_\ \_\ \_\\ \_\ \____/\ \_____\
      \/_/   \/_/\/_/\/_/ \/_/\/___/  \/_____/


 <---> DBs path set to : .
 <---> detected QE data format : qexsd-hdf5
 <---> == PWscf v.6.x generated data (QEXSD-HDF5 fmt) ==
 <---> Header/K-points/Energies... done
 <---> Cell data...
 <---> [WARNING]Two or more crystal structures fit the given cell done
 <---> Atomic data... done
 <02s> Symmetries...[SI no]...[I yes]...[-I no]...[TR yes][turbo.cluster:mpi_rank_0][error_sighandler] Caught error: Segmentation fault (signal 11)
Segmentation fault (core dumped)
Thanks in advance!

Best,
Miles

Re: BSE on top of MetaGGA XC functional

Posted: Sun Mar 16, 2025 10:04 am
by Daniele Varsano
Dear Miles,

1) metaGGA is not supported in general. You can try to do BSE on top of it without resorting to GW corrections, this is a choice.
2) Most probably you get the error because of the unsupported xc functional, and the code should be changed to accept the metagga string. If the effect of metagga wrt standard PBE is a shift of the bands energies, you can try to do a PBE calculation and apply a scissor operator on top to account for the effect of the metaGGA functional.

Best,

Daniele

Re: BSE on top of MetaGGA XC functional

Posted: Mon Mar 17, 2025 6:49 pm
by milesj
Hi Daniele,

Thank you for your response. Unfortunately it looks like both metagga and the gw correction do not have the effect of a simple band energy shift. Both seem to change the dispersion of the bands significantly, even altering the position of the valence band maxima. Qualitatively the modification is somewhat similar, which is why I think it would be useful to compare BSE on the two of them.

Which parts of the code do I need to modify? Is it really so simple as just getting it to accept the string, as it is with DFT+U, or do I also need to do work so that the BSE calculation can read the band energies and wavefunctions?

Best,
Miles

Re: BSE on top of MetaGGA XC functional

Posted: Tue Mar 18, 2025 11:11 am
by Daniele Varsano
Dear Miles,

as you get a seg fault it does not seem that it is just a barrier. You need to dig into the code and see what is causing the problem.
You can inspect starting from:

interfaces//p2y/p2y.F
interfaces//p2y/p2y_db1.F

Best,

Daniele