DPD¶
- class hoomd.md.pair.DPD(nlist, kT, default_r_cut=None)¶
Bases:
PairDissipative Particle Dynamics.
- Parameters:
nlist (hoomd.md.nlist.NeighborList) – Neighbor list
kT (
hoomd.variantorfloat) – Temperature of thermostat \([\mathrm{energy}]\).default_r_cut (float) – Default cutoff radius \([\mathrm{length}]\).
DPDcomputes the DPD pair force on every particle in the simulation state. DPD includes a an interaction potential, pairwise drag force, and pairwise random force. See Groot and Warren 1997:\[F = F_{\mathrm{C}}(r) + F_{\mathrm{R,ij}}(r_{ij}) + F_{\mathrm{D,ij}}(v_{ij})\]where
\[\begin{split}F_{\mathrm{C}}(r) &= A \cdot w(r_{ij}), \\ F_{\mathrm{R, ij}}(r_{ij}) &= - \theta_{ij}\sqrt{3} \sqrt{\frac{2k_b\gamma T}{\Delta t}}\cdot w(r_{ij}), \\ F_{\mathrm{D, ij}}(r_{ij}) &= - \gamma w^2(r_{ij})\left( \hat r_{ij} \circ v_{ij} \right), \\ w(r_{ij}) &= \begin{cases} \left( 1 - r/r_{\mathrm{cut}} \right) & r < r_{\mathrm{cut}} \\ 0 & r \ge r_{\mathrm{cut}} \\ \end{cases},\end{split}\]\(\hat r_{ij}\) is a normalized vector from particle i to particle j, \(v_{ij} = v_i - v_j\), and \(\theta_{ij}\) is a uniformly distributed random number in the range \([-1, 1]\).
C. L. Phillips et. al. 2011 describes the DPD implementation details. Cite it if you utilize the DPD functionality in your work.
DPDdoes not implement any energy shift / smoothing modes due to the function of the force.To use the DPD thermostat, apply the
hoomd.md.methods.ConstantVolumeorhoomd.md.methods.ConstantPressureintegration method without thermostats along withDPDforces. Use of the DPD thermostat pair force with other integrators will result in nonphysical behavior. To useDPDwith a different conservative potential than \(F_C\), set A to zero and define the conservative pair force separately.Example:
nl = nlist.Cell() dpd = pair.DPD(nlist=nl, kT=1.0, default_r_cut=1.0) dpd.params[('A', 'A')] = dict(A=25.0, gamma=4.5) dpd.params[('A', 'B')] = dict(A=40.0, gamma=4.5) dpd.params[('B', 'B')] = dict(A=25.0, gamma=4.5) dpd.params[(['A', 'B'], ['C', 'D'])] = dict(A=40.0, gamma=4.5)
Members inherited from
AutotunedObject:- property kernel_parameters¶
Kernel parameters.
Read more...
- property is_tuning_complete¶
Check if kernel parameter tuning is complete.
Read more...
- tune_kernel_parameters()¶
Start tuning kernel parameters.
Read more...
Members inherited from
Force:- additional_energy¶
Additional energy term.
Read more...
- additional_virial¶
Additional virial tensor term \(W_\mathrm{additional}\).
Read more...
- cpu_local_force_arrays¶
Local force arrays on the CPU.
Read more...
- energies¶
Energy contribution \(U_i\) from each particle.
Read more...
- energy¶
The potential energy \(U\) of the system from this force.
Read more...
- forces¶
The force \(\vec{F}_i\) applied to each particle.
Read more...
- gpu_local_force_arrays¶
Local force arrays on the GPU.
Read more...
- torques¶
The torque \(\vec{\tau}_i\) applied to each particle.
Read more...
- virials¶
Virial tensor contribution \(W_i\) from each particle.
Read more...
Members inherited from
Pair:- nlist¶
Neighbor list used to compute the pair force.
Read more...
- mode¶
Energy smoothing/cutoff mode.
Read more...
- r_cut¶
Cuttoff radius beyond which the energy and force are 0.
Read more...
- r_on¶
Radius at which the XPLOR smoothing function starts.
Read more...
- compute_energy()¶
Compute the energy between two sets of particles.
Read more...
Members defined in
DPD: