Assistance with GW Band Structure Issues

Concerns issues with computing quasiparticle corrections to the DFT eigenvalues - i.e., the self-energy within the GW approximation (-g n), or considering the Hartree-Fock exchange only (-x)

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

Zimmi
Posts: 14
Joined: Sat Dec 28, 2024 8:05 am

Assistance with GW Band Structure Issues

Post by Zimmi » Fri Feb 14, 2025 7:36 am

Dear Developers and Community,

I have performed several optimization calculations and, based on the final optimized parameters (NGsBlkXp= 10 Ry, GbndRnge= 300, BndsRnXp= 300, nscf_kmesh= 18*18*1 with stringent ONCVPSP), I have plotted the GW band structure. However, I have encountered two issues and would appreciate your suggestions:

1) In the DFT band structure, the valence band maximum (VBM) is located at the Γ point. However, in the GW band structure, the VBM appears at both the Γ and K points in the irreducible Brillouin zone (as arrows shown in the attached image). How can I correct this discrepancy? I have attached the relevant Yambo input files (gw2.in, ypp_bands.in) for reference.

2) The GW bands exhibit band entanglements, whereas the DFT bands display smooth lines (circle in the attached image). How can I overcome this issue? I am currently applying GW quasiparticle (QP) corrections from bands 7 to 15.
You do not have the required permissions to view the files attached to this post.
Zimmi Singh
Research Scholar
Metallurgical and Materials Engg.
IIT Kharagpur, India

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

Re: Assistance with GW Band Structure Issues

Post by Daniele Varsano » Fri Feb 14, 2025 8:16 am

Dear Zimmi,

it seems you are obtaining nearly degenerate at Gamma and K at GW level, I would say that it's necessarily wrong. At DFT level they also have similar energy.
Anyway, there is something I do not understand in your input file: why you are adding QP corrections in the response and Green functions (XfnQPdb, GfnQPdb) ? Are you doing an eigenvalue self-consistency?

Also, check also if your pseudopotentials contain non-linear core correction. In this case, to take them into account in the Vxc(\rho) you need to activate the flag UseNLCC by uncommenting it. Note that anyway the NLCC will be not taken into account in the self energy part so if it better to include or neglect them is not clear. The safest way is to use psp without NLCC as e.g. sg15 pseudopotentials.

About the wiggles in the band structure, this is most probably an effect of the interpolation. You can try to interpolate bands using yambo-py see here for a tutorial:
https://yambo-code.eu/wiki/index.php/Ya ... structures

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/

Zimmi
Posts: 14
Joined: Sat Dec 28, 2024 8:05 am

Re: Assistance with GW Band Structure Issues

Post by Zimmi » Mon Feb 17, 2025 2:01 pm

Dear prof. Daniele Varsano,
Thank you for your quick response.

Yes, I have incorporated the QP corrections in both the response and Green’s functions (XfnQPdb, GfnQPdb) and was working on eigenvalue self-consistency. The GW plots I shared earlier correspond to the G1W1 calculations. Additionally, I used the pseudojo PBE pseudopotential with stringent settings, which included non-linear core correction (/pp_NLCC), as my system consists of TMDs. The inclusion of NLCC helps improve the Exchange-Correlation treatment.

Following your recommendations, I have switched to the SP15 pseudopotential (the PP file is attached in the zip), which does not include any NLCC terms. I am also attaching the band structure plots for both G0W0 and G1W1.

In addition, I attempted to generate plots using yambopy (see the attached zip file containing the Python script). The figure yambopy.jpg shows the results obtained with yambopy. I attempted to shift both the spin-up and spin-down bands by aligning them with the top of the valence band. However, I noticed some shifts, particularly in the spin-down bands, which I couldn’t fully understand.
Kindly check the yambo.py script, as the entanglement issues seem resolved with the Python interpolations. However, due to the shifts, I am not getting the plots correctly. I would appreciate it if you could take a look at the script (included in the zip file) and suggest any necessary corrections.
You do not have the required permissions to view the files attached to this post.
Zimmi Singh
Research Scholar
Metallurgical and Materials Engg.
IIT Kharagpur, India

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

Re: Assistance with GW Band Structure Issues

Post by Daniele Varsano » Mon Feb 17, 2025 5:51 pm

Dear Zimmi,
I attempted to shift both the spin-up and spin-down bands by aligning them with the top of the valence band. However, I noticed some shifts, particularly in the spin-down bands, which I couldn’t fully understand.
Can you be more specific about the shift you are observing?+
Why are you aligning both spin up ad spin down bands? if you want to apply an alignment, e.g. setting the zero to the max valence band, this should be the same for both spin channels.

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/

Zimmi
Posts: 14
Joined: Sat Dec 28, 2024 8:05 am

Re: Assistance with GW Band Structure Issues

