Skip to main content
Log in

The Spectral Difference Raviart–Thomas Method for Two and Three-Dimensional Elements and Its Connection with the Flux Reconstruction Formulation

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

Abstract

The purpose of this work is to describe in detail the development of the spectral difference Raviart–Thomas (SDRT) formulation for two and three-dimensional tensor-product elements and simplexes. Through the process, the authors establish the equivalence between the SDRT method and the flux reconstruction (FR) approach under the assumption of the linearity of the flux and the mesh uniformity. Such a connection allows building a new family of FR schemes for two and three-dimensional simplexes and also to recover the well-known FR-SD method with tensor-product elements. In addition, a thorough analysis of the numerical dissipation and dispersion of both aforementioned schemes and the nodal discontinuous Galerkin FR (FR-DG) method with two and three-dimensional elements is proposed through the use of the combined-mode Fourier approach. SDRT is shown to possess an enhanced temporal linear stability in comparison to FR-DG. On the contrary, SDRT displays larger dissipation and dispersion errors with respect to FR-DG. Finally, the study is concluded with a set of numerical experiments, the linear advection-diffusion problem, the Isentropic Euler Vortex, and the Taylor-Green Vortex (TGV). The latter test case shows that SDRT schemes present a non-linear unstable behavior with simplex elements and certain polynomial degrees. For the sake of completeness, the matrix form of the SDRT method is developed and the computational performance of SDRT with respect to FR schemes is evaluated using GPU architectures.

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
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17

Similar content being viewed by others

Data Availability

None.

