1 Introduction

Wave propagation can be modeled by hyperbolic partial differential equations (PDEs). When solving a hyperbolic PDE by a finite difference method, to achieve a certain accuracy a minimum number of grid points per wavelength is required. This number is smaller with a high order method than with a low order method, which makes high order finite difference methods more efficient to solve wave propagation problems on smooth domains, see the pioneering paper [17] for first order hyperbolic PDEs, and the recent work [13] for second order hyperbolic PDEs.

On a uniform grid, high order central finite difference stencils are easily constructed by Taylor expansions [9]. Close to boundaries, one-sided stencils can be used. It is important that the boundary closure is accurate, and the numerical scheme is stable. One successful approach is to use a finite difference operator satisfying a summation-by-parts (SBP) property [19]. When an SBP operator acts on a grid function, it mimics the integration-by-parts principle in the continuous setting. An energy estimate can be obtained if boundary conditions are imposed appropriately, for example by using the simultaneous-approximation-term (SAT) method [4] or ghost points [30]. A scheme satisfying an energy estimate is called energy stable [11, 12].

Finite difference methods in the basic form can only be used on box-shaped domains. When complex geometry is present, the domain can be partitioned into blocks to resolve the geometrical feature. Each block has four sides and is mapped to a reference domain. If the corners of adjacent blocks meet, we say they are conforming blocks; otherwise they are non-conforming. In addition, a grid interface is conforming if no hanging nodes are present. When partitioning a domain, we can always make the blocks and interfaces conforming. However, in many situations it is desirable to use a more flexible strategy of partition that leads to non-conforming blocks and grid interfaces.

As an example, we consider a wave traveling in a heterogeneous medium with the wave speed varying in space. The wavelength is proportional to the wave speed for a given frequency. For accuracy the grid spacing is determined by the shortest wavelength. If a uniform grid is used in the entire computational domain, then the grid spacing must be small enough to resolve the shortest wavelength, resulting in an unnecessarily fine grid elsewhere. It is then more efficient to construct a grid according to the wavelength in each block, which leads to non-conforming interfaces with hanging nodes.

If only conforming blocks are used, the domain partitioning may end up with many blocks of small size. To use a high order finite difference method, a minimum number of grid points is required in each block due to the stencil width. This then results in unnecessarily many grid points in the small blocks, and consequently a suboptimal performance of the numerical scheme. In such a situation, non-conforming blocks are more appropriate.

In an SBP finite difference method, interface conditions can also be imposed by the SAT method [5, 6] or ghost points [29]. In the SBP-SAT framework, wave propagation in a heterogeneous medium with complex geometry is considered in [34]. A stable and accurate multi-block finite difference method with conforming grid interfaces and blocks is presented. The focus in [37] is the numerical treatment of non-conforming interfaces and blocks by using SBP-preserving interpolation operators [16, 22]. Energy stability is proved with an assumption that the interpolation operators are norm-contracting. In the same paper [37] , it is verified that not all interpolation operators satisfy this assumption, and instability occurs when the sixth order method is used on a domain with non-conforming, curved interfaces.

In this paper, we construct new penalty terms in the SBP-SAT finite difference framework for the numerical interface treatment. The resulting scheme is energy stable even when the interpolation operators are not norm-contracting. This extends the provably stable scheme from fourth order accuracy [37] to sixth order accuracy. The technique can be potentially used to construct even higher order schemes, provided that the corresponding SBP operators exist. Another contribution of this paper is the numerical treatment of non-conforming blocks and interfaces on curvilinear grids, where as in [37] such a case is studied on Cartesian grids. We also conduct numerical experiments to verify that the new sixth order scheme is stable with non-conforming, curved interfaces.

The paper is organized as follows. In Sect. 2, we introduce the SBP-SAT finite difference method. In Sect. 3, we consider the wave equation on a Cartesian grid and present the new penalty terms for numerical interface treatments. Stability is proved by the energy method. We then generalize the scheme to non-conforming blocks and grid interfaces on curvilinear grids in Sect. 4. Numerical experiments are presented in Sect. 5 to verify the stability and accuracy property of the developed scheme. We draw conclusion in Sect. 6.

2 SBP-SAT Finite Difference Methods

Finite difference operators satisfying an SBP property have been widely used to discretize time dependent PDEs. An SBP operator has central finite difference stencils in the interior, and special one-sided stencils at a few grid points near boundaries. The boundary stencils are chosen so that the operator satisfies a summation-by-parts property, which is the discrete counterpart of the integration-by-parts principle. With the SAT method imposing boundary and interface conditions, the SBP-SAT finite difference method possesses a great advantage: it is possible to prove energy stability for high order accurate schemes for initial-boundary-value problems.

To introduce the SBP-SAT finite difference method, we consider the one dimensional domain [0, 1] discretized by the grid points \(x_j=jh, j=0,1,\ldots ,N\) with a constant grid spacing \(h=1/N\). We use the capital letter, for example, U, to denote a smooth function in [0, 1], and the corresponding small letter, u, to denote its values on the grid \(u=[U(x_0),U(x_1),\ldots ,U(x_N)]^T\).

2.1 Definitions of SBP Operators

The SBP concept and the first derivative SBP operator \(D_1\approx \partial /\partial x\) are introduced in [19], and later refined in [32]. Formally it is defined as follows.

Definition 1

A difference operator \(D_1=H^{-1}Q\) approximating \(\partial /\partial x\) is a diagonal norm first derivative SBP operator if H is diagonal positive definite and \(Q+Q^T=\text {diag}(-\,1,0,\ldots ,0,1)\).

The operator H defines the SBP norm, and leads to the identity

