Skip to main content
Log in

An Energy Stable Approach for Discretizing Hyperbolic Equations with Nonconforming Discontinuous Galerkin Methods

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

Abstract

When nonconforming discontinuous Galerkin methods are implemented for hyperbolic equations using quadrature, exponential energy growth can result even when the underlying scheme with exact integration does not support such growth. Using linear elasticity as a model problem, we propose a skew-symmetric formulation that has the same energy stability properties for both exact and inexact quadrature-based integration. These stability properties are maintained even when the material properties are variable and discontinuous, and the elements are non-affine (e.g., curved). Additionally, we show how the nonconforming scheme can be made conservative and constant preserving with variable material properties and curved elements. The analytic stability, conservation, and constant preserving results are confirmed through numerical experiments demonstrating the stability as well as the accuracy of the method.

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
Fig. 8
Fig. 9
Fig. 10
Fig. 11

Similar content being viewed by others

Notes

  1. Even in the conforming case, the choice of the quadrature rule for some element types may require a skew-symmetric form even for constant coefficient problems on affine meshes (e.g., spectral element method (SEM) quadrature for the quadrilateral face of pyramids) [5].

  2. In principle one could introduce approximations of the reference elements as well so that \({\hat{e}} \ne {\hat{e}}_{h}\), but since many methods are specified using straight-sided reference elements this is not considered here.

  3. Nonconforming edge values need to be modified in order to ensure that new gaps and overlaps are not introduced along the edges of conforming elements.

  4. In three-dimensions interpolation across nonconforming edges is necessary so that gaps and overlaps do not occur between conforming faces connected to nonconforming edges.

References

  1. Black, K.: A conservative spectral element method for the approximation of compressible fluid flow. Kybernetika 35(1), 133–146 (1999)

    MathSciNet  MATH  Google Scholar 

  2. Bui-Thanh, T., Ghattas, O.: Analysis of an hp-nonconforming discontinuous galerkin spectral element method for wave propagation. SIAM J. Numer. Anal. 50(3), 1801–1826 (2012). https://doi.org/10.1137/110828010

  3. Burstedde, C., Wilcox, L.C., Ghattas, O.: p4est: scalable algorithms for parallel adaptive mesh refinement on forests of octrees. SIAM J. Sci. Comput. 33(3), 1103–1133 (2011). https://doi.org/10.1137/100791634

    Article  MathSciNet  MATH  Google Scholar 

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

  5. Chan, J., Wang, Z., Modave, A., Remacle, J.-F., Warburton, T.: GPU-accelerated discontinuous Galerkin methods on hybrid meshes. J. Comput. Phys. 318, 142–168 (2016). https://doi.org/10.1016/j.jcp.2016.04.003

    Article  MathSciNet  MATH  Google Scholar 

  6. Chan, J., Hewett, R.J., Warburton, T.: Weight-adjusted discontinuous Galerkin methods: curvilinear meshes. SIAM J. Sci. Comput. 39(6), A2395–A2421 (2017). https://doi.org/10.1137/16M1089198

    Article  MathSciNet  MATH  Google Scholar 

  7. Driscoll, T.A., Hale, N., Trefethen, L.N. (eds.): Chebfun Guide. Pafnuty Publications, Oxford (2014)

    Google Scholar 

  8. Fisher, T.C., Carpenter, M.H., Nordström, J., Yamaleev, N.K., Swanson, C.: Discretely conservative finite-difference formulations for nonlinear conservation laws in split form: theory and boundary conditions. J. Comput. Phys. 234, 353375 (2013). https://doi.org/10.1016/j.jcp.2012.09.026

    Article  MathSciNet  MATH  Google Scholar 

  9. Friedrich, L., Del Rey Fernández, D.C., Winters, A.R., Gassner, G.J., Zingg, D.W., Hicken, J.: Conservative and stable degree preserving SBP operators for non-conforming meshes. J. Sci. Comput. (2017). https://doi.org/10.1007/s10915-017-0563-z

  10. Gassner, G.J.: A skew-symmetric discontinuous Galerkin spectral element discretization and its relation to SBP-SAT finite difference methods. SIAM J. Sci. Comput. 35(3), A1233–A1253 (2013). https://doi.org/10.1137/120890144

    Article  MathSciNet  MATH  Google Scholar 

  11. Isaac, T., Burstedde, C., Wilcox, L.C., Ghattas, O.: Recursive algorithms for distributed forests of octrees. SIAM J. Sci. Comput. 37(5), C497–C531 (2015). https://doi.org/10.1137/140970963

    Article  MathSciNet  MATH  Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

  13. Kopriva, D.A.: A conservative staggered-grid Chebyshev multidomain method for compressible flows. II. A semi-structured method. J. Comput. Phys. 128(2), 475–488 (1996). https://doi.org/10.1006/jcph.1996.0225

    Article  MATH  Google Scholar 

  14. Kopriva, D.A.: Implementing Spectral Methods for Partial Differential Equations. Scientific Computation. Springer, Amsterdam (2009). https://doi.org/10.1007/978-90-481-2261-5

    Book  MATH  Google Scholar 

  15. Kopriva, D.A., Gassner, G.J.: An energy stable discontinuous Galerkin spectral element discretization for variable coefficient advection problems. SIAM J. Sci. Comput. 36(4), A2076–A2099 (2014). https://doi.org/10.1137/130928650

    Article  MathSciNet  MATH  Google Scholar 

  16. Kopriva, D.A., Woodruff, S.L., Hussaini, M.Y.: Computation of electromagnetic scattering with a non-conforming discontinuous spectral element method. Int. J. Numer. Methods Eng. 53(1), 105–122 (2002). https://doi.org/10.1002/nme.394

    Article  MATH  Google Scholar 

  17. Kopriva, D., Gassner, G.J.: On the quadrature and weak form choices in collocation type discontinuous Galerkin spectral element methods. J. Sci. Comput. 44(2), 136–155 (2010). https://doi.org/10.1007/s10915-010-9372-3

    Article  MathSciNet  MATH  Google Scholar 

  18. Kozdon, J.E., Dunham, E.M., Nordström, J.: Simulation of dynamic earthquake ruptures in complex geometries using high-order finite difference methods. J. Sci. Comput. 55(1), 92–124 (2013). https://doi.org/10.1007/s10915-012-9624-5

    Article  MathSciNet  MATH  Google Scholar 

  19. Kreiss, H.-O., 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

  20. MATLAB version 8.6.0.267246 (R2015b). Natick, Massachusetts

  21. Nordström, J.: Conservative finite difference formulations, variable coefficients, energy estimates and artificial dissipation. J. Sci. Comput. 29(3), 375–404 (2006). https://doi.org/10.1007/s10915-005-9013-4

    Article  MathSciNet  MATH  Google Scholar 

  22. Slaughter, W.S.: The Linearized Theory of Elasticity. Birkhäuser, Basel (2002). https://doi.org/10.1007/978-1-4612-0093-2

    Book  MATH  Google Scholar 

  23. Thompson, J.F., Warsi, Z.U.A., Wayne Mastin, C.: Numerical Grid Generation: Foundations and Applications. Elsevier North-Holland, Inc., New York (1985)

    MATH  Google Scholar 

  24. Warburton, T.: A low storage curvilinear discontinuous Galerkin time-domain method for electromagnetics. In: 2010 URSI International Symposium on Electromagnetic Theory (EMTS), pp. 996–999 (2010). https://doi.org/10.1109/URSIEMTS.2010.5637392

  25. Wilcox, L.C., Stadler, G., Bui-Thanh, T., Ghattas, O.: Discretely exact derivatives for hyperbolic PDE-constrained optimization problems discretized by the discontinuous Galerkin method. J. Sci. Comput. 63(1), 138–162 (2015). https://doi.org/10.1007/s10915-014-9890-5

    Article  MathSciNet  MATH  Google Scholar 

  26. Wilcox, L.C., Stadler, G., Burstedde, C., Ghattas, O.: A high-order discontinuous Galerkin method for wave propagation through coupled elastic–acoustic media. J. Comput. Phys. 229(24), 9373–9396 (2010). https://doi.org/10.1016/j.jcp.2010.09.008

    Article  MathSciNet  MATH  Google Scholar 

  27. Zang, T.A.: On the rotation and skew-symmetric forms for incompressible flow simulations. Appl. Numer. Math. 7(1), 27–40 (1991). https://doi.org/10.1016/0168-9274(91)90102-6

    Article  MATH  Google Scholar 

Download references

Acknowledgements

Jeremy E. Kozdon was partially supported by National Science Foundation Award EAR-1547596 and Office of Naval Research Award N0001416WX01290. Computational resources were provided in part by National Science Foundation Award OAC-1403203. The authors would like to thank the two anonymous reviewers for their feedback, particularly the recommendation to consider the conservation and constant state preserving properties of the method.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jeremy E. Kozdon.

