lecture 22 ma471 fall 2003. advection equation recall the 2d advection equation: we will use a...

29
Lecture 22 MA471 Fall 2003

Upload: dennis-daniel

Post on 12-Jan-2016

220 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Lecture 22

MA471 Fall 2003

Page 2: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Advection Equation

• Recall the 2D advection equation:

• We will use a Runge-Kutta time integrator and spectral representation in space.

0x yC C Ca a

t x y

Page 3: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Periodic Data

• Let’s assume we are given N values of a function f at N data points on the unit interval.

• For instance N=8 on a unit interval:

0 1/8 2/8 3/8 4/8 5/8 6/8 7/8 8/8

Page 4: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Discrete Fourier Transform• We can seek a trigonometric interpolation

of a function f as a linear combination of N (even) trigonometric functions:

• Such that:

/ 22

/ 2 1

ˆk N

ik xk

k N

If x f e

/ 22

/ 2 1

ˆ for 1,...,

where

j

k Nik x

j j kk N

j

f x If x f e j N

jx

N

Page 5: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Transform

• The interpolation formula defines a linear system for the unknown fhat coefficients:

/ 22

/ 2 1

2

1

ˆ for 1,...,

1ˆ for k 1,...,2 2

j

j

k Nik x

j kk N

j Nik x

k jj

f f e j N

N Nf f e

N

Or:

ˆ

ˆ

ifft

fft

f f

f f

Page 6: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Code for the DFT

Page 7: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Code for Inverse

DFT

Page 8: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Fast Fourier Transform

• See handout

Page 9: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Spectral Derivative

• We can differentiate the interpolant by:

/ 22

/ 2 1

ˆ2k N

ik xk

k N

dIfx ik f e

dx

/ 22

/ 2 1

ˆk N

i kxk

k N

If x f e

Page 10: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Detail

• We note that the derivative of the k=(N/2) mode

• is technically:

• However, as we show on the next slide – this mode has turning points at all the data points.

22

2

ˆiN

x

Ne f

22

2

ˆ22

iNx

N

iNe f

Page 11: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Real Component of N/2 Mode

i.e. the slope of the k=(N/2) mode is zeroat all the 8 points..

Page 12: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Modified Derivative Formula

• So we can create an alternative symmetric derivative formula:

/ 2 12

/ 2 1

1 ˆ22

k Nik x

kk N

dIfx ik f e

dx

Page 13: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Spectral Differentiation Scheme

1) Use an fft to compute:

2) Differentiate in spectral space. i.e. compute:

ˆ for 1, 2,..., 1,0,1,...,2 2 2k

N N Nf k

ˆ2 for 1,..., 12 2ˆ

0 for 2

k

k

N Ni k f k

gN

k

Page 14: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

cont

3) Then:

4) Summary:a) fft transform data to compute coefficients

b) scale Fourier coefficients c) inverse fft (ifft) scaled coefficients

/ 2

/ 2 1

ˆk N

ikxk

k N

dIfx g e

dx

Page 15: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Final Twist

• Matlab stores the coefficients from the fast Fourier transform in a slightly odd order:

• The derivative matrix will now be a matrix with diagonal entries:

0 1 11 1 2

2 2 22

ˆ ˆ ˆ ˆ ˆ ˆ, ,.., , , , ,...,ˆNN N Nf f ff f f f

2 0,1,.., 1, , 1, 2,..., 12 2 2

N N Ni

0

Page 16: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Spectral Differentiation

Code

1) DFT data2) Scale Fourier

coefficients3) IFT scaled coefficients

Page 17: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Two-Dimensional Fourier Transform

• We can now construct a Fourier expansion in two variables for a function of two variables..

• The 2D inverse discrete transform and discrete transform are:

/ 2/ 22 2

/ 2 1 / 2 1

2 22

1 1

ˆ for , 1,...,

1ˆ for j,k 1,...,2 2

n m

n m

j Nk Nij x ik y

nm jkk N j N

n N m Nij x ik y

jk nmn m

f f e e n m N

N Nf f e e

N

/ 2/ 22 2