$$\begin{aligned} u^THD_1v=-(D_1u)^THv-u_0v_0+u_Nv_N, \end{aligned}$$
(1)

which is the discrete analogue of the integration-by-parts formula

$$\begin{aligned} \int _0^1 UV_xdx=-\int _0^1 U_xVdx-U(0)V(0)+U(1)V(1), \end{aligned}$$

since the norm H is also a quadrature [7, 14].

For the second derivative, we distinguish between a constant coefficient operator \(D_2\approx \partial ^2/\partial x^2\) and a variable coefficient operator \(D_2^{(b)}\approx \partial /\partial x (b(x)\partial /\partial x)\) with a known function \(b(x)>0\).

Definition 2

A difference operator \(D_2=H^{-1}(-M+BS)\) approximating \(\partial ^2/\partial x^2\) is a diagonal norm second derivative SBP operator if H is diagonal positive definite, M is symmetric positive semi-definite, \(B=\text {diag}(-\,1,0,\ldots ,0,1)\), and the first and last row of S approximate \(\partial /\partial x\) at the two boundaries, respectively.

Such an operator is constructed in [25]. It is later found in [3, 23] that the operator M in \(D_2\) satisfies the following property.

Lemma 1

The symmetric positive semi-definite operator M can be written as

$$\begin{aligned} M={\widetilde{M}} + h\theta (BS)^TBS, \end{aligned}$$

where \({\widetilde{M}}\) is also symmetric positive semi-definite, \(\theta >0\) is a constant independent of h, B and S are the same as in Definition 2.

Lemma 1 is often referred to as the borrowing trick, as we can borrow from the positive semi-definite operator M a small, mesh dependent amount, with the resulting operator \({\widetilde{M}}\) still positive semi-definite. This property is essential for energy stability of problems with interfaces or Dirichlet boundary conditions.

For the variable coefficient case we have correspondingly

Definition 3

A difference operatolr \(D_2^{(b)}=H^{-1}(-M^{(b)}+B^{(b)}S)\) approximating \(\partial /\partial x (b(x)\partial /\partial x)\) is a diagonal norm second derivative variable coefficient SBP operator if H is diagonal positive definite, \(M^{(b)}\) is symmetric positive semi-definite, \(B^{(b)}=\text {diag}(-b(x_0),0,\ldots ,0,b(x_N))\), and the first and last row of S approximate \(\partial /\partial x\) at the two boundaries, respectively.

Such an operator is constructed in [22], and the operator \(M^{(b)}\) has the following two important properties [34].

Lemma 2

The symmetric positive semi-definite operator \(M^{(b)}\) can be written as

$$\begin{aligned} M^{(b)}={\widetilde{M}}^{(b)} + h\sigma b_m(BS)^TBS, \end{aligned}$$

where \({\widetilde{M}}\) is also symmetric positive semi-definite, \(\sigma >0\) is a constant independent of h, B and S are the same as in Definition 2, and

$$\begin{aligned} b_m=\min (b(x_0), b(x_1),\ldots , b(x_l), b(x_N), b(x_{N-1}),\ldots ,b(x_{N-l})) \end{aligned}$$

with a constant l independent of h.

Lemma 2 for the variable coefficient SBP operators is an analogue of Lemma 1 for the constant coefficient case. We note that \(b_m\) is the smallest value of the variable coefficient b(x) on the first and last l grid points. The smaller \(b_m\) is, the less we can borrow from \(M^{(b)}\).

Lemma 3

The SBP operator \(D_2^{(b)}\) is compatible with \(D_1\) if \(M^{(b)}\) can be written as

$$\begin{aligned} M^{(b)}=D_1^T B^{(b)} H D_1 + R^{(b)}, \end{aligned}$$

where \(R^{(b)}\) is symmetric positive semi-definite, and \(B^{(b)}\) is the same as in Definition 3.

Lemma 3 is essential for energy stability when mixed derivatives are present in the equation, for example the wave equation on curvilinear grids and the elastic wave equation.

The definitions and precise forms of the above operators can be found in [19, 21, 22, 25, 32]. These operators have the minimal interior stencil width. In addition, they have the same associated norm H for a given accuracy order. In the stability analysis, we only consider numerical treatment of interface conditions. As a consequence, the operator B in the preceding lemmas only has one nonzero element, corresponding to the terms on the interface.

The interior stencil of an SBP operator is the standard central finite difference stencil with truncation error \({\mathcal {O}}(h^{2p})\). On a few grid points near boundaries, special one-sided stencils are used to fulfill the SBP requirement with a larger truncation error \({\mathcal {O}}(h^p)\). Operators \(D_1\) and \(D_2\) with \(p=1,2,3,4\) are constructed in [19, 32] and [25], respectively. The variable coefficient operators \(D_2^{(b)}\) with \(p=1,2,3\) are constructed in [21].

In this paper, we call the above SBP operators \(2p^{th}\) order accurate. When using in a numerical scheme, we also call the scheme \(2p^{th}\)order accurate, even though the truncation error of the numerical scheme may not be \({\mathcal {O}}(h^{2p})\) or \({\mathcal {O}}(h^p)\). In the discussion of accuracy, we make the truncation error of the scheme precise.

2.2 The SAT Method

An SBP operator only approximates a certain derivative, but does not impose any boundary condition. The boundary conditions must be imposed carefully so that an energy estimate can be obtained to ensure stability. This can be done by for example the SAT method [4], the projection method [26,27,28] and the ghost points method [29]. In this paper, we choose the SAT method to impose both boundary and interface conditions, since in many cases it is easy to derive an energy estimate. The key ingredient of the SAT method is to add penalty terms to the semi-discretized equation and choose penalty parameters so that an energy estimate is obtained. This technique bears a similarity to the Nitsche’s finite element method [31], and the discontinuous Galerkin method [2, 10]. Detailed discussions of the SBP-SAT finite difference methods can be found in [8, 33].

