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