/ 2 1 / 2 1

ˆ,j Nk N

ij x ik yjk

k N j N

If x y f e e

Page 18: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Advection Equation

• Recall the 2D advection equation:

• We will use a Runge-Kutta time integrator and spectral representation in space.

0x yC C Ca a

t x y

Page 19: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Runge-Kutta Time Integrator

• We will now discuss a particularly simple Runge-Kutta time integrator introduced by Jameson-Schmidt-Turkel

• The idea is each time step is divided into s substeps, which taken together approximate the update to s’th order.

Page 20: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Side note: Jameson-Schmidt-Turkel Runge-Kutta Integrator

• Taylor’s theorem tell’s us that

• We will compute an approximate update as:

22

1 1* *

1

1 ...1! 2! !

for some ,1 !

ss

s s

s

dt d dt d dt dC t dt C t

dt dt s dt

dt d Ct t t t dt

s dt

22

1 ...1! 2! !

ssdt d dt d dt dC t dt C t

dt dt s dt

Page 21: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

JST Runge-Kutta

• The numerical scheme will look like

• We then factorize the polynomial derivative term:

22

221

1 ...1! 2! !

1 ...1! 2! !

ss

ssn n

dt d dt d dt dC t dt C t

dt dt s dt

dt d dt d dt dC C

dt dt s dt

Page 22: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Factorized Scheme

n+1 ..1 2 1

nn n n ndt d dt d dt d dt dC

C C C C Cs dt s dt s dt dt

221 1 ...

1! 2! !

ssn ndt d dt d dt dC C

dt dt s dt

n

n

n+1

Set C=C

for : 1:1

C C

end

C =C

k s

dt dC

k dt

Page 23: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

JST + Advection Equation• We now use the PDE definition

n

n

n+1

Set C=C

for : 1:1

C C

end

C =C

k s

dt dC

k dt

+

n

n

n+1

Set C=C

for : 1:1

C C

end

C =C

x y

k s

dt C Ca a

k x y

0x yC C Ca a

t x y

Page 24: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Now Use Spectral Representation

j j

Set

for : 1:1

ˆ = fft

ˆ ˆ

ˆ ˆ

ˆ ifft

ˆ ifft

for j=1,..,N

end

=

x x

y y

x x

y y

x x y yj j j j

k s

dt

k

c c

c c

d D c

d D c

d d

d d

c c a d a d

c c

A time step now consists of s substages.

Each stage involves:

a) Fourier transforming the ctildeusing a fast Fourier transform (fft)

b) Scaling the coefficients to differentiate in Fourier space

c) Transforming the derivatives back tophysical values at the nodes by inverse fast Fourier transform (ifft).

d) Finally updating ctilde according tothe advection equation.

At the end we update the concentration.

Page 25: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Matlab Implementation

• First set up the nodes and the differentiation scalings.

Page 26: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

24) Compute dt

26) Initiate concentration

28-29) compute advection vector

32-45) full Runge-Kutta time step

35) fft ctilde

37) x- and y-differentiation in Fourier space

40-41) transform back to physical values of derivatives

43) Update ctilde

Page 27: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

sin 2 cos 2

cos 2 sin 2

x

y

a x x

a x x

2 2

200 .75 .6

0

0, ,

x y

x y

C C Ca a

t x y

C t x y e

Page 28: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

FFT Resources

• Check out: http://www.fftw.org/ for the fastest Fourier transform in the West

• Great list of links:– http://www.fftw.org/links.html

• FFT for irregularly spaced data:– http://www.math.mu-luebeck.de/potts/nfft/

Page 29: Lecture 22 MA471 Fall 2003. Advection Equation Recall the 2D advection equation: We will use a Runge-Kutta time integrator and spectral representation

Lab Exercise

1) Download example DFT code from website.

2) Benchmark codes as a function of N

3) Write your own version using an efficient FFT (say fftw) which:

1) FFT’s data

2) Scales coefficients

3) IFFT’s scaled coeffients

4) Write an advection code using the JST Runge-Kutta time integrator.

This is the scalar version of Project 4