References

  1. Abe, Y., Haga, T., Nonomura, T., Fujii, K.: On the freestream preservation of high-order conservative flux-reconstruction schemes. J. Comput. Phys. 281, 28–54 (2015). https://doi.org/10.1016/j.jcp.2014.10.011

    Article  MathSciNet  MATH  Google Scholar 

  2. Abe, Y., Morinaka, I., Haga, T., Nonomura, T., Shibata, H., Miyaji, K.: Stable, non-dissipative, and conservative flux-reconstruction schemes in split forms. J. Comput. Phys. 353, 193–227 (2018). https://doi.org/10.1016/j.jcp.2017.10.007

    Article  MathSciNet  MATH  Google Scholar 

  3. Abgrall, R., Le Mélédo, É., Öffner, P.: General polytopal h (div)-conformal finite elements and their discretisation spaces. ESAIM Math. Model. Numer. Anal. 55, S677–S704 (2021)

    Article  MathSciNet  Google Scholar 

  4. Abgrall, R., Meledo, E.l., Oeffner, P.: On the connection between residual distribution schemes and flux reconstruction (2018). arXiv preprint arXiv:1807.01261

  5. Alhawwary, M., Wang, Z.: Fourier analysis and evaluation of DG, FD and compact difference methods for conservation laws. J. Comput. Phys. 373, 835–862 (2018). https://doi.org/10.1016/j.jcp.2018.07.018

    Article  MathSciNet  MATH  Google Scholar 

  6. Alhawwary, M., Wang, Z.: A combined-mode Fourier analysis of DG methods for linear parabolic problems. J. Sci. Comput. 42(6), A3825–A3858 (2020). https://doi.org/10.1137/20m1316962

    Article  MathSciNet  MATH  Google Scholar 

  7. Asthana, K., Watkins, J., Jameson, A.: On consistency and rate of convergence of flux reconstruction for time-dependent problems. J. Comput. Phys. 334, 367–391 (2017). https://doi.org/10.1016/j.jcp.2017.01.008

    Article  MathSciNet  MATH  Google Scholar 

  8. Balan, A., May, G., Schöberl, J.: A stable spectral difference method for triangles. In: 49th AIAA Aerospace Sciences Meeting including the New Horizons Forum and Aerospace Exposition. American Institute of Aeronautics and Astronautics (2011). https://doi.org/10.2514/6.2011-47

  9. Bassi, F., Rebay, S.: High-order accurate discontinuous finite element solution of the 2D Euler equations. J. Comput. Phys. 138(2), 251–285 (1997). https://doi.org/10.1006/jcph.1997.5454

    Article  MathSciNet  MATH  Google Scholar 

  10. Bergot, M., Duruflé, M.: Approximation of h(div) with high-order optimal finite elements for pyramids, prisms and hexahedra. Commun. Comput. Phys. 14(5), 1372–1414 (2013). https://doi.org/10.4208/cicp.120712.080313a

    Article  MathSciNet  MATH  Google Scholar 

  11. Butcher, J.C.: Numerical Methods for Ordinary Differential Equations. Wiley, New York (2016). https://doi.org/10.1002/9781119121534

    Book  MATH  Google Scholar 

  12. Carpenter, M., Kennedy, C.: Fourth-order 2N-storage Runge–Kutta schemes (1994)

  13. Castonguay, P.: High-order energy stable flux reconstruction schemes for fluid flow simulations on unstructured grids. Ph.D. thesis, Stanford (2012)

  14. Castonguay, P., Vincent, P.E., Jameson, A.: A new class of high-order energy stable flux reconstruction schemes for triangular elements. J. Sci. Comput. 51(1), 224–256 (2011). https://doi.org/10.1007/s10915-011-9505-3

    Article  MathSciNet  MATH  Google Scholar 

  15. Cockburn, B., Shu, C.-W.: The local discontinuous Galerkin method for time-dependent convection-diffusion systems. SIAM J. Numer. Anal. 35(6), 2440–2463 (1998). https://doi.org/10.1137/s0036142997316712

    Article  MathSciNet  MATH  Google Scholar 

  16. Cox, C., Trojak, W., Dzanic, T., Witherden, F., Jameson, A.: Accuracy, stability, and performance comparison between the spectral difference and flux reconstruction schemes. Comput. Fluids 221, 104922 (2021). https://doi.org/10.1016/j.compfluid.2021.104922

    Article  MathSciNet  MATH  Google Scholar 

  17. DeBonis, J.: Solutions of the taylor-green vortex problem using high-resolution explicit finite difference methods. In: 51st AIAA Aerospace Sciences Meeting including the New Horizons Forum and Aerospace Exposition. American Institute of Aeronautics and Astronautics (2013). https://doi.org/10.2514/6.2013-382

  18. Frean, D.J., Ryan, J.K.: Superconvergence and the numerical flux: a study using the upwind-biased flux in discontinuous Galerkin methods. Commun. Appl. Math. Comput. 2(3), 461–486 (2019). https://doi.org/10.1007/s42967-019-00049-2

    Article  MathSciNet  MATH  Google Scholar 

  19. Glaubitz, J., Öffner, P., Sonar, T.: Application of modal filtering to a spectral difference method. Math. Comput. 87(309), 175–207 (2017). https://doi.org/10.1090/mcom/3257

    Article  MathSciNet  MATH  Google Scholar 

  20. Guo, W., Zhong, X., Qiu, J.-M.: Superconvergence of discontinuous Galerkin and local discontinuous Galerkin methods: eigen-structure analysis based on fourier approach. J. Comput. Phys. 235, 458–485 (2013). https://doi.org/10.1016/j.jcp.2012.10.020

    Article  MathSciNet  MATH  Google Scholar 

  21. Haga, T., Gao, H., Wang, Z.: A high-order unifying discontinuous formulation for 3-D mixed grids. In: 48th AIAA Aerospace Sciences Meeting Including the New Horizons Forum and Aerospace Exposition, p. 540 (2010)

  22. Haga, T., Gao, H., Wang, Z.J.: A high-order unifying discontinuous formulation for the Navier–Stokes equations on 3D mixed grids. Math. Model. Nat. Phenom. 6(3), 28–56 (2011). https://doi.org/10.1051/mmnp/20116302

    Article  MathSciNet  MATH  Google Scholar 

  23. Hesthaven, J.: Nodal Discontinuous Galerkin Methods: Algorithms, Analysis, and Applications. Springer, New York (2008)

    Book  Google Scholar 

  24. Huynh, H.T.: A flux reconstruction approach to high-order schemes including discontinuous galerkin methods. In: 18th AIAA Computational Fluid Dynamics Conference. American Institute of Aeronautics and Astronautics (2007). https://doi.org/10.2514/6.2007-4079

  25. Huynh, H.T.: Discontinuous Galerkin via interpolation: the direct flux reconstruction method. J. Sci. Comput. 82(3), 25 (2020). https://doi.org/10.1007/s10915-020-01175-3

    Article  MathSciNet  MATH  Google Scholar 

  26. Iyer, A.S., Witherden, F.D., Chernyshenko, S.I., Vincent, P.E.: Identifying eigenmodes of averaged small-amplitude perturbations to turbulent channel flow. J. Fluid Mech. 875, 758–780 (2019). https://doi.org/10.1017/jfm.2019.520

    Article  MathSciNet  MATH  Google Scholar 

  27. Jameson, A.: A proof of the stability of the spectral difference method for all orders of accuracy. J. Sci. Comput. 45(1–3), 348–358 (2010). https://doi.org/10.1007/s10915-009-9339-4

    Article  MathSciNet  MATH  Google Scholar 

  28. Karniadakis, G., Sherwin, S.: Spectral/hp Element Methods for Computational Fluid Dynamics. Oxford University Press, Oxford (2005). https://doi.org/10.1093/acpro:oso/9780198528692.001.0001

    Book  MATH  Google Scholar 

  29. 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 

  30. 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 

  31. Li, M., Qiu, Z., Liang, C., Sprague, M., Xu, M., Garris, C.A.: A new high-order spectral difference method for simulating viscous flows on unstructured grids with mixed-element meshes. Comput. Fluids 184, 187–198 (2019). https://doi.org/10.1016/j.compfluid.2019.03.010

    Article  MathSciNet  MATH  Google Scholar 

  32. Liu, Y., Vinokur, M., Wang, Z.: Spectral difference method for unstructured grids I: basic formulation. J. Comput. Phys. 216(2), 780–801 (2006). https://doi.org/10.1016/j.jcp.2006.01.024

    Article  MathSciNet  MATH  Google Scholar 

  33. Lodato, G.: Characteristic modal shock detection for discontinuous finite element methods. Comput. Fluids 179, 309–333 (2019). https://doi.org/10.1016/j.compfluid.2018.11.008

    Article  MathSciNet  MATH  Google Scholar 

  34. Lodato, G., Vervisch, L., Clavin, P.: Direct numerical simulation of shock wavy-wall interaction: analysis of cellular shock structures and flow patterns. J. Fluid Mech. 789, 221–258 (2016). https://doi.org/10.1017/jfm.2015.731

    Article  Google Scholar 

  35. Loppi, N., Witherden, F., Jameson, A., Vincent, P.: A high-order cross-platform incompressible Navier–Stokes solver via artificial compressibility with application to a turbulent jet. Comput. Phys. Commun. 233, 193–205 (2018). https://doi.org/10.1016/j.cpc.2018.06.016

    Article  MathSciNet  Google Scholar 

  36. Manzanero, J., Ferrer, E., Rubio, G., Valero, E.: Design of a smagorinsky spectral vanishing viscosity turbulence model for discontinuous Galerkin methods. Comput. Fluids 200, 104440 (2020). https://doi.org/10.1016/j.compfluid.2020.104440

    Article  MathSciNet  MATH  Google Scholar 

  37. Manzanero, J., Rubio, G., Kopriva, D., Ferrer, E., Valero, E.: Entropy-stable discontinuous galerkin approximation with summation-by-parts property for the incompressible Navier–Stokes equations with variable density and artificial compressibility (2020b). arXiv:1907.05976

  38. Mengaldo, G., Grazia, D.D., Vincent, P.E., Sherwin, S.J.: On the connections between discontinuous Galerkin and flux reconstruction schemes: extension to curvilinear meshes. J. Sci. Comput. 67(3), 1272–1292 (2015). https://doi.org/10.1007/s10915-015-0119-z

    Article  MathSciNet  MATH  Google Scholar 

  39. Mozolevski, I., Valmorbida, E.L.: Efficient equilibrated flux reconstruction in high order Raviart–Thomas space for discontinuous Galerkin methods. In: Lecture Notes in Computational Science and Engineering, pp. 467–479. Springer (2017). https://doi.org/10.1007/978-3-319-65870-4_33

  40. Navah, F., de la Llave Plata, M., Couaillier, V.: A high-order multiscale approach to turbulence for compact nodal schemes. Comput. Methods Appl. Mech. Eng. 363, 112885 (2020). https://doi.org/10.1016/j.cma.2020.112885

    Article  MathSciNet  MATH  Google Scholar 

  41. Olson, B.J., Shaw, S.W., Shi, C., Pierre, C., Parker, R.G.: Circulant matrices and their application to vibration analysis. Appl. Mech. Rev. (2014). https://doi.org/10.1115/1.4027722

    Article  Google Scholar 

  42. Park, J.S., Witherden, F.D., Vincent, P.E.: High-order implicit large-eddy simulations of flow over a NACA0021 aerofoil. AIAA J. 55(7), 2186–2197 (2017). https://doi.org/10.2514/1.j055304

    Article  Google Scholar 

  43. Pazner, W.: Sparse invariant domain preserving discontinuous Galerkin methods with subcell convex limiting. Comput. Methods Appl. Mech. Eng. 382, 113876 (2021). https://doi.org/10.1016/j.cma.2021.113876

    Article  MathSciNet  MATH  Google Scholar 

  44. Peraire, J., Persson, P.-O.: The compact discontinuous Galerkin (CDG) method for elliptic problems. SIAM J. Sci. Comput. 30(4), 1806–1824 (2008). https://doi.org/10.1137/070685518

    Article  MathSciNet  MATH  Google Scholar 

  45. Pereira, C.A., Vermeire, B.C.: Fully-discrete analysis of high-order spatial discretizations with optimal explicit Runge–Kutta methods. J. Sci. Comput. (2020). https://doi.org/10.1007/s10915-020-01243-8

    Article  MathSciNet  MATH  Google Scholar 

  46. Pereira, C.A., Vermeire, B.C.: Spectral properties of high-order element types for implicit large eddy simulation. J. Sci. Comput. (2020). https://doi.org/10.1007/s10915-020-01329-3

    Article  MathSciNet  MATH  Google Scholar 

  47. Shu, C.-W.: High order WENO and DG methods for time-dependent convection-dominated PDEs: a brief survey of several recent developments. J. Comput. Phys. 316, 598–613 (2016). https://doi.org/10.1016/j.jcp.2016.04.030

    Article  MathSciNet  MATH  Google Scholar 

  48. Spiegel, S.C., Huynh, H., DeBonis, J.R.: De-aliasing through over-integration applied to the flux reconstruction and discontinuous Galerkin methods. In: 22nd AIAA Computational Fluid Dynamics Conference. American Institute of Aeronautics and Astronautics (2015). https://doi.org/10.2514/6.2015-2744

  49. Spiegel, S.C., Huynh, H., DeBonis, J.R.: A survey of the isentropic Euler vortex problem using high-order methods. In: 22nd AIAA Computational Fluid Dynamics Conference. American Institute of Aeronautics and Astronautics (2015). https://doi.org/10.2514/6.2015-2444

  50. Toro, E.F.: The HLL and HLLC Riemann solvers. In: Riemann Solvers and Numerical Methods for Fluid Dynamics, pp. 315–339. Springer, Berlin (1999). https://doi.org/10.1007/978-3-662-03915-1_10

  51. Trojak, W., Watson, R., Scillitoe, A., Tucker, P.G.: Effect of mesh quality on flux reconstruction in multi-dimensions. J. Sci. Comput. (2020). https://doi.org/10.1007/s10915-020-01184-2

    Article  MathSciNet  MATH  Google Scholar 

  52. Van den Abeele, K., Lacor, C., Wang, Z.J.: On the stability and accuracy of the spectral difference method. J. Sci. Comput. 37(2), 162–188 (2008). https://doi.org/10.1007/s10915-008-9201-0

    Article  MathSciNet  MATH  Google Scholar 

  53. van Rees, W.M., Leonard, A., Pullin, D., Koumoutsakos, P.: A comparison of vortex and pseudo-spectral methods for the simulation of periodic vortical flows at high Reynolds numbers. J. Comput. Phys. 230(8), 2794–2805 (2011). https://doi.org/10.1016/j.jcp.2010.11.031

    Article  MathSciNet  MATH  Google Scholar 

  54. Vanharen, J., Puigt, G., Vasseur, X., Boussuge, J.-F., Sagaut, P.: Revisiting the spectral analysis for high-order spectral discontinuous methods. J. Comput. Phys. 337, 379–402 (2017). https://doi.org/10.1016/j.jcp.2017.02.043

    Article  MathSciNet  MATH  Google Scholar 

  55. Veilleux, A.: Extension of the spectral difference method to simplex cells and hybrid grids. Ph.D. thesis, CERFACS (2021)

  56. Veilleux, A., Puigt, G., Deniau, H., Daviller, G.: A stable spectral difference approach for computations with triangular and hybrid grids up to the 6 order of accuracy. J. Comput. Phys. 449, 110774 (2022). https://doi.org/10.1016/j.jcp.2021.110774

    Article  MathSciNet  MATH  Google Scholar 

  57. Vermeire, B., Vincent, P.: On the behaviour of fully-discrete flux reconstruction schemes. Comput. Methods Appl. Mech. Eng. 315, 1053–1079 (2017). https://doi.org/10.1016/j.cma.2016.11.019

    Article  MathSciNet  MATH  Google Scholar 

  58. Vincent, P., Castonguay, P., Jameson, A.: Insights from von Neumann analysis of high-order flux reconstruction schemes. J. Comput. Phys. 230(22), 8134–8154 (2011). https://doi.org/10.1016/j.jcp.2011.07.013

    Article  MathSciNet  MATH  Google Scholar 

  59. Vincent, P.E., Castonguay, P., Jameson, A.: A new class of high-order energy stable flux reconstruction schemes. J. Sci. Comput. 47(1), 50–72 (2010). https://doi.org/10.1007/s10915-010-9420-z

    Article  MathSciNet  MATH  Google Scholar 

  60. Wang, Z., Fidkowski, K., Abgrall, R., Bassi, F., Caraeni, D., Cary, A., Deconinck, H., Hartmann, R., Hillewaert, K., Huynh, H., Kroll, N., May, G., Persson, P.-O., van Leer, B., Visbal, M.: High-order CFD methods: current status and perspective. Int. J. Numer. Methods Fluids 72(8), 811–845 (2013). https://doi.org/10.1002/fld.3767

    Article  MathSciNet  MATH  Google Scholar 

  61. Wang, Z., Gao, H.: A unifying lifting collocation penalty formulation including the discontinuous Galerkin, spectral volume/difference methods for conservation laws on mixed grids. J. Comput. Phys. 228(21), 8161–8186 (2009). https://doi.org/10.1016/j.jcp.2009.07.036

    Article  MathSciNet  MATH  Google Scholar 

  62. Wang, Z., Liu, Y.: Spectral (finite) volume method for conservation laws on unstructured grids. J. Comput. Phys. 179(2), 665–697 (2002). https://doi.org/10.1006/jcph.2002.7082

    Article  MathSciNet  MATH  Google Scholar 

  63. Williams, D., Castonguay, P., Vincent, P., Jameson, A.: An extension of energy stable flux reconstruction to unsteady, non-linear, viscous problems on mixed grids. In: 20th AIAA Computational Fluid Dynamics Conference. American Institute of Aeronautics and Astronautics (2011). https://doi.org/10.2514/6.2011-3405

  64. Williams, D., Castonguay, P., Vincent, P., Jameson, A.: Energy stable flux reconstruction schemes for advection–diffusion problems on triangles. J. Comput. Phys. 250, 53–76 (2013). https://doi.org/10.1016/j.jcp.2013.05.007

    Article  MathSciNet  MATH  Google Scholar 

  65. Williams, D., Shunn, L., Jameson, A.: Symmetric quadrature rules for simplexes based on sphere close packed lattice arrangements. J. Comput. Appl. Math. 266, 18–38 (2014). https://doi.org/10.1016/j.cam.2014.01.007

    Article  MathSciNet  MATH  Google Scholar 

  66. Williams, D.M., Jameson, A.: Energy stable flux reconstruction schemes for advection–diffusion problems on tetrahedra. J. Sci. Comput. 59(3), 721–759 (2013). https://doi.org/10.1007/s10915-013-9780-2

    Article  MathSciNet  MATH  Google Scholar 

  67. Witherden, F., Farrington, A., Vincent, P.: PyFR: an open source framework for solving advection–diffusion type problems on streaming architectures using the flux reconstruction approach. Comput. Phys. Commun. 185(11), 3028–3040 (2014). https://doi.org/10.1016/j.cpc.2014.07.011

    Article  MATH  Google Scholar 

  68. Witherden, F., Vermeire, B., Vincent, P.: Heterogeneous computing on mixed unstructured grids with PyFR. Comput. Fluids 120, 173–186 (2015). https://doi.org/10.1016/j.compfluid.2015.07.016

    Article  MathSciNet  MATH  Google Scholar 

  69. Zwanenburg, P., Nadarajah, S.: Equivalence between the energy stable flux reconstruction and filtered discontinuous Galerkin schemes. J. Comput. Phys. 306, 343–369 (2016). https://doi.org/10.1016/j.jcp.2015.11.036

    Article  MathSciNet  MATH  Google Scholar 