3 The Wave Equation on a Cartesian Grid

We start by considering the wave equation in two space dimensions in a composite domain \(\Omega = [0,1]^2\) with an interface \(\Gamma \) at \(x=0.5\). The left and right domain are denoted by \(\Omega _u\) and \(\Omega _v\), respectively, and the equations are

$$\begin{aligned}&U_{tt}=U_{xx}+U_{yy},\ (x,y)\in \Omega _u, \end{aligned}$$
(2)
$$\begin{aligned}&V_{tt}=V_{xx}+V_{yy},\ (x,y)\in \Omega _v. \end{aligned}$$
(3)

At the interface the physical conditions are

$$\begin{aligned} U(0.5,y,t)=V(0.5,y,t),\ U_x(0.5,y,t)=V_x(0.5,y,t). \end{aligned}$$
(4)

For a wellposed problem, suitable boundary conditions must be imposed at the boundaries. As the focus in this paper is the numerical treatment of interface coupling, we exclude discussions on boundary conditions and the corresponding numerical techniques. We refer to [18] for physical boundary conditions, and [24] for the numerical techniques.

To solve (2)–(4), we start by generating a Cartesian grid in each domain independently with \(n_{ux}\times n_{uy}\) grid points in \(\Omega _u\) and \(n_{vx}\times n_{vy}\) grid points in \(\Omega _v\). We are particularly interested in a non-conforming interface when \(n_{uy}\ne n_{vy}\). In this case, the solutions on the interface must be interpolated. We denote \(I_{u2v}\) and \(I_{v2u}\) interpolation operators that interpolate the solution from \(\Omega _u\) to \(\Omega _v\), and from \(\Omega _v\) to \(\Omega _u\), respectively. In the SBP-SAT finite difference framework, these operators must satisfy certain conditions so that the scheme could be energy stable.

Definition 4

Let \(H_{u}\) and \(H_{v}\) denote the SBP norms on the interface for the grid in \(\Omega _u\) and \(\Omega _v\), respectively. The interpolation operators \(I_{u2v}\) and \(I_{v2u}\) are norm-compatible if

$$\begin{aligned} H_{u}I_{v2u}=(H_{v}I_{u2v})^T. \end{aligned}$$
(5)

In [37], it is also defined that the interpolation operators are norm-contracting if the two operators

$$\begin{aligned} H_{u}(I_{u}-I_{v2u}I_{u2v})\text { and } H_{v}(I_{v}-I_{u2v}I_{v2u}) \end{aligned}$$

are symmetric positive semi-definite, where \(I_u\) and \(I_v\) are identity operators.

Norm-compatible interpolation operators are first constructed in [22] for the case of a 1:2 mesh refinement ratio, and are extended to an arbitrary ratio in [16]. The accuracy property of these interpolation operators has a similar fashion as the corresponding SBP operators. More precisely, the interpolation error is \({\mathcal {O}}(h^{2p})\) in the interior of the interface, and \({\mathcal {O}}(h^{p})\) on a few grid points near the edge of the interface. Therefore, the interpolation is exact only for polynomials of order up to \(p-1\). In [20], it is proved that it is not possible to construct norm-compatible interpolation operators \(I_{u2v}\) and \(I_{v2u}\) such that both interpolate polynomials of order p or higher.

A stable SBP-SAT finite difference method for solving (2)–(4) is presented in [37]. Energy stability is proved by assuming the interpolation operators are norm-compatible and norm-contracting. While the norm-compatible condition can be constrained when constructing the operators, it is not easy to take into account the norm-contracting condition. In fact, the interpolation operators with higher than fourth order accuracy in [16, 22] are not norm-contracting.

Below we present a new way of imposing the interface conditions (4) with the advantage that an energy estimate is obtained without requiring the interpolation operators to be norm-contracting. For cleaner notations, terms imposing boundary conditions are omitted.

Equation (2)–(4) are discretized in space as

$$\begin{aligned}&u_{tt}=\varvec{D_u}u+SAT_{u1}+SAT_{u2}+SAT_{u3}+SAT_{\partial u}, \end{aligned}$$
(6)
$$\begin{aligned}&v_{tt}=\varvec{D_v}v+SAT_{v1}+SAT_{v2}+SAT_{v3}+SAT_{\partial v}, \end{aligned}$$
(7)

where

$$\begin{aligned}&SAT_{u1} = \frac{1}{2} \varvec{H_{ux}^{-1}} \varvec{S_{ux}^T}(\varvec{E_{ux}}u - (E_{uv}\otimes I_{v2u})v), \end{aligned}$$
(8a)
$$\begin{aligned}&SAT_{u2} = -\,\frac{\tau }{2} \varvec{H_{ux}^{-1}} (\varvec{E_{ux}}u - (E_{uv}\otimes I_{v2u})v) , \end{aligned}$$
(8b)
$$\begin{aligned}&SAT_{u3} = -\,\frac{\tau }{2} \varvec{H_{ux}^{-1}} ( (E_{ux}\otimes (I_{v2u}I_{u2v}) )u - (E_{uv}\otimes I_{v2u})v), \end{aligned}$$
(8c)
$$\begin{aligned}&SAT_{\partial u} = -\,\frac{1}{2} \varvec{H_{ux}^{-1}} (\varvec{E_{ux}}\varvec{S_{ux}}u-(E_{uv}\otimes I_{v2u})\varvec{S_{vx}}v), \end{aligned}$$
(8d)

and

