Fix srd no slip rule and rotation angle

Dear LAMMPS community,

I have been modifying the SRD fix to simulate Poiseuille flow in a pipe, and I found two issues regarding the SRD implementation in LAMMPS.

  1. When measuring the axial velocity profile, I find non-zero velocities at the walls. I looked at the no-slip collision rule with a wall/big particle, and it appears to assign Gaussian velocities to the normal and tangential components of the SRD particle. In Whitmer and Luijten, J Phys. Cond. Mat. 2006, they show that a stochastic collision rule leads to spurious slip at the walls. I modified the code to use the alternative collision rule proposed by Lamura and Gompper, and the slip disappeared.

  2. Looking at several papers, I see that the kinematic viscosity of the solvent depends on the collisional angle (rotational angle) in the SRD collision step (Padding and Louis, PRE 2006). In LAMMPS, the collision angle appears to be fixed at 90 degrees (rotating about the +/- x,y, or z axes).

Are there plans to update the no-slip collision rule, or to have the collision angle be a parameter set by the user?


Clarion Tung

Columbia University

Hi - I’ve CCd Dan, Jeremy, Pieter to comment on your Qs.

Re: (1), this sounds like a bug, or at least an option that we would

like to be able to do either way. If you send us the changed section

of code we can look at it.

Re: (2), my recollection is that the 90 degree random rotations

are motivated by being cheaper, and are supposed to be “correct”

in a statistical sense. I.e. they were suggested in some paper(s).

Maybe Jeremy or Pieter can remember.


Hi Clarion,

As to point 1, we found the same thing in this paper:

We implemented a number of boundary conditions at the time (including the virtual particles from Lamura/Gompper), but when we tried them for diffusing colloids rather than fixed boundaries, we didn’t see significant improvement in terms of getting the correct long-time diffusion coefficient. We never did sort out exactly what the ‘right’ collision rules should be for the general colloid (‘moving boundary’) case, which is part of the reason the modified collision rules weren’t included in the main lammps release. FYI, there has since been a paper by Gompper’s group ( that might have sorted this out with an entirely different representation of the colloid particles.

But for the simple case of wall collisions, you’re right, a combination of ‘reverse’ collisions with virtual particles is probably the way to go.

  1. What Steve said. Though I suppose variable angle would offer an additional adjustment for the viscosity. I also have a modified version of fix/srd that does MPC-AT collisions (and some of the boundary conditions mentioned above), let me know if you’re interested. Not sure it’s of sufficiently general interest to include in the main release, but if you want to test it (along with some other features, like collision rules mentioned above), let me know and maybe we can work toward a more versatile fix/srd for general release?



Hi Clarion,

Collisions angle of 90 degrees is “hardwired” in the code, if I remember correctly. This is due to the fact that it was found to be optimal, in some sense – rate of relaxation to thermal equil, in early theoretical work (see, e.g., Tuzel et al. (2003), PRE, v.68, p.036701). In any case I believe the dependence on rotation angle is week, but it’s been a while. Note also that the lammps implementation is rotation around fixed coordinate axis . No plans are in the works to generalize rotation angle, as far as I know. Would be interesting to see what you find, if you try it.

Hope this helps,