Lax–Wendroff method

From Wikipedia, the free encyclopedia
(Redirected from Lax-Wendroff method)
Jump to navigation Jump to search

Template:Short description

File:Advection equation solution comparison.png
Graphs that show different Lax–Wendroff methods

The Lax–Wendroff method, named after Peter Lax and Burton Wendroff,[1] is a numerical method for the solution of hyperbolic partial differential equations, based on finite differences. It is second-order accurate in both space and time. This method is an example of explicit time integration where the function that defines the governing equation is evaluated at the current time.

Definition

Suppose one has an equation of the following form: u(x,t)t+f(u(x,t))x=0 where Template:Mvar and Template:Mvar are independent variables, and the initial state, u(x, 0)Script error: No such module "Check for unknown parameters". is given.

Linear case

In the linear case, where f(u) = AuScript error: No such module "Check for unknown parameters"., and AScript error: No such module "Check for unknown parameters". is a constant,[2] uin+1=uinΔt2ΔxA[ui+1nui1n]+Δt22Δx2A2[ui+1n2uin+ui1n]. Here n refers to the t dimension and i refers to the x dimension. This linear scheme can be extended to the general non-linear case in different ways. One of them is letting A(u)=f(u)=fu

Non-linear case

The conservative form of Lax-Wendroff for a general non-linear equation is then: uin+1=uinΔt2Δx[f(ui+1n)f(ui1n)]+Δt22Δx2[Ai+1/2(f(ui+1n)f(uin))Ai1/2(f(uin)f(ui1n))]. where Ai±1/2 is the Jacobian matrix evaluated at 12(uin+ui±1n).

Jacobian free methods

To avoid the Jacobian evaluation, use a two-step procedure.

Richtmyer method

What follows is the Richtmyer two-step Lax–Wendroff method. The first step in the Richtmyer two-step Lax–Wendroff method calculates values for f(u(x, t))Script error: No such module "Check for unknown parameters". at half time steps, tn + 1/2Script error: No such module "Check for unknown parameters". and half grid points, xi + 1/2Script error: No such module "Check for unknown parameters".. In the second step values at tn + 1Script error: No such module "Check for unknown parameters". are calculated using the data for tnScript error: No such module "Check for unknown parameters". and tn + 1/2Script error: No such module "Check for unknown parameters"..

First (Lax) steps: ui+1/2n+1/2=12(ui+1n+uin)Δt2Δx(f(ui+1n)f(uin)), ui1/2n+1/2=12(uin+ui1n)Δt2Δx(f(uin)f(ui1n)).

Second step: uin+1=uinΔtΔx[f(ui+1/2n+1/2)f(ui1/2n+1/2)].

MacCormack method

Script error: No such module "Labelled list hatnote". Another method of this same type was proposed by MacCormack. MacCormack's method uses first forward differencing and then backward differencing:

First step: ui*=uinΔtΔx(f(ui+1n)f(uin)). Second step: uin+1=12(uin+ui*)Δt2Δx[f(ui*)f(ui1*)].

Alternatively, First step: ui*=uinΔtΔx(f(uin)f(ui1n)). Second step: uin+1=12(uin+ui*)Δt2Δx[f(ui+1*)f(ui*)].

References

<templatestyles src="Reflist/styles.css" />

  1. Script error: No such module "Citation/CS1".
  2. Script error: No such module "citation/CS1".

Script error: No such module "Check for unknown parameters".

  • Michael J. Thompson, An Introduction to Astrophysical Fluid Dynamics, Imperial College Press, London, 2006.
  • Script error: No such module "citation/CS1".

Template:Numerical PDE