$$\begin{aligned}&SAT_{v1} = -\,\frac{1}{2} \varvec{H_{vx}^{-1}} \varvec{S_{vx}^T}(\varvec{E_{vx}}v - (E_{vu}\otimes I_{u2v})u ), \end{aligned}$$
(9a)
$$\begin{aligned}&SAT_{v2} = -\,\frac{\tau }{2} \varvec{H_{vx}^{-1}} (\varvec{E_{vx}}v - (E_{vu}\otimes I_{u2v})u), \end{aligned}$$
(9b)
$$\begin{aligned}&SAT_{v3} = -\,\frac{\tau }{2} \varvec{H_{vx}^{-1}} ( (E_{vx}\otimes (I_{u2v}I_{v2u}) )v - (E_{vu}\otimes I_{u2v})u), \end{aligned}$$
(9c)
$$\begin{aligned}&SAT_{\partial v} = \frac{1}{2} \varvec{H_{vx}^{-1}} (\varvec{E_{vx}}\varvec{S_{vx}}v-(E_{vu}\otimes I_{u2v})\varvec{S_{ux}}u). \end{aligned}$$
(9d)

The numerical solution vectors u and v approximate the true solution U and V, respectively. The solution vectors are arranged column-wise, i.e. the first few elements of u and v correspond to the solutions on the left boundary of \(\Omega _u\) and \(\Omega _v\), respectively. Most operators in two space dimensions can be extended from the corresponding one dimensional operators by using a Kronecker product \(\otimes \). Such two dimensional operators are denoted by bold letters, with the subscript indicating the spatial direction and the grid function that the operator is associated to. For example, the operator \(\varvec{H_{ux}^{-1}}\) equals to \(H_{ux}^{-1}\otimes I_{uy}\), where \(H_{ux}^{-1}\) is the inverse of the SBP norm in the x-direction acting on u, and \(I_{uy}\) is an identity operator. The operator \(\varvec{E}\) extracts the numerical solution at the interface. \(\varvec{D_u}u\) and \(\varvec{D_v}v\) are SBP approximations of \(U_{xx} + U_{yy}\) and \(V_{xx} + V_{yy}\), respectively.

We compare the above scheme with the ones described in [34, 37] by discussing the penalty terms (8a)-(8d). A term like \(\varvec{E_{ux}}u\) used in [34, 37] is broken into two parts: \(1/2\varvec{E_{ux}}u\) in (8b) and \(1/2E_{ux}\otimes I_{v2u}I_{u2v}u\) in (8c). Note the relation between them: \(E_{ux}\otimes I_{v2u}I_{u2v}u\) is just \(\varvec{E_{ux}}u\) interpolated to the grid on the interface of \(\Omega _v\), then interpolated back to the grid of \(\Omega _u\). Since the interpolation is not exact, \(E_{ux}\otimes I_{v2u}I_{u2v}u\) differs from \(\varvec{E_{ux}}u\) by the truncation error of the interpolation operators. It is this change in penalty terms that makes the scheme stable without requiring the interpolation operators to be norm-contracting. We summarize the stability result in the following theorem.

Theorem 1

With norm-compatible interpolation operators, the semi-discretization (6)-(7) is stable for any \(\tau \) such that

$$\begin{aligned} \tau \ge \max \left( \frac{1}{2\theta h_{ux}}, \frac{1}{2\theta h_{vx}} \right) , \end{aligned}$$
(10)

where \(\theta \) is the constant in Lemma 1, and \(h_{ux}\) and \(h_{vx}\) are the mesh size in the x-direction in \(\Omega _u\) and \(\Omega _v\), respectively.

Proof

We prove stability by the energy method. Multiplying from the left of (6) by \(u_t^T (H_{ux}\otimes H_{uy})\) and (7) by \(v_t^T (H_{vx}\otimes H_{vy})\), we obtain

$$\begin{aligned}&u_t^T (H_{ux}\otimes H_{uy}) u_{tt} + v_t^T (H_{vx}\otimes H_{vy}) v_{tt}\\&\quad = u_t^T (H_{ux}\otimes H_{uy}) \varvec{D_u}u + v_t^T (H_{vx}\otimes H_{vy}) \varvec{D_v}v\\&\qquad +\, \frac{1}{2} u_t^T \varvec{H_{uy}} \varvec{S_{ux}^T}(\varvec{E_{ux}}u - (E_{uv}\otimes I_{v2u})v) \\&\qquad -\,\frac{\tau }{2} u_t^T \varvec{H_{uy}} (\varvec{E_{ux}}u - (E_{uv}\otimes I_{v2u})v) \\&\qquad -\,\frac{\tau }{2} u_t^T\varvec{H_{uy}} ( (E_{ux}\otimes (I_{v2u}I_{u2v}) )u - (E_{uv}\otimes I_{v2u})v) \\&\qquad -\,\frac{1}{2} u_t^T \varvec{H_{uy}} (\varvec{E_{ux}}\varvec{S_{ux}}u-(E_{uv}\otimes I_{v2u})\varvec{S_{vx}}v)\\&\qquad -\,\frac{1}{2} v_t^T \varvec{H_{vy}} \varvec{S_{vx}^T}(\varvec{E_{vx}}v - (E_{vu}\otimes I_{u2v})u) \\&\qquad -\,\frac{\tau }{2} v_t^T\varvec{H_{vy}} (\varvec{E_{vx}}v - (E_{vu}\otimes I_{u2v})u) \\&\qquad -\,\frac{\tau }{2} v_t^T\varvec{H_{vy}} ( (E_{vx}\otimes (I_{u2v}I_{v2u}) )v - (E_{vu}\otimes I_{u2v})u) \\&\qquad +\frac{1}{2} v_t^T \varvec{H_{vy}} (\varvec{E_{vx}}\varvec{S_{vx}}v-(E_{vu}\otimes I_{u2v})\varvec{S_{ux}}u). \end{aligned}$$

