Restriction in giving active force to more number of rods

I used variable style atom and fix addforce commands to induce an active force on the rod(5 monomers) along axial direction(tail to head) every timestep (as orientation of rod changes).

I wanted to induce active force on many rods (In a simulation box) ,however there is a restriction in LAMMPS that no more than 32 groups can be defined at any time. So I am currently able to give active force at max to 31 rods.
Is there any way to give active force to more number of rods(>>31) .


How do you compute this active force?
You don’t have to create a new instance for fix addforce, but rather determine the force for all relevant atoms with atom style variables and using a single instance. That will be much more efficient.

Please also check out fix propel/self command — LAMMPS documentation

so for 1 rod above attachment computes the activeforce
for 20 rods above attachment computes the activeforce

At max 31 rods can be given active force, as only 32 group ids can be used(Restriction in LAMMPS). Is there any way to give active force to more number of rods(>>31)

All the monomers of the rod are given the active force along the axial direction,as represented in the above schematic.
After going through the documentation I feel it may not be possible with fix propel/self,to give active force as represented in the schematic,I maybe wrong please help.

It depends on whether your rods are kept rigid with fix rigid. If yes, then you could use atom style “hybrid sphere dipole” to have particles with orientation and dipole vector. The dipole vector can then be set to determine the direction of the added force for fix propel/self and fix rigid (or fix rigid/small) will then update the dipole vector orientations as the rods rotate.

If not, you will need to do some C++ or python programming and implement a custom fix that will compute and apply the force.

1 Like

Thank you Sir

Dept. of Physics
National Institute of Technology Warangal