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

Comparing trunk/oopsePaper/oopsePaper.tex (file contents):
Revision 1168 by mmeineke, Wed May 12 19:32:47 2004 UTC vs.
Revision 1179 by mmeineke, Fri May 14 15:50:27 2004 UTC

# Line 1432 | Line 1432 | equations of motion,\cite{melchionna93}
1432  
1433   To carry out isobaric-isothermal ensemble calculations {\sc oopse}
1434   implements the Melchionna modifications to the Nos\'e-Hoover-Andersen
1435 < equations of motion,\cite{melchionna93}
1435 > equations of motion.\cite{melchionna93} The equations of motion are the same as NVT with the following exceptions:
1436  
1437   \begin{eqnarray}
1438   \dot{{\bf r}} & = & {\bf v} + \eta \left( {\bf r} - {\bf R}_0 \right), \\
1439   \dot{{\bf v}} & = & \frac{{\bf f}}{m} - (\eta + \chi) {\bf v}, \\
1440 \dot{\mathsf{A}} & = & \mathsf{A} \cdot
1441 \mbox{ skew}\left(\overleftrightarrow{I}^{-1} \cdot {\bf j}\right),\\
1442 \dot{{\bf j}} & = & {\bf j} \times \left( \overleftrightarrow{I}^{-1}
1443 \cdot {\bf j} \right) - \mbox{ rot}\left(\mathsf{A}^{T} \cdot \frac{\partial
1444 V}{\partial \mathsf{A}} \right) - \chi {\bf j}, \\
1445 \dot{\chi} & = & \frac{1}{\tau_{T}^2} \left(
1446 \frac{T}{T_{\mathrm{target}}} - 1 \right) ,\\
1440   \dot{\eta} & = & \frac{1}{\tau_{B}^2 f k_B T_{\mathrm{target}}} V \left( P -
1441   P_{\mathrm{target}} \right), \\
1442   \dot{\mathcal{V}} & = & 3 \mathcal{V} \eta .
# Line 1492 | Line 1485 | velocity-Verlet style 2 part algorithm:
1485   file.  The units for {\tt tauBarostat} are fs, and the units for the
1486   {\tt targetPressure} are atmospheres.  Like in the NVT integrator, the
1487   integration of the equations of motion is carried out in a
1488 < velocity-Verlet style 2 part algorithm:
1488 > velocity-Verlet style 2 part algorithm with only the following differences:
1489  
1490   {\tt moveA:}
1491   \begin{align*}
1499 T(t) &\leftarrow \left\{{\bf v}(t)\right\}, \left\{{\bf j}(t)\right\} ,\\
1500 %
1492   P(t) &\leftarrow \left\{{\bf r}(t)\right\}, \left\{{\bf v}(t)\right\} ,\\
1493   %
1494   {\bf v}\left(t + h / 2\right)  &\leftarrow {\bf v}(t)
1495          + \frac{h}{2} \left( \frac{{\bf f}(t)}{m} - {\bf v}(t)
1496          \left(\chi(t) + \eta(t) \right) \right), \\
1506 %
1507 {\bf j}\left(t + h / 2 \right)  &\leftarrow {\bf j}(t)
1508        + \frac{h}{2} \left( {\bf \tau}^b(t) - {\bf j}(t)
1509        \chi(t) \right), \\
1510 %
1511 \mathsf{A}(t + h) &\leftarrow \mathrm{rotate}\left(h *
1512        {\bf j}(t + h / 2) \overleftrightarrow{\mathsf{I}}^{-1}
1513        \right) ,\\
1514 %
1515 \chi\left(t + h / 2 \right) &\leftarrow \chi(t) +
1516        \frac{h}{2 \tau_T^2} \left( \frac{T(t)}{T_{\mathrm{target}}} - 1
1517        \right) ,\\
1497   %
1498   \eta(t + h / 2) &\leftarrow \eta(t) + \frac{h
1499          \mathcal{V}(t)}{2 N k_B T(t) \tau_B^2} \left( P(t)
# Line 1529 | Line 1508 | Most of these equations are identical to their counter
1508          \mathsf{H}(t).
1509   \end{align*}
1510  
1511 < Most of these equations are identical to their counterparts in the NVT
1533 < integrator, but the propagation of positions to time $t + h$
1511 > The propagation of positions to time $t + h$
1512   depends on the positions at the same time.  {\sc oopse} carries out
1513   this step iteratively (with a limit of 5 passes through the iterative
1514   loop).  Also, the simulation box $\mathsf{H}$ is scaled uniformly for
# Line 1550 | Line 1528 | T(t + h) &\leftarrow \left\{{\bf v}(t + h)\right\},
1528  
1529   {\tt moveB:}
1530   \begin{align*}
1553 T(t + h) &\leftarrow \left\{{\bf v}(t + h)\right\},
1554        \left\{{\bf j}(t + h)\right\} ,\\
1555 %
1531   P(t + h) &\leftarrow  \left\{{\bf r}(t + h)\right\},
1532          \left\{{\bf v}(t + h)\right\}, \\
1533   %
1559 \chi\left(t + h \right) &\leftarrow \chi\left(t + h /
1560        2 \right) + \frac{h}{2 \tau_T^2} \left( \frac{T(t+h)}
1561        {T_{\mathrm{target}}} - 1 \right), \\
1562 %
1534   \eta(t + h) &\leftarrow \eta(t + h / 2) +
1535          \frac{h \mathcal{V}(t + h)}{2 N k_B T(t + h)
1536          \tau_B^2} \left( P(t + h) - P_{\mathrm{target}} \right), \\
# Line 1616 | Line 1587 | the box shape.  The equations of motion for this metho
1587   {\it shape} as well as in the volume of the box.  This method utilizes
1588   the full $3 \times 3$ pressure tensor and introduces a tensor of
1589   extended variables ($\overleftrightarrow{\eta}$) to control changes to
1590 < the box shape.  The equations of motion for this method are
1590 > the box shape.  The equations of motion for this method differ from those of NPTi as follows:
1591   \begin{eqnarray}
1592   \dot{{\bf r}} & = & {\bf v} + \overleftrightarrow{\eta} \cdot \left( {\bf r} - {\bf R}_0 \right), \\
1593   \dot{{\bf v}} & = & \frac{{\bf f}}{m} - (\overleftrightarrow{\eta} +
1594   \chi \cdot \mathsf{1}) {\bf v}, \\
1624 \dot{\mathsf{A}} & = & \mathsf{A} \cdot
1625 \mbox{ skew}\left(\overleftrightarrow{I}^{-1} \cdot {\bf j}\right) ,\\
1626 \dot{{\bf j}} & = & {\bf j} \times \left( \overleftrightarrow{I}^{-1}
1627 \cdot {\bf j} \right) - \mbox{ rot}\left(\mathsf{A}^{T} \cdot \frac{\partial
1628 V}{\partial \mathsf{A}} \right) - \chi {\bf j} ,\\
1629 \dot{\chi} & = & \frac{1}{\tau_{T}^2} \left(
1630 \frac{T}{T_{\mathrm{target}}} - 1 \right) ,\\
1595   \dot{\overleftrightarrow{\eta}} & = & \frac{1}{\tau_{B}^2 f k_B
1596   T_{\mathrm{target}}} V \left( \overleftrightarrow{\mathsf{P}} - P_{\mathrm{target}}\mathsf{1} \right) ,\\
1597   \dot{\mathsf{H}} & = &  \overleftrightarrow{\eta} \cdot \mathsf{H} .
# Line 1643 | Line 1607 | T(t) &\leftarrow \left\{{\bf v}(t)\right\}, \left\{{\b
1607  
1608   {\tt moveA:}
1609   \begin{align*}
1646 T(t) &\leftarrow \left\{{\bf v}(t)\right\}, \left\{{\bf j}(t)\right\} ,\\
1647 %
1610   \overleftrightarrow{\mathsf{P}}(t) &\leftarrow \left\{{\bf r}(t)\right\},
1611          \left\{{\bf v}(t)\right\} ,\\
1612   %
# Line 1653 | Line 1615 | T(t) &\leftarrow \left\{{\bf v}(t)\right\}, \left\{{\b
1615          \left(\chi(t)\mathsf{1} + \overleftrightarrow{\eta}(t) \right) \cdot
1616          {\bf v}(t) \right), \\
1617   %
1656 {\bf j}\left(t + h / 2 \right)  &\leftarrow {\bf j}(t)
1657        + \frac{h}{2} \left( {\bf \tau}^b(t) - {\bf j}(t)
1658        \chi(t) \right), \\
1659 %
1660 \mathsf{A}(t + h) &\leftarrow \mathrm{rotate}\left(h *
1661        {\bf j}(t + h / 2) \overleftrightarrow{\mathsf{I}}^{-1}
1662        \right), \\
1663 %
1664 \chi\left(t + h / 2 \right) &\leftarrow \chi(t) +
1665        \frac{h}{2 \tau_T^2} \left( \frac{T(t)}{T_{\mathrm{target}}}
1666        - 1 \right), \\
1667 %
1618   \overleftrightarrow{\eta}(t + h / 2) &\leftarrow
1619          \overleftrightarrow{\eta}(t) + \frac{h \mathcal{V}(t)}{2 N k_B
1620          T(t) \tau_B^2} \left( \overleftrightarrow{\mathsf{P}}(t)
# Line 1686 | Line 1636 | T(t + h) &\leftarrow \left\{{\bf v}(t + h)\right\},
1636  
1637   {\tt moveB:}
1638   \begin{align*}
1689 T(t + h) &\leftarrow \left\{{\bf v}(t + h)\right\},
1690        \left\{{\bf j}(t + h)\right\}, \\
1691 %
1639   \overleftrightarrow{\mathsf{P}}(t + h) &\leftarrow \left\{{\bf r}
1640          (t + h)\right\}, \left\{{\bf v}(t
1641          + h)\right\}, \left\{{\bf f}(t + h)\right\} ,\\
1642   %
1696 \chi\left(t + h \right) &\leftarrow \chi\left(t + h /
1697        2 \right) + \frac{h}{2 \tau_T^2} \left( \frac{T(t+
1698        h)}{T_{\mathrm{target}}} - 1 \right), \\
1699 %
1643   \overleftrightarrow{\eta}(t + h) &\leftarrow
1644          \overleftrightarrow{\eta}(t + h / 2) +
1645          \frac{h \mathcal{V}(t + h)}{2 N k_B T(t + h)
# Line 1708 | Line 1651 | T(t + h) &\leftarrow \left\{{\bf v}(t + h)\right\},
1651          \frac{{\bf f}(t + h)}{m} -
1652          (\chi(t + h)\mathsf{1} + \overleftrightarrow{\eta}(t
1653          + h)) \right) \cdot {\bf v}(t + h), \\
1711 %
1712 {\bf j}\left(t + h \right)  &\leftarrow {\bf j}\left(t
1713        + h / 2 \right) + \frac{h}{2} \left( {\bf \tau}^b(t
1714        + h) - {\bf j}(t + h) \chi(t + h) \right) .
1654   \end{align*}
1655  
1656   The iterative schemes for both {\tt moveA} and {\tt moveB} are
# Line 1853 | Line 1792 | F_{z_{\text{Harmonic}}}(t)=-\frac{\partial U(t)}{\part
1792   F_{z_{\text{Harmonic}}}(t)=-\frac{\partial U(t)}{\partial z(t)}=
1793          -k_{\text{Harmonic}}(z(t)-z_{\text{cons}}).
1794   \end{equation}
1795 + Parameters concerning the z-constraint method are summarized in Table~\ref{table:zconParams}.
1796  
1797 + \begin{table}
1798 + \caption{The Global Keywords: Z-Constraint Parameters}
1799 + \label{table:zconParams}
1800 + \begin{center}
1801 + % Note when adding or removing columns, the \hsize numbers must add up to the total number
1802 + % of columns.
1803 + \begin{tabularx}{\linewidth}%
1804 +  {>{\setlength{\hsize}{1.00\hsize}}X%
1805 +  >{\setlength{\hsize}{0.4\hsize}}X%
1806 +  >{\setlength{\hsize}{1.2\hsize}}X%
1807 +  >{\setlength{\hsize}{1.4\hsize}}X}
1808 +
1809 + {\bf keyword} & {\bf units} & {\bf use} & {\bf remarks} \\ \hline
1810 +
1811 + {\tt zconsTime} & fs & Sets the frequency at which the {\tt .fz} file is written. & Default sets the frequency to the {\tt runTime} \\
1812 + {\tt nZconstraints} & integer &  The number of zconstraint molecules& If using zconstraint method, {\tt nZconstraints} must be set \\
1813 + {\tt zconsForcePolicy} & string& The strategy of subtracting zconstraint force from  unconstraint molecules & Possible strategies are BYMASS and BYNUMBER. Default strategy is set to BYMASS\\
1814 + {\tt zconsGap} & \r(A) & Set the distance between two adjacent constraint positions& Used mainly in constraining molecules sequentially \\
1815 + {\tt zconsFixtime} & fs & Sets how long the zconstraint molecule is fixed & {\tt zconsGap} must be set if {\tt zconsGap} is already set.\\
1816 + {\tt zconsUsingSMD} &logical & Flag of using Steered Molecular Dynamics or Harmonic Force to move the molecule  & Using harmonic force by default\\
1817 +
1818 + \end{tabularx}
1819 + \end{center}
1820 + \end{table}
1821 +
1822 +
1823 +
1824 + \section{\label{sec:minimize}Energy Minimization}
1825 +
1826 +
1827 + As one of the basic procedures of molecular modeling, energy minimization
1828 + method is used to identify configurations that are stable points on the energy
1829 + surface by adjusting the atomic coordinates. Given a potential energy function
1830 + $V$ which depends on a set of coordinates, energy minimization algorithm is
1831 + developed to find its minimun value. Different from other packages, the
1832 + coordinates in OOPSE not only include cartesian coordinates but also euler
1833 + angle if directional atom or rigidbody is involved. Unfortunately, due to the
1834 + number of local minima and the cost of computation, in most cases, it is
1835 + always impossible to identify the global minimum. OOPSE provides two
1836 + frequently used first-derivative algorithms, steepest descents and conjugate
1837 + gradient, to find a reasonable local minima.
1838 +
1839 + Given a coordinate set $x_{k}$ and a search direction $d_{k}$, a line search
1840 + algorithm is performed along $d_{k}$ to produce $x_{k+1}=x_{k}+$ $\lambda
1841 + _{k}d_{k}$.
1842 +
1843 + In steepest descent algorithm,%
1844 +
1845 + \begin{equation}
1846 + d_{k}=-\nabla V(x_{k})
1847 + \end{equation}
1848 +
1849 +
1850 + Therefore, the gradient and the direction of next step are always orthogonal
1851 + which may causes oscillatory behavior in narrow valleys. To overcome this
1852 + problem, the Fletcher-Reeves variant of the conjugate algorithm generates
1853 + $d_{k+1}$ from the simple recursion%
1854 +
1855 + \begin{align}
1856 + d_{k+1}  &  =-\nabla V(x_{k+1})+\gamma_{k}d_{k}\\
1857 + \gamma_{k}  &  =\frac{\nabla V(x_{k+1})^{T}\nabla V(x_{k+1})}{\nabla
1858 + V(x_{k})^{T}\nabla V(x_{k})}%
1859 + \end{align}
1860 +
1861 +
1862 + The Polak-Ribiere variant of conjugate gradient defines as%
1863 +
1864 + \begin{equation}
1865 + \gamma_{k}=\frac{[\nabla V(x_{k+1})-\nabla V(x)]^{T}\nabla V(x_{k+1})}{\nabla
1866 + V(x_{k})^{T}\nabla V(x_{k})}%
1867 + \end{equation}
1868 +
1869 +
1870 + The conjugate gradient method assumes that the conformation is close enough to
1871 + a local minimum that the potential energy surface is very nearly quadratic.
1872 + When initial structure is far from the minimimum, the steepest descent method
1873 + can be superiror to conjugate gradient. Hence, steepest descents may generally
1874 + be used for the first 10-100 steps of minimization. Another useful feature of
1875 + minimization methods in OOPSE is that a modified SHAKE algorithm can be
1876 + applied duing the minimization to constraint the bond length. {\tt bass} parameters concerning the minimizer are given in Table~\ref{table:minimizeParams}
1877 +
1878 + \begin{table}
1879 + \caption{The Global Keywords: Energy Minimizer Parameters}
1880 + \label{table:minimizeParams}
1881 + \begin{center}
1882 + % Note when adding or removing columns, the \hsize numbers must add up to the total number
1883 + % of columns.
1884 + \begin{tabularx}{\linewidth}%
1885 +  {>{\setlength{\hsize}{1.00\hsize}}X%
1886 +  >{\setlength{\hsize}{0.4\hsize}}X%
1887 +  >{\setlength{\hsize}{1.2\hsize}}X%
1888 +  >{\setlength{\hsize}{1.4\hsize}}X}
1889 +
1890 + {\bf keyword} & {\bf units} & {\bf use} & {\bf remarks} \\ \hline
1891 +
1892 + {\tt minimizer} & &  & \\
1893 + {\tt minMaxIter} & integer & Sets the maximum iteration in energy minimization & Default value is 200\\
1894 + {\tt minWriteFreq} & interger & Sets the frequency at which the {\tt .dump} and {\tt .stat} files are writtern in energy minimization & \\
1895 + {\tt minStepSize} & double &  Set the step size of line search & Default value is 0.01\\
1896 + {\tt minFTol} & double & Sets energy tolerance  & Default value is $10^(-8)$\\
1897 + {\tt minGTol} & double & Sets gradient tolerance & Default value is $10^(-8)$\\
1898 + {\tt minLSTol} & double & Sets line search tolerance & Default value is $10^(-8)$\\
1899 + {\tt minLSMaxIter} & integer &  Sets the maximum iteration of line searching & Default value is 50\\
1900 +
1901 + \end{tabularx}
1902 + \end{center}
1903 + \end{table}
1904 +
1905 +
1906   \section{\label{oopseSec:design}Program Design}
1907  
1908   \subsection{\label{sec:architecture} {\sc oopse} Architecture}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines