negligible. The equation is
.. math:: {{\mbox{d}}\mathbf{r}_i \over {\mbox{d}}t} = \frac{1}{\gamma_i} \mathbf{F}_i(\mathbf{r}) + {\stackrel{\circ}{\mathbf{r}}}_i
+ :label: eqnbrowniandyn
where :math:`\gamma_i` is the friction coefficient
:math:`[\mbox{amu/ps}]` and
:math:`\langle {\stackrel{\circ}{r}}_i\!\!(t) {\stackrel{\circ}{r}}_j\!\!(t+s) \rangle = 2 \delta(s) \delta_{ij} k_B T / \gamma_i`.
In |Gromacs| the equations are integrated with a simple, explicit scheme
-.. math::
-
- \mathbf{r}_i(t+\Delta t) = \mathbf{r}_i(t) +
- {\Delta t \over \gamma_i} \mathbf{F}_i(\mathbf{r}(t))
- + \sqrt{2 k_B T {\Delta t \over \gamma_i}}\, {\mathbf{r}^G}_i,
+.. math:: \mathbf{r}_i(t+\Delta t) = \mathbf{r}_i(t) +
+ {\Delta t \over \gamma_i} \mathbf{F}_i(\mathbf{r}(t))
+ + \sqrt{2 k_B T {\Delta t \over \gamma_i}}\, {\mathbf{r}^G}_i,
+ :label: eqnbrowniandynint
where :math:`{\mathbf{r}^G}_i` is Gaussian distributed
noise with :math:`\mu = 0`, :math:`\sigma = 1`. The friction
The SHAKE \ :ref:`46 <refRyckaert77>` algorithm changes a
set of unconstrained coordinates :math:`\mathbf{r}^{'}` to
a set of coordinates :math:`\mathbf{r}''` that fulfill a
-list of distance constraints, using a set
-:math:`\mathbf{r}` reference, as
+list of distance constraints, using a set :math:`\mathbf{r}` reference, as
.. math:: {\rm SHAKE}(\mathbf{r}^{'} \rightarrow \mathbf{r}'';\, \mathbf{r})
+ :label: eqnshakebase
This action is consistent with solving a set of Lagrange multipliers in
the constrained equations of motion. SHAKE needs a *relative tolerance*;
constraints, expressed as
.. math:: \sigma_k(\mathbf{r}_1 \ldots \mathbf{r}_N) = 0; \;\; k=1 \ldots K.
+ :label: eqnshakemotconstr
-For example,
-:math:`(\mathbf{r}_1 - \mathbf{r}_2)^2 - b^2 = 0`.
+For example, :math:`(\mathbf{r}_1 - \mathbf{r}_2)^2 - b^2 = 0`.
Then the forces are defined as
-.. math::
-
- - \frac{\partial}{\partial \mathbf{r}_i} \left( V + \sum_{k=1}^K \lambda_k
- \sigma_k \right),
+.. math:: - \frac{\partial}{\partial \mathbf{r}_i} \left( V + \sum_{k=1}^K \lambda_k
+ \sigma_k \right),
+ :label: eqnshakeforce
where :math:`\lambda_k` are Lagrange multipliers which must be solved
to fulfill the constraint equations. The second part of this sum
-determines the *constraint forces* :math:`\mathbf{G}_i`,
-defined by
-
-.. math::
+determines the *constraint forces* :math:`\mathbf{G}_i`, defined by
- \mathbf{G}_i = -\sum_{k=1}^K \lambda_k \frac{\partial \sigma_k}{\partial
- \mathbf{r}_i}
+.. math:: \mathbf{G}_i = -\sum_{k=1}^K \lambda_k \frac{\partial \sigma_k}{\partial
+ \mathbf{r}_i}
+ :label: eqnshakeconstrforces
The displacement due to the constraint forces in the leap-frog or
-Verlet algorithm is equal to
-:math:`(\mathbf{G}_i/m_i)({{\Delta t}})^2`. Solving the
+Verlet algorithm is equal to :math:`(\mathbf{G}_i/m_i)({{\Delta t}})^2`. Solving the
Lagrange multipliers (and hence the displacements) requires the solution
of a set of coupled equations of the second degree. These are solved
iteratively by SHAKE. :ref:`settle`
coordinates :math:`\mathbf{r}_{n+1}^{unc}` by
.. math:: \begin{array}{c}
- \mathbf{r}_{n+1}=(\mathbf{I}-\mathbf{T}_n \mathbf{B}_n) \mathbf{r}_{n+1}^{unc} + {\mathbf{T}}_n \mathbf{d}=
- \\[2mm]
- \mathbf{r}_{n+1}^{unc} -
- {{\mathbf{M}}^{-1}}\mathbf{B}_n ({\mathbf{B}}_n {{\mathbf{M}}^{-1}}{\mathbf{B}}_n^T)^{-1} ({\mathbf{B}}_n \mathbf{r}_{n+1}^{unc} - \mathbf{d})
- \end{array}
- :label: eqnm0
+ \mathbf{r}_{n+1}=(\mathbf{I}-\mathbf{T}_n \mathbf{B}_n) \mathbf{r}_{n+1}^{unc} + {\mathbf{T}}_n \mathbf{d}=
+ \\[2mm]
+ \mathbf{r}_{n+1}^{unc} -
+ {{\mathbf{M}}^{-1}}\mathbf{B}_n ({\mathbf{B}}_n {{\mathbf{M}}^{-1}}{\mathbf{B}}_n^T)^{-1} ({\mathbf{B}}_n \mathbf{r}_{n+1}^{unc} - \mathbf{d})
+ \end{array}
+ :label: eqnm0
where
-:math:`{\mathbf{T}}= {{\mathbf{M}}^{-1}}{\mathbf{B}}^T ({\mathbf{B}}{{\mathbf{M}}^{-1}}{\mathbf{B}}^T)^{-1}`.
+
+.. math:: {\mathbf{T}}= {{\mathbf{M}}^{-1}}{\mathbf{B}}^T ({\mathbf{B}}{{\mathbf{M}}^{-1}}{\mathbf{B}}^T)^{-1}
+ :label: eqnnm01
+
The derivation of this equation from :eq:`eqns. %s <eqnc1>` and
:eq:`%s <eqnc2>` can be found in :ref:`49 <refHess97>`.
of the bond, :math:`p_i`, on the old direction is set to
.. math:: p_i=\sqrt{2 d_i^2 - l_i^2},
- :label: eqnm1a
+ :label: eqnm1a
where :math:`l_i` is the bond length after the first projection. The
corrected positions are
.. math:: \mathbf{r}_{n+1}^*=(\mathbf{I}-\mathbf{T}_n \mathbf{B}_n)\mathbf{r}_{n+1} + {\mathbf{T}}_n \mathbf{p}.
- :label: eqnm1b
+ :label: eqnm1b
This correction for rotational effects is actually an iterative
process, but during MD only one iteration is applied. The relative
are calculated. New positions are calculated by
.. math:: \mathbf{r}_{n+1} = \mathbf{r}_n + \frac{\mathbf{F}_n}{\max (|\mathbf{F}_n|)} h_n,
+ :label: eqnEMpos
where :math:`h_n` is the maximum displacement and
:math:`\mathbf{F}_n` is the force, or the negative
:math:`T`. This value is
.. math:: f = 2 \pi \nu \sqrt{ 2mkT},
+ :label: eqnEMharmosc
where :math:`\nu` is the oscillator frequency, :math:`m` the (reduced)
mass, and :math:`k` Boltzmann’s constant. For a weak oscillator with a
can be written as:
.. math:: P(\vec{x},k) \propto \exp\left(-\beta_k U_k + g_k\right),
+ :label: eqnexpandensemble
where :math:`\beta_k = \frac{1}{k_B T_k}` is the :math:`\beta`
corresponding to the :math:`k`\ th thermodynamic state, and :math:`g_k`
A and :math:`\lambda=1` describes system B:
.. math:: H(p,q;0)=H{^{\mathrm{A}}}(p,q);~~~~ H(p,q;1)=H{^{\mathrm{B}}}(p,q).
+ :label: eqnddgHamiltonian
In |Gromacs|, the functional form of the :math:`\lambda`-dependence is
different for the various force-field contributions and is described in
ensemble, which is assumed to be the equilibrium ensemble generated by a
MD simulation at constant pressure and temperature:
-.. math::
-
- \begin{aligned}
- A(\lambda) &=& -k_BT \ln Q \\
- Q &=& c \int\!\!\int \exp[-\beta H(p,q;\lambda)]\,dp\,dq \\
- G(\lambda) &=& -k_BT \ln \Delta \\
- \Delta &=& c \int\!\!\int\!\!\int \exp[-\beta H(p,q;\lambda) -\beta
- pV]\,dp\,dq\,dV \\
- G &=& A + pV, \end{aligned}
+.. math:: \begin{aligned}
+ A(\lambda) &=& -k_BT \ln Q \\
+ Q &=& c \int\!\!\int \exp[-\beta H(p,q;\lambda)]\,dp\,dq \\
+ G(\lambda) &=& -k_BT \ln \Delta \\
+ \Delta &=& c \int\!\!\int\!\!\int \exp[-\beta H(p,q;\lambda) -\beta
+ pV]\,dp\,dq\,dV \\
+ G &=& A + pV, \end{aligned}
+ :label: eqnddgGibs
where :math:`\beta = 1/(k_BT)` and :math:`c = (N! h^{3N})^{-1}`. These
integrals over phase space cannot be evaluated from a simulation, but it
is possible to evaluate the derivative with respect to :math:`\lambda`
as an ensemble average:
-.. math::
-
- \frac{dA}{d\lambda} = \frac{\int\!\!\int (\partial H/ \partial
- \lambda) \exp[-\beta H(p,q;\lambda)]\,dp\,dq}{\int\!\!\int \exp[-\beta
- H(p,q;\lambda)]\,dp\,dq} =
- \left\langle \frac{\partial H}{\partial \lambda} \right\rangle_{NVT;\lambda},
+.. math:: \frac{dA}{d\lambda} = \frac{\int\!\!\int (\partial H/ \partial
+ \lambda) \exp[-\beta H(p,q;\lambda)]\,dp\,dq}{\int\!\!\int \exp[-\beta
+ H(p,q;\lambda)]\,dp\,dq} =
+ \left\langle \frac{\partial H}{\partial \lambda} \right\rangle_{NVT;\lambda},
+ :label: eqnddgensembleave
with a similar relation for :math:`dG/d\lambda` in the :math:`N,p,T`
ensemble. The difference in free energy between A and B can be found by
system B at pressure :math:`p_B`, by applying the following small (but,
in principle, exact) correction:
-.. math::
-
- G{^{\mathrm{B}}}(p)-G{^{\mathrm{A}}}(p) =
- A{^{\mathrm{B}}}(V)-A{^{\mathrm{A}}}(V) - \int_p^{p{^{\mathrm{B}}}}[V{^{\mathrm{B}}}(p')-V]\,dp'
+.. math:: G{^{\mathrm{B}}}(p)-G{^{\mathrm{A}}}(p) =
+ A{^{\mathrm{B}}}(V)-A{^{\mathrm{A}}}(V) - \int_p^{p{^{\mathrm{B}}}}[V{^{\mathrm{B}}}(p')-V]\,dp'
+ :label: eqnddgpresscorr
Here we omitted the constant :math:`T` from the notation. This
correction is roughly equal to
:math:`T`:
.. math:: p(v_i) = \sqrt{\frac{m_i}{2 \pi kT}}\exp\left(-\frac{m_i v_i^2}{2kT}\right)
+ :label: eqnmaxwellboltzman
where :math:`k` is Boltzmann’s constant (see chapter :ref:`defunits`). To
accomplish this, normally distributed random numbers are generated by
density :math:`\rho_2`, when the inter-particle distance changes from
:math:`r_0` to :math:`r_t`, as:
-.. math::
-
- \langle \Delta V \rangle =
- \int_{0}^{r_c} \int_{r_\ell}^\infty 4 \pi r_0^2 \rho_2 V(r_t) G\!\left(\frac{r_t-r_0}{\sigma}\right) d r_0\, d r_t
+.. math:: \langle \Delta V \rangle =
+ \int_{0}^{r_c} \int_{r_\ell}^\infty 4 \pi r_0^2 \rho_2 V(r_t) G\!\left(\frac{r_t-r_0}{\sigma}\right) d r_0\, d r_t
+ :label: eqnverletbufenergy
To evaluate this analytically, we need to make some approximations.
First we replace :math:`V(r_t)` by a Taylor expansion around
:math:`r_c`, then we can move the lower bound of the integral over
:math:`r_0` to :math:`-\infty` which will simplify the result:
-.. math::
-
- \begin{aligned}
- \langle \Delta V \rangle &\approx&
- \int_{-\infty}^{r_c} \int_{r_\ell}^\infty 4 \pi r_0^2 \rho_2 \Big[ V'(r_c) (r_t - r_c) +
- \nonumber\\
- & &
- \phantom{\int_{-\infty}^{r_c} \int_{r_\ell}^\infty 4 \pi r_0^2 \rho_2 \Big[}
- V''(r_c)\frac{1}{2}(r_t - r_c)^2 +
- \nonumber\\
- & &
- \phantom{\int_{-\infty}^{r_c} \int_{r_\ell}^\infty 4 \pi r_0^2 \rho_2 \Big[}
- V'''(r_c)\frac{1}{6}(r_t - r_c)^3 +
- \nonumber\\
- & &
- \phantom{\int_{-\infty}^{r_c} \int_{r_\ell}^\infty 4 \pi r_0^2 \rho_2 \Big[}
- O \! \left((r_t - r_c)^4 \right)\Big] G\!\left(\frac{r_t-r_0}{\sigma}\right) d r_0 \, d r_t\end{aligned}
+.. math:: \begin{aligned}
+ \langle \Delta V \rangle &\approx&
+ \int_{-\infty}^{r_c} \int_{r_\ell}^\infty 4 \pi r_0^2 \rho_2 \Big[ V'(r_c) (r_t - r_c) +
+ \nonumber\\
+ & &
+ \phantom{\int_{-\infty}^{r_c} \int_{r_\ell}^\infty 4 \pi r_0^2 \rho_2 \Big[}
+ V''(r_c)\frac{1}{2}(r_t - r_c)^2 +
+ \nonumber\\
+ & &
+ \phantom{\int_{-\infty}^{r_c} \int_{r_\ell}^\infty 4 \pi r_0^2 \rho_2 \Big[}
+ V'''(r_c)\frac{1}{6}(r_t - r_c)^3 +
+ \nonumber\\
+ & &
+ \phantom{\int_{-\infty}^{r_c} \int_{r_\ell}^\infty 4 \pi r_0^2 \rho_2 \Big[}
+ O \! \left((r_t - r_c)^4 \right)\Big] G\!\left(\frac{r_t-r_0}{\sigma}\right) d r_0 \, d r_t\end{aligned}
+ :label: eqnverletaylor
Replacing the factor :math:`r_0^2` by :math:`(r_\ell + \sigma)^2`,
which results in a slight overestimate, allows us to calculate the
integrals analytically:
-.. math::
-
- \begin{aligned}
- \langle \Delta V \rangle \!
- &\approx&
- 4 \pi (r_\ell+\sigma)^2 \rho_2
- \int_{-\infty}^{r_c} \int_{r_\ell}^\infty \Big[ V'(r_c) (r_t - r_c) +
- \nonumber\\
- & &
- \phantom{4 \pi (r_\ell+\sigma)^2 \rho_2 \int_{-\infty}^{r_c} \int_{r_\ell}^\infty \Big[}
- V''(r_c)\frac{1}{2}(r_t - r_c)^2 +
- \nonumber\\
- & &
- \phantom{4 \pi (r_\ell+\sigma)^2 \rho_2 \int_{-\infty}^{r_c} \int_{r_\ell}^\infty \Big[}
- V'''(r_c)\frac{1}{6}(r_t - r_c)^3 \Big] G\!\left(\frac{r_t-r_0}{\sigma}\right)
- d r_0 \, d r_t\\
- &=&
- 4 \pi (r_\ell+\sigma)^2 \rho_2 \bigg\{
- \frac{1}{2}V'(r_c)\left[r_b \sigma G\!\left(\frac{r_b}{\sigma}\right) - (r_b^2+\sigma^2)E\!\left(\frac{r_b}{\sigma}\right) \right] +
- \nonumber\\
- & &
- \phantom{4 \pi (r_\ell+\sigma)^2 \rho_2 \bigg\{ }
- \frac{1}{6}V''(r_c)\left[ \sigma(r_b^2+2\sigma^2) G\!\left(\frac{r_b}{\sigma}\right) - r_b(r_b^2+3\sigma^2 ) E\!\left(\frac{r_b}{\sigma}\right) \right] +
- \nonumber\\
- & &
- \phantom{4 \pi (r_\ell+\sigma)^2 \rho_2 \bigg\{ }
- \frac{1}{24}V'''(r_c)\bigg[ r_b\sigma(r_b^2+5\sigma^2) G\!\left(\frac{r_b}{\sigma}\right)
- \nonumber\\
- & &
- \phantom{4 \pi (r_\ell+\sigma)^2 \rho_2 \bigg\{ \frac{1}{24}V'''(r_c)\bigg[ }
- - (r_b^4+6r_b^2\sigma^2+3\sigma^4 ) E\!\left(\frac{r_b}{\sigma}\right) \bigg]
- \bigg\}\end{aligned}
+.. math:: \begin{aligned}
+ \langle \Delta V \rangle \!
+ &\approx&
+ 4 \pi (r_\ell+\sigma)^2 \rho_2
+ \int_{-\infty}^{r_c} \int_{r_\ell}^\infty \Big[ V'(r_c) (r_t - r_c) +
+ \nonumber\\
+ & &
+ \phantom{4 \pi (r_\ell+\sigma)^2 \rho_2 \int_{-\infty}^{r_c} \int_{r_\ell}^\infty \Big[}
+ V''(r_c)\frac{1}{2}(r_t - r_c)^2 +
+ \nonumber\\
+ & &
+ \phantom{4 \pi (r_\ell+\sigma)^2 \rho_2 \int_{-\infty}^{r_c} \int_{r_\ell}^\infty \Big[}
+ V'''(r_c)\frac{1}{6}(r_t - r_c)^3 \Big] G\!\left(\frac{r_t-r_0}{\sigma}\right)
+ d r_0 \, d r_t\\
+ &=&
+ 4 \pi (r_\ell+\sigma)^2 \rho_2 \bigg\{
+ \frac{1}{2}V'(r_c)\left[r_b \sigma G\!\left(\frac{r_b}{\sigma}\right) - (r_b^2+\sigma^2)E\!\left(\frac{r_b}{\sigma}\right) \right] +
+ \nonumber\\
+ & &
+ \phantom{4 \pi (r_\ell+\sigma)^2 \rho_2 \bigg\{ }
+ \frac{1}{6}V''(r_c)\left[ \sigma(r_b^2+2\sigma^2) G\!\left(\frac{r_b}{\sigma}\right) - r_b(r_b^2+3\sigma^2 ) E\!\left(\frac{r_b}{\sigma}\right) \right] +
+ \nonumber\\
+ & &
+ \phantom{4 \pi (r_\ell+\sigma)^2 \rho_2 \bigg\{ }
+ \frac{1}{24}V'''(r_c)\bigg[ r_b\sigma(r_b^2+5\sigma^2) G\!\left(\frac{r_b}{\sigma}\right)
+ \nonumber\\
+ & &
+ \phantom{4 \pi (r_\ell+\sigma)^2 \rho_2 \bigg\{ \frac{1}{24}V'''(r_c)\bigg[ }
+ - (r_b^4+6r_b^2\sigma^2+3\sigma^4 ) E\!\left(\frac{r_b}{\sigma}\right) \bigg]
+ \bigg\}\end{aligned}
+ :label: eqnverletanalytical
where :math:`G(x)` is a Gaussian distribution with 0 mean and unit
variance and :math:`E(x)=\frac{1}{2}\mathrm{erfc}(x/\sqrt{2})`. We
:math:`{\mathbf{r}_{ij}}` connecting images within the
cut-off :math:`R_c` can be found by constructing:
-.. math::
-
- \begin{aligned}
- \mathbf{r}''' & = & \mathbf{r}_j-\mathbf{r}_i \\
- \mathbf{r}'' & = & \mathbf{r}''' - \mathbf{c}*\mathrm{round}(r'''_z/c_z) \\
- \mathbf{r}' & = & \mathbf{r}'' - \mathbf{b}*\mathrm{round}(r''_y/b_y) \\
- \mathbf{r}_{ij} & = & \mathbf{r}' - \mathbf{a}*\mathrm{round}(r'_x/a_x)
- \end{aligned}
+.. math:: \begin{aligned}
+ \mathbf{r}''' & = & \mathbf{r}_j-\mathbf{r}_i \\
+ \mathbf{r}'' & = & \mathbf{r}''' - \mathbf{c}*\mathrm{round}(r'''_z/c_z) \\
+ \mathbf{r}' & = & \mathbf{r}'' - \mathbf{b}*\mathrm{round}(r''_y/b_y) \\
+ \mathbf{r}_{ij} & = & \mathbf{r}' - \mathbf{a}*\mathrm{round}(r'_x/a_x)
+ \end{aligned}
+ :label: eqnsearchvec
When distances between two particles in a triclinic box are needed that
do not obey :eq:`eqn. %s <eqnboxrot>`, many shifts of
:math:`N`-particle system:
.. math:: E_{kin} = {\frac{1}{2}}\sum_{i=1}^N m_i v_i^2
+ :label: eqntempEkin
From this the absolute temperature :math:`T` can be computed using:
number of degrees of freedom which can be computed from:
.. math:: N_{\mathrm{df}} ~=~ 3 N - N_c - N_{\mathrm{com}}
+ :label: eqndofcoupling
Here :math:`N_c` is the number of *constraints* imposed on the system.
When performing molecular dynamics :math:`N_{\mathrm{com}}=3` additional
for group :math:`i` is:
.. math:: N^i_{\mathrm{df}} ~=~ (3 N^i - N^i_c) \frac{3 N - N_c - N_{\mathrm{com}}}{3 N - N_c}
+ :label: eqndofonecouplgroup
The kinetic energy can also be written as a tensor, which is necessary
for pressure calculation in a triclinic system, or systems where shear
forces are imposed:
.. math:: {\bf E}_{\mathrm{kin}} = {\frac{1}{2}}\sum_i^N m_i {\mathbf{v}_i}\otimes {\mathbf{v}_i}
+ :label: eqnEkintensor
Pressure and virial
^^^^^^^^^^^^^^^^^^^
algorithm, whose position-update relation is
.. math:: \mathbf{r}(t+{{\Delta t}})~=~2\mathbf{r}(t) - \mathbf{r}(t-{{\Delta t}}) + \frac{1}{m}\mathbf{F}(t){{\Delta t}}^2+O({{\Delta t}}^4)
+ :label: eqnleapfrogp
The algorithm is of third order in :math:`\mathbf{r}` and
is time-reversible. See ref. \ :ref:`24 <refBerendsen86b>` for the
from time :math:`t = 0` to time :math:`t` by applying the evolution
operator
-.. math::
-
- \begin{aligned}
- \Gamma(t) &=& \exp(iLt) \Gamma(0) \nonumber \\
- iL &=& \dot{\Gamma}\cdot \nabla_{\Gamma},\end{aligned}
+.. math:: \begin{aligned}
+ \Gamma(t) &=& \exp(iLt) \Gamma(0) \nonumber \\
+ iL &=& \dot{\Gamma}\cdot \nabla_{\Gamma},\end{aligned}
+ :label: eqnevoluoperator
where :math:`L` is the Liouville operator, and :math:`\Gamma` is the
multidimensional vector of independent variables (positions and
succession to evolve the system as
.. math:: \Gamma(t) = \prod_{i=1}^P \exp(iL{{\Delta t}}) \Gamma(0)
+ :label: eqnevolvesystem
For NVE dynamics, the Liouville operator is
-.. math::
-
- \begin{aligned}
- iL = \sum_{i=1}^{N} {{\mathbf{v}}}_i \cdot \nabla_{{{\mathbf{r}}}_i} + \sum_{i=1}^N \frac{1}{m_i}{{\mathbf{F}}}(r_i) \cdot \nabla_{{{\mathbf{v}}}_i}.\end{aligned}
+.. math:: \begin{aligned}
+ iL = \sum_{i=1}^{N} {{\mathbf{v}}}_i \cdot \nabla_{{{\mathbf{r}}}_i} + \sum_{i=1}^N \frac{1}{m_i}{{\mathbf{F}}}(r_i) \cdot \nabla_{{{\mathbf{v}}}_i}.\end{aligned}
+ :label: eqnliouvilleoperator
This can be split into two additive operators
-.. math::
-
- \begin{aligned}
- iL_1 &=& \sum_{i=1}^N \frac{1}{m_i}{{\mathbf{F}}}(r_i) \cdot \nabla_{{{\mathbf{v}}}_i} \nonumber \\
- iL_2 &=& \sum_{i=1}^{N} {{\mathbf{v}}}_i \cdot \nabla_{{{\mathbf{r}}}_i} \end{aligned}
+.. math:: \begin{aligned}
+ iL_1 &=& \sum_{i=1}^N \frac{1}{m_i}{{\mathbf{F}}}(r_i) \cdot \nabla_{{{\mathbf{v}}}_i} \nonumber \\
+ iL_2 &=& \sum_{i=1}^{N} {{\mathbf{v}}}_i \cdot \nabla_{{{\mathbf{r}}}_i} \end{aligned}
+ :label: eqnlotwoadditive
Then a short-time, symmetric, and thus reversible approximation of the
true dynamics will be
:math:`{{\frac{1}{2}}{{\Delta t}}}` is the final velocity half step. For
future times :math:`t = n{{\Delta t}}`, this becomes
-.. math::
-
- \begin{aligned}
- \exp(iLn{{\Delta t}}) &\approx& \left(\exp(iL_2{{\frac{1}{2}}{{\Delta t}}}) \exp(iL_1{{\Delta t}}) \exp(iL_2{{\frac{1}{2}}{{\Delta t}}})\right)^n \nonumber \\
- &\approx& \exp(iL_2{{\frac{1}{2}}{{\Delta t}}}) \bigg(\exp(iL_1{{\Delta t}}) \exp(iL_2{{\Delta t}})\bigg)^{n-1} \nonumber \\
- & & \;\;\;\; \exp(iL_1{{\Delta t}}) \exp(iL_2{{\frac{1}{2}}{{\Delta t}}}) \end{aligned}
+.. math:: \begin{aligned}
+ \exp(iLn{{\Delta t}}) &\approx& \left(\exp(iL_2{{\frac{1}{2}}{{\Delta t}}}) \exp(iL_1{{\Delta t}}) \exp(iL_2{{\frac{1}{2}}{{\Delta t}}})\right)^n \nonumber \\
+ &\approx& \exp(iL_2{{\frac{1}{2}}{{\Delta t}}}) \bigg(\exp(iL_1{{\Delta t}}) \exp(iL_2{{\Delta t}})\bigg)^{n-1} \nonumber \\
+ & & \;\;\;\; \exp(iL_1{{\Delta t}}) \exp(iL_2{{\frac{1}{2}}{{\Delta t}}}) \end{aligned}
+ :label: eqntrottertimestep
This formalism allows us to easily see the difference between the
different flavors of Verlet integrators. The leap-frog integrator can be
:math:`\exp\left(iL_1 {\Delta t}\right)` term, instead of the half-step
velocity term, yielding
-.. math::
-
- \begin{aligned}
- \exp(iLn{\Delta t}) &=& \exp\left(iL_1 {\Delta t}\right) \exp\left(iL_2 {{\Delta t}}\right) + \mathcal{O}({{\Delta t}}^3).\end{aligned}
+.. math:: \begin{aligned}
+ \exp(iLn{\Delta t}) &=& \exp\left(iL_1 {\Delta t}\right) \exp\left(iL_2 {{\Delta t}}\right) + \mathcal{O}({{\Delta t}}^3).\end{aligned}
+ :label: eqnleapfroghalfvel
Here, the full step in velocity is between
:math:`t-{{\frac{1}{2}}{{\Delta t}}}` and
velocity half steps in velocity Verlet. For future times
:math:`t = n{{\Delta t}}`, this becomes
-.. math::
-
- \begin{aligned}
- \exp(iLn{\Delta t}) &\approx& \bigg(\exp\left(iL_1 {\Delta t}\right) \exp\left(iL_2 {{\Delta t}}\right) \bigg)^{n}.\end{aligned}
+.. math:: \begin{aligned}
+ \exp(iLn{\Delta t}) &\approx& \bigg(\exp\left(iL_1 {\Delta t}\right) \exp\left(iL_2 {{\Delta t}}\right) \bigg)^{n}.\end{aligned}
+ :label: eqnvelverlethalfvel
Although at first this does not appear symmetric, as long as the full
velocity step is between :math:`t-{{\frac{1}{2}}{{\Delta t}}}` and
thus the temperature only at time :math:`t`; the kinetic energy is then
a sum over all particles
-.. math::
-
- \begin{aligned}
- KE_{\mathrm{full}}(t) &=& \sum_i \left(\frac{1}{2m_i}\mathbf{v}_i(t)\right)^2 \nonumber\\
- &=& \sum_i \frac{1}{2m_i}\left(\frac{1}{2}\mathbf{v}_i(t-{{\frac{1}{2}}{{\Delta t}}})+\frac{1}{2}\mathbf{v}_i(t+{{\frac{1}{2}}{{\Delta t}}})\right)^2,\end{aligned}
+.. math:: \begin{aligned}
+ KE_{\mathrm{full}}(t) &=& \sum_i \left(\frac{1}{2m_i}\mathbf{v}_i(t)\right)^2 \nonumber\\
+ &=& \sum_i \frac{1}{2m_i}\left(\frac{1}{2}\mathbf{v}_i(t-{{\frac{1}{2}}{{\Delta t}}})+\frac{1}{2}\mathbf{v}_i(t+{{\frac{1}{2}}{{\Delta t}}})\right)^2,\end{aligned}
+ :label: eqnTrotterEkin
with the square on the *outside* of the average. Standard leap-frog
calculates the kinetic energy at time :math:`t` based on the average
kinetic energies at the timesteps :math:`t+{{\frac{1}{2}}{{\Delta t}}}`
and :math:`t-{{\frac{1}{2}}{{\Delta t}}}`, or the sum over all particles
-.. math::
-
- \begin{aligned}
- KE_{\mathrm{average}}(t) &=& \sum_i \frac{1}{2m_i}\left(\frac{1}{2}\mathbf{v}_i(t-{{\frac{1}{2}}{{\Delta t}}})^2+\frac{1}{2}\mathbf{v}_i(t+{{\frac{1}{2}}{{\Delta t}}})^2\right),\end{aligned}
+.. math:: \begin{aligned}
+ KE_{\mathrm{average}}(t) &=& \sum_i \frac{1}{2m_i}\left(\frac{1}{2}\mathbf{v}_i(t-{{\frac{1}{2}}{{\Delta t}}})^2+\frac{1}{2}\mathbf{v}_i(t+{{\frac{1}{2}}{{\Delta t}}})^2\right),\end{aligned}
+ :label: eqnTrottersumparticles
where the square is *inside* the average.
(:eq:`eqn. %s <eqnTcoupling>`):
.. math:: \tau = 2 C_V \tau_T / N_{df} k
+ :label: eqnTcoupltau
where :math:`C_V` is the total heat capacity of the system, :math:`k`
is Boltzmann’s constant, and :math:`N_{df}` is the total number of
The thermostat modifies the kinetic energy at each scaling step by:
.. math:: \Delta E_k = (\lambda - 1)^2 E_k
+ :label: eqnThermostat
The sum of these changes over the run needs to subtracted from the
total energy to obtain the conserved energy quantity.
where the equation of motion for the heat bath parameter :math:`\xi` is:
.. math:: \frac {{\mbox{d}}p_{\xi}}{{\mbox{d}}t} = \left( T - T_0 \right).
+ :label: eqnNHheatbath
The reference temperature is denoted :math:`T_0`, while :math:`T` is
the current instantaneous temperature of the system. The strength of the
The conserved quantity for the Nosé-Hoover equations of motion is not
the total energy, but rather
-.. math::
-
- \begin{aligned}
- H = \sum_{i=1}^{N} \frac{{{\mathbf{p}}}_i}{2m_i} + U\left({{\mathbf{r}}}_1,{{\mathbf{r}}}_2,\ldots,{{\mathbf{r}}}_N\right) +\frac{p_{\xi}^2}{2Q} + N_fkT\xi,\end{aligned}
+.. math:: \begin{aligned}
+ H = \sum_{i=1}^{N} \frac{{{\mathbf{p}}}_i}{2m_i} + U\left({{\mathbf{r}}}_1,{{\mathbf{r}}}_2,\ldots,{{\mathbf{r}}}_N\right) +\frac{p_{\xi}^2}{2Q} + N_fkT\xi,\end{aligned}
+ :label: eqnNHconservedbasic
where :math:`N_f` is the total number of degrees of freedom.
:math:`T_0` via:
.. math:: Q = \frac {\tau_T^2 T_0}{4 \pi^2}.
+ :label: eqnNHQ
This provides a much more intuitive way of selecting the Nosé-Hoover
coupling strength (similar to the weak-coupling relaxation), and in
The conserved quantity for Nosé-Hoover chains is
-.. math::
-
- \begin{aligned}
- H = \sum_{i=1}^{N} \frac{{{\mathbf{p}}}_i}{2m_i} + U\left({{\mathbf{r}}}_1,{{\mathbf{r}}}_2,\ldots,{{\mathbf{r}}}_N\right) +\sum_{k=1}^M\frac{p^2_{\xi_k}}{2Q^{\prime}_k} + N_fkT\xi_1 + kT\sum_{k=2}^M \xi_k \end{aligned}
+.. math:: \begin{aligned}
+ H = \sum_{i=1}^{N} \frac{{{\mathbf{p}}}_i}{2m_i} + U\left({{\mathbf{r}}}_1,{{\mathbf{r}}}_2,\ldots,{{\mathbf{r}}}_N\right) +\sum_{k=1}^M\frac{p^2_{\xi_k}}{2Q^{\prime}_k} + N_fkT\xi_1 + kT\sum_{k=2}^M \xi_k \end{aligned}
+ :label: eqnNHconservedquantity
The values and velocities of the Nosé-Hoover thermostat variables are
generally not included in the output, as they take up a fair amount of
operator as
.. math:: iL = iL_1 + iL_2 + iL_{\mathrm{NHC}},
+ :label: eqnNHTrotter
where
-.. math::
-
- \begin{aligned}
- iL_1 &=& \sum_{i=1}^N \left[\frac{{{\mathbf{p}}}_i}{m_i}\right]\cdot \frac{\partial}{\partial {{\mathbf{r}}}_i} \nonumber \\
- iL_2 &=& \sum_{i=1}^N {{\mathbf{F}}}_i\cdot \frac{\partial}{\partial {{\mathbf{p}}}_i} \nonumber \\
- iL_{\mathrm{NHC}} &=& \sum_{i=1}^N-\frac{p_{\xi}}{Q}{{\mathbf{v}}}_i\cdot \nabla_{{{\mathbf{v}}}_i} +\frac{p_{\xi}}{Q}\frac{\partial }{\partial \xi} + \left( T - T_0 \right)\frac{\partial }{\partial p_{\xi}}\end{aligned}
+.. math:: \begin{aligned}
+ iL_1 &=& \sum_{i=1}^N \left[\frac{{{\mathbf{p}}}_i}{m_i}\right]\cdot \frac{\partial}{\partial {{\mathbf{r}}}_i} \nonumber \\
+ iL_2 &=& \sum_{i=1}^N {{\mathbf{F}}}_i\cdot \frac{\partial}{\partial {{\mathbf{p}}}_i} \nonumber \\
+ iL_{\mathrm{NHC}} &=& \sum_{i=1}^N-\frac{p_{\xi}}{Q}{{\mathbf{v}}}_i\cdot \nabla_{{{\mathbf{v}}}_i} +\frac{p_{\xi}}{Q}\frac{\partial }{\partial \xi} + \left( T - T_0 \right)\frac{\partial }{\partial p_{\xi}}\end{aligned}
+ :label: eqnNHTrotter2
For standard velocity Verlet with Nosé-Hoover temperature control, this
becomes
-.. math::
-
- \begin{aligned}
- \exp(iL{\Delta t}) &=& \exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right) \exp\left(iL_2 {\Delta t}/2\right) \nonumber \\
- &&\exp\left(iL_1 {\Delta t}\right) \exp\left(iL_2 {\Delta t}/2\right) \exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right) + \mathcal{O}({{\Delta t}}^3).\end{aligned}
+.. math:: \begin{aligned}
+ \exp(iL{\Delta t}) &=& \exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right) \exp\left(iL_2 {\Delta t}/2\right) \nonumber \\
+ &&\exp\left(iL_1 {\Delta t}\right) \exp\left(iL_2 {\Delta t}/2\right) \exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right) + \mathcal{O}({{\Delta t}}^3).\end{aligned}
+ :label: eqnNHTrotter3
For half-step-averaged temperature control using *md-vv-avek*, this
decomposition will not work, since we do not have the full step
:eq:`Eq. %s <eqhalfstepNHCintegrator>` just before the
:math:`\exp\left(iL_1 {\Delta t}\right)` term, yielding:
-.. math::
-
- \begin{aligned}
- \exp(iL{\Delta t}) &=& \exp\left(iL_1 {\Delta t}\right) \exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right) \nonumber \\
- &&\exp\left(iL_2 {\Delta t}\right) \exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right) + \mathcal{O}({{\Delta t}}^3)\end{aligned}
+.. math:: \begin{aligned}
+ \exp(iL{\Delta t}) &=& \exp\left(iL_1 {\Delta t}\right) \exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right) \nonumber \\
+ &&\exp\left(iL_2 {\Delta t}\right) \exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right) + \mathcal{O}({{\Delta t}}^3)\end{aligned}
+ :label: eqnNHleapfrog
and then using some algebra tricks to solve for some quantities are
required before they are actually calculated \ :ref:`36 <refHolian95>`.
towards a given reference pressure :math:`{\bf P}_0` according to
.. math:: \frac{{\mbox{d}}{\bf P}}{{\mbox{d}}t} = \frac{{\bf P}_0-{\bf P}}{\tau_p}.
+ :label: eqnberendsenpressure
The scaling matrix :math:`\mu` is given by
.. math:: \mu_{ij}
- = \delta_{ij} - \frac{n_\mathrm{PC}\Delta t}{3\, \tau_p} \beta_{ij} \{P_{0ij} - P_{ij}(t) \}.
- :label: eqnmu
+ = \delta_{ij} - \frac{n_\mathrm{PC}\Delta t}{3\, \tau_p} \beta_{ij} \{P_{0ij} - P_{ij}(t) \}.
+ :label: eqnmu
Here, :math:`\beta` is the isothermal compressibility of the system. In
most cases this will be a diagonal matrix, with equal elements on the
scaling, which is usually less than :math:`10^{-4}`. The actual scaling
matrix :math:`\mu'` is
-.. math::
-
- \mathbf{\mu'} =
- \left(\begin{array}{ccc}
- \mu_{xx} & \mu_{xy} + \mu_{yx} & \mu_{xz} + \mu_{zx} \\
- 0 & \mu_{yy} & \mu_{yz} + \mu_{zy} \\
- 0 & 0 & \mu_{zz}
- \end{array}\right).
+.. math:: \mathbf{\mu'} =
+ \left(\begin{array}{ccc}
+ \mu_{xx} & \mu_{xy} + \mu_{yx} & \mu_{xz} + \mu_{zx} \\
+ 0 & \mu_{yy} & \mu_{yz} + \mu_{zy} \\
+ 0 & 0 & \mu_{zz}
+ \end{array}\right).
+ :label: eqnberendsenpressurescaling
The velocities are neither scaled nor rotated. Since the equations of
motion are modified by pressure coupling, the conserved energy quantity
the barostat applies to the system every step needs to be subtracted
from the total energy to obtain the conserved energy quantity:
-.. math::
-
- - \sum_{i,j} (\mu_{ij} -\delta_{ij}) P_{ij} V =
- \sum_{i,j} 2(\mu_{ij} -\delta_{ij}) \Xi_{ij}
+.. math:: - \sum_{i,j} (\mu_{ij} -\delta_{ij}) P_{ij} V =
+ \sum_{i,j} 2(\mu_{ij} -\delta_{ij}) \Xi_{ij}
+ :label: eqnberendsenpressureconserved
where :math:`\delta_{ij}` is the Kronecker delta and :math:`{\bf \Xi}`
is the virial. Note that the factor 2 originates from the factor
obey the matrix equation of motion [2]_
.. math:: \frac{{\mbox{d}}\mathbf{b}^2}{{\mbox{d}}t^2}= V \mathbf{W}^{-1} \mathbf{b}'^{-1} \left( \mathbf{P} - \mathbf{P}_{ref}\right).
+ :label: eqnPRpressure
The volume of the box is denoted :math:`V`, and
:math:`\mathbf{W}` is a matrix parameter that determines
it simple we only show the Parrinello-Rahman modification here. The
modified Hamiltonian, which will be conserved, is:
-.. math::
-
- E_\mathrm{pot} + E_\mathrm{kin} + \sum_i P_{ii} V +
- \sum_{i,j} \frac{1}{2} W_{ij} \left( \frac{{\mbox{d}}b_{ij}}{{\mbox{d}}t} \right)^2
+.. math:: E_\mathrm{pot} + E_\mathrm{kin} + \sum_i P_{ii} V +
+ \sum_{i,j} \frac{1}{2} W_{ij} \left( \frac{{\mbox{d}}b_{ij}}{{\mbox{d}}t} \right)^2
+ :label: eqnPRpressureconserved
The equations of motion for the atoms, obtained from the Hamiltonian
are:
-.. math::
-
- \begin{aligned}
- \frac {{\mbox{d}}^2\mathbf{r}_i}{{\mbox{d}}t^2} & = & \frac{\mathbf{F}_i}{m_i} -
- \mathbf{M} \frac{{\mbox{d}}\mathbf{r}_i}{{\mbox{d}}t} , \\ \mathbf{M} & = & \mathbf{b}^{-1} \left[
- \mathbf{b} \frac{{\mbox{d}}\mathbf{b}'}{{\mbox{d}}t} + \frac{{\mbox{d}}\mathbf{b}}{{\mbox{d}}t} \mathbf{b}'
- \right] \mathbf{b}'^{-1}.
- \end{aligned}
+.. math:: \begin{aligned}
+ \frac {{\mbox{d}}^2\mathbf{r}_i}{{\mbox{d}}t^2} & = & \frac{\mathbf{F}_i}{m_i} -
+ \mathbf{M} \frac{{\mbox{d}}\mathbf{r}_i}{{\mbox{d}}t} , \\ \mathbf{M} & = & \mathbf{b}^{-1} \left[
+ \mathbf{b} \frac{{\mbox{d}}\mathbf{b}'}{{\mbox{d}}t} + \frac{{\mbox{d}}\mathbf{b}}{{\mbox{d}}t} \mathbf{b}'
+ \right] \mathbf{b}'^{-1}.
+ \end{aligned}
+ :label: eqnPRpressuremotion
This extra term has the appearance of a friction, but it should be
noted that it is ficticious, and rather an effect of the
time constant :math:`\tau_p` in the input file (:math:`L` is the largest
box matrix element):
-.. math::
-
- \left(
- \mathbf{W}^{-1} \right)_{ij} = \frac{4 \pi^2 \beta_{ij}}{3 \tau_p^2 L}.
+.. math:: \left(
+ \mathbf{W}^{-1} \right)_{ij} = \frac{4 \pi^2 \beta_{ij}}{3 \tau_p^2 L}.
+ :label: eqnPRpressuretimeconst
Just as for the Nosé-Hoover thermostat, you should realize that the
Parrinello-Rahman time constant is *not* equivalent to the relaxation
be calculated from the difference between the normal and the lateral
pressure
-.. math::
-
- \begin{aligned}
- \gamma(t) & = &
- \frac{1}{n} \int_0^{L_z}
- \left\{ P_{zz}(z,t) - \frac{P_{xx}(z,t) + P_{yy}(z,t)}{2} \right\} \mbox{d}z \\
- & = &
- \frac{L_z}{n} \left\{ P_{zz}(t) - \frac{P_{xx}(t) + P_{yy}(t)}{2} \right\},\end{aligned}
+.. math:: \begin{aligned}
+ \gamma(t) & = &
+ \frac{1}{n} \int_0^{L_z}
+ \left\{ P_{zz}(z,t) - \frac{P_{xx}(z,t) + P_{yy}(z,t)}{2} \right\} \mbox{d}z \\
+ & = &
+ \frac{L_z}{n} \left\{ P_{zz}(t) - \frac{P_{xx}(t) + P_{yy}(t)}{2} \right\},\end{aligned}
+ :label: eqnsurftenscoupl
where :math:`L_z` is the height of the box and :math:`n` is the number
of surfaces. The pressure in the z-direction is corrected by scaling the
height of the box with :math:`\mu_{zz}`
.. math:: \Delta P_{zz} = \frac{\Delta t}{\tau_p} \{ P_{0zz} - P_{zz}(t) \}
+ :label: eqnzpressure
.. math:: \mu_{zz} = 1 + \beta_{zz} \Delta P_{zz}
+ :label: eqnzpressure2
This is similar to normal pressure coupling, except that the factor of
:math:`1/3` is missing. The pressure correction in the
surface tension to the reference value :math:`\gamma_0`. The correction
factor for the box length in the :math:`x`/:math:`y`-direction is
-.. math::
-
- \mu_{x/y} = 1 + \frac{\Delta t}{2\,\tau_p} \beta_{x/y}
- \left( \frac{n \gamma_0}{\mu_{zz} L_z}
- - \left\{ P_{zz}(t)+\Delta P_{zz} - \frac{P_{xx}(t) + P_{yy}(t)}{2} \right\}
- \right)
+.. math:: \mu_{x/y} = 1 + \frac{\Delta t}{2\,\tau_p} \beta_{x/y}
+ \left( \frac{n \gamma_0}{\mu_{zz} L_z}
+ - \left\{ P_{zz}(t)+\Delta P_{zz} - \frac{P_{xx}(t) + P_{yy}(t)}{2} \right\}
+ \right)
+ :label: eqnboxlengthcorr
The value of :math:`\beta_{zz}` is more critical than with normal
pressure coupling. Normally an incorrect compressibility will just scale
The isobaric equations are
-.. math::
-
- \begin{aligned}
- \dot{{{\mathbf{r}}}}_i &=& \frac{{{\mathbf{p}}}_i}{m_i} + \frac{{p_{\epsilon}}}{W} {{\mathbf{r}}}_i \nonumber \\
- \frac{\dot{{{\mathbf{p}}}}_i}{m_i} &=& \frac{1}{m_i}{{\mathbf{F}}}_i - \alpha\frac{{p_{\epsilon}}}{W} \frac{{{\mathbf{p}}}_i}{m_i} \nonumber \\
- \dot{\epsilon} &=& \frac{{p_{\epsilon}}}{W} \nonumber \\
- \frac{\dot{{p_{\epsilon}}}}{W} &=& \frac{3V}{W}(P_{\mathrm{int}} - P) + (\alpha-1)\left(\sum_{n=1}^N\frac{{{\mathbf{p}}}_i^2}{m_i}\right),\\\end{aligned}
+.. math:: \begin{aligned}
+ \dot{{{\mathbf{r}}}}_i &=& \frac{{{\mathbf{p}}}_i}{m_i} + \frac{{p_{\epsilon}}}{W} {{\mathbf{r}}}_i \nonumber \\
+ \frac{\dot{{{\mathbf{p}}}}_i}{m_i} &=& \frac{1}{m_i}{{\mathbf{F}}}_i - \alpha\frac{{p_{\epsilon}}}{W} \frac{{{\mathbf{p}}}_i}{m_i} \nonumber \\
+ \dot{\epsilon} &=& \frac{{p_{\epsilon}}}{W} \nonumber \\
+ \frac{\dot{{p_{\epsilon}}}}{W} &=& \frac{3V}{W}(P_{\mathrm{int}} - P) + (\alpha-1)\left(\sum_{n=1}^N\frac{{{\mathbf{p}}}_i^2}{m_i}\right),\\\end{aligned}
+ :label: eqnMTTKisobaric
where
-.. math::
-
- \begin{aligned}
- P_{\mathrm{int}} &=& P_{\mathrm{kin}} -P_{\mathrm{vir}} = \frac{1}{3V}\left[\sum_{i=1}^N \left(\frac{{{\mathbf{p}}}_i^2}{2m_i} - {{\mathbf{r}}}_i \cdot {{\mathbf{F}}}_i\
- \right)\right].\end{aligned}
+.. math:: \begin{aligned}
+ P_{\mathrm{int}} &=& P_{\mathrm{kin}} -P_{\mathrm{vir}} = \frac{1}{3V}\left[\sum_{i=1}^N \left(\frac{{{\mathbf{p}}}_i^2}{2m_i} - {{\mathbf{r}}}_i \cdot {{\mathbf{F}}}_i\
+ \right)\right].\end{aligned}
+ :label: eqnMTTKisobaric2
The terms including :math:`\alpha` are required to make phase space
incompressible \ :ref:`41 <refTuckerman2006>`. The :math:`\epsilon`
acceleration term can be rewritten as
-.. math::
-
- \begin{aligned}
- \frac{\dot{{p_{\epsilon}}}}{W} &=& \frac{3V}{W}\left(\alpha P_{\mathrm{kin}} - P_{\mathrm{vir}} - P\right)\end{aligned}
+.. math:: \begin{aligned}
+ \frac{\dot{{p_{\epsilon}}}}{W} &=& \frac{3V}{W}\left(\alpha P_{\mathrm{kin}} - P_{\mathrm{vir}} - P\right)\end{aligned}
+ :label: eqnMTTKaccel
In terms of velocities, these equations become
-.. math::
-
- \begin{aligned}
- \dot{{{\mathbf{r}}}}_i &=& {{\mathbf{v}}}_i + {v_{\epsilon}}{{\mathbf{r}}}_i \nonumber \\
- \dot{{{\mathbf{v}}}}_i &=& \frac{1}{m_i}{{\mathbf{F}}}_i - \alpha{v_{\epsilon}}{{\mathbf{v}}}_i \nonumber \\
- \dot{\epsilon} &=& {v_{\epsilon}}\nonumber \\
- \dot{{v_{\epsilon}}} &=& \frac{3V}{W}(P_{\mathrm{int}} - P) + (\alpha-1)\left( \sum_{n=1}^N \frac{1}{2} m_i {{\mathbf{v}}}_i^2\right)\nonumber \\
- P_{\mathrm{int}} &=& P_{\mathrm{kin}} - P_{\mathrm{vir}} = \frac{1}{3V}\left[\sum_{i=1}^N \left(\frac{1}{2} m_i{{\mathbf{v}}}_i^2 - {{\mathbf{r}}}_i \cdot {{\mathbf{F}}}_i\right)\right]\end{aligned}
+.. math:: \begin{aligned}
+ \dot{{{\mathbf{r}}}}_i &=& {{\mathbf{v}}}_i + {v_{\epsilon}}{{\mathbf{r}}}_i \nonumber \\
+ \dot{{{\mathbf{v}}}}_i &=& \frac{1}{m_i}{{\mathbf{F}}}_i - \alpha{v_{\epsilon}}{{\mathbf{v}}}_i \nonumber \\
+ \dot{\epsilon} &=& {v_{\epsilon}}\nonumber \\
+ \dot{{v_{\epsilon}}} &=& \frac{3V}{W}(P_{\mathrm{int}} - P) + (\alpha-1)\left( \sum_{n=1}^N \frac{1}{2} m_i {{\mathbf{v}}}_i^2\right)\nonumber \\
+ P_{\mathrm{int}} &=& P_{\mathrm{kin}} - P_{\mathrm{vir}} = \frac{1}{3V}\left[\sum_{i=1}^N \left(\frac{1}{2} m_i{{\mathbf{v}}}_i^2 - {{\mathbf{r}}}_i \cdot {{\mathbf{F}}}_i\right)\right]\end{aligned}
+ :label: eqnMTTKvel
For these equations, the conserved quantity is
-.. math::
-
- \begin{aligned}
- H = \sum_{i=1}^{N} \frac{{{\mathbf{p}}}_i^2}{2m_i} + U\left({{\mathbf{r}}}_1,{{\mathbf{r}}}_2,\ldots,{{\mathbf{r}}}_N\right) + \frac{p_\epsilon}{2W} + PV\end{aligned}
+.. math:: \begin{aligned}
+ H = \sum_{i=1}^{N} \frac{{{\mathbf{p}}}_i^2}{2m_i} + U\left({{\mathbf{r}}}_1,{{\mathbf{r}}}_2,\ldots,{{\mathbf{r}}}_N\right) + \frac{p_\epsilon}{2W} + PV\end{aligned}
+ :label: eqnMTTKconserved
The next step is to add temperature control. Adding Nosé-Hoover chains,
including to the barostat degree of freedom, where we use :math:`\eta`
for the barostat Nosé-Hoover variables, and :math:`Q^{\prime}` for the
coupling constants of the thermostats of the barostats, we get
-.. math::
-
- \begin{aligned}
- \dot{{{\mathbf{r}}}}_i &=& \frac{{{\mathbf{p}}}_i}{m_i} + \frac{{p_{\epsilon}}}{W} {{\mathbf{r}}}_i \nonumber \\
- \frac{\dot{{{\mathbf{p}}}}_i}{m_i} &=& \frac{1}{m_i}{{\mathbf{F}}}_i - \alpha\frac{{p_{\epsilon}}}{W} \frac{{{\mathbf{p}}}_i}{m_i} - \frac{p_{\xi_1}}{Q_1}\frac{{{\mathbf{p}}}_i}{m_i}\nonumber \\
- \dot{\epsilon} &=& \frac{{p_{\epsilon}}}{W} \nonumber \\
- \frac{\dot{{p_{\epsilon}}}}{W} &=& \frac{3V}{W}(\alpha P_{\mathrm{kin}} - P_{\mathrm{vir}} - P) -\frac{p_{\eta_1}}{Q^{\prime}_1}{p_{\epsilon}}\nonumber \\
- \dot{\xi}_k &=& \frac{p_{\xi_k}}{Q_k} \nonumber \\
- \dot{\eta}_k &=& \frac{p_{\eta_k}}{Q^{\prime}_k} \nonumber \\
- \dot{p}_{\xi_k} &=& G_k - \frac{p_{\xi_{k+1}}}{Q_{k+1}} \;\;\;\; k=1,\ldots, M-1 \nonumber \\
- \dot{p}_{\eta_k} &=& G^\prime_k - \frac{p_{\eta_{k+1}}}{Q^\prime_{k+1}} \;\;\;\; k=1,\ldots, M-1 \nonumber \\
- \dot{p}_{\xi_M} &=& G_M \nonumber \\
- \dot{p}_{\eta_M} &=& G^\prime_M, \nonumber \\\end{aligned}
+.. math:: \begin{aligned}
+ \dot{{{\mathbf{r}}}}_i &=& \frac{{{\mathbf{p}}}_i}{m_i} + \frac{{p_{\epsilon}}}{W} {{\mathbf{r}}}_i \nonumber \\
+ \frac{\dot{{{\mathbf{p}}}}_i}{m_i} &=& \frac{1}{m_i}{{\mathbf{F}}}_i - \alpha\frac{{p_{\epsilon}}}{W} \frac{{{\mathbf{p}}}_i}{m_i} - \frac{p_{\xi_1}}{Q_1}\frac{{{\mathbf{p}}}_i}{m_i}\nonumber \\
+ \dot{\epsilon} &=& \frac{{p_{\epsilon}}}{W} \nonumber \\
+ \frac{\dot{{p_{\epsilon}}}}{W} &=& \frac{3V}{W}(\alpha P_{\mathrm{kin}} - P_{\mathrm{vir}} - P) -\frac{p_{\eta_1}}{Q^{\prime}_1}{p_{\epsilon}}\nonumber \\
+ \dot{\xi}_k &=& \frac{p_{\xi_k}}{Q_k} \nonumber \\
+ \dot{\eta}_k &=& \frac{p_{\eta_k}}{Q^{\prime}_k} \nonumber \\
+ \dot{p}_{\xi_k} &=& G_k - \frac{p_{\xi_{k+1}}}{Q_{k+1}} \;\;\;\; k=1,\ldots, M-1 \nonumber \\
+ \dot{p}_{\eta_k} &=& G^\prime_k - \frac{p_{\eta_{k+1}}}{Q^\prime_{k+1}} \;\;\;\; k=1,\ldots, M-1 \nonumber \\
+ \dot{p}_{\xi_M} &=& G_M \nonumber \\
+ \dot{p}_{\eta_M} &=& G^\prime_M, \nonumber \\\end{aligned}
+ :label: eqnMTTKthermandbar
where
-.. math::
-
- \begin{aligned}
- P_{\mathrm{int}} &=& P_{\mathrm{kin}} - P_{\mathrm{vir}} = \frac{1}{3V}\left[\sum_{i=1}^N \left(\frac{{{\mathbf{p}}}_i^2}{2m_i} - {{\mathbf{r}}}_i \cdot {{\mathbf{F}}}_i\right)\right] \nonumber \\
- G_1 &=& \sum_{i=1}^N \frac{{{\mathbf{p}}}^2_i}{m_i} - N_f kT \nonumber \\
- G_k &=& \frac{p^2_{\xi_{k-1}}}{2Q_{k-1}} - kT \;\; k = 2,\ldots,M \nonumber \\
- G^\prime_1 &=& \frac{{p_{\epsilon}}^2}{2W} - kT \nonumber \\
- G^\prime_k &=& \frac{p^2_{\eta_{k-1}}}{2Q^\prime_{k-1}} - kT \;\; k = 2,\ldots,M\end{aligned}
+.. math:: \begin{aligned}
+ P_{\mathrm{int}} &=& P_{\mathrm{kin}} - P_{\mathrm{vir}} = \frac{1}{3V}\left[\sum_{i=1}^N \left(\frac{{{\mathbf{p}}}_i^2}{2m_i} - {{\mathbf{r}}}_i \cdot {{\mathbf{F}}}_i\right)\right] \nonumber \\
+ G_1 &=& \sum_{i=1}^N \frac{{{\mathbf{p}}}^2_i}{m_i} - N_f kT \nonumber \\
+ G_k &=& \frac{p^2_{\xi_{k-1}}}{2Q_{k-1}} - kT \;\; k = 2,\ldots,M \nonumber \\
+ G^\prime_1 &=& \frac{{p_{\epsilon}}^2}{2W} - kT \nonumber \\
+ G^\prime_k &=& \frac{p^2_{\eta_{k-1}}}{2Q^\prime_{k-1}} - kT \;\; k = 2,\ldots,M\end{aligned}
+ :label: eqnMTTKthermandbar2
The conserved quantity is now
-.. math::
-
- \begin{aligned}
- H = \sum_{i=1}^{N} \frac{{{\mathbf{p}}}_i}{2m_i} + U\left({{\mathbf{r}}}_1,{{\mathbf{r}}}_2,\ldots,{{\mathbf{r}}}_N\right) + \frac{p^2_\epsilon}{2W} + PV + \nonumber \\
- \sum_{k=1}^M\frac{p^2_{\xi_k}}{2Q_k} +\sum_{k=1}^M\frac{p^2_{\eta_k}}{2Q^{\prime}_k} + N_fkT\xi_1 + kT\sum_{i=2}^M \xi_k + kT\sum_{k=1}^M \eta_k\end{aligned}
+.. math:: \begin{aligned}
+ H = \sum_{i=1}^{N} \frac{{{\mathbf{p}}}_i}{2m_i} + U\left({{\mathbf{r}}}_1,{{\mathbf{r}}}_2,\ldots,{{\mathbf{r}}}_N\right) + \frac{p^2_\epsilon}{2W} + PV + \nonumber \\
+ \sum_{k=1}^M\frac{p^2_{\xi_k}}{2Q_k} +\sum_{k=1}^M\frac{p^2_{\eta_k}}{2Q^{\prime}_k} + N_fkT\xi_1 + kT\sum_{i=2}^M \xi_k + kT\sum_{k=1}^M \eta_k\end{aligned}
+ :label: eqnMTTKthermandbarconserved
Returning to the Trotter decomposition formalism, for pressure control
and temperature control \ :ref:`35 <refMartyna1996>` we get:
-.. math::
-
- \begin{aligned}
- iL = iL_1 + iL_2 + iL_{\epsilon,1} + iL_{\epsilon,2} + iL_{\mathrm{NHC-baro}} + iL_{\mathrm{NHC}}\end{aligned}
+.. math:: \begin{aligned}
+ iL = iL_1 + iL_2 + iL_{\epsilon,1} + iL_{\epsilon,2} + iL_{\mathrm{NHC-baro}} + iL_{\mathrm{NHC}}\end{aligned}
+ :label: eqnMTTKthermandbarTrotter
where “NHC-baro” corresponds to the Nosè-Hoover chain of the barostat,
and NHC corresponds to the NHC of the particles,
-.. math::
-
- \begin{aligned}
- iL_1 &=& \sum_{i=1}^N \left[\frac{{{\mathbf{p}}}_i}{m_i} + \frac{{p_{\epsilon}}}{W}{{\mathbf{r}}}_i\right]\cdot \frac{\partial}{\partial {{\mathbf{r}}}_i} \\
- iL_2 &=& \sum_{i=1}^N {{\mathbf{F}}}_i - \alpha \frac{{p_{\epsilon}}}{W}{{\mathbf{p}}}_i \cdot \frac{\partial}{\partial {{\mathbf{p}}}_i} \\
- iL_{\epsilon,1} &=& \frac{p_\epsilon}{W} \frac{\partial}{\partial \epsilon}\\
- iL_{\epsilon,2} &=& G_{\epsilon} \frac{\partial}{\partial p_\epsilon}\end{aligned}
+.. math:: \begin{aligned}
+ iL_1 &=& \sum_{i=1}^N \left[\frac{{{\mathbf{p}}}_i}{m_i} + \frac{{p_{\epsilon}}}{W}{{\mathbf{r}}}_i\right]\cdot \frac{\partial}{\partial {{\mathbf{r}}}_i} \\
+ iL_2 &=& \sum_{i=1}^N {{\mathbf{F}}}_i - \alpha \frac{{p_{\epsilon}}}{W}{{\mathbf{p}}}_i \cdot \frac{\partial}{\partial {{\mathbf{p}}}_i} \\
+ iL_{\epsilon,1} &=& \frac{p_\epsilon}{W} \frac{\partial}{\partial \epsilon}\\
+ iL_{\epsilon,2} &=& G_{\epsilon} \frac{\partial}{\partial p_\epsilon}\end{aligned}
+ :label: eqnMTTKthermandbarTrotter2
and where
-.. math::
-
- \begin{aligned}
- G_{\epsilon} = 3V\left(\alpha P_{\mathrm{kin}} - P_{\mathrm{vir}} - P\right)\end{aligned}
+.. math:: \begin{aligned}
+ G_{\epsilon} = 3V\left(\alpha P_{\mathrm{kin}} - P_{\mathrm{vir}} - P\right)\end{aligned}
+ :label: eqnMTTKthermandbarTrotter3
Using the Trotter decomposition, we get
-.. math::
-
- \begin{aligned}
- \exp(iL{\Delta t}) &=& \exp\left(iL_{\mathrm{NHC-baro}}{\Delta t}/2\right)\exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right) \nonumber \nonumber \\
- &&\exp\left(iL_{\epsilon,2}{\Delta t}/2\right) \exp\left(iL_2 {\Delta t}/2\right) \nonumber \nonumber \\
- &&\exp\left(iL_{\epsilon,1}{\Delta t}\right) \exp\left(iL_1 {\Delta t}\right) \nonumber \nonumber \\
- &&\exp\left(iL_2 {\Delta t}/2\right) \exp\left(iL_{\epsilon,2}{\Delta t}/2\right) \nonumber \nonumber \\
- &&\exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right)\exp\left(iL_{\mathrm{NHC-baro}}{\Delta t}/2\right) + \mathcal{O}({\Delta t}^3)\end{aligned}
+.. math:: \begin{aligned}
+ \exp(iL{\Delta t}) &=& \exp\left(iL_{\mathrm{NHC-baro}}{\Delta t}/2\right)\exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right) \nonumber \nonumber \\
+ &&\exp\left(iL_{\epsilon,2}{\Delta t}/2\right) \exp\left(iL_2 {\Delta t}/2\right) \nonumber \nonumber \\
+ &&\exp\left(iL_{\epsilon,1}{\Delta t}\right) \exp\left(iL_1 {\Delta t}\right) \nonumber \nonumber \\
+ &&\exp\left(iL_2 {\Delta t}/2\right) \exp\left(iL_{\epsilon,2}{\Delta t}/2\right) \nonumber \nonumber \\
+ &&\exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right)\exp\left(iL_{\mathrm{NHC-baro}}{\Delta t}/2\right) + \mathcal{O}({\Delta t}^3)\end{aligned}
+ :label: eqnMTTKthermandbarTrotterdecomp
The action of :math:`\exp\left(iL_1 {\Delta t}\right)` comes from the
solution of the the differential equation
:math:`t=\Delta t`. This yields the evolution
.. math:: {{\mathbf{r}}}_i({\Delta t}) = {{\mathbf{r}}}_i(0)e^{{v_{\epsilon}}{\Delta t}} + \Delta t {{\mathbf{v}}}_i(0) e^{{v_{\epsilon}}{\Delta t}/2} {\frac{\sinh{\left( {v_{\epsilon}}{\Delta t}/2\right)}}{{v_{\epsilon}}{\Delta t}/2}}.
+ :label: eqnMTTKthermandbarTrotterevol
The action of :math:`\exp\left(iL_2 {\Delta t}/2\right)` comes from the
solution of the differential equation
\alpha{v_{\epsilon}}{{\mathbf{v}}}_i`, yielding
.. math:: {{\mathbf{v}}}_i({\Delta t}/2) = {{\mathbf{v}}}_i(0)e^{-\alpha{v_{\epsilon}}{\Delta t}/2} + \frac{\Delta t}{2m_i}{{\mathbf{F}}}_i(0) e^{-\alpha{v_{\epsilon}}{\Delta t}/4}{\frac{\sinh{\left( \alpha{v_{\epsilon}}{\Delta t}/4\right)}}{\alpha{v_{\epsilon}}{\Delta t}/4}}.
+ :label: eqnMTTKthermandbarTrotterevol2
*md-vv-avek* uses the full step kinetic energies for determining the
pressure with the pressure control, but the half-step-averaged kinetic
energy for the temperatures, which can be written as a Trotter
decomposition as
-.. math::
-
- \begin{aligned}
- \exp(iL{\Delta t}) &=& \exp\left(iL_{\mathrm{NHC-baro}}{\Delta t}/2\right)\nonumber \exp\left(iL_{\epsilon,2}{\Delta t}/2\right) \exp\left(iL_2 {\Delta t}/2\right) \nonumber \\
- &&\exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right) \exp\left(iL_{\epsilon,1}{\Delta t}\right) \exp\left(iL_1 {\Delta t}\right) \exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right) \nonumber \\
- &&\exp\left(iL_2 {\Delta t}/2\right) \exp\left(iL_{\epsilon,2}{\Delta t}/2\right) \exp\left(iL_{\mathrm{NHC-baro}}{\Delta t}/2\right) + \mathcal{O}({\Delta t}^3)\end{aligned}
+.. math:: \begin{aligned}
+ \exp(iL{\Delta t}) &=& \exp\left(iL_{\mathrm{NHC-baro}}{\Delta t}/2\right)\nonumber \exp\left(iL_{\epsilon,2}{\Delta t}/2\right) \exp\left(iL_2 {\Delta t}/2\right) \nonumber \\
+ &&\exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right) \exp\left(iL_{\epsilon,1}{\Delta t}\right) \exp\left(iL_1 {\Delta t}\right) \exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right) \nonumber \\
+ &&\exp\left(iL_2 {\Delta t}/2\right) \exp\left(iL_{\epsilon,2}{\Delta t}/2\right) \exp\left(iL_{\mathrm{NHC-baro}}{\Delta t}/2\right) + \mathcal{O}({\Delta t}^3)\end{aligned}
+ :label: eqnvvavekTrotterdecomp
With constraints, the equations become significantly more complicated,
in that each of these equations need to be solved iteratively for the
Standard velocity Verlet with Nosé-Hoover temperature control has a
Trotter expansion
-.. math::
-
- \begin{aligned}
- \exp(iL{\Delta t}) &\approx& \exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right) \exp\left(iL_2 {\Delta t}/2\right) \nonumber \\
- &&\exp\left(iL_1 {\Delta t}\right) \exp\left(iL_2 {\Delta t}/2\right) \exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right).\end{aligned}
+.. math:: \begin{aligned}
+ \exp(iL{\Delta t}) &\approx& \exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right) \exp\left(iL_2 {\Delta t}/2\right) \nonumber \\
+ &&\exp\left(iL_1 {\Delta t}\right) \exp\left(iL_2 {\Delta t}/2\right) \exp\left(iL_{\mathrm{NHC}}{\Delta t}/2\right).\end{aligned}
+ :label:eqnVVNHTrotter
If the Nosé-Hoover chain is sufficiently slow with respect to the
motions of the system, we can write an alternate integrator over
:math:`n` steps for velocity Verlet as
-.. math::
-
- \begin{aligned}
- \exp(iL{\Delta t}) &\approx& (\exp\left(iL_{\mathrm{NHC}}(n{\Delta t}/2)\right)\left[\exp\left(iL_2 {\Delta t}/2\right)\right. \nonumber \\
- &&\left.\exp\left(iL_1 {\Delta t}\right) \exp\left(iL_2 {\Delta t}/2\right)\right]^n \exp\left(iL_{\mathrm{NHC}}(n{\Delta t}/2)\right).\end{aligned}
+.. math:: \begin{aligned}
+ \exp(iL{\Delta t}) &\approx& (\exp\left(iL_{\mathrm{NHC}}(n{\Delta t}/2)\right)\left[\exp\left(iL_2 {\Delta t}/2\right)\right. \nonumber \\
+ &&\left.\exp\left(iL_1 {\Delta t}\right) \exp\left(iL_2 {\Delta t}/2\right)\right]^n \exp\left(iL_{\mathrm{NHC}}(n{\Delta t}/2)\right).\end{aligned}
+ :label: eqnVVNHTrotter2
For pressure control, this becomes
-.. math::
-
- \begin{aligned}
- \exp(iL{\Delta t}) &\approx& \exp\left(iL_{\mathrm{NHC-baro}}(n{\Delta t}/2)\right)\exp\left(iL_{\mathrm{NHC}}(n{\Delta t}/2)\right) \nonumber \nonumber \\
- &&\exp\left(iL_{\epsilon,2}(n{\Delta t}/2)\right) \left[\exp\left(iL_2 {\Delta t}/2\right)\right. \nonumber \nonumber \\
- &&\exp\left(iL_{\epsilon,1}{\Delta t}\right) \exp\left(iL_1 {\Delta t}\right) \nonumber \nonumber \\
- &&\left.\exp\left(iL_2 {\Delta t}/2\right)\right]^n \exp\left(iL_{\epsilon,2}(n{\Delta t}/2)\right) \nonumber \nonumber \\
- &&\exp\left(iL_{\mathrm{NHC}}(n{\Delta t}/2)\right)\exp\left(iL_{\mathrm{NHC-baro}}(n{\Delta t}/2)\right),\end{aligned}
+.. math:: \begin{aligned}
+ \exp(iL{\Delta t}) &\approx& \exp\left(iL_{\mathrm{NHC-baro}}(n{\Delta t}/2)\right)\exp\left(iL_{\mathrm{NHC}}(n{\Delta t}/2)\right) \nonumber \nonumber \\
+ &&\exp\left(iL_{\epsilon,2}(n{\Delta t}/2)\right) \left[\exp\left(iL_2 {\Delta t}/2\right)\right. \nonumber \nonumber \\
+ &&\exp\left(iL_{\epsilon,1}{\Delta t}\right) \exp\left(iL_1 {\Delta t}\right) \nonumber \nonumber \\
+ &&\left.\exp\left(iL_2 {\Delta t}/2\right)\right]^n \exp\left(iL_{\epsilon,2}(n{\Delta t}/2)\right) \nonumber \nonumber \\
+ &&\exp\left(iL_{\mathrm{NHC}}(n{\Delta t}/2)\right)\exp\left(iL_{\mathrm{NHC-baro}}(n{\Delta t}/2)\right),\end{aligned}
+ :label: eqnVVNpressure
where the box volume integration occurs every step, but the auxiliary
variable integrations happen every :math:`n` steps.
algorithm for the velocities becomes
.. math:: \mathbf{v}(t+{\frac{\Delta t}{2}})~=~\mathbf{f}_g * \lambda * \left[ \mathbf{v}(t-{\frac{\Delta t}{2}}) +\frac{\mathbf{F}(t)}{m}\Delta t + \mathbf{a}_h \Delta t \right],
+ :label: eqntotalupdate
where :math:`g` and :math:`h` are group indices which differ per atom.
can be performed using |Gromacs|, by diagonalization of the
mass-weighted Hessian :math:`H`:
-.. math::
-
- \begin{aligned}
- R^T M^{-1/2} H M^{-1/2} R &=& \mbox{diag}(\lambda_1,\ldots,\lambda_{3N})
- \\
- \lambda_i &=& (2 \pi \omega_i)^2\end{aligned}
+.. math:: \begin{aligned}
+ R^T M^{-1/2} H M^{-1/2} R &=& \mbox{diag}(\lambda_1,\ldots,\lambda_{3N})
+ \\
+ \lambda_i &=& (2 \pi \omega_i)^2\end{aligned}
+ :label: eqnNMA
where :math:`M` contains the atomic masses, :math:`R` is a matrix that
contains the eigenvectors as columns, :math:`\lambda_i` are the
First the Hessian matrix, which is a :math:`3N \times 3N` matrix where
:math:`N` is the number of atoms, needs to be calculated:
-.. math::
-
- \begin{aligned}
- H_{ij} &=& \frac{\partial^2 V}{\partial x_i \partial x_j}\end{aligned}
+.. math:: \begin{aligned}
+ H_{ij} &=& \frac{\partial^2 V}{\partial x_i \partial x_j}\end{aligned}
+ :label: eqnNMAhessian
where :math:`x_i` and :math:`x_j` denote the atomic x, y or z
coordinates. In practice, this equation is not used, but the Hessian is
calculated numerically from the force as:
-.. math::
-
- \begin{aligned}
- H_{ij} &=& -
- \frac{f_i({\bf x}+h{\bf e}_j) - f_i({\bf x}-h{\bf e}_j)}{2h}
- \\
- f_i &=& - \frac{\partial V}{\partial x_i}\end{aligned}
+.. math:: \begin{aligned}
+ H_{ij} &=& -
+ \frac{f_i({\bf x}+h{\bf e}_j) - f_i({\bf x}-h{\bf e}_j)}{2h}
+ \\
+ f_i &=& - \frac{\partial V}{\partial x_i}\end{aligned}
+ :label: eqnNMAhessianfromforce
where :math:`{\bf e}_j` is the unit vector in direction :math:`j`. It
should be noted that for a usual normal-mode calculation, it is
limit:
.. math:: L_C \geq \max(r_{\mathrm{mb}},r_{\mathrm{con}})
+ :label: eqnDDmincellsize
Without dynamic load balancing the system is actually allowed to scale
beyond this limit when pressure scaling is used. **Note** that for
temperatures and randomly exchanging the complete state of two replicas
at regular intervals with the probability:
-.. math::
-
- P(1 \leftrightarrow 2)=\min\left(1,\exp\left[
- \left(\frac{1}{k_B T_1} - \frac{1}{k_B T_2}\right)(U_1 - U_2)
- \right] \right)
+.. math:: P(1 \leftrightarrow 2)=\min\left(1,\exp\left[
+ \left(\frac{1}{k_B T_1} - \frac{1}{k_B T_2}\right)(U_1 - U_2)
+ \right] \right)
+ :label: eqnREX
where :math:`T_1` and :math:`T_2` are the reference temperatures and
:math:`U_1` and :math:`U_2` are the instantaneous potential energies of
written as:
.. math:: U_1 - U_2 = N_{df} \frac{c}{2} k_B (T_1 - T_2)
+ :label: eqnREXEdiff
where :math:`N_{df}` is the total number of degrees of freedom of one
replica and :math:`c` is 1 for harmonic potentials and around 2 for
protein/water systems. If :math:`T_2 = (1+\epsilon) T_1` the probability
becomes:
-.. math::
-
- P(1 \leftrightarrow 2)
- = \exp\left( -\frac{\epsilon^2 c\,N_{df}}{2 (1+\epsilon)} \right)
- \approx \exp\left(-\epsilon^2 \frac{c}{2} N_{df} \right)
+.. math:: P(1 \leftrightarrow 2)
+ = \exp\left( -\frac{\epsilon^2 c\,N_{df}}{2 (1+\epsilon)} \right)
+ \approx \exp\left(-\epsilon^2 \frac{c}{2} N_{df} \right)
+ :label: eqnREXprob
Thus for a probability of :math:`e^{-2}\approx 0.135` one obtains
:math:`\epsilon \approx 2/\sqrt{c\,N_{df}}`. With all bonds constrained
proposed by Okabe et al. :ref:`63 <refOkabe2001a>`. In this work the
exchange probability is modified to:
-.. math::
-
- P(1 \leftrightarrow 2)=\min\left(1,\exp\left[
- \left(\frac{1}{k_B T_1} - \frac{1}{k_B T_2}\right)(U_1 - U_2) +
- \left(\frac{P_1}{k_B T_1} - \frac{P_2}{k_B T_2}\right)\left(V_1-V_2\right)
- \right] \right)
+.. math:: P(1 \leftrightarrow 2)=\min\left(1,\exp\left[
+ \left(\frac{1}{k_B T_1} - \frac{1}{k_B T_2}\right)(U_1 - U_2) +
+ \left(\frac{P_1}{k_B T_1} - \frac{P_2}{k_B T_2}\right)\left(V_1-V_2\right)
+ \right] \right)
+ :label: eqnREXexchangeprob
where :math:`P_1` and :math:`P_2` are the respective reference
pressures and :math:`V_1` and :math:`V_2` are the respective
defined by the free energy pathway specified for the simulation. The
exchange probability to maintain the correct ensemble probabilities is:
-.. math::
-
- P(1 \leftrightarrow 2)=\min\left(1,\exp\left[
- \left(\frac{1}{k_B T} - \frac{1}{k_B T}\right)((U_1(x_2) - U_1(x_1)) + (U_2(x_1) - U_2(x_2)))
- \right]
- \right)
+.. math:: P(1 \leftrightarrow 2)=\min\left(1,\exp\left[
+ \left(\frac{1}{k_B T} - \frac{1}{k_B T}\right)((U_1(x_2) - U_1(x_1)) + (U_2(x_1) - U_2(x_2)))
+ \right]\right)
+ :label: eqnREXcorrectensemble
The separate Hamiltonians are defined by the free energy functionality
of |Gromacs|, with swaps made between the different values of
Hamiltonian and temperature replica exchange can also be performed
simultaneously, using the acceptance criteria:
-.. math::
-
- P(1 \leftrightarrow 2)=\min\left(1,\exp\left[
- \left(\frac{1}{k_B T} - \right)(\frac{U_1(x_2) - U_1(x_1)}{k_B T_1} + \frac{U_2(x_1) - U_2(x_2)}{k_B T_2})
- \right] \right)
+.. math:: P(1 \leftrightarrow 2)=\min\left(1,\exp\left[
+ \left(\frac{1}{k_B T} - \right)(\frac{U_1(x_2) - U_1(x_1)}{k_B T_1} + \frac{U_2(x_1) - U_2(x_2)}{k_B T_2})
+ \right] \right)
+ :label: eqnREXacceptance
Gibbs sampling replica exchange has also been implemented in
|Gromacs| :ref:`64 <refChodera2011>`. In Gibbs sampling replica exchange,
Optimization of the shell positions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-The force
-:math:`\mathbf{F}`\ :math:`_S` on a shell
+The force :math:`\mathbf{F}`\ :math:`_S` on a shell
particle :math:`S` can be decomposed into two components
.. math:: \mathbf{F}_S ~=~ \mathbf{F}_{bond} + \mathbf{F}_{nb}
+ :label: eqnshellforcedecomp
-where
-:math:`\mathbf{F}_{bond}` denotes the
+where :math:`\mathbf{F}_{bond}` denotes the
component representing the polarization energy, usually represented by a
-harmonic potential and
-:math:`\mathbf{F}_{nb}` is the sum of Coulomb
+harmonic potential and :math:`\mathbf{F}_{nb}` is the sum of Coulomb
and van der Waals interactions. If we assume that
:math:`\mathbf{F}_{nb}` is almost constant we
can analytically derive the optimal position of the shell, i.e. where
-:math:`\mathbf{F}_S` = 0. If we have the
-shell S connected to atom A we have
+:math:`\mathbf{F}_S` = 0. If we have the shell S connected to atom A we have
.. math:: \mathbf{F}_{bond} ~=~ k_b \left( \mathbf{x}_S - \mathbf{x}_A\right).
+ :label: eqnshell
-In an iterative solver, we have positions
-:math:`\mathbf{x}_S(n)` where :math:`n` is
+In an iterative solver, we have positions :math:`\mathbf{x}_S(n)` where :math:`n` is
the iteration count. We now have at iteration :math:`n`
.. math:: \mathbf{F}_{nb} ~=~ \mathbf{F}_S - k_b \left( \mathbf{x}_S(n) - \mathbf{x}_A\right)
+ :label: eqnshellsolv
-and the optimal position for the shells :math:`x_S(n+1)` thus follows
-from
+and the optimal position for the shells :math:`x_S(n+1)` thus follows from
.. math:: \mathbf{F}_S - k_b \left( \mathbf{x}_S(n) - \mathbf{x}_A\right) + k_b \left( \mathbf{x}_S(n+1) - \mathbf{x}_A\right) = 0
+ :label: eqnshelloptpos
if we write
.. math:: \Delta \mathbf{x}_S = \mathbf{x}_S(n+1) - \mathbf{x}_S(n)
+ :label: eqnshelloptpos2
we finally obtain
.. math:: \Delta \mathbf{x}_S = \mathbf{F}_S/k_b
+ :label: eqnshelloptpos3
which then yields the algorithm to compute the next trial in the
optimization of shell positions
.. math:: \mathbf{x}_S(n+1) ~=~ \mathbf{x}_S(n) + \mathbf{F}_S/k_b.
+ :label: eqnshelloptpos4
+
.. _fig-sgangle:
.. figure:: plots/sgangle.*
- :width: 3.50000cm
+ :width: 10.00000cm
Angle options of :ref:`gmx gangle <gmx gangle>`: A. Angle between two
vectors. B. Angle between two planes. C. Angle between a vector and the
:math:`g(t)`:
.. math:: C_{fg}(t) ~=~ \left\langle f(\xi) g(\xi+t)\right\rangle_{\xi}
+ :label: eqncrosscorr
however, in |Gromacs| there is no standard mechanism to do this
(**note:** you can use the ``xmgr`` program to compute cross correlations).
points with the same statistical accuracy:
.. math:: C_f(j\Delta t) ~=~ \frac{1}{M}\sum_{i=0}^{N-1-M} f(i\Delta t)f((i+j)\Delta t)
+ :label: eqncorrstataccuracy
Here of course :math:`j < M`. :math:`M` is sometimes referred to as the
time lag of the correlation function. When we decide to do this, we
spacing of :math:`M\Delta t` (where :math:`kM \leq N`):
.. math:: C_f(j\Delta t) ~=~ \frac{1}{k}\sum_{i=0}^{k-1} f(iM\Delta t)f((iM+j)\Delta t)
+ :label: eqncorrblockaveraging
However, one needs very long simulations to get good accuracy this way,
because there are many fewer points that contribute to the ACF.
calculates the *velocity autocorrelation function*.
.. math:: C_{\mathbf{v}} (\tau) ~=~ \langle {\mathbf{v}}_i(\tau) \cdot {\mathbf{v}}_i(0) \rangle_{i \in A}
+ :label: eqnvelocityautocorr
The self diffusion coefficient can be calculated using the Green-Kubo
relation \ :ref:`108 <refAllen87>`:
.. math:: D_A ~=~ {1\over 3} \int_0^{\infty} \langle {\bf v}_i(t) \cdot {\bf v}_i(0) \rangle_{i \in A} \; dt
+ :label: eqndiffcoeff
which is just the integral of the velocity autocorrelation function.
There is a widely-held belief that the velocity ACF converges faster
correlation function* for particles of type :math:`A` is calculated as
follows by :ref:`gmx dipoles <gmx dipoles>`:
-.. math::
-
- C_{\mu} (\tau) ~=~
- \langle {\bf \mu}_i(\tau) \cdot {\bf \mu}_i(0) \rangle_{i \in A}
+.. math:: C_{\mu} (\tau) ~=~
+ \langle {\bf \mu}_i(\tau) \cdot {\bf \mu}_i(0) \rangle_{i \in A}
+ :label: eqndipolecorrfunc
with :math:`{\bf \mu}_i = \sum_{j \in i} {\bf r}_j q_j`. The dipole
correlation time can be computed using :eq:`eqn. %s <eqncorrtime>`.
correlated motions. It uses the covariance matrix :math:`C` of the
atomic coordinates:
-.. math::
-
- C_{ij} = \left \langle
- M_{ii}^{\frac{1}{2}} (x_i - \langle x_i \rangle)
- M_{jj}^{\frac{1}{2}} (x_j - \langle x_j \rangle)
- \right \rangle
+.. math:: C_{ij} = \left \langle
+ M_{ii}^{\frac{1}{2}} (x_i - \langle x_i \rangle)
+ M_{jj}^{\frac{1}{2}} (x_j - \langle x_j \rangle)
+ \right \rangle
+ :label: eqncovmatrixcoord
where :math:`M` is a diagonal matrix containing the masses of the atoms
(mass-weighted analysis) or the unit matrix (non-mass weighted
analysis). :math:`C` is a symmetric :math:`3N \times 3N` matrix, which
can be diagonalized with an orthonormal transformation matrix :math:`R`:
-.. math::
-
- R^T C R = \mbox{diag}(\lambda_1,\lambda_2,\ldots,\lambda_{3N})
- ~~~~\mbox{where}~~\lambda_1 \geq \lambda_2 \geq \ldots \geq \lambda_{3N}
+.. math:: R^T C R = \mbox{diag}(\lambda_1,\lambda_2,\ldots,\lambda_{3N})
+ ~~~~\mbox{where}~~\lambda_1 \geq \lambda_2 \geq \ldots \geq \lambda_{3N}
+ :label: eqnorthnormtransformmatrix
The columns of :math:`R` are the eigenvectors, also called principal or
essential modes. :math:`R` defines a transformation to a new coordinate
the principal components :math:`p_i(t)`:
.. math:: {\bf p}(t) = R^T M^{\frac{1}{2}} ({\bf x}(t) - \langle {\bf x} \rangle)
+ :label: eqnprinccomponents
The eigenvalue :math:`\lambda_i` is the mean square fluctuation of
principal component :math:`i`. The first few principal modes often
filtered along one (or more) principal modes. For one principal mode
:math:`i` this goes as follows:
-.. math::
-
- {\bf x}^f(t) =
- \langle {\bf x} \rangle + M^{-\frac{1}{2}} R_{ * i} \, p_i(t)
+.. math:: {\bf x}^f(t) =
+ \langle {\bf x} \rangle + M^{-\frac{1}{2}} R_{ * i} \, p_i(t)
+ :label: eqnprincmodei
When the analysis is performed on a macromolecule, one often wants to
remove the overall rotation and translation to look at the internal
diagonally-dominant matrix :math:`A` of size :math:`3N \times 3N` the
square root can be calculated as:
-.. math::
-
- A^\frac{1}{2} =
- R \, \mbox{diag}(\lambda_1^\frac{1}{2},\lambda_2^\frac{1}{2},\ldots,\lambda_{3N}^\frac{1}{2}) \, R^T
+.. math:: A^\frac{1}{2} =
+ R \, \mbox{diag}(\lambda_1^\frac{1}{2},\lambda_2^\frac{1}{2},\ldots,\lambda_{3N}^\frac{1}{2}) \, R^T
+ :label: eqnmatrixsquareroot
It can be verified easily that the product of this matrix with itself
gives :math:`A`. Now we can define a difference :math:`d` between
covariance matrices :math:`A` and :math:`B` as follows:
-.. math::
-
- \begin{aligned}
- d(A,B) & = & \sqrt{\mbox{tr}\left(\left(A^\frac{1}{2} - B^\frac{1}{2}\right)^2\right)
- }
- \\ & = &
- \sqrt{\mbox{tr}\left(A + B - 2 A^\frac{1}{2} B^\frac{1}{2}\right)}
- \\ & = &
- \left( \sum_{i=1}^N \left( \lambda_i^A + \lambda_i^B \right)
- - 2 \sum_{i=1}^N \sum_{j=1}^N \sqrt{\lambda_i^A \lambda_j^B}
- \left(R_i^A \cdot R_j^B\right)^2 \right)^\frac{1}{2}\end{aligned}
+.. math:: \begin{aligned}
+ d(A,B) & = & \sqrt{\mbox{tr}\left(\left(A^\frac{1}{2} - B^\frac{1}{2}\right)^2\right)
+ }
+ \\ & = &
+ \sqrt{\mbox{tr}\left(A + B - 2 A^\frac{1}{2} B^\frac{1}{2}\right)}
+ \\ & = &
+ \left( \sum_{i=1}^N \left( \lambda_i^A + \lambda_i^B \right)
+ - 2 \sum_{i=1}^N \sum_{j=1}^N \sqrt{\lambda_i^A \lambda_j^B}
+ \left(R_i^A \cdot R_j^B\right)^2 \right)^\frac{1}{2}\end{aligned}
+ :label: eqnmatrixdiff
where tr is the trace of a matrix. We can now define the overlap
:math:`s` as:
.. math:: s(A,B) = 1 - \frac{d(A,B)}{\sqrt{\mbox{tr}A + \mbox{tr} B}}
+ :label: eqnmatrixoverlap
The overlap is 1 if and only if matrices :math:`A` and :math:`B` are
identical. It is 0 when the sampled subspaces are completely orthogonal.
a reference subspace spanned by :math:`n` orthonormal vectors
:math:`{\bf v}_1,\ldots,{\bf v}_n` can be quantified as follows:
-.. math::
-
- \mbox{overlap}({\bf v},{\bf w}) =
- \frac{1}{n} \sum_{i=1}^n \sum_{j=1}^m ({\bf v}_i \cdot {\bf w}_j)^2
+.. math:: \mbox{overlap}({\bf v},{\bf w}) =
+ \frac{1}{n} \sum_{i=1}^n \sum_{j=1}^m ({\bf v}_i \cdot {\bf w}_j)^2
+ :label: eqnsubspaceoverlap
The overlap will increase with increasing :math:`m` and will be 1 when
set :math:`{\bf v}` is a subspace of set :math:`{\bf w}`. The
The eigenvalues are proportional to the index to the power
:math:`-2`. The cosine content is defined as:
-.. math::
-
- \frac{2}{T}
- \left( \int_0^T \cos\left(\frac{i \pi t}{T}\right) \, p_i(t) \mbox{d} t \right)^2
- \left( \int_0^T p_i^2(t) \mbox{d} t \right)^{-1}
+.. math:: \frac{2}{T}
+ \left( \int_0^T \cos\left(\frac{i \pi t}{T}\right) \, p_i(t) \mbox{d} t \right)^2
+ \left( \int_0^T p_i^2(t) \mbox{d} t \right)^{-1}
+ :label: eqneigenvaluecosine
When the cosine content of the first few principal components is close
to 1, the largest fluctuations are not connected with the potential, but
Under the hood |Gromacs| implements some more fitting functions, namely a
function to estimate the error in time-correlated data due to Hess \ :ref:`149 <refHess2002a>`:
-.. math::
-
- \varepsilon^2(t) =
- \alpha\tau_1\left(1+\frac{\tau_1}{t}\left(e^{-t/\tau_1}-1\right)\right)
- + (1-\alpha)\tau_2\left(1+\frac{\tau_2}{t}\left(e^{-t/\tau_2}-1\right)\right)
+.. math:: \varepsilon^2(t) =
+ \alpha\tau_1\left(1+\frac{\tau_1}{t}\left(e^{-t/\tau_1}-1\right)\right)
+ + (1-\alpha)\tau_2\left(1+\frac{\tau_2}{t}\left(e^{-t/\tau_2}-1\right)\right)
+ :label: eqntimecorrerror
where :math:`\tau_1` and :math:`\tau_2` are time constants (with
:math:`\tau_2 \ge \tau_1`) and :math:`\alpha` usually is close to 1 (in
This is used in :ref:`gmx analyze <gmx analyze>` for error estimation using
.. math:: \lim_{t\rightarrow\infty}\varepsilon(t) = \sigma\sqrt{\frac{2(\alpha\tau_1+(1-\alpha)\tau_2)}{T}}
+ :label: eqnanalyzeerrorest
where :math:`\sigma` is the standard deviation of the data set and
:math:`T` is the total simulation time \ :ref:`149 <refHess2002a>`.
In order to determine the position and width of an interface,
Steen-Sæthre *et al.* fitted a density profile to the following function
-.. math::
-
- f(x) ~=~ \frac{a_0+a_1}{2} - \frac{a_0-a_1}{2}{\rm
- erf}\left(\frac{x-a_2}{a_3^2}\right)
+.. math:: f(x) ~=~ \frac{a_0+a_1}{2} - \frac{a_0-a_1}{2}{\rm
+ erf}\left(\frac{x-a_2}{a_3^2}\right)
+ :label: eqndesprofilefunc
where :math:`a_0` and :math:`a_1` are densities of different phases,
:math:`x` is the coordinate normal to the interface, :math:`a_2` is the
(useful for computing viscosity \ :ref:`164 <refPalmer1994a>`) the following function is
fitted:
-.. math::
-
- f(x) ~=~ e^{-\nu}\left({\rm cosh}(\omega\nu)+\frac{{\rm
- sinh}(\omega\nu)}{\omega}\right)
+.. math:: f(x) ~=~ e^{-\nu}\left({\rm cosh}(\omega\nu)+\frac{{\rm
+ sinh}(\omega\nu)}{\omega}\right)
+ :label: eqntransverseautocorrfunc
with :math:`\nu = x/(2a_0)` and :math:`\omega = \sqrt{1-a_1}`. This is
implemented in :ref:`gmx tcaf <gmx tcaf>`.
the noisy tail of the ACF. A workaround to this is fitting the ACF to
the following function \ :ref:`166 <refGuo2002b>`:
-.. math::
-
- f(t)/f(0) = (1-C) {\rm cos}(\omega t) e^{-(t/\tau_f)^{\beta_f}} + C
- e^{-(t/\tau_s)^{\beta_s}}
+.. math:: f(t)/f(0) = (1-C) {\rm cos}(\omega t) e^{-(t/\tau_f)^{\beta_f}} + C
+ e^{-(t/\tau_s)^{\beta_s}}
+ :label: eqnviscestpressureautocorr
where :math:`\omega` is the frequency of rapid pressure oscillations
(mainly due to bonded forces in molecular simulations), :math:`\tau_f`
compute the viscosity:
.. math:: \eta = \frac{V}{k_B T}\int_0^{\infty} f(t) dt
+ :label: eqncompviscosity
This equation has been applied to computing the bulk and shear
viscosity using different elements from the pressure tensor \ :ref:`167 <refFanourgakis2012a>`.
and acceptors A. To determine if an H-bond exists, a geometrical
criterion is used, see also :numref:`Fig. %s <fig-hbond>`:
- .. math::
-
- \begin{array}{rclcl}
- r & \leq & r_{HB} & = & 0.35~\mbox{nm} \\
- \alpha & \leq & \alpha_{HB} & = & 30^o \\
- \end{array}
+ .. math:: \begin{array}{rclcl}
+ r & \leq & r_{HB} & = & 0.35~\mbox{nm} \\
+ \alpha & \leq & \alpha_{HB} & = & 30^o \\
+ \end{array}
+ :label: eqnhbondgeomtric
.. _fig-hbond:
.. figure:: plots/hbond.*
- :width: 2.50000cm
+ :width: 7.50000cm
Geometrical Hydrogen bond criterion.
.. _fig-hbondinsert:
.. figure:: plots/hbond-insert.*
- :width: 3.50000cm
+ :width: 7.50000cm
Insertion of water into an H-bond. (1) Normal H-bond between two
residues. (2) H-bonding bridge via a water molecule.
The *center-of-mass velocity*, defined as
.. math:: {\bf v}_{com} = {1 \over M} \sum_{i=1}^N m_i {\bf v}_i
+ :label: eqncomvelocity
with :math:`M = \sum_{i=1}^N m_i` the total mass of the system, can be
monitored in time by the program :ref:`gmx traj <gmx traj>` ``-com -ov``. It is however
particles of type :math:`A`, one can use the Einstein
relation :ref:`108 <refAllen87>`:
- .. math::
-
- \lim_{t \rightarrow \infty} \langle
- \|{\bf r}_i(t) - {\bf r}_i(0)\|^2 \rangle_{i \in A} ~=~ 6 D_A t
+ .. math:: \lim_{t \rightarrow \infty} \langle
+ \|{\bf r}_i(t) - {\bf r}_i(0)\|^2 \rangle_{i \in A} ~=~ 6 D_A t
+ :label: eqnmsd
| This *mean square displacement* and :math:`D_A` are calculated by the
program :ref:`gmx msd <gmx msd>`. Normally
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg3074"
version="1.1"
- inkscape:version="0.48.2 r9819"
- width="449.44434"
- height="99.803299"
+ inkscape:version="0.92.3 (2405546, 2018-03-11)"
+ width="479.40729"
+ height="106.45686"
xml:space="preserve"
sodipodi:docname="sgangle.svg"><metadata
id="metadata3080"><rdf:RDF><cc:Work
id="Arrow1Mend"
style="overflow:visible"><path
id="path4597"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
- transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ d="M -4.2666667,0 -6.4,2.1333333 1.0666667,0 -6.4,-2.1333333 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
id="Arrow1Mstart"
style="overflow:visible"><path
id="path4594"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
- transform="matrix(0.4,0,0,0.4,4,0)"
+ d="M 4.2666667,0 6.4,-2.1333333 -1.0666667,0 6.4,2.1333333 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="Arrow1Lend"
orient="auto"
id="Arrow1Lend"
style="overflow:visible"><path
id="path4591"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
- transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ d="M -10.666667,0 -14.933333,4.2666667 0,0 -14.933333,-4.2666667 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
id="Arrow1Lstart"
style="overflow:visible"><path
id="path4588"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
- transform="matrix(0.8,0,0,0.8,10,0)"
+ d="M 10.666667,0 14.933333,-4.2666667 0,0 14.933333,4.2666667 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="DotL"
orient="auto"
id="DotL"
style="overflow:visible"><path
id="path4650"
- d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
- transform="matrix(0.8,0,0,0.8,5.92,0.8)"
+ d="m 4.1813333,0 c 0,2.3552 -1.9114666,4.2666667 -4.26666663,4.2666667 C -2.4405333,4.2666667 -4.352,2.3552 -4.352,0 c 0,-2.3552 1.9114667,-4.2666667 4.26666667,-4.2666667 C 2.2698667,-4.2666667 4.1813333,-2.3552 4.1813333,0 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none;marker-end:none"
inkscape:connector-curvature="0" /></marker><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3164"><path
- d="m 0,0 0,7240 3900,0 L 3900,0 0,0 z m 72.7188,6555.72 -49.5586,31.92 58.8007,-1.68 -69.7226,21.84 -9.66018,-29.82 70.14068,-22.26 z"
+ d="M 0,0 V 7240 H 3900 V 0 Z m 72.7188,6555.72 -49.5586,31.92 58.8007,-1.68 -69.7226,21.84 -9.66018,-29.82 z"
id="path3166"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3188"><path
- d="m 0,0 0,7240 3900,0 L 3900,0 0,0 z m 3318.9,5032.38 54.6,-21.84 -57.54,-9.66 72.66,-7.56 3.36,31.5 -73.08,7.56 z"
+ d="M 0,0 V 7240 H 3900 V 0 Z m 3318.9,5032.38 54.6,-21.84 -57.54,-9.66 72.66,-7.56 3.36,31.5 z"
id="path3190"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3194"><path
- d="m 0,0 0,7240 3900,0 L 3900,0 0,0 z m 3318.9,5032.38 54.6,-21.84 -57.54,-9.66 72.66,-7.56 3.36,31.5 -73.08,7.56 z m -1098.3,80.64 -55.02,21.42 57.96,10.08 -72.66,7.56 -3.36,-31.5 73.08,-7.56 z"
+ d="M 0,0 V 7240 H 3900 V 0 Z m 3318.9,5032.38 54.6,-21.84 -57.54,-9.66 72.66,-7.56 3.36,31.5 z m -1098.3,80.64 -55.02,21.42 57.96,10.08 -72.66,7.56 -3.36,-31.5 z"
id="path3196"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3210"><path
- d="m 0,0 0,7240 3900,0 L 3900,0 0,0 z m 3343.26,5041.2 38.22,-44.94 -55.44,18.48 60.9,-40.74 17.22,26.46 -60.9,40.74 z"
+ d="M 0,0 V 7240 H 3900 V 0 Z m 3343.26,5041.2 38.22,-44.94 -55.44,18.48 60.9,-40.74 17.22,26.46 z"
id="path3212"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3216"><path
- d="m 0,0 0,7240 3900,0 L 3900,0 0,0 z m 3343.26,5041.2 38.22,-44.94 -55.44,18.48 60.9,-40.74 17.22,26.46 -60.9,40.74 z m -472.92,277.2 -38.64,44.52 55.86,-18.06 -60.9,40.74 -17.22,-26.46 60.9,-40.74 z"
+ d="M 0,0 V 7240 H 3900 V 0 Z m 3343.26,5041.2 38.22,-44.94 -55.44,18.48 60.9,-40.74 17.22,26.46 z m -472.92,277.2 -38.64,44.52 55.86,-18.06 -60.9,40.74 -17.22,-26.46 z"
id="path3218"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3232"><path
- d="m 0,0 0,7240 3900,0 L 3900,0 0,0 z m 3316.38,2443.92 32.76,48.3 -2.94,-58.38 23.1,69.3 -29.82,10.08 -23.1,-69.3 z"
+ d="M 0,0 V 7240 H 3900 V 0 Z m 3316.38,2443.92 32.76,48.3 -2.94,-58.38 23.1,69.3 -29.82,10.08 z"
id="path3234"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3238"><path
- d="m 0,0 0,7240 3900,0 L 3900,0 0,0 z m 3316.38,2443.92 32.76,48.3 -2.94,-58.38 23.1,69.3 -29.82,10.08 -23.1,-69.3 z m -305.76,-1017.24 -33.18,-48.72 3.36,58.8 -23.1,-69.3 29.82,-10.08 23.1,69.3 z"
+ d="M 0,0 V 7240 H 3900 V 0 Z m 3316.38,2443.92 32.76,48.3 -2.94,-58.38 23.1,69.3 -29.82,10.08 z m -305.76,-1017.24 -33.18,-48.72 3.36,58.8 -23.1,-69.3 29.82,-10.08 z"
id="path3240"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3254"><path
- d="m 0,0 0,7240 3900,0 L 3900,0 0,0 z m 2530.56,5234.4 -50.4,30.66 58.8,-0.42 -70.14,20.16 -8.82,-30.24 70.56,-20.16 z"
+ d="M 0,0 V 7240 H 3900 V 0 Z m 2530.56,5234.4 -50.4,30.66 58.8,-0.42 -70.14,20.16 -8.82,-30.24 z"
id="path3256"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3260"><path
- d="m 0,0 0,7240 3900,0 L 3900,0 0,0 z m 2530.56,5234.4 -50.4,30.66 58.8,-0.42 -70.14,20.16 -8.82,-30.24 70.56,-20.16 z m 761.88,-184.8 49.98,-31.08 -58.38,0.84 70.14,-20.16 8.82,30.24 -70.56,20.16 z"
+ d="M 0,0 V 7240 H 3900 V 0 Z m 2530.56,5234.4 -50.4,30.66 58.8,-0.42 -70.14,20.16 -8.82,-30.24 z m 761.88,-184.8 49.98,-31.08 -58.38,0.84 70.14,-20.16 8.82,30.24 z"
id="path3262"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3330"><path
- d="m 0,0 0,7240 3900,0 L 3900,0 0,0 z m 286.922,3459.9 -44.102,39.48 57.961,-11.34 -65.519,32.76 -13.864,-28.14 65.524,-32.76 z"
+ d="M 0,0 V 7240 H 3900 V 0 Z m 286.922,3459.9 -44.102,39.48 57.961,-11.34 -65.519,32.76 -13.864,-28.14 z"
id="path3332"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3396"><path
- d="m 0,0 0,7240 3900,0 L 3900,0 0,0 z m 286.922,813.898 -44.102,39.481 57.961,-11.34 -65.519,32.762 -13.864,-28.141 65.524,-32.762 z"
+ d="M 0,0 V 7240 H 3900 V 0 Z m 286.922,813.898 -44.102,39.481 57.961,-11.34 -65.519,32.762 -13.864,-28.141 z"
id="path3398"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3408"><path
- d="m 0,0 0,7240 3900,0 L 3900,0 0,0 z m 300.781,3236.46 -56.703,15.54 56.703,15.96 -73.082,0 0,-31.5 73.082,0 z"
+ d="M 0,0 V 7240 H 3900 V 0 Z m 300.781,3236.46 -56.703,15.54 56.703,15.96 h -73.082 v -31.5 z"
id="path3410"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3420"><path
- d="m 0,0 0,7240 3900,0 L 3900,0 0,0 z m 388.98,2916.84 -50.82,29.82 59.219,0.84 -70.981,18.9 -7.976,-30.24 70.558,-19.32 z"
+ d="M 0,0 V 7240 H 3900 V 0 Z m 388.98,2916.84 -50.82,29.82 59.219,0.84 -70.981,18.9 -7.976,-30.24 z"
id="path3422"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3434"><path
- d="m 0,0 0,7240 3900,0 L 3900,0 0,0 z m 418.379,5515.38 -48.719,32.76 58.801,-2.94 -69.301,23.1 -10.082,-29.82 69.301,-23.1 z"
+ d="M 0,0 V 7240 H 3900 V 0 Z m 418.379,5515.38 -48.719,32.76 58.801,-2.94 -69.301,23.1 -10.082,-29.82 z"
id="path3436"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3448"><path
- d="m 0,0 0,7240 3900,0 L 3900,0 0,0 z m 1037.46,5964.78 -15.96,-56.7 -15.54,56.7 0,-73.08 31.5,0 0,73.08 z"
+ d="M 0,0 V 7240 H 3900 V 0 Z m 1037.46,5964.78 -15.96,-56.7 -15.54,56.7 v -73.08 h 31.5 z"
id="path3450"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3462"><path
- d="m 0,0 0,7240 3900,0 L 3900,0 0,0 z m 627.961,5807.28 -15.961,-56.7 -15.539,56.7 0,-73.08 31.5,0 0,73.08 z"
+ d="M 0,0 V 7240 H 3900 V 0 Z m 627.961,5807.28 -15.961,-56.7 -15.539,56.7 v -73.08 h 31.5 z"
id="path3464"
inkscape:connector-curvature="0" /></clipPath><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3476"><path
- d="m 0,0 0,7240 3900,0 L 3900,0 0,0 z m 302.879,480.84 -59.219,1.262 51.238,29.398 -70.976,-17.641 7.976,-30.66 70.981,17.641 z"
+ d="M 0,0 V 7240 H 3900 V 0 Z m 302.879,480.84 -59.219,1.262 51.238,29.398 -70.976,-17.641 7.976,-30.66 z"
id="path3478"
inkscape:connector-curvature="0" /></clipPath><marker
inkscape:stockid="DotL"
id="DotL-3"
style="overflow:visible"><path
id="path4650-2"
- d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
- transform="matrix(0.8,0,0,0.8,5.92,0.8)"
+ d="m 4.1813333,0 c 0,2.3552 -1.9114666,4.2666667 -4.26666663,4.2666667 C -2.4405333,4.2666667 -4.352,2.3552 -4.352,0 c 0,-2.3552 1.9114667,-4.2666667 4.26666667,-4.2666667 C 2.2698667,-4.2666667 4.1813333,-2.3552 4.1813333,0 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none;marker-end:none"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="DotL"
orient="auto"
id="marker8876"
style="overflow:visible"><path
id="path8878"
- d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
- transform="matrix(0.8,0,0,0.8,5.92,0.8)"
+ d="m 4.1813333,0 c 0,2.3552 -1.9114666,4.2666667 -4.26666663,4.2666667 C -2.4405333,4.2666667 -4.352,2.3552 -4.352,0 c 0,-2.3552 1.9114667,-4.2666667 4.26666667,-4.2666667 C 2.2698667,-4.2666667 4.1813333,-2.3552 4.1813333,0 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none;marker-end:none"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="DotL"
orient="auto"
id="marker8880"
style="overflow:visible"><path
id="path8882"
- d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
- transform="matrix(0.8,0,0,0.8,5.92,0.8)"
+ d="m 4.1813333,0 c 0,2.3552 -1.9114666,4.2666667 -4.26666663,4.2666667 C -2.4405333,4.2666667 -4.352,2.3552 -4.352,0 c 0,-2.3552 1.9114667,-4.2666667 4.26666667,-4.2666667 C 2.2698667,-4.2666667 4.1813333,-2.3552 4.1813333,0 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none;marker-end:none"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="Arrow1Mend"
orient="auto"
style="overflow:visible"><path
inkscape:connector-curvature="0"
id="path4597-9"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
- transform="matrix(-0.4,0,0,-0.4,-4,0)" /></marker><marker
+ d="M -4.2666667,0 -6.4,2.1333333 1.0666667,0 -6.4,-2.1333333 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none" /></marker><marker
inkscape:stockid="DotL"
orient="auto"
refY="0"
id="DotL-6"
style="overflow:visible"><path
id="path4650-4"
- d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
- transform="matrix(0.8,0,0,0.8,5.92,0.8)"
+ d="m 4.1813333,0 c 0,2.3552 -1.9114666,4.2666667 -4.26666663,4.2666667 C -2.4405333,4.2666667 -4.352,2.3552 -4.352,0 c 0,-2.3552 1.9114667,-4.2666667 4.26666667,-4.2666667 C 2.2698667,-4.2666667 4.1813333,-2.3552 4.1813333,0 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none;marker-end:none"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="DotL"
orient="auto"
id="marker9561"
style="overflow:visible"><path
id="path9563"
- d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
- transform="matrix(0.8,0,0,0.8,5.92,0.8)"
+ d="m 4.1813333,0 c 0,2.3552 -1.9114666,4.2666667 -4.26666663,4.2666667 C -2.4405333,4.2666667 -4.352,2.3552 -4.352,0 c 0,-2.3552 1.9114667,-4.2666667 4.26666667,-4.2666667 C 2.2698667,-4.2666667 4.1813333,-2.3552 4.1813333,0 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none;marker-end:none"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="DotL"
orient="auto"
id="marker9565"
style="overflow:visible"><path
id="path9567"
- d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none"
- transform="matrix(0.8,0,0,0.8,5.92,0.8)"
+ d="m 4.1813333,0 c 0,2.3552 -1.9114666,4.2666667 -4.26666663,4.2666667 C -2.4405333,4.2666667 -4.352,2.3552 -4.352,0 c 0,-2.3552 1.9114667,-4.2666667 4.26666667,-4.2666667 C 2.2698667,-4.2666667 4.1813333,-2.3552 4.1813333,0 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.85333335pt;marker-start:none;marker-end:none"
inkscape:connector-curvature="0" /></marker><marker
inkscape:stockid="Arrow1Mend"
orient="auto"
style="overflow:visible"><path
inkscape:connector-curvature="0"
id="path4597-5"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
- transform="matrix(-0.4,0,0,-0.4,-4,0)" /></marker><marker
+ d="M -4.2666667,0 -6.4,2.1333333 1.0666667,0 -6.4,-2.1333333 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none" /></marker><marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
style="overflow:visible"><path
inkscape:connector-curvature="0"
id="path4594-0"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
- transform="matrix(0.4,0,0,0.4,4,0)" /></marker><marker
+ d="M 4.2666667,0 6.4,-2.1333333 -1.0666667,0 6.4,2.1333333 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none" /></marker><marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
style="overflow:visible"><path
inkscape:connector-curvature="0"
id="path4597-1"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
- transform="matrix(-0.4,0,0,-0.4,-4,0)" /></marker><marker
+ d="M -4.2666667,0 -6.4,2.1333333 1.0666667,0 -6.4,-2.1333333 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none" /></marker><marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
style="overflow:visible"><path
inkscape:connector-curvature="0"
id="path4594-8"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
- transform="matrix(0.4,0,0,0.4,4,0)" /></marker><marker
+ d="M 4.2666667,0 6.4,-2.1333333 -1.0666667,0 6.4,2.1333333 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none" /></marker><marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
style="overflow:visible"><path
inkscape:connector-curvature="0"
id="path4597-4"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
- transform="matrix(-0.4,0,0,-0.4,-4,0)" /></marker></defs><sodipodi:namedview
+ d="M -4.2666667,0 -6.4,2.1333333 1.0666667,0 -6.4,-2.1333333 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:0.42666668pt;marker-start:none" /></marker></defs><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
- inkscape:window-width="1227"
- inkscape:window-height="700"
+ inkscape:window-width="1920"
+ inkscape:window-height="1020"
id="namedview3076"
showgrid="true"
inkscape:snap-global="true"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="2"
- inkscape:cx="265.31953"
+ inkscape:cx="181.06953"
inkscape:cy="75.132976"
- inkscape:window-x="44"
- inkscape:window-y="6"
- inkscape:window-maximized="0"
+ inkscape:window-x="0"
+ inkscape:window-y="31"
+ inkscape:window-maximized="1"
inkscape:current-layer="g3082"
units="mm"
inkscape:object-paths="true"
empspacing="5"
visible="true"
enabled="true"
- snapvisiblegridlinesonly="true" /></sodipodi:namedview><g
+ snapvisiblegridlinesonly="true"
+ originx="0"
+ originy="0"
+ spacingx="1.0666667"
+ spacingy="1.0666667" /></sodipodi:namedview><g
id="g3082"
inkscape:groupmode="layer"
inkscape:label="ink_ext_XXXXXX"
- transform="matrix(0,1.25,1.25,0,-1515.0162,-399.1308)"><path
- style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#DotL);marker-end:url(#DotL)"
- d="m 56.2485,431.35741 -20,-60"
- id="path3815"
- inkscape:connector-curvature="0"
- transform="matrix(0,0.8,0.8,0,41.880103,1194.9892)"
- sodipodi:nodetypes="cc" /><path
- style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#DotL);marker-end:url(#DotL)"
- d="m 81.2485,421.35741 20,-60"
- id="path5211"
- inkscape:connector-curvature="0"
- transform="matrix(0,0.8,0.8,0,41.880103,1194.9892)"
- sodipodi:nodetypes="cc" /><g
- id="g8666"
- transform="translate(24,-12)"><path
- sodipodi:nodetypes="ccc"
- inkscape:connector-curvature="0"
- id="path5759"
- d="m 310.96603,1251.988 24,8 -24,8"
- style="fill:none;stroke:#000000;stroke-width:0.80000001px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)" /><path
- sodipodi:open="true"
- sodipodi:end="5.060828"
- sodipodi:start="4.381757"
- transform="matrix(0,0.8,0.8,0,41.880104,1195.988)"
- d="m 73.787564,347.39388 c 4.13685,-1.41989 8.635264,-1.37984 12.746175,0.11349"
- sodipodi:ry="19.136335"
- sodipodi:rx="19.136335"
- sodipodi:cy="365.49374"
- sodipodi:cx="80"
- id="path6322"
- style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none"
- sodipodi:type="arc" /></g><text
- xml:space="preserve"
- style="font-size:12.80000019px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
- x="1211.913"
- y="398.96603"
- id="text6324"
- sodipodi:linespacing="125%"
- transform="matrix(0,1,1,0,0,0)"><tspan
- sodipodi:role="line"
- id="tspan6326"
- x="1211.913"
- y="398.96603">A</tspan></text>
+ transform="matrix(0,1.25,1.25,0,-1616.0173,-425.73952)"><g
+ id="g1022"><rect
+ transform="matrix(0,1,1,0,0,0)"
+ y="340.42377"
+ x="1292.8138"
+ height="85.333336"
+ width="384"
+ id="rect1019"
+ style="fill:#ffffff;stroke-width:4.53543329;stroke-miterlimit:4;stroke-dasharray:none" /></g><path
+ style="fill:none;stroke:#000000;stroke-width:0.85333335;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#DotL);marker-end:url(#DotL)"
+ d="m 412.76377,1322.6539 -51.2,-17.0667"
+ id="path3815"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" /><path
+ style="fill:none;stroke:#000000;stroke-width:0.85333335;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#DotL);marker-end:url(#DotL)"
+ d="m 404.23043,1343.9872 -51.2,17.0667"
+ id="path5211"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" /><g
+ id="g8666"
+ transform="translate(25.6,-12.8)"><path
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0"
+ id="path5759"
+ d="m 331.6971,1335.4539 25.6,8.5333 -25.6,8.5333"
+ style="fill:none;stroke:#000000;stroke-width:0.85333335px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)" /><path
+ sodipodi:open="true"
+ sodipodi:end="5.060828"
+ sodipodi:start="4.381757"
+ transform="matrix(0,1,1,0,0,0)"
+ d="m 1338.6859,341.1149 a 16.329674,16.329674 0 0 1 10.8767,0.0969"
+ sodipodi:ry="16.329674"
+ sodipodi:rx="16.329674"
+ sodipodi:cy="356.56012"
+ sodipodi:cx="1343.9872"
+ id="path6322"
+ style="fill:none;stroke:#000000;stroke-width:0.85333335;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:none"
+ sodipodi:type="arc" /></g><text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672"
+ x="1292.7072"
+ y="425.56378"
+ id="text6324"
+ transform="matrix(0,1,1,0,0,0)"><tspan
+ sodipodi:role="line"
+ id="tspan6326"
+ x="1292.7072"
+ y="425.56378"
+ style="font-size:13.65333366px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672">A</tspan></text>
+
<g
- id="g8860"
- transform="translate(8.0000004,-16)"><path
- sodipodi:nodetypes="ccc"
- inkscape:connector-curvature="0"
- id="path6328"
- d="m 358.96603,1311.988 24,24 0,36"
- style="fill:#c0c0c0;fill-opacity:1;stroke:#000000;stroke-width:0.80000001px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotL);marker-mid:url(#DotL);marker-end:url(#DotL)" /><path
- sodipodi:nodetypes="cc"
- inkscape:connector-curvature="0"
- id="path6888"
- d="m 374.96603,1339.988 -24,8"
- style="fill:none;stroke:#000000;stroke-width:0.80000001px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" /></g><text
- xml:space="preserve"
- style="font-size:12.80000019px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
- x="1287.988"
- y="398.96603"
- id="text6324-0"
- sodipodi:linespacing="125%"
- transform="matrix(0,1,1,0,0,0)"><tspan
- sodipodi:role="line"
- id="tspan7507"
- x="1287.988"
- y="398.96603">B</tspan></text>
+ id="g8860"
+ transform="translate(8.5333338,-17.066667)"><path
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0"
+ id="path6328"
+ d="m 382.8971,1399.4539 25.6,25.6 v 38.4"
+ style="fill:#c0c0c0;fill-opacity:1;stroke:#000000;stroke-width:0.85333335px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotL);marker-mid:url(#DotL);marker-end:url(#DotL)" /><path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path6888"
+ d="m 399.96377,1429.3205 -25.6,8.5334"
+ style="fill:none;stroke:#000000;stroke-width:0.85333335px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" /></g><text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672"
+ x="1373.8539"
+ y="425.56378"
+ id="text6324-0"
+ transform="matrix(0,1,1,0,0,0)"><tspan
+ sodipodi:role="line"
+ id="tspan7507"
+ x="1373.8539"
+ y="425.56378"
+ style="font-size:13.65333366px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672">B</tspan></text>
+
<g
- transform="matrix(0,1,-1,0,1698.954,1013.022)"
- id="g8860-5"><path
- sodipodi:nodetypes="ccc"
- inkscape:connector-curvature="0"
- id="path6328-6"
- d="m 358.96603,1311.988 24,24 0,36"
- style="fill:#c0c0c0;fill-opacity:1;stroke:#000000;stroke-width:0.80000001px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotL);marker-mid:url(#DotL);marker-end:url(#DotL)" /><path
- sodipodi:nodetypes="cc"
- inkscape:connector-curvature="0"
- id="path6888-3"
- d="m 374.96603,1339.988 -24,8"
- style="fill:none;stroke:#000000;stroke-width:0.80000001px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" /></g><g
- id="g9520"
- transform="translate(11.999998,168)"><path
- sodipodi:nodetypes="ccc"
- transform="matrix(0,0.8,0.8,0,285.87509,1211.988)"
- inkscape:connector-curvature="0"
- id="path8916"
- d="m 165,41.363678 10,30 20,-20"
- style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend-5)" /><path
- sodipodi:end="5.4889046"
- sodipodi:start="4.3931718"
- transform="matrix(0,0.8,0.8,0,285.87509,1211.988)"
- d="m 168.72353,52.37405 c 7.11471,-2.35156 14.94704,-0.528828 20.29243,4.722434"
- sodipodi:ry="20"
- sodipodi:rx="20"
- sodipodi:cy="71.363678"
- sodipodi:cx="175"
- id="path9518"
- style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- sodipodi:type="arc"
- sodipodi:open="true" /></g><g
- id="g8860-52"
- transform="translate(4.0000004,108)"><path
- sodipodi:nodetypes="ccc"
- inkscape:connector-curvature="0"
- id="path6328-0"
- d="m 358.96603,1311.988 24,24 0,36"
- style="fill:#c0c0c0;fill-opacity:1;stroke:#000000;stroke-width:0.80000001px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotL);marker-mid:url(#DotL);marker-end:url(#DotL)" /><path
- sodipodi:nodetypes="cc"
- inkscape:connector-curvature="0"
- id="path6888-9"
- d="m 374.96603,1339.988 -24,8"
- style="fill:none;stroke:#000000;stroke-width:0.80000001px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" /></g><text
- xml:space="preserve"
- style="font-size:12.80000019px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
- x="1411.988"
- y="398.96603"
- id="text6324-0-3"
- sodipodi:linespacing="125%"
- transform="matrix(0,1,1,0,0,0)"><tspan
- sodipodi:role="line"
- id="tspan9634"
- x="1411.988"
- y="398.96603">C</tspan></text>
+ transform="rotate(90,365.8304,1446.3872)"
+ id="g8860-5"><path
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0"
+ id="path6328-6"
+ d="m 382.8971,1399.4539 25.6,25.6 v 38.4"
+ style="fill:#c0c0c0;fill-opacity:1;stroke:#000000;stroke-width:0.85333335px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotL);marker-mid:url(#DotL);marker-end:url(#DotL)" /><path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path6888-3"
+ d="m 399.96377,1429.3205 -25.6,8.5334"
+ style="fill:none;stroke:#000000;stroke-width:0.85333335px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" /></g><g
+ id="g9520"
+ transform="translate(12.799998,179.2)"><path
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0"
+ id="path8916"
+ d="m 340.23043,1433.5872 25.6,8.5333 -17.06666,17.0667"
+ style="fill:none;stroke:#000000;stroke-width:0.85333335px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend-5)" /><path
+ sodipodi:end="5.4889046"
+ sodipodi:start="4.3931718"
+ transform="matrix(0,1,1,0,0,0)"
+ d="m 1436.7646,349.62596 a 17.066668,17.066668 0 0 1 17.3162,4.02981"
+ sodipodi:ry="17.066668"
+ sodipodi:rx="17.066668"
+ sodipodi:cy="365.83044"
+ sodipodi:cx="1442.1205"
+ id="path9518"
+ style="fill:none;stroke:#000000;stroke-width:0.85333335;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc"
+ sodipodi:open="true" /></g><g
+ id="g8860-52"
+ transform="translate(4.2666671,115.2)"><path
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0"
+ id="path6328-0"
+ d="m 382.8971,1399.4539 25.6,25.6 v 38.4"
+ style="fill:#c0c0c0;fill-opacity:1;stroke:#000000;stroke-width:0.85333335px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotL);marker-mid:url(#DotL);marker-end:url(#DotL)" /><path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path6888-9"
+ d="m 399.96377,1429.3205 -25.6,8.5334"
+ style="fill:none;stroke:#000000;stroke-width:0.85333335px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" /></g><text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672"
+ x="1506.1206"
+ y="425.56378"
+ id="text6324-0-3"
+ transform="matrix(0,1,1,0,0,0)"><tspan
+ sodipodi:role="line"
+ id="tspan9634"
+ x="1506.1206"
+ y="425.56378"
+ style="font-size:13.65333366px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672">C</tspan></text>
+
<path
- style="fill:none;stroke:#000000;stroke-width:0.80000001px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend-7)"
- d="m 390.96603,1491.988 -56,0"
- id="path9638"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cc" /><text
- xml:space="preserve"
- style="font-size:6.4000001px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
- x="1487.988"
- y="362.96603"
- id="text10052"
- sodipodi:linespacing="125%"
- transform="matrix(0,1,1,0,0,0)"><tspan
- sodipodi:role="line"
- id="tspan10054"
- x="1487.988"
- y="362.96603">z</tspan></text>
+ style="fill:none;stroke:#000000;stroke-width:0.85333335px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend-7)"
+ d="M 417.03043,1591.4539 H 357.2971"
+ id="path9638"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" /><text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672"
+ x="1587.1873"
+ y="387.16376"
+ id="text10052"
+ transform="matrix(0,1,1,0,0,0)"><tspan
+ sodipodi:role="line"
+ id="tspan10054"
+ x="1587.1873"
+ y="387.16376"
+ style="font-size:6.82666683px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672">z</tspan></text>
+
<text
- xml:space="preserve"
- style="font-size:12.80000019px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
- x="1507.988"
- y="398.96603"
- id="text6324-0-3-9"
- sodipodi:linespacing="125%"
- transform="matrix(0,1,1,0,0,0)"><tspan
- sodipodi:role="line"
- id="tspan10094"
- x="1507.988"
- y="398.96603">D</tspan></text>
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.06666672"
+ x="1608.5206"
+ y="425.56378"
+ id="text6324-0-3-9"
+ transform="matrix(0,1,1,0,0,0)"><tspan
+ sodipodi:role="line"
+ id="tspan10094"
+ x="1608.5206"
+ y="425.56378"
+ style="font-size:13.65333366px;line-height:1.25;font-family:sans-serif;stroke-width:1.06666672">D</tspan></text>
+
<path
- style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3, 3;stroke-dashoffset:0;marker-start:url(#marker9565)"
- d="M 390,121.36368 435,76.363678"
- id="path10096"
- inkscape:connector-curvature="0"
- transform="matrix(0,0.8,0.8,0,285.87509,1211.988)" /><path
- style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker9565);marker-end:url(#marker9565)"
- d="m 425,46.363678 20,60.000002"
- id="path10510"
- inkscape:connector-curvature="0"
- transform="matrix(0,0.8,0.8,0,285.87509,1211.988)" /><g
- id="g8666-2"
- transform="translate(24,92)"><path
- sodipodi:nodetypes="ccc"
- inkscape:connector-curvature="0"
- id="path5759-6"
- d="m 326.96603,1235.988 8,24 -24,8"
- style="fill:none;stroke:#000000;stroke-width:0.80000001px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)" /><path
- sodipodi:end="5.0360538"
- sodipodi:start="3.4037817"
- transform="matrix(0,0.8,0.8,0,41.880104,1195.988)"
- d="m 61.517651,360.53369 c 2.73936,-10.20752 13.23488,-16.26166 23.442399,-13.5223 0.378769,0.10165 0.754323,0.21492 1.126132,0.33965"
- sodipodi:ry="19.136335"
- sodipodi:rx="19.136335"
- sodipodi:cy="365.49374"
- sodipodi:cx="80"
- id="path6322-1"
- style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none"
- sodipodi:type="arc"
- sodipodi:open="true" /></g><g
- id="g8666-2-7"
- transform="translate(16,208)"><path
- sodipodi:nodetypes="ccc"
- inkscape:connector-curvature="0"
- id="path5759-6-9"
- d="m 310.96603,1259.988 24,0 -24,8"
- style="fill:none;stroke:#000000;stroke-width:0.80000001px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)" /><path
- sodipodi:open="true"
- sodipodi:end="5.060828"
- sodipodi:start="4.7003192"
- transform="matrix(0,0.8,0.8,0,41.880104,1195.988)"
- d="m 79.769034,346.3588 c 2.305685,-0.0278 4.597418,0.36128 6.764705,1.14857"
- sodipodi:ry="19.136335"
- sodipodi:rx="19.136335"
- sodipodi:cy="365.49374"
- sodipodi:cx="80"
- id="path6322-1-9"
- style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none"
- sodipodi:type="arc" /></g></g></svg>
\ No newline at end of file
+ style="fill:none;stroke:#000000;stroke-width:0.85333335;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.56, 2.56;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker9565)"
+ d="m 408.4971,1625.5872 -38.4,38.4"
+ id="path10096"
+ inkscape:connector-curvature="0" /><path
+ style="fill:none;stroke:#000000;stroke-width:0.85333335px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker9565);marker-end:url(#marker9565)"
+ d="m 344.4971,1655.4539 51.2,17.0666"
+ id="path10510"
+ inkscape:connector-curvature="0" /><g
+ id="g8666-2"
+ transform="translate(25.6,98.133333)"><path
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0"
+ id="path5759-6"
+ d="m 348.76377,1318.3872 8.53333,25.6 -25.6,8.5333"
+ style="fill:none;stroke:#000000;stroke-width:0.85333335px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)" /><path
+ sodipodi:end="5.0360538"
+ sodipodi:start="3.4037817"
+ transform="matrix(0,1,1,0,0,0)"
+ d="m 1328.2156,352.32754 a 16.329674,16.329674 0 0 1 8.0508,-10.15659 16.329674,16.329674 0 0 1 12.9143,-1.09261"
+ sodipodi:ry="16.329674"
+ sodipodi:rx="16.329674"
+ sodipodi:cy="356.56012"
+ sodipodi:cx="1343.9872"
+ id="path6322-1"
+ style="fill:none;stroke:#000000;stroke-width:0.85333335;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:none"
+ sodipodi:type="arc"
+ sodipodi:open="true" /></g><g
+ id="g8666-2-7"
+ transform="translate(17.066667,221.86667)"><path
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0"
+ id="path5759-6-9"
+ d="m 331.6971,1343.9872 h 25.6 l -25.6,8.5333"
+ style="fill:none;stroke:#000000;stroke-width:0.85333335px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)" /><path
+ sodipodi:open="true"
+ sodipodi:end="5.060828"
+ sodipodi:start="4.7003192"
+ transform="matrix(0,1,1,0,0,0)"
+ d="m 1343.7901,340.23164 a 16.329674,16.329674 0 0 1 5.7725,0.98011"
+ sodipodi:ry="16.329674"
+ sodipodi:rx="16.329674"
+ sodipodi:cy="356.56012"
+ sodipodi:cx="1343.9872"
+ id="path6322-1-9"
+ style="fill:none;stroke:#000000;stroke-width:0.85333335;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:none"
+ sodipodi:type="arc" /></g></g></svg>
\ No newline at end of file
:math:`g_{AB}(r)` between particles of type :math:`A` and :math:`B` is
defined in the following way:
-.. math::
-
- \begin{array}{rcl}
- g_{AB}(r)&=& {\displaystyle \frac{\langle \rho_B(r) \rangle}{\langle\rho_B\rangle_{local}}} \\
- &=& {\displaystyle \frac{1}{\langle\rho_B\rangle_{local}}}{\displaystyle \frac{1}{N_A}}
- \sum_{i \in A}^{N_A} \sum_{j \in B}^{N_B}
- {\displaystyle \frac{\delta( r_{ij} - r )}{4 \pi r^2}} \\
- \end{array}
+.. math:: \begin{array}{rcl}
+ g_{AB}(r)&=& {\displaystyle \frac{\langle \rho_B(r) \rangle}{\langle\rho_B\rangle_{local}}} \\
+ &=& {\displaystyle \frac{1}{\langle\rho_B\rangle_{local}}}{\displaystyle \frac{1}{N_A}}
+ \sum_{i \in A}^{N_A} \sum_{j \in B}^{N_B}
+ {\displaystyle \frac{\delta( r_{ij} - r )}{4 \pi r^2}} \\
+ \end{array}
+ :label: eqnrdfdefine
with :math:`\langle\rho_B(r)\rangle` the particle density of type
:math:`B` at a distance :math:`r` around particles :math:`A`, and
is defined with respect to a certain laboratory axis :math:`{\bf e}`,
see :numref:`Fig. %s <fig-rdfex>` B.
-.. math::
+.. math:: g_{AB}(r,\theta) = {1 \over \langle\rho_B\rangle_{local,\:\theta }}
+ {1 \over N_A} \sum_{i \in A}^{N_A} \sum_{j \in B}^{N_B} {\delta( r_{ij} - r )
+ \delta(\theta_{ij} -\theta) \over 2 \pi r^2 sin(\theta)}
+ :label: eqnrdfangleaxis1
- \begin{aligned}
- g_{AB}(r,\theta) &=& {1 \over \langle\rho_B\rangle_{local,\:\theta }} {1 \over N_A} \sum_{i \in A}^{N_A} \sum_{j \in B}^{N_B} {\delta( r_{ij} - r ) \delta(\theta_{ij} -\theta) \over 2 \pi r^2 sin(\theta)}\\
- cos(\theta_{ij}) &=& {{\bf r}_{ij} \cdot {\bf e} \over \|r_{ij}\| \;\| e\| }\end{aligned}
+.. math:: cos(\theta_{ij}) = {{\bf r}_{ij} \cdot {\bf e} \over \|r_{ij}\| \;\| e\| }
+ :label: eqnrdfangleaxis2
This :math:`g_{AB}(r,\theta)` is useful for analyzing anisotropic
systems. **Note** that in this case the normalization
------------
| In chapter :ref:`algorithms`, it was explained how *groups of atoms* can
- be used in mdrun (see sec. :ref:`groupconcept`). In most analysis
+ be used in :ref:`mdrun <gmx mdrun>` (see sec. :ref:`groupconcept`). In most analysis
programs, groups of atoms must also be chosen. Most programs can
generate several default index groups, but groups can always be read
from an index file. Let’s consider the example of a simulation of a
to B, we have to calculate:
.. math:: 4\pi r^2 g_{AB}(r) ~=~ V~\sum_{i \in A}^{N_A} \sum_{j \in B}^{N_B} P(r)
+ :label: eqnanalysisrdf
| where :math:`V` is the volume and :math:`P(r)` is the probability of
finding a B atom at distance :math:`r` from an A atom.
accurate
.. math:: \sigma_x ~=~ \sum_{i=1}^{N_x} [x_i - \left<x\right>]^2
+ :label: eqnvar1equivalent
- with
+with
.. math:: \left<x\right> ~=~ \frac{1}{N_x} \sum_{i=1}^{N_x} x_i
:label: eqnvar2
sum
.. math:: X_{n,m} ~=~ \sum_{i=n}^{m} x_i
+ :label: eqnpartialsum
and the partial variance
:label: eqnsig1
and for :math:`n=1` and :math:`k=1`
-(:eq:`eqn. %s <eqnvarpartial>`) becomes
+:eq:`eqn. %s <eqnvarpartial>` becomes
.. math:: \begin{aligned}
\sigma_{1,m+1} &=& \sigma_{1,m} +
.. math:: X_{1,m+1} ~=~ X_{1,m} + x_{m+1}
:label: eqnsimplevar1
-Using formulae (:eq:`eqn. %s <eqnsimplevar0>`) and
-(:eq:`eqn. %s <eqnsimplevar1>`) the average
+Using formulae :eq:`eqn. %s <eqnsimplevar0>` and
+:eq:`eqn. %s <eqnsimplevar1>` the average
.. math:: \left<x\right> ~=~ \frac{X_{1,N_x}}{N_x}
+ :label: eqnfinalaverage
and the fluctuation
.. math:: \left<(\Delta x)^2\right>^{{\frac{1}{2}}} = \left[\frac {\sigma_{1,N_x}}{N_x}\right]^{{\frac{1}{2}}}
+ :label: eqnfinalfluctuation
can be obtained by one sweep through the data.
:eq:`%s <eqnvarpartial>` the average and standard deviation
over part of the trajectory can be computed as:
-.. math::
-
- \begin{aligned}
- X_{m+1,m+k} &=& X_{1,m+k} - X_{1,m} \\
- \sigma_{m+1,m+k} &=& \sigma_{1,m+k}-\sigma_{1,m} - \left[~\frac{X_{1,m}}{m} - \frac{X_{1,m+k}}{m+k}~\right]^{2}~ \frac{m(m+k)}{k}\end{aligned}
+.. math:: \begin{aligned}
+ X_{m+1,m+k} &=& X_{1,m+k} - X_{1,m} \\
+ \sigma_{m+1,m+k} &=& \sigma_{1,m+k}-\sigma_{1,m} - \left[~\frac{X_{1,m}}{m} - \frac{X_{1,m+k}}{m+k}~\right]^{2}~ \frac{m(m+k)}{k}\end{aligned}
+ :label: eqnaveragesimpart
or, more generally (with :math:`p \geq 1` and :math:`q \geq p`):
-.. math::
-
- \begin{aligned}
- X_{p,q} &=& X_{1,q} - X_{1,p-1} \\
- \sigma_{p,q} &=& \sigma_{1,q}-\sigma_{1,p-1} - \left[~\frac{X_{1,p-1}}{p-1} - \frac{X_{1,q}}{q}~\right]^{2}~ \frac{(p-1)q}{q-p+1}\end{aligned}
+.. math:: \begin{aligned}
+ X_{p,q} &=& X_{1,q} - X_{1,p-1} \\
+ \sigma_{p,q} &=& \sigma_{1,q}-\sigma_{1,p-1} - \left[~\frac{X_{1,p-1}}{p-1} - \frac{X_{1,q}}{q}~\right]^{2}~ \frac{(p-1)q}{q-p+1}\end{aligned}
+ :label: eqnaveragesimpartgeneral
**Note** that implementation of this is not entirely trivial, since
energies are not stored every time step of the simulation. We therefore
have to construct :math:`X_{1,p-1}` and :math:`\sigma_{1,p-1}` from the
-information at time :math:`p` using
-:eq:`eqns. %s <eqnsimplevar0>` and
+information at time :math:`p` using :eq:`eqns. %s <eqnsimplevar0>` and
:eq:`%s <eqnsimplevar1>`:
-.. math::
-
- \begin{aligned}
- X_{1,p-1} &=& X_{1,p} - x_p \\
- \sigma_{1,p-1} &=& \sigma_{1,p} - \frac {[~X_{1,p-1} - (p-1) x_{p}~]^2}{(p-1)p}\end{aligned}
+.. math:: \begin{aligned}
+ X_{1,p-1} &=& X_{1,p} - x_p \\
+ \sigma_{1,p-1} &=& \sigma_{1,p} - \frac {[~X_{1,p-1} - (p-1) x_{p}~]^2}{(p-1)p}\end{aligned}
+ :label: eqnfinalaveragesimpartnote
Combining two simulations
~~~~~~~~~~~~~~~~~~~~~~~~~
have to make a correction :math:`\Delta\sigma`:
.. math:: \sigma_{1,n+m}^{AB} ~=~ \sigma_{1,n}^A + \sigma_{1,m}^B +\Delta\sigma
+ :label: eqnscombcorr
if we define :math:`x_i^{AB}` as the combined and renumbered set of
data points we can write:
.. math:: \sigma_{1,n+m}^{AB} ~=~ \sum_{i=1}^{n+m} \left[x_i^{AB} - \frac{X_{1,n+m}^{AB}}{n+m}\right]^2
+ :label: eqnpscombpoints
and thus
-.. math::
-
- \sum_{i=1}^{n+m} \left[x_i^{AB} - \frac{X_{1,n+m}^{AB}}{n+m}\right]^2 ~=~
- \sum_{i=1}^{n} \left[x_i^{A} - \frac{X_{1,n}^{A}}{n}\right]^2 +
- \sum_{i=1}^{m} \left[x_i^{B} - \frac{X_{1,m}^{B}}{m}\right]^2 +\Delta\sigma
+.. math:: \sum_{i=1}^{n+m} \left[x_i^{AB} - \frac{X_{1,n+m}^{AB}}{n+m}\right]^2 ~=~
+ \sum_{i=1}^{n} \left[x_i^{A} - \frac{X_{1,n}^{A}}{n}\right]^2 +
+ \sum_{i=1}^{m} \left[x_i^{B} - \frac{X_{1,m}^{B}}{m}\right]^2 +\Delta\sigma
+ :label: eqnpscombresult
or
-.. math::
-
- \begin{aligned}
- \sum_{i=1}^{n+m} \left[(x_i^{AB})^2 - 2 x_i^{AB}\frac{X^{AB}_{1,n+m}}{n+m} + \left(\frac{X^{AB}_{1,n+m}}{n+m}\right)^2 \right] &-& \nonumber \\
- \sum_{i=1}^{n} \left[(x_i^{A})^2 - 2 x_i^{A}\frac{X^A_{1,n}}{n} + \left(\frac{X^A_{1,n}}{n}\right)^2 \right] &-& \nonumber \\
- \sum_{i=1}^{m} \left[(x_i^{B})^2 - 2 x_i^{B}\frac{X^B_{1,m}}{m} + \left(\frac{X^B_{1,m}}{m}\right)^2 \right] &=& \Delta\sigma\end{aligned}
+.. math:: \begin{aligned}
+ \sum_{i=1}^{n+m} \left[(x_i^{AB})^2 - 2 x_i^{AB}\frac{X^{AB}_{1,n+m}}{n+m} + \left(\frac{X^{AB}_{1,n+m}}{n+m}\right)^2 \right] &-& \nonumber \\
+ \sum_{i=1}^{n} \left[(x_i^{A})^2 - 2 x_i^{A}\frac{X^A_{1,n}}{n} + \left(\frac{X^A_{1,n}}{n}\right)^2 \right] &-& \nonumber \\
+ \sum_{i=1}^{m} \left[(x_i^{B})^2 - 2 x_i^{B}\frac{X^B_{1,m}}{m} + \left(\frac{X^B_{1,m}}{m}\right)^2 \right] &=& \Delta\sigma\end{aligned}
+ :label: eqnpscombresult2
all the :math:`x_i^2` terms drop out, and the terms independent of the
summation counter :math:`i` can be simplified:
-.. math::
-
- \begin{aligned}
- \frac{\left(X^{AB}_{1,n+m}\right)^2}{n+m} \,-\,
- \frac{\left(X^A_{1,n}\right)^2}{n} \,-\,
- \frac{\left(X^B_{1,m}\right)^2}{m} &-& \nonumber \\
- 2\,\frac{X^{AB}_{1,n+m}}{n+m}\sum_{i=1}^{n+m}x_i^{AB} \,+\,
- 2\,\frac{X^{A}_{1,n}}{n}\sum_{i=1}^{n}x_i^{A} \,+\,
- 2\,\frac{X^{B}_{1,m}}{m}\sum_{i=1}^{m}x_i^{B} &=& \Delta\sigma\end{aligned}
+.. math:: \begin{aligned}
+ \frac{\left(X^{AB}_{1,n+m}\right)^2}{n+m} \,-\,
+ \frac{\left(X^A_{1,n}\right)^2}{n} \,-\,
+ \frac{\left(X^B_{1,m}\right)^2}{m} &-& \nonumber \\
+ 2\,\frac{X^{AB}_{1,n+m}}{n+m}\sum_{i=1}^{n+m}x_i^{AB} \,+\,
+ 2\,\frac{X^{A}_{1,n}}{n}\sum_{i=1}^{n}x_i^{A} \,+\,
+ 2\,\frac{X^{B}_{1,m}}{m}\sum_{i=1}^{m}x_i^{B} &=& \Delta\sigma\end{aligned}
+ :label: eqnpscombsimp
we recognize the three partial sums on the second line and use
:eq:`eqn. %s <eqnpscomb>` to obtain:
.. math:: \Delta\sigma ~=~ \frac{\left(mX^A_{1,n} - nX^B_{1,m}\right)^2}{nm(n+m)}
+ :label: eqnpscombused
if we check this by inserting :math:`m=1` we get back
:eq:`eqn. %s <eqnsimplevar0>`
Nevertheless we can try the same approach as before by writing:
.. math:: \sigma_{m,n}^S ~=~ \sum_{s=1}^S \sigma_{m,n}^s + \Delta\sigma
+ :label: eqnsigmatermsfluct
if we fill in :eq:`eqn. %s <eqnsigma>`:
which we can expand to:
-.. math::
-
- \begin{aligned}
- &~&\sum_{i=m}^n \left[\sum_{s=1}^S (x_i^s)^2 + \left(\frac{X_{m,n}^S}{m-n+1}\right)^2 -2\left(\frac{X_{m,n}^S}{m-n+1}\sum_{s=1}^S x_i^s + \sum_{s=1}^S \sum_{s'=s+1}^S x_i^s x_i^{s'} \right)\right] \nonumber \\
- &-&\sum_{s=1}^S \sum_{i=m}^n \left[(x_i^s)^2 - 2\,\frac{X_{m,n}^s}{m-n+1}\,x_i^s + \left(\frac{X_{m,n}^s}{m-n+1}\right)^2\right] ~=~\Delta\sigma \end{aligned}
+.. math:: \begin{aligned}
+ &~&\sum_{i=m}^n \left[\sum_{s=1}^S (x_i^s)^2 + \left(\frac{X_{m,n}^S}{m-n+1}\right)^2 -2\left(\frac{X_{m,n}^S}{m-n+1}\sum_{s=1}^S x_i^s + \sum_{s=1}^S \sum_{s'=s+1}^S x_i^s x_i^{s'} \right)\right] \nonumber \\
+ &-&\sum_{s=1}^S \sum_{i=m}^n \left[(x_i^s)^2 - 2\,\frac{X_{m,n}^s}{m-n+1}\,x_i^s + \left(\frac{X_{m,n}^s}{m-n+1}\right)^2\right] ~=~\Delta\sigma \end{aligned}
+ :label: eqnsimtermsexpanded
the terms with :math:`(x_i^s)^2` cancel, so that we can simplify to:
-.. math::
-
- \begin{aligned}
- &~&\frac{\left(X_{m,n}^S\right)^2}{m-n+1} -2 \frac{X_{m,n}^S}{m-n+1}\sum_{i=m}^n\sum_{s=1}^S x_i^s -2\sum_{i=m}^n\sum_{s=1}^S \sum_{s'=s+1}^S x_i^s x_i^{s'}\, - \nonumber \\
- &~&\sum_{s=1}^S \sum_{i=m}^n \left[- 2\,\frac{X_{m,n}^s}{m-n+1}\,x_i^s + \left(\frac{X_{m,n}^s}{m-n+1}\right)^2\right] ~=~\Delta\sigma \end{aligned}
+.. math:: \begin{aligned}
+ &~&\frac{\left(X_{m,n}^S\right)^2}{m-n+1} -2 \frac{X_{m,n}^S}{m-n+1}\sum_{i=m}^n\sum_{s=1}^S x_i^s -2\sum_{i=m}^n\sum_{s=1}^S \sum_{s'=s+1}^S x_i^s x_i^{s'}\, - \nonumber \\
+ &~&\sum_{s=1}^S \sum_{i=m}^n \left[- 2\,\frac{X_{m,n}^s}{m-n+1}\,x_i^s + \left(\frac{X_{m,n}^s}{m-n+1}\right)^2\right] ~=~\Delta\sigma \end{aligned}
+ :label: eqnsigmatermssimplefied
or
.. math:: -\frac{\left(X_{m,n}^S\right)^2}{m-n+1} -2\sum_{i=m}^n\sum_{s=1}^S \sum_{s'=s+1}^S x_i^s x_i^{s'}\, + \sum_{s=1}^S \frac{\left(X_{m,n}^s\right)^2}{m-n+1} ~=~\Delta\sigma
+ :label: eqnsigmatermsalternative
If we now expand the first term using
:eq:`eqn. %s <eqnsumterms>` we obtain:
.. math:: -\frac{\left(\sum_{s=1}^SX_{m,n}^s\right)^2}{m-n+1} -2\sum_{i=m}^n\sum_{s=1}^S \sum_{s'=s+1}^S x_i^s x_i^{s'}\, + \sum_{s=1}^S \frac{\left(X_{m,n}^s\right)^2}{m-n+1} ~=~\Delta\sigma
+ :label: eqnsigmatermsfirstexpand
which we can reformulate to:
.. math:: -2\left[\sum_{s=1}^S \sum_{s'=s+1}^S X_{m,n}^s X_{m,n}^{s'}\,+\sum_{i=m}^n\sum_{s=1}^S \sum_{s'=s+1}^S x_i^s x_i^{s'}\right] ~=~\Delta\sigma
+ :label: eqnsigmatermsreformed
or
.. math:: -2\left[\sum_{s=1}^S X_{m,n}^s \sum_{s'=s+1}^S X_{m,n}^{s'}\,+\,\sum_{s=1}^S \sum_{i=m}^nx_i^s \sum_{s'=s+1}^S x_i^{s'}\right] ~=~\Delta\sigma
+ :label: eqnsigmatermsreformedalternative
which gives
.. math:: -2\sum_{s=1}^S \left[X_{m,n}^s \sum_{s'=s+1}^S \sum_{i=m}^n x_i^{s'}\,+\,\sum_{i=m}^n x_i^s \sum_{s'=s+1}^S x_i^{s'}\right] ~=~\Delta\sigma
+ :label: eqnsigmatermsfinal
Since we need all data points :math:`i` to evaluate this, in general
this is not possible. We can then make an estimate of
:math:`l` to denote particles: :math:`\mathbf{r}_i` is the
*position vector* of particle :math:`i`, and using this notation:
-.. math::
-
- \begin{aligned}
- \mathbf{r}_{ij} = \mathbf{r}_j-\mathbf{r}_i\\
- r_{ij}= | \mathbf{r}_{ij} | \end{aligned}
+.. math:: \begin{aligned}
+ \mathbf{r}_{ij} = \mathbf{r}_j-\mathbf{r}_i\\
+ r_{ij}= | \mathbf{r}_{ij} | \end{aligned}
+ :label: eqnnotation
The force on particle :math:`i` is denoted by
:math:`\mathbf{F}_i` and
.. math:: \mathbf{F}_{ij} = \mbox{force on $i$ exerted by $j$}
+ :label: eqbforcenotation
MD units
--------
It relates the mechanical quantities to the electrical quantities as in
.. math:: V = f \frac{q^2}{r} \mbox{\ \ or\ \ } F = f \frac{q^2}{r^2}
+ :label: eqnelecconv
Electric potentials :math:`\Phi` and electric fields
:math:`\mathbf{E}` are intermediate quantities in the
the factor :math:`f` in expressions that evaluate :math:`\Phi` and
:math:`\mathbf{E}`:
-.. math::
-
- \begin{aligned}
- \Phi(\mathbf{r}) = f \sum_j \frac{q_j}{| \mathbf{r}-\mathbf{r}_j | } \\
- \mathbf{E}(\mathbf{r}) = f \sum_j q_j \frac{(\mathbf{r}-\mathbf{r}_j)}{| \mathbf{r}-\mathbf{r}_j| ^3}\end{aligned}
+.. math:: \begin{aligned}
+ \Phi(\mathbf{r}) = f \sum_j \frac{q_j}{| \mathbf{r}-\mathbf{r}_j | } \\
+ \mathbf{E}(\mathbf{r}) = f \sum_j q_j \frac{(\mathbf{r}-\mathbf{r}_j)}{| \mathbf{r}-\mathbf{r}_j| ^3}\end{aligned}
+ :label: eqnelecfacinclude
With these definitions, :math:`q\Phi` is an energy and
:math:`q\mathbf{E}` is a force. The units are those given
temperature of :math:`0.008\ldots` units; if a reduced temperature of 1
is required, the |Gromacs| temperature should be :math:`120.272\,36`.
-In :numref:`Table %s <table-reduced>`
-quantities are given for LJ
+In :numref:`Table %s <table-reduced>` quantities are given for LJ
potentials:
.. math:: V_{LJ} = 4\epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^{6} \right]
+ :label: eqnbaseljpotentials
.. _table-reduced:
The virial :math:`\Xi` can be written in full tensor form as:
.. math:: \Xi~=~-\frac{1}{2}~\sum_{i < j}^N~\mathbf{r}_ij\otimes\mathbf{F}_{ij}
+ :label: eqnvirialfulltensorform
where :math:`\otimes` denotes the *direct product* of two vectors. [1]_
When this is computed in the inner loop of an MD program 9
taken into account for the virial:
.. math:: \Xi~=~-\frac{1}{2}~\sum_{i < j}^{N}~\mathbf{r}_{ij}^n\otimes\mathbf{F}_{ij}
+ :label: eqnvirialperiodicity
where :math:`\mathbf{r}_{ij}^n` denotes the distance
vector of the *nearest image* of atom :math:`i` from atom :math:`j`. In
to:
.. math:: \mathbf{r}_{ij}^n~=~\mathbf{r}_i+\delta_i-\mathbf{r}_j
+ :label: eqnvirialdiffvector
or in shorthand:
.. math:: \mathbf{r}_{ij}^n~=~\mathbf{r}_i^n-\mathbf{r}_j
+ :label: eqnvirialdiffvecshort
In a triclinic system, there are 27 possible images of :math:`i`; when
a truncated octahedron is used, there are 15 possible images.
Starting from the above definition of the virial, we then get
-.. math::
-
- \begin{aligned}
- \Xi
- &~=~&-{\frac{1}{2}}~\sum_{i < j}^{N}~{\mathbf r}^n_{ij} \otimes {\mathbf F}_{ij} \nonumber \\
- &~=~&-{\frac{1}{2}}~\sum_{i < j}^{N}~\left( {\mathbf r}_i + \delta_{ij} - {\mathbf r}_j \right) \otimes {\mathbf F}_{ij} \nonumber \\
- &~=~&-{\frac{1}{4}}~\sum_{i=1}^{N}~\sum_{j=1}^{N}~\left( {\mathbf r}_i + \delta_{ij} - {\mathbf r}_j \right) \otimes {\mathbf F}_{ij} \nonumber \\
- &~=~&-{\frac{1}{4}}~\sum_{i=1}^{N}~\sum_{s}~\sum_{j=1}^{N}~\left( {\mathbf r}_i + \delta_{i,s} - {\mathbf r}_j \right) \otimes {\mathbf F}_{ij,s} \nonumber \\
- &~=~&-{\frac{1}{4}}~\sum_{i=}^{N}~\sum_{s}~\sum_{j=1}^{N}~\left( \left( {\mathbf r}_i + \delta_{i,s} \right) \otimes {\mathbf F}_{ij,s} -{\mathbf r}_j \otimes {\mathbf F}_{ij,s} \right) \nonumber \\
- &~=~&-{\frac{1}{4}}~\sum_{i=1}^{N}~\sum_{s}~\sum_{j=1}^N ~\left( {\mathbf r}_i + \delta_{i,s} \right) \otimes {\mathbf F}_{ij,s} + {\frac{1}{4}}\sum_{i=1}^{N}~\sum_{s}~\sum_{j=1}^{N} {\mathbf r}_j \otimes {\mathbf F}_{ij,s} \nonumber \\
- &~=~&-{\frac{1}{4}}~\sum_{i=1}^{N}~\sum_{s}~\sum_{j=1}^N ~\left( {\mathbf r}_i + \delta_{i,s} \right) \otimes {\mathbf F}_{ij,s} + {\frac{1}{4}}\sum_{i=1}^{N}~\sum_{j=1}^{N} {\mathbf r}_j \otimes {\mathbf F}_{ij} \nonumber \\
- &~=~&-{\frac{1}{4}}~\sum_{s}~\sum_{i=1}^{N}~\left( {\mathbf r}_i + \delta_{i,s} \right) \otimes ~\sum_{j=1}^N {\mathbf F}_{ij,s} + {\frac{1}{4}}\sum_{j=1}^N {\mathbf r}_j \otimes \sum_{i=1}^{N} {\mathbf F}_{ij} \nonumber \\
- &~=~&-{\frac{1}{4}}~\sum_{s}~\sum_{i=1}^{N}~\left( {\mathbf r}_i + \delta_{i,s} \right) \otimes ~\sum_{j=1}^N {\mathbf F}_{ij,s} - {\frac{1}{4}}\sum_{j=1}^N {\mathbf r}_j \otimes \sum_{i=1}^{N} {\mathbf F}_{ji} \nonumber \\
- &~=~&-{\frac{1}{4}}~\sum_{s}~\sum_{i=1}^{N}~\left( {\mathbf r}_i + \delta_{i,s} \right) \otimes {\mathbf F}_{i,s} - {\frac{1}{4}}\sum_{j=1}^N~{\mathbf r}_j \otimes {\mathbf F}_{j} \nonumber \\
- &~=~&-{\frac{1}{4}}~\left(\sum_{i=1}^{N}~{\mathbf r}_i \otimes {\mathbf F}_{i} + \sum_{j=1}^N~{\mathbf r}_j \otimes {\mathbf F}_{j} \right) - {\frac{1}{4}}\sum_{s}~\sum_{i=1}^{N} \delta_{i,s} \otimes {\mathbf F}_{i,s} \nonumber \\
- &~=~&-{\frac{1}{2}}\sum_{i=1}^{N}~{\mathbf r}_i \otimes {\mathbf F}_{i} -{\frac{1}{4}}\sum_{s}~\sum_{i=1}^{N}~\delta_{i,s} \otimes {\mathbf F}_{i,s} \nonumber \\
- &~=~&-{\frac{1}{2}}\sum_{i=1}^{N}~{\mathbf r}_i \otimes {\mathbf F}_{i} -{\frac{1}{4}}\sum_{s}~\delta_{s} \otimes {\mathbf F}_{s} \nonumber \\
- &~=~&\Xi_0 + \Xi_1\end{aligned}
+.. math:: \begin{aligned}
+ \Xi
+ &~=~&-{\frac{1}{2}}~\sum_{i < j}^{N}~{\mathbf r}^n_{ij} \otimes {\mathbf F}_{ij} \nonumber \\
+ &~=~&-{\frac{1}{2}}~\sum_{i < j}^{N}~\left( {\mathbf r}_i + \delta_{ij} - {\mathbf r}_j \right) \otimes {\mathbf F}_{ij} \nonumber \\
+ &~=~&-{\frac{1}{4}}~\sum_{i=1}^{N}~\sum_{j=1}^{N}~\left( {\mathbf r}_i + \delta_{ij} - {\mathbf r}_j \right) \otimes {\mathbf F}_{ij} \nonumber \\
+ &~=~&-{\frac{1}{4}}~\sum_{i=1}^{N}~\sum_{s}~\sum_{j=1}^{N}~\left( {\mathbf r}_i + \delta_{i,s} - {\mathbf r}_j \right) \otimes {\mathbf F}_{ij,s} \nonumber \\
+ &~=~&-{\frac{1}{4}}~\sum_{i=}^{N}~\sum_{s}~\sum_{j=1}^{N}~\left( \left( {\mathbf r}_i + \delta_{i,s} \right) \otimes {\mathbf F}_{ij,s} -{\mathbf r}_j \otimes {\mathbf F}_{ij,s} \right) \nonumber \\
+ &~=~&-{\frac{1}{4}}~\sum_{i=1}^{N}~\sum_{s}~\sum_{j=1}^N ~\left( {\mathbf r}_i + \delta_{i,s} \right) \otimes {\mathbf F}_{ij,s} + {\frac{1}{4}}\sum_{i=1}^{N}~\sum_{s}~\sum_{j=1}^{N} {\mathbf r}_j \otimes {\mathbf F}_{ij,s} \nonumber \\
+ &~=~&-{\frac{1}{4}}~\sum_{i=1}^{N}~\sum_{s}~\sum_{j=1}^N ~\left( {\mathbf r}_i + \delta_{i,s} \right) \otimes {\mathbf F}_{ij,s} + {\frac{1}{4}}\sum_{i=1}^{N}~\sum_{j=1}^{N} {\mathbf r}_j \otimes {\mathbf F}_{ij} \nonumber \\
+ &~=~&-{\frac{1}{4}}~\sum_{s}~\sum_{i=1}^{N}~\left( {\mathbf r}_i + \delta_{i,s} \right) \otimes ~\sum_{j=1}^N {\mathbf F}_{ij,s} + {\frac{1}{4}}\sum_{j=1}^N {\mathbf r}_j \otimes \sum_{i=1}^{N} {\mathbf F}_{ij} \nonumber \\
+ &~=~&-{\frac{1}{4}}~\sum_{s}~\sum_{i=1}^{N}~\left( {\mathbf r}_i + \delta_{i,s} \right) \otimes ~\sum_{j=1}^N {\mathbf F}_{ij,s} - {\frac{1}{4}}\sum_{j=1}^N {\mathbf r}_j \otimes \sum_{i=1}^{N} {\mathbf F}_{ji} \nonumber \\
+ &~=~&-{\frac{1}{4}}~\sum_{s}~\sum_{i=1}^{N}~\left( {\mathbf r}_i + \delta_{i,s} \right) \otimes {\mathbf F}_{i,s} - {\frac{1}{4}}\sum_{j=1}^N~{\mathbf r}_j \otimes {\mathbf F}_{j} \nonumber \\
+ &~=~&-{\frac{1}{4}}~\left(\sum_{i=1}^{N}~{\mathbf r}_i \otimes {\mathbf F}_{i} + \sum_{j=1}^N~{\mathbf r}_j \otimes {\mathbf F}_{j} \right) - {\frac{1}{4}}\sum_{s}~\sum_{i=1}^{N} \delta_{i,s} \otimes {\mathbf F}_{i,s} \nonumber \\
+ &~=~&-{\frac{1}{2}}\sum_{i=1}^{N}~{\mathbf r}_i \otimes {\mathbf F}_{i} -{\frac{1}{4}}\sum_{s}~\sum_{i=1}^{N}~\delta_{i,s} \otimes {\mathbf F}_{i,s} \nonumber \\
+ &~=~&-{\frac{1}{2}}\sum_{i=1}^{N}~{\mathbf r}_i \otimes {\mathbf F}_{i} -{\frac{1}{4}}\sum_{s}~\delta_{s} \otimes {\mathbf F}_{s} \nonumber \\
+ &~=~&\Xi_0 + \Xi_1\end{aligned}
+ :label: eqnviriallong
In the second-last stage, we have used the property that each shift
vector itself does not depend on the coordinates of particle :math:`i`,
vector (in the nonbonded kernels), and then just use a sum over the
different shift vectors outside the kernels. We have also used
-.. math::
-
- \begin{aligned}
- \mathbf{F}_i&~=~&\sum_{j=1}^N~\mathbf{F}_{ij} \\
- \mathbf{F}_j&~=~&\sum_{i=1}^N~\mathbf{F}_{ji}\end{aligned}
+.. math:: \begin{aligned}
+ \mathbf{F}_i&~=~&\sum_{j=1}^N~\mathbf{F}_{ij} \\
+ \mathbf{F}_j&~=~&\sum_{i=1}^N~\mathbf{F}_{ji}\end{aligned}
+ :label: eqnvirialtotalforce
which is the total force on :math:`i` with respect to :math:`j`.
Because we use Newton’s Third Law:
.. math:: \mathbf{F}_{ij}~=~-\mathbf{F}_{ji}
+ :label: eqnnewtonsthird
we must, in the implementation, double the term containing the shift
:math:`\delta_i`. Similarly, in a few places we have summed the
Since the covalent bond force gives a contribution to the virial, we
have:
-.. math::
-
- \begin{aligned}
- b &~=~& \|\mathbf{r}_{ij}^n\| \\
- V_b &~=~& \frac{1}{2} k_b(b-b_0)^2 \\
- \mathbf{F}_i &~=~& -\nabla V_b \\
- &~=~& k_b(b-b_0)\frac{\mathbf{r}_{ij}^n}{b} \\
- \mathbf{F}_j &~=~& -\mathbf{F}_i\end{aligned}
+.. math:: \begin{aligned}
+ b &~=~& \|\mathbf{r}_{ij}^n\| \\
+ V_b &~=~& \frac{1}{2} k_b(b-b_0)^2 \\
+ \mathbf{F}_i &~=~& -\nabla V_b \\
+ &~=~& k_b(b-b_0)\frac{\mathbf{r}_{ij}^n}{b} \\
+ \mathbf{F}_j &~=~& -\mathbf{F}_i\end{aligned}
+ :label: eqncovbondvirial
The virial contribution from the bonds then is:
-.. math::
-
- \begin{aligned}
- \Xi_b &~=~& -\frac{1}{2}(\mathbf{r}_i^n\otimes\mathbf{F}_i~+~\mathbf{r}_j\otimes\mathbf{F}_j) \\
- &~=~& -\frac{1}{2}\mathbf{r}_{ij}^n\otimes\mathbf{F}_i\end{aligned}
+.. math:: \begin{aligned}
+ \Xi_b &~=~& -\frac{1}{2}(\mathbf{r}_i^n\otimes\mathbf{F}_i~+~\mathbf{r}_j\otimes\mathbf{F}_j) \\
+ &~=~& -\frac{1}{2}\mathbf{r}_{ij}^n\otimes\mathbf{F}_i\end{aligned}
+ :label: eqncovbondvirialcontri
Virial from SHAKE
~~~~~~~~~~~~~~~~~
this force does not come out of the algorithm (as in standard SHAKE) it
can be calculated afterward (when using *leap-frog*) by:
-.. math::
-
- \begin{aligned}
- \Delta\mathbf{r}_i&~=~&{\mathbf{r}_i}(t+{\Delta t})-
- [\mathbf{r}_i(t)+{\bf v}_i(t-\frac{{\Delta t}}{2}){\Delta t}+\frac{\mathbf{F}_i}{m_i}{\Delta t}^2] \\
- {\bf G}_i&~=~&\frac{m_i{\Delta}{\mathbf{r}_i}}{{\Delta t}^2i}\end{aligned}
+.. math:: \begin{aligned}
+ \Delta\mathbf{r}_i&~=~&{\mathbf{r}_i}(t+{\Delta t})-
+ [\mathbf{r}_i(t)+{\bf v}_i(t-\frac{{\Delta t}}{2}){\Delta t}+\frac{\mathbf{F}_i}{m_i}{\Delta t}^2] \\
+ {\bf G}_i&~=~&\frac{m_i{\Delta}{\mathbf{r}_i}}{{\Delta t}^2i}\end{aligned}
+ :label: eqnshakevirial
This does not help us in the general case. Only when no periodicity is
needed (like in rigid water) this can be used, otherwise we must add the
way:
.. math:: \Xi~=~-\frac{1}{2}\sum_i^{N_c}~\mathbf{r}_i\otimes\mathbf{F}_i
+ :label: eqnshakevirialsinglesum
where :math:`N_c` is the number of constrained atoms.
potential (right).
.. math:: V_b~({r_{ij}}) = {\frac{1}{2}}k^b_{ij}({r_{ij}}-b_{ij})^2
+ :label: eqnharmbondstretch
See also :numref:`Fig. %s <fig-bstretch1>`, with the force given by:
.. math:: \mathbf{F}_i(\mathbf{r}_ij) = k^b_{ij}({r_{ij}}-b_{ij}) {\frac{{\mathbf{r}_{ij}}}{{r_{ij}}}}
+ :label: eqnharmbondstretchforce
.. _g96bond:
potential is, for reasons of computational efficiency, written as:
.. math:: V_b~({r_{ij}}) = \frac{1}{4}k^b_{ij}\left({r_{ij}}^2-b_{ij}^2\right)^2
+ :label: eqng96bond
The corresponding force is:
.. math:: \mathbf{F}_i(\mathbf{r}_ij) = k^b_{ij}({r_{ij}}^2-b_{ij}^2)~\mathbf{r}_ij
+ :label: eqng96bondforce
The force constants for this form of the potential are related to the
usual harmonic force constant :math:`k^{b,\mathrm{harm}}`
(sec. :ref:`bondpot`) as
.. math:: 2 k^b b_{ij}^2 = k^{b,\mathrm{harm}}
+ :label: eqn96harmrelation
The force constants are mostly derived from the harmonic ones used in
GROMOS-87 :ref:`78 <refbiomos>`. Although this form is
distance. The functional form is:
.. math:: \displaystyle V_{morse} (r_{ij}) = D_{ij} [1 - \exp(-\beta_{ij}(r_{ij}-b_{ij}))]^2,
+ :label: eqnmorsebond
See also :numref:`Fig. %s <fig-morse>`, and the corresponding force is:
-.. math::
-
- \begin{array}{rcl}
- \displaystyle {\bf F}_{morse} ({\bf r}_{ij})&=&2 D_{ij} \beta_{ij} \exp(-\beta_{ij}(r_{ij}-b_{ij})) * \\
- \displaystyle \: & \: &[1 - \exp(-\beta_{ij}(r_{ij}-b_{ij}))] \frac{\displaystyle {\bf r}_{ij}}{\displaystyle r_{ij}},
- \end{array}
+.. math:: \begin{array}{rcl}
+ \displaystyle {\bf F}_{morse} ({\bf r}_{ij})&=&2 D_{ij} \beta_{ij} \exp(-\beta_{ij}(r_{ij}-b_{ij})) * \\
+ \displaystyle \: & \: &[1 - \exp(-\beta_{ij}(r_{ij}-b_{ij}))] \frac{\displaystyle {\bf r}_{ij}}{\displaystyle r_{ij}},
+ \end{array}
+ :label: eqnmorsebondforce
where :math:`\displaystyle D_{ij}` is the depth of the well in
kJ/mol, :math:`\displaystyle \beta_{ij}` defines the steepness of the
*j*, the fundamental vibration frequency :math:`\displaystyle\omega_{ij}` and the well depth :math:`\displaystyle D_{ij}`:
.. math:: \displaystyle \beta_{ij}= \omega_{ij} \sqrt{\frac{\mu_{ij}}{2 D_{ij}}}
+ :label: eqnmorsefreq
and because :math:`\displaystyle \omega = \sqrt{k/\mu}`, one can
rewrite :math:`\displaystyle \beta_{ij}` in terms of the harmonic
and substituting :eq:`eqn. %s <eqnbetaij>` and :eq:`eqn. %s <eqnexpminx>` in the
functional form:
-.. math::
-
- \begin{array}{rcl}
- \displaystyle V_{morse} (r_{ij})&=&D_{ij} [1 - \exp(-\beta_{ij}(r_{ij}-b_{ij}))]^2\\
- \displaystyle \:&=&D_{ij} [1 - (1 -\sqrt{\frac{k_{ij}}{2 D_{ij}}}(r_{ij}-b_{ij}))]^2\\
- \displaystyle \:&=&\frac{1}{2} k_{ij} (r_{ij}-b_{ij}))^2
- \end{array}
+.. math:: \begin{array}{rcl}
+ \displaystyle V_{morse} (r_{ij})&=&D_{ij} [1 - \exp(-\beta_{ij}(r_{ij}-b_{ij}))]^2\\
+ \displaystyle \:&=&D_{ij} [1 - (1 -\sqrt{\frac{k_{ij}}{2 D_{ij}}}(r_{ij}-b_{ij}))]^2\\
+ \displaystyle \:&=&\frac{1}{2} k_{ij} (r_{ij}-b_{ij}))^2
+ \end{array}
+ :label: eqnharmfrommorse
we recover the harmonic bond stretching potential.
harmonic form:
.. math:: V_b~({r_{ij}}) = k^b_{ij}({r_{ij}}-b_{ij})^2 + k^b_{ij}k^{cub}_{ij}({r_{ij}}-b_{ij})^3
+ :label: eqncubicbond
A flexible water model (based on the SPC water model \ :ref:`80 <refBerendsen81>`)
including a cubic bond stretching potential for the O-H bond was
The force corresponding to this potential is:
.. math:: \mathbf{F}_i(\mathbf{r}_ij) = 2k^b_{ij}({r_{ij}}-b_{ij})~{\frac{{\mathbf{r}_{ij}}}{{r_{ij}}}}+ 3k^b_{ij}k^{cub}_{ij}({r_{ij}}-b_{ij})^2~{\frac{{\mathbf{r}_{ij}}}{{r_{ij}}}}
+ :label: eqncubicbondforce
FENE bond stretching potential
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In coarse-grained polymer simulations the beads are often connected by a
FENE (finitely extensible nonlinear elastic) potential \ :ref:`82 <refWarner72>`:
-.. math::
-
- V_{\mbox{\small FENE}}({r_{ij}}) =
- -{\frac{1}{2}}k^b_{ij} b^2_{ij} \log\left(1 - \frac{{r_{ij}}^2}{b^2_{ij}}\right)
+.. math:: V_{\mbox{FENE}}({r_{ij}}) =
+ -{\frac{1}{2}}k^b_{ij} b^2_{ij} \log\left(1 - \frac{{r_{ij}}^2}{b^2_{ij}}\right)
+ :label: eqnfenebond
The potential looks complicated, but the expression for the force is
simpler:
-.. math::
-
- F_{\mbox{\small FENE}}(\mathbf{r}_ij) =
- -k^b_{ij} \left(1 - \frac{{r_{ij}}^2}{b^2_{ij}}\right)^{-1} \mathbf{r}_ij
+.. math:: F_{\mbox{FENE}}(\mathbf{r}_ij) =
+ -k^b_{ij} \left(1 - \frac{{r_{ij}}^2}{b^2_{ij}}\right)^{-1} \mathbf{r}_ij
+ :label: eqnfenebondforce
At short distances the potential asymptotically goes to a harmonic
potential with force constant :math:`k^b`, while it diverges at distance
.. figure:: plots/angle.*
:width: 7.00000cm
- Principle of angle vibration (left) and the bond angle potential
- (right).
+ Principle of angle vibration (left) and the bond angle potential.
.. math:: V_a({\theta_{ijk}}) = {\frac{1}{2}}k^{\theta}_{ijk}({\theta_{ijk}}-{\theta_{ijk}}^0)^2
+ :label: eqnharmangle
As the bond-angle vibration is represented by a harmonic potential, the
form is the same as the bond stretching
The force equations are given by the chain rule:
-.. math::
-
- \begin{array}{l}
- \mathbf{F}_i ~=~ -\displaystyle\frac{d V_a({\theta_{ijk}})}{d \mathbf{r}_i} \\
- \mathbf{F}_k ~=~ -\displaystyle\frac{d V_a({\theta_{ijk}})}{d \mathbf{r}_k} \\
- \mathbf{F}_j ~=~ -\mathbf{F}_i-\mathbf{F}_k
- \end{array}
- ~ \mbox{ ~ where ~ } ~
- {\theta_{ijk}}= \arccos \frac{(\mathbf{r}_ij \cdot \mathbf{r}_{kj})}{r_{ij}r_{kj}}
+.. math:: \begin{array}{l}
+ \mathbf{F}_i ~=~ -\displaystyle\frac{d V_a({\theta_{ijk}})}{d \mathbf{r}_i} \\
+ \mathbf{F}_k ~=~ -\displaystyle\frac{d V_a({\theta_{ijk}})}{d \mathbf{r}_k} \\
+ \mathbf{F}_j ~=~ -\mathbf{F}_i-\mathbf{F}_k
+ \end{array}
+ ~ \mbox{ ~ where ~ } ~
+ {\theta_{ijk}}= \arccos \frac{(\mathbf{r}_ij \cdot \mathbf{r}_{kj})}{r_{ij}r_{kj}}
+ :label: eqnharmangleforce
The numbering :math:`i,j,k` is in sequence of covalently bonded atoms.
Atom :math:`j` is in the middle; atoms :math:`i` and :math:`k` are at
angle vibrations:
.. math:: V_a({\theta_{ijk}}) = {\frac{1}{2}}k^{\theta}_{ijk}\left(\cos({\theta_{ijk}}) - \cos({\theta_{ijk}}^0)\right)^2
- :label: eqG96angle
+ :label: eqnG96angle
where
.. math:: \cos({\theta_{ijk}}) = \frac{\mathbf{r}_ij\cdot\mathbf{r}_{kj}}{{r_{ij}}r_{kj}}
+ :label: eqnG96anglecos
The corresponding force can be derived by partial differentiation with
respect to the atomic positions. The force constants in this function
:math:`k^{\theta,\mathrm{harm}}` (:ref:`harmonicangle`) by:
.. math:: k^{\theta} \sin^2({\theta_{ijk}}^0) = k^{\theta,\mathrm{harm}}
+ :label: eqnG96angleFC
In the GROMOS-96 manual there is a much more complicated conversion
formula which is temperature dependent. The formulas are equivalent at 0
coarse-grained molecular dynamics simulations.
To systematically hinder the bending angles from reaching the
-:math:`180^{\circ}` value, the bending potential :eq:`eqn %s <eqG96angle>` is
+:math:`180^{\circ}` value, the bending potential :eq:`eqn %s <eqnG96angle>` is
divided by a :math:`\sin^2\theta` factor:
.. math:: V_{\rm ReB}(\theta_i) = \frac{1}{2} k_{\theta} \frac{(\cos\theta_i - \cos\theta_0)^2}{\sin^2\theta_i}.
- :label: eqReB
+ :label: eqnReB
:numref:`Figure %s <fig-ReB>` shows the comparison between the ReB potential,
-:eq:`%s <eqReB>`, and the standard one :eq:`%s <eqG96angle>`.
+:eq:`%s <eqnReB>`, and the standard one :eq:`%s <eqnG96angle>`.
.. _fig-ReB:
field \ :ref:`84 <refBBrooks83>`. The energy is given by:
.. math:: V_a({\theta_{ijk}}) = {\frac{1}{2}}k^{\theta}_{ijk}({\theta_{ijk}}-{\theta_{ijk}}^0)^2 + {\frac{1}{2}}k^{UB}_{ijk}(r_{ik}-r_{ik}^0)^2
+ :label: eqnUBAngle
The force equations can be deduced from sections :ref:`harmonicbond`
and :ref:`harmonicangle`.
on particle :math:`i` is:
.. math:: \mathbf{F}_{i} = -k_{rr'}\left(\left|\mathbf{r}_{k}-\mathbf{r}_j\right|-r_{2e}\right)\frac{\mathbf{r}_i-\mathbf{r}_j}{\left|\mathbf{r}_{i}-\mathbf{r}_j\right|}
+ :label: eqncrossbbforce
The force on atom :math:`k` can be obtained by swapping :math:`i` and
:math:`k` in the above equation. Finally, the force on atom :math:`j`
by \ :ref:`85 <refLawrence2003b>`:
.. math:: V_{r\theta} ~=~ k_{r\theta} \left(\left|\mathbf{r}_{i}-\mathbf{r}_k\right|-r_{3e} \right) \left(\left|\mathbf{r}_{i}-\mathbf{r}_j\right|-r_{1e} + \left|\mathbf{r}_{k}-\mathbf{r}_j\right|-r_{2e}\right)
+ :label: eqncrossba
where :math:`k_{r\theta}` is the force constant, :math:`r_{3e}` is the
:math:`i-k` distance, and the other constants are the same as in
:eq:`Equation %s <eqncrossbb>`. The force associated with the potential on atom
:math:`i` is:
-.. math::
-
- \mathbf{F}_{i} ~=~ -k_{r\theta}
- \left[
- \left(
- \left| \mathbf{r}_{i} - \mathbf{r}_{k}\right|
- -r_{3e}\right)
- \frac{
- \mathbf{r}_{i}-\mathbf{r}_j}
- { \left| \mathbf{r}_{i}-\mathbf{r}_{j}\right|
- }
- + \left(
- \left| \mathbf{r}_{i}-\mathbf{r}_{j}\right|
- -r_{1e}
- + \left| \mathbf{r}_{k}-\mathbf{r}_{j}\right|
- -r_{2e}\right)
- \frac{
- \mathbf{r}_{i}-\mathbf{r}_{k}}
- {\left| \mathbf{r}_{i}-\mathbf{r}_{k}\right|
- }
- \right]
+.. math:: \mathbf{F}_{i} ~=~ -k_{r\theta}
+ \left[
+ \left(
+ \left| \mathbf{r}_{i} - \mathbf{r}_{k}\right|
+ -r_{3e}\right)
+ \frac{
+ \mathbf{r}_{i}-\mathbf{r}_j}
+ { \left| \mathbf{r}_{i}-\mathbf{r}_{j}\right|
+ }
+ + \left(
+ \left| \mathbf{r}_{i}-\mathbf{r}_{j}\right|
+ -r_{1e}
+ + \left| \mathbf{r}_{k}-\mathbf{r}_{j}\right|
+ -r_{2e}\right)
+ \frac{
+ \mathbf{r}_{i}-\mathbf{r}_{k}}
+ {\left| \mathbf{r}_{i}-\mathbf{r}_{k}\right|
+ }
+ \right]
+ :label: eqncrossbaforce
Quartic angle potential
~~~~~~~~~~~~~~~~~~~~~~~
order polynomial:
.. math:: V_q({\theta_{ijk}}) ~=~ \sum_{n=0}^5 C_n ({\theta_{ijk}}-{\theta_{ijk}}^0)^n
+ :label: eqnquarticangle
.. _imp:
plotted in :numref:`Fig. %s <fig-imps>`.
.. math:: V_{id}(\xi_{ijkl}) = {\frac{1}{2}}k_{\xi}(\xi_{ijkl}-\xi_0)^2
+ :label: eqnharmimpdihedral
Since the potential is harmonic it is discontinuous, but since the
discontinuity is chosen at 180\ :math:`^\circ` distance from
dihedral angle potential (right).
.. math:: V_d(\phi_{ijkl}) = k_{\phi}(1 + \cos(n \phi - \phi_s))
+ :label: eqnperiodicpropdihedral
Proper dihedrals: Ryckaert-Bellemans function
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(see :numref:`Fig. %s <fig-rbdih>`):
.. math:: V_{rb}(\phi_{ijkl}) = \sum_{n=0}^5 C_n( \cos(\psi ))^n,
+ :label: eqnRBproperdihedral
| where :math:`\psi = \phi - 180^\circ`.
| **Note:** A conversion from one convention to another can be achieved
| The RB dihedral function can also be used to include Fourier dihedrals
(see below):
- .. math::
-
- V_{rb} (\phi_{ijkl}) ~=~ \frac{1}{2} \left[F_1(1+\cos(\phi)) + F_2(
- 1-\cos(2\phi)) + F_3(1+\cos(3\phi)) + F_4(1-\cos(4\phi))\right]
+ .. math:: V_{rb} (\phi_{ijkl}) ~=~ \frac{1}{2} \left[F_1(1+\cos(\phi)) + F_2(
+ 1-\cos(2\phi)) + F_3(1+\cos(3\phi)) + F_4(1-\cos(4\phi))\right]
+ :label: eqnRBproperdihedralFourier
| Because of the equalities :math:`\cos(2\phi) = 2\cos^2(\phi) - 1`,
:math:`\cos(3\phi) = 4\cos^3(\phi) - 3\cos(\phi)` and
translate the OPLS parameters to Ryckaert-Bellemans parameters as
follows:
- .. math::
-
- \displaystyle
- \begin{array}{rcl}
- \displaystyle C_0&=&F_2 + \frac{1}{2} (F_1 + F_3)\\
- \displaystyle C_1&=&\frac{1}{2} (- F_1 + 3 \, F_3)\\
- \displaystyle C_2&=& -F_2 + 4 \, F_4\\
- \displaystyle C_3&=&-2 \, F_3\\
- \displaystyle C_4&=&-4 \, F_4\\
- \displaystyle C_5&=&0
- \end{array}
+ .. math:: \displaystyle
+ \begin{array}{rcl}
+ \displaystyle C_0&=&F_2 + \frac{1}{2} (F_1 + F_3)\\
+ \displaystyle C_1&=&\frac{1}{2} (- F_1 + 3 \, F_3)\\
+ \displaystyle C_2&=& -F_2 + 4 \, F_4\\
+ \displaystyle C_3&=&-2 \, F_3\\
+ \displaystyle C_4&=&-4 \, F_4\\
+ \displaystyle C_5&=&0
+ \end{array}
+ :label: eqnoplsRBconversion
| with OPLS parameters in protein convention and RB parameters in
polymer convention (this yields a minus sign for the odd powers of
cosine terms of a Fourier series. In |Gromacs| the four term function is
implemented:
- .. math::
-
- V_{F} (\phi_{ijkl}) ~=~ \frac{1}{2} \left[C_1(1+\cos(\phi)) + C_2(
- 1-\cos(2\phi)) + C_3(1+\cos(3\phi)) + C_4(1-\cos(4\phi))\right],
+ .. math:: V_{F} (\phi_{ijkl}) ~=~ \frac{1}{2} \left[C_1(1+\cos(\phi)) + C_2(
+ 1-\cos(2\phi)) + C_3(1+\cos(3\phi)) + C_4(1-\cos(4\phi))\right],
+ :label: eqnfourierproperdihedral
| Internally, |Gromacs| uses the Ryckaert-Bellemans code to compute
Fourier dihedrals (see above), because this is more efficient.
:ref:`ReB`), a restricted torsion/dihedral potential is introduced:
.. math:: V_{\rm ReT}(\phi_i) = \frac{1}{2} k_{\phi} \frac{(\cos\phi_i - \cos\phi_0)^2}{\sin^2\phi_i}
- :label: eqReT
+ :label: eqnReT
with the advantages of being a function of :math:`\cos\phi` (no
problems taking the derivative of :math:`\sin\phi`) and of keeping the
in a unique expression:
.. math:: V_{\rm CBT}(\theta_{i-1}, \theta_i, \phi_i) = k_{\phi} \sin^3\theta_{i-1} \sin^3\theta_{i} \sum_{n=0}^4 { a_n \cos^n\phi_i}.
- :label: eqCBT
+ :label: eqnCBT
This combined bending-torsion (CBT) potential has been proposed
by \ :ref:`88 <refBulacuGiessen2005>` for polymer melt simulations and is
:width: 10.00000cm
Blue: surface plot of the combined bending-torsion potential
- (:eq:`%s <eqCBT>` with :math:`k = 10` kJ mol\ :math:`^{-1}`,
+ (:eq:`%s <eqnCBT>` with :math:`k = 10` kJ mol\ :math:`^{-1}`,
:math:`a_0=2.41`, :math:`a_1=-2.95`, :math:`a_2=0.36`,
:math:`a_3=1.33`) when, for simplicity, the bending angles behave the
same (:math:`\theta_1=\theta_2=\theta`). Gray: the same torsion
.. math:: \frac{\partial V_{\rm CBT}(\theta_{i-1},\theta_i,\phi_i)} {\partial \vec r_{l}} = \frac{\partial V_{\rm CBT}}{\partial \theta_{i-1}} \frac{\partial \theta_{i-1}}{\partial \vec r_{l}} +
\frac{\partial V_{\rm CBT}}{\partial \theta_{i }} \frac{\partial \theta_{i }}{\partial \vec r_{l}} +
\frac{\partial V_{\rm CBT}}{\partial \phi_{i }} \frac{\partial \phi_{i }}{\partial \vec r_{l}}
- :label: eqforcecbt
+ :label: eqnforcecbt
The CBT is based on a cosine form without multiplicity, so it can only
be symmetrical around :math:`0^{\circ}`. To obtain an asymmetrical
angles and dihedrals through user-supplied tabulated functions. The
functional shapes are:
- .. math::
-
- \begin{aligned}
- V_b(r_{ij}) &=& k \, f^b_n(r_{ij}) \\
- V_a({\theta_{ijk}}) &=& k \, f^a_n({\theta_{ijk}}) \\
- V_d(\phi_{ijkl}) &=& k \, f^d_n(\phi_{ijkl})\end{aligned}
+ .. math:: \begin{aligned}
+ V_b(r_{ij}) &=& k \, f^b_n(r_{ij}) \\
+ V_a({\theta_{ijk}}) &=& k \, f^a_n({\theta_{ijk}}) \\
+ V_d(\phi_{ijkl}) &=& k \, f^d_n(\phi_{ijkl})\end{aligned}
+ :label: eqntabuöatedbond
| where :math:`k` is a force constant in units of energy and :math:`f`
is a cubic spline function; for details see :ref:`cubicspline`. For
|Gromacs|. However, these equations apply to the angle potential and the
improper dihedral potential as well.
-.. math::
-
- \begin{aligned}
- V_b &=&{\frac{1}{2}}\left[{(1-{\lambda})}k_b^A +
- {\lambda}k_b^B\right] \left[b - {(1-{\lambda})}b_0^A - {\lambda}b_0^B\right]^2 \\
- {\frac{\partial V_b}{\partial {\lambda}}}&=&{\frac{1}{2}}(k_b^B-k_b^A)
- \left[b - {(1-{\lambda})}b_0^A + {\lambda}b_0^B\right]^2 +
- \nonumber\\
- & & \phantom{{\frac{1}{2}}}(b_0^A-b_0^B) \left[b - {(1-{\lambda})}b_0^A -{\lambda}b_0^B\right]
- \left[{(1-{\lambda})}k_b^A + {\lambda}k_b^B \right]\end{aligned}
+.. math:: \begin{aligned}
+ V_b &=&{\frac{1}{2}}\left[{(1-{\lambda})}k_b^A +
+ {\lambda}k_b^B\right] \left[b - {(1-{\lambda})}b_0^A - {\lambda}b_0^B\right]^2 \\
+ {\frac{\partial V_b}{\partial {\lambda}}}&=&{\frac{1}{2}}(k_b^B-k_b^A)
+ \left[b - {(1-{\lambda})}b_0^A + {\lambda}b_0^B\right]^2 +
+ \nonumber\\
+ & & \phantom{{\frac{1}{2}}}(b_0^A-b_0^B) \left[b - {(1-{\lambda})}b_0^A -{\lambda}b_0^B\right]
+ \left[{(1-{\lambda})}k_b^A + {\lambda}k_b^B \right]\end{aligned}
+ :label: eqnfepharmpot
GROMOS-96 bonds and angles
~~~~~~~~~~~~~~~~~~~~~~~~~~
For the proper dihedrals, the equations are somewhat more complicated:
-.. math::
-
- \begin{aligned}
- V_d &=&\left[{(1-{\lambda})}k_d^A + {\lambda}k_d^B \right]
- \left( 1+ \cos\left[n_{\phi} \phi -
- {(1-{\lambda})}\phi_s^A - {\lambda}\phi_s^B
- \right]\right)\\
- {\frac{\partial V_d}{\partial {\lambda}}}&=&(k_d^B-k_d^A)
- \left( 1+ \cos
- \left[
- n_{\phi} \phi- {(1-{\lambda})}\phi_s^A - {\lambda}\phi_s^B
- \right]
- \right) +
- \nonumber\\
- &&(\phi_s^B - \phi_s^A) \left[{(1-{\lambda})}k_d^A - {\lambda}k_d^B\right]
- \sin\left[ n_{\phi}\phi - {(1-{\lambda})}\phi_s^A - {\lambda}\phi_s^B \right]\end{aligned}
+.. math:: \begin{aligned}
+ V_d &=&\left[{(1-{\lambda})}k_d^A + {\lambda}k_d^B \right]
+ \left( 1+ \cos\left[n_{\phi} \phi -
+ {(1-{\lambda})}\phi_s^A - {\lambda}\phi_s^B
+ \right]\right)\\
+ {\frac{\partial V_d}{\partial {\lambda}}}&=&(k_d^B-k_d^A)
+ \left( 1+ \cos
+ \left[
+ n_{\phi} \phi- {(1-{\lambda})}\phi_s^A - {\lambda}\phi_s^B
+ \right]
+ \right) +
+ \nonumber\\
+ &&(\phi_s^B - \phi_s^A) \left[{(1-{\lambda})}k_d^A - {\lambda}k_d^B\right]
+ \sin\left[ n_{\phi}\phi - {(1-{\lambda})}\phi_s^A - {\lambda}\phi_s^B \right]\end{aligned}
+ :label: eqnfeppropdihedral
**Note:** that the multiplicity :math:`n_{\phi}` can not be
parameterized because the function should remain periodic on the
For tabulated bonded interactions only the force constant can
interpolated:
-.. math::
-
- \begin{aligned}
- V &=& ({(1-{\lambda})}k^A + {\lambda}k^B) \, f \\
- {\frac{\partial V}{\partial {\lambda}}} &=& (k^B - k^A) \, f\end{aligned}
+.. math:: \begin{aligned}
+ V &=& ({(1-{\lambda})}k^A + {\lambda}k^B) \, f \\
+ {\frac{\partial V}{\partial {\lambda}}} &=& (k^B - k^A) \, f\end{aligned}
+ :label: eqnfeptabbonded
Coulomb interaction
~~~~~~~~~~~~~~~~~~~
The Coulomb interaction between two particles of which the charge varies
with :math:`{\lambda}` is:
-.. math::
-
- \begin{aligned}
- V_c &=& \frac{f}{{\varepsilon_{rf}}{r_{ij}}}\left[{(1-{\lambda})}q_i^A q_j^A + {\lambda}\, q_i^B q_j^B\right] \\
- {\frac{\partial V_c}{\partial {\lambda}}}&=& \frac{f}{{\varepsilon_{rf}}{r_{ij}}}\left[- q_i^A q_j^A + q_i^B q_j^B\right]\end{aligned}
+.. math:: \begin{aligned}
+ V_c &=& \frac{f}{{\varepsilon_{rf}}{r_{ij}}}\left[{(1-{\lambda})}q_i^A q_j^A + {\lambda}\, q_i^B q_j^B\right] \\
+ {\frac{\partial V_c}{\partial {\lambda}}}&=& \frac{f}{{\varepsilon_{rf}}{r_{ij}}}\left[- q_i^A q_j^A + q_i^B q_j^B\right]\end{aligned}
+ :label: eqnfepcoloumb
where :math:`f = \frac{1}{4\pi \varepsilon_0} = {138.935\,458}` (see
chapter :ref:`defunits`).
sign of :math:`{\frac{\partial E_k}{\partial {\lambda}}}` being
incorrect \ :ref:`99 <refGunsteren98a>`):
-.. math::
-
- \begin{aligned}
- E_k &=& {\frac{1}{2}}\frac{\mathbf{p}^2}{{(1-{\lambda})}m^A + {\lambda}m^B} \\
- {\frac{\partial E_k}{\partial {\lambda}}}&=& -{\frac{1}{2}}\frac{\mathbf{p}^2(m^B-m^A)}{({(1-{\lambda})}m^A + {\lambda}m^B)^2}\end{aligned}
+.. math:: \begin{aligned}
+ E_k &=& {\frac{1}{2}}\frac{\mathbf{p}^2}{{(1-{\lambda})}m^A + {\lambda}m^B} \\
+ {\frac{\partial E_k}{\partial {\lambda}}}&=& -{\frac{1}{2}}\frac{\mathbf{p}^2(m^B-m^A)}{({(1-{\lambda})}m^A + {\lambda}m^B)^2}\end{aligned}
+ :label: eqnfepekin
after taking the derivative, we *can* insert
-:math:`\mathbf{p}` =
-m :math:`\mathbf{v}`, such that:
+:math:`\mathbf{p}` = m :math:`\mathbf{v}`, such that:
.. math:: {\frac{\partial E_k}{\partial {\lambda}}}~=~ -{\frac{1}{2}}\mathbf{v}^2(m^B-m^A)
+ :label: eqnfepekinderivative
Constraints
~~~~~~~~~~~
:math:`k = 1 \ldots K` constraint equations :math:`g_k` for LINCS, then
.. math:: g_k = | \mathbf{r}_{k} | - d_{k}
+ :label: eqnfepconstr
where :math:`\mathbf{r}_k` is the displacement vector
between two particles and :math:`d_k` is the constraint distance between
has a :math:`{\lambda}` dependency by
.. math:: d_k = {(1-{\lambda})}d_{k}^A + {\lambda}d_k^B
+ :label: eqnfepconstrdistdep
Thus the :math:`{\lambda}`-dependent constraint equation is
.. math:: g_k = | \mathbf{r}_{k} | - \left({(1-{\lambda})}d_{k}^A + {\lambda}d_k^B\right).
+ :label: eqnfepconstrlambda
The (zero) contribution :math:`G` to the Hamiltonian from the
constraints (using Lagrange multipliers :math:`\lambda_k`, which are
logically distinct from the free-energy :math:`{\lambda}`) is
-.. math::
-
- \begin{aligned}
- G &=& \sum^K_k \lambda_k g_k \\
- {\frac{\partial G}{\partial {\lambda}}} &=& \frac{\partial G}{\partial d_k} {\frac{\partial d_k}{\partial {\lambda}}} \\
- &=& - \sum^K_k \lambda_k \left(d_k^B-d_k^A\right)\end{aligned}
+.. math:: \begin{aligned}
+ G &=& \sum^K_k \lambda_k g_k \\
+ {\frac{\partial G}{\partial {\lambda}}} &=& \frac{\partial G}{\partial d_k} {\frac{\partial d_k}{\partial {\lambda}}} \\
+ &=& - \sum^K_k \lambda_k \left(d_k^B-d_k^A\right)\end{aligned}
+ :label: eqnconstrfreeenergy
For SHAKE, the constraint equations are
.. math:: g_k = \mathbf{r}_{k}^2 - d_{k}^2
+ :label: eqnfepshakeconstr
with :math:`d_k` as before, so
-.. math::
-
- \begin{aligned}
- {\frac{\partial G}{\partial {\lambda}}} &=& -2 \sum^K_k \lambda_k \left(d_k^B-d_k^A\right)\end{aligned}
+.. math:: \begin{aligned}
+ {\frac{\partial G}{\partial {\lambda}}} &=& -2 \sum^K_k \lambda_k \left(d_k^B-d_k^A\right)\end{aligned}
+ :label: eqnfepshakeconstr2
Soft-core interactions
~~~~~~~~~~~~~~~~~~~~~~
of the regular potentials, so that the singularity in the potential and
its derivatives at :math:`r=0` is never reached:
-.. math::
-
- \begin{aligned}
- V_{sc}(r) &=& {(1-{\lambda})}V^A(r_A) + {\lambda}V^B(r_B)
- \\
- r_A &=& \left(\alpha \sigma_A^6 {\lambda}^p + r^6 \right)^\frac{1}{6}
- \\
- r_B &=& \left(\alpha \sigma_B^6 {(1-{\lambda})}^p + r^6 \right)^\frac{1}{6}\end{aligned}
+.. math:: \begin{aligned}
+ V_{sc}(r) &=& {(1-{\lambda})}V^A(r_A) + {\lambda}V^B(r_B)
+ \\
+ r_A &=& \left(\alpha \sigma_A^6 {\lambda}^p + r^6 \right)^\frac{1}{6}
+ \\
+ r_B &=& \left(\alpha \sigma_B^6 {(1-{\lambda})}^p + r^6 \right)^\frac{1}{6}\end{aligned}
+ :label: eqnfepsoftcore
where :math:`V^A` and :math:`V^B` are the normal “hard core” Van der
Waals or electrostatic potentials in state A (:math:`{\lambda}=0`) and
quickly switch the soft-core interaction to an almost constant value for
smaller :math:`r` (:numref:`Fig. %s <fig-softcore>`). The force is:
-.. math::
-
- F_{sc}(r) = -\frac{\partial V_{sc}(r)}{\partial r} =
- {(1-{\lambda})}F^A(r_A) \left(\frac{r}{r_A}\right)^5 +
- {\lambda}F^B(r_B) \left(\frac{r}{r_B}\right)^5
+.. math:: F_{sc}(r) = -\frac{\partial V_{sc}(r)}{\partial r} =
+ {(1-{\lambda})}F^A(r_A) \left(\frac{r}{r_A}\right)^5 +
+ {\lambda}F^B(r_B) \left(\frac{r}{r_B}\right)^5
+ :label: eqnfepsoftcoreforce
where :math:`F^A` and :math:`F^B` are the “hard core” forces. The
contribution to the derivative of the free energy is:
-.. math::
-
- \begin{aligned}
- {\frac{\partial V_{sc}(r)}{\partial {\lambda}}} & = &
- V^B(r_B) -V^A(r_A) +
- {(1-{\lambda})}\frac{\partial V^A(r_A)}{\partial r_A}
- \frac{\partial r_A}{\partial {\lambda}} +
- {\lambda}\frac{\partial V^B(r_B)}{\partial r_B}
- \frac{\partial r_B}{\partial {\lambda}}
- \nonumber\\
- &=&
- V^B(r_B) -V^A(r_A) + \nonumber \\
- & &
- \frac{p \alpha}{6}
- \left[ {\lambda}F^B(r_B) r^{-5}_B \sigma_B^6 {(1-{\lambda})}^{p-1} -
- {(1-{\lambda})}F^A(r_A) r^{-5}_A \sigma_A^6 {\lambda}^{p-1} \right]\end{aligned}
+.. math:: \begin{aligned}
+ {\frac{\partial V_{sc}(r)}{\partial {\lambda}}} & = &
+ V^B(r_B) -V^A(r_A) +
+ {(1-{\lambda})}\frac{\partial V^A(r_A)}{\partial r_A}
+ \frac{\partial r_A}{\partial {\lambda}} +
+ {\lambda}\frac{\partial V^B(r_B)}{\partial r_B}
+ \frac{\partial r_B}{\partial {\lambda}}
+ \nonumber\\
+ &=&
+ V^B(r_B) -V^A(r_A) + \nonumber \\
+ & &
+ \frac{p \alpha}{6}
+ \left[ {\lambda}F^B(r_B) r^{-5}_B \sigma_B^6 {(1-{\lambda})}^{p-1} -
+ {(1-{\lambda})}F^A(r_A) r^{-5}_A \sigma_A^6 {\lambda}^{p-1} \right]\end{aligned}
+ :label: eqnfepsoftcorederivative
The original GROMOS Lennard-Jones soft-core
function\ :ref:`100 <refBeutler94>` uses :math:`p=2`, but :math:`p=1` gives a smoother
the standard soft-core path described above \ :ref:`101 <refPham2011>`,
:ref:`102 <refPham2012>`. Specifically, we have:
-.. math::
-
- \begin{aligned}
- V_{sc}(r) &=& {(1-{\lambda})}V^A(r_A) + {\lambda}V^B(r_B)
- \\
- r_A &=& \left(\alpha \sigma_A^{48} {\lambda}^p + r^{48} \right)^\frac{1}{48}
- \\
- r_B &=& \left(\alpha \sigma_B^{48} {(1-{\lambda})}^p + r^{48} \right)^\frac{1}{48}\end{aligned}
+.. math:: \begin{aligned}
+ V_{sc}(r) &=& {(1-{\lambda})}V^A(r_A) + {\lambda}V^B(r_B)
+ \\
+ r_A &=& \left(\alpha \sigma_A^{48} {\lambda}^p + r^{48} \right)^\frac{1}{48}
+ \\
+ r_B &=& \left(\alpha \sigma_B^{48} {(1-{\lambda})}^p + r^{48} \right)^\frac{1}{48}\end{aligned}
+ :label: eqnnewsoftcore
This “1-1-48” path is also implemented in |Gromacs|. Note that for this
path the soft core :math:`\alpha` should satisfy
potential energy as:
.. math:: V = V(\mathbf{r}_s,\mathbf{r}_1,\ldots,\mathbf{r}_n) = V^*(\mathbf{r}_1,\ldots,\mathbf{r}_n)
+ :label: eqnvsiteepot
The force on the particle :math:`i` is then:
-.. math::
-
- \mathbf{F}_i = -\frac{\partial V^*}{\partial \mathbf{r}_i}
- = -\frac{\partial V}{\partial \mathbf{r}_i} -
- \frac{\partial V}{\partial \mathbf{r}_s}
- \frac{\partial \mathbf{r}_s}{\partial \mathbf{r}_i}
- = \mathbf{F}_i^{direct} + \mathbf{F}_i
+.. math:: \mathbf{F}_i = -\frac{\partial V^*}{\partial \mathbf{r}_i}
+ = -\frac{\partial V}{\partial \mathbf{r}_i} -
+ \frac{\partial V}{\partial \mathbf{r}_s}
+ \frac{\partial \mathbf{r}_s}{\partial \mathbf{r}_i}
+ = \mathbf{F}_i^{direct} + \mathbf{F}_i
+ :label: eqnvsiteforce
The first term is the normal force. The second term is the force on
particle :math:`i` due to the virtual site, which can be written in
construction types are linear combinations:
.. math:: \mathbf{r}_s = \sum_{i=1}^N w_i \, \mathbf{r}_i
+ :label: eqnvsitelincomb
The force is then redistributed using the same weights:
.. math:: \mathbf{F}_i = w_i \, \mathbf{F}_{s}
+ :label: eqnvsitelincombforce
The types of virtual sites supported in |Gromacs| are given in the list
below. Constructing atoms in virtual sites can be virtual sites
(:numref:`Fig. %s <fig-vsites>` 2):
.. math:: w_i = 1 - a ~,~~ w_j = a
+ :label: eqnvsitelin2atom
- In this case the virtual site is on the line through atoms :math:`i`
and :math:`j`.
(:numref:`Fig. %s <fig-vsites>` 3):
.. math:: w_i = 1 - a - b ~,~~ w_j = a ~,~~ w_k = b
+ :label: eqnvsitelin3atom
- In this case the virtual site is in the plane of the other three
particles.
- In the plane of three atoms, with a fixed distance
(:numref:`Fig. %s <fig-vsites>` 3fd):
- .. math::
-
- \mathbf{r}_s ~=~ \mathbf{r}_i + b \frac{ \mathbf{r}_ij + a \mathbf{r}_{jk} }
- { | \mathbf{r}_ij + a \mathbf{r}_{jk} | }
+ .. math:: \mathbf{r}_s ~=~ \mathbf{r}_i + b \frac{ \mathbf{r}_ij + a \mathbf{r}_{jk} }
+ { | \mathbf{r}_ij + a \mathbf{r}_{jk} | }
+ :label: eqnvsiteplane3atom
- In this case the virtual site is in the plane of the other three
particles at a distance of :math:`|b|` from :math:`i`. The force on
particles :math:`i`, :math:`j` and :math:`k` due to the force on the
virtual site can be computed as:
- .. math::
-
- \begin{array}{lcr}
- \mathbf{F}_i &=& \displaystyle \mathbf{F}_{s} - \gamma ( \mathbf{F}_is - \mathbf{p} ) \\[1ex]
- \mathbf{F}_j &=& \displaystyle (1-a)\gamma (\mathbf{F}_{s} - \mathbf{p}) \\[1ex]
- \mathbf{F}_k &=& \displaystyle a \gamma (\mathbf{F}_{s} - \mathbf{p}) \\
- \end{array}
- ~\mbox{~ where~ }~
- \begin{array}{c}
- \displaystyle \gamma = \frac{b}{ | \mathbf{r}_ij + a \mathbf{r}_{jk} | } \\[2ex]
- \displaystyle \mathbf{p} = \frac{ \mathbf{r}_{is} \cdot \mathbf{F}_{s} }
- { \mathbf{r}_{is} \cdot \mathbf{r}_is } \mathbf{r}_is
- \end{array}
+ .. math:: \begin{array}{lcr}
+ \mathbf{F}_i &=& \displaystyle \mathbf{F}_{s} - \gamma ( \mathbf{F}_is - \mathbf{p} ) \\[1ex]
+ \mathbf{F}_j &=& \displaystyle (1-a)\gamma (\mathbf{F}_{s} - \mathbf{p}) \\[1ex]
+ \mathbf{F}_k &=& \displaystyle a \gamma (\mathbf{F}_{s} - \mathbf{p}) \\
+ \end{array}
+ ~\mbox{~ where~ }~
+ \begin{array}{c}
+ \displaystyle \gamma = \frac{b}{ | \mathbf{r}_ij + a \mathbf{r}_{jk} | } \\[2ex]
+ \displaystyle \mathbf{p} = \frac{ \mathbf{r}_{is} \cdot \mathbf{F}_{s} }
+ { \mathbf{r}_{is} \cdot \mathbf{r}_is } \mathbf{r}_is
+ \end{array}
+ :label: eqnvsiteplane3atomforce
- In the plane of three atoms, with a fixed angle and
distance (:numref:`Fig. %s <fig-vsites>` 3fad):
:math:`\mathbf{r}_\perp` as defined in
:eq:`eqn. %s <eqnvsite2fadF>`):
- .. math::
-
- \begin{array}{c}
- \begin{array}{lclllll}
- \mathbf{F}_i &=& \mathbf{F}_{s} &-&
- \dfrac{d \cos \theta}{ | \mathbf{r}_ij | } \mathbf{F}_1 &+&
- \dfrac{d \sin \theta}{ | \mathbf{r}_\perp | } \left(
- \dfrac{ \mathbf{r}_ij \cdot \mathbf{r}_{jk} }
- { \mathbf{r}_ij \cdot \mathbf{r}_{ij} } \mathbf{F}_2 +
- \mathbf{F}_3 \right) \\[3ex]
- \mathbf{F}_j &=& &&
- \dfrac{d \cos \theta}{ | \mathbf{r}_ij | } \mathbf{F}_1 &-&
- \dfrac{d \sin \theta}{ | \mathbf{r}_\perp | } \left(
- \mathbf{F}_2 +
- \dfrac{ \mathbf{r}_ij \cdot \mathbf{r}_{jk} }
- { \mathbf{r}_ij \cdot \mathbf{r}_{ij} } \mathbf{F}_2 +
- \mathbf{F}_3 \right) \\[3ex]
- \mathbf{F}_k &=& && &&
- \dfrac{d \sin \theta}{ | \mathbf{r}_\perp | } \mathbf{F}_2 \\[3ex]
- \end{array} \\[5ex]
- \mbox{where ~}
- \mathbf{F}_1 = \mathbf{F}_{s} -
- \dfrac{ \mathbf{r}_ij \cdot \mathbf{F}_{s} }
- { \mathbf{r}_ij \cdot \mathbf{r}_{ij} } \mathbf{r}_{ij}
- \mbox{\,, ~}
- \mathbf{F}_2 = \mathbf{F}_1 -
- \dfrac{ \mathbf{r}_\perp \cdot \mathbf{F}_{s} }
- { \mathbf{r}_\perp \cdot \mathbf{r}_\perp } \mathbf{r}_\perp
- \mbox{~and ~}
- \mathbf{F}_3 = \dfrac{ \mathbf{r}_ij \cdot \mathbf{F}_{s} }
- { \mathbf{r}_ij \cdot \mathbf{r}_{ij} } \mathbf{r}_\perp
- \end{array}
+ .. math:: \begin{array}{c}
+ \begin{array}{lclllll}
+ \mathbf{F}_i &=& \mathbf{F}_{s} &-&
+ \dfrac{d \cos \theta}{ | \mathbf{r}_ij | } \mathbf{F}_1 &+&
+ \dfrac{d \sin \theta}{ | \mathbf{r}_\perp | } \left(
+ \dfrac{ \mathbf{r}_ij \cdot \mathbf{r}_{jk} }
+ { \mathbf{r}_ij \cdot \mathbf{r}_{ij} } \mathbf{F}_2 +
+ \mathbf{F}_3 \right) \\[3ex]
+ \mathbf{F}_j &=& &&
+ \dfrac{d \cos \theta}{ | \mathbf{r}_ij | } \mathbf{F}_1 &-&
+ \dfrac{d \sin \theta}{ | \mathbf{r}_\perp | } \left(
+ \mathbf{F}_2 +
+ \dfrac{ \mathbf{r}_ij \cdot \mathbf{r}_{jk} }
+ { \mathbf{r}_ij \cdot \mathbf{r}_{ij} } \mathbf{F}_2 +
+ \mathbf{F}_3 \right) \\[3ex]
+ \mathbf{F}_k &=& && &&
+ \dfrac{d \sin \theta}{ | \mathbf{r}_\perp | } \mathbf{F}_2 \\[3ex]
+ \end{array} \\[5ex]
+ \mbox{where ~}
+ \mathbf{F}_1 = \mathbf{F}_{s} -
+ \dfrac{ \mathbf{r}_ij \cdot \mathbf{F}_{s} }
+ { \mathbf{r}_ij \cdot \mathbf{r}_{ij} } \mathbf{r}_{ij}
+ \mbox{\,, ~}
+ \mathbf{F}_2 = \mathbf{F}_1 -
+ \dfrac{ \mathbf{r}_\perp \cdot \mathbf{F}_{s} }
+ { \mathbf{r}_\perp \cdot \mathbf{r}_\perp } \mathbf{r}_\perp
+ \mbox{~and ~}
+ \mathbf{F}_3 = \dfrac{ \mathbf{r}_ij \cdot \mathbf{F}_{s} }
+ { \mathbf{r}_ij \cdot \mathbf{r}_{ij} } \mathbf{r}_\perp
+ \end{array}
+ :label: eqnvsite2fadFforce
- As a non-linear combination of three atoms, out of
plane (:numref:`Fig. %s <fig-vsites>` 3out):
- .. math::
-
- \mathbf{r}_s ~=~ \mathbf{r}_i + a \mathbf{r}_ij + b \mathbf{r}_{ik} +
- c (\mathbf{r}_ij \times \mathbf{r}_{ik})
+ .. math:: \mathbf{r}_s ~=~ \mathbf{r}_i + a \mathbf{r}_ij + b \mathbf{r}_{ik} +
+ c (\mathbf{r}_ij \times \mathbf{r}_{ik})
+ :label: eqnvsitenonlin3atom
- This enables the construction of virtual sites out of the plane of
the other atoms. The force on particles :math:`i,j` and :math:`k` due
to the force on the virtual site can be computed as:
- .. math::
-
- \begin{array}{lcl}
- \mathbf{F}_j &=& \left[\begin{array}{ccc}
- a & -c\,z_{ik} & c\,y_{ik} \\[0.5ex]
- c\,z_{ik} & a & -c\,x_{ik} \\[0.5ex]
- -c\,y_{ik} & c\,x_{ik} & a
- \end{array}\right]\mathbf{F}_{s} \\
- \mathbf{F}_k &=& \left[\begin{array}{ccc}
- b & c\,z_{ij} & -c\,y_{ij} \\[0.5ex]
- -c\,z_{ij} & b & c\,x_{ij} \\[0.5ex]
- c\,y_{ij} & -c\,x_{ij} & b
- \end{array}\right]\mathbf{F}_{s} \\
- \mathbf{F}_i &=& \mathbf{F}_{s} - \mathbf{F}_j - \mathbf{F}_k
- \end{array}
+ .. math:: \begin{array}{lcl}
+ \mathbf{F}_j &=& \left[\begin{array}{ccc}
+ a & -c\,z_{ik} & c\,y_{ik} \\[0.5ex]
+ c\,z_{ik} & a & -c\,x_{ik} \\[0.5ex]
+ -c\,y_{ik} & c\,x_{ik} & a
+ \end{array}\right]\mathbf{F}_{s} \\
+ \mathbf{F}_k &=& \left[\begin{array}{ccc}
+ b & c\,z_{ij} & -c\,y_{ij} \\[0.5ex]
+ -c\,z_{ij} & b & c\,x_{ij} \\[0.5ex]
+ c\,y_{ij} & -c\,x_{ij} & b
+ \end{array}\right]\mathbf{F}_{s} \\
+ \mathbf{F}_i &=& \mathbf{F}_{s} - \mathbf{F}_j - \mathbf{F}_k
+ \end{array}
+ :label: eqnvsitenonlin3atomforce
- From four atoms, with a fixed distance, see
separate :numref:`Fig. %s <fig-vsite4fdn>`. This construction is a bit complex,
weights :math:`a_i`. The weight for atom :math:`i` is:
.. math:: w_i = a_i \left(\sum_{j=1}^N a_j \right)^{-1}
+ :label: eqnvsiterelweight
- There are three options for setting the weights:
is to convert the single slowly-converging sum :eq:`eqn. %s <eqntotalcoulomb>`
into two quickly-converging terms and a constant term:
-.. math::
-
- \begin{aligned}
- V &=& V_{\mathrm{dir}} + V_{\mathrm{rec}} + V_{0} \\[0.5ex]
- V_{\mathrm{dir}} &=& \frac{f}{2} \sum_{i,j}^{N}
- \sum_{n_x}\sum_{n_y}
- \sum_{n_{z}*} q_i q_j \frac{\mbox{erfc}(\beta {r}_{ij,{\bf n}} )}{{r}_{ij,{\bf n}}} \\[0.5ex]
- V_{\mathrm{rec}} &=& \frac{f}{2 \pi V} \sum_{i,j}^{N} q_i q_j
- \sum_{m_x}\sum_{m_y}
- \sum_{m_{z}*} \frac{\exp{\left( -(\pi {\bf m}/\beta)^2 + 2 \pi i
- {\bf m} \cdot ({\bf r}_i - {\bf r}_j)\right)}}{{\bf m}^2} \\[0.5ex]
- V_{0} &=& -\frac{f \beta}{\sqrt{\pi}}\sum_{i}^{N} q_i^2,\end{aligned}
+.. math:: \begin{aligned}
+ V &=& V_{\mathrm{dir}} + V_{\mathrm{rec}} + V_{0} \\[0.5ex]
+ V_{\mathrm{dir}} &=& \frac{f}{2} \sum_{i,j}^{N}
+ \sum_{n_x}\sum_{n_y}
+ \sum_{n_{z}*} q_i q_j \frac{\mbox{erfc}(\beta {r}_{ij,{\bf n}} )}{{r}_{ij,{\bf n}}} \\[0.5ex]
+ V_{\mathrm{rec}} &=& \frac{f}{2 \pi V} \sum_{i,j}^{N} q_i q_j
+ \sum_{m_x}\sum_{m_y}
+ \sum_{m_{z}*} \frac{\exp{\left( -(\pi {\bf m}/\beta)^2 + 2 \pi i
+ {\bf m} \cdot ({\bf r}_i - {\bf r}_j)\right)}}{{\bf m}^2} \\[0.5ex]
+ V_{0} &=& -\frac{f \beta}{\sqrt{\pi}}\sum_{i}^{N} q_i^2,\end{aligned}
+ :label: eqntotalcoloumbseparate
where :math:`\beta` is a parameter that determines the relative weight
of the direct and reciprocal sums and :math:`{\bf m}=(m_x,m_y,m_z)`. In
particles is written as:
.. math:: V({r_{ij}}) ~=~- C_6\,{r_{ij}}^{-6}
+ :label: eqnlrljEdisp
and the corresponding force is:
.. math:: \mathbf{F}_ij ~=~- 6\,C_6\,r_{ij}^{-8}\mathbf{r}_ij
+ :label: eqnlrljFdisp
In a periodic system it is not easy to calculate the full potentials,
so usually a cut-off is applied, which can be abrupt or smooth. We will
:math:`r_1` is equal to the global density and the radial distribution
function :math:`g(r)` is 1 beyond :math:`r_1`:
-.. math::
-
- \begin{aligned}
- \nonumber
- V_{lr} &=& {\frac{1}{2}}N \left(
- \rho\int_0^{r_1} 4\pi r^2 g(r) \, C_6 \,S\,{{{\rm d}r}}
- + \rho\int_{r_1}^{r_c} 4\pi r^2 \left( V(r) -V_c(r) \right) {{{\rm d}r}}
- + \rho\int_{r_c}^{\infty} 4\pi r^2 V(r) \, {{{\rm d}r}}
- \right) \\
- & = & {\frac{1}{2}}N \left(\left(\frac{4}{3}\pi \rho r_1^{3} - 1\right) C_6 \,S
- + \rho\int_{r_1}^{r_c} 4\pi r^2 \left( V(r) -V_c(r) \right) {{{\rm d}r}}
- -\frac{4}{3} \pi N \rho\, C_6\,r_c^{-3}
- \right)\end{aligned}
+.. math:: \begin{aligned}
+ V_{lr} &=& {\frac{1}{2}}N \left(
+ \rho\int_0^{r_1} 4\pi r^2 g(r) \, C_6 \,S\,{{{\rm d}r}}
+ + \rho\int_{r_1}^{r_c} 4\pi r^2 \left( V(r) -V_c(r) \right) {{{\rm d}r}}
+ + \rho\int_{r_c}^{\infty} 4\pi r^2 V(r) \, {{{\rm d}r}}
+ \right) \\
+ & = & {\frac{1}{2}}N \left(\left(\frac{4}{3}\pi \rho r_1^{3} - 1\right) C_6 \,S
+ + \rho\int_{r_1}^{r_c} 4\pi r^2 \left( V(r) -V_c(r) \right) {{{\rm d}r}}
+ -\frac{4}{3} \pi N \rho\, C_6\,r_c^{-3}
+ \right)\end{aligned}
+ :label: eqnlrljshift
where the term :math:`-1` corrects for the self-interaction. For a
plain cut-off we only need to assume that :math:`g(r)` is 1 beyond
:math:`r_c` and the correction reduces to \ :ref:`108 <refAllen87>`:
-.. math::
-
- \begin{aligned}
- V_{lr} & = & -\frac{2}{3} \pi N \rho\, C_6\,r_c^{-3}\end{aligned}
+.. math:: \begin{aligned}
+ V_{lr} & = & -\frac{2}{3} \pi N \rho\, C_6\,r_c^{-3}\end{aligned}
+ :label: eqnlrljcorrreduced
If we consider, for example, a box of pure water, simulated with a
cut-off of 0.9 nm and a density of 1 g cm\ :math:`^{-3}` this correction
between two particles :math:`i` and :math:`j` is given by:
.. math:: \Xi~=~-{\frac{1}{2}} \mathbf{r}_ij \cdot \mathbf{F}_ij ~=~ 3\,C_6\,r_{ij}^{-6}
+ :label: eqnlrljdispvirial
The pressure is given by:
.. math:: P~=~\frac{2}{3\,V}\left(E_{kin} - \Xi\right)
+ :label: eqnlrljpressure
The long-range correction to the virial is given by:
.. math:: \Xi_{lr} ~=~ {\frac{1}{2}}N \rho \int_0^{\infty} 4\pi r^2 g(r) (\Xi -\Xi_c) \,{{\rm d}r}
+ :label: eqnlrljcorrvirial
We can again integrate the long-range contribution to the virial
assuming :math:`g(r)` is 1 beyond :math:`r_1`:
-.. math::
-
- \begin{aligned}
- \Xi_{lr}&=& {\frac{1}{2}}N \rho \left(
- \int_{r_1}^{r_c} 4 \pi r^2 (\Xi -\Xi_c) \,{{\rm d}r}+ \int_{r_c}^{\infty} 4 \pi r^2 3\,C_6\,{r_{ij}}^{-6}\, {{\rm d}r}\right) \nonumber\\
- &=& {\frac{1}{2}}N \rho \left(
- \int_{r_1}^{r_c} 4 \pi r^2 (\Xi -\Xi_c) \, {{\rm d}r}+ 4 \pi C_6 \, r_c^{-3} \right)\end{aligned}
+.. math:: \begin{aligned}
+ \Xi_{lr}&=& {\frac{1}{2}}N \rho \left(
+ \int_{r_1}^{r_c} 4 \pi r^2 (\Xi -\Xi_c) \,{{\rm d}r}+ \int_{r_c}^{\infty} 4 \pi r^2 3\,C_6\,{r_{ij}}^{-6}\, {{\rm d}r}\right) \nonumber\\
+ &=& {\frac{1}{2}}N \rho \left(
+ \int_{r_1}^{r_c} 4 \pi r^2 (\Xi -\Xi_c) \, {{\rm d}r}+ 4 \pi C_6 \, r_c^{-3} \right)\end{aligned}
+ :label: eqnlrljvirialcontrib
For a plain cut-off the correction to the pressure
is \ :ref:`108 <refAllen87>`:
.. math:: P_{lr}~=~-\frac{4}{3} \pi C_6\, \rho^2 r_c^{-3}
+ :label: eqnlrljpressurecorr
Using the same example of a water box, the correction to the virial is
0.75 kJ mol\ :math:`^{-1}` per molecule, the corresponding correction to
\end{aligned}
:label: eqnljpmerealspace
-.. math::
- \begin{aligned}
- V_{\mathrm{rec}} &=& \frac{{\pi}^{\frac{3}{2}} \beta^{3}}{2V} \sum_{m_x}\sum_{m_y}\sum_{m_{z}*}
- f(\pi |{\mathbf m}|/\beta) \times \sum_{i,j}^{N} C^{ij}_6 {\mathrm{exp}}\left[-2\pi i {\bf m}\cdot({\bf r_i}-{\bf r_j})\right] \\[0.5ex]
- V_{0} &=& -\frac{\beta^{6}}{12}\sum_{i}^{N} C^{ii}_6\end{aligned}
+.. math:: \begin{aligned}
+ V_{\mathrm{rec}} &=& \frac{{\pi}^{\frac{3}{2}} \beta^{3}}{2V} \sum_{m_x}\sum_{m_y}\sum_{m_{z}*}
+ f(\pi | {\mathbf m} | /\beta) \times \sum_{i,j}^{N} C^{ij}_6 {\mathrm{exp}}\left[-2\pi i {\bf m}\cdot({\bf r_i}-{\bf r_j})\right] \\[0.5ex]
+ V_{0} &=& -\frac{\beta^{6}}{12}\sum_{i}^{N} C^{ii}_6\end{aligned}
+ :label: eqnljpmerealspace2
where :math:`{\bf m}=(m_x,m_y,m_z)`, :math:`\beta` is the parameter
determining the weight between direct and reciprocal space, and
Essmann \ :ref:`15 <refEssmann95>`, the functions :math:`f` and :math:`g`
introduced above are defined as
-.. math::
-
- \begin{aligned}
- f(x)&=&1/3\left[(1-2x^2){\mathrm{exp}}(-x^2) + 2{x^3}\sqrt{\pi}\,{\mathrm{erfc}}(x) \right] \\
- g(x)&=&{\mathrm{exp}}(-x^2)(1+x^2+\frac{x^4}{2}).\end{aligned}
+.. math:: \begin{aligned}
+ f(x)&=&1/3\left[(1-2x^2){\mathrm{exp}}(-x^2) + 2{x^3}\sqrt{\pi}\,{\mathrm{erfc}}(x) \right] \\
+ g(x)&=&{\mathrm{exp}}(-x^2)(1+x^2+\frac{x^4}{2}).\end{aligned}
+ :label: eqnljpmerealdistance
The above methodology works fine as long as the dispersion parameters
can be combined geometrically (:eq:`eqn. %s <eqncomb>`) in the same way as the
charges for electrostatics
.. math:: C^{ij}_{6,\mathrm{geom}} = \left(C^{ii}_6 \, C^{jj}_6\right)^{1/2}
+ :label: eqnljpmegeom
For Lorentz-Berthelot combination rules (:eq:`eqn. %s <eqnlorentzberthelot>`),
the reciprocal part of this sum has to be calculated seven times due to
the splitting of the dispersion parameter according to
.. math:: C^{ij}_{6,\mathrm{L-B}} = (\sigma_i+\sigma_j)^6=\sum_{n=0}^{6} P_{n}\sigma_{i}^{n}\sigma_{j}^{(6-n)},
+ :label: eqnljpmelorenztberthelot
for :math:`P_{n}` the Pascal triangle coefficients. This introduces a
non-negligible cost to the reciprocal part, requiring seven separate
interaction parameter for the reciprocal part of the potential, yielding
a total interaction of
-.. math::
-
- \begin{aligned}
- V(r<r_c) & = & \underbrace{C^{\mathrm{dir}}_6 g(\beta r) r^{-6}}_{\mathrm{Direct \ space}} + \underbrace{C^\mathrm{recip}_{6,\mathrm{geom}} [1 - g(\beta r)] r^{-6}}_{\mathrm{Reciprocal \ space}} \nonumber \\
- &=& C^\mathrm{recip}_{6,\mathrm{geom}}r^{-6} + \left(C^{\mathrm{dir}}_6-C^\mathrm{recip}_{6,\mathrm{geom}}\right)g(\beta r)r^{-6} \\
- V(r>r_c) & = & \underbrace{C^\mathrm{recip}_{6,\mathrm{geom}} [1 - g(\beta r)] r^{-6}}_{\mathrm{Reciprocal \ space}}.\end{aligned}
+.. math:: \begin{aligned}
+ V(r<r_c) & = & \underbrace{C^{\mathrm{dir}}_6 g(\beta r) r^{-6}}_{\mathrm{Direct \ space}} + \underbrace{C^\mathrm{recip}_{6,\mathrm{geom}} [1 - g(\beta r)] r^{-6}}_{\mathrm{Reciprocal \ space}} \nonumber \\
+ &=& C^\mathrm{recip}_{6,\mathrm{geom}}r^{-6} + \left(C^{\mathrm{dir}}_6-C^\mathrm{recip}_{6,\mathrm{geom}}\right)g(\beta r)r^{-6} \\
+ V(r>r_c) & = & \underbrace{C^\mathrm{recip}_{6,\mathrm{geom}} [1 - g(\beta r)] r^{-6}}_{\mathrm{Reciprocal \ space}}.\end{aligned}
+ :label: eqnpmearith
This will preserve a well-defined Hamiltonian and significantly
increase the performance of the simulations. The approximation does
\end{aligned}
:label: eqnljpmecorr2
-.. math::
-
- \begin{aligned}
- V(r>r_c) &=& C^\mathrm{recip}_6 [1 - g(\beta r)] r^{-6}.\end{aligned}
+.. math:: \begin{aligned}
+ V(r>r_c) &=& C^\mathrm{recip}_6 [1 - g(\beta r)] r^{-6}.\end{aligned}
+ :label: eqnljpmecorr3
For the case when :math:`C^{\mathrm{dir}}_6 \neq C^\mathrm{recip}_6`
this will retain an unmodified LJ force up to the cut-off, and the error
potential-shift, the constant
.. math:: \left(-C^{\mathrm{dir}}_6 + C^\mathrm{recip}_6 [1 - g(\beta r_c)]\right) r_c^{-6}
+ :label: eqnljpmeconstant
is added to :eq:`eqn. %s <eqnljpmecorr2>` in order to ensure that the potential
is continuous at the cutoff. Note that, in the same way as
Non-bonded interactions in |Gromacs| are pair-additive:
.. math:: V(\mathbf{r}_1,\ldots \mathbf{r}_N) = \sum_{i<j}V_{ij}(\mathbf{r}_ij);
+ :label: eqnnbinteractions1
.. math:: \mathbf{F}_i = -\sum_j \frac{dV_{ij}(r_{ij})}{dr_{ij}} \frac{\mathbf{r}_ij}{r_{ij}}
+ :label: eqnnbinteractions2
Since the potential only depends on the scalar distance, interactions
will be centro-symmetric, i.e. the vectorial partial force on particle
The Lennard-Jones potential :math:`V_{LJ}` between two atoms equals:
-.. math::
-
- V_{LJ}({r_{ij}}) = \frac{C_{ij}^{(12)}}{{r_{ij}}^{12}} -
- \frac{C_{ij}^{(6)}}{{r_{ij}}^6}
+.. math:: V_{LJ}({r_{ij}}) = \frac{C_{ij}^{(12)}}{{r_{ij}}^{12}} -
+ \frac{C_{ij}^{(6)}}{{r_{ij}}^6}
+ :label: eqnnblj
See also :numref:`Fig. %s <fig-lj>` The parameters :math:`C^{(12)}_{ij}` and
:math:`C^{(6)}_{ij}` depend on pairs of *atom types*; consequently they
.. math:: \mathbf{F}_i(\mathbf{r}_ij) = \left( 12~\frac{C_{ij}^{(12)}}{{r_{ij}}^{13}} -
6~\frac{C_{ij}^{(6)}}{{r_{ij}}^7} \right) {\frac{{\mathbf{r}_{ij}}}{{r_{ij}}}}
+ :label: eqnljforce
The LJ potential may also be written in the following form:
\sigma_{ij} &=& \left({\sigma_{ii} \, \sigma_{jj}}\right)^{1/2} \\
\epsilon_{ij} &=& \left({\epsilon_{ii} \, \epsilon_{jj}}\right)^{1/2}
\end{array}
+ :label: eqnnbgeometricaverage
This last rule is used by the OPLS force field.
term than the Lennard-Jones interaction, but is also more expensive to
compute. The potential form is:
-.. math::
-
- V_{bh}({r_{ij}}) = A_{ij} \exp(-B_{ij} {r_{ij}}) -
- \frac{C_{ij}}{{r_{ij}}^6}
+.. math:: V_{bh}({r_{ij}}) = A_{ij} \exp(-B_{ij} {r_{ij}}) -
+ \frac{C_{ij}}{{r_{ij}}^6}
+ :label: eqnnbbuckingham
.. _fig-bham:
See also :numref:`Fig. %s <fig-bham>`. The force derived from this is:
-.. math::
-
- \mathbf{F}_i({r_{ij}}) = \left[ A_{ij}B_{ij}\exp(-B_{ij} {r_{ij}}) -
- 6\frac{C_{ij}}{{r_{ij}}^7} \right] {\frac{{\mathbf{r}_{ij}}}{{r_{ij}}}}
+.. math:: \mathbf{F}_i({r_{ij}}) = \left[ A_{ij}B_{ij}\exp(-B_{ij} {r_{ij}}) -
+ 6\frac{C_{ij}}{{r_{ij}}^7} \right] {\frac{{\mathbf{r}_{ij}}}{{r_{ij}}}}
+ :label: eqnnbbuckinghamforce
.. _coul:
The force derived from this potential is:
.. math:: \mathbf{F}_i(\mathbf{r}_ij) = f \frac{q_i q_j}{{\varepsilon_r}{r_{ij}}^2}{\frac{{\mathbf{r}_{ij}}}{{r_{ij}}}}
+ :label: eqnfcoul
A plain Coulomb interaction should only be used without cut-off or when
all pairs fall within the cut-off, since there is an abrupt, large
:eq:`eqn. %s <eqnvcrf>` for simplicity as
.. math:: V_{crf} ~=~ f \frac{q_i q_j}{{\varepsilon_r}}\left[\frac{1}{{r_{ij}}} + k_{rf}~ {r_{ij}}^2 -c_{rf}\right]
+ :label: eqnvcrfrewrite
with
as:
.. math:: \mathbf{F}_i = c \, F(r_{ij}) \frac{\mathbf{r}_ij}{r_{ij}}
+ :label: eqnswitch
For pure Coulomb or Lennard-Jones interactions
:math:`F(r) = F_\alpha(r) = \alpha \, r^{-(\alpha+1)}`. The switched
force :math:`F_s(r)` can generally be written as:
-.. math::
-
- \begin{array}{rcl}
- F_s(r)~=&~F_\alpha(r) & r < r_1 \\
- F_s(r)~=&~F_\alpha(r)+S(r) & r_1 \le r < r_c \\
- F_s(r)~=&~0 & r_c \le r
- \end{array}
+.. math:: \begin{array}{rcl}
+ F_s(r)~=&~F_\alpha(r) & r < r_1 \\
+ F_s(r)~=&~F_\alpha(r)+S(r) & r_1 \le r < r_c \\
+ F_s(r)~=&~0 & r_c \le r
+ \end{array}
+ :label: eqnswitchforce
When :math:`r_1=0` this is a traditional shift function, otherwise it
acts as a switch function. The corresponding shifted potential function
then reads:
.. math:: V_s(r) = \int^{\infty}_r~F_s(x)\, dx
+ :label: eqnswitchpotential
The |Gromacs| **force switch** function :math:`S_F(r)` should be smooth at
the boundaries, therefore the following boundary conditions are imposed
on the switch function:
-.. math::
-
- \begin{array}{rcl}
- S_F(r_1) &=&0 \\
- S_F'(r_1) &=&0 \\
- S_F(r_c) &=&-F_\alpha(r_c) \\
- S_F'(r_c) &=&-F_\alpha'(r_c)
- \end{array}
+.. math:: \begin{array}{rcl}
+ S_F(r_1) &=&0 \\
+ S_F'(r_1) &=&0 \\
+ S_F(r_c) &=&-F_\alpha(r_c) \\
+ S_F'(r_c) &=&-F_\alpha'(r_c)
+ \end{array}
+ :label: eqnswitchforcefunction
A 3\ :math:`^{rd}` degree polynomial of the form
.. math:: S_F(r) = A(r-r_1)^2 + B(r-r_1)^3
+ :label: eqnswitchforcepoly
fulfills these requirements. The constants A and B are given by the
boundary condition at :math:`r_c`:
-.. math::
-
- \begin{array}{rcl}
- A &~=~& -\alpha \, \displaystyle
- \frac{(\alpha+4)r_c~-~(\alpha+1)r_1} {r_c^{\alpha+2}~(r_c-r_1)^2} \\
- B &~=~& \alpha \, \displaystyle
- \frac{(\alpha+3)r_c~-~(\alpha+1)r_1}{r_c^{\alpha+2}~(r_c-r_1)^3}
- \end{array}
+.. math:: \begin{array}{rcl}
+ A &~=~& -\alpha \, \displaystyle
+ \frac{(\alpha+4)r_c~-~(\alpha+1)r_1} {r_c^{\alpha+2}~(r_c-r_1)^2} \\
+ B &~=~& \alpha \, \displaystyle
+ \frac{(\alpha+3)r_c~-~(\alpha+1)r_1}{r_c^{\alpha+2}~(r_c-r_1)^3}
+ \end{array}
+ :label: eqnforceswitchboundary
Thus the total force function is:
.. math:: F_s(r) = \frac{\alpha}{r^{\alpha+1}} + A(r-r_1)^2 + B(r-r_1)^3
+ :label: eqnswitchfinalforce
and the potential function reads:
.. math:: V_s(r) = \frac{1}{r^\alpha} - \frac{A}{3} (r-r_1)^3 - \frac{B}{4} (r-r_1)^4 - C
+ :label: eqnswitchfinalpotential
where
.. math:: C = \frac{1}{r_c^\alpha} - \frac{A}{3} (r_c-r_1)^3 - \frac{B}{4} (r_c-r_1)^4
+ :label: eqnswitchpotentialexp
The |Gromacs| **potential-switch** function :math:`S_V(r)` scales the
potential between :math:`r_1` and :math:`r_c`, and has similar boundary
conditions, intended to produce smoothly-varying potential and forces:
-.. math::
-
- \begin{array}{rcl}
- S_V(r_1) &=&1 \\
- S_V'(r_1) &=&0 \\
- S_V''(r_1) &=&0 \\
- S_V(r_c) &=&0 \\
- S_V'(r_c) &=&0 \\
- S_V''(r_c) &=&0
- \end{array}
+.. math:: \begin{array}{rcl}
+ S_V(r_1) &=&1 \\
+ S_V'(r_1) &=&0 \\
+ S_V''(r_1) &=&0 \\
+ S_V(r_c) &=&0 \\
+ S_V'(r_c) &=&0 \\
+ S_V''(r_c) &=&0
+ \end{array}
+ :label: eqnpotentialswitch
The fifth-degree polynomial that has these properties is
.. math:: S_V(r; r_1, r_c) = \frac{1 - 10(r-r_1)^3(r_c-r_1)^2 + 15(r-r_1)^4(r_c-r_1) - 6(r-r_1)}{(r_c-r_1)^5}
+ :label: eqn5polynomal
This implementation is found in several other simulation
packages,\ :ref:`73 <refOhmine1988>`\ :ref:`75 <refGuenot1993>` but
given by:
.. math:: V(r) = f \frac{\mbox{erfc}(\beta r_{ij})}{r_{ij}} q_i q_j,
+ :label: eqnewaldsrmod
where :math:`\beta` is a parameter that determines the relative weight
between the direct space sum and the reciprocal space sum and
is used \ :ref:`45 <refMaaren2001a>`:
.. math:: k_{cs} ~=~ \frac{q_s^2}{\alpha}
+ :label: eqnsimplepol
where :math:`q_s` is the charge on the shell particle.
overpolarize and this was fixed by introducing a higher order term in
the polarization energy:
-.. math::
-
- \begin{aligned}
- V_{pol} ~=& \frac{k_{cs}}{2} r_{cs}^2 & r_{cs} \le \delta \\
- =& \frac{k_{cs}}{2} r_{cs}^2 + k_{hyp} (r_{cs}-\delta)^4 & r_{cs} > \delta\end{aligned}
+.. math:: \begin{aligned}
+ V_{pol} ~=& \frac{k_{cs}}{2} r_{cs}^2 & r_{cs} \le \delta \\
+ =& \frac{k_{cs}}{2} r_{cs}^2 + k_{hyp} (r_{cs}-\delta)^4 & r_{cs} > \delta\end{aligned}
+ :label: eqnanharmpol
where :math:`\delta` is a user-defined constant that is set to 0.02 nm
for anions in the Drude force field \ :ref:`94 <refHYu2010>`. Since this
and :math:`j` is:
.. math:: V_{thole} ~=~ \frac{q_i q_j}{r_{ij}}\left[1-\left(1+\frac{{\bar{r}_{ij}}}{2}\right){\rm exp}^{-{\bar{r}_{ij}}}\right]
+ :label: eqntholepol
-**Note** that there is a sign error in Equation 1 of Noskov *et
-al.* :ref:`98 <refNoskov2005a>`:
+**Note** that there is a sign error in Equation 1 of Noskov
+*et al.* :ref:`98 <refNoskov2005a>`:
.. math:: {\bar{r}_{ij}}~=~ a\frac{r_{ij}}{(\alpha_i \alpha_j)^{1/6}}
+ :label: eqntholsignerror
where :math:`a` is a magic (dimensionless) constant, usually chosen to
be 2.6 \ :ref:`98 <refNoskov2005a>`; :math:`\alpha_i` and
The following form is used:
.. math:: V_{pr}(\mathbf{r}_i) = {\frac{1}{2}}k_{pr}|\mathbf{r}_i-\mathbf{R}_i|^2
+ :label: eqnposrestform
The potential is plotted in :numref:`Fig. %s <fig-positionrestraint>`.
The potential form can be rewritten without loss of generality as:
.. math:: V_{pr}(\mathbf{r}_i) = {\frac{1}{2}} \left[ k_{pr}^x (x_i-X_i)^2 ~{\hat{\bf x}} + k_{pr}^y (y_i-Y_i)^2 ~{\hat{\bf y}} + k_{pr}^z (z_i-Z_i)^2 ~{\hat{\bf z}}\right]
+ :label: eqnposrestgeneral
Now the forces are:
-.. math::
-
- \begin{array}{rcl}
- F_i^x &=& -k_{pr}^x~(x_i - X_i) \\
- F_i^y &=& -k_{pr}^y~(y_i - Y_i) \\
- F_i^z &=& -k_{pr}^z~(z_i - Z_i)
- \end{array}
+.. math:: \begin{array}{rcl}
+ F_i^x &=& -k_{pr}^x~(x_i - X_i) \\
+ F_i^y &=& -k_{pr}^y~(y_i - Y_i) \\
+ F_i^z &=& -k_{pr}^z~(z_i - Z_i)
+ \end{array}
+ :label: eqnposrestforce
Using three different force constants the position restraints can be
turned on or off in each spatial dimension; this means that atoms can be
potential is used (:numref:`Figure %s <fig-fbposres>` A):
.. math:: V_\mathrm{fb}(\mathbf{r}_i) = \frac{1}{2}k_\mathrm{fb} [d_g(\mathbf{r}_i;\mathbf{R}_i) - r_\mathrm{fb}]^2\,H[d_g(\mathbf{r}_i;\mathbf{R}_i) - r_\mathrm{fb}],
+ :label: eqnflatbottomposrest
where :math:`\mathbf{R}_i` is the reference position,
:math:`r_\mathrm{fb}` is the distance from the center with a flat
the center of the sphere. The following distance calculation is used:
.. math:: d_g(\mathbf{r}_i;\mathbf{R}_i) = | \mathbf{r}_i-\mathbf{R}_i |
+ :label: eqnfbsphereposrest
| **Cylinder** (:math:`g=6,7,8`): The particle is kept in a cylinder of
given radius parallel to the :math:`x` (:math:`g=6`), :math:`y`
zero. For a cylinder aligned along the :math:`z`-axis:
.. math:: d_g(\mathbf{r}_i;\mathbf{R}_i) = \sqrt{ (x_i-X_i)^2 + (y_i - Y_i)^2 }
+ :label: eqnfbcylinderposrest
| **Layer** (:math:`g=3,4,5`): The particle is kept in a layer defined
by the thickness and the normal of the layer. The layer normal can be
parallel to the :math:`x`, :math:`y`, or :math:`z`-axis. The force
acts parallel to the layer normal.
- .. math::
-
- d_g(\mathbf{r}_i;\mathbf{R}_i) = |x_i-X_i|, \;\;\;\mbox{or}\;\;\;
- d_g(\mathbf{r}_i;\mathbf{R}_i) = |y_i-Y_i|, \;\;\;\mbox{or}\;\;\;
- d_g(\mathbf{r}_i;\mathbf{R}_i) = |z_i-Z_i|.
+ .. math:: d_g(\mathbf{r}_i;\mathbf{R}_i) = |x_i-X_i|, \;\;\;\mbox{or}\;\;\;
+ d_g(\mathbf{r}_i;\mathbf{R}_i) = |y_i-Y_i|, \;\;\;\mbox{or}\;\;\;
+ d_g(\mathbf{r}_i;\mathbf{R}_i) = |z_i-Z_i|.
+ :label: eqnfblayerposrest
It is possible to apply multiple independent flat-bottomed position
restraints of different geometry on one particle. For example, applying
negative :math:`r_\mathrm{fb}` in the topology. The following potential
is used (:numref:`Figure %s <fig-fbposres>` B):
-.. math::
-
- V_\mathrm{fb}^{\mathrm{inv}}(\mathbf{r}_i) = \frac{1}{2}k_\mathrm{fb}
- [d_g(\mathbf{r}_i;\mathbf{R}_i) - | r_\mathrm{fb} | ]^2\,
- H[ -(d_g(\mathbf{r}_i;\mathbf{R}_i) - | r_\mathrm{fb} | )].
+.. math:: V_\mathrm{fb}^{\mathrm{inv}}(\mathbf{r}_i) = \frac{1}{2}k_\mathrm{fb}
+ [d_g(\mathbf{r}_i;\mathbf{R}_i) - | r_\mathrm{fb} | ]^2\,
+ H[ -(d_g(\mathbf{r}_i;\mathbf{R}_i) - | r_\mathrm{fb} | )].
+ :label: eqninvertrest
Angle restraints
~~~~~~~~~~~~~~~~
between one pair of particles and the :math:`z`-axis. The functional
form is similar to that of a proper dihedral. For two pairs of atoms:
-.. math::
-
- V_{ar}(\mathbf{r}_i,\mathbf{r}_j,\mathbf{r}_k,\mathbf{r}_l)
- = k_{ar}(1 - \cos(n (\theta - \theta_0))
- )
- ,~~~~\mbox{where}~~
- \theta = \arccos\left(\frac{\mathbf{r}_j -\mathbf{r}_i}{\|\mathbf{r}_j -\mathbf{r}_i\|}
- \cdot \frac{\mathbf{r}_l -\mathbf{r}_k}{\|\mathbf{r}_l -\mathbf{r}_k\|} \right)
+.. math:: V_{ar}(\mathbf{r}_i,\mathbf{r}_j,\mathbf{r}_k,\mathbf{r}_l)
+ = k_{ar}(1 - \cos(n (\theta - \theta_0))
+ )
+ ,~~~~\mbox{where}~~
+ \theta = \arccos\left(\frac{\mathbf{r}_j -\mathbf{r}_i}{\|\mathbf{r}_j -\mathbf{r}_i\|}
+ \cdot \frac{\mathbf{r}_l -\mathbf{r}_k}{\|\mathbf{r}_l -\mathbf{r}_k\|} \right)
+ :label: eqnanglerest
For one pair of atoms and the :math:`z`-axis:
-.. math::
-
- V_{ar}(\mathbf{r}_i,\mathbf{r}_j) = k_{ar}(1 - \cos(n (\theta - \theta_0))
- )
- ,~~~~\mbox{where}~~
- \theta = \arccos\left(\frac{\mathbf{r}_j -\mathbf{r}_i}{\|\mathbf{r}_j -\mathbf{r}_i\|}
- \cdot \left( \begin{array}{c} 0 \\ 0 \\ 1 \\ \end{array} \right) \right)
+.. math:: V_{ar}(\mathbf{r}_i,\mathbf{r}_j) = k_{ar}(1 - \cos(n (\theta - \theta_0))
+ )
+ ,~~~~\mbox{where}~~
+ \theta = \arccos\left(\frac{\mathbf{r}_j -\mathbf{r}_i}{\|\mathbf{r}_j -\mathbf{r}_i\|}
+ \cdot \left( \begin{array}{c} 0 \\ 0 \\ 1 \\ \end{array} \right) \right)
+ :label: eqnanglerestzaxis
A multiplicity (:math:`n`) of 2 is useful when you do not want to
distinguish between parallel and anti-parallel vectors. The equilibrium
The forces are
-.. math::
-
- \mathbf{F}_i~=~ \left\{
- \begin{array}{lcllllll}
- -k_{dr}(r_{ij}-r_0)\frac{\mathbf{r}_ij}{r_{ij}}
- &\mbox{for}& & & r_{ij} & < & r_0 \\[1.5ex]
- 0 &\mbox{for}& r_0 & \le & r_{ij} & < & r_1 \\[1.5ex]
- -k_{dr}(r_{ij}-r_1)\frac{\mathbf{r}_ij}{r_{ij}}
- &\mbox{for}& r_1 & \le & r_{ij} & < & r_2 \\[1.5ex]
- -k_{dr}(r_2-r_1)\frac{\mathbf{r}_ij}{r_{ij}}
- &\mbox{for}& r_2 & \le & r_{ij} & &
- \end{array} \right.
+.. math:: \mathbf{F}_i~=~ \left\{
+ \begin{array}{lcllllll}
+ -k_{dr}(r_{ij}-r_0)\frac{\mathbf{r}_ij}{r_{ij}}
+ &\mbox{for}& & & r_{ij} & < & r_0 \\[1.5ex]
+ 0 &\mbox{for}& r_0 & \le & r_{ij} & < & r_1 \\[1.5ex]
+ -k_{dr}(r_{ij}-r_1)\frac{\mathbf{r}_ij}{r_{ij}}
+ &\mbox{for}& r_1 & \le & r_{ij} & < & r_2 \\[1.5ex]
+ -k_{dr}(r_2-r_1)\frac{\mathbf{r}_ij}{r_{ij}}
+ &\mbox{for}& r_2 & \le & r_{ij} & &
+ \end{array} \right.
+ :label: eqndisreforce
For restraints not derived from NMR data, this functionality will
usually suffice and a section of ``[ bonds ]`` type 10 can be used to apply individual
overcome by restraining to a *time averaged*
distance \ :ref:`91 <refTorda89>`. The forces with time averaging are:
-.. math::
-
- \mathbf{F}_i~=~ \left\{
- \begin{array}{lcllllll}
- -k^a_{dr}(\bar{r}_{ij}-r_0)\frac{\mathbf{r}_ij}{r_{ij}}
- &\mbox{for}& & & \bar{r}_{ij} & < & r_0 \\[1.5ex]
- 0 &\mbox{for}& r_0 & \le & \bar{r}_{ij} & < & r_1 \\[1.5ex]
- -k^a_{dr}(\bar{r}_{ij}-r_1)\frac{\mathbf{r}_ij}{r_{ij}}
- &\mbox{for}& r_1 & \le & \bar{r}_{ij} & < & r_2 \\[1.5ex]
- -k^a_{dr}(r_2-r_1)\frac{\mathbf{r}_ij}{r_{ij}}
- &\mbox{for}& r_2 & \le & \bar{r}_{ij} & &
- \end{array} \right.
+.. math:: \mathbf{F}_i~=~ \left\{
+ \begin{array}{lcllllll}
+ -k^a_{dr}(\bar{r}_{ij}-r_0)\frac{\mathbf{r}_ij}{r_{ij}}
+ &\mbox{for}& & & \bar{r}_{ij} & < & r_0 \\[1.5ex]
+ 0 &\mbox{for}& r_0 & \le & \bar{r}_{ij} & < & r_1 \\[1.5ex]
+ -k^a_{dr}(\bar{r}_{ij}-r_1)\frac{\mathbf{r}_ij}{r_{ij}}
+ &\mbox{for}& r_1 & \le & \bar{r}_{ij} & < & r_2 \\[1.5ex]
+ -k^a_{dr}(r_2-r_1)\frac{\mathbf{r}_ij}{r_{ij}}
+ &\mbox{for}& r_2 & \le & \bar{r}_{ij} & &
+ \end{array} \right.
+ :label: eqntimeaveragerest
where :math:`\bar{r}_{ij}` is given by an exponential running average
with decay time :math:`\tau`:
for the lack of history at the beginning of the simulation:
.. math:: k^a_{dr} = k_{dr} \left(1-\exp\left(-\frac{t}{\tau}\right)\right)
+ :label: eqnforceconstantswitch
Because of the time averaging, we can no longer speak of a distance
restraint potential.
root of the product of the instantaneous violation and the time averaged
violation:
-.. math::
-
- \mathbf{F}_i~=~ \left\{
- \begin{array}{lclll}
- k^a_{dr}\sqrt{(r_{ij}-r_0)(\bar{r}_{ij}-r_0)}\frac{\mathbf{r}_ij}{r_{ij}}
- & \mbox{for} & r_{ij} < r_0 & \mbox{and} & \bar{r}_{ij} < r_0 \\[1.5ex]
- -k^a _{dr} \,
- \mbox{min}\left(\sqrt{(r_{ij}-r_1)(\bar{r}_{ij}-r_1)},r_2-r_1\right)
- \frac{\mathbf{r}_ij}{r_{ij}}
- & \mbox{for} & r_{ij} > r_1 & \mbox{and} & \bar{r}_{ij} > r_1 \\[1.5ex]
- 0 &\mbox{otherwise}
- \end{array} \right.
+.. math:: \mathbf{F}_i~=~ \left\{
+ \begin{array}{lclll}
+ k^a_{dr}\sqrt{(r_{ij}-r_0)(\bar{r}_{ij}-r_0)}\frac{\mathbf{r}_ij}{r_{ij}}
+ & \mbox{for} & r_{ij} < r_0 & \mbox{and} & \bar{r}_{ij} < r_0 \\[1.5ex]
+ -k^a _{dr} \,
+ \mbox{min}\left(\sqrt{(r_{ij}-r_1)(\bar{r}_{ij}-r_1)},r_2-r_1\right)
+ \frac{\mathbf{r}_ij}{r_{ij}}
+ & \mbox{for} & r_{ij} > r_1 & \mbox{and} & \bar{r}_{ij} > r_1 \\[1.5ex]
+ 0 &\mbox{otherwise}
+ \end{array} \right.
+ :label: eqntimeaverageviolation
Averaging over multiple pairs
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
It is also possible to use *ensemble averaging* using multiple (protein)
molecules. In this case the bounds should be lowered as in:
-.. math::
-
- \begin{array}{rcl}
- r_1 &~=~& r_1 * M^{-1/6} \\
- r_2 &~=~& r_2 * M^{-1/6}
- \end{array}
+.. math:: \begin{array}{rcl}
+ r_1 &~=~& r_1 * M^{-1/6} \\
+ r_2 &~=~& r_2 * M^{-1/6}
+ \end{array}
+ :label: eqnrestforceensembleaverage
where :math:`M` is the number of molecules. The |Gromacs| preprocessor
:ref:`grompp <gmx grompp>` can do this automatically when the appropriate
option is given. The resulting “distance” is then used to calculate the
scalar force according to:
-.. math::
-
- \mathbf{F}_i~=~\left\{
- \begin{array}{rcl}
- ~& 0 \hspace{4cm} & r_{N} < r_1 \\
- & k_{dr}(r_{N}-r_1)\frac{\mathbf{r}_ij}{r_{ij}} & r_1 \le r_{N} < r_2 \\
- & k_{dr}(r_2-r_1)\frac{\mathbf{r}_ij}{r_{ij}} & r_{N} \ge r_2
- \end{array} \right.
+.. math:: \mathbf{F}_i~=~\left\{
+ \begin{array}{rcl}
+ ~& 0 \hspace{4cm} & r_{N} < r_1 \\
+ & k_{dr}(r_{N}-r_1)\frac{\mathbf{r}_ij}{r_{ij}} & r_1 \le r_{N} < r_2 \\
+ & k_{dr}(r_2-r_1)\frac{\mathbf{r}_ij}{r_{ij}} & r_{N} \ge r_2
+ \end{array} \right.
+ :label: eqnrestscalarforce
where :math:`i` and :math:`j` denote the atoms of all the pairs that
contribute to the NOE signal.
vector :math:`\mathbf{r}_i` can be written as follows:
.. math:: \delta_i = \frac{2}{3} \mbox{tr}({{\mathbf S}}{{\mathbf D}}_i)
+ :label: eqnorrestvector
where :math:`{{\mathbf S}}` is the dimensionless order tensor of the
molecule. The tensor :math:`{{\mathbf D}}_i` is given by:
\end{array} \right)
:label: eqnorientdef
-.. math::
-
- \mbox{with:} \quad
- x=\frac{r_{i,x}}{\|\mathbf{r}_i\|}, \quad
- y=\frac{r_{i,y}}{\|\mathbf{r}_i\|}, \quad
- z=\frac{r_{i,z}}{\|\mathbf{r}_i\|}
+.. math:: \mbox{with:} \quad
+ x=\frac{r_{i,x}}{\|\mathbf{r}_i\|}, \quad
+ y=\frac{r_{i,y}}{\|\mathbf{r}_i\|}, \quad
+ z=\frac{r_{i,z}}{\|\mathbf{r}_i\|}
+ :label: eqnorientdef2
For a dipolar coupling :math:`\mathbf{r}_i` is the vector
connecting the two nuclei, :math:`\alpha=3` and the constant :math:`c_i`
is given by:
.. math:: c_i = \frac{\mu_0}{4\pi} \gamma_1^i \gamma_2^i \frac{\hbar}{4\pi}
+ :label: eqnorrestconstant
where :math:`\gamma_1^i` and :math:`\gamma_2^i` are the gyromagnetic
ratios of the two nuclei.
matrix :math:`{\mathbf T}` it can be transformed into the following
form:
-.. math::
-
- {\mathbf T}^T {{\mathbf S}}{\mathbf T} = s \left( \begin{array}{ccc}
- -\frac{1}{2}(1-\eta) & 0 & 0 \\
- 0 & -\frac{1}{2}(1+\eta) & 0 \\
- 0 & 0 & 1
- \end{array} \right)
+.. math:: {\mathbf T}^T {{\mathbf S}}{\mathbf T} = s \left( \begin{array}{ccc}
+ -\frac{1}{2}(1-\eta) & 0 & 0 \\
+ 0 & -\frac{1}{2}(1+\eta) & 0 \\
+ 0 & 0 & 1
+ \end{array} \right)
+ :label: eqnorresttensor
where :math:`-1 \leq s \leq 1` and :math:`0 \leq \eta \leq 1`.
:math:`s` is called the order parameter and :math:`\eta` the asymmetry
The calculated orientation for vector :math:`i` is given by:
.. math:: \delta^c_i(t) = \frac{2}{3} \mbox{tr}({{\mathbf S}}(t){{\mathbf D}}_i^c(t))
+ :label: eqnDrotvector
The order tensor :math:`{{\mathbf S}}(t)` is usually unknown. A
reasonable choice for the order tensor is the tensor which minimizes the
the molecule, as expressed by :eq:`equation %s <eqnDrot>`). The time-averaged
tensors are calculated using an exponentially decaying memory function:
-.. math::
-
- {{\mathbf D}}^a_i(t) = \frac{\displaystyle
- \int_{u=t_0}^t {{\mathbf D}}^c_i(u) \exp\left(-\frac{t-u}{\tau}\right)\mbox{d} u
- }{\displaystyle
- \int_{u=t_0}^t \exp\left(-\frac{t-u}{\tau}\right)\mbox{d} u
- }
+.. math:: {{\mathbf D}}^a_i(t) = \frac{\displaystyle
+ \int_{u=t_0}^t {{\mathbf D}}^c_i(u) \exp\left(-\frac{t-u}{\tau}\right)\mbox{d} u
+ }{\displaystyle
+ \int_{u=t_0}^t \exp\left(-\frac{t-u}{\tau}\right)\mbox{d} u
+ }
+ :label: eqnorresttimeaverage
Assuming that the order tensor :math:`{{\mathbf S}}` fluctuates slower
than the :math:`{{\mathbf D}}_i`, the time-averaged orientation can be
calculated as:
.. math:: \delta_i^a(t) = \frac{2}{3} \mbox{tr}({{\mathbf S}}(t) {{\mathbf D}}_i^a(t))
+ :label: eqnorresttimeaveorient
where the order tensor :math:`{{\mathbf S}}(t)` is calculated using
expression :eq:`%s <eqnSmsd>` with :math:`\delta_i^c(t)` replaced by
potential can be defined as:
.. math:: V = \frac{1}{2} k \sum_{i=1}^N w_i (\delta_i^c (t) -\delta_i^{exp})^2
+ :label: eqnorrestsimrest
where the unit of :math:`k` is the unit of energy. Thus the effective
force constant for restraint :math:`i` is :math:`k w_i`. The forces are
:math:`\mathbf{F}\!_i` working on vector
:math:`\mathbf{r}_i` is:
-.. math::
-
- \begin{aligned}
- \mathbf{F}\!_i(t)
- & = & - \frac{\mbox{d} V}{\mbox{d}\mathbf{r}_i} \\
- & = & -k w_i (\delta_i^c (t) -\delta_i^{exp}) \frac{\mbox{d} \delta_i (t)}{\mbox{d}\mathbf{r}_i} \\
- & = & -k w_i (\delta_i^c (t) -\delta_i^{exp})
- \frac{2 c_i}{\|\mathbf{r}\|^{2+\alpha}} \left(2 {{\mathbf R}}^T {{\mathbf S}}{{\mathbf R}}\mathbf{r}_i - \frac{2+\alpha}{\|\mathbf{r}\|^2} \mbox{tr}({{\mathbf R}}^T {{\mathbf S}}{{\mathbf R}}\mathbf{r}_i \mathbf{r}_i^T) \mathbf{r}_i \right)\end{aligned}
+.. math:: \begin{aligned}
+ \mathbf{F}\!_i(t)
+ & = & - \frac{\mbox{d} V}{\mbox{d}\mathbf{r}_i} \\
+ & = & -k w_i (\delta_i^c (t) -\delta_i^{exp}) \frac{\mbox{d} \delta_i (t)}{\mbox{d}\mathbf{r}_i} \\
+ & = & -k w_i (\delta_i^c (t) -\delta_i^{exp})
+ \frac{2 c_i}{\|\mathbf{r}\|^{2+\alpha}} \left(2 {{\mathbf R}}^T {{\mathbf S}}{{\mathbf R}}\mathbf{r}_i - \frac{2+\alpha}{\|\mathbf{r}\|^2} \mbox{tr}({{\mathbf R}}^T {{\mathbf S}}{{\mathbf R}}\mathbf{r}_i \mathbf{r}_i^T) \mathbf{r}_i \right)\end{aligned}
+ :label: eqnorrestsimrestforce
Ensemble averaging
^^^^^^^^^^^^^^^^^^
The systems only interact via the orientation restraint potential which
is defined as:
-.. math::
-
- V = M \frac{1}{2} k \sum_{i=1}^N w_i
- \langle \delta_i^c (t) -\delta_i^{exp} \rangle^2
+.. math:: V = M \frac{1}{2} k \sum_{i=1}^N w_i
+ \langle \delta_i^c (t) -\delta_i^{exp} \rangle^2
+ :label: eqnorrestensembleave
The force on vector :math:`\mathbf{r}_{i,m}` in subsystem
:math:`m` is given by:
-.. math::
-
- \mathbf{F}\!_{i,m}(t) = - \frac{\mbox{d} V}{\mbox{d}\mathbf{r}_{i,m}} =
- -k w_i \langle \delta_i^c (t) -\delta_i^{exp} \rangle \frac{\mbox{d} \delta_{i,m}^c (t)}{\mbox{d}\mathbf{r}_{i,m}} \\
+.. math:: \mathbf{F}\!_{i,m}(t) = - \frac{\mbox{d} V}{\mbox{d}\mathbf{r}_{i,m}} =
+ -k w_i \langle \delta_i^c (t) -\delta_i^{exp} \rangle \frac{\mbox{d} \delta_{i,m}^c (t)}{\mbox{d}\mathbf{r}_{i,m}}
+ :label: eqnorrestensaveforce
Time averaging
^^^^^^^^^^^^^^
can still define a quantity that gives a rough idea of the energy stored
in the restraints:
-.. math::
-
- V = M \frac{1}{2} k^a \sum_{i=1}^N w_i
- \langle \delta_i^a (t) -\delta_i^{exp} \rangle^2
+.. math:: V = M \frac{1}{2} k^a \sum_{i=1}^N w_i
+ \langle \delta_i^a (t) -\delta_i^{exp} \rangle^2
+ :label: eqntimeavepot
The force constant :math:`k_a` is switched on slowly to compensate for
the lack of history at times close to :math:`t_0`. It is exactly
proportional to the amount of average that has been accumulated:
-.. math::
-
- k^a =
- k \, \frac{1}{\tau}\int_{u=t_0}^t \exp\left(-\frac{t-u}{\tau}\right)\mbox{d} u
+.. math:: k^a =
+ k \, \frac{1}{\tau}\int_{u=t_0}^t \exp\left(-\frac{t-u}{\tau}\right)\mbox{d} u
+ :label: eqntimeaveforceswitch
What really matters is the definition of the force. It is chosen to be
proportional to the square root of the product of the time-averaged and
the instantaneous deviation. Using only the time-averaged deviation
induces large oscillations. The force is given by:
-.. math::
-
- \mathbf{F}\!_{i,m}(t) =
- \left\{ \begin{array}{ll}
- 0 & \quad \mbox{for} \quad a\, b \leq 0 \\
- \displaystyle
- k^a w_i \frac{a}{|a|} \sqrt{a\, b} \, \frac{\mbox{d} \delta_{i,m}^c (t)}{\mbox{d}\mathbf{r}_{i,m}}
- & \quad \mbox{for} \quad a\, b > 0
- \end{array}
- \right.
-
-.. math::
+.. math:: \mathbf{F}\!_{i,m}(t) =
+ \left\{ \begin{array}{ll}
+ 0 & \quad \mbox{for} \quad a\, b \leq 0 \\
+ \displaystyle
+ k^a w_i \frac{a}{|a|} \sqrt{a\, b} \, \frac{\mbox{d} \delta_{i,m}^c (t)}{\mbox{d}\mathbf{r}_{i,m}}
+ & \quad \mbox{for} \quad a\, b > 0
+ \end{array}
+ \right.
+ :label: eqntimeaveforce
- \begin{aligned}
- a &=& \langle \delta_i^a (t) -\delta_i^{exp} \rangle \\
- b &=& \langle \delta_i^c (t) -\delta_i^{exp} \rangle\end{aligned}
+.. math:: \begin{aligned}
+ a &=& \langle \delta_i^a (t) -\delta_i^{exp} \rangle \\
+ b &=& \langle \delta_i^c (t) -\delta_i^{exp} \rangle\end{aligned}
+ :label: eqntimeaveforce2
Using orientation restraints
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:math:`N` interacting atoms:
.. math:: m_i \frac{\partial^2 \mathbf{r}_i}{\partial t^2} = \mathbf{F}_i, \;i=1 \ldots N.
+ :label: eqnnewtonslaws
The forces are the negative derivatives of a potential function
:math:`V(\mathbf{r}_1, \mathbf{r}_2, \ldots, \mathbf{r}_N)`:
.. math:: \mathbf{F}_i = - \frac{\partial V}{\partial \mathbf{r}_i}
+ :label: eqnmdforces
The equations are solved simultaneously in small time steps. The system
is followed for some time, taking care that the temperature and pressure
appreciably from that of a real quantum oscillator when the
resonance frequency :math:`\nu` approximates or exceeds
:math:`k_BT/h`. Now at room temperature the wavenumber
- :math:`\sigma = 1/\lambda =
- \nu/c` at which :math:`h
+ :math:`\sigma = 1/\lambda = \nu/c` at which :math:`h
\nu = k_BT` is approximately 200 cm\ :math:`^{-1}`. Thus, all
frequencies higher than, say, 100 cm\ :math:`^{-1}` may misbehave
in classical simulations. This means that practically all bond and
bond-angle vibrations are suspect, and even hydrogen-bonded
motions as translational or librational H-bond vibrations are
- beyond the classical limit (see
- :numref:`Table %s <tab-vibrations>`)
+ beyond the classical limit (see :numref:`Table %s <tab-vibrations>`)
What can we do?
.. |H2CX| replace:: H\ :math:`_2`\ CX
heat of a one-dimensional oscillator with frequency :math:`\nu`
are: \ :ref:`11 <refMcQuarrie76>`
- .. math::
+ .. math:: U^{QM} = U^{cl} +kT \left( {\frac{1}{2}}x - 1 + \frac{x}{e^x-1} \right)
+ :label: eqnmdqmcorr
- U^{QM} = U^{cl} +kT \left( {\frac{1}{2}}x - 1 + \frac{x}{e^x-1} \right)
-
- .. math::
-
- C_V^{QM} = C_V^{cl} + k \left( \frac{x^2e^x}{(e^x-1)^2} - 1 \right)
+ .. math:: C_V^{QM} = C_V^{cl} + k \left( \frac{x^2e^x}{(e^x-1)^2} - 1 \right)
+ :label: eqnmdqmcorr2
where :math:`x=h\nu /kT`. The classical oscillator absorbs too
much energy (:math:`kT`), while the high-frequency quantum
potential
.. math:: Q(\xi,\lambda) = \frac{1}{2} \beta k (\xi - \lambda)^2,
+ :label: eqnawhbasic
so that for large force constants :math:`k`,
:math:`\xi \approx \lambda`. Note the use of dimensionless energies for
repeatedly with limited and localized sampling,
.. math:: \Delta F_n = -\ln \frac{W_n(\lambda) + \sum_t \omega_n(\lambda|x(t))}{W_n(\lambda) + \sum_t\rho_n(\lambda)) }.
+ :label: eqnawhsampling
Here :math:`W_n(\lambda)` is the *reference weight histogram*
representing prior sampling. The update for :math:`W(\lambda)`,
be uniform
.. math:: \rho_{\mathrm{const}}(\lambda) = \mathrm{const.}
+ :label: eqnawhuniformdist
This choice exactly flattens :math:`F(\lambda)` in user-defined
sampling interval :math:`I`. Generally,
weight histogram
.. math:: \rho_{\mathrm{Boltz,loc}}(\lambda) \propto W(\lambda),
+ :label: eqnawhweighthistogram
and the update of the weight histogram is modified (cf.
:eq:`Eq. %s <eqawhwupdate>`)
.. math:: W_{n+1}(\lambda) = W_{n}(\lambda) + s_{\beta}\sum_t \omega(\lambda | x(t)).
+ :label: eqnawhupdateweighthist
Thus, here the weight histogram equals the real history of samples, but
scaled by :math:`s_\beta`. This target distribution is called *local*
probability weights
.. math:: \rho(\lambda) = \rho_0(\lambda) w_{\mathrm{user}}(\lambda).
+ :label: eqnawhpropweigth
where :math:`w_{\mathrm{user}}(\lambda)` is provided by user data and
in principle :math:`\rho_0(\lambda)` can be any of the target
according to the membrane capacitance:
.. math:: \Delta U = \Delta q / C_{membrane}
+ :label: eqnmembcap
The transmembrane electric field and concentration gradients are
controlled by :ref:`mdp` options, which allow the user to set
is determined by:
.. math:: G = \frac{\sum_{i} n_{i}q_{i}}{\Delta t \, \Delta U} \, .
+ :label: eqnchannelcond
The ion selectivity is calculated as the number flux ratio of different
species. Best results are obtained by averaging these values over
total mass :math:`M = \sum_{i=1}^N m_i`. The rotation matrix
:math:`\mathbf{\Omega}(t)` is
-.. math::
-
- \mathbf{\Omega}(t) =
- \left(
- \begin{array}{ccc}
- \cos\omega t + v_x^2{\,\xi\,}& v_x v_y{\,\xi\,}- v_z\sin\omega t & v_x v_z{\,\xi\,}+ v_y\sin\omega t\\
- v_x v_y{\,\xi\,}+ v_z\sin\omega t & \cos\omega t + v_y^2{\,\xi\,}& v_y v_z{\,\xi\,}- v_x\sin\omega t\\
- v_x v_z{\,\xi\,}- v_y\sin\omega t & v_y v_z{\,\xi\,}+ v_x\sin\omega t & \cos\omega t + v_z^2{\,\xi\,}\\
- \end{array}
- \right)
+.. math:: \mathbf{\Omega}(t) =
+ \left(
+ \begin{array}{ccc}
+ \cos\omega t + v_x^2{\,\xi\,}& v_x v_y{\,\xi\,}- v_z\sin\omega t & v_x v_z{\,\xi\,}+ v_y\sin\omega t\\
+ v_x v_y{\,\xi\,}+ v_z\sin\omega t & \cos\omega t + v_y^2{\,\xi\,}& v_y v_z{\,\xi\,}- v_x\sin\omega t\\
+ v_x v_z{\,\xi\,}- v_y\sin\omega t & v_y v_z{\,\xi\,}+ v_x\sin\omega t & \cos\omega t + v_z^2{\,\xi\,}\\
+ \end{array}
+ \right)
+ :label: eqnrotmat
where :math:`v_x`, :math:`v_y`, and :math:`v_z` are the components of
the normalized rotation vector :math:`\hat{\mathbf{v}}`,
(eqns. :eq:`%s <eqnpotiso>` and :eq:`%s <eqnpotisopf>`) also contain components parallel to the
rotation axis and thereby restrain motions along the axis of either the
whole rotation group (in case of :math:`V^\mathrm{iso}`) or within the
-rotation group, in case of
-
-.. math:: V^\mathrm{iso-pf}
+rotation group, in case of :math:`V^\mathrm{iso-pf}`.
-For cases where
-unrestrained motion along the axis is preferred, we have implemented a
+For cases where unrestrained motion along the axis is preferred, we have implemented a
“parallel motion” variant by eliminating all components parallel to the
rotation axis for the potential. This is achieved by projecting the
distance vectors between reference and actual positions
.. math:: \mathbf{r}_i = \mathbf{\Omega}(t) (\mathbf{y}_i^0 - \mathbf{u}) - (\mathbf{x}_i - \mathbf{u})
+ :label: eqnrotdistvectors
onto the plane perpendicular to the rotation vector,
parallel motion potential. With
.. math:: \mathbf{s}_i = \mathbf{\Omega}(t) (\mathbf{y}_i^0 - \mathbf{y}_c^0) - (\mathbf{x}_i - \mathbf{x}_c)
+ :label: eqnparrallelpotential
the respective potential and forces are
with
-.. math::
-
- \mathbf{p}_i :=
- \frac{\hat{\mathbf{v}}\times \mathbf{\Omega}(t) (\mathbf{y}_i^0 - \mathbf{u})} {\| \hat{\mathbf{v}}\times \mathbf{\Omega}(t) (\mathbf{y}_i^0 - \mathbf{u})\|} \ .
+.. math:: \mathbf{p}_i :=
+ \frac{\hat{\mathbf{v}}\times \mathbf{\Omega}(t) (\mathbf{y}_i^0 - \mathbf{u})} {\| \hat{\mathbf{v}}\times \mathbf{\Omega}(t) (\mathbf{y}_i^0 - \mathbf{u})\|} \ .
+ :label: eqnpotrmpart2
This variant depends only on the distance
:math:`\mathbf{p}_i \cdot (\mathbf{x}_i -
Proceeding similar to the pivot-free isotropic potential yields a
pivot-free version of the above potential. With
-.. math::
-
- \mathbf{q}_i :=
- \frac{\hat{\mathbf{v}}\times \mathbf{\Omega}(t) (\mathbf{y}_i^0 - \mathbf{y}_c^0)} {\| \hat{\mathbf{v}}\times \mathbf{\Omega}(t) (\mathbf{y}_i^0 - \mathbf{y}_c^0)\|} \, ,
+.. math:: \mathbf{q}_i :=
+ \frac{\hat{\mathbf{v}}\times \mathbf{\Omega}(t) (\mathbf{y}_i^0 - \mathbf{y}_c^0)} {\| \hat{\mathbf{v}}\times \mathbf{\Omega}(t) (\mathbf{y}_i^0 - \mathbf{y}_c^0)\|} \, ,
+ :label: eqnpotrmpfpart1
the potential and force for the pivot-free variant of the radial motion
potential read
for :math:`\epsilon'\mathrm{ = }0\mathrm{nm}^2`
(:numref:`Fig. %s C <fig-equipotential>`). With
-.. math::
-
- \begin{aligned}
- \mathbf{r}_i & := & \mathbf{\Omega}(t)(\mathbf{y}_i^0 - \mathbf{u})\\
- \mathbf{s}_i & := & \frac{\hat{\mathbf{v}} \times (\mathbf{x}_i -
- \mathbf{u} ) }{ \| \hat{\mathbf{v}} \times (\mathbf{x}_i - \mathbf{u})
- \| } \equiv \; \Psi_{i} \;\; {\hat{\mathbf{v}} \times
- (\mathbf{x}_i-\mathbf{u} ) }\\
- \Psi_i^{*} & := & \frac{1}{ \| \hat{\mathbf{v}} \times
- (\mathbf{x}_i-\mathbf{u}) \|^2 + \epsilon'}\end{aligned}
+.. math:: \begin{aligned}
+ \mathbf{r}_i & := & \mathbf{\Omega}(t)(\mathbf{y}_i^0 - \mathbf{u})\\
+ \mathbf{s}_i & := & \frac{\hat{\mathbf{v}} \times (\mathbf{x}_i -
+ \mathbf{u} ) }{ \| \hat{\mathbf{v}} \times (\mathbf{x}_i - \mathbf{u})
+ \| } \equiv \; \Psi_{i} \;\; {\hat{\mathbf{v}} \times
+ (\mathbf{x}_i-\mathbf{u} ) }\\
+ \Psi_i^{*} & := & \frac{1}{ \| \hat{\mathbf{v}} \times
+ (\mathbf{x}_i-\mathbf{u}) \|^2 + \epsilon'}\end{aligned}
+ :label: eqnpotrm2forcepart1
the force on atom :math:`j` reads
With
-.. math::
-
- \begin{aligned}
- \mathbf{r}_i & := & \mathbf{\Omega}(t)(\mathbf{y}_i^0 - \mathbf{y}_c)\\
- \mathbf{s}_i & := & \frac{\hat{\mathbf{v}} \times (\mathbf{x}_i -
- \mathbf{x}_c ) }{ \| \hat{\mathbf{v}} \times (\mathbf{x}_i - \mathbf{x}_c)
- \| } \equiv \; \Psi_{i} \;\; {\hat{\mathbf{v}} \times
- (\mathbf{x}_i-\mathbf{x}_c ) }\\ \Psi_i^{*} & := & \frac{1}{ \| \hat{\mathbf{v}} \times
- (\mathbf{x}_i-\mathbf{x}_c) \|^2 + \epsilon'}\end{aligned}
+.. math:: \begin{aligned}
+ \mathbf{r}_i & := & \mathbf{\Omega}(t)(\mathbf{y}_i^0 - \mathbf{y}_c)\\
+ \mathbf{s}_i & := & \frac{\hat{\mathbf{v}} \times (\mathbf{x}_i -
+ \mathbf{x}_c ) }{ \| \hat{\mathbf{v}} \times (\mathbf{x}_i - \mathbf{x}_c)
+ \| } \equiv \; \Psi_{i} \;\; {\hat{\mathbf{v}} \times
+ (\mathbf{x}_i-\mathbf{x}_c ) }\\ \Psi_i^{*} & := & \frac{1}{ \| \hat{\mathbf{v}} \times
+ (\mathbf{x}_i-\mathbf{x}_c) \|^2 + \epsilon'}\end{aligned}
+ :label: eqnpotrm2pfpart2
the force on atom :math:`j` reads
between adjacent slabs, and
.. math:: \beta_n(\mathbf{x}_i) := \mathbf{x}_i \cdot \hat{\mathbf{v}} - n \, \Delta x \, .
+ :label: eqngaussianpart2
.. _fig-gaussian:
A most convenient choice is :math:`\sigma = 0.7 \Delta x` and
-.. math::
-
- 1/\Gamma = \sum_{n \in Z}
- \mbox{exp}
- \left(-\frac{(n - \frac{1}{4})^2}{2\cdot 0.7^2}\right)
- \approx 1.75464 \, ,
+.. math:: 1/\Gamma = \sum_{n \in Z}
+ \mbox{exp}
+ \left(-\frac{(n - \frac{1}{4})^2}{2\cdot 0.7^2}\right)
+ \approx 1.75464 \, ,
+ :label: eqngaussianpart3
which yields a nearly constant sum, essentially independent of
:math:`\mathbf{x}_i` (dashed line in
:math:`\mathbf{x}_c^n`, the center of mass of the slab.
With
-.. math::
-
- \begin{aligned}
- \mathbf{q}_i^n & := & \frac{\hat{\mathbf{v}} \times
- \mathbf{\Omega}(t)(\mathbf{y}_i^0 - \mathbf{y}_c^n) }{ \| \hat{\mathbf{v}}
- \times \mathbf{\Omega}(t)(\mathbf{y}_i^0 - \mathbf{y}_c^n) \| } \\
- b_i^n & := & \mathbf{q}_i^n \cdot (\mathbf{x}_i - \mathbf{x}_c^n) \, ,\end{aligned}
+.. math:: \begin{aligned}
+ \mathbf{q}_i^n & := & \frac{\hat{\mathbf{v}} \times
+ \mathbf{\Omega}(t)(\mathbf{y}_i^0 - \mathbf{y}_c^n) }{ \| \hat{\mathbf{v}}
+ \times \mathbf{\Omega}(t)(\mathbf{y}_i^0 - \mathbf{y}_c^n) \| } \\
+ b_i^n & := & \mathbf{q}_i^n \cdot (\mathbf{x}_i - \mathbf{x}_c^n) \, ,\end{aligned}
+ :label: eqnflexpotpart2
the resulting force on atom :math:`j` reads
\partial \mathbf{x}_c / \partial y = \partial \mathbf{x}_c / \partial z = 0`.
The resulting force error is small (of order :math:`O(1/N)` or
:math:`O(m_j/M)` if mass-weighting is applied) and can therefore be
-tolerated. With this assumption, the forces
-
-.. math::
- \mathbf{F}^\mathrm{flex-t}
-
-have the same form as
-eqn. :eq:`%s <eqnpotflexforce>`.
+tolerated. With this assumption, the forces :math:`\mathbf{F}^\mathrm{flex-t}`
+have the same form as eqn. :eq:`%s <eqnpotflexforce>`.
Flexible Axis 2 Alternative Potential
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
eqn. :eq:`%s <eqnproject>` for the definition of
:math:`\perp`),
-.. math::
-
- \cos \theta_i =
- \frac{(\mathbf{y}_i-\mathbf{u})^\perp \cdot (\mathbf{x}_i-\mathbf{u})^\perp}
- { \| (\mathbf{y}_i-\mathbf{u})^\perp \cdot (\mathbf{x}_i-\mathbf{u})^\perp
- \| } \ .
+.. math:: \cos \theta_i =
+ \frac{(\mathbf{y}_i-\mathbf{u})^\perp \cdot (\mathbf{x}_i-\mathbf{u})^\perp}
+ { \| (\mathbf{y}_i-\mathbf{u})^\perp \cdot (\mathbf{x}_i-\mathbf{u})^\perp
+ \| } \ .
+ :label: eqnavanglepart2
The sign of :math:`\theta_\mathrm{av}` is chosen such that
:math:`\theta_\mathrm{av} > 0` if the actual structure rotates ahead of
thermodynamic integration, then the TI equation becomes vector equation:
.. math:: \Delta F = \int \langle \nabla H \rangle \cdot d\vec{\lambda}
+ :label: eqnfepti
or for finite differences:
.. math:: \Delta F \approx \int \sum \langle \nabla H \rangle \cdot \Delta\lambda
+ :label: eqnfepfinitediff
The external `pymbar script <https://SimTK.org/home/pymbar>`_
can compute this integral automatically
non-interacting masses the potential of mean force is:
.. math:: V_{pmf}(r) = -(n_c - 1) k_B T \log(r)
+ :label: eqnfepentropy
where :math:`n_c` is the number of dimensions in which the constraint
works (i.e. :math:`n_c=3` for a normal constraint and :math:`n_c=1` when
contributions of atoms are weighted as a function of distance (in
addition to the mass weighting):
-.. math::
-
- \begin{aligned}
- w(r < r_\mathrm{cyl}) & = &
- 1-2 \left(\frac{r}{r_\mathrm{cyl}}\right)^2 + \left(\frac{r}{r_\mathrm{cyl}}\right)^4 \\
- w(r \geq r_\mathrm{cyl}) & = & 0\end{aligned}
+.. math:: \begin{aligned}
+ w(r < r_\mathrm{cyl}) & = &
+ 1-2 \left(\frac{r}{r_\mathrm{cyl}}\right)^2 + \left(\frac{r}{r_\mathrm{cyl}}\right)^4 \\
+ w(r \geq r_\mathrm{cyl}) & = & 0\end{aligned}
+ :label: eqnpulldistmassweight
Note that the radial dependence on the weight causes a radial force on
both cylinder group and the other pull group. This is an undesirable,
due to cosine weighting, the weights need to be scaled to conserve
momentum:
-.. math::
-
- w'_i = w_i
- \left. \sum_{j=1}^N w_j \, m_j \right/ \sum_{j=1}^N w_j^2 \, m_j
+.. math:: w'_i = w_i
+ \left. \sum_{j=1}^N w_j \, m_j \right/ \sum_{j=1}^N w_j^2 \, m_j
+ :label: eqnpullmassscale
where :math:`m_j` is the mass of atom :math:`j` of the group. The mass
of the group, required for calculating the constraint force, is:
.. math:: M = \sum_{i=1}^N w'_i \, m_i
+ :label: eqnpullconstraint
The definition of the weighted center of mass is:
.. math:: \mathbf{r}_{com} = \left. \sum_{i=1}^N w'_i \, m_i \, \mathbf{r}_i \right/ M
+ :label: eqnpullcom
From the centers of mass the AFM, constraint, or umbrella force
:math:`\mathbf{F}_{\!com}` on each group can be
to the atoms as follows:
.. math:: \mathbf{F}_{\!i} = \frac{w'_i \, m_i}{M} \, \mathbf{F}_{\!com}
+ :label: eqnpullcomforce
Definition of the pull direction
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
H^{QM/MM} =
H^{QM}_e-\sum_i^n\sum_J^M\frac{e^2Q_J}{4\pi\epsilon_0r_{iJ}}+\sum_A^N\sum_J^M\frac{e^2Z_AQ_J}{e\pi\epsilon_0R_{AJ}},
-# where :math:`n` and :math:`N` are the number of electrons and nuclei
+ where :math:`n` and :math:`N` are the number of electrons and nuclei
in the QM region, respectively, and :math:`M` is the number of
charged MM atoms. The first term on the right hand side is the
original electronic Hamiltonian of an isolated QM system. The first
E_{tot} = E_{I}^{QM}
+E_{I+II}^{MM}-E_{I}^{MM},
-# where the subscripts I and II refer to the QM and MM subsystems,
+ where the subscripts I and II refer to the QM and MM subsystems,
respectively. The superscripts indicate at what level of theory the
energies are computed. The ONIOM scheme has the advantage that it is
not restricted to a two-layer QM/MM description, but can easily
where the table spacing :math:`h` and fraction :math:`\epsilon` are
given by:
-.. math::
-
- \begin{aligned}
- h &=& x_{i+1} - x_i \\
- \epsilon&=& (x - x_i)/h\end{aligned}
+.. math:: \begin{aligned}
+ h &=& x_{i+1} - x_i \\
+ \epsilon&=& (x - x_i)/h\end{aligned}
+ :label: eqntablespaceing
so that :math:`0 \le \epsilon < 1`. From this, we can calculate the
derivative in order to determine the forces:
-.. math::
-
- -V_s'(x) ~=~
- -\frac{{\rm d}V_s(x)}{{\rm d}\epsilon}\frac{{\rm d}\epsilon}{{\rm d}x} ~=~
- -(A_1 + 2 A_2 \,\epsilon + 3 A_3 \,\epsilon^2)/h
+.. math:: -V_s'(x) ~=~
+ -\frac{{\rm d}V_s(x)}{{\rm d}\epsilon}\frac{{\rm d}\epsilon}{{\rm d}x} ~=~
+ -(A_1 + 2 A_2 \,\epsilon + 3 A_3 \,\epsilon^2)/h
+ :label: eqntablederivative
The four coefficients are determined from the four conditions that
:math:`V_s` and :math:`-V_s'` at both ends of each interval should match
the exact potential :math:`V` and force :math:`-V'`. This results in the
following errors for each interval:
-.. math::
-
- \begin{aligned}
- | V_s - V | _{max} &=& V'''' \frac{h^4}{384} + O(h^5) \\
- | V_s' - V' | _{max} &=& V'''' \frac{h^3}{72\sqrt{3}} + O(h^4) \\
- | V_s''- V''| _{max} &=& V'''' \frac{h^2}{12} + O(h^3)\end{aligned}
+.. math:: \begin{aligned}
+ | V_s - V | _{max} &=& V'''' \frac{h^4}{384} + O(h^5) \\
+ | V_s' - V' | _{max} &=& V'''' \frac{h^3}{72\sqrt{3}} + O(h^4) \\
+ | V_s''- V''| _{max} &=& V'''' \frac{h^2}{12} + O(h^3)\end{aligned}
+ :label: eqntableerrors
V and V’ are continuous, while V” is the first discontinuous
derivative. The number of points per nanometer is 500 and 2000 for
following equation
.. math:: V(r_{ij}) ~=~ \frac{q_i q_j}{4 \pi\epsilon_0} f(r_{ij}) + C_6 \,g(r_{ij}) + C_{12} \,h(r_{ij})
+ :label: eqnuserpotfunction
where :math:`f`, :math:`g`, and :math:`h` are user defined functions.
**Note** that if :math:`g(r)` represents a normal dispersion
The viscosity can be calculated from an equilibrium simulation using an
Einstein relation:
-.. math::
-
- \eta = \frac{1}{2}\frac{V}{k_B T} \lim_{t \rightarrow \infty}
- \frac{\mbox{d}}{\mbox{d} t} \left\langle
- \left( \int_{t_0}^{{t_0}+t} P_{xz}(t') \mbox{d} t' \right)^2
- \right\rangle_{t_0}
+.. math:: \eta = \frac{1}{2}\frac{V}{k_B T} \lim_{t \rightarrow \infty}
+ \frac{\mbox{d}}{\mbox{d} t} \left\langle
+ \left( \int_{t_0}^{{t_0}+t} P_{xz}(t') \mbox{d} t' \right)^2
+ \right\rangle_{t_0}
+ :label: eqneinsteinrelation
This can be done with :ref:`gmx energy <gmx energy>`. This method converges
very slowly \ :ref:`149 <refHess2002a>`, and as such a nanosecond simulation might not
gradient according to the following equation:
.. math:: a_x(z) + \frac{\eta}{\rho} \frac{\partial^2 v_x(z)}{\partial z^2} = 0
+ :label: eqnviscositygradiant
Here we have applied an acceleration :math:`a_x(z)` in the
:math:`x`-direction, which is a function of the :math:`z`-coordinate. In
|Gromacs| the acceleration profile is:
.. math:: a_x(z) = A \cos\left(\frac{2\pi z}{l_z}\right)
+ :label: eqnviscosityacceleration
where :math:`l_z` is the height of the box. The generated velocity
profile is:
.. math:: v_x(z) = V \cos\left(\frac{2\pi z}{l_z}\right)
+ :label: eqnviscosityprofile1
.. math:: V = A \frac{\rho}{\eta}\left(\frac{l_z}{2\pi}\right)^2
+ :label: eqnviscosityprofile2
The viscosity can be calculated from :math:`A` and :math:`V`:
.. math:: \eta = \frac{A}{V}\rho \left(\frac{l_z}{2\pi}\right)^2
- :label: eqvisc
+ :label: eqnvisc
In the simulation :math:`V` is defined as:
-.. math::
-
- V = \frac{\displaystyle \sum_{i=1}^N m_i v_{i,x} 2 \cos\left(\frac{2\pi z}{l_z}\right)}
- {\displaystyle \sum_{i=1}^N m_i}
+.. math:: V = \frac{\displaystyle \sum_{i=1}^N m_i v_{i,x} 2 \cos\left(\frac{2\pi z}{l_z}\right)}
+ {\displaystyle \sum_{i=1}^N m_i}
+ :label: eqnsimulationviscosity
The generated velocity profile is not coupled to the heat bath.
Moreover, the velocity profile is excluded from the kinetic energy. One
far from equilibrium. The maximum shear rate occurs where the cosine is
zero, the rate being:
-.. math::
-
- \mbox{sh}_{\max} = \max_z \left| \frac{\partial v_x(z)}{\partial z} \right|
- = A \frac{\rho}{\eta} \frac{l_z}{2\pi}
+.. math:: \mbox{sh}_{\max} = \max_z \left| \frac{\partial v_x(z)}{\partial z} \right|
+ = A \frac{\rho}{\eta} \frac{l_z}{2\pi}
+ :label: eqnshearrate
For a simulation with: :math:`\eta=10^{-3}`
[kgm:math:`^{-1}`\ s\ :math:`^{-1}`],
shear rate as:
.. math:: T_s = \frac{\eta\,\tau}{2 \rho\,C_v} \mbox{sh}_{\max}^2
+ :label: eqnberendsentempshift
where :math:`\tau` is the coupling time for the Berendsen thermostat
and :math:`C_v` is the heat capacity. Using the values of the example
Two quantities are written to the energy file, along with their averages
and fluctuations: :math:`V` and :math:`1/\eta`, as obtained from
-(:eq:`%s <eqvisc>`).
+(:eq:`%s <eqnvisc>`).
combination rule that was chosen in the ``[ defaults ]`` section of the topology file
(see :ref:`topfile`):
-.. math::
-
- \begin{aligned}
- \mbox{for combination rule 1}: & &
- \begin{array}{llllll}
- \mbox{V}_{ii} & = & C^{(6)}_{i} & = & 4\,\epsilon_i\sigma_i^{6} &
- \mbox{[ kJ mol$^{-1}$ nm$^{6}$ ]}\\
- \mbox{W}_{ii} & = & C^{(12)}_{i} & = & 4\,\epsilon_i\sigma_i^{12} &
- \mbox{[ kJ mol$^{-1}$ nm$^{12}$ ]}\\
- \end{array}
- \\
- \mbox{for combination rules 2 and 3}: & &
- \begin{array}{llll}
- \mbox{V}_{ii} & = & \sigma_i & \mbox{[ nm ]} \\
- \mbox{W}_{ii} & = & \epsilon_i & \mbox{[ kJ mol$^{-1}$ ]}
- \end{array}\end{aligned}
+.. math:: \begin{aligned}
+ \mbox{for combination rule 1}: & &
+ \begin{array}{llllll}
+ \mbox{V}_{ii} & = & C^{(6)}_{i} & = & 4\,\epsilon_i\sigma_i^{6} &
+ \mbox{[ kJ mol$^{-1}$ nm$^{6}$ ]}\\
+ \mbox{W}_{ii} & = & C^{(12)}_{i} & = & 4\,\epsilon_i\sigma_i^{12} &
+ \mbox{[ kJ mol$^{-1}$ nm$^{12}$ ]}\\
+ \end{array}
+ \\
+ \mbox{for combination rules 2 and 3}: & &
+ \begin{array}{llll}
+ \mbox{V}_{ii} & = & \sigma_i & \mbox{[ nm ]} \\
+ \mbox{W}_{ii} & = & \epsilon_i & \mbox{[ kJ mol$^{-1}$ ]}
+ \end{array}\end{aligned}
+ :label: eqndefcombrule
Some or all combinations for different atom types can be given in the
``[ nonbond_params ]`` section, again with parameters V and
from the parameters for the corresponding atom types, according to the
combination rule:
-.. math::
-
- \begin{aligned}
- \mbox{for combination rules 1 and 3}: & &
- \begin{array}{lll}
- C^{(6)}_{ij} & = & \left(C^{(6)}_i\,C^{(6)}_j\right)^{\frac{1}{2}} \\
- C^{(12)}_{ij} & = & \left(C^{(12)}_i\,C^{(12)}_j\right)^{\frac{1}{2}}
- \end{array}
- \\
- \mbox{for combination rule 2}: & &
- \begin{array}{lll}
- \sigma_{ij} & = & \frac{1}{2}(\sigma_i+\sigma_j) \\
- \epsilon_{ij} & = & \sqrt{\epsilon_i\,\epsilon_j}
- \end{array}\end{aligned}
+.. math:: \begin{aligned}
+ \mbox{for combination rules 1 and 3}: & &
+ \begin{array}{lll}
+ C^{(6)}_{ij} & = & \left(C^{(6)}_i\,C^{(6)}_j\right)^{\frac{1}{2}} \\
+ C^{(12)}_{ij} & = & \left(C^{(12)}_i\,C^{(12)}_j\right)^{\frac{1}{2}}
+ \end{array}
+ \\
+ \mbox{for combination rule 2}: & &
+ \begin{array}{lll}
+ \sigma_{ij} & = & \frac{1}{2}(\sigma_i+\sigma_j) \\
+ \epsilon_{ij} & = & \sqrt{\epsilon_i\,\epsilon_j}
+ \end{array}\end{aligned}
+ :label: eqngivencombrule
When :math:`\sigma` and :math:`\epsilon` need to be supplied (rules 2
and 3), it would seem it is impossible to have a non-zero :math:`C^{12}`
There is only one set of combination rules for Buckingham potentials:
-.. math::
-
- \begin{array}{rcl}
- A_{ij} &=& \left(A_{ii} \, A_{jj}\right)^{1/2} \\
- B_{ij} &=& 2 / \left(\frac{1}{B_{ii}} + \frac{1}{B_{jj}}\right) \\
- C_{ij} &=& \left(C_{ii} \, C_{jj}\right)^{1/2}
- \end{array}
+.. math:: \begin{array}{rcl}
+ A_{ij} &=& \left(A_{ii} \, A_{jj}\right)^{1/2} \\
+ B_{ij} &=& 2 / \left(\frac{1}{B_{ii}} + \frac{1}{B_{jj}}\right) \\
+ C_{ij} &=& \left(C_{ii} \, C_{jj}\right)^{1/2}
+ \end{array}
+ :label: eqnbuckinghamcombrule
Bonded parameters
~~~~~~~~~~~~~~~~~