Page 1 of 1
LetzElPhC
Posted: Thu Jun 25, 2026 6:30 am
by rishabhsrsw7
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
Re: LetzElPhC
Posted: Thu Jun 25, 2026 1:21 pm
by batman
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
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
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
Re: LetzElPhC
Posted: Thu Jun 25, 2026 2:04 pm
by rishabhsrsw7
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
Re: LetzElPhC
Posted: Thu Jun 25, 2026 2:42 pm
by batman
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).
Re: LetzElPhC
Posted: Thu Jun 25, 2026 4:41 pm
by rishabhsrsw7
Dear Murali,
Thanks a lot for your prompt help with this. I will do this and I believe this solves all the errors.
Regards
Re: LetzElPhC
Posted: Thu Jun 25, 2026 6:06 pm
by rishabhsrsw7
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
Re: LetzElPhC
Posted: Fri Jun 26, 2026 12:13 am
by batman
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.
Re: LetzElPhC
Posted: Fri Jun 26, 2026 6:37 am
by rishabhsrsw7
Dear Murali,
Thanks a lot, that worked perfectly. It created the ndb.elph database, and the gkkp files.
Regards