Question about INCAR consistency for convex hull calculation



I would like to calculate the energy above the convex hull for a perovskite sulfide structure (BiVS3) locally on my machine, but I’m unclear which INCAR parameters should be used so that the total energies are consistent with Materials Project data. (For instance, should I use the INCAR from the optimization step to obtain the total energy, or the static step? Also, I’m not sure which values for DFT+U should be used to be consistent.)

I would like to run VASP locally on my machine, then use the get_stability method from MPRester to calculate energy above the hull.

I would greatly appreciate any guidance as to how this could be formed.

Thank you,


Hi M,

Generally, the static set is the INCAR that should be used, although in our experience the values from structure optimization and static calculations tend to be pretty close. The DFT+U values should be included in the INCAR, but they’re also included in all of pymatgen’s VASP input sets. You also will need to use the compatibility package in pymatgen.entries.compatibility to ensure the appropriate corrections are applied to your own data.


Dear Joseph,

Thank you for the kind reply.

I generated a simple cubic perovskite structure using the pymatgen.Structure class containing the V atom. I would typically use DFT+U here because of the V atom. However, I ran

run = MPStaticSet(my_perovksite)

and I don’t see any parameters of LDAU in the INCAR.

Am I missing something?

Thank you.


Can you post a minimal working example of your code? I’ve tested your code with a perovskite structure containing V (specifically mp-1099591) and I’m getting LDAU set to True.


Dear Joseph,

Thank you for your help.

Here is the code I am using:

import pymatgen as mg
from import MPStaticSet

cube = mg.Lattice.cubic(4.)

perov = mg.Structure(cube, ["Bi", "V", "S", "S", "S"], [[0.0, 0.0, 0.0],
                                                        [0.5, 0.5, 0.5],
                                                        [0.5, 0.5, 0.0],
                                                        [0.5, 0.0, 0.5],
                                                        [0.0, 0.5, 0.5]])

run = MPStaticSet(perov)



Thanks, I see the issue now. Pymatgen/MP doesn’t apply a +U correction in the case of Vanadium sulfur combinations, see mp-799.