Multifario is a set of subroutines and data structures for computing manifolds that occur in Dynamical Systems. Fixed points, periodic orbits, heteroclinic and homoclinic connections, and many types of singular motions have been formulated as solutions of systems of parameterized algebraic or two point boundary value problems. (See the set of objects which can be computed with AUTO.)
The code is structured so that the user can provide their own solvers, but two stand-alone solvers are provided. Both use the Lapack linear equation solvers (not distributed through COIN, available through Netlib). The first solver is for algebraic systems, the second is for two point boundary value problems, using a fixed mesh and Keller's Box scheme.
Interfaces to AUTO, (a full package for algebraic and two point boundary value problems), and LOCA (Sandia's continuation code) are available. Note: the AUTO interface is not yet quite a full implementation --
The output of the code is a "plotfile" and/or "centerfile", or an "atlas". The plotfile is a list of polyhedra which cover the manifold, whose vertices are have been projected via a routine the user may provide. The centerfile is a list of the points on the manifold at the center of each polyhedron. The atlas is a full dump of the data structure which the algorithm uses.
Basic conversion utilities are included for converting plotfiles to DataExplorer format, and to POV-RAY files. In addition a simple z-buffer code is included which will render a plotfile to a Tiff file, if the LIBTIFF library (not distributed through COIN) is available, or Postscript.
I've added the support for computing invariant manifolds. This is the implementation of the algorithm described in the paper
The packaging is a bit primitive yet, and documentation is still being written.
The algorithm is described in detail the paper
Henderson, Michael E., "Multiple Parameter Continuation: Computing Implicitly Defined k-manifolds", IJBC v12(3), pages 451-76.
I've put together a quick overview of the algorithm, and a full presentation on the algorithm is available online (thanks to the Fields Institute). This was at the Fields Institute in Toronto in December, 2001 as part of their Workshop on Computational Challenges in Dynamical Systems.
An application, where the algorithm is used to compute configurations of Clamped Elastica are computed may be found in the paper
A TeX file with a description of how to use the code, and how to code your own problems is included in the file Doc/MF.tex (PDF version).
|Computing a 1-manifold embedded in 2-space: |
Circle - 1.3Mb animated gif
Computing a 2-manifold embedded in 2-space:
and 2-manifolds embedded in 3-space:
Computing a 3-manifold embedded in 3-space:
|Computing a manifold of stationary points |
Computing a manifold of periodic motions
Computing Invariant Manifolds
|ComputeDomokos (further) |
Multifario is now available through the COIN-OR code repository. It can be downloaded as a gzipped tar file, or via SVN.
The package is released under the Common Public License (CPL); see http://www.opensource.org/licenses/cpl.html
or the enclosed LICENSE file. As stated in the license, you can use the provided code without charge, but if you modify the code and you distribute your modifications in some way (e.g. in an executable), you must make those modifications public.
To install, you will need autoconf and libtool. These are standard on most Linux systems. Instructions can be found in the INSTALL file
download the source code.
run the "bootstrap.sh" script -- "./bootstrap.sh". This sets up libtool and autoconf.
run the configure script -- "./configure"
you may need to tell configure where to find Lapack and blas, if they're not installed in the "standard" places e.g. -- "./configure --with-lapack=/home/myhome/lib --with-blas=/home/myhomelib "
make the libraries, utiliies and examples -- "make"