206 lines
8.0 KiB
ReStructuredText
206 lines
8.0 KiB
ReStructuredText
.. index:: pair_style dpd/fdt
|
|
|
|
pair_style dpd/fdt command
|
|
==========================
|
|
|
|
pair_style dpd/fdt/energy command
|
|
=================================
|
|
|
|
pair_style dpd/fdt/energy/kk command
|
|
====================================
|
|
|
|
Syntax
|
|
""""""
|
|
|
|
.. code-block:: LAMMPS
|
|
|
|
pair_style style args
|
|
|
|
* style = *dpd/fdt* or *dpd/fdt/energy*
|
|
* args = list of arguments for a particular style
|
|
|
|
.. parsed-literal::
|
|
|
|
*dpd/fdt* args = T cutoff seed
|
|
T = temperature (temperature units)
|
|
cutoff = global cutoff for DPD interactions (distance units)
|
|
seed = random # seed (positive integer)
|
|
*dpd/fdt/energy* args = cutoff seed
|
|
cutoff = global cutoff for DPD interactions (distance units)
|
|
seed = random # seed (positive integer)
|
|
|
|
Examples
|
|
""""""""
|
|
|
|
.. code-block:: LAMMPS
|
|
|
|
pair_style dpd/fdt 300.0 2.5 34387
|
|
pair_coeff * * 3.0 1.0 2.5
|
|
|
|
pair_style dpd/fdt/energy 2.5 34387
|
|
pair_coeff * * 3.0 1.0 0.1 2.5
|
|
|
|
Description
|
|
"""""""""""
|
|
|
|
Styles *dpd/fdt* and *dpd/fdt/energy* compute the force for dissipative
|
|
particle dynamics (DPD) simulations. The *dpd/fdt* style is used to
|
|
perform DPD simulations under isothermal and isobaric conditions,
|
|
while the *dpd/fdt/energy* style is used to perform DPD simulations
|
|
under isoenergetic and isoenthalpic conditions (see :ref:`(Lisal) <Lisal3>`).
|
|
For DPD simulations in general, the force on atom I due to atom J is
|
|
given as a sum of 3 terms
|
|
|
|
.. math::
|
|
|
|
\vec{f} = & (F^C + F^D + F^R) \hat{r_{ij}} \qquad \qquad r < r_c \\
|
|
F^C = & A w(r) \\
|
|
F^D = & - \gamma w^2(r) (\hat{r_{ij}} \bullet \vec{v_{ij}}) \\
|
|
F^R = & \sigma w(r) \alpha (\Delta t)^{-1/2} \\
|
|
w(r) = & 1 - r/r_c
|
|
|
|
where :math:`F^C` is a conservative force, :math:`F^D` is a dissipative
|
|
force, and :math:`F^R` is a random force. :math:`r_{ij}` is a unit
|
|
vector in the direction :math:`r_i - r_j`, :math:`V_{ij} is the vector
|
|
difference in velocities of the two atoms :math:`= \vec{v}_i -
|
|
\vec{v}_j, :math:`\alpha` is a Gaussian random number with zero mean and
|
|
unit variance, dt is the timestep size, and w(r) is a weighting factor
|
|
that varies between 0 and 1. Rc is the cutoff. The weighting factor,
|
|
:math:`\omega_{ij}`, varies between 0 and 1, and is chosen to have the
|
|
following functional form:
|
|
|
|
.. math::
|
|
|
|
\omega_{ij} = 1 - \frac{r_{ij}}{r_{c}}
|
|
|
|
Note that alternative definitions of the weighting function exist, but
|
|
would have to be implemented as a separate pair style command.
|
|
|
|
For style *dpd/fdt*\ , the fluctuation-dissipation theorem defines :math:`\gamma`
|
|
to be set equal to :math:`\sigma^2/(2 T)`, where T is the set point
|
|
temperature specified as a pair style parameter in the above examples.
|
|
The following coefficients must be defined for each pair of atoms types
|
|
via the :doc:`pair_coeff <pair_coeff>` command as in the examples above,
|
|
or in the data file or restart files read by the
|
|
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>` commands:
|
|
|
|
* A (force units)
|
|
* :math:`\sigma` (force\*time\^(1/2) units)
|
|
* cutoff (distance units)
|
|
|
|
The last coefficient is optional. If not specified, the global DPD
|
|
cutoff is used.
|
|
|
|
Style *dpd/fdt/energy* is used to perform DPD simulations under
|
|
isoenergetic and isoenthalpic conditions. The fluctuation-dissipation
|
|
theorem defines :math:`\gamma` to be set equal to :math:`sigma^2/(2
|
|
\theta)`, where :math:theta` is the average internal temperature for the
|
|
pair. The particle internal temperature is related to the particle
|
|
internal energy through a mesoparticle equation of state (see :doc:`fix
|
|
eos <fix>`). The differential internal conductive and mechanical
|
|
energies are computed within style *dpd/fdt/energy* as:
|
|
|
|
.. math::
|
|
|
|
du_{i}^{cond} = & \kappa_{ij}(\frac{1}{\theta_{i}}-\frac{1}{\theta_{j}})\omega_{ij}^{2} + \alpha_{ij}\omega_{ij}\zeta_{ij}^{q}(\Delta{t})^{-1/2} \\
|
|
du_{i}^{mech} = & -\frac{1}{2}\gamma_{ij}\omega_{ij}^{2}(\frac{\vec{r_{ij}}}{r_{ij}}\bullet\vec{v_{ij}})^{2} -
|
|
\frac{\sigma^{2}_{ij}}{4}(\frac{1}{m_{i}}+\frac{1}{m_{j}})\omega_{ij}^{2} -
|
|
\frac{1}{2}\sigma_{ij}\omega_{ij}(\frac{\vec{r_{ij}}}{r_{ij}}\bullet\vec{v_{ij}})\zeta_{ij}(\Delta{t})^{-1/2}
|
|
|
|
where
|
|
|
|
.. math::
|
|
|
|
\alpha_{ij}^{2} = & 2k_{B}\kappa_{ij} \\
|
|
\sigma^{2}_{ij} = & 2\gamma_{ij}k_{B}\Theta_{ij} \\
|
|
\Theta_{ij}^{-1} = & \frac{1}{2}(\frac{1}{\theta_{i}}+\frac{1}{\theta_{j}})
|
|
|
|
:math:`\zeta_ij^q` is a second Gaussian random number with zero mean and unit
|
|
variance that is used to compute the internal conductive energy. The
|
|
fluctuation-dissipation theorem defines :math:`alpha^2` to be set
|
|
equal to :math:2k_B\kappa`, where :math:`\kappa` is the mesoparticle thermal
|
|
conductivity parameter. The following coefficients must be defined for
|
|
each pair of atoms types via the :doc:`pair_coeff <pair_coeff>`
|
|
command as in the examples above, or in the data file or restart files
|
|
read by the :doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
|
|
commands:
|
|
|
|
* A (force units)
|
|
* :math:`\sigma` (force\*time\^(1/2) units)
|
|
* :math:`\kappa` (energy\*temperature/time units)
|
|
* cutoff (distance units)
|
|
|
|
The last coefficient is optional. If not specified, the global DPD
|
|
cutoff is used.
|
|
|
|
The pairwise energy associated with styles *dpd/fdt* and
|
|
*dpd/fdt/energy* is only due to the conservative force term Fc, and is
|
|
shifted to be zero at the cutoff distance Rc. The pairwise virial is
|
|
calculated using only the conservative term.
|
|
|
|
The forces computed through the *dpd/fdt* and *dpd/fdt/energy* styles
|
|
can be integrated with the velocity-Verlet integration scheme or the
|
|
Shardlow splitting integration scheme described by :ref:`(Lisal) <Lisal3>`.
|
|
In the cases when these pair styles are combined with the
|
|
:doc:`fix shardlow <fix_shardlow>`, these pair styles differ from the
|
|
other dpd styles in that the dissipative and random forces are split
|
|
from the force calculation and are not computed within the pair style.
|
|
Thus, only the conservative force is computed by the pair style,
|
|
while the stochastic integration of the dissipative and random forces
|
|
are handled through the Shardlow splitting algorithm approach. The
|
|
Shardlow splitting algorithm is advantageous, especially when
|
|
performing DPD under isoenergetic conditions, as it allows
|
|
significantly larger timesteps to be taken.
|
|
|
|
----------
|
|
|
|
Styles with a *gpu*\ , *intel*\ , *kk*\ , *omp*\ , or *opt* suffix are
|
|
functionally the same as the corresponding style without the suffix.
|
|
They have been optimized to run faster, depending on your available
|
|
hardware, as discussed on the :doc:`Speed packages <Speed_packages>` doc
|
|
page. The accelerated styles take the same arguments and should
|
|
produce the same results, except for round-off and precision issues.
|
|
|
|
These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
|
|
USER-OMP and OPT packages, respectively. They are only enabled if
|
|
LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` doc page for more info.
|
|
|
|
You can specify the accelerated styles explicitly in your input script
|
|
by including their suffix, or you can use the :doc:`-suffix command-line switch <Run_options>` when you invoke LAMMPS, or you can use the
|
|
:doc:`suffix <suffix>` command in your input script.
|
|
|
|
See the :doc:`Speed packages <Speed_packages>` doc page for more
|
|
instructions on how to use the accelerated styles effectively.
|
|
|
|
----------
|
|
|
|
Restrictions
|
|
""""""""""""
|
|
|
|
These commands are part of the USER-DPD package. They are only
|
|
enabled if LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
|
|
|
|
Pair styles *dpd/fdt* and *dpd/fdt/energy* require use of the
|
|
:doc:`comm_modify vel yes <comm_modify>` option so that velocities are
|
|
stored by ghost atoms.
|
|
|
|
Pair style *dpd/fdt/energy* requires :doc:`atom_style dpd <atom_style>`
|
|
to be used in order to properly account for the particle internal
|
|
energies and temperatures.
|
|
|
|
Related commands
|
|
""""""""""""""""
|
|
|
|
:doc:`pair_coeff <pair_coeff>`, :doc:`fix shardlow <fix_shardlow>`
|
|
|
|
**Default:** none
|
|
|
|
----------
|
|
|
|
.. _Lisal3:
|
|
|
|
**(Lisal)** M. Lisal, J.K. Brennan, J. Bonet Avalos, "Dissipative
|
|
particle dynamics at isothermal, isobaric, isoenergetic, and
|
|
isoenthalpic conditions using Shardlow-like splitting algorithms.",
|
|
J. Chem. Phys., 135, 204105 (2011).
|