Vxc changes when two component spinors are included

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

atowfiq
Posts: 13
Joined: Tue Jun 03, 2014 12:15 am
Location: Los Alamos National Laboratory

Vxc changes when two component spinors are included

Post by atowfiq » Sun Oct 12, 2014 3:51 pm

Dear Yambo Developers,
Yambo code is a great resource for someone like me who is interested in excited state properties. I take this opportunity to thank you all for developing such a nice code with great documentation.
From installing (with NetCDF) to running, everything went very smoothly for me ,and I am really impressed by the simplicity of this code which can perform quite complex calculations as GW and BSE. But recently I found something little disturbing about Yambo calculations which involve spin-orbit coupling.
It all started when I tried to calculate GW QP correction for a system with and without SO coupling. My ground state calculations were done using Quantum Espresso 5.0.2, with and without SO using appropriate pseudopotentials (with and without SO). The DFT band structure behaved consistently as expected from previous literature for this system. When I tried Yambo QP correction I found unsettling results comparing spin-oribt coupled with non spin-orbit coupled calculations. Naturally my initial though was it was a convergence problem, and I tried various parameter to converge my results. The Ground state energy (E_o), non local exchange and dynamical correlation (S_c) was consistent but I found the major deviation coming from local exchange (<n|DFT|n>).
To further test this, I started my calculation from scratch. I took a non relativistic pseudopotential (PP) and calculated SO vs non-SO calculation on quantum espresso just by turning “lspinorbit” and “lnoncollinear” ‘true’ and ‘false’. Since the PP is non relativistic, I essentially only generated a doubly degenerate space without any spin-obit splitting as expected. I checked the energy levels on quantum espresso side and they seem to be exactly same between SO and non-SO case except for each energy level which now has two states in SO case. I then ran Yambo for both cases and found that Yambo identifies the ground state energy level exactly as in Quantum espresso with a shift of Fermi energy for both (SO and non-SO) cases. As a quick test, I first tried xxvxc run level by ‘yambo –x’ ,and right away I found the difference. Again Yambo gives E_o, non local exchange (<n|HF|n>) and local exchange (<n|DFT|n>), and generates ndb.HF_locEX file. Everythng is same but the deviation in <n|DFT|n> is large. If I run g0w0 with plasmon pole, I found Sc is also same for two cases.
Since both ground state calculations should be exactly same (although I turned on SO coupling) under the same non-relativistic pseudo-potentials in quantum espresso, I found the deviation in Yambo is coming mainly from the local exchange matrix elements just because I doubled the wave-function space.
When I created the data-base “p2y –S –N”, it successfully recognized one case to be ‘spin-orbit =.true’ and listed all the doubly degenerate eigenvalues. So I think the data-base was created OK. Since on quantum espresso side, the energy levels are exactly same (although one case doubly degenerate), I am expecting the Vxc are also same for the two cases. But on Yambo side, I am not sure why matrix elements of Vxc coming out differently for the two cases when ground state calculations are done under exactly the same condition. Could it be a problem with segmentation level while creating the data base? Or I might still be doing something wrong? I tested both serial vs parallel but it doesn’t seem to be the source of the problem. My next step was to look inside the Yambo routine where the Vxc are calculated for SO vs nonSO cases, but I thought first I should let you know. Being experts you might be able to instantly see the problem or suggest how to proceed or may even fix it if there is one. I eagerly look forward to hear from you.
Thanks a lot.
Towfiq Ahmed
Postdoctoral Fellow
Los Alamos National Laboratory

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

Re: Vxc changes when two component spinors are included

Post by Daniele Varsano » Sun Oct 12, 2014 4:34 pm

Dear Towfiq Ahmed,
Thank you very much for reporting this. We will have a look at the problem and let you know.
Can you post your input and reports file (setup/gw etc)?
It is also possible that we will have to ask you in the future an input file to reproduce the problem, and it should be great if you could prepare an input file showing the problem for a relatively fast calculation for debug use.

Thanks,

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/

atowfiq
Posts: 13
Joined: Tue Jun 03, 2014 12:15 am
Location: Los Alamos National Laboratory

Re: Vxc changes when two component spinors are included

Post by atowfiq » Mon Oct 13, 2014 4:51 pm

Dear Daniele,

Thank you for your quick reply. Sorry I was out of office and could not give you the input file right away. Here I tried to include three files both on QE and Yambo side. File names start with SO referring to spin-orbit turned on. Remember, as a test case I only used non relativistic pseud-potential. Therefore one should only expect doubly degenerate bands without SO splitting. For yambo xxvxc (yambo -x) level calculation, I prepared a very small run case which you can find in SO-yambo.in for debugging purpose, as you recommended. The corresponding output file is in SO-r_HF_and_locXC which I could not include due the the 256 KB size restriction. But this calculation takes only few seconds.

Please let me know if you need any other input file from me.

Thanks to you and all other yambo developers for looking into this problem.

Best regards,
Last edited by atowfiq on Tue Oct 14, 2014 11:06 pm, edited 1 time in total.
Towfiq Ahmed
Postdoctoral Fellow
Los Alamos National Laboratory

