| 113 |
|
As one of the latest advanced techniques emerged from |
| 114 |
|
object-oriented community, design patterns were applied in some of |
| 115 |
|
the modern scientific software applications, such as JMol, {\sc |
| 116 |
< |
OOPSE}\cite{Meineke05} and PROTOMOL\cite{Matthey05} \textit{etc}. |
| 117 |
< |
The following sections enumerates some of the patterns used in {\sc |
| 118 |
< |
OOPSE}. |
| 116 |
> |
OOPSE}\cite{Meineke2005} and PROTOMOL\cite{Matthey2005} |
| 117 |
> |
\textit{etc}. The following sections enumerates some of the patterns |
| 118 |
> |
used in {\sc OOPSE}. |
| 119 |
|
|
| 120 |
|
\subsection{\label{appendixSection:singleton}Singleton} |
| 121 |
|
|
| 256 |
|
diagram of Visitor patten.} \label{appendixFig:visitorUML} |
| 257 |
|
\end{figure} |
| 258 |
|
|
| 259 |
< |
%\begin{figure} |
| 260 |
< |
%\centering |
| 261 |
< |
%\includegraphics[width=\linewidth]{hierarchy.eps} |
| 262 |
< |
%\caption[Class hierarchy for ojects in {\sc OOPSE}]{ A diagram of |
| 263 |
< |
%the class hierarchy. |
| 264 |
< |
%\begin{itemize} |
| 265 |
< |
%\item A {\bf StuntDouble} is {\it any} object that can be manipulated by the |
| 266 |
< |
%integrators and minimizers. |
| 267 |
< |
%\item An {\bf Atom} is a fundamental point-particle that can be moved around during a simulation. |
| 268 |
< |
%\item A {\bf DirectionalAtom} is an atom which has {\it orientational} as well as translational degrees of freedom. |
| 269 |
< |
%\item A {\bf RigidBody} is a collection of {\bf Atom}s or {\bf |
| 270 |
< |
%DirectionalAtom}s which behaves as a single unit. |
| 271 |
< |
%\end{itemize} |
| 272 |
< |
%} \label{oopseFig:hierarchy} |
| 273 |
< |
%\end{figure} |
| 259 |
> |
\begin{figure} |
| 260 |
> |
\centering |
| 261 |
> |
\includegraphics[width=\linewidth]{hierarchy.eps} |
| 262 |
> |
\caption[Class hierarchy for ojects in {\sc OOPSE}]{ A diagram of |
| 263 |
> |
the class hierarchy. } \label{oopseFig:hierarchy} |
| 264 |
> |
\end{figure} |
| 265 |
|
|
| 266 |
|
\begin{lstlisting}[float,caption={[The implementation of Visitor pattern (II)]Source code of the element classes.},label={appendixScheme:element}] |
| 267 |
|
|
| 365 |
|
on the specifics of the simulation). The names of rigid bodies are |
| 366 |
|
generated automatically. For example, the name of the first rigid |
| 367 |
|
body in a DMPC molecule is DMPC\_RB\_0. |
| 368 |
+ |
\begin{itemize} |
| 369 |
+ |
\item A {\bf StuntDouble} is {\it any} object that can be manipulated by the |
| 370 |
+ |
integrators and minimizers. |
| 371 |
+ |
\item An {\bf Atom} is a fundamental point-particle that can be moved around during a simulation. |
| 372 |
+ |
\item A {\bf DirectionalAtom} is an atom which has {\it orientational} as well as translational degrees of freedom. |
| 373 |
+ |
\item A {\bf RigidBody} is a collection of {\bf Atom}s or {\bf |
| 374 |
+ |
DirectionalAtom}s which behaves as a single unit. |
| 375 |
+ |
\end{itemize} |
| 376 |
|
|
| 377 |
|
\section{\label{appendixSection:syntax}Syntax of the Select Command} |
| 378 |
|
|
| 379 |
< |
The most general form of the select command is: {\tt select {\it |
| 380 |
< |
expression}}. This expression represents an arbitrary set of |
| 382 |
< |
StuntDoubles (Atoms or RigidBodies) in {\sc OOPSE}. Expressions are |
| 383 |
< |
composed of either name expressions, index expressions, predefined |
| 384 |
< |
sets, user-defined expressions, comparison operators, within |
| 385 |
< |
expressions, or logical combinations of the above expression types. |
| 386 |
< |
Expressions can be combined using parentheses and the Boolean |
| 387 |
< |
operators. |
| 379 |
> |
{\sc OOPSE} provides a powerful selection utility to select |
| 380 |
> |
StuntDoubles. The most general form of the select command is: |
| 381 |
|
|
| 382 |
+ |
{\tt select {\it expression}}. |
| 383 |
+ |
|
| 384 |
+ |
This expression represents an arbitrary set of StuntDoubles (Atoms |
| 385 |
+ |
or RigidBodies) in {\sc OOPSE}. Expressions are composed of either |
| 386 |
+ |
name expressions, index expressions, predefined sets, user-defined |
| 387 |
+ |
expressions, comparison operators, within expressions, or logical |
| 388 |
+ |
combinations of the above expression types. Expressions can be |
| 389 |
+ |
combined using parentheses and the Boolean operators. |
| 390 |
+ |
|
| 391 |
|
\subsection{\label{appendixSection:logical}Logical expressions} |
| 392 |
|
|
| 393 |
|
The logical operators allow complex queries to be constructed out of |