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

Comparing trunk/oopseDocs/oopseDoc.tex (file contents):
Revision 3398 by gezelter, Fri May 16 14:25:26 2008 UTC vs.
Revision 3399 by xsun, Fri May 30 14:09:56 2008 UTC

# Line 2517 | Line 2517 | Harmonic Forces are used by default
2517   Dynamics to move the molecules to the correct constrained positions  &
2518   Harmonic Forces are used by default
2519   \label{table:zconParams}
2520 + \end{longtable}
2521 +
2522 + \section{Langevin Dynamics for Rigid Particles of Arbitrary Shape (LANGEVINDYNAMICS)\label{LDRB}}
2523 +
2524 + {\sc oopse} implements langevin dynamics integrator to perform the
2525 + molecular dynamics simulations at implicit solvents environment to
2526 + speed up the simulation when the properties of solvents are not
2527 + important. Consider the Langevin equations of motion in generalized
2528 + coordinates
2529 + \begin{equation}
2530 + {\bf M} \dot{{\bf V}}(t) = {\bf F}_{s}(t) +
2531 + {\bf F}_{f}(t)  + {\bf F}_{r}(t)
2532 + \label{LDGeneralizedForm}
2533 + \end{equation}
2534 + where ${\bf M}$ is a $6 \times 6$ diagonal mass matrix (which
2535 + includes the mass of the rigid body as well as the moments of inertia
2536 + in the body-fixed frame) and ${\bf V}$ is a generalized velocity,
2537 + ${\bf V} =
2538 + \left\{{\bf v},{\bf \omega}\right\}$. The right side of
2539 + Eq.~\ref{LDGeneralizedForm} consists of three generalized forces: a
2540 + system force (${\bf F}_{s}$), a frictional or dissipative force (${\bf
2541 + F}_{f}$) and a stochastic force (${\bf F}_{r}$). While the evolution
2542 + of the system in Newtonian mechanics is typically done in the lab
2543 + frame, it is convenient to handle the dynamics of rigid bodies in
2544 + body-fixed frames. Thus the friction and random forces on each
2545 + substructure are calculated in a body-fixed frame and may converted
2546 + back to the lab frame using that substructure's rotation matrix (${\bf
2547 + Q}$):
2548 + \begin{equation}
2549 + {\bf F}_{f,r} =
2550 + \left( \begin{array}{c}
2551 + {\bf f}_{f,r} \\
2552 + {\bf \tau}_{f,r}
2553 + \end{array} \right)
2554 + =
2555 + \left( \begin{array}{c}
2556 + {\bf Q}^{T} {\bf f}^{~b}_{f,r} \\
2557 + {\bf Q}^{T} {\bf \tau}^{~b}_{f,r}
2558 + \end{array} \right)
2559 + \end{equation}
2560 + The body-fixed friction force, ${\bf F}_{f}^{~b}$, is proportional to
2561 + the (body-fixed) velocity at the center of resistance
2562 + ${\bf v}_{R}^{~b}$ and the angular velocity ${\bf \omega}$
2563 + \begin{equation}
2564 + {\bf F}_{f}^{~b}(t) = \left( \begin{array}{l}
2565 + {\bf f}_{f}^{~b}(t) \\
2566 + {\bf \tau}_{f}^{~b}(t) \\
2567 + \end{array} \right) =  - \left( \begin{array}{*{20}c}
2568 +   \Xi_{R}^{tt} & \Xi_{R}^{rt} \\
2569 +   \Xi_{R}^{tr} & \Xi_{R}^{rr}    \\
2570 + \end{array} \right)\left( \begin{array}{l}
2571 + {\bf v}_{R}^{~b}(t) \\
2572 + {\bf \omega}(t) \\
2573 + \end{array} \right),
2574 + \end{equation}
2575 + while the random force, ${\bf F}_{r}$, is a Gaussian stochastic
2576 + variable with zero mean and variance,
2577 + \begin{equation}
2578 + \left\langle {{\bf F}_{r}(t) ({\bf F}_{r}(t'))^T } \right\rangle  =
2579 + \left\langle {{\bf F}_{r}^{~b} (t) ({\bf F}_{r}^{~b} (t'))^T } \right\rangle  =
2580 + 2 k_B T \Xi_R \delta(t - t'). \label{eq:randomForce}
2581 + \end{equation}
2582 + $\Xi_R$ is the $6\times6$ resistance tensor at the center of
2583 + resistance.  Once this tensor is known for a given rigid body (as
2584 + described in the previous section) obtaining a stochastic vector that
2585 + has the properties in Eq. (\ref{eq:randomForce}) can be done
2586 + efficiently by carrying out a one-time Cholesky decomposition to
2587 + obtain the square root matrix of the resistance tensor,
2588 + \begin{equation}
2589 + \Xi_R = {\bf S} {\bf S}^{T},
2590 + \label{eq:Cholesky}
2591 + \end{equation}
2592 + where ${\bf S}$ is a lower triangular matrix.\cite{Schlick2002} A
2593 + vector with the statistics required for the random force can then be
2594 + obtained by multiplying ${\bf S}$ onto a random 6-vector ${\bf Z}$ which
2595 + has elements chosen from a Gaussian distribution, such that:
2596 + \begin{equation}
2597 + \langle {\bf Z}_i \rangle = 0, \hspace{1in} \langle {\bf Z}_i \cdot
2598 + {\bf Z}_j \rangle = \frac{2 k_B T}{\delta t} \delta_{ij},
2599 + \end{equation}
2600 + where $\delta t$ is the timestep in use during the simulation. The
2601 + random force, ${\bf F}_{r}^{~b} = {\bf S} {\bf Z}$, can be shown to have the
2602 + correct properties required by Eq. (\ref{eq:randomForce}).
2603 +
2604 + The equation of motion for the translational velocity of the center of
2605 + mass (${\bf v}$) can be written as
2606 + \begin{equation}
2607 + m \dot{{\bf v}} (t) =  {\bf f}_{s}(t) + {\bf f}_{f}(t) +
2608 + {\bf f}_{r}(t)
2609 + \end{equation}
2610 + Since the frictional and random forces are applied at the center of
2611 + resistance, which generally does not coincide with the center of mass,
2612 + extra torques are exerted at the center of mass. Thus, the net
2613 + body-fixed torque at the center of mass, $\tau^{~b}(t)$,
2614 + is given by
2615 + \begin{equation}
2616 + \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)
2617 + \end{equation}
2618 + where ${\bf r}_{MR}$ is the vector from the center of mass to the center of
2619 + resistance. Instead of integrating the angular velocity in lab-fixed
2620 + frame, we consider the equation of motion for the angular momentum
2621 + (${\bf j}$) in the body-fixed frame
2622 + \begin{equation}
2623 + \frac{\partial}{\partial t}{\bf j}(t) = \tau^{~b}(t)
2624 + \end{equation}
2625 + Embedding the friction and random forces into the the total force and
2626 + torque, one can integrate the Langevin equations of motion for a rigid
2627 + body of arbitrary shape in a velocity-Verlet style 2-part algorithm,
2628 + where $h = \delta t$:
2629 +
2630 + {\tt move A:}
2631 + \begin{align*}
2632 + {\bf v}\left(t + h / 2\right)  &\leftarrow  {\bf v}(t)
2633 +    + \frac{h}{2} \left( {\bf f}(t) / m \right), \\
2634 + %
2635 + {\bf r}(t + h) &\leftarrow {\bf r}(t)
2636 +    + h  {\bf v}\left(t + h / 2 \right), \\
2637 + %
2638 + {\bf j}\left(t + h / 2 \right)  &\leftarrow {\bf j}(t)
2639 +    + \frac{h}{2} {\bf \tau}^{~b}(t), \\
2640 + %
2641 + {\bf Q}(t + h) &\leftarrow \mathrm{rotate}\left( h {\bf j}
2642 +    (t + h / 2) \cdot \overleftrightarrow{\mathsf{I}}^{-1} \right).
2643 + \end{align*}
2644 + In this context, $\overleftrightarrow{\mathsf{I}}$ is the diagonal
2645 + moment of inertia tensor, and the $\mathrm{rotate}$ function is the
2646 + reversible product of the three body-fixed rotations,
2647 + \begin{equation}
2648 + \mathrm{rotate}({\bf a}) = \mathsf{G}_x(a_x / 2) \cdot
2649 + \mathsf{G}_y(a_y / 2) \cdot \mathsf{G}_z(a_z) \cdot \mathsf{G}_y(a_y
2650 + / 2) \cdot \mathsf{G}_x(a_x /2),
2651 + \end{equation}
2652 + where each rotational propagator, $\mathsf{G}_\alpha(\theta)$,
2653 + rotates both the rotation matrix ($\mathbf{Q}$) and the body-fixed
2654 + angular momentum (${\bf j}$) by an angle $\theta$ around body-fixed
2655 + axis $\alpha$,
2656 + \begin{equation}
2657 + \mathsf{G}_\alpha( \theta ) = \left\{
2658 + \begin{array}{lcl}
2659 + \mathbf{Q}(t) & \leftarrow & \mathbf{Q}(0) \cdot \mathsf{R}_\alpha(\theta)^T, \\
2660 + {\bf j}(t) & \leftarrow & \mathsf{R}_\alpha(\theta) \cdot {\bf
2661 + j}(0).
2662 + \end{array}
2663 + \right.
2664 + \end{equation}
2665 + $\mathsf{R}_\alpha$ is a quadratic approximation to the single-axis
2666 + rotation matrix.  For example, in the small-angle limit, the
2667 + rotation matrix around the body-fixed x-axis can be approximated as
2668 + \begin{equation}
2669 + \mathsf{R}_x(\theta) \approx \left(
2670 + \begin{array}{ccc}
2671 + 1 & 0 & 0 \\
2672 + 0 & \frac{1-\theta^2 / 4}{1 + \theta^2 / 4}  & -\frac{\theta}{1+
2673 + \theta^2 / 4} \\
2674 + 0 & \frac{\theta}{1+ \theta^2 / 4} & \frac{1-\theta^2 / 4}{1 +
2675 + \theta^2 / 4}
2676 + \end{array}
2677 + \right).
2678 + \end{equation}
2679 + All other rotations follow in a straightforward manner. After the
2680 + first part of the propagation, the forces and body-fixed torques are
2681 + calculated at the new positions and orientations.  The system forces
2682 + and torques are derivatives of the total potential energy function
2683 + ($U$) with respect to the rigid body positions (${\bf r}$) and the
2684 + columns of the transposed rotation matrix ${\bf Q}^T = \left({\bf
2685 + u}_x, {\bf u}_y, {\bf u}_z \right)$:
2686 +
2687 + {\tt Forces:}
2688 + \begin{align*}
2689 + {\bf f}_{s}(t + h) & \leftarrow
2690 +    - \left(\frac{\partial U}{\partial {\bf r}}\right)_{{\bf r}(t + h)} \\
2691 + %
2692 + {\bf \tau}_{s}(t + h) &\leftarrow {\bf u}(t + h)
2693 +    \times \frac{\partial U}{\partial {\bf u}} \\
2694 + %
2695 + {\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) \\
2696 + %
2697 + {\bf f}_{R,f}^{b}(t+h) & \leftarrow - \Xi_{R}^{tt} \cdot
2698 + {\bf v}^{b}_{R}(t+h) - \Xi_{R}^{rt} \cdot {\bf \omega}(t+h) \\
2699 + %
2700 + {\bf \tau}_{R,f}^{b}(t+h) & \leftarrow - \Xi_{R}^{tr} \cdot
2701 + {\bf v}^{b}_{R}(t+h) - \Xi_{R}^{rr} \cdot {\bf \omega}(t+h) \\
2702 + %
2703 + Z & \leftarrow  {\tt GaussianNormal}(2 k_B T / h, 6) \\
2704 + {\bf F}_{R,r}^{b}(t+h) & \leftarrow {\bf S} \cdot Z \\
2705 + %
2706 + {\bf f}(t+h) & \leftarrow {\bf f}_{s}(t+h) + \mathbf{Q}^{T}(t+h)
2707 + \cdot \left({\bf f}_{R,f}^{~b} + {\bf f}_{R,r}^{~b} \right) \\
2708 + %
2709 + \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) \\
2710 + \tau^{~b}(t+h) & \leftarrow \mathbf{Q}(t+h) \cdot \tau(t+h) \\
2711 + \end{align*}
2712 + Frictional (and random) forces and torques must be computed at the
2713 + center of resistance, so there are additional steps required to find
2714 + the body-fixed velocity (${\bf v}_{R}^{~b}$) at this location.  Mapping
2715 + the frictional and random forces at the center of resistance back to
2716 + the center of mass also introduces an additional term in the torque
2717 + one obtains at the center of mass.
2718 +
2719 + Once the forces and torques have been obtained at the new time step,
2720 + the velocities can be advanced to the same time value.
2721 +
2722 + {\tt move B:}
2723 + \begin{align*}
2724 + {\bf v}\left(t + h \right)  &\leftarrow  {\bf v}\left(t + h / 2
2725 + \right)
2726 +    + \frac{h}{2} \left( {\bf f}(t + h) / m \right), \\
2727 + %
2728 + {\bf j}\left(t + h \right)  &\leftarrow {\bf j}\left(t + h / 2
2729 + \right)
2730 +    + \frac{h}{2} {\bf \tau}^{~b}(t + h) .
2731 + \end{align*}
2732 +
2733 + The viscosity of the implicit of solvents must be specified using {\tt
2734 + viscosity} keywords in the meta-data file to use langevin dynamics
2735 + integrator. For simple shaped particles (spheres and ellipsoids), no
2736 + further parameters are necessary. However, there are no analytical
2737 + solutions for composite shaped particles, the approximate methods have
2738 + to be applied to get the resistance tensor. The file which contains
2739 + the information about hydro properties is indicated by {\tt
2740 + HydroPropFile} keyword in meta-data file. The {\tt HydroPropFile} is
2741 + precalculated by {\tt Hydro}.
2742 +
2743 + \begin{longtable}[c]{ABCD}
2744 + \caption{Meta-data Keywords: Langevin Dynamics Parameters}
2745 + \\
2746 + {\bf keyword} & {\bf units} & {\bf use} & {\bf remarks}  \\ \hline
2747 + \endhead
2748 + \hline
2749 + \endfoot
2750 + {\tt viscosity} & centipoise & Sets the value of viscosity of implicit
2751 + solvents & \\ {\tt HydroPropFile} & string & specifies the resistance
2752 + tensor file & usually a {\tt .diff} file which is precalculated by
2753 + {\sc Hydro}. Not necessory for simple shaped particles (spheres and
2754 + ellipsoids) \\
2755 + {\tt beadSize} & $\mbox{\AA}$ & Sets the diameters of
2756 + beads when {\sc Rough Shell Model} is used to generate the resistance
2757 + tensor file. \\
2758 + \label{table:ldParameters}
2759   \end{longtable}
2760  
2761   \chapter{\label{oopseSec:thermInt}Thermodynamic Integration}
# Line 3213 | Line 3452 | The options available for SimpleBuilder are as follows
3452      &  {\tt -{}-nx=INT}            &  number of unit cells in x\\
3453      &  {\tt -{}-ny=INT}           &  number of unit cells in y\\
3454      &  {\tt -{}-nz=INT}            &  number of unit cells in z
3455 + \end{longtable}
3456 +
3457 + \section{\label{oopseSec:Hydro}Hydro}
3458 + {\tt Hydro} generates {\tt .diff} file which is required when a Langevin
3459 + Dynamics simulation using approximate models (supports Bead Model and
3460 + Rough Shell Model) is performed. To generate the {\tt }.diff file, the
3461 + meta-data file is needed as the input file. The viscosity of the fluid
3462 + flow (solvent) and the temperature of the system have to be defined in
3463 + meta-data file. If the approximate model is {\tt Rough Shell Model},
3464 + the {\tt beadSize} which is the diameter of every beads must be
3465 + specified in meta-data file.
3466 +
3467 + The options available for Hydro are as follows:
3468 + \begin{longtable}[c]{|EFG|}
3469 + \caption{Hydro Command-line Options}
3470 + \\ \hline
3471 + {\bf option} & {\bf verbose option} & {\bf behavior} \\ \hline
3472 + \endhead
3473 + \hline
3474 + \endfoot
3475 +  -h& {\tt -{}-help}               & Print help and exit\\
3476 +  -V& {\tt -{}-version}            & Print version and exit\\
3477 +  -i& {\tt -{}-input=filename}     & input MetaData (md) file\\
3478 +  -o& {\tt -{}-output=STRING}      & Output file name\\
3479 +   &  {\tt -{}-model=STRING}     & hydrodynamics model (supports
3480 + RoughShell and BeadModel)\\
3481 +  -b&  {\tt -{}-beads}            & generate the beads only,
3482 + hydrodynamics will be performed (default=off)\\
3483   \end{longtable}
3484  
3485 +
3486   \chapter{\label{oopseSec:parallelization} Parallel Simulation Implementation}
3487  
3488   Although processor power is continually improving, it is still

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines