2-numerical methods for the advection...

25
2-Numerical Methods for the Advection Equation q t + a q x =0

Upload: others

Post on 03-Apr-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

2-Numerical Methods for the Advection Equation

∂q

∂t+ a

∂q

∂x= 0

Page 2: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

The Advection Equation: Theory1st order partial differential equation (PDE) in (x,t):

Hyperbolic PDE: information propagates across the domain at finite speed method of characteristicsCharacteristic are the solutions of the equation

So that, along each characteristic, the solution satisfies

∂q(x, t)

∂t+ a(x, t)

∂q(x, t)

∂x= 0

dx

dt= a(x, t)

dq

dt=

∂q

∂t+dx

dt

∂q

∂x= 0

Page 3: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

The Advection Equation: Theory

The solution is constant along the characteristic curves. The solution at the point (x,t) is found by tracing the characteristic back to some inital point (x,0).

This defines the physical domain of dependence

dq

dt=

∂q

∂t+dx

dt

∂q

∂x= 0 , with

dx

dt= a

t

x

q(x,t)

q(x-at,0)

a∆t

∆t

Physical domain of dependence

Page 4: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

The Advection Equation: Theory

If a is constant: characteristics are straight parallel lines and the solution to the PDE is a uniform translation of the initial profile:

where is the initial condition

q(x, t) = φ(x− at)

φ(x) = q(x, 0)

Page 5: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Numerical Methods for the Linear Advection Equation

2 popular methods for performing discretization:

Finite Differences Finite Volume

For some problems, the resulting discretizations look identical, but they are distinct approaches.We begin using finite-difference as it will allow us to quickly learn some important ideas

∂q

∂t+ a

∂q

∂x= 0

Page 6: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Linear Advection Equation:Finite Difference

A finite-difference method stores the solution at specific points in space and time.

Associated with each grid point is a function value,

We replace the derivatives in out PDEs with differences between neighboring points.

qi = q(xi)

Page 7: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Linear Advection Equation:Finite Volumes

In a finite volume discretization, the unknown is the average value of the function:

where is the position of the left edge zone i

Solving out conservation laws involves computing fluxes through the boundaries of these control volumes.

hqii =1

∆x

Z xi+1/2

xi−1/2

q(x)dx

xi−1/2

Page 8: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Linear Advection Equation:

We start with the linear advection equation

with initial conditions (i.c.)

and boundary conditions (b.c.)

Actually, only one b.c. is needed since this is a 1st order equation. Which boundary depends on the sign of a.

∂q(x, t)

∂t+ a

∂q(x, t)

∂x= 0

q(x, 0) = q0(x)

⎧⎨⎩ q(0, t) = ql(t)

q(L, t) = qr(t)

Page 9: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Linear Advection Equation:

We use a finite difference mesh:

We discretize the function q(x,t) by storing its value at each point in the finite-difference grid

Subscript “i” grid locationSuperscript “n” time levelIn addition to discretizing in space, we introduce time discretization. Thus

qni = q(xi, tn)

∆tn = tn+1 − tn

Page 10: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Linear Advection Equation:

We need to approximate the derivatives in our PDE

In time, we use fwd derivative since we want to use information from the previous time levelIn space, we use centered derivative, since it is more accurate:

∂q(x, t)

∂t+ a

∂q(x, t)

∂x= 0

∂q(x, t)

∂t≈qn+1i − qni∆t

∂q(x, t)

∂x≈qni+1 − q

ni−1

2∆x

Page 11: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Linear Advection Equation:

Putting all together:

and solving with respect to :

where is called the Courant number or theCourant-Friedrichs-Lewy (CFL) number.We call this method FTCS for forward in time, center in space.The value at the new time level depends only on quantities at the old time step explicit method

qn+1i − qni∆t

+ a

µqni+1 − q

ni−1

2∆x

¶= 0

qn+1i = qni −C

2

¡qni+1 − q

ni−1¢

C = a∆t

∆x

qn+1i

Page 12: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Linear Advection Equation:

At t = 0, we prescribe a square pulse:

and prescribe periodic b.c.

Page 13: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Linear Advection Equation:After one period, the solution looks like:

Oops!! Something isn’t right… WHY ??

Page 14: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Linear Advection Equation:stability analysis

Let’s perform an analysis of FTCS by expressing the solution as a Fourier series. Since the equation is linear, we only need to examine the behavior of a single mode. Consider a trial solution of the form:

This is a spatial Fourier expansion. Plugging in the difference formula:

