\section{The Propagation Window}\index{Propagation window}\index{window, Propagation}
%
%
%
\begin{figure}[H]
%\vspace{.7in}
\centerline{\psfig{figure=ps/prop-vf.ps,height=83pt}}
\caption{\label{prop_int}
A Propagation window for vector fields.
}
\end{figure}
\begin{figure}[H]
%\vspace{0.5in}
\centerline{\psfig{figure=ps/prop-map.ps,height=124pt}}
\caption{\label{prop_iter}
A Propagation window for mappings.
}
\end{figure}

%
%
%
\begin{description}

\item[Window title:] DsTool: Propagation 
\item[Function:] The Propagation window allows the user to
	select and control the algorithms used to compute trajectories.
\item[Description:] The Propagation window is opened by selecting the 
	Propagation window button located in the Orbits window.
	The Propagation window contains parameters necessary to control the forward
	and backward propagation of trajectories.  
	The window's appearance depends upon the model chosen as well as the method of propagation.
%	When the Orbits window is dismissed, the Propagation window 
%	also vanishes.  \notimp{}
%\item[Window type:] pop-up
%\item[Window attributes:] pinnable(in), non-resizable, variable template
\item[Panel items:]
%	The propagation window has different panel items depending upon whether the current model is
%	a vector field or a mapping.

	We first describe the Propagation window as it appears for vector fields:

  	The panel items in the Propagation window will change with the method of propagation
	selected.  The top portion of the panel consists of $k \geq 1$ stack settings from which the 
	user may select algorithms used by the propagator.  The lower left section of the panel consists
	of $i \geq 0$ numeric fields which are used to control integer parameters of the algorithms
	chosen.  These fields may be used, for example, to set the maximum number of Newton iterations used in 
	estimating an inverse image for a diffeomorphism is one example of an integer parameter.  The lower 
	right section of the panel
	contains a list of $j \geq 0$ double precision fields which are used to control floating point
	parameters of the chosen numerical algorithms.  These fields may be used, for example, to
	set the minimum step size allowable for variable-step integrators, or to establish convergence
	criteria for Newton's method.\index{Newton's method}

%	If a user wishes to install propagation algorithms (such as a special-purpose integrator) then
%	the user will also want to adapt this panel to his or her needs.\index{user-defined, propagation panel}  
%	The Reference Manual\index{reference manual} shows how this is 
%	done.

	\begin{itemize}
        \item  Integration algorithm stack setting:
                Allows the user to choose a numerical integrator.\index{integrator}
                The current options are:
                \begin{description}
                        \item[Runge-Kutta 4:] A fourth-order Runge-Kutta algorithm.  This is the default.
                        \item[Euler:] The forward Euler method.
                        \item[Runge-Kutta 4QC:] A fourth-order Runge-Kutta algorithm with fifth-order stepsize
				regulation.
                        \item[Runge-Kutta-Fehlberg 78:] A Runge-Kutta-Fehlberg algorithm of orders seven and eight.
                        \item[Bulirsch-Stoer:] The Bulirsch-Stoer algorithm with Richardson extrapolation.
                        \item[Adams-Bashforth 4:] The fourth-order Adams-Bashforth algorithm.
                \end{description}
                See, for example, references \cite{pressetal,stoerbulirsch} for more information
                about these algorithms.
        \item Newton iter numeric field:  
		Displays the maximum number of iterations allowed in determining the 
                point along a trajectory for which some event is satisfied.  The default value is $15$.
        \item Finite diff step read-write text field:  
		Displays the finite difference step size.  
                When the Stopping condition stack on the Orbits window is set to Event stopping,
                the algorithm uses forward differencing to estimate the derivative of the stopping 
                criterion function with respect to the time step.  The default value is $10^{-6}$.
        \item Stopping error read-write text field: 
		Displays the upper bound on the maximum error tolerated during event stopping.  
                In other words, if the stopping condition is, say, $g(x)=c$ then the maximum allowable
                norm of $g(x) - c$ will be the value of this field.  The default value is $10^{-5}$.
        \item Min dt read-write text field:
                Displays the smallest allowable time step.  This value is important even for fixed-step integrators
                such as standard Runge-Kutta algorithms, because once a stopping event is detected,
                the time step is varied so that the trajectory satisfies the stopping condition
                to within the error specified by the Error field.   The default value is $10^{-10}$.
	