Additional information

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.

Electronic supplementary material

Appendices

Construction of \(L^{2}\) Projection Operators

Here the construction of the mortar projection operators is discussed, namely the construction of \(\mathcal {P}^{m,e}\) for some \(m \in \mathbb {M} \) and \(e \in \mathbb {E} ^{m}\). Of particular interest is when the mortar space does not support all the functions that the connected element faces support. For example, in the center panel of Fig. 1 if mortar \(m^2\) uses polynomials up to degree N as the approximation space then it cannot support the discontinuous functions defined by functions on the connected faces of \(e^{2}\) and \(e^{3}\).

For an \(m \in \mathbb {M} \) and \(e \in \mathbb {E} ^{m}\), let \({\hat{m}}^{e}\) be the portion of the reference mortar element \({\hat{m}}\) that corresponds to the intersection in physical space of m and \(\partial e\), that is \({\hat{m}}^{e} = {\varvec{\mathrm {r}} }^{m}(m \cap \partial e)\). The projection operator in \(\mathcal {P}^{m,e}\) is then defined so that for a given \(q^{e} \in {\hat{V}}^{e}\) the following holds for all \(\phi ^{m} \in {\hat{U}}^{m}\):

$$\begin{aligned} \int _{{\hat{m}}} \phi ^{m} q^{m,e} = \int _{{\hat{m}}^{e}} \phi ^{m} q^{e}, \end{aligned}$$
(109)

where \(q^{m,e} = \mathcal {P}^{m,e} q^{e}\). In the right-hand side integrand \(q^{e}\) is evaluated on the reference mortar, not the element boundary, and thus \(q^{e} = q^{e}\left( {\varvec{\mathrm {x}} }^{e}\left( {\varvec{\mathrm {r}} }^{e}\left( {\varvec{\mathrm {x}} }^{m}\left( {\varvec{\mathrm {r}} }\right) \right) \right) \right) \) with \({\varvec{\mathrm {r}} }\) being the integration variable. Note the surface Jacobian determinant is not included in the definition of the projection operator given here, and thus the projection operator is defined on the straight-sided reference element.

In the results, exact integration is used to construct \({\varvec{\mathrm {P}} }^{m,e}\), so that there are no variational crimes in the discrete representation of \(\mathcal {P}^{m,e}\) defined from (109) (i.e., Legendre–Gauss–Lobatto (LGL) quadrature is not used). Moreover, since the basis functions are tensor product, the \(L^{2}\) projection operators can also be constructed as tensor product operators, and only one-dimensional projection operators are needed. Thus, since the nonconforming interfaces in the results are two-to-one, only projection operators from the bottom, \(\mathcal {P}_{b}\), and top, \(\mathcal {P}_{t}\), halves of a 1-D element are required. The bottom and top projection operators then satisfy

$$\begin{aligned} \int _{-1}^{1} \phi \; \mathcal {P}_{b} q&= \int _{-1}^{0} \phi \; q,&\int _{-1}^{1} \phi \; \mathcal {P}_{t} q&= \int _{0}^{1} \phi \; q, \end{aligned}$$
(110)

for all polynomials q and \(\phi \) of degree N.

To define the discrete operators \({\varvec{\mathrm {P}} }_{b}\) and \({\varvec{\mathrm {P}} }_{t}\), let \({\varvec{\mathrm {\phi }} }\) be the evaluation of \(\phi \) at the LGL quadrature nodes on the interval \([-1,1]\). Similarly, let \({\varvec{\mathrm {q}} }_{b}\) be the evaluation of q at LGL quadrature nodes once they have been scaled to be between \([-1,0]\) and \({\varvec{\mathrm {I}} }_{b}\) interpolate \({\varvec{\mathrm {\phi }} }\) to these same nodes; similar definitions are used for \({\varvec{\mathrm {q}} }_{t}\) and \({\varvec{\mathrm {I}} }_{t}\) except on the interval [0, 1]. Then if \({\varvec{\mathrm {M}} }\) is the exact mass matrix for integrating two polynomials of degree N evaluated at the LGL quadrature nodes in \([-1,1]\), then (110) is discretely

$$\begin{aligned} {\varvec{\mathrm {\phi }} }^{T}{\varvec{\mathrm {M}} }{\varvec{\mathrm {P}} }_{b}{\varvec{\mathrm {q}} }_{b}&= \frac{1}{2}{\varvec{\mathrm {\phi }} }^{T}{\varvec{\mathrm {I}} }_{b}^{T}{\varvec{\mathrm {M}} }{\varvec{\mathrm {q}} }_{b},&{\varvec{\mathrm {\phi }} }^{T}{\varvec{\mathrm {M}} }{\varvec{\mathrm {P}} }_{t}{\varvec{\mathrm {q}} }_{t}&= \frac{1}{2}{\varvec{\mathrm {\phi }} }^{T}{\varvec{\mathrm {I}} }_{t}^{T}{\varvec{\mathrm {M}} }{\varvec{\mathrm {q}} }_{t}, \end{aligned}$$
(111)

which holds for all \({\varvec{\mathrm {\phi }} }\), \({\varvec{\mathrm {q}} }_{t}\), and \({\varvec{\mathrm {q}} }_{b}\). Thus,

$$\begin{aligned} {\varvec{\mathrm {P}} }_{b}&= \frac{1}{2} {\varvec{\mathrm {M}} }^{-1} {\varvec{\mathrm {I}} }_{b}^{T} {\varvec{\mathrm {M}} },&{\varvec{\mathrm {P}} }_{t}&= \frac{1}{2} {\varvec{\mathrm {M}} }^{-1} {\varvec{\mathrm {I}} }_{t}^{T} {\varvec{\mathrm {M}} }. \end{aligned}$$
(112)

For clarity, the derivations above are given for two-to-one nonconforming interfaces. The method generalizes to the many-to-one nonconforming interfaces as well and the derivation of the operators is similar to the two-to-one case.

Construction of Modal Solution on the Heterogeneous Spherical Shell

To construct a modal solution in the radial heterogeneous spherical shell, the equations of isotropic elasticity are considered in spherical coordinates. Since only the radial displacement is non-zero and the displacement is of the form \(u_{r} = \cos (t)\,\phi (r)\), these reduce to solving the following boundary value problem:

$$\begin{aligned} 0&= \rho \,\phi + \frac{d \sigma _{rr}}{d r} + \frac{1}{r} \left( 2\sigma _{rr}-\sigma _{\theta \theta }-\sigma _{\varphi \varphi }\right) , \end{aligned}$$
(113)
$$\begin{aligned} \sigma _{rr}&= \left( \lambda + 2\mu \right) \frac{d \phi }{d r} + \frac{2}{r}\lambda \, \phi , \end{aligned}$$
(114)
$$\begin{aligned} \sigma _{\theta \theta }&= \sigma _{\varphi \varphi } = \lambda \frac{d \phi }{d r} + \frac{2}{r}\left( \lambda +\mu \right) \phi , \end{aligned}$$
(115)

with \(\sigma _{rr} = 0\) at \(r = R_{1}\) and \(r = R_{2}\). We note that the solution to this problem is not unique and for the test problem we just need to find a particular solution to the equation.

To solve (113) the MATLAB Chebfun package [7] was used. To find a nontrivial solution, the initial value problem with values for \(\phi (0) = 0\) and \(\frac{d \phi }{d r} (0) = -\frac{1}{3}\) is solved and then the domain of the solution is chosen to be between \(R_{1}\) and \(R_{2}\), the first two roots of the resulting \(\sigma _{rr}\) field. The Chebfun script along with the data necessary for constructing the high-order polynomial interpolant are included as an electronic supplement to the paper as well at the GitHub repository https://github.com/bfam/spherical_shell.

Discrete Divergence Theorem for Tensor Product Hexahedral Elements with LGL Quadrature

In this appendix stiffness matrices that satisfy (67) are constructed for the tensor product hexahedral elements using Legendre–Gauss–Lobatto (LGL) quadrature. The key step in ensuring this for curvilinear meshes is the construction of the metric terms. Here, we assume that there is a single polynomial order for the entire mesh N, so that \({\hat{V}}^{e} = Q^{N,3}\) for all \(e\in \mathbb {E} \) and only the three-dimensional case is considered. The mortar space is taken to be tensor product polynomial with \({\hat{U}}^{m} = Q^{N,2}\) for all \(m \in \mathbb {M}\) and the quadrature rule on the mortar is the tensor product LGL quadrature.

