git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@16053 f3b2605a-c512-4ea7-a41b...
[lammps.git] / doc / src / dump_image.txt
blobf5085846df1fc2d988af8379479fd6822c04e11d
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 dump image command :h3
10 dump movie command :h3
12 [Syntax:]
14 dump ID group-ID style N file color diameter keyword value ... :pre
16 ID = user-assigned name for the dump :ulb,l
17 group-ID = ID of the group of atoms to be imaged :l
18 style = {image} or {movie} = style of dump command (other styles {atom} or {cfg} or {dcd} or {xtc} or {xyz} or {local} or {custom} are discussed on the "dump"_dump.html doc page) :l
19 N = dump every this many timesteps :l
20 file = name of file to write image to :l
21 color = atom attribute that determines color of each atom :l
22 diameter = atom attribute that determines size of each atom :l
23 zero or more keyword/value pairs may be appended :l
24 keyword = {atom} or {adiam} or {bond} or {line} or {tri} or {body} or {fix} or {size} or {view} or {center} or {up} or {zoom} or {persp} or {box} or {axes} or {subbox} or {shiny} or {ssao} :l
25   {atom} = yes/no = do or do not draw atoms
26   {adiam} size = numeric value for atom diameter (distance units)
27   {bond} values = color width = color and width of bonds
28     color = {atom} or {type} or {none}
29     width = number or {atom} or {type} or {none}
30       number = numeric value for bond width (distance units)
31   {line} = color width
32     color = {type}
33     width = numeric value for line width (distance units)
34   {tri} = color tflag width
35     color = {type}
36     tflag = 1 for just triangle, 2 for just tri edges, 3 for both
37     width = numeric value for tringle edge width (distance units)
38   {body} = color bflag1 bflag2
39     color = {type}
40     bflag1,bflag2 = 2 numeric flags to affect how bodies are drawn
41   {fix} = fixID color fflag1 fflag2
42     fixID = ID of fix that generates objects to dray
43     color = {type}
44     fflag1,fflag2 = 2 numeric flags to affect how fix objects are drawn
45   {size} values = width height = size of images
46     width = width of image in # of pixels
47     height = height of image in # of pixels
48   {view} values = theta phi = view of simulation box
49     theta = view angle from +z axis (degrees)
50     phi = azimuthal view angle (degrees)
51     theta or phi can be a variable (see below)
52   {center} values = flag Cx Cy Cz = center point of image
53     flag = "s" for static, "d" for dynamic
54     Cx,Cy,Cz = center point of image as fraction of box dimension (0.5 = center of box)
55     Cx,Cy,Cz can be variables (see below)
56   {up} values = Ux Uy Uz = direction that is "up" in image
57     Ux,Uy,Uz = components of up vector
58     Ux,Uy,Uz can be variables (see below)
59   {zoom} value = zfactor = size that simulation box appears in image
60     zfactor = scale image size by factor > 1 to enlarge, factor < 1 to shrink
61     zfactor can be a variable (see below)
62   {persp} value = pfactor = amount of "perspective" in image
63     pfactor = amount of perspective (0 = none, < 1 = some, > 1 = highly skewed)
64     pfactor can be a variable (see below)
65   {box} values = yes/no diam = draw outline of simulation box
66     yes/no = do or do not draw simulation box lines
67     diam = diameter of box lines as fraction of shortest box length
68   {axes} values = yes/no length diam = draw xyz axes
69     yes/no = do or do not draw xyz axes lines next to simulation box
70     length = length of axes lines as fraction of respective box lengths
71     diam = diameter of axes lines as fraction of shortest box length
72   {subbox} values = yes/no diam = draw outline of processor sub-domains
73     yes/no = do or do not draw sub-domain lines
74     diam = diameter of sub-domain lines as fraction of shortest box length
75   {shiny} value = sfactor = shinyness of spheres and cylinders
76     sfactor = shinyness of spheres and cylinders from 0.0 to 1.0
77   {ssao} value = yes/no seed dfactor = SSAO depth shading
78     yes/no = turn depth shading on/off
79     seed = random # seed (positive integer)
80     dfactor = strength of shading from 0.0 to 1.0 :pre
81 :ule
83 [Examples:]
85 dump d0 all image 100 dump.*.jpg type type
86 dump d1 mobile image 500 snap.*.png element element ssao yes 4539 0.6
87 dump d2 all image 200 img-*.ppm type type zoom 2.5 adiam 1.5 size 1280 720
88 dump m0 all movie 1000 movie.mpg type type size 640 480
89 dump m1 all movie 1000 movie.avi type type size 640 480
90 dump m2 all movie 100 movie.m4v type type zoom 1.8 adiam v_value size 1280 720 :pre
92 [Description:]
94 Dump a high-quality rendered image of the atom configuration every N
95 timesteps and save the images either as a sequence of JPEG or PNG or
96 PPM files, or as a single movie file.  The options for this command as
97 well as the "dump_modify"_dump_modify.html command control what is
98 included in the image or movie and how it appears.  A series of such
99 images can easily be manually converted into an animated movie of your
100 simulation or the process can be automated without writing the
101 intermediate files using the dump movie style; see further details
102 below.  Other dump styles store snapshots of numerical data asociated
103 with atoms in various formats, as discussed on the "dump"_dump.html
104 doc page.
106 Note that a set of images or a movie can be made after a simulation
107 has been run, using the "rerun"_rerun.html command to read snapshots
108 from an existing dump file, and using these dump commands in the rerun
109 script to generate the images/movie.
111 Here are two sample images, rendered as 1024x1024 JPEG files.  Click
112 to see the full-size images:
114 <DIV ALIGN=center>
116 :image(JPG/dump1_small.jpg,JPG/dump1.jpg)
117 :image(JPG/dump2_small.jpg,JPG/dump2.jpg)
119 </DIV>
121 Only atoms in the specified group are rendered in the image.  The
122 "dump_modify region and thresh"_dump_modify.html commands can also
123 alter what atoms are included in the image.\
125 The filename suffix determines whether a JPEG, PNG, or PPM file is
126 created with the {image} dump style.  If the suffix is ".jpg" or
127 ".jpeg", then a JPEG format file is created, if the suffix is ".png",
128 then a PNG format is created, else a PPM (aka NETPBM) format file is
129 created.  The JPEG and PNG files are binary; PPM has a text mode
130 header followed by binary data. JPEG images have lossy compression;
131 PNG has lossless compression; and PPM files are uncompressed but can
132 be compressed with gzip, if LAMMPS has been compiled with
133 -DLAMMPS_GZIP and a ".gz" suffix is used.
135 Similarly, the format of the resulting movie is chosen with the
136 {movie} dump style. This is handled by the underlying FFmpeg converter
137 and thus details have to be looked up in the FFmpeg documentation.
138 Typical examples are: .avi, .mpg, .m4v, .mp4, .mkv, .flv, .mov, .gif
139 Additional settings of the movie compression like bitrate and
140 framerate can be set using the "dump_modify"_dump_modify.html command.
142 To write out JPEG and PNG format files, you must build LAMMPS with
143 support for the corresponding JPEG or PNG library. To convert images
144 into movies, LAMMPS has to be compiled with the -DLAMMPS_FFMPEG
145 flag. See "this section"_Section_start.html#start_2_4 of the manual
146 for instructions on how to do this.
148 NOTE: Because periodic boundary conditions are enforced only on
149 timesteps when neighbor lists are rebuilt, the coordinates of an atom
150 in the image may be slightly outside the simulation box.
152 :line
154 Dumps are performed on timesteps that are a multiple of N (including
155 timestep 0) and on the last timestep of a minimization if the
156 minimization converges.  Note that this means a dump will not be
157 performed on the initial timestep after the dump command is invoked,
158 if the current timestep is not a multiple of N.  This behavior can be
159 changed via the "dump_modify first"_dump_modify.html command, which
160 can be useful if the dump command is invoked after a minimization
161 ended on an arbitrary timestep.  N can be changed between runs by
162 using the "dump_modify every"_dump_modify.html command.
164 Dump {image} filenames must contain a wildcard character "*", so that
165 one image file per snapshot is written.  The "*" character is replaced
166 with the timestep value.  For example, tmp.dump.*.jpg becomes
167 tmp.dump.0.jpg, tmp.dump.10000.jpg, tmp.dump.20000.jpg, etc.  Note
168 that the "dump_modify pad"_dump_modify.html command can be used to
169 insure all timestep numbers are the same length (e.g. 00010), which
170 can make it easier to convert a series of images into a movie in the
171 correct ordering.
173 Dump {movie} filenames on the other hand, must not have any wildcard
174 character since only one file combining all images into a single
175 movie will be written by the movie encoder.
177 :line
179 The {color} and {diameter} settings determine the color and size of
180 atoms rendered in the image.  They can be any atom attribute defined
181 for the "dump custom"_dump.html command, including {type} and
182 {element}.  This includes per-atom quantities calculated by a
183 "compute"_compute.html, "fix"_fix.html, or "variable"_variable.html,
184 which are prefixed by "c_", "f_", or "v_" respectively.  Note that the
185 {diameter} setting can be overridden with a numeric value applied to
186 all atoms by the optional {adiam} keyword.
188 If {type} is specified for the {color} setting, then the color of each
189 atom is determined by its atom type.  By default the mapping of types
190 to colors is as follows:
192 type 1 = red
193 type 2 = green
194 type 3 = blue
195 type 4 = yellow
196 type 5 = aqua
197 type 6 = cyan :ul
199 and repeats itself for types > 6.  This mapping can be changed by the
200 "dump_modify acolor"_dump_modify.html command.
202 If {type} is specified for the {diameter} setting then the diameter of
203 each atom is determined by its atom type.  By default all types have
204 diameter 1.0.  This mapping can be changed by the "dump_modify
205 adiam"_dump_modify.html command.
207 If {element} is specified for the {color} and/or {diameter} setting,
208 then the color and/or diameter of each atom is determined by which
209 element it is, which in turn is specified by the element-to-type
210 mapping specified by the "dump_modify element" command.  By default
211 every atom type is C (carbon).  Every element has a color and diameter
212 associated with it, which is the same as the colors and sizes used by
213 the "AtomEye"_atomeye visualization package.
215 :link(atomeye,http://mt.seas.upenn.edu/Archive/Graphics/A)
217 If other atom attributes are used for the {color} or {diameter}
218 settings, they are interpreted in the following way.
220 If "vx", for example, is used as the {color} setting, then the color
221 of the atom will depend on the x-component of its velocity.  The
222 association of a per-atom value with a specific color is determined by
223 a "color map", which can be specified via the
224 "dump_modify"_dump_modify.html command.  The basic idea is that the
225 atom-attribute will be within a range of values, and every value
226 within the range is mapped to a specific color.  Depending on how the
227 color map is defined, that mapping can take place via interpolation so
228 that a value of -3.2 is halfway between "red" and "blue", or
229 discretely so that the value of -3.2 is "orange".
231 If "vx", for example, is used as the {diameter} setting, then the atom
232 will be rendered using the x-component of its velocity as the
233 diameter.  If the per-atom value <= 0.0, them the atom will not be
234 drawn.  Note that finite-size spherical particles, as defined by
235 "atom_style sphere"_atom_style.html define a per-particle radius or
236 diameter, which can be used as the {diameter} setting.
238 :line
240 The various kewords listed above control how the image is rendered.
241 As listed below, all of the keywords have defaults, most of which you
242 will likely not need to change.  The "dump modify"_dump_modify.html
243 also has options specific to the dump image style, particularly for
244 assigning colors to atoms, bonds, and other image features.
246 :line
248 The {atom} keyword allow you to turn off the drawing of all atoms, if
249 the specified value is {no}.  Note that this will not turn off the
250 drawing of particles that are represented as lines, triangles, or
251 bodies, as discussed below.  These particles can be drawn separately
252 if the {line}, {tri}, or {body} keywords are used.
254 The {adiam} keyword allows you to override the {diameter} setting to
255 set a single numeric {size}.  All atoms will be drawn with that
256 diameter, e.g. 1.5, which is in whatever distance "units"_units.html
257 the input script defines, e.g. Angstroms.
259 :line
261 The {bond} keyword allows to you to alter how bonds are drawn.  A bond
262 is only drawn if both atoms in the bond are being drawn due to being
263 in the specified group and due to other selection criteria
264 (e.g. region, threshhold settings of the
265 "dump_modify"_dump_modify.html command).  By default, bonds are drawn
266 if they are defined in the input data file as read by the
267 "read_data"_read_data.html command.  Using {none} for both the bond
268 {color} and {width} value will turn off the drawing of all bonds.
270 If {atom} is specified for the bond {color} value, then each bond is
271 drawn in 2 halves, with the color of each half being the color of the
272 atom at that end of the bond.
274 If {type} is specified for the {color} value, then the color of each
275 bond is determined by its bond type.  By default the mapping of bond
276 types to colors is as follows:
278 type 1 = red
279 type 2 = green
280 type 3 = blue
281 type 4 = yellow
282 type 5 = aqua
283 type 6 = cyan :ul
285 and repeats itself for bond types > 6.  This mapping can be changed by
286 the "dump_modify bcolor"_dump_modify.html command.
288 The bond {width} value can be a numeric value or {atom} or {type} (or
289 {none} as indicated above).
291 If a numeric value is specified, then all bonds will be drawn as
292 cylinders with that diameter, e.g. 1.0, which is in whatever distance
293 "units"_units.html the input script defines, e.g. Angstroms.
295 If {atom} is specified for the {width} value, then each bond
296 will be drawn with a width corresponding to the minimum diameter
297 of the 2 atoms in the bond.
299 If {type} is specified for the {width} value then the diameter of each
300 bond is determined by its bond type.  By default all types have
301 diameter 0.5.  This mapping can be changed by the "dump_modify
302 bdiam"_dump_modify.html command.
304 :line
306 The {line} keyword can be used when "atom_style line"_atom_style.html
307 is used to define particles as line segments, and will draw them as
308 lines.  If this keyword is not used, such particles will be drawn as
309 spheres, the same as if they were regular atoms.  The only setting
310 currently allowed for the {color} value is {type}, which will color
311 the lines according to the atom type of the particle.  By default the
312 mapping of types to colors is as follows:
314 type 1 = red
315 type 2 = green
316 type 3 = blue
317 type 4 = yellow
318 type 5 = aqua
319 type 6 = cyan :ul
321 and repeats itself for types > 6.  There is not yet an option to
322 change this via the "dump_modify"_dump_modify.html command.
324 The line {width} can only be a numeric value, which specifies that all
325 lines will be drawn as cylinders with that diameter, e.g. 1.0, which
326 is in whatever distance "units"_units.html the input script defines,
327 e.g. Angstroms.
329 :line
331 The {tri} keyword can be used when "atom_style tri"_atom_style.html is
332 used to define particles as triangles, and will draw them as triangles
333 or edges (3 lines) or both, depending on the setting for {tflag}.  If
334 edges are drawn, the {width} setting determines the diameters of the
335 line segments.  If this keyword is not used, triangle particles will
336 be drawn as spheres, the same as if they were regular atoms.  The only
337 setting currently allowed for the {color} value is {type}, which will
338 color the triangles according to the atom type of the particle.  By
339 default the mapping of types to colors is as follows:
341 type 1 = red
342 type 2 = green
343 type 3 = blue
344 type 4 = yellow
345 type 5 = aqua
346 type 6 = cyan :ul
348 and repeats itself for types > 6.  There is not yet an option to
349 change this via the "dump_modify"_dump_modify.html command.
351 :line
353 The {body} keyword can be used when "atom_style body"_atom_style.html
354 is used to define body particles with internal state
355 (e.g. sub-particles), and will drawn them in a manner specific to the
356 body style.  If this keyword is not used, such particles will be drawn
357 as spheres, the same as if they were regular atoms.
359 The "body"_body.html doc page descibes the body styles LAMMPS
360 currently supports, and provides more details as to the kind of body
361 particles they represent and how they are drawn by this dump image
362 command.  For all the body styles, individual atoms can be either a
363 body particle or a usual point (non-body) particle.  Non-body
364 particles will be drawn the same way they would be as a regular atom.
365 The {bflag1} and {bflag2} settings are numerical values which are
366 passed to the body style to affect how the drawing of a body particle
367 is done.  See the "body"_body.html doc page for a description of what
368 these parameters mean for each body style.
370 The only setting currently allowed for the {color} value is {type},
371 which will color the body particles according to the atom type of the
372 particle.  By default the mapping of types to colors is as follows:
374 type 1 = red
375 type 2 = green
376 type 3 = blue
377 type 4 = yellow
378 type 5 = aqua
379 type 6 = cyan :ul
381 and repeats itself for types > 6.  There is not yet an option to
382 change this via the "dump_modify"_dump_modify.html command.
384 :line
386 The {fix} keyword can be used with a "fix"_fix.html that produces
387 objects to be drawn.  An example is the "fix
388 surface/global"_fix_surface_global.html command which can draw lines
389 or triangles for 2d/3d simulations.
391 NOTE: Aug 2016 - The fix surface/global command is not yet added to
392 LAMMPS.
394 The {fflag1} and {fflag2} settings are numerical values which are
395 passed to the fix to affect how the drawing of its objects is done.
396 See the individual fix doc page for a description of what these
397 parameters mean for a particular fix.
399 The only setting currently allowed for the {color} value is {type},
400 which will color the fix objects according to their type.  By default
401 the mapping of types to colors is as follows:
403 type 1 = red
404 type 2 = green
405 type 3 = blue
406 type 4 = yellow
407 type 5 = aqua
408 type 6 = cyan :ul
410 and repeats itself for types > 6.  There is not yet an option to
411 change this via the "dump_modify"_dump_modify.html command.
413 :line
415 The {size} keyword sets the width and height of the created images,
416 i.e. the number of pixels in each direction.
418 :line
420 The {view}, {center}, {up}, {zoom}, and {persp} values determine how
421 3d simulation space is mapped to the 2d plane of the image.  Basically
422 they control how the simulation box appears in the image.
424 All of the {view}, {center}, {up}, {zoom}, and {persp} values can be
425 specified as numeric quantities, whose meaning is explained below.
426 Any of them can also be specified as an "equal-style
427 variable"_variable.html, by using v_name as the value, where "name" is
428 the variable name.  In this case the variable will be evaluated on the
429 timestep each image is created to create a new value.  If the
430 equal-style variable is time-dependent, this is a means of changing
431 the way the simulation box appears from image to image, effectively
432 doing a pan or fly-by view of your simulation.
434 The {view} keyword determines the viewpoint from which the simulation
435 box is viewed, looking towards the {center} point.  The {theta} value
436 is the vertical angle from the +z axis, and must be an angle from 0 to
437 180 degrees.  The {phi} value is an azimuthal angle around the z axis
438 and can be positive or negative.  A value of 0.0 is a view along the
439 +x axis, towards the {center} point.  If {theta} or {phi} are
440 specified via variables, then the variable values should be in
441 degrees.
443 The {center} keyword determines the point in simulation space that
444 will be at the center of the image.  {Cx}, {Cy}, and {Cz} are
445 speficied as fractions of the box dimensions, so that (0.5,0.5,0.5) is
446 the center of the simulation box.  These values do not have to be
447 between 0.0 and 1.0, if you want the simulation box to be offset from
448 the center of the image.  Note, however, that if you choose strange
449 values for {Cx}, {Cy}, or {Cz} you may get a blank image.  Internally,
450 {Cx}, {Cy}, and {Cz} are converted into a point in simulation space.
451 If {flag} is set to "s" for static, then this conversion is done once,
452 at the time the dump command is issued.  If {flag} is set to "d" for
453 dynamic then the conversion is performed every time a new image is
454 created.  If the box size or shape is changing, this will adjust the
455 center point in simulation space.
457 The {up} keyword determines what direction in simulation space will be
458 "up" in the image.  Internally it is stored as a vector that is in the
459 plane perpendicular to the view vector implied by the {theta} and
460 {pni} values, and which is also in the plane defined by the view
461 vector and user-specified up vector.  Thus this internal vector is
462 computed from the user-specified {up} vector as
464 up_internal = view cross (up cross view) :pre
466 This means the only restriction on the specified {up} vector is that
467 it cannot be parallel to the {view} vector, implied by the {theta} and
468 {phi} values.
470 The {zoom} keyword scales the size of the simulation box as it appears
471 in the image.  The default {zfactor} value of 1 should display an
472 image mostly filled by the atoms in the simulation box.  A {zfactor} >
473 1 will make the simulation box larger; a {zfactor} < 1 will make it
474 smaller.  {Zfactor} must be a value > 0.0.
476 The {persp} keyword determines how much depth perspective is present
477 in the image.  Depth perspective makes lines that are parallel in
478 simulation space appear non-parallel in the image.  A {pfactor} value
479 of 0.0 means that parallel lines will meet at infininty (1.0/pfactor),
480 which is an orthographic rendering with no persepctive.  A {pfactor}
481 value between 0.0 and 1.0 will introduce more perspective.  A {pfactor}
482 value > 1 will create a highly skewed image with a large amount of
483 perspective.
485 NOTE: The {persp} keyword is not yet supported as an option.
487 :line
489 The {box} keyword determines if and how the simulation box boundaries
490 are rendered as thin cylinders in the image.  If {no} is set, then the
491 box boundaries are not drawn and the {diam} setting is ignored.  If
492 {yes} is set, the 12 edges of the box are drawn, with a diameter that
493 is a fraction of the shortest box length in x,y,z (for 3d) or x,y (for
494 2d).  The color of the box boundaries can be set with the "dump_modify
495 boxcolor"_dump_modify.html command.
497 The {axes} keyword determines if and how the coordinate axes are
498 rendered as thin cylinders in the image.  If {no} is set, then the
499 axes are not drawn and the {length} and {diam} settings are ignored.
500 If {yes} is set, 3 thin cylinders are drawn to represent the x,y,z
501 axes in colors red,green,blue.  The origin of these cylinders will be
502 offset from the lower left corner of the box by 10%.  The {length}
503 setting determines how long the cylinders will be as a fraction of the
504 respective box lengths.  The {diam} setting determines their thickness
505 as a fraction of the shortest box length in x,y,z (for 3d) or x,y (for
506 2d).
508 The {subbox} keyword determines if and how processor sub-domain
509 boundaries are rendered as thin cylinders in the image.  If {no} is
510 set (default), then the sub-domain boundaries are not drawn and the
511 {diam} setting is ignored.  If {yes} is set, the 12 edges of each
512 processor sub-domain are drawn, with a diameter that is a fraction of
513 the shortest box length in x,y,z (for 3d) or x,y (for 2d).  The color
514 of the sub-domain boundaries can be set with the "dump_modify
515 boxcolor"_dump_modify.html command.
517 :line
519 The {shiny} keyword determines how shiny the objects rendered in the
520 image will appear.  The {sfactor} value must be a value 0.0 <=
521 {sfactor} <= 1.0, where {sfactor} = 1 is a highly reflective surface
522 and {sfactor} = 0 is a rough non-shiny surface.
524 The {ssao} keyword turns on/off a screen space ambient occlusion
525 (SSAO) model for depth shading.  If {yes} is set, then atoms further
526 away from the viewer are darkened via a randomized process, which is
527 perceived as depth.  The calculation of this effect can increase the
528 cost of computing the image by roughly 2x.  The strength of the effect
529 can be scaled by the {dfactor} parameter.  If {no} is set, no depth
530 shading is performed.
532 :line
534 A series of JPEG, PNG, or PPM images can be converted into a movie
535 file and then played as a movie using commonly available tools. Using
536 dump style {movie} automates this step and avoids the intermediate
537 step of writing (many) image snapshot file. But LAMMPS has to be
538 compiled with -DLAMMPS_FFMPEG and an FFmpeg executable have to be
539 installed.
541 To manually convert JPEG, PNG or PPM files into an animated GIF or
542 MPEG or other movie file you can use:
544 a) Use the ImageMagick convert program. :ulb,l
546 % convert *.jpg foo.gif
547 % convert -loop 1 *.ppm foo.mpg :pre
549 Animated GIF files from ImageMagick are unoptimized. You can use a
550 program like gifsicle to optimize and massively shrink them.
551 MPEG files created by ImageMagick are in MPEG-1 format with rather
552 inefficient compression and low quality.
554 b) Use QuickTime. :l
556 Select "Open Image Sequence" under the File menu Load the images into
557 QuickTime to animate them Select "Export" under the File menu Save the
558 movie as a QuickTime movie (*.mov) or in another format.  QuickTime
559 can generate very high quality and efficiently compressed movie
560 files. Some of the supported formats require to buy a license and some
561 are not readable on all platforms until specific runtime libraries are
562 installed.
564 c) Use FFmpeg  :l
566 FFmpeg is a command line tool that is available on many platforms and
567 allows extremely flexible encoding and decoding of movies.
569 cat snap.*.jpg | ffmpeg -y -f image2pipe -c:v mjpeg -i - -b:v 2000k movie.m4v
570 cat snap.*.ppm | ffmpeg -y -f image2pipe -c:v ppm -i - -b:v 2400k movie.avi :pre
572 Frontends for FFmpeg exist for multiple platforms. For more
573 information see the "FFmpeg homepage"_http://www.ffmpeg.org/
575 :ule
577 :line
579 Play the movie:
581 a) Use your browser to view an animated GIF movie. :ulb,l
583 Select "Open File" under the File menu
584 Load the animated GIF file
586 b) Use the freely available mplayer or ffplay tool to view a
587 movie. Both are available for multiple OSes and support a large
588 variety of file formats and decoders. :l
590 % mplayer foo.mpg
591 % ffplay bar.avi :pre
593 c) Use the "Pizza.py"_http://www.sandia.gov/~sjplimp/pizza.html
594 "animate tool"_http://www.sandia.gov/~sjplimp/pizza/doc/animate.html,
595 which works directly on a series of image files. :l
597 a = animate("foo*.jpg") :pre
599 d) QuickTime and other Windows- or MacOS-based media players can
600 obviously play movie files directly. Similarly for corresponding tools
601 bundled with Linux desktop environments.  However, due to licensing
602 issues with some file formats, the formats may require installing
603 additional libraries, purchasing a license, or may not be
604 supported. :l
605 :ule
607 :line
609 See "Section 10"_Section_modify.html of the manual for information
610 on how to add new compute and fix styles to LAMMPS to calculate
611 per-atom quantities which could then be output into dump files.
613 :line
615 [Restrictions:]
617 To write JPEG images, you must use the -DLAMMPS_JPEG switch when
618 building LAMMPS and link with a JPEG library. To write PNG images, you
619 must use the -DLAMMPS_PNG switch when building LAMMPS and link with a
620 PNG library.
622 To write {movie} dumps, you must use the -DLAMMPS_FFMPEG switch when
623 building LAMMPS and have the FFmpeg executable available on the
624 machine where LAMMPS is being run.  Typically it's name is lowercase,
625 i.e. ffmpeg.
627 See the "Making LAMMPS"_Section_start.html#start_2_4 section of the
628 documentation for details on how to compile with optional switches.
630 Note that since FFmpeg is run as an external program via a pipe,
631 LAMMPS has limited control over its execution and no knowledge about
632 errors and warnings printed by it. Those warnings and error messages
633 will be printed to the screen only. Due to the way image data is
634 communicated to FFmpeg, it will often print the message
636 pipe:: Input/output error :pre
638 which can be safely ignored. Other warnings
639 and errors have to be addressed according to the FFmpeg documentation.
640 One known issue is that certain movie file formats (e.g. MPEG level 1
641 and 2 format streams) have video bandwith limits that can be crossed
642 when rendering too large of image sizes. Typical warnings look like
643 this:
645 \[mpeg @ 0x98b5e0\] packet too large, ignoring buffer limits to mux it
646 \[mpeg @ 0x98b5e0\] buffer underflow st=0 bufi=281407 size=285018
647 \[mpeg @ 0x98b5e0\] buffer underflow st=0 bufi=283448 size=285018 :pre
649 In this case it is recommended to either reduce the size of the image
650 or encode in a different format that is also supported by your copy of
651 FFmpeg, and which does not have this limitation (e.g. .avi, .mkv,
652 mp4).
655 [Related commands:]
657 "dump"_dump.html, "dump_modify"_dump_modify.html, "undump"_undump.html
659 [Default:]
661 The defaults for the keywords are as follows:
663 adiam = not specified (use diameter setting)
664 atom = yes
665 bond = none none (if no bonds in system)
666 bond = atom 0.5 (if bonds in system)
667 size = 512 512
668 view = 60 30 (for 3d)
669 view = 0 0 (for 2d)
670 center = s 0.5 0.5 0.5
671 up = 0 0 1 (for 3d)
672 up = 0 1 0 (for 2d)
673 zoom = 1.0
674 persp = 0.0
675 box = yes 0.02
676 axes = no 0.0 0.0
677 subbox no 0.0
678 shiny = 1.0
679 ssao = no :ul