MUSCL scheme

MUSCL scheme

MUSCL stands for "Monotone Upstream-centered Schemes for Conservation Laws", and the term was introduced in a seminal paper by Bram van Leer (van Leer, 1979). In this paper he constructed the first "high-order", "total variation diminishing" (TVD) scheme where he obtained second order spatial accuracy. It is a "finite volume method" that provides high accuracy numerical solutions to partial differential equations which can involve solutions that exhibit "shocks", "discontinuities" or "large gradients".

The idea is to replace the piecewise constant approximation of Godunov's scheme by reconstructed states, derived from cell-averaged states obtained from the previous time-step. For each cell, slope limited, reconstructed left and right states are obtained and used to calculate fluxes at the cell boundaries (edges). These fluxes can, in turn, be used as input to a "Riemann solver", following which the solutions are averaged and used to advance the solution in time. Alternatively, the fluxes can be used in "Riemann-free-solver" schemes, such as the "Kurganov and Tadmor scheme" outlined below.

Linear reconstruction

We will consider the fundamentals of the MUSCL scheme by considering the following simple first-order, scalar, 1D system, which is assumed to have a wave propagating in the positive direction,

:u_t + F_xleft(u ight)=0 .

Where u represents a state variable and F represents a flux variable.

The basic scheme of Godunov uses piecewise constant approximations for each cell, and results in a first-order upwind discretisation of the above problem with cell centres indexed as i . A semi-discrete scheme can be defined as follows,

:frac{d u_i}{d t} + frac{1}{Delta x_i} left [ F left( u_{i + 1} ight) - F left( u_{i} ight) ight] =0 .

This basic scheme is not able to handle shocks or sharp discontinuities as they tend to become smeared. An example of this effect is shown in the diagram opposite, which illustrates a 1D advective equation with a step wave propagating to the right. The simulation was carried out with a mesh of 200 cells and used a 4th order Runge-Kutta time integrator (RK4).

To provide higher resolution of discontinuities, Godunov's scheme can be extended to use piecewise linear approximations of each cell, which results in a "central difference" scheme that is "second-order" accurate in space. The piecewise linear approximations are obtained from

: u left( x ight) = u_{i} + frac{left( x - x_{i} ight) }{ left( x_{i+1} - x_{i} ight)} left( u_{i+1} - u_{i} ight) , x in left [ x_{i}, x_{i+1} ight] .

Thus, evaluating fluxes at the cell edges we get the following semi-discrete scheme

