231 lines
10 KiB
HTML
231 lines
10 KiB
HTML
<HTML>
|
|
<CENTER><A HREF = "http://www.cfdem.com">LIGGGHTS WWW Site</A> - <A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LIGGGHTS Documentation</A> - <A HREF = "Section_commands.html#comm">LIGGGHTS Commands</A>
|
|
</CENTER>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<HR>
|
|
|
|
<H3>fix move/mesh command
|
|
</H3>
|
|
<P><B>Syntax:</B>
|
|
</P>
|
|
<PRE>fix ID group-ID move/mesh mesh mesh-ID style args keyword values ...
|
|
</PRE>
|
|
<UL><LI>ID is documented in <A HREF = "fix.html">fix</A> command, group-ID is ignored
|
|
|
|
<LI>move/mesh = style name of this fix command
|
|
|
|
<LI>mesh = obligatory keyword
|
|
|
|
<LI>mesh-ID = ID for the fix mesh that the fix move/mesh is applied to
|
|
|
|
<LI>style = <I>linear</I> or <I>linear/variable</I> or <I>wiggle</I> or <I>riggle</I> or <I>rotate</I> or <I>rotate/variable</I> or <I>viblin</I> or <I>vibrot</I>
|
|
|
|
<PRE> <I>linear</I> args = Vx Vy Vz
|
|
Vx,Vy,Vz = components of velocity vector (velocity units)
|
|
<I>linear/variable</I> args = var_Vx var_Vy var_Vz
|
|
var_Vx,var_Vy,var_Vz = variables specifying components of velocity vector (velocity units)
|
|
<I>wiggle</I> args = amplitude Ax Ay Az period per
|
|
amplitude = obligatory keyword
|
|
Ax,Ay,Az = components of amplitude vector (distance units)
|
|
period = obligatory keyword
|
|
per = period of oscillation (time units)
|
|
<I>riggle</I> args = origin Px Py Pz axis ax ay az period per amplitude ampl
|
|
origin = obligatory keyword
|
|
Px,Py,Pz = origin point of axis of rotation (distance units)
|
|
axis = obligatory keyword
|
|
ax,ay,az = axis of rotation vector (distance units)
|
|
period = obligatory keyword
|
|
per = period of rotation (time units)#
|
|
amplitude = obligatory keyword
|
|
ampl = amplitude of riggle movement (grad)
|
|
<I>rotate</I> args = origin Px Py Pz axis ax ay az period per
|
|
origin = obligatory keyword
|
|
Px,Py,Pz = origin point of axis of rotation (distance units)
|
|
ax,ay,az = axis of rotation vector (distance units)
|
|
period = obligatory keyword
|
|
per = period of rotation (time units)
|
|
<I>rotate/variable</I> args = origin Px Py Pz axis ax ay az omega var_omega
|
|
origin = obligatory keyword
|
|
Px,Py,Pz = origin point of axis of rotation (distance units)
|
|
ax,ay,az = axis of rotation vector (distance units)
|
|
omega = obligatory keyword
|
|
var_omega = variable specifying angular velocity (rad / time units)
|
|
<I>viblin</I> args = axis ax ay az order n amplitude C1 ... Cn phase p1 ... pn period per
|
|
axis = obligatory keyword
|
|
ax,ay,az = components of moving direction vector (distance units)(origin 0 0 0)
|
|
order= obligatory keyword
|
|
n= order of trigonometric series n (from 1 to 10)
|
|
amplitude = obligatory keyword
|
|
C1, ..., Cn = amplitude (distance units)
|
|
phase = obligatory keyword
|
|
p1, ...,pn = phase of functionterm (rad) (number of terms is equivalent to order n)
|
|
period = obligatory keyword
|
|
per = period of rotation (time units)
|
|
<I>vibrot</I> args = origin Px Py Pz axis ax ay az order n amplitude C1 ... Cn phase p1 ... pn period per
|
|
origin = obligatory keyword
|
|
Px,Py,Pz = origin point of axis of rotation (distance units)
|
|
axis = obligatory keyword
|
|
ax,ay,az = axis of rotation vector
|
|
order= obligatory keyword
|
|
n= order of trigonometric series (from 1 to 10)
|
|
amplitude = obligatory keyword
|
|
C1, ..., Cn = amplitude (rad)
|
|
phase = obligatory keyword
|
|
p1, ...,pn = phase of functionterm (rad) (number of terms is equivalent to order n)
|
|
period = obligatory keyword
|
|
per = period of rotation (time units)
|
|
</PRE>
|
|
|
|
</UL>
|
|
<P><B>Examples:</B>
|
|
</P>
|
|
<PRE>fix move all move/mesh mesh cad1 wiggle amplitude -0.1 0. 0. period 0.02
|
|
fix move all move/mesh mesh cad1 rotate origin 0. 0. 0. axis 0. 0. 1. period 0.05
|
|
fix move all move/mesh mesh cad1 linear 5. 5. 0.
|
|
fix move all move/mesh mesh cad1 viblin axis 0. 0. 1 order 5 amplitude 0.4 0.1 0.3 0.1 0.1 phase 1.3 2 0.4 0.1 0 period 0.02
|
|
fix move all move/mesh mesh cad1 vibrot origin 0. 0. 0 axis 0. 0. 1 order 2 amplitude 0.4 0.1 phase 1.3 0 period 0.02
|
|
</PRE>
|
|
<P><B>LIGGGHTS vs. LAMMPS Info:</B>
|
|
</P>
|
|
<P>This command is not available in LAMMPS.
|
|
</P>
|
|
<P><B>Description:</B>
|
|
</P>
|
|
<P>Perform updates of position and velocity for mesh elements which are
|
|
part of the <A HREF = "fix_mesh_surface.html">fix_mesh_surface</A> with ID <I>mesh-ID</I>
|
|
using the specified settings or formulas. The fix group is ignored
|
|
for this command.
|
|
</P>
|
|
<HR>
|
|
|
|
<P>The <I>linear</I> style moves mesh elements at a constant velocity, so that their
|
|
position <I>X</I> = (x,y,z) as a function of time is given in vector
|
|
notation as
|
|
</P>
|
|
<PRE>X(t) = X0 + V * delta
|
|
</PRE>
|
|
<P>where <I>X0</I> = (x0,y0,z0) is their position at the time the fix is
|
|
specified, <I>V</I> is the specified velocity vector with components
|
|
(Vx,Vy,Vz), and <I>delta</I> is the time elapsed since the fix was
|
|
specified. This style also sets the velocity of each atom to V =
|
|
(Vx,Vy,Vz).
|
|
</P>
|
|
<P>The <I>linear/variable</I> style does the same as the <I>linear</I> style,
|
|
but uses three variables so that the velocity can be time-dependant.
|
|
</P>
|
|
<P>The <I>wiggle</I> style moves atoms in an oscillatory fashion, so that
|
|
their position <I>X</I> = (x,y,z) as a function of time is given in vector
|
|
notation as
|
|
</P>
|
|
<PRE>X(t) = X0 + A sin(omega*delta)
|
|
</PRE>
|
|
<P>where <I>X0</I> = (x0,y0,z0) is their position at the time the fix is
|
|
specified, <I>A</I> is the specified amplitude vector with components
|
|
(Ax,Ay,Az), <I>omega</I> is 2 PI / <I>period</I>, and <I>delta</I> is the time
|
|
elapsed since the fix was specified. This style also sets the
|
|
velocity of each element to the time derivative of this expression.
|
|
</P>
|
|
<P>The <I>rotate</I> style rotates around a rotation axis <I>R</I> =
|
|
(Rx,Ry,Rz) that goes thru a point <I>P</I> = (Px,Py,Pz). The <I>period</I> of
|
|
the rotation is also specified. This style also sets the velocity of
|
|
each element to (omega cross Rperp) where omega is its angular velocity
|
|
around the rotation axis and Rperp is a perpendicular vector from the
|
|
rotation axis to the atom. Note that the direction of rotation
|
|
around the rotation axis is consistent with the right-hand rule:
|
|
if your right-hand's thumb points along <I>R</I>, then your fingers
|
|
wrap around the axis in the direction of rotation.
|
|
</P>
|
|
<P>The <I>rotate/variable</I> style does the same as the <I>rotate</I> style,
|
|
but uses a variable for the angular velocity so that the angular
|
|
velocity can be time-dependant.
|
|
IMPORTANT NOTE: style <I>rotate</I> takes the period of the rotation
|
|
as input, <I>rotate/variable</I> takes angular velocity as input.
|
|
</P>
|
|
<P>The <I>riggle</I> style imposes an oscillatory rotation around a rotation
|
|
axis <I>R</I> = (Rx,Ry,Rz) that goes thru a point <I>P</I> = (Px,Py,Pz).
|
|
The <I>period</I> of the oscillation is specified as well as the <I>amplitude</I>
|
|
in grad (°). This style also sets the velocity of
|
|
each element accordingly.
|
|
</P>
|
|
<P>The <I>viblin</I> style moves meshes in an oscillatory fashion with an vibration
|
|
function of higher order, so that their position <I>X</I> = (x,y,z) as a function
|
|
of time is given in vector notation as
|
|
</P>
|
|
<CENTER><IMG SRC = "Eqs/viblin.jpg">
|
|
</CENTER>
|
|
<P>where <I>X0</I> = (x0,y0,z0) is their position at the time the fix is specified,
|
|
<I>n</I> represents the order of the trigonometric series, <I>Cn</I> is the specified
|
|
amplitude along the direction given by <I>axis</I> = (ax,ay,az). The vector <I>D</I>
|
|
is the unit vector of <I>axis</I>. The angular velocity omega is 2 PI / <I>period</I>,
|
|
and <I>delta</I> is the time elapsed since the fix was specified. This style
|
|
also sets the velocity of each element to the time derivative of this expression.
|
|
</P>
|
|
<P>The <I>vibrot</I> style generates an oscillatory rotation around a rotation <I>axis</I> =
|
|
(ax,ay,az) that goes thru a point <I>origin</I> = (Px,Py,Pz). The <I>period</I> of the
|
|
oscillation is used to calculate omega, the amplitudes <I>Cn</I> and the phase phase
|
|
<I>n</I> are given in rad. The change of rotation angle per time <I>gamma(t)</I> is
|
|
described by trigonometric series of order <I>n</I>. The formula for this change is
|
|
</P>
|
|
<CENTER><IMG SRC = "Eqs/vibrot.jpg">
|
|
</CENTER>
|
|
<P>This style also sets the velocity of each element accordingly
|
|
</P>
|
|
<P>NOTE: If a dangerous tri neighbor list build is detected, this may be due to
|
|
the fact that the geometry is moved too close to a region where particle
|
|
insertion is taking place so that initial interpenetration happens when
|
|
the particles are inserted.
|
|
</P>
|
|
<P>NOTE: When moving a mesh element, not only the node positions are moved
|
|
but also a couple of other vectors. So moving one mesh element is more
|
|
costly as one particle.
|
|
</P>
|
|
<P><B>Superposition of multiple fix move/mesh commands:</B>
|
|
</P>
|
|
<P>It is possible to superpose multiple fix move/mesh commands. In this
|
|
case, the reference frame for the second move command moves along as
|
|
the mesh is moved by the first move command etc. E.g. for style <I>rotate</I>,
|
|
the origin of the rotation axis would be in local reference frame.
|
|
</P>
|
|
<P>Example: A mesh should rotate around a central axis and additionally
|
|
revolve around its center of mass. The first move command should be
|
|
the rotation around the central axis, the second move command the
|
|
revolution around the center of mass of the mesh.
|
|
</P>
|
|
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
|
|
</P>
|
|
<P>This fix writes the original coordinates of moving elements to <A HREF = "restart.html">binary
|
|
restart files</A>, so that the motion can be continuous in a
|
|
restarted simulation. See the <A HREF = "read_restart.html">read_restart</A>
|
|
command for info on how to re-specify a fix in an input script that
|
|
reads a restart file, so that the operation of the fix continues in an
|
|
uninterrupted fashion.
|
|
</P>
|
|
<P>None of the <A HREF = "fix_modify.html">fix_modify</A> options are relevant to this
|
|
fix.
|
|
</P>
|
|
<P>No parameter of this fix can be used with the <I>start/stop</I> keywords of
|
|
the <A HREF = "run.html">run</A> command. This fix is not invoked during <A HREF = "minimize.html">energy
|
|
minimization</A>.
|
|
</P>
|
|
<P><B>Restrictions:</B>
|
|
</P>
|
|
<P>If multiple fix move/mesh movements are superposed onto one mesh,
|
|
they have to be deleted in reverse order of their creation
|
|
Mesh elements may not be deleted in case due to leaving the simulation box for a fixed boundary.
|
|
In this case, an error is generated. See <A HREF = "boundary.html">boundary</A> command for details.
|
|
</P>
|
|
<P><B>Related commands:</B>
|
|
</P>
|
|
<P><A HREF = "fix_mesh_surface.html">fix mesh/surface</A>
|
|
</P>
|
|
<P><B>Default:</B> none
|
|
</P>
|
|
</HTML>
|