Post by Zimmi » Mon Feb 17, 2025 7:07 pm

Dear Prof. Daniele Varsano,
Thanks for the prompt reply.

After several attempts, I have come to the conclusion that I may be making some mistakes in modifying the yambopy code suitable for the spin-polarized system. It would be helpful if you could share a template yambopy code for a magnetic system.
Zimmi Singh
Research Scholar
Metallurgical and Materials Engg.
IIT Kharagpur, India

Zimmi
Posts: 14
Joined: Sat Dec 28, 2024 8:05 am

Re: Assistance with GW Band Structure Issues

Post by Zimmi » Wed Feb 19, 2025 2:06 pm

Dear Prof. Daniele Varsano,
Apologies for reaching out to you again.

I have modified the Yambopy code provided at this link (https://yambo-code.eu/wiki/index.php/Ya ... structures) to suit my spin-polarized system.
I have attached a zip file containing the script I used, which includes spin-up and spin-down channels. I would appreciate it if you could review my script or provide a template Yambopy code for a magnetic system.
You do not have the required permissions to view the files attached to this post.
Zimmi Singh
Research Scholar
Metallurgical and Materials Engg.
IIT Kharagpur, India

User avatar
palful
Posts: 97
Joined: Tue Jan 26, 2016 11:23 am
Location: Modena and Milan

Re: Assistance with GW Band Structure Issues

Post by palful » Thu Feb 20, 2025 12:24 pm

Dear Zimmi,

Is it possible that in your script you should set up separately the tops of the spin-up and spin-down valence bands?

In your script, you have:

Code: Select all

fermie = np.max(ydb.eigenvalues_qp[:, n_top_vb])
Maybe you can try the following:

Code: Select all

fermie_up = np.max(ydb.eigenvalues_qp[:, n_top_vb_up])
fermie_dn = np.max(ydb.eigenvalues_qp[:, n_top_vb_dn])
Let me know if it works. Otherwise, you may attach a small example including databases so that I may reproduce the plot.

Best,
Fulvio
Dr. Fulvio Paleari
S3-CNR Institute of Nanoscience and MaX Center
Modena, Italy

Zimmi
Posts: 14
Joined: Sat Dec 28, 2024 8:05 am

Re: Assistance with GW Band Structure Issues

Post by Zimmi » Thu Feb 20, 2025 4:29 pm

Dear Prof. Fulvio,
I sincerely appreciate you taking the time to look into this issue.

I have tried implementing your suggestions, and the script (new2.py) is attached in the drive link. However, the issue persists. In the drive link, you will also find the ndb.QP and ns.db1 files. Could you kindly run the script, check the issue, and suggest a solution?
I would be grateful if you could review my script or provide a template Yambopy code for a magnetic system.

Looking forward to your guidance.

https://drive.google.com/drive/folders/ ... sp=sharing
Zimmi Singh
Research Scholar
Metallurgical and Materials Engg.
IIT Kharagpur, India

Zimmi
Posts: 14
Joined: Sat Dec 28, 2024 8:05 am

Re: Assistance with GW Band Structure Issues

Post by Zimmi » Sat Feb 22, 2025 5:50 am

Dear Prof. Fulvio,
Good morning, greeting of the day!

Please have a look, sir. I am awaiting your response at your convenience.
Zimmi Singh
Research Scholar
Metallurgical and Materials Engg.
IIT Kharagpur, India

User avatar
palful
Posts: 97
Joined: Tue Jan 26, 2016 11:23 am
Location: Modena and Milan

Re: Assistance with GW Band Structure Issues

Post by palful » Tue Feb 25, 2025 12:31 pm

Dear Zimmi,

Indeed there was an issue with your script, found by Ali Esquembre, who is working on updating yambopy for spin-polarized systems. The outputs of the interpolate function are the KS eigenvalues *first* (spin up-down), and *then* the QP values (spin up-down), as you see below:

Code: Select all

# Interpolate KS and QP eigenvalues
interp_data = ydb.interpolate(lat, path, what='QP+KS', lpratio=20)
if len(interp_data) == 4:
    ks_bs_up_int, ks_bs_dn_int, qp_bs_up_int, qp_bs_dn_int = interp_data
elif len(interp_data) > 4:
    ks_bs_up_int, ks_bs_dn_int, qp_bs_up_int, qp_bs_dn_int, *_ = interp_data
else:
    raise ValueError("Unexpected return format from interpolate.")
In addition, if you want the bands to be aligned to zero as in your previous figures, you should fix 'fermie' to the seventh spin-up band:

Code: Select all

n_top_vb = 6
fermie = np.max(ydb.eigenvalues_qp[:,n_top_vb,0])
I hope this solves your issues.

Best,
Fulvio
Dr. Fulvio Paleari
S3-CNR Institute of Nanoscience and MaX Center
Modena, Italy

Post Reply