User avatar
Davide Sangalli
Posts: 610
Joined: Tue May 29, 2012 4:49 pm
Location: Via Salaria Km 29.3, CP 10, 00016, Monterotondo Stazione, Italy
Contact:

Re: Vxc changes when two component spinors are included

Post by Davide Sangalli » Mon Oct 13, 2014 7:18 pm

Dear Towfiq Ahmed,
I tryed to reproduce your problem but the system is still big to be handled easely and debug the code.

It would be great if you could check for example a simple bulk structure /isolated molecule for the elements you considered and reproduce the error.
For example you culd try to do the same kind of calculations for the H2 and/or the N2 molecule, for diamond, Platinum and/or Iodine.

If you were able to reproduce the problem on such simple system (any one of those would be sufficient), then just post the pwscf and the yambo input file. We will try to understand which is the origin.

Best regards,
D.
Davide Sangalli, PhD
CNR-ISM, Division of Ultrafast Processes in Materials (FLASHit) and MaX Centre
https://sites.google.com/view/davidesangalli
http://www.max-centre.eu/

atowfiq
Posts: 13
Joined: Tue Jun 03, 2014 12:15 am
Location: Los Alamos National Laboratory

Re: Vxc changes when two component spinors are included

Post by atowfiq » Mon Oct 13, 2014 9:50 pm

Dear Davide,

Thanks a lot for your quick response. I'll try to calculate a simpler system as you suggested, and send you the input files ASAP.

Regards

Towfiq
Towfiq Ahmed
Postdoctoral Fellow
Los Alamos National Laboratory

atowfiq
Posts: 13
Joined: Tue Jun 03, 2014 12:15 am
Location: Los Alamos National Laboratory

Re: Vxc changes when two component spinors are included

Post by atowfiq » Tue Oct 14, 2014 9:45 pm

Dear Davide,

I attached a smaller case with Pt for your test. Turning on or off the lspinorbit in this file will create different <n|DFT|n> but same <n|HF|n> as we experience in our earlier case.
Please let me know if you can reproduce the similar outcome in your calculations.

Best regards,

Towfiq
You do not have the required permissions to view the files attached to this post.
Towfiq Ahmed
Postdoctoral Fellow
Los Alamos National Laboratory

User avatar
Davide Sangalli
Posts: 610
Joined: Tue May 29, 2012 4:49 pm
Location: Via Salaria Km 29.3, CP 10, 00016, Monterotondo Stazione, Italy
Contact:

Re: Vxc changes when two component spinors are included

Post by Davide Sangalli » Wed Oct 15, 2014 10:02 am

Dear Towfiq,
I've been able to reproduce the problem and find out which is the source.
We will correct it as soon as possible. Whet this will be done I'll notify you here

In the meanwhile, if you prefer not to wait for a fix, I can suggest you to work with LDA functional instead of GGA ones.
Those should not be affected by the problem.

Davide
Davide Sangalli, PhD
CNR-ISM, Division of Ultrafast Processes in Materials (FLASHit) and MaX Centre
https://sites.google.com/view/davidesangalli
http://www.max-centre.eu/

atowfiq
Posts: 13
Joined: Tue Jun 03, 2014 12:15 am
Location: Los Alamos National Laboratory

Re: Vxc changes when two component spinors are included

Post by atowfiq » Wed Oct 15, 2014 3:54 pm

Dear Davide,

I greatly appreciate your help. I'll wait for a fix, and also for the time being will go with the LDA.

Best regards,

Towfiq
Towfiq Ahmed
Postdoctoral Fellow
Los Alamos National Laboratory

User avatar
Davide Sangalli
Posts: 610
Joined: Tue May 29, 2012 4:49 pm
Location: Via Salaria Km 29.3, CP 10, 00016, Monterotondo Stazione, Italy
Contact:

Re: Vxc changes when two component spinors are included

Post by Davide Sangalli » Thu Oct 23, 2014 10:41 am

Dear Towfiq,
we have released the bug fix in the gpl-version you can downoad with svn.
http://qe-forge.org/gf/project/yambo/sc ... AccessInfo

If you were already using that one, just go where the yambo sources are and run "svn up", then recompile the code.
The new version should work properly.

D.
Davide Sangalli, PhD
CNR-ISM, Division of Ultrafast Processes in Materials (FLASHit) and MaX Centre
https://sites.google.com/view/davidesangalli
http://www.max-centre.eu/

atowfiq
Posts: 13
Joined: Tue Jun 03, 2014 12:15 am
Location: Los Alamos National Laboratory

Re: Vxc changes when two component spinors are included

Post by atowfiq » Thu Oct 23, 2014 5:43 pm

Dear Davide,

Thank you so much for your quick fix on the bug. I am really excited to check my cases with this new code. But unfortunately I did not set up an account with qe-forge earlier. I requested for an account activation which has recently been activated. But when I try to check it out, it denies my access. The link you provided says this SVN can only be accessed by project developers. Could it be the reason my access has been denied with regular account?

Do you suggest I request for such an account or will it still be possible to access the code in some other way?

Best regards,

Towfiq
Towfiq Ahmed
Postdoctoral Fellow
Los Alamos National Laboratory

Post Reply