\section{jd\-Rand\_\-Eval  Class Reference}
\label{class_jdRand_Eval}\index{jdRand_Eval@{jd\-Rand\_\-Eval}}
{\tt \#include $<$jd\_\-rand\_\-eval.h$>$}

Inheritance diagram for jd\-Rand\_\-Eval\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=56pt]{class_jdRand_Eval_inherit_graph}
\end{center}
\end{figure}
Collaboration diagram for jd\-Rand\_\-Eval:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=373pt]{class_jdRand_Eval_coll_graph}
\end{center}
\end{figure}
\subsection*{Public Methods}
\begin{CompactItemize}
\item 
{\bf jd\-Rand\_\-Eval} ({\bf Constraint\-Manager} \&{\bf CM}, ifstream $\ast$in\-Stream, int cycle\_\-in, double pert\_\-in)
\item 
{\bf $\sim$jd\-Rand\_\-Eval} ()
\item 
int {\bf run} ()
\end{CompactItemize}
\subsection*{Public Attributes}
\begin{CompactItemize}
\item 
int {\bf cycles}
\item 
double {\bf pert}
\item 
{\bf Dyn\-String} {\bf Base\-FN}
\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item 
ifstream$\ast$ {\bf mol\_\-file}
\end{CompactItemize}


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

File: {\bf jd\_\-rand\_\-eval.h}

Created by: Jon Dugan

jd\-Rand\_\-Eval job. perturb a molecule randomly and report on the satisfaction against a set of input constraints.

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



Definition at line 26 of file jd\_\-rand\_\-eval.h.

\subsection{Constructor \& Destructor Documentation}
\index{jdRand_Eval@{jd\-Rand\_\-Eval}!jdRand_Eval@{jdRand\_\-Eval}}
\index{jdRand_Eval@{jdRand\_\-Eval}!jdRand_Eval@{jd\-Rand\_\-Eval}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}jd\-Rand\_\-Eval::jd\-Rand\_\-Eval ({\bf Constraint\-Manager} \& {\em cm}, ifstream $\ast$ {\em in\-Stream}, int {\em c\_\-in} = 10, double {\em p\_\-in} = 0.05)}\label{class_jdRand_Eval_a0}




Definition at line 3 of file jd\_\-rand\_\-eval.C.\footnotesize\begin{verbatim}00005   : SatisfyMolecule(cm)
00006 {
00007   mol_file = inStream; 
00008   cycles = c_in;
00009   pert = p_in;
00010 \end{verbatim}\normalsize 
\index{jdRand_Eval@{jd\-Rand\_\-Eval}!~jdRand_Eval@{$\sim$jdRand\_\-Eval}}
\index{~jdRand_Eval@{$\sim$jdRand\_\-Eval}!jdRand_Eval@{jd\-Rand\_\-Eval}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}jd\-Rand\_\-Eval::$\sim$jd\-Rand\_\-Eval ()}\label{class_jdRand_Eval_a1}




Definition at line 12 of file jd\_\-rand\_\-eval.C.\footnotesize\begin{verbatim}00013   {
00014 \end{verbatim}\normalsize 


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


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 16 of file jd\_\-rand\_\-eval.C.

Referenced by main().\footnotesize\begin{verbatim}00016                      {
00017 
00018   DynString FN = "rand_out.xmol";
00019   AnimFrame::Enabled =true;
00020   AnimFrame *Out = new AnimFrame(*CM, FN);  
00021   jVector E;
00022   
00023 #ifdef JOB_VERBOSE
00024   cerr << "Start: \tRand_Eval::run()" << endl;
00025 #endif
00026   int  i = 0;
00027   E =  CM->getStressList();
00028 
00029   // REPORT
00030   cerr << "Frame: " << i << " Cycle: " << "original" << " Error: " << E.sum() << endl
00031        << "======================================================================" << endl;
00032   Out->run();
00033   for (int k = 1; k<=cycles;k++){
00034     CM->RandomPerturb(pert);
00035     CM->InvalidateEnvelope();
00036     E =  CM->getStressList();
00037     cerr << "Frame: " << i << " Cycle: " << k << " Error: " << E.sum() << endl
00038          << "======================================================================" << endl;   
00039   Out->run();
00040   }
00041 
00042   
00043   mol_file->ipfx(); // gobbles whitespace & sets flags for good()
00044 
00045   
00046   while (mol_file->good()){
00047     i++;
00048 
00049     //    M->writeXmol(cerr);
00050     //    CM->InvalidateAtoms();
00051 
00052 
00053       CM->readNewMoleculeXmol(*mol_file);
00054       CM->InvalidateEnvelope();
00055       E =  CM->getStressList();
00056 
00057       // REPORT
00058       cerr << "Frame: " << i << " Cycle: " << "original" << " Error: " << E.sum() << endl
00059            << "======================================================================" << endl;
00060       Out->run();
00061       for (int k = 1; k<=cycles;k++){
00062         CM->RandomPerturb(pert);
00063         CM->InvalidateEnvelope();
00064         E =  CM->getStressList();
00065         cerr << "Frame: " << i << " Cycle: " << k << " Error: " << E.sum() << endl
00066              << "======================================================================" << endl;       
00067       Out->run();
00068       }
00069       
00070       mol_file->ipfx(); //make sure input xmol file is still good
00071 
00072   }
00073 \end{verbatim}\normalsize 


\subsection{Member Data Documentation}
\index{jdRand_Eval@{jd\-Rand\_\-Eval}!BaseFN@{BaseFN}}
\index{BaseFN@{BaseFN}!jdRand_Eval@{jd\-Rand\_\-Eval}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf Dyn\-String} jd\-Rand\_\-Eval::Base\-FN}\label{class_jdRand_Eval_m2}




Reimplemented from {\bf Satisfy\-Molecule} {\rm (p.\,\pageref{class_SatisfyMolecule_p0})}.

Definition at line 36 of file jd\_\-rand\_\-eval.h.\index{jdRand_Eval@{jd\-Rand\_\-Eval}!cycles@{cycles}}
\index{cycles@{cycles}!jdRand_Eval@{jd\-Rand\_\-Eval}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int jd\-Rand\_\-Eval::cycles}\label{class_jdRand_Eval_m0}




Definition at line 33 of file jd\_\-rand\_\-eval.h.\index{jdRand_Eval@{jd\-Rand\_\-Eval}!mol_file@{mol\_\-file}}
\index{mol_file@{mol\_\-file}!jdRand_Eval@{jd\-Rand\_\-Eval}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}ifstream $\ast$ jd\-Rand\_\-Eval::mol\_\-file\hspace{0.3cm}{\tt  [private]}}\label{class_jdRand_Eval_o0}




Definition at line 40 of file jd\_\-rand\_\-eval.h.\index{jdRand_Eval@{jd\-Rand\_\-Eval}!pert@{pert}}
\index{pert@{pert}!jdRand_Eval@{jd\-Rand\_\-Eval}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}double jd\-Rand\_\-Eval::pert}\label{class_jdRand_Eval_m1}




Definition at line 34 of file jd\_\-rand\_\-eval.h.

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