Skip to main content
Log in

Spherical Essentially Non-oscillatory (SENO) Interpolation

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

Abstract

We develop two new ideas for interpolation on \(\mathbb {S}^2\). In this first part, we will introduce a simple interpolation method named Spherical Interpolation of orDER n (SIDER-n) that gives a \(C^{n}\) interpolant given \(n \ge 2\). The idea generalizes the construction of the Bézier curves developed for \(\mathbb {R}\). The second part incorporates the ENO philosophy and develops a new Spherical Essentially Non-Oscillatory (SENO) interpolation method. When the underlying curve on \(\mathbb {S}^2\) has kinks or sharp discontinuity in the higher derivatives, our proposed approach can reduce spurious oscillations in the high-order reconstruction. We will give multiple examples to demonstrate the accuracy and effectiveness of the proposed approaches.

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

Similar content being viewed by others

Data availability

Enquiries about data availability should be directed to the authors.

References

  1. Adler, S.L.: Quaternionic quantum field theory. Commun. Math. Phys. 104, 611–656 (1986)

    Article  MathSciNet  MATH  Google Scholar 

  2. Barrera, T., Hast, A., Bengtsson, E.: Incremental spherical linear interpolation. In: The Annual SIGRAD Conference. Special Theme-Environmental Visualization, pp. 013, (2004)

  3. Benjamin Olinde Rodrigues. Des lois géométriques qui régissent les déplacements d’un système solide dans l’espace, et de la variation des coordonnées provenant de ces déplacements considérés indépendamment des causes qui peuvent les produire. Journal de Mathématiques Pures et Appliquées, pp. 380–440, 1840

  4. Dam, E.B., Koch, M., Lillholm, M.: Quaternions, Interpolation and Animation, vol. 2. Citeseer, (1998)

  5. Dantam, N.: Quaternion Computation. Georgia Institute of Technology, Institute for Robotics and Intelligent Machines (2014)

  6. Gibbon, J.D., Holm, D.D., Kerr, R.M., Roulstone, I.: Quaternions and particle dynamics in the Euler fluid equations. Nonlinearity 19(8), 1969–1983 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  7. Haarbach, A., Birdal, T., Ilic, S.: Survey of higher order rigid body motion interpolation methods for keyframe animation and continuous-time trajectory estimation. In: 2018 International Conference on 3D Vision (3DV), pp. 381–389, (2018)

  8. Hamilton, S.W.R.: Elements of Quaternions. Chelsea Publishing Co., (1963)

  9. Hanson, A.J., Ma, H.: Quaternion frame approach to streamline visualization. IEEE Trans. Visual. Comput. Graph. 1(2), 164–174 (1995)

    Article  Google Scholar 

  10. Harten, A., Engquist, B., Osher, S.J., Chakravarthy, S.: Uniformly high order accurate essentially non-oscillatory schemes. III. J. Comput. Phys. 71(2), 231–303 (1987)

    Article  MATH  Google Scholar 

  11. Jiang, G.S., Peng, D.: Weighted ENO schemes for Hamilton-Jacobi equations. SIAM J. Sci. Comput. 21, 2126–2143 (2000)

    Article  MathSciNet  MATH  Google Scholar 

  12. Kou, K.I., Xia, Y.-H.: Linear quaternion differential equations: basic theory and fundamental results. Stud. Appl. Math. 141(1), 3–45 (2018)

    Article  MathSciNet  MATH  Google Scholar 

  13. Kuipers, J.B.: Quaternions and Rotation Sequences: A Primer with Applications to Orbits. Aerospace and Virtual Reality, Princeton University Press, Princeton, New Jersey (2002)

    Google Scholar 

  14. Liu, X., Osher, S., Chan, T.: Weighted essentially non-oscillatory schemes. J. Comput. Phys. 115, 200–212 (1994)

    Article  MathSciNet  MATH  Google Scholar 

  15. Mukundan, R.: Quaternions: from classical mechanics to computer graphics, and beyond. In: Proceedings of the 7th Asian Technology Conference in Mathematics, pp. 97–105, (2002)

  16. Osher, S.J., Fedkiw, R.P.: Level Set Methods and Dynamic Implicit Surfaces. Springer-Verlag, New York (2003)

    Book  MATH  Google Scholar 

  17. Osher, S.J., Sethian, J.A.: Fronts propagating with curvature dependent speed: algorithms based on Hamilton-Jacobi formulations. J. Comput. Phys. 79, 12–49 (1988)

    Article  MathSciNet  MATH  Google Scholar 

  18. Proskova, J.: Description of protein secondary structure using dual quaternions. J. Mol. Struct. 1076, 89–93 (2014)

    Article  Google Scholar 

  19. Rapaport, D.C.: Molecular dynamics simulation using quaternions. J. Comput. Phys. 60, 306–314 (1985)

    Article  MATH  Google Scholar 

  20. Schoeller, S.F., Townsend, A.K., Westwood, T.A., Keaveny, E.E.: Methods for suspensions of passive and active filaments. J. Comput. Phys. 424, 109846 (2021)

    Article  MathSciNet  MATH  Google Scholar 

  21. Serna, S., Qian, J.: Fifth order weighted power-ENO methods for Hamilton-Jacobi equations. J. Sci. Comput. 29, 57–81 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  22. Sethian, J.A.: Level Set Methods, 2nd edn., Cambridge University Press (1999)

  23. Shingel, T.: Interpolation in special orthogonal groups. IMAJ Num. Analy. 29(3), 731–745 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  24. Shoemake, K.: Animating rotation with quaternion curves. In: Proceedings of the 12th Annual Conference on Computer Graphics and Interactive Techniques, pp. 245–254, (1985)

  25. Shu, C.W.: Essentially non-oscillatory and weighted essentially non-oscillatory schemes for hyperbolic conservation laws. In: Cockburn, B., Johnson, C., Shu, C.W., Tadmor, E. (eds.) Advanced Numerical Approximation of Nonlinear Hyperbolic Equations. Lecture Notes in Mathematics, vol. 1697, pp. 325–432. Springer, (1998)

  26. Shu, C.W.: Numerical experiments on the accuracy of ENO and modified ENO schemes. J. Sci. Comput. 5, 127–150 (1990)

    Article  MATH  Google Scholar 

  27. Shu, C.W., Osher, S.J.: Efficient implementation of essentially non-oscillatory shock capturing schemes. J. Comput. Phys. 77, 439–471 (1988)

    Article  MathSciNet  MATH  Google Scholar 

  28. Shu, C.W., Osher, S.: Efficient implementation of essentially non-oscillatory shock capturing schemes. J. Comput. Phys. 83, 32–78 (1989)

    Article  MathSciNet  MATH  Google Scholar 

  29. Solà, J.: Quaternion kinematics for the error-state Kalman filter. arXiv:1711.02508 [CS.RO], (2017)

  30. Tschisgale, S., Frohlich, J.: An immersed boundary method for the fluid-structure interaction of slender flexible structures in viscous fluid. J. Comput. Phys. 423, 109801 (2020)

    Article  MathSciNet  MATH  Google Scholar 

  31. Udwadia, F.E., Schutte, A.D.: An alternative derivation of the quaternion equations of motion for rigid-body rotational dynamics. J. Appl. Mech. 77, 044505 (2010)

    Article  Google Scholar 

  32. Watt, A.H., Watt, M.: Advanced Animation and Rendering Techniques: Theory and Practice. Addison-Wesley, (1992)

  33. Weinstein, R., Teran, J., Fedkiw, R.: Dynamic simulation of articulated rigid bodies with contact and collision. IEEE Trans. Visual. Comput. Graph. 12(3), 365–374 (2006)

    Article  Google Scholar 

  34. Wilczynski, P.: Quaternionic-valued ordinary differential equations. The Riccati equation. J. Diff. Equ. 247, 2163–2187 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  35. Zhang, F.: Quaternions and matrices of quaternions. Linear Algebra Appl. 251, 21–57 (1997)

    Article  MathSciNet  MATH  Google Scholar 

  36. Zhang, Y.-T., Shu, C.-W.: High order WENO schemes for Hamilton-Jacobi equations on triangular meshes. SIAM J. Sci. Comp. 24, 1005–1030 (2003)

    Article  MathSciNet  MATH  Google Scholar 

