Page 1 of 2
Assistance with GW Band Structure Issues
Posted: Fri Feb 14, 2025 7:36 am
by Zimmi
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.
Re: Assistance with GW Band Structure Issues
Posted: Fri Feb 14, 2025 8:16 am
by Daniele Varsano
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
Re: Assistance with GW Band Structure Issues
Posted: Mon Feb 17, 2025 2:01 pm
by Zimmi
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.
Re: Assistance with GW Band Structure Issues
Posted: Mon Feb 17, 2025 5:51 pm
by Daniele Varsano
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
Re: Assistance with GW Band Structure Issues
Posted: Mon Feb 17, 2025 7:07 pm
by Zimmi
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.
Re: Assistance with GW Band Structure Issues
Posted: Wed Feb 19, 2025 2:06 pm
by Zimmi
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.
Re: Assistance with GW Band Structure Issues
Posted: Thu Feb 20, 2025 12:24 pm
by palful
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
Re: Assistance with GW Band Structure Issues
Posted: Thu Feb 20, 2025 4:29 pm
by Zimmi
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
Re: Assistance with GW Band Structure Issues
Posted: Sat Feb 22, 2025 5:50 am
by Zimmi
Dear Prof. Fulvio,
Good morning, greeting of the day!
Please have a look, sir. I am awaiting your response at your convenience.
Re: Assistance with GW Band Structure Issues
Posted: Tue Feb 25, 2025 12:31 pm
by palful
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