Using atomate’s default workflows, some of my calculation fizzle due to missing POTCAR files.
packages/pymatgen/io/vasp/inputs.py\", line 1887, in from_symbol_and_functional\n raise IOError(\nOSError: You do not have the right POTCAR with functional PBE and label W_pv in your VASP_PSP_DIR\n"
According to the VASP docs, this file was deprecated a while back in VASP 5.4 due to large error in lattice constants.
You can consult the API documentation for DictSet in pymatgen, this is ultimately where all the relevant settings live, and atomate provides various means to control this (usually via user_input_settings or vasp_input_set or vasp_input_set_overrides etc.)
Thanks @mkhorton for the quick reply. What confuses me a little is that I can’t be the first to encounter these errors. And since I’m getting them for what feels like at least a dozen different elements, it seems like a laborious process of trial and error to run many calculations and discover over time for which elements I need to specify newer/deprecated/existing POTCARs by hand. I thought there would be either a setting that uses latest POTCARs automatically or maybe a place on GitHub where someone compiled such an up-to-date list. So far though my search came up empty.
Regarding the error with W_pv specifically, this is because this pseudopotential was removed in the newer pseudopotential sets (for the reasons you mentioned), but it is still present in the default pseudopotential set we use, which we continue to use strictly for legacy/compatibility reasons. If you use one of our newer sets instead (e.g. the SCAN set), this is resolved.
So, essentially, the only time this issue presents itself is if one is using the default input set but choosing to use a non-default pseudopotential set, in which case it is also possible to specify a non-default choice of pseudopotential for W specifically as well.
Forgot to ask during the MP workshop. The reason my workflows were still failing with
You do not have the right POTCAR with functional PBE and label W_pv in your VASP_PSP_DIR"
is because powerups run after the initial MPRelaxSet input file creation. So the task still crashes because it can’t find the deprecated POTCAR in the first place.
What’s the recommended way of handling this? Just create a dummy POTCAR for W_pv? Or rename the W_sv POTCAR to W_pv?
I chime in here probably late, but it might be useful for future users.
The way I just solved this is to have installed also the old pseudo set which contain the W_pv.
In this way the write_input function work fine and the powerups can run after replacing the potcar with a custom one.