\(\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
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
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).