Solving 2D Euler Euqations Using 2D MUSCL Scheme

### 1 Abstract

Euler equations have been used as a benchmark for testing the performances of various numercial
schemes. Here, the 2D MUSCL scheme, short for *M*onotone *U*pstream-centered *S*chemes
for *C*onservation *L*aws, will be utilized to solve 2D Euler equations. A 2D Riemann
problem(6.1
), a 2D Lax problem(6.2
), and a 2D Shu-Osher problem(6.3
) will be test
examples.

2 Introduction to the finite volume method

The idea of the finite volume method is: if the domain is divided into small cells, the change in cell
average of a unit of measure which obeys the law of conservation, say mass, equals the net
flux change on all the boundaries of the cell, as described in the following equation:

where u_{i} = ∫ _{Di}ud is the cell average of u in D_{i}, and is the unit normal vector of the
boundary ∂D_{i}.

Equation (1
) can be applied to cells of any shape. However, since the initial conditions
(6.1
)(6.2
)(6.3
) are defined in rectangular domains, it is reasonable for one to choose rectangular cell
partitions in order to exactly fit the domain boundaries. Hence equation (1
) can be rewritten as
where the subscripts e,n,w,s represent the east, north, west, and south boundary of a cell,
respectively. In the Cartesian coordinate system, _{e} = , _{n} = , _{w} = , and _{s} = .

### 3 2D Euler equations

2D Euler equations can be written in the following way

where

There are five unknowns and five equations, so 2D Euler equations are closed. After applying the
concept of equation (2
) to equations above, we get:

For example, if we write the second equation of the Euler equations in the form of equation (

4
), we
get

and the equation for 1D conservative schemes (can be found on most tutorials)

is just a special case of equation (

4
).

Numerically solving the Euler equations requires a trick: solving each equation independently by
using the variables solved at the previous time step. Take the following equation as an example. In
theory, at t

_{n} one needs to know u, v, and p, which are solutions (solved at t

_{n} as well) from other
equations in order to solve for ρ

However, in other equations, one needs to know ρ value (solved at t_{n}) before u or v or p is solved.
Numerically solving the coupling equations can be done byThis cou instead of doing so, we obtain
their values (u, v, and p) from the preivous time step at t_{n−1}. This way, the coupled Euler
equations become four separate equations and we can easily solve for the four elements in by
vectorizing Euler equations. In MATLAB, this will significantly accelerate the computation
process.

### 4 MUSCL scheme

MUSCL scheme is a Riemann-free-solver scheme. In the 2D MUSCL scheme, one needs to
reconstruct a 2D piece-wise polynomial for each cell. This polynomial is determined by the cell
averages of the current cell and its neighbors. Therefore, the degree of the piece-wise polynomial,
its covering range, and the cell configuration determine the complexity of the reconstruction of
a solution. For the 2D MUSCL scheme, a linear polynomial is adopted, so it can be
written in the form of P(x,y) = a_{0} + a_{1}(x − x_{i}) + a_{2}(y − y_{j}). The three coefficients a_{0},a_{1},a_{2} are determined by different stencil configurations (see Appendix(7
)). A MINMOD
function (the slope limiter) is a reasonable choice to determine the coefficients. After the
coefficients are determined, the reconstructed solution for the specific cell is determined.

When the reconstructed piece-wise solutions are available for each cell, one then uses the
reconstructed solution on the boundaries to determine the flux for each cell. There are several
types of flux functions to choose, and they must satisfy

- Consistency,
- Lipschitz continuity, and
- Monotonicity.

Lax-Friedrichs flux is a good choice here.

Lax-Friedriches flux has the following form:

where Ũ is the reconstructed solution at the boundaries and superscripts in or out represents the
values in or out of the current cell, respectively.

ã is a factor which determines the flux. It determines the size of time-marching step. In order to
keep this scheme stable (See equation (

9
)), it should be the largest characteristic speed. The
characteristic speed can be represented as follows:

For all the elements in and all the cells in the domain, at moment t_{n}, the time step Δt for
marching to the next step should obey the following rule:

where c is the CFL number.

### 5 Time Discretization

Since the MUSCL scheme is a second order scheme, using the improved Euler (predictor-corrector)
method for discretizing time will be effective and efficient (using Runge-Kutta 3rd order is overkill
for this problem). The improved Euler method contains three steps:

Given = (U)

- U
^{∗n+1} = U^{n} + Δt (U^{n})
- U
^{∗n+2} = U^{∗n+1} + Δt (U^{∗n+1})
- U
^{n+1} = (U^{n} + U^{∗n+2})

where Δt satisfies equation (9
)

### 6 Results

The three test examples all have discontinuities in the initial conditions. Overcoming
discontinuities (Riemann problems) in numerical schemes has been a challenging task since an
exact Riemann solver requires Raphson-Newton iterations and the information of wave structure
and wave speeds. On the other hand, the MUSCL scheme uses predictor-corrector strategy, which
saves computation.

The MUSCL is a second order conservative scheme, so it doesn’t catch as many fine details as the
high order scheme in [1]. However, this scheme is relatively computationally inexpensive (compared
to the shemes in [1]).

#### 6.1 2D Riemann problem

2D Riemann problem is defined as follows: the domain is [0, 1] × [0, 1]. The initial states are
constant within each of the 4 quadrants. Counterclockwise from the upper right quadrant, they are
initialized with (ρ_{i},u_{i},v_{i},p_{i}), i = 1,2,3,4. Initially, ρ_{1} = 1.1,u_{1} = 0,v_{1} = 0,p_{1} = 1.1; ρ_{2} = 0.5065,u_{2} = 0.8939,v_{2} = 0,p_{2} = 0.35; ρ_{3} = 1.1,u_{3} = 0.8939,v_{3} = 0.8939,p_{3} = 1.1; ρ_{4} = 0.5065,u_{4} = 0,v_{4} = 0.8939,p_{4} = 0.35.

#### 6.2 2D Lax problem

2D Lax problem is defined as follows:

#### 6.3 2D Shu-Osher problem

2D Shu-Osher problem is defined as follows:

### 7 Appendix

In order to determine the coefficients of the piece-wise polynomial for each cell, one has to consider
four stencil configurations: Figure (11
), (12
), (13
), (14
), and

Obviously, for each cell, there are two possible values for a_{1}, two possible values for a_{2}, and only
one possible value for a_{0}. After all the possible values are available, we use MINMOD to determine
one set of {a_{0},a_{1},a_{2}}. MINMOD is used to maintain the TVD (total variation diminishing)
property and is defined as follows:

It is clear that using linear piece-wise polynomials in rectangular cell configuration could save a lot
of computation because solving a_{1} and a_{2} doesn’t require any Gaussian elimination.

### References

[1] Y. Liu, C.W. Shu, E. Tadmor, M. Zhang, et al. Non-oscillatory hierarchical reconstruction for central and finite volume schemes. Comm. Comput. Phys, 2:933–963, 2007.