# Software for Boundary Value Problems

The codes available on this page are for solving boundary value problems for ordinary differential equations. All of the codes are included under the ode directory of netlib and are written in FORTRAN 77 and use double precision arithmetic. All compressed files are created by using the command "gzip" (simply "gunzip" them at your end).

### Introduction

The netlib codes COLNEW , by Ascher and Bader, and TWPBVP, by Cash and M. H. Wright, utilise global methods for solving boundary value problems. Specifically, COLNEW is based on a high-order collocation method, while TWPBVP is based on mono-implicit Runge-Kutta formulae together with deferred corrections. These codes can be downloaded by clicking below.
A description of how to use COLNEW is included at the top of the code. A user's manual, written in latex, accompanies TWPBVP and is available by clicking here. Both codes have proved to be successful in solving a large class of problems. However, very stiff boundary value problems often present a formidable challenge to existing numerical methods and this is discussed below.

### Singular Perturbation Problems

Singularly perturbed boundary value problems are characterised by the presence of a small, positive parameter which multiplies the highest derivative term in the (system of) differential equations. The essential difficulties with such problems arise because their solutions exhibit narrow regions of very fast variation (so-called boundary layers) as the problem parameter becomes progressively small. For numerical methods, this means that it is often very difficult to determine both a mesh that will yield a sufficiently accurate numerical solution, and an initial guess to the solution which will lead to the convergence of Newton's method. One way of overcoming these problems is to use continuation. In this approach, a sequence of progressively more difficult problems is solved by using information from one problem to solve for the next. The codes COLMOD and ACDC, developed by Cash and R. W. Wright, are designed to solve singularly perturbed boundary value problems by using an automatic continuation strategy. These codes are extensions of COLNEW and TWPBVP respectively, and allow stiff boundary value problems to be solved in an efficient way. The codes can be downloaded by clicking below.
As previously, a description of how to use COLMOD is included within the code. A user's manual, written in latex, accompanies ACDC and is available by clicking here. Other than the addition of a continuation strategy, the code COLMOD differs from COLNEW in the method of mesh selection. For the code ACDC, Lobatto Runge-Kutta formulae have been introduced to replace the mono-implicit formulae of the original code, since these offer better stability properties. References concerning these modifications are included within the user's manuals for each code. We also have a mono-implicit code with an interpolation capability. The code which allows this is called interp.f and can be downloaded by clicking here. A postscript file which describes the code can be downloaded by clicking here.

### Test Problems and Numerical Results

The four codes discussed on this page have been tested on a set of thirty-two test problems. Details of the test problems and solution plots can be seen by clicking on the postscript file below.
The results produced by running the four codes on the test problems, for four different error tolerances, can be downloaded by clicking on the files below. The files are in ascii format. The driver programs used to run COLMOD and ACDC for the thirty-two test problems are also available.
All results were produced on a Pentium with 100MHz clock speed, under Linux, with binary IEEE arithmetic. Any questions or comments will gladly be received by the authors whose e-mail addresses are provided below.

Lobatto Codes with Interpolants for the paper:
A Highly Stable Deferred Correction Scheme with Interpolant for
systems of Non-Linear Two-Point Boundary Value problems
Cash, Moore, Sumarti & Van Daele

bitb4.f   (runs MIRK)
save4.f  (runs Lobatto with Richardson Extrapolation)
demo.f  (runs Lobatto with embedding)

The code demo.f is heavily commented so that it explains not only
how to run the problems but also how to get the interpolants and
how to check the errors in these interpolants.