Download references

Acknowledgements

The authors would like to thank Freddie Witherden for his gracious contributions to the development of the open-source PyFR solver and the review of the pull-requests which added certain functionalities needed to perform the studies shown in this work.

Funding

The authors would like to thank ISAE-SUPAERO for providing with the computational resources and founding to carry out this study.

Author information

Authors and Affiliations

Authors

Contributions

GS-M: Conceptualization, Software, Validation, Formal analysis, Writing—original draft. JS-A: Conceptualization, Validation, Formal analysis, Writing—original draft. JG: Conceptualization, Funding acquisition, Writing—review and editing.

Corresponding author

Correspondence to J. Sierra-Ausín.

Ethics declarations

Conflict of interest

The authors hereby declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.

Code Availability

The source code of the open-source SDRT and FR-SDRT solver (based on PyFR) utilized to carry out this study can be found in the following git repository.

Additional information

Publisher's Note

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

Appendices

Raviart–Thomas (RT) Basis and Degree of Freedom Distribution

Let \({\mathcal {P}}\) be a polynomial basis, described in [10], such that

$$\begin{aligned} {\mathcal {P}}_{{\mathfrak {p}}}(\widetilde{x}_0)\equiv & {} \text {span}\{ x_0^i \} \text { with } 0 \le i \le {\mathfrak {p}}\text { or }\nonumber \\ {\mathcal {P}}_{{\mathfrak {p}}}(\widetilde{x}_0, \widetilde{x}_1)\equiv & {} \text {span}\{ x_0^i x_1^j \} \text { with } 0 \le i, j \text { and } i + j \le {\mathfrak {p}}\text { or }\nonumber \\ {\mathcal {P}}_{{\mathfrak {p}}}(\widetilde{x}_0, \widetilde{x}_1, \widetilde{x}_2)\equiv & {} \text {span}\{ x_0^i x_1^j x_2^k \} \text { with } 0 \le i, j, k \text { and } i + j + k \le {\mathfrak {p}}, \end{aligned}$$
(82)

where each each basis of \({\mathcal {P}}\) presents \(N_{\text {D}}\) dimensions (depending on the considered element in which these polynomial bases are described). Within \(N_{\text {D}}\)-dimensional bases, only one component is non-zero. The index of such non-zero component may be deduced from the context and from the examples provided for each elements. Additionally, let us define \(\overline{{\mathcal {P}}}\) as

$$\begin{aligned} \overline{{\mathcal {P}}}_{{\mathfrak {p}}}(\widetilde{x}_0)\equiv & {} \text {span}\{ x_0^i \} \text { with } i = {\mathfrak {p}}\text { or }\nonumber \\ \overline{{\mathcal {P}}}_{{\mathfrak {p}}}(\widetilde{x}_0, \widetilde{x}_1)\equiv & {} \text {span}\{ x_0^i x_1^j \} \text { with } i + j = {\mathfrak {p}}\text { or }\nonumber \\ \overline{{\mathcal {P}}}_{{\mathfrak {p}}}(\widetilde{x}_0, \widetilde{x}_1, \widetilde{x}_2)\equiv & {} \text {span}\{ x_0^i x_1^j x_2^k \} \text { with } i + j + k = {\mathfrak {p}}. \end{aligned}$$
(83)

At last, we introduce the polynomial \(\mathbb {Q}\)

