Theoretical Biology & Bioinformatics

tree of life
Rob J. de Boer

Rob J. de Boer

Home | Research | Publications | Books | Software | CV |

GRIND

GRIND is a powerful system for easily analyzing systems of ordinary differential equations and maps. We use it for phase plane analysis in our courses, and in our own research for quickly analyzing mathematical models with just a few equations. GRIND allows you to do numerical integration, draw trajectories, do time plots, draw nullclines, compute a Jacobian and its eigenvalues and vectors, and do simple bifurcation analysis. This is all driven by a simple command language. GRIND works on Windows, Mac OS, and Unix platforms. It uses X11 or OpenGL for its interactive graphics, and creates PDF and PostScript graphical output of publication quality.

Check a few examples given in this short tutorial or the full manual.

Windows: method 1

The preferred method to install grind on windows is to use the installer. Download the file and double-click it to install GRIND. After installation you should be able double-click any model.grd file to start GRIND (you could test the model.grd file in the Grind folder).

  • On Windows 8 you might get a smartscreen popup telling you "windows smartscreen prevented an unrecognized app from starting" Press "More info" and then "Run anyway" to install grind.
  • By default windows will hide the extensions of known filetypes, so "model.grd" might show up as "model" and "model.grd.txt" as "model.grd". To change this setting open "control panel", click on "Appearance and Personalization", "Folder Options" and click the "View" tab. Clear the "Hide extensions for known file types" check box, and then click OK.

Windows: method 2

Grind is also available as zip-file if you can not use the installer. Download the file and unzip that file in a preferred location.

  • This will create a folder Grind containing the required MinGW and GRIND programs, libraries, manuals, and a setup program. After unpacking the zip file run the setup.bat program in the Grind folder.
  • Next double-click the model.grd file in the Grind folder to let Windows know that .grd files should from now on be opened with the Grind\bin\grind.bat file that was just created by the setup program.

Unix

For Unix/Linux/Mac installations GRIND is available as a "tar file":
Download the tarfile, un-tar it, install it with make, and copy the grind script to a directory in the Unix path.

Your main concern is the choice of the graphics interface, which is OpenGL, X11, or both. On Linux systems both are typically available, and just a "make" will do the whole job (see below). If you only have X11 do a "make x11", and if you only have OpenGL do a "make gl". In the makefile you may have to set the CFLAGS variable to redefine the location of include files. This is all preset for a normal Linux environment. In the grind script you may have to set the -L option in the GLIB and XLIB variables.

Here is an example for installation in the current directory:


tar xvf grind-2.17.tar
edit Makefile Check the setting of CFLAGS variable
make
edit bin/grind Check the setting of -L in GLIBS and XLIBS
cp bin/grind /usr/local/bin Copy the script to one of your bin directories, or alias grind ~/grind-2.17/bin/grind)
make clean


In case you want install GRIND globally on your system invoke a "make install" to install in /usr/local. A "make install PREFIX=/local" will install in /local. For Redhat linux you also can obtain a binary RPM and build the RPM from the source rpm in the SRPMS directory using the command: "rpm --rebuild PROGRAM.src.rpm". For Ubunto/Debian you can visit the website of Levien van Zon.

Mac OS

GRIND can be installed like on any Unix system (see above) provided you installed the X11 developers environment. GRIND will run fine via the X11 driver. Follow the instructions given above, but do a "make x11" rather than a "make". Test whether it works using "grind -x model" (and later change the default in the grind script or make an alias). The much nicer OpenGL graphics will work after installing "mesa", e.g. from MacPorts.