alphaFeedback

WorksPhysics and Astronomy

pyJac: analytical Jacobian generator for chemical kinetics

AI contributions
Not recorded for this paper
View details

Abstract

Accurate simulations of combustion phenomena require the use of detailed chemical kinetics in order to capture limit phenomena such as ignition and extinction as well as predict pollutant formation. However, the chemical kinetic models for hydrocarbon fuels of practical interest typically have large numbers of species and reactions and exhibit high levels of mathematical stiffness in the governing differential equations, particularly for larger fuel molecules. In order to integrate the stiff equations governing chemical kinetics, generally reactive-flow simulations rely on implicit algorithms that require frequent Jacobian matrix evaluations. Some in situ and a posteriori computational diagnostics methods also require accurate Jacobian matrices, including computational singular perturbation and chemical explosive mode analysis. Typically, finite differences numerically approximate these, but for larger chemical kinetic models this poses significant computational demands since the number of chemical source term evaluations scales with the square of species count. Furthermore, existing analytical Jacobian tools do not optimize evaluations or support emerging SIMD processors such as GPUs. Here we introduce pyJac, a Python-based open-source program that generates analytical Jacobian matrices for use in chemical kinetics modeling and analysis. As a demonstration, we first establish the correctness of the Jacobian matrices for kinetic models of hydrogen, methane, ethylene, and isopentanol oxidation, then demonstrate the performance achievable on CPUs and GPUs using pyJac via matrix evaluation timing comparisons.

Preprint submitted to Computer Physics Communications February 21, 2017 Keywords: Chemical kinetics, Jacobian, SIMD, GPU

PROGRAM SUMMARY

Manuscript Title: pyJac: analytical Jacobian generator for chemical kinetics

Authors: Kyle E. Niemeyer, Nicholas J. Curtis, Chih-Jen Sung

Program Title: pyJac

Journal Reference:

Catalogue identifier:

Licensing provisions: MIT License

Programming language: Python

Computer: Windows, Ubuntu, and Mac OS computers

Operating system: Any (Linux, Mac OS X, Windows)

RAM: Problem dependent; typically less than 1 GB

Number of processors used: one

Classification: 16.12, 4.3

External routines/libraries: required: NumPy; optional: Cython, Cantera, PyYAML, Adept

Nature of problem: Automatic generation of source code to evaluate Jacobian matrices for chemical kinetic models

Solution method: Chemical kinetic model interpreted from input file(s), and partial derivatives and necessary supporting functions are written to file based on a theoretical derivation.

Additional comments: This paper describes pyJac v1.0.2, available at http://dx.doi.org/10.5281/zenodo.251144. Current version and support available at https://github.com/SLACKHA/pyjac/

Running time: Problem dependent; from seconds to tens of minutes depending on the model size.

Keywords: Chemical kinetics, Jacobian, SIMD, GPU

Introduction

As the need for detailed and accurate chemical kinetic models2 in predictive reactive-flow simulations has become recognized in recent years, such models describing the oxidation of hydrocarbon fuels simultaneously grew orders of magnitude in size and complexity. For example, a recently developed detailed kinetic model for 2-methylalkanes, relevant for jet and diesel fuel surrogates, consists of over 7000 species and 30000 reactions [1]; similarly large surrogate models exist for gasoline [2, 3] and biodiesel [4]. Since in general the computational cost of solving the associated generally stiff systems of equations scales quadratically with the number of species at best—and at worst, cubically—models of such a large size pose challenges even for lower-dimensional analyses, and cannot practically be used directly in multidimensional reactive-flow simulations.

In an effort to reduce the computational demands of using large, detailed kinetic models, a number of techniques have been developed to reduce their size and complexity while retaining predictiveness, as reviewed by Lu and Law [5] as well as Turányi and Tomlin [6]. Major classes of such approaches include skeletal reduction methods that remove unimportant species and reactions [7, 8, 9, 10], lumping of species that share similar properties [11, 12, 13], and time-scale reduction methods that reduce chemical stiffness [14, 15, 16, 17]. Effective reduction strategies either combine multiple methods a priori [18, 19, 20] or apply them dynamically during a simulation to achieve greater local savings [21, 22, 23, 24, 25, 26]. Techniques such as interpolation/tabulation of expensive terms [27] can also reduce computational costs.

In addition to the aforementioned cost reduction methods that modify the chemical kinetic models, improvements to the integration algorithms that actually solve the governing differential equations can also offer significant gains in computational performance. Due to the chemical stiffness exhibited by most kinetic models, solvers typically rely on robust, high-order implicit integration algorithms based on backward differentiation formulae [28, 29, 30, 31]. In order to solve the nonlinear algebraic equations that arise in these methods, the Jacobian matrix must be evaluated and factorized, operations that result in the quadratic and cubic costs mentioned previously. However, by using an analytical formulation for the Jacobian matrix rather than a typical finite difference approximation, the cost of the numerous evaluations can drop from growing with the square of the number of species to a linear dependence [5].