Across nonconforming mesh interfaces (and edges) the larger face (or edge) is referred to as the full face (or edge) and the smaller faces (or edges) as the hanging faces (or edges). The mortar element is always assumed to conform to the face on the minus side of the mortar. For mortar elements between conforming faces the minus side is arbitrary. When full-side mortars are used the minus sides of nonconforming mortar elements are the full faces and when split-side mortars are used minus sides are the hanging faces. Since mortar elements conform to one of the volume faces, the metric terms on the mortar (surface Jacobian determinant and unit normal vector) will match the element face to which a mortar conforms.

The four key step we use to satisfy (67) are:

  • the mesh is made discretely watertight;

  • the metric terms are computed using a curl invariant form [12] which avoids the need for a discrete product rule;

  • aliasing errors along nonconforming faces and edges are incurred in a similar manner on all connected elements; and

  • metric products are decreased in one polynomial order to ensure that certain face integrals are exact under LGL quadrature.

1.1 Properties of LGL Quadrature

Before discussing the construction of the metric terms and stiffness matrices, we review some properties of LGL quadrature. For \(q,p,J \in Q^{N,3}\) the LGL approximation of the inner product is

$$\begin{aligned} \int _{-1}^{1}\int _{-1}^{1}\int _{-1}^{1} Jpq&\approx \sum _{i=0}^{N}\sum _{j=0}^{N}\sum _{k=0}^{N} \omega _{i}\omega _{j}\omega _{k} J\left( \xi _{i}, \xi _{j}, \xi _{k}\right) p\left( \xi _{i}, \xi _{j}, \xi _{k}\right) q\left( \xi _{i}, \xi _{j}, \xi _{k}\right) \nonumber \\&= {\varvec{\mathrm {p}} }^{T} {\varvec{\mathrm {J}} } \left( \hat{{\varvec{\mathrm {{W}}} }}\otimes \hat{{\varvec{\mathrm {{W}}} }}\otimes \hat{{\varvec{\mathrm {{W}}} }}\right) {\varvec{\mathrm {q}} }\nonumber \\&= {\varvec{\mathrm {p}} }^{T} {\varvec{\mathrm {J}} } {\varvec{\mathrm {M}} } {\varvec{\mathrm {q}} }. \end{aligned}$$
(116)

Here, \(\omega _{i}\) are the quadrature weights and \(\xi _{k}\) the quadrature nodes which have the property that \(\xi _{0} = -1\) and \(\xi _{N} = 1\). The vectors \({\varvec{\mathrm {p}} }\) and \({\varvec{\mathrm {q}} }\) are the stacking of the p and q at the nodal locations; below we assume that the stacking has been done so that \(p\left( \xi _{i}, \xi _{j}, \xi _{k}\right) \) is element \(i + 1 + jN + kN^2\) of \({\varvec{\mathrm {p}} }\) (i.e., the first dimension is the fastest). Similarly, the diagonal matrix \({\varvec{\mathrm {J}} }\) approximates J at the quadrature nodes (ordering is the same as the vectors \({\varvec{\mathrm {p}} }\) and \({\varvec{\mathrm {q}} }\)). The quadrature weights have been assembled into the diagonal matrix \(\hat{{\varvec{\mathrm {{W}}} }}\) with element ii being \(\omega _{i-1}\) and \(\otimes \) being the matrix Kronecker product. We note that the LGL integral approximation (116) will only be exact if the product \(Jpq\in Q^{2N-1,3}\).

Let \({\varvec{\mathrm {D}} }_{j}\) be the exact derivative matrix in the \(r_{j}\) direction: if \(q \in Q^{N,3}\) and \(p = \partial q/\partial r_{j}\) then

$$\begin{aligned} {\varvec{\mathrm {D}} }_{j} {\varvec{\mathrm {q}} } = {\varvec{\mathrm {p}} }. \end{aligned}$$
(117)

If \(\hat{{\varvec{\mathrm {{D}}} }}\) is the one-dimensional LGL derivative matrix then

$$\begin{aligned} {\varvec{\mathrm {D}} }_{1}&= {\varvec{\mathrm {I}} } \otimes {\varvec{\mathrm {I}} } \otimes \hat{{\varvec{\mathrm {{D}}} }},&{\varvec{\mathrm {D}} }_{2}&= {\varvec{\mathrm {I}} } \otimes \hat{{\varvec{\mathrm {{D}}} }} \otimes {\varvec{\mathrm {I}} },&{\varvec{\mathrm {D}} }_{3}&= \hat{{\varvec{\mathrm {{D}}} }} \otimes {\varvec{\mathrm {I}} } \otimes {\varvec{\mathrm {I}} }, \end{aligned}$$
(118)

with \({\varvec{\mathrm {I}} }\) being the \((N+1)\times (N+1)\) identity matrix. Since differentiation decreases the polynomial order by one, the LGL differentiation and quadrature matrices satisfy the one-dimensional summation-by-parts property [17]:

$$\begin{aligned} \hat{{\varvec{\mathrm {{W}}} }} \hat{{\varvec{\mathrm {{D}}} }} + \hat{{\varvec{\mathrm {{D}}} }}^{T} \hat{{\varvec{\mathrm {{W}}} }}&= {\varvec{\mathrm {e}} }_{N}{\varvec{\mathrm {e}} }_{N}^{T} - {\varvec{\mathrm {e}} }_{0}{\varvec{\mathrm {e}} }_{0}^{T},&{\varvec{\mathrm {e}} }_{0}&= \begin{bmatrix} 1\\ 0\\ \vdots \\ 0 \end{bmatrix},&{\varvec{\mathrm {e}} }_{N}&= \begin{bmatrix} 0\\ \vdots \\ 0\\ 1 \end{bmatrix}. \end{aligned}$$
(119)

For the three-dimensional operators the following approximation of the divergence theorem holds on the reference element:

$$\begin{aligned} {\varvec{\mathrm {p}} }^{T} {\varvec{\mathrm {M}} } {\varvec{\mathrm {D}} }_{1} {\varvec{\mathrm {q}} } + {\varvec{\mathrm {p}} }^{T} {\varvec{\mathrm {D}} }_{1}^{T} {\varvec{\mathrm {M}} } {\varvec{\mathrm {q}} }&= {\varvec{\mathrm {p}} }^{T} \left( \hat{{\varvec{\mathrm {{W}}} }}\otimes \hat{{\varvec{\mathrm {{W}}} }}\otimes \left( {\varvec{\mathrm {e}} }_{N}{\varvec{\mathrm {e}} }_{N}^{T} - {\varvec{\mathrm {e}} }_{0}{\varvec{\mathrm {e}} }_{0}^{T}\right) \right) {\varvec{\mathrm {q}} }, \end{aligned}$$
(120)
$$\begin{aligned} {\varvec{\mathrm {p}} }^{T} {\varvec{\mathrm {M}} } {\varvec{\mathrm {D}} }_{2} {\varvec{\mathrm {q}} } + {\varvec{\mathrm {p}} }^{T} {\varvec{\mathrm {D}} }_{2}^{T} {\varvec{\mathrm {M}} } {\varvec{\mathrm {q}} }&= {\varvec{\mathrm {p}} }^{T} \left( \hat{{\varvec{\mathrm {{W}}} }}\otimes \left( {\varvec{\mathrm {e}} }_{N}{\varvec{\mathrm {e}} }_{N}^{T} - {\varvec{\mathrm {e}} }_{0}{\varvec{\mathrm {e}} }_{0}^{T}\right) \otimes \hat{{\varvec{\mathrm {{W}}} }}\right) {\varvec{\mathrm {q}} }, \end{aligned}$$
(121)
$$\begin{aligned} {\varvec{\mathrm {p}} }^{T} {\varvec{\mathrm {M}} } {\varvec{\mathrm {D}} }_{3} {\varvec{\mathrm {q}} } + {\varvec{\mathrm {p}} }^{T} {\varvec{\mathrm {D}} }_{3}^{T} {\varvec{\mathrm {M}} } {\varvec{\mathrm {q}} }&= {\varvec{\mathrm {p}} }^{T} \left( \left( {\varvec{\mathrm {e}} }_{N}{\varvec{\mathrm {e}} }_{N}^{T} - {\varvec{\mathrm {e}} }_{0}{\varvec{\mathrm {e}} }_{0}^{T}\right) \otimes \hat{{\varvec{\mathrm {{W}}} }}\otimes \hat{{\varvec{\mathrm {{W}}} }}\right) {\varvec{\mathrm {q}} }. \end{aligned}$$
(122)

The right-hand sides of the above equations are approximations of surface integrals along the six faces of the reference element. In order to make this explicit we number the faces of the element as:

