DsTool for Linux, Solaris, SunOS



DsTool is a program for interactively exporing the dynamics of dynamical systems. It allows you to draw trajectories, to find fixed points or bifurcation points. Dynamical systems arise in many disciplins of physics, biology and chemistry - basically always whenever something can be described by a set ordinary differential equations. The methods employed by the theory of dynamical systems allow to compute important properties directly without the need for long brute-force simulations.

DsTool was originally written by Mark Myers, Rick Wicklin, Patrick Worfolk and John Guckenheimer. They can be reached at dstool_bugs@cam.cornell.edu. This release improves the installation mechanism, solves some minor bugs, but does not offer any new features.

The only requirement for a sucessful installation is (=should be) that OpenWindows is installed on your system. By default, all SunOS and Solaris systems include OpenWindows, as do most Linux distribution. For some Linux distributions, OpenWindows is just part of some "contrib"-distribution. In that case, you will automatically get detailed instructions during the installation process.

If you use some other operating system (IRIX, AIX etc.), all depends on finding a ported OpenWindows. You might want to ask your local wizard. There is however also another option. There exists a more recent version of DsTool (which, however, has some other problems and limitations - for example, it cannot compute as many different bifurcation types) that no longer uses OpenWindows but rather TCL/TK. There seems to be no homepage for that packet but you can, for example, download it here (near the bottom of that page, look for "Source Package").

Please pick one of the following files to download my port of DsTool:


Installation of DsTool involves doing the following three steps:
  1. Run configure
  2. Run make
  3. Run make install
By default, DsTool will be installed in the directory /usr/local. This means that the binary will be installed in the directory /usr/local/bin, the libary in the directory /usr/local/lib, auxiliary files in the directory /usr/local/share (they will be put in a subdirectory named dstool), the necessary include-files in the directory /usr/local/include (in a subdirectory named dstool), and the documentation in the directory /usr/local/doc (in a subdirectory named dstool).

If you want to install dstool somewhere else, e.g. because you are not allowed to write in /usr/local, you can tell configure where to install it:

   configure --prefix=/home/yourself

It will now use the directories /home/yourself/bin, /home/yourself/lib and so on. If you want to be able to start dstool directly, make sure that the directory /home/yourself/bin is included in your PATH environment variable. It is, however, not necessary to change anything with respect to the defaults of your C-compiler. The generated Makefiles will take care of that themselves.

The configure program understands all the usual options. For a full list, simply type

   configure --help

and pick your favorite option.

Running DsTool

Once you have installed DsTool as described above, you can simply start it by typing


DsTool will read its auxiliary files from the directories determined in the configuration stage, regardless of what the current working directory is.

This DsTool offers you a collection of about a dozen different dynamical systems to explore. It contains all the standard examples covered in textbooks.

Installing own dynamical systems

The necessary files can be found in the directory /usr/local/doc/dstool/user (unless you have told configure to put them somewhere else). Copy all files in that directory to a new directory.

Now, create a file containing the definition of your dynamical system. Copy the file GENERIC.c to a new file, e.g., mymodel.c. Now edit mymodel.c and insert the necessary definitions in the empty functions. If you want to install more than one own dynamical system, you have to change the prefix user_ of all functions to something else.

The file modellib_def contains a list of all known dynamical systems. It already contains the standard systems, you only have to add your own system at the end.

Finally, you have to add your own file to the Makefile. Look for the entry USEROBJ and add the name of the object file (i.e. mymodel.o) at the end of the line.

Now you are finished. After running make, a new version of DsTool will be created containing your dynamical system. The binary will be named dstool_u.

No OpenWindows around?

There exists a version of DsTool that does not need the OpenWindows extensions. The best way to get it is to retrieve the source code from the Debian package. Note that you will then miss the Locbif extensions.


For additional information, please contact Michael Patra at mi-patra [at] t-online.de