In parallel with the potential improvements in stiff implicit integrators used for chemical kinetics, algorithms tailored for high-performance hardware accelerators offer another route to reducing computational costs. In the past, central processing unit (CPU) clock speeds increased regularly—i.e., Moore’s Law—but power consumption and heat dissipation issues disrupted this trend recently, slowing the pace of increases in CPU clock rates. While multicore parallelism continues to raise CPU performance, single-instruction multiple data (SIMD) processors, e.g., graphics processing units (GPUs), recently emerged as a low-cost, low-power consumption, and massively parallel high-performance computing alternative. GPUs—originally developed for graphics/video processing and display purposes—consist of hundreds to thousands of cores, compared to the tens of cores found on a typical CPU. Recognizing that the SIMD parallelism model fits well with the operator-split chemistry integration that forms the basis of many reactive-flow codes [32], a number of studies in recent years [33, 34, 35, 36, 37, 38] explored the use of SIMD processors to accelerate the integration of chemical kinetics in reactive-flow codes. Niemeyer and Sung [39] reviewed such efforts in greater detail. While explicit methods offer significant improvements in performance for nonstiff and moderately stiff chemical kinetics [38], experiences thus far suggest that stiff chemistry continues to require the use of implicit or similar algorithms. This provides significant motivation to provide the capability of evaluating analytical Jacobian matrices on GPUs as well as CPUs.

Thus, motivated by the potential cost reductions offered by analytical Jacobian matrix formulations, over the past five years a number of research groups developed analytical Jacobian generators for chemical kinetics, although as will be discussed the software package introduced here offers a number of improvements. The TChem toolkit developed by Safta et al. [40] was one of the first software packages developed for calculating the analytical Jacobian matrix, but provides this functionality through an interface rather than generating customized source code for each model. Youssef [41] recognized the importance of using an analytical Jacobian over a numerical approximation to reduce both computational cost and numerical error when performing eigendecomposition of the matrix. Bisetti [42] released a utility for producing analytical Jacobian matrix source code based on isothermal and isobaric conditions, with the state vector comprised of species concentrations rather than mass fractions; while incompatible with many existing reactive-flow formulations, this formulation resulted in a significant increase of Jacobian matrix sparsity—such a strategy should be investigated further. Perini et al. [43] developed an analytical Jacobian matrix formulation for constant-volume combustion, and when used in a multidimensional reactive-flow simulation—combined with tabulation of temperature-dependent properties—reported a performance improvement of around 80 % over finite-difference-based approximations. Recently, Dijkmans et al. [44] used a GPU-based analytical Jacobian combined with tabulation of temperature-dependent functions based on polynomial interpolations to accelerate the integration of chemical kinetics equations, similar to the earlier approach of Shi et al. [34]. Unlike the current work, the approach of Dijkmans et al. [44] used the GPU to calculate the elements of a single Jacobian matrix in parallel, rather than a large number of matrices corresponding to different states.

To our knowledge, currently no open-source analytical chemical Jacobian tool exists that is capable of generating code specifically optimized for SIMD processors. To this end, pyJac is capable of generating subroutines for reaction rates, species production rates, derivative source terms, and analytical chemical Jacobian matrices both for CPU operation via C/C++ and GPU operation via CUDA [45], a widely used programming language for NVIDIA GPUs. Furthermore, pyJac supports newer pressure-dependent reaction formulations (i.e., based on logarithmic or Chebyshev polynomial interpolation).

The rest of the paper is structured as follows. First, in Section 2 we introduce the governing equations for chemical kinetics and then provide the analytical Jacobian matrix formulation in Section 3. Next, Section 4 describes the techniques used to optimize evaluation of the analytical Jacobian on both CPUs and GPUs. Then, in Section 5 we demonstrate the correctness and computational performance of the generated analytical Jacobian matrices for benchmark chemical kinetic models, and discuss the implications of these results. Finally, we summarize our work in Section 6 and outline future research directions.

Theory

This section describes the theoretical background of the analytical Jacobian generator, first in terms of the governing equations and then the components of the Jacobian matrix itself. The literature contains more detailed explanations of the governing equations development [46, 47, 48], but we include the necessary details here for completeness.

Governing equations

The initial value problem to be solved, whether in the context of a single homogeneous reacting system (e.g., autoignition, perfectly stirred reactor) or the chemistry portion of an operator-split multidimensional reactive-flow simulation [32], is described using an ordinary differential equation for the thermochemical composition vector

Φ={T,Y1,Y2,…,YNsp−1}T,(1)\Phi= \left\{ T, Y_1, Y_2, \ldots, Y_{N_{\mathrm{sp}}-1} \right\}^{\mathrm{T}}, \tag*{(1)}

where TT is the temperature, YiY_i are the species mass fractions, and NspN_{\mathrm{sp}} is the number of species. The mass fraction of the final species, YNspY_{N_{\mathrm{sp}}}, is determined through conservation of mass:

YNsp=1−∑k=1Nsp−1Yk(2)Y_{N_{\mathrm{sp}}} = 1 - \sum_{k=1}^{N_{\mathrm{sp}}-1} Y_k \tag*{(2)}

