Dissipative particle dynamics¶
DPD force¶
Description:
The DPD force consists of pair‐wise conservative, dissipative and random terms.
\begin{eqnarray*} \vec{F}_{ij}^{C}&=&\alpha\left(1-\frac{r_{ij}}{r_{cut}}\right)\vec{e}_{ij} \\ \vec{F}_{ij}^{D}&=&-\gamma\omega^{D}(r_{ij})(\vec{e}_{ij} \cdot \vec{v}_{ij} )\vec{e}_{ij} \\ \vec{F}_{ij}^{R}&=&T\sigma\omega^{R}(r_{ij})\xi_{ij}\vec{e}_{ij} \\ \end{eqnarray*}
\(\gamma=\sigma^{2}/2k_{B}T\)
\(\omega^{D}(r_{ij})=[\omega^{R}(r_{ij})]^2=(1-r_{ij}/r_{cut})^2\)
\(\xi_{ij}\) - a random number with zero mean and unit variance
\(T\) - temperature - optional: defaults to 1.0
\(r_{cut}\) - r_cut (in distance units) - optional: defaults to 1.0
The following coefficients must be set per unique pair of particle types:
\(\alpha\) - alpha (in energy units)
\(\sigma\) - sigma (unitless)
- class force.dpd(info, rcut=1.0)¶
Constructor of a DPD interaction object.
- Parameters:
info – system information.
rcut – the cut-off radius of interactions.
- setParams(type_i, type_j, alpha, sigma)¶
specifies the DPD interaction parameters between two types of particles.
Example:
fn = pygamd.force.dpd(info=mst, rcut=1.0) fn.setParams(type_i="A", type_j="A", alpha=25.0, sigma=3.0) app.add(fn)
GWVV integration¶
Description:
Integration algorithm.
\begin{eqnarray*} &v_i^0&\leftarrow v_i+ \lambda\frac{1}{m}(F_i^c \Delta t + F_i^d \Delta t + F_i^r \sqrt{\Delta t})\\ &v_i&\leftarrow v_i+ \frac{1}{2}\frac{1}{m}(F_i^c \Delta t + F_i^d \Delta t + F_i^r \sqrt{\Delta t})\\ &r_i&\leftarrow r_i+ v_i \Delta t\\ &&Calculate \quad F_i^c\{r_j\}, F_i^d\{r_j, v_j^0\}, F_i^r\{r_j\}\\ &v_i&\leftarrow v_i+ \frac{1}{2}\frac{1}{m}(F_i^c \Delta t + F_i^d \Delta t + F_i^r \sqrt{\Delta t}) \end{eqnarray*}
\(\lambda\) - lambda (unitless) - optional: defaults to 0.65
- class integration.gwvv(info, group)¶
Constructor of a GWVV NVT thermostat for a group of DPD particles.
- Parameters:
info – system information.
group – a group of particles.
Example:
gw = pygamd.integration.gwvv(info=mst, group='all') app.add(gw)