SL-GPS: Supervised Learning - Global Pathway Selection¶
Welcome to SL-GPS, a Python framework for automated chemistry reduction in combustion simulations. This tool uses artificial neural networks trained on chemical kinetics data to predict important species, enabling dynamic reduction of complex chemical mechanisms during autoignition simulations.
Key Features¶
- Automated Data Generation: Run 0D autoignition simulations with adaptive GPS-based species selection
- Neural Network Training: Train ANNs on the generated kinetics data for species importance prediction
- Dynamic Mechanism Reduction: Adaptively reduce chemical mechanisms during simulation based on ANN predictions
- Flexible Chemistry: Support for any detailed mechanism compatible with Cantera (CTI format)
- Parallel Processing: Multi-process data generation and ensemble neural network training
What This Does¶
SL-GPS addresses a critical challenge in combustion modeling: large chemical mechanisms are computationally expensive, but simple ones can be inaccurate. This framework automatically learns which species are important at different points in a simulation:
- Phase 1: Training Data Generation - Runs multiple autoignition simulations with detailed mechanisms, using GPS to identify important species in each timestep interval
- Phase 2: ANN Training - Trains neural networks to predict important species based on thermochemical state (temperature, pressure, composition)
- Phase 3: Adaptive Reduction - Uses trained ANNs to dynamically select species during new simulations, building reduced mechanisms on-the-fly
Typical Workflow¶
┌─────────────────────────────────────────────────────────────┐
│ 1. Run main.py → Generate training data via GPS + ANNs │
│ (make_data_parallel.py creates autoignition dataset) │
├─────────────────────────────────────────────────────────────┤
│ 2. mech_train.py → Train ensemble of neural networks │
│ (selects best model from parallel training) │
├─────────────────────────────────────────────────────────────┤
│ 3. Run SL_GPS.py → Adaptive simulation with trained ANN │
│ (dynamically reduces mechanism at each timestep) │
├─────────────────────────────────────────────────────────────┤
│ 4. display_sim_data.py → Visualize results │
│ (temperature, HRR, species evolution, mechanism size) │
└─────────────────────────────────────────────────────────────┘
Why SL-GPS?¶
Traditional mechanism reduction methods (e.g., DRGEP, CSP) are slow or require manual tuning. SL-GPS provides:
- Speed: Once trained, ANN predictions are ~10x faster than GPS
- Accuracy: Learns from data-driven analysis of important reaction pathways
- Automation: No manual tuning of importance thresholds required
- Adaptability: Mechanisms reduce differently at different simulation points (e.g., pre-ignition vs. post-ignition)
Quick Start¶
🌐 Try Online (No Installation Required)¶
The frontend is fully deployed and ready to use in your browser. Click the button above or use this link.
🚀 Or Launch Locally¶
Alternatively, run it locally with the built-in Gradio GUI:
pip install -r frontend/requirements.txt
python -m frontend
This opens a browser interface where you can: - Upload a Cantera mechanism file - Configure simulation parameters - Generate training datasets with one click - Train neural networks with customizable architecture - Download trained models
Installation¶
pip install --no-cache-dir "cantera==2.6.0"
pip install "numpy==1.26.4" tensorflow mkdocs mkdocs-material networkx scikit-learn
Manual Usage (Script-Based)¶
# See docs/setup.md for detailed installation
# See docs/workflow.md for step-by-step tutorials
# See docs/code_structure.md for customization options
Publications & References¶
Primary Citation¶
If you use this work, please cite: - Mishra, R., Nelson, A., Jarrahbashi, D., "Adaptive global pathway selection using artificial neural networks: A-priori study", Combustion and Flame, 244 (2022) 112279. [DOI: 10.1016/j.combustflame.2022.112279]
Related Work¶
- Gao, X., Yang, S., Sun, W., "A global pathway selection algorithm for the reduction of detailed chemical kinetic mechanisms", Combustion and Flame, 167 (2016) 238-247. [DOI: 10.1016/j.combustflame.2016.02.007]
Contact & Community¶
For questions, discussions, feature requests, or bug reports:
- GitHub Issues: https://github.com/ctftamu/SL-GPS/issues
- Email:
- Rohit Mishra: rmishra@tamu.edu
- Aaron Nelson: aaronnelson@tamu.edu
- Discord Community: Join Channel
Dependencies¶
Developed in Python 3. Core dependencies:
| Package | Version | Purpose |
|---|---|---|
| Cantera | 2.6.0 (exact) | Chemical kinetics, mechanism handling |
| TensorFlow | 2.x | Neural network training (Keras API) |
| NumPy | 1.26.4 | Numerical computations |
| scikit-learn | latest | Data scaling (MinMaxScaler) |
| NetworkX | latest | GPS flux graph operations |
| Pandas | latest | Data I/O (CSV) |
| Joblib | latest | Parallel training |
Critical: Cantera 2.6.0 is required; newer versions have breaking API changes.
Project Structure¶
SL-GPS/
├── docs/ # Documentation (MkDocs)
├── src/slgps/ # Main package
│ ├── main.py # Entry point: data generation + training
│ ├── mech_train.py # ANN training logic
│ ├── SL_GPS.py # Adaptive simulation runner
│ ├── utils.py # Core utilities (GPS, simulation, reduction)
│ ├── make_data_parallel.py # Parallel data generation
│ ├── display_sim_data.py # Results visualization
│ └── GPS/ # GPS algorithm submodule
├── tests/ # Test files and examples
├── mkdocs.yml # Documentation configuration
└── requirements.txt # Python dependencies
Next Steps: - 📖 Read Setup & Installation for detailed installation instructions - ▶️ Check Usage Workflow for step-by-step tutorials - 🔧 See Code Structure for customization options