$$\begin{aligned} \mathbb {Q}_{n, m}(\widetilde{x}_0, \widetilde{x}_1)\equiv & {} \text {span}\{ x_0^i x_1^j \} \text { with } 0 \le i, j \le n, m \text { or }\nonumber \\ \mathbb {Q}_{n, m, l}(\widetilde{x}_0, \widetilde{x}_1, \widetilde{x}_2)\equiv & {} \text {span}\{ x_0^i x_1^j x_2^k \} \text { with } 0 \le i, j, k \le n, m, l . \end{aligned}$$
(84)

This polynomial also presents \(N_{\text {D}}\)-dimensional.

The operator \(\times \) indicates the Cartesian product of bases while operator \(\oplus \) indicates addition. The interested reader is referred to the RT basis examples provided within the following sections to better understand the nomenclature.

1.1 Triangles and Tetrahedrons Elements

The reference triangle and tetrahedron are defined such that

$$\begin{aligned} \widetilde{\varOmega }_{e} \in \widetilde{x}_i \ge -1; \quad \sum _i \widetilde{x}_i \le 0. \end{aligned}$$
(85)

The RT modal bases of a SDRT scheme of degree \({\mathfrak {p}}\) for triangle and tetrahedron elements are given by

$$\begin{aligned} \varvec{\psi }^{(f)}(\widetilde{\varvec{x}}) \equiv {\mathcal {P}}_{{\mathfrak {p}}}(\widetilde{\varvec{x}})^{N_{\text {D}}} \oplus \widetilde{\varvec{x}} \overline{{\mathcal {P}}}_{{\mathfrak {p}}}(\widetilde{\varvec{x}}) . \end{aligned}$$
(86)

To give an example of such polynomial basis, the RT basis for a triangular element with \({\mathfrak {p}}= 1\) reads

$$\begin{aligned} \varvec{\psi }(\widetilde{\varvec{x}}) \equiv \begin{bmatrix} 1 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{x} \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{y} \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ 1 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{x} \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{y} \end{bmatrix} , \begin{bmatrix} \widetilde{x}^2 \\ \widetilde{x}\widetilde{y} \end{bmatrix} , \begin{bmatrix} \widetilde{x}\widetilde{y} \\ \widetilde{y}^2 \end{bmatrix}, \end{aligned}$$
(87)

while the RT basis for a tetrahedron element with \({\mathfrak {p}}= 1\) is given by

$$\begin{aligned}&\varvec{\psi }(\widetilde{\varvec{x}}) \equiv \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{x} \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{y} \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{z} \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{x} \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{y} \\ 0 \end{bmatrix} ,\nonumber \\&\quad \begin{bmatrix} 0 \\ \widetilde{z} \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{x} \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{y} \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{z} \end{bmatrix} , \begin{bmatrix} \widetilde{x}^2 \\ \widetilde{x}\widetilde{y} \\ \widetilde{x}\widetilde{z} \end{bmatrix} , \begin{bmatrix} \widetilde{x}\widetilde{y} \\ \widetilde{y}^2 \\ \widetilde{y}\widetilde{z} \end{bmatrix} , \begin{bmatrix} \widetilde{x}\widetilde{z} \\ \widetilde{y}\widetilde{z} \\ \widetilde{z}^2 \end{bmatrix}. \end{aligned}$$
(88)

In triangular elements, the orthogonal basis described in [39] are utilized to define the modal basis. For tetrahedron elements, one may rely on the H(div) hierarchical basis described in [10] to reduce the condition number of the flux Vandermonde matrix. Such choices have proven crucial to reduce the condition number of the flux Vandermonde matrix in this work.

To distribute the degrees of freedom within triangle and tetrahedron elements, external flux points are related to a single degree of freedom equal to the unitary normal in the reference space at the considered points. On the other hand, \(N_{\text {D}}\) degrees of freedom oriented along each of the unitary principal axis of the reference element are imposed at unique internal flux points.

Within triangular elements, external flux points are located at Gauss-Legendre quadrature points resulting in \({\mathfrak {p}}+ 1\) points per edge. On the other hand, internal flux points are located at Williams–Shunn quadrature points [65] with \(\frac{{\mathfrak {p}}({\mathfrak {p}}+ 1)}{2}\) unique points. Figure 18a represents the distribution of such solution and flux points distribution along the reference triangle element.

For tetrahedron elements, Williams-Shunn quadrature points of degree \({\mathfrak {p}}\) with \(\frac{({\mathfrak {p}}+ 1)({\mathfrak {p}}+ 2)}{2}\) points are considered at triangular faces, while internal flux points are set at Williams-Shunn quadrature points of degree \({\mathfrak {p}}- 1\) with a total of \(\frac{{\mathfrak {p}}({\mathfrak {p}}+ 1)({\mathfrak {p}}+ 2)}{6}\) unique points. Figure 19a represents the distribution of such solution and flux points distribution along the reference tetrahedron element.

Solution points are also particularized at Williams-Shunn quadrature points such that \(N_{e}^{(u)} = \frac{({\mathfrak {p}}+ 1)({\mathfrak {p}}+ 2)}{2}\) and \(N_{e}^{(u)} = \frac{({\mathfrak {p}}+ 1)({\mathfrak {p}}+ 2)({\mathfrak {p}}+ 3)}{6}\) for triangular and tetrahedron elements respectively.

1.2 Tensor-Product Elements

The reference tensor-product element is defined as

$$\begin{aligned} \widetilde{\varOmega }_{e} \in \varvec{x} \in [-1, 1]^{N_{\text {D}}} . \end{aligned}$$
(89)

The RT modal bases of a SDRT scheme of degree \({\mathfrak {p}}\) for two-dimensional tensor-product elements read

$$\begin{aligned} \varvec{\psi }(\widetilde{\varvec{x}}) \equiv \mathbb {Q}_{{\mathfrak {p}}+ 1, {\mathfrak {p}}}(\varvec{\widetilde{x}}) \times \mathbb {Q}_{{\mathfrak {p}}, {\mathfrak {p}}+ 1}(\varvec{\widetilde{x}}), \end{aligned}$$
(90)

and for three-dimensional tensor-product elements

$$\begin{aligned} \varvec{\psi }(\widetilde{\varvec{x}}) \equiv \mathbb {Q}_{{\mathfrak {p}}+ 1, {\mathfrak {p}}, {\mathfrak {p}}}(\varvec{\widetilde{x}}) \times \mathbb {Q}_{{\mathfrak {p}}, {\mathfrak {p}}+ 1, {\mathfrak {p}}}(\varvec{\widetilde{x}}) \times \mathbb {Q}_{{\mathfrak {p}}, {\mathfrak {p}}, {\mathfrak {p}}+ 1}(\varvec{\widetilde{x}}). \end{aligned}$$
(91)

An example of the RT bases for a two-dimensional tensor-product element with \({\mathfrak {p}}=1\) is given by

$$\begin{aligned} \varvec{\psi }(\widetilde{\varvec{x}}) \equiv \begin{bmatrix} 1 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{x} \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{y} \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{x}\widetilde{y} \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{x}^2 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{x}^2\widetilde{y} \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ 1 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{x} \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{y} \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{x}\widetilde{y} \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{y}^2 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{x}\widetilde{y}^2 \end{bmatrix} .\nonumber \\ \end{aligned}$$
(92)

On the other hand, the RT basis of hexahedron elements with \({\mathfrak {p}}= 1\) are

$$\begin{aligned} \varvec{\psi }(\widetilde{\varvec{x}}) \equiv&\begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{x} \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{y} \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{z} \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{x}\widetilde{y} \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{x}\widetilde{z} \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{y}\widetilde{z} \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{x}^2 \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{x}^2\widetilde{y} \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{x}^2\widetilde{z} \\ 0 \\ 0 \end{bmatrix} , \\&\begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{x} \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{y} \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{z} \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{x}\widetilde{y} \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{x}\widetilde{z} \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{y}\widetilde{z} \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{y}^2 \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{x}\widetilde{y}^2 \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{z}\widetilde{y}^2 \\ 0 \end{bmatrix} , \\&\begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{x} \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{y} \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{z} \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{x}\widetilde{y} \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{x}\widetilde{z} \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{y}\widetilde{z} \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{z}^2 \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{x}\widetilde{z}^2 \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{y}\widetilde{z}^2 \end{bmatrix}. \end{aligned}$$
Fig. 18
figure 18

Representation of the different points distribution in the reference domain for the triangle (a) and quadrilateral (b) element. Solution points (green squares), external flux points on edges of the triangle (red) and on edges of the square (yellow), internal flux points (blue circles) (Color figure online)

