14 |
|
\lstset{language=C,frame=TB,basicstyle=\small,basicstyle=\ttfamily, % |
15 |
|
xleftmargin=0.5in, xrightmargin=0.5in,captionpos=b, % |
16 |
|
abovecaptionskip=0.5cm, belowcaptionskip=0.5cm} |
17 |
– |
\section{\label{sec:intro}Introduction} |
17 |
|
|
18 |
< |
\begin{itemize} |
18 |
> |
\section{\label{oopseSec:foreword}Foreword} |
19 |
|
|
20 |
< |
\item Need for package / Niche to fill |
20 |
> |
In this chapter, I present and detail the capabilities of the open |
21 |
> |
source simulation package {\sc oopse}. It is important to note, that a |
22 |
> |
simulation package of this size and scope would not have been possible |
23 |
> |
without the collaborative efforts of my colleagues: Charles |
24 |
> |
F.~Vardeman II, Teng Lin, Christopher J.~Fennell and J.~Daniel |
25 |
> |
Gezelter. Although my contributions to [\sc oopse} are signifigant, |
26 |
> |
consideration of my work apart from the others, would not give a |
27 |
> |
complete description to the package's capabilities. As such, all |
28 |
> |
contributions to {\sc oopse} to date are presented in this chapter. |
29 |
|
|
30 |
< |
\item Design Goal |
30 |
> |
{\sc give final breakdown of who wrote which section here.} |
31 |
|
|
32 |
< |
\item Open Source |
32 |
> |
\section{\label{sec:intro}Introduction} |
33 |
|
|
34 |
< |
\item Discussion of Paper Layout |
34 |
> |
When choosing to simulate a chemical system with molecular dynamics, |
35 |
> |
there are a variety of options available. For simple systems, one |
36 |
> |
might consider writing one's own programming code. However, as systems |
37 |
> |
grow larger and more complex, building and maintaining code for the |
38 |
> |
simulations becomes a time consuming task. In such cases it is usually |
39 |
> |
more convienent for a researcher to turn to pre-existing simulation |
40 |
> |
packages. These packages, such as {\sc amber}\cite{pearlman:1995} and |
41 |
> |
{\sc charmm}\cite{Brooks83}, provide powerful tools for researchers to |
42 |
> |
conduct simulations of their systems without spending their time |
43 |
> |
developing a code base to conduct their research. This then frees them |
44 |
> |
to perhaps explore experimental analouges to their models. |
45 |
|
|
46 |
< |
\end{itemize} |
46 |
> |
Despite their utility, problems with these packages arise when |
47 |
> |
researchers try to develop techniques or energetic models that the |
48 |
> |
code was not originally designed to do. Examples of uncommonly |
49 |
> |
implemented techniques and energetics include; dipole-dipole |
50 |
> |
interactions, rigid body dynamics, and metallic emmbedded |
51 |
> |
potentials. When faced with these obstacles, a researcher must either |
52 |
> |
develop their own code or license and extend one of the commercial |
53 |
> |
packages. What we have elected to do, is develop a package of |
54 |
> |
simulation code capable of implementing the types of models upon which |
55 |
> |
our research is based. |
56 |
|
|
57 |
< |
\section{\label{sec:empiricalEnergy}The Empirical Energy Functions} |
57 |
> |
Having written {\sc oopse} we are implementing the concept of Open |
58 |
> |
Source dcevelopment, and releaseing our source code into the public |
59 |
> |
domain. It is our intent that by doing so, other researchers might |
60 |
> |
benefit from our work, and add their own contributions to the |
61 |
> |
package. The license under which {\sc oopse} is distributed allows any |
62 |
> |
researcher to download and modify the source code for their own |
63 |
> |
use. In this way further development of {\sc oopse} is not limited to |
64 |
> |
only the models of interest to ourselves, but also those of the |
65 |
> |
community of scientists who contribute back to the project. |
66 |
|
|
67 |
< |
\subsection{\label{sec:atomsMolecules}Atoms, Molecules and Rigid Bodies} |
67 |
> |
We have structured this chapter to first discuss the emperical energy |
68 |
> |
functions that {\sc oopse } implements in |
69 |
> |
Sec.~\ref{oopseSec:empericalEnergy}. Following that is a discusion of |
70 |
> |
the various input and output files associated with the package |
71 |
> |
(Sec.~\ref{oopseSec:IOfiles}). In Sec.~\ref{oopseSec:Mechanics} |
72 |
> |
elucidates the various Molecular Dynamics algorithms {\sc oopse} |
73 |
> |
mplements in the integration of the Newtonian equations of |
74 |
> |
motion. Basic analysis of the trajectories obtained from the |
75 |
> |
simulation is discussed in Sec.~\ref{oopseSec:props}. Program design |
76 |
> |
considerations as well as the software distribution license is |
77 |
> |
presented in Sec.~\ref{oopseSec:design}. And lastly, |
78 |
> |
Sec.~\ref{oopseSec:conclusion} concludes the chapter. |
79 |
|
|
80 |
+ |
\section{\label{oopseSec:empiricalEnergy}The Empirical Energy Functions} |
81 |
+ |
|
82 |
+ |
\subsection{\label{oopseSec:atomsMolecules}Atoms, Molecules and Rigid Bodies} |
83 |
+ |
|
84 |
|
The basic unit of an {\sc oopse} simulation is the atom. The |
85 |
|
parameters describing the atom are generalized to make the atom as |
86 |
|
flexible a representation as possible. They may represent specific |
261 |
|
|
262 |
|
|
263 |
|
|
264 |
< |
\subsection{\label{sec:DUFF}Dipolar Unified-Atom Force Field} |
264 |
> |
\subsection{\label{oopseSec:DUFF}Dipolar Unified-Atom Force Field} |
265 |
|
|
266 |
|
The dipolar unified-atom force field ({\sc duff}) was developed to |
267 |
|
simulate lipid bilayers. The simulations require a model capable of |
340 |
|
|
341 |
|
\end{lstlisting} |
342 |
|
|
343 |
< |
\subsubsection{\label{subSec:energyFunctions}{\sc duff} Energy Functions} |
343 |
> |
\subsection{\label{oopseSec:energyFunctions}{\sc duff} Energy Functions} |
344 |
|
|
345 |
|
The total potential energy function in {\sc duff} is |
346 |
|
\begin{equation} |
568 |
|
\end{lstlisting} |
569 |
|
|
570 |
|
|
571 |
< |
\subsection{\label{sec:eam}Embedded Atom Method} |
571 |
> |
\subsection{\label{oopseSec:eam}Embedded Atom Method} |
572 |
|
|
573 |
|
Several other molecular dynamics packages\cite{dynamo86} exist which have the |
574 |
|
capacity to simulate metallic systems, including some that have |
607 |
|
interactions. Foiles et al. fit EAM potentials for fcc metals Cu, Ag, Au, Ni, Pd, Pt and alloys of these metals\cite{FDB86}. These potential fits are in the DYNAMO 86 format and are included with {\sc oopse}. |
608 |
|
|
609 |
|
|
610 |
< |
\subsection{\label{Sec:pbc}Periodic Boundary Conditions} |
610 |
> |
\subsection{\label{oopseSec:pbc}Periodic Boundary Conditions} |
611 |
|
|
612 |
|
\newcommand{\roundme}{\operatorname{round}} |
613 |
|
|
667 |
|
\end{equation} |
668 |
|
|
669 |
|
|
670 |
< |
\section{Input and Output Files} |
670 |
> |
\section{\label{oopseSec:IOfiles}Input and Output Files} |
671 |
|
|
672 |
|
\subsection{{\sc bass} and Model Files} |
673 |
|
|
700 |
|
molecular prototype once, then simply include it into each simulation |
701 |
|
containing that molecule. |
702 |
|
|
703 |
< |
\subsection{\label{subSec:coordFiles}Coordinate Files} |
703 |
> |
\subsection{\label{oopseSec:coordFiles}Coordinate Files} |
704 |
|
|
705 |
|
The standard format for storage of a systems coordinates is a modified |
706 |
|
xyz-file syntax, the exact details of which can be seen in |
752 |
|
the integrator. The statistics file is denoted with the \texttt{.stat} |
753 |
|
file extension. |
754 |
|
|
755 |
< |
\section{\label{sec:mechanics}Mechanics} |
755 |
> |
\section{\label{oopseSec:mechanics}Mechanics} |
756 |
|
|
757 |
|
\subsection{\label{integrate}Integrating the Equations of Motion: the Symplectic Step Integrator} |
758 |
|
|
873 |
|
\begin{equation} |
874 |
|
\xi(z,t)=\langle\delta F(z,t)\delta F(z,0)\rangle/k_{B}T |
875 |
|
\end{equation} |
827 |
– |
|
828 |
– |
|
876 |
|
where% |
877 |
|
\begin{equation} |
878 |
|
\delta F(z,t)=F(z,t)-\langle F(z,t)\rangle |
927 |
|
Worthy of mention, other kinds of potential functions can also be used to |
928 |
|
drive the z-constraint molecule. |
929 |
|
|
930 |
< |
\section{\label{sec:analysis}Trajectory Analysis} |
930 |
> |
\section{\label{oopseSec:props}Trajectory Analysis} |
931 |
|
|
932 |
< |
\subsection{\label{subSec:staticProps}Static Property Analysis} |
932 |
> |
\subsection{\label{oopseSec:staticProps}Static Property Analysis} |
933 |
|
|
934 |
|
The static properties of the trajectories are analyzed with the |
935 |
|
program \texttt{staticProps}. The code is capable of calculating the following |
1068 |
|
\label{fig:dynamicPropsMemory} |
1069 |
|
\end{figure} |
1070 |
|
|
1071 |
< |
\section{\label{sec:ProgramDesign}Program Design} |
1071 |
> |
\section{\label{oopseSec:design}Program Design} |
1072 |
|
|
1073 |
|
\subsection{\label{sec:architecture} OOPSE Architecture} |
1074 |
|
|
1077 |
|
developed around the parseing engine and {\texttt libmdtools} is the |
1078 |
|
software library developed around the simulation engine. |
1079 |
|
|
1033 |
– |
|
1034 |
– |
|
1035 |
– |
\subsection{\label{sec:programLang} Programming Languages } |
1036 |
– |
|
1080 |
|
\subsection{\label{sec:parallelization} Parallelization of OOPSE} |
1081 |
|
|
1082 |
|
Although processor power is doubling roughly every 18 months according |
1123 |
|
favorably then spatial decomposition up to 10,000 atoms and favorably |
1124 |
|
competes with spatial methods for up to 100,000 atoms. |
1125 |
|
|
1083 |
– |
\subsection{\label{sec:memory}Memory Allocation in Analysis} |
1084 |
– |
|
1085 |
– |
\subsection{\label{sec:documentation}Documentation} |
1086 |
– |
|
1126 |
|
\subsection{\label{openSource}Open Source and Distribution License} |
1127 |
|
|
1128 |
|
|
1129 |
< |
\section{\label{sec:conclusion}Conclusion} |
1129 |
> |
\section{\label{oopseSec:conclusion}Conclusion} |
1130 |
|
|
1131 |
|
\begin{itemize} |
1132 |
|
|