Consider two-dimensional hyperbolic conservation laws (
1) with appropriate boundary conditions. Since high-order finite difference WENO methods are very efficient in resolving complex solution structures and keeping nonlinear stability for multi-dimensional problems due to its dimension-by-dimension implementation fashion [
6], it is natural to apply high-order finite difference WENO schemes in the spatial discretization of (
1).
2.1. Spatial Discretization: The Third and Fifth-Order WENO Schemes
We use a finite difference scheme to approximate the values of the hyperbolic terms
at a grid
in a conservative fashion. To be specific, we use a conservative flux difference
to approximate
at
along the line
. Here,
In the WENO schemes, the following
Lax-Friedrichs flux splitting is used.
where
and
are the positive and negative wind parts, respectively. Note that, for simplicity, we omit the index
j for the
y direction when the approximations for the
x direction are described.
Let’s first look at the third-order WENO (WENO3) method formulation. The stencil (in the 2D case) is given on the left of
Figure 1. The numerical flux
depends on a left-biased stencil, namely, the value
at three notes
i,
, because the wind is positive; that is,
for the scalar case. Its formula is given by
where
Here,
and
are called the
linear weights, and
,
are called the
smoothness indicators. To prevent a zero denominator from happening, we choose
as a tiny positive number. From the Formula (
6), we can see that
is a convex combination of
and
, which are both second-order numerical fluxes and are built on two substencils,
and
, respectively. The coefficients
are determined by
in each substencil.
For
, this is the case when
, or a negative wind. A WENO3 scheme can be constructed by using a right-biased stencil with values
and
.
where
with
,
, and
,
.
For the fifth-order WENO scheme (WENO5), the stencil is shown on the right of
Figure 1. The numerical flux
depends on a left-biased stencil, namely, the five-point value
,
,
i,
,
. Its formula is given by
where
with
,
, and
, and
From the Formula (
10), we can see that this numerical flux
is a convex combination of three brackets, and each one of them is a third-order numerical flux and is built on three different substencils of three points each. The coefficients
are determined by
in each substencil.
For the case of negative wind, that is,
, a fifth-order WENO approximation to
can be constructed by using a right-biased stencil with numerical values
and
.
where
with
,
, and
, and
Combining Equations (
3), (
6), and (
8), we have the numerical flux for the third-order WENO method
Combining Equations (
3), (
10), (
12), and using the following notations
we have the numerical flux for the fifth-order WENO method
Here,
means that
is used for
f in (
15), and
means that
is used for
f in (
15), and so on.
We apply the similar procedures in the
y direction to approximate the numerical flux of
, then we have a nonlinear system
where
n and
m are the numbers of grid points in
x and
y spatial directions, respectively.
2.2. Temporal Scheme: SSP Integrating Factor Runge–Kutta Schemes
After the spacial discretizations, a semi-discretized nonlinear ODE system (
17) is obtained. We write it in the vector form
Here,
is the vector of the solution variables, and
is the approximation for the nonlinear convection terms by high WENO schemes. Each component of
is a nonlinear function of numerical solution values on approximation stencils of WENO schemes. In order to apply exponential integrators to the nonlinear system (
18), we factor out the linear part of the system as was done in [
13] for the fully nonlinear convection-diffusion PDEs. Specifically, at every time-step interval
with time-step size
, we perform the splitting:
where
is the linear part with
being the Jacobian matrix (or an approximation of the Jacobian matrix if its direct computation is difficult) and
being the numerical solution of
.
is the nonlinear remainder of the system (
18) after the splitting
For example, for 1D problems, if
is the
th row and
th column element of the Jacobian matrix
, then
based on the 1D version of (
17).
For the third-order WENO method, from Equation (
14), we have
where
and
,
can be easily obtained based on the definitions of (
7) and (
9). For all
j other than
, and
, we have
.
For the fifth-order WENO method, from Equation (
16) we have
where
and
,
can be easily obtained based on the definitions of (
11) and (
13). For all
j except
, and
, we have
.
Remark 1. is a sparse matrix for a one-dimensional problem. For two-dimensional problems, the dimension-by-dimension procedure is followed. A sparse matrix is obtained. However, we only store the nonzero elements and their locations in the matrix for the Krylov approximation procedure.
Then, for system (
19), we apply the integration factor approach in [
13,
14], with
as the integration factor, and the resulting integration factor equations of the system is
Denoting
, then (
21) can be written in terms of
as
The next step is to apply Runge–Kutta methods to (
22) to approximate
; then the relation
is used to obtain the exponential integrator time schemes for
. To obtain the SSP exponential integrator, we apply the method in [
38]. As pointed out in [
38], application of a SSP Runge–Kutta method to derive an exponential integrator time scheme is not enough to ensure the preservation of the SSP property. In order to obtain SSP exponential integrator schemes for
based on SSP Runge–Kutta methods, the system (
22) must be solved by SSP Runge–Kutta methods with non-decreasing abscissas. For example, the third-order SSP Runge–Kutta method with non-decreasing abscissas is used to solve (
22) and leads to the following third-order SSP exponential integrator:
2.3. Integrating Factor Methods Based on Krylov Subspace Approximation
The efficiency of the SSP IF Runge–Kutta methods such as (
23) largely relies on the methods to compute the product of the matrix exponential and a vector,
. When we use a specific spatial discretization to solve a PDE, a large matrix
such as (
20) will be generated. Although
is sparse, the exponential matrix
is not. For one-dimensional problems,
can be directly computed, since the size of the matrix
is manageable. However, for 2D problems, as an illustration, if we use a finite difference method on a
rectangular mesh, then we will obtain matrices
with size
. Therefore, it cannot be afforded to compute and store
directly with regard to both computational cost and computer storage, due to the huge size of the matrix
. Fortunately, if we take a close look at (
23), we will see that we do not need
itself—all we need are the products of
and some vectors in (
23). An outstanding option for doing this job is the Krylov subspace approximation, which can provide both accuracy and efficiency.
Now, we implement the Krylov subspace technique to find approximations to the products of some exponential matrices and vectors in the SSP IF Runge–Kutta scheme (
23) and derive the new Krylov SSP IF Runge–Kutta methods. First, we review the procedure of the Krylov subspace methods to approximate
, following the literature (e.g., [
41,
44]).
First, we form a Krylov subspace
based on the large sparse matrix
A and the vector
v in the following way
Here,
M is the dimension of the subspace
, and it is much smaller than the size of
A. We denote
as an orthonormal basis of the Krylov subspace
, which is generated by the Arnoldi algorithm [
45] in the steps described below (Algorithm 1).
Algorithm 1. Arnoldi algorithm |
Step 1. Calculate the initial vector: . |
Step 2. For |
Step 2.1 Calculate the vector |
Step 2.2 For compute |
(1) the inner product |
(2) |
Step 2.3 Calculate |
Step 2.4 If then |
Set ; |
Stop and exit; |
else |
Calculate |
The vectors
produced from the above Arnoldi algorithm consist of an
upper-Hessenberg matrix, denoted by
. Because the vectors in
are orthogonal, it is easy to obtain
The above equation shows that
is the projection of
A to the Krylov subspace
, with respect to the basis
. Note that the dimension of
is
M, which is much smaller than that of the matirx
A. What’s more, because
is orthonormal, the vector
is the orthogonal projection of
on
, that is,
is the best approximation to
from
. Thus, we have
where
is the first column of the identity matrix
with size
. From (
25), we obtain the approximation
Therefore, the large
matrix exponential computation is substituted by a small
matrix exponential computation. The much smaller
problem can be calculated by a scaling and squaring algorithm with a Padé approximation. The computational cost of this algorithm is only
, see [
41,
44,
46]. After implementing the Krylov subspace approximation (
27) to (
23), we obtain the Krylov SSP IF Runge–Kutta scheme.
We choose the value of
M to be small, but still large enough to ensure that the truncation errors of the numerical methods (
23) are much larger than the errors of Krylov subspace approximations. In this paper, we use
. From our numerical experiments, we observe that the proposed Krylov SSP IF RK methods have already achieved clear accuracy orders for such a small value of
M. What’s more, we do not need to increase the size of
M when we refine the spatial–temporal resolution.