INDAM DIM CWI

Test Set for IVP Solvers

release 2.2 picture by Tobias Baanders (art@cwi.nl)

Suggestions, questions, remarks?
testset@dm.uniba.it

How to perform tests

You can perform one of the following types of tests:

How to solve test set problems with test set solvers (back to top of page)

To test one of the solvers that are supported in the test set on one of the test set problems, you need to download four types of codes: a solver, a driver, a problem code and auxiliary routines. Currently, there are 8 solvers available:
  • DASSL for ODEs and IDEs/DAEs of index less than or equal to 1,
  • GAMD for ODEs and DAEs of index less than or equal to 3,
  • MEBDFDAE for ODEs and DAEs of index less than or equal to 3,
  • MEBDFI for ODEs and IDEs/DAEs of index less than or equal to 3,
  • PSIDE for ODEs and IDEs/DAEs of index upto at least 3,
  • RADAU for ODEs and DAEs of index less than or equal to 3,
  • RADAU5 for ODEs and DAEs of index less than or equal to 3, and
  • VODE for ODEs.
What is meant here exactly by ODE, DAE and IDE is explained in Section III.1 of the prologue of the descriptive part of the test set. The solvers can be obtained via this test set in the files ddassl.f, gamd.f90, mebdfdae.f, mebdfi.f, pside.f, radau.f, radau5.f and vode.f.

The drivers dassld.f, gamdd.f, mebdfd.f, mebdfid.f, psided.f, radaud.f, radau5d.f and voded.f are such that runs can be performed that solve the problem numerically with these solvers. Unless stated otherwise, all input parameters are set to their default values in the drivers. Although DASSL is a code written for problems of index less or equal than 1, it can handle some of the higher index problems by adjusting the error control. If possible, this is done in the driver dassld.f.

The problem routines can be found at the software part of the test set. For an explanation of the format of these codes, we refer to Section III.4 of the prologue of the descriptive part of the test set.

The auxiliary linear algebra routines for the solvers are in dassla.f, gamda.f90, psidea.f, radaua.f (for both RADAU and RADAU5) and vodea.f. For MEBDFDAE and MEBDFI, the linear algebra routines are included in mebdfdae.f and mebdfi.f respectively. The file report.f contains a user interface.

Once you have obtained these files, then compiling

f77 dassld.f problem.f dassla.f ddassl.f report.f
f90 gamdd.f problem.f gamda.f90 gamd.f90 report.f
f77 mebdfd.f problem.f mebdfdae.f report.f
f77 mebdfid.f problem.f mebdfi.f report.f
f77 psided.f problem.f psidea.f pside.f report.f
f77 radaud.f problem.f radaua.f radau.f report.f
f77 radau5d.f problem.f radaua.f radau5.f report.f
f77 voded.f problem.f vodea.f vode.f report.f

will yield an executable that solves the problem, of which the Fortran routines are in the file problem.f.

How to test your own solver (back to top of page)

The following guidelines serve to test your own solver with the test set problems.
  • Write your own solver in a format similar to that of solvers that are supported in the test set in the file own.f.
  • (Optional) You may like to put the linear algebra subroutines in a separate file owna.f. In this way you can, for example, use the linear algebra of an existing solver.
  • Write driver subroutines in the file ownd.f. If the format of your solver is similar to that of a solver that is already available in the test set, then this will only require minor modifications of the driver routines of that solver.
  • Adjust the file report.f as indicated in the comment lines of this file. This will only be a minor modification.
  • Compiling

    f77 ownd.f problem.f owna.f own.f report.f,

    will yield an executable that solves the problem, of which the Fortran routines are in the file problem.f.

How to solve your own problem (back to top of page)

The following guidelines serve to solve your own problem with the solvers that are supported in the test set.
  • Write your own problem in a format similar to that of the test set problems in the file newprob.f. This format is described precisely in Section III.4 of the prologue of the descriptive part of the test set.
  • Adjust the file report.f as indicated in the comment lines of this file. This will only be a minor modification.
  • To solve your problem with, for example, DASSL, compiling

    f77 dassld.f newprob.f ddassl.f dassla.f report.f,

    will give you the desired executable.