--- trunk/tengDissertation/Appendix.tex	2006/06/06 20:33:28	2805
+++ trunk/tengDissertation/Appendix.tex	2006/06/07 02:40:32	2812
@@ -1,11 +1,11 @@
 \appendix
-\chapter{\label{chapt:appendix}APPENDIX}
+\chapter{\label{chapt:oopse}Object-Oriented Parallel Simulation Engine (OOPSE)}
 
 Designing object-oriented software is hard, and designing reusable
 object-oriented scientific software is even harder. Absence of
 applying modern software development practices is the bottleneck of
-Scientific Computing community\cite{wilson}. For instance, in the
-last 20 years , there are quite a few MD packages that were
+Scientific Computing community\cite{Wilson2006}. For instance, in
+the last 20 years , there are quite a few MD packages that were
 developed to solve common MD problems and perform robust simulations
 . However, many of the codes are legacy programs that are either
 poorly organized or extremely complex. Usually, these packages were
@@ -15,19 +15,29 @@ documents which is crucial to the maintenance and exte
 most MD programs also suffer from missing design and implement
 documents which is crucial to the maintenance and extensibility.
 
+\section{\label{appendixSection:architecture }Architecture}
+
+\begin{figure}
+\centering
+\includegraphics[width=3in]{architecture.eps}
+\caption[The architecture of {\sc oopse}-3.0] {The architecture
+of{\sc oopse}-3.0.} \label{appendixFig:architecture}
+\end{figure}
+
 \section{\label{appendixSection:desginPattern}Design Pattern}
 
 Design patterns are optimal solutions to commonly-occurring problems
 in software design. Although originated as an architectural concept
-for buildings and towns by Christopher Alexander \cite{alexander},
-software patterns first became popular with the wide acceptance of
-the book, Design Patterns: Elements of Reusable Object-Oriented
-Software \cite{gamma94}. Patterns reflect the experience, knowledge
-and insights of developers who have successfully used these patterns
-in their own work. Patterns are reusable. They provide a ready-made
-solution that can be adapted to different problems as necessary.
-Pattern are expressive. they provide a common vocabulary of
-solutions that can express large solutions succinctly.
+for buildings and towns by Christopher Alexander
+\cite{Alexander1987}, software patterns first became popular with
+the wide acceptance of the book, Design Patterns: Elements of
+Reusable Object-Oriented Software \cite{Gamma1994}. Patterns reflect
+the experience, knowledge and insights of developers who have
+successfully used these patterns in their own work. Patterns are
+reusable. They provide a ready-made solution that can be adapted to
+different problems as necessary. Pattern are expressive. they
+provide a common vocabulary of solutions that can express large
+solutions succinctly.
 
 Patterns are usually described using a format that includes the
 following information:
@@ -75,8 +85,6 @@ that you are operating on.
 
 \subsection{\label{appendixSection:templateMethod}Template Method}
 
-\section{\label{appendixSection:analysisFramework}Analysis Framework}
-
 \section{\label{appendixSection:concepts}Concepts}
 
 OOPSE manipulates both traditional atoms as well as some objects
@@ -84,14 +92,14 @@ freedom.  Here is a diagram of the class heirarchy:
 collections of atoms or atoms which have orientational degrees of
 freedom.  Here is a diagram of the class heirarchy:
 
-\begin{figure}
-\centering
-\includegraphics[width=3in]{heirarchy.eps}
-\caption[Class heirarchy for StuntDoubles in {\sc oopse}-3.0]{ \\
-The class heirarchy of StuntDoubles in {\sc oopse}-3.0. The
-selection syntax allows the user to select any of the objects that
-are descended from a StuntDouble.} \label{oopseFig:heirarchy}
-\end{figure}
+%\begin{figure}
+%\centering
+%\includegraphics[width=3in]{heirarchy.eps}
+%\caption[Class heirarchy for StuntDoubles in {\sc oopse}-3.0]{ \\
+%The class heirarchy of StuntDoubles in {\sc oopse}-3.0. The
+%selection syntax allows the user to select any of the objects that
+%are descended from a StuntDouble.} \label{oopseFig:heirarchy}
+%\end{figure}
 
 \begin{itemize}
 \item A {\bf StuntDouble} is {\it any} object that can be manipulated by the
@@ -242,42 +250,8 @@ atoms.
 select all StuntDoubles which are within 2.5 angstroms of PO4 or NC4
 atoms.
 
-\section{\label{appendixSection:tools}Tools which use the selection command}
 