We note that the left-hand side of the above equation can be written as the time derivative of a quadratic term. The main idea of deriving an energy estimate is to move all terms on the right-hand side to the left, and determine the penalty parameter \(\tau \) so that all terms on the left-hand side can be written as the time derivative of a non-negative quantity, i.e. the discrete energy.

To do so, we use the borrowing trick in Lemma 1 for the SBP operators in the x-direction, and the norm-compatible property (5) of the interpolation operators, to obtain the change of energy \({\mathbf {G}}\) as

$$\begin{aligned} \frac{d}{dt} {\mathbf {G}}=\frac{d}{dt} (\mathbf {G_1}+\mathbf {G_2}+\mathbf {G_3})=0, \end{aligned}$$
(11)

where

$$\begin{aligned} \mathbf {G_1}&= u_t^T (H_{ux}\otimes H_{uy}) u_t + v_t^T (H_{vx}\otimes H_{vy}) v_t \\&+ u^T (H_{ux}\otimes M_{uy}) u + v^T (H_{vx}\otimes M_{vy})v \\&+ u^T ({\widetilde{M}}_{ux}\otimes H_{uy}) u + v^T ({\widetilde{M}}_{vx}\otimes H_{vy}) v,\\ \mathbf {G_2}&= h_{ux}\theta (\varvec{E_{ux}S_{ux}}u) \varvec{H_{uy}}(\varvec{E_{ux}S_{ux}}u) \\&- (\varvec{E_{ux}S_{ux}}u)^T \varvec{H_{uy}} (\varvec{E_{ux}}u - (E_{uv}\otimes I_{v2u})v) \\&+\frac{\tau }{2}(\varvec{E_{ux}}u - (E_{uv}\otimes I_{v2u})v)^T \varvec{H_{uy}} (\varvec{E_{ux}}u - (E_{uv}\otimes I_{v2u})v), \\ \mathbf {G_3}&= h_{vx}\theta (\varvec{E_{vx}S_{vx}}v) \varvec{H_{vy}} (\varvec{E_{vx}S_{vx}}v) \\&- (\varvec{E_{vx}S_{vx}}v)^T \varvec{H_{vy}} ((E_{vu}\otimes I_{u2v})u - \varvec{E_{vx}}v) \\&+\frac{\tau }{2} ((E_{vu}\otimes I_{u2v})u - \varvec{E_{vx}}v)^T \varvec{H_{vy}} ((E_{vu}\otimes I_{u2v})u - \varvec{E_{vx}}v). \end{aligned}$$

Clearly, \(\mathbf {G_1}\ge 0\). By Young’s inequality, we have \(\mathbf {G_2}\ge 0\) and \(\mathbf {G_3}\ge 0\) if \(\tau \ge 1/(2\theta h_{ux})\) and \(\tau \ge 1/(2\theta h_{vx})\), respectively. Therefore, the energy is conserved and the scheme is stable when (10) is satisfied. \(\square \)

We note that in the scheme developed in [37] the energy is greater or equal to \({\mathbf {G}}\) in (11), with the inequality resulted from the norm-contracting condition.

4 The Wave Equation on Curvilinear Grids

In this section, we generalize the scheme to problems on curvilinear grids. We consider two cases: conforming blocks and non-conforming blocks, which are illustrated in Fig. 1a, b, respectively.

4.1 Numerical Interface Treatment of Conforming Blocks

With only conforming blocks in the domain, the corners of adjacent blocks meet. We consider again the domain \(\Omega =[0,1]^2\) but partitioned into two blocks \(\Omega _u\) and \(\Omega _v\) by a curved interface. The grids are then constructed independently in each block, see an illustration in Fig. 1a. The grids in each block are mapped to a Cartesian grid in a reference domain. The governing equations are also transformed from the physical domain to the reference domain, and the computation is performed in the reference domain. We refer to the textbook [15] for a detailed discussion on grid generation.

Fig. 1
figure 1

Non-conforming interfaces with a conforming blocks, b non-conforming blocks

The transformed equation in the reference domain can be derived by using the chain rule in calculus. We omit its derivation, and refer to [1]. With (xy) denoting the coordinate in the reference domain, the unknown variables U and V are governed by the equation

$$\begin{aligned} \begin{aligned} J_U U_{tt}&=(aU_x)_x+(cU_y)_y+(bU_y)_x+(bU_x)_y,\\ J_V V_{tt}&=(\alpha V_x)_x+(\gamma V_y)_y+(\beta V_y)_x+(\beta V_x)_y, \end{aligned} \end{aligned}$$
(12)

where the Jacobians \(J_U,J_V>0\) and the variable coefficients satisfy \(ac-b^2>0\) and \(\alpha \gamma -\beta ^2>0\). The interface conditions become

$$\begin{aligned} \begin{aligned}&U=V,\\&aU_x+bU_y=\alpha V_x+\beta V_y, \end{aligned} \end{aligned}$$
(13)

on \((x,y)\in \Gamma \). The coefficients in (12) consist of metric derivatives that depend on the geometry of the physical domain and the transformation. The metric derivatives can either be computed analytically, or approximated to sufficient high accuracy. In the experiments in this paper, we choose the latter approach by using a tenth order finite difference stencil, making sure that the approximation of metric terms does not affect the overall accuracy of the numerical scheme.

As shown in [34], the equation (12) together with the interface condition (13) admit a continuous energy estimate, thanks to the positive definiteness of the matrices \(\begin{bmatrix} a&b \\ b&c \end{bmatrix}\) and \(\begin{bmatrix} \alpha&\beta \\ \beta&\gamma \end{bmatrix}\) because of \(ac-b^2>0\) and \(\alpha \gamma -\beta ^2>0\).

