pyJac: Analytical Jacobian generator for chemical kinetics

Main Author: Ballantyne, John
Other Authors: Niemeyer, Kyle E., Curtis, Nicholas J., Sung, Chih-Jen
Format: Dataset
Terbitan: Mendeley , 2017
Subjects:
Online Access: https:/data.mendeley.com/datasets/mmr3z8j2m5
ctrlnum 0.17632-mmr3z8j2m5.1
fullrecord <?xml version="1.0"?> <dc><creator>Ballantyne, John</creator><title>pyJac: Analytical Jacobian generator for chemical kinetics</title><publisher>Mendeley</publisher><description>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. In addition to producing the necessary customized source code for evaluating reaction rates (including all modern reaction rate formulations), the chemical source terms, and the Jacobian matrix, pyJac uses an optimized evaluation order to minimize computational and memory operations. As a demonstration, we first establish the correctness of the Jacobian matrices for kinetic models of hydrogen, methane, ethylene, and isopentanol oxidation (number of species ranging 13&#x2013;360) by showing agreement within 0.001% of matrices obtained via automatic differentiation. We then demonstrate the performance achievable on CPUs and GPUs using pyJac via matrix evaluation timing comparisons; the routines produced by pyJac outperformed first-order finite differences by 3&#x2013;7.5 times and the existing analytical Jacobian software TChem by 1.1&#x2013;2.2 times on a single-threaded basis. It is noted that TChem is not thread-safe, while pyJac is easily parallelized, and hence can greatly outperform TChem on multicore CPUs. The Jacobian matrix generator we describe here will be useful for reducing the cost of integrating chemical source terms with implicit algorithms in particular and algorithms that require an accurate Jacobian matrix in general. Furthermore, the open-source release of the program and Python-based implementation will enable wide adoption.</description><subject>Natural Sciences</subject><contributor>Niemeyer, Kyle E.</contributor><contributor>Curtis, Nicholas J.</contributor><contributor>Sung, Chih-Jen</contributor><type>Other:Dataset</type><identifier>10.17632/mmr3z8j2m5.1</identifier><rights>MIT License</rights><rights>http://opensource.org/licenses/MIT</rights><relation>https:/data.mendeley.com/datasets/mmr3z8j2m5</relation><date>2017-02-16T14:23:24Z</date><recordID>0.17632-mmr3z8j2m5.1</recordID></dc>
format Other:Dataset
Other
author Ballantyne, John
author2 Niemeyer, Kyle E.
Curtis, Nicholas J.
Sung, Chih-Jen
title pyJac: Analytical Jacobian generator for chemical kinetics
publisher Mendeley
publishDate 2017
topic Natural Sciences
url https:/data.mendeley.com/datasets/mmr3z8j2m5
contents 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. In addition to producing the necessary customized source code for evaluating reaction rates (including all modern reaction rate formulations), the chemical source terms, and the Jacobian matrix, pyJac uses an optimized evaluation order to minimize computational and memory operations. As a demonstration, we first establish the correctness of the Jacobian matrices for kinetic models of hydrogen, methane, ethylene, and isopentanol oxidation (number of species ranging 13–360) by showing agreement within 0.001% of matrices obtained via automatic differentiation. We then demonstrate the performance achievable on CPUs and GPUs using pyJac via matrix evaluation timing comparisons; the routines produced by pyJac outperformed first-order finite differences by 3–7.5 times and the existing analytical Jacobian software TChem by 1.1–2.2 times on a single-threaded basis. It is noted that TChem is not thread-safe, while pyJac is easily parallelized, and hence can greatly outperform TChem on multicore CPUs. The Jacobian matrix generator we describe here will be useful for reducing the cost of integrating chemical source terms with implicit algorithms in particular and algorithms that require an accurate Jacobian matrix in general. Furthermore, the open-source release of the program and Python-based implementation will enable wide adoption.
id IOS7969.0.17632-mmr3z8j2m5.1
institution Universitas Islam Indragiri
affiliation onesearch.perpusnas.go.id
institution_id 804
institution_type library:university
library
library Teknologi Pangan UNISI
library_id 2816
collection Artikel mulono
repository_id 7969
city INDRAGIRI HILIR
province RIAU
shared_to_ipusnas_str 1
repoId IOS7969
first_indexed 2020-04-08T08:17:38Z
last_indexed 2020-04-08T08:17:38Z
recordtype dc
_version_ 1686587419899461632
score 17.538404