pymatgen.phasediagram.analyzer module¶

class
PDAnalyzer
(pd)[source]¶ Bases:
object
A class for performing analyses on Phase Diagrams.
The algorithm is based on the work in the following papers:
 S. P. Ong, L. Wang, B. Kang, and G. Ceder, LiFePO2 Phase Diagram from First Principles Calculations. Chem. Mater., 2008, 20(5), 17981807. doi:10.1021/cm702327g
 S. P. Ong, A. Jain, G. Hautier, B. Kang, G. Ceder, Thermal stabilities of delithiated olivine MPO4 (M=Fe, Mn) cathodes investigated using first principles calculations. Electrochem. Comm., 2010, 12(3), 427430. doi:10.1016/j.elecom.2010.01.010
Initializes analyzer with a PhaseDiagram.
Parameters: pd – Phase Diagram to analyze. 
get_chempot_range_map
(elements, referenced=True, joggle=True)[source]¶ Returns a chemical potential range map for each stable entry.
Parameters:  elements – Sequence of elements to be considered as independent variables. E.g., if you want to show the stability ranges of all LiCoO phases wrt to uLi and uO, you will supply [Element(“Li”), Element(“O”)]
 referenced – If True, gives the results with a reference being the energy of the elemental phase. If False, gives absolute values.
 joggle (boolean) – Whether to joggle the input to avoid precision errors.
Returns: [simplices]}. The list of simplices are the sides of the N1 dim polytope bounding the allowable chemical potential range of each entry.
Return type: Returns a dict of the form {entry

get_chempot_range_stability_phase
(target_comp, open_elt)[source]¶ returns a set of chemical potentials correspoding to the max and min chemical potential of the open element for a given composition. It is quite common to have for instance a ternary oxide (e.g., ABO3) for which you want to know what are the A and B chemical potential leading to the highest and lowest oxygen chemical potential (reducing and oxidizing conditions). This is useful for defect computations.
Parameters:  target_comp – A Composition object
 open_elt – Element that you want to constrain to be max or min
Returns: (mu_min,mu_max)}: Chemical potentials are given in “absolute” values (i.e., not referenced to 0)
Return type: {Element

get_critical_compositions
(comp1, comp2)[source]¶ Get the critical compositions along the tieline between two compositions. I.e. where the decomposition products change. The endpoints are also returned. :param comp1, comp2: compositions that define the tieline :type comp1, comp2: Composition
Returns:  list of critical compositions. All are of
 the form x * comp1 + (1x) * comp2
Return type: [(Composition)]

get_decomp_and_e_above_hull
(entry, allow_negative=False)[source]¶ Provides the decomposition and energy above convex hull for an entry. Due to caching, can be much faster if entries with the same composition are processed together.
Parameters:  entry – A PDEntry like object
 allow_negative – Whether to allow negative e_above_hulls. Used to calculate equilibrium reaction energies. Defaults to False.
Returns: (decomp, energy above convex hull) Stable entries should have energy above hull of 0. The decomposition is provided as a dict of {Entry: amount}.

get_decomposition
(comp)[source]¶ Provides the decomposition at a particular composition.
Parameters: comp – A composition Returns: amount} Return type: Decomposition as a dict of {Entry

get_e_above_hull
(entry)[source]¶ Provides the energy above convex hull for an entry
Parameters: entry – A PDEntry like object Returns: Energy above convex hull of entry. Stable entries should have energy above hull of 0.

get_element_profile
(element, comp, comp_tol=1e05)[source]¶ Provides the element evolution data for a composition. For example, can be used to analyze Li conversion voltages by varying uLi and looking at the phases formed. Also can be used to analyze O2 evolution by varying uO2.
Parameters:  element – An element. Must be in the phase diagram.
 comp – A Composition
 comp_tol – The tolerance to use when calculating decompositions. Phases with amounts less than this tolerance are excluded. Defaults to 1e5.
Returns: [ {‘chempot’: 10.487582010000001, ‘evolution’: 2.0, ‘reaction’: Reaction Object], ...]
Return type: Evolution data as a list of dictionaries of the following format

get_equilibrium_reaction_energy
(entry)[source]¶ Provides the reaction energy of a stable entry from the neighboring equilibrium stable entries (also known as the inverse distance to hull).
Parameters: entry – A PDEntry like object Returns: Equilibrium reaction energy of entry. Stable entries should have equilibrium reaction energy <= 0.

get_facet_chempots
(*args, **kwargs)¶

get_hull_energy
(comp)[source]¶ Parameters: comp (Composition) – Input composition Returns: Energy of lowest energy equilibrium at desired composition. Not normalized by atoms, i.e. E(Li4O2) = 2 * E(Li2O)

get_transition_chempots
(element)[source]¶ Get the critical chemical potentials for an element in the Phase Diagram.
Parameters: element – An element. Has to be in the PD in the first place. Returns: A sorted sequence of critical chemical potentials, from less negative to more negative.

getmu_vertices_stability_phase
(target_comp, dep_elt, tol_en=0.01)[source]¶ returns a set of chemical potentials corresponding to the vertices of the simplex in the chemical potential phase diagram. The simplex is built using all elements in the target_composition except dep_elt. The chemical potential of dep_elt is computed from the target composition energy. This method is useful to get the limiting conditions for defects computations for instance.
Parameters:  target_comp – A Composition object
 dep_elt – the element for which the chemical potential is computed from the energy of
 stable phase at the target composition (the) –
 tol_en – a tolerance on the energy to set
Returns: mu}]: An array of conditions on simplex vertices for which each element has a chemical potential set to a given value. “absolute” values (i.e., not referenced to element energies)
Return type: [{Element

numerical_tol
= 1e08¶