DFODE-kit is a Python toolkit for building machine-learning surrogates for combustion chemistry integration. It helps users move from canonical flame simulations to sampled datasets, augmented and labeled training data, and finally to trained neural-network models that can be deployed in DeepFlame/OpenFOAM workflows.
In practice, DFODE-kit sits between:
- DeepFlame / OpenFOAM, which generate and run reacting-flow cases, and
- ML training workflows, which need clean, structured, reproducible chemistry datasets.
- Project documentation: https://deepflame-ai.github.io/DFODE-kit/
- DeepFlame documentation: https://deepflame.deepmodeling.com/en/latest/
- DeepFlame source: https://github.com/deepmodeling/deepflame-dev
DFODE-kit currently supports the core workflow below:
- Configure runtime paths for OpenFOAM, Conda, and DeepFlame
- Initialize canonical flame cases from explicit presets
- Run those cases reproducibly
- Sample thermochemical states into HDF5
- Augment sampled datasets
- Label them with Cantera/CVODE integration
- Train neural-network surrogates
config— store machine-local runtime pathsinit— initialize canonical cases from explicit presetsrun-case— execute a case-local runner such asAllrunsample— convert case outputs to HDF5 datasetsaugment— augment sampled stateslabel— generate supervised labelstrain— train a neural-network modelh52npy— convert HDF5 scalar fields to NumPy arrays
List commands locally with:
dfode-kit --list-commandsClone the repository and install the package in editable mode:
git clone https://github.com/deepflame-ai/DFODE-kit.git
cd DFODE-kit
pip install -e .If you want the lightweight local verification environment used in this repository:
uv venv .venv
uv pip install --python .venv/bin/python -e '.[dev]'DFODE-kit itself is a Python package, but some workflows also require local installations of:
- OpenFOAM
- DeepFlame
- Conda (or an equivalent Python environment manager)
- Cantera for case initialization and labeling workflows
For DeepFlame/OpenFOAM-backed case execution, you must configure machine-local runtime paths with dfode-kit config.
The example below shows a portable workflow for a 1D freely propagating premixed CH4/air flame at equivalence ratio 1.0.
dfode-kit config set openfoam_bashrc /path/to/openfoam/etc/bashrc
dfode-kit config set conda_sh /path/to/conda/etc/profile.d/conda.sh
dfode-kit config set conda_env_name deepflame
dfode-kit config set deepflame_bashrc /path/to/deepflame-dev/bashrcRun this from a Python environment that has Cantera available:
source /path/to/openfoam/etc/bashrc
source /path/to/conda/etc/profile.d/conda.sh
conda activate deepflame
source /path/to/deepflame-dev/bashrc
python -m dfode_kit.cli.main init oneD-flame \
--mech /path/to/mechanisms/CH4/gri30.yaml \
--fuel CH4:1 \
--oxidizer air \
--phi 1.0 \
--out /path/to/run/oneD_flame_CH4_phi1 \
--apply --forcepython -m dfode_kit.cli.main run-case \
--case /path/to/run/oneD_flame_CH4_phi1 \
--apply --jsonpython -m dfode_kit.cli.main sample \
--mech /path/to/mechanisms/CH4/gri30.yaml \
--case /path/to/run/oneD_flame_CH4_phi1 \
--save /path/to/run/oneD_flame_CH4_phi1/ch4_phi1_sample.h5 \
--include_meshTypical next steps are:
python -m dfode_kit.cli.main augment \
--source /path/to/run/oneD_flame_CH4_phi1/ch4_phi1_sample.h5 \
--mech /path/to/mechanisms/CH4/gri30.yaml \
--save /path/to/data/ch4_phi1_aug.npy \
--preset random-local-combustion-v1 \
--target-size 20000 \
--apply
python -m dfode_kit.cli.main label \
--mech /path/to/mechanisms/CH4/gri30.yaml \
--time 1e-6 \
--source /path/to/data/ch4_phi1_aug.npy \
--save /path/to/data/ch4_phi1_labeled.npy
python -m dfode_kit.cli.main train \
--mech /path/to/mechanisms/CH4/gri30.yaml \
--source_file /path/to/data/ch4_phi1_labeled.npy \
--output_path /path/to/models/ch4_phi1_model.ptSee the published data workflow guide for the expected artifacts and stage boundaries:
If you are using the CLI, start with:
- https://deepflame-ai.github.io/DFODE-kit/cli/
- https://deepflame-ai.github.io/DFODE-kit/init/
- https://deepflame-ai.github.io/DFODE-kit/run-case/
- https://deepflame-ai.github.io/DFODE-kit/data-workflow/
If you are working on the repository itself, see:
AGENTS.mddocs/agents/README.md
dfode_kit/cli/— CLI entrypoints and subcommandsdfode_kit/cases/— case init, presets, sampling, and DeepFlame/OpenFOAM-facing helpersdfode_kit/data/— data contracts, HDF5 I/O, integration, augmentation, and labeling helpersdfode_kit/models/— model architectures and registriesdfode_kit/training/— training configuration, registries, training loops, and preprocessingcanonical_cases/— canonical flame case templatestutorials/— tutorial notebooks and workflow examplesdocs/— published project documentationtests/— lightweight verification tests
The following papers provide scientific context for DFODE-kit and closely related workflows:
@article{li2025dfode,
title={DFODE-kit: Deep learning package for solving Flame chemical kinetics with high-dimensional stiff Ordinary Differential Equations},
author={Li, Han and Xiao, Ke and Xu, Yangchen and Zhang, Haoze and Chen, Zhenyi and Mao, Runze and Chen, Zhi X},
journal={Computer Physics Communications},
pages={110013},
year={2025},
publisher={Elsevier}
}@article{li2025comprehensive,
title={Comprehensive deep learning for combustion chemistry integration: Multi-fuel generalization and a posteriori validation in reacting flow},
author={Li, Han and Yang, Ruixin and Xu, Yangchen and Zhang, Min and Mao, Runze and Chen, Zhi X},
journal={Physics of Fluids},
volume={37},
number={1},
year={2025},
publisher={AIP Publishing}
}@article{xiao2026enhancing,
title={Enhancing deep learning of ammonia/natural gas combustion kinetics via physics-aware data augmentation and scale separation},
author={Xiao, Ke and Xu, Yangchen and Li, Han and Chen, Zhi X},
journal={Fuel},
volume={419},
pages={138904},
year={2026},
publisher={Elsevier}
}@article{zhang2024graphics,
title={Graphics processing unit/artificial neural network-accelerated large-eddy simulation of swirling premixed flames},
author={Zhang, Min and Mao, Runze and Li, Han and An, Zhenhua and Chen, Zhi X},
journal={Physics of Fluids},
volume={36},
number={5},
year={2024},
publisher={AIP Publishing}
}@article{mao2024integrated,
title={An integrated framework for accelerating reactive flow simulation using GPU and machine learning models},
author={Mao, Runze and Zhang, Min and Wang, Yingrui and Li, Han and Xu, Jiayang and Dong, Xinyu and Zhang, Yan and Chen, Zhi X},
journal={Proceedings of the Combustion Institute},
volume={40},
number={1-4},
pages={105512},
year={2024},
publisher={Elsevier}
}@article{mao2023deepflame,
title={DeepFlame: A deep learning empowered open-source platform for reacting flow simulations},
author={Mao, Runze and Lin, Minqi and Zhang, Yan and Zhang, Tianhan and Xu, Zhi-Qin John and Chen, Zhi X},
journal={Computer Physics Communications},
volume={291},
pages={108842},
year={2023},
publisher={Elsevier}
}Recent work in this repository focuses on making DFODE-kit:
- easier to use from the CLI,
- easier for coding agents to operate safely,
- more reproducible for scientific workflows,
- more explicit about empirical setup assumptions,
- more modular for experimentation with model and training changes.
This repository includes a lightweight local verification loop:
make bootstrap-harness
make verifyThis project is distributed under the terms in LICENSE.