TDDFT with hybrid functional

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
Shimin
Posts: 9
Joined: Fri Dec 18, 2020 6:03 am

TDDFT with hybrid functional

Post by Shimin » Wed Feb 26, 2025 3:46 am

Dear developers,

I am running the TDDFT with ALDA kernel upon the PBE0 functional. I try to run the calculation in both reciprocal space with linear response method, and in transition space.

My first question is does my input generating the two method equilibrium?

For the transition space i generate the input with

Code: Select all

yambo -F tddft.in -Q -optics b -kernel alda -Ksolver d -V par
, and this give me input:

Code: Select all

#                                                                     
#                                                                     
# Y88b    /   e           e    e      888~~\    ,88~-_                
#  Y88b  /   d8b         d8b  d8b     888   |  d888   \               
#   Y88b/   /Y88b       d888bdY88b    888 _/  88888    |              
#    Y8Y   /  Y88b     / Y88Y Y888b   888  \  88888    |              
#     Y   /____Y88b   /   YY   Y888b  888   |  Y888   /               
#    /   /      Y88b /          Y888b 888__/    `88_-~                
#                                                                     
#                                                                     
# Version 5.1.0 Revision 22561 Hash (prev commit) 785b4fd6f           
#                     Branch is 5.2                                   
#                 MPI+HDF5_MPI_IO Build                               
#               http://www.yambo-code.org                             
#
optics                           # [R] Linear Response optical properties
bss                              # [R] BSE solver
bse                              # [R][BSE] Bethe Salpeter Equation.
tddft                            # [R][K] Use TDDFT kernel
FFTGvecs= 30           Ry
NLogCPUs=0                       # [PARALLEL] Live-timing CPU`s (0 for all)
PAR_def_mode= "balanced"         # [PARALLEL] Default distribution mode ("balanced"/"memory"/"workload"/"KQmemory")
BS_CPU= ""                       # [PARALLEL] CPUs for each role
BS_ROLEs= ""                     # [PARALLEL] CPUs roles (k,eh,t)
BS_nCPU_LinAlg_INV=-1            # [PARALLEL] CPUs for Linear Algebra (if -1 it is automatically set)
BS_nCPU_LinAlg_DIAGO=-1          # [PARALLEL] CPUs for Linear Algebra (if -1 it is automatically set)
DIP_CPU= ""                      # [PARALLEL] CPUs for each role
DIP_ROLEs= ""                    # [PARALLEL] CPUs roles (k,c,v)
BSKmod= "ALDA"                   # [BSE] IP/Hartree/HF/ALDA/SEX/BSfxc
BSEmod= "resonant"               # [BSE] resonant/retarded/coupling
BSSmod= "d"                      # [BSS] (h)aydock/(d)iagonalization/(s)lepc/(i)nversion/(t)ddft`
BSENGexx= 30          Ry    # [BSK] Exchange components
BSENGBlk=5                Ry    # [BSK] Screened interaction block size [if -1 uses all the G-vectors of W(q,G,Gp)]
#WehCpl                        # [BSK] eh interaction included also in coupling
% BSEQptR
 1 | 1 |                             # [BSK] Transferred momenta range
%
% BSEBands
    1200 | 1280 |                       # [BSK] Bands range
%
% BEnRange
  0.00000 | 6.00000 |         eV    # [BSS] Energy range
%
% BDmRange
 0.020000 | 0.0200000 |         eV    # [BSS] Damping range
%
BEnSteps= 6000                    # [BSS] Energy steps
% BLongDir
 1.000000 | 0.000000 | 0.000000 |        # [BSS] [cc] Electric Field
%
BSEprop= "abs"                   # [BSS] Can be any among abs/jdos/kerr/magn/dich/photolum/esrt
BSEdips= "none"                  # [BSS] Can be "trace/none" or "xy/xz/yz" to define off-diagonal rotation plane
WRbsWF                        # [BSS] Write to disk excitonic the WFs

For the reciprocal space method i generate the input with

Code: Select all

$YAMDIR/yambo -F tddft.in -Q -o c -k alda d -V par
, and this give me:

Code: Select all

#                                                                     
# :   :::   :::     ::::    ::::  :::::::::   ::::::::                
# :+:   :+: :+: :+:   +:+:+: :+:+:+ :+:    :+: :+:    :+              
#  +:+ +:+ +:+   +:+  +:+ +:+:+ +:+ +:+    +:+ +:+    +:+             
#   +#++: +#++:++#++: +#+  +:+  +#+ +#++:++#+  +#+    +:+             
#    +#+  +#+     +#+ +#+       +#+ +#+    +#+ +#+    +#+             
#    #+#  #+#     #+# #+#       #+# #+#    #+# #+#    #+#             
#    ###  ###     ### ###       ### #########   ########              
#                                                                     
#                                                                     
# Version 5.1.0 Revision 22561 Hash (prev commit) 785b4fd6f           
#                      Branch is 5.2                                  
#                  MPI+HDF5_MPI_IO Build                              
#                http://www.yambo-code.org                            
#
optics                           # [R] Linear Response optical properties
chi                              # [R][CHI] Dyson equation for Chi.
tddft                            # [R][K] Use TDDFT kernel
NLogCPUs=0                       # [PARALLEL] Live-timing CPU`s (0 for all)
PAR_def_mode= "balanced"         # [PARALLEL] Default distribution mode ("balanced"/"memory"/"workload"/"KQmemory")
X_CPU= ""                        # [PARALLEL] CPUs for each role
X_ROLEs= ""                      # [PARALLEL] CPUs roles (q,g,k,c,v)
X_nCPU_LinAlg_INV=-1             # [PARALLEL] CPUs for Linear Algebra (if -1 it is automatically set)
Chimod= "ALDA"                   # [X] IP/Hartree/ALDA/LRC/PF/BSfxc
FFTGvecs= 30 Ry
FxcGRLc= 7                 Ry    # [TDDFT] XC-kernel RL size
NGsBlkXd= 5                Ry    # [Xd] Response block size
% QpntsRXd
 1 | 1 |                             # [Xd] Transferred momenta
