# randomize propagation direction of an elliptical rigid body

Hi,

I am simulating an elliptical shape rigid body particles in a sinusoidal cavity in 2D. It interacts with the background dpd solvent. In addition to that I want to add a force on the rigid body particle in each step which will randomize it’s propagation direction. The force should be like:

Fx = F0 cos(theta)
Fy = F0 sin(theta)

dtheta/dt = random,

theta is the angle between the propagation direction and channel axis (x axis say) and it varies randomly.

Please suggest me if there is any way to do that with existing lamps codes.

Regards,
CMB

Hi,

I am simulating an elliptical shape rigid body particles in a sinusoidal
cavity in 2D. It interacts with the background dpd solvent. In addition to
that I want to add a force on the rigid body particle in each step which
will randomize it's propagation direction. The force should be like:

Fx = F0 cos(theta)
Fy = F0 sin(theta)

dtheta/dt = random,

theta is the angle between the propagation direction and channel axis (x
axis say) and it varies randomly.

what is the point of this?

particles of your rigid bodies, which will include residual random
rotation forces.

Please suggest me if there is any way to do that with existing lamps codes.

i don't know any way to do this explicitly without writing some C++
code. please note that some of the rigid fixes offer an internal
langevin thermostat that operates directly on the rigid bodies.

axel.

No,

However, you can modify the fix addforce for what you want.

------------------ Original ------------------

Fix addforce can add a force to one (or more) particles which is
an equal- or atom-style variable. Those variables can use a random()
function (see the variable doc page) which will be a different random #
each time the variable is invoked.

Steve

Hi,

Axel you are right. Theta is already random because of the dynamics with solvent. So, if I just calculate theta in each step and add the forces: F0 cos(theta), F0 sin(theta), to each particle in the rigid body, it will give the rigid body an additional kick along the propagation direction.

Now the question is how to calculate theta in each step.

For rigid bodies I think LAMMPS does not calculate it directly. So, if I find out two particles, one at the head (2) and the other at the tail (1) and the line joining them passing through the centre of mass of the rigid body, I can define a variable like

theta = atan[(y2-y1)/(x2-x1)]

This will give me the propagation direction.
Once theta is calculated, I will be able to add the forces.
Please suggest me if I am thinking it right.

Thanks and regards,
CMB

Hi,

I am simulating an elliptical shape rigid body particles in a sinusoidal
cavity in 2D. It interacts with the background dpd solvent. In addition to
that I want to add a force on the rigid body particle in each step which
will randomize it’s propagation direction. The force should be like:

Fx = F0 cos(theta)
Fy = F0 sin(theta)

dtheta/dt = random,

theta is the angle between the propagation direction and channel axis (x
axis say) and it varies randomly.

what is the point of this?

particles of your rigid bodies, which will include residual random
rotation forces.

Please suggest me if there is any way to do that with existing lamps codes.

i don’t know any way to do this explicitly without writing some C++
code. please note that some of the rigid fixes offer an internal
langevin thermostat that operates directly on the rigid bodies.

axel.

Hi,

Axel you are right. Theta is already random because of the dynamics with solvent. So, if I just calculate theta in each step and add the forces: F0 cos(theta), F0 sin(theta), to each particle in the rigid body, it will give the rigid body an additional kick along the propagation direction.

Now the question is how to calculate theta in each step.

For rigid bodies I think LAMMPS does not calculate it directly. So, if I find out two particles, one at the head (2) and the other at the tail (1) and the line joining them passing through the centre of mass of the rigid body, I can define a variable like

theta = atan[(y2-y1)/(x2-x1)]

This will give me the propagation direction.
Once theta is calculated, I will be able to add the forces.
Please suggest me if I am thinking it right.

No, you didn’t get what I was trying to explain.