Skip to main content
Log in

A Non-Stiff Summation-By-Parts Finite Difference Method for the Scalar Wave Equation in Second Order Form: Characteristic Boundary Conditions and Nonlinear Interfaces

  • Published:
Journal of Scientific Computing Aims and scope Submit manuscript

Abstract

Curvilinear, multiblock summation-by-parts finite difference operators with the simultaneous approximation term method provide a stable and accurate framework for solving the wave equation in second order form. That said, the standard method can become arbitrarily stiff when characteristic boundary conditions and nonlinear interface conditions are used. Here we propose a new technique that avoids this stiffness by using characteristic variables to “upwind” the boundary and interface treatment. This is done through the introduction of an additional block boundary displacement variable. Using a unified energy, which expresses both the standard as well as characteristic boundary and interface treatment, we show that the resulting scheme has semidiscrete energy stability for the scalar anisotropic wave equation. The theoretical stability results are confirmed with numerical experiments that also demonstrate the accuracy and robustness of the proposed scheme. The numerical results also show that the characteristic scheme has a time step restriction based on standard wave propagation considerations and not the boundary closure.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7

Similar content being viewed by others

Notes

  1. The free parameter \(x_1=0.70127127127127\) is used for \(2p = 6\).

  2. An alternative borrowing lemma is given in Virta and Mattsson [28], and though this lemma yields a slightly better bound on the penalty parameter \(\gamma \) in one-dimensional, Almquist and Dunham [1] have shown that the bound is significantly worse in multiple dimensions.

References

  1. Almquist, M., Dunham, E.M.: Non-stiff boundary and interface penalties for narrow-stencil finite difference approximations of the laplacian on curvilinear multiblock grids. J. of Comput. Phys. 408, 109–294 (2020). https://doi.org/10.1016/j.jcp.2020.109294

    Article  MathSciNet  MATH  Google Scholar 

  2. Almquist, M., Dunham, E.M.: Elastic wave propagation in anisotropic solids using energy-stable finite differences with weakly enforced boundary and interface conditions. J. of Comput. Phys. 424, 109–842 (2021). https://doi.org/10.1016/j.jcp.2020.109842

    Article  MathSciNet  MATH  Google Scholar 

  3. Bezanson, J., Edelman, A., Karpinski, S., Shah, V.B.: Julia: A fresh approach to numerical computing. SIAM review 59(1), 65–98 (2017). https://doi.org/10.1137/141000671

    Article  MathSciNet  MATH  Google Scholar 

  4. Carpenter, M.H., Gottlieb, D., Abarbanel, S.: Time-stable boundary conditions for finite-difference schemes solving hyperbolic systems: Methodology and application to high-order compact schemes. J. of Comput. Phys. 111(2), 220–236 (1994). https://doi.org/10.1006/jcph.1994.1057

    Article  MathSciNet  MATH  Google Scholar 

  5. Carpenter, M.H., Kennedy, C.A.: Fourth-order 2N-storage Runge-Kutta schemes. Tech. Rep. NASA TM-109112, National Aeronautics and Space Administration, Langley Research Center, Hampton, VA (1994)

  6. Carpenter, M.H., Nordström, J., Gottlieb, D.: A stable and conservative interface treatment of arbitrary spatial accuracy. J. of Comput. Phys. 148(2), 341–365 (1999). https://doi.org/10.1006/jcph.1998.6114

    Article  MathSciNet  MATH  Google Scholar 

  7. Duru, K., Allison, K.L., Rivet, M., Dunham, E.M.: Dynamic rupture and earthquake sequence simulations using the wave equation in second-order form. Geophys. J. Int. 219(2), 796–815 (2019). https://doi.org/10.1093/gji/ggz319

    Article  Google Scholar 

  8. Erickson, B.A., Jiang, J., Barall, M., Lapusta, N., Dunham, E.M., Harris, R., Abrahams, L.S., Allison, K.L., Ampuero, J.P., Barbot, S., Cattania, C., Elbanna, A., Fialko, Y., Idini, B., Kozdon, J.E., Lambert, V., Liu, Y., Luo, Y., Ma, X., Mckay, M.B., Segall, P., Shi, P., van den Ende, M., Wei, M.: The community code verification exercise for simulating sequences of earthquakes and aseismic slip (seas). Seismol. Res. Lett. 91, 874–890 (2020). https://doi.org/10.1785/0220190248

    Article  Google Scholar 

  9. Hicken, J.E., Zingg, D.W.: Summation-by-parts operators and high-order quadrature. J. of Comput. and Appl. Math. 237(1), 111–125 (2013). https://doi.org/10.1016/j.cam.2012.07.015

    Article  MathSciNet  MATH  Google Scholar 

  10. Kopriva, D.A.: Metric identities and the discontinuous spectral element method on curvilinear meshes. J. of Sci. Comput. 26(3), 301–327 (2006). https://doi.org/10.1007/s10915-005-9070-8

    Article  MathSciNet  MATH  Google Scholar 

  11. Kozdon, J.E., Dunham, E.M., Nordström, J.: Interaction of waves with frictional interfaces using summation-by-parts difference operators: Weak enforcement of nonlinear boundary conditions. J. of Sci. Comput. 50(2), 341–367 (2012). https://doi.org/10.1007/s10915-011-9485-3

    Article  MathSciNet  MATH  Google Scholar 

  12. Kozdon, J.E., Wilcox, L.C.: Stable coupling of nonconforming, high-order finite difference methods. SIAM J. on Sci. Comput. 38(2), A923–A952 (2016). https://doi.org/10.1137/15M1022823

    Article  MathSciNet  MATH  Google Scholar 

  13. Kreiss, H., Oliger, J.: Comparison of accurate methods for the integration of hyperbolic equations. Tellus 24(3), 199–215 (1972). https://doi.org/10.1111/j.2153-3490.1972.tb01547.x

    Article  MathSciNet  Google Scholar 

  14. Kreiss, H., Scherer, G.: Finite element and finite difference methods for hyperbolic partial differential equations. In: Mathematical aspects of finite elements in partial differential equations; Proceedings of the Symposium, pp. 195–212. Madison, WI (1974). https://doi.org/10.1016/b978-0-12-208350-1.50012-1

  15. Kreiss, H., Scherer, G.: On the existence of energy estimates for difference approximations for hyperbolic systems. Tech. rep., Department of Scientific Computing, Uppsala University (1977)

  16. Mattsson, K.: Summation by parts operators for finite difference approximations of second-derivatives with variable coefficients. Journal of Scientific Computing 51(3), 650–682 (2012). https://doi.org/10.1007/s10915-011-9525-z

    Article  MathSciNet  MATH  Google Scholar 

  17. Mattsson, K., Carpenter, M.H.: Stable and accurate interpolation operators for high-order multiblock finite difference methods. SIAM J. on Sci. Comput. 32(4), 2298–2320 (2010). https://doi.org/10.1137/090750068

    Article  MathSciNet  MATH  Google Scholar 

  18. Mattsson, K., Ham, F., Iaccarino, G.: Stable and accurate wave-propagation in discontinuous media. J. of Comput. Phys. 227(19), 8753–8767 (2008). https://doi.org/10.1016/j.jcp.2008.06.023

    Article  MathSciNet  MATH  Google Scholar 

  19. Mattsson, K., Ham, F., Iaccarino, G.: Stable boundary treatment for the wave equation on second-order form. J. of Sci. Comput. 41(3), 366–383 (2009). https://doi.org/10.1007/s10915-009-9305-1

    Article  MathSciNet  MATH  Google Scholar 

  20. Mattsson, K., Nordström, J.: Summation by parts operators for finite difference approximations of second derivatives. J. of Comput. Phys. 199(2), 503–540 (2004). https://doi.org/10.1016/j.jcp.2004.03.001

    Article  MathSciNet  MATH  Google Scholar 

  21. Mattsson, K., Parisi, F.: Stable and accurate second-order formulation of the shifted wave equation. Commun. in Comput. Phys. 7(1), 103 (2010). https://doi.org/10.4208/cicp.2009.08.135

    Article  MathSciNet  MATH  Google Scholar 

  22. Nordström, J.: A roadmap to well posed and stable problems in computational physics. J. of Sci. Comput. 71(1), 365–385 (2017). https://doi.org/10.1007/s10915-016-0303-9

    Article  MathSciNet  MATH  Google Scholar 

  23. Olsson, P.: Summation by parts, projections, and stability. I. Math. of Comput. 64(211), 1035–1065 (1995). https://doi.org/10.2307/2153482

    Article  MathSciNet  MATH  Google Scholar 

  24. Olsson, P.: Summation by parts, projections, and stability. II. Math. of Comput. 64(212), 1473–1493 (1995). https://doi.org/10.2307/2153366

    Article  MathSciNet  MATH  Google Scholar 

  25. Roache, P.: Verification and validation in computational science and engineering, 1st edn. Hermosa Publishers, Albuquerque, NM (1998)

    Google Scholar 

  26. Strand, B.: Summation by parts for finite difference approximations for d/dx. J. of Comput. Phys. 110(1), 47–67 (1994). https://doi.org/10.1006/jcph.1994.1005

    Article  MathSciNet  MATH  Google Scholar 

  27. Strand, B.: Summation by parts for finite difference approximations for \(d/dx\). J. of Comput. Phys. 110(1), 47–67 (1994). https://doi.org/10.1006/jcph.1994.1005

    Article  MathSciNet  MATH  Google Scholar 

  28. Virta, K., Mattsson, K.: Acoustic wave propagation in complicated geometries and heterogeneous media. J. of Sci. Comput. 61(1), 90–118 (2014). https://doi.org/10.1007/s10915-014-9817-1

    Article  MathSciNet  MATH  Google Scholar 

  29. Wang, S., Virta, K., Kreiss, G.: High order finite difference methods for the wave equation with non-conforming grid interfaces. J. of Sci. Comput. 68(3), 1002–1028 (2016). https://doi.org/10.1007/s10915-016-0165-1

    Article  MathSciNet  MATH  Google Scholar 

