DPDLJ¶
- class hoomd.md.pair.DPDLJ(nlist, kT, default_r_cut=None, mode='none')¶
Bases:
PairDissipative Particle Dynamics with the LJ conservative force.
- 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}]\).
mode (str) – Energy shifting mode.
DPDLJcomputes theDPDthermostat combined with theLJpair 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.ConstantVolumeorhoomd.md.methods.ConstantPressureintegration method without thermostat along withDPDforces. 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]