where the most abundant species (e.g., N2\mathrm{N}_2 in air-fed combustion) can be assigned to this role. In multidimensional simulations where the equations for chemical kinetics are coupled to conservation of energy (or enthalpy), temperature can be determined algebraically in a straightforward manner [32]. Completely defining the thermodynamic state also requires either pressure (pp) or density (ρ\rho), related to temperature and the mixture composition through the ideal equation of state

p=ρRWT=RT∑k=1Nsp[Xk](3)p = \rho\frac{\mathcal{R}}{W} T = \mathcal{R}T \sum_{k=1}^{N_{\mathrm{sp}}} [X_k] \tag*{(3)}

where R\mathcal{R} is the universal gas constant, WW is the average molecular weight of the mixture, and [Xk][X_k] is the molar concentration of the kkth species. In the current implementation of pyJac, we assume a constant-pressure system3; thus, we use (3) to determine density rather than including it in the differential system given by (1). The average molecular weight is defined by

W=1∑k=1NspYk/Wk=ρRTp(4)W = \frac{1}{\sum_{k=1}^{N_{\mathrm{sp}}} Y_k/W_k} = \frac{\rho\mathcal{R} T}{p} \tag*{(4)}

and the molar concentrations by

[Xk]=ρYkWk(5)[X_k] = \rho\frac{Y_k}{W_k} \tag*{(5)}

where WkW_k is the molecular weight of the kkth species.

The system of ODEs governing the time change in thermochemical composition corresponding to (1) is then f=∂Φ/∂tf = \partial\Phi/\partial t:

f=∂Φ∂t={∂T∂t,∂Y1∂t,∂Y2∂t,…,∂YNsp−1∂t}T(6)f = \frac{\partial\Phi}{\partial t} = \left\{ \frac{\partial T}{\partial t}, \frac{\partial Y_1}{\partial t}, \frac{\partial Y_2}{\partial t}, \ldots, \frac{\partial Y_{N_{\mathrm{sp}}-1}}{\partial t} \right\}^{\mathrm{T}} \tag*{(6)}

where

∂T∂t=−1ρcp∑k=1NsphkWkω˙k(7)\frac{\partial T}{\partial t} = -\frac{1}{\rho c_p} \sum_{k=1}^{N_{\mathrm{sp}}} h_k W_k \dot{\omega}_k \tag*{(7)}
∂Yk∂t=Wkρω˙kk=1,…,Nsp−1(8)\frac{\partial Y_k}{\partial t} = \frac{W_k}{\rho}\dot{\omega}_k \qquad k = 1,\ldots,N_{\mathrm{sp}}-1 \tag*{(8)}

where cpc_p is the mass-averaged constant-pressure specific heat, hkh_k is the enthalpy of the kkth species in mass units, and ω˙k\dot{\omega}_k is the kkth species overall production rate.

Thermodynamic properties

The standard-state thermodynamic properties (in molar units) for a gaseous species kk is defined using the standard seven-coefficient polynomial of Gordon and McBride [49]:

Cp,k∘R=a0,k+T(a1,k+T(a2,k+T(a3,k+a4,kT)))(9)\frac{C_{p,k}^{\circ}}{R} = a_{0,k} + T\left(a_{1,k} + T\left(a_{2,k} + T\left(a_{3,k} + a_{4,k}T\right)\right)\right) \tag*{(9)}
Hk∘R=T(a0,k+T(a1,k2+T(a2,k3+T(a3,k4+a4,k5T))))+a5,k(10)\frac{H_k^{\circ}}{R} = T\left(a_{0,k} + T\left(\frac{a_{1,k}}{2} + T\left(\frac{a_{2,k}}{3} + T\left(\frac{a_{3,k}}{4} + \frac{a_{4,k}}{5}T\right)\right)\right)\right) + a_{5,k} \tag*{(10)}
Sk∘R=a0,kln⁡T+T(a1,k+T(a2,k2+T(a3,k3+a4,k4T)))+a6,k(11)\frac{S_k^{\circ}}{R} = a_{0,k}\ln T + T\left(a_{1,k} + T\left(\frac{a_{2,k}}{2} + T\left(\frac{a_{3,k}}{3} + \frac{a_{4,k}}{4}T\right)\right)\right) + a_{6,k} \tag*{(11)}

where Cp,kC_{p,k} is the constant-pressure specific heat in molar units, HkH_k is the enthalpy in molar units, SkS_k is the entropy in molar units, and the ∘^{\circ} indicates a standard-state property at one atmosphere (equivalent to the property at any pressure for calorically perfect gases).

The mass-based specific heat and enthalpy are then defined as

cp,k=Cp,kWkandhk=HkWk,(12)c_{p,k} = \frac{C_{p,k}}{W_k} \quad\text{and} \quad h_k = \frac{H_k}{W_k}, \tag*{(12)}

and the mixture-averaged specific heat is

cp=∑k=1NspYkcp,k.(13)c_p = \sum_{k=1}^{N_{\mathrm{sp}}} Y_k c_{p,k}. \tag*{(13)}

