git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@16053 f3b2605a-c512-4ea7-a41b...
[lammps.git] / doc / src / fix_deform.txt
blob1478d47df1fcce46676b521707e43466b1aa3436
1 "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
3 :link(lws,http://lammps.sandia.gov)
4 :link(ld,Manual.html)
5 :link(lc,Section_commands.html#comm)
7 :line
9 fix deform command :h3
10 fix deform/kk command :h3
12 [Syntax:]
14 fix ID group-ID deform N parameter args ... keyword value ... :pre
16 ID, group-ID are documented in "fix"_fix.html command :ulb,l
17 deform = style name of this fix command :l
18 N = perform box deformation every this many timesteps :l
19 one or more parameter/arg pairs may be appended :l
20 parameter = {x} or {y} or {z} or {xy} or {xz} or {yz}
21   {x}, {y}, {z} args = style value(s)
22     style = {final} or {delta} or {scale} or {vel} or {erate} or {trate} or {volume} or {wiggle} or {variable}
23       {final} values = lo hi
24         lo hi = box boundaries at end of run (distance units)
25       {delta} values = dlo dhi
26         dlo dhi = change in box boundaries at end of run (distance units)
27       {scale} values = factor
28         factor = multiplicative factor for change in box length at end of run
29       {vel} value = V
30         V = change box length at this velocity (distance/time units),
31             effectively an engineering strain rate
32       {erate} value = R
33         R = engineering strain rate (1/time units)
34       {trate} value = R
35         R = true strain rate (1/time units)
36       {volume} value = none = adjust this dim to preserve volume of system
37       {wiggle} values = A Tp
38         A = amplitude of oscillation (distance units)
39         Tp = period of oscillation (time units)
40       {variable} values = v_name1 v_name2
41         v_name1 = variable with name1 for box length change as function of time
42         v_name2 = variable with name2 for change rate as function of time
43   {xy}, {xz}, {yz} args = style value
44     style = {final} or {delta} or {vel} or {erate} or {trate} or {wiggle}
45       {final} value = tilt
46         tilt = tilt factor at end of run (distance units)
47       {delta} value = dtilt
48         dtilt = change in tilt factor at end of run (distance units)
49       {vel} value = V
50         V = change tilt factor at this velocity (distance/time units),
51             effectively an engineering shear strain rate
52       {erate} value = R
53         R = engineering shear strain rate (1/time units)
54       {trate} value = R
55         R = true shear strain rate (1/time units)
56       {wiggle} values = A Tp
57         A = amplitude of oscillation (distance units)
58         Tp = period of oscillation (time units)
59       {variable} values = v_name1 v_name2
60         v_name1 = variable with name1 for tilt change as function of time
61         v_name2 = variable with name2 for change rate as function of time :pre
63 zero or more keyword/value pairs may be appended :l
64 keyword = {remap} or {flip} or {units} :l
65   {remap} value = {x} or {v} or {none}
66     x = remap coords of atoms in group into deforming box
67     v = remap velocities of all atoms when they cross periodic boundaries
68     none = no remapping of x or v
69   {flip} value = {yes} or {no}
70     allow or disallow box flips when it becomes highly skewed
71   {units} value = {lattice} or {box}
72     lattice = distances are defined in lattice units
73     box = distances are defined in simulation box units :pre
74 :ule
76 [Examples:]
78 fix 1 all deform 1 x final 0.0 9.0 z final 0.0 5.0 units box
79 fix 1 all deform 1 x trate 0.1 y volume z volume
80 fix 1 all deform 1 xy erate 0.001 remap v
81 fix 1 all deform 10 y delta -0.5 0.5 xz vel 1.0 :pre
83 [Description:]
85 Change the volume and/or shape of the simulation box during a dynamics
86 run.  Orthogonal simulation boxes have 3 adjustable parameters
87 (x,y,z).  Triclinic (non-orthogonal) simulation boxes have 6
88 adjustable parameters (x,y,z,xy,xz,yz).  Any or all of them can be
89 adjusted independently and simultaneously by this command.  This fix
90 can be used to perform non-equilibrium MD (NEMD) simulations of a
91 continuously strained system.  See the "fix
92 nvt/sllod"_fix_nvt_sllod.html and "compute
93 temp/deform"_compute_temp_deform.html commands for more details.
95 For the {x}, {y}, {z} parameters, the associated dimension cannot be
96 shrink-wrapped.  For the {xy}, {yz}, {xz} parameters, the associated
97 2nd dimension cannot be shrink-wrapped.  Dimensions not varied by this
98 command can be periodic or non-periodic.  Dimensions corresponding to
99 unspecified parameters can also be controlled by a "fix
100 npt"_fix_nh.html or "fix nph"_fix_nh.html command.
102 The size and shape of the simulation box at the beginning of the
103 simulation run were either specified by the
104 "create_box"_create_box.html or "read_data"_read_data.html or
105 "read_restart"_read_restart.html command used to setup the simulation
106 initially if it is the first run, or they are the values from the end
107 of the previous run.  The "create_box"_create_box.html, "read
108 data"_read_data.html, and "read_restart"_read_restart.html commands
109 specify whether the simulation box is orthogonal or non-orthogonal
110 (triclinic) and explain the meaning of the xy,xz,yz tilt factors.  If
111 fix deform changes the xy,xz,yz tilt factors, then the simulation box
112 must be triclinic, even if its initial tilt factors are 0.0.
114 As described below, the desired simulation box size and shape at the
115 end of the run are determined by the parameters of the fix deform
116 command.  Every Nth timestep during the run, the simulation box is
117 expanded, contracted, or tilted to ramped values between the initial
118 and final values.
120 :line
122 For the {x}, {y}, and {z} parameters, this is the meaning of their
123 styles and values.
125 The {final}, {delta}, {scale}, {vel}, and {erate} styles all change
126 the specified dimension of the box via "constant displacement" which
127 is effectively a "constant engineering strain rate".  This means the
128 box dimension changes linearly with time from its initial to final
129 value.
131 For style {final}, the final lo and hi box boundaries of a dimension
132 are specified.  The values can be in lattice or box distance units.
133 See the discussion of the units keyword below.
135 For style {delta}, plus or minus changes in the lo/hi box boundaries
136 of a dimension are specified.  The values can be in lattice or box
137 distance units.  See the discussion of the units keyword below.
139 For style {scale}, a multiplicative factor to apply to the box length
140 of a dimension is specified.  For example, if the initial box length
141 is 10, and the factor is 1.1, then the final box length will be 11.  A
142 factor less than 1.0 means compression.
144 For style {vel}, a velocity at which the box length changes is
145 specified in units of distance/time.  This is effectively a "constant
146 engineering strain rate", where rate = V/L0 and L0 is the initial box
147 length.  The distance can be in lattice or box distance units.  See
148 the discussion of the units keyword below.  For example, if the
149 initial box length is 100 Angstroms, and V is 10 Angstroms/psec, then
150 after 10 psec, the box length will have doubled.  After 20 psec, it
151 will have tripled.
153 The {erate} style changes a dimension of the box at a "constant
154 engineering strain rate".  The units of the specified strain rate are
155 1/time.  See the "units"_units.html command for the time units
156 associated with different choices of simulation units,
157 e.g. picoseconds for "metal" units).  Tensile strain is unitless and
158 is defined as delta/L0, where L0 is the original box length and delta
159 is the change relative to the original length.  The box length L as a
160 function of time will change as
162 L(t) = L0 (1 + erate*dt) :pre
164 where dt is the elapsed time (in time units).  Thus if {erate} R is
165 specified as 0.1 and time units are picoseconds, this means the box
166 length will increase by 10% of its original length every picosecond.
167 I.e. strain after 1 psec = 0.1, strain after 2 psec = 0.2, etc.  R =
168 -0.01 means the box length will shrink by 1% of its original length
169 every picosecond.  Note that for an "engineering" rate the change is
170 based on the original box length, so running with R = 1 for 10
171 picoseconds expands the box length by a factor of 11 (strain of 10),
172 which is different that what the {trate} style would induce.
174 The {trate} style changes a dimension of the box at a "constant true
175 strain rate".  Note that this is not an "engineering strain rate", as
176 the other styles are.  Rather, for a "true" rate, the rate of change
177 is constant, which means the box dimension changes non-linearly with
178 time from its initial to final value.  The units of the specified
179 strain rate are 1/time.  See the "units"_units.html command for the
180 time units associated with different choices of simulation units,
181 e.g. picoseconds for "metal" units).  Tensile strain is unitless and
182 is defined as delta/L0, where L0 is the original box length and delta
183 is the change relative to the original length.
185 The box length L as a function of time will change as
187 L(t) = L0 exp(trate*dt) :pre
189 where dt is the elapsed time (in time units).  Thus if {trate} R is
190 specified as ln(1.1) and time units are picoseconds, this means the
191 box length will increase by 10% of its current (not original) length
192 every picosecond.  I.e. strain after 1 psec = 0.1, strain after 2 psec
193 = 0.21, etc.  R = ln(2) or ln(3) means the box length will double or
194 triple every picosecond.  R = ln(0.99) means the box length will
195 shrink by 1% of its current length every picosecond.  Note that for a
196 "true" rate the change is continuous and based on the current length,
197 so running with R = ln(2) for 10 picoseconds does not expand the box
198 length by a factor of 11 as it would with {erate}, but by a factor of
199 1024 since the box length will double every picosecond.
201 Note that to change the volume (or cross-sectional area) of the
202 simulation box at a constant rate, you can change multiple dimensions
203 via {erate} or {trate}.  E.g. to double the box volume in a picosecond
204 picosecond, you could set "x erate M", "y erate M", "z erate M", with
205 M = pow(2,1/3) - 1 = 0.26, since if each box dimension grows by 26%,
206 the box volume doubles.  Or you could set "x trate M", "y trate M", "z
207 trate M", with M = ln(1.26) = 0.231, and the box volume would double
208 every picosecond.
210 The {volume} style changes the specified dimension in such a way that
211 the box volume remains constant while other box dimensions are changed
212 explicitly via the styles discussed above.  For example, "x scale 1.1
213 y scale 1.1 z volume" will shrink the z box length as the x,y box
214 lengths increase, to keep the volume constant (product of x,y,z
215 lengths).  If "x scale 1.1 z volume" is specified and parameter {y} is
216 unspecified, then the z box length will shrink as x increases to keep
217 the product of x,z lengths constant.  If "x scale 1.1 y volume z
218 volume" is specified, then both the y,z box lengths will shrink as x
219 increases to keep the volume constant (product of x,y,z lengths).  In
220 this case, the y,z box lengths shrink so as to keep their relative
221 aspect ratio constant.
223 For solids or liquids, note that when one dimension of the box is
224 expanded via fix deform (i.e. tensile strain), it may be physically
225 undesirable to hold the other 2 box lengths constant (unspecified by
226 fix deform) since that implies a density change.  Using the {volume}
227 style for those 2 dimensions to keep the box volume constant may make
228 more physical sense, but may also not be correct for materials and
229 potentials whose Poisson ratio is not 0.5.  An alternative is to use
230 "fix npt aniso"_fix_nh.html with zero applied pressure on those 2
231 dimensions, so that they respond to the tensile strain dynamically.
233 The {wiggle} style oscillates the specified box length dimension
234 sinusoidally with the specified amplitude and period.  I.e. the box
235 length L as a function of time is given by
237 L(t) = L0 + A sin(2*pi t/Tp) :pre
239 where L0 is its initial length.  If the amplitude A is a positive
240 number the box initially expands, then contracts, etc.  If A is
241 negative then the box initially contracts, then expands, etc.  The
242 amplitude can be in lattice or box distance units.  See the discussion
243 of the units keyword below.
245 The {variable} style changes the specified box length dimension by
246 evaluating a variable, which presumably is a function of time.  The
247 variable with {name1} must be an "equal-style variable"_variable.html
248 and should calculate a change in box length in units of distance.
249 Note that this distance is in box units, not lattice units; see the
250 discussion of the {units} keyword below.  The formula associated with
251 variable {name1} can reference the current timestep.  Note that it
252 should return the "change" in box length, not the absolute box length.
253 This means it should evaluate to 0.0 when invoked on the initial
254 timestep of the run following the definition of fix deform.  It should
255 evaluate to a value > 0.0 to dilate the box at future times, or a
256 value < 0.0 to compress the box.
258 The variable {name2} must also be an "equal-style
259 variable"_variable.html and should calculate the rate of box length
260 change, in units of distance/time, i.e. the time-derivative of the
261 {name1} variable.  This quantity is used internally by LAMMPS to reset
262 atom velocities when they cross periodic boundaries.  It is computed
263 internally for the other styles, but you must provide it when using an
264 arbitrary variable.
266 Here is an example of using the {variable} style to perform the same
267 box deformation as the {wiggle} style formula listed above, where we
268 assume that the current timestep = 0.
270 variable A equal 5.0
271 variable Tp equal 10.0
272 variable displace equal "v_A * sin(2*PI * step*dt/v_Tp)"
273 variable rate equal "2*PI*v_A/v_Tp * cos(2*PI * step*dt/v_Tp)"
274 fix 2 all deform 1 x variable v_displace v_rate remap v :pre
276 For the {scale}, {vel}, {erate}, {trate}, {volume}, {wiggle}, and
277 {variable} styles, the box length is expanded or compressed around its
278 mid point.
280 :line
282 For the {xy}, {xz}, and {yz} parameters, this is the meaning of their
283 styles and values.  Note that changing the tilt factors of a triclinic
284 box does not change its volume.
286 The {final}, {delta}, {vel}, and {erate} styles all change the shear
287 strain at a "constant engineering shear strain rate".  This means the
288 tilt factor changes linearly with time from its initial to final
289 value.
291 For style {final}, the final tilt factor is specified.  The value
292 can be in lattice or box distance units.  See the discussion of the
293 units keyword below.
295 For style {delta}, a plus or minus change in the tilt factor is
296 specified.  The value can be in lattice or box distance units.  See
297 the discussion of the units keyword below.
299 For style {vel}, a velocity at which the tilt factor changes is
300 specified in units of distance/time.  This is effectively an
301 "engineering shear strain rate", where rate = V/L0 and L0 is the
302 initial box length perpendicular to the direction of shear.  The
303 distance can be in lattice or box distance units.  See the discussion
304 of the units keyword below.  For example, if the initial tilt factor
305 is 5 Angstroms, and the V is 10 Angstroms/psec, then after 1 psec, the
306 tilt factor will be 15 Angstroms.  After 2 psec, it will be 25
307 Angstroms.
309 The {erate} style changes a tilt factor at a "constant engineering
310 shear strain rate".  The units of the specified shear strain rate are
311 1/time.  See the "units"_units.html command for the time units
312 associated with different choices of simulation units,
313 e.g. picoseconds for "metal" units).  Shear strain is unitless and is
314 defined as offset/length, where length is the box length perpendicular
315 to the shear direction (e.g. y box length for xy deformation) and
316 offset is the displacement distance in the shear direction (e.g. x
317 direction for xy deformation) from the unstrained orientation.
319 The tilt factor T as a function of time will change as
321 T(t) = T0 + L0*erate*dt :pre
323 where T0 is the initial tilt factor, L0 is the original length of the
324 box perpendicular to the shear direction (e.g. y box length for xy
325 deformation), and dt is the elapsed time (in time units).  Thus if
326 {erate} R is specified as 0.1 and time units are picoseconds, this
327 means the shear strain will increase by 0.1 every picosecond.  I.e. if
328 the xy shear strain was initially 0.0, then strain after 1 psec = 0.1,
329 strain after 2 psec = 0.2, etc.  Thus the tilt factor would be 0.0 at
330 time 0, 0.1*ybox at 1 psec, 0.2*ybox at 2 psec, etc, where ybox is the
331 original y box length.  R = 1 or 2 means the tilt factor will increase
332 by 1 or 2 every picosecond.  R = -0.01 means a decrease in shear
333 strain by 0.01 every picosecond.
335 The {trate} style changes a tilt factor at a "constant true shear
336 strain rate".  Note that this is not an "engineering shear strain
337 rate", as the other styles are.  Rather, for a "true" rate, the rate
338 of change is constant, which means the tilt factor changes
339 non-linearly with time from its initial to final value.  The units of
340 the specified shear strain rate are 1/time.  See the
341 "units"_units.html command for the time units associated with
342 different choices of simulation units, e.g. picoseconds for "metal"
343 units).  Shear strain is unitless and is defined as offset/length,
344 where length is the box length perpendicular to the shear direction
345 (e.g. y box length for xy deformation) and offset is the displacement
346 distance in the shear direction (e.g. x direction for xy deformation)
347 from the unstrained orientation.
349 The tilt factor T as a function of time will change as
351 T(t) = T0 exp(trate*dt) :pre
353 where T0 is the initial tilt factor and dt is the elapsed time (in
354 time units).  Thus if {trate} R is specified as ln(1.1) and time units
355 are picoseconds, this means the shear strain or tilt factor will
356 increase by 10% every picosecond.  I.e. if the xy shear strain was
357 initially 0.1, then strain after 1 psec = 0.11, strain after 2 psec =
358 0.121, etc.  R = ln(2) or ln(3) means the tilt factor will double or
359 triple every picosecond.  R = ln(0.99) means the tilt factor will
360 shrink by 1% every picosecond.  Note that the change is continuous, so
361 running with R = ln(2) for 10 picoseconds does not change the tilt
362 factor by a factor of 10, but by a factor of 1024 since it doubles
363 every picosecond.  Note that the initial tilt factor must be non-zero
364 to use the {trate} option.
366 Note that shear strain is defined as the tilt factor divided by the
367 perpendicular box length.  The {erate} and {trate} styles control the
368 tilt factor, but assume the perpendicular box length remains constant.
369 If this is not the case (e.g. it changes due to another fix deform
370 parameter), then this effect on the shear strain is ignored.
372 The {wiggle} style oscillates the specified tilt factor sinusoidally
373 with the specified amplitude and period.  I.e. the tilt factor T as a
374 function of time is given by
376 T(t) = T0 + A sin(2*pi t/Tp) :pre
378 where T0 is its initial value.  If the amplitude A is a positive
379 number the tilt factor initially becomes more positive, then more
380 negative, etc.  If A is negative then the tilt factor initially
381 becomes more negative, then more positive, etc.  The amplitude can be
382 in lattice or box distance units.  See the discussion of the units
383 keyword below.
385 The {variable} style changes the specified tilt factor by evaluating a
386 variable, which presumably is a function of time.  The variable with
387 {name1} must be an "equal-style variable"_variable.html and should
388 calculate a change in tilt in units of distance.  Note that this
389 distance is in box units, not lattice units; see the discussion of the
390 {units} keyword below.  The formula associated with variable {name1}
391 can reference the current timestep.  Note that it should return the
392 "change" in tilt factor, not the absolute tilt factor.  This means it
393 should evaluate to 0.0 when invoked on the initial timestep of the run
394 following the definition of fix deform.
396 The variable {name2} must also be an "equal-style
397 variable"_variable.html and should calculate the rate of tilt change,
398 in units of distance/time, i.e. the time-derivative of the {name1}
399 variable.  This quantity is used internally by LAMMPS to reset atom
400 velocities when they cross periodic boundaries.  It is computed
401 internally for the other styles, but you must provide it when using an
402 arbitrary variable.
404 Here is an example of using the {variable} style to perform the same
405 box deformation as the {wiggle} style formula listed above, where we
406 assume that the current timestep = 0.
408 variable A equal 5.0
409 variable Tp equal 10.0
410 variable displace equal "v_A * sin(2*PI * step*dt/v_Tp)"
411 variable rate equal "2*PI*v_A/v_Tp * cos(2*PI * step*dt/v_Tp)"
412 fix 2 all deform 1 xy variable v_displace v_rate remap v :pre
414 :line
416 All of the tilt styles change the xy, xz, yz tilt factors during a
417 simulation.  In LAMMPS, tilt factors (xy,xz,yz) for triclinic boxes
418 are normally bounded by half the distance of the parallel box length.
419 See the discussion of the {flip} keyword below, to allow this bound to
420 be exceeded, if desired.
422 For example, if xlo = 2 and xhi = 12, then the x box length is 10 and
423 the xy tilt factor must be between -5 and 5.  Similarly, both xz and
424 yz must be between -(xhi-xlo)/2 and +(yhi-ylo)/2.  Note that this is
425 not a limitation, since if the maximum tilt factor is 5 (as in this
426 example), then configurations with tilt = ..., -15, -5, 5, 15, 25,
427 ... are all equivalent.
429 To obey this constraint and allow for large shear deformations to be
430 applied via the {xy}, {xz}, or {yz} parameters, the following
431 algorithm is used.  If {prd} is the associated parallel box length (10
432 in the example above), then if the tilt factor exceeds the accepted
433 range of -5 to 5 during the simulation, then the box is flipped to the
434 other limit (an equivalent box) and the simulation continues.  Thus
435 for this example, if the initial xy tilt factor was 0.0 and "xy final
436 100.0" was specified, then during the simulation the xy tilt factor
437 would increase from 0.0 to 5.0, the box would be flipped so that the
438 tilt factor becomes -5.0, the tilt factor would increase from -5.0 to
439 5.0, the box would be flipped again, etc.  The flip occurs 10 times
440 and the final tilt factor at the end of the simulation would be 0.0.
441 During each flip event, atoms are remapped into the new box in the
442 appropriate manner.
444 The one exception to this rule is if the 1st dimension in the tilt
445 factor (x for xy) is non-periodic.  In that case, the limits on the
446 tilt factor are not enforced, since flipping the box in that dimension
447 does not change the atom positions due to non-periodicity.  In this
448 mode, if you tilt the system to extreme angles, the simulation will
449 simply become inefficient due to the highly skewed simulation box.
451 :line
453 Each time the box size or shape is changed, the {remap} keyword
454 determines whether atom positions are remapped to the new box.  If
455 {remap} is set to {x} (the default), atoms in the fix group are
456 remapped; otherwise they are not.  Note that their velocities are not
457 changed, just their positions are altered.  If {remap} is set to {v},
458 then any atom in the fix group that crosses a periodic boundary will
459 have a delta added to its velocity equal to the difference in
460 velocities between the lo and hi boundaries.  Note that this velocity
461 difference can include tilt components, e.g. a delta in the x velocity
462 when an atom crosses the y periodic boundary.  If {remap} is set to
463 {none}, then neither of these remappings take place.
465 Conceptually, setting {remap} to {x} forces the atoms to deform via an
466 affine transformation that exactly matches the box deformation.  This
467 setting is typically appropriate for solids.  Note that though the
468 atoms are effectively "moving" with the box over time, it is not due
469 to their having a velocity that tracks the box change, but only due to
470 the remapping.  By contrast, setting {remap} to {v} is typically
471 appropriate for fluids, where you want the atoms to respond to the
472 change in box size/shape on their own and acquire a velocity that
473 matches the box change, so that their motion will naturally track the
474 box without explicit remapping of their coordinates.
476 NOTE: When non-equilibrium MD (NEMD) simulations are performed using
477 this fix, the option "remap v" should normally be used.  This is
478 because "fix nvt/sllod"_fix_nvt_sllod.html adjusts the atom positions
479 and velocities to induce a velocity profile that matches the changing
480 box size/shape.  Thus atom coordinates should NOT be remapped by fix
481 deform, but velocities SHOULD be when atoms cross periodic boundaries,
482 since that is consistent with maintaining the velocity profile already
483 created by fix nvt/sllod.  LAMMPS will warn you if the {remap} setting
484 is not consistent with fix nvt/sllod.
486 NOTE: For non-equilibrium MD (NEMD) simulations using "remap v" it is
487 usually desirable that the fluid (or flowing material, e.g. granular
488 particles) stream with a velocity profile consistent with the
489 deforming box.  As mentioned above, using a thermostat such as "fix
490 nvt/sllod"_fix_nvt_sllod.html or "fix lavgevin"_fix_langevin.html
491 (with a bias provided by "compute
492 temp/deform"_compute_temp_deform.html), will typically accomplish
493 that.  If you do not use a thermostat, then there is no driving force
494 pushing the atoms to flow in a manner consistent with the deforming
495 box.  E.g. for a shearing system the box deformation velocity may vary
496 from 0 at the bottom to 10 at the top of the box.  But the stream
497 velocity profile of the atoms may vary from -5 at the bottom to +5 at
498 the top.  You can monitor these effects using the "fix
499 ave/chunk"_fix_ave_chunk.html, "compute
500 temp/deform"_compute_temp_deform.html, and "compute
501 temp/profile"_compute_temp_profile.html commands.  One way to induce
502 atoms to stream consistent with the box deformation is to give them an
503 initial velocity profile, via the "velocity ramp"_velocity.html
504 command, that matches the box deformation rate.  This also typically
505 helps the system come to equilibrium more quickly, even if a
506 thermostat is used.
508 NOTE: If a "fix rigid"_fix_rigid.html is defined for rigid bodies, and
509 {remap} is set to {x}, then the center-of-mass coordinates of rigid
510 bodies will be remapped to the changing simulation box.  This will be
511 done regardless of whether atoms in the rigid bodies are in the fix
512 deform group or not.  The velocity of the centers of mass are not
513 remapped even if {remap} is set to {v}, since "fix
514 nvt/sllod"_fix_nvt_sllod.html does not currently do anything special
515 for rigid particles.  If you wish to perform a NEMD simulation of
516 rigid particles, you can either thermostat them independently or
517 include a background fluid and thermostat the fluid via "fix
518 nvt/sllod"_fix_nvt_sllod.html.
520 The {flip} keyword allows the tilt factors for a triclinic box to
521 exceed half the distance of the parallel box length, as discussed
522 above.  If the {flip} value is set to {yes}, the bound is enforced by
523 flipping the box when it is exceeded.  If the {flip} value is set to
524 {no}, the tilt will continue to change without flipping.  Note that if
525 you apply large deformations, this means the box shape can tilt
526 dramatically LAMMPS will run less efficiently, due to the large volume
527 of communication needed to acquire ghost atoms around a processor's
528 irregular-shaped sub-domain.  For extreme values of tilt, LAMMPS may
529 also lose atoms and generate an error.
531 The {units} keyword determines the meaning of the distance units used
532 to define various arguments.  A {box} value selects standard distance
533 units as defined by the "units"_units.html command, e.g. Angstroms for
534 units = real or metal.  A {lattice} value means the distance units are
535 in lattice spacings.  The "lattice"_lattice.html command must have
536 been previously used to define the lattice spacing.  Note that the
537 units choice also affects the {vel} style parameters since it is
538 defined in terms of distance/time.  Also note that the units keyword
539 does not affect the {variable} style.  You should use the {xlat},
540 {ylat}, {zlat} keywords of the "thermo_style"_thermo_style.html
541 command if you want to include lattice spacings in a variable formula.
543 :line
545 Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
546 functionally the same as the corresponding style without the suffix.
547 They have been optimized to run faster, depending on your available
548 hardware, as discussed in "Section 5"_Section_accelerate.html
549 of the manual.  The accelerated styles take the same arguments and
550 should produce the same results, except for round-off and precision
551 issues.
553 These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
554 USER-OMP and OPT packages, respectively.  They are only enabled if
555 LAMMPS was built with those packages.  See the "Making
556 LAMMPS"_Section_start.html#start_3 section for more info.
558 You can specify the accelerated styles explicitly in your input script
559 by including their suffix, or you can use the "-suffix command-line
560 switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
561 use the "suffix"_suffix.html command in your input script.
563 See "Section 5"_Section_accelerate.html of the manual for
564 more instructions on how to use the accelerated styles effectively.
566 [Restart, fix_modify, output, run start/stop, minimize info:]
568 No information about this fix is written to "binary restart
569 files"_restart.html.  None of the "fix_modify"_fix_modify.html options
570 are relevant to this fix.  No global or per-atom quantities are stored
571 by this fix for access by various "output
572 commands"_Section_howto.html#howto_15.
574 This fix can perform deformation over multiple runs, using the {start}
575 and {stop} keywords of the "run"_run.html command.  See the
576 "run"_run.html command for details of how to do this.
578 This fix is not invoked during "energy minimization"_minimize.html.
580 [Restrictions:]
582 You cannot apply x, y, or z deformations to a dimension that is
583 shrink-wrapped via the "boundary"_boundary.html comamnd.
585 You cannot apply xy, yz, or xz deformations to a 2nd dimension (y in
586 xy) that is shrink-wrapped via the "boundary"_boundary.html comamnd.
588 [Related commands:]
590 "change_box"_change_box.html
592 [Default:]
594 The option defaults are remap = x, flip = yes, and units = lattice.