[lammps-users] How to apply a torsion


I have a cylinder and want to apply torsion to one end of it, the other end fixed.
What should I do?

Thanks so much

You'd have to write a fix to do that, unless you can come
up with a clever formula for the torsional force on each atom,
use it with a per-atom variable in your input script, and
then use fix addforce with the variable.


do you want to keep the top of your cylinder rigid like the bottom?
in that case, you would only need to apply the force to two atoms,
preferably at opposing ends of the cylinder. that would simplify
the formula required for the forces significantly and two instances
of fix addforce might do.


Or you can give a try to the fix addtorque I wrote recently, which add
a set of forces to each atom in a given group such that the components
of the total torque applied on the group (around its center of mass)
are Tx,Ty,Tz, and the group would move as a rigid body in the absence
of other forces. Enclosed are the source files and doc files. I'm
still testing it, but I'm beginning to feel confident that it is
working correctly...


fix_addtorque.txt (2.95 KB)

fix_addtorque.html (3.34 KB)

fix_addtorque.cpp (8.68 KB)

fix_addtorque.h (1.31 KB)

1 Like

Depending on what you mean by "apply a torque", you could
also use the fix move rotate command on a set of atoms
at the end of the cylinder. This could slowly twist them over
time, similar to applying a displacement shear or tension to the end of
a sample in other kinds of deformation tests.