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

"Computing Invariant Manifolds by Integrating Fat Trajectories", SIADS v4(4), 2005 pages 832-882.

The packaging is a bit primitive yet, and documentation is still being written.

Mike Henderson


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

Michael E. Henderson and Sebastion Neukirch, "Classification of the spatial equilibria of the clamped elastica", IJBC 14(4): 1223-39, 2003.

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:


  • 1.9Mb animated gif

and 2-manifolds embedded in 3-space:


Computing a 3-manifold embedded in 3-space:


  • 8.6 Mb  animated gif

Computing a manifold of stationary points

Equilibrium of clamped elastica

Computing a manifold of periodic motions

Periodic Motions of Coupled Pendula

Computing Invariant Manifolds

Invariant Manifolds in the Lorenz System

The raw output of the examples can be seen in these images:




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

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 "" script -- "./". 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"

Generated on Tue Jan 30 13:38:27 2007 for multifario by  doxygen 1.4.6