DPDLJ¶
- class hoomd.md.pair.DPDLJ(nlist, kT, default_r_cut=None, mode='none')¶
Bases:
Pair
Dissipative Particle Dynamics with the LJ conservative force.
- Parameters:
nlist (hoomd.md.nlist.NeighborList) – Neighbor list.
kT (
hoomd.variant
orfloat
) – Temperature of thermostat \([\mathrm{energy}]\).default_r_cut (float) – Default cutoff radius \([\mathrm{length}]\).
mode (str) – Energy shifting mode.
DPDLJ
computes theDPD
thermostat combined with theLJ
pair force on every particle in the simulation state with:\[\begin{split}F &= F_{\mathrm{C}}(r) + F_{\mathrm{R,ij}}(r_{ij}) + F_{\mathrm{D,ij}}(v_{ij}), \\ F_{\mathrm{C}}(r) &= \partial U / \partial r, \\ 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), \\ U(r) &= 4 \varepsilon \left[ \left( \frac{\sigma}{r} \right)^{12} - \left( \frac{\sigma}{r} \right)^{6} \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.
To use the DPD thermostat, apply the
hoomd.md.methods.ConstantVolume
orhoomd.md.methods.ConstantPressure
integration method without thermostat along withDPD
forces. Use of the DPD thermostat pair force with other integrators will result in nonphysical behavior.Example:
nl = nlist.Cell() dpdlj = pair.DPDLJ(nlist=nl, kT=1.0, default_r_cut=2.5) dpdlj.params[('A', 'A')] = dict(epsilon=1.0, sigma=1.0, gamma=4.5) dpdlj.params[(['A', 'B'], ['C', 'D'])] = dict( epsilon=3.0, sigma=1.0, gamma=1.2) dpdlj.r_cut[('B', 'B')] = 2.0**(1.0/6.0)
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
DPDLJ
:- params¶
The DPDLJ potential parameters. The dictionary has the following keys:
epsilon
(float
, required) - \(\varepsilon\) \([\mathrm{energy}]\)sigma
(float
, required) - \(\sigma\) \([\mathrm{length}]\)gamma
(float
, required) - \(\gamma\) \([\mathrm{mass} \cdot \mathrm{time}^{-1}]\)
Type:
TypeParameter
[tuple
[particle_type
,particle_type
],dict
]