Download references

Funding

The work of Leung was supported in part by the Hong Kong RGC Grant 16302819.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Shingyu Leung.

Ethics declarations

Conflict of interest

The authors declare that they have no conflict of interest

Additional information

Publisher's Note

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

Appendix: Derivatives of SQUAD, SIDER2 and SIDER3

Appendix: Derivatives of SQUAD, SIDER2 and SIDER3

1.1 Time Derivatives of the Interpolants

Assume \(t \in [0, 1]\), and \(\mathbf {q_i}=(0,\mathbf {p_i})\) is the starting point. The derivatives of SLERP are given by

$$\begin{aligned} \dfrac{d}{dt}(\text {SLERP}(\mathbf {q_i}, \mathbf {q_{i+1}}, f(t)))^{\pm 1} = \pm \text {SLERP}(\mathbf {q_i}, \mathbf {q_{i+1}}, f(t)) \cdot \ln ((\mathbf {q_i})^{-1} \mathbf {q_{i+1}}) \cdot \dfrac{df(t)}{dt}. \end{aligned}$$

To simplify the expressions, we introduce the following notations.

$$\begin{aligned} \begin{array}{cccc} \text {Scheme} &{} \text {SIDER2} &{} \text {SQUAD} &{} \text {SIDER3} \\ f(t) &{} t &{} 2t(1-t) &{} t \\ g(t) &{} t &{} t &{} 3t/2 \\ h(t) &{} t &{} t &{} (3t-1)/2 \\ \textbf{p}(t) &{} \text {SLERP}(\mathbf {q_i}, \mathbf {d_{(i+1)a}}, t) &{} \text {SLERP}(\mathbf {q_i}, \mathbf {q_{i+1}}, t) &{} \text {SIDER2} (\mathbf {q_i}, \mathbf {q_{i+1}}, \mathbf {q_{i+2}}, t) \\ \textbf{s}(t) &{} \text {SLERP}(\mathbf {d_{(i+1)b}}, \mathbf {q_{i+2}}, t) &{} \text {SLERP}(\mathbf {s_i}, \mathbf {s_{i+1}}, t) &{} \text {SIDER2} (\mathbf {q_{i+1}}, \mathbf {q_{i+2}}, \mathbf {q_{i+3}}, t) \\ \end{array} \end{aligned}$$

