Finding energy above hull for unstable (unprocessed) Pourbaix entries

I’m trying to find the energy above the Pourbaix hull for an unstable compound. I ran
entries = mpr.get_pourbaix_entries(["Mo","S"])
and got a list of PourbaixEntry objects that includes my target compound mp-2815. Then I ran
pbx = PourbaixDiagram(entries)
and got a list of MultiEntry objects that does not include my target compound mp-2815 (it’s an unprocessed entry). To try to find the energy above hull at a particular pH and V I’m subtracting :
pbx.get_hull_energy(7,-0.5) - entry.normalized_energy_at_conditions(7,-0.5)
(where entry is specifically the mp-2815 PourbaixEntry).
The quantity that I get is not the same as the value that I see on the MP website when I construct a Pourbaix diagram for mp-2815, it’s off by a factor of 2ish. Which functions do I need to use to get the correct energy above Pourbaix hull? Thanks!

Welcome @lpeterson!

If you haven’t seen it already, I would recommend this notebook for a tutorial on how to use the class.

One caveat that is not immediately obvious is that I believe the MP website currently uses filter_solids=True to reduce the time needed to compute the phase diagram, whereas the default in pymatgen is filter_solids=False (this may no longer be necessary given recent improvements to the Pourbaix functionality, e.g. see this paper). This can make a significant difference in the plot seen on the website vs making the plot interactively.

Using the plotter to show entry stability as shown in the notebook might be a good way to get the info you need.

Best,

Matt