Multifario is a C API for computing manifolds. The manifold is represented as an atlas of charts whose domains are balls. Multifario can compute implicitly defined manifolds and invariant manifolds.
Website: https://multifario.sourceforge.io/
Keywords: Continuation, Bifurcation.
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 (available from 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 OpenDX 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 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.