Since

$$\begin{aligned} \begin{aligned}&(0, \textbf{p}(g(t))) \times ((0, -\textbf{p}(g(t))) \times (0, \textbf{s}(h(t))))^{f(t)} \\&\quad = (0, \mathbf {p_g}(t)) \times ((0, -\mathbf {p_g}(t)) \times (0, \mathbf {s_h}(t))^{f(t)}) \\&\quad = (0, \mathbf {p_g}(t)) \times (\mathbf {p_g}(t) \cdot \mathbf {s_h}(t), -\mathbf {p_g}(t) \times \mathbf {s_h}(t))^{f(t)} \\&\quad = (0, \mathbf {p_g}(t)) \times (\cos (\theta _{\textbf{ps}}(t)), \sin (\theta _{\textbf{ps}}(t)) \mathbf {a_{ps}}(t))^{f(t)} \\&\quad = (0, \mathbf {p_g}(t)) \times (\cos (f_{\theta , \textbf{ps}}(t)), \sin (f_{\theta , \textbf{ps}}(t)) \mathbf {a_{ps}}(t)), \end{aligned} \end{aligned}$$

the first and the second time derivatives are given by

$$\begin{aligned}{} & {} \dfrac{d}{dt} \left[ (0, \textbf{p}(g(t))) \times ((0, \textbf{p}(g(t))) \times (0, \textbf{s}(h(t))))^{f(t)}\right] \\{} & {} \quad = (0, (\mathbf {p_g})'(t)) \times (\cos (f_{\theta , \textbf{ps}}(t)), \sin (f_{\theta , \textbf{ps}}(t)) \mathbf {a_{ps}}(t)) - \mathbf {p_g}(t) \cdot \sin (f_{\theta , \textbf{ps}}(t)) \cdot (f_{\theta , \textbf{ps}})'(t) \\{} & {} \quad \quad + (0, \mathbf {p_g}(t)) \times (0, \cos (f_{\theta , \textbf{ps}}(t)) \cdot (f_{\theta , \textbf{ps}})'(t) \times \mathbf {a_{ps}}(t) + \sin (f_{\theta , \textbf{ps}}(t)) \times (\mathbf {a_{ps}})'(t)) \end{aligned}$$

and

$$\begin{aligned}{} & {} \dfrac{d}{dt} \left[ \dfrac{d}{dt} \left[ (0, \textbf{p}(g(t))) \times ((0, -\textbf{p}(g(t))) \times (0, \textbf{s}(h(t))))^{f(t)}\right] \right] \\{} & {} \quad = (0, -(\theta _{\textbf{p}})^2(\mathbf {p_g}(t))) \times (\cos (f_{\theta , \textbf{ps}}(t)), \sin (f_{\theta , \textbf{ps}}(t)) \mathbf {a_{ps}}(t)) \\{} & {} \quad \quad - 2(\mathbf {p_g})'(t) \cdot \sin (f_{\theta , \textbf{ps}}(t)) \cdot (f_{\theta , \textbf{ps}})'(t) \\{} & {} \quad \quad + 2 \cdot (0, (\mathbf {p_g})'(t)) \times (0, \cos (f_{\theta , \textbf{ps}}(t)) \cdot (f_{\theta , \textbf{ps}})'(t) \times \mathbf {a_{ps}}(t) + \sin (f_{\theta , \textbf{ps}}(t)) \times (\mathbf {a_{ps}})'(t)) \\{} & {} \quad \quad - \mathbf {p_g}(t) \cdot (\cos (f_{\theta , \textbf{ps}}(t)) \cdot ((f_{\theta , \textbf{ps}})'(t))^2 + \sin (f_{\theta , \textbf{ps}}(t)) \cdot (f_{\theta , \textbf{ps}})''(t)) \\{} & {} \quad \quad + (0, \mathbf {p_g}(t)) \times (0, (\cos (f_{\theta , \textbf{ps}}(t)) \cdot (f_{\theta , \textbf{ps}})''(t) - \sin (f_{\theta , \textbf{ps}}(t)) \cdot ((f_{\theta , \textbf{ps}})'(t))^2) \times \mathbf {a_{ps}}(t)) \\{} & {} \quad \quad + (0, \mathbf {p_g}(t)) \times (0, 2 \cos (f_{\theta , \textbf{ps}}(t)) \cdot (f_{\theta , \textbf{ps}})'(t) \times (\mathbf {a_{ps}})'(t) + \sin (f_{\theta , \textbf{ps}}(t)) \times (\mathbf {a_{ps}})''(t)) \end{aligned}$$

where

$$\begin{aligned} \theta _{\textbf{p}}= & {} \arccos (\mathbf {p_i} \cdot \mathbf {c_{(i+1)a}} \text { for SIDER2 or } \cdot \mathbf {p_{i+1}} \text { for SQUAD}), \\ \mathbf {a_p}= & {} (-\mathbf {p_i} \times \mathbf {c_{(i+1)a}} \text { for SIDER2 or } \times \mathbf {p_{i+1}} \text { for SQUAD}) / \sin (\theta _{\textbf{p}}), \\ (0, \mathbf {p_g}(t))= & {} (0, \textbf{p}(g(t))) = (\cos (g(t) \cdot \theta _{\textbf{p}}))\mathbf {p_i} + (\sin (g(t) \cdot \theta _{\textbf{p}}))(\mathbf {a_p} \times \mathbf {p_i}), \nonumber \\ (0, \mathbf {s_h}(t))= & {} (0, \textbf{s}(h(t))), \\ (\mathbf {p_g})'(t)= & {} (\theta _{\textbf{p}})(\mathbf {a_p} \times \mathbf {p_g}(t)), (\mathbf {p_g})''(t) = -(\theta _{\textbf{p}})^2(\mathbf {p_g}(t)) \\ \theta _{\textbf{ps}}(t)= & {} \arccos (\mathbf {p_g}(t) \cdot \mathbf {s_h}(t)), \\ (\theta _{\textbf{ps}})'(t)= & {} -((\mathbf {p_g})'(t) \cdot \mathbf {s_h}(t) + \mathbf {p_g}(t) \cdot (\mathbf {s_h})'(t)) / \sin (\theta _{\textbf{ps}}(t)), \\ {(\theta _{\textbf{ps}})''(t)}= & {} -((\mathbf {p_g})''(t) \cdot \mathbf {s_h}(t) + 2 \cdot (\mathbf {p_g})'(t) \cdot (\mathbf {s_h})'(t) + \mathbf {p_g}(t) \cdot (\mathbf {s_h})''(t)\\{} & {} + \cos (\theta _{\textbf{ps}}(t)) \cdot ((\theta _{\textbf{ps}})'(t))^2) / \sin (\theta _{\textbf{ps}}(t)), \nonumber \\ \mathbf {a_{ps}}(t)= & {} (-\mathbf {p_g}(t) \times \mathbf {s_h}(t))/\sin (\theta _{\textbf{ps}}(t)), \\ (\mathbf {a_{ps}})'(t)= & {} (-(\mathbf {p_g})'(t) \times \mathbf {s_h}(t) + (-\mathbf {p_g}(t)) \times (\mathbf {s_h})'(t) \\{} & {} - \cos (\theta _{\textbf{ps}}(t)) \times (\theta _{\textbf{ps}})'(t) \times \mathbf {a_{ps}}(t))/\sin (\theta _{\textbf{ps}}(t)), \nonumber \\ (\mathbf {a_{ps}})''(t)= & {} (-(\mathbf {p_g})''(t) \times \mathbf {s_h}(t) + 2 \cdot (-(\mathbf {p_g})'(t)) \times (\mathbf {s_h})'(t) + (-\mathbf {p_g}(t)) \times (\mathbf {s_h})''(t) \nonumber \\{} & {} + \sin (\theta _{\textbf{ps}}(t)) \times ((\theta _{\textbf{ps}})'(t))^2 \times \mathbf {a_{ps}}(t) - \cos (\theta _{\textbf{ps}}(t)) \times (\theta _{\textbf{ps}})''(t) \times \mathbf {a_{ps}}(t) \\{} & {} - 2 \cdot \cos (\theta _{\textbf{ps}}(t)) \times (\theta _{\textbf{ps}})'(t) \times (\mathbf {a_{ps}})'(t))/\sin (\theta _{\textbf{ps}}(t)), \nonumber \\ f_{\theta , \textbf{ps}}(t)= & {} f(t) \cdot \theta _{\textbf{ps}}(t), \quad \dfrac{d^n f_{\theta , \textbf{ps}}(t)}{dt^n} = \sum _{r = 0}^n \dfrac{d^r f(t)}{dt^r} \cdot \dfrac{d^{n-r} \theta _{\textbf{ps}}(t)}{dt^{n-r}}. \text { (product rule}) \, . \end{aligned}$$

The derivatives of \(\mathbf {s_h}(t)\) follows the same manner as \(\mathbf {p_g}(t)\), but they are not explicitly written out because \(\textbf{p}(t), \textbf{s}(t), f(t), g(t)\) and/or h(t) of SQUAD, SIDER2 and SIDER3 are not the same.

1.2 Angular Derivatives of the Interpolants

With references to [5], if the interpolant is \(\textbf{q}(t)\), then we can deduce that

$$\begin{aligned} \begin{aligned} \mathbf {\omega }(t)&= 2 \textbf{q}'(t) \times (\textbf{q}(t))^{-1}, \\ \mathbf {\alpha }(t)&= (2\textbf{q}''(t) - \mathbf {\omega }(t) \times \textbf{q}'(t)) \times (\textbf{q}(t))^{-1}, \text { and} \\ \mathbf {\zeta }(t)&= (2\textbf{q}'''(t) - 2 \mathbf {\alpha }(t) \times \textbf{q}'(t) - \mathbf {\omega }(t) \times \textbf{q}''(t)) \times (\textbf{q}(t))^{-1}. \end{aligned} \end{aligned}$$

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) 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

Fong, K.W., Leung, S. Spherical Essentially Non-oscillatory (SENO) Interpolation. J Sci Comput 94, 28 (2023). https://doi.org/10.1007/s10915-022-02080-7

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

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

Keywords

Navigation