POTCAR setup issues

Hi all,

I’m currently working on setting up atomate2, and part of this installation requires configuring VASP pseudopotentials with pymatgen. I’ve previously used these pseudopotentials with my own scripts and atomate, but with atomate2 I believe I’m having issues detecting the correct functional type.

I’ve been given unzipped POTCARs, matching this format

- <EXTRACTED_VASP_POTCAR>
|- potpaw_PBE
||- Ac_s
|||-POTCAR
|||-...

I use pymatgen’s command line utility to generate the following structure

- <MY_PSP>
|- POT_GGA_PAW_PBE
||- POTCAR.Ac_s.gz
||- POTCAR.Ac.gz
||- POTCAR.Ag.gz
...
|- POT_GGA_PAW_PW91
...

This path is then added to my .pmgrc.yaml file. atomate runs fine, but following this example with atomate2 I receive the following error:

OSError: You do not have the right POTCAR with functional PBE_54 and label Si in your VASP_PSP_DIR

I’m unsure why atomate2 is looking for the PBE_54 functional, it’s not specified in my .pmgrc.yaml file. I don’t know if this an issue specifically with atomate2, or a general POTCAR setup issue. Any help is greatly appreciated.

Thanks for your time!

1 Like

I did some more digging and discovered the problem. I thought I’d share it here for reference.

The issue is with atomate2, not pymatgen. I was using PBE_52 POTCARs, but atomate2 uses PBE_54 by default for relaxations (shown here)

I was setting the default functional with pymatgen

pmg config --add PMG_DEFAULT_FUNCTIONAL PBE_52

However, I needed to make the change in atomate2, not pymatgen

from atomate2.vasp.powerups import update_user_potcar_functional
relax_job = [[some atomate2 job]]
relax_job = update_user_potcar_functional(relax_job, potcar_functional='PBE_52')
1 Like