pymatgen.analysis.interface_reactions module

This module provides class to generate and analyze interfacial reactions.

class InterfacialReactivity(c1, c2, pd, norm=True, include_no_mixing_energy=False, pd_non_grand=None, use_hull_energy=False)[source]

Bases: object

An object encompassing all relevant data for interface reactions.

  • c1 (Composition) – Composition object for reactant 1.

  • c2 (Composition) – Composition object for reactant 2.

  • pd (PhaseDiagram) – PhaseDiagram object or GrandPotentialPhaseDiagram object built from all elements in composition c1 and c2.

  • norm (bool) – Whether or not the total number of atoms in composition of reactant will be normalized to 1.

  • include_no_mixing_energy (bool) – No_mixing_energy for a reactant is the opposite number of its energy above grand potential convex hull. In cases where reactions involve elements reservoir, this param determines whether no_mixing_energy of reactants will be included in the final reaction energy calculation. By definition, if pd is not a GrandPotentialPhaseDiagram object, this param is False.

  • pd_non_grand (PhaseDiagram) – PhaseDiagram object but not GrandPotentialPhaseDiagram object built from elements in c1 and c2.

  • use_hull_energy (bool) – Whether or not use the convex hull energy for a given composition for reaction energy calculation. If false, the energy of ground state structure will be used instead. Note that in case when ground state can not be found for a composition, convex hull energy will be used associated with a warning message.

EV_TO_KJ_PER_MOL = 96.4853[source]
static get_chempot_correction(element, temp, pres)[source]

Get the normalized correction term Δμ for chemical potential of a gas phase consisting of element at given temperature and pressure, referenced to that in the standard state (T_std = 298.15 K, T_std = 1 bar). The gas phase is limited to be one of O2, N2, Cl2, F2, H2. Calculation formula can be found in the documentation of Materials Project website.

  • element (string) – The string representing the element.

  • temp (float) – The temperature of the gas phase.

  • pres (float) – The pressure of the gas phase.


The correction of chemical potential in eV/atom of the gas phase at given temperature and pressure.


Returns a list of molar mixing ratio for each kink between ORIGINAL (instead of processed) reactant compositions. This is the same list as mixing ratio obtained from get_kinks method if self.norm = False.


A list of floats representing molar mixing ratios between the original reactant compositions for each kink.


Finds all the kinks in mixing ratio where reaction products changes along the tie line of composition self.c1 and composition self.c2.


Zip object of tuples (index, mixing ratio,

reaction energy per atom in eV/atom, reaction formula, reaction energy per mol of reaction formula in kJ/mol).


Generates the opposite number of energy above grand potential convex hull for both reactants.


[(reactant1, no_mixing_energy1),(reactant2,no_mixing_energy2)].


List of formulas of potential products. E.g., [‘Li’,’O2’,’Mn’].


Returns a dictionary containing kink information: {index: ‘x= mixing_ratio energy= reaction_energy reaction_equation’}. E.g., {1: ‘x= 0.0 energy = 0.0 Mn -> Mn’,

2: ‘x= 0.5 energy = -15.0 O2 + Mn -> MnO2’, 3: ‘x= 1.0 energy = 0.0 O2 -> O2’}.


Finds the minimum reaction energy E_min and corresponding mixing ratio x_min.


Tuple (x_min, E_min).


Plots reaction energy as a function of mixing ratio x in self.c1 - self.c2 tie line using pylab.


Pylab object that plots reaction energy as a function of mixing ratio x.