Implement Rotating Wall

Hey Steve

Following up for my previous question.

The set up I was aiming for was a vertical cylinder of particles within a vertical cylinder which rotates. So then unfix the vertical cylinder of particles so they freely collapse. Would the following way work for this setup…

  1. create a cylinder region named tank and set the entire region to rotate
  2. fix zplane (bottom of cylinder) so it is treated as a wall, and can set various parameters
  3. create a new cylinder region named column within tank and fill with particles
  4. Unfix column so the particles begin to flow

If this is not the way, I am a little bit at a loss at how to edit the fix_wall_gran.cpp to allow this. I see the lines

void FixWallGran::post_force(int vflag)


double vwall[3],dx,dy,dz,del1,del2,delxy,delr,rsq;

// set position of wall to initial settings and velocity to 0.0

// if wiggle or shear, set wall position and velocity accordingly

double wlo = lo;

double whi = hi;

vwall[0] = vwall[1] = vwall[2] = 0.0;

if (wiggle) {

double arg = omega * (update->ntimestep - time_origin) * dt;

if (wallstyle == axis) {

wlo = lo + amplitude - amplitude*cos(arg);

whi = hi + amplitude - amplitude*cos(arg);


vwall[axis] = amplitudeomegasin(arg);

} else if (wshear) vwall[axis] = vshear;

which would be the main part of the file I need to edit (I know there would be other minor additions over the code), but am at a bit of a loss as you appear to only edit velocities in this file.

Am I going down the wrong road??



The problem with your 1st 4 steps is there is no fix wall/region/gran
command. I.e. the rotating region will not interact with granular
particles in a granular manner. So something like the edits
you proposed to the fix wall/gran code would need to be done.