BSE on top of MetaGGA XC functional

Deals with issues related to computation of optical spectra, solving the Bethe-Salpeter equation.

Moderators: Davide Sangalli, andrea.ferretti, myrta gruning, andrea marini, Daniele Varsano

Post Reply
milesj
Posts: 36
Joined: Thu Jan 26, 2023 9:27 pm

BSE on top of MetaGGA XC functional

Post by milesj » Fri Mar 14, 2025 11:50 pm

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
Miles Johnson
California Institute of Technology
PhD candidate in Applied Physics

User avatar
Daniele Varsano
Posts: 4207
Joined: Tue Mar 17, 2009 2:23 pm
Contact:

Re: BSE on top of MetaGGA XC functional

Post by Daniele Varsano » Sun Mar 16, 2025 10:04 am

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
Dr. Daniele Varsano
S3-CNR Institute of Nanoscience and MaX Center, Italy
MaX - Materials design at the Exascale
http://www.nano.cnr.it
http://www.max-centre.eu/

milesj
Posts: 36
Joined: Thu Jan 26, 2023 9:27 pm

Re: BSE on top of MetaGGA XC functional

Post by milesj » Mon Mar 17, 2025 6:49 pm

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
Miles Johnson
California Institute of Technology
PhD candidate in Applied Physics

User avatar
Daniele Varsano
Posts: 4207
Joined: Tue Mar 17, 2009 2:23 pm
Contact:

Re: BSE on top of MetaGGA XC functional

Post by Daniele Varsano » Tue Mar 18, 2025 11:11 am

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
Dr. Daniele Varsano
S3-CNR Institute of Nanoscience and MaX Center, Italy
MaX - Materials design at the Exascale
http://www.nano.cnr.it
http://www.max-centre.eu/

Post Reply