To arrange the location of the flux points, \(({\mathfrak {p}}+ 1)^{N_{\text {D}}- 1}\) external flux points are located at Gauss-Legendre quadrature points of degree \({\mathfrak {p}}\) while a total of \(N_{\text {D}}\) sets of \(({\mathfrak {p}}+ 2)({\mathfrak {p}}+ 1)^{N_{\text {D}}}\) points are utilized to define the internal flux points. Such internal flux points are located at Gauss-Legendre quadrature points of degree \({\mathfrak {p}}- 1\) with a tensor-product arrangement in each direction. The interested reader is referred to [32] for further description of such a point arrangement.

For tensor-product elements, there exist \(N^{(f)}_{e}\) unique physical solution points, each of it has a unique degree of freedom assigned to it. Solution points are also particularized at Gauss-Legendre quadrature points such that \(N_{e}^{(u)} = ({\mathfrak {p}}+ 1)^{N_{\text {D}}}\). Figure 18b represents the distribution of such solution and flux points distribution along the reference quadrilateral element.

Remark 10

Due to the tensor-product arrangement of the polynomial bases, it is possible to rely on orthonormal or Lagrange polynomials to build the modal basis of tensor-product elements. This allows to improve the condition number of the Vandermonde matrix associated to the flux nodal basis.

1.3 Triangular Prismatic Elements

The reference triangular prismatic element is defined as

$$\begin{aligned} \widetilde{\varOmega }_{e} \in \widetilde{x}, \widetilde{y} \ge -1 \text { ; } \widetilde{x} + \widetilde{y} \le 0 \text { and } \widetilde{z} \in [-1, 1] . \end{aligned}$$
(93)

The RT modal bases of a SDRT scheme of degree \({\mathfrak {p}}\) for triangular prismatic elements read

$$\begin{aligned} \varvec{\psi }(\widetilde{\varvec{x}}) \equiv \left[ {\mathcal {P}}_{{\mathfrak {p}}}(\widetilde{x}_0, \widetilde{x}_1)^{2} \oplus (\widetilde{x}_0, \widetilde{x}_1) \overline{{\mathcal {P}}}_{{\mathfrak {p}}}(\widetilde{x}_0, \widetilde{x}_1) \right] {\mathcal {P}}_{{\mathfrak {p}}}(\widetilde{x}_2) \times {\mathcal {P}}_{{\mathfrak {p}}}(\widetilde{x}_0, \widetilde{x}_1) {\mathcal {P}}_{{\mathfrak {p}}+ 1}(\widetilde{x}_2) . \end{aligned}$$
(94)

For the sake of clarity, an example of such basis for \({\mathfrak {p}}= 1\) is provided in the following

$$\begin{aligned} \varvec{\psi }(\widetilde{\varvec{x}}) \equiv&\begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{x} \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{y} \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{x} \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{y} \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{x}^2 \\ \widetilde{x}\widetilde{y} \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{x}\widetilde{y} \\ \widetilde{y}^2 \\ 0 \end{bmatrix} , \\&\begin{bmatrix} \widetilde{z} \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{x}\widetilde{z} \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{y}\widetilde{z} \\ 0 \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{z} \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{x}\widetilde{z} \\ 0 \end{bmatrix} , \begin{bmatrix} 0 \\ \widetilde{y}\widetilde{z} \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{x}^2 \widetilde{z} \\ \widetilde{x}\widetilde{y} \widetilde{z} \\ 0 \end{bmatrix} , \begin{bmatrix} \widetilde{x}\widetilde{y} \widetilde{z} \\ \widetilde{y}^2 \widetilde{z} \\ 0 \end{bmatrix} , \\&\begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{x} \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{y} \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{z} \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{z}\widetilde{x} \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{y}\widetilde{z} \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{z}^2 \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{z}^2\widetilde{x} \end{bmatrix} , \begin{bmatrix} 0 \\ 0 \\ \widetilde{z}^2\widetilde{y} \end{bmatrix} . \end{aligned}$$

To the best of the authors’ knowledge no orthonormal RT basis for prismatic elements can be found in the literature, hence the flux Vandermonde matrix presents high condition numbers.

To arrange the external flux points, \(({\mathfrak {p}}+ 1)^{2}\) Gauss-Legendre points are utilized within each of the three quadrilateral faces of the prism, while \(\frac{({\mathfrak {p}}+ 1)({\mathfrak {p}}+ 2)}{2}\) Williams-Shunn quadrature points are utilized at triangular elements. Only a single degree of freedom is assigned to external flux points, equal to the normal of the reference-element at the considered flux point

To arrange internal flux points, two different sets are considered. The first one is made up of the triangular arrangement of internal flux points duplicated \((p + 1)\) times in the \(\widetilde{x}_2\) direction using one-dimensional Gauss-Legendre quadrature points in the latter direction. Two-dimensional degrees of freedom, coinciding with those imposed for internal flux points of triangular elements, are imposed to the aforementioned internal flux points. The second one consists of \({\mathfrak {p}}\) duplications of the \(\frac{({\mathfrak {p}}+ 1)({\mathfrak {p}}+ 2)}{2}\) quadrature points of the triangular faces extruded with \(\widetilde{x}_2\) coordinate equal to \({\mathfrak {p}}\) Gauss-Legendre quadrature points. The latter internal flux points are assigned a unique degree of freedom in the \(\widetilde{x}_2\) direction. Such an arrangement may be visualized in Fig. 19b. The first group of internal flux points is represented in blue spheres, while the second one is depicted with red spheres.

Solution points are also particularized at tensor-product configurations of \(p + 1\) Gauss-Legendre quadrature points in the extrusion direction and \(\frac{({\mathfrak {p}}+ 1)({\mathfrak {p}}+ 2)}{2}\) quadrature points of triangles. This yields a total of \(N_{e}^{(u)} = \frac{({\mathfrak {p}}+ 1)^2({\mathfrak {p}}+ 2)}{2}\) solution points.

Fig. 19
figure 19

Representation of the different points distribution in the reference domain for the tetrahedron (a) and prismatic (b) elements. Solution points (green cubes), external flux points (red spheres for triangular faces and yellow spheres for quadrilateral faces), internal flux points (blue spheres) (Color figure online)

1.4 Summary

Tables 6 and 7 represent the number of solution points, external flux points, internal flux points and unique flux points for each element type and as a function of the polynomial degree \({\mathfrak {p}}\).

Table 6 Number of solution and flux points within each of the elements considered in this work
Table 7 Number of external, internal and unique internal flux points within each of the elements considered in this work

Matrix Form of the SDRT Method

As it is the case for the FR formulation [67], the SDRT may be recast in matrix-matrix and matrix-vector operations. To avoid clashing between the formulation presented in this work and that of the FR formalism in [67], the matrices indices will start at 12. To do so, let us start by defining the state matrices of each element type \(n\) of a given mesh

$$\begin{aligned} \left( \varvec{U}^{(u)}_{e} \right) _{\rho n\alpha }&= u^{(u)}_{e\rho n\alpha } \quad \text {with} \quad \dim \varvec{U}^{(u)}_{e} = N_{e}^{(u)} \times N_{\text {V}}|\varOmega _e|, \nonumber \\ \left( \varvec{U}^{(fe)}_{e} \right) _{\rho n\alpha }&= u^{(fe)}_{e\rho n\alpha } \quad \text {with} \quad \dim \varvec{U}^{(fe)}_{e} = N_{e}^{(fe)} \times N_{\text {V}}|\varOmega _e|, \nonumber \\ \left( \varvec{U}^{(fi)}_{e} \right) _{\rho n\alpha }&= u^{(fi)}_{e\rho n\alpha } \quad \text {with} \quad \dim \varvec{U}^{(fi)}_{e} = N_{e}^{(fi)} \times N_{\text {V}}|\varOmega _e|, \nonumber \\ \left( \varvec{U}^{(fiu)}_{e} \right) _{\rho n\alpha }&= u^{(fiu)}_{e\rho n\alpha } \quad \text {with} \quad \dim \varvec{U}^{(fiu)}_{e} = N_{e}^{(fiu)} \times N_{\text {V}}|\varOmega _e| , \end{aligned}$$
(95)

The augmented transformation from unique internal flux points to duplicated internal flux points can be carried out using the permutation matrix