Download references

Acknowledgements

We thank the two anonymous reviewers whose insightful feedback substantially improved the paper.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Brittany A. Erickson.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

B.A.E. was supported by National Science Foundation Awards EAR-1547603 and EAR-1916992

J.E.K. was supported by National Science Foundation Award EAR-1547596

T.H. was supported by National Science Foundation EAR-1916992

The views expressed in this document are those of the authors and do not reflect the official policy or position of the Department of Defense or the U.S. Government.

Approved for public release; distribution unlimited.

Appendices

Appendix A Definition of Two-Dimensional SBP Operators

As an example of how to construct multidimensional SBP operators, we consider the two dimensional SBP finite difference operators. We describe the operators on the reference block \(\hat{B} = [0,1] \times [0,1]\), where faces 1 and 2 are the right and left faces with faces 3 and 4 being the top and bottom faces, respectively. For simplicity we let the domain \(\hat{B}\) be discretized with an \((N+1) \times (N+1)\) grid points with the grid nodes located at \({\left\{ {{\varvec{\xi }}}\right\} }_{kl} = (kh, lh)\) for \(0 \le k,l \le N\) with \(h = 1/N\). The projection of u onto the grid is denoted \({{\varvec{\tilde{u}}}}\), where \({\left\{ {{\varvec{\tilde{u}}}}\right\} }_{kl} \approx u(kh, lh)\) and is stored as a vector with with \(\xi _1\) being the fastest index; see (8). With this, the volume norm matrix can be written as

$$\begin{aligned} {{\varvec{\tilde{ H}}}} = {{\varvec{{H}}}} \otimes {{\varvec{{H}}}}. \end{aligned}$$
(132)

We define the face restriction operators as

$$\begin{aligned} {{\varvec{{\bar{L}}}}}^{1} = {{\varvec{{I}}}} \otimes {{\varvec{e}}}_{0}^T, \qquad {{\varvec{{\bar{L}}}}}^{2} = {{\varvec{{I}}}} \otimes {{\varvec{e}}}_{N}^T, \qquad {{\varvec{{\bar{L}}}}}^{3} = {{\varvec{e}}}_{0}^T \otimes {{\varvec{{I}}}}, \qquad {{\varvec{{\bar{L}}}}}^{4} = {{\varvec{e}}}_{0}^T \otimes {{\varvec{{I}}}}, \end{aligned}$$
(133)

where the \({{\varvec{{I}}}}\) is the \((N+1) \times (N+1)\) identity matrix. More generally the restriction to a single grid line in the \(\xi _1\) and \(\xi _2\) directions, respectively, are

$$\begin{aligned} {{\varvec{{\bar{L}}}}}_{l:} = {{\varvec{e}}}_{l}^T \otimes {{\varvec{{I}}}}, \qquad {{\varvec{{\bar{L}}}}}_{:l} = {{\varvec{{I}}}} \otimes {{\varvec{e}}}_{l}^T. \end{aligned}$$
(134)

In order to construct \({{\varvec{\tilde{ A}}}}_{ii}^{(C)}\), no summation over i, we construct individual one-dimensional second derivative matrices for each grid line with varying coefficients C and place them in the correct block; expanding a single second derivative matrix with the tensor product and the identity matrix only works in the constant coefficient case. To do this it is useful to define \({{\varvec{\tilde{C}}}}\) as the projection of C onto the grid with the coefficients along the individual grid lines being

$$\begin{aligned} {{\varvec{{C}}}}_{:l} = \text {diag}(C_{0l},\ldots ,C_{Nl}), \qquad {{\varvec{{C}}}}_{k:} = \text {diag}(C_{k0},\ldots ,C_{kN}). \end{aligned}$$
(135)

The second derivative operators are the sum of the operators along each grid line