-\subsection{\label{appendixSection:Dump2XYZ}Dump2XYZ}
-
-Dump2XYZ can transform an OOPSE dump file into a xyz file which can
-be opened by other molecular dynamics viewers such as Jmol and VMD.
-The options available for Dump2XYZ are as follows:
-
-
-\begin{longtable}[c]{|EFG|}
-\caption{Dump2XYZ Command-line Options}
-\\ \hline
-{\bf option} & {\bf verbose option} & {\bf behavior} \\ \hline
-\endhead
-\hline
-\endfoot
-  -h & {\tt -{}-help} &                        Print help and exit \\
-  -V & {\tt -{}-version} &                     Print version and exit \\
-  -i & {\tt -{}-input=filename}  &             input dump file \\
-  -o & {\tt -{}-output=filename} &             output file name \\
-  -n & {\tt -{}-frame=INT}   &                 print every n frame  (default=`1') \\
-  -w & {\tt -{}-water}       &                 skip the the waters  (default=off) \\
-  -m & {\tt -{}-periodicBox} &                 map to the periodic box  (default=off)\\
-  -z & {\tt -{}-zconstraint}  &                replace the atom types of zconstraint molecules  (default=off) \\
-  -r & {\tt -{}-rigidbody}  &                  add a pseudo COM atom to rigidbody  (default=off) \\
-  -t & {\tt -{}-watertype} &                   replace the atom type of water model (default=on) \\
-  -b & {\tt -{}-basetype}  &                   using base atom type  (default=off) \\
-     & {\tt -{}-repeatX=INT}  &                 The number of images to repeat in the x direction  (default=`0') \\
-     & {\tt -{}-repeatY=INT} &                 The number of images to repeat in the y direction  (default=`0') \\
-     &  {\tt -{}-repeatZ=INT}  &                The number of images to repeat in the z direction  (default=`0') \\
-  -s & {\tt -{}-selection=selection script} & By specifying {\tt -{}-selection}=``selection command'' with Dump2XYZ, the user can select an arbitrary set of StuntDoubles to be
-converted. \\
-     & {\tt -{}-originsele} & By specifying {\tt -{}-originsele}=``selection command'' with Dump2XYZ, the user can re-center the origin of the system around a specific StuntDouble \\
-     & {\tt -{}-refsele} &  In order to rotate the system, {\tt -{}-originsele} and {\tt -{}-refsele} must be given to define the new coordinate set. A StuntDouble which contains a dipole (the direction of the dipole is always (0, 0, 1) in body frame) is specified by {\tt -{}-originsele}. The new x-z plane is defined by the direction of the dipole and the StuntDouble is specified by {\tt -{}-refsele}.
-\end{longtable}
-
+\section{\label{appendixSection:analysisFramework}Analysis Framework}
 
 \subsection{\label{appendixSection:StaticProps}StaticProps}
 
@@ -354,19 +328,19 @@ The options available for {\tt StaticProps} are as fol
 \endfoot
   -h& {\tt -{}-help}                    &  Print help and exit \\
   -V& {\tt -{}-version}                 &  Print version and exit \\
-  -i& {\tt -{}-input=filename}          &  input dump file \\
-  -o& {\tt -{}-output=filename}         &  output file name \\
-  -n& {\tt -{}-step=INT}                &  process every n frame  (default=`1') \\
-  -r& {\tt -{}-nrbins=INT}              &  number of bins for distance  (default=`100') \\
-  -a& {\tt -{}-nanglebins=INT}          &  number of bins for cos(angle)  (default= `50') \\
-  -l& {\tt -{}-length=DOUBLE}           &  maximum length (Defaults to 1/2 smallest length of first frame) \\
-    & {\tt -{}-sele1=selection script}   & select the first StuntDouble set \\
-    & {\tt -{}-sele2=selection script}   & select the second StuntDouble set \\
-    & {\tt -{}-sele3=selection script}   & select the third StuntDouble set \\
-    & {\tt -{}-refsele=selection script} & select reference (can only be used with {\tt -{}-gxyz}) \\
-    & {\tt -{}-molname=STRING}           & molecule name \\
-    & {\tt -{}-begin=INT}                & begin internal index \\
-    & {\tt -{}-end=INT}                  & end internal index \\
+  -i& {\tt -{}-input}          &  input dump file \\
+  -o& {\tt -{}-output}         &  output file name \\
+  -n& {\tt -{}-step}                &  process every n frame  (default=`1') \\
+  -r& {\tt -{}-nrbins}              &  number of bins for distance  (default=`100') \\
+  -a& {\tt -{}-nanglebins}          &  number of bins for cos(angle)  (default= `50') \\
+  -l& {\tt -{}-length}           &  maximum length (Defaults to 1/2 smallest length of first frame) \\
+    & {\tt -{}-sele1}   & select the first StuntDouble set \\
+    & {\tt -{}-sele2}   & select the second StuntDouble set \\
+    & {\tt -{}-sele3}   & select the third StuntDouble set \\
+    & {\tt -{}-refsele} & select reference (can only be used with {\tt -{}-gxyz}) \\
+    & {\tt -{}-molname}           & molecule name \\
+    & {\tt -{}-begin}                & begin internal index \\
+    & {\tt -{}-end}                  & end internal index \\
 \hline
 \multicolumn{3}{|l|}{One option from the following group of options is required:} \\
 \hline
@@ -415,10 +389,10 @@ The options available for DynamicProps are as follows:
 \endfoot
   -h& {\tt -{}-help}                   & Print help and exit \\
   -V& {\tt -{}-version}                & Print version and exit \\
-  -i& {\tt -{}-input=filename}         & input dump file \\
-  -o& {\tt -{}-output=filename}        & output file name \\
-    & {\tt -{}-sele1=selection script} & select first StuntDouble set \\
-    & {\tt -{}-sele2=selection script} & select second StuntDouble set (if sele2 is not set, use script from sele1) \\
+  -i& {\tt -{}-input}         & input dump file \\
+  -o& {\tt -{}-output}        & output file name \\
+    & {\tt -{}-sele1} & select first StuntDouble set \\
+    & {\tt -{}-sele2} & select second StuntDouble set (if sele2 is not set, use script from sele1) \\
 \hline
 \multicolumn{3}{|l|}{One option from the following group of options is required:} \\
 \hline
@@ -427,4 +401,55 @@ The options available for DynamicProps are as follows:
   -d& {\tt -{}-dcorr}                  & compute dipole correlation function
 \end{longtable}
 
+\section{\label{appendixSection:tools}Other Useful Utilities}
+
+\subsection{\label{appendixSection:Dump2XYZ}Dump2XYZ}
+
+Dump2XYZ can transform an OOPSE dump file into a xyz file which can
+be opened by other molecular dynamics viewers such as Jmol and VMD.
+The options available for Dump2XYZ are as follows:
+
+
+\begin{longtable}[c]{|EFG|}
+\caption{Dump2XYZ Command-line Options}
+\\ \hline
+{\bf option} & {\bf verbose option} & {\bf behavior} \\ \hline
+\endhead
+\hline
+\endfoot
+  -h & {\tt -{}-help} &                        Print help and exit \\
+  -V & {\tt -{}-version} &                     Print version and exit \\
+  -i & {\tt -{}-input}  &             input dump file \\
+  -o & {\tt -{}-output} &             output file name \\
+  -n & {\tt -{}-frame}   &                 print every n frame  (default=`1') \\
+  -w & {\tt -{}-water}       &                 skip the the waters  (default=off) \\
+  -m & {\tt -{}-periodicBox} &                 map to the periodic box  (default=off)\\
+  -z & {\tt -{}-zconstraint}  &                replace the atom types of zconstraint molecules  (default=off) \\
+  -r & {\tt -{}-rigidbody}  &                  add a pseudo COM atom to rigidbody  (default=off) \\
+  -t & {\tt -{}-watertype} &                   replace the atom type of water model (default=on) \\
+  -b & {\tt -{}-basetype}  &                   using base atom type  (default=off) \\
+     & {\tt -{}-repeatX}  &                 The number of images to repeat in the x direction  (default=`0') \\
+     & {\tt -{}-repeatY} &                 The number of images to repeat in the y direction  (default=`0') \\
+     &  {\tt -{}-repeatZ}  &                The number of images to repeat in the z direction  (default=`0') \\
+  -s & {\tt -{}-selection} & By specifying {\tt -{}-selection}=``selection command'' with Dump2XYZ, the user can select an arbitrary set of StuntDoubles to be
+converted. \\
+     & {\tt -{}-originsele} & By specifying {\tt -{}-originsele}=``selection command'' with Dump2XYZ, the user can re-center the origin of the system around a specific StuntDouble \\
+     & {\tt -{}-refsele} &  In order to rotate the system, {\tt -{}-originsele} and {\tt -{}-refsele} must be given to define the new coordinate set. A StuntDouble which contains a dipole (the direction of the dipole is always (0, 0, 1) in body frame) is specified by {\tt -{}-originsele}. The new x-z plane is defined by the direction of the dipole and the StuntDouble is specified by {\tt -{}-refsele}.
+\end{longtable}
+
 \subsection{\label{appendixSection:hydrodynamics}Hydrodynamics}
+
+\begin{longtable}[c]{|EFG|}
+\caption{Hydrodynamics Command-line Options}
+\\ \hline
+{\bf option} & {\bf verbose option} & {\bf behavior} \\ \hline
+\endhead
+\hline
+\endfoot
+  -h & {\tt -{}-help} &                        Print help and exit \\
+  -V & {\tt -{}-version} &                     Print version and exit \\
+  -i & {\tt -{}-input}  &             input dump file \\
+  -o & {\tt -{}-output} &             output file prefix  (default=`hydro') \\
+  -b & {\tt -{}-beads}  &                   generate the beads only, hydrodynamics calculation will not be performed (default=off)\\
+     & {\tt -{}-model}  &                 hydrodynamics model (support ``AnalyticalModel'', ``RoughShell'' and ``BeadModel'') \\
+\end{longtable}
