Semiconducting Materials from Analogy and Chemical Theory#
View the code on Github here.
Introduction#
smact is a collection of tools and examples for “low-fi” screening of
potential semiconducting materials through the use of chemical
rules.
smact uses a combination of heuristics and models derived from data to
rapidly search large areas of chemical space. This combination of methods
allows smact to identify new materials for applications such as photovoltaics,
water splitting and thermoelectrics.
Features of smact include:
Chemical elements with associated properties
Filters for oxidation states and charge balancing
Structure prediction from chemical composition
Composition probability prediction
Property prediction from composition using pre-trained ROOST models
Install#
The package is available via pip install smact.
License and citation#
smact is distributed under an MIT license.
To cite the theory of smact please use:
To cite the code of smact please use:
Contents:
- Introduction
- Install
- License and citation
- Studies using smact
- Getting Started
- Examples
- Tutorials
- Quaternary oxide composition generation
- Reproducing results
- Filtering a search space using oxidation states
- Metal vs. Non-Metal Classification on matbench_expt_is_metal
- Using Metallicity Features + XGBoost + Threshold Tuning
- 1. Loading the full matbench_expt_is_metal dataset
- 2. Feature extraction - Intermetallic descriptors
- 3. Model + Cross-validation + Threshold tuning
- 4. Hyperparameter/Threshold search with cross-validation
- 5. Retrain best model on full training set & evaluate
- 6. SHAP feature analysis
- Testing charge-neutrality of the compositions in the GNoME database
- Crystal Structure Prediction via Ionic Substitutions
- Exploring crystal space
- Next steps
- Visualising crystal space
- Creating oxidation states lists
- smact Python package
ElementElement.AtomicWeightElement.HHI_pElement.HHI_rElement.MeltingTElement.SSEElement.SSEPaulingElement.atomic_weightElement.coord_envsElement.covalent_radiusElement.crustal_abundanceElement.dipolElement.e_affinityElement.eigElement.eig_sElement.hhi_pElement.hhi_rElement.ionpotElement.massElement.melting_tElement.mendeleevElement.nameElement.num_valenceElement.num_valence_modifiedElement.numberElement.oxidation_statesElement.oxidation_states_customElement.oxidation_states_icsd16Element.oxidation_states_icsd24Element.oxidation_states_smact14Element.oxidation_states_spElement.oxidation_states_wikiElement.pauling_enegElement.sseElement.sse_paulingElement.symbol
Speciesare_eq()element_dictionary()lattices_are_same()neutral_ratios()neutral_ratios_iter()ordered_elements()- Submodules
- smact.property_prediction module
- smact.structure_prediction module
- smact.dopant_prediction module
- smact.utils module
- smact.properties module
- smact.screening module
- smact.oxidation_states module
- smact.metallicity module
- smact.builder module
- smact.distorter module
- smact.lattice module
- smact.lattice_parameters module
- smact.data_loader module
float_or_None()lookup_element_data()lookup_element_hhis()lookup_element_magpie_data()lookup_element_oxidation_states()lookup_element_oxidation_states_custom()lookup_element_oxidation_states_icsd()lookup_element_oxidation_states_icsd24()lookup_element_oxidation_states_sp()lookup_element_oxidation_states_wiki()lookup_element_shannon_radius_data()lookup_element_shannon_radius_data_extendedML()lookup_element_sse2015_data()lookup_element_sse_data()lookup_element_sse_pauling_data()lookup_element_valence_data()
- Changelog
- v4.0.0 (2026-03-03)
- v3.2.0 (2025-07-31)
- v3.1.0 (2025-04-02)
- v3.0.2 (2025-01-13)
- v3.0.1 (2024-12-18)
- v3.0 (2024-12-02)
- v2.8 (2024-09-26)
- v2.7 (2024-08-30)
- v2.6 (2024-07-10)
- v2.5.5 (2023-12-07)
- v2.5.4 (2023-11-30)
- v2.5.3 (2023-08-23)
- v2.5.2 (2023-07-14)
- v2.5.1 (2023-05-02)
- v2.5.0 (2022-12-22)
- v2.4.2 (2022-12-14)
- v2.4.1 (2022-09-22)
- v2.4.0 (2022-09-20)
- v2.3.3.1 (2022-07-07)
- v2.3.3 (2022-07-07)
- v2.3.2 (2022-06-09)
- v2.3.1 (2021-11-04)
- v2.3 (2021-10-06)
- v2.2 (2019-11-06)
- v2.1 (2019-06-10)
- v2.0.2 (2019-03-20)
- v2.0.1 (2019-03-13)
- v1.2 (2017-01-06)
- v1.01 (2016-09-12)
- v1.0 (2016-04-29)