LetzElPhC

Post here any question you encounter when running the scripts of the yambo-py suite. Post here problem strictly to the python interface as problem coming from the yambo runs should go in the appropriate subforum.

Moderators: palful, amolina, mbonacci

Post Reply
rishabhsrsw7
Posts: 23
Joined: Thu Sep 15, 2022 6:17 am

LetzElPhC

Post by rishabhsrsw7 » Thu Jun 25, 2026 6:30 am

Greetings forum,

I am trying to generate the elph_gkkp_* elements using LetzElPhC and yambopy, following the tutorial https://wiki.yambo-code.eu/wiki/index.p ... minescence. Dvscf calculations generate a ph_save and _ph0 folders. ph_save has one "dvscf1" file, which from my lelphc.log, I see that LetzElPhC uses to generate the gkkp elements.

My issue is: in ph_save only dvscf1 is generated, so the LetzElPhC calculation stops after the first q point, however, in _ph0 I see dvscf files at every q point, should I be copying those files into ph_save and renaming them dvscf1, 2, 3... etc?

Regards
Rishabh Saraswat
PhD student
Indian Institute of Information Technology-Allahabad
India
Institute: http://www.iiita.ac.in/

batman
Posts: 21
Joined: Sun Jun 20, 2021 2:04 pm

Re: LetzElPhC

Post by batman » Thu Jun 25, 2026 1:21 pm

Dear Rishabh,

Can you try the following?

first delete the existing ph_save

Go to the directory where you performed your phonon calculations and run the following command

Code: Select all

lelphc -pp -F PH.X_input_file
PH.X_input_file is the input file of ph.x

You should see ph_save directory and check if all dvscf and dyn* are present.

Now perform your electron phonon calculation using the following command

Code: Select all

mpirun -n 2 lelphc -F lelphc.in
lelphc.in is the letzelphc input file

Code: Select all