$$\begin{aligned} {{\varvec{\tilde{ A}}}}_{11}^{(C)}&= ({{\varvec{{H}}}} \otimes {{\varvec{{I}}}}) \left[ \sum _{l=0}^N {{\varvec{{\bar{L}}}}}_{:l}^T {{\varvec{{A}}}}_{11}^{\left( C_{:l}\right) } {{\varvec{{\bar{L}}}}}_{:l} \right] ,\qquad {{\varvec{\tilde{ A}}}}_{22}^{(C)} = ({{\varvec{{I}}}} \otimes {{\varvec{{H}}}}) \left[ \sum _{k=0}^N {{\varvec{{\bar{L}}}}}_{k:}^T {{\varvec{{A}}}}_{11}^{\left( C_{k:}\right) } {{\varvec{{\bar{L}}}}}_{k:} \right] , \end{aligned}$$
(136a)

and a tensor product is used for the mixed derivative operators

$$\begin{aligned} {{\varvec{\tilde{ A}}}}_{12}^{(C)}&= ({{\varvec{{I}}}} \otimes {{\varvec{{Q}}}}^T) {{\varvec{\tilde{ C}}}}({{\varvec{{Q}}}} \otimes {{\varvec{{I}}}}),\qquad {{\varvec{\tilde{ A}}}}_{21}^{(C)} = ({{\varvec{{Q}}}}^T \otimes {{\varvec{{I}}}}) {{\varvec{\tilde{ C}}}}({{\varvec{{I}}}} \otimes {{\varvec{{Q}}}}). \end{aligned}$$
(136b)

The boundary derivatives parallel to a face are given by the first derivative operator \({{\varvec{{D}}}}_{1}\) and those perpendicular with the boundary derivative operators from the SBP definition 2:

$$\begin{aligned} {{\varvec{{\bar{B}}}}}^{1}_{1}&= {{\varvec{{I}}}} \otimes {{\varvec{b}}}_0^T,\qquad {{\varvec{{\bar{B}}}}}^{1}_{2} = {{\varvec{{D}}}}_{1} \otimes {{\varvec{e}}}_{0}^{T}, \end{aligned}$$
(137a)
$$\begin{aligned} {{\varvec{{\bar{B}}}}}^{2}_{1}&= {{\varvec{{I}}}} \otimes {{\varvec{b}}}_N^T,\qquad {{\varvec{{\bar{B}}}}}^{2}_{2} = {{\varvec{{D}}}}_{1} \otimes {{\varvec{e}}}_{N}^{T}, \end{aligned}$$
(137b)
$$\begin{aligned} {{\varvec{\tilde{ B}}}}^{3}_{1}&= {{\varvec{e}}}_{0}^{T} \otimes {{\varvec{{D}}}}_{1},\qquad {{\varvec{\tilde{ B}}}}^{3}_{2} = {{\varvec{b}}}_0^T \otimes {{\varvec{{I}}}}, \end{aligned}$$
(137c)
$$\begin{aligned} {{\varvec{\tilde{ B}}}}^{4}_{1}&= {{\varvec{e}}}_{N}^{T} \otimes {{\varvec{{D}}}}_{1}, \qquad {{\varvec{\tilde{ B}}}}^{4}_{2} = {{\varvec{b}}}_N^T \otimes {{\varvec{{I}}}}. \end{aligned}$$
(137d)

Appendix B Proof of Theorem 7

To show that energy (105) is positive we need the following definition from [16,  Definition 2.4]:

$$\begin{aligned} {{\varvec{\tilde{ A}}}}_{ij}^{(c)} = {{\varvec{\tilde{ D}}}}_{i}^{T} {{\varvec{\tilde{ C}}}} {{\varvec{\tilde{ H}}}} {{\varvec{\tilde{ D}}}}_{j} + {{\varvec{\tilde{ R}}}}_{ij}^{(c)}. \end{aligned}$$
(138)

The remainder matrix \({{\varvec{\tilde{ R}}}}_{ij}^{(c)}\) is symmetric positive semidefinite if the coefficient c is always positive; the remainder matrix is zero when \(i \ne j\). The remainder matrix can be further decomposed using the borrowing lemma from [1,  Lemma 1]:

$$\begin{aligned} {{\varvec{\tilde{ R}}}}_{ii}^{(c)} = {{\varvec{\tilde{ S}}}}_{ii}^{(c)} + \sum _{f=2i-1}^{2i} \zeta ^{f} {\left( {{\varvec{{\bar{\varDelta }}}}}^{f}_{i}\right) }^{T} {{\varvec{{H}}}}^{f} {{\varvec{{C}}}}^{f,\min } {{\varvec{{\bar{\varDelta }}}}}^{f}_{i} \quad (\text {no summation over}\, i). \end{aligned}$$
(139)

Here the matrix \({{\varvec{\tilde{ S}}}}_{ii}^{(c)}\) (no summation over i) is a positive semidefinite and the matrix \({{\varvec{{\bar{\varDelta }}}}}_{i}^{f} = {{\varvec{{\bar{B}}}}}_{i}^{f} - {{\varvec{{\bar{D}}}}}_{i}^{f}\) is the difference between the boundary derivative matrix from \({{\varvec{\tilde{ D}}}}_{ii}\) (no summation over i) and the first derivative matrix \({{\varvec{\tilde{ D}}}}_{i}\) at the boundary. Each element of the diagonal matrix \({{\varvec{{C}}}}^{f,min}\) is the minimum value of c in the \(m_{b}\) points orthogonal to the boundary where \(m_{b}\) depends on the order of accuracy of the SBP operator. The positive constant \(\zeta ^f = h^f_{\bot } \bar{\zeta }\) where \(h^{f}_{\bot }\) is the grid spacing orthogonal to the face and \(\bar{\zeta }\) is a constant which depends on the SBP operator. The \((m_{b}, \bar{\zeta })\) values used for the operators in this paper are given in Table 3; see [1,  Table 1].

Table 3 Borrowing parameters and SBP norm \({{\varvec{{H}}}}\) matrix corner value for used operators [1,  Table 1]

Since \({{\varvec{\tilde{ H}}}}\) is diagonal and positive, it is clear that for any face f

$$\begin{aligned} {{\varvec{\tilde{v}}}}^{T} {{\varvec{\tilde{ H}}}} {{\varvec{\tilde{v}}}} \ge \theta ^{f} {\left( {{\varvec{{\bar{L}}}}}^{f}{{\varvec{\tilde{v}}}}_{i}\right) }^{T} {{\varvec{{H}}}}^{f} {{\varvec{{\bar{L}}}}}^{f}{{\varvec{\tilde{v}}}}_{j} = \theta ^{f} {\left( {{\varvec{\tilde{v}}}}_{i}^{f}\right) }^{T} {{\varvec{{H}}}}^{f} {{\varvec{\tilde{v}}}}_{j}^{f}, \end{aligned}$$
(140)

