2 | | |
3 | | {{{ |
4 | | #!html |
5 | | <ul> |
6 | | <table WIDTH="90%" > |
7 | | <tr> |
8 | | <td ALIGN=LEFT VALIGN=BOTTOM><a NAME="main"></a><font size=+4>Multifario</font></td> |
9 | | |
10 | | <td ALIGN=RIGHT VALIGN=CENTER><a href=LorenzU0.jpg><img SRC="http://www.coin-or.org/multifario/LorenzU0Icon.jpg" ALT="" align=TEXTTOP></a></td> |
11 | | <td ALIGN=RIGHT VALIGN=CENTER><a href=Torus1400.jpg><img SRC="http://www.coin-or.org/multifario/Torus1400Icon.jpg" ALT="" align=TEXTTOP></a></td> |
12 | | </tr> |
13 | | </table> |
14 | | </ul> |
15 | | |
16 | | <ul>Multifario is a set of subroutines and data structures for computing |
17 | | manifolds that occur in Dynamical Systems. Fixed points, periodic orbits, |
18 | | heteroclinic and homoclinic connections, and many types of singular motions |
19 | | have been formulated as solutions of systems of parameterized algebraic |
20 | | or two point boundary value problems. (See the set of objects which can |
21 | | be computed with <a href="http://sourceforge.net/projects/auto2000/">AUTO</a>.) |
22 | | <p>The code is structured so that the user can provide their own solvers, |
23 | | but two stand-alone solvers are provided. Both use the Lapack linear equation |
24 | | solvers (not distributed through COIN, available through <a href="http://www.netlib.org/">Netlib</a>). |
25 | | The first solver is for algebraic systems, the second is for two point |
26 | | boundary value problems, using a fixed mesh and Keller's Box scheme. |
27 | | <p>Interfaces to <a href="http://sourceforge.net/projects/auto2000/">AUTO</a>, |
28 | | (a full package for algebraic and two point boundary value problems), and |
29 | | <a href="http://www.cs.sandia.gov/projects/loca/main.html">LOCA</a> |
30 | | (Sandia's continuation code) are available. Note: the AUTO interface is |
31 | | not yet quite a full implementation -- |
32 | | <p>The output of the code is a "plotfile" and/or "centerfile", or an "atlas". |
33 | | The plotfile is a list of polyhedra which cover the manifold, whose vertices |
34 | | are have been projected via a routine the user may provide. The centerfile |
35 | | is a list of the points on the manifold at the center of each polyhedron. |
36 | | The atlas is a full dump of the data structure which the algorithm uses. |
37 | | <p>Basic conversion utilities are included for converting plotfiles to |
38 | | <a href="http://www.opendx.org/">DataExplorer</a> |
39 | | format, and to <a href="http://www.povray.org/">POV-RAY</a> files. In addition |
40 | | a simple z-buffer code is included which will render a plotfile to a Tiff |
41 | | file, if the <a href="http://www.libtiff.org/">LIBTIFF</a> library |
42 | | (not distributed through COIN) is available, or Postscript.</ul> |
43 | | |
44 | | <ul> <font color=red>New</font> I've added the support for computing invariant |
45 | | manifolds. This is the implementation of the algorithm described in the |
46 | | paper <a href=http://epubs.siam.org/sam-bin/dbq/article/60289> |
47 | | "Computing Invariant Manifolds by Integrating Fat Trajectories"</a>, SIADS v4(4), 2005 pages 832-882. |
48 | | The packaging is a bit primitive yet, and documentation is still being written. |
49 | | <p align=right> |
50 | | <a href="http://www.research.ibm.com/people/h/henderson/">Mike Henderson</a> |
51 | | </ul> |
52 | | |
53 | | <h2>Support</h2> |
54 | | <ul> |
55 | | <p>I monitor the mailing list <a href="mailto://multifario@list.coin-or.org">multifario@list.coin-or.org</a>. There is an |
56 | | <a href="http://list.coin-or.org/pipermail/multifario">archive</a>.</p> |
57 | | |
58 | | <p>I'm preparing a major cleanup and reorganization, including a complete interface to the version of AUTO recently released at |
59 | | <blockquote><a href="http://sourceforge.net/projects/auto2000/">http://sourceforge.net/projects/auto2000/</a></blockquote></p> |
60 | | <p>If you have comments, suggestions, or requests, please either |
61 | | <ol> |
62 | | <li>Post to the <a href="mailto://multifario@list.coin-or.org">mailing list</a>. </li> |
63 | | <li>Use the Trak system on this page.</li> |
64 | | <li>Email me at <a href="mailto://mhender@us.ibm.com">mhender@us.ibm.com</a></li> |
65 | | </ol></p> |
66 | | |
67 | | <p>Some of the things I have on my list are: |
68 | | <ul> |
69 | | <li>A generalization of the IMFFlow object to deal with parameterized flows. </li> |
70 | | <li>Constructors for manifolds related to dynamical systems analysis, like |
71 | | <ul> |
72 | | <li>Create a manifold of fixed points from an IMFFlow, which would allow a choice of parameters from those defined in the flow (AUTO's par and icp arrays)</li> |
73 | | <li>Create a manifold of periodic/heteroclinic/homoclinic/... motions from an IMFFlow. </li> |
74 | | <li>A way to define manifolds of "special trajectories" from a flow. Like those in the twisted rod problem, where the flow defines the ODE, and arbitrary boundary conditions can be added.</li> |
75 | | </ul> |
76 | | <li>AUTO as an integrator (Sebius's trick of continuing in the length of a trajectory) for the fat trajectory calculations.</li> |
77 | | </ul></p> |
78 | | <p>Thanks, Mike</p> |
79 | | </ul> |
80 | | |
81 | | <h2>Documentation</h2> |
82 | | |
83 | | <p><ul> <font color=red>New</font> I've starting using Doxygen. The html version is <a href=http://www.coin-or.org/multifario/doxygen/>here</a></ul> |
84 | | |
85 | | <p><ul>The algorithm is described in detail the paper |
86 | | <blockquote>Henderson, Michael E., "Multiple Parameter Continuation: Computing |
87 | | Implicitly Defined k-manifolds", IJBC v12(3), pages 451-76.</blockquote> |
88 | | I've put together a quick <a href="http://www.coin-or.org/AlgorithmOverview.html">overview |
89 | | of the algorithm</a>, and a full <a href="http://www.fields.utoronto.ca/audio/01-02/dynamsys/henderson/">presentation</a> |
90 | | on the algorithm is available online (thanks to the <a href="http://www.fields.utoronto.ca/">Fields |
91 | | Institute</a>). This was at the Fields Institute in Toronto in December, |
92 | | 2001 as part of their <a href="http://www.fields.utoronto.ca/programs/scientific/01-02/numerical/dynamsys/">Workshop |
93 | | on Computational Challenges in Dynamical Systems.</a> |
94 | | <p>An application, where the algorithm is used to compute configurations |
95 | | of Clamped Elastica are computed may be found in the paper |
96 | | <br> |
97 | | <blockquote>Henderson,. Michael E. and Neukirch, Sebastien, <a href="http://www.lps.ens.fr/~neukirch/classif_clamped_elas_part2.html">"Classification |
98 | | of the spatial equilibria of the clamped elastica"</a>, IJBC 14(4): 1223-39, 2003.</blockquote> |
99 | | A TeX file with a description of how to use the code, and how to code your |
100 | | own problems is included in the file Doc/MF.tex (<a href="http://www.coin-or.org/MF.pdf">PDF |
101 | | version</a>).</ul> |
102 | | <h2>Download and Installation Instructions</h2> |
103 | | <ul><p> |
104 | | The <strong>very short version of the download and installation |
105 | | instructions</strong> for UNIX-like system (including Linux and Cygwin) |
106 | | is this: |
107 | | </p> |
108 | | <ol> |
109 | | <li>Get the code via subversion using the following command<pre class="wiki">svn co http://www.coin-or.org/svn/multifario/trunk multifario<br></pre> |
110 | | </li> |
111 | | <li>Go into the downloaded directory and run the configuration script |
112 | | <blockquote |
113 | | >cd multifario<br> |
114 | | edit the file share/config.site to give local lib and include dirs for Lapack. (Last two lines in the file).<br> |
115 | | ./configure<br> |
116 | | </blockquote> |
117 | | </li> |
118 | | </ol> |
119 | | <blockquote> |
120 | | <p>Make sure the last line of output says that the configuration was |
121 | | successful. The <tt>configure</tt> script has many customization |
122 | | features. To see them, type <tt>./configure --help</tt>. In |
123 | | particular, to install a coin package at a location accessible to all |
124 | | users on your machine, you can run <tt>./configure --prefix=/usr/local</tt>. |
125 | | </p> |
126 | | </blockquote> |
127 | | <ol> |
128 | | <li>Compile the code |
129 | | <pre class="wiki">make<br></pre> |
130 | | </li> |
131 | | <li>Install the generated libraries, executables, and header files |
132 | | <pre class="wiki">make install<br></pre> |
133 | | </li> |
134 | | </ol> |
135 | | <p>This will create subdirectories <tt>bin</tt>, <tt>lib</tt>, and <tt>include</tt> |
136 | | in the download directory with the product of the compilation. |
137 | | </p> |
138 | | </ul> |
139 | | <h2>Examples</h2> |
140 | | <ul> |
141 | | <blockquote> |
142 | | <table BORDER COLS=2 WIDTH="80%" > |
143 | | <tr> |
144 | | <td VALIGN=TOP>Computing a 1-manifold embedded in 2-space: |
145 | | <p> <a href="http://www.coin-or.org/multifario/Circle.html"> |
146 | | Circle</a> - 1.3Mb animated gif |
147 | | <p>Computing a 2-manifold embedded in 2-space: |
148 | | <p> <a href="http://www.coin-or.org/multifario/Plane.html">Plane</a> |
149 | | - 1.9Mb animated gif |
150 | | <p>and 2-manifolds embedded in 3-space: |
151 | | <p> <a href="http://www.coin-or.org/multifario/Sphere.html">Sphere</a> |
152 | | - 3.9Mb animated gif (<a href="http://www.coin-or.org/multifario/Sphere.mov">.mov |
153 | | version</a>, 10.6Mb) |
154 | | <br> <a href="http://www.coin-or.org/multifario/Torus.html">Torus</a> |
155 | | - 4.9Mb animated gif (<a href="http://www.coin-or.org/multifario/Torus.mov">.mov |
156 | | version</a>, 32.5Mb) |
157 | | <p>Computing a 3-manifold embedded in 3-space: |
158 | | <p> <a href="http://www.coin-or.org/multifario/Cube.html">Cube</a> |
159 | | - 8.6 Mb animated gif</td> |
160 | | |
161 | | <td VALIGN=TOP>Computing a manifold of stationary points |
162 | | <blockquote><a href="http://www.coin-or.org/multifario/ClampedElastica.html">Equilibrium |
163 | | of clamped elastica</a></blockquote> |
164 | | Computing a manifold of periodic motions |
165 | | <blockquote><a href="http://www.coin-or.org/multifario/CoupledPendula.html">Periodic |
166 | | Motions of Coupled Pendula</a></blockquote> |
167 | | Computing Invariant Manifolds |
168 | | <blockquote><a href="http://www.coin-or.org/multifario/Lorenz.html">Invariant |
169 | | Manifolds in the Lorenz System</a></blockquote> |
170 | | </td> |
171 | | </tr> |
172 | | </table> |
173 | | The raw output of the examples can be seen in these images: |
174 | | <center><table> |
175 | | <tr> |
176 | | <td>ComputeLine</td> |
177 | | |
178 | | <td><a href="http://www.coin-or.org/multifario/Circle.jpg">ComputeCircle</a></td> |
179 | | |
180 | | <td><a href="http://www.coin-or.org/multifario/Transcritical.jpg">ComputeTranscritical</a></td> |
181 | | |
182 | | <td><a href="http://www.coin-or.org/multifario/Domokos.jpg">ComputeDomokos</a> (<a href="http://www.coin-or.org/multifario/Domokos2.jpg">further</a>)</td> |
183 | | </tr> |
184 | | |
185 | | <tr> |
186 | | <td><a href="http://www.coin-or.org/multifario/Plane.jpg">ComputePlane</a></td> |
187 | | |
188 | | <td><a href="http://www.coin-or.org/multifario/Sphere.jpg">ComputeSphere</a></td> |
189 | | |
190 | | <td><a href="http://www.coin-or.org/multifario/ComplexCusp.jpg">ComputeCusp</a></td> |
191 | | |
192 | | <td><a href="http://www.coin-or.org/multifario/Rod.jpg">ComputeRod</a></td> |
193 | | </tr> |
194 | | |
195 | | <tr> |
196 | | <td><a href="http://www.coin-or.org/multifario/PlaneClip.jpg">ComputePlaneClip</a></td> |
197 | | |
198 | | <td><a href="http://www.coin-or.org/multifario/SphereSub.jpg">ComputeSphereSub</a></td> |
199 | | |
200 | | <td><a href="http://www.coin-or.org/multifario/TaylorA.jpg">ComputeTaylorA</a></td> |
201 | | |
202 | | <td></td> |
203 | | </tr> |
204 | | |
205 | | <tr> |
206 | | <td><a href="http://www.coin-or.org/multifario/3Space.jpg">Compute3Space</a></td> |
207 | | |
208 | | <td><a href="http://www.coin-or.org/multifario/Torus.jpg">ComputeTorus</a></td> |
209 | | |
210 | | <td><a href="http://www.coin-or.org/multifario/Taylor24.jpg">ComputeTaylor24</a></td> |
211 | | |
212 | | <td></td> |
213 | | </tr> |
214 | | |
215 | | <tr> |
216 | | <td>Compute4Space</td> |
217 | | |
218 | | <td><a href="http://www.coin-or.org/multifario/GenusTwo.jpg">ComputeGenusTwo</a></td> |
219 | | |
220 | | <td></td> |
221 | | |
222 | | <td></td> |
223 | | </tr> |
224 | | |
225 | | <tr> |
226 | | <td></td> |
227 | | |
228 | | <td><a href="http://www.coin-or.org/multifario/SpherePacking3.jpg">ComputeSpherePacking</a></td> |
229 | | |
230 | | <td></td> |
231 | | |
232 | | <td></td> |
233 | | </tr> |
234 | | </table></center> |
235 | | </blockquote> |
236 | | </ul> |
237 | | }}} |
238 | | == Multifario FAQs == |
239 | | |
240 | | === What is Multifario? === |
241 | | Multifario is a subroutine library which implements a continuation method for computing implicitly defined manifolds, and other manifolds that arise in dynamical systems. An implicitly defined manifold is a set of points which satisfy F(u)=0, for some smooth F:IR^n -> IR^(n-k)^. This set of points consists of pieces of k-dimensional manifolds which meet at (k-1)-dimensional manifolds of singular points. Multifario takes as input a set of initial points on the manifold, and computes the manifold of points connected to the initial points. |
242 | | |
243 | | === How do I use Multifario? === |
244 | | Two "solvers" are provided, one for algebraic systems, and one for two point boundary value problems. The user creates a data structure called a "ImplicitMF", by calling a routine and passing either subroutines or strings containing expressions. Then the user calls a routine to compute the manifold. The result is either a data structure in memory (an Atlas), which the user can interrogate, or files on disk containing a set of polyhedra which cover the manifold, and optionally the centers of the polyhedra. These files can be used to render the manifold as a tiff or a Postscript file, using utilities that are included. They can also be converted to a couple of other file formats (DX, VBM, POV-Ray). |
245 | | |
246 | | === What do I need to build Multifario? === |
247 | | While the source code for Multifaro itself is released as open source under the Common Public License (CPL), compilation requires third party components (such as LAPACK) which you have to obtain separately. More information can be found [http://www.coin-or.org/multifario/ here]. |
248 | | |
249 | | === On what operating systems can Multifario be used? === |
250 | | Multifario uses autoconf. It has been tested on AIX 4.3, AIX5.1, Cygwin, and !RedHat 8.0, but should install cleanly on any UNIX machine. |
251 | | |
252 | | === What is the algorithm behind Multifario? === |
253 | | Multifario uses an algorithm that computes well spaced points on the manifold. At each point the tangent space (k-vectors), a radius and a polyhedron are stored. As points are added the polyhedron is trimmed so that the polyhedron form an approximate polyhedral tiling of the manifold. At each step a point on the boundary of this tiling is chosen, projected onto the manifold, the tangent space and rsius are calculated, and the polyhedra are updated. |
254 | | |
255 | | === Are the any examples or references for the use of Multifario? === |
256 | | The algorithm for implicitly defined manifolds has been published, see Henderson, Michael E., "Multiple Parameter Continuation: Computing Implicitly Defined k-manifolds", Int. J. Bifurcation and Chaos v12(3), pages 451-76. The branch switching algorithm will appear Henderson, Michael E., "Multiparameter Parallel Search Branch Switching", to appear, Int. J. Bifurcation and Chaos v15(3). |
257 | | The algorithm for invariant manifolds will appear Henderson, Michael E., "Computing Invariant Manifolds by Integrating Fat Trajectories", to appear, SIAM J. Applied Dyn. Systems. Several examples are included with the code, and a paper applying the code to twisted rods has been accepted and will apear: Henderson,. Michael E. and Neukirch, Sebastien, "Classification of the spatial equilibria of the clamped elastica", Int. J. Bif. & Chaos, 14(4), pp. 1223-39. a [http://lcvmsun9.epfl.ch/%7Eneukirch/classif_clamped_elas_part2.html preprint] is available. Documentation is included in a tex file, or the user may view a [http://www.coin-or.org/multifario/MF.pdf pdf version]. |
258 | | |
259 | | === What is a "multifario"? === |
260 | | Manifold is supposedly derived from the [http://www.cis.uni-muenchen.de/cgi-bin/ahdeutsch/lex.pl?form=manacfald High German word "Manacfald"] (Managfalt?), which in some way is related to the Latin word multifario, which is close to "multifarious". Roget's Thesarus defines multifarious as "Consisting of a number of different kinds". |
261 | | Multifario computes a manifold, which is defined by way of a set (or atlas) of overlapping charts. (The analogy is to navigational charts, each of which shows a plane projection of a small part of the surface of the earth.) Each chart defines some small part of the whole manifold. The charts must overlap, and agree on the overlap. The manifold is the union of the different parts described by the individual charts. |