I am having some asymmetric patchy particles and I want to achieve the function to allow them to only have the rotational movement and freeze the translation. That is to say, all the patchy particles are staying at where they are, but with random rotation so that the direction for patches is random. Is it possible in LAMMPS?
I assume there might be some fix command that might be able to achieve this but didn’t find it.
Thanks in advance!
I am having some asymmetric patchy particles and I want to achieve the
function to allow them to only have the rotational movement and freeze the
translation. That is to say, all the patchy particles are staying at where
they are, but with random rotation so that the direction for patches is
random. Is it possible in LAMMPS?
hard to say, how do you plan to represent these "patchy particles"?
If by patchy particles, you mean rigid bodies (a la the Glotzer group’s
patchy particles), then if you use the fix rigid command (or its variants)
there is a force keyword which allows you to turn-off the translational
force on each body, so they will rotate in place. Similar for the
Note that fix rigid/small and its variants don’t allow use of those keywords,
partly b/c there is no easy way to ID each body. Code would have
to be added to those fixes to do something similar. Maybe it would
be easy to turn the force off for all the bodies - it’s selecting bodies
that would be hard.
Although LAMMPS does not have any direct command to eliminate translational motion of (center of mass) a non-rigid group of atoms (and leave them to rotate freely), you can still do it by the following procedure:
COM of a group of atoms (like Cu) doses not move in a direction (like x) if:
1- The net force exerted on them in that direction is zero (ΣFx=0)
2- The initial velocity of com the group in that direction is zero (V0x=0)
We should exert one small force on “each atom” in the group for either of these purposes.
1- A force to neutralize the effect of the force exerted by the surrounding which is the negative of:
compute fx_1 Cu reduce ave fx
2- A force to eliminate the translational momentum of the group in one timestep (F=-mV/dt) which is the negative of:
variable fx_2 equal v_m0_Cuv_VxCOM_Cu/v_dt1.43929E+30
(the number is for unit conversion in real units)
Finally, we should use “fix addforce” command to exerted the required force:
Variable fx_Cu equal -(c_fx_1+v_fx_2)
fix AddForce Cu addforce fx_Cu fy_Cu fz_Cu
The velocity of COM of the group will be zero (of the order of decimal precision).
Sent with Mailtrack