Files
lammps/doc/src/pair_mesodpd.rst
2025-03-12 17:14:11 -04:00

351 lines
13 KiB
ReStructuredText

.. index:: pair_style edpd
.. index:: pair_style edpd/gpu
.. index:: pair_style mdpd
.. index:: pair_style mdpd/gpu
.. index:: pair_style mdpd/rhosum
.. index:: pair_style tdpd
pair_style edpd command
=======================
Accelerator Variants: *edpd/gpu*
pair_style mdpd command
=======================
Accelerator Variants: *mdpd/gpu*
pair_style mdpd/rhosum command
==============================
pair_style tdpd command
=======================
Syntax
""""""
.. code-block:: LAMMPS
pair_style style args
* style = *edpd* or *mdpd* or *mdpd/rhosum* or *tdpd*
* args = list of arguments for a particular style
.. parsed-literal::
*edpd* args = cutoff seed
cutoff = global cutoff for eDPD interactions (distance units)
seed = random # seed (integer) (if <= 0, eDPD will use current time as the seed)
*mdpd* args = T cutoff seed
T = temperature (temperature units)
cutoff = global cutoff for mDPD interactions (distance units)
seed = random # seed (integer) (if <= 0, mDPD will use current time as the seed)
*mdpd/rhosum* args =
*tdpd* args = T cutoff seed
T = temperature (temperature units)
cutoff = global cutoff for tDPD interactions (distance units)
seed = random # seed (integer) (if <= 0, tDPD will use current time as the seed)
Examples
""""""""
.. code-block:: LAMMPS
pair_style edpd 1.58 9872598
pair_coeff * * 18.75 4.5 0.41 1.58 1.42E-5 2.0 1.58
pair_coeff 1 1 18.75 4.5 0.41 1.58 1.42E-5 2.0 1.58 power 10.54 -3.66 3.44 -4.10
pair_coeff 1 1 18.75 4.5 0.41 1.58 1.42E-5 2.0 1.58 power 10.54 -3.66 3.44 -4.10 kappa -0.44 -3.21 5.04 0.00
pair_style hybrid/overlay mdpd/rhosum mdpd 1.0 1.0 65689
pair_coeff 1 1 mdpd/rhosum 0.75
pair_coeff 1 1 mdpd -40.0 25.0 18.0 1.0 0.75
pair_style tdpd 1.0 1.58 935662
pair_coeff * * 18.75 4.5 0.41 1.58 1.58 1.0 1.0E-5 2.0
pair_coeff 1 1 18.75 4.5 0.41 1.58 1.58 1.0 1.0E-5 2.0 3.0 1.0E-5 2.0
Description
"""""""""""
The *edpd* style computes the pairwise interactions and heat fluxes
for eDPD particles following the formulations in
:ref:`(Li2014_JCP) <Li2014_JCP>` and :ref:`Li2015_CC <Li2015_CC>`. The time
evolution of an eDPD particle is governed by the conservation of
momentum and energy given by
.. math::
\frac{\mathrm{d}^2 \mathbf{r}_i}{\mathrm{d} t^2}=
\frac{\mathrm{d} \mathbf{v}_i}{\mathrm{d} t}
=\mathbf{F}_{i}=\sum_{i\neq j}(\mathbf{F}_{ij}^{C}+\mathbf{F}_{ij}^{D}+\mathbf{F}_{ij}^{R}) \\
C_v\frac{\mathrm{d} T_i}{\mathrm{d} t}= q_{i} = \sum_{i\neq j}(q_{ij}^{C}+q_{ij}^{V}+q_{ij}^{R}),
where the three components of :math:`F_{i}` including the conservative
force :math:`F_{ij}^C`, dissipative force :math:`F_{ij}^D` and random
force :math:`F_{ij}^R` are expressed as
.. math::
\mathbf{F}_{ij}^{C} & = \alpha_{ij}{\omega_{C}}(r_{ij})\mathbf{e}_{ij} \\
\mathbf{F}_{ij}^{D} & = -\gamma {\omega_{D}}(r_{ij})(\mathbf{e}_{ij} \cdot \mathbf{v}_{ij})\mathbf{e}_{ij} \\
\mathbf{F}_{ij}^{R} & = \sigma {\omega_{R}}(r_{ij}){\xi_{ij}}\Delta t^{-1/2} \mathbf{e}_{ij} \\
\omega_{C}(r) & = 1 - r/r_c \\
\alpha_{ij} & = A\cdot k_B(T_i + T_j)/2 \\
\omega_{D}(r) & = \omega^2_{R}(r) = (1-r/r_c)^s \\
\sigma_{ij}^2 & = 4\gamma k_B T_i T_j/(T_i + T_j)
in which the exponent of the weighting function *s* can be defined as a
temperature-dependent variable. The heat flux between particles
accounting for the collisional heat flux :math:`q^C`, viscous heat flux
:math:`q^V`, and random heat flux :math:`q^R` are given by
.. math::
q_i^C & = \sum_{j \ne i} k_{ij} \omega_{CT}(r_{ij}) \left( \frac{1}{T_i} - \frac{1}{T_j} \right) \\
q_i^V & = \frac{1}{2 C_v}\sum_{j \ne i}{ \left\{ \omega_D(r_{ij})\left[\gamma_{ij} \left( \mathbf{e}_{ij} \cdot \mathbf{v}_{ij} \right)^2 - \frac{\left( \sigma _{ij} \right)^2}{m}\right] - \sigma _{ij} \omega_R(r_{ij})\left( \mathbf{e}_{ij} \cdot \mathbf{v}_{ij} \right){\xi_{ij}} \right\} } \\
q_i^R & = \sum_{j \ne i} \beta _{ij} \omega_{RT}(r_{ij}) d {t^{ - 1/2}} \xi_{ij}^e \\
\omega_{CT}(r) & =\omega_{RT}^2(r)=\left(1-r/r_{ct}\right)^{s_T} \\
k_{ij} & =C_v^2\kappa(T_i + T_j)^2/4k_B \\
\beta_{ij}^2 & = 2k_Bk_{ij}
where the mesoscopic heat friction :math:`\kappa` is given by
.. math::
\kappa = \frac{315k_B\upsilon }{2\pi \rho C_v r_{ct}^5}\frac{1}{Pr},
with :math:`\upsilon` being the kinematic viscosity. For more details,
see Eq.(15) in :ref:`(Li2014_JCP) <Li2014_JCP>`.
The following coefficients must be defined in eDPD system for each
pair of atom types via the :doc:`pair_coeff <pair_coeff>` command as in
the examples above.
* A (force units)
* :math:`\gamma` (force/velocity units)
* power_f (positive real)
* cutoff (distance units)
* kappa (thermal conductivity units)
* power_T (positive real)
* cutoff_T (distance units)
* optional keyword = power or kappa
The keyword *power* or *kappa* is optional. Both "power" and "kappa"
require 4 parameters :math:`c_1, c_2, c_3, c_4` showing the temperature
dependence of the exponent :math:`s(T) = \mathrm{power}_f ( 1+c_1
(T-1) + c_2 (T-1)^2 + c_3 (T-1)^3 + c_4 (T-1)^4 )` and of the mesoscopic
heat friction :math:`s_T(T) = \kappa (1 + c_1 (T-1) + c_2 (T-1)^2 + c_3
(T-1)^3 + c_4 (T-1)^4)`. If the keyword *power* or *kappa* is not
specified, the eDPD system will use constant power_f and
:math:`\kappa`, which is independent to temperature changes.
----------
The *mdpd/rhosum* style computes the local particle mass density
:math:`\rho` for mDPD particles by kernel function interpolation.
The following coefficients must be defined for each pair of atom types
via the :doc:`pair_coeff <pair_coeff>` command as in the examples above.
* cutoff (distance units)
----------
The *mdpd* style computes the many-body interactions between mDPD
particles following the formulations in
:ref:`(Li2013_POF) <Li2013_POF>`. The dissipative and random forces are in
the form same as the classical DPD, but the conservative force is
local density dependent, which are given by
.. math::
\mathbf{F}_{ij}^C & = Aw_c(r_{ij})\mathbf{e}_{ij} + B(\rho_i+\rho_j)w_d(r_{ij})\mathbf{e}_{ij} \\
\mathbf{F}_{ij}^{D} & = -\gamma {\omega_{D}}(r_{ij})(\mathbf{e}_{ij} \cdot \mathbf{v}_{ij})\mathbf{e}_{ij} \\
\mathbf{F}_{ij}^{R} & = \sigma {\omega_{R}}(r_{ij}){\xi_{ij}}\Delta t^{-1/2} \mathbf{e}_{ij}
where the first term in :math:`F_C` with a negative coefficient :math:`A
< 0` stands for an attractive force within an interaction range
:math:`r_c`, and the second term with :math:`B > 0` is the
density-dependent repulsive force within an interaction range
:math:`r_d`.
The following coefficients must be defined for each pair of atom types via the
:doc:`pair_coeff <pair_coeff>` command as in the examples above.
* A (force units)
* B (force units)
* :math:`\gamma` (force/velocity units)
* cutoff_c (distance units)
* cutoff_d (distance units)
----------
The *tdpd* style computes the pairwise interactions and chemical
concentration fluxes for tDPD particles following the formulations in
:ref:`(Li2015_JCP) <Li2015_JCP>`. The time evolution of a tDPD particle is
governed by the conservation of momentum and concentration given by
.. math::
\frac{\mathrm{d}^2 \mathbf{r}_i}{\mathrm{d} t^2} & = \frac{\mathrm{d} \mathbf{v}_i}{\mathrm{d} t}=\mathbf{F}_{i}=\sum_{i\neq j}(\mathbf{F}_{ij}^{C}+\mathbf{F}_{ij}^{D}+\mathbf{F}_{ij}^{R}) \\
\frac{\mathrm{d} C_{i}}{\mathrm{d} t} & = Q_{i} = \sum_{i\neq j}(Q_{ij}^{D}+Q_{ij}^{R}) + Q_{i}^{S}
where the three components of :math:`F_{i}` including the conservative
force :math:`F_{ij}^C`, dissipative force :math:`F_{ij}^C` and random
force :math:`F_{ij}^C` are expressed as
.. math::
\mathbf{F}_{ij}^{C} & = A{\omega_{C}}(r_{ij})\mathbf{e}_{ij} \\
\mathbf{F}_{ij}^{D} & = -\gamma {\omega_{D}}(r_{ij})(\mathbf{e}_{ij} \cdot \mathbf{v}_{ij})\mathbf{e}_{ij} \\
\mathbf{F}_{ij}^{R} & = \sigma {\omega_{R}}(r_{ij}){\xi_{ij}}\Delta t^{-1/2} \mathbf{e}_{ij} \\
\omega_{C}(r) & = 1 - r/r_c \\
\omega_{D}(r) & = \omega^2_{R}(r) = (1-r/r_c)^\mathrm{power_f} \\
\sigma^2 = 2\gamma k_B T
The concentration flux between two tDPD particles includes the Fickian
flux :math:`Q_{ij}^D` and random flux :math:`Q_{ij}^R`, which are given
by
.. math::
Q_{ij}^D & = -\kappa_{ij} w_{DC}(r_{ij}) \left( C_i - C_j \right) \\
Q_{ij}^R & = \epsilon_{ij}\left( C_i + C_j \right) w_{RC}(r_{ij}) \xi_{ij} \\
w_{DC}(r_{ij}) & =w^2_{RC}(r_{ij}) = (1 - r/r_{cc})^\mathrm{power_{cc}} \\
\epsilon_{ij}^2 & = m_s^2\kappa_{ij}\rho
where the parameters kappa and epsilon determine the strength of the
Fickian and random fluxes. :math:`m_s` is the mass of a single solute
molecule. In general, :math:`m_s` is much smaller than the mass of a
tDPD particle *m*\ . For more details, see :ref:`(Li2015_JCP)
<Li2015_JCP>`.
The following coefficients must be defined for each pair of atom types via the
:doc:`pair_coeff <pair_coeff>` command as in the examples above.
* A (force units)
* :math:`\gamma` (force/velocity units)
* power_f (positive real)
* cutoff (distance units)
* cutoff_CC (distance units)
* :math:`\kappa_i` (diffusivity units)
* :math:`\epsilon_i` (diffusivity units)
* power_cc_i (positive real)
The last 3 values must be repeated Nspecies times, so that values for
each of the Nspecies chemical species are specified, as indicated by
the "I" suffix. In the first pair_coeff example above for pair_style
tdpd, Nspecies = 1. In the second example, Nspecies = 2, so 3
additional coeffs are specified (for species 2).
----------
Example scripts
"""""""""""""""
There are example scripts for using all these pair styles in
examples/PACKAGES/mesodpd. The example for an eDPD simulation models heat
conduction with source terms analog of periodic Poiseuille flow
problem. The setup follows Fig.12 in :ref:`(Li2014_JCP) <Li2014_JCP>`. The
output of the short eDPD simulation (about 2 minutes on a single core)
gives a temperature and density profiles as
.. image:: JPG/examples_edpd.jpg
:align: center
The example for a mDPD simulation models the oscillations of a liquid
droplet started from a liquid film. The mDPD parameters are adopted
from :ref:`(Li2013_POF) <Li2013_POF>`. The short mDPD run (about 2 minutes
on a single core) generates a particle trajectory which can
be visualized as follows.
.. only:: html
.. image:: JPG/examples_mdpd.gif
:align: center
.. image:: JPG/examples_mdpd_first.jpg
:align: center
.. image:: JPG/examples_mdpd_last.jpg
:align: center
The first image is the initial state of the simulation. If you
click it a GIF movie should play in your browser. The second image
is the final state of the simulation.
The example for a tDPD simulation computes the effective diffusion
coefficient of a tDPD system using a method analogous to the periodic
Poiseuille flow. The tDPD system is specified with two chemical
species, and the setup follows Fig.1 in
:ref:`(Li2015_JCP) <Li2015_JCP>`. The output of the short tDPD simulation
(about one and a half minutes on a single core) gives the
concentration profiles of the two chemical species as
.. image:: JPG/examples_tdpd.jpg
:align: center
----------
.. include:: accel_styles.rst
----------
Mixing, shift, table, tail correction, restart, rRESPA info
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
The styles *edpd*, *mdpd*, *mdpd/rhosum* and *tdpd* do not support
mixing. Thus, coefficients for all I,J pairs must be specified explicitly.
The styles *edpd*, *mdpd*, *mdpd/rhosum* and *tdpd* do not support
the :doc:`pair_modify <pair_modify>` shift, table, and tail options.
The styles *edpd*, *mdpd*, *mdpd/rhosum* and *tdpd* do not write
information to :doc:`binary restart files <restart>`. Thus, you need
to re-specify the pair_style and pair_coeff commands in an input script
that reads a restart file.
Restrictions
""""""""""""
The pair styles *edpd*, *mdpd*, *mdpd/rhosum* and *tdpd* are part of
the DPD-MESO package. They are only enabled if LAMMPS was built with
that package. See the :doc:`Build package <Build_package>` page for
more info.
Related commands
""""""""""""""""
:doc:`pair_coeff <pair_coeff>`, :doc:`fix mvv/dpd <fix_mvv_dpd>`,
:doc:`fix mvv/edpd <fix_mvv_dpd>`, :doc:`fix mvv/tdpd <fix_mvv_dpd>`,
:doc:`fix edpd/source <fix_dpd_source>`, :doc:`fix tdpd/source <fix_dpd_source>`,
:doc:`compute edpd/temp/atom <compute_edpd_temp_atom>`,
:doc:`compute tdpd/cc/atom <compute_tdpd_cc_atom>`
Default
"""""""
none
----------
.. _Li2014_JCP:
**(Li2014_JCP)** Li, Tang, Lei, Caswell, Karniadakis, J Comput Phys,
265: 113-127 (2014). DOI: 10.1016/j.jcp.2014.02.003.
.. _Li2015_CC:
**(Li2015_CC)** Li, Tang, Li, Karniadakis, Chem Commun, 51: 11038-11040
(2015). DOI: 10.1039/C5CC01684C.
.. _Li2013_POF:
**(Li2013_POF)** Li, Hu, Wang, Ma, Zhou, Phys Fluids, 25: 072103 (2013).
DOI: 10.1063/1.4812366.
.. _Li2015_JCP:
**(Li2015_JCP)** Li, Yazdani, Tartakovsky, Karniadakis, J Chem Phys,
143: 014101 (2015). DOI: 10.1063/1.4923254.