where \(\theta ^{f}\) is the value of the \({\left\{ {{\varvec{H}}}\right\} }_{00}\) where \({{\varvec{H}}}\) is the norm matrix orthogonal to the face. It then follows that

$$\begin{aligned} \begin{aligned} {{\varvec{\tilde{v}}}}^{T} {{\varvec{\tilde{ H}}}} {{\varvec{\tilde{v}}}} \ge \sum _{f = 1}^{2d} \frac{\theta ^{f}}{d} {\left( {{\varvec{\tilde{v}}}}^{f}\right) }^{T} {{\varvec{{H}}}}^{f} {{\varvec{\tilde{v}}}}^{f}, \end{aligned} \end{aligned}$$
(141)

where the factor of 1/d is needed to avoid over counting corners and, when \(d = 3\), edges. Since the coefficient matrix \(C_{ij}\) is positive definite, this can be extended to included the variable coefficients:

$$\begin{aligned} \begin{aligned} {{\varvec{\tilde{v}}}}_{i}^{T} {{\varvec{\tilde{ \hat{C}}}}}_{ij} {{\varvec{\tilde{ H}}}} {{\varvec{\tilde{v}}}}_{j} \ge \sum _{f = 1}^{2d} \frac{\theta ^{f}}{d} {\left( {{\varvec{\tilde{v}}}}_{i}^{f}\right) }^{T} {{\varvec{{\hat{C}}}}}_{ij}^{f} {{\varvec{{H}}}}^{f} {{\varvec{\tilde{v}}}}_{j}^{f}. \end{aligned} \end{aligned}$$
(142)

We now turn to considering the discrete block energy (105). The first term satisfies

$$\begin{aligned} \frac{1}{2} {{\varvec{\dot{u}}}}^{\,\,\,\,T} {{\varvec{\tilde{ H}}}}{{\varvec{\tilde{ \rho }}}}{{\varvec{\dot{u}}}}\,\, \ge 0, \end{aligned}$$
(143)

because it is in quadratic form and \({{\varvec{\tilde{ H}}}}\) and \({{\varvec{\tilde{ \rho }}}}\) are diagonal, positive matrices. The remaining terms will be shown to combine in a manner that is also positive semidefinite.

Combing relations (138), (139), and (142) we have that

$$\begin{aligned} \begin{aligned} {{\varvec{\tilde{u}}}}^{T} {{\varvec{\tilde{ A}}}}_{ij}^{(\hat{C}_{ij})}{{\varvec{\tilde{u}}}} \ge&\sum _{f=1}^{2d}\frac{\theta ^{f}}{d}{\left( {{\varvec{{\bar{D}}}}}_{i}^{f}{{\varvec{\tilde{u}}}}\right) }^{T} {{\varvec{{\hat{C}}}}}_{ij}^f {{\varvec{{H}}}}^f {{\varvec{{\bar{D}}}}}_{j}^{f} {{\varvec{\tilde{u}}}}\\&+ \sum _{k=1}^{d} \left( \sum _{f=2k-1}^{2k} \zeta ^{f} {\left( {{\varvec{{\bar{\varDelta }}}}}^{f}_{k} {{\varvec{\tilde{u}}}}\right) }^{T} {{\varvec{{H}}}}^{f} {{\varvec{{\hat{C}}}}}_{kk}^{f,\min } {{\varvec{{\bar{\varDelta }}}}}^{f}_{k} {{\varvec{\tilde{u}}}} \right) . \end{aligned} \end{aligned}$$
(144)

We now considering the face term of the discrete block energy (105). Defining \({{\varvec{\delta }}}^{f}_{u} = {{\varvec{u}}}^{*f} - {{\varvec{u}}}^{f}\) and using the definition of \({{\varvec{\hat{\tau }}}}^{f}\) and \({{\varvec{\hat{T}}}}^{f}\) in (107) gives

$$\begin{aligned} \begin{aligned} {\left( {{\varvec{\hat{\tau }}}}^{f}\right) }^{T} {\left( {{\varvec{{X}}}}^{f}\right) }^{-1} {{\varvec{{H}}}}^{f} {\left( {{\varvec{\hat{\tau }}}}^{f}\right) } - {\left( {{\varvec{\hat{T}}}}\right) }^{T} {\left( {{\varvec{{X}}}}^{f}\right) }^{-1} {{\varvec{{H}}}}^{f} {\left( {{\varvec{\hat{T}}}}\right) }&= 2 {\left( {{\varvec{\hat{T}}}}\right) }^{T} {{\varvec{{H}}}}^{f} {{\varvec{\delta }}}^{f}_{u} + {\left( {{\varvec{\delta }}}^{f}_{u} \right) }^{T} {{\varvec{{X}}}}^{f} {{\varvec{{H}}}}^{f} {{\varvec{\delta }}}^{f}_{u}. \end{aligned} \end{aligned}$$
(145)

It is useful to note that \({{\varvec{\hat{T}}}}\) can be rewritten using \({{\varvec{{\bar{\varDelta }}}}}^{f}_{k}\) as

$$\begin{aligned} {{\varvec{\hat{T}}}}^{f} = \hat{n}^{f}_{i}{{\varvec{{\hat{C}}}}}_{ij}^{f}{{\varvec{{\bar{B}}}}}^{f}_{j}{{\varvec{\tilde{u}}}} = \hat{n}^{f}_{i}{{\varvec{{\hat{C}}}}}_{ij}^{f}{{\varvec{{\bar{D}}}}}^{f}_{j}{{\varvec{\tilde{u}}}} + \hat{n}^{f}_{k}{{\varvec{{\hat{C}}}}}_{kk}^{f}{{\varvec{{\bar{\varDelta }}}}}^{f}_{k}{{\varvec{\tilde{u}}}}, \quad k = \left\lceil {\frac{f}{2}}\right\rceil ; \end{aligned}$$
(146)

this follows because only when \(f \in (2j, 2j-1)\) is \({{\varvec{{\bar{B}}}}}^{f}_{j} \ne {{\varvec{{\bar{D}}}}}^{f}_{j}\). Using this along with the definition of \({{\varvec{{X}}}}^{f}\) in (106) leads to,

$$\begin{aligned} \begin{aligned}&{\left( {{\varvec{\hat{\tau }}}}^{f}\right) }^{T} {\left( {{\varvec{{X}}}}^{f}\right) }^{-1} {{\varvec{{H}}}}^{f} {\left( {{\varvec{\hat{\tau }}}}^{f}\right) } - {\left( {{\varvec{\hat{T}}}}\right) }^{T} {\left( {{\varvec{{X}}}}^{f}\right) }^{-1} {{\varvec{{H}}}}^{f} {\left( {{\varvec{\hat{T}}}}\right) }\\&\quad = 2\hat{n}_{i}^{f} {\left( {{\varvec{{\bar{D}}}}}^{f}_{j}{{\varvec{\tilde{u}}}}\right) }^{T} {{\varvec{{H}}}}^{f}{{\varvec{{\hat{C}}}}}_{ij}^{f} {{\varvec{\delta }}}^{f}_{u} + \hat{n}^{f}_{i} \hat{n}^{f}_{j} {\left( {{\varvec{\delta }}}^{f}_{u}\right) }^{T} {{\varvec{{\hat{C}}}}}_{ij}^{f} {{\varvec{{\varGamma }}}}^{f} {{\varvec{{H}}}}^{f} {{\varvec{\delta }}}^{f}_{u} + 2 \hat{n}_{k}^{f} {\left( {{\varvec{{\bar{\varDelta }}}}}^{f}_{k}{{\varvec{\tilde{u}}}}\right) }^{T} {{\varvec{{H}}}}^{f} {{\varvec{{\hat{C}}}}}_{kk}^{f} {{\varvec{\delta }}}^{f}_{u}, \end{aligned} \end{aligned}$$
(147)

