The code did not recognize the GW calculation mode.

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
Guo_BIT
Posts: 27
Joined: Tue Jun 06, 2023 2:55 am

The code did not recognize the GW calculation mode.

Post by Guo_BIT » Thu Jan 11, 2024 6:28 am

Dear developers:
I am currently learning about evGW0 and evGW based on the following website:
https://www.yambo-code.eu/wiki/index.ph ... 0_and_evGW

According to step 5, one only need to adjust the values of GWIter and GWoIter to switch the GW calculation mode from G0W0 to evGW0 and evGW. However, based on the log file, I found that the code did not recognize this modification :( . Below are my input file and log file.

Thank you in advance for your help.
You do not have the required permissions to view the files attached to this post.
Jingda Guo
Beijing Institute of Technology

Guo_BIT
Posts: 27
Joined: Tue Jun 06, 2023 2:55 am

Re: The code did not recognize the GW calculation mode.

Post by Guo_BIT » Thu Jan 11, 2024 7:19 am

Should I modify GfnQPdb and XfnQPdb like
https://www.yambo-code.eu/wiki/index.ph ... alues_only?
Jingda Guo
Beijing Institute of Technology

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

Re: The code did not recognize the GW calculation mode.

Post by Daniele Varsano » Thu Jan 11, 2024 9:54 am

Dear Jingda,
as you can see in the page you indicated, at the beginning in red, there is a link to a different tutorial.
Now it seems that the link is broken, and I'm going to fix it right now.
The tutorial to be followed is this one:
https://www.yambo-code.eu/wiki/index.ph ... alues_only

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/

Guo_BIT
Posts: 27
Joined: Tue Jun 06, 2023 2:55 am

Re: The code did not recognize the GW calculation mode.

Post by Guo_BIT » Thu Jan 11, 2024 1:45 pm

Dear Daniele,
thank you for your reply.
According to the website, I have successfully connected to the G0W0 folder.

Code: Select all

 <---> P8-n3: [dE_from_DB-Nearest K] Exact matches       :  100.0000 [o/o]
 <---> P8-n3: [04.01] FIT on E < ./G0W0/ndb.QP
 <---> P8-n3: [QP_apply] Action to be applied: E<./G0W0/ndb.QP[ PPA@E  27.21138 * XG 687 * Xb 1-250 * Scb 1-250]
 <---> P8-n3: [05.01]  QP corrections report
 <---> P8-n3: [06] External/Internal QP corrections
 <---> P8-n3: E<./G0W0/ndb.QP[ PPA@E  27.21138 * XG 687 * Xb 1-250 * Scb 1-250]
 <---> P8-n3: [WARNING] Empty workload for CPU 8
 <---> P8-n3: [dE_from_DB-Nearest K] Exact matches       :  100.0000 [o/o]
 <---> P8-n3: [06.01] FIT on E < ./G0W0/ndb.QP
 <---> P8-n3: [QP_apply] Action to be applied: E<./G0W0/ndb.QP[ PPA@E  27.21138 * XG 687 * Xb 1-250 * Scb 1-250]
However, in the subsequent output, G0W0 is still displayed instead of GW (I set GWIter = 10).

Code: Select all

 <20m-37s> P8-n3: [11.01] [b]G0W0[/b] (W PPA)
 <20m-37s> P8-n3: [PARALLEL Self_Energy for QPs on 6 CPU] Loaded/Total (Percentual):66/392(17%)
 <20m-37s> P8-n3: [PARALLEL Self_Energy for Q(ibz) on 6 CPU] Loaded/Total (Percentual):5/28(18%)
 <20m-37s> P8-n3: [PARALLEL Self_Energy for G bands on 4 CPU] Loaded/Total (Percentual):62/250(25%)
 <20m-39s> P8-n3: [MEMORY] Alloc WF%c( 490.9740 [Mb]) TOTAL:  590.5770 [Mb] (traced)  54.71600 [Mb] (memstat)
 <20m-39s> P8-n3: [PARALLEL distribution for Wave-Function states] Loaded/Total(Percentual):1802/7000(26%)
 <20m-39s> P8-n3: [FFT-GW] Mesh size:   15   15  155
 <20m-41s> P8-n3: G0W0 (W PPA) |                                        | [000%] --(E) --(X)
 <20m-53s> P8-n3: G0W0 (W PPA) |#                                       | [002%] 12s(E) 08m-05s(X)
 <21m-05s> P8-n3: G0W0 (W PPA) |##                                      | [005%] 24s(E) 08m-03s(X)
 <21m-17s> P8-n3: G0W0 (W PPA) |###                                     | [007%] 36s(E) 08m-02s(X)
 <21m-29s> P8-n3: G0W0 (W PPA) |####                                    | [010%] 48s(E) 08m-03s(X)
 
But it's just a matter of wording, isn't it?

Additionally, according to the website, the subsequent GW calculations require reading the results of the previous step. For example, G1W1 needs to read the results of G0W0, and G2W2 reads the results of G1W1.
I am currently using version 5.2, and I seted GWIter to 10, the GW calculations should be automatically performed. However, in my qp file, it seems that Yambo is not reading this parameter, and the LOG file only shows a single G0W0 calculation.

Code: Select all

# .-Input file  gw_ppa_2.in
# | HF_and_locXC                     # [R] Hartree-Fock
# | gw0                              # [R] GW approximation
# | dyson                            # [R] Dyson Equation solver
# | em1d                             # [R][X] Dynamically Screened Interaction
# | ppa                              # [R][Xp] Plasmon Pole Approximation for the Screened Interaction
# | el_el_corr                       # [R] Electron-Electron Correlation
# | BoseTemp= 0.000000         eV    # Bosonic Temperature
# | X_and_IO_CPU= "6.2.2.2.3"        # [PARALLEL] CPUs for each role
# | X_and_IO_ROLEs= "g.v.c.k.q"      # [PARALLEL] CPUs roles (q,g,k,c,v)
# | X_and_IO_nCPU_LinAlg_INV=  36    # [PARALLEL] CPUs for Linear Algebra (if -1 it is automatically set)
# | X_Threads= 2                     # [OPENMP/X] Number of threads for response functions
# | DIP_CPU= "4.6.6"                 # [PARALLEL] CPUs for each role
# | DIP_ROLEs= "v.c.k"               # [PARALLEL] CPUs roles (k,c,v)
# | DIP_Threads= 2                   # [OPENMP/X] Number of threads for dipoles
# | SE_CPU= "4.6.6"                  # [PARALLEL] CPUs for each role
# | SE_ROLEs= "b.qp.q"               # [PARALLEL] CPUs roles (q,qp,b)
# | SE_Threads= 2                    # [OPENMP/GW] Number of threads for self-energy
# | EXXRLvcs=  80              Ry    # [XX] Exchange    RL components
# | VXCRLvcs=  80              Ry    # [XC] XCpotential RL components
# | Chimod= "HARTREE"                # [X] IP/Hartree/ALDA/LRC/PF/BSfxc
# | XfnQPdb= "E < ./G0W0/ndb.QP"     # [EXTQP Xd] Database action
# | % BndsRnXp
# |    1 | 250 |                         # [Xp] Polarization function bands
# | %
# | NGsBlkXp=  8               Ry    # [Xp] Response block size
# | % LongDrXp
# |  0.707107E-5 | 0.707107E-5 |  0.00000    # [Xp] [cc] Electric Field
# | %
# | PPAPntXp= 27.21138         eV    # [Xp] PPA imaginary energy
# | GfnQPdb= "E < ./G0W0/ndb.QP"     # [EXTQP G] Database action
# | % GbndRnge
# |    1 | 250 |                         # [GW] G[W] bands range
# | %
# | GTermKind= "BG"                  # [GW] GW terminator ("none","BG" Bruneval-Gonze,"BRS" Berger-Reining-Sottile)
# | GTermEn= 40.81708          eV    # [GW] GW terminator energy (only for kind="BG")
# | DysSolver= "n"                   # [GW] Dyson Equation solver ("n","s","g","q")
# | %QPkrange                        # [GW] QP generalized Kpoint/Band indices
# | 1|28|16|29|
# | %
# | %QPerange                        # [GW] QP generalized Kpoint/Energy indices
# | 1|28| 0.000000|-1.000000|
# | %
Jingda Guo
Beijing Institute of Technology

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

Re: The code did not recognize the GW calculation mode.

Post by Daniele Varsano » Thu Jan 11, 2024 3:55 pm

Dear Jingda Guo,

as indicated in the tutorial, the evGW self-consistency is done by hand, i.e. reading databases from previous calculations.
GWiter variable is ignored, and you decide how many iterations to perform looking at the outputs and see when the qp energies are converged. Usually two or three iterations are enough to get convergence.

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