:frac{d u_i}{d t} + frac{1}{Delta x_i} left [ F left( u_{i + frac{1}{2 ight) - F left( u_{i - frac{1}{2 ight) ight] =0 ,

where u_{i + frac{1}{2 and u_{i - frac{1}{2 are the piecewise approximate values of cell edge variables, i.e.

: u_{i + frac{1}{2 = 0.5 left( u_{i} + u_{i + 1} ight) ,: u_{i - frac{1}{2 = 0.5 left( u_{i-1} + u_{i} ight) .

Although the above second-order scheme provides greater accuracy for smooth solutions, it is not a total variation diminishing (TVD) scheme and introduces spurious oscillations into the solution where discontinuities or shocks are present. An example of this effect is shown in the diagram opposite, which illustrates a 1D advective equation , u_t+u_x=0 , with a step wave propagating to the right. This loss of accuracy is to be expected due to Godunov's theorem. The simulation was carried out with a mesh of 200 cells and used RK4 for time integration.

MUSCL based numerical schemes extend the idea of using a linear piecewise approximation to each cell by using "slope limited" left and right extrapolated states. This results in the following high resolution, TVD discretisation scheme,

:frac{d u_i}{d t} + frac{1}{Delta x_i} left [ F left( u^*_{i + frac{1}{2 ight) - F left( u^*_{i - frac{1}{2 ight) ight] =0 .

Which, alternatively, can be written in the more succinct form,

:frac{d u_i}{d t} + frac{1}{Delta x_i} left [ F^*_{i + frac{1}{2 - F^*_{i - frac{1}{2 ight] =0 .

The numerical fluxes F^*_{i pm frac{1}{2 correspond to a nonlinear combination of first and second-order approximations to the continuous flux function.

The symbols u^*_{i + frac{1}{2 and u^*_{i - frac{1}{2 represent scheme dependent functions (of the limited extrapolated cell edge variables), i.e.

: u^*_{i + frac{1}{2 = u^*_{i + frac{1}{2 left( u^L_{i + frac{1}{2 , u^R_{i + frac{1}{2 ight),

u^*_{i - frac{1}{2 = u^*_{i - frac{1}{2 left( u^L_{i - frac{1}{2 , u^R_{i - frac{1}{2 ight) ,

and: u^L_{i + frac{1}{2 = u_{i} + 0.5 phi left( r_{i} ight) left( u_{i+1} - u_{i} ight), u^R_{i + frac{1}{2 = u_{i+1} - 0.5 phi left( r_{i+1} ight) left( u_{i+2} - u_{i+1} ight),

: u^L_{i - frac{1}{2 = u_{i-1} + 0.5 phi left( r_{i-1} ight) left( u_{i} - u_{i-1} ight), u^R_{i - frac{1}{2 = u_{i} - 0.5 phi left( r_{i} ight) left( u_{i+1} - u_{i} ight),

: r_{i} = frac{u_{i} - u_{i-1{u_{i+1} - u_{i.

The function {phi left( r_i ight)} is a limiter function that limits the slope of the piecewise approximations to ensure the solution is TVD, thereby avoiding the spurious oscillations that would otherwise occur around discontinuities or shocks - see Flux limiter section. The limiter is equal to zero when r le 0 and is equal to unity when r = 1 . Thus, the accuracy of a TVD discretization degrades to first order at local extrema, but tends to second order over smooth parts of the domain.

The algorithm is straight forward to implement. Once a suitable scheme for F^*_{i + frac{1}{2 has been chosen, such as the "Kurganov and Tadmor scheme" (see below), the solution can proceed using standard integration techniques such as Method of lines (MOL).

Kurganov and Tadmor central scheme

A precursor to the "Kurganov and Tadmor" (KT) "central scheme", (Kurganov and Tadmor, 2000), is the "Nessyahu and Tadmor" (NT) "central scheme", (Nessyahu and Tadmor, 1990). It is a Riemann-solver-free, second-order, high-resolution scheme that uses MUSCL reconstruction. It is a fully-discrete method that is straight forward to implement and can be used on scalar and vector problems , and can be viewed as a modification to the "Lax-Friedrichs" (LxF) "scheme". The algorithm is based upon central differences with comparable performance to Riemann type solvers when used to obtain solutions for PDE's describing systems that exhibit high-gradient phenomena.

The KT scheme extends the NT scheme and has a smaller amount of numerical viscosity than the original NT scheme. It also has the added advantage that it can be implemented as either a "fully-discrete" or "semi-discrete" scheme. Here we consider the semi-discrete scheme.

The calculation is shown below:: F^*_{i-frac{1}{2 =frac{1}{2} left{left [ F left(u^R_{i - frac{1}{2 ight) + F left(u^L_{i - frac{1}{2 ight) ight] - a_{i - frac{1}{2} } left [u^R_{i - frac{1}{2 - u^L_{i - frac{1}{2 ight] ight} . : F^*_{i+frac{1}{2 =frac{1}{2} left{left [ F left(u^R_{i + frac{1}{2 ight) + F left(u^L_{i + frac{1}{2 ight) ight] - a_{i + frac{1}{2} } left [u^R_{i + frac{1}{2 - u^L_{i + frac{1}{2 ight] ight} .

Where the "local propagation speed", a_{i pm frac{1}{2 , is the maximum absolute value of the eigenvalue of the Jacobian of F left( u left(x, t ight) ight) over cells {i} , {i pm 1} given by

: a_{i pm frac{1}{2} } left( t ight) = max left [ ho left( frac{partial F left( u_{i} left( t ight) ight)}{partial u} ight) , ho left( frac{partial F left( u_{i pm 1} left( t ight) ight)}{partial u} ight) ight] ,

where ho represents the spectral radius of frac{partial F left( u left( t ight) ight)}{ partial u} .

Beyond these CFL related speeds, no characteristic information is required.

The above flux calculation is sometimes referred to as "local Lax-Friedrichs flux" or "Rusanov flux" (Lax, 1954; Rusanov, 1961; Toro, 1999; Kurganov and Tadmor, 2000; Leveque, 2002).

An example of the effectiveness of using a high resolution scheme is shown in the diagram opposite, which illustrates the 1D advective equation u_t+u_x=0 , with a step wave propagating to the right. The simulation was carried out on a mesh of 200 cells, using the Kurganov and Tadmor central scheme with Superbee limiter and used RK-4 for time integration. This simulation result contrasts extremely well against the above first-order upwind and second-order central difference results shown above. This scheme also provides good results when applied to sets of equations - see results below for this scheme applied to the Euler equations. However, care has to be taken in choosing an appropriate limiter because, for example, the Superbee limiter can cause unrealistic sharpening for some smooth waves.

The scheme can readily include diffusion terms, if they are present. For example, if the above 1D scalar problem is extended to include a diffusion term, we get

:u_t + F_xleft(u ight) = Q_x left( u , u_x ight) ,

for which Kurganov and Tadmor propose the following central difference approximation,

:frac{d u_i}{d t} = - frac{1}{Delta x_i} left [ F^*_{i + frac{1}{2 - F^*_{i - frac{1}{2 ight] + frac{1}{Delta x_i} left [ P_{i + frac{1}{2 - P_{i - frac{1}{2 ight] .

Where,

:P_{i + frac{1}{2 = frac{1}{2} left [ Q left( u_{i} , frac{u_{i+1} - u_i}{Delta x_i} ight) + Q left( u_{i+1} , frac{u_{i+1} - u_i}{Delta x_i} ight) ight] ,

:P_{i - frac{1}{2 = frac{1}{2} left [ Q left( u_{i-1} , frac{u_{i} - u_{i-1{Delta x_{i-1 ight) + Q left( u_{i} , frac{u_{i} - u_{i-1{Delta x_{i-1 ight) ight] .

Full details of the algorithm ("full" and "semi-discrete" versions) and its derivation can be found in the original paper (Kurganov and Tadmor, 2000), along with a number of 1D and 2D examples. Additional information is also available in the earlier related paper by Nessyahu and Tadmor (1990).

Note: This scheme was originally presented by Kurganov and Tadmor as a 2nd order scheme based upon "linear extrapolation". A later paper (Kurganov and Levy, 2000) demonstrates that it can also form the basis of a third order scheme. A 1D advective example and an Euler equation example of their scheme, using parabolic reconstruction (3rd order), are shown in the "parabolic reconstruction" and "Euler equation" sections below.

Piecewise parabolic reconstruction

It is possible to extend the idea of linear-extrapolation to higher order reconstruction, and an example is shown in the diagram opposite. However, for this case the left and right states are estimated by interpolation of a second-order, upwind biased, difference equation. This results in a parabolic reconstruction scheme that is third-order accurate in space.

We follow the approach of Kermani (Kermani, et al, 2003), and present a third-order upwind biased scheme, where the symbols u^*_{i + frac{1}{2 and u^*_{i - frac{1}{2 again represent scheme dependent functions (of the limited reconstructed cell edge variables). But for this case they are based upon parabolically-reconstructed states, i.e.

: u^*_{i + frac{1}{2 = f left( u^L_{i + frac{1}{2 , u^R_{i + frac{1}{2 ight),

u^*_{i - frac{1}{2 = f left( u^L_{i - frac{1}{2 , u^R_{i - frac{1}{2 ight) ,

and

: u^L_{i + frac{1}{2 = u_{i} + frac{phi left( r_{i} ight)}{4} left [ left( 1 - kappa ight) delta u_{i - frac{1}{2} } + left( 1 + kappa ight) delta u_{i + frac{1}{2} } ight] ,

:u^R_{i + frac{1}{2 = u_{i+1} - frac{phi left( r_{i+1} ight)}{4} left [ left( 1 - kappa ight) delta u_{i + frac{3}{2} } + left( 1 + kappa ight) delta u_{i + frac{1}{2} } ight] ,

: u^L_{i - frac{1}{2 = u_{i-1} + frac{phi left( r_{i-1} ight)}{4} left [ left( 1 - kappa ight) delta u_{i - frac{3}{2 + left( 1 + kappa ight) delta u_{i - frac{1}{2} } ight] ,

:u^R_{i - frac{1}{2 = u_{i} - frac{phi left( r_{i} ight)}{4} left [ left( 1 - kappa ight) delta u_{i + frac{1}{2} } + left( 1 + kappa ight) delta u_{i - frac{1}{2} } ight] .

Where kappa = 1/3 and,: delta u_{i + frac{1}{2} } = left( u_{i+1} - u_{i} ight) , delta u_{i - frac{1}{2} } = left( u_{i} - u_{i-1} ight),

: delta u_{i + frac{3}{2} } = left( u_{i+2} - u_{i+1} ight) , delta u_{i - frac{3}{2} } = left( u_{i-1} - u_{i-2} ight),

and the limiter function phi left( r ight) , is the same as above.

Parabolic reconstruction is straight forward to implement and can be used with the Kurganov and Tadmor scheme in lieu of the linear extrapolation shown above. This has the effect of raising the spatial solution of the KT scheme to 3rd order. It performs well when solving the Euler equations, see below. This increase in spatial order has certain advantages over 2nd order schemes for smooth solutions, however, for shocks it is more dissipative - compare diagram opposite with above solution obtained using the KT algorithm with linear extrapolation and Superbee limiter. This simulation was carried out on a mesh of 200 cells using the same KT algorithm but with parabolic reconstruction. Time integration was by RK-4, and the alternative form of van Albada limiter, phi_{va} (r) = frac{2 r}{1 + r^2 } , was used to avoid spurious oscillations.

Euler equations example

For simplicity we consider the 1D case without heat transfer and without body force. Therefore, in conservation vector form, the general Euler equations reduce to

: frac{partial mathbf{U{partial t}+frac{partial mathbf{F{partial x}=0,

where

:mathbf{U}=egin{pmatrix} ho \ ho u \ Eend{pmatrix}qquadmathbf{F}=egin{pmatrix} ho u\p+ ho u^2\ u(E+p)end{pmatrix}qquad,and where mbox{U} is a vector of states and mbox{F} is a vector of fluxes.

The equations above represent conservation of mass, momentum, and energy. There are thus three equations and four unknowns, ho (density) u (fluid velocity), p (pressure) and E (total energy). The total energy is given by,

:E= ho e + frac{1}{2} ho u^2,

where e represents specific internal energy.

In order to close the system an equation of state is required. One that suits our purpose is

:p= ho left(gamma-1 ight)e, where gamma is equal to the ratio of specific heats left [ c_p/c_v ight] for the fluid.

We can now proceed, as shown above in the simple 1D example, by obtaining the left and right extrapolated states for each state variable. Thus, for density we obtain

: ho^*_{i + frac{1}{2 = ho^*_{i + frac{1}{2 left( ho^L_{i + frac{1}{2 , ho^R_{i + frac{1}{2 ight),

ho^*_{i - frac{1}{2 = ho^*_{i - frac{1}{2 left( ho^L_{i - frac{1}{2 , ho^R_{i - frac{1}{2 ight) ,

where

: ho^L_{i + frac{1}{2 = ho_{i} + 0.5 phi left( r_{i} ight) left( ho_{i+1} - ho_{i} ight), ho^R_{i + frac{1}{2 = ho_{i+1} - 0.5 phi left( r_{i+1} ight) left( ho_{i+2} - ho_{i+1} ight),

: ho^L_{i - frac{1}{2 = ho_{i-1} + 0.5 phi left( r_{i-1} ight) left( ho_{i} - ho_{i-1} ight), ho^R_{i - frac{1}{2 = ho_{i} - 0.5 phi left( r_{i} ight) left( ho_{i+1} - ho_{i} ight).

Similarly, for momentum ho u , and total energy E . Velocity u , is calculated from momentum, and pressure p , is calculated from the equation of state.

Having obtained the limited extrapolated states, we then proceed to construct the edge fluxes using these values. With the edge fluxes known, we can now construct the semi-discrete scheme, i.e.

:frac{d mathbf{U}_i}{d t} = - frac{1}{Delta x_i} left [ mathbf{F}^*_{i + frac{1}{2} } - mathbf{F}^*_{i - frac{1}{2 ight] .

The solution can now proceed by integration using standard numerical techniques.

The above illustrates the basic idea of the MUSCL scheme. However, for a practical solution to the Euler equations, a suitable scheme (such as the above KT scheme), also has to be chosen in order to define the function mathbf{F}^*_{i pm frac{1}{2} } .

The diagram opposite shows a 2nd order solution to G A Sod's shock tube problem (Sod, 1978) using the above high resolution Kurganov and Tadmor Central Scheme (KT) with Linear Extrapolation and Ospre limiter. This illustrates clearly the effectiveness of the MUSCL approach to solving the Euler equations. The simulation was carried out on a mesh of 200 cells using Matlab code (Wesseling, 2001), adapted to use the KT algorithm and Ospre limiter. Time integration was performed by a 4th order SHK (equivalent performance to RK-4) integrator. The following initial conditions (SI units) were used:

*pressure left = 100000 [Pa] ;
*pressure right= 10000 [Pa] ;
*density left = 1.0 [kg/m3] ;
*density right = 0.125 [kg/m3] ;
*length = 20 [m] ;
*velocity left = 0 [m/s] ;
*velocity right = 0 [m/s] ;
*duration =0.01 [s] ;
*lambda = 0.001069 (Δt/Δx).

The diagram opposite shows a 3rd order solution to G A Sod's shock tube problem (Sod, 1978) using the above high resolution Kurganov and Tadmor Central Scheme (KT) but with parabolic reconstruction and van Albada limiter. This again illustrates the effectiveness of the MUSCL approach to solving the Euler equations. The simulation was carried out on a mesh of 200 cells using Matlab code (Wesseling, 2001), adapted to use the KT algorithm with Parabolic Extrapolation and van Albada limiter. The alternative form of van Albada limiter, phi_{va} (r) = frac{2 r}{1 + r^2 } , was used to avoid spurious oscillations. Time integration was performed by a 4th order SHK integrator. The same initial conditions were used.

Various other high resolution schemes have been developed that solve the Euler equations with good accuracy. Examples of such schemes are,

*the Osher scheme, and
*the Liou-Steffen AUSM (advection upstream splitting method) scheme.

More information on these and other methods can be found in the references below.

References

*Kermani, M. J., Gerber, A. G., and Stockie, J. M. (2003), Thermodynamically Based Moisture Prediction Using Roe’s Scheme, "The 4th Conference of Iranian AeroSpace Society", Amir Kabir University of Technology, Tehran, Iran, January 27–29. [http://me.aut.ac.ir/mkermani/PDF-files/Conferences/Amir_Kabir.pdf]
*Kurganov, Alexander and Eitan Tadmor (2000), New High-Resolution Central Schemes for Nonlinear Conservation Laws and Convection-Diffusion Equations, "J. Comp. Phys.", "160", 214–282. [http://www.cscamm.umd.edu/centpack/publications/files/KT_semi-discrete.JCP00-centpack.pdf]
*Kurganov, Alexander and Doron Levy (2000), A Third-Order Semidiscrete Central Scheme for Conservation Laws and Convection-Diffusion Equations, "SIAM J. Sci. Comput.", "22", 1461–1488. [http://www.cscamm.umd.edu/centpack/publications/files/Kur-Lev_3rd_semi_discrete.SINUM00-centpack.pdf]
*Lax, P. D. (1954). Weak Solutions of Non-linear Hyperbolic Equations and Their Numerical Computation, "Comm. Pure Appl. Math.", VII, pp159-193.
*Leveque, R. J. (2002). "Finite Volume Methods for Hyperbolic Problems", Cambridge University Press.
*van Leer, B. (1979), Towards the Ultimate Conservative Difference Scheme, V. A Second Order Sequel to Godunov's Method, "J. Com. Phys."., "32", 101–136.
*Nessyahu, H. and E. Tadmor (1990), Non-oscillatory central differencing for hyperbolic conservation laws, "J. Comp. Phys.", "87", 408–463. [http://www.cscamm.umd.edu/centpack/publications/files/NT2.JCP90-centpack.pdf] .
*Rusanov, V. V. (1961). Calculation of Intersection of Non-Steady Shock Waves with Obstacles, "J. Comput. Math. Phys. USSR", 1, pp267-279.
*Sod, G. A. (1978), A Numerical Study of a Converging Cylindrical Shock. "J. Fluid Mechanics", "83", 785–794.
*Toro, E. F. (1999), "Riemann Solvers and Numerical Methods for Fluid Dynamics", Springer-Verlag.
*Wesseling, Pieter (2001), "Principles of Computational Fluid Dynamics", Springer-Verlag.

Further reading

*Hirsch, C. (1990), "Numerical Computation of Internal and External Flows", vol 2, Wiley.
*Laney, Culbert B. (1998), "Computational Gas Dynamics", Cambridge University Press.
*Tannehill, John C., et al. (1997), "Computational Fluid mechanics and Heat Transfer", 2nd Ed., Taylor and Francis.

ee also

*Euler equations
*Finite volume method
*Flux limiter
*Godunov's theorem
*High resolution scheme
*Method of lines
*Sergei K. Godunov
*Total variation diminishing


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Godunov's scheme — is a conservative numerical scheme, suggested by S. K. Godunov in 1959, for solving partial differential equations. In this method, the conservative variables are considered as piecewise constant over the mesh cells at each time step and the time …   Wikipedia

  • High-resolution scheme — High resolution schemes are used in the numerical solution of partial differential equations where high accuracy is required in the presence of shocks or discontinuities. They have the following properties:*Second or higher order spatial accuracy …   Wikipedia

  • Flux limiter — Flux limiters are used in high resolution schemes mdash; numerical schemes used to solve problems in science and engineering, particularly fluid dynamics, described by partial differential equations (PDE s). They are used in high resolution… …   Wikipedia

  • Finite volume method — The finite volume method is a method for representing and evaluating partial differential equations as algebraic equations. Similar to the finite difference method, values are calculated at discrete places on a meshed geometry. Finite volume… …   Wikipedia

  • Bram van Leer — Infobox Person name = Bram van Leer caption = Bram van Leer birth date = birth place = The Netherlands death date = death place = Bram van Leer is professor of aerospace engineering at the University of Michigan, in Ann Arbor. He specialises in… …   Wikipedia

  • List of numerical analysis topics — This is a list of numerical analysis topics, by Wikipedia page. Contents 1 General 2 Error 3 Elementary and special functions 4 Numerical linear algebra …   Wikipedia

  • Crank–Nicolson method — In numerical analysis, the Crank–Nicolson method is a finite difference method used for numerically solving the heat equation and similar partial differential equations.[1] It is a second order method in time, implicit in time, and is numerically …   Wikipedia

  • Spectral method — Spectral methods are a class of techniques used in applied mathematics and scientific computing to numerically solve certain Dynamical Systems, often involving the use of the Fast Fourier Transform. Where applicable, spectral methods have… …   Wikipedia

  • Numerical partial differential equations — is the branch of numerical analysis that studies the numerical solution of partial differential equations (PDEs). Numerical techniques for solving PDEs include the following: The finite difference method, in which functions are represented by… …   Wikipedia

  • Multigrid method — Multigrid (MG) methods in numerical analysis are a group of algorithms for solving differential equations using a hierarchy of discretizations. They are an example of a class of techniques called multiresolution methods, very useful in (but not… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”