smact.properties module#
A collection of tools for estimating physical properties based on chemical composition.
The “electronegativity of a compound” computed with
compound_electroneg() is the rescaled geometric mean of
electronegativity used in Nethercot’s recipe for estimating the
photoelectric threshold: [1]
In other words, the computed group \(2.86(\chi_{A}\chi_{B})^{1/2}\) is the mid-gap energy. The valence band maximum/conduction band minimum positions can be estimated by subtracting/adding half of the band gap \(E_g\). This is an extension Mulliken’s electronegativity scale in which \(\chi_{A} = (I_{A} + E_{A})/2\) (where \(I\) and \(E\) are respectively the ionisation potential and electron affinity.) [2]
A collection of tools for estimating physical properties based on chemical composition.
- smact.properties.band_gap_Harrison(anion: str, cation: str, distance: float | str = 2.0) float[source]#
Estimates the band gap from elemental data.
The band gap is estimated using the principles outlined in Harrison’s 1980 work “Electronic Structure and the Properties of Solids: The Physics of the Chemical Bond”.
- Parameters:
- Returns:
Band gap in eV
- Return type:
Band_gap (float)
- smact.properties.compound_electroneg(elements: list[str | Element] | None = None, stoichs: list[int | float] | None = None, source: str = 'Mulliken') float[source]#
Estimate electronegativity of compound from elemental data.
Uses Mulliken electronegativity by default, which uses elemental ionisation potentials and electron affinities. Alternatively, can use Pauling electronegativity, re-scaled by factor 2.86 to achieve same scale as Mulliken method (Nethercot, 1974) DOI:10.1103/PhysRevLett.33.1088 .
Geometric mean is used (n-th root of product of components), e.g.:
X_Cu2S = (X_Cu * X_Cu * C_S)^(1/3)
- Parameters:
- Returns:
Estimated electronegativity (no units).
- Return type:
Electronegativity (float)
- smact.properties.eneg_mulliken(element: Element | str) float[source]#
Get Mulliken electronegativity from the IE and EA.
- Parameters:
element (smact.Element or str) – Element object or symbol
- Returns:
Mulliken electronegativity
- Return type:
mulliken (float)
- smact.properties.valence_electron_count(compound: str) float[source]#
Calculate the Valence Electron Count (VEC) for a given chemical compound.
This function parses the input compound, extracts the elements and their stoichiometries, and calculates the VEC using the valence electron data from SMACT’s Element class.
- Parameters:
compound (str) – Chemical formula of the compound (e.g., “Fe2O3”).
- Returns:
Valence Electron Count (VEC) for the compound.
- Return type:
- Raises:
ValueError – If an element in the compound is not found in the valence data.