SlideShare ist ein Scribd-Unternehmen logo
1 von 76
Downloaden Sie, um offline zu lesen
Initial investigation of pyJac:
an analytical Jacobian
generator for chemical kinetics
Kyle Niemeyer
Oregon State University
Nicholas Curtis, Chih-Jen Sung
University of Connecticut
Fall 2015 Meeting of WSSCI
5 October 2015
Funding: NSF awards 1535065 & 1534688
0
5
10
15
20
25
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1
Numberofspecies
log10(Characteristic time (s))
Stiffness of kinetic models
2
0
5
10
15
20
25
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1
Numberofspecies
log10(Characteristic time (s))
Stiffness of kinetic models
Characteristic creation times of methane oxidation
2
Motivation
3
Motivation
• Stiffness
3
Motivation
• Stiffness
3
implicit integration algorithms
Motivation
• Stiffness
• Require Jacobian matrix—repeatedly evaluated
and factorized
3
implicit integration algorithms
Motivation
• Stiffness
• Require Jacobian matrix—repeatedly evaluated
and factorized
• Jacobian typically obtained via finite differences
3
implicit integration algorithms
Motivation
• Stiffness
• Require Jacobian matrix—repeatedly evaluated
and factorized
• Jacobian typically obtained via finite differences
• Scales with (Nspecies)2
3
implicit integration algorithms
NumberofReactions
10
100
1000
10000
100000
Number of Species
10 100 1000 10000
before 2005
since 2005
Size of kinetic models
4
NumberofReactions
10
100
1000
10000
100000
Number of Species
10 100 1000 10000
before 2005
since 2005
Size of kinetic models
Hydrocarbon oxidation kinetic models poses challenges
even for 0D simulations.
4
NumberofReactions
10
100
1000
10000
100000
Number of Species
10 100 1000 10000
before 2005
since 2005
Size of kinetic models
Hydrocarbon oxidation kinetic models poses challenges
even for 0D simulations.
4
Transportation fuels
NumberofReactions
10
100
1000
10000
100000
Number of Species
10 100 1000 10000
before 2005
since 2005
Size of kinetic models
Hydrocarbon oxidation kinetic models poses challenges
even for 0D simulations.
4
2-methylalkanes
Motivation
5
implicit integration algorithms• Stiffness
• Require Jacobian matrix—repeatedly evaluated
and factorized
• Jacobian typically obtained via finite differences
• Scales with (Nspecies)2
Motivation
• Also accuracy issues for CSP, CEMA
5
implicit integration algorithms• Stiffness
• Require Jacobian matrix—repeatedly evaluated
and factorized
• Jacobian typically obtained via finite differences
• Scales with (Nspecies)2
Introducing pyJac
6
Introducing pyJac
• Accelerate chemical kinetic integration by
providing source code to evaluate chemical kinetic
Jacobian matrices analytically
6
Introducing pyJac
• Accelerate chemical kinetic integration by
providing source code to evaluate chemical kinetic
Jacobian matrices analytically
• pyJac capable of generating source code for CPU
and GPU architectures
6
Introducing pyJac
• Accelerate chemical kinetic integration by
providing source code to evaluate chemical kinetic
Jacobian matrices analytically
• pyJac capable of generating source code for CPU
and GPU architectures
• Compatible with both CHEMKIN- and Cantera-
format mechanisms
6
… What is a Jacobian, again?
7
… What is a Jacobian, again?
• Chemical kinetics governing ODE system*:







7
… What is a Jacobian, again?
• Chemical kinetics governing ODE system*:







7
f =
2
6
6
6
4
˙T
˙Y1
...
˙YN
3
7
7
7
5
=
2
6
6
6
4
f0 (T, ⇢, Y1, Y2, . . . , YN )
f1 (T, ⇢, Y1, Y2, . . . , YN )
...
fN (T, ⇢, Y1, Y2, . . . , YN )
3
7
7
7
5
*Constant p assumption
… What is a Jacobian, again?
• Chemical kinetics governing ODE system*:







• Jacobian matrix:
7
f =
2
6
6
6
4
˙T
˙Y1
...
˙YN
3
7
7
7
5
=
2
6
6
6
4
f0 (T, ⇢, Y1, Y2, . . . , YN )
f1 (T, ⇢, Y1, Y2, . . . , YN )
...
fN (T, ⇢, Y1, Y2, . . . , YN )
3
7
7
7
5
J =
df
dy
=
2
6
6
6
6
4
@ ˙T
@y
@ ˙Y1
@y
...
@ ˙YN
@y
3
7
7
7
7
5
=
2
6
6
6
6
4
@ ˙T
@T
@ ˙T
@Y1
· · · @ ˙T
@YN
@ ˙Y1
@T
@ ˙Y1
@Y1
· · · @ ˙Y1
@YN
...
...
...
...
@ ˙YN
@T
@ ˙YN
@Y1
· · · @ ˙YN
@YN
3
7
7
7
7
5
*Constant p assumption
Analytical Jacobian
Following a lot of math…
8
Jk+1,1 =
Wk
⇢
✓
@ ˙!k
@T
+
˙!k
T
◆
=
Wk
⇢
NreacX
i=1
⌫ki

@ci
@T
(Rf,i Rr,i) + ci
✓
@Ri
@T
+
Rf,i Rr,i
T
◆
Jk+1,j+1 =
Wk
⇢
✓
@ ˙!k
@Yj
+ ˙!k
W
Wj
◆
=
Wk
⇢
"
˙!k
W
Wj
+
NreasX
i=1
⌫ki
✓
@ci
@Yj
(Rf,i Rr,i)
+ ci
Nsp
X
l=1
⌫0
li
W
Wj
Rf,i + ljkf,i
⇢
Wl
[Xl]⌫0
li 1
Nsp
Y
n=1
n6=l
[Xn]⌫0
ni
!
Nsp
X
l=1
⌫00
li
W
Wj
Rr,i + ljkr,i
⇢
Wl
[Xl]⌫00
li 1
Nsp
Y
n=1
n6=l
[Xn]⌫00
ni
!!!#
Analytical Jacobian (2)
…
9
J1,1 =
Nsp
X
k=1
✓
1
cp
@hk
@T
hk
c2
p
@cp
@T
◆
Wk ˙!k
⇢
+
hk
cp
@
@T
✓
Wk ˙!k
⇢
◆
=
1
cp
Nsp
X
k=1
✓
cp,k
hk
cp
@cp
@T
◆
Wk ˙!k
⇢
+ hkJk+1,1
J1,j+1 =
Nsp
X
k=1

