FrictionLJLinear

class hoomd.md.pair.friction.FrictionLJLinear(nlist, default_r_cut=None)

Bases: FrictionalPair

Linear frictional model pair force with the LJ conservative force.

Parameters:

FrictionLJLinear computes the frictional interaction between pairs of particles with a linear friction model as described in Hofmann et al. 2025.

The linear friction model is defined by the function

fl(u,r)=w(r)γfu.f_\mathrm{l}(u,r) = w(r)\gamma_\mathrm{f}u\, .

And a repulsive Weeks-Chandler-Anderson (WCA) potential

UWCA(r)=4ε[(σr)12(σr)6]w(r)=ddrUWCA(r)\begin{align*} U_\mathrm{WCA}(r) &= 4 \varepsilon \left[ \left( \frac{\sigma}{r} \right)^{12} - \left( \frac{\sigma}{r} \right)^{6} \right] \\ w(r)&=-\frac{\mathrm{d}}{\mathrm{d}r}U_\mathrm{WCA}(r) \end{align*}

Since the frictional force results from coarse-graining the microscopic equations of motion, a corresponding pairwise noise that satisfies a fluctuation-dissipation relation must be applied. For this a stochastic force and torque is added

Dl(u,r)=w(r)γfFijR=FjiR=Dl(uij,rij)[P(r^ij)ξijfr^ij×Nijf]τijRRi=τjiRRj=Dl(uij,rij)[r^ij×ξijf+P(eij)Nijf],\begin{align*} D_\mathrm{l}(u,r) &= w(r)\gamma_\mathrm{f} \\ \mathbf{F}^\mathrm{R}_{ij} = -\mathbf{F}^\mathrm{R}_{ji} &= \sqrt{D_\mathrm{l} (u^\perp_{ij},r_{ij})}\Big[\mathbf{P} (\mathbf{\hat{r}}_{ij})\mathbf{\xi}^\mathrm{f}_{ij} - \mathbf{\hat{r}}_{ij} \times \mathbf{N}^\mathrm{f}_{ij}\Big] \\ \frac{\mathbf{\tau}^\mathrm{R}_{ij}}{R_i} = \frac{\mathbf{\tau}^\mathrm{R}_{ji}} {R_j} &= \sqrt{D_\mathrm{l} (u^\perp_{ij},r_{ij})}\Big[\mathbf{\hat{r}}_{ij} \times \mathbf{\xi}^\mathrm{f}_{ij}+\mathbf{P} (\mathbf{e}_{ij})\mathbf{N}^\mathrm{f}_{ij} \Big]\, , \end{align*}

where ν=(1/mi+1/mj)+(Ri2/Ii+Rj2/Ij))\nu=(1/m_i+1/m_j)+(R_i^2/I_i+R_j^2/I_j)), and ξij\mathbf{\xi}_{ij} and Nij\mathbf{N}_{ij} are three dimensional Gaussian white noise vectors with correlations

ξijξkl=1kT(δikδjlδilδjk)/δtNijNkl=1kT(δikδjl+δilδjk)/δt.\begin{align*} \langle \mathbf{\xi}_{ij} \mathbf{\xi}_{kl} \rangle &= \mathbf{1}kT (\delta_{ik}\delta_{jl}-\delta_{il} \delta_{jk})/\delta t \\ \langle \mathbf{N}_{ij} \mathbf{N}_{kl} \rangle &= \mathbf{1}kT(\delta_{ik} \delta_{jl}+\delta_{il}\delta_{jk}) /\delta t\, . \end{align*}

Example:

linear_lj = hoomd.md.pair.friction.FrictionLJLinear(nlist=neighbor_list,
                                                        default_r_cut=3)

linear_lj_params = {'epsilon':1, 'sigma':1, 'gamma_f':1, 'kT':1}

linear_lj.params.default = linear_lj_params
simulation.operations.integrator.forces = [linear_lj]

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 WadditionalW_\mathrm{additional}. Read more...

cpu_local_force_arrays

Local force arrays on the CPU. Read more...

energies

Energy contribution UiU_i from each particle. Read more...

energy

The potential energy UU of the system from this force. Read more...

forces

The force Fi\vec{F}_i applied to each particle. Read more...

gpu_local_force_arrays

Local force arrays on the GPU. Read more...

torques

The torque τi\vec{\tau}_i applied to each particle. Read more...

virials

Virial tensor contribution WiW_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...