anisotropic friction

Hello,

Is there a way to introduce anisotropic friction?

I would like to do the following: a chain of beads should have a different friction coefficient along the chain than perpendicular to it.
At the moment, my chain consists of indistinguishable beads. The friction coefficient (introduced by viscous and langevin commands) are
the same both for movements in the tangential direction and perpendicular to the tangential direction.

Maybe something like a chain composed of ellipsoids, where the friction coefficient has a different value, one for the long axis, one for the
short axis? Can one specify something like this?

Thanks, Bjoern

I think you'd have to write a fix to do this. E.g. fix langevin/aniso.
In the fix you'd have to calculate the current perp and parallel direcitons
and apply different forces.

Steve

I am on my way to writing this fix.
The calculations are easy, my problem is to find out the bonded neighbours to a given atom.
Let's say I have the following setup: (chain.input)
"""
LAMMPS FENE chain data file
6 atoms
4 bonds
3 angles
1 atom types
1 bond types
1 angle types

-1.00000000166 1.00000000166 xlo xhi
-1.00000000166 1.00000000166 ylo yhi
-200.000000313 1.00000000166 zlo zhi

Masses

1 1.0

Atoms

1 1 1 0 0 -0 0 0 0
2 1 1 0 0 -1 0 0 0
3 1 1 0 0 -2 0 0 0
4 1 1 0 0 -3 0 0 0
5 1 1 0 0 -4 0 0 0
6 2 1 1 0 +1 0 0 0

Bonds

1 1 1 2
2 1 2 3
3 1 3 4
4 1 4 5

Angles

1 1 1 2 3
2 1 2 3 4
3 1 3 4 5
"""

In the modified fix_langevin file, I would like to loop over all atoms and find the bonded neighbours for every atom. I am going to calculate the tangent, normal, and binormal based on three points (for the bulk) and based on two points for the ends of the chain.
Example:

I have found out that I can get a list of bonds and angles for every atom - but these lists do not contain every angle/bond the given atom is part of, but rather the bond that starts at the given atom reap. the angle for which the given atom sits in the centre.

Is there a way to get a list of bonds for a given atom (all bonds that are being formed with this atom)?
I could realise this list at runtime by looping over all bonds and comparing to the atom index in question, but this seems rather costly.
I suppose I can create such a list at startup? But I do not know how to do that…

Any help appreciated!

The 2d array atom->special has the list of all
atoms that are 1-2 (bond) neighbors of each atom.
Then it lists 1-3
neighbors (all neighbors 2 hops away) which
are effectively at the ends of angles, and 1-4.
The number of each category is in atom->nspecial.

Steve