ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/tengDissertation/Appendix.tex
(Generate patch)

Comparing trunk/tengDissertation/Appendix.tex (file contents):
Revision 2730 by tim, Mon Apr 24 18:49:32 2006 UTC vs.
Revision 2813 by tim, Wed Jun 7 02:49:09 2006 UTC

# Line 1 | Line 1
1 < \chapter{\label{chapt:appendix}APPENDIX}
1 > \appendix
2 > \chapter{\label{chapt:oopse}Object-Oriented Parallel Simulation Engine (OOPSE)}
3  
4   Designing object-oriented software is hard, and designing reusable
5   object-oriented scientific software is even harder. Absence of
6   applying modern software development practices is the bottleneck of
7 < Scientific Computing community\cite{wilson}. For instance, in the
8 < last 20 years , there are quite a few MD packages that were
7 > Scientific Computing community\cite{Wilson2006}. For instance, in
8 > the last 20 years , there are quite a few MD packages that were
9   developed to solve common MD problems and perform robust simulations
10   . However, many of the codes are legacy programs that are either
11   poorly organized or extremely complex. Usually, these packages were
# Line 14 | Line 15 | documents which is crucial to the maintenance and exte
15   most MD programs also suffer from missing design and implement
16   documents which is crucial to the maintenance and extensibility.
17  
18 + \section{\label{appendixSection:architecture }Architecture}
19 +
20 + \begin{figure}
21 + \centering
22 + \includegraphics[width=\linewidth]{architecture.eps}
23 + \caption[The architecture of {\sc oopse}-3.0] {The architecture of
24 + {\sc oopse}-3.0.} \label{appendixFig:architecture}
25 + \end{figure}
26 +
27   \section{\label{appendixSection:desginPattern}Design Pattern}
28  
29   Design patterns are optimal solutions to commonly-occurring problems
30   in software design. Although originated as an architectural concept
31 < for buildings and towns by Christopher Alexander \cite{alexander},
32 < software patterns first became popular with the wide acceptance of
33 < the book, Design Patterns: Elements of Reusable Object-Oriented
34 < Software \cite{gamma94}. Patterns reflect the experience, knowledge
35 < and insights of developers who have successfully used these patterns
36 < in their own work. Patterns are reusable. They provide a ready-made
37 < solution that can be adapted to different problems as necessary.
38 < Pattern are expressive. they provide a common vocabulary of
39 < solutions that can express large solutions succinctly.
31 > for buildings and towns by Christopher Alexander
32 > \cite{Alexander1987}, software patterns first became popular with
33 > the wide acceptance of the book, Design Patterns: Elements of
34 > Reusable Object-Oriented Software \cite{Gamma1994}. Patterns reflect
35 > the experience, knowledge and insights of developers who have
36 > successfully used these patterns in their own work. Patterns are
37 > reusable. They provide a ready-made solution that can be adapted to
38 > different problems as necessary. Pattern are expressive. they
39 > provide a common vocabulary of solutions that can express large
40 > solutions succinctly.
41  
42   Patterns are usually described using a format that includes the
43   following information:
# Line 74 | Line 85 | that you are operating on.
85  
86   \subsection{\label{appendixSection:templateMethod}Template Method}
87  
77 \section{\label{appendixSection:analysisFramework}Analysis Framework}
78
88   \section{\label{appendixSection:concepts}Concepts}
89  
90   OOPSE manipulates both traditional atoms as well as some objects
# Line 83 | Line 92 | freedom.  Here is a diagram of the class heirarchy:
92   collections of atoms or atoms which have orientational degrees of
93   freedom.  Here is a diagram of the class heirarchy:
94  
95 < \begin{figure}
96 < \centering
97 < \includegraphics[width=3in]{heirarchy.pdf}
98 < \caption[Class heirarchy for StuntDoubles in {\sc oopse}-3.0]{ \\
99 < The class heirarchy of StuntDoubles in {\sc oopse}-3.0. The
100 < selection syntax allows the user to select any of the objects that
101 < are descended from a StuntDouble.} \label{oopseFig:heirarchy}
102 < \end{figure}
95 > %\begin{figure}
96 > %\centering
97 > %\includegraphics[width=3in]{heirarchy.eps}
98 > %\caption[Class heirarchy for StuntDoubles in {\sc oopse}-3.0]{ \\
99 > %The class heirarchy of StuntDoubles in {\sc oopse}-3.0. The
100 > %selection syntax allows the user to select any of the objects that
101 > %are descended from a StuntDouble.} \label{oopseFig:heirarchy}
102 > %\end{figure}
103  
104   \begin{itemize}
105   \item A {\bf StuntDouble} is {\it any} object that can be manipulated by the
# Line 143 | Line 152 | not & ``!''  \\
152   \subsection{\label{appendixSection:name}Name expressions}
153  
154   \begin{center}
155 < \begin{tabular}{|llp{3in}|}
155 > \begin{tabular}{|llp{2in}|}
156   \hline {\bf type of expression} & {\bf examples} & {\bf translation
157   of
158   examples} \\
# Line 227 | Line 236 | wouldselect StuntDoubles which have mass greater than
236   \end{center}
237  
238   For example, the phrase {\tt select mass > 16.0 and charge < -2}
239 < wouldselect StuntDoubles which have mass greater than 16.0 and
239 > would select StuntDoubles which have mass greater than 16.0 and
240   charges less than -2.
241  
242   \subsection{\label{appendixSection:within}Within expressions}
# Line 241 | Line 250 | atoms.
250   select all StuntDoubles which are within 2.5 angstroms of PO4 or NC4
251   atoms.
252  
244 \section{\label{appendixSection:tools}Tools which use the selection command}
253  
254 < \subsection{\label{appendixSection:Dump2XYZ}Dump2XYZ}
247 <
248 < Dump2XYZ can transform an OOPSE dump file into a xyz file which can
249 < be opened by other molecular dynamics viewers such as Jmol and VMD.
250 < The options available for Dump2XYZ are as follows:
251 <
252 <
253 < \begin{longtable}[c]{|EFG|}
254 < \caption{Dump2XYZ Command-line Options}
255 < \\ \hline
256 < {\bf option} & {\bf verbose option} & {\bf behavior} \\ \hline
257 < \endhead
258 < \hline
259 < \endfoot
260 <  -h & {\tt -{}-help} &                        Print help and exit \\
261 <  -V & {\tt -{}-version} &                     Print version and exit \\
262 <  -i & {\tt -{}-input=filename}  &             input dump file \\
263 <  -o & {\tt -{}-output=filename} &             output file name \\
264 <  -n & {\tt -{}-frame=INT}   &                 print every n frame  (default=`1') \\
265 <  -w & {\tt -{}-water}       &                 skip the the waters  (default=off) \\
266 <  -m & {\tt -{}-periodicBox} &                 map to the periodic box  (default=off)\\
267 <  -z & {\tt -{}-zconstraint}  &                replace the atom types of zconstraint molecules  (default=off) \\
268 <  -r & {\tt -{}-rigidbody}  &                  add a pseudo COM atom to rigidbody  (default=off) \\
269 <  -t & {\tt -{}-watertype} &                   replace the atom type of water model (default=on) \\
270 <  -b & {\tt -{}-basetype}  &                   using base atom type  (default=off) \\
271 <     & {\tt -{}-repeatX=INT}  &                 The number of images to repeat in the x direction  (default=`0') \\
272 <     & {\tt -{}-repeatY=INT} &                 The number of images to repeat in the y direction  (default=`0') \\
273 <     &  {\tt -{}-repeatZ=INT}  &                The number of images to repeat in the z direction  (default=`0') \\
274 <  -s & {\tt -{}-selection=selection script} & By specifying {\tt -{}-selection}=``selection command'' with Dump2XYZ, the user can select an arbitrary set of StuntDoubles to be
275 < converted. \\
276 <     & {\tt -{}-originsele} & By specifying {\tt -{}-originsele}=``selection command'' with Dump2XYZ, the user can re-center the origin of the system around a specific StuntDouble \\
277 <     & {\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}.
278 < \end{longtable}
254 > \section{\label{appendixSection:analysisFramework}Analysis Framework}
255  
280
256   \subsection{\label{appendixSection:StaticProps}StaticProps}
257  
258   {\tt StaticProps} can compute properties which are averaged over
# Line 336 | Line 311 | distribution functions are most easily seen in the fig
311  
312   \begin{figure}
313   \centering
314 < \includegraphics[width=3in]{definition.pdf}
314 > \includegraphics[width=3in]{definition.eps}
315   \caption[Definitions of the angles between directional objects]{ \\
316   Any two directional objects (DirectionalAtoms and RigidBodies) have
317   a set of two angles ($\theta$, and $\omega$) between the z-axes of
# Line 353 | Line 328 | The options available for {\tt StaticProps} are as fol
328   \endfoot
329    -h& {\tt -{}-help}                    &  Print help and exit \\
330    -V& {\tt -{}-version}                 &  Print version and exit \\
331 <  -i& {\tt -{}-input=filename}          &  input dump file \\
332 <  -o& {\tt -{}-output=filename}         &  output file name \\
333 <  -n& {\tt -{}-step=INT}                &  process every n frame  (default=`1') \\
334 <  -r& {\tt -{}-nrbins=INT}              &  number of bins for distance  (default=`100') \\
335 <  -a& {\tt -{}-nanglebins=INT}          &  number of bins for cos(angle)  (default= `50') \\
336 <  -l& {\tt -{}-length=DOUBLE}           &  maximum length (Defaults to 1/2 smallest length of first frame) \\
337 <    & {\tt -{}-sele1=selection script}   & select the first StuntDouble set \\
338 <    & {\tt -{}-sele2=selection script}   & select the second StuntDouble set \\
339 <    & {\tt -{}-sele3=selection script}   & select the third StuntDouble set \\
340 <    & {\tt -{}-refsele=selection script} & select reference (can only be used with {\tt -{}-gxyz}) \\
341 <    & {\tt -{}-molname=STRING}           & molecule name \\
342 <    & {\tt -{}-begin=INT}                & begin internal index \\
343 <    & {\tt -{}-end=INT}                  & end internal index \\
331 >  -i& {\tt -{}-input}          &  input dump file \\
332 >  -o& {\tt -{}-output}         &  output file name \\
333 >  -n& {\tt -{}-step}                &  process every n frame  (default=`1') \\
334 >  -r& {\tt -{}-nrbins}              &  number of bins for distance  (default=`100') \\
335 >  -a& {\tt -{}-nanglebins}          &  number of bins for cos(angle)  (default= `50') \\
336 >  -l& {\tt -{}-length}           &  maximum length (Defaults to 1/2 smallest length of first frame) \\
337 >    & {\tt -{}-sele1}   & select the first StuntDouble set \\
338 >    & {\tt -{}-sele2}   & select the second StuntDouble set \\
339 >    & {\tt -{}-sele3}   & select the third StuntDouble set \\
340 >    & {\tt -{}-refsele} & select reference (can only be used with {\tt -{}-gxyz}) \\
341 >    & {\tt -{}-molname}           & molecule name \\
342 >    & {\tt -{}-begin}                & begin internal index \\
343 >    & {\tt -{}-end}                  & end internal index \\
344   \hline
345   \multicolumn{3}{|l|}{One option from the following group of options is required:} \\
346   \hline
# Line 414 | Line 389 | The options available for DynamicProps are as follows:
389   \endfoot
390    -h& {\tt -{}-help}                   & Print help and exit \\
391    -V& {\tt -{}-version}                & Print version and exit \\
392 <  -i& {\tt -{}-input=filename}         & input dump file \\
393 <  -o& {\tt -{}-output=filename}        & output file name \\
394 <    & {\tt -{}-sele1=selection script} & select first StuntDouble set \\
395 <    & {\tt -{}-sele2=selection script} & select second StuntDouble set (if sele2 is not set, use script from sele1) \\
392 >  -i& {\tt -{}-input}         & input dump file \\
393 >  -o& {\tt -{}-output}        & output file name \\
394 >    & {\tt -{}-sele1} & select first StuntDouble set \\
395 >    & {\tt -{}-sele2} & select second StuntDouble set (if sele2 is not set, use script from sele1) \\
396   \hline
397   \multicolumn{3}{|l|}{One option from the following group of options is required:} \\
398   \hline
# Line 426 | Line 401 | The options available for DynamicProps are as follows:
401    -d& {\tt -{}-dcorr}                  & compute dipole correlation function
402   \end{longtable}
403  
404 + \section{\label{appendixSection:tools}Other Useful Utilities}
405 +
406 + \subsection{\label{appendixSection:Dump2XYZ}Dump2XYZ}
407 +
408 + Dump2XYZ can transform an OOPSE dump file into a xyz file which can
409 + be opened by other molecular dynamics viewers such as Jmol and VMD.
410 + The options available for Dump2XYZ are as follows:
411 +
412 +
413 + \begin{longtable}[c]{|EFG|}
414 + \caption{Dump2XYZ Command-line Options}
415 + \\ \hline
416 + {\bf option} & {\bf verbose option} & {\bf behavior} \\ \hline
417 + \endhead
418 + \hline
419 + \endfoot
420 +  -h & {\tt -{}-help} &                        Print help and exit \\
421 +  -V & {\tt -{}-version} &                     Print version and exit \\
422 +  -i & {\tt -{}-input}  &             input dump file \\
423 +  -o & {\tt -{}-output} &             output file name \\
424 +  -n & {\tt -{}-frame}   &                 print every n frame  (default=`1') \\
425 +  -w & {\tt -{}-water}       &                 skip the the waters  (default=off) \\
426 +  -m & {\tt -{}-periodicBox} &                 map to the periodic box  (default=off)\\
427 +  -z & {\tt -{}-zconstraint}  &                replace the atom types of zconstraint molecules  (default=off) \\
428 +  -r & {\tt -{}-rigidbody}  &                  add a pseudo COM atom to rigidbody  (default=off) \\
429 +  -t & {\tt -{}-watertype} &                   replace the atom type of water model (default=on) \\
430 +  -b & {\tt -{}-basetype}  &                   using base atom type  (default=off) \\
431 +     & {\tt -{}-repeatX}  &                 The number of images to repeat in the x direction  (default=`0') \\
432 +     & {\tt -{}-repeatY} &                 The number of images to repeat in the y direction  (default=`0') \\
433 +     &  {\tt -{}-repeatZ}  &                The number of images to repeat in the z direction  (default=`0') \\
434 +  -s & {\tt -{}-selection} & By specifying {\tt -{}-selection}=``selection command'' with Dump2XYZ, the user can select an arbitrary set of StuntDoubles to be
435 + converted. \\
436 +     & {\tt -{}-originsele} & By specifying {\tt -{}-originsele}=``selection command'' with Dump2XYZ, the user can re-center the origin of the system around a specific StuntDouble \\
437 +     & {\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}.
438 + \end{longtable}
439 +
440   \subsection{\label{appendixSection:hydrodynamics}Hydrodynamics}
441 +
442 + \begin{longtable}[c]{|EFG|}
443 + \caption{Hydrodynamics Command-line Options}
444 + \\ \hline
445 + {\bf option} & {\bf verbose option} & {\bf behavior} \\ \hline
446 + \endhead
447 + \hline
448 + \endfoot
449 +  -h & {\tt -{}-help} &                        Print help and exit \\
450 +  -V & {\tt -{}-version} &                     Print version and exit \\
451 +  -i & {\tt -{}-input}  &             input dump file \\
452 +  -o & {\tt -{}-output} &             output file prefix  (default=`hydro') \\
453 +  -b & {\tt -{}-beads}  &                   generate the beads only, hydrodynamics calculation will not be performed (default=off)\\
454 +     & {\tt -{}-model}  &                 hydrodynamics model (support ``AnalyticalModel'', ``RoughShell'' and ``BeadModel'') \\
455 + \end{longtable}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines