SPARTA WWW Site - SPARTA Documentation - SPARTA Commands

move_surf command


move_surf groupID style args ... 


move_surf all trans 1 0 0
move_surf all rotate 360 0 0 1 5 5 0
move_surf object2 rotate 360 0 0 1 5 5 0 


This command performs a one-time movement of all the surface elements in the specified group via the specified style. See the group surf command for info on how surface elements can be assigned to surface groups.

This command can be invoked as many times as desired, before or between simulation runs. Surface points can also be moved on-the-fly during a simulation by using the fix move/surf command.

Moving surfaces between simulations can be useful if you want to perform a series of runs from one input script, where some attribute of the surface elements change, e.g. the separation between two spheres.

IMPORTANT NOTE: The file style is not yet implemented. It will allow new positions of points to be listed in a file.

In 2d, surface elements are line segments with 2 vertices each. In 3d, surface elements are triangles with 3 vertices each. If a line segment or triangle belongs to the specified group, all of its vertices are moved. This effectively moves the entire surface element. Note that if two (or more) surface elements share the same vertex and one (or more) of the elements is not in the specified group, the shape of that surface element may also be affected, since only some of its vertices may move.

The trans style shifts or displaces each vertex by the vector (Dx,Dy,Dz).

The rotate style rotates the coordinates of all vertices by an angle theta in a counter-clockwise direction, around the vector starting at (Ox,Oy,Oz) and pointing in the direction Rx,Ry,Rz. Any desired rotation can be represented by an appropriate choice of (Ox,Oy,Oz), theta, and (Rx,Ry,Rz).

After the surface has been moved, then all particles in grid cells that meet either of these criteria are deleted:

This is to prevent particles from ending up inside surface objects.

Note that in this context, "overlaps" means that any part of the surface element touches any part of the grid cell, including its surface. Also note that if a surface element object (e.g. a sphere) moved a long distance then grid cells that were inside the object in its old position and thus contained no particles, will still have no particles immediately after the move. This will effectively leave a "void" in the flow until particles re-fill the grid cells that are now outside the object.


An error will be generated if any surface element vertex is moved outside the simulation box.

Related commands:

read_surf, fix move/surf, remove_surf

Default: none