How to obtain the imaginary part of self energy?

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

Post Reply
sdwang
Posts: 299
Joined: Fri Apr 09, 2010 12:30 pm

How to obtain the imaginary part of self energy?

Post by sdwang » Wed Feb 10, 2016 4:46 am

Dear developers,
How do we get the imaginary part of the self-energy via Yambo? Or which part it is in the output file?
Thanks!

SD
S. D. Wang
IMU,HOHHOT,CHINA
E-mail: sdwang@imu.edu.cn

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

Re: How to obtain the imaginary part of self energy?

Post by Daniele Varsano » Wed Feb 10, 2016 9:02 am

Dear S.D. Wang,
in order to have a meaningful imaginary part of the self energy you need to go beyond the plasmon pole approximation, so perform a reals axis integration.
The imaginary part is then printed in the report.

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/

sdwang
Posts: 299
Joined: Fri Apr 09, 2010 12:30 pm

Re: How to obtain the imaginary part of self energy?

Post by sdwang » Mon Sep 18, 2017 3:31 am

Dear Daniele,
I am running the quasiparticle energies of phosphorene based on real-axis, but the energies are negative for some of the conduction bands, like below:
# K-point Band Eo E E-Eo DFT HF Sc|Eo Sc|E dSc/dw|Eo Z(Re) Z(Im) Width[meV] Width[fs]
#
1.000 7.00 -3.6269 0.6416 4.2684 -12.4192 -15.1460 -0.6303 6.9952 1.7358 -0.7287 -0.6777 315.7557 2.0846
1.000 8.000 -2.054 -.1002 1.954 -10.73 -13.20 1.392 4.422 1.413 -.3543 -.8552 268.4 2.453
1.000 9.000 -1.859 -.5846 1.274 -12.78 -14.83 1.413 3.317 2.539 -.2394 -.3135 -660.8 0.9961
1.000 10.00 -.1173E-1 -.4189 -.4072 -11.64 -12.78 0.4094 0.7323 -.1478 0.7364 -.3151 535.0 1.230
1.000 11.000 0.57236 1.28554 0.71317 -9.88383 -6.57657 -2.47011 -2.59409 -0.18351 0.83698 -0.08166 59.75928 11.01439
1.000 12.00 1.404 -21.90 -23.30 -11.13 -6.793 -5.610 -27.64 0.9121 3.491 -5.245 -5879. 0.1120
1.000 13.00 2.666 6.086 3.421 -11.84 -6.950 -4.551 -1.465 1.432 -.3569 0.8362 1791. 0.3676
1.000 14.00 3.512 8.033 4.521 -12.03 -6.916 -6.901 -.5949 1.758 -.7688 0.6503 2563. 0.2568
16.00000 7.00000 -3.81845 0.80407 4.62252 -12.31851 -15.07687 -0.60235 7.38088 1.73434 -0.85723 -0.65765 -59.99277 10.97152
16.00 8.000 -2.056 -.6788 1.377 -12.67 -14.75 1.390 3.457 2.432 -.2717 -.3404 -714.6 0.9211
16.00 9.000 -2.036 -.4590E-1 1.990 -10.74 -13.20 1.383 4.447 1.366 -.3336 -.8941 352.1 1.870
16.00 10.00 0.000 -.2919 -.2919 -11.69 -12.92 0.5938 0.9334 -.1657 0.7325 -.3030 603.9 1.090
16.00 11.00 0.60214 1.31629 0.71415 -9.88926 -6.55597 -2.49297 -2.61914 -0.18581 0.83555 -0.08046 57.23263
11.50064
16.00 12.00 1.663 -75.40 -77.06 -11.18 -6.713 -5.821 -81.52 1.016 -11.14 -23.97 0.7539E+5 0.8731E-2
16.00 13.00 2.935 6.284 3.349 -11.92 -6.980 -4.589 -1.589 1.394 -.2781 0.7928 1486. 0.4429
16.00 14.00 3.305 7.969 4.664 -11.91 -6.907 -6.764 -.3351 1.728 -.9444 0.6360 3328. 0.1978

