skip to main content
10.1145/1878537.1878636acmotherconferencesArticle/Chapter ViewAbstractPublication PagesspringsimConference Proceedingsconference-collections
research-article

py_bvp: a universal Python interface for BVP codes

Published:11 April 2010Publication History

ABSTRACT

Boundary-value problems (BVPs) for ordinary differential equations arise in many important applications, and over the last few decades a number of high-quality software packages for this problem class have been developed. Some of these solvers have been designed for use on high-performance computers, and there is potential for further development in this direction. Unfortunately these codes, typically written in languages like Fortran or C, require complicated parameter lists and user-written subroutines. Moreover, researchers often want to try more than one solver on a given problem, and doing so can be challenging because the different interfaces to each package require distinctly different code to be written to describe the problem to be solved. In this paper, we present a Python environment called py_bvp that is specifically designed for the numerical solution of BVPs. In addition to providing a uniform interface that allows multiple BVP codes to be conveniently accessed, several tools are provided to support researchers who want to try to use these codes. Furthermore, the py_bvp environment is designed to allow additional BVP codes and tools to be easily added. We discuss the design decisions made to ensure that py_bvp is both user-friendly and easily expandable and give examples to illustrate its use.

References

  1. U. M. Ascher, J. Christiansen, and R. D. Russell. COLSYS-a collocation code for boundary-value problems. In Proceedings of a Working Conference on Codes for Boundary-Value Problems in Ordinary Differential Equations, pages 164--185, London, UK, 1979. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. U. M. Ascher, R. M. M. Mattheij, and R. D. Russell. Numerical solution of boundary value problems for ordinary differential equations, volume 13 of Classics in Applied Mathematics. Society for Industrial and Applied Mathematics (SIAM), Philadelphia, PA, 1995. Corrected reprint of the 1988 original.Google ScholarGoogle Scholar
  3. G. Bader and U. M. Ascher. A new basis implementation for a mixed order boundary value ODE solver. SIAM J. Sci. Statist. Comput., 8(4):483--500, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J. R. Cash and F. Mazzia. A new mesh selection algorithm, based on conditioning, for two-point boundary value codes. J. Comput. Appl. Math., 184(2):362--381, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. J. R. Cash and M. H. Wright. A deferred correction method for nonlinear two-point boundary value problems: implementation and numerical evaluation. SIAM J. Sci. Statist. Comput., 12(4):971--989, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. cca forum. The Common Component Architecture Forum. www.cca-forum.org/index.html.Google ScholarGoogle Scholar
  7. W. H. Enright and P. H. Muir. Runge--Kutta software with defect control for boundary value ODEs. SIAM J. Sci. Comput., 17(2):479--497, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. IMSL. imsl_f_bvp_finite_difference. www.vni.com/products/imsl/documentation/CNL700_Docs/Cmath.pdf.Google ScholarGoogle Scholar
  9. J. Kierzenka and L. F. Shampine. A BVP solver based on residual control and the MATLAB PSE. ACM Trans. Math. Software, 27(3):299--316, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. J. Kierzenka and L. F. Shampine. A BVP solver that controls residual and error. JNAIAM J. Numer. Anal. Ind. Appl. Math., 3(1--2):27--41, 2008.Google ScholarGoogle Scholar
  11. Mathematica. www.wolfram.com/products/mathematica/index.html.Google ScholarGoogle Scholar
  12. MATLAB. www.mathworks.com/products/matlab/.Google ScholarGoogle Scholar
  13. matplotlib. matplotlib.sourceforge.net.Google ScholarGoogle Scholar
  14. F. Mazzia and D. Trigiante. A hybrid mesh selection strategy based on conditioning for boundary value ODE problems. Numer. Algorithms, 36(2):169--187, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  15. P. Muir, R. Pancer, and K. Jackson. Pmirkdc: a parallel mono-implicit runge-kutta code with defect control for boundary value odes. Parallel Comput., 29:711--741, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. P. H. Muir. Optimal discrete and continuous mono-implicit Runge-Kutta schemes for BVODEs. Adv. Comput. Math., 10(2):135--167, 1999.Google ScholarGoogle ScholarCross RefCross Ref
  17. NAG. Numerical Algorithms Group: nag_ode_bvp_fd_nonlin_gen(d02rac). www.nag.co.uk/numeric/CL/nagdoc_cl08/pdf/D02/d02rac.pdf.Google ScholarGoogle Scholar
  18. M. R. Osborne. Collocation, difference equations, and stitched function representations. In Topics in numerical analysis, II (Proc. Roy. Irish Acad. Conf., Univ. College, Dublin, 1974), pages 121--132. Academic Press, London, 1975.Google ScholarGoogle Scholar
  19. P. Peterson. F2PY: Fortran to Python Interface Generator. cens.ioc.ee/projects/f2py2e/.Google ScholarGoogle Scholar
  20. PyIMSL. www.vni.com/products/imsl/pyimslstudio/overview.php.Google ScholarGoogle Scholar
  21. Sage. An open-source mathematics software system. www.sagemath.org/.Google ScholarGoogle Scholar
  22. J. Salvatier. Scikits. pypi.python.org/pypi/scikits.bvp solver/0.2.5.Google ScholarGoogle Scholar
  23. SciPy. Scientific Tools for Python. www.scipy.org.Google ScholarGoogle Scholar
  24. L. F. Shampine, I. Gladwell, and S. Thompson. Solving ODEs with MATLAB. Cambridge University Press, Cambridge, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. L. F. Shampine, R. Ketzscher, and S. A. Forth. Using AD to solve BVPs in Matlab. ACM Trans. Math. Software, 31(1):79--94, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. L. F. Shampine, P. H. Muir, and H. Xu. A user-friendly Fortran BVP solver. JNAIAM J. Numer. Anal. Ind. Appl. Math., 1(2):201--217, 2006.Google ScholarGoogle Scholar
  27. P. Virtanen. bvp. www.elisanet.fi/ptvirtan/software/bvp/index.html.Google ScholarGoogle Scholar

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Other conferences
    SpringSim '10: Proceedings of the 2010 Spring Simulation Multiconference
    April 2010
    1726 pages
    ISBN:9781450300698

    Publisher

    Society for Computer Simulation International

    San Diego, CA, United States

    Publication History

    • Published: 11 April 2010

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader