  Combustion kinetic modeling is an integral part of combustion simulation, and
extensive studies have been devoted to developing both high fidelity and
computationally affordable models. Despite these efforts, modeling combustion
kinetics is still challenging due to the demand for expert knowledge and
optimization against experiments, as well as the lack of understanding of the
associated uncertainties. Therefore, data-driven approaches that enable
efficient discovery and calibration of kinetic models have received much
attention in recent years, the core of which is the optimization based on big
data. Differentiable programming is a promising approach for learning kinetic
models from data by efficiently computing the gradient of objective functions
to model parameters. However, it is often challenging to implement
differentiable programming in practice. Therefore, it is still not available in
widely utilized combustion simulation packages such as CHEMKIN and Cantera.
Here, we present a differentiable combustion simulation package leveraging the
eco-system in Julia, including DifferentialEquations.jl for solving
differential equations, ForwardDiff.jl for auto-differentiation, and Flux.jl
for incorporating neural network models into combustion simulations and
optimizing neural network models using the state-of-the-art deep learning
optimizers. We demonstrate the benefits of differentiable programming in
efficient and accurate gradient computations, with applications in uncertainty
quantification, kinetic model reduction, data assimilation, and model
discovery.