The equations in (12) are discretized by using the SBP operators, and the two blocks are patched together by the SAT method. The semi-discretized equations are

$$\begin{aligned} \begin{aligned}&J_u u_{tt}=(\overline{D_{2ux}^{(a)}})u+(\overline{D_{2uy}^{(c)}})u+\varvec{D_{1ux}}{\Lambda _b}\varvec{D_{1uy}}u+\varvec{D_{1uy}}{\Lambda _b}\varvec{D_{1ux}}u+SAT_u, \\&J_v v_{tt}=(\overline{D_{2vx}^{(\alpha )}})v+(\overline{D_{2vy}^{(\gamma )}})v+\varvec{D_{1vx}}{\Lambda _\beta }\varvec{D_{1vy}}v+\varvec{D_{1vy}}{\Lambda _\beta }\varvec{D_{1vx}}v+SAT_v, \end{aligned} \end{aligned}$$
(14)

where

$$\begin{aligned} \begin{aligned} SAT_u&=\frac{1}{2}\varvec{H_{ux}^{-1}}\varvec{H_{uy}^{-1}}({\Lambda _a}\varvec{E_{ux}S_{ux}}+{\Lambda _b}\varvec{E_{ux}D_{1uy}})^T\varvec{H_{uy}}(\varvec{E_{ux}}u-(E_{uv}\otimes I_{v2u})v)\\&\quad -\,\frac{\tau }{2}\varvec{H_{ux}^{-1}}((E_{ux}\otimes (I_{v2u}I_{u2v}))u-(E_{uv}\otimes I_{v2u})v)\\&\quad -\,\frac{\tau }{2}\varvec{H_{ux}^{-1}}(\varvec{E_{ux}}u-(E_{uv}\otimes I_{v2u})v)\\&\quad -\,\frac{1}{2}\varvec{H_{ux}^{-1}}(({\Lambda _a}\varvec{E_{ux}S_{ux}}+{\Lambda _b}\varvec{E_{ux}D_{1uy}})u\\ {}&\quad -(E_{uv}\otimes I_{v2u})({\Lambda _\alpha }\varvec{E_{vx}S_{vx}}+{\Lambda _\beta }\varvec{E_{vx}D_{1vy}})v), \end{aligned} \end{aligned}$$
(15)

and

$$\begin{aligned} \begin{aligned} SAT_v&=-\,\frac{1}{2}\varvec{H_{vx}^{-1}}\varvec{H_{vy}^{-1}}({\Lambda _\alpha }\varvec{E_{vx}S_{vx}}+{\Lambda _\beta }\varvec{E_{vx}D_{1vy}})^T\varvec{H_{vy}}(\varvec{E_{vx}}v-(E_{vu}\otimes I_{u2v})u)\\&\quad -\,\frac{\tau }{2}\varvec{H_{vx}^{-1}}((E_{vx}\otimes (I_{u2v}I_{v2u}))v-(E_{vu}\otimes I_{u2v})u)\\&\quad -\,\frac{\tau }{2}\varvec{H_{vx}^{-1}}(\varvec{E_{vx}}v-(E_{vu}\otimes I_{u2v})u)\\&\quad +\frac{1}{2}\varvec{H_{vx}^{-1}}(({\Lambda _\alpha }\varvec{E_{vx}S_{vx}}+{\Lambda _\beta }\varvec{E_{vx}D_{1vy}})v\\ {}&\quad -(E_{vu}\otimes I_{u2v})({\Lambda _a}\varvec{E_{ux}S_{ux}}+{\Lambda _b}\varvec{E_{ux}D_{1uy}})u). \end{aligned} \end{aligned}$$
(16)

We now clarify the notations in the semi-discretization (14).

  1. 1.

    The mixed-derivative terms: \((bU_y)_x\) is approximated by \(\varvec{D_{1ux}}{\Lambda _b}\varvec{D_{1uy}}u\), where \({\Lambda _b}\) is a diagonal matrix with diagonal entries b(xy) evaluated on the grid. The operators approximating the other three mixed-derivative terms are constructed in a similar way.

  2. 2.

    The variable-coefficient terms: In general the variable coefficients are functions of both x and y, therefore an operator approximating \((aU_x)_x\) cannot be constructed by a single Kronecker product, but as a sum

    $$\begin{aligned} \overline{D_{2ux}^{(a)}}=\sum _{i=1}^{n_{uy}} D_{2ux}^{(a_i)}\otimes E_{uy}^i, \end{aligned}$$

    where \(a_i\) is \(a(x_i,y)\) evaluated on the grid, and \(E_{uy}^i\) has value one in entry (ii) and zeros elsewhere. The second derivative operator \(D_{2ux}^{(a_i)}\) is defined in Definition 3 with the operator \(M^{(a_i)}\) satisfying Lemma 2 and 3. The operators approximating the other three variable coefficient terms are constructed in a similar way.

  3. 3.

    The penalty terms: The two interpolation operators \(I_{u2v}\) and \(I_{v2u}\) constructed in [16, 22] satisfy the norm-compatible condition

    $$\begin{aligned} H_{uy}I_{v2u}=(H_{vy}I_{u2v})^T. \end{aligned}$$

Similar to the continuous case, the matrices \(\Lambda _u=\begin{bmatrix} \Lambda _a&\Lambda _b \\ \Lambda _b&\Lambda _c \end{bmatrix}\) and \(\Lambda _v=\begin{bmatrix} \Lambda _\alpha&\Lambda _\beta \\ \Lambda _\beta&\Lambda _\gamma \end{bmatrix}\) are positive definite. In fact, the eigenvalues of \(\Lambda _u\) and \(\Lambda _v\) play an important role in the stability analysis. In particular, we will use the smallest eigenvalue