$$\begin{aligned} \left( \varvec{P}_{e} \right) _{\sigma \rho } \quad \text {with} \quad \dim \varvec{P}_{e} = N_{e}^{(fi)} \times N_{e}^{(fiu)} , \end{aligned}$$
(96)

such that

$$\begin{aligned} \varvec{U}^{(fi)}_{e} = \varvec{P}_{e} \varvec{U}^{(fiu)}_{e} . \end{aligned}$$
(97)

Here, it is worth mentioning that the permutation matrix is the identity matrix for tensor-product elements.

The interpolation procedures may be expressed using the following matrices

$$\begin{aligned} \left( \varvec{M}^0_{e} \right) _{\sigma \rho }&= l^{(u)}_{e\rho }\left( \widetilde{\varvec{x}}^{(fe)}_{e\sigma }\right) \quad \text {with} \quad \dim \varvec{M}^0_{e} = N_{e}^{(fe)} \times N_{e}^{(u)}, \nonumber \\ \left( \varvec{M}^{12}_{e} \right) _{\sigma \rho }&= l^{(u)}_{e\rho }\left( \widetilde{\varvec{x}}^{(fiu)}_{e\sigma }\right) \quad \text {with} \quad \dim \varvec{M}^{12}_{e} = N_{e}^{(fiu)} \times N_{e}^{(u)} . \end{aligned}$$
(98)

Hence,

$$\begin{aligned} \varvec{U}^{(fe)}_{e}&= \varvec{M}^0_{e}\varvec{U}^{(u)}_{e}, \nonumber \\ \varvec{U}^{(fiu)}_{e}&= \varvec{M}^{12}_{e}\varvec{U}^{(u)}_{e}, \nonumber \\ \varvec{U}^{(fi)}_{e}&= \varvec{M}^{12}_{e} \varvec{P}_{e} \varvec{U}^{(u)}_{e} . \end{aligned}$$
(99)

To compute the transformed gradients at solution points, let

$$\begin{aligned} \left( \varvec{M}^{15}_{e} \right) _{\sigma \rho }= & {} \hat{\widetilde{\varvec{n}}}^{(fi)}_{e\rho } [\varvec{\nabla }\cdot \varvec{l}^{(fi)}_{e\rho } ( \widetilde{\varvec{x}}^{(u)}_{e\sigma } )] \quad \text {with} \quad \dim \varvec{M}^{15}_{e} = N_{\text {D}}N_{e}^{(u)} \times N^{(fi)}_{e}, \nonumber \\ \left( \varvec{M}^{16}_{e} \right) _{\sigma \rho }= & {} \hat{\widetilde{\varvec{n}}}^{(fe)}_{e\rho } [\varvec{\nabla }\cdot \varvec{l}^{(fe)}_{e\rho } ( \widetilde{\varvec{x}}^{(u)}_{e\sigma } )] \quad \text {with} \quad \dim \varvec{M}^{16}_{e} = N_{\text {D}}N_{e}^{(u)} \times N^{(fe)}_{e},\nonumber \\ \left( \varvec{C}^{(fe)}_{e} \right) _{\rho n\alpha }= & {} {\mathfrak {C}}_{\alpha } u^{(fe)}_{e\rho n\alpha } \quad \text {with} \quad \dim \varvec{U}^{(fe)}_{e} = N_{e}^{(fe)} \times N_{\text {V}}|\varOmega _e|, \nonumber \\ \left( \widetilde{\varvec{Q}}^{(u)}_{e} \right) _{\rho n\alpha }= & {} \widetilde{\varvec{q}}^{(u)}_{e\rho n\alpha } \quad \text {with} \quad \dim \widetilde{\varvec{Q}}^{(u)}_{e} = N_{\text {D}}N_{e}^{(u)} \times N_{\text {V}}|\varOmega _e| . \end{aligned}$$
(100)

Therefore,

$$\begin{aligned} \widetilde{\varvec{Q}}^{(u)}_{e} = \varvec{M}^{16}_{e} \varvec{C}^{(fe)}_{e} + \varvec{M}^{15}_{e} \varvec{U}^{(fi)}_{e} = \varvec{M}^{16}_{e} \varvec{C}^{(fe)}_{e} + \varvec{M}^{15}_{e} \varvec{P}_{e} \varvec{M}^{12}_{e} \varvec{U}^{(u)}_{e} . \end{aligned}$$
(101)

The interpolation of the gradients may be carried out using the following operators

$$\begin{aligned} \varvec{M}^{5}_{e}= & {} \text {blockdiag}\left( \varvec{M}^{0}_{e}, \dots , \varvec{M}^{0}_{e} \right) \dim \varvec{M}^{5}_{e} = N_{\text {D}}N^{(fe)}_{e} \times N_{\text {D}}N^{(u)}_{e} ,\nonumber \\ \varvec{M}^{18}_{e}= & {} \text {blockdiag}\left( \varvec{M}^{12}_{e}, \dots , \varvec{M}^{12}_{e} \right) \dim \varvec{M}^{18}_{e} = N_{\text {D}}N^{(fiu)}_{e} \times N_{\text {D}}N^{(u)}_{e}, \nonumber \\ \left( \varvec{Q}^{(u)}_{e} \right) _{\rho n\alpha }= & {} \varvec{q}^{(u)}_{e\rho n\alpha } \quad \text {with} \quad \dim \varvec{Q}^{(u)}_{e} = N_{\text {D}}N_{e}^{(u)} \times N_{\text {V}}|\varOmega _e|, \nonumber \\ \left( \varvec{Q}^{(fe)}_{e} \right) _{\rho n\alpha }= & {} \varvec{q}^{(fe)}_{e\rho n\alpha } \quad \text {with} \quad \dim \varvec{Q}^{(fe)}_{e} = N_{\text {D}}N_{e}^{(fe)} \times N_{\text {V}}|\varOmega _e|, \nonumber \\ \left( \varvec{Q}^{(fiu)}_{e} \right) _{\rho n\alpha }= & {} \varvec{q}^{(fiu)}_{e\rho n\alpha } \quad \text {with} \quad \dim \varvec{Q}^{(fiu)}_{e} = N_{\text {D}}N_{e}^{(fiu)} \times N_{\text {V}}|\varOmega _e| , \end{aligned}$$
(102)

hence

$$\begin{aligned} \varvec{Q}^{(fe)}_{e}= & {} \varvec{M}^{5}_{e} \varvec{Q}^{(u)}_{e}, \nonumber \\ \varvec{Q}^{(fiu)}_{e}= & {} \varvec{M}^{18}_{e} \varvec{Q}^{(u)}_{e} . \end{aligned}$$
(103)

To compute the divergence of the fluxes at the solution points, let us define the following matrices

$$\begin{aligned} \left( \varvec{M}^{13}_{e} \right) _{\sigma \rho }= & {} \varvec{\nabla } \cdot \varvec{l}^{(fi)}_{e\rho }\left( \widetilde{\varvec{x}}^{(u)}_{e\sigma }\right) \quad \text {with} \quad \dim \varvec{M}^{13}_{e} = N_{e}^{(u)} \times N_{e}^{(fi)}, \nonumber \\ \left( \varvec{M}^{14}_{e} \right) _{\sigma \rho }= & {} \varvec{\nabla } \cdot \varvec{l}^{(fe)}_{e\rho }\left( \widetilde{\varvec{x}}^{(u)}_{e\sigma }\right) \quad \text {with} \quad \dim \varvec{M}^{14}_{e} = N_{e}^{(u)} \times N_{e}^{(fe)}, \nonumber \\ \left( \widetilde{\varvec{D}}^{(fe\bot )}_{e} \right) _{\rho n\alpha }= & {} {\mathfrak {F}}_{\alpha } \widetilde{\text {f}}^{(fe\bot )}_{e\rho n\alpha } \quad \text {with} \quad \dim \widetilde{\varvec{D}}^{(fe\bot )}_{e} = N_{e}^{(fe)} \times N_{\text {V}}|\varOmega _e|, \nonumber \\ \left( \widetilde{\varvec{F}}^{(fi\bot )}_{e} \right) _{\rho n\alpha }= & {} \widetilde{\text {f}}^{(fi\bot )}_{e\rho n\alpha } \quad \text {with} \quad \widetilde{\varvec{F}}^{(fi\bot )}_{e} = N_{e}^{(fi)} \times N_{\text {V}}|\varOmega _e|, \nonumber \\ \left( \widetilde{\varvec{F}}^{(fiu)}_{e} \right) _{\rho n\alpha }= & {} \widetilde{\varvec{\text {f}}}^{(fiu)}_{e\rho n\alpha } \quad \text {with} \quad \dim \widetilde{\varvec{F}}^{(fiu)}_{e} = N_{\text {D}}N_{e}^{(fiu)} \times N_{\text {V}}|\varOmega _e|, \nonumber \\ \left( \varvec{P}^{2}_{e} \right) _{\sigma \rho }= & {} \text {blockdiag}\left( \varvec{P}_{e}, \dots , \varvec{P}_{e} \right) \quad \text {with} \quad \dim \varvec{P}^{2}_{e} = N_{\text {D}}N^{(fi)}_{e} \times N_{\text {D}}N^{(fiu)}_{e}, \nonumber \\ \left( \varvec{M}^{19}_{e} \right) _{\sigma \rho }= & {} \hat{\widetilde{\varvec{n}}}^{(fi)}_{e\nu } \quad \text {with} \quad \dim \varvec{M}^{19}_{e} = N^{(fi)}_{e} \times N_{\text {D}}N^{(fiu)}_{e}, \nonumber \\ \left( \widetilde{\varvec{R}}^{(u)}_{e} \right) _{\rho n\alpha }= & {} (\widetilde{\varvec{\nabla }} \cdot \widetilde{\varvec{\text {f}}})^{(u)}_{e\rho n\alpha } \quad \text {with} \quad \dim \widetilde{\varvec{R}}^{(u)}_{e} = N_{e}^{(u)} \times N_{\text {V}}|\varOmega _e|, \end{aligned}$$
(104)

