\(\renewcommand{\AA}{\text{Å}}\)

fix viscous/nonlinear command

Syntax

fix ID group-ID viscous/nonlinear rho_fluid mu_fluid keyword values ...
  • ID, group-ID are documented in fix command

  • viscous/nonlinear = style name of this fix command

  • rho_fluid = mass density of the surrounding fluid (mass/volume units)

  • mu_fluid = dynamic viscosity of the surrounding fluid (pressure*time units)

  • zero or more keyword/value pairs may be appended

    keyword = velocity
      velocity values = Vx Vy Vz
        Vx,Vy,Vz = components of the (uniform) fluid velocity (velocity units)

Examples

fix drag all viscous/nonlinear 1.2 1.8e-5
fix drag flow viscous/nonlinear 1.2 1.8e-5 velocity 0.0 0.0 0.4

Description

Added in version 4Jul2026.

Add a nonlinear (Reynolds-number dependent) drag force to each finite-size spherical particle in the group, modeling the interaction with a uniform background fluid (e.g. an upward gas stream). Unlike fix viscous, which applies a drag force strictly proportional to the particle velocity (Stokes drag), this fix uses the standard drag-coefficient relation with the Schiller-Naumann correlation, which is accurate over a much wider range of particle Reynolds numbers.

The drag force on particle i is

\[\vec{F}_i = -\frac{1}{2}\, C_d\, \rho_f\, \pi r_i^2\, |\vec{v}_{rel}|\, \vec{v}_{rel}\]

where \(r_i\) is the particle radius, \(\rho_f\) is the fluid mass density, \(\vec{v}_{rel} = \vec{v}_i - \vec{v}_f\) is the particle velocity relative to the fluid, and the drag coefficient \(C_d\) follows the Schiller-Naumann correlation

\[C_d = \frac{24}{Re}\left(1 + 0.15\, Re^{0.687}\right), \qquad Re = \frac{\rho_f\, |\vec{v}_{rel}|\, (2 r_i)}{\mu_f}\]

with \(Re\) the particle Reynolds number based on the diameter \(2 r_i\), the fluid density \(\rho_f\), and the dynamic viscosity of the fluid \(\mu_f\). In the low-Reynolds-number limit (\(Re \rightarrow 0\)) the correlation reduces to \(C_d = 24/Re\) and the force becomes the Stokes drag \(\vec{F}_i = -6 \pi \mu_f r_i \vec{v}_{rel}\).

By default the fluid is at rest. The optional velocity keyword sets a uniform fluid velocity \(\vec{v}_f\), so the drag is computed from the particle velocity relative to the moving fluid. This fix only applies a drag force; buoyancy and gravity (if desired) must be added separately, e.g. with fix gravity.

Restrictions

This fix is part of the GRANULAR package. It is only enabled if LAMMPS was built with that package. See the Build package page for more info.

This fix requires that atoms store a radius as defined by the atom_style sphere command.

Restart, fix_modify, output, run start/stop, minimize info

No information about this fix is written to binary restart files. None of the fix_modify options are relevant to this fix. No global or per-atom quantities are stored by this fix for access by various output commands. No parameter of this fix can be used with the start/stop keywords of the run command.

The fix_modify respa option is supported by this fix. This allows one to set at which level of the r-RESPA integrator the fix is modifying forces. Default is the outermost level.

The forces due to this fix are imposed during an energy minimization, invoked by the minimize command.

Default

The fluid velocity is (0,0,0).