where \(k = \left\lceil {\frac{f}{2}}\right\rceil \).

Returning to the remaining terms of block energy (105), we use (144) and (147) to write

$$\begin{aligned} \begin{aligned}&{{\varvec{\tilde{u}}}}^{T} {{\varvec{\tilde{ A}}}}_{ij}^{(C_{ij})}{{\varvec{\tilde{u}}}} + \sum _{f=1}^{2d} \left( {\left( {{\varvec{\hat{\tau }}}}^{f}\right) }^{T} {\left( {{\varvec{{X}}}}^{f}\right) }^{-1} {{\varvec{{H}}}}^{f} {\left( {{\varvec{\hat{\tau }}}}^{f}\right) } - {\left( {{\varvec{\hat{T}}}}\right) }^{T} {\left( {{\varvec{{X}}}}^{f}\right) }^{-1} {{\varvec{{H}}}}^{f} {\left( {{\varvec{\hat{T}}}}\right) } \right) \\&\quad \ge \sum _{f=1}^{2d} \left( \frac{\theta ^{f}}{d}{\left( {{\varvec{{\bar{D}}}}}_{i}^{f} {{\varvec{\tilde{u}}}}\right) }^{T} {{\varvec{{\hat{C}}}}}_{ij}^f {{\varvec{{H}}}}^f {{\varvec{{\bar{D}}}}}_{j}^{f} {{\varvec{\tilde{u}}}} + 2 {\left( {{\varvec{{\bar{D}}}}}^{f}_{j}{{\varvec{\tilde{u}}}}\right) }^{T} {{\varvec{{\hat{C}}}}}_{ij}^{f} {{\varvec{{H}}}}^{f} \hat{n}_{i}^{f} {{\varvec{\delta }}}_{u}^{f} \right) \\&\qquad + \sum _{k=1}^{d} \sum _{f=2k-1}^{2k} \left( \zeta ^{f} {\left( {{\varvec{{\bar{\varDelta }}}}}^{f}_{k} {{\varvec{\tilde{u}}}}\right) }^{T} {{\varvec{{\hat{C}}}}}_{kk}^{f,\min } {{\varvec{{H}}}}^{f} {{\varvec{{\bar{\varDelta }}}}}^{f}_{k} {{\varvec{\tilde{u}}}} + 2 {\left( {{\varvec{{\bar{\varDelta }}}}}^{f}_{k}{{\varvec{\tilde{u}}}}\right) }^{T} {{\varvec{{\hat{C}}}}}_{kk}^{f} {{\varvec{{H}}}}^{f} \hat{n}_{k}^{f} {{\varvec{\delta }}}^{f}_{u} \right) \\&\qquad + \sum _{f=1}^{2d} {\left( {{\varvec{\delta }}}^{f}_{u}\right) }^{T} \hat{n}^{f}_{i} {{\varvec{{\hat{C}}}}}_{ij}^{f} {{\varvec{{\varGamma }}}}^{f} {{\varvec{{H}}}}^{f} \hat{n}^{f}_{j} {{\varvec{\delta }}}^{f}_{u}. \end{aligned} \end{aligned}$$
(148)

If we choose

$$\begin{aligned} {{\varvec{{\varGamma }}}}^{f}&\ge \frac{d}{\theta ^{f}} {{\varvec{{I}}}} + \frac{1}{\zeta ^{f}} {{\varvec{{P}}}}^{f}, \end{aligned}$$
(149a)
$$\begin{aligned} {{\varvec{{P}}}}^{f}&= {{\varvec{{\hat{C}}}}}_{kk}^{f} {\left( {{\varvec{{\hat{C}}}}}_{kk}^{f,\min }\right) }^{-1}, ~ k = \left\lceil {\frac{f}{2}}\right\rceil , \end{aligned}$$
(149b)

then we have that

$$\begin{aligned} \begin{aligned}&\sum _{f=1}^{2d} {\left( {{\varvec{\delta }}}^{f}_{u}\right) }^{T} \hat{n}^{f}_{i} {{\varvec{{\hat{C}}}}}_{ij}^{f} {{\varvec{{\varGamma }}}}^{f} {{\varvec{{H}}}}^{f} \hat{n}^{f}_{j} {{\varvec{\delta }}}^{f}_{u}\\&\quad \ge \sum _{f=1}^{2d} \frac{d}{\theta ^{f}} {\left( {{\varvec{\delta }}}^{f}_{u}\right) }^{T} \hat{n}^{f}_{i} {{\varvec{{\hat{C}}}}}_{ij}^{f} {{\varvec{{H}}}}^{f} \hat{n}^{f}_{j} {{\varvec{\delta }}}^{f}_{u} + \sum _{f=1}^{2d} \frac{1}{\zeta ^{f}} {\left( {{\varvec{\delta }}}^{f}_{u}\right) }^{T} \hat{n}^{f}_{i} {{\varvec{{\hat{C}}}}}_{ij}^{f} {{\varvec{{P}}}}^{f} {{\varvec{{H}}}}^{f} \hat{n}^{f}_{j} {{\varvec{\delta }}}^{f}_{u}\\ {}&\quad = \sum _{f=1}^{2d} \frac{d}{\theta ^{f}} {\left( {{\varvec{\delta }}}^{f}_{u}\right) }^{T} \hat{n}^{f}_{i} {{\varvec{{\hat{C}}}}}_{ij}^{f} {{\varvec{{H}}}}^{f} \hat{n}^{f}_{j} {{\varvec{\delta }}}^{f}_{u} + \sum _{k=1}^{d} \sum _{f = 2k-1}^{2k} \frac{1}{\zeta ^{f}} {\left( {{\varvec{\delta }}}^{f}_{u}\right) }^{T} {{\varvec{{\hat{C}}}}}_{kk}^{f} {{\varvec{{P}}}}^{f} {{\varvec{{H}}}}^{f} {{\varvec{\delta }}}^{f}_{u}\\&\quad = \sum _{f=1}^{2d} \frac{d}{\theta ^{f}} {\left( {{\varvec{\delta }}}^{f}_{u}\right) }^{T} \hat{n}^{f}_{i} {{\varvec{{\hat{C}}}}}_{ij}^{f} {{\varvec{{H}}}}^{f} \hat{n}^{f}_{j} {{\varvec{\delta }}}^{f}_{u} + \sum _{k=1}^{d} \sum _{f = 2k-1}^{2k} \frac{1}{\zeta ^{f}} {\left( {{\varvec{{P}}}}^{f} {{\varvec{\delta }}}^{f}_{u}\right) }^{T} {{\varvec{{\hat{C}}}}}_{kk}^{f,\min } {{\varvec{{H}}}}^{f}{{\varvec{{P}}}}^{f} {{\varvec{\delta }}}^{f}_{u}, \end{aligned} \end{aligned}$$
(150)