$$\begin{aligned} \hbox {face 1 is the face with }r_{1}= & {} -1, \quad \hbox {face 2 is the face with }r_{1} = +1,\\ \hbox {face 3 is the face with }r_{2}= & {} -1, \quad \hbox {face 4 is the face with }r_{2} = +1,\\ \hbox {face 5 is the face with }r_{3}= & {} -1, \quad \hbox {face 6 is the face with }r_{3} = +1, \end{aligned}$$

and define the value of the volume vector on the faces as

$$\begin{aligned} {\varvec{\mathrm {p}} }^{e,1}&= \left( \hat{{\varvec{\mathrm {{I}}} }}\otimes \hat{{\varvec{\mathrm {{I}}} }}\otimes {\varvec{\mathrm {e}} }_{0}^{T}\right) {\varvec{\mathrm {p}} }^{e} = {\varvec{\mathrm {L}} }^{1}{\varvec{\mathrm {p}} }^{e},&{\varvec{\mathrm {p}} }^{e,2}&= \left( \hat{{\varvec{\mathrm {{I}}} }}\otimes \hat{{\varvec{\mathrm {{I}}} }}\otimes {\varvec{\mathrm {e}} }_{N}^{T}\right) {\varvec{\mathrm {p}} }^{e} = {\varvec{\mathrm {L}} }^{2}{\varvec{\mathrm {p}} }^{e}, \end{aligned}$$
(123)
$$\begin{aligned} {\varvec{\mathrm {p}} }^{e,3}&= \left( \hat{{\varvec{\mathrm {{I}}} }}\otimes {\varvec{\mathrm {e}} }_{0}^{T}\otimes \hat{{\varvec{\mathrm {{I}}} }}\right) {\varvec{\mathrm {p}} }^{e} = {\varvec{\mathrm {L}} }^{3}{\varvec{\mathrm {p}} }^{e},&{\varvec{\mathrm {p}} }^{e,4}&= \left( \hat{{\varvec{\mathrm {{I}}} }}\otimes {\varvec{\mathrm {e}} }_{N}^{T}\otimes \hat{{\varvec{\mathrm {{I}}} }}\right) {\varvec{\mathrm {p}} }^{e} = {\varvec{\mathrm {L}} }^{4}{\varvec{\mathrm {p}} }^{e},\end{aligned}$$
(124)
$$\begin{aligned} {\varvec{\mathrm {p}} }^{e,5}&= \left( {\varvec{\mathrm {e}} }_{0}^{T}\otimes \hat{{\varvec{\mathrm {{I}}} }}\otimes \hat{{\varvec{\mathrm {{I}}} }}\right) {\varvec{\mathrm {p}} }^{e} = {\varvec{\mathrm {L}} }^{5}{\varvec{\mathrm {p}} }^{e},&{\varvec{\mathrm {p}} }^{e,6}&= \left( {\varvec{\mathrm {e}} }_{N}^{T}\otimes \hat{{\varvec{\mathrm {{I}}} }}\otimes \hat{{\varvec{\mathrm {{I}}} }}\right) {\varvec{\mathrm {p}} }^{e} = {\varvec{\mathrm {L}} }^{6}{\varvec{\mathrm {p}} }^{e}. \end{aligned}$$
(125)

With this notation (120)–(122) can be rewritten as