%
% BndsRnXd
    1 | 3000 |                       # [Xd] Polarization function bands
%
% EnRngeXd
  0.00000 | 5.00000 |         eV    # [Xd] Energy range
%
% DmRngeXd
 0.0200000 | 0.0200000 |         eV    # [Xd] Damping range
%
ETStpsXd= 5000                    # [Xd] Total Energy steps
% LongDrXd
 1.000000 | 0.000000 | 0.000000 |        # [Xd] [cc] Electric Field
%
~                     
I notice that the reciprocal space is way more expensive than the transition space calculation, especially in memory cost. Is this normal?

My second question is that does the LADA kernel have the hybrid functional correction? I know it use the wave function from hybrid function, but does it have the hybrid kernel?

Best,
Shimin
Shimin Zhang
PhD student in Material Science& Engineering
University of Wisconsin, Madison

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

Re: TDDFT with hybrid functional

Post by Daniele Varsano » Wed Feb 26, 2025 7:29 am

Dear Shimin,

The first input files seem correct.
In the transition space you have variables as BSENGBlk that are not used and probably appear because of previously genereated input.
I notice that the reciprocal space is way more expensive than the transition space calculation, especially in memory cost. Is this normal?
In general, in transition space is faster, but if you need many bands you can face problems in diagonalizing huge matrixes.

Please note anyway that your inputs are not equivalents, in e-h space you are including 80 bands while in G space 3000. Also, the G vectors in the Hartree part are different and so on...
My second question is that does the LADA kernel have the hybrid functional correction?
If you refer to ALDA, the answer is no, it is the Adiabatic Local Density Approximation.

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/

Shimin
Posts: 9
Joined: Fri Dec 18, 2020 6:03 am

Re: TDDFT with hybrid functional

Post by Shimin » Wed Feb 26, 2025 9:53 pm

Dear Daniele,

Thank you for the response. But i am still confused about the relationship between these two approaches.

The BndsRnXd is defined in the Linear response (IP/RPA-NLF) in Yambo cheatsheet https://wiki.yambo-code.eu/wiki/images/ ... et-5.0.pdf , and it is used for constructing the dielectric matrix . This parameter is not appear in the TDDFT equation in the cheatsheet
AAA.png
.

My first question regarding BndsRnXd is that: where does it enter the TDDFT equation? Is it the c,v summation in chi_0 ?

On the other hand, BSEBands is defined in the BSE Hamiltonian. From what i understand, I shouldn't set it to be the same as BndsRnXd because they are completely different thing. The BndsRnXd should include bands from 1 to certain amount of unoccupied band, while BSEBands only need to include unoccupied and occupied band around the band gap. Is that correct?

The third question is that, i am trying to write the TDDFT equation solved in transition space: Is there any reference for the RPA or TDDFT solved in BSE formalism ?
BBB.png

Best,
Shimin
You do not have the required permissions to view the files attached to this post.
Shimin Zhang
PhD student in Material Science& Engineering
University of Wisconsin, Madison

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

Re: TDDFT with hybrid functional

Post by Daniele Varsano » Thu Feb 27, 2025 3:56 pm

Dear Shimin,

1) BndsRnXd controls the number of bands entering in the Xo construction (nm) in Eq.1 of the Yambo paper: Sangalli et al. J. Phys.: Condens. Matter 31 325902 2019.

2)
On the other hand, BSEBands is defined in the BSE Hamiltonian. From what i understand, I shouldn't set it to be the same as BndsRnXd because they are completely different thing. The BndsRnXd should include bands from 1 to certain amount of unoccupied band, while BSEBands only need to include unoccupied and occupied band around the band gap. Is that correct?
Yes, It is a change in the basis set. If you are interested in the low energy spectrum, you can include bands across the gap until convergence.

3)
The third question is that, i am trying to write the TDDFT equation solved in transition space: Is there any reference for the RPA or TDDFT solved in BSE formalism ?
This is implemented in Yambo. For RPA you need to consider only the exchange part in the BSE matrix, TDDFT will include also the ALDA kernel projected on (cv,c'v') space, and it is calculated in real space. The ALDA kernel is defined e.g. here:
https://wiki.yambo-code.eu/wiki/index.p ... rd_kernel).
If you want, this is the Casida formalism of the TDDFT.

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