pymatgen.core.molecular_orbitals module

class MolecularOrbitals(formula)[source]

Bases: object

Represents the character of bands in a solid. The input is a chemical formula, since no structural characteristics are taken into account.

The band character of a crystal emerges from the atomic orbitals of the constituant ions, hybridization/covalent bonds, and the spin-orbit interaction (ex: Fe2O3). Right now the orbitals are only built from the uncharged atomic species. Functionality can be improved by: 1) calculate charged ion orbital energies 2) incorportate the coordination enviornment to account for covalant bonds

The atomic orbital energies are stored in pymatgen.core.periodic_table.JSON

>>> MOs = MolecularOrbitals('SrTiO3')
>>> MOs.band_edges
{'HOMO':['O','2p',-0.338381], 'LUMO':['Ti','3d',-0.17001], 'metal':False}
Parameters:
  • chemical formula as a string (A) –
  • Ex – ‘SrTiO3’
composition

the composition as a dictionary. Ex: {‘Sr’: 1, ‘Ti’: 1, ‘O’, 3}

elements

the dictionary keys for the composition

elec_neg

the maximum pairwise electronegetivity difference

aos

the consituant atomic orbitals for each element as a dictionary

band_edges

dictionary containing the highest occupied molecular orbital (HOMO), lowest unocupied molecular orbital (LUMO), and whether the material is predicted to be a metal

aos_as_list()[source]

Returns a list of atomic orbitals, sorted from lowest to highest energy

max_electronegativity()[source]

returns the maximum pairwise electronegativity difference

obtain_band_edges()[source]

Fill up the atomic orbitals with available electrons. Return HOMO, LUMO, and whether it’s a metal.