Hence,

$$\begin{aligned} \left( \widetilde{\varvec{R}}^{(u)}_{e} \right) _{\rho n\alpha } = \varvec{M}^{14}_{e} \widetilde{\varvec{D}}^{(fe\bot )}_{e} + \varvec{M}^{13}_{e} \widetilde{\varvec{F}}^{(fi\bot )}_{e} = \varvec{M}^{14}_{e} \widetilde{\varvec{D}}^{(fe\bot )}_{e} + \varvec{M}^{13}_{e} \varvec{M}^{19}_{e} \varvec{P}^{2}_{e} \widetilde{\varvec{F}}^{(fiu)}_{e} . \end{aligned}$$
(105)

to further optimize the computational performance, numerical solvers may take advantage of the fact that, for certain element types, specific columns of the operator \(\varvec{M}^{19}_{e} \varvec{P}^{2}_{e}\) are zero. The number of null columns is related to the ratio between the internal flux points the unique internal flux points and the RT basis of the considered element type (see Appendix A.4 and Appendix A). For example, with tensor-product elements, only one component of the transformed flux at each unique internal flux point is needed to update the residual. On the other hand, with triangular and tetrahedron elements, all \(N_{\text {D}}\) components of the transformed flux at each unique internal flux point are needed to compute the residual, i.e. no additional optimization is possible. With prismatic elements, a middle ground between tensor-product and tetrahedron elements is found. Taking into account such an a priori knowledge of the degrees-of-freedom associated with unique internal flux points allows to further optimize the computational performance by avoiding additional FLOPs related to the multiplication of the metric terms by the fluxes at unique internal flux points, at the cost of additional code complexity.

It is worth mentioning that the FR-SDRT and SDRT methods’ equivalence may also be proven using the matrix form of the SDRT method compared to that of the FR formulation described in [67]. This demonstration is left as an exercise for the reader.

Performance Comparison

In this section a comparison of the perforamance-per-iteration obtained with SDRT, FR-DG and FR-SDRT methods will be presented. To measure the performance, the parameter PM (measured in ns) defined in [67] as

$$\begin{aligned} \text {PM} = \frac{T}{N_{\text {iter}} N_{e}^{(u)} N_{\text {V}}|\varOmega _e| N_{\text {RK}}} 10^9 (n s) , \end{aligned}$$
(106)

is evaluated in the TGV test case (see Sect. 5.3). In the latter equation, T is the wall time needed to perform \(N_{\text {iter}}\) time integration steps, \(N_{\text {V}}= 5\) is the number of conserved variables and \(N_{\text {RK}} = 5\) is the number of stages of the RK54 time integrator used in the simulations. The mesh utilized consists of a total of \(|\varOmega _e| = 40^3\) tensor-product elements, which are subsequently subdivided in \(N_p\) cells to obtain meshes made up of prismatic or tetrahedral elements (following the procedure described Sect. 3). This parameter is evaluated four times with \(N_{\text {iter}} = 50\) after the initialization and warm up of the simulation, and it is then averaged. Additionally, the simulations are carried out using constant time step, neglecting possible issues arising from the use of adaptive time stepping.

Table 8 displays the performance parameter obtained with different type of elements, numerical schemes and polynomial degrees. The performance was measured using a single NVIDIA V100 GPU. Since all operations which involve parallel communications in SDRT schemes are equivalent to those found in FR methods, the strong and weak scaling of SDRT and FR schemes should be rather similar. Hence, the interested reader is referred to the work of [68] to further details of the parallel scalability of the SDRT schemes implemented in this work. The results indicate that FR-DG and FR-SDRT present the same performance, illustrating that FR-SDRT and FR-DG matrices have similar sparsity patterns. Moreover, the SDRT method shows degraded performance with hexahedral and prismatic elements when compared to FR schemes. As can be deduced from “Appendix Appendix B”, this issue is mostly related to additional interpolations that need to be carried out in the SDRT method and also due to the increased size of the divergence correction kernel related to the internal flux points. Nevertheless, SDRT and FR methods applied to tetrahedral elements show very similar performance. This could be due to an improved sparsity pattern of the divergence correction kernel related to the internal flux points with SDRT schemes. Future studies will analyze the FLOPs associated to each method to further understand the reasoning behind the differences in the performance measure obtained with each element type.

In the study presented herein, the performance is measured on an iteration-per-iteration basis. Nevertheless, it is worth considering that the time step arising from the adaptive time-stepping method of PyFR yields different values depending on the utilized scheme. In particular, it was observed (in Sect. 5.3) that both SDRT and FR-SD schemes present approximately 30% higher adaptive time step than FR-DG methods in certain configurations. Such variability of the time step was also observed in [42] when utilizing anti aliasing techniques in FR-DG simulations. The reason behind such a disparity of adaptive time step values is not yet understood, although it should indicate that unsteady simulations using FR-SDRT and SDRT schemes may be capable of collecting more meaningful data for a same computational wall time.

Remark 11

It is worth recalling that the performance parameter is non-dimensionalized with the number of solution points. Since, for a given polynomial degree, the element types present a different amount of solution points, the comparison of the data presented in Table 8 could be slightly misleading.

Remark 12

The performance of the SDRT schemes with prismatic elements could be further optimized by building specific kernels which exploit the number of degrees of freedom associated to each unique internal flux point (as explained “Appendix Appendix B”). The results depicted for hexahedral elements already present this optimization. Since all unique internal flux points contribute to \(N_{\text {D}}\) degrees of freedom in tetrahedral elements, this optimization procedure is not possible for such elements.

Table 8 Performance parameter Eq. 106 values obtained in the TGV test case with a mesh consisting of \(40^3 N_p\) cells as a function of the polynomial degree and the element type

Wavenumber Aliasing

From Eq. 50, the numerical solution of a linear problem in the asymptotic limit \(m \rightarrow \infty \) can be written as

$$\begin{aligned} \lim _{m \rightarrow \infty } U_{\rho } (m \varDelta t) = {\mathbb {W}}_{\rho SP} \varLambda _{SP}^m \gamma _{SP}, \end{aligned}$$
(107)

provided that the spectral radius is unique. In the latter equation, the index SP refers to the index of the spectral radius eigenmode. Eq. 107 indicates that the numerical solution tends to align with the spectral radius eigenvector in the asymptotic limit. If the spectral radius is not unique, then Eq. 107 would need to be modified by adding the contribution of the eigenmodes whose absolute value of the their associated eigenvalue is equal to the spectral radius.

Using the Matrix-Power-Method theory [54], the ratio between the numerical solution norm and the initial condition norm in the asymptotic limit \(m \rightarrow \infty \) (which measures the dissipation of the numerical solution) is given by

