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 = 303 )
ncheck = 2
--------------------------------------------------------
G: 3.9992e+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.9953e+07 3.9953e+07 3.9953e+07
y(t): 7.1588e-01 9.1883e-06 2.8411e-01
--------------------------------------------------------
Done ( nst = 161 )
--------------------------------------------------------
returned t: 0.0000e+00
lambda(t0): 3.9953e+07 3.9953e+07 3.9953e+07
y(t0): 1.0000e+00 0.0000e+00 0.0000e+00
dG/dp: 1.1166e+06 -4.4617e+00 7.4511e-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.8972e-01 1.7630e+00 9.3562e+00
y(t): 7.1588e-01 9.1883e-06 2.8411e-01
--------------------------------------------------------
Done ( nst = 260 )
--------------------------------------------------------
returned t: 0.0000e+00
lambda(t0): 8.4190e+00 1.6100e+01 1.6103e+01
y(t0): 1.0000e+00 0.0000e+00 0.0000e+00
dG/dp: 1.7341e+02 -5.0580e-04 8.4304e-08
--------------------------------------------------------
Free memory
|