Professional Documents
Culture Documents
chemical kinetics
15.11.2010
∂[H2 SO4 ]
= k1 [SO3 ][H2 O]
∂t
∂[SO3 ]
= −k1 [SO3 ][H2 O]
∂t
∂[H2 O]
= −k1 [SO3 ][H2 O]
∂t
k1 = 5.0−15 mol/s
Sampo Smolander Chemical kinetics 15.11.2010 2 / 24
CH4 + 2 O2 → CO2 + 2 H2 O : k2
∂[CH4 ]
= −k2 [CH4 ][O2 ]2
∂t
∂[O2 ]
= −2 k2 [CH4 ][O2 ]2
∂t
∂[CO2 ]
= k2 [CH4 ][O2 ]2
∂t
∂[H2 O]
= 2 k2 [CH4 ][O2 ]2
∂t
There is ca. 21% = 210 000 ppm oxygen and 1.8 ppm
methane in atmosphere, so we don’t really need to
monitor the tiny change in the amount of oxygen
A → X : k1
2X + Y → 3X : k2
B+X → Y+C : k3
X → D : k4
Constant: A, B
Variable: X, Y
Uninteresting: C, D
http://en.wikipedia.org/wiki/Brusselator
http://www.idea.wsu.edu/OscilChem/#Brusselator%20Model
∂[X]
= −k1 [A] + k2 [X]2 [Y] − k3 [X][B] − k4 [X]
∂t
Do same for [Y], get...
t = 0.0 ; t2 = 10*60.0
WRITE( * , * ) c
DO WHILE ( t < t2 )
CALL deriv ( dc , c , cc , k )
c = c + dc* dt
WRITE( * , * ) c
t = t+dt
END DO
CONTAINS
SUBROUTINE deriv ( dc , c , cc , k )
REAL(dp ) , INTENT( in ) : : c ( dim_c ) , cc ( dim_cc ) , k ( dim_k )
REAL(dp ) , INTENT( out ) : : dc ( dim_c )
dc (1) = k(1) * cc (1) + k(2) * c(1) * c(1) * c (2) − k(3) * cc (2) * c (1) − k(4) * c (1)
dc (2) = k(3) * cc (2) * c (1) − k(2) * c(1) * c(1) * c (2)
END SUBROUTINE deriv
∂C
= f(C, t)
∂t
C = (c1 , c2 , . . .) are the chemical
∂c concentrations
and f gives the derivatives ∂t1 , ∂c
2
∂t
, . . .
f may or may not depentd on t
2
1.0 1.2 1.4 1.6 1.8 2.0
Sampo Smolander Chemical kinetics 15.11.2010 19 / 24
Now, Ct + k3 · h would already be a good step, but we’re
not done yet. We have 4 different candidates for the
“right” direction to go
k1 , k2 , k3 , k4
and go there
Ct+1h = Ct + k · h
0 5 10 15 20 25 30
0 5 10 15 20 25 30