fix_rigid not rigid across periodic boundaries

Hello fellow LAMMPS users,

For my PhD project I am trying to model a geological fault zone using LAMMPS. The fault zone is characterised a layer of non-cohesive granular material (called gouge) sandwiched by two rigid (i.e. cohesive) slabs of rock, that move relative to each other, shearing the gouge in between them. Please refer to the attached file “geometry.png” for a visualisation of the geometry. In this case, the top slab of rock is instructed to move in the x-direction with a constant velocity, while adjusting its z-coordinate to maintain a fixed applied load onto the gouge. The bottom slab is not being integrated and therefore fixed. The gouge is then accommodating the relative motion of the top slab by granular flow. The boundaries in the direction of the flow are periodic, so that particles are allowed to migrate freely from left to right (and back). The other boundaries are fixed.

In order to allow the group of particles making up the top slab move as a single rigid object, the fix_rigid (from the RIGID user package) fix is employed:

fix rigid_top_wall top_wall rigid single force * off off on torque * off off off
fix move_top top_wall move linear ${v_wall} 0 NULL units box

This ensures that the slab behaves as a single object, but that it does not rotate of move in response to the force exerted by the gouge, except in the z-direction. The ‘fix move’ instructs the slab to move at a constant velocity in the x-direction.

The problem I am facing is this: after a certain amount of time and shear displacement, say, 2.5x the length of the box, the supposedly rigid top slab “breaks”, causing the object to tilt and do funny things. Please see the attached Paraview screen capture called “not-rigid.png”. In this picture I have indicated the right and left ends of the slab by a green and blue bar respectively. You’ll notice that the slab’s offset is located at the point where the two “ends” are adjacent to each other due to the periodic nature of the system. According to the manual, fix_rigid is supposed to be able to handle periodicity well, so I’m puzzled of what causes this behaviour.

Please let me know if you think the problem is not formulated well enough, I can make more diagrams and explain in more detail.

Thanks and regards,

Martijn van den Ende

geometry.png

not-rigid.png

Hello fellow LAMMPS users,

For my PhD project I am trying to model a geological fault zone using
LAMMPS. The fault zone is characterised a layer of non-cohesive granular
material (called gouge) sandwiched by two rigid (i.e. cohesive) slabs of
rock, that move relative to each other, shearing the gouge in between them.
Please refer to the attached file "geometry.png" for a visualisation of the
geometry. In this case, the top slab of rock is instructed to move in the
x-direction with a constant velocity, while adjusting its z-coordinate to
maintain a fixed applied load onto the gouge. The bottom slab is not being
integrated and therefore fixed. The gouge is then accommodating the
relative motion of the top slab by granular flow. The boundaries in the
direction of the flow are periodic, so that particles are allowed to
migrate freely from left to right (and back). The other boundaries are
fixed.

In order to allow the group of particles making up the top slab move as a
single rigid object, the fix_rigid (from the RIGID user package) fix is
employed:

fix rigid_top_wall top_wall rigid single force * off off on torque * off
off off
fix move_top top_wall move linear ${v_wall} 0 NULL units box

I suppose you have this warning in your output, "WARNING: One or more atoms
are time integrated more than once (../modify.cpp:262)", which means it is
bad to use two time integration fixes on the same group. You can remove
the fix move and just use velocity set to move the top_wall group.

Ray

Hi Ray,

Thanks for your reply. I indeed suffered from the WARNING you mentioned, and changing the “fix move” to the set “velocity” fixed my problem.

Martijn