2-numerical methods for the advection...

Post on 03-Apr-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

2-Numerical Methods for the Advection Equation

∂q

∂t+ a

∂q

∂x= 0

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

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

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)

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

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)

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

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)

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

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

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

Linear Advection Equation:

At t = 0, we prescribe a square pulse:

and prescribe periodic b.c.

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

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

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θ

¢

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

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 θ

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

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

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θ

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

¢

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

Much better now…But we still see some smearing…

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

Linear Advection Equation:

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

¢

C Implementation

Look advection.c

top related