Reaction rate expressions

Next, we define the species rates of production and related kinetic terms as

ω˙k=∑i=1Nreacνkiqi,(14)\dot{\omega}_k = \sum_{i=1}^{N_{\mathrm{reac}}} \nu_{ki}q_i, \tag*{(14)}

where NreacN_{\mathrm{reac}} is the number of reactions, νki\nu_{ki} is the overall stoichiometric coefficient for species kk in reaction ii, and qiq_i is the rate-of-progress for reaction ii. These are defined by

νki=νki′′−νki′and(15)\nu_{ki} = \nu_{ki}^{\prime\prime} - \nu_{ki}^{\prime} \quad\text{and} \tag*{(15)}
qi=ciRi,(16)q_i = c_i R_i, \tag*{(16)}

where νki′′\nu_{ki}^{\prime\prime} and νki′\nu_{ki}^{\prime} are the product and reactant stoichiometric coefficients (respectively) of species kk in reaction ii. The base rate-of-progress for the ith reversible reaction RiR_i is given by

Ri=Rf,i−Rr,i,(17)R_i = R_{f,i} - R_{r,i}, \tag*{(17)}

References

  1. [1]S. M. Sarathy, C. K. Westbrook, M. Mehl, W. J. Pitz, C. Togbe, P. Dagaut, H. Wang, M. A. Oehlschlaeger, U. Niemann, K. Seshadri, P. S. Veloo, C. Ji, F. N. Egolfopoulos, T. Lu, Comprehensive chemical kinetic modeling of the oxidation of 2-methylalkanes from C₇ to C₂₀, Combust. Flame 158 (12) (2011) 2338–2357. doi: 10.1016/j.combustflame.2011.05.007.DOI
  2. [2]M. Mehl, W. J. Pitz, C. K. Westbrook, H. J. Curran, Kinetic modeling of gasoline surrogate components and mixtures under engine conditions, Proc. Combust. Inst. 33 (1) (2011) 193–200. doi:10.1016/j.proci.2010.05.027.DOI
  3. [3]M. Mehl, J.-Y. Chen, W. J. Pitz, S. M. Sarathy, C. K. Westbrook, An approach for formulating surrogates for gasoline with application toward a reduced surrogate mechanism for CFD engine modeling, Energy Fuels 25 (11) (2011) 5215–5223. doi: 10.1021/ef201099y.DOI
  4. [4]O. Herbinet, W. J. Pitz, C. K. Westbrook, Detailed chemical kinetic mechanism for the oxidation of biodiesel fuels blend surrogate, Combust. Flame 157 (5) (2010) 893–908. doi:10.1016/j.combustflame.2009.10.013.DOI
  5. [5]T. Lu, C. K. Law, Toward accommodating realistic fuel chemistry in large-scale computations, Prog. Energy Comb. Sci. 35 (2) (2009) 192–215. doi:10.1016/j.pecs.2008.10.002.DOI
  6. [6]T. Turányi, A. S. Tomlin, Analysis of Kinetic Reaction Mechanisms, Springer-Verlag, Berlin Heidelberg, 2014. doi:10.1007/978-3-662-44562-4.DOI
  7. [7]T. Lu, C. K. Law, Linear time reduction of large kinetic mechanisms with directed relation graph: n-heptane and iso-octane, Combust. Flame 144 (1-2) (2006) 24–36. doi:10.1016/j.combustflame.2005.02.015.DOI
  8. [8]P. Pepiot-Desjardins, H. Pitsch, An efficient error-propagation-based reduction method for large chemical kinetic mechanisms, Combust. Flame 154 (1–2) (2008) 67–81. doi: 10.1016/j.combustflame.2007.10.020.
  9. [9]V. Hiremath, Z. Ren, S. B. Pope, A greedy algorithm for species selection in dimension reduction of combustion chemistry, Combust. Theor. Model. 14 (5) (2010) 619–652. doi:10.1080/13647830.2010.499964.DOI
  10. [10]K. E. Niemeyer, C. J. Sung, M. P. Raju, Skeletal mechanism generation for surrogate fuels using directed relation graph with error propagation and sensitivity analysis, Combust. Flame 157 (9) (2010) 1760–1770. doi:10.1016/j.combustflame.2009.12.022.DOI
  11. [11]T. Lu, C. K. Law, Diffusion coefficient reduction through species bundling, Combust. Flame 148 (3) (2007) 117–126. doi:10.1016/j.combustflame.2006.10.004.DOI
  12. [12]S. S. Ahmed, F. Mauß, G. Moréac, T. Zeuch, A comprehensive and compact n-heptane oxidation model derived using chemical lumping, Phys. Chem. Chem. Phys. 9 (9) (2007) 1107–1126. doi:10.1039/b614712g.DOI
  13. [13]P. Pepiot-Desjardins, H. Pitsch, An automatic chemical lumping method for the reduction of large chemical kinetic mechanisms, Combust. Theor. Model. 12 (6) (2008) 1089–1108. doi:10.1080/13647830802245177.
  14. [14]U. Maas, S. B. Pope, Simplifying chemical kinetics: intrinsic low-dimensional manifolds in composition space, Combust. Flame 88 (3-4) (1992) 239–264. doi:10.1016/0010-2180(92)90034-M.DOI
  15. [15]S.-H. Lam, D. A. Goussis, The CSP method for simplifying kinetics, Int. J. Chem. Kinet. 26 (4) (1994) 461–486. doi:10.1002/kin.550260408.DOI
  16. [16]T. Lu, Y. Ju, C. K. Law, Complex CSP for chemistry reduction and analysis, Combust. Flame 126 (1–2) (2001) 1445–1455. doi:10.1016/S0010-2180(01)00252-8.DOI
  17. [17]X. Gou, W. Sun, Z. Chen, Y. Ju, A dynamic multi-timescale method for combustion modeling with detailed and reduced chemical kinetic mechanisms, Combust. Flame 157 (6) (2010) 1111–1121. doi:10.1016/j.combustflame.2010.02.020.DOI
  18. [18]T. Lu, C. K. Law, Strategies for mechanism reduction for large hydrocarbons: n-heptane, Combust. Flame 154 (1–2) (2008) 153–163. doi:10.1016/j.combustflame.2007.11.013.DOI
  19. [19]K. E. Niemeyer, C. J. Sung, Mechanism reduction for multicomponent surrogates: A case study using toluene reference fuels, Combust. Flame 161 (11) (2014) 2752–2764. doi:10.1016/j.combustflame.2014.05.001.DOI
  20. [20]K. E. Niemeyer, C. J. Sung, Reduced chemistry for a gasoline surrogate valid at engine-relevant conditions, Energy Fuels 29 (2) (2015) 1172–1185. doi:10.1021/ef5022126.DOI
  21. [21]I. Banerjee, M. Ieraperitrou, An adaptive reduction scheme to model reactive flow, Combust. Flame 144 (3) (2006) 619–633. doi:10.1016/j.combustflame.2005.10.001.DOI
  22. [22]L. Liang, J. Stevens, J. T. Farrell, A dynamic adaptive chemistry scheme for reactive flow computations, Proc. Combust. Inst. 32 (1) (2009) 527–534. doi:10.1016/j.proci.2008.05.073.DOI
  23. [23]Y. Shi, L. Liang, H.-W. Ge, R. D. Reitz, Acceleration of the chemistry solver for modeling DI engine combustion using dynamic adaptive chemistry (DAC) schemes, Combust. Theor. Model. 14 (1) (2010) 69–89. doi:10.1080/13647830903548834.DOI
  24. [24]X. Gou, Z. Chen, W. Sun, Y. Ju, A dynamic adaptive chemistry scheme with error control for combustion modeling with a large detailed mechanism, Combust. Flame 160 (2) (2013) 225–231. doi:10.1080/13647830.2012.733825.
  25. [25]H. Yang, Z. Ren, T. Lu, G. M. Goldin, Dynamic adaptive chemistry for turbulent flame simulations, Combust. Theor. Model. 17 (1) (2013) 167–183. doi:10.1080/13647830.2012.733825.DOI
  26. [26]N. J. Curtis, K. E. Niemeyer, C. J. Sung, An automated target species selection method for dynamic adaptive chemistry simulations, Combust. Flame 162 (2015) 1358–1374. doi:10.1016/j.combustflame.2014.11.004.DOI
  27. [27]S. B. Pope, Computationally efficient implementation of combustion chemistry using in situ adaptive tabulation, Combust. Theor. Model. 1 (1) (1997) 41–63. doi:10.1080/713665229.DOI
  28. [28]C. F. Curtiss, J. O. Hirschfelder, Integration of stiff equations, PNAS 38 (3) (1952) 235–243.pubmed.ncbi.nlm.nih.gov/16589085
  29. [29]G. D. Byrne, A. C. Hindmarsh, Stiff ODE solvers: a review of current and coming attractions, J. Comput. Phys. 70 (1) (1987) 1–62. doi:10.1016/0021-9991(87)90001-5.DOI
  30. [30]P. N. Brown, G. D. Byrne, A. C. Hindmarsh, VODE: a variable-coefficient ODE solver, SIAM J. Sci. Stat. Comput. 10 (5) (1989) 1038–1051. doi:10.1137/0910062.DOI
  31. [31]A. C. Hindmarsh, P. N. Brown, K. E. Grant, S. L. Lee, R. Serban, D. E. Shumaker, C. S. Woodward, SUNDIALS: Suite of nonlinear and differential/algebraic equation solvers, ACM T. Math. Software 31 (3) (2005) 363–396. doi:10.1145/1089014.1089020.DOI
  32. [32]E. S. Oran, J. P. Boris, Numerical Simulation of Reactive Flow, 2nd Edition, Cambridge University Press, Cambridge, 2001.
  33. [33]K. Spafford, J. Meredith, J. Vetter, J. Chen, R. Grout, R. Sankaran, Accelerating S3D: A GPGPU case study, in: Euro-Par 2009 Parallel Processing Workshops, LNCS 6043, Springer-Verlag, Berlin, Heidelberg, 2010, pp. 122–131. doi:10.1007/978-3-642-14122-5_16.DOI
  34. [34]Y. Shi, W. H. G. Jr, H.-W. Wong, O. O. Oluwole, Redesigning combustion modeling algorithms for the graphics processing unit (GPU): Chemical kinetic rate evaluation and ordinary differential equation integration, Combust. Flame 158 (5) (2011) 836–847. doi:10.1016/j.combustflame.2011.01.024.DOI
  35. [35]K. E. Niemeyer, C. J. Sung, C. G. Fotache, J. C. Lee, Turbulence-chemistry closure method using graphics processing units: a preliminary test, in: 7th Fall Technical Meeting of the Eastern States Section of the Combustion Institute, 2011. doi:10.6084/m9.figshare.3384964.v1.
  36. [36]Y. Shi, W. H. Green, H.-W. Wong, O. O. Oluwole, Accelerating multi-dimensional combustion simulations using GPU and hybrid explicit/implicit ODE integration, Combust. Flame 159 (7) (2012) 2388–2397. doi:10.1016/j.combustflame.2012.02.016.DOI
  37. [37]C. P. Stone, R. L. Davis, Techniques for solving stiff chemical kinetics on graphical processing units, J. Propul. Power 29 (4) (2013) 764–773. doi:10.2514/1.B34874.
  38. [38]K. E. Niemeyer, C. J. Sung, Accelerating moderately stiff chemical kinetics in reactive-flow simulations using GPUs, J. Comput. Phys. 256 (2014) 854–871. doi:10.1016/j.jcp.2013.09.025.DOI
  39. [39]K. E. Niemeyer, C. J. Sung, Recent progress and challenges in exploiting graphics processors in computational fluid dynamics, J. Supercomput. 67 (2) (2014) 528–564. doi:10.1007/s11227-013-1015-7.DOI
  40. [40]C. Safta, H. N. Najm, O. M. Knio, TChem - a software toolkit for the analysis of complex kinetic models, Tech. Rep. SAND2011-3282, Sandia National Laboratories (May 2011).DOI
  41. [41]M. R. Youssefi, Development of analytic tools for computational flame diagnostics, Master’s thesis, University of Connecticut, http://digitalcommons.uconn.edu/gstheses/145/ (Aug. 2011).
  42. [42]F. Bisetti, Integration of large chemical kinetic mechanisms via exponential methods with Krylov approximations to Jacobian matrix functions, Combust. Theor. Model. 16 (3) (2012) 387–418. doi:10.1080/13647830.2011.631032.DOI
  43. [43]F. Perini, E. Galligani, R. D. Reitz, An analytical Jacobian approach to sparse reaction kinetics for computationally efficient combustion modeling with large reaction mechanisms, Energy Fuels 26 (8) (2012) 4804–4822. doi:10.1021/ef300747n.DOI
  44. [44]T. Dijkmans, C. M. Schietekat, K. M. Van Geem, G. B. Marin, GPU based simulation of reactive mixtures with detailed chemistry in combination with tabulation and an analytical Jacobian, Comput. Chem. Eng. 71 (2014) 521–531. doi:10.1016/j.compchemeng.2014.09.016.DOI
  45. [45]J. Nickolls, I. Buck, M. Garland, K. Skadron, Scalable parallel programming with CUDA, Queue 6 (2) (2008) 40–53. doi:10.1145/1365490.1365500.DOI
  46. [46]C. K. Law, Combustion Physics, Cambridge University Press, New York, 2006.
  47. [47]J. Warnatz, U. Maas, R. W. Dibble, Combustion, 4th Edition, Physical and Chemical Fundamentals, Modeling and Simulation, Experiments, Pollutant Formation, Springer, Berlin Heidelberg, 2006.
  48. [48]I. Glassman, R. A. Yetter, Combustion, 4th Edition, Academic Press, Burlington, MA, 2008.
  49. [49]S. Gordon, B. J. McBride, Computer program for calculation of complex chemical equilibrium compositions, rocket performance, incident and reflected shocks, and Chapman-Jouguet detonations, Tech. Rep. NASA-SP-273, NASA Lewis Research Center (Mar. 1976).
  50. [50]F. A. Lindemann, S. Arrhenius, I. Langmuir, N. R. Dhar, J. Perrin, W. C. McC Lewis, Discussion on “the radiation theory of chemical action”, Trans. Faraday Soc. 17 (1922) 598–606. doi:10.1039/TF9221700598.DOI
  51. [51]R. G. Gilbert, K. Luther, J. Troe, Theory of thermal unimolecular reactions in the fall-off range. II. Weak collision rate constants, Ber. Bunsenges. Phys. Chem. 87 (2) (1983) 169–177. doi:10.1002/bbpc.19830870218.DOI
  52. [52]P. H. Stewart, C. W. Larson, D. M. Golden, Pressure and temperature dependence of reactions proceeding via a bound complex. 2. Application to 2CH₃ → C₂H₅ + H, Combust. Flame 75 (1) (1989) 25–31. doi:10.1016/0010-2180(89)90084-9.DOI
  53. [53]Reaction Design: San Diego, CHEMKIN-PRO 15113 (2012). URL http://www.ansys.com/Products/Fluids/ANSYS-Chemkin-Pro
  54. [54]D. G. Goodwin, H. K. Moffat, R. L. Speth, Cantera: An object-oriented software toolkit for chemical kinetics, thermodynamics, and transport processes, http://www.cantera.org, version 2.3.0 (2017). doi:10.5281/zenodo.170284.
  55. [55]P. K. Venkatesh, A. M. Dean, M. H. Cohen, R. W. Carr, Chebyshev expansions and sensitivity analysis for approximating the temperature- and pressure-dependence of chemically-activated reactions, Rev. Chem. Eng. 13 (1) (1997) 1–67. doi:10.1515/REVCE.1997.13.1.1.DOI
  56. [56]P. K. Venkatesh, A. Y. Chang, A. M. Dean, M. H. Cohen, R. W. Carr, Parameterization of pressure- and temperature-dependent kinetics in multiple well reactions, AIChE J. 43 (5) (1997) 1331–1340. doi:10.1002/aic.690430522.DOI
  57. [57]P. K. Venkatesh, Damped pseudospectral functional forms of the falloff behavior of unimolecular reactions, J. Phys. Chem. A 104 (2) (2000) 280–287. doi:10.1021/jp991458u.DOI
  58. [58]G. P. Smith, D. M. Golden, M. Frenklach, N. W. Moriarty, B. Eiteneer, M. Goldenberg, C. T. Bowman, R. K. Hanson, S. Song, W. C. Gardiner, V. V. Lissianski, Z. Qin, GRI-Mech 3.0, http://www.me.berkeley.edu/gri_mech/.
  59. [59]Python Software Foundation, Python language reference, version 2.7.10, Available at http://www.python.org (2015).
  60. [60]K. E. Niemeyer, N. J. Curtis, pyJac v1.0.2 (Jan. 2017). doi:10.5281/zenodo.251144.DOI
  61. [61]S. van der Walt, S. C. Colbert, G. Varoquaux, The NumPy array: A structure for efficient numerical computation, Comput. Sci. Eng. 13 (2011) 22–30. doi:10.1109/MCSE.2011.37.DOI
  62. [62]S. Behnel, R. Bradshaw, C. Citro, L. Dalcin, D. S. Seljebotn, K. Smith, Cython: The best of both worlds, Comput. Sci. Eng. 13 (2011) 31–39. doi:10.1109/MCSE.2010.118.DOI
  63. [63]K. Simonov, PyYAML version 3.11, Available at http://pyyaml.org (Mar. 2014).
  64. [64]R. J. Hogan, Adept v1.1, Available at https://github.com/rjhogan/Adept (Jun. 2015).
  65. [65]M. P. Burke, M. Chaos, Y. Ju, F. L. Dryer, S. J. Klippenstein, Comprehensive H₂/O₂ kinetic model for high-pressure combustion, Int. J. Chem. Kinet. 44 (7) (2011) 444–474. doi:10.1002/kin.20603.
  66. [66]H. Wang, X. You, A. V. Joshi, S. G. Davis, A. Laskin, F. Egolfopoulos, C. K. Law, USC Mech Version II. High-temperature combustion reaction model of H₂/CO/C₁–C₄ compounds, http://ignis.usc.edu/USC_Mech_II.htm (May 2007).
  67. [67]S. M. Sarathy, S. Park, B. W. Weber, W. Wang, P. S. Veloo, A. C. Davis, C. Togbe, C. K. Westbrook, O. Park, G. Dayma, Z. Luo, M. A. Oehlschlaeger, F. N. Egolfopoulos, T. Lu, W. J. Pitz, C. J. Sung, P. Dagaut, A comprehensive experimental and modeling study of iso-pentanol combustion, Combust. Flame 160 (12) (2013) 2712–2728. doi:10.1016/j.combustflame.2013.06.022.DOI
  68. [68]L. F. Shampine, Numerical Solution of Ordinary Differential Equations, Chapman & Hall, New York, 1994.
  69. [69]S.-H. Lam, D. A. Goussis, Understanding complex chemical kinetics with computational singular perturbation, Symp. (Int.) Combust. 22 (1988) 931–941. doi:10.1016/S0082-0784(89)80102-X.DOI
  70. [70]S.-H. Lam, Using CSP to understand complex chemical kinetics, Combust. Sci. Technol. 89 (5-6) (1993) 375–404. doi:10.1080/00102209308924120.DOI
  71. [71]S.-H. Lam, Reduced chemistry-diffusion coupling, Combust. Sci. Technol. 179 (4) (2007) 767–786. doi:10.1080/00102200601093498.DOI
  72. [72]T. Lu, C. S. Yoo, J. H. Chen, C. K. Law, Three-dimensional direct numerical simulation of a turbulent lifted hydrogen jet flame in heated coflow: a chemical explosive mode analysis, J. Fluid Mech. 652 (2010) 45–64. doi:10.1017/S002211201000039X.DOI
  73. [73]Z. Luo, C. S. Yoo, E. S. Richardson, J. H. Chen, C. K. Law, T. Lu, Chemical explosive mode analysis for a turbulent lifted ethylene jet flame in highly-heated coflow, Combust. Flame 159 (1) (2012) 265–274. doi:10.1016/j.combustflame.2011.05.023.DOI
  74. [74]R. Shan, C. S. Yoo, J. H. Chen, T. Lu, Computational diagnostics for n-heptane flames with chemical explosive mode analysis, Combust. Flame 159 (10) (2012) 3119–3127. doi:10.1016/j.combustflame.2012.05.012.DOI
  75. [75]R. J. Hogan, Fast reverse-mode automatic differentiation using expression templates in C++, ACM Trans. Math. Software 40 (4) (2014) 26. doi:10.1145/2560359.DOI
  76. [76]L. F. Richardson, The approximate arithmetical solution by finite differences of physical problems involving differential equations, with an application to the stresses in a masonry dam, Phil. Trans. R. Soc. A 210 (1911) 307–357.
  77. [77]J. N. Lyness, C. B. Moler, Van der Monde systems and numerical differentiation, Numer. Math. 8 (5) (1966) 458–464. doi:10.1007/BF02166671.DOI
  78. [78]J. N. Lyness, C. B. Moler, Generalized Romberg methods for integrals of derivatives, Numer. Math. 14 (1) (1969) 1–13. doi:10.1007/BF02165095.DOI
  79. [79]J. R. R. A. Martins, P. Sturdza, J. J. Alonso, The complex-step derivative approximation, ACM Trans. Math. Software 29 (3) (2003) 245–262. doi:10.1145/838250.838251.DOI
  80. [80]L. F. Shampine, Accurate numerical derivatives in MATLAB, ACM T. Math. Software 33 (4) (2007) 26. doi:10.1145/1268776.1268781.DOI
  81. [81]M. S. Ridout, Statistical applications of the complex-step method of numerical differentiation, Am. Stat. 63 (1) (2009) 66–74. doi:10.1198/tast.2009.0013.DOI
  82. [82]E. Anderson, Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, D. Sorensen, LAPACK Users’ Guide, 3rd Edition, SIAM, Philadelphia, PA, 1999.
  83. [83]C. Safta, H. N. Najm, O. M. Knio, TChem v0.2, Available at http://www.sandia.gov/tchem/index.html (2011).
  84. [84]Free Software Foundation, gcc-4.8.5, Available at https://gcc.gnu.org/onlinedocs/gcc-4.8.5/gcc/ (Jun. 2015).
  85. [85]NVIDIA, CUDA Toolkit 7.5, Available at https://developer.nvidia.com/cuda-downloads (Sep. 2015).
  86. [86]K. E. Niemeyer, N. J. Curtis, C. J. Sung, Data, plotting scripts, and figures for “pyJac: analytical Jacobian generator for chemical kinetics”, figshare, CC-BY license (2017). doi:10.6084/m9.figshare.4578010.v1.DOI
  87. [87]S. M. Correa, Turbulence-chemistry interactions in the intermediate regime of premixed combustion, Combust. Flame 93 (1–2) (1993) 41–60. doi:10.1016/0010-2180(93)90083-F.DOI
  88. [88]J.-Y. Chen, Stochastic modeling of partially stirred reactors, Combust. Sci. Technol. 122 (1–6) (1997) 63–94. doi:10.1080/00102209708935605.DOI
  89. [89]A. Bhave, M. Kraft, Partially stirred reactor model: Analytical solutions and numerical convergence study of a PDF/Monte Carlo method, SIAM J. Sci. Comput. 25 (5) (2004) 1798–1823. doi:10.1137/S1064827502411328.DOI
  90. [90]Z. Ren, S. B. Pope, An investigation of the performance of turbulent mixing models, Combust. Flame 136 (1-2) (2004) 208–216. doi:10.1016/j.combustflame.2003.09.014.DOI
  91. [91]Z. Ren, Y. Liu, T. Lu, L. Lu, O. O. Oluwole, G. M. Goldin, The use of dynamic adaptive chemistry and tabulation in reactive flow simulations, Combust. Flame 161 (1) (2014) 127–137. doi:10.1016/j.combustflame.2013.08.018.DOI
  92. [92]N. J. Curtis, K. E. Niemeyer, Fileset for testing thread-safety of TChem, figshare (Jan. 2017). doi:10.6084/m9.figshare.4563982.v1.DOI

Paper details

vlnc:W_8ev3mbfg
v1 · latestHistory (1)

published ·

added ·

Usage

views · 0

downloads · 0

A view counts once per browser per day, a download each time the PDF is requested.

CC BY 4.0

Original source

  • Physics and Astronomy

Not recorded for this paper · View statement →

Looking for related papers…
Contents