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 2685 by tim, Mon Apr 3 18:07:54 2006 UTC vs.
Revision 2812 by tim, Wed Jun 7 02:40:32 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{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
12 + contributed by scientists without official computer science
13 + training. The development of most MD applications are lack of strong
14 + coordination to enforce design and programming guidelines. Moreover,
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=3in]{architecture.eps}
23 + \caption[The architecture of {\sc oopse}-3.0] {The architecture
24 + of{\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
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 < \subsection{\label{appendixSection:visitorPattern}Visitor Pattern}
42 > Patterns are usually described using a format that includes the
43 > following information:
44 > \begin{enumerate}
45 >  \item The \emph{name} that is commonly used for the pattern. Good pattern names form a vocabulary for
46 >  discussing conceptual abstractions. a pattern may have more than one commonly used or recognizable name
47 >  in the literature. In this case it is common practice to document these nicknames or synonyms under
48 >  the heading of \emph{Aliases} or \emph{Also Known As}.
49 >  \item The \emph{motivation} or \emph{context} that this pattern applies
50 >  to. Sometimes, it will include some prerequisites that should be satisfied before deciding to use a pattern
51 >  \item The \emph{solution} to the problem that the pattern
52 >  addresses. It describes how to construct the necessary work products. The description may include
53 >  pictures, diagrams and prose which identify the pattern's structure, its participants, and their
54 >  collaborations, to show how the problem is solved.
55 >  \item The \emph{consequences} of using the given solution to solve a
56 >  problem, both positive and negative.
57 > \end{enumerate}
58  
59 < \subsection{\label{appendixSection:templatePattern}Template Pattern}
59 > As one of the latest advanced techniques emerged from
60 > object-oriented community, design patterns were applied in some of
61 > the modern scientific software applications, such as JMol, OOPSE
62 > \cite{Meineke05} and PROTOMOL \cite{Matthey05} \textit{etc}.
63  
64 < \subsection{\label{appendixSection:factoryPattern}Factory Pattern}
64 > \subsection{\label{appendixSection:singleton}Singleton}
65 > The Singleton pattern ensures that only one instance of a class is
66 > created. All objects that use an instance of that class use the same
67 > instance.
68  
69 < \section{\label{appendixSection:hierarchy}Hierarchy}
69 > \subsection{\label{appendixSection:factoryMethod}Factory Method}
70 > The Factory Method pattern is a creational pattern which deals with
71 > the problem of creating objects without specifying the exact class
72 > of object that will be created. Factory Method solves this problem
73 > by defining a separate method for creating the objects, which
74 > subclasses can then override to specify the derived type of product
75 > that will be created.
76  
14 \section{\label{appendixSection:selectionSyntax}Selection Syntax}
77  
78 < \section{\label{appendixSection:hydrodynamics}Hydrodynamics}
78 > \subsection{\label{appendixSection:visitorPattern}Visitor}
79 > The purpose of the Visitor Pattern is to encapsulate an operation
80 > that you want to perform on the elements of a data structure. In
81 > this way, you can change the operation being performed on a
82 > structure without the need of changing the classes of the elements
83 > that you are operating on.
84  
85 +
86 + \subsection{\label{appendixSection:templateMethod}Template Method}
87 +
88 + \section{\label{appendixSection:concepts}Concepts}
89 +
90 + OOPSE manipulates both traditional atoms as well as some objects
91 + that {\it behave like atoms}.  These objects can be rigid
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.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
106 + integrators and minimizers.
107 + \item An {\bf Atom} is a fundamental point-particle that can be moved around during a simulation.
108 + \item A {\bf DirectionalAtom} is an atom which has {\it orientational} as well as translational degrees of freedom.
109 + \item A {\bf RigidBody} is a collection of {\bf Atom}s or {\bf
110 + DirectionalAtom}s which behaves as a single unit.
111 + \end{itemize}
112 +
113 + Every Molecule, Atom and DirectionalAtom in {\sc oopse} have their
114 + own names which are specified in the {\tt .md} file. In contrast,
115 + RigidBodies are denoted by their membership and index inside a
116 + particular molecule: [MoleculeName]\_RB\_[index] (the contents
117 + inside the brackets depend on the specifics of the simulation). The
118 + names of rigid bodies are generated automatically. For example, the
119 + name of the first rigid body in a DMPC molecule is DMPC\_RB\_0.
120 +
121 + \section{\label{appendixSection:syntax}Syntax of the Select Command}
122 +
123 + The most general form of the select command is: {\tt select {\it
124 + expression}}
125 +
126 + This expression represents an arbitrary set of StuntDoubles (Atoms
127 + or RigidBodies) in {\sc oopse}. Expressions are composed of either
128 + name expressions, index expressions, predefined sets, user-defined
129 + expressions, comparison operators, within expressions, or logical
130 + combinations of the above expression types. Expressions can be
131 + combined using parentheses and the Boolean operators.
132 +
133 + \subsection{\label{appendixSection:logical}Logical expressions}
134 +
135 + The logical operators allow complex queries to be constructed out of
136 + simpler ones using the standard boolean connectives {\bf and}, {\bf
137 + or}, {\bf not}. Parentheses can be used to alter the precedence of
138 + the operators.
139 +
140 + \begin{center}
141 + \begin{tabular}{|ll|}
142 + \hline
143 + {\bf logical operator} & {\bf equivalent operator}  \\
144 + \hline
145 + and & ``\&'', ``\&\&'' \\
146 + or & ``$|$'', ``$||$'', ``,'' \\
147 + not & ``!''  \\
148 + \hline
149 + \end{tabular}
150 + \end{center}
151 +
152 + \subsection{\label{appendixSection:name}Name expressions}
153 +
154 + \begin{center}
155 + \begin{tabular}{|llp{2in}|}
156 + \hline {\bf type of expression} & {\bf examples} & {\bf translation
157 + of
158 + examples} \\
159 + \hline expression without ``.'' & select DMPC & select all
160 + StuntDoubles
161 + belonging to all DMPC molecules \\
162 + & select C* & select all atoms which have atom types beginning with C
163 + \\
164 + & select DMPC\_RB\_* & select all RigidBodies in DMPC molecules (but
165 + only select the rigid bodies, and not the atoms belonging to them). \\
166 + \hline expression has one ``.'' & select TIP3P.O\_TIP3P & select the
167 + O\_TIP3P
168 + atoms belonging to TIP3P molecules \\
169 + & select DMPC\_RB\_O.PO4 & select the PO4 atoms belonging to
170 + the first
171 + RigidBody in each DMPC molecule \\
172 + & select DMPC.20 & select the twentieth StuntDouble in each DMPC
173 + molecule \\
174 + \hline expression has two ``.''s & select DMPC.DMPC\_RB\_?.* &
175 + select all atoms
176 + belonging to all rigid bodies within all DMPC molecules \\
177 + \hline
178 + \end{tabular}
179 + \end{center}
180 +
181 + \subsection{\label{appendixSection:index}Index expressions}
182 +
183 + \begin{center}
184 + \begin{tabular}{|lp{4in}|}
185 + \hline
186 + {\bf examples} & {\bf translation of examples} \\
187 + \hline
188 + select 20 & select all of the StuntDoubles belonging to Molecule 20 \\
189 + select 20 to 30 & select all of the StuntDoubles belonging to
190 + molecules which have global indices between 20 (inclusive) and 30
191 + (exclusive) \\
192 + \hline
193 + \end{tabular}
194 + \end{center}
195 +
196 + \subsection{\label{appendixSection:predefined}Predefined sets}
197 +
198 + \begin{center}
199 + \begin{tabular}{|ll|}
200 + \hline
201 + {\bf keyword} & {\bf description} \\
202 + \hline
203 + all & select all StuntDoubles \\
204 + none & select none of the StuntDoubles \\
205 + \hline
206 + \end{tabular}
207 + \end{center}
208 +
209 + \subsection{\label{appendixSection:userdefined}User-defined expressions}
210 +
211 + Users can define arbitrary terms to represent groups of
212 + StuntDoubles, and then use the define terms in select commands. The
213 + general form for the define command is: {\bf define {\it term
214 + expression}}
215 +
216 + Once defined, the user can specify such terms in boolean expressions
217 +
218 + {\tt define SSDWATER SSD or SSD1 or SSDRF}
219 +
220 + {\tt select SSDWATER}
221 +
222 + \subsection{\label{appendixSection:comparison}Comparison expressions}
223 +
224 + StuntDoubles can be selected by using comparision operators on their
225 + properties. The general form for the comparison command is: a
226 + property name, followed by a comparision operator and then a number.
227 +
228 + \begin{center}
229 + \begin{tabular}{|l|l|}
230 + \hline
231 + {\bf property} & mass, charge \\
232 + {\bf comparison operator} & ``$>$'', ``$<$'', ``$=$'', ``$>=$'',
233 + ``$<=$'', ``$!=$'' \\
234 + \hline
235 + \end{tabular}
236 + \end{center}
237 +
238 + For example, the phrase {\tt select mass > 16.0 and charge < -2}
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}
243 +
244 + The ``within'' keyword allows the user to select all StuntDoubles
245 + within the specified distance (in Angstroms) from a selection,
246 + including the selected atom itself. The general form for within
247 + selection is: {\tt select within(distance, expression)}
248 +
249 + For example, the phrase {\tt select within(2.5, PO4 or NC4)} would
250 + select all StuntDoubles which are within 2.5 angstroms of PO4 or NC4
251 + atoms.
252 +
253 +
254   \section{\label{appendixSection:analysisFramework}Analysis Framework}
255  
256 < \subsection{\label{appendixSection:staticProps}Factory Properties}
256 > \subsection{\label{appendixSection:StaticProps}StaticProps}
257  
258 < \subsection{\label{appendixSection:dynamicProps}Dynamics Properties}
258 > {\tt StaticProps} can compute properties which are averaged over
259 > some or all of the configurations that are contained within a dump
260 > file. The most common example of a static property that can be
261 > computed is the pair distribution function between atoms of type $A$
262 > and other atoms of type $B$, $g_{AB}(r)$.  StaticProps can also be
263 > used to compute the density distributions of other molecules in a
264 > reference frame {\it fixed to the body-fixed reference frame} of a
265 > selected atom or rigid body.
266 >
267 > There are five seperate radial distribution functions availiable in
268 > OOPSE. Since every radial distrbution function invlove the
269 > calculation between pairs of bodies, {\tt -{}-sele1} and {\tt
270 > -{}-sele2} must be specified to tell StaticProps which bodies to
271 > include in the calculation.
272 >
273 > \begin{description}
274 > \item[{\tt -{}-gofr}] Computes the pair distribution function,
275 > \begin{equation*}
276 > g_{AB}(r) = \frac{1}{\rho_B}\frac{1}{N_A} \langle \sum_{i \in A}
277 > \sum_{j \in B} \delta(r - r_{ij}) \rangle
278 > \end{equation*}
279 > \item[{\tt -{}-r\_theta}] Computes the angle-dependent pair distribution
280 > function. The angle is defined by the intermolecular vector
281 > $\vec{r}$ and $z$-axis of DirectionalAtom A,
282 > \begin{equation*}
283 > g_{AB}(r, \cos \theta) = \frac{1}{\rho_B}\frac{1}{N_A} \langle
284 > \sum_{i \in A} \sum_{j \in B} \delta(r - r_{ij}) \delta(\cos
285 > \theta_{ij} - \cos \theta)\rangle
286 > \end{equation*}
287 > \item[{\tt -{}-r\_omega}] Computes the angle-dependent pair distribution
288 > function. The angle is defined by the $z$-axes of the two
289 > DirectionalAtoms A and B.
290 > \begin{equation*}
291 > g_{AB}(r, \cos \omega) = \frac{1}{\rho_B}\frac{1}{N_A} \langle
292 > \sum_{i \in A} \sum_{j \in B} \delta(r - r_{ij}) \delta(\cos
293 > \omega_{ij} - \cos \omega)\rangle
294 > \end{equation*}
295 > \item[{\tt -{}-theta\_omega}] Computes the pair distribution in the angular
296 > space $\theta, \omega$ defined by the two angles mentioned above.
297 > \begin{equation*}
298 > g_{AB}(\cos\theta, \cos \omega) = \frac{1}{\rho_B}\frac{1}{N_A}
299 > \langle \sum_{i \in A} \sum_{j \in B} \langle \delta(\cos
300 > \theta_{ij} - \cos \theta) \delta(\cos \omega_{ij} - \cos
301 > \omega)\rangle
302 > \end{equation*}
303 > \item[{\tt -{}-gxyz}] Calculates the density distribution of particles of type
304 > B in the body frame of particle A. Therefore, {\tt -{}-originsele}
305 > and {\tt -{}-refsele} must be given to define A's internal
306 > coordinate set as the reference frame for the calculation.
307 > \end{description}
308 >
309 > The vectors (and angles) associated with these angular pair
310 > distribution functions are most easily seen in the figure below:
311 >
312 > \begin{figure}
313 > \centering
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
318 > their body-fixed frames.} \label{oopseFig:gofr}
319 > \end{figure}
320 >
321 > The options available for {\tt StaticProps} are as follows:
322 > \begin{longtable}[c]{|EFG|}
323 > \caption{StaticProps Command-line Options}
324 > \\ \hline
325 > {\bf option} & {\bf verbose option} & {\bf behavior} \\ \hline
326 > \endhead
327 > \hline
328 > \endfoot
329 >  -h& {\tt -{}-help}                    &  Print help and exit \\
330 >  -V& {\tt -{}-version}                 &  Print version and exit \\
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
347 >    &  {\tt -{}-gofr}                    &  $g(r)$ \\
348 >    &  {\tt -{}-r\_theta}                 &  $g(r, \cos(\theta))$ \\
349 >    &  {\tt -{}-r\_omega}                 &  $g(r, \cos(\omega))$ \\
350 >    &  {\tt -{}-theta\_omega}             &  $g(\cos(\theta), \cos(\omega))$ \\
351 >    &  {\tt -{}-gxyz}                    &  $g(x, y, z)$ \\
352 >    &  {\tt -{}-p2}                      &  $P_2$ order parameter ({\tt -{}-sele1} and {\tt -{}-sele2} must be specified) \\
353 >    &  {\tt -{}-scd}                     &  $S_{CD}$ order parameter(either {\tt -{}-sele1}, {\tt -{}-sele2}, {\tt -{}-sele3} are specified or {\tt -{}-molname}, {\tt -{}-begin}, {\tt -{}-end} are specified) \\
354 >    &  {\tt -{}-density}                 &  density plot ({\tt -{}-sele1} must be specified) \\
355 >    &  {\tt -{}-slab\_density}           &  slab density ({\tt -{}-sele1} must be specified)
356 > \end{longtable}
357 >
358 > \subsection{\label{appendixSection:DynamicProps}DynamicProps}
359 >
360 > {\tt DynamicProps} computes time correlation functions from the
361 > configurations stored in a dump file.  Typical examples of time
362 > correlation functions are the mean square displacement and the
363 > velocity autocorrelation functions.   Once again, the selection
364 > syntax can be used to specify the StuntDoubles that will be used for
365 > the calculation.  A general time correlation function can be thought
366 > of as:
367 > \begin{equation}
368 > C_{AB}(t) = \langle \vec{u}_A(t) \cdot \vec{v}_B(0) \rangle
369 > \end{equation}
370 > where $\vec{u}_A(t)$ is a vector property associated with an atom of
371 > type $A$ at time $t$, and $\vec{v}_B(t^{\prime})$ is a different
372 > vector property associated with an atom of type $B$ at a different
373 > time $t^{\prime}$.  In most autocorrelation functions, the vector
374 > properties ($\vec{v}$ and $\vec{u}$) and the types of atoms ($A$ and
375 > $B$) are identical, and the three calculations built in to {\tt
376 > DynamicProps} make these assumptions.  It is possible, however, to
377 > make simple modifications to the {\tt DynamicProps} code to allow
378 > the use of {\it cross} time correlation functions (i.e. with
379 > different vectors).  The ability to use two selection scripts to
380 > select different types of atoms is already present in the code.
381 >
382 > The options available for DynamicProps are as follows:
383 > \begin{longtable}[c]{|EFG|}
384 > \caption{DynamicProps Command-line Options}
385 > \\ \hline
386 > {\bf option} & {\bf verbose option} & {\bf behavior} \\ \hline
387 > \endhead
388 > \hline
389 > \endfoot
390 >  -h& {\tt -{}-help}                   & Print help and exit \\
391 >  -V& {\tt -{}-version}                & Print version and exit \\
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
399 >  -r& {\tt -{}-rcorr}                  & compute mean square displacement \\
400 >  -v& {\tt -{}-vcorr}                  & compute velocity correlation function \\
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