zbMATH — the first resource for mathematics

odeToJava: a PSE for the numerical solution of IVPS. (English) Zbl 1347.65120
Summary: Problem-solving environments (PSEs) offer a powerful yet flexible and convenient means for general experimentation with computational methods, algorithm prototyping, and visualization and manipulation of data. Consequently, PSEs have become the modus operandi of many computational scientists and engineers. However, despite these positive aspects, PSEs typically do not offer the level of granularity required by the specialist or algorithm designer to conveniently modify the details. In other words, the level at which PSEs are black boxes is often still too high for someone interested in modifying an algorithm as opposed to trying an alternative.
In this article, we describe odeToJava, a Java-based PSE for initial-value problems in ordinary differential equations. odeToJava implements explicit and linearly implicit implicit-explicit Runge-Kutta methods with error and stepsize control and intra-step interpolation (dense output), giving the user control and flexibility over the implementational aspects of these methods. We illustrate the usage and functionality of odeToJava by means of computational case studies of initial-value problems (IVPs).
Reviewer: Reviewer (Berlin)
65L05 Numerical methods for initial value problems
65L06 Multistep, Runge-Kutta and extrapolation methods for ordinary differential equations
65Y15 Packaged methods for numerical algorithms
Full Text: DOI
[1] E. Arge, A. M. Bruaset, and H. P. Langtangen. 1997. Object-Oriented Numerics. Birkhäuser, Boston, MA 7–26. · Zbl 0880.68005 · doi:10.1007/978-1-4612-1984-2_1
[2] H. Arndt, M. Bundschus, and A. Naegele. 2009. Towards a next-generation matrix library for Java. In Proceedings of the 33rd Annual IEEE International Computer Software and Applications Conference (COMPSAC’09), Vol. 1. IEEE, 460–467. · doi:10.1109/COMPSAC.2009.67
[3] K. Arnold, J. Gosling, and D. Holmes. 2005. The Java(TM) Programming Language 4th Ed., Addison-Wesley Professional, Boston, MA.
[4] U. M. Ascher, S. J. Ruuth, and R. J. Spiteri. 1997. Implicit-explicit Runge–Kutta methods for time-dependent partial differential equations. Appl. Numer. Math. 25, 2–3, 151–167. (Special Issue on Time Integration.) · Zbl 0896.65061 · doi:10.1016/S0168-9274(97)00056-1
[5] S. Balay, W. D. Gropp, L. C. McInnes, and B. F. Smith. 1997. Efficient management of parallelism in object oriented numerical software libraries. In Modern Software Tools in Scientific Computing, E. Arge, A. M. Bruaset, and H. P. Langtangen, Eds., Birkhäuser Press, Boston, MA., 163–202. · Zbl 0882.65154 · doi:10.1007/978-1-4612-1986-6_8
[6] L. Bass, P. Clements, and R. Kazman. 2003. Software Architecture in Practice. Addison-Wesley, Boston, MA.
[7] J. Bloch. 2008. Effective Java 2nd Ed., The Java series, Addison–Wesley Professional, Upper Saddle River, NJ.
[8] R. Boisvert, J. Rice, and E. Houstis. 1978. A System for performance evaluation of partial differential equations software. IEEE Trans. Softw. Eng. 5, 4, 418–425.
[9] S. Boscarino. 2007. Error analysis of IMEX Runge–Kutta methods derived from differential-algebraic systems. SIAM J. Numer. Anal. 45, 4, 1600–1621. · Zbl 1152.65088 · doi:10.1137/060656929
[10] S. Boscarino. 2009. On an accurate third-order implicit-explicit Runge–Kutta method for stiff problems. Appl. Numer. Math. 59, 7, 1515–1528. · Zbl 1162.65367 · doi:10.1016/j.apnum.2008.10.003
[11] P. N. Brown, G. D. Byrne, and A. C. Hindmarsh. 1989. VODE: A variable-coefficient ODE solver. SIAM J. Sci. Stat. Comput. 10, 5, 1038–1051. · Zbl 0677.65075 · doi:10.1137/0910062
[12] F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal. 1996. Pattern-Oriented Software Architecture: A System of Patterns, vol. 1. Wiley, New York.
[13] M. Calvo, D. Higham, J. Montijano, and L. Rández. 1997. Stepsize selection for tolerance proportionality in explicit Runge–Kutta codes. Adv. Comput. Math. 7, 3, 361–382. · Zbl 0891.65097
[14] M. P. Calvo, J. de Frutos, and J. Novo. 2001. Linearly implicit Runge–Kutta methods for advection-reaction-diffusion equations. Appl. Numer. Math. 37, 4, 535–549. · Zbl 0983.65106 · doi:10.1016/S0168-9274(00)00061-1
[15] M. P. Calvo and J. M. Sanz-Serna. 1992. Variable steps for symplectic integrators. In Numerical Analysis 1991 (Dundee, 1991). Pitman. Res. Notes Math. Ser. Series, vol. 260, Longman Sci Tech, Harlow, 34–48. · Zbl 0795.65049
[16] S. Cirilli, E. Hairer, and B. Leimkuhler. 1999. Asymptotic error analysis of the adaptive Verlet method. BIT 39, 1, 25–33. · Zbl 0924.65070 · doi:10.1023/A:1022313123291
[17] CODEE 2012. C⋆ODE⋆E: Community of ordinary differential equations educators. http://www.codee.org/.
[18] G. J. Cooper and A. Sayfy. 1983. Additive Runge–Kutta methods for stiff ordinary differential equations. Math. Comp. 40, 161, 207–218. · Zbl 0525.65053 · doi:10.1090/S0025-5718-1983-0679441-1
[19] G. Culler and B. Fried. 1963. An on-line computing center for scientific problems. Tech. Rep., Data processing laboratory, Rome air development center, USAF.
[20] J.-M. Dautelle. 2007. Fully time deterministic Java. Tec. Rep., American Institute of Aeronautics and Astronautics. http://arc.aiaa.org/doi/abs/10.2514/6.2007-6184.
[21] P. Dibble, R. Belliardi, B. Brosgol, et al. 2006. The Real-time Specification for Java. Addison–Wesley Professional, Boston, MA.
[22] J. R. Dormand and P. J. Prince. 1980. A family of embedded Runge-Kutta formulae. J. Comput. Appl. Math. 6, 1, 19–26. · Zbl 0448.65045 · doi:10.1016/0771-050X(80)90013-3
[23] W. H. Enright. 2002. The design and implementation of usable ODE software. Numer. Alg. 31, 1–4, 125–137. · Zbl 1012.65071
[24] W. H. Enright and T. E. Hull. 1976. Test results on initial value methods for non-stiff ordinary differential equations. SIAM J. Num. Anal. 13, 6, 944–961. · Zbl 0355.65057 · doi:10.1137/0713075
[25] W. H. Enright, T. E. Hull, and B. Lindberg. 1975. Comparing numerical methods for stiff systems of ODEs. BIT 15, 2, 10–48. · Zbl 0301.65040 · doi:10.1007/BF01932994
[26] W. H. Enright and J. D. Pryce. 1987. Two FORTRAN packages for assessing initial value methods. ACM Trans. Math. Softw. 13, 1, 1–27. · Zbl 0617.65069 · doi:10.1145/23002.27645
[27] E. Gamma, R. Helm, R. Johnson, and J. Vlissides. 1995. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston, MA. · Zbl 0887.68013
[28] C. Gear and O. Østerby. 1984. Solving ordinary differential equation with discontinuities. ACM Trans. Math. Softw. 10, 1, 23–44.
[29] E. Hairer, C. Lubich, and G. Wanner. 2002. Geometric Numerical Integration. Structure-preserving algorithms for ordinary differential equations. Springer Series in Computational Mathematics Series, vol. 31, Springer-Verlag, Berlin. · Zbl 0994.65135
[30] E. Hairer, S. P. Nørsett, and G. Wanner. 1993. Solving Ordinary Differential Equations I: Nonstiff Problems 2nd Ed., Springer Series in Computational Mathematics, vol. 8, Springer-Verlag, Berlin. · Zbl 0789.65048
[31] E. Hairer and G. Söderlind. 2005. Explicit, time reversible, adaptive step size control. SIAM J. Sci. Comput. 26, 6, 1838–1851 (electronic). · Zbl 1081.65117
[32] E. Hairer and G. Wanner. 1996. Solving Ordinary Differential Equations II: Stiff and Differential-Algebraic Problems. Springer Series in Computational Mathematics Series, vol. 14, Springer-Verlag, Berlin. · Zbl 1192.65097 · doi:10.1007/978-3-642-05221-7
[33] A. C. Hindmarsh, P. N. Brown, K. E. Grant, S. L. Lee, R. Serban, D. E. Shumaker, and C. S. Woodward. 2005. SUNDIALS: Suite of nonlinear and differential/algebraic equation solvers. ACM Trans. Math. Softw. 31, 3, 363–396. · Zbl 1136.65329 · doi:10.1145/1089014.1089020
[34] E. N. Houstis and J. R. Rice. 2000. On the future of problem solving environments. Tech. Rep., Purdue Univ., Department of Computer Science. · Zbl 0972.68146
[35] W. Huang and B. Leimkuhler. 1997. The adaptive Verlet method. SIAM J. Sci. Comput. 18, 1, 239–256. (Dedicated to C. William Gear on the occasion of his 60th birthday.) · Zbl 0877.65048
[36] T. E. Hull, W. H. Enright, B. Fellen, and A. E. Sedgwick. 1972. Comparing numerical methods for ordinary differential equations. SIAM J. Num. Anal. 9, 4, 603–607. · Zbl 0221.65115 · doi:10.1137/0709052
[37] W. Hundsdorfer and J. G. Verwer. 2003. Numerical Solution of Time-Dependent Advection-Diffusion-Reaction Equations. Springer-Verlag, Berlin. · Zbl 1030.65100 · doi:10.1007/978-3-662-09017-6
[38] M. S. Kamel, K. S. Ma, and W. H. Enright. 1993. ODEXPERT: An expert system to select numerical solvers for initial value ODE systems. ACM Trans. Math. Softw. 19, 1, 44–62. · Zbl 0889.65074 · doi:10.1145/151271.151275
[39] C. F. Kemerer. 1987. An empirical validation of software cost estimation models. Commun. ACM 30, 5, 416–429. · doi:10.1145/22899.22906
[40] C. A. Kennedy and M. H. Carpenter. 2003. Additive Runge–Kutta schemes for convection-diffusion-reaction equations. Appl. Numer. Math. 44, 1–2, 139–181. · Zbl 1013.65103 · doi:10.1016/S0168-9274(02)00138-1
[41] D. I. Ketcheson. 2013. SharpClaw Software.
[42] M. Klerer and J. Reinfelds. 1968. Interactive Systems for Experimental Applied Mathematics. Academic Press, New York. · Zbl 0191.45801
[43] P. Knoll and S. Mirzaei. 2010. Scientific computing with Java. Comput. Appl. Eng. Educat. 18, 3, 495–501. · doi:10.1002/cae.20217
[44] A. Kroshko and R. J. Spiteri. 2013. Efficient SIMD solution of multiple systems of stiff IVPs. J. Comput. Sci. 4, 377–385. · doi:10.1016/j.jocs.2012.08.017
[45] J. D. Lambert. 1991. Numerical Methods for Ordinary Differential Systems. Wiley, Chichester. · Zbl 0745.65049
[46] H. P. Langtangen. 2009. Python Scripting for Computational Science 3rd Ed. Springer, Berlin. · Zbl 1049.68032
[47] B. Leimkuhler and S. Reich. 2004. Simulating Hamiltonian dynamics. Cambridge University Press, Cambridge, UK. · Zbl 1069.65139
[48] R. LeVeque, M. Berger, et al. 2013. Clawpack Software, http://www.clawpack.org.
[49] M. Lucks and I. Gladwell. 1992. Automated selection of mathematical software. ACM Trans. Math. Softw. 18, 1, 11–34. · Zbl 0892.65038 · doi:10.1145/128745.128747
[50] C.-H. Luo and Y. Rudy. 1991. A Model of ventricular cardiac action potential. Circ. Res. 68, 6, 1501–1526. · doi:10.1161/01.RES.68.6.1501
[51] K. T. Mandli, D. I. Ketcheson, et al. 2011. PyClaw software.
[52] S. Martin-Michiellot. 2008. JScience, a general scientific API in Java. http://java.net/projects/jscience.
[53] F. Mazzia and C. Magherini. 2008. Test set for initial value problem solvers, release 2.4. Tech. Rep. 4, Department of Mathematics, University of Bari, Italy.
[54] S. Mesuro, B. Kotcon, D. Rozenfeld, and A. Yodpinyanee. 2011. ODEToolkit: Final report for community of ordinary differential equations educators. Tech. Rep., Harvey Mudd College.
[55] R. E. Mickens. 2005. Nonstandard finite difference methods. In Advances in the Applications of Nonstandard Finite Difference Schemes. World Science Publications, Hackensack, NJ, 1–9. · Zbl 1085.65071 · doi:10.1142/9789812703316_0001
[56] U. Nowak and S. Gebauer. 1988. A new test frame for ordinary differential equation solvers. Tech. Rep., Konrad-Zuse-Zentrum für Informationstechnik. · Zbl 0968.65045
[57] T. Oliphant. 2007. Python for scientific computing. Comput. Sci. Eng. 9, 3, 10–20. · Zbl 05333418 · doi:10.1109/MCSE.2007.58
[58] H. Olsson. 1997. Object-oriented solvers for initial-value problems. In Modern Software Tools for Scientific Computing. Birkhäuser, Boston, MA. 45–62. · Zbl 0882.65062 · doi:10.1007/978-1-4612-1986-6_2
[59] J. Ousterhout. 1998. Scripting: Higher level programming for the 21st century. Computer 31, 3, 23–30. · Zbl 05088126 · doi:10.1109/2.660187
[60] M. D. Patterson. 2003. Implementing Runge-Kutta solvers in Java. www.cs.usask.ca∼spiteri/students/mpatterson_bcs_thesis.ps.
[61] L. D. Paulson. 2007. Developers shift to dynamic programming languages. Computer 40, 2, 12–15. · Zbl 05331599 · doi:10.1109/MC.2007.53
[62] D. Petcu. 2004. Software issues in solving initial value problems for ordinary differential equations. Creative Math. 13, 97–100.
[63] D. Petcu and M. Drăgan. 2000. Designing an ODE solving environment. In Advances in Software Tools for Scientific Computing, H. P. Langtangen, A. M. Bruaset, and E. Quak Eds., Springer, Berlin, 89–131. · Zbl 0943.65080
[64] K. Radhakrishnan and A. C. Hindmarsh. 1993. Description and use of LSODE, the Livemore solver for ordinary differential equations. Tech. Rep., Lawrence Livermore National Laboratory (LLNL), Livermore, CA. · doi:10.2172/15013302
[65] J. R. Rice and R. F. Boisvert. 1996. From scientific software libraries to problem-solving environments. IEEE Comput. Sci. Eng. 3, 3, 44–53. · Zbl 05092148 · doi:10.1109/99.537091
[66] S. Rush and H. Larsen. 1978. A practical algorithm for solving dynamic membrane equations. IEEE Trans. Bio-Med. Eng. 4, 389–392. · doi:10.1109/TBME.1978.326270
[67] A. Sandu, J. Verwer, J. Blom, E. Spee, and F. A. Potra. 1997. Benchmarking stiff ODE solvers for atmospheric chemistry problems II: Rosenbrock solvers. Atmos. Environ. 31, 19, 3459–3472. · doi:10.1016/S1352-2310(97)83212-8
[68] L. F. Shampine. 1981. Evaluation of a test set for stiff ODE solvers. ACM Trans. Math. Softw. 7, 4, 409–420. · doi:10.1145/355972.355973
[69] L. F. Shampine. 1994. Numerical Solution of Ordinary Differential Equations. Chapman & Hall, New York. · Zbl 0832.65063
[70] L. F. Shampine. 2007. Design of software for ODEs. J. Comput. Appl. Math. 205, 2, 901–911. · Zbl 1116.65085 · doi:10.1016/j.cam.2006.01.051
[71] L. F. Shampine and R. M. Corless. 2000. Initial value problems for ODEs in problem solving environments. J. Comput. Appl. Math. 125, 1–2, 31–40. · Zbl 0971.65062 · doi:10.1016/S0377-0427(00)00456-8
[72] L. F. Shampine, I. Gladwell, and S. Thompson. 2003. Solving ODEs with MATLAB. Cambridge University Press, Cambridge, UK. · Zbl 1079.65144 · doi:10.1017/CBO9780511615542
[73] L. F. Shampine and M. W. Reichelt. 1997. The MATLAB ODE suite. SIAM J. Sci. Comput. 18, 1, 1–22. (Dedicated to C. William Gear on the occasion of his 60th birthday.) · Zbl 0868.65040
[74] G. Söderlind. 2002. Automatic control and adaptive time-stepping. Numer. Algor. 31, 1–4, 281–310. (Numerical methods for ordinary differential equations (Auckland, 2001).)
[75] G. Söderlind and L. Wang. 2006. Evaluating numerical ODE/DAE methods, algorithms and software. J. Comput. Appl. Math. 185, 2, 244–260. · Zbl 1081.65533
[76] J. Stoer and R. Bulirsch. 2002. Introduction to Numerical Analysis (3rd ed.). Texts in Applied Mathematics Series, vol. 12. Springer-Verlag, New York.(Translated from the German by R. Bartels, W. Gautschi and C. Witzgall.) · Zbl 1004.65001 · doi:10.1007/978-0-387-21738-3
[77] G. L. Taboada, J. Touriño, and R. Doallo. 2009. Java for high performance computing: Assessment of current research and practice. In Proceedings of the 7th International Conference on Principles and Practice of Programming in Java (PPPJ’09). ACM, New York, 30–39. · doi:10.1145/1596655.1596661
[78] P. Wendykier and J. G. Nagy. 2010. Parallel colt: A high-performance Java library for scientific computing and image processing. ACM Trans. Math. Softw. 37, 3, 31:1–31:22. · Zbl 1364.65321
[79] D. A. Wheeler. 2004. SLOCCount. http://www.dwheeler.com/sloccount/.
[80] T. Zimmermann, Y. Dubois-Pèlerin, and P. Bomme. 1992. Object-oriented finite element programming: I: Governing principles. Comput. Meth. Appl. Mech. Eng. 98, 2, 291–303.
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. It attempts to reflect the references listed in the original paper as accurately as possible without claiming the completeness or perfect precision of the matching.