nkpool          = 1
# Number of MPI pools for k-point parallelization
nqpool          = 1
# Number of MPI pools for q-point parallelization
start_bnd       = 1
# First band to include in the calculation
end_bnd         = 40
# Last band to include in the calculation
save_dir        = SAVE
# Path to the Yambo SAVE directory
ph_save_dir     = ph_save
# Path to the phonon save directory generated by the preprocessor
convention      = yambo # !!!!! ALways set this to yambo  when generate yambo gkkp databases !!!!!
Please go to the following link for more details (https://yambo-code.github.io/LetzElPhC/ ... age/usage/)

once you have the ndb.elph file, you can use yambopy to generate the databases

Code: Select all

from yambopy import LetzElphElectronPhononDB,ConvertElectronPhononDB

print(":: Load el-ph database ::")
lelph_obj = LetzElphElectronPhononDB('ndb.elph',div_by_energies=False)

print(":: Convert el-ph data to yambo format ::")
l2y       = ConvertElectronPhononDB(lelph_obj,'lelphc','SAVE','SAVE')
and check your save folder.

Let me know if it worked. if not please paste the warnings/errors and a sample input file to if we reproduce this behaviour.

Best Regards,
Murali
Muralidhar Nalabothula
Doctoral student at Department of Physics and Materials Science,
Université du Luxembourg

rishabhsrsw7
Posts: 23
Joined: Thu Sep 15, 2022 6:17 am

Re: LetzElPhC

Post by rishabhsrsw7 » Thu Jun 25, 2026 2:04 pm

Dear Murali,

I generated the ph_save, it still generates only dvscf1 inside, all the dyn* files are however present.

I do get a warning when I generate the ph_save, which says
Warning : ldisp is set .false. in the ph.x calculation. Make sure dyn0 file is present with k-point compatible q-point grid.
Following this, the elph calculations stop after the first q point because no other dvscf files are present. Do I need to set ldisp to true for all the dvscf files?

Regards and Thank you
Rishabh Saraswat
PhD student
Indian Institute of Information Technology-Allahabad
India
Institute: http://www.iiita.ac.in/

batman
Posts: 21
Joined: Sun Jun 20, 2021 2:04 pm

Re: LetzElPhC

Post by batman » Thu Jun 25, 2026 2:42 pm

Dear Rishabh,

It is always suggested to set ldisp=.true. and use the automatic uniform grid (that is commensurate with the k grid used in yambo) from Quantum ESPRESSO (this is much easier than manually specifying the points and less error prone).

In any case, since you already have the phonons, I suggest copying the following files manually to ph_save:

Code: Select all

data-file-schema.xml        from prefix.save
{pseudo_file}               all pseudopotentials in prefix.save
dyn0                        # you do not have this file when ldisp=.false. so you need to create this file (see below)
dyn1, dyn2, ...             dynamical matrix of each q-point in your list
dvscf1, dvscf2, ...         dvscf matrix of each q-point in your list
patterns.{i}.xml. # in _ph0/prefix.phsave/
tensors.xml # in _ph0/prefix.phsave/ (ignore this file if not present in the directory)
You need to create the dyn0 file manually in the following format and put it in ph_save:

Code: Select all

nq1  nq2  nq3
nq_iBZ
   qx   qy   qz
   qx   qy   qz
   ...
Where:
- nq1 x nq2 x nq3 is the uniform q-grid that is commensurate with k grid used in yambo
- nq_iBZ is the number of q-points in the irreducible Brillouin zone (iBZ) that you asked ph.x to compute
- The next nq_iBZ lines are the q-points in Quantum ESPRESSO units (2pi/alat). These are the same values you specify in your QE input file, be careful with the units (they must be in 2pi/a0).
Muralidhar Nalabothula
Doctoral student at Department of Physics and Materials Science,
Université du Luxembourg

rishabhsrsw7
Posts: 23
Joined: Thu Sep 15, 2022 6:17 am

Re: LetzElPhC

Post by rishabhsrsw7 » Thu Jun 25, 2026 4:41 pm

Dear Murali,

Thanks a lot for your prompt help with this. I will do this and I believe this solves all the errors.

Regards
Rishabh Saraswat
PhD student
Indian Institute of Information Technology-Allahabad
India
Institute: http://www.iiita.ac.in/

rishabhsrsw7
Posts: 23
Joined: Thu Sep 15, 2022 6:17 am

Re: LetzElPhC

Post by rishabhsrsw7 » Thu Jun 25, 2026 6:06 pm

Hi Murali,

I did transfer all the dvscf files, and everything else. The run started fine, but when it starts to calculate the el-ph matrix elements at q=2, I got this error:
# [ Error !!!] : File : symmetries/rotate_eig_vecs.c, in function : rotate_eig_vecs at line : 71

Error msg : Unable to find the equalivalent atom for the symmetry operation. Wrong symmetry operation detected.

*************************************
All the atomic positions, celldm, and everything else is perfectly fine with scf and nscf runs. How do I solve this issue?


Regards
Rishabh Saraswat
PhD student
Indian Institute of Information Technology-Allahabad
India
Institute: http://www.iiita.ac.in/

batman
Posts: 21
Joined: Sun Jun 20, 2021 2:04 pm

Re: LetzElPhC

Post by batman » Fri Jun 26, 2026 12:13 am

This is happening because the Letz code is unable to find the equivalent atom under the symmetry operations when performing the rotation of phonon displacement vectors (as the errors says).

A very likely cause is that the atomic positions are not specified with sufficient precision. For example, if you set a coordinate to 0.3333330000 instead of the more precise 0.3333333333, QE is still able to identify the symmetry because it uses a tolerance of 1e-5. However, the Letz code uses a stricter tolerance of 1e-6, so it may fail to find the equivalent atom.

I have patched the code by relaxing the tolerance to 1e-5. Could you please clone the repository again from scratch (git clone https://github.com/yambo-code/LetzElPhC) and recompile it (make sure to simply reuse your make.inc to avoid setting it again)?

Let me know if this fixes the issue.
Muralidhar Nalabothula
Doctoral student at Department of Physics and Materials Science,
Université du Luxembourg

rishabhsrsw7
Posts: 23
Joined: Thu Sep 15, 2022 6:17 am

Re: LetzElPhC

Post by rishabhsrsw7 » Fri Jun 26, 2026 6:37 am

Dear Murali,

Thanks a lot, that worked perfectly. It created the ndb.elph database, and the gkkp files.

Regards
Rishabh Saraswat
PhD student
Indian Institute of Information Technology-Allahabad
India
Institute: http://www.iiita.ac.in/

Post Reply