where we have used that \(\hat{n}^{f}_{i} {{\varvec{{\hat{C}}}}}_{ij}^{f} \hat{n}^{f}_{j} = {{\varvec{{\hat{C}}}}}_{kk}^{f}\) with \(k = \left\lceil {\frac{f}{2}}\right\rceil \) (no summation over k). Though a similar transformation could be used on the first summation it is not needed and complicates the analysis that follows. Returning to (148) then gives with (150)

$$\begin{aligned} \begin{aligned}&{{\varvec{\tilde{u}}}}^{T} {{\varvec{\tilde{ A}}}}_{ij}^{(C_{ij})}{{\varvec{\tilde{u}}}} + \sum _{f=1}^{2d} \left( {\left( {{\varvec{\hat{\tau }}}}^{f}\right) }^{T} {\left( {{\varvec{{X}}}}^{f}\right) }^{-1} {{\varvec{{H}}}}^{f} {\left( {{\varvec{\hat{\tau }}}}^{f}\right) } - {\left( {{\varvec{\hat{T}}}}\right) }^{T} {\left( {{\varvec{{X}}}}^{f}\right) }^{-1} {{\varvec{{H}}}}^{f} {\left( {{\varvec{\hat{T}}}}\right) } \right) \\&\quad \ge \sum _{f=1}^{2d} \left( \frac{\theta ^{f}}{d}{\left( {{\varvec{{\bar{D}}}}}_{i}^{f} {{\varvec{\tilde{u}}}}\right) }^{T} {{\varvec{{\hat{C}}}}}_{ij}^f {{\varvec{{H}}}}^f {{\varvec{{\bar{D}}}}}_{j}^{f} {{\varvec{\tilde{u}}}} + 2 {\left( {{\varvec{{\bar{D}}}}}^{f}_{j}{{\varvec{\tilde{u}}}}\right) }^{T} {{\varvec{{\hat{C}}}}}_{ij}^{f} {{\varvec{{H}}}}^{f} \hat{n}_{i}^{f} {{\varvec{\delta }}}_{u}^{f} \right) \\&\qquad + \sum _{f=1}^{2d} \frac{d}{\theta ^{f}} {\left( {{\varvec{\delta }}}^{f}_{u}\right) }^{T} \hat{n}^{f}_{i} {{\varvec{{\hat{C}}}}}_{ij}^{f} {{\varvec{{H}}}}^{f} \hat{n}^{f}_{j} {{\varvec{\delta }}}^{f}_{u}\\&\qquad + \sum _{k=1}^{d} \sum _{f=2k-1}^{2k} \left( \zeta ^{f} {\left( {{\varvec{{\bar{\varDelta }}}}}^{f}_{k} {{\varvec{\tilde{u}}}}\right) }^{T} {{\varvec{{\hat{C}}}}}_{kk}^{f,\min } {{\varvec{{H}}}}^{f} {{\varvec{{\bar{\varDelta }}}}}^{f}_{k} {{\varvec{\tilde{u}}}} + 2 {\left( {{\varvec{{\bar{\varDelta }}}}}^{f}_{k}{{\varvec{\tilde{u}}}}\right) }^{T} {{\varvec{{\hat{C}}}}}_{kk}^{f} {{\varvec{{H}}}}^{f} \hat{n}_{k}^{f} {{\varvec{\delta }}}^{f}_{u} \right) \\&\qquad + \sum _{k=1}^{d} \sum _{f = 2k-1}^{2k} \frac{1}{\zeta ^{f}} {\left( {{\varvec{{P}}}}^{f} {{\varvec{\delta }}}^{f}_{u}\right) }^{T} {{\varvec{{\hat{C}}}}}_{kk}^{f,\min } {{\varvec{{H}}}}^{f}{{\varvec{{P}}}}^{f} {{\varvec{\delta }}}^{f}_{u}\\&\quad = \sum _{f=1}^{2d} \frac{\theta ^{f}}{d} {\left( {{\varvec{{\bar{D}}}}}_{i}^{f} {{\varvec{\tilde{u}}}} + \frac{d}{\theta ^{f}} \hat{n}_{i}^{f} {{\varvec{\delta }}}_{u}^{f} \right) }^{T} {{\varvec{{\hat{C}}}}}_{ij}^f {{\varvec{{H}}}}^f {\left( {{\varvec{{\bar{D}}}}}_{j}^{f} {{\varvec{\tilde{u}}}} + \frac{d}{\theta ^{f}} \hat{n}_{j}^{f} {{\varvec{\delta }}}_{u}^{f} \right) }\\&\qquad + \sum _{k=1}^{d} \sum _{f=2k-1}^{2k} \zeta ^{f} {\left( {{\varvec{{\bar{\varDelta }}}}}^{f}_{k} {{\varvec{\tilde{u}}}} + \frac{1}{\zeta ^{f}}\hat{n}^{f}_{k}{{\varvec{{P}}}}^{f}{{\varvec{\delta }}}_{u}^{f}\right) }^{T} {{\varvec{{\hat{C}}}}}_{kk}^{f,\min } {{\varvec{{H}}}}^{f} {\left( {{\varvec{{\bar{\varDelta }}}}}^{f}_{k} {{\varvec{\tilde{u}}}} + \frac{1}{\zeta ^{f}}\hat{n}^{f}_{k}{{\varvec{{P}}}}^{f}{{\varvec{\delta }}}_{u}^{f}\right) }, \end{aligned} \end{aligned}$$
(151)

where we have used that \({{\varvec{{\hat{C}}}}}_{kk}^{f} = \hat{n}^{f}_{k} {{\varvec{{\hat{C}}}}}_{kk}^{f} \hat{n}_{k}^{t}\) (no summation over k) and \({{\varvec{{\hat{C}}}}}_{kk}^{f,\min } {{\varvec{{P}}}}^{f} = {{\varvec{{C}}}}_{kk}^{f}\) (no summation over k). Since this expression is in quadratic form, it is non-negative and the when combine with (143) shows that the block energy (105) is non-negative.

Appendix C Non-Characteristic Boundary and Interface Treatment

The standard approach for SBP-SAT for Dirichlet (78b), and characteristic boundaries (78c) as well as computational and nonlinear interfaces from Virta and Mattsson [28] and Duru et al. [7] are presented in the notation of this paper; Neumann boundary treatment is the same as the characteristic boundary treat with \(R = 1\).

