I am trying to reproduce the formation energies of some oxides but I can’t seem to, any help as to a mistake I might be making would be greatly appreciated! For instance, for CoO2, I am taking mvc-14149 which is on the hull and has a corrected energy/atom of -80.9849/12 = -6.749 eV, and I am taking Co and O to be -7.108 and -4.948 eV/atom respectively.
-6.749 + 7.108/3 + 2*4.948/3 = -1.081 eV/atom, not -1.17, as it is listed.
I found the same problem for NiO2 and FeO2, in that case, this calculation led to discrepancies of -0.1 eV/atom, as opposed to +0.1 eV/atom, as in the Co case. I was able to reproduce the formation energies for CrO2/MnO2/VO2 if that helps.
Sorry for the late reply. I think that this is a problem with some of the derived properties on the legacy website that is fixed on the new site (https://next-gen.materialsproject.org/). If you check out mp-1400906 you should see that it has a formation energy of -1.081 eV/atom – same as your calculation!
Note that this is a problem only with the formation energy box on the legacy site – not the calculation itself. If you download the entries through the Materials Project API or build the Co-O phase diagram (even on the legacy site), you should see the correct formation energy of -1.081 eV/atom.
Hope this helps!
Hello @mattmcdermott, thank you for the reply. How would you suggest getting formation energies from the API?
Since if I execute the following code:
from pymatgen.ext.matproj import MPRester
mpr = MPRester('$API_KEY')
form_ene = mpr.get_entry_by_material_id('mvc-14149', property_data=['formation_energy_per_atom']).data['formation_energy_per_atom']
The output is
Tested using pymatgen versions 2022.0.17 and 2022.4.19.
Then, using mp_api
from mp_api import MPRester
mpr = MPRester('$NEXTGEN_API_KEY')
doc = mpr.thermo.get_data_by_id("mp-1400906", )
Leads to printing