$$\begin{aligned} \delta = \frac{1}{2}\min \left( a_{ij}+c_{ij}-\sqrt{(a_{ij}-c_{ij})^2+4b^2_{ij}}, \alpha _{kl}+\gamma _{kl}-\sqrt{(\alpha _{kl}-\gamma _{kl})^2+4\beta ^2_{kl}}\right) ,\quad \end{aligned}$$
(17)

where \(i=1,2,\ldots , n_{ux},\ j=1,2,\ldots , n_{uy},\ k=1,2,\ldots , n_{vx},\ l=1,2,\ldots , n_{vy}\). Note that \(\delta >0\), \(a_{ij}-\delta \ge 0\) and \(\alpha _{ij}-\delta \ge 0\).

Let \(a_{\max }\), \(b_{\max }\), \(\alpha _{\max }\) and \(\beta _{\max }\) denote the maximum values of the variable coefficients a(xy), b(xy), \(\alpha (x,y)\) and \(\beta (x,y)\) evaluated on the interface, respectively. We also denote \(h_{ux}\) and \(h_{vx}\) the mesh size in the x-direction in \(\Omega _u\) and \(\Omega _v\), respectively. Stability of the semi-discretization is given by the following theorem.

Theorem 2

The semi-discretization (14)–(16) is stable if the interpolation operators \(I_{u2v}\) and \(I_{v2u}\) are norm-compatible and the penalty parameter \(\tau \) satisfies

$$\begin{aligned} \tau \ge \max \left( \frac{a_{\max }^2+b_{\max }^2h_{ux}\sigma }{2h_{ux}\sigma \delta },\frac{\alpha _{\max }^2+\beta _{\max }^2h_{vx}\sigma }{2h_{vx}\sigma \delta } \right) , \end{aligned}$$

where \(\sigma \) is defined in Lemma 2, and \(\delta \) is defined in (17).

Proof

See “Appendix”. \(\square \)

We remark that it is possible to use a penalty parameter that varies on grid points, and such a scheme is proposed in [34] for problems with conforming interfaces. The penalty parameter \(\tau \) used in Theorem 2 corresponds to the largest value on all grid points. We also note that when the penalty parameter is chosen to be equal to the stability limit, accuracy deduction has been observed, and proved in some settings by a normal mode analysis [35]. Though there is no upper bound of \(\tau \) for energy stability, a very large penalty parameter increases the spectral radius of the spatial discretization, and leads to a small time step.

For accuracy, the SBP operators have truncation error \({\mathcal {O}}(h^{2p})\) in the interior and \({\mathcal {O}}(h^p)\) near the boundaries and the interface. The interpolation operators constructed in [16, 22] have truncation error \({\mathcal {O}}(h^{2p})\) in the interior of the interface, and truncation error \({\mathcal {O}}(h^p)\) on a few grid points near the edge of the interface. Therefore, in the semi-discretization (14), the largest truncation error is \({\mathcal {O}}(h^{p-2})\) introduced by the first three penalty terms in (15) and (16) because of \(\tau ,\varvec{H_{ux}^{-1}},\varvec{H_{uy}^{-1}}\sim {\mathcal {O}}(h^{-1})\). The truncation error \({\mathcal {O}}(h^{p-2})\) is only localized on a few number of grid points at the corner of two adjacent blocks. According to the accuracy analysis in [36], we may expect a rate of convergence \(p+1\) of the semi-discretization (14), the same as the scheme developed in [37]. Note that the \(p+1\) convergence rate is one order lower than the expected convergence rate when the grid interface is conforming. If the interpolation error at the edge could be improved to \({\mathcal {O}}(h^{p+1})\), then the expected rate of convergence would be \(p+2\). However, it is proved in [20] that such norm-compatible interpolation operators cannot be constructed.

4.2 Numerical Interface Treatment of Non-conforming Blocks

An example of non-conforming blocks is shown in Fig. 1b. The lower left corner of the upper right domain sits in the middle of the right boundary of the left domain. Such an interface configuration is sometimes called a T-junction interface.

For a T-junction interface, the interface conditions must be imposed on the glue grid, which is different from what is usually done for conforming blocks. The technique and the corresponding interpolation operators are constructed in [16], and are used for a T-junction interface on a Cartesian grid in [37]. On a curvilinear grid, the discretization is performed in a similar way, but the grid transformation must be done carefully.

Coordinate transformation is performed block-wise, therefore an interface between two blocks is transformed twice. A common strategy is to transform each block in the physical domain to the unit square in the reference domain. This works well with conforming blocks. However, with nonconforming blocks such as in Fig. 1b the interfaces are transformed differently in different blocks. As a consequence, the transformed equation must be scaled as explained in [16] to obtain an energy stable scheme. The energy stable semi-discretization can then be constructed in a similar way as in the preceding sections.

5 Numerical Experiments

In this section, numerical experiments are performed to verify the stability and accuracy property of the numerical schemes developed in this paper. The diagonal norm SBP operators used in the numerical experiments can be found in [32] for \(D_1\approx \partial /\partial x\) and in [21] for \(D_2^{(b)}\approx \partial /\partial x (b(x)\partial /\partial x)\). The interpolation operators can be found in [16, 22]. The \(\hbox {L}_2\) errors are computed as the norm of the difference between the exact solution \(u_{ex}\) and the numerical solution \(u_h\) according to

