SMACT - Semiconducting Materials by Analogy and Chemical Theory¶
SMACT is a computational framework for rapid screening of materials compositions based on chemical analogy and electronegativity principles. In Crystalyse, SMACT serves as the primary composition validation tool in rigorous mode.
Overview¶
SMACT screens millions of possible chemical compositions to identify those most likely to be chemically reasonable and synthesisable. This screening dramatically reduces the search space before expensive structure prediction and energy calculations.
Key Principle: Materials with similar chemical properties (oxidation states, electronegativity differences) to known stable compounds are more likely to be synthesisable.
Integration in Crystalyse¶
Availability by Mode¶
- Creative Mode: ❌ Not included (for speed)
- Rigorous Mode: ✅ Full validation pipeline
MCP Server Integration¶
SMACT is integrated through the Chemistry Unified Server (chemistry-unified-server) which provides the complete validation pipeline for rigorous analysis.
Core Functionality¶
Composition Screening¶
SMACT validates compositions based on:
- Oxidation State Analysis: Checks if the proposed oxidation states are chemically reasonable
- Electronegativity Ratios: Validates whether the electronegativity differences support the proposed bonding
- Chemical Analogy: Compares to known stable compounds with similar chemistries
- Charge Balance: Ensures overall electrical neutrality
Available Tools¶
SMACTScreener¶
Advanced screening functions for high-throughput materials discovery.
from crystalyse.tools.smact import SMACTScreener
# Validate a single composition
result = SMACTScreener.validate_composition(
composition="CsSnI3",
use_pauling_test=True,
include_alloys=True
)
Output: CompositionValidityResult object containing validity status and metadata.
SMACTValidator¶
Core validation logic without heavy dependencies.
from crystalyse.tools.smact import SMACTValidator
# Analyze stability
stability = SMACTValidator.analyze_stability(
composition="CsSnI3",
check_electronegativity=True
)
Output: StabilityResult object with stability prediction and bonding character.
SMACTDopantPredictor¶
Predicts n-type and p-type dopants for materials.
from crystalyse.tools.smact import SMACTDopantPredictor
# Predict dopants
dopants = SMACTDopantPredictor.predict_dopants(
species=["Cs+", "Sn2+", "I-"],
composition="CsSnI3",
num_dopants=5
)
Output: DopantPredictionResult with n-type and p-type suggestions.
SMACTCalculator¶
Calculates properties like band gap estimates.
from crystalyse.tools.smact import SMACTCalculator
# Predict band gap
gap = SMACTCalculator.predict_band_gap("CsSnI3")
Output: BandGapResult with estimated band gap and confidence.
Screening Methodology¶
Oxidation State Rules¶
SMACT applies systematic rules for oxidation state assignments:
# Example: CsSnI3 validation
Cs: +1 (Group 1, typical oxidation state)
Sn: +2 (Group 14, common oxidation state)
I: -1 (Group 17, typical halide state)
Charge balance: 1 + 2 + 3(-1) = 0 ✓
Electronegativity Analysis¶
Validates bonding based on Pauling electronegativity differences:
# Electronegativity values (Pauling scale)
Cs: 0.79
Sn: 1.96
I: 2.66
# Bond analysis
Cs-I: |0.79 - 2.66| = 1.87 (ionic character expected) ✓
Sn-I: |1.96 - 2.66| = 0.70 (polar covalent) ✓
Chemical Analogy Database¶
SMACT references a database of known stable compounds to assess feasibility:
- Perovskites: ABX₃ structures with known stable examples
- Binary Compounds: Simple AX, AX₂ compositions
- Ternary Systems: ABC, AB₂C, ABC₂ compositions
- Complex Compositions: Multi-component materials
Practical Usage¶
In Crystalyse Workflows¶
Rigorous Mode Analysis¶
SMACT Workflow: 1. Generate candidate perovskite compositions (ABX₃) 2. Screen each composition for chemical feasibility 3. Rank valid compositions by confidence score 4. Pass validated compositions to Chemeleon for structure prediction
Session-Based Research¶
crystalyse chat -m rigorous -s perovskite_study
🔬 You: What makes CsSnI3 chemically feasible as a perovskite?
🤖 CrystaLyse: [SMACT validation runs automatically]
Based on SMACT analysis:
- Cs⁺ (ionic radius: 1.67 Å) fits well in A-site
- Sn²⁺ (ionic radius: 1.02 Å) suitable for B-site
- I⁻ (ionic radius: 2.20 Å) forms stable halide framework
- Electronegativity differences support ionic bonding
- Chemical analogy to CsPbI₃ (known stable perovskite)
Typical Results¶
Valid Composition Example¶
Composition: "CsSnI3"
SMACT Result: {
"valid": True,
"confidence": 0.87,
"oxidation_states": {"Cs": 1, "Sn": 2, "I": -1},
"electronegativity_check": "PASS",
"known_analogues": ["CsPbI3", "CsGeI3"],
"notes": "Strong analogy to known perovskites"
}
Invalid Composition Example¶
Composition: "CsF4O3"
SMACT Result: {
"valid": False,
"confidence": 0.12,
"rejection_reason": "Charge imbalance",
"attempted_states": {"Cs": 1, "F": -1, "O": -2},
"charge_sum": -6,
"suggestions": ["CsF", "Cs2O"]
}
Limitations and Considerations¶
Scope Limitations¶
- Kinetic Barriers: SMACT only considers thermodynamic feasibility, not synthesis kinetics
- Metastable Phases: May miss metastable materials that are synthetically accessible
- Novel Chemistries: Conservative approach may reject genuinely novel but stable compositions
- Complex Structures: Primarily designed for simple ionic/covalent materials
Best Practices¶
- Use as Pre-Filter: SMACT is most effective as an initial screening step
- Validate Results: Always follow SMACT screening with structure prediction and energy calculations
- Consider Context: Materials requirements may justify exploring SMACT-rejected compositions
- Iterative Refinement: Use SMACT suggestions to refine composition search
Performance Characteristics¶
Screening Performance:
├── Single Composition: <1 second
├── Small Set (5-10): 1-3 seconds
├── Medium Set (50-100): 10-30 seconds
└── Large Set (1000+): 2-5 minutes
Memory Usage:
├── Database Loading: ~100 MB
├── Per Composition: ~1 KB
└── Large Screening: ~500 MB maximum
Integration with Other Tools¶
Workflow Position¶
graph LR
A[Query] --> B[SMACT Screening]
B --> C[Valid Compositions]
C --> D[Chemeleon CSP]
D --> E[MACE Energy]
E --> F[Results]
B --> G[Invalid Compositions]
G --> H[Suggestions]
H --> B Data Flow¶
- Input: List of target compositions from materials query
- SMACT Processing: Chemical feasibility validation
- Output: Filtered list of chemically reasonable compositions
- Handoff: Valid compositions sent to Chemeleon for structure prediction
Error Handling¶
SMACT provides graceful degradation:
# If SMACT validation fails
if smact_error:
log_warning("SMACT validation failed, proceeding without pre-filtering")
# Continue with all compositions
proceed_to_structure_prediction(all_compositions)
else:
# Use SMACT-validated compositions
proceed_to_structure_prediction(valid_compositions)
Advanced Features¶
Custom Screening Rules¶
SMACT can be configured with custom screening parameters:
# Stricter screening for experimental work
strict_rules = {
"max_electronegativity_diff": 2.0,
"require_known_analogues": True,
"min_confidence": 0.7
}
# Exploratory screening for novel materials
exploratory_rules = {
"max_electronegativity_diff": 3.5,
"require_known_analogues": False,
"min_confidence": 0.3
}
Composition Generation¶
SMACT can also generate new compositions based on structural templates:
# Generate perovskite compositions
perovskites = smact_generate_perovskites(
a_site_elements=["Cs", "Rb", "K"],
b_site_elements=["Sn", "Pb", "Ge"],
x_site_elements=["I", "Br", "Cl"]
)
Research Applications¶
Materials Discovery Pipelines¶
SMACT is particularly valuable for:
- High-throughput screening: Reducing computational cost by pre-filtering
- Novel composition discovery: Finding chemically reasonable but unexplored materials
- Substitution studies: Systematically exploring element substitutions
- Materials optimisation: Refining compositions for specific properties
Success Stories¶
Research areas where SMACT has proven particularly effective:
- Photovoltaic perovskites: Screening lead-free alternatives
- Battery materials: Identifying new cathode and electrolyte compositions
- Thermoelectric materials: Exploring complex multi-component systems
- Magnetic materials: Validating rare-earth based compositions
Future Developments¶
SMACT continues to evolve with new features planned:
- Machine learning integration: ML-enhanced feasibility prediction
- Kinetic considerations: Incorporation of synthesis accessibility metrics
- Database expansion: Addition of more complex structure types
- Property prediction: Direct property prediction from composition
Citation¶
If you use SMACT through Crystalyse, please cite the original SMACT publications:
@article{park2024mapping,
title = {Mapping inorganic crystal chemical space},
author = {H. Park and others},
journal = {Faraday Discussions},
year = {2024}
}
@article{davies2019smact,
title = {SMACT: Semiconducting Materials by Analogy and Chemical Theory},
author = {D. W. Davies and others},
journal = {Journal of Open Source Software},
volume = {4},
number = {38},
pages = {1361},
year = {2019}
}
@article{davies2018materials,
title = {Materials discovery by chemical analogy: role of oxidation states in structure prediction},
author = {D. W. Davies and others},
journal = {Faraday Discussions},
volume = {211},
pages = {553},
year = {2018}
}
@article{davies2016computational,
title = {Computational screening of all stoichiometric inorganic materials},
author = {D. W. Davies and others},
journal = {Chem},
volume = {1},
pages = {617},
year = {2016}
}
@article{pamplin1964systematic,
title = {A systematic method of deriving new semiconducting compounds by structural analogy},
author = {B. R. Pamplin},
journal = {Journal of Physics and Chemistry of Solids},
volume = {25},
pages = {675},
year = {1964}
}
Summary¶
SMACT provides the essential first step in rigorous materials validation, ensuring that computational resources are focused on chemically reasonable compositions. Its integration in Crystalyse's rigorous mode provides the foundation for reliable, scientifically grounded materials design workflows.
Key Benefits: - Rapid composition screening (seconds to minutes) - Chemical feasibility validation - Reduction of computational waste - Integration with structure prediction pipeline - Research-grade reliability
For detailed usage examples and advanced features, see the CLI Usage Guide and Rigorous Mode Documentation.