Chemical Potential Sources from Phase Diagram



I have calculated chemical potentials for a 3 component phase diagram using pymatgen. However, I do not fully understand how chemical potential is calculated. Are temperature corrections taken into account (especially for gas phase)? Is there an attribute I can use to see which structure is being used to calculate the chemical potential?

Please see my code attached and a snippet of the output below.
Sample Code

from pymatgen.core.composition import Composition
from pymatgen.core.periodic_table import Element
from pymatgen.ext.matproj import MPRester
from pymatgen.analysis.phase_diagram import PhaseDiagram

#Add your API key here
api_key = None

#Get data for 3 component system
with MPRester(api_key) as m:
	entries = m.get_entries_in_chemsys(['Fe', 'Ti', 'O'])

#Generate phase diagram
pd = PhaseDiagram(entries)

#Generate reaction pathways
element_profile = pd.get_element_profile(element=Element('O'), comp=Composition('FeTiO3'))

#Print relevant data
for i, evolution_step in enumerate(element_profile):
	print('Reaction: {}'.format(evolution_step['reaction']))
	print('Chemical Potential: {}'.format(evolution_step['chempot']))
	print('Reaction object fields: {}'.format(evolution_step['reaction'].__dict__.keys()))
	print('Components of chemical reaction data:')
	for comp in evolution_step['reaction']._all_comp:

Snippet of Output
Reaction: TiFeO3 + 0.25 O2 -> TiO2 + 0.5 Fe2O3
Chemical Potential: -4.93552791875
Reaction object fields: dict_keys([’_input_reactants’, ‘_input_products’, ‘_all_comp’, ‘_els’, ‘_coeffs’])
Components of chemical reaction data:
{‘allow_negative’: False, ‘_natoms’: 5.0, ‘_data’: {Element Fe: 1.0, Element Ti: 1.0, Element O: 3.0}}
{‘allow_negative’: False, ‘_natoms’: 12.0, ‘_data’: {Element Ti: 4.0, Element O: 8.0}}
{‘allow_negative’: False, ‘_natoms’: 40.0, ‘_data’: {Element Fe: 16.0, Element O: 24.0}}
{‘allow_negative’: False, ‘_natoms’: 1.0, ‘_data’: {Element O: 1.0}}

Any help would be greatly appreciated.


I’ll need to double check this, but I believe the chemical potentials printed here are the energy per atom that would be assigned to the O2 species (treated as an independent variable in context with the other entry energies as determined from our simulations). Thus, there isn’t a corresponding structure per se.

If you want a more explicit reference, you can use the energy per atom of the most stable oxygen energy in the MP database (mp-12957, -4.9355 eV/atom). Because of MP’s correction scheme, this value roughly corresponds to a reference chemical potential of O2 gas at STP. You could then estimate the change in chemical potential as a function of T and P using some model (e. g. an equation of state).


Ah, I see. Thank you for the help!