General remarks on the data flow

Figure 4: Structure of continuation process
\begin{figure}\begin{center}
\input{cmlayer.pstex_t}
\end{center}\end{figure}

At this point we have discussed two components of a continuation process, the continuer itself and the curve definition. In Figure 4 the complete structure is visualized. The arrows show the flow of information between the objects, where an arrow from object A to object B indicates that information present in A is sent to B, typically by a call from B to A. The information is sometimes passed via a function call but in many cases via a global structure. Global structures are discussed in §3.8.

As one can see, two extra components are included: the curve initializer and some external ODE file.

Continuation of curves with complicated curve definitions often needs to be initialized. Since the continuer is called only with the start point $x_0$ and an options structure (and sometimes, but not always $v_0$) there must be some way to initialize other parameters. Calling an initializer from a GUI or command prompt solves this problem. The interaction between initializer and continuer is ``invisible" since it passes through a global structure called cds (continuation descriptor structure), see §3.8. One important field is cds.symjac which informs the continuer whether or not the curve definition file includes the Jacobian of the curve definition function. See also the note at the end of §A.

The standard MATLAB odeget and odeset only support Jacobian matrices coded in the ode-file. However, we do need the derivatives with respect to the parameters. It is also useful to have higher-order symbolic derivatives available.

To overcome this problem, the package contains new versions of odeget and odeset which support Jacobians with respect to parameters and higher-order derivatives. The new routines are compatible with the ones provided by MATLAB.

To include the Jacobian with respect to parameters, the option JacobianP should contain the handle of the subfunction jacobianp @jacobianp. A call to feval(@jacobianp, 0, x, p1, p2, ...) should then return the Jacobian with respect to to parameter $p_1$, $p_2$, ....

To include Hessians in the ode-file the option Hessians should contain the handle of the subfunction hessians @hessians. The software then assumes that a call to feval(@hessians, 0, x, p1, p2, ...) will return all Hessians in the same way as mentioned above. Setting the option to [] indicates that there are no Hessians available from the ode-file (default behaviour).

To include Hessians with respect to parameters in your ode-file the option HessiansP should contain the handle of the subfunction hessiansp @hessiansp. The software then assumes that a call to feval(@hessiansp, 0, x, p1, p2, ...) will return all Hessians with respect to parameters in the same way as mentioned above. Setting the option to [] indicates that there are no Hessians with respect to parameters available from the ode-file (default behaviour).

To include the third order derivatives in your ode-file the option Der3 should contain the handle of the subfunction der3 @der3. The software then assumes that a call to feval(@der3, 0, x, p1, p2, ...) will return all third order derivatives in the same way as mentioned above. Setting the option to [] indicates that they are not available from the ode-file (default behaviour)

Der4 and Der5 are values indicating the 4th and 5th order symbolic derivative, available in the ode-file.