Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

MODEL Documentation


Welcome to MODEL,
the Modest Ordinary Differential Equation Library

Michael Peeters


MODEL is a numeric simulation library written during my PhD to simulate systems of rate equations describing Vertical Cavity Surface Emitting Lasers (VCSELs). I decided to write one myself after looking at existing libraries and deciding that they were either too complicated to use (having a target user base of mathematicians) or too opaque (i like to know what the code is doing, exactly).

Since most of my programming before has been done in C/C++, what you see here is a C++ library composed of various interacting classes which have the following main functionalities:

The following will be added RSN:

It furthermore provides a numerical vector class, vectorfunction classes, LU solver and random generators.

As I developed it using publicly available resources, GNU/Linux and other GPL'ed software, I decided that it should be GPL as well. However (Oh no, a "however" ! Let's hope it does not invalidate the copyleft), I would very much appreciate it if you let me know if you have used MODEL in any of your applications/simulations/research and provide a reference (this way, I can refer to your work, too).

At the moment, MODEL has the rather arbitrary version number 1.0. Meaning it is useful. Period. Some interfaces (especially the stochastics) might still change, and I would like to add some ieee floating point exception trapping to avoid silly numerical errors.


Assuming you downloaded a full .tar of checked out the full CVS tree, you first have to make sure everything is configured correctly on your system: run ./configure to generate the correct configuration. Then a simple make or gnumake (on some systems) will do the trick. If you wish to change the option submitted to the compiler, define the environment variable CXXFLAGS to contain those you need (I know there must be a better way to do this). To get it to compile on the Alpha cluster here ( , I have to export CXXFLAGS="-mieee-malpha-as" before running the configuration script.

Once the make process has ended, You should have a libModel.a in the model directory and a singlemode executable in /tutorial. Run it to see if all went well (make test should do the trick). Learn to use gnuplot :-): plot "stepmodulation.dat" u 1:3 w l and admire the relaxation oscillations.


If you want to generate the introduction, API and tutorial documentation, use make docs. This assumes you have a full teTex distribution, Doxygen and a copy of lgrind to prettyprint the code, however. Your mileage may vary. You can also regenerate the README file by typing make README. YMMVAL. You can generate an introductory PDF file using make pdf.

To get the sources or tarballs, please go to SourceForge or you can use the CVS repository.

More Info? Michael Peeters. Also, check our research website:

Last update: June 2002.

Looking for Open Source? Check out SourceForge Logo !