$$\begin{aligned} {\left( {\varvec{\mathrm {p}} }^{e} \right) }^{T} {\varvec{\mathrm {M}} } {\varvec{\mathrm {D}} }_{1} {\varvec{\mathrm {q}} }^{e} + {\left( {\varvec{\mathrm {p}} }^{e} \right) }^{T} {\varvec{\mathrm {D}} }_{1}^{T} {\varvec{\mathrm {M}} } {\varvec{\mathrm {q}} }^{e}&= {\left( {\varvec{\mathrm {p}} }^{e,2} \right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,2} - {\left( {\varvec{\mathrm {p}} }^{e,1} \right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,1},\end{aligned}$$
(126)
$$\begin{aligned} {\left( {\varvec{\mathrm {p}} }^{e} \right) }^{T} {\varvec{\mathrm {M}} } {\varvec{\mathrm {D}} }_{2} {\varvec{\mathrm {q}} }^{e} + {\left( {\varvec{\mathrm {p}} }^{e} \right) }^{T} {\varvec{\mathrm {D}} }_{2}^{T} {\varvec{\mathrm {M}} } {\varvec{\mathrm {q}} }^{e}&= {\left( {\varvec{\mathrm {p}} }^{e,4} \right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,4} - {\left( {\varvec{\mathrm {p}} }^{e,3} \right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,3},\end{aligned}$$
(127)
$$\begin{aligned} {\left( {\varvec{\mathrm {p}} }^{e} \right) }^{T} {\varvec{\mathrm {M}} } {\varvec{\mathrm {D}} }_{3} {\varvec{\mathrm {q}} }^{e} + {\left( {\varvec{\mathrm {p}} }^{e} \right) }^{T} {\varvec{\mathrm {D}} }_{3}^{T} {\varvec{\mathrm {M}} } {\varvec{\mathrm {q}} }^{e}&= {\left( {\varvec{\mathrm {p}} }^{e,6} \right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,6} - {\left( {\varvec{\mathrm {p}} }^{e,5} \right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,5}, \end{aligned}$$
(128)

with \(\bar{{\varvec{\mathrm {W}} }} = \hat{{\varvec{\mathrm {{W}}} }} \otimes \hat{{\varvec{\mathrm {{W}}} }}\) being the surface quadrature rule.

1.2 Stiffness Matrices and Element Based Relationships

We now define the stiffness matrices for an \(e\in \mathbb {E} \) as

$$\begin{aligned} {\varvec{\mathrm {S}} }_{j}^{e}&= {\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{k,j}^{e} {\varvec{\mathrm {M}} } {\varvec{\mathrm {D}} }_{k}, \end{aligned}$$
(129)

where the diagonal matrices \({\varvec{\mathrm {J}} }^{e}\) and \({\varvec{\mathrm {r}} }^{e}_{k,j}\) are approximations of the Jacobian determinant and the metric derivative \(\partial r_{k}/\partial x_{j}\), respectively, at the nodal degrees of freedom. As discussed below, the product \(J\frac{\partial r_{k}}{\partial x_{j}} \) is computed from the of the metric derivatives \(\partial {x_{j}}/\partial {r_{k}}\). From (120)–(122) it follows that

$$\begin{aligned} {\varvec{\mathrm {1}} }^{T} {\varvec{\mathrm {S}} }_{j}^{e} {\varvec{\mathrm {q}} }^{e} + {\varvec{\mathrm {1}} }^{T}{\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{k,j}^{e} {\varvec{\mathrm {D}} }_{k}^{T} {\varvec{\mathrm {M}} } {\varvec{\mathrm {q}} }^{e} =\;&{\varvec{\mathrm {1}} }^{T} {\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{k,j}^{e} {\varvec{\mathrm {M}} } {\varvec{\mathrm {D}} }_{k}{\varvec{\mathrm {q}} }^{e} + {\varvec{\mathrm {1}} }^{T}{\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{k,j}^{e} {\varvec{\mathrm {D}} }_{k}^{T} {\varvec{\mathrm {M}} } {\varvec{\mathrm {q}} }^{e}\nonumber \\ =\;&-{\varvec{\mathrm {1}} }^{T}{\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{1,j}^{e} {\left( {\varvec{\mathrm {L}} }^{1}\right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,1}+{\varvec{\mathrm {1}} }^{T}{\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{1,j}^{e} {\left( {\varvec{\mathrm {L}} }^{2}\right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,2}\nonumber \\&-{\varvec{\mathrm {1}} }^{T}{\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{2,j}^{e} {\left( {\varvec{\mathrm {L}} }^{3}\right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,3}+{\varvec{\mathrm {1}} }^{T}{\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{2,j}^{e} {\left( {\varvec{\mathrm {L}} }^{4}\right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,4}\nonumber \\&-{\varvec{\mathrm {1}} }^{T}{\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{3,j}^{e} {\left( {\varvec{\mathrm {L}} }^{5}\right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,5}+{\varvec{\mathrm {1}} }^{T}{\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{3,j}^{e} {\left( {\varvec{\mathrm {L}} }^{6}\right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,6}. \end{aligned}$$
(130)

If we define the surface Jacobian determinant and outward normal on the faces as

$$\begin{aligned} {\varvec{\mathrm {S}} }_{J}^{e,1} {\varvec{\mathrm {n}} }^{e,1}_{j}&= -{\varvec{\mathrm {L}} }^{1} {\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{1,j}^{e}{\varvec{\mathrm {1}} },&{\varvec{\mathrm {S}} }_{J}^{e,2} {\varvec{\mathrm {n}} }^{e,2}_{j}&= {\varvec{\mathrm {L}} }^{2} {\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{1,j}^{e}{\varvec{\mathrm {1}} }, \end{aligned}$$
(131)
$$\begin{aligned} {\varvec{\mathrm {S}} }_{J}^{e,3} {\varvec{\mathrm {n}} }^{e,3}_{j}&= -{\varvec{\mathrm {L}} }^{3} {\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{2,j}^{e}{\varvec{\mathrm {1}} },&{\varvec{\mathrm {S}} }_{J}^{e,4} {\varvec{\mathrm {n}} }^{e,4}_{j}&= {\varvec{\mathrm {L}} }^{4} {\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{2,j}^{e}{\varvec{\mathrm {1}} }, \end{aligned}$$
(132)
$$\begin{aligned} {\varvec{\mathrm {S}} }_{J}^{e,5} {\varvec{\mathrm {n}} }^{e,5}_{j}&= -{\varvec{\mathrm {L}} }^{5} {\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{3,j}^{e}{\varvec{\mathrm {1}} },&{\varvec{\mathrm {S}} }_{J}^{e,6} {\varvec{\mathrm {n}} }^{e,6}_{j}&= {\varvec{\mathrm {L}} }^{6} {\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{3,j}^{e}{\varvec{\mathrm {1}} }, \end{aligned}$$
(133)

then relation (130) simplifies to

$$\begin{aligned} {\varvec{\mathrm {1}} }^{T} {\varvec{\mathrm {S}} }_{j}^{e} {\varvec{\mathrm {q}} }^{e} + {\varvec{\mathrm {1}} }^{T}{\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{k,j}^{e} {\varvec{\mathrm {D}} }_{k}^{T} {\varvec{\mathrm {M}} } {\varvec{\mathrm {q}} }^{e} =\;&\sum _{f=1}^{6} {\left( {\varvec{\mathrm {S}} }_{J}^{e,f} {\varvec{\mathrm {n}} }^{e,f}\right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,f}. \end{aligned}$$
(134)

The vector \({\varvec{\mathrm {n}} }^{e,f}_{j}\) is the outward unit normal to the element face at the quadrature nodes and the diagonal matrix of surface Jacobian determinants \({\varvec{\mathrm {S}} }_{J}^{e,f}\) is the normalization so that \({\varvec{\mathrm {n}} }^{e,f}_{j} \circ {\varvec{\mathrm {n}} }^{e,f}_{j} = {\varvec{\mathrm {1}} }\) with \(\circ \) being the componentwise (Hadamard) product of two vectors.

With exact math, e.g., no aliasing errors, the following metric identity [23]

$$\begin{aligned} J^{e}\frac{\partial r^{e}_{k}}{\partial x_{j}}&= \frac{\partial x^{e}_{j+1}}{\partial r_{k+1}} \frac{\partial x^{e}_{j-1}}{\partial r_{k-1}} - \frac{\partial x^{e}_{j+1}}{\partial r_{k-1}} \frac{\partial x^{e}_{j-1}}{\partial r_{k+1}}&\hbox {(no summation over }j\hbox { and }k\hbox {)}, \end{aligned}$$
(135)

with plus and minus for subscripts j and k defined cyclically on the set \(\{1,2,3\}\), can be used to show that

$$\begin{aligned} \frac{\partial }{\partial r_{k}} \left( J^{e}\frac{\partial r^{e}_{k}}{\partial x_{j}} \right) = 0. \end{aligned}$$
(136)

Hence, if we can show that discretely that

$$\begin{aligned} {\varvec{\mathrm {D}} }_{k}\left( {\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{k,j}^{e}{\varvec{\mathrm {1}} }\right) = {\varvec{\mathrm {0}} }, \end{aligned}$$
(137)

then we will have shown that discretely the divergence theorem holds at the element level; this is not quite (67) since it does not involve the mortar elements. Unfortunately, using the metric identities in the form of (135) to show (136) requires the use of the product rule, and in general this does not hold discretely for all \(p^{e},q^{e}\in Q^{N,3}\):

$$\begin{aligned} {\varvec{\mathrm {D}} }_{k}\left( {\varvec{\mathrm {p}} }^{e}\circ {\varvec{\mathrm {q}} }^{e}\right) \ne \left( {\varvec{\mathrm {D}} }_{k}{\varvec{\mathrm {p}} }^{e}\right) \circ {\varvec{\mathrm {q}} }^{e} + {\varvec{\mathrm {p}} }^{e} \circ \left( {\varvec{\mathrm {D}} }_{k}{\varvec{\mathrm {q}} }^{e}\right) . \end{aligned}$$
(138)

Fortunately, if instead of using (135) the equivalent curl invariant form [12] is used,

$$\begin{aligned} J^{e}\frac{\partial r^{e}_{k}}{\partial x_{j}} =\;&\frac{1}{2} \frac{\partial }{\partial r_{k+1}} \left( x^{e}_{j+1} \frac{\partial x^{e}_{j-1}}{\partial r_{k-1}} - \frac{\partial x^{e}_{j+1}}{\partial r_{k-1}} x^{e}_{j-1} \right) \nonumber \\&- \frac{1}{2} \frac{\partial }{\partial r_{k-1}} \left( x^{e}_{j+1} \frac{\partial x^{e}_{j-1}}{\partial r_{k+1}} - \frac{\partial x^{e}_{j+1}}{\partial r_{k+1}} x^{e}_{j-1} \right) ,&\hbox {(no summation over }j\hbox { and }k\hbox {)}, \end{aligned}$$
(139)

it can be shown that (136) holds without invoking the product rule. To show that this form is beneficial discretely, we define

$$\begin{aligned} {\bar{\zeta }}^{e}_{j,k}&= x^{e}_{j+1} \frac{\partial x^{e}_{j-1}}{\partial r_{k}} - \frac{\partial x^{e}_{j+1}}{\partial r_{k}} x^{e}_{j-1}&\hbox {(no summation over }j), \end{aligned}$$
(140)

so that the curl invariant metric identities (139) can be rewritten as

$$\begin{aligned} J^{e}\frac{\partial r^{e}_{k}}{\partial x_{j}} =\;&\frac{1}{2} \left( \frac{\partial {\bar{\zeta }}^{e}_{j,k-1}}{\partial r_{k+1}} - \frac{\partial {\bar{\zeta }}^{e}_{j,k+1}}{\partial r_{k-1}} \right)&\hbox {(no summation over } k); \end{aligned}$$
(141)

here we have added the overbar accent so that once the final discrete mesh is defined it can be unaccented since in general \({\bar{\zeta }}^{e}_{j,k} \notin Q^{N,3}\). Let \(\zeta ^{e}_{j,k}\in Q^{N,d}\) be some approximation of \({\bar{\zeta }}^{e}_{j,k}\) at the nodal degrees of freedom (the details of how we approximate these terms will be given below). The discrete approximation of \(J^{e}\frac{\partial r^{e}_{k}}{\partial x_{j}} \) can be defined directly from (141) as

$$\begin{aligned} {\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }^{e}_{k,j}&= \text{ diag }\left( \frac{1}{2}\left( {\varvec{\mathrm {D}} }_{k+1}{\varvec{\mathrm {\zeta }} }^{e}_{j,k-1} - {\varvec{\mathrm {D}} }_{k-1}{\varvec{\mathrm {\zeta }} }^{e}_{j,k+1}\right) \right) ,&\hbox {(no summation over }k), \end{aligned}$$
(142)

where the operator \(\text{ diag }\left( \cdot \right) \) makes a diagonal matrix from a vector (with component n of the vector being the nn element of the matrix). Direct computation of (137) then gives

$$\begin{aligned} {\varvec{\mathrm {D}} }_{k}\left( {\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }_{k,j}^{e}{\varvec{\mathrm {1}} }\right)&= \sum _{k=1}^{3} \frac{1}{2}\left( {\varvec{\mathrm {D}} }_{k}{\varvec{\mathrm {D}} }_{k+1}{\varvec{\mathrm {\zeta }} }^{e}_{j,k-1} - {\varvec{\mathrm {D}} }_{k}{\varvec{\mathrm {D}} }_{k-1}{\varvec{\mathrm {\zeta }} }^{e}_{j,k+1}\right) \nonumber \\&= \sum _{k=1}^{3} \frac{1}{2}\left( {\varvec{\mathrm {D}} }_{k}{\varvec{\mathrm {D}} }_{k+1}{\varvec{\mathrm {\zeta }} }^{e}_{j,k-1} - {\varvec{\mathrm {D}} }_{k+1}{\varvec{\mathrm {D}} }_{k}{\varvec{\mathrm {\zeta }} }^{e}_{j,k-1}\right) \nonumber \\&= \sum _{k=1}^{3} \frac{1}{2}\left( {\varvec{\mathrm {D}} }_{k}{\varvec{\mathrm {D}} }_{k+1}{\varvec{\mathrm {\zeta }} }^{e}_{j,k-1} - {\varvec{\mathrm {D}} }_{k}{\varvec{\mathrm {D}} }_{k+1}{\varvec{\mathrm {\zeta }} }^{e}_{j,k-1}\right) \nonumber \\&={\varvec{\mathrm {0}} }, \end{aligned}$$
(143)

where the second equality is a shifting of the summation index in the second term by \(+1\) (which is permissible since all values of k are covered by the sum) and the third equality follows from the commutative property of the derivative operators: \({\varvec{\mathrm {D}} }_{k}{\varvec{\mathrm {D}} }_{j} = {\varvec{\mathrm {D}} }_{j}{\varvec{\mathrm {D}} }_{k}\). Thus, (130) becomes

$$\begin{aligned} {\varvec{\mathrm {1}} }^{T} {\varvec{\mathrm {S}} }_{j}^{e} {\varvec{\mathrm {q}} }^{e}&= \sum _{f=1}^{6} {\left( {\varvec{\mathrm {S}} }_{J}^{e,f} {\varvec{\mathrm {n}} }^{e,f}\right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,f}, \end{aligned}$$
(144)

and the divergence theorem holds at the element level once we have specified how \(\zeta ^{e}_{j,k}\) is approximated from \({\bar{\zeta }}^{e}_{j,k}\). Importantly, the relationship (144) holds for any approximation of \(\zeta ^{e}_{j,k}\) and this fact will be exploited to ensure that the discrete divergence relation (67) holds. Namely if we can show that the metric terms can be constructed so that

$$\begin{aligned} {\left( {\varvec{\mathrm {S}} }_{J}^{e,f} {\varvec{\mathrm {n}} }^{e,f}_{j}\right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,f} = \sum _{m\in \mathbb {M} ^{e,f}} {\left( {\varvec{\mathrm {n}} }_{j}^{m[e]}\right) }^{T} {\varvec{\mathrm {W}} }^{m} {\varvec{\mathrm {P}} }^{m,e} {\varvec{\mathrm {q}} }^{e}, \end{aligned}$$
(145)

then we will have shown that (67) holds; here the set \(\mathbb {M} ^{e,f} \subset \mathbb {M} ^{e}\) is the set of mortar elements connected to face f of element e. Recall that \({\varvec{\mathrm {W}} }^{m}\) includes the surface Jacobian determinants, and since the mortar quadrature rule is the tensor product LGL quadrature

$$\begin{aligned} {\varvec{\mathrm {W}} }^{m} = {\varvec{\mathrm {S}} }_{J}^{m} \bar{{\varvec{\mathrm {W}} }}, \end{aligned}$$
(146)

where \({\varvec{\mathrm {S}} }_{J}^{m}\) is a diagonal matrix of mortar-based surface Jacobian determinants. For an \(m\in \mathbb {M} ^{e,f}\) we define the projection operator \({\varvec{\mathrm {P}} }^{m,e}\) to first interpolate to face f followed by projection from face f to m, which allows us to write \({\varvec{\mathrm {P}} }^{m,e} = {\varvec{\mathrm {P}} }^{m,e[f]}{\varvec{\mathrm {L}} }^{f}\) where \({\varvec{\mathrm {P}} }^{m,e[f]}\) is the projection from face f of element e to mortar m. With these definitions, relation (145) becomes

$$\begin{aligned} {\left( {\varvec{\mathrm {S}} }_{J}^{e,f} {\varvec{\mathrm {n}} }_{j}^{e,f}\right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,f} = \sum _{m\in \mathbb {M} ^{e,f}} {\left( {\varvec{\mathrm {S}} }_{J}^{m} {\varvec{\mathrm {n}} }_{j}^{m[e]}\right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {P}} }^{m,e[f]} {\varvec{\mathrm {q}} }^{e,f}, \end{aligned}$$
(147)

which is a discrete statement on the accuracy of the projection from e to m when geometry is included. To ensure that (147) is satisfied, we require that \(S_{J}^{m}n_{j}^{m[e]}, S_{J}^{e,f}n_{j}^{e,f}\in Q^{N-1,2}\) and that for connected faces and mortars these are computed in a consistent manner. With \(S_{J}^{m}n_{j}^{m[e]}, S_{J}^{e,f}n_{j}^{e,f}\in Q^{N-1,2}\) the quadrature approximations in (147) are exact since the products in the integral are in \(Q^{2N-1,2}\) which are integrated exactly by the tensor product LGL quadrature rule.

Here it is worth noting that one cannot simply interpolate the surface Jacobian determinant and normal vectors from the full faces to the hanging faces. Though this would result in (147), it would cause the volume and surface metrics to be inconsistent so that (130) and (134) are no longer equivalent. Thus instead of modifying \(S_{J}^{e,f} n_{j}^{e,f}\) directly. We modify \(\zeta ^{e}_{j,k}\) so that the surface, volume, and mortar metrics are consistently calculated.

1.3 Approximation of Metric Terms

Before proceeding to the discussion of the approximation of \(\zeta ^{e}_{j,k}\) it is necessary to define how the geometry transform is handled. Let \({\tilde{x}}_{j}^{e} \in Q^{N,3}\) be the evaluation of the coordinate mapping \(\bar{x}^{e}_{j}\); the tilde and bar accents are added here so that the final coordinate points can be unaccented. As noted in the text, across nonconforming faces \({\tilde{x}}_{j}^{e}\) may not be continuous, thus we let \(x_{j}^{e} \in Q^{N,3}\) be a discretely watertight version of the geometry. In our code, we make the mesh watertight by interpolating \({\tilde{x}}^{e}_{j}\) across nonconforming faces and edges from the full faces and edges to hanging faces and edgesFootnote 4; degrees of freedom interior to the element are not modified in the procedure used to make the mesh watertight. It is from \(x_{j}^{e}\) that we construct the metric terms.

By (131)–(133) it follows that:

$$\begin{aligned}&\zeta ^{e}_{j,1}\hbox { affects }S_{J}^{e,f}n_{j}^{e,f}\hbox { for faces }f=3,4,5,6,\\&\zeta ^{e}_{j,2}\hbox { affects }S_{J}^{e,f}n_{j}^{e,f}\hbox { for faces }f=1,2,5,6,\\&\zeta ^{e}_{j,3}\hbox { affects }S_{J}^{e,f}n_{j}^{e,f}\hbox { for faces } f=1,2,3,4, \end{aligned}$$

which, along with (142), implies that \(S_{J}^{e,f}n_{j}^{e,f}\in Q^{N-1,2}\) if

$$\begin{aligned} \zeta ^{e}_{j,1}&\in Q^{N-1} \otimes Q^{N} \otimes Q^{N} \hbox { along faces}\ f=3,4,5,6, \end{aligned}$$
(148)
$$\begin{aligned} \zeta ^{e}_{j,2}&\in Q^{N} \otimes Q^{N-1} \otimes Q^{N} \hbox { along faces}\ f=1,2,5,6, \end{aligned}$$
(149)
$$\begin{aligned} \zeta ^{e}_{j,3}&\in Q^{N} \otimes Q^{N} \otimes Q^{N-1} \hbox { along faces}\ f=1,2,3,4; \end{aligned}$$
(150)

namely \(\zeta ^{e}_{j,k}\) is one polynomial order lower when interpolated to faces that it affects. We initially calculate in each element e

$$\begin{aligned} \tilde{{\varvec{\mathrm {{\zeta }}} }}^{e}_{j,k} = {\varvec{\mathrm {P}} }^{N \rightarrow N-1}_{k} \left( {\varvec{\mathrm {x}} }^{e}_{j+1} \circ \left( {\varvec{\mathrm {D}} }_{k}{\varvec{\mathrm {x}} }^{e}_{j-1}\right) - \left( {\varvec{\mathrm {D}} }_{k}{\varvec{\mathrm {x}} }^{e}_{j+1}\right) \circ {\varvec{\mathrm {x}} }^{e}_{j-1} \right) . \end{aligned}$$
(151)

Here the matrix \({\varvec{\mathrm {P}} }^{N \rightarrow N-1}_{k}\), and its continuous counterpart \(\mathcal {P}^{N\rightarrow N-1}_{k}\), is an \(L^{2}\) projection operator which removes the highest mode in the \(r_{k}\)-direction along faces which are parallel to \(r_{k}\). Thus, \(\mathcal {P}^{N \rightarrow N-1}_{1}\) modifies \({\tilde{\zeta }}^{e}_{j,1}\) along faces 3, 4, 5, and 6 so that with respect to \(r_{1}\) it is a polynomial of degree \(N-1\); the dependence of \({\tilde{\zeta }}^{e}_{j,1}\) on \(r_{2}\) and \(r_{3}\) is unmodified by \(\mathcal {P}^{N \rightarrow N-1}_{1}\).

The quantities \(\zeta ^{e}_{j,k}\) are then the interpolation and scaling of \({\tilde{\zeta }}^{e}_{j,k}\) from the full faces and edges to the hanging faces and edges. To make this concrete, suppose that face 1 of element e is hanging, we modify \({\tilde{\zeta }}^{e}_{j,2}\) and \({\tilde{\zeta }}^{e}_{j,3}\) on face 1 so that the surface Jacobian determinant times the normal vector will be consistent. Let face \(f'\) of element \(e'\) be the full face for this nonconforming interface. We replace values of \({\tilde{\zeta }}^{e}_{j,2}\) on degrees of freedom along face 1 of e by the values interpolated from face \(f'\) of element \(e'\) as

$$\begin{aligned} {\varvec{\mathrm {\zeta }} }^{e}_{j,2} = \left( {\varvec{\mathrm {I}} } - {\left( {\varvec{\mathrm {L}} }^{1}\right) }^{T} {\varvec{\mathrm {L}} }^{1}\right) \tilde{{\varvec{\mathrm {{\zeta }}} }}^{e}_{j,2} + \frac{1}{2} {\left( {\varvec{\mathrm {L}} }^{1}\right) }^{T} {\varvec{\mathrm {I}} }^{e' \rightarrow e} {\varvec{\mathrm {L}} }^{f'} \tilde{{\varvec{\mathrm {{\zeta }}} }}^{e'}_{j,k'_{2}}. \end{aligned}$$
(152)

Here \(k'_{2}\) is the reference direction of element \(e'\) that corresponds to \(r_{2}\) of element e. The matrix \({\varvec{\mathrm {I}} }^{e' \rightarrow e}\) interpolates from the full face of \(e'\) to the hanging face of e as well as taking into account any flips or rotations needed to transform between the two elements reference directions. For instance, if face 1 of e was in the lower-left quadrant of the full face \({\varvec{\mathrm {I}} }^{e' \rightarrow e}\) would interpolate from tensor product LGL points over \([-1,1]\times [-1,1]\) to points over \([-1,0]\times [-1,0]\). The scaling by 1 / 2 in (152) is needed in order to transform the derivative from \({\hat{e}}'\) to \({\hat{e}}\). The same procedure can be applied to calculate \({\varvec{\mathrm {\zeta }} }^{e}_{j,3}\) from \({\tilde{\zeta }}^{e}_{j,3}\) and \({\tilde{\zeta }}^{e'}_{j,k_{3}'}\). Since \(\zeta ^{e}_{j,1}\) does not affect \(S_{J}^{e,1}n_{j}^{e,1}\) we set \(\zeta ^{e}_{j,1} = {\tilde{\zeta }}^{e}_{j,1}\).

For hanging edges, a similar procedure is used, except that only one of the \(\zeta ^{e}_{j,k}\) values needs to be updated. For instance if the edge between faces 1 and 3 is hanging, \(\zeta ^{e}_{j,3}\) needs to be defined from \({\tilde{\zeta }}^{e}_{j,3}\) and \({\tilde{\zeta }}^{e'}_{j,k'_{3}}\) where element \(e'\) has a full edge corresponding to hanging edge of element e.

When multiple faces and edges are hanging, the procedure outlined above can be applied iteratively to form \(\zeta ^{e}_{j,k}\). In our implementation we found it convenient to have element e mimic the calculation that \(e'\) performs along the corresponding full faces and edges. This alternate interpretation makes it clear that our approach ensures that aliasing errors in the calculation of \(\zeta ^{e}_{j,k}\) are incurred in a similar manner across hanging faces and edges, and that the projection out of the highest modes is done over the same domain.

We now show that the above approach to the computation of the metric terms results in (147). We first consider the minus side of a mortar element. Namely, if \(m\in \mathbb {M} ^{e,f}\) with \(e \in \mathbb {E} ^{-m}\), by definition \(S_{J}^{m} n_{j}^{m[e]} = S_{J}^{e,f} n_{j}^{e,f}\) (since mortar elements always conform to the minus side faces). It follows that \(\mathcal {P}^{m,e[f]}\) is an identity operation and that \(\mathbb {M} ^{e,f} = \{m\}\), so (147) follows immediately. Thus, all that remains is to show that (147) holds for elements on the plus side of the mortar.

In the remaining we are going to assume that face 1 of element e is on the plus side of all mortars in \(\mathbb {M} ^{e,1}\). Additionally, without loss of generality we assume that for each \(m \in \mathbb {M} ^{e,1}\) that the minus side element \(e' \in \mathbb {E} ^{-m}\) is connected to m through face 2; by definition \(e'\) is the only element on the minus side of m. We also assume that reference directions are the same for both e and \(e'\), so that the ordering of there degrees of freedom is the same. These assumptions mean that \(S_{J}^{e,1}n_{j}^{e,1}\) is calculated from \(\zeta _{j,2}^{e}\) and \(\zeta _{j,3}^{e}\) and that for each \(m \in \mathbb {M} ^{e,1}\) and \(e' \in \mathbb {E} ^{-m}\) that the product \(S_{J}^{e',1}n_{j}^{e',1} = S_{J}^{m}n_{j}^{m}\) is calculated from \(\zeta _{j,2}^{e'}\) and \(\zeta _{j,3}^{e'}\).

Let face 1 of element e be on a conforming interface. Let \(m \in \mathbb {M} ^{e,1}\) be the mortar element that face 1 of e is connected to and let face 2 of \(e'\) be the element face on the minus side of m. By the orientation assumption it follows that

$$\begin{aligned} {\varvec{\mathrm {L}} }^{1}{\varvec{\mathrm {\zeta }} }^{e}_{j,2}&= {\varvec{\mathrm {L}} }^{2}{\varvec{\mathrm {\zeta }} }^{e'}_{j,2},&{\varvec{\mathrm {L}} }^{1}{\varvec{\mathrm {\zeta }} }^{e}_{j,3}&= {\varvec{\mathrm {L}} }^{2}{\varvec{\mathrm {\zeta }} }^{e'}_{j,3}; \end{aligned}$$
(153)

namely these quantities are continuous across the interface. Note that \(S_{J}^{e,1}n_{j}^{e,1}\) and \(S_{J}^{e',2}n_{j}^{e',2}\) are calculated from \(J^{e}r^{e}_{1,j}\) and \(J^{e'}r^{e'}_{1,j}\), respectively; see (131). This means that \(S_{J}^{e,1}n_{j}^{e,1} = -S_{J}^{e',2}n_{j}^{e',2}\) since \(J^{e'}r^{e'}_{1,j}\) and \(J^{e'}r^{e'}_{1,j}\) are calculated using derivatives in the \(r_{2}\) and \(r_{3}\) directions (i.e., directions along faces 1 and 2), and since \(S_{J}^{e',2}n_{j}^{e',2} = S_{J}^{m}n_{j}^{m}\) it follows that \(S_{J}^{m}n_{j}^{m[e]} = -S_{J}^{m}n_{j}^{m[e]} = S_{J}^{e,1}n_{j}^{e,1}\) and

$$\begin{aligned} {\left( {\varvec{\mathrm {S}} }_{J}^{e,1} {\varvec{\mathrm {n}} }_{j}^{e,1}\right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,1} = {\left( {\varvec{\mathrm {S}} }_{J}^{m} {\varvec{\mathrm {n}} }_{j}^{m[e]}\right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,1}; \end{aligned}$$
(154)

in this case the projection from face 1 of e to the mortar is an identity operation.

We now move on to the case that face 1 of e is connected to a nonconforming interface. Before proceeding we note that since the approximations \(\zeta ^{e}_{j,k}\) are in the spaces indicated by (148)–(150), it follows that on each \(S_{J}^{e,1}n_{j}^{e,1} \in Q^{N-1, 2}\) and that \(S_{J}^{m}n_{j}^{m} \in Q^{N-1,2}\) for all \(m \in \mathbb {M} \). Given this, and the accuracy of the quadrature rule, it follows that the left- and right-hand sides of (147) can be replaced with integrals:

$$\begin{aligned} {\left( {\varvec{\mathrm {S}} }_{J}^{e,1} {\varvec{\mathrm {n}} }_{j}^{e,1}\right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {q}} }^{e,1}&= \int _{-1}^{1}\int _{-1}^{1} S_{J}^{e,1} n_{j}^{e,1} q^{e,1}, \end{aligned}$$
(155)
$$\begin{aligned} {\left( {\varvec{\mathrm {S}} }_{J}^{m} {\varvec{\mathrm {n}} }_{j}^{m[e]}\right) }^{T} \bar{{\varvec{\mathrm {W}} }} {\varvec{\mathrm {P}} }^{m,e[1]} {\varvec{\mathrm {q}} }^{e,1}&= \int _{-1}^{1}\int _{-1}^{1} S_{J}^{m} n_{j}^{m[e]} \mathcal {P}^{m,e[1]} q^{e,1}, \end{aligned}$$
(156)

where \(\mathcal {P}^{m,e[1]}\) is the projection operator from face 1 of element e to the mortar (which corresponds with the matrix operator \({\varvec{\mathrm {P}} }^{m,e[1]}\)). We now consider the case of the full-side and split-side mortars separately.

When full-side mortars are being used, face 1 of element e is a hanging face (since a minus side of a full-side mortar is the full face). Also, it follows that there is only one mortar element in \(\mathbb {M} ^{e,1}\) which we denote as m; as before \(e'\) is the element connected to the minus side of m through face 2. Since face 2 of element \(e'\) is the full face, we have that by (152):

$$\begin{aligned} {\varvec{\mathrm {\zeta }} }^{e}_{j,2}&= \left( {\varvec{\mathrm {I}} } - {\left( {\varvec{\mathrm {L}} }^{1}\right) }^{T} {\varvec{\mathrm {L}} }^{1}\right) \tilde{{\varvec{\mathrm {{\zeta }}} }}^{e}_{j,2} + \frac{1}{2} {\left( {\varvec{\mathrm {L}} }^{1}\right) }^{T} {\varvec{\mathrm {I}} }^{e' \rightarrow e} {\varvec{\mathrm {L}} }^{2} \tilde{{\varvec{\mathrm {{\zeta }}} }}^{e'}_{j,2}, \end{aligned}$$
(157)
$$\begin{aligned} {\varvec{\mathrm {\zeta }} }^{e}_{j,3}&= \left( {\varvec{\mathrm {I}} } - {\left( {\varvec{\mathrm {L}} }^{1}\right) }^{T} {\varvec{\mathrm {L}} }^{1}\right) \tilde{{\varvec{\mathrm {{\zeta }}} }}^{e}_{j,3} + \frac{1}{2} {\left( {\varvec{\mathrm {L}} }^{1}\right) }^{T} {\varvec{\mathrm {I}} }^{e' \rightarrow e} {\varvec{\mathrm {L}} }^{2} \tilde{{\varvec{\mathrm {{\zeta }}} }}^{e'}_{j,3}. \end{aligned}$$
(158)

As in the conforming case, \(S_{J}^{e,1}n_{j}^{e,1}\) and \(S_{J}^{e',2}n_{j}^{e',2}\) are calculated using only derivatives in the \(r_{2}\) and \(r_{3}\) directions, thus it follows that

$$\begin{aligned} {\varvec{\mathrm {L}} }^{1} \left( {\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }^{e}_{1,j}{\varvec{\mathrm {1}} }\right) = \frac{1}{4}{\varvec{\mathrm {I}} }^{e' \rightarrow e} {\varvec{\mathrm {L}} }^{2} \left( {\varvec{\mathrm {J}} }^{e}{\varvec{\mathrm {r}} }^{e'}_{1,j}{\varvec{\mathrm {1}} }\right) ; \end{aligned}$$
(159)

here the factor of 1 / 4 arises because of the 1 / 2 in (152) along with an additional derivative taken on reference elements. This means that

$$\begin{aligned} {\varvec{\mathrm {S}} }_{J}^{e,1}{\varvec{\mathrm {n}} }_{j}^{e,1} = - \frac{1}{4}{\varvec{\mathrm {I}} }^{e' \rightarrow e} {\varvec{\mathrm {S}} }_{J}^{m}{\varvec{\mathrm {n}} }_{j}^{m} = \frac{1}{4}{\varvec{\mathrm {I}} }^{e' \rightarrow e} {\varvec{\mathrm {S}} }_{J}^{m}{\varvec{\mathrm {n}} }_{j}^{m[e]}, \end{aligned}$$
(160)

and \(S_{J}^{e,1}n_{j}^{e,1}\) and \(S_{J}^{m}n_{j}^{m[e]}\) are the same polynomial. Hence, since we use exact \(L^2\) projection to go from face 1 of e to m it follows that

$$\begin{aligned} \int _{-1}^{1}\int _{-1}^{1} S_{J}^{e,1} n_{j}^{e,1} q^{e,1}&= \int _{-1}^{1}\int _{-1}^{1} S_{J}^{m} n_{j}^{m[e]} \mathcal {P}^{m,e[1]} q^{e,1}, \end{aligned}$$
(161)

which is the desired result.

When split-side mortars are used, face 1 of element e is a full face (with the minus side of the mortar being the hanging face). Since face 1 of element e is a full face, it follows that \(\mathbb {M} ^{e,1}\) contains four mortar elements which we denote with \(m_{l}\) for \(l = 1,2,3,4\). Let the minus side of \(m_{l}\) be face 2 of element \(e'_{l}\). Additionally, since mortar \(m_{l}\) conforms face 2 of \(e'_{l}\) it follows from (131) and (152) that

$$\begin{aligned} {\varvec{\mathrm {S}} }_{J}^{m'_{l}}{\varvec{\mathrm {n}} }_{j}^{m'_{l}[e]} = - {\varvec{\mathrm {S}} }_{J}^{m'_{l}}{\varvec{\mathrm {n}} }_{j}^{m'_{l}} = - {\varvec{\mathrm {S}} }_{J}^{e'_{l},2}{\varvec{\mathrm {n}} }_{j}^{e'_{l},2} = \frac{1}{4}{\varvec{\mathrm {I}} }^{e \rightarrow e'_{l}} {\varvec{\mathrm {S}} }_{J}^{e,1}{\varvec{\mathrm {n}} }_{j}^{e,1}, \end{aligned}$$
(162)

namely the surface Jacobian determinant times normal on the mortar is the scaled interpolant of the product on face 1 of e. Since face 1 of element e is the full face, it follows that \(\mathcal {P}^{m_{l},e[1]} = \mathcal {I}^{e\rightarrow e'_{l}}\), namely the projection from face 1 of e to \(m_{l}\) is the same as interpolation to the face 2 of element \(e'_{l}\). Thus we have that

$$\begin{aligned} \int _{-1}^{1}\int _{-1}^{1} S_{J}^{e,1} n_{j}^{e,1} q^{e,1} =&\int _{0}^{1}\int _{0}^{1} S_{J}^{e,1} n_{j}^{e,1} q^{e,1} + \int _{-1}^{0}\int _{0}^{1} S_{J}^{e,1} n_{j}^{e,1} q^{e,1}\nonumber \\&+ \int _{0}^{1}\int _{-1}^{0} S_{J}^{e,1} n_{j}^{e,1} q^{e,1} + \int _{-1}^{0}\int _{-1}^{0} S_{J}^{e,1} n_{j}^{e,1} q^{e,1}\nonumber \\ =&\sum _{m_{l}\in \mathbb {M} ^{e,1}} \int _{-1}^{1}\int _{-1}^{1} S_{J}^{m_{l}} n_{j}^{m_{l}[e]} \mathcal {I}^{e\rightarrow e'_{l}} q^{e,1}. \end{aligned}$$
(163)

For conforming mortars and the two types of nonconforming mortars (split- and full-side) considered in this work we have shown that (147) holds. As noted above the properties of LGL quadrature imply that if the volume and surface metric terms are consistently calculated and if (147) holds, then the discrete divergence relation (67) holds. To ensure that the metric terms are consistent across the mortars it is necessary to make sure that certain intermediate calculations are consistent across nonconforming faces and edges. Making the mesh discretely watertight alone is not sufficient since differences in the aliasing errors, which result from interpolating high-order polynomials to a lower-order spaces, are different across the nonconforming faces. Finally, in the above construction (and our implementation), the polynomial order of \(S_{J}^{e,f}n_{j}^{e,f}\) is lowered for all faces (conforming and nonconforming). This is a bit more aggressive than needed, and (147) would be satisfied if the reduction of polynomial order was done only across the nonconforming faces and edges.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Kozdon, J.E., Wilcox, L.C. An Energy Stable Approach for Discretizing Hyperbolic Equations with Nonconforming Discontinuous Galerkin Methods. J Sci Comput 76, 1742–1784 (2018). https://doi.org/10.1007/s10915-018-0682-1

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10915-018-0682-1

Keywords

Mathematics Subject Classification

Navigation