$$\begin{aligned} \Vert u_{ex}-u_h\Vert _{{\mathrm{L}}_2}=\sqrt{h_xh_y(u_{ex}-u_h)^{T} (u_{ex}-u_h)}, \end{aligned}$$

where \(h_{x}\) and \(h_{y}\) are the mesh size in the x and y spatial direction, respectively.

5.1 An Extreme Interface

We consider the wave equation on the domain \([-\,1,1]\times [0,1]\), separated by the interface \(x = 4\sin (7\pi y)/5\). The domain and mesh are depicted in Fig. 2a, b, respectively. The aim of this experiment is to verify that the scheme is stable even when an interface with a large curvature is present in the domain, but not to test accuracy or convergence rate. As can be seen in Fig. 2b, the mesh is of bad quality due to large distortion.

Fig. 2
figure 2

a A composite domain with an extreme interface. b Mesh

The wave equation is discretized by the sixth order SBP operators in each subdomain, and patched together by the SAT method using the sixth order interpolation operators [22]. The semi-discretization can be written as a system of ordinary differential equations

$$\begin{aligned} w_{tt} = {\varvec{D}} w + F, \end{aligned}$$

where w is the numerical solution, \({\varvec{D}}\) is the spatial discretization operator including boundary and interface terms, and F corresponds to the forcing function and boundary data evaluated on the grid.

First, we use \(21\times 21\) grid points in the left domain and \(41\times 41\) grid points in the right domain, and perform an eigenvalue analysis. Stability requires that all the eigenvalues of \({\varvec{D}}\) are real and non-positive. In Fig. 3a, we plot the eigenvalues of \({\varvec{D}}\) multiplied by the square of the mesh size in the right domain, denoted by \(\lambda \), and observe that they are indeed real and non-positive.

Next, we test the scheme with a much finer mesh, \(101\times 101\) grid points in the left domain and \(201\times 201\) grid points in the right domain. Instead of an eigenvalue analysis, we perform a long time simulation by using the manufactured solution

$$\begin{aligned} U = \cos (x+1)\cos (y+2)\cos (\sqrt{2}t+3), \end{aligned}$$

for initial and Neumann boundary data. We choose the classical Runge-Kutta method as the time integrator, and let the wave propagate for ten temporal periods. The \(\hbox {L}_2\) error at each time step is plotted in Fig. 3b. We observe that the \(\hbox {L}_2\) error is bounded in time.

Fig. 3
figure 3

a Eigenvalues of the spatial discretization operator, b \(\hbox {L}_2\) error in ten temporal periods

5.2 A T-Junction Interface

We consider the same domain \([-\,1,1]\times [0,1]\) as in the previous experiment, but with interfaces depicted in Fig. 1b. The interface in the vertical direction is defined by \(x=\sin (3\pi y/2)/3\). The intersection point \((\bar{x},\bar{y})\) of the two interfaces is chosen by letting \(\bar{y}=0.621\). The interface in the horizontal direction is defined by \(y=\sin (\pi x/2)/5+\bar{y}-\sin (\pi \sin (3\pi \bar{y}/2)/6)/5\). The numbers of grid points in the left, lower right and upper right domain are \(26\times 52, 26\times 26\) and \(51\times 26\), respectively. Both the blocks and interfaces are non-conforming, see a close-up in Fig. 4a. When refining the mesh, the number of grid points is doubled in each spatial direction in each domain.

To test accuracy and rate of convergence, we use the manufactured solution

$$\begin{aligned} U = \cos (3\pi x+1) \cos (4\pi y+2) \cos (5\pi t+3). \end{aligned}$$
(18)

to obtain initial and Neumann boundary data, and propagate the wave until \(t=2\). With this analytical solution, there is no forcing term in the equation.

We solve the equation by the fourth and sixth order SBP-SAT finite difference method, and use the classical Runge-Kutta method to integrate in time. Since the interface in this experiment is a T-junction, we use the fourth and sixth order accurate interpolation operators constructed in [16]. The time step is chosen small enough so that the error in the solution is determined by the spatial discretization. The errors in \(\hbox {L}_2\) norm are shown in Fig. 4b, and the associated rates of convergence are given at the end of each error plot. In the figure, we use new SAT as the legend to denote the results obtained by the scheme in this paper, and old SAT to denote the result obtained by the scheme in [37]. The x-axis label N is the number of grid points in the x-direction in the left domain.

We observe that the fourth and sixth order accurate scheme lead to third and fourth order convergence rate, respectively. This agrees well with the accuracy discussion in the end of Sect. 4.1 in this paper. We note that the sixth order method gives much smaller error than the fourth order methods. In addition, the fourth order method developed in this paper gives a smaller error than the fourth order method in [37]. We have also performed an experiment with the sixth order method in [37] and the numerical solution quickly blows up, indicating that method is unstable. This is not surprising because the energy analysis in [37] requires the norm-compatible condition of the interface operators, which is not satisfied by the sixth order operators.

Fig. 4
figure 4

a A close-up of the interfaces. b Rate of convergence

6 Conclusion

We use the SBP-SAT finite difference method to solve the wave equation on a composite domain. The domain is divided by curved interfaces resulting in non-conforming blocks, and the grid is constructed in each block independently resulting in non-conforming grid interfaces. We develop new penalty terms to patch the blocks together by the SAT method. This extends the provably stable scheme from fourth order accuracy [37] to sixth order accuracy. Numerical experiments demonstrate the superiority of the new sixth order accurate scheme. In addition, we find that the new fourth order accurate scheme is more accurate than the fourth order accurate scheme in [37].

We note that eighth order and tenth order interpolation operators are constructed in [16], and can potentially be incorporated into the developed scheme in this paper. However, higher than sixth order accurate SBP operators for second derivative with variable coefficient have not yet been reported.