1.1 C.1 Dirichlet Boundary Conditions

When block face f is on a Dirichlet boundary (87b) then the numerical fluxes are chosen to be

$$\begin{aligned} {{\varvec{u}}}^{*f}&= {{\varvec{g}}}_{D}, \end{aligned}$$
(152a)
$$\begin{aligned} {{\varvec{\hat{\tau }}}}^{*f}&= {{\varvec{\hat{\tau }}}}^{f}; \end{aligned}$$
(152b)

Using these numerical fluxes, the face energy rate of change (109) is

$$\begin{aligned} \begin{aligned} \dot{\mathcal {E}}^{f} =&\; {\left( {{\varvec{\hat{\tau }}}}^{f}\right) }^{T} {{\varvec{{H}}}}^{f} {{\varvec{\dot{u}}}}^{f} + {\left( {{\varvec{\hat{\tau }}}}^{f}\right) }^{T} {{\varvec{{H}}}}^{f} {\left( {{\varvec{\dot{g}}}}^{f}_{D} - {{\varvec{\dot{u}}}}^{f} \right) } = {\left( {{\varvec{\hat{\tau }}}}^{f}\right) }^{T} {{\varvec{{H}}}}^{f} {{\varvec{\dot{g}}}}^{f}_{D}, \end{aligned} \end{aligned}$$
(153)

which with \(g_{D} = 0\) gives \(\dot{\mathcal {E}}^{f} = 0\) and does not lead to energy growth.

1.2 C.2 Characteristic (and Neumann) Boundary Conditions

In order to define the standard treatment of characteristic boundary conditions (78c), it is useful to solve (78c) for \(\tau \):

$$\begin{aligned} \tau = -\alpha \dot{u} + \nu g_C, \end{aligned}$$
(154)

with \(\alpha = -Z (1 - R) / (R + 1) \le 0\) and \(\nu = 1 / (R + 1)\). We note again that the Neumann boundary condition is attained when \(R = 1\) in which case \(\alpha = 0\) and \(\nu = 1\). With this, if block face f is on a characteristic boundary then the numerical fluxes are chosen to be

$$\begin{aligned} {{\varvec{u}}}^{*f}&= {{\varvec{u}}}^{f}, \end{aligned}$$
(155a)
$$\begin{aligned} {{\varvec{\hat{\tau }}}}^{*f}&= -{{\varvec{{\hat{\alpha }}}}}^{f} {{\varvec{\dot{u}}}}^{f} + {{\varvec{{\hat{\nu }}}}}^{f} {{\varvec{g}}}_{C}, \end{aligned}$$
(155b)

where the parameters \({{\varvec{{\hat{\alpha }}}}}\) and \({{\varvec{{\hat{\nu }}}}}\) are diagonal matrices of \(S_{J}^{f} \alpha \) and \(S_{J}^{f} \nu \) evaluated at each point on face f. Using these numerical fluxes in (109) give

$$\begin{aligned} \begin{aligned} \dot{\mathcal {E}}^{f} =&\; -{\left( {{\varvec{\dot{u}}}}^{f}\right) }^{T} {{\varvec{{\hat{\alpha }}}}} {{\varvec{{H}}}}^{f} {{\varvec{\dot{u}}}}^{f} + {\left( {{\varvec{g}}}^{f}_{C}\right) }^{T} {{\varvec{{\hat{\nu }}}}} {{\varvec{{H}}}}^{f} {{\varvec{\dot{u}}}}^{f}. \end{aligned} \end{aligned}$$
(156)

With \(g_{C} = 0\) we then have that \(\dot{\mathcal {E}}^{f} \le 0\) and there is no energy growth due to the characteristic boundary treatment; equality is obtained in the Neumann case.

1.3 C.3 Computational Interface

For computational interfaces (e.g., interfaces between blocks in the domains that have been introduced to mesh to either a material interface and/or needed in the mesh generation) continuity of displacement and traction need to be enforced. That is, across the interface it is required that

$$\begin{aligned} \begin{aligned} u^{-}&= u^{+},\\ n_{i}^{-}C_{ij}^{-}\partial _{j}u^{-}&= -n_{i}^{+}C_{ij}^{+}\partial _{j}u^{+}. \end{aligned} \end{aligned}$$
(157)

Here the superscript ± denotes the value on either side of the interface with the unit normal \({\varvec{n}}^{\pm }\) is taken to be outward to each side of the interface, i.e., \({\varvec{n}}^{-} = -{\varvec{n}}^{+}\). The standard approach to enforcing this is to choose the numerical flux to be the average of the values on the two sides of the interface,

$$\begin{aligned} \begin{aligned} {{\varvec{u}}}^{*f^{-}}&= \frac{1}{2}\left( {{\varvec{u}}}^{f^{-}} + {{\varvec{u}}}^{f^{+}}\right) ,\\ {{\varvec{\hat{\tau }}}}^{*f^{-}}&= \frac{1}{2}\left( {{\varvec{\hat{\tau }}}}^{f^{-}} - {{\varvec{\hat{\tau }}}}^{f^{+}}\right) ; \end{aligned} \end{aligned}$$
(158)

the minus sign in \({{\varvec{\hat{\tau }}}}^{*f^{-}}\) is due to the unit normals being equal and opposite. Here the two blocks connected across the interface are \(B^{\pm }\) through faces \(f^{\pm }\).

The face energy rate of change (109) for computational interfaces is then

$$\begin{aligned} \begin{aligned} \dot{\mathcal {E}}^{f^{\pm }} =&\; \frac{1}{2} {\left( {{\varvec{\hat{\tau }}}}^{f^{\pm }} - {{\varvec{\hat{\tau }}}}^{f^{\mp }}\right) }^{T} {{\varvec{{H}}}}^{f} {{\varvec{\dot{u}}}}^{f^{\pm }} + \frac{1}{2} {\left( {{\varvec{\hat{\tau }}}}^{f^{\pm }}\right) }^{T} {{\varvec{{H}}}}^{f} {\left( {{\varvec{\dot{u}}}}^{f^{\mp }} - {{\varvec{\dot{u}}}}^{f^{\pm }} \right) }\\ =&\; - \frac{1}{2} {\left( {{\varvec{\hat{\tau }}}}^{f^{\mp }}\right) }^{T} {{\varvec{{H}}}}^{f} {{\varvec{\dot{u}}}}^{f^{\pm }} + \frac{1}{2} {\left( {{\varvec{\hat{\tau }}}}^{f^{\pm }}\right) }^{T} {{\varvec{{H}}}}^{f} {{\varvec{\dot{u}}}}^{f^{\mp }}. \end{aligned} \end{aligned}$$
(159)

Adding the two sides of the interface together gives

$$\begin{aligned} \dot{\mathcal {E}}^{f} = \dot{\mathcal {E}}^{f^{+}} + \dot{\mathcal {E}}^{f^{-}} = 0, \end{aligned}$$
(160)

