1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
Adjoint Sensitivity Example for Chemical Kinetics
-------------------------------------------------
ODE: dy1/dt = -p1*y1 + p2*y2*y3
dy2/dt = p1*y1 - p2*y2*y3 - p3*(y2)^2
dy3/dt = p3*(y2)^2
Find dG/dp for
G = int_t0^tB0 g(t,p,y) dt
g(t,p,y) = y3
Create and allocate CVODES memory for forward runs
Forward integration ... done ( nst = 829 )
ncheck = 5
--------------------------------------------------------
G: 3.9983e+07
--------------------------------------------------------
Create and allocate CVODES memory for backward run
Backward integration from tB0 = 4.0000e+07
--------------------------------------------------------
returned t: 4.0000e+01
tout: 4.0000e+01
lambda(t): 3.9967e+07 3.9967e+07 3.9967e+07
y(t): 7.1583e-01 9.1856e-06 2.8416e-01
--------------------------------------------------------
Done ( nst = 214 )
--------------------------------------------------------
returned t: 0.0000e+00
lambda(t0): 3.9967e+07 3.9967e+07 3.9967e+07
y(t0): 1.0000e+00 0.0000e+00 0.0000e+00
dG/dp: 7.6843e+05 -3.0691e+00 5.1149e-04
--------------------------------------------------------
Re-initialize CVODES memory for backward run
Backward integration from tB0 = 5.0000e+01
--------------------------------------------------------
returned t: 4.0000e+01
tout: 4.0000e+01
lambda(t): 2.8959e-01 1.7624e+00 9.3567e+00
y(t): 7.1583e-01 9.1856e-06 2.8416e-01
--------------------------------------------------------
Done ( nst = 202 )
--------------------------------------------------------
returned t: 0.0000e+00
lambda(t0): 8.4190e+00 1.6097e+01 1.6097e+01
y(t0): 1.0000e+00 0.0000e+00 0.0000e+00
dG/dp: 1.7341e+02 -5.0590e-04 8.4320e-08
--------------------------------------------------------
Free memory
|