Large corrections in duplicate data from MPRester.get_entries

Hey there,

There’s an odd issue I’ve found when querying data using the get_entries method of the MPRester (mp_api==0.42.2).

with MPRester() as mpr:
      entry = mpr.get_entries("mp-43")
print(entry)
[mp-43-GGA ComputedStructureEntry - U30          (U)
Energy (Uncorrected)     = -336.0522 eV (-11.2017 eV/atom)
Correction               = 0.0000    eV (0.0000   eV/atom)
Energy (Final)           = -336.0522 eV (-11.2017 eV/atom)
Energy Adjustments:
  None
Parameters:
  potcar_spec            = [{'titel': 'PAW_PBE U 06Sep2000', 'hash': '72702eabbb1bc02b4167590dc848ed5d'}]
  is_hubbard             = False
  hubbards               = {}
  run_type               = GGA
Data:
  oxide_type             = None
  aspherical             = True
  last_updated           = 2020-05-02 14:57:37.235000
  task_id                = mp-1399252
  material_id            = mp-43
  oxidation_states       = {}
  run_type               = GGA, mp-43-GGA ComputedStructureEntry - U30          (U)
Energy (Uncorrected)     = -336.0522 eV (-11.2017 eV/atom)
Correction               = -2059.5188 eV (-68.6506 eV/atom)
Energy (Final)           = -2395.5710 eV (-79.8524 eV/atom)
Energy Adjustments:
  MP GGA(+U)/R2SCAN mixing adjustment: -2059.5188 eV (-68.6506 eV/atom)
Parameters:
  potcar_spec            = [{'titel': 'PAW_PBE U 06Sep2000', 'hash': '72702eabbb1bc02b4167590dc848ed5d'}]
  is_hubbard             = False
  hubbards               = {}
  run_type               = GGA
Data:
  oxide_type             = None
  aspherical             = True
  last_updated           = 2020-05-02 14:57:37.235000
  task_id                = mp-1399252
  material_id            = mp-43
  oxidation_states       = {}
  run_type               = GGA]

There are two entries in the list, one of which has a very large correction that seems erroneous. This happens with a number of actinides/lanthanides. Not sure what might be causing the issue, and I’m able to fix it in my client-side processing, but thought others might benefit from knowing.

Hi @Joseph_Montoya, the large correction is from shifting the PBE/+U energies onto the r2SCAN hull. In this case, the correction is a shift in the PBE energy defined so that the polymorph predicted to have the lowest energy with r2SCAN has the same total energy using PBE.

Because absolute total pseudopotential energies have no meaning on their own, large shifts like this are possible when you swap functionals (the zero-level of the total energy doesn’t actually correspond to the vacuum, and is different for PBE and r2SCAN).

As to why you get both the uncorrected entry and the corrected entry from get_entries, that might be a quirk of the API - @tschaume might have a better idea.

1 Like

Ah! I see the difference now, thank you!