# Convert PSP8 pseudopotential files to UPF format

Is there a way to convert psp8 pseudopotential files (used for abinit) to UPF format (used for Quantum ESPRESSO)? I noticed there is the upfconv.x utility in Quantum ESPRESSO but it does not support psp8 files.

• +1 and welcome to our new community! Thank you so much for contributing your question here and we hope to see much more of you in the future !!! Jul 29, 2021 at 20:29
• Related, though not a duplicate: mattermodeling.stackexchange.com/questions/1369/…. Camps' and wcw's answers suggest general interconversion tools for pseudopotentials are uncommon, but there are tools to generate a new file semi-manually using the information from another format.
– Tyberius
Jul 29, 2021 at 21:35
• @fgoudra was the suggestion by Tyberius to do it semi-manually helpful? If you do it that way, please write an answer here so that it can be helpful for future users of the site! Aug 2, 2021 at 5:41
• @NikeDattani so far I didn't have any luck with the suggestion however it seemed to be very helpful. If I find an answer I'll post it Aug 8, 2021 at 2:00
• In case it's useful: pseudo-dojo has its files in both formats (and some others). pseudo-dojo.org Oct 9, 2021 at 22:39

You can take a look here about how to generate UPF pseudos using the software ld1.x that is part of QuantumEspresso.

In principle, you will need an input file with the information about the atom you want to generate the pseudopotential. Here is an example of an input file (infile) to generate the UPF pseudopotential for Si:

&input
title = 'all-electron Si'
zed = 14.0 ! or equivalently atom = 'Si'
iswitch = 3 ! 1 for all electron, 2 for PP test, 3 for PP generation
dft = 'lda'
prefix = 'si'
config = '[Ne] 3s2 3p2' ! neutral atom
rmax = 20 ! (bohr) the extent of the most delocalized orbital
! take logarithmic derivative at Rcut=2.20 over the energy
! range -2.0 to 1.0 with dE=0.01
rlderiv = 2.20, eminld = -2.0, emaxld = 1.0, deld = 0.01

&inputp
pseudotype = 1 ! old-format norm-conserving
lloc = 1 ! angular momentum of the local channel ?
file_pseudopw = 'Si.UPF'
tm = .true. ! Troullier-Martins
author = 'me!'
/
2
3S 1 0 2.00 0.00 2.20 2.20
! S=1 l occ. energy Rcut Rcut_us
3P 2 1 2.00 0.00 2.20 2.20
! P=2 l occ. eigen. Rcut Rcut_us


Then, run: ld1.x < infile > outfile

For the outfile, you can use the name you want, but I recommend to use something informative, like Si_LDA.UPF.

In this link you can get the tutorial Construction of norm-conserving semi-local pseudopotentials for Si with all the details and information.