Exactly reproduce VASP parameters and total energy

Dear Atomate team,

We’ve been using the Atomate built-in workflow for static calculations: “wf_static”. This workflow uses the “MPStaticSet”, which we thought implements parameters used in the Materials Project. However, for certain cases (mp-1226292 for example) the generated VASP inputs differ from that reported in the Materials Project for parameters like the MAGMOM, KPOINTS, etc. Consequently, the resulting total energy from the scf calculation differs significantly from the Materials Project value, and the results are not directly comparable. It makes it hard for us to compute quantities like formation energy and energy above the hull. Is there a different workflow or VASP input set that uses exactly the same parameters as the Materials Project?

Hi @txie. Could you share what you are getting for mp-1226292, specifically with regards to the different INCAR and KPOINTS settings as well as energy? Sharing a minimal example of your Atomate script could also help.

In short, MPStaticSet is what is used on the Materials Project. Keep in mind that some settings have changed over time, but mp-1226292 is fairly recent, and even so, I would not expect subtle changes to alter your energy in a substantial way.

With regards to MAGMOM, if you are passing in the structure without any magnetic moments attached (e.g. you read in mp-1226292 from a CIF), MPStaticSet will initialize the magnetic moments based on the VASPIncarBase.yaml file in pymatgen.io.vasp.sets. This is different than what you see in the INCAR for the static calculation of mp-1226292 because the structure on the Materials Project is carrying over the converged magnetic moments from the prior relaxation job. It is possible to converge to a different magnetic state if different guesses for the magnetic moments are used, although this is not always the case. If you fetched mp-1226292 using the MPRester API, then it should be a Pymatgen Structure object with magnetic moment properties on each site, and Atomate will take this into account when setting the initial magnetic moments.

With regards to KPOINTS, the MPStaticSet currently uses a reciprocal density of 100, as determined using pymatgen.io.vasp.Kpoints.automatic_density_by_vol. The precise k-point density (and scheme for generating the k-points) has changed over the years, but seeing as the material you cited was calculated in 2020, I don’t think this should be different. Indeed, I get a grid of 5x5x5 “manually” using Pymatgen, which matches the reported values in the KPOINTS file on the Materials Project.

A final thing to note is that the Materials Project reports both a “corrected” and “uncorrected” (raw) energy for each material. If you are just comparing the VASP-computed energy, do confirm that you are not looking at the corrected energy on the Materials Project.

Hopefully with some additional input, we can track down the source of the differences.