The results are OK for plasmon-pole approximation. My input is:
# .-Input file : yambo.in
# | em1d # [R Xd] Dynamical Inverse Dielectric Matrix
# | HF_and_locXC # [R XX] Hartree-Fock Self-energy and Vxc
# | gw0 # [R GW] GoWo Quasiparticle energy levels
# | rim_cut # [R RIM CUT] Coulomb potential
# | X_all_q_CPU= "1 1 32 1" # [PARALLEL] CPUs for each role
# | X_all_q_ROLEs= "q k c v" # [PARALLEL] CPUs roles (q,k,c,v)
# | X_all_q_nCPU_LinAlg_INV= 32 # [PARALLEL] CPUs for Linear Algebra
# | SE_CPU= "1 1 32" # [PARALLEL] CPUs for each role
# | SE_ROLEs= "q qp b" # [PARALLEL] CPUs roles (q,qp,b)
# | RandQpts= 1000000 # [RIM] Number of random q-points in the BZ
# | RandGvec= 1 RL # [RIM] Coulomb interaction RS components
# | CUTGeo= "box y" # [CUT] Coulomb Cutoff geometry: box/cylinder/sphere X/Y/Z/XY..
# | % CUTBox
# | 0.00000 | 30.00000 | 0.00000 | # [CUT] [au] Box sides
# | %
# | CUTRadius= 0.000000 # [CUT] [au] Sphere/Cylinder radius
# | CUTCylLen= 0.000000 # [CUT] [au] Cylinder length
# | EXXRLvcs= 45 Ry # [XX] Exchange RL components
# | Chimod= "hartree" # [X] IP/Hartree/ALDA/LRC/BSfxc
# | % GbndRnge
# | 1 | 400 | # [GW] G[W] bands range
# | %
# | GDamping= 0.10000 eV # [GW] G[W] damping
# | dScStep= 0.10000 eV # [GW] Energy step to evaluate Z factors
# | % BndsRnXd
# | 1 | 400 | # [Xd] Polarization function bands
# | %
# | NGsBlkXd= 4 Ry # [Xd] Response block size
# | % DmRngeXd
# | 0.10000 | 0.10000 | eV # [Xd] Damping range
# | %
# | ETStpsXd= 200 # [Xd] Total Energy steps
# | % LongDrXd
# | 0.1000E-4 | 0.000 | 0.000 | # [Xd] [cc] Electric Field
# | %
# | GTermEn= 40.81708 eV # [GW] GW terminator energy (only for kind="BG")
# | DysSolver= "n" # [GW] Dyson Equation solver ("n","s","g")
# | ExtendOut # [GW] Print all variables in the output file
# | %QPkrange # [GW] QP generalized Kpoint/Band indices
# | 1| 1| 7| 14|
# | 16| 16| 7| 14|
And I have test the convergence of ETStpsXd and find 200 is OK for gap. I have increased the ETStpsXd to 500 but the problem is still there...

Shudong
S. D. Wang
IMU,HOHHOT,CHINA
E-mail: sdwang@imu.edu.cn

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

Re: How to obtain the imaginary part of self energy?

Post by Daniele Varsano » Mon Sep 18, 2017 8:10 am

Dear Shudong,
I cannot say what it is exactly the problem, but for sure you have non physical values for the Z-factor that is giving you the problem in the QP energies.
You can try to understand what is wrong by playing a bit with the variable:

Code: Select all

dScStep=  0.10000      eV 
and checking about the quality of the self energy derivatives by activating this variable (remove the comment #).

Code: Select all

#NewtDchk                    # [GW] Test dSc/dw convergence
Good luck,

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/

sdwang
Posts: 299
Joined: Fri Apr 09, 2010 12:30 pm

Re: How to obtain the imaginary part of self energy?

Post by sdwang » Mon Apr 09, 2018 4:47 pm

Dear all,
For the real-axis calculation, in the output file, do the 'Width[meV]' and 'Width[fs]' stand for the imaginary part of the electrons just with the different unit?
Does these 2 value obey the relation: With[fs]=h_bar/(2Width[meV])?

Thanks!

Shudong
S. D. Wang
IMU,HOHHOT,CHINA
E-mail: sdwang@imu.edu.cn

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

Re: How to obtain the imaginary part of self energy?

Post by Daniele Varsano » Mon Apr 09, 2018 6:06 pm

Dear Shudong,
For the real-axis calculation, in the output file, do the 'Width[meV]' and 'Width[fs]' stand for the imaginary part of the electrons just with the different unit?
Yes.
Does these 2 value obey the relation: With[fs]=h_bar/(2Width[meV])?
Yes, not sure about the factor 2. Im(E) is calculated in atomic units:
Width(fs)=1/Im(E)Ha2eV*H_bar_evfs
H_bar_evfs=HBAR_eVfs = 6.58211899E-1_SP ev*fs


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