.. currentmodule:: scikits.bvp_solver
Welcome
=====================================
:mod:`scikits.bvp_solver` is a python package for solving two point boundary value problems which is based on a modified version of the `BVP_SOLVER `_ Fortran package. If you have any questions, comments or suggestions about this tutorial, the examples or bvp_solver itself, please e-mail them to the mailing list or to me at jsalvati@u.washington.edu.
To join the mailing list send an e-mail to scikits-bvp_solver+subscribe@googlegroups.com
Installing and learning to use :mod:`scikits.bvp_solver`
--------------------------------------------------------
:mod:`scikits.bvp_solver` is available through `PyPi `_. The easiest way to learn how to install and use :mod:`scikits.bvp_solver` is to read the :doc:`tutorial `. It is also helpful to look at the :doc:`examples `, and to read about the :doc:`template generator `, which will generate a code skeleton for a boundary value problem which can then be filled in. Using the template generator reduces the busywork of solving a boundary value problem.
Documentation
-------------
.. toctree::
:maxdepth: 1
tutorial
examples/examples
core
The `BVP_SOLVER webpage `_ has several more Fortran examples which should translate easily as well as a `paper `_ on the solver which describes its usage and capabilities in greater detail.
Source
------
The source can be found on GitHub `here `_.
Compilation Help
-----------------
:mod:`scikits.bvp_solver` requires the gfortran compiler; it may work with other f90 compilers, but this has not been tested.
Compiling on Windows
---------------------
To install on Windows (tested on Windows 7):
#. Get MinGW with gfortran `here `_
#. Compile from source using ``python setup.py config --compiler=mingw32 build --compiler=mingw32 install``
Changes to BVP_SOLVER
---------------------
The modified version of the BVP_SOLVER package replaces the linear system solver COLROW (`Díaz, G. Fairweather, and P. Keast, 1983 `_) with a related linear system solver `LAMPAK `_. This modified version of BVP_SOLVER is BSD licsense compatible. COLROW employs row elimination with row pivoting alternated with column elimination with column pivoting to avoid fill-in in the structured matrices that arise. LAMPAK employs alternate row and column interchanges (i.e., pivoting) to avoid fill-in but performs only row elimination to reduce the matrices. The authors report that LAMPAK gives essentially the same results as COLROW in all the numerical experiments they considered.
Acknowledgments
---------------
Many thanks to Lawrence Shampine, Paul Muir, and H. Xu for writing the original Fortran software, BVP_SOLVER. Additional thanks to Paul Muir for the development of a BSD compliant version of BVP_SOLVER and for consultation during the development of the Python wrapper for BVP_SOLVER.
Bug Reports
----------
Please make bug reports on GitHub `here `_.