hk
c2
p
@cp
@Yj
Wk ˙!k
⇢
+
hk
cp
@
@Yj
✓
Wk ˙!k
⇢
◆
=
1
cp
0
@ cp,j
⇢cp
Nsp
X
k=1
hkWk ˙!k +
Nsp
X
k=1
hkJk+1,j+1
1
A
(see paper for details)
Optimized Evaluation
10
Optimized Evaluation
• General idea:
10
Optimized Evaluation
• General idea:
• Large portions of Jacobian entries constant for a single
reaction
10
Optimized Evaluation
• General idea:
• Large portions of Jacobian entries constant for a single
reaction
• Compute this portion once, and update as needed for
all species pairs
10
Optimized Evaluation
• General idea:
• Large portions of Jacobian entries constant for a single
reaction
• Compute this portion once, and update as needed for
all species pairs
• Potential increase in computational efficiency
10
Optimized Evaluation
• General idea:
• Large portions of Jacobian entries constant for a single
reaction
• Compute this portion once, and update as needed for
all species pairs
• Potential increase in computational efficiency
• Most expensive calculation can be performed once per
reaction
10
Optimized Evaluation
• General idea:
• Large portions of Jacobian entries constant for a single
reaction
• Compute this portion once, and update as needed for
all species pairs
• Potential increase in computational efficiency
• Most expensive calculation can be performed once per
reaction
• Species pairs updates relatively simple in comparison
10
Validation: PaSR (1)
11
Validation: PaSR (1)
11
Fuel # Species # Reactions Source
H2/CO 13 27 Burke et al.
CH4 53 325 GRI Mech 3
C2H4 111 784 USC Mech II
Mechanisms used
Validation: PaSR (1)
11
Parameter H2/air CH4/air C2H4/air
ϕ 1
T 400, 600, and 800 K
P 1, 10, and 25 atm
# particles 100
𝜏res 10 ms 5 ms 100 μs
𝜏mix 1 ms 1 ms 10 μs
𝜏pair 10 ms 5 ms 100 μs
PaSR conditions; run for 10 residence times
Fuel # Species # Reactions Source
H2/CO 13 27 Burke et al.
CH4 53 325 GRI Mech 3
C2H4 111 784 USC Mech II
Mechanisms used
Validation: PaSR (2)
12
Validation: PaSR (2)
• First ensured species concentrations, reaction rates, species
production rates, and derivative term matched Cantera output.
12
Validation: PaSR (2)
• First ensured species concentrations, reaction rates, species
production rates, and derivative term matched Cantera output.
• Jacobian validation:
12
Validation: PaSR (2)
• First ensured species concentrations, reaction rates, species
production rates, and derivative term matched Cantera output.
• Jacobian validation:
• Due to negative densities in some cases from finite
difference, Cantera not possible
12
Validation: PaSR (2)
• First ensured species concentrations, reaction rates, species
production rates, and derivative term matched Cantera output.
• Jacobian validation:
• Due to negative densities in some cases from finite
difference, Cantera not possible
• In addition, step size issues led to large errors even with
high-order finite differences
12
Validation: PaSR (2)
• First ensured species concentrations, reaction rates, species
production rates, and derivative term matched Cantera output.
• Jacobian validation:
• Due to negative densities in some cases from finite
difference, Cantera not possible
• In addition, step size issues led to large errors even with
high-order finite differences
• Therefore: used numdifftools* for accurate finite
difference Jacobian based on pyJac derivative output
12
Validation: PaSR (2)
• First ensured species concentrations, reaction rates, species
production rates, and derivative term matched Cantera output.
• Jacobian validation:
• Due to negative densities in some cases from finite
difference, Cantera not possible
• In addition, step size issues led to large errors even with
high-order finite differences
• Therefore: used numdifftools* for accurate finite
difference Jacobian based on pyJac derivative output
12
*uses multiple-term Richard extrapolation of
central differences (order 4–10)
Validation: PaSR (3)
13
Mechanism Sample size Mean Error Max Error
H2/CO 900,900 2.4×10-6 % 0.87%
CH4 450,900 3.4×10-3 % 0.26%
C2H4 91,800 2.2×10-5 % 3.4×10-3 %
Validation: PaSR (3)
• “Error”: 2-norm of relative difference with FD
13
Mechanism Sample size Mean Error Max Error
H2/CO 900,900 2.4×10-6 % 0.87%
CH4 450,900 3.4×10-3 % 0.26%
C2H4 91,800 2.2×10-5 % 3.4×10-3 %
Validation: PaSR (3)
• “Error”: 2-norm of relative difference with FD
• Discrepancies between analytical (CPU and GPU) and
FD Jacobian matrices small
13
Mechanism Sample size Mean Error Max Error
H2/CO 900,900 2.4×10-6 % 0.87%
CH4 450,900 3.4×10-3 % 0.26%
C2H4 91,800 2.2×10-5 % 3.4×10-3 %
Validation: PaSR (3)
• “Error”: 2-norm of relative difference with FD
• Discrepancies between analytical (CPU and GPU) and
FD Jacobian matrices small
• Maximum error less than 1% for all cases considered.
13
Mechanism Sample size Mean Error Max Error
H2/CO 900,900 2.4×10-6 % 0.87%
CH4 450,900 3.4×10-3 % 0.26%
C2H4 91,800 2.2×10-5 % 3.4×10-3 %
pyJac Performance (CPU)
14
pyJac Performance (CPU)
• Compare
performance of
pyJac, TChem1, and
finite difference
14
pyJac Performance (CPU)
• Compare
performance of
pyJac, TChem1, and
finite difference
14
1Safta C, Najm HN, Knio OM. TChem - A Software
Toolkit for the Analysis of Complex Kinetic
Models. Sandia National Laboratories; 2011.
pyJac Performance (CPU)
• Compare
performance of
pyJac, TChem1, and
finite difference
• PaSR data from
validation used here
14
1Safta C, Najm HN, Knio OM. TChem - A Software
Toolkit for the Analysis of Complex Kinetic
Models. Sandia National Laboratories; 2011.
pyJac Performance (CPU)
• Compare
performance of
pyJac, TChem1, and
finite difference
• PaSR data from
validation used here
• Mean runtime of 10
runs / # conditions
14
1Safta C, Najm HN, Knio OM. TChem - A Software
Toolkit for the Analysis of Complex Kinetic
Models. Sandia National Laboratories; 2011.
pyJac Performance (CPU)
15
0.95×
1.91×
2.82×
5.15×
8.68× 6.41×
pyJac Performance (CPU)
15
• Factor of 2–3×
improvement for
smaller
mechanisms
0.95×
1.91×
2.82×
5.15×
8.68× 6.41×
pyJac Performance (CPU)
15
• Factor of 2–3×
improvement for
smaller
mechanisms
• Similar/worse
performance for
largest?
0.95×
1.91×
2.82×
5.15×
8.68× 6.41×
pyJac Performance (CPU)
15
• Factor of 2–3×
improvement for
smaller
mechanisms
• Similar/worse
performance for
largest?
• Slight superlinear
scaling for both
0.95×
1.91×
2.82×
5.15×
8.68× 6.41×
pyJac Performance (GPU)
16
2.63×
3.13× 3.59×
pyJac Performance (GPU)
• One Jacobian matrix evaluated per GPU thread
16
2.63×
3.13× 3.59×
pyJac Performance (GPU)
• One Jacobian matrix evaluated per GPU thread
• Full utilization at same number of conditions, likely due to
memory bandwidth saturation
16
2.63×
3.13× 3.59×
pyJac Performance (GPU)
• One Jacobian matrix evaluated per GPU thread
• Full utilization at same number of conditions, likely due to
memory bandwidth saturation
• Again, slightly super linear growth with mechanism size
16
2.63×
3.13× 3.59×
Future Work
17
Future Work
• Why do pyJac and TChem perform similarly for the
larger mechanism? Explore using larger mechanisms
17
Future Work
• Why do pyJac and TChem perform similarly for the
larger mechanism? Explore using larger mechanisms
• Cache optimization: Reorder species/reactions to
improve cache hit rates
17
Future Work
• Why do pyJac and TChem perform similarly for the
larger mechanism? Explore using larger mechanisms
• Cache optimization: Reorder species/reactions to
improve cache hit rates
• Shared memory usage for GPU pyJac acceleration
17
Future Work
• Why do pyJac and TChem perform similarly for the
larger mechanism? Explore using larger mechanisms
• Cache optimization: Reorder species/reactions to
improve cache hit rates
• Shared memory usage for GPU pyJac acceleration
• Eventual code goals:
17
Future Work
• Why do pyJac and TChem perform similarly for the
larger mechanism? Explore using larger mechanisms
• Cache optimization: Reorder species/reactions to
improve cache hit rates
• Shared memory usage for GPU pyJac acceleration
• Eventual code goals:
• Sparse matrix formats
17
Future Work
• Why do pyJac and TChem perform similarly for the
larger mechanism? Explore using larger mechanisms
• Cache optimization: Reorder species/reactions to
improve cache hit rates
• Shared memory usage for GPU pyJac acceleration
• Eventual code goals:
• Sparse matrix formats
• Support for constant volume
17
Future Work
• Why do pyJac and TChem perform similarly for the
larger mechanism? Explore using larger mechanisms
• Cache optimization: Reorder species/reactions to
improve cache hit rates
• Shared memory usage for GPU pyJac acceleration
• Eventual code goals:
• Sparse matrix formats
• Support for constant volume
• Code generation in Fortran and Matlab
17
Conclusions
18
Conclusions
• Developed analytical, exact Jacobian generator
that supports both CPU and GPU platforms (and
all modern reaction rate formulations
18
Conclusions
• Developed analytical, exact Jacobian generator
that supports both CPU and GPU platforms (and
all modern reaction rate formulations
• pyJac v0.9-beta available today: 

https://github.com/kyleniemeyer/pyJac
18
Thank you! Questions?
19
Thank you! Questions?
19
?
Thank you! Questions?
19
?Looking for graduate students!
Backup Slides
20
PaSR
• Cantera-based PaSR implementation; premixed combustion
with fresh fuel/air mixture & pilot streams
• Pairwise mixing, reaction fractional steps, inflow/outflow
events
21
Richardson Extrapolation
• A simple forward first order derivative approximation:

• Rewritten as:

• Now let

• Finally, combining these:

• Combined with use of high-order derivatives, this approach
allows use of larger step sizes.
22
f0
(x) =
f(x + h) f(x)
h
+
h
2
f00
(x) +
h2
3!
f000
(x) . . .
f0
(x) = Lh +
h
2
f00
(x) +
h2
3!
f000
(x) . . .
f0
(x) = Lh/2 +
h
4
f00
(x) +
h2
4 · 3!
f000
(x) . . .
f0
(x) = 2 ⇥ (2) (1) = 2Lh/2 Lh + O(h2
) + . . .

Weitere ähnliche Inhalte

Was ist angesagt?

Measurement systems analysis v1.1
Measurement systems analysis v1.1Measurement systems analysis v1.1
Measurement systems analysis v1.1Alexander Polyakov
 
Surfactant flooding reservoir simulation
Surfactant flooding reservoir simulationSurfactant flooding reservoir simulation
Surfactant flooding reservoir simulationHesham Mokhtar Ali
 
STATISTICAL PROCESS CONTROL(PPT).pptx
STATISTICAL PROCESS CONTROL(PPT).pptxSTATISTICAL PROCESS CONTROL(PPT).pptx
STATISTICAL PROCESS CONTROL(PPT).pptxmayankdubey99
 
Genetic algorithm raktim
Genetic algorithm raktimGenetic algorithm raktim
Genetic algorithm raktimRaktim Halder
 
MSA presentation
MSA presentationMSA presentation
MSA presentationsanjay deo
 
Basics_of_petroleum_Engineering_for_well.ppt
Basics_of_petroleum_Engineering_for_well.pptBasics_of_petroleum_Engineering_for_well.ppt
Basics_of_petroleum_Engineering_for_well.pptBadeesGhazal
 
Formation evaluation - An Overview
Formation evaluation - An OverviewFormation evaluation - An Overview
Formation evaluation - An OverviewMuhammad Suleman
 
Statistical Process Control,Control Chart and Process Capability
Statistical Process Control,Control Chart and Process CapabilityStatistical Process Control,Control Chart and Process Capability
Statistical Process Control,Control Chart and Process Capabilityvaidehishah25
 
Statistical Process Control
Statistical Process ControlStatistical Process Control
Statistical Process ControlMarwa Abo-Amra
 
Toyota key questions and OSKKK par René Aernoudts, Lean Global Network - Lean...
Toyota key questions and OSKKK par René Aernoudts, Lean Global Network - Lean...Toyota key questions and OSKKK par René Aernoudts, Lean Global Network - Lean...
Toyota key questions and OSKKK par René Aernoudts, Lean Global Network - Lean...Institut Lean France
 
Six Sigma Yellow Belt Training
Six Sigma Yellow Belt TrainingSix Sigma Yellow Belt Training
Six Sigma Yellow Belt TrainingInvensis Learning
 
Lecture 14 cusum and ewma
Lecture 14 cusum and ewmaLecture 14 cusum and ewma
Lecture 14 cusum and ewmaIngrid McKenzie
 
six-sigma-and-minitab-13 (1).ppt
six-sigma-and-minitab-13 (1).pptsix-sigma-and-minitab-13 (1).ppt
six-sigma-and-minitab-13 (1).pptPTD QUYCOCTU
 
Lean Six Sigma Yellow Belt.pptx
Lean Six Sigma Yellow Belt.pptxLean Six Sigma Yellow Belt.pptx
Lean Six Sigma Yellow Belt.pptxMohammad Amr
 
Random number generation
Random number generationRandom number generation
Random number generationVinit Dantkale
 
History matching with EnKF
History matching with EnKFHistory matching with EnKF
History matching with EnKFzyedb
 
Design of Experiment ppt by Ganesh Asabe
Design of Experiment ppt by Ganesh AsabeDesign of Experiment ppt by Ganesh Asabe
Design of Experiment ppt by Ganesh AsabeGanesh355057
 

Was ist angesagt? (20)

Measurement systems analysis v1.1
Measurement systems analysis v1.1Measurement systems analysis v1.1
Measurement systems analysis v1.1
 
Surfactant flooding reservoir simulation
Surfactant flooding reservoir simulationSurfactant flooding reservoir simulation
Surfactant flooding reservoir simulation
 
STATISTICAL PROCESS CONTROL(PPT).pptx
STATISTICAL PROCESS CONTROL(PPT).pptxSTATISTICAL PROCESS CONTROL(PPT).pptx
STATISTICAL PROCESS CONTROL(PPT).pptx
 
Genetic algorithm raktim
Genetic algorithm raktimGenetic algorithm raktim
Genetic algorithm raktim
 
Basics of Process Capability
Basics of Process CapabilityBasics of Process Capability
Basics of Process Capability
 
PROCESS CAPABILITY
PROCESS CAPABILITYPROCESS CAPABILITY
PROCESS CAPABILITY
 
Fmea Final
Fmea FinalFmea Final
Fmea Final
 
MSA presentation
MSA presentationMSA presentation
MSA presentation
 
Basics_of_petroleum_Engineering_for_well.ppt
Basics_of_petroleum_Engineering_for_well.pptBasics_of_petroleum_Engineering_for_well.ppt
Basics_of_petroleum_Engineering_for_well.ppt
 
Formation evaluation - An Overview
Formation evaluation - An OverviewFormation evaluation - An Overview
Formation evaluation - An Overview
 
Statistical Process Control,Control Chart and Process Capability
Statistical Process Control,Control Chart and Process CapabilityStatistical Process Control,Control Chart and Process Capability
Statistical Process Control,Control Chart and Process Capability
 
Statistical Process Control
Statistical Process ControlStatistical Process Control
Statistical Process Control
 
Toyota key questions and OSKKK par René Aernoudts, Lean Global Network - Lean...
Toyota key questions and OSKKK par René Aernoudts, Lean Global Network - Lean...Toyota key questions and OSKKK par René Aernoudts, Lean Global Network - Lean...
Toyota key questions and OSKKK par René Aernoudts, Lean Global Network - Lean...
 
Six Sigma Yellow Belt Training
Six Sigma Yellow Belt TrainingSix Sigma Yellow Belt Training
Six Sigma Yellow Belt Training
 
Lecture 14 cusum and ewma
Lecture 14 cusum and ewmaLecture 14 cusum and ewma
Lecture 14 cusum and ewma
 
six-sigma-and-minitab-13 (1).ppt
six-sigma-and-minitab-13 (1).pptsix-sigma-and-minitab-13 (1).ppt
six-sigma-and-minitab-13 (1).ppt
 
Lean Six Sigma Yellow Belt.pptx
Lean Six Sigma Yellow Belt.pptxLean Six Sigma Yellow Belt.pptx
Lean Six Sigma Yellow Belt.pptx
 
Random number generation
Random number generationRandom number generation
Random number generation
 
History matching with EnKF
History matching with EnKFHistory matching with EnKF
History matching with EnKF
 
Design of Experiment ppt by Ganesh Asabe
Design of Experiment ppt by Ganesh AsabeDesign of Experiment ppt by Ganesh Asabe
Design of Experiment ppt by Ganesh Asabe
 

Ähnlich wie Initial investigation of pyJac: an analytical Jacobian generator for chemical kinetics

SMi_Presentation_v3_website_version.ppt
SMi_Presentation_v3_website_version.pptSMi_Presentation_v3_website_version.ppt
SMi_Presentation_v3_website_version.ppthirbogeremew2
 
High-throughput and Automated Process Development for Accelerated Biotherapeu...
High-throughput and Automated Process Development for Accelerated Biotherapeu...High-throughput and Automated Process Development for Accelerated Biotherapeu...
High-throughput and Automated Process Development for Accelerated Biotherapeu...KBI Biopharma
 
Introduction to real-Time Quantitative PCR (qPCR) - Download the slides
Introduction to real-Time Quantitative PCR (qPCR) - Download the slidesIntroduction to real-Time Quantitative PCR (qPCR) - Download the slides
Introduction to real-Time Quantitative PCR (qPCR) - Download the slidesQIAGEN
 
PCR Array Data Analysis Tutorial: qPCR Technology Webinar Series Part 3
PCR Array Data Analysis Tutorial: qPCR Technology Webinar Series Part 3PCR Array Data Analysis Tutorial: qPCR Technology Webinar Series Part 3
PCR Array Data Analysis Tutorial: qPCR Technology Webinar Series Part 3QIAGEN
 
From Screening to QC: Development Considerations for Octet Methods
From Screening to QC: Development Considerations for Octet MethodsFrom Screening to QC: Development Considerations for Octet Methods
From Screening to QC: Development Considerations for Octet MethodsKBI Biopharma
 
Q pcr symposium2007-pcrarray
Q pcr symposium2007-pcrarrayQ pcr symposium2007-pcrarray
Q pcr symposium2007-pcrarrayElsa von Licy
 
Introduction to Real Time PCR (Q-PCR/qPCR/qrt-PCR): qPCR Technology Webinar S...
Introduction to Real Time PCR (Q-PCR/qPCR/qrt-PCR): qPCR Technology Webinar S...Introduction to Real Time PCR (Q-PCR/qPCR/qrt-PCR): qPCR Technology Webinar S...
Introduction to Real Time PCR (Q-PCR/qPCR/qrt-PCR): qPCR Technology Webinar S...QIAGEN
 
Development of 226Ra Activity Analysis for Live Fish Using Gamma-Ray Spectrom...
Development of 226Ra Activity Analysis for Live Fish Using Gamma-Ray Spectrom...Development of 226Ra Activity Analysis for Live Fish Using Gamma-Ray Spectrom...
Development of 226Ra Activity Analysis for Live Fish Using Gamma-Ray Spectrom...GromekWaczak
 
Q pcr introduction 2013
Q pcr introduction 2013Q pcr introduction 2013
Q pcr introduction 2013Elsa von Licy
 
Comparative Study of Granger Causality Algorithm for Gene Regulatory Network
Comparative Study of Granger Causality Algorithm for Gene Regulatory NetworkComparative Study of Granger Causality Algorithm for Gene Regulatory Network
Comparative Study of Granger Causality Algorithm for Gene Regulatory NetworkZhafir Aglna Tijani
 
Summer Internship Project
Summer Internship ProjectSummer Internship Project
Summer Internship Projectknaadhan
 
1073958 wp guide-develop-pcr_primers_1012
1073958 wp guide-develop-pcr_primers_10121073958 wp guide-develop-pcr_primers_1012
1073958 wp guide-develop-pcr_primers_1012Elsa von Licy
 
PV Module Characterization Methods at CFV Solar Test Laboratory
PV Module Characterization Methods at CFV Solar Test LaboratoryPV Module Characterization Methods at CFV Solar Test Laboratory
PV Module Characterization Methods at CFV Solar Test LaboratoryCFVSolar
 
How to control variability in environmental data
How to control variability in environmental dataHow to control variability in environmental data
How to control variability in environmental dataChemistry Matters Inc.
 
PAN Files from IEC 61853-1 Test Data: Why Using Datasheet I-V Values is a Bad...
PAN Files from IEC 61853-1 Test Data: Why Using Datasheet I-V Values is a Bad...PAN Files from IEC 61853-1 Test Data: Why Using Datasheet I-V Values is a Bad...
PAN Files from IEC 61853-1 Test Data: Why Using Datasheet I-V Values is a Bad...Kyumin Lee
 
Somatic mutation webinar
Somatic mutation webinarSomatic mutation webinar
Somatic mutation webinarElsa von Licy
 

Ähnlich wie Initial investigation of pyJac: an analytical Jacobian generator for chemical kinetics (20)

Prediction of pKa from chemical structure using free and open source tools
Prediction of pKa from chemical structure using free and open source toolsPrediction of pKa from chemical structure using free and open source tools
Prediction of pKa from chemical structure using free and open source tools
 
SMi_Presentation_v3_website_version.ppt
SMi_Presentation_v3_website_version.pptSMi_Presentation_v3_website_version.ppt
SMi_Presentation_v3_website_version.ppt
 
High-throughput and Automated Process Development for Accelerated Biotherapeu...
High-throughput and Automated Process Development for Accelerated Biotherapeu...High-throughput and Automated Process Development for Accelerated Biotherapeu...
High-throughput and Automated Process Development for Accelerated Biotherapeu...
 
Introduction to real-Time Quantitative PCR (qPCR) - Download the slides
Introduction to real-Time Quantitative PCR (qPCR) - Download the slidesIntroduction to real-Time Quantitative PCR (qPCR) - Download the slides
Introduction to real-Time Quantitative PCR (qPCR) - Download the slides
 
PCR Array Data Analysis Tutorial: qPCR Technology Webinar Series Part 3
PCR Array Data Analysis Tutorial: qPCR Technology Webinar Series Part 3PCR Array Data Analysis Tutorial: qPCR Technology Webinar Series Part 3
PCR Array Data Analysis Tutorial: qPCR Technology Webinar Series Part 3
 
From Screening to QC: Development Considerations for Octet Methods
From Screening to QC: Development Considerations for Octet MethodsFrom Screening to QC: Development Considerations for Octet Methods
From Screening to QC: Development Considerations for Octet Methods
 
Q pcr symposium2007-pcrarray
Q pcr symposium2007-pcrarrayQ pcr symposium2007-pcrarray
Q pcr symposium2007-pcrarray
 
Introduction to Real Time PCR (Q-PCR/qPCR/qrt-PCR): qPCR Technology Webinar S...
Introduction to Real Time PCR (Q-PCR/qPCR/qrt-PCR): qPCR Technology Webinar S...Introduction to Real Time PCR (Q-PCR/qPCR/qrt-PCR): qPCR Technology Webinar S...
Introduction to Real Time PCR (Q-PCR/qPCR/qrt-PCR): qPCR Technology Webinar S...
 
Development of 226Ra Activity Analysis for Live Fish Using Gamma-Ray Spectrom...
Development of 226Ra Activity Analysis for Live Fish Using Gamma-Ray Spectrom...Development of 226Ra Activity Analysis for Live Fish Using Gamma-Ray Spectrom...
Development of 226Ra Activity Analysis for Live Fish Using Gamma-Ray Spectrom...
 
Q pcr introduction 2013
Q pcr introduction 2013Q pcr introduction 2013
Q pcr introduction 2013
 
Comparative Study of Granger Causality Algorithm for Gene Regulatory Network
Comparative Study of Granger Causality Algorithm for Gene Regulatory NetworkComparative Study of Granger Causality Algorithm for Gene Regulatory Network
Comparative Study of Granger Causality Algorithm for Gene Regulatory Network
 
Primer designing
Primer designingPrimer designing
Primer designing
 
David Lovett, Perceptive Engineering
David Lovett, Perceptive EngineeringDavid Lovett, Perceptive Engineering
David Lovett, Perceptive Engineering
 
Summer Internship Project
Summer Internship ProjectSummer Internship Project
Summer Internship Project
 
1073958 wp guide-develop-pcr_primers_1012
1073958 wp guide-develop-pcr_primers_10121073958 wp guide-develop-pcr_primers_1012
1073958 wp guide-develop-pcr_primers_1012
 
PV Module Characterization Methods at CFV Solar Test Laboratory
PV Module Characterization Methods at CFV Solar Test LaboratoryPV Module Characterization Methods at CFV Solar Test Laboratory
PV Module Characterization Methods at CFV Solar Test Laboratory
 
How to control variability in environmental data
How to control variability in environmental dataHow to control variability in environmental data
How to control variability in environmental data
 
14184864.ppt
14184864.ppt14184864.ppt
14184864.ppt
 
PAN Files from IEC 61853-1 Test Data: Why Using Datasheet I-V Values is a Bad...
PAN Files from IEC 61853-1 Test Data: Why Using Datasheet I-V Values is a Bad...PAN Files from IEC 61853-1 Test Data: Why Using Datasheet I-V Values is a Bad...
PAN Files from IEC 61853-1 Test Data: Why Using Datasheet I-V Values is a Bad...
 
Somatic mutation webinar
Somatic mutation webinarSomatic mutation webinar
Somatic mutation webinar
 

Kürzlich hochgeladen

Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfKamal Acharya
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...Call Girls in Nagpur High Profile
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performancesivaprakash250
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxfenichawla
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 

Kürzlich hochgeladen (20)

Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 

Initial investigation of pyJac: an analytical Jacobian generator for chemical kinetics

  • 1. Initial investigation of pyJac: an analytical Jacobian generator for chemical kinetics Kyle Niemeyer Oregon State University Nicholas Curtis, Chih-Jen Sung University of Connecticut Fall 2015 Meeting of WSSCI 5 October 2015 Funding: NSF awards 1535065 & 1534688
  • 2. 0 5 10 15 20 25 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 Numberofspecies log10(Characteristic time (s)) Stiffness of kinetic models 2
  • 3. 0 5 10 15 20 25 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 Numberofspecies log10(Characteristic time (s)) Stiffness of kinetic models Characteristic creation times of methane oxidation 2
  • 7. Motivation • Stiffness • Require Jacobian matrix—repeatedly evaluated and factorized 3 implicit integration algorithms
  • 8. Motivation • Stiffness • Require Jacobian matrix—repeatedly evaluated and factorized • Jacobian typically obtained via finite differences 3 implicit integration algorithms
  • 9. Motivation • Stiffness • Require Jacobian matrix—repeatedly evaluated and factorized • Jacobian typically obtained via finite differences • Scales with (Nspecies)2 3 implicit integration algorithms
  • 10. NumberofReactions 10 100 1000 10000 100000 Number of Species 10 100 1000 10000 before 2005 since 2005 Size of kinetic models 4
  • 11. NumberofReactions 10 100 1000 10000 100000 Number of Species 10 100 1000 10000 before 2005 since 2005 Size of kinetic models Hydrocarbon oxidation kinetic models poses challenges even for 0D simulations. 4
  • 12. NumberofReactions 10 100 1000 10000 100000 Number of Species 10 100 1000 10000 before 2005 since 2005 Size of kinetic models Hydrocarbon oxidation kinetic models poses challenges even for 0D simulations. 4 Transportation fuels
  • 13. NumberofReactions 10 100 1000 10000 100000 Number of Species 10 100 1000 10000 before 2005 since 2005 Size of kinetic models Hydrocarbon oxidation kinetic models poses challenges even for 0D simulations. 4 2-methylalkanes
  • 14. Motivation 5 implicit integration algorithms• Stiffness • Require Jacobian matrix—repeatedly evaluated and factorized • Jacobian typically obtained via finite differences • Scales with (Nspecies)2
  • 15. Motivation • Also accuracy issues for CSP, CEMA 5 implicit integration algorithms• Stiffness • Require Jacobian matrix—repeatedly evaluated and factorized • Jacobian typically obtained via finite differences • Scales with (Nspecies)2
  • 17. Introducing pyJac • Accelerate chemical kinetic integration by providing source code to evaluate chemical kinetic Jacobian matrices analytically 6
  • 18. Introducing pyJac • Accelerate chemical kinetic integration by providing source code to evaluate chemical kinetic Jacobian matrices analytically • pyJac capable of generating source code for CPU and GPU architectures 6
  • 19. Introducing pyJac • Accelerate chemical kinetic integration by providing source code to evaluate chemical kinetic Jacobian matrices analytically • pyJac capable of generating source code for CPU and GPU architectures • Compatible with both CHEMKIN- and Cantera- format mechanisms 6
  • 20. … What is a Jacobian, again? 7
  • 21. … What is a Jacobian, again? • Chemical kinetics governing ODE system*:
 
 
 
 7
  • 22. … What is a Jacobian, again? • Chemical kinetics governing ODE system*:
 
 
 
 7 f = 2 6 6 6 4 ˙T ˙Y1 ... ˙YN 3 7 7 7 5 = 2 6 6 6 4 f0 (T, ⇢, Y1, Y2, . . . , YN ) f1 (T, ⇢, Y1, Y2, . . . , YN ) ... fN (T, ⇢, Y1, Y2, . . . , YN ) 3 7 7 7 5 *Constant p assumption
  • 23. … What is a Jacobian, again? • Chemical kinetics governing ODE system*:
 
 
 
 • Jacobian matrix: 7 f = 2 6 6 6 4 ˙T ˙Y1 ... ˙YN 3 7 7 7 5 = 2 6 6 6 4 f0 (T, ⇢, Y1, Y2, . . . , YN ) f1 (T, ⇢, Y1, Y2, . . . , YN ) ... fN (T, ⇢, Y1, Y2, . . . , YN ) 3 7 7 7 5 J = df dy = 2 6 6 6 6 4 @ ˙T @y @ ˙Y1 @y ... @ ˙YN @y 3 7 7 7 7 5 = 2 6 6 6 6 4 @ ˙T @T @ ˙T @Y1 · · · @ ˙T @YN @ ˙Y1 @T @ ˙Y1 @Y1 · · · @ ˙Y1 @YN ... ... ... ... @ ˙YN @T @ ˙YN @Y1 · · · @ ˙YN @YN 3 7 7 7 7 5 *Constant p assumption
  • 24. Analytical Jacobian Following a lot of math… 8 Jk+1,1 = Wk ⇢ ✓ @ ˙!k @T + ˙!k T ◆ = Wk ⇢ NreacX i=1 ⌫ki  @ci @T (Rf,i Rr,i) + ci ✓ @Ri @T + Rf,i Rr,i T ◆ Jk+1,j+1 = Wk ⇢ ✓ @ ˙!k @Yj + ˙!k W Wj ◆ = Wk ⇢ " ˙!k W Wj + NreasX i=1 ⌫ki ✓ @ci @Yj (Rf,i Rr,i) + ci Nsp X l=1 ⌫0 li W Wj Rf,i + ljkf,i ⇢ Wl [Xl]⌫0 li 1 Nsp Y n=1 n6=l [Xn]⌫0 ni ! Nsp X l=1 ⌫00 li W Wj Rr,i + ljkr,i ⇢ Wl [Xl]⌫00 li 1 Nsp Y n=1 n6=l [Xn]⌫00 ni !!!#
  • 25. Analytical Jacobian (2) … 9 J1,1 = Nsp X k=1 ✓ 1 cp @hk @T hk c2 p @cp @T ◆ Wk ˙!k ⇢ + hk cp @ @T ✓ Wk ˙!k ⇢ ◆ = 1 cp Nsp X k=1 ✓ cp,k hk cp @cp @T ◆ Wk ˙!k ⇢ + hkJk+1,1 J1,j+1 = Nsp X k=1  hk c2 p @cp @Yj Wk ˙!k ⇢ + hk cp @ @Yj ✓ Wk ˙!k ⇢ ◆ = 1 cp 0 @ cp,j ⇢cp Nsp X k=1 hkWk ˙!k + Nsp X k=1 hkJk+1,j+1 1 A (see paper for details)
  • 28. Optimized Evaluation • General idea: • Large portions of Jacobian entries constant for a single reaction 10
  • 29. Optimized Evaluation • General idea: • Large portions of Jacobian entries constant for a single reaction • Compute this portion once, and update as needed for all species pairs 10
  • 30. Optimized Evaluation • General idea: • Large portions of Jacobian entries constant for a single reaction • Compute this portion once, and update as needed for all species pairs • Potential increase in computational efficiency 10
  • 31. Optimized Evaluation • General idea: • Large portions of Jacobian entries constant for a single reaction • Compute this portion once, and update as needed for all species pairs • Potential increase in computational efficiency • Most expensive calculation can be performed once per reaction 10
  • 32. Optimized Evaluation • General idea: • Large portions of Jacobian entries constant for a single reaction • Compute this portion once, and update as needed for all species pairs • Potential increase in computational efficiency • Most expensive calculation can be performed once per reaction • Species pairs updates relatively simple in comparison 10
  • 34. Validation: PaSR (1) 11 Fuel # Species # Reactions Source H2/CO 13 27 Burke et al. CH4 53 325 GRI Mech 3 C2H4 111 784 USC Mech II Mechanisms used
  • 35. Validation: PaSR (1) 11 Parameter H2/air CH4/air C2H4/air ϕ 1 T 400, 600, and 800 K P 1, 10, and 25 atm # particles 100 𝜏res 10 ms 5 ms 100 μs 𝜏mix 1 ms 1 ms 10 μs 𝜏pair 10 ms 5 ms 100 μs PaSR conditions; run for 10 residence times Fuel # Species # Reactions Source H2/CO 13 27 Burke et al. CH4 53 325 GRI Mech 3 C2H4 111 784 USC Mech II Mechanisms used
  • 37. Validation: PaSR (2) • First ensured species concentrations, reaction rates, species production rates, and derivative term matched Cantera output. 12
  • 38. Validation: PaSR (2) • First ensured species concentrations, reaction rates, species production rates, and derivative term matched Cantera output. • Jacobian validation: 12
  • 39. Validation: PaSR (2) • First ensured species concentrations, reaction rates, species production rates, and derivative term matched Cantera output. • Jacobian validation: • Due to negative densities in some cases from finite difference, Cantera not possible 12
  • 40. Validation: PaSR (2) • First ensured species concentrations, reaction rates, species production rates, and derivative term matched Cantera output. • Jacobian validation: • Due to negative densities in some cases from finite difference, Cantera not possible • In addition, step size issues led to large errors even with high-order finite differences 12
  • 41. Validation: PaSR (2) • First ensured species concentrations, reaction rates, species production rates, and derivative term matched Cantera output. • Jacobian validation: • Due to negative densities in some cases from finite difference, Cantera not possible • In addition, step size issues led to large errors even with high-order finite differences • Therefore: used numdifftools* for accurate finite difference Jacobian based on pyJac derivative output 12
  • 42. Validation: PaSR (2) • First ensured species concentrations, reaction rates, species production rates, and derivative term matched Cantera output. • Jacobian validation: • Due to negative densities in some cases from finite difference, Cantera not possible • In addition, step size issues led to large errors even with high-order finite differences • Therefore: used numdifftools* for accurate finite difference Jacobian based on pyJac derivative output 12 *uses multiple-term Richard extrapolation of central differences (order 4–10)
  • 43. Validation: PaSR (3) 13 Mechanism Sample size Mean Error Max Error H2/CO 900,900 2.4×10-6 % 0.87% CH4 450,900 3.4×10-3 % 0.26% C2H4 91,800 2.2×10-5 % 3.4×10-3 %
  • 44. Validation: PaSR (3) • “Error”: 2-norm of relative difference with FD 13 Mechanism Sample size Mean Error Max Error H2/CO 900,900 2.4×10-6 % 0.87% CH4 450,900 3.4×10-3 % 0.26% C2H4 91,800 2.2×10-5 % 3.4×10-3 %
  • 45. Validation: PaSR (3) • “Error”: 2-norm of relative difference with FD • Discrepancies between analytical (CPU and GPU) and FD Jacobian matrices small 13 Mechanism Sample size Mean Error Max Error H2/CO 900,900 2.4×10-6 % 0.87% CH4 450,900 3.4×10-3 % 0.26% C2H4 91,800 2.2×10-5 % 3.4×10-3 %
  • 46. Validation: PaSR (3) • “Error”: 2-norm of relative difference with FD • Discrepancies between analytical (CPU and GPU) and FD Jacobian matrices small • Maximum error less than 1% for all cases considered. 13 Mechanism Sample size Mean Error Max Error H2/CO 900,900 2.4×10-6 % 0.87% CH4 450,900 3.4×10-3 % 0.26% C2H4 91,800 2.2×10-5 % 3.4×10-3 %
  • 48. pyJac Performance (CPU) • Compare performance of pyJac, TChem1, and finite difference 14
  • 49. pyJac Performance (CPU) • Compare performance of pyJac, TChem1, and finite difference 14 1Safta C, Najm HN, Knio OM. TChem - A Software Toolkit for the Analysis of Complex Kinetic Models. Sandia National Laboratories; 2011.
  • 50. pyJac Performance (CPU) • Compare performance of pyJac, TChem1, and finite difference • PaSR data from validation used here 14 1Safta C, Najm HN, Knio OM. TChem - A Software Toolkit for the Analysis of Complex Kinetic Models. Sandia National Laboratories; 2011.
  • 51. pyJac Performance (CPU) • Compare performance of pyJac, TChem1, and finite difference • PaSR data from validation used here • Mean runtime of 10 runs / # conditions 14 1Safta C, Najm HN, Knio OM. TChem - A Software Toolkit for the Analysis of Complex Kinetic Models. Sandia National Laboratories; 2011.
  • 53. pyJac Performance (CPU) 15 • Factor of 2–3× improvement for smaller mechanisms 0.95× 1.91× 2.82× 5.15× 8.68× 6.41×
  • 54. pyJac Performance (CPU) 15 • Factor of 2–3× improvement for smaller mechanisms • Similar/worse performance for largest? 0.95× 1.91× 2.82× 5.15× 8.68× 6.41×
  • 55. pyJac Performance (CPU) 15 • Factor of 2–3× improvement for smaller mechanisms • Similar/worse performance for largest? • Slight superlinear scaling for both 0.95× 1.91× 2.82× 5.15× 8.68× 6.41×
  • 57. pyJac Performance (GPU) • One Jacobian matrix evaluated per GPU thread 16 2.63× 3.13× 3.59×
  • 58. pyJac Performance (GPU) • One Jacobian matrix evaluated per GPU thread • Full utilization at same number of conditions, likely due to memory bandwidth saturation 16 2.63× 3.13× 3.59×
  • 59. pyJac Performance (GPU) • One Jacobian matrix evaluated per GPU thread • Full utilization at same number of conditions, likely due to memory bandwidth saturation • Again, slightly super linear growth with mechanism size 16 2.63× 3.13× 3.59×
  • 61. Future Work • Why do pyJac and TChem perform similarly for the larger mechanism? Explore using larger mechanisms 17
  • 62. Future Work • Why do pyJac and TChem perform similarly for the larger mechanism? Explore using larger mechanisms • Cache optimization: Reorder species/reactions to improve cache hit rates 17
  • 63. Future Work • Why do pyJac and TChem perform similarly for the larger mechanism? Explore using larger mechanisms • Cache optimization: Reorder species/reactions to improve cache hit rates • Shared memory usage for GPU pyJac acceleration 17
  • 64. Future Work • Why do pyJac and TChem perform similarly for the larger mechanism? Explore using larger mechanisms • Cache optimization: Reorder species/reactions to improve cache hit rates • Shared memory usage for GPU pyJac acceleration • Eventual code goals: 17
  • 65. Future Work • Why do pyJac and TChem perform similarly for the larger mechanism? Explore using larger mechanisms • Cache optimization: Reorder species/reactions to improve cache hit rates • Shared memory usage for GPU pyJac acceleration • Eventual code goals: • Sparse matrix formats 17
  • 66. Future Work • Why do pyJac and TChem perform similarly for the larger mechanism? Explore using larger mechanisms • Cache optimization: Reorder species/reactions to improve cache hit rates • Shared memory usage for GPU pyJac acceleration • Eventual code goals: • Sparse matrix formats • Support for constant volume 17
  • 67. Future Work • Why do pyJac and TChem perform similarly for the larger mechanism? Explore using larger mechanisms • Cache optimization: Reorder species/reactions to improve cache hit rates • Shared memory usage for GPU pyJac acceleration • Eventual code goals: • Sparse matrix formats • Support for constant volume • Code generation in Fortran and Matlab 17
  • 69. Conclusions • Developed analytical, exact Jacobian generator that supports both CPU and GPU platforms (and all modern reaction rate formulations 18
  • 70. Conclusions • Developed analytical, exact Jacobian generator that supports both CPU and GPU platforms (and all modern reaction rate formulations • pyJac v0.9-beta available today: 
 https://github.com/kyleniemeyer/pyJac 18
  • 73. Thank you! Questions? 19 ?Looking for graduate students!
  • 75. PaSR • Cantera-based PaSR implementation; premixed combustion with fresh fuel/air mixture & pilot streams • Pairwise mixing, reaction fractional steps, inflow/outflow events 21
  • 76. Richardson Extrapolation • A simple forward first order derivative approximation:
 • Rewritten as:
 • Now let
 • Finally, combining these:
 • Combined with use of high-order derivatives, this approach allows use of larger step sizes. 22 f0 (x) = f(x + h) f(x) h + h 2 f00 (x) + h2 3! f000 (x) . . . f0 (x) = Lh + h 2 f00 (x) + h2 3! f000 (x) . . . f0 (x) = Lh/2 + h 4 f00 (x) + h2 4 · 3! f000 (x) . . . f0 (x) = 2 ⇥ (2) (1) = 2Lh/2 Lh + O(h2 ) + . . .