Skip to content

Formation Energy

FormationEnergyTransformation

Generates elemental reference structures for formation energy calculations.

For each element, the experimentally-tabulated ground-state prototype (ase.data.reference_states, the same table ase.build.bulk consults) is used as the elemental reference: molecular gas-phase elements (H, N, O, F) become an isolated dimer, monatomic gas-phase elements (noble gases) become an isolated atom, and everything else with a simple Bravais-lattice ground state (FCC, BCC, HCP, diamond cubic, rhombohedral, body-centered tetragonal, simple cubic, ...) is built directly from its known symmetry and lattice parameter. In all of these cases a single candidate is returned, since the reference structure is already known rather than guessed.

A handful of elements have a ground state that requires an explicit atomic basis ase.build.bulk cannot construct from a formula alone (e.g. Mn, P, S, Ga), or have no tabulated reference state at all (mostly radioactive actinides). For these, several candidate high-symmetry lattices (FCC, BCC, HCP, diamond, simple cubic) are estimated from the element's atomic radius; the analyzer relaxes all candidates with the same MLIP and selects the lowest-energy phase as the elemental reference.

apply_transformation

apply_transformation(
    structure: Atoms | Structure,
) -> list[tuple[str, list[Structure], int]]

Apply the transformation to generate elemental reference structures.

For each element present in structure, either its known experimental ground-state structure is built directly, or (if that ground state cannot be constructed from a formula alone) several candidate high-symmetry lattices are generated from the element's empirical atomic radius. See the class docstring for details.

Parameters:

Name Type Description Default
structure Atoms | Structure

The compound structure whose composition determines which elemental references are generated.

required

Returns:

Type Description
list[tuple[str, list[Structure], int]]

list[tuple[str, list[Structure], int]]: A list of (element, candidates, n_atoms) tuples, where candidates is a list of one or more candidate pymatgen Structure references for element and n_atoms is the count of that element in the compound.