498 |
|
{\tt minimizer} & string & Chooses a minimizer & Possible minimizers |
499 |
|
are SD and CG. Either {\tt ensemble} or {\tt minimizer} must be specified. \\ |
500 |
|
{\tt ensemble} & string & Sets the ensemble. & Possible ensembles are |
501 |
< |
NVE, NVT, NPTi, NPAT, NPTf, and NPTxyz. Either {\tt ensemble} |
501 |
> |
NVE, NVT, NPTi, NPAT, NPTf, NPTxyz, and LD. Either {\tt ensemble} |
502 |
|
or {\tt minimizer} must be specified. \\ |
503 |
|
{\tt dt} & fs & Sets the time step. & Selection of {\tt dt} should be |
504 |
|
small enough to sample the fastest motion of the simulation. ({\tt |
1905 |
|
& (with changes to box shape) & \\ |
1906 |
|
NPTxyz & approximate isobaric-isothermal & {\tt ensemble = NPTxyz;} \\ |
1907 |
|
& (with separate barostats on each box dimension) & \\ |
1908 |
+ |
LD & Langevin Dynamics & {\tt ensemble = LD;} \\ |
1909 |
+ |
& (approximates the effects of an implicit solvent) & \\ |
1910 |
|
\end{tabular} |
1911 |
|
\end{center} |
1912 |
|
|
2371 |
|
for use with liquid simulations, or in cases where there is |
2372 |
|
orientational anisotropy in the system (i.e. in lipid bilayer |
2373 |
|
simulations). |
2374 |
+ |
|
2375 |
+ |
\section{Langevin Dynamics (LD)\label{LDRB}} |
2376 |
+ |
|
2377 |
+ |
{\sc oopse} implements a Langevin integrator in order to perform |
2378 |
+ |
molecular dynamics simulations in implicit solvent environments. This |
2379 |
+ |
can result in substantial performance gains when the detailed dynamics |
2380 |
+ |
of the solvent is not important. Since {\sc oopse} also handles rigid |
2381 |
+ |
bodies of arbitrary composition and shape, the Langevin integrator is |
2382 |
+ |
by necessity somewhat more complex than in other simulation packages. |
2383 |
+ |
|
2384 |
+ |
Consider the Langevin equations of motion in generalized coordinates |
2385 |
+ |
\begin{equation} |
2386 |
+ |
{\bf M} \dot{{\bf V}}(t) = {\bf F}_{s}(t) + |
2387 |
+ |
{\bf F}_{f}(t) + {\bf F}_{r}(t) |
2388 |
+ |
\label{LDGeneralizedForm} |
2389 |
+ |
\end{equation} |
2390 |
+ |
where ${\bf M}$ is a $6 \times 6$ diagonal mass matrix (which |
2391 |
+ |
includes the mass of the rigid body as well as the moments of inertia |
2392 |
+ |
in the body-fixed frame) and ${\bf V}$ is a generalized velocity, |
2393 |
+ |
${\bf V} = |
2394 |
+ |
\left\{{\bf v},{\bf \omega}\right\}$. The right side of |
2395 |
+ |
Eq.~\ref{LDGeneralizedForm} consists of three generalized forces: a |
2396 |
+ |
system force (${\bf F}_{s}$), a frictional or dissipative force (${\bf |
2397 |
+ |
F}_{f}$) and a stochastic force (${\bf F}_{r}$). While the evolution |
2398 |
+ |
of the system in Newtonian mechanics is typically done in the lab |
2399 |
+ |
frame, it is convenient to handle the dynamics of rigid bodies in |
2400 |
+ |
body-fixed frames. Thus the friction and random forces on each |
2401 |
+ |
substructure are calculated in a body-fixed frame and may converted |
2402 |
+ |
back to the lab frame using that substructure's rotation matrix (${\bf |
2403 |
+ |
Q}$): |
2404 |
+ |
\begin{equation} |
2405 |
+ |
{\bf F}_{f,r} = |
2406 |
+ |
\left( \begin{array}{c} |
2407 |
+ |
{\bf f}_{f,r} \\ |
2408 |
+ |
{\bf \tau}_{f,r} |
2409 |
+ |
\end{array} \right) |
2410 |
+ |
= |
2411 |
+ |
\left( \begin{array}{c} |
2412 |
+ |
{\bf Q}^{T} {\bf f}^{~b}_{f,r} \\ |
2413 |
+ |
{\bf Q}^{T} {\bf \tau}^{~b}_{f,r} |
2414 |
+ |
\end{array} \right) |
2415 |
+ |
\end{equation} |
2416 |
+ |
The body-fixed friction force, ${\bf F}_{f}^{~b}$, is proportional to |
2417 |
+ |
the (body-fixed) velocity at the center of resistance |
2418 |
+ |
${\bf v}_{R}^{~b}$ and the angular velocity ${\bf \omega}$ |
2419 |
+ |
\begin{equation} |
2420 |
+ |
{\bf F}_{f}^{~b}(t) = \left( \begin{array}{l} |
2421 |
+ |
{\bf f}_{f}^{~b}(t) \\ |
2422 |
+ |
{\bf \tau}_{f}^{~b}(t) \\ |
2423 |
+ |
\end{array} \right) = - \left( \begin{array}{*{20}c} |
2424 |
+ |
\Xi_{R}^{tt} & \Xi_{R}^{rt} \\ |
2425 |
+ |
\Xi_{R}^{tr} & \Xi_{R}^{rr} \\ |
2426 |
+ |
\end{array} \right)\left( \begin{array}{l} |
2427 |
+ |
{\bf v}_{R}^{~b}(t) \\ |
2428 |
+ |
{\bf \omega}(t) \\ |
2429 |
+ |
\end{array} \right), |
2430 |
+ |
\end{equation} |
2431 |
+ |
while the random force, ${\bf F}_{r}$, is a Gaussian stochastic |
2432 |
+ |
variable with zero mean and variance, |
2433 |
+ |
\begin{equation} |
2434 |
+ |
\left\langle {{\bf F}_{r}(t) ({\bf F}_{r}(t'))^T } \right\rangle = |
2435 |
+ |
\left\langle {{\bf F}_{r}^{~b} (t) ({\bf F}_{r}^{~b} (t'))^T } \right\rangle = |
2436 |
+ |
2 k_B T \Xi_R \delta(t - t'). \label{eq:randomForce} |
2437 |
+ |
\end{equation} |
2438 |
+ |
$\Xi_R$ is the $6\times6$ resistance tensor at the center of |
2439 |
+ |
resistance. |
2440 |
+ |
|
2441 |
+ |
For atoms and ellipsoids, there are good approximations for this |
2442 |
+ |
tensor that are based on Stokes' law. For arbitrary rigid bodies, the |
2443 |
+ |
resistance tensor must be pre-computed before Langevin dynamics can be |
2444 |
+ |
used. The {\sc oopse} distribution contains a utitilty program called |
2445 |
+ |
Hydro that performs this computation. |
2446 |
+ |
|
2447 |
+ |
Once this tensor is known for a given {\tt integrableObject}, |
2448 |
+ |
obtaining a stochastic vector that has the properties in |
2449 |
+ |
Eq. (\ref{eq:randomForce}) can be done efficiently by carrying out a |
2450 |
+ |
one-time Cholesky decomposition to obtain the square root matrix of |
2451 |
+ |
the resistance tensor, |
2452 |
+ |
\begin{equation} |
2453 |
+ |
\Xi_R = {\bf S} {\bf S}^{T}, |
2454 |
+ |
\label{eq:Cholesky} |
2455 |
+ |
\end{equation} |
2456 |
+ |
where ${\bf S}$ is a lower triangular matrix.\cite{Schlick2002} A |
2457 |
+ |
vector with the statistics required for the random force can then be |
2458 |
+ |
obtained by multiplying ${\bf S}$ onto a random 6-vector ${\bf Z}$ which |
2459 |
+ |
has elements chosen from a Gaussian distribution, such that: |
2460 |
+ |
\begin{equation} |
2461 |
+ |
\langle {\bf Z}_i \rangle = 0, \hspace{1in} \langle {\bf Z}_i \cdot |
2462 |
+ |
{\bf Z}_j \rangle = \frac{2 k_B T}{\delta t} \delta_{ij}, |
2463 |
+ |
\end{equation} |
2464 |
+ |
where $\delta t$ is the timestep in use during the simulation. The |
2465 |
+ |
random force, ${\bf F}_{r}^{~b} = {\bf S} {\bf Z}$, can be shown to have the |
2466 |
+ |
correct properties required by Eq. (\ref{eq:randomForce}). |
2467 |
+ |
|
2468 |
+ |
The equation of motion for the translational velocity of the center of |
2469 |
+ |
mass (${\bf v}$) can be written as |
2470 |
+ |
\begin{equation} |
2471 |
+ |
m \dot{{\bf v}} (t) = {\bf f}_{s}(t) + {\bf f}_{f}(t) + |
2472 |
+ |
{\bf f}_{r}(t) |
2473 |
+ |
\end{equation} |
2474 |
+ |
Since the frictional and random forces are applied at the center of |
2475 |
+ |
resistance, which generally does not coincide with the center of mass, |
2476 |
+ |
extra torques are exerted at the center of mass. Thus, the net |
2477 |
+ |
body-fixed torque at the center of mass, $\tau^{~b}(t)$, |
2478 |
+ |
is given by |
2479 |
+ |
\begin{equation} |
2480 |
+ |
\tau^{~b} \leftarrow \tau_{s}^{~b} + \tau_{f}^{~b} + \tau_{r}^{~b} + {\bf r}_{MR} \times \left( {\bf f}_{f}^{~b} + {\bf f}_{r}^{~b} \right) |
2481 |
+ |
\end{equation} |
2482 |
+ |
where ${\bf r}_{MR}$ is the vector from the center of mass to the center of |
2483 |
+ |
resistance. Instead of integrating the angular velocity in lab-fixed |
2484 |
+ |
frame, we consider the equation of motion for the angular momentum |
2485 |
+ |
(${\bf j}$) in the body-fixed frame |
2486 |
+ |
\begin{equation} |
2487 |
+ |
\frac{\partial}{\partial t}{\bf j}(t) = \tau^{~b}(t) |
2488 |
+ |
\end{equation} |
2489 |
+ |
By embedding the friction and random forces into the the total force |
2490 |
+ |
and torque, {\sc oopse} integrates the Langevin equations of motion |
2491 |
+ |
for a rigid body of arbitrary shape in a velocity-Verlet style 2-part |
2492 |
+ |
algorithm, where $h = \delta t$: |
2493 |
+ |
|
2494 |
+ |
{\tt move A:} |
2495 |
+ |
\begin{align*} |
2496 |
+ |
{\bf v}\left(t + h / 2\right) &\leftarrow {\bf v}(t) |
2497 |
+ |
+ \frac{h}{2} \left( {\bf f}(t) / m \right), \\ |
2498 |
+ |
% |
2499 |
+ |
{\bf r}(t + h) &\leftarrow {\bf r}(t) |
2500 |
+ |
+ h {\bf v}\left(t + h / 2 \right), \\ |
2501 |
+ |
% |
2502 |
+ |
{\bf j}\left(t + h / 2 \right) &\leftarrow {\bf j}(t) |
2503 |
+ |
+ \frac{h}{2} {\bf \tau}^{~b}(t), \\ |
2504 |
+ |
% |
2505 |
+ |
{\bf Q}(t + h) &\leftarrow \mathrm{rotate}\left( h {\bf j} |
2506 |
+ |
(t + h / 2) \cdot \overleftrightarrow{\mathsf{I}}^{-1} \right). |
2507 |
+ |
\end{align*} |
2508 |
+ |
In this context, $\overleftrightarrow{\mathsf{I}}$ is the diagonal |
2509 |
+ |
moment of inertia tensor, and the $\mathrm{rotate}$ function is the |
2510 |
+ |
reversible product of the three body-fixed rotations, |
2511 |
+ |
\begin{equation} |
2512 |
+ |
\mathrm{rotate}({\bf a}) = \mathsf{G}_x(a_x / 2) \cdot |
2513 |
+ |
\mathsf{G}_y(a_y / 2) \cdot \mathsf{G}_z(a_z) \cdot \mathsf{G}_y(a_y |
2514 |
+ |
/ 2) \cdot \mathsf{G}_x(a_x /2), |
2515 |
+ |
\end{equation} |
2516 |
+ |
where each rotational propagator, $\mathsf{G}_\alpha(\theta)$, |
2517 |
+ |
rotates both the rotation matrix ($\mathbf{Q}$) and the body-fixed |
2518 |
+ |
angular momentum (${\bf j}$) by an angle $\theta$ around body-fixed |
2519 |
+ |
axis $\alpha$, |
2520 |
+ |
\begin{equation} |
2521 |
+ |
\mathsf{G}_\alpha( \theta ) = \left\{ |
2522 |
+ |
\begin{array}{lcl} |
2523 |
+ |
\mathbf{Q}(t) & \leftarrow & \mathbf{Q}(0) \cdot \mathsf{R}_\alpha(\theta)^T, \\ |
2524 |
+ |
{\bf j}(t) & \leftarrow & \mathsf{R}_\alpha(\theta) \cdot {\bf |
2525 |
+ |
j}(0). |
2526 |
+ |
\end{array} |
2527 |
+ |
\right. |
2528 |
+ |
\end{equation} |
2529 |
+ |
$\mathsf{R}_\alpha$ is a quadratic approximation to the single-axis |
2530 |
+ |
rotation matrix. For example, in the small-angle limit, the |
2531 |
+ |
rotation matrix around the body-fixed x-axis can be approximated as |
2532 |
+ |
\begin{equation} |
2533 |
+ |
\mathsf{R}_x(\theta) \approx \left( |
2534 |
+ |
\begin{array}{ccc} |
2535 |
+ |
1 & 0 & 0 \\ |
2536 |
+ |
0 & \frac{1-\theta^2 / 4}{1 + \theta^2 / 4} & -\frac{\theta}{1+ |
2537 |
+ |
\theta^2 / 4} \\ |
2538 |
+ |
0 & \frac{\theta}{1+ \theta^2 / 4} & \frac{1-\theta^2 / 4}{1 + |
2539 |
+ |
\theta^2 / 4} |
2540 |
+ |
\end{array} |
2541 |
+ |
\right). |
2542 |
+ |
\end{equation} |
2543 |
+ |
All other rotations follow in a straightforward manner. After the |
2544 |
+ |
first part of the propagation, the forces and body-fixed torques are |
2545 |
+ |
calculated at the new positions and orientations. The system forces |
2546 |
+ |
and torques are derivatives of the total potential energy function |
2547 |
+ |
($U$) with respect to the rigid body positions (${\bf r}$) and the |
2548 |
+ |
columns of the transposed rotation matrix ${\bf Q}^T = \left({\bf |
2549 |
+ |
u}_x, {\bf u}_y, {\bf u}_z \right)$: |
2550 |
|
|
2551 |
+ |
{\tt Forces:} |
2552 |
+ |
\begin{align*} |
2553 |
+ |
{\bf f}_{s}(t + h) & \leftarrow |
2554 |
+ |
- \left(\frac{\partial U}{\partial {\bf r}}\right)_{{\bf r}(t + h)} \\ |
2555 |
+ |
% |
2556 |
+ |
{\bf \tau}_{s}(t + h) &\leftarrow {\bf u}(t + h) |
2557 |
+ |
\times \frac{\partial U}{\partial {\bf u}} \\ |
2558 |
+ |
% |
2559 |
+ |
{\bf v}^{b}_{R}(t+h) & \leftarrow \mathbf{Q}(t+h) \cdot \left({\bf v}(t+h) + {\bf \omega}(t+h) \times {\bf r}_{MR} \right) \\ |
2560 |
+ |
% |
2561 |
+ |
{\bf f}_{R,f}^{b}(t+h) & \leftarrow - \Xi_{R}^{tt} \cdot |
2562 |
+ |
{\bf v}^{b}_{R}(t+h) - \Xi_{R}^{rt} \cdot {\bf \omega}(t+h) \\ |
2563 |
+ |
% |
2564 |
+ |
{\bf \tau}_{R,f}^{b}(t+h) & \leftarrow - \Xi_{R}^{tr} \cdot |
2565 |
+ |
{\bf v}^{b}_{R}(t+h) - \Xi_{R}^{rr} \cdot {\bf \omega}(t+h) \\ |
2566 |
+ |
% |
2567 |
+ |
Z & \leftarrow {\tt GaussianNormal}(2 k_B T / h, 6) \\ |
2568 |
+ |
{\bf F}_{R,r}^{b}(t+h) & \leftarrow {\bf S} \cdot Z \\ |
2569 |
+ |
% |
2570 |
+ |
{\bf f}(t+h) & \leftarrow {\bf f}_{s}(t+h) + \mathbf{Q}^{T}(t+h) |
2571 |
+ |
\cdot \left({\bf f}_{R,f}^{~b} + {\bf f}_{R,r}^{~b} \right) \\ |
2572 |
+ |
% |
2573 |
+ |
\tau(t+h) & \leftarrow \tau_{s}(t+h) + \mathbf{Q}^{T}(t+h) \cdot \left(\tau_{R,f}^{~b} + \tau_{R,r}^{~b} \right) + {\bf r}_{MR} \times \left({\bf f}_{f}(t+h) + {\bf f}_{r}(t+h) \right) \\ |
2574 |
+ |
\tau^{~b}(t+h) & \leftarrow \mathbf{Q}(t+h) \cdot \tau(t+h) \\ |
2575 |
+ |
\end{align*} |
2576 |
+ |
Frictional (and random) forces and torques must be computed at the |
2577 |
+ |
center of resistance, so there are additional steps required to find |
2578 |
+ |
the body-fixed velocity (${\bf v}_{R}^{~b}$) at this location. Mapping |
2579 |
+ |
the frictional and random forces at the center of resistance back to |
2580 |
+ |
the center of mass also introduces an additional term in the torque |
2581 |
+ |
one obtains at the center of mass. |
2582 |
|
|
2583 |
+ |
Once the forces and torques have been obtained at the new time step, |
2584 |
+ |
the velocities can be advanced to the same time value. |
2585 |
+ |
|
2586 |
+ |
{\tt move B:} |
2587 |
+ |
\begin{align*} |
2588 |
+ |
{\bf v}\left(t + h \right) &\leftarrow {\bf v}\left(t + h / 2 |
2589 |
+ |
\right) |
2590 |
+ |
+ \frac{h}{2} \left( {\bf f}(t + h) / m \right), \\ |
2591 |
+ |
% |
2592 |
+ |
{\bf j}\left(t + h \right) &\leftarrow {\bf j}\left(t + h / 2 |
2593 |
+ |
\right) |
2594 |
+ |
+ \frac{h}{2} {\bf \tau}^{~b}(t + h) . |
2595 |
+ |
\end{align*} |
2596 |
+ |
|
2597 |
+ |
The viscosity of the implicit solvent must be specified using the {\tt |
2598 |
+ |
viscosity} keyword in the meta-data file if the Langevin integrator is |
2599 |
+ |
selected. For simple particles (spheres and ellipsoids), no further |
2600 |
+ |
parameters are necessary. Since there are no analytic solutions for |
2601 |
+ |
the resistance tensors for composite rigid bodies, the approximate |
2602 |
+ |
tensors for these objects must also be specified in order to use |
2603 |
+ |
Langevin dynamics. The meta-data file must therefore point to another |
2604 |
+ |
file which contains the information about the hydrodynamic properties |
2605 |
+ |
of all complex rigid bodies being used during the simulation. The |
2606 |
+ |
{\tt HydroPropFile} keyword is used to specify the name of this |
2607 |
+ |
file. A {\tt HydroPropFile} should be precalculated using the Hydro |
2608 |
+ |
program that is included in the {\sc oopse} distribution. |
2609 |
+ |
|
2610 |
+ |
\begin{longtable}[c]{ABG} |
2611 |
+ |
\caption{Meta-data Keywords: Required parameters for the Langevin integrator} |
2612 |
+ |
\\ |
2613 |
+ |
{\bf keyword} & {\bf units} & {\bf use} \\ \hline |
2614 |
+ |
\endhead |
2615 |
+ |
\hline |
2616 |
+ |
\endfoot |
2617 |
+ |
{\tt viscosity} & centipoise & Sets the value of viscosity of the implicit |
2618 |
+ |
solvent \\ |
2619 |
+ |
{\tt targetTemp} & K & Sets the target temperature of the system. |
2620 |
+ |
This parameter must be specified to use Langevin dynamics. \\ |
2621 |
+ |
{\tt HydroPropFile} & string & Specifies the name of the resistance |
2622 |
+ |
tensor (usually a {\tt .diff} file) which is precalculated by {\tt |
2623 |
+ |
Hydro}. This keyworkd is not necessary if the simulation contains only |
2624 |
+ |
simple bodies (spheres and ellipsoids). \\ |
2625 |
+ |
{\tt beadSize} & $\mbox{\AA}$ & Sets the diameter of the beads to use |
2626 |
+ |
when the {\tt RoughShell} model is used to approximate the resistance |
2627 |
+ |
tensor. |
2628 |
+ |
\label{table:ldParameters} |
2629 |
+ |
\end{longtable} |
2630 |
+ |
|
2631 |
|
\section{\label{sec:constraints}Constraint Methods} |
2632 |
|
|
2633 |
|
\subsection{\label{oopseSec:rattle}The {\sc rattle} Method for Bond |
3472 |
|
& {\tt -{}-nz=INT} & number of unit cells in z |
3473 |
|
\end{longtable} |
3474 |
|
|
3475 |
+ |
\section{\label{oopseSec:Hydro}Hydro} |
3476 |
+ |
{\tt Hydro} generates resistance tensor ({\tt .diff}) files which are |
3477 |
+ |
required when using the Langevin integrator using complex rigid |
3478 |
+ |
bodies. {\tt Hydro} supports two approximate models: the {\tt |
3479 |
+ |
BeadModel} and {\tt RoughShell}. Additionally, {\tt Hydro} can |
3480 |
+ |
generate resistance tensor files using analytic solutions for simple |
3481 |
+ |
shapes. To generate a {\tt }.diff file, a meta-data file is needed as |
3482 |
+ |
the input file. Since the resistance tensor depends on these |
3483 |
+ |
quantities, the {\tt viscosity} of the solvent and the temperature |
3484 |
+ |
({\tt targetTemp}) of the system must be defined in meta-data file. If |
3485 |
+ |
the approximate model in use is the {\tt RoughShell} model the {\tt |
3486 |
+ |
beadSize} (the diameter of the small beads used to approximate the |
3487 |
+ |
surface of the body) must also be specified. |
3488 |
+ |
|
3489 |
+ |
The options available for Hydro are as follows: |
3490 |
+ |
\begin{longtable}[c]{|EFG|} |
3491 |
+ |
\caption{Hydro Command-line Options} |
3492 |
+ |
\\ \hline |
3493 |
+ |
{\bf option} & {\bf verbose option} & {\bf behavior} \\ \hline |
3494 |
+ |
\endhead |
3495 |
+ |
\hline |
3496 |
+ |
\endfoot |
3497 |
+ |
-h& {\tt -{}-help} & Print help and exit\\ |
3498 |
+ |
-V& {\tt -{}-version} & Print version and exit\\ |
3499 |
+ |
-i& {\tt -{}-input=filename} & input MetaData (md) file\\ |
3500 |
+ |
-o& {\tt -{}-output=STRING} & Output file name\\ |
3501 |
+ |
& {\tt -{}-model=STRING} & hydrodynamics model (supports both |
3502 |
+ |
{\tt RoughShell} and {\tt BeadModel})\\ |
3503 |
+ |
-b& {\tt -{}-beads} & generate the beads only, |
3504 |
+ |
hydrodynamic calculations will not be performed (default=off)\\ |
3505 |
+ |
\end{longtable} |
3506 |
+ |
|
3507 |
+ |
|
3508 |
|
\chapter{\label{oopseSec:parallelization} Parallel Simulation Implementation} |
3509 |
|
|
3510 |
|
Although processor power is continually improving, it is still |