method of lines
DESCRIPTION
Method of Lines. Outline. This topic introduces the method of lines Used for solving heat-conduction/diffusion and wave equations Finite differences discretizes both time and space Discretize only space Use a high-quality ODE solver to find the solution over time. - PowerPoint PPT PresentationTRANSCRIPT
MATH 212NE 217
Douglas Wilhelm Harder
Department of Electrical and Computer Engineering
University of Waterloo
Waterloo, Ontario, Canada
Copyright © 2011 by Douglas Wilhelm Harder. All rights reserved.
Advanced Calculus 2 for Electrical EngineeringAdvanced Calculus 2 for Nanotechnology Engineering
Method of Lines
Method of Lines
2
Outline
This topic introduces the method of lines– Used for solving heat-conduction/diffusion and wave equations
– Finite differences discretizes both time and space
– Discretize only space
– Use a high-quality ODE solver to find the solution over time
Method of Lines
3
Outcomes Based Learning Objectives
By the end of this laboratory, you will:– You will understand the method of lines
– You will be able to implement it using the Matlab functions implemented in previous terms
Method of Lines
4
Integration-by-Parts in Higher Dimensions
Up to this point, we have discretized both the space and time dimensions– We will look at another approach that discretizes only the space
dimensions
Method of Lines
5
Discretizing in Space
Consider the heat-conduction/diffusion equation
Discretizing the space component in one dimension gives:
We will demonstrate this only in one dimension; however, the generalization to 2 and 3 dimensions is obvious…
21 uu
t
2, , 2 , ,u x t u x h t u x t u x h t
t h
Method of Lines
6
Discretizing in Time
With finite differences, we divided time into discrete steps, as well:
which allowed us to find
2
, ,, 2 , ,
u x t h u x tu x h t u x t u x h t
t h
2, , , 2 , ,
tu x t h u x t u x h t u x t u x h t
h
Method of Lines
7
Review of Finite Differences
We are given the initial state of the system by uinit(x)
Divide the space interval into n points with n – 1 intervals
Method of Lines
8
Review of Finite Differences
We evaluate the initial state at each of the n points
Method of Lines
9
Review of Finite Differences
Next, given these initial values, we take the finite-difference equation to approximate the state at the next time t2 = t1 + t equatio
– The boundary values are defined by functions a(t) and b(t)
Method of Lines
10
Review of Finite Differences
Now, with this approximation, we approximate the values at timest3, t4, etc.
Method of Lines
11
Method of Lines
As an alternative approach, associate with each spatial point an unknown function uk(t)
– Two exceptions: u1(t) = a(t)
un(t) = b(t)
This approach was popularized by the chemical engineer William E. Schiesser in his 1991 text The Numerical Method of Lines
Method of Lines
12
Method of Lines
In order to substitute uk(t) into our mixed partial-/finite-difference equation,
we note that the solution at location x – h is uk – 1(t) and the solution at x + h is uk + 1(t):
We also have the initial condition:
uk(tinitial) = uinit(xk)
1 122k k k k
du t u t u t u t
dt h
2, , 2 , ,u x t u x h t u x t u x h t
t h
Method of Lines
13
Systems of IVPs
Therefore, we have a system of n – 2 initial-value problems but with n unknown functions:
2 1 2 3 2 initial init 22
3 2 3 4 3 initial init 32
7 6 7 8 7 initial init 72
8 7 8 9 8 initial init 82
2
2
2
2
du t u t u t u t u t u x
dt hd
u t u t u t u t u t u xdt h
du t u t u t u t u t u x
dt hd
u t u t u t u t u t u xdt h
Method of Lines
14
Systems of IVPs
There are two unknown functions, however, these are given by our boundary conditions:
2 1 2 3 2 initial init 22
3 2 3 4 3 initial init 32
7 6 7 8 7 initial init 72
8 7 8 9 8 initial init 82
2
2
2
2
du t u t u t u t u t u x
dt hd
u t u t u t u t u t u xdt h
du t u t u t u t u t u x
dt hd
u t u t u t u t u t u xdt h
Method of Lines
15
Systems of IVPs
We therefore have a system of n – 2 initial-value problems– With n = 9:
2 2 3 2 initial init 22
3 2 3 4 3 initial init 32
7 6 7 8 7 initial init 72
8 7 8 8 initial init 82
2
2
2
2
du t a t u t u t u t u x
dt hd
u t u t u t u t u t u xdt h
du t u t u t u t u t u x
dt hd
u t u t u t b t u t u xdt h
Method of Lines
16
Systems of IVPs
Note that we can rewrite the differential equations:
Thus,
2
3
7
8
u t
u t
t
u t
u t
u
12
13
1
17
18
u t
u td
t tdt
u t
u t
u u
Method of Lines
17
Systems of IVPs
We can therefore write this as:
where
.
.
.
1
2
2 1
01 2 1
, 1 2
01
1 2
a t
t t t th
b t
u f u u
.
.
.
2
2 1
01 2 1
, 01 2
01
1 2
def
a t
th
b t
f u u
Method of Lines
18
IVP Solvers from Previous Courses
From MATH 211, you implemented the functionfunction [ ts, ys ] = dp45n( f, t_int, y1, h, eps_step)
where tint = [tinitial, tfinal] that uses the adaptive Dormand-Prince method to approximate a solution to a system of initial-value problems
where we allow a maximum error of step where we start with an initial step size in time of h starting at tinitial and going to tfinal
1
0 1
,t t t
t
y f y
y y
Method of Lines
19
IVP Solvers from Previous Courses
We can write the function
function du = f( t, u ) M = diag( -2*ones( n - 2, 1 ) ) + ... diag( ones( n - 3, 1 ), 1 ) + ... diag( ones( n - 3, 1 ), -1 );
du = (kappa/h^2)*(M*u + [a(t); zeros( n – 4, 1 ); b(t)]);end
.
.
.
2
2 1
01 2 1
, 01 2
01
1 2
a t
th
b t
f u u
Method of Lines
20
Example: Dirichlet Conditions
To give a specific example, consider the following heat-conduction/diffusion problem:
that is, = 0.2, on [0, 1] with
with n = 9 points
init 1
0 1
2 1
1 2
0 2
def
def
def
u x
ta t
t
tb t
t
21
0.2
uu
t
Method of Lines
21
Example: Dirichlet Conditions
To give this a description:– A bar is initial uniform at 1
– For the first second, the left-hand side is placedin contact with a heat sink at 0, after which itis switched with a heat source of 2
– For the first two seconds, the right-hand sideis in contact with a body also at 1, after whichit is switched with a heat sink at 0
init 1
0 1
2 1
1 2
0 2
def
def
def
u x
ta t
t
tb t
t
Method of Lines
22
Example: Dirichlet Conditions
Thus, we have:function du = f111( t, u ) n = 9; M = diag( -2*ones( n - 2, 1 ) ) + ... diag( ones( n - 3, 1 ), 1 ) + ... diag( ones( n - 3, 1 ), -1 ); kappa = 0.2; h = 1/8; a = @(t)(2*(t > 1)); b = @(t)(t < 2); du = (kappa/h^2)*(M*u + [a(t); zeros( n - 4, 1 ); b(t)]);
end
Method of Lines
23
Example: Dirichlet Conditions
This can be driven by: u_init = @(x)(x*0 + 1); a = @(t)(2*(t > 1)); b = @(t)(t < 2);
n = 9; xs = linspace( 0, 1, n )';
[ts, us] = dp45( @f111, [0, 3], u_init( xs(2:end - 1) ), 1, 0.0001);
us = [a(ts); us; b(ts)]; mesh( ts, xs, us );
Method of Lines
24
Example: Dirichlet Conditions
With two orientations, the output is the plot:
Method of Lines
25
Example: Dirichlet Conditions
Note that t is larger while the system converges but becomes smaller at the discontinuities
Method of Lines
26
Example: Insulated Conditions
To give a specific example, consider the following heat-conduction/diffusion problem:
that is, = 0.2, on [0, 1] with
and an insulated right-hand boundary with n = 9 points
init 1
0 1
1 1
def
def
u x
ta t
t
21
0.2
uu
t
Method of Lines
27
Example: Insulated Conditions
Using the 2nd-order divided difference approximation of the derivative:
and substituting our approximations for u(b, t), u(b – h, t), andu(b – 2h, t) equate this to zero, we have:
or
3 , 4 , 2 ,,
2
u x t u x h t u x h tu t x
x h
1 23 40
2n n nu t u t u t
h
1 24
3n n
n
u t u tu t
Method of Lines
28
Example: Insulated Conditions
We could then substitute
into the last equation
to get
1 24
3n n
n
u t u tu t
1 2 122n n n n
du t u t u t u t
dt h
1 21 2 12
2 12
42
3
2 2
3 3
n nn n n
n n
u t u tdu t u t u t
dt h
u t u th
Method of Lines
29
Example: Insulated Conditions
Thus, we have:function du = f112( t, u ) n = 9; M = diag( -2*ones( n - 2, 1 ) ) + ... diag( ones( n - 3, 1 ), 1 ) + ... diag( ones( n - 3, 1 ), -1 ); M(n - 2, n - 2) = -2/3; M(n - 2, n - 3) = 2/3;
kappa = 0.2; h = 1/8; a = @(t)(t > 1); du = (kappa/h^2)*(M*u + [a(t); zeros( n - 4, 1 ); 0]);end
0 1
1 1
def ta t
t
Recall:
Method of Lines
30
Example: Insulated Conditions
This can be driven by: u_init = @(x)(x*0 + 1); a = @(t)(t > 1); n = 9; xs = linspace( 0, 1, n )';
[ts, us] = dp45( @f111, [0, 3], u_init( xs(2:end - 1) ), 1, 0.0001);
us = [a(ts); us; (4*us(end,:) - us(end - 1,:))/3]; mesh( ts, xs, us ); 1 24
3n n
n
u t u tu t
Method of Lines
31
Example: Insulated Conditions
With two orientations, the output is the plot:
Method of Lines
32
Example: Neumann Conditions
Suppose that the right-hand side is a more general Neumann condition:
Again, use the approximation
and substituting our approximations for u(b, t), u(b – h, t), andu(b – 2h, t) equate this to zero, we have:
or
3 , 4 , 2 ,,
2
u x t u x h t u x h tu t x
x h
1 23 4
2n n n
b
u t u t u tu t
h
, bu t b u tx
1 24 2
3n n b
n
u t u t h u tu t
Method of Lines
33
The Wave Equation
We can also have an initial-value problem for the wave equation:
This can, of course, be generalized to two and three dimensions:– There is one unknown function for each point
, , 1, 1, , 1 , 12
, initial init
4j k j k j k j k j k j k
jj k
k
du t u t u t u t u t u t
dt h
xu t u
y
2 2
1 12 2
initial init
1initial init
4k k k k
k k
k k
d cu t u t u t u t
dt hu t u x
u t u x
Method of Lines
34
The Wave Equation
Recall that our function dp45.m only works with a 1st-order differential equation– We must therefore convert the 2nd-order ODE into a 1st-order ODE
2 1
12
k k
k k
w t u t
w t u t
Method of Lines
35
The Wave Equation
We therefore have a system of 2(n – 2) initial-value problems– With n = 9:
2 2 2 initial init 2
3 3 3 initial init 3
2 2 2 2 initial init 2
1 2 1 1 initial init 1
2
2 2 3 2 initial init 22
2
3 22
2
2
n
n
n n n n
n n n n
n n
n
dw t w t w t u x
dtd
w t w t w t u xdt
dw t w t w t u x
dtd
w t w t w t u xdt
d cw t a t w t w t w t u x
dt h
d cw t w t w
dt h
3 4 3 initial init 3
2
2 2 3 2 1 2 1 initial init 22
2
2 12 2 1 2 1 initial init 12
2
2
n
n n n n n n
n n n n n
t w t w t u x
d cw t w t w t w t w t u x
dt h
d cw t w t w t b t w t u x
dt h
Method of Lines
36
The Wave Equation
Note that we can rewrite the differential equations:
22
33
22
11
122
13 3
12 2 2
12 1
1
nn
nn
n
n
n n
nn
u tw tu tw t
u tw tu tw t
t u tw t
w t u t
w t u tw t u t
w
Method of Lines
37
The Wave Equation
We can therefore write this with :
1
00 1
00 1
00 1
00 1
00 1,
2 0
02 0
02 0
02 0
2 0
t t t tra tr r
r r r
r r r
r
r r
ra br r
w f w w
2
2
cr
h
Method of Lines
38
The Wave Equation
Where the function f is defined as:
0 1
0 1 0
0 1 0
0 1 0
0 1,
2 0 0
2 0 0
2 0 0
2 0 0
2 0 0
def
ra t
ra bt
r r
r r r
r r r
r
r r
r r
f w w
Method of Lines
39
The Wave Equation
Thus, we have:function [dw] = f113( t, w ) n = 17; c = 1; h = 1/8; r = (c/h)^2; Id = ones( n - 2, 1 ); Id_off = ones( n - 3, 1 ); Z = zeros( n - 2, n - 2 ); M = diag( -2*r*Id ) + diag( r*Id_off, 1 ) + diag( r*Id_off, -1
); M = [Z eye( n - 2, n - 2 ); M Z]; v = zeros( 2*n - 4, 1 ); a = @(t)(sin(3*t)); b = @(t)(0*t); v(n - 1) = r*a(t); v(end) = r*b(t); dw = M*w + v;end
Method of Lines
40
The Wave Equation
This can be driven by:u_init = @(x)(x*0);du_init = @(x)(x*0);a = @(t)(sin(3*t));b = @(t)(0*t); n = 17;xs = linspace( 0, 1, n )'; U_init = [u_init( xs(2:end - 1) ); du_init( xs(2:end - 1) )]; [ts, us] = dp45( @f113, 0, 10, U_init, 1, 0.0001);size( us )u = [a(ts); us(1:(n - 2), :); b(ts)];mesh( ts, xs, u );du = [cos(3*ts); us((n - 1):end, :); 0*ts]; % Plot the derivative...mesh( ts, xs, du );
Method of Lines
41
The Wave Equation
The plot of the solution and the derivative are here:
Method of Lines
42
Finite Element Methods
It will also work equally effectively for finite element methods:– The elements define the relationship between a function defined at a
point and its neighbouring functions
Method of Lines
43
Summary
In this topic, we have covered the method of lines:– We discretize only the space component
– This creates a system of initial-value problems
– This may be solved using a high-accuracy adaptive ODE solver
Method of Lines
44
References
[1] Schiesser, W. E., The Numerical Method of Lines, Academic Press, 1991.
Method of Lines
45
Usage Notes
• These slides are made publicly available on the web for anyone to use
• If you choose to use them, or a part thereof, for a course at another institution, I ask only three things:
– that you inform me that you are using the slides,– that you acknowledge my work, and– that you alert me of any mistakes which I made or changes which you make, and
allow me the option of incorporating such changes (with an acknowledgment) in my set of slides
Sincerely,
Douglas Wilhelm Harder, MMath