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”.
Args:#
anion (str): Element symbol of the dominant anion in the system cation (str): Element symbol of the the dominant cation in the system distance (float or str): Nuclear separation between anion and cation,
i.e. sum of ionic radii (in Angstroms). Default: 2.0.
Returns:#
Band_gap (float): Band gap in eV
- 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)
Args:#
elements (list) : Elements given as standard elemental symbols. stoichs (list) : Stoichiometries, given as integers or floats. source: String ‘Mulliken’ or ‘Pauling’; type of Electronegativity to
use. Note that in SMACT, Pauling electronegativities are rescaled to a Mulliken-like scale.
Returns:#
Electronegativity (float) : Estimated electronegativity (no units).
- smact.properties.eneg_mulliken(element: Element | str) float[source]#
Get Mulliken electronegativity from the IE and EA.
Arguments:#
element (smact.Element or str): Element object or symbol
Returns:#
mulliken (float): Mulliken electronegativity
- 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:
float
- Raises:
ValueError – If an element in the compound is not found in the valence data.