MacCormack method
From Wikipedia, the free encyclopedia
In computational fluid dynamics, the MacCormack method is a widely used discretization scheme for the numerical solution of hyperbolic partial differential equations (hyperbolic PDEs). This second-order finite difference method is introduced by R. W. MacCormack in 1969.[1] The MacCormack method is very elegant and easy to understand and program.[2]
Contents |
[edit] The algorithm
The MacCormack method is a variation of the two-step Lax–Wendroff scheme but is much simpler in application. To illustrate the algorithm, consider the following one-dimensional linear wave equation
The application of MacCormack method to the above equation proceeds in two steps; a predictor step which is followed by a corrector step.
Predictor step: In the predictor step, a "provisional" value of u at time level n + 1 (denoted by ) is estimated as follows
It may be noted that the above equation is obtained by replacing the spatial and temporal derivatives in the wave equation using forward differences.
Corrector step: In the corrector step, the predicted value is corrected according to the equation
Note that the predictor step uses backward finite difference approximations for both spatial and temporal derivatives. Note also that the time-step used in the corrector step is Δt / 2 in contrast to the Δt used in the predictor step.
Replacing the term by the temporal average
to obtain the corrector step as
[edit] Some remarks
The MacCormack method is well suited for nonlinear equations (Inviscid Burgers equation, Euler equations, etc.) The order of differencing can be reversed for the time step (i.e., forward/backward followed by backward/forward). For nonlinear equations, this procedure provides the best results. For linear equations, the MacCormack scheme is equivalent to the Lax–Wendroff scheme.[3]
Unlike first-order upwind scheme, the MacCormack does not introduce diffusive errors in the solution. However, it is known to introduce dispersive errors (Gibbs phenomenon) in the region where the gradient is high.
[edit] See also
[edit] References
- ^ MacCormack, R. W., The Effect of viscosity in hypervelocity impact cratering, AIAA Paper, 69-354 (1969).
- ^ Anderson, J. D., Jr., Computational Fluid Dynamics: The Basics with Applications, McGraw Hill (1994).
- ^ Tannehill, J. C., Anderson, D. A., and Pletcher, R. H., Computational Fluid Dynamics and Heat Transfer, 2nd ed., Taylor & Francis (1997).