polarizability for 2D material

Deals with issues related to computation of optical spectra in reciprocal space: RPA, TDDFT, local field effects.

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

Post Reply
muhammadhasan
Posts: 45
Joined: Tue Aug 27, 2024 4:42 am

polarizability for 2D material

Post by muhammadhasan » Mon Apr 14, 2025 8:05 pm

Hi Professor,

I’m calculating the polarizability for 2D material (graphene) using Yambo. The input file I have used:

Code: Select all

optics                           # [R] Linear Response optical properties
chi                              # [R][CHI] Dyson equation for Chi.
dipoles                          # [R] Oscillator strenghts (or dipoles)
RandQpts=1000000                       # [RIM] Number of random q-points in the BZ
RandGvec= 100                RL    # [RIM] Coulomb interaction RS components
% Em1Anys
 0.000000 | 0.000000 | 0.000000 |        # [RIM] X Y Z Static Inverse dielectric matrix Anysotropy
%
IDEm1Ref=0                       # [RIM] Dielectric matrix reference component 1(x)/2(y)/3(z)
CUTGeo= "slab Z"                   # [CUT] Coulomb Cutoff geometry: box/cylinder/sphere/ws/slab X/Y/Z/XY..
% CUTBox
 0.000000 | 0.000000 | 0.000000 |        # [CUT] [au] Box sides
%
CUTRadius= 0.000000              # [CUT] [au] Sphere/Cylinder radius
CUTCylLen= 0.000000              # [CUT] [au] Cylinder length
CUTwsGvec= 0.700000              # [CUT] WS cutoff: number of G to be modified
Chimod= "IP"                     # [X] IP/Hartree/ALDA/LRC/PF/BSfxc
% QpntsRXd
    1 |  729 |                       # [Xd] Transferred momenta
%
% BndsRnXd
   1 |  90 |                         # [Xd] Polarization function bands
%
% EnRngeXd
  0.00100 | 1.00000 |         eV    # [Xd] Energy range
%
% DmRngeXd
 0.100000 | 0.100000 |         eV    # [Xd] Damping range
%
ETStpsXd= 200                    # [Xd] Total Energy steps
% LongDrXd
 1.000000 | 0.000000 | 0.000000 |        # [Xd] [cc] Electric Field
%
RPA.PNG
When using IP-RPA, does Yambo output the value of χ⁰(q, ω) (alpha-as follows), as shown in Equation 3?

Code: Select all

#    E[1] [eV]          Im(alpha)          Re(alpha)
#
        0.100000E-2        0.067819           27.33958
        0.006020           0.408439           27.33825
        0.011040           0.749750           27.33496
        0.016060           1.092316           27.32956
        0.021080           1.436667           27.32179
        0.026101           1.783295           27.31136
        0.031121           2.132639           27.29785
And when using Hartree-RPA with LFE, does Yambo output the χ(q, ω), as shown in Equation 3?

Thank you

Best Regards
Md J Hasan
PhD Student, Mechanical Engineering
University of Maine
You do not have the required permissions to view the files attached to this post.

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

Re: polarizability for 2D material

Post by Daniele Varsano » Tue Apr 15, 2025 7:45 am

Dear Hasan,

yes, Yambo print the polarizability which is proportional to X. Alpha=-X/(q^2*4pi)*Lc where Lc is the supercell dimension orthogonal to the plane of the 2D system.
To include the local fields you need to activate the Hartree kernel:

Code: Select all

yambo -r -o c -k hartree 
and set the NGsBlkXd variable until convergence, this will set the dimension of the kernel in G space.

Please note that, the intraband contribution in the limit of q->0 is not included.

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/

muhammadhasan
Posts: 45
Joined: Tue Aug 27, 2024 4:42 am

Re: polarizability for 2D material

Post by muhammadhasan » Tue Apr 15, 2025 8:53 pm

Hi Professor,

Thank you so much for your reply.

1) The expression you mentioned, Alpha=-X/(q^2*4pi)*Lc, where Lc is in the denominator right, professor? Otherwise the unit of alpha is (length)^3, considering the X is unitless.