qni = AneIiθ , I = (−1)1/2 , θ = k∆x

qn+1i = qni −C

2

¡qni+1 − q

ni−1¢→ An+1 = An −

C

2An¡eIθ − q−Iθ

¢

Page 15: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Linear Advection Equation:stability analysis

Defining the amplification factor one obtains

A method is well-behaved or stable if

But for FTCS one gets

Indipendently of the CFL number all Fourier modes increase in magnitude as time advances.

This method is unconditional unstable!!.

¯̄̄̄An+1

An

¯̄̄̄≤ 1

An+1

An= 1−

C

2

¡eIθ − e−Iθ

¢= 1− IC sin θ

An+1

An

¯̄̄̄An+1

An

¯̄̄̄= 1 + C2 sin2 θ ≥ 1

Page 16: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Linear Advection Equation:Let’s try a different approach. Consider the backward derivative:

Let’s apply the von Neumann stability analysis on the resulting discretized equation:

Solving for the amplification factor gives

∂q(x, t)

∂x≈qni − q

ni−1

∆x

qn+1i − qni∆t

+ a

µqni − q

ni−1

∆x

¶= 0 with qni = A

neIiθ

An+1

An= 1− C + C cos θ − I sin θ

Page 17: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Linear Advection Equation:

Taking the norm,

Recall that for stability one needs

But so the stability condition is met when

Recalling the definition , one has for a > 0

¯̄̄̄An+1

An

¯̄̄̄= 1− 2C(1− C)(1− cos θ)¯̄̄̄

An+1

An

¯̄̄̄≤ 1

1− cos θ ≥ 0

2C(1− C) ≥ 0

0 ≤ a∆t

∆x≤ 1

Condition for stability

C = a∆t

∆x

Page 18: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Linear Advection Equation:

Since the advection speed a is a parameter of the equation, Δx is fixed from the grid, this is a constraint on the time step:

Δt cannot be arbitrarily large.

In the case of nonlinear equations, the speed can vary in the domain and the maximum of a should be considered.

∆t ≤∆x

a

Page 19: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Linear Advection Equation:

Repeating the argument for the fwd derivative,

Gives

If a > 0, the method will always be unstableHowever, if a is negative, then this method is stable and the previous is unstable.

¯̄̄̄An+1

An

¯̄̄̄= 1 + 2C(1− C)(1− cos θ)

qn+1i − qni∆t

+ a

µqni+1 − q

ni

∆x

¶= 0 with qni = A

neIiθ

Page 20: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Linear Advection Equation:What Have We Learned ?

The stable method is the one with the difference that makes use of the grid point where information is coming from.

This type of discretization goes under the name “upwind”:

For a > 0 we want

The a < 0 we want

This is the first-order Godunov Method.

qn+1i = qni −a∆t

∆x

¡qni − q

ni−1¢

qn+1i = qni −a∆t

∆x

¡qni+1 − q

ni

¢

Page 21: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Linear Advection Equation:After one period, the solution looks like:

Much better now…But we still see some smearing…

Page 22: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Equivalent Advection/DiffusionEquation

A discretized P.D.E gives the exact solution to an equivalent equation with a diffusion term:

Consider

discretize w/ upwind

do Taylor expansion on andThe solution to the discretized equation is also the solution of

∂q

∂t+ a

∂q

∂x= 0 , a > 0

qn+1i − qni∆t

+ aqni − q

ni−1

∆x= 0

∂q

∂t+ a

∂q

∂x=a∆x

2

µ1− a

∆t

∆x

¶∂2q

∂x2+H.O.T.

qn+1i qni−1

Page 23: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Linear Advection Equation:

Page 24: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

Linear Advection Equation:Conservative Form

Godunov method can be cast in conservative form, i.e.

by defining the “flux” function

In fact for a > 0, one has

and for a < 0

qn+1i = qni −a∆t

∆x

¡qni − q

ni−1¢

qn+1i = qni −a∆t

∆x

¡qni+1 − q

ni

¢

qn+1i = qni −∆t

∆x

³Fni+1/2 − F

ni−1/2

´

Fni+1/2 =a

2

¡qni+1 + q

ni

¢−|a|

2

¡qni+1 − q

ni

¢

Page 25: 2-Numerical Methods for the Advection Equationindico.ictp.it/event/a06220/session/18/contribution/10/... · 2014-05-05 · Linear Advection Equation 2 popular methods for performing

C Implementation

Look advection.c