and energy stability results.

1.4 C.4 Nonlinear Interface Condition

The approach Duru et al. [7] for nonlinear interfaces is to define the sliding velocity \(V^{\pm f}\) directly from the particle velocities on the grid and then the traction \(\tau ^{f}\) is defined directly from the nonlinear function so the numerical fluxes are

$$\begin{aligned} \begin{aligned} {{\varvec{u}}}^{*f^{\pm }}&= {{\varvec{u}}}^{f^{\pm }},\\ {{\varvec{\hat{\tau }}}}^{*f^{\pm }}&= \hat{F}\left( {{\varvec{V}}}^{f^{\pm }}\right) , ~ {{\varvec{V}}}^{f^{\pm }} = \left( {{\varvec{\dot{u}}}}^{f^{\mp }} - {{\varvec{\dot{u}}}}^{f^{\pm }}\right) . \end{aligned} \end{aligned}$$
(161)

The face energy rate of change (109) for a nonlinear interface is then

$$\begin{aligned} \begin{aligned} \dot{\mathcal {E}}^{f^{\pm }} =&\; {\left( \hat{F}\left( {{\varvec{V}}}^{f^{\pm }}\right) \right) }^{T} {{\varvec{{H}}}}^{f} {{\varvec{\dot{u}}}}^{f^{\pm }}. \end{aligned} \end{aligned}$$
(162)

Adding the two sides of the interface together gives

$$\begin{aligned} \begin{aligned} \dot{\mathcal {E}}^{f} = \dot{\mathcal {E}}^{f^{+}} + \dot{\mathcal {E}}^{f^{-}}&= {\left( \hat{F}\left( {{\varvec{V}}}^{f^{+}}\right) \right) }^{T} {{\varvec{{H}}}}^{f} {{\varvec{\dot{u}}}}^{f^{+}} + {\left( \hat{F}\left( {{\varvec{V}}}^{f^{-}}\right) \right) }^{T} {{\varvec{{H}}}}^{f} {{\varvec{\dot{u}}}}^{f^{-}}\\&= {\left( \hat{F}\left( {{\varvec{V}}}^{f^{+}}\right) \right) }^{T} {{\varvec{{H}}}}^{f} {{\varvec{\dot{u}}}}^{f^{+}} - {\left( \hat{F}\left( {{\varvec{V}}}^{f^{+}}\right) \right) }^{T} {{\varvec{{H}}}}^{f} {{\varvec{\dot{u}}}}^{f^{-}}\\&= - {\left( \hat{F}\left( {{\varvec{V}}}^{f^{+}}\right) \right) }^{T} {{\varvec{{H}}}}^{f} {{\varvec{V}}}^{f^{+}}\\&\le 0, \end{aligned} \end{aligned}$$
(163)

where we have used that \({{\varvec{V}}}^{f^{-}} = -{{\varvec{V}}}^{f^{+}}\) and the fact that \(V \hat{F}(V) \ge 0\).

Appendix D Nonlinear Interface Root Finding Problem

In general, evaluating \(\mathcal {Q}^{\pm }\) for a nonlinear condition \(\tau ^{\pm } = F\left( V^{\pm }\right) \) requires solving a nonlinear root finding problem. In particular, using the characteristic variables \(w^{\pm }\) a root finding problem for \(V^{\pm }\) is solved after which \(\mathcal {Q}^{\pm }\) can be determined.

Recall that force balance, \(\tau ^{-} = -\tau ^{+}\), and the fact that \(V^{-} = -V^{+}\) implies that \(\tau ^{-} = -F\left( V^{+}\right) \). Using this we can compute the \(Z^{\pm }\) weighted-average

$$\begin{aligned} \frac{Z^{-}\tau ^{+} - Z^{+}\tau ^{-}}{Z^{+} + Z^{-}} = F\left( V^{+}\right) . \end{aligned}$$
(164)

Expressing \(\tau ^{\pm }\) in terms of \(\mathcal {Q}^{\pm }\) and \(w^{\pm }\), see (93b), then gives

$$\begin{aligned} \frac{ Z^{-}\mathcal {Q}^{+} - Z^{-}w^{+} - Z^{+}\mathcal {Q}^{-} + Z^{+}w^{-} }{2(Z^{+} + Z^{-})} = F\left( V^{+}\right) . \end{aligned}$$
(165)

The sliding velocity \(V^{+}\) can be written in terms of the characteristic variables using (93a):

$$\begin{aligned} V^{+}= & {} \dot{u}^{-} - \dot{u}^{+} = \frac{\mathcal {Q}^{-} + w^{-}}{2Z^{-}} - \frac{\mathcal {Q}^{+} + w^{+}}{2Z^{+}} \nonumber \\= & {} \frac{Z^{+} \mathcal {Q}^{-} + Z^{+} w^{-} - Z^{-}\mathcal {Q}^{+} - Z^{-} w^{+}}{2Z^{-}Z^{+}}. \end{aligned}$$
(166)

Using this, we can rewrite (165) as

$$\begin{aligned} \frac{Z^{+}Z^{-} }{(Z^{+} + Z^{-})} V^{+} + \frac{ Z^{+}w^{-} - Z^{-}w^{+} }{(Z^{+} + Z^{-})} = F\left( V^{+}\right) . \end{aligned}$$
(167)

This expression can be more compactly written by defining

$$\begin{aligned} \tau ^{+}_{l} = \frac{ Z^{+}w^{-} - Z^{-}w^{+} }{(Z^{+} + Z^{-})}, \end{aligned}$$
(168)

which depends only on the characteristic variables propagating into the interface and is the traction that would result if the interface were a computational interface; seen by using (92) in (93b). We can now write the final form of the root finding problem as

$$\begin{aligned} \eta V^{+} + \tau _{l}^{+} = F\left( V^{+}\right) , \end{aligned}$$
(169)

where \(\eta = Z^{+}Z^{-} / (Z^{+} + Z^{-})\) is known as the radiation damping coefficient. Once this nonlinear system is solved for \(V^{+}\) all other quantities can be determined using (93). When numerically solving (169) it is useful to realize that \({{\,\mathrm{sgn}\,}}\left( V^{+}\right) = {{\,\mathrm{sgn}\,}}\left( \tau _{l}^{+}\right) \) and that the root can be bracketed: \(\left| V^{+}\right| \in \left[ 0, F^{-1}\left( \tau _{l}^{+}\right) \right] \).

Rights and permissions

Springer Nature or its licensor holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Erickson, B.A., Kozdon, J.E. & Harvey, T. A Non-Stiff Summation-By-Parts Finite Difference Method for the Scalar Wave Equation in Second Order Form: Characteristic Boundary Conditions and Nonlinear Interfaces. J Sci Comput 93, 17 (2022). https://doi.org/10.1007/s10915-022-01961-1

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s10915-022-01961-1

Keywords

Navigation