

The headers for the functions "load_setup" and "main" in driver.c describe 
details of what must be done to add new problems. 

As of version 1.1 of dstool, the valid integration algorithms (-m options
for complib_test are) 0, 1, 2, and 3 corresponding to position in the array
Method_List[]={RK4, EULER, RK4QC, BS} defined in driver.c. The option '-a' 
indicates test all methods. The valid problems (-p options) distributed are
0 (default, specified in def_problem.c) and 1 (specified in problem.c). So a
typical invocation might be:

              complib_test -a -p 1

Most of the problem specific files (e.g def_problem.c) simply supply initial-
izations and problem component specifications to the propagation control 
structure which is passed in to level 3 and below complib routines. Thus these
routines could be compared to "traj_mem_orbit" and "compute_orbit" in core
standard dstool code. Those routines normally get most of their information
from the postmaster; here the problem specific files generally hardcode it.


The current distribution of complib_test comes pre-configured with the
following test problems:


   ---------------------------------------------------------------------------------------------------------------
   ---------------------------------------------------------------------------------------------------------------


   default problem:  An exponential curve.  This problem appears as testcase (A1) in the DETEST collection
		     described in:

                     Hull, T.E., W.H. Enright, B.M. Fellen and A.E. Sedgwick, "Comparing Numerical Methods for
	             Ordinary Differential Equations," SIAM Journal of Numerical Analysis, Vol. 9, No. 4, 1972,
	             pps. 603-637.


		         	y'(t) =  -y(t)   ,  t real
			        y(0) = 1	

                     This problem as an exact, closed-form solution given by:

			        y(t) = exp(-t)


   ---------------------------------------------------------------------------------------------------------------   
   ---------------------------------------------------------------------------------------------------------------


   problem 1:  A logistics curve.  This problem appears as testcase (A4) in the DETEST collection described 
	       in:

               Hull, T.E., W.H. Enright, B.M. Fellen and A.E. Sedgwick, "Comparing Numerical Methods for
	       Ordinary Differential Equations," SIAM Journal of Numerical Analysis, Vol. 9, No. 4, 1972,
	       pps. 603-637.


			y' = (y/4)*( 1 - y/20 )   , t in [0,1.5]
			y(0) = 1	

               This problem as an exact, closed-form expression given by:

			solution: y(t) = 20 / ( 1 + 19 exp(-x/4) )


   ---------------------------------------------------------------------------------------------------------------   
   ---------------------------------------------------------------------------------------------------------------


   problem 2:  This is a 4-dimensional example, specified in: 

	       Vetterling, W.T., Teukolsky, S.A., Press, W.H. and B.P. Flannery, `Numerical Recipes Examples (C)',
	       Cambridge University Press, Cambridge, 1988, pps. 566 ff.

	       is used to illustrate the different behaviors of the fixed-step Runge-Kutta, variable-step
	       Runge-Kutta and Bulirsch-Stoer methods.

		   y1' = -y2
		   y2' = y1 - (1/t) y2
		   y3' = y2 - (2/t) y3
		   y4' = y3 - (3/t) y4

               The stopping critera used is for a fixed number of steps (200).  

   ---------------------------------------------------------------------------------------------------------------   
   ---------------------------------------------------------------------------------------------------------------


   problem 3:  This 3-dimensional vector field may be used to model a nonlinear chemical reaction and
	       appears as DETEST testcase (B3) in the reference:
	       
	       Hull, T.E., W.H. Enright, B.M. Fellen and A.E. Sedgwick, "Comparing Numerical Methods for
	       Ordinary Differential Equations," SIAM Journal of Numerical Analysis, Vol. 9, No. 4,
	       1972 pps. 603-637.

               The defining equations are given by:

		   y1' = -y2
		   y2' = y1 - (y2)^2
		   y3' = (y2)^2 

		   y1(0) = 3     y2(0) = y3(0) = 0

               A closed-form solution for this system of ordinary differential equations is not known.

   ---------------------------------------------------------------------------------------------------------------   
   ---------------------------------------------------------------------------------------------------------------


   problem 4:  This 2-dimensional vector field is derived from the second-order Van der Pol's equations and
	       appears as DETEST testcase (E2) in the reference:  
	       
	       Hull, T.E., W.H. Enright, B.M. Fellen and A.E. Sedgwick, "Comparing Numerical Methods for
	       Ordinary Differential Equations," SIAM Journal of Numerical Analysis, Vol. 9, No. 4,
	       1972 pps. 603-637.

	       With a different scaling constant, p1, it also appears as an example of a stiff ODE testcase in

	       Enright, W.H., Hull, T.E. and B. Linberg, `Comparing Numerical Methods for Stiff Systems of
	       O.D.E:s', BIT, 15, 1975, pps. 10-48.

               The defining equations are given by:

		   y1' = y2
		   y2' = p1 ( 1 - (y1)^2 ) y2 - y1

		   y1(0) = 2     y2(0) = 0

               A closed-form solution for this system of ordinary differential equations is not known.

   ---------------------------------------------------------------------------------------------------------------   
   ---------------------------------------------------------------------------------------------------------------


   problem 5:  The phase portrait for this vector field contains a separatrix, the orbit for which can be
	       expressed, in closed-form, in terms of sech() and tanh().
	       
               The defining equations are given by:

		   y1' = y2
		   y2' = -p[0] ( 1 - (y1)^2 ) 

		   y1(0) = -2     y2(0) = 0

               The closed-form solution for the connecting orbit is given by:

		   y1(t) = 1 - 3 ( sech( t/sqrt(2) )  )^2
                   y2(t) = 3 sqrt(2) ( sech( t/sqrt(2) )  )^2 tanh( t/sqrt(2) )


   ---------------------------------------------------------------------------------------------------------------   
   ---------------------------------------------------------------------------------------------------------------


   problem 6:  This example is described in:

	       Hahlquist, G. and A. Bjorck, `Numerical Methods,' Prentics-Hall Series in
	       Automatic Computation, New Jersey, 1974, pg. 349.

	       and illustrates the special requirements of integrating stiff ODE's.

               The defining equation is given by:

		   y' = 100 ( sin(t) - y )

		   y(0) = 0

               The closed-form solution for this differential equations is given by:

			  sin(t) - 0.01 cos(t) + 0.01 exp(-100 t)
		   y(t) = ---------------------------------------
				         1.0001

   ---------------------------------------------------------------------------------------------------------------   
   ---------------------------------------------------------------------------------------------------------------


   problem 7:  An Iterated Mapping:  The Standard Map
               This dynamical system is defined as the iterated application of a diffeomorphism of
	       the 2-torus to itself:

		  f(x,y) = (x - p[0] - y,  (1/p[1])*( y+(p[2]/2 Pi)*sin( 2 Pi x ) )

	       We seek the 15th iterate of (0.5,0.646696840644) under this map.  The solution
	       of this problem is:

		  f^{15}(x0,y0) = (x0,y0)

               since these initial conditions lie on a period-5 periodic obit for this mapping.

   ---------------------------------------------------------------------------------------------------------------   
----------------------------------------------------------------------------------------------------------------

   problem 8:  A Period Vector Field: The Nonlinear Pendulum

               This dynamical system is defined on S^1xRxS^1:

	       theta' = v
	       v' = epsilon cos(2*PI*psi) - sin(theta) - damping v
	       psi' = omega / (2*PI)

	       We seek to stop on the boundary of the first periodic variable, theta=PI.
	       

   ---------------------------------------------------------------------------------------------------------------
