[lammps-users] Rolling particle on a surface

Dear Lammps users,

I would like to simulate a rolling particle on a surface. For this, I consider a rigid body composed of small spheres (type 2) uniformly distributed on a bigger particle (type 1). Likewise, I introduce a surface modeled as a square lattice of type 3 particles. I want to create and break bonds stochastically during rigid body rolling between particles of type 2 and 3. Then, I have tried:

fix 3 all bond/create 1 2 3 1.122 1 prob 1.0 4928459 iparam 1 2 jparam 1 3
fix 4 all bond/break 1 1 0.5 prob 0.8 49829

However, only the fix bond/create works, i.e., I never observe any bond breaking. I have read in the forum that this may be a communication problem between both commands and that the solution could be bond/react. In that case, how can I define my topology in the pre-and post-react files? I cannot determine the system’s topology because the rigid body is subjected to Brownian forces, moving like a random walker. In addition, I want to consider different probabilities for each event.

Thank you very much for your help in advance.


Why bonds? Why not just use a pair potential with a suitable cutoff?

Hi Axel,

Bonds because I want to simulate the cellular adhesion under shear flow.
I want these bonds to stochastically break/create depending on independent transition rates that I can estimate experimentally.
To do that, I need to combine Molecular Dynamics (MD) simulations and Monte-Carlo (MC) simulations.


I am unclear about your model. Similar to Axel, not sure if creating/breaking bonds is a good way to do it.
But the fix bond/react command is more general than fix bond/create and fix bond/break. It can certainly
do both together.

You can ask its author, Jake Gissinger (CCd), if it can do what you want. But you’ll need to be more
specific about what you need, I think.


Hi Steve,

My model is as follows: I consider a sphere (Type 1), on which I distribute smaller particles (Type 2), and I force this set to behave as a rigid body. Then, this rigid body is subjected to the action of gravity and of a force parallel to a surface formed by particles distributed in a square lattice (Type 3) so that the rigid body will roll.

So, the scheme of my simulation should be:
1.- One Molecular dynamics (MD) step to update the rigid body’s dynamics.
2.- One Monte Carlo (MC) step to create/break bonds stochastically between particles of Type 2 and Type 3. My idea would be to modify this part in the source code so that the probability depends on the binding energy on the transition rate between binding/unbinding states. Thus, I will explore all bonds and all possible bonds and induce these stochastic bond dynamics.
3.- Repeat steps one and two until the end of the simulation.

I have tried the bond/react command. I understood correctly, these files fix the system’s topology, i.e., you specify in a certain way which bonds are created and broken in each step. However, I do not know this information because my particle will roll on the surface, creating and breaking bonds according to a probability that will depend on the energy of the bond and the binding/unbinding transition rate.


you are only describing the model, not giving a justification for using a bonded interaction (and which one?) and why you need to use a probability, i.e. why interactions not only depend on distance. You also do not say which functional form you are using for the interactions and how that would be justified by the physical system that you are trying to model. This may be more crucial for a correct model than the way how the interaction is selected/computed.

Your description of fix bond/react is not correct. You define candidate bonds to break and form. E.g. any type 1 atom close to a type 2 atom.
The code picks which bond (if any) to break/form. Simila to fix bond/create. Just much more general.