I also checked the source in yambo/src/pol_function/X_OUTPUT.F and found the following related section:

Code: Select all

   ! Alpha
   if (X_do_obs("alpha")) then 
     if (l_alpha_prop_to_chi_full) then
       ! Alpha proportional to Lfull
       Alpha(:,2)=-spectra(:,2)
       ! Maybe we could extend Alpha ??
       if ( .not.(trim(X%ordering)=='T'.or.trim(X%ordering)=='R') ) &
       & call warning(" Res (or ares) only alpha")
     else
       ! Alpha proportional to Lbar
       Alpha(:,2)=-spectra(:,2)/(spectra(:,2)+1._SP)
     endif
     !
     ! As for the IP definition, I change bare_qpg into Q_plus_G_sq_modulus
     ! To check
     !  (i) if this is correct
     !  (ii) why it is done for alpha and not for Epsilon_ii
     fac=bare_qpg(iq,i_G_shift)**2/Q_plus_G_sq_modulus
     Alpha(:,2)=Alpha(:,2)*fac/4._SP/pi
   endif
From this, if fac= 1/|q|^2, then Alpha = -X/(q^2*4pi)
But I might miss the factor involving Lc, Would you please clarify where Lc is factored in?

2) For pristine graphene, I couldn't find the Drude plasmon frequency directly. As I understand, the empirical intraband contribution can be added via the DrudeWXd parameter:

Code: Select all

DrudeWXd= ( 0.000000 , 0.000000 )  eV    # [Xd] Drude plasmon
You described here nicely viewtopic.php?p=14908#p14908 how we can find the frequency.
Other than that, when performing the RPA calculation in Quantum ESPRESSO using epsilon.x, I see the following output:

Code: Select all

     Performing eps calculation...

     xx,yy,zz plasmon frequences [eV] are:     0.950193077    1.006887266    0.003730124
But I am not sure which one of these can be used as the Drude frequency input in yambo DrudeWXd = ( X.XXXXX , 0.000000 ) eV.

Thank you

Best Regards
Md J Hasan
PhD Student, Mechanical Engineering
University of Maine

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

Re: polarizability for 2D material

Post by Daniele Varsano » Wed Apr 16, 2025 9:49 am

Dear Hasan,

1) What is unitless is X/q^2, so alpha has the unit of length.
In X_OUTPUT you have:
Alpha=Alpha*eps_2_alpha

eps_2_alpha is defined in ./src/setup/check_periodic_directions.F and set according to the system dimension.

2) I do not know what epsilon.x prints, so I cannot help on that.
If you are dealing with pristine graphene (not doped), you should not need a Drude plasmon.

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/

muhammadhasan
Posts: 45
Joined: Tue Aug 27, 2024 4:42 am

Re: polarizability for 2D material

Post by muhammadhasan » Thu Apr 17, 2025 4:50 am

Hi Professor,

Thank you so much for your explanation.

Best
Md J Hasan
PhD student, Mechanical Engineering
University of Maine

muhammadhasan
Posts: 45
Joined: Tue Aug 27, 2024 4:42 am

Re: polarizability for 2D material

Post by muhammadhasan » Thu Apr 24, 2025 2:49 am

Hi Professor,

Would you please let me know what would be the relation between alpha and X^0 if it is 3D bulk system instead of 2D?
Is it something like, Alpha ((a.u)^3)=-X/(q^2*4pi)*super_cell_volume?
Yambo print the polarizability which is proportional to X. Alpha=-X/(q^2*4pi)*Lc where Lc is the supercell dimension orthogonal to the plane of the 2D system.
Thank you

Best
Md J Hasan
PhD student, Mechanical Engineering
University of Maine

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

Re: polarizability for 2D material

Post by Daniele Varsano » Thu Apr 24, 2025 9:37 am

Dear Hasan,

in the case of a 3D system, alpha is not calculated, you can rely on the dielectric constant or the response function of the system which are the relevant physical quantities.

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