\section{jd\-Iterator  Class Reference}
\label{class_jdIterator}\index{jdIterator@{jd\-Iterator}}
{\tt \#include $<$jd\_\-iterator.h$>$}

Inheritance diagram for jd\-Iterator\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=56pt]{class_jdIterator_inherit_graph}
\end{center}
\end{figure}
Collaboration diagram for jd\-Iterator:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=347pt]{class_jdIterator_coll_graph}
\end{center}
\end{figure}
\subsection*{Public Methods}
\begin{CompactItemize}
\item 
{\bf jd\-Iterator} (const jd\-Iterator \&ca)
\item 
{\bf jd\-Iterator} ({\bf Constraint\-Manager} \&{\bf CM})
\item 
{\bf $\sim$jd\-Iterator} ()
\item 
int {\bf run} ()
\end{CompactItemize}
\subsection*{Static Public Attributes}
\begin{CompactItemize}
\item 
int {\bf Max\-Iterations} = 2999
\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item 
int {\bf Iteration\-Number}
\end{CompactItemize}


\subsection{Detailed Description}
//////////////////////////////////////////////////////////

File: {\bf jd\_\-iterator.h}

Created by: Jon Dugan

jd\-Iterator job. iterates over all atoms based on error

////////////////////////////////////////////////////////// 



Definition at line 28 of file jd\_\-iterator.h.

\subsection{Constructor \& Destructor Documentation}
\index{jdIterator@{jd\-Iterator}!jdIterator@{jdIterator}}
\index{jdIterator@{jdIterator}!jdIterator@{jd\-Iterator}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}jd\-Iterator::jd\-Iterator (const jd\-Iterator \& {\em ca})}\label{class_jdIterator_a0}




Definition at line 3 of file jd\_\-iterator.C.\footnotesize\begin{verbatim}00004   : SatisfyMolecule(*(ca.CM))
00005 {
00006   DIE("jdIterator copy constructor called. ");
00007 \end{verbatim}\normalsize 
\index{jdIterator@{jd\-Iterator}!jdIterator@{jdIterator}}
\index{jdIterator@{jdIterator}!jdIterator@{jd\-Iterator}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}jd\-Iterator::jd\-Iterator ({\bf Constraint\-Manager} \& {\em cm})}\label{class_jdIterator_a1}




Definition at line 10 of file jd\_\-iterator.C.\footnotesize\begin{verbatim}00011   : SatisfyMolecule(cm)
00012 {
00013 
00014 \end{verbatim}\normalsize 
\index{jdIterator@{jd\-Iterator}!~jdIterator@{$\sim$jdIterator}}
\index{~jdIterator@{$\sim$jdIterator}!jdIterator@{jd\-Iterator}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}jd\-Iterator::$\sim$jd\-Iterator ()}\label{class_jdIterator_a2}




Definition at line 16 of file jd\_\-iterator.C.\footnotesize\begin{verbatim}00017   { 
00018     // Don't delete my children (since Process takes care of it).
00019     // i.e. dont do for(int i=0; i<numChildren; ++i) delete Children[i].
00020     // or delete[] Children.
00021 
00022     // NB in THIS class I am not adding my children to the queue for
00023     // the parent class, Procss'  As a result, the children need to be
00024     // explicitly deleted.
00025 
00026     delete Children[0];
00027     delete Children[1];
00028     delete Children[2];
00029     delete Children[3];
00030     // Normally a job would NOT do this --
00031     // ~Process would do it, but I am not adding these to the queue
00032 \end{verbatim}\normalsize 


\subsection{Member Function Documentation}
\index{jdIterator@{jd\-Iterator}!run@{run}}
\index{run@{run}!jdIterator@{jd\-Iterator}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int jd\-Iterator::run ()\hspace{0.3cm}{\tt  [virtual]}}\label{class_jdIterator_a3}


Execute this process. Returns the exit status of the process (0 is success, non-zero is error). 

Reimplemented from {\bf Process} {\rm (p.\,\pageref{class_Process_a1})}.

Definition at line 34 of file jd\_\-iterator.C.\footnotesize\begin{verbatim}00034                     {
00035 
00036 #ifdef JOB_VERBOSE
00037   cerr << "Start: \tIterator::run()" << endl;
00038 #endif
00039 
00040   //CM->PrintGraph(cout);
00041   
00042   int StopFlag = 0;
00043   int iteration = 0;
00044  
00045   Children = new Process*[4];
00046   
00047   Children[0] = new CycleAll(*CM);
00048   Children[1] = new AnimFrame(*CM, AnimFN);
00049   Children[2] = new StopEval(*CM);
00050   Children[3] = new RelaxSubset(*CM, .4);
00051 
00052   
00053   while (!StopFlag && iteration < MaxIterations){
00054     
00055     // CYCLE and RELAX
00056     Children[0]->run();
00057 
00058     // RESET CYCLE ATOMS
00059     Children[0]->reset();
00060 
00061     
00062     //Children[3]->run();
00063     //Children[3]->run();
00064 
00065 
00066     // WRITE ANIMATION FRAME   
00067     Children[1]->run();
00068 
00069     // EVALUATE STOP CONDITION
00070     StopFlag = Children[2]->run();  //editing this still -- performs evaluations and stop criteria
00071         
00072     iteration++;
00073     
00074   }
00075 \end{verbatim}\normalsize 


\subsection{Member Data Documentation}
\index{jdIterator@{jd\-Iterator}!IterationNumber@{IterationNumber}}
\index{IterationNumber@{IterationNumber}!jdIterator@{jd\-Iterator}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int jd\-Iterator::Iteration\-Number\hspace{0.3cm}{\tt  [private]}}\label{class_jdIterator_o0}




Definition at line 45 of file jd\_\-iterator.h.\index{jdIterator@{jd\-Iterator}!MaxIterations@{MaxIterations}}
\index{MaxIterations@{MaxIterations}!jdIterator@{jd\-Iterator}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int jd\-Iterator::Max\-Iterations = 2999\hspace{0.3cm}{\tt  [static]}}\label{class_jdIterator_p0}




Definition at line 51 of file globals.C.

The documentation for this class was generated from the following files:\begin{CompactItemize}
\item 
{\bf jd\_\-iterator.h}\item 
{\bf globals.C}\item 
{\bf jd\_\-iterator.C}\end{CompactItemize}
