SMACT Utilities Composition Module

SMACT Utilities Composition Module#

Miscellaneous utilities for composition handling

Utility functions for handling elements, species, formulas and composition.

smact.utils.composition.comp_maker(smact_filter_output: tuple[Any, ...]) pymatgen.core.Composition[source]#

Convert an item in the output of smact.screening.smact_filer into a Pymatgen Composition.

Parameters:

smact_filter_output – An item in the list returned from smact_filter. Either (elements, oxidation_states, stoichiometries) or (elements, stoichiometries).

Returns:

An instance of the Composition class

Return type:

composition (pymatgen.core.Composition)

smact.utils.composition.composition_dict_maker(smact_filter_output: tuple[Any, ...]) dict[source]#

Convert an item in the output of smact.screening.smact_filter into a composition dictionary.

Parameters:

smact_filter_output – An item in the list returned from smact_filter.

Returns:

A composition dictionary

Return type:

composition_dict (dict[str, float])

smact.utils.composition.formula_maker(smact_filter_output: tuple[Any, ...]) str[source]#

Convert an item in the output of smact.screening.smact_filter into a chemical formula.

Parameters:

smact_filter_output – An item in the list returned from smact_filter.

Returns:

A formula

Return type:

formula (str)

smact.utils.composition.parse_formula(formula: str) dict[str, float][source]#

Parse a chemical formula into a dictionary of elements and their amounts.

Uses iterative parenthesis expansion with a depth limit to prevent RecursionError on malformed input.

Parameters:

formula (str) – Chemical formula

Returns:

Dictionary of element symbol: amount

Return type:

dict

Raises:

ValueError – If the formula contains more than _MAX_FORMULA_DEPTH levels of nested parentheses.