A practical, hands-on guide to building and running atmospheric chemistry box models using KPP (Kinetic PreProcessor) and BOXMOX. This repository is designed to take you from zero to fully working simulations, with clear examples and organized chapters.
✅ Introduction to box models
✅ How KPP generates chemistry solvers
✅ How BOXMOX uses those solvers in simulations
✅ Step-by-step tutorials with increasing complexity
✅ Realistic chemical schemes and multi-scenario examples
You’ll find:
- Basic KPP mechanism setup
- Writing
.eqnfiles from scratch - KPP compilation and solver generation
- Linking KPP outputs with BOXMOX
- Running simulations with different reaction schemes
- Visualizing and analyzing results
boxmodel-kpp-boxmox/
│
├── README.md
├── LICENSE
├── mkdocs.yml # Docs configuration
│
├── docs/ # MkDocs documentation
│ │
│ ├── index.md # Home page
│ │
│ ├── tutorials/ # Learning content / chapters
│ │ ├── 01_intro_box_model.md
│ │ ├── 02_kpp_basics.md
│ │ ├── 03_eqn_files.md
│ │ ├── 04_run_simple_box_model.md
│ │ ├── 05_complex_mechanisms.md
│ │ ├── 06_boxmox_workflow.md
│ │ └── ...
│ │
│ ├── examples/ # Example workflows in docs
│ │ ├── simple_NOx_example.md
│ │ ├── isoprene_chemistry.md
│ │ └── urban_air_pollution.md
│ │
│ ├── assets/ # Logo + images for docs
│ │ ├── logo.svg
│ │ └── figures/
│ │
│ └── references.md # Citations/manual links
│
├── mechanisms/ # Real input data (not docs)
│ └── *.eqn
│
├── boxmox_projects/ # BOXMOX simulation setups
│ └── project_01/
│
└── scripts/ # Helper tools
├── run_boxmodel.sh
└── plot_results.py
- Python 3.x (for plotting/processing)
- BoxModel (BOXMOX)
- KPP installed and working on your machine
- Standard build tools:
gcc,make, etc.
git clone https://github.com/nidhispace/ChemBox-Lab.git
cd ChemBox-Lab/
# Example: Compile a simple mechanism
cd docs/examples/simple_NOx_example/
make
./boxmodelThen open the output results in your plotting tool of choice (example Python script included).
- NOx chemistry under sunlight
- Isoprene oxidation scheme
- VOC + NOₓ pollution scenario
- Sensitivity analysis and emission perturbations
More examples will be added over time.
To create a clear, accessible learning resource for:
- Students starting with atmospheric chemistry modeling
- Researchers needing quick reference setups
- Anyone wanting to test chemistry schemes without full 3-D models
📚 Active Development — new chapters and examples are being added. Feedback and contributions are always welcome!
If you’d like to help improve tutorials, add mechanisms, or clean up scripts:
- Fork the repo
- Create a feature branch
- Submit a pull request 🎉
If you have questions or suggestions, feel free to open an issue.