modelling steam methane reforming in a fixed bed reactor ...folk.ntnu.no/andersty/5....
TRANSCRIPT
Modelling steam methane reforming in a fixed bedreactor
using orthogonal collocation
Kasper Linnestad
Department of Chemical EngineeringNorwegian University of Science and Technology
December 3, 2014
Kasper Linnestad Reactor modelling December 3, 2014 1 / 36
Outline
1 Theory
2 Governing equations
3 Implementation
4 Results
5 Conclusion
Kasper Linnestad Reactor modelling December 3, 2014 2 / 36
Outline
1 TheoryWeighted residuals methodCollocation pointsOrthogonal collocation method
2 Governing equations
3 Implementation
4 Results
5 Conclusion
Kasper Linnestad Reactor modelling December 3, 2014 3 / 36
TheoryWeighted residuals method
General problem
L{f(z, r)
}= g(z, r)
B{fb(zb, rb)
}= gb(z, r)
Approximation
f(z, r) ≈Pz∑
jz=0
Pr∑
jr=0
ajz ,jr ljz(z)ljr(r)
Residual
R(z, r) = L{f(z, r)
}− g(z, r)
Minimize residuals by∫R(z, r)wi(z, r) dz dr = 0, ∀i
Orthogonal collocation uses
ajz ,jr = f(zjz , rjr)
ln(x) =
P∏
i=0i6=n
x− xixn − xi
wi(z, r) = δ(z − ziz)δ(r − rir)
Kasper Linnestad Reactor modelling December 3, 2014 4 / 36
TheoryWeighted residuals method
General problem
L{f(z, r)
}= g(z, r)
B{fb(zb, rb)
}= gb(z, r)
Approximation
f(z, r) ≈Pz∑
jz=0
Pr∑
jr=0
ajz ,jr ljz(z)ljr(r)
Residual
R(z, r) = L{f(z, r)
}− g(z, r)
Minimize residuals by∫R(z, r)wi(z, r) dz dr = 0, ∀i
Orthogonal collocation uses
ajz ,jr = f(zjz , rjr)
ln(x) =
P∏
i=0i6=n
x− xixn − xi
wi(z, r) = δ(z − ziz)δ(r − rir)
Kasper Linnestad Reactor modelling December 3, 2014 4 / 36
TheoryWeighted residuals method
General problem
L{f(z, r)
}= g(z, r)
B{fb(zb, rb)
}= gb(z, r)
Approximation
f(z, r) ≈Pz∑
jz=0
Pr∑
jr=0
ajz ,jr ljz(z)ljr(r)
Residual
R(z, r) = L{f(z, r)
}− g(z, r)
Minimize residuals by∫R(z, r)wi(z, r) dz dr = 0, ∀i
Orthogonal collocation uses
ajz ,jr = f(zjz , rjr)
ln(x) =
P∏
i=0i6=n
x− xixn − xi
wi(z, r) = δ(z − ziz)δ(r − rir)
Kasper Linnestad Reactor modelling December 3, 2014 4 / 36
TheoryWeighted residuals method
General problem
L{f(z, r)
}= g(z, r)
B{fb(zb, rb)
}= gb(z, r)
Approximation
f(z, r) ≈Pz∑
jz=0
Pr∑
jr=0
ajz ,jr ljz(z)ljr(r)
Residual
R(z, r) = L{f(z, r)
}− g(z, r)
Minimize residuals by∫R(z, r)wi(z, r) dz dr = 0, ∀i
Orthogonal collocation uses
ajz ,jr = f(zjz , rjr)
ln(x) =
P∏
i=0i6=n
x− xixn − xi
wi(z, r) = δ(z − ziz)δ(r − rir)
Kasper Linnestad Reactor modelling December 3, 2014 4 / 36
TheoryWeighted residuals method
General problem
L{f(z, r)
}= g(z, r)
B{fb(zb, rb)
}= gb(z, r)
Approximation
f(z, r) ≈Pz∑
jz=0
Pr∑
jr=0
ajz ,jr ljz(z)ljr(r)
Residual
R(z, r) = L{f(z, r)
}− g(z, r)
Minimize residuals by∫R(z, r)wi(z, r) dz dr = 0, ∀i
Orthogonal collocation uses
ajz ,jr = f(zjz , rjr)
ln(x) =
P∏
i=0i 6=n
x− xixn − xi
wi(z, r) = δ(z − ziz)δ(r − rir)
Kasper Linnestad Reactor modelling December 3, 2014 4 / 36
TheoryWeighted residuals method
General problem
L{f(z, r)
}= g(z, r)
B{fb(zb, rb)
}= gb(z, r)
Approximation
f(z, r) ≈Pz∑
jz=0
Pr∑
jr=0
ajz ,jr ljz(z)ljr(r)
Residual
R(z, r) = L{f(z, r)
}− g(z, r)
Minimize residuals by∫R(z, r)wi(z, r) dz dr = 0, ∀i
Orthogonal collocation uses
ajz ,jr = f(zjz , rjr)
ln(x) =
P∏
i=0i 6=n
x− xixn − xi
wi(z, r) = δ(z − ziz)δ(r − rir)
Kasper Linnestad Reactor modelling December 3, 2014 4 / 36
TheoryWeighted residuals method
General problem
L{f(z, r)
}= g(z, r)
B{fb(zb, rb)
}= gb(z, r)
Approximation
f(z, r) ≈Pz∑
jz=0
Pr∑
jr=0
ajz ,jr ljz(z)ljr(r)
Residual
R(z, r) = L{f(z, r)
}− g(z, r)
Minimize residuals by∫R(z, r)wi(z, r) dz dr = 0, ∀i
Orthogonal collocation uses
ajz ,jr = f(zjz , rjr)
ln(x) =
P∏
i=0i 6=n
x− xixn − xi
wi(z, r) = δ(z − ziz)δ(r − rir)
Kasper Linnestad Reactor modelling December 3, 2014 4 / 36
TheoryCollocation points
Legendre polynomials∫ 1
−1Ln(x)Lm(x) dx = 0, m 6= n
Collocation points
Lm(xi) = 0, ∀i ∈ {0, . . . ,m}
−1 −0.5 0 0.5 1−2
0
2
xLm(x)
Kasper Linnestad Reactor modelling December 3, 2014 5 / 36
TheoryCollocation points
Legendre polynomials∫ 1
−1Ln(x)Lm(x) dx = 0, m 6= n
Collocation points
Lm(xi) = 0, ∀i ∈ {0, . . . ,m} −1 −0.5 0 0.5 1−2
0
2
xLm(x)
Kasper Linnestad Reactor modelling December 3, 2014 5 / 36
TheoryOrthogonal collocation method
Minimize residuals by∫R(z, r)wi(z, r) dz dr = 0, ∀i
Orthogonal collocation uses
ajz ,jr = f(zjz , rjr)
ln(x) =
P∏
i=0i 6=n
x− xixn − xi
wi(z, r) = δ(z − ziz)δ(r − rir)
Inserted
R(ziz , rir) = 0, ∀ iz ∈ {0, . . . ,Pz}ir ∈ {0, . . . ,Pr}
System of equations
L{f(z, r)
}= g(z, r)
B{fb(zb, rb)
}= gb(zb, rb)
Linearisation
Af = b
Kasper Linnestad Reactor modelling December 3, 2014 6 / 36
TheoryOrthogonal collocation method
Minimize residuals by∫R(z, r)wi(z, r) dz dr = 0, ∀i
Orthogonal collocation uses
ajz ,jr = f(zjz , rjr)
ln(x) =
P∏
i=0i 6=n
x− xixn − xi
wi(z, r) = δ(z − ziz)δ(r − rir)
Inserted
R(ziz , rir) = 0, ∀ iz ∈ {0, . . . ,Pz}ir ∈ {0, . . . ,Pr}
System of equations
L{f(z, r)
}= g(z, r)
B{fb(zb, rb)
}= gb(zb, rb)
Linearisation
Af = b
Kasper Linnestad Reactor modelling December 3, 2014 6 / 36
TheoryOrthogonal collocation method
Minimize residuals by∫R(z, r)wi(z, r) dz dr = 0, ∀i
Orthogonal collocation uses
ajz ,jr = f(zjz , rjr)
ln(x) =
P∏
i=0i 6=n
x− xixn − xi
wi(z, r) = δ(z − ziz)δ(r − rir)
Inserted
R(ziz , rir) = 0, ∀ iz ∈ {0, . . . ,Pz}ir ∈ {0, . . . ,Pr}
System of equations
L{f(z, r)
}= g(z, r)
B{fb(zb, rb)
}= gb(zb, rb)
Linearisation
Af = b
Kasper Linnestad Reactor modelling December 3, 2014 6 / 36
TheoryOrthogonal collocation method
Minimize residuals by∫R(z, r)wi(z, r) dz dr = 0, ∀i
Orthogonal collocation uses
ajz ,jr = f(zjz , rjr)
ln(x) =
P∏
i=0i 6=n
x− xixn − xi
wi(z, r) = δ(z − ziz)δ(r − rir)
Inserted
R(ziz , rir) = 0, ∀ iz ∈ {0, . . . ,Pz}ir ∈ {0, . . . ,Pr}
System of equations
L{f(z, r)
}= g(z, r)
B{fb(zb, rb)
}= gb(zb, rb)
Linearisation
Af = b
Kasper Linnestad Reactor modelling December 3, 2014 6 / 36
TheoryLinearisation
Example function
f(ψ) = ψ2 + ψ exp (−ψ)
Fixed-point (Picard-iteration)
f(ψ) ≈(ψ? + exp
(−ψ?
))ψ
solves f(ψ) = 3 in 114 iterations
Taylor (Newton-Raphson-iteration)
f(ψ) ≈ f(ψ?) +∂f
∂ψ
∣∣∣ψ?
(ψ − ψ?
)
solves f(ψ) = 3 in 8 iterations
Kasper Linnestad Reactor modelling December 3, 2014 7 / 36
TheoryLinearisation
Example function
f(ψ) = ψ2 + ψ exp (−ψ)
Fixed-point (Picard-iteration)
f(ψ) ≈(ψ? + exp
(−ψ?
))ψ
solves f(ψ) = 3 in 114 iterations
Taylor (Newton-Raphson-iteration)
f(ψ) ≈ f(ψ?) +∂f
∂ψ
∣∣∣ψ?
(ψ − ψ?
)
solves f(ψ) = 3 in 8 iterations
Kasper Linnestad Reactor modelling December 3, 2014 7 / 36
TheoryLinearisation
Example function
f(ψ) = ψ2 + ψ exp (−ψ)
Fixed-point (Picard-iteration)
f(ψ) ≈(ψ? + exp
(−ψ?
))ψ
solves f(ψ) = 3 in 114 iterations
Taylor (Newton-Raphson-iteration)
f(ψ) ≈ f(ψ?) +∂f
∂ψ
∣∣∣ψ?
(ψ − ψ?
)
solves f(ψ) = 3 in 8 iterations
Kasper Linnestad Reactor modelling December 3, 2014 7 / 36
Outline
1 Theory
2 Governing equationsContinuity equationEnergy equationSpecies mass balanceErgun’s equationInitial and boundary conditions
3 Implementation
4 Results
5 Conclusion
Kasper Linnestad Reactor modelling December 3, 2014 8 / 36
Governing equationsFixed bed reactor
z
r
Kasper Linnestad Reactor modelling December 3, 2014 9 / 36
Governing equationsSteam methane reforming
Assumptions
Pseudo-homogeneousEfficiency factor = 10−3
Reactions
CH4 + H2O = CO + 3 H2
CO + H2O = CO2 + H2
CH4 + 2 H2O = CO2 + 4 H2
Kasper Linnestad Reactor modelling December 3, 2014 10 / 36
Governing equationsContinuity equation
General form
∂ρ
∂t+∇ · (ρu) = 0
Simplified
∂ρuz∂z
= 0
Linearised
ρ?∂uz∂z
+ uz∂ρ?
∂z︸ ︷︷ ︸⇒Auz
= 0︸︷︷︸⇒buz
Kasper Linnestad Reactor modelling December 3, 2014 11 / 36
Governing equationsContinuity equation
General form
∂ρ
∂t+∇ · (ρu) = 0
Simplified
∂ρuz∂z
= 0
Linearised
ρ?∂uz∂z
+ uz∂ρ?
∂z︸ ︷︷ ︸⇒Auz
= 0︸︷︷︸⇒buz
Kasper Linnestad Reactor modelling December 3, 2014 11 / 36
Governing equationsContinuity equation
General form
∂ρ
∂t+∇ · (ρu) = 0
Simplified
∂ρuz∂z
= 0
Linearised
ρ?∂uz∂z
+ uz∂ρ?
∂z︸ ︷︷ ︸⇒Auz
= 0︸︷︷︸⇒buz
Kasper Linnestad Reactor modelling December 3, 2014 11 / 36
Governing equationsEnergy equation
General form
ρcp
(∂T
∂t+ u · ∇T
)= −∇ · q−∆rxH
Simplified
ρcpuz∂T
∂z=λeff
r
∂
∂r
(r∂T
∂r
)−∆rxH
Linearised
ρ?c?pu?z
∂T
∂z︸ ︷︷ ︸⇒AT
= λeff,?
(1
r
∂T
∂r+∂2T
∂r2
)
︸ ︷︷ ︸⇒AT
−∆rxH?
︸ ︷︷ ︸⇒bT
Kasper Linnestad Reactor modelling December 3, 2014 12 / 36
Governing equationsEnergy equation
General form
ρcp
(∂T
∂t+ u · ∇T
)= −∇ · q−∆rxH
Simplified
ρcpuz∂T
∂z=λeff
r
∂
∂r
(r∂T
∂r
)−∆rxH
Linearised
ρ?c?pu?z
∂T
∂z︸ ︷︷ ︸⇒AT
= λeff,?
(1
r
∂T
∂r+∂2T
∂r2
)
︸ ︷︷ ︸⇒AT
−∆rxH?
︸ ︷︷ ︸⇒bT
Kasper Linnestad Reactor modelling December 3, 2014 12 / 36
Governing equationsEnergy equation
General form
ρcp
(∂T
∂t+ u · ∇T
)= −∇ · q−∆rxH
Simplified
ρcpuz∂T
∂z=λeff
r
∂
∂r
(r∂T
∂r
)−∆rxH
Linearised
ρ?c?pu?z
∂T
∂z︸ ︷︷ ︸⇒AT
= λeff,?
(1
r
∂T
∂r+∂2T
∂r2
)
︸ ︷︷ ︸⇒AT
−∆rxH?
︸ ︷︷ ︸⇒bT
Kasper Linnestad Reactor modelling December 3, 2014 12 / 36
Governing equationsSpecies mass balance
General form
∂ρωi∂t
+∇ · (ρuωi) = −∇ · ji +Ri
Simplified
∂ρuzωi∂z
=Deff
r
∂
∂r
(rρ∂ωi∂r
)−Ri
Linearised
ρ?u?z∂ωi∂z
+ ωiu?z
∂ρ?
∂z+ ρ?ωi
∂u?z∂z︸ ︷︷ ︸
⇒Aωi
= R?i︸︷︷︸⇒bωi
+
Deff,?
(ρ?
r
∂ωi∂r
+∂ρ?
∂r
∂ωi∂r
+ ρ?∂2ωi∂r2
)
︸ ︷︷ ︸⇒Aωi
Kasper Linnestad Reactor modelling December 3, 2014 13 / 36
Governing equationsSpecies mass balance
General form
∂ρωi∂t
+∇ · (ρuωi) = −∇ · ji +Ri
Simplified
∂ρuzωi∂z
=Deff
r
∂
∂r
(rρ∂ωi∂r
)−Ri
Linearised
ρ?u?z∂ωi∂z
+ ωiu?z
∂ρ?
∂z+ ρ?ωi
∂u?z∂z︸ ︷︷ ︸
⇒Aωi
= R?i︸︷︷︸⇒bωi
+
Deff,?
(ρ?
r
∂ωi∂r
+∂ρ?
∂r
∂ωi∂r
+ ρ?∂2ωi∂r2
)
︸ ︷︷ ︸⇒Aωi
Kasper Linnestad Reactor modelling December 3, 2014 13 / 36
Governing equationsSpecies mass balance
General form
∂ρωi∂t
+∇ · (ρuωi) = −∇ · ji +Ri
Simplified
∂ρuzωi∂z
=Deff
r
∂
∂r
(rρ∂ωi∂r
)−Ri
Linearised
ρ?u?z∂ωi∂z
+ ωiu?z
∂ρ?
∂z+ ρ?ωi
∂u?z∂z︸ ︷︷ ︸
⇒Aωi
= R?i︸︷︷︸⇒bωi
+
Deff,?
(ρ?
r
∂ωi∂r
+∂ρ?
∂r
∂ωi∂r
+ ρ?∂2ωi∂r2
)
︸ ︷︷ ︸⇒Aωi
Kasper Linnestad Reactor modelling December 3, 2014 13 / 36
Governing equationsErgun’s equation
General form
dp
dz= −f ρu
2z
dp
Linearised
dp
dz︸︷︷︸⇒Ap
= −f? ρ?(u?z)
2
dp︸ ︷︷ ︸⇒bp
Kasper Linnestad Reactor modelling December 3, 2014 14 / 36
Governing equationsErgun’s equation
General form
dp
dz= −f ρu
2z
dp
Linearised
dp
dz︸︷︷︸⇒Ap
= −f? ρ?(u?z)
2
dp︸ ︷︷ ︸⇒bp
Kasper Linnestad Reactor modelling December 3, 2014 14 / 36
Governing equationsInitial and boundary conditions
Velocity
uz(z = 0, r)︸ ︷︷ ︸⇒Auz
= uz,inlet︸ ︷︷ ︸⇒buz
Temperature
T (z = 0, r)︸ ︷︷ ︸⇒AT
= Tinlet︸ ︷︷ ︸⇒bT
∂T
∂r
∣∣∣∣∣r=0︸ ︷︷ ︸
⇒AT
= 0︸︷︷︸⇒bT
λeff,? ∂T
∂r
∣∣∣∣∣r=R︸ ︷︷ ︸
⇒AT
= −U?(T ?(r = R)− Ta)︸ ︷︷ ︸⇒bT
Pressure
p(z = 0, r)︸ ︷︷ ︸⇒Ap
= pinlet︸︷︷︸⇒bp
Mass fractions
ωi(z = 0, r)︸ ︷︷ ︸⇒Aωi
= ωi,inlet︸ ︷︷ ︸⇒bωi
∂ωi∂r
∣∣∣∣∣r=0︸ ︷︷ ︸
⇒Aωi
= 0︸︷︷︸⇒bωi
∂ωi∂r
∣∣∣∣∣r=R︸ ︷︷ ︸
⇒Aωi
= 0︸︷︷︸⇒bωi
Kasper Linnestad Reactor modelling December 3, 2014 15 / 36
Governing equationsInitial and boundary conditions
Velocity
uz(z = 0, r)︸ ︷︷ ︸⇒Auz
= uz,inlet︸ ︷︷ ︸⇒buz
Temperature
T (z = 0, r)︸ ︷︷ ︸⇒AT
= Tinlet︸ ︷︷ ︸⇒bT
∂T
∂r
∣∣∣∣∣r=0︸ ︷︷ ︸
⇒AT
= 0︸︷︷︸⇒bT
λeff,? ∂T
∂r
∣∣∣∣∣r=R︸ ︷︷ ︸
⇒AT
= −U?(T ?(r = R)− Ta)︸ ︷︷ ︸⇒bT
Pressure
p(z = 0, r)︸ ︷︷ ︸⇒Ap
= pinlet︸︷︷︸⇒bp
Mass fractions
ωi(z = 0, r)︸ ︷︷ ︸⇒Aωi
= ωi,inlet︸ ︷︷ ︸⇒bωi
∂ωi∂r
∣∣∣∣∣r=0︸ ︷︷ ︸
⇒Aωi
= 0︸︷︷︸⇒bωi
∂ωi∂r
∣∣∣∣∣r=R︸ ︷︷ ︸
⇒Aωi
= 0︸︷︷︸⇒bωi
Kasper Linnestad Reactor modelling December 3, 2014 15 / 36
Governing equationsInitial and boundary conditions
Velocity
uz(z = 0, r)︸ ︷︷ ︸⇒Auz
= uz,inlet︸ ︷︷ ︸⇒buz
Temperature
T (z = 0, r)︸ ︷︷ ︸⇒AT
= Tinlet︸ ︷︷ ︸⇒bT
∂T
∂r
∣∣∣∣∣r=0︸ ︷︷ ︸
⇒AT
= 0︸︷︷︸⇒bT
λeff,? ∂T
∂r
∣∣∣∣∣r=R︸ ︷︷ ︸
⇒AT
= −U?(T ?(r = R)− Ta)︸ ︷︷ ︸⇒bT
Pressure
p(z = 0, r)︸ ︷︷ ︸⇒Ap
= pinlet︸︷︷︸⇒bp
Mass fractions
ωi(z = 0, r)︸ ︷︷ ︸⇒Aωi
= ωi,inlet︸ ︷︷ ︸⇒bωi
∂ωi∂r
∣∣∣∣∣r=0︸ ︷︷ ︸
⇒Aωi
= 0︸︷︷︸⇒bωi
∂ωi∂r
∣∣∣∣∣r=R︸ ︷︷ ︸
⇒Aωi
= 0︸︷︷︸⇒bωi
Kasper Linnestad Reactor modelling December 3, 2014 15 / 36
Governing equationsInitial and boundary conditions
Velocity
uz(z = 0, r)︸ ︷︷ ︸⇒Auz
= uz,inlet︸ ︷︷ ︸⇒buz
Temperature
T (z = 0, r)︸ ︷︷ ︸⇒AT
= Tinlet︸ ︷︷ ︸⇒bT
∂T
∂r
∣∣∣∣∣r=0︸ ︷︷ ︸
⇒AT
= 0︸︷︷︸⇒bT
λeff,? ∂T
∂r
∣∣∣∣∣r=R︸ ︷︷ ︸
⇒AT
= −U?(T ?(r = R)− Ta)︸ ︷︷ ︸⇒bT
Pressure
p(z = 0, r)︸ ︷︷ ︸⇒Ap
= pinlet︸︷︷︸⇒bp
Mass fractions
ωi(z = 0, r)︸ ︷︷ ︸⇒Aωi
= ωi,inlet︸ ︷︷ ︸⇒bωi
∂ωi∂r
∣∣∣∣∣r=0︸ ︷︷ ︸
⇒Aωi
= 0︸︷︷︸⇒bωi
∂ωi∂r
∣∣∣∣∣r=R︸ ︷︷ ︸
⇒Aωi
= 0︸︷︷︸⇒bωi
Kasper Linnestad Reactor modelling December 3, 2014 15 / 36
Outline
1 Theory
2 Governing equations
3 ImplementationJuliaUnder-relaxationSegregated approachCombined approachCoupled approach
4 Results
5 Conclusion
Kasper Linnestad Reactor modelling December 3, 2014 16 / 36
ImplementationJulia
Open-source
Just-in-time compilation
Constant global variables
Pass by reference (!)
Easy to call programs written in other languages (Fortran, C, Python)
Kasper Linnestad Reactor modelling December 3, 2014 17 / 36
ImplementationUnder-relaxation
Trial-and-error
ωi and T
T = γTT + (1− γT )T ?
γT = γω = 5 · 10−2
Kasper Linnestad Reactor modelling December 3, 2014 18 / 36
ImplementationSegregated approach
T
ωi
||R||2 < tol
uz
p
||R||2 < tol
Update
Initial guess
||R||2 < tol
Kasper Linnestad Reactor modelling December 3, 2014 19 / 36
ImplementationCombined approach
Coupled mass fractions and temperature
Aω1 0 · · ·0 Aω2 0 · · ·0 · · · . . .
I I · · · I 00 · · · AT
ω1
ω2...
ωCO
T
=
bω1
bω2
...1bT
Coupled velocity, density and pressureAuz 0 0
0 I −diag(
M?
RT?
)
0 0 Ap
uzρp
=
buz0bp
Kasper Linnestad Reactor modelling December 3, 2014 20 / 36
ImplementationCombined approach
Coupled mass fractions and temperature
Aω1 0 · · ·0 Aω2 0 · · ·0 · · · . . .
I I · · · I 00 · · · AT
ω1
ω2...
ωCO
T
=
bω1
bω2
...1bT
Coupled velocity, density and pressureAuz 0 0
0 I −diag(
M?
RT?
)
0 0 Ap
uzρp
=
buz0bp
Kasper Linnestad Reactor modelling December 3, 2014 20 / 36
ImplementationCoupled approach
Fully coupled system of equations
Aω1 0 · · ·0 Aω2 0 · · ·0 · · · . . .
I I · · · I 0 · · ·0 · · · AT 0 · · ·0 · · · Auz 0 0
0 · · · I −diag(
M?
RT?
)
0 · · · Ap
ω1
ω2...
ωCO
Tuzρp
=
bω1
bω2
...1bTbuz0bp
Kasper Linnestad Reactor modelling December 3, 2014 21 / 36
Outline
1 Theory
2 Governing equations
3 Implementation
4 ResultsProfilesRun-timeHindsights
5 Conclusion
Kasper Linnestad Reactor modelling December 3, 2014 22 / 36
ResultsVelocity
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.01.8
2
2.2
2.4
2.6
2.8
3
3.2
3.4
3.6
3.8
z [m]
uz
[ ms−
1]
Axial velocity in the reactor
r = 0,00m
r = 1,01 · 10−3m
r = 5,19 · 10−3m
r = 1,21 · 10−2m
r = 2,08 · 10−2m
r = 3,02 · 10−2m
r = 3,89 · 10−2m
r = 4,58 · 10−2m
r = 5,00 · 10−2m
r = 5,10 · 10−2m
Kasper Linnestad Reactor modelling December 3, 2014 23 / 36
ResultsVelocity
0.00
0.01
0.02
0.03
0.04
0.05 01
23
45
67
2
2.5
3
3.5
r [m] z [m]
uz
[ ms−
1]
Velocity in the reactor
Kasper Linnestad Reactor modelling December 3, 2014 23 / 36
ResultsPressure
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.02.76 · 106
2.78 · 106
2.80 · 106
2.82 · 106
2.84 · 106
2.86 · 106
2.88 · 106
2.90 · 106
z [m]
p[Pa]
Pressure in the reactor
Kasper Linnestad Reactor modelling December 3, 2014 24 / 36
ResultsTemperature
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0750
800
850
900
950
1,000
1,050
1,100
z [m]
T[K]
Temperature in the reactor
r = 0,00m
r = 1,01 · 10−3m
r = 5,19 · 10−3m
r = 1,21 · 10−2m
r = 2,08 · 10−2m
r = 3,02 · 10−2m
r = 3,89 · 10−2m
r = 4,58 · 10−2m
r = 5,00 · 10−2m
r = 5,10 · 10−2m
Kasper Linnestad Reactor modelling December 3, 2014 25 / 36
ResultsTemperature
0.00
0.01
0.02
0.03
0.04
0.05 01
23
45
67
800
900
1,000
r [m] z [m]
T[K]
Temperature in the reactor
Kasper Linnestad Reactor modelling December 3, 2014 25 / 36
ResultsHydrogen
0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.00.000
0.050
0.100
0.150
0.200
0.250
0.300
0.350
0.400
0.450
z [m]
xH
2
Mole fraction of H2 in the reactor
r = 0,00m
r = 1,01 · 10−3m
r = 5,19 · 10−3m
r = 1,21 · 10−2m
r = 2,08 · 10−2m
r = 3,02 · 10−2m
r = 3,89 · 10−2m
r = 4,58 · 10−2m
r = 5,00 · 10−2m
r = 5,10 · 10−2m
Kasper Linnestad Reactor modelling December 3, 2014 26 / 36
ResultsMethane
0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.00.040
0.060
0.080
0.100
0.120
0.140
0.160
0.180
0.200
0.220
z [m]
xCH
4
Mole fraction of CH4 in the reactor
r = 0,00m
r = 1,01 · 10−3m
r = 5,19 · 10−3m
r = 1,21 · 10−2m
r = 2,08 · 10−2m
r = 3,02 · 10−2m
r = 3,89 · 10−2m
r = 4,58 · 10−2m
r = 5,00 · 10−2m
r = 5,10 · 10−2m
Kasper Linnestad Reactor modelling December 3, 2014 27 / 36
ResultsCarbon dioxide
0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.00.000
0.010
0.020
0.030
0.040
0.050
0.060
z [m]
xCO
2
Mole fraction of CO2 in the reactor
r = 0,00m
r = 1,01 · 10−3m
r = 5,19 · 10−3m
r = 1,21 · 10−2m
r = 2,08 · 10−2m
r = 3,02 · 10−2m
r = 3,89 · 10−2m
r = 4,58 · 10−2m
r = 5,00 · 10−2m
r = 5,10 · 10−2m
Kasper Linnestad Reactor modelling December 3, 2014 28 / 36
ResultsSteam
0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.00.350
0.400
0.450
0.500
0.550
0.600
0.650
0.700
0.750
z [m]
xH
2O
Mole fraction of H2O in the reactor
r = 0,00m
r = 1,01 · 10−3m
r = 5,19 · 10−3m
r = 1,21 · 10−2m
r = 2,08 · 10−2m
r = 3,02 · 10−2m
r = 3,89 · 10−2m
r = 4,58 · 10−2m
r = 5,00 · 10−2m
r = 5,10 · 10−2m
Kasper Linnestad Reactor modelling December 3, 2014 29 / 36
ResultsCarbon monoxide
0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.00.000
0.010
0.020
0.030
0.040
0.050
0.060
0.070
z [m]
xCO
Mole fraction of CO in the reactor
r = 0,00m
r = 1,01 · 10−3m
r = 5,19 · 10−3m
r = 1,21 · 10−2m
r = 2,08 · 10−2m
r = 3,02 · 10−2m
r = 3,89 · 10−2m
r = 4,58 · 10−2m
r = 5,00 · 10−2m
r = 5,10 · 10−2m
Kasper Linnestad Reactor modelling December 3, 2014 30 / 36
ResultsNitrogen
0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.00.031
0.032
0.033
0.034
0.035
0.036
0.037
0.038
0.039
0.040
0.041
z [m]
xN
2
Mole fraction of N2 in the reactor
r = 0,00m
r = 1,01 · 10−3m
r = 5,19 · 10−3m
r = 1,21 · 10−2m
r = 2,08 · 10−2m
r = 3,02 · 10−2m
r = 3,89 · 10−2m
r = 4,58 · 10−2m
r = 5,00 · 10−2m
r = 5,10 · 10−2m
Kasper Linnestad Reactor modelling December 3, 2014 31 / 36
ResultsRun-time
Solution method Run-time [s]
Finite-difference & ode15s (Matlab) 1.8Collocation – segregated 129.9Collocation – combined 51.1Collocation – coupled 52.0Collocation – coupled & SparseMatrixCSC 14.8
Kasper Linnestad Reactor modelling December 3, 2014 32 / 36
ResultsHindsight
Non-dimensional equations
Sparse matrices
Higher collocation point density near inlet
Linearise with Newton
Iterative matrix solvers (CG, GMRES)
Kasper Linnestad Reactor modelling December 3, 2014 33 / 36
Outline
1 Theory
2 Governing equations
3 Implementation
4 Results
5 Conclusion
Kasper Linnestad Reactor modelling December 3, 2014 34 / 36
Conclusion
FDM with ode15sFastSimpleAutomatic step-size controlNo support for boundary conditions in z
Orthogonal collocation
SlowNot as simple (but not that hard)Supports boundary conditions in zEasy differentiation (Kronecker product)Trial and error for relaxation factorsGlobal index notationCollocation points must be given beforehand
Kasper Linnestad Reactor modelling December 3, 2014 35 / 36
Questions?
Kasper Linnestad Reactor modelling December 3, 2014 36 / 36