$$\begin{aligned} \lim _{m \rightarrow \infty } \frac{\left\Vert U(m \varDelta t)\right\Vert }{\left\Vert U(0)\right\Vert } \approx \frac{ \left\Vert {\mathbb {W}}_{\rho SP} \varLambda _{SP}^m \gamma _{SP}\right\Vert }{ \left\Vert {\mathbb {W}}_{\rho \nu } \varLambda _{\nu }^m \gamma _{\nu }\right\Vert } . \end{aligned}$$
(108)

Hence, the dissipation in the asymptotic limit depends on the spectral radius and the initial energy contribution of the spectral radius eigenmode. If one considers the ratio of dissipation from a given iteration m and a second iteration \(m - q\) with \(q \ll m\) then

$$\begin{aligned} \lim _{m \rightarrow \infty } \frac{\left\Vert U(m \varDelta t)\right\Vert }{\left\Vert U((m - q) \varDelta t)\right\Vert } \approx \frac{ \left\Vert {\mathbb {W}}_{\rho SP} \varLambda _{SP}^m \gamma _{SP}\right\Vert }{ \left\Vert {\mathbb {W}}_{\rho SP} \varLambda _{SP}^{m - q} \gamma _{SP}\right\Vert } = |\varLambda _{SP}|^{q} . \end{aligned}$$
(109)

Therefore, the ratio of dissipation in the asymptotic limit, measured in an iteration-per-iteration basis is just given by the spectral radius. If the physical eigenmode is equivalent to the spectral radius and its energy contribution is much bigger than that of the other eigenmodes, then Eqs. 108 and 109 are certainly equivalent. If the physical eigenmode is not coincident with the spectral radius, then the asymptotic dissipation measured from Eq. 108 is heavily perturbed by the fact that the physical eigenmode is not coincident with the spectral radius eigenmode. Hence, the dissipation will be governed by the initial dissipation of the physical eigenmode until the solution aligns with the spectral radius eigenvector. Nevertheless, the asymptotic dissipation measured from an iteration-to-iteration perspective will always be given by the spectral radius, independently of its energy contribution to the initial condition. This might induce wavenumber aliasing issues that had not been previously discussed in the literature.

Remark 13

For the sake of brevity, the discussion of the asymptotic behavior of the dispersion is avoided, since similar conclusions to those drawn from the dissipation analysis can be obtained as was demonstrated in [54].

1.1 Spectral Radius and Aliasing

The numerical solution characteristics of a linear problem in a structured and periodic mesh are governed by the eigenvalues and eigenvectors of matrix \({\mathbb {G}}\) (see Sect. 3), which is obtained as

$$\begin{aligned} {\mathbb {G}}_{\rho \nu } = \sum _{n\in {\mathcal {C}}} {\mathbb {J}}_{\rho n\nu } \text {e}^{\text {I}\varvec{\kappa } \cdot \left( \varvec{x}_{n} - \varvec{x}_0 \right) } . \end{aligned}$$
(110)

Let us recall the following wave/wavenumber aliasing identities

$$\begin{aligned} \text {e}^{\text {I}a} = \text {conj}(\text {e}^{-\text {I}a}) \text { and } \text {e}^{\text {I}a} = \text {e}^{\text {I}( a + 2\pi m)} . \end{aligned}$$
(111)
Fig. 20
figure 20

\(L_2\)-norm of the solution error evaluated using Eq. 67 with \(m = 1\) (left) and \(m = 2\) (right) and obtained using different schemes together with meshes made up of hexahedral elements

In one-dimensional problems and when using the structured mesh arrangement illustrated in Eq. 47, it follows that matrix \({\mathbb {G}}\) is uniquely defined in the range \(\kappa h \in [-\pi , \pi ]\) due to the aforementioned aliasing identities. Hence, the spectral radius for any given \(\kappa h > \pi \) is related to that obtained with \( \text {ceil}({\kappa h/\pi }) \pi - \kappa h \text { if } \text {ceil}({\kappa h/\pi }) \text { is even } \text { and } \kappa h \mod 2 \pi \text { if } \text {ceil}({\kappa h/\pi }) \text { is odd, } \) i.e. the spectral radius is aliased. Such a fact is also observed in FDM and FVM, although in the latter methods the solution is always characterized by a single eigenmode. Nevertheless, the energy contribution of each eigenvector in SEM is not uniquely defined in \(\kappa h \in [0, \pi ]\), i.e. its range is \(\kappa h \in [-\infty , \infty )\). From a posteriori analyses [7], it can be observed that the physical eigenmode only coincides with the spectral radius for \(\kappa h < \pi \). Therefore, the asymptotic regime dissipation will only be well-characterized by the physical eigenmode for \(\kappa h < \pi \). At \(\kappa h = \pi \) the spectral radius is multi-valued, indicating the existence of a branch cut, where the spectral radius ceases to coincide with the physical mode. For other \(\kappa h > \pi \), aliasing will appear implying that the numerical dissipation and dispersion are highly unsteady and that the asymptotic dissipation on an iteration-per-iteration basis are reduced since the spectral radius is aliased. This behavior is similar to that observed in aliased wavenumbers with FDM and FVM. However, SEM present an additional dissipation mechanism due to the mismatch between the physical and the spectral radius eigenmodes.

Remark 14

For the sake of simplicity, the extension of this analysis for two and three-dimensional cases is avoided, since there exist different types of wave aliasing in those configurations. Nevertheless, as itas was demonstrated in Sect. 3 similar observations regarding the aliasing behavior of the solution may be obtained in two and three-dimensional configurations.

Asymptotic Order of Accuracy with Pure Advection and Three-Dimensional Elements

Following what was developed in Sect. 5.1.1, Figs. 142021 and 22 represent the aforementioned error norm depicted in Eq. 67, hexahedral, prismatic and tetrahedral elements respectively. The error norm for most elements behaves similarly as that of quadrilateral elements. Nevertheless, it is worth mentioning the degraded accuracy of error norm computed for \(m = 2\) with tetrahedral elements and \({\mathfrak {p}}= 3\). Such a behavior was also observed in the analysis of the dispersion errors Sect. 3 and it may be related to the accuracy and configuration of the different eigenmodes of the SDRT method applied with tetrahedral elements, since this accuracy degradation is not observed for \(m = 1\).

Fig. 21
figure 21

\(L_2\)-norm of the solution error evaluated using Eq. 67 with \(m = 1\) (left) and \(m = 2\) (right) and obtained using different schemes together with meshes made up of prismatic elements

Fig. 22
figure 22

\(L_2\)-norm of the solution error evaluated using Eq. 67 with \(m = 1\) (left) and \(m = 2\) (right) and obtained using different schemes together with meshes made up of tetrahedral elements

Numerical Equivalence Between SDRT and FR

This section is devoted to the a posteriori assessment of the equivalence between the FR-SDRT and SDRT methods in two and three-dimensional elements. This allows to demonstrate the theoretical observations that were drawn in Sect. 2.3. To do so, the differences between simulations conducted with \(\text {Pe} = 10\), \(N = 30\) and FR-SDRT or SDRT schemes will be compared using a \(L_{\infty }\) norm evaluated at \(t = 2 \pi / c_0\), i.e., the biggest absolute difference of the numerical solution value at the solution points between FR-SDRT and SDRT simulations. For the sake of brevity, the results will only be presented for \({\mathfrak {p}}= 3\) and \({\mathfrak {p}}= 4\), although the equivalence has been validated a posteriori for all degrees \({\mathfrak {p}}\in [1, 4]\). Table 9 illustrates the biggest absolute difference of the solution points value between FR-SDRT and SDRT simulations for different element types and \({\mathfrak {p}}= 3\) and \({\mathfrak {p}}= 4\).Since this difference is of the same order of magnitude as machine round-off errors for all elements, the equivalence between FR-SDRT and SDRT schemes stated in Sect. 2.3 is also demonstrated through numerical experiments.

Table 9 Absolute difference (measured in the discrete \(L_\infty \) norm) of the solution points value between FR-SDRT and SDRT simulations for different element types and \({\mathfrak {p}}= 3 \text { and } 4\) in the simulation of the linear advection diffusion test case with \(\text {Pe}= 10\)

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

Sáez-Mischlich, G., Sierra-Ausín, J. & Gressier, J. The Spectral Difference Raviart–Thomas Method for Two and Three-Dimensional Elements and Its Connection with the Flux Reconstruction Formulation. J Sci Comput 93, 48 (2022). https://doi.org/10.1007/s10915-022-02002-7

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s10915-022-02002-7

Keywords

Navigation