How are all the different energies in the PourbaixDiagram class defined?

I’m trying to construct a different type of phase diagrams which requires that I know the bulk formation energy in an aqueous environment. As such, I would want the Pourbaix formation energy (normalized per atom). I constructed the PourbaixDiagram object and found that there are a few quantities relating to formation energy.

There is the ‘pourbaix_diagram.get_decomposition_energy’ method which gets the energy above the Pourbaix hull.

And then there is the methods ingrained in the MultiEntry objects ‘multi_entry.energy_at_conditions’ which returns energy given a pH and applied potential. These entries are obtained from the PourbaixDiagram. Are these the Pourbaix formation energy? And if so, is it per atom?

Then there is ‘entry.normalized_energy_at_conditions’ which returns the aforementioned energy but normalized by non- O/H atoms. If I wanted to interpret the Pourbaix formation energy, do I just divide the non-normalized value by number of atoms?

Furthermore, some of the entries returned by the PourbaixDiagram class as mentioned are MultiEntry objects containing mixtures of solids or ions or both. Does the Pourbaix formation energy determined with that MultiEntry correspond to both items? If I were to create a PourbaixEntry of just a single material (no MultiEntry object), would it be incorrect to interpret the energy_at_conditions as its Pourbaix formation energy?

Lastly, is Pourbaix formation energy also a function of any of the metal chemical potentials? I am asking as I want to also interpret the formation energy as a function of the metal chemical potential if possible. I know there is a parameter called comp_dict in PourbaixDiagram that controls the non-O/H composition of the diagram but I wasn’t sure if this is the same as interpreting it as metal chemical potential. If it is, how do I translate the comp_dict as a chemical potential value? I am assuming that if I do this, the entries that the PourbaixDiagram object will return to me will interpret formation energy wrt that comp_dict correct? Asking because the get_energy_at_conditions method doesn’t have a parameter to control this.

Thanks for your help!

Hi ggergrgregrgeg, thanks for your question.

I’m having some trouble understanding what you mean by “Pourbaix formation energy” - the inputs of the pourbaix diagram are intended to be the formation energies of the respective compounds and structures at standard conditions, 0 V vs. SHE, 0 pH, 25C, 1M concentration. The energy_at_conditions returns that formation energy plus all of the changes associated with changes in potential, changes in pH, and changes in concentration relative to standard conditions.

The normalized energy is calculated that way because it needs to be done that way to properly set up the Pourbaix potential, see also here. If you wanted an energy per atom, you would first multiply by the normalization factor, then divide by the total number of atoms.

The “comp_dict” is defining the ratios of the respective elements, not the chemical potential. In the MP formalism, multi-element pourbaix diagrams are pinned to a non-OH composition specified by this parameter. “conc_dict” defines the concentrations of every element-containing ion in the pourbaix diagram, although these can also be defined explicitly in each pourbaix entry. This is effectively modifying the chemical potential of the ions, but I don’t think that’s what you’re looking for. You could manually adjust the pourbaix entries’ energy by a chemical potential factor, but I don’t think there’s an automated method for that.