OverdampedViscous

class hoomd.md.methods.OverdampedViscous(filter, default_gamma=1.0, default_gamma_r=(1.0, 1.0, 1.0))

Bases: Method

Overdamped viscous dynamics.

Parameters:
  • filter (hoomd.filter.filter_like) – Subset of particles to apply this method to.

  • default_gamma (float) – Default drag coefficient for all particle types \([\mathrm{mass} \cdot \mathrm{time}^{-1}]\).

  • default_gamma_r ([float, float, float]) – Default rotational drag coefficient tensor for all particles \([\mathrm{time}^{-1}]\).

OverdampedViscous integrates particles forward in time following Newtonian dynamics in the overdamped limit where there is no inertial term. (in the limit that the mass \(m\) and moment of inertia \(I\) go to 0):

\[ \begin{align}\begin{aligned}\frac{d\vec{r}}{dt} &= \vec{v}\\\vec{v(t)} &= \frac{\vec{F}_\mathrm{C}}{\gamma}\\\frac{d\mathbf{q}}{dt} &= \vec{\tau}\\\tau^i &= \frac{\tau_\mathrm{C}^i}{\gamma_r^i}\end{aligned}\end{align} \]

where \(\vec{F}_\mathrm{C} = \vec{F}_\mathrm{net}\) is the net force on the particle from all forces (hoomd.md.Integrator.forces) and constraints (hoomd.md.Integrator.constraints), \(\gamma\) is the translational drag coefficient (gamma), \(\vec{v}\) is the particle’s velocity, \(\tau_\mathrm{C}^i\) is the i-th component of the net torque from all forces and constraints, and \(\gamma_r^i\) is the i-th component of the rotational drag coefficient (gamma_r).

The attributes gamma and gamma_r set the translational and rotational damping coefficients, respectively, by particle type.

Warning

This numerical method has errors in \(O(\delta t)\), which is much larger than the errors of most other integration methods which are in \(O(\delta t^2)\). As a consequence, expect to use much smaller values of \(\delta t\) with Brownian compared to e.g. Langevin or ConstantVolume.

Tip

OverdampedViscous can be used to simulate systems of athermal active matter.

Note

OverdampedViscous models systems in the limit that \(m\) and moment of inertia \(I\) go to 0. However, you must still set non-zero moments of inertia to enable the integration of rotational degrees of freedom.

Example:

overdamped_viscous = hoomd.md.methods.OverdampedViscous(
    filter=hoomd.filter.All()
)
simulation.operations.integrator.methods = [overdamped_viscous]

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 defined in OverdampedViscous:

filter

Subset of particles to apply this method to.

Type:

hoomd.filter.filter_like

gamma

The drag coefficient for each particle type \([\mathrm{mass} \cdot \mathrm{time}^{-1}]\).

Example:

overdamped_viscous.gamma["A"] = 0.5
Type:

TypeParameter[ particle type, float ]

gamma_r

The rotational drag coefficient tensor for each particle type \([\mathrm{time}^{-1}]\).

Example:

overdamped_viscous.gamma_r["A"] = [1.0, 2.0, 3.0]
Type:

TypeParameter[particle type,[float, float , float]]