%	\end{itemize}

	The remainder of the panel items are determined by which algorithm is selected.   Therefore, for each
	integrator, we now describe the remainder of the panel.
%	\begin{itemize}
	\item Runge-Kutta 4, Euler, Adams-Bashforth 4:
		\begin{description}
		\item No additional fields.
		\end{description}
	\item Runge-Kutta 4QC:
		\begin{description}
		\item Const. fractional err. / Bounded global errors exclusive setting:
			Allows the user to choose between controlling the errors at each step by a 
			constant amount, or controlling the errors globally.  The default is to have constant 
			fractional errors. 
		\item Max step read-write text field:
			Displays the value of the largest allowable time step.  The default value is $0.2$.
		\item Err tol read-write text field:
			Displays the value of the required accuracy.  The default value is $10^{-5}$.
		\item Pgrow read-write text field:
			Displays the value of PGROW (see \cite{pressetal}) for the RK-4QC algorithm.  
			The default value is $-0.2$.
		\item Pshrink read-write text field:
			Displays the value of PSHRNK (see \cite{pressetal}) for the RK-4QC algorithm.  
			The default value is $-0.25$.
		\item Fcor read-write text field:
			Displays the value of FCOR (see \cite{pressetal}) for the RK-4QC algorithm.  
			The default value is $0.6666$.
		\item Safety read-write text field:
			Displays the value of SAFETY (see \cite{pressetal}) for the RK-4QC algorithm.  
			The default value is $0.9$.
		\end{description}
	\item Runge-Kutta-Fehlberg 78:
		\begin{description}
                \item Max step read-write text field:
                        Displays the value of the largest allowable time step.  The default value is $0.2$.
                \item Err tol read-write text field:
                        Displays the value of the required accuracy.  The default value is $10^{-5}$.
                \item Safety read-write text field:
                        Displays the factor to reduce the step size by ($\alpha$ in \cite{stoerbulirsch}) 
			for the RKF algorithm.  The default value is $0.8$.
		\end{description}
	\item Bulirsch-Stoer:
		\begin{description}
                \item Const. fractional err / Bounded global errors exclusive setting:
                        Allows the user to choose between controlling the errors at each step by a
                        constant amount, or controlling the errors globally.  The default is to have 
			constant fractional errors.
		\item BS intervals numeric field:
			Displays the integer which will be used by the Bulirsch-Stoer algorithm as
			the number of Bulirsch-Stoer intervals (NUSE in \cite{pressetal}).  The default
			value is $7$.
                \item Max step read-write text field:
                        Displays the value of the largest allowable time step.  The default value is $0.2$.
                \item Err tol read-write text field:
                        Displays the value of the required accuracy.  The
                        default value is $10^{-5}$.
                \item Shrink read-write text field:
                        Displays the value of SHRINK (see \cite{pressetal}) for the B-S algorithm.  
			The default value is $0.95$.
                \item Grow read-write text field:
                        Displays the value of GROW (see \cite{pressetal}) for the B-S algorithm.   
			The default value is $1.2$.
		\end{description}
	\end{itemize}

%
%
	We now describe the Propagation window as it appears for mappings:

	The panel entries of the Propagation window will
	depend upon the current dynamical system.  In particular, an option will not be displayed
	if the current model does not allow the method in question to be used.

	\begin{itemize}
	\item  Jacobian exclusive setting: 
		Allows the user to choose how to evaluate the Jacobian matrix\index{Jacobian matrix}
		for the map.  If the mapping does not have an explicit inverse, then Jacobian matrix 
		is needed in order to compute inverse images of  points, \ie, for backwards iteration of the map.
		The options are:
		\begin{description}
                \item[Forward difference:] A numerical Jacobian will be used, calculated using a 
                	forward difference method.  This method is ${\cal O}(h)$ in the finite
                        difference step $h$.
                \item[Central difference:] A numerical Jacobian will be used, calculated using a 
                        central difference method.  This method is ${\cal O}(h^2)$ in the finite 
                        difference step $h$.
		\item[Explicit:] The explicit Jacobian will be used.  This option is only available 
			if the user has supplied an explicit Jacobian for the map.
		\end{description}

	\item Initial guess exclusive setting: 
		Allows the user to choose how to pick the initial guess (``seed'') for Newton's method.  
		This guess may be provided by:
		\begin{description}
		\item[Approx inv:]\index{inverse, approximate}
			The seed is chosen from an approximate inverse.
			If the map may be considered a perturbation of a map which {\em does} have
			an exact inverse, a good guess for the inverse of the 
			perturbed system is often given by the exact inverse of the unperturbed 
			system.  A few steps of Newton's method is often sufficient to converge to the 
			inverse of the perturbed system.  This option is not available if the mapping
			does not have an approximate inverse defined, \ie, if the inverse\_toggle 
			model file variable is set to either FALSE or EXPLICIT\_INV.
		\item[Monte Carlo:]\index{Monte Carlo method} 
			The seed is chosen at random from within the hypervolume defined by the coordinate 
			values in the Defaults window.
		\end{description}
	\item Inverse algorithm exclusive setting:
		Allows the user to choose which type of inverse algorithm will be used to
		compute approximate inverse images.   The options are:
		\begin{description}
		\item[Newton's method:]\index{Newton's method}
			Newton's method is used to calculate pre-images.
		\item[Explicit formula:]\index{inverse, explicit}
			An explicit formula is used to calculate pre-images.   This option is not 
			available if the mapping does not have an explicit inverse function defined, 
			\ie, if the inverse\_toggle model file variable is set to either FALSE or
			APPROX\_INV.
		\end{description}

	\item \#MC numeric field:  
		Displays the maximum number of random guesses taken by the Monte Carlo routine.  The
		default value is $10$.

	\item  Newton iter numeric field: 
		Displays the maximum number of iterations allowed in Newton's method of 
		computing fixed points.  This algorithm is used, for example, in determining the point along a 
		trajectory for which some event is satisfied.  The default value is $15$.

	\item  Finite diff step read-write text field:  
		Displays the spatial step to be used for computing a finite difference Jacobian.
		The default value is $10^{-5}$.  This field is only used if the Jacobian exclusive setting
		is set to either Forward difference or Central difference. 

	\item Min step read-write text field:\index{convergence}  
		Displays the minimum step required to take during Newton's method.  
		Newton's method generates a sequence of points $\{x_i\}$ which 
		(hopefully) converges to the inverse image. The difference between $x_{i+1}$ and $x_i$ is
		called the $i$th Newton step\index{Newton step}.  If the length of the Newton step is
		less than the value of Min step, then we assume that we can no longer improve our current guess,
		and so we end the Newton process.  The default value is $10^{-8}$.

	\item Conv crit read-write text field: 
		Displays the criterion used to determine when Newton's method has converged. 
		We use Newton's method to compute a root of some function, 
		say, $g$.  An iterative sequence $\{x_i\}_0^n$ is said to converge
		to a solution if the norm of $g(x_i)$ is less than the value of 
		Conv crit for some $i$.   The default value is $10^{-8}$.
	\item Dismiss command button:
		Closes the Propagation window.   
%The fields will not revert back to their default values. 
	\end{itemize}
\end{description}

