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.
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- cca forum. The Common Component Architecture Forum. www.cca-forum.org/index.html.Google Scholar
- 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 ScholarDigital Library
- IMSL. imsl_f_bvp_finite_difference. www.vni.com/products/imsl/documentation/CNL700_Docs/Cmath.pdf.Google Scholar
- 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 ScholarDigital Library
- 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 Scholar
- Mathematica. www.wolfram.com/products/mathematica/index.html.Google Scholar
- MATLAB. www.mathworks.com/products/matlab/.Google Scholar
- matplotlib. matplotlib.sourceforge.net.Google Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- P. H. Muir. Optimal discrete and continuous mono-implicit Runge-Kutta schemes for BVODEs. Adv. Comput. Math., 10(2):135--167, 1999.Google ScholarCross Ref
- NAG. Numerical Algorithms Group: nag_ode_bvp_fd_nonlin_gen(d02rac). www.nag.co.uk/numeric/CL/nagdoc_cl08/pdf/D02/d02rac.pdf.Google Scholar
- 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 Scholar
- P. Peterson. F2PY: Fortran to Python Interface Generator. cens.ioc.ee/projects/f2py2e/.Google Scholar
- PyIMSL. www.vni.com/products/imsl/pyimslstudio/overview.php.Google Scholar
- Sage. An open-source mathematics software system. www.sagemath.org/.Google Scholar
- J. Salvatier. Scikits. pypi.python.org/pypi/scikits.bvp solver/0.2.5.Google Scholar
- SciPy. Scientific Tools for Python. www.scipy.org.Google Scholar
- L. F. Shampine, I. Gladwell, and S. Thompson. Solving ODEs with MATLAB. Cambridge University Press, Cambridge, 2003. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- P. Virtanen. bvp. www.elisanet.fi/ptvirtan/software/bvp/index.html.Google Scholar
Recommendations
Crank-Nicolson method for the fractional diffusion equation with the Riesz fractional derivative
We examine a numerical method to approximate to a fractional diffusion equation with the Riesz fractional derivative in a finite domain, which has second order accuracy in time and space level. In order to approximate the Riesz fractional derivative, we ...
Numerical approximations and solution techniques for the space-time Riesz---Caputo fractional advection-diffusion equation
In this paper, we consider a space-time Riesz---Caputo fractional advection-diffusion equation. The equation is obtained from the standard advection-diffusion equation by replacing the first-order time derivative by the Caputo fractional derivative of ...
An asymptotic numerical method for singularly perturbed third-order ordinary differential equations with a weak interior layer
A class of singularly perturbed two point boundary value problems (BVPs) of convection-diffusion type for third-order ordinary differential equations (ODEs) with a small positive parameter (ε) multi-plying the highest derivative and a discontinuous ...
Comments