22.2: Computing Dynamics
- Page ID
- 294369
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)
( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\id}{\mathrm{id}}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\kernel}{\mathrm{null}\,}\)
\( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\)
\( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\)
\( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)
\( \newcommand{\vectorA}[1]{\vec{#1}} % arrow\)
\( \newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow\)
\( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vectorC}[1]{\textbf{#1}} \)
\( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)
\( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)
\( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)There are a number of ways of computationally modeling time-dependent processes in molecular biophysics. These methods integrate equations of motion for the molecular degrees of freedom evolving under a classical force–field interaction potential, a quantum mechanical Hamiltonian, or an energy landscape that could be phenomenological or atomistically detailed. Examples include using classical force fields to propagate Newton’s equation of motion, integrating the Schrödinger equation, or integrating the Langevin equation on a potential of mean force. Since our interest is more on the description of computational or experimental data, this will just be a brief overview.
Classical Dynamics from a Potential (Force Field)
An overview of how to integrate Newton’s equation of motion, leaving out many important details. This scheme, often used in MD simulations, is commonly called a Verlet integration.
- Set initial positions r and velocities v of particles. For equilibrium simulations, the velocities are chosen from a Maxwell–Boltzmann distribution.
- Take small successive steps in time δt, calculating the velocities and positions of the particles for the following time step.
- At each time step calculate the forces on each particle by calculating the gradient of the potential with respect to r: F(r)=\(-\Delta V\)(r). The force is proportional to the acceleration a = F/m, where m is the mass of the particle.
- Now propagate the position of each particle n in time from time step i to time step i+1 as rn,i+1 = rn,i + vn,i δt + an,iδt2. This is a good point to save information for the system at a particular time.
- Calculate the new velocity for each particle from vn,i+1 = [rn,i+1‒rn,i]/δt.
- Now, you can increment the time step and repeat step iteratively.
Langevin Dynamics
Building on our discussion of Brownian motion, the Langevin equation is an equation of motion for a particle acting under the influence of a fixed potential U, friction, and a time-dependent random force. Writing it in one dimension:
\[ ma= f_{\textrm{potential}}+f_{\textrm{friction}}+f{\textrm{random}}(t) \]
\[ m \frac{\partial^{2} x}{\partial t^{2}}=-\frac{\partial U}{\partial x}-\zeta \frac{\partial x}{\partial t}+f_{r}(t) \]
The random force reflects the equilibrium thermal fluctuations acting on the particle, and is the source of the friction on the particle. In the Markovian limit, the friction coefficient ζ and the random force fr(t) are related through a fluctuation–dissipation relationship:
\[\langle f_r(t)\rangle = 0 \]
\[\langle f_r(t)f_r(t_0)\rangle = 2ζ k_BT \delta (t-t_0) \]
Also, the diffusion constant is D = kBT/ζ, and the time scale for loss of velocity correlations is \( \tau_c = \gamma-1 =\) m/ζ. The Langevin equation has high and low friction limits. In the low friction limit (ζ→0), the influence of friction and random force is minimal, and the behavior is dominated by the inertial motion of the particle. In the high friction limit, the particle’s behavior, being dominated by ζ, is diffusive. The limit is defined by any two of the following four linearly related variables: ζ, D, T, and \(\langle f_r^2 \rangle \). The high and low friction limit are also referred to as the low and high temperature limits: \( \langle f_r^2 \rangle / 2ζ = k_BT \).
Example: Trajectory for a particle on a bistable potential from Langevin dynamics