This page provides documentation and additional files to download for use with the LAMMPS Shell. The downloads are especially aimed at users that have installed LAMMPS on Windows 10 through Microsoft Store, since those are lacking those files. The alternative would be to download "complete" installer packages, however those are not cryptographically signed. Those packages the only option when you want to use an MPI parallel version.
Please see the online version of the LAMMPS manual for documentation of the LAMMPS software itself.
The following archives are available for download:
The LAMMPS Shell, lammps-shell
is a
program that functions very similar to the regular LAMMPS executable but
has several modifications and additions that make it more powerful for
interactive sessions, i.e. where you type LAMMPS commands from the
prompt instead of reading them from a file.
timer
command documentation).These enhancements makes the LAMMPS shell an attractive choice for interactive LAMMPS sessions in graphical desktop environments (e.g. Gnome, KDE, Cinnamon, XFCE, Windows).
When writing commands interactively at the shell prompt, you can hit the TAB key at any time to try and complete the text. This completion is context aware and will expand any first word only to commands available in that executable.
pair_style
command).compute
, fix
, or dump
commands it will also expand only to already defined groups for
the "group-ID" keyword.compute_modify
,
fix_modify
, or dump_modify
it will expand
to known compute/fix/dump IDs only.When typing commands, command line editing similar to what BASH provides is available. Thus it is possible to move around the currently line and perform various cut and insert and edit operations. Previous commands can be retrieved by scrolling up (and down) or searching (e.g. with CTRL-r).
Also history expansion through using the exclamation mark "!"
can be performed. Examples: "!!" will be replaced with the previous
command, "!-2" will repeat the command before that, "!30" will be
replaced with event number 30 in the command history list, and
"!run" with the last command line that started with run
. Adding
a ":p" to such a history expansion will result that the expansion is
printed and added to the history list, but NOT executed.
On exit the LAMMPS shell will write the history list to a file
.lammps_history
in the current working directory. If such a
file exists when the LAMMPS shell is launched it will be read to
populate the history list.
This is realized via the readline library and can thus be customized
with an .inputrc
file in the home directory. For application
specific customization, the LAMMPS shell uses the name "lammps-shell".
For more information about using and customizing an application using
readline, please see the available documentation at:
https://www.gnu.org/s/readline/#Documentation
The following commands are added to the LAMMPS shell on top of the regular LAMMPS commands:
help (or ?) print a brief help message history display the current command history list clear_history wipe out the current command history list save_history <range> <file> write commands from the history to file. The range is given as <from>-<to>, where <from> and <to> may be empty. Example: save_history 100- in.recent source <file> read commands from file (same as "include") pwd print current working directory cd <directory> change current working directory (same as pwd if no directory) mem print current and maximum memory usage |<command> execute <command> as a shell command and return to the command prompt exit exit the LAMMPS shell cleanly (unlike the "quit" command)
Please note that some known shell operations are implemented in the LAMMPS
shell
command in a platform neutral fashion, while using the "|"
character will always pass the following text to the operating system's shell
command.
The behavior of the readline functionality can be customized in the
${HOME}/.inputrc
file. This can be used to alter the default
settings or change the key-bindings. The LAMMPS Shell sets the
application name lammps-shell
, so settings can be either applied
globally or only for the LAMMPS shell by bracketing them between
$if lammps-shell # disable "beep" or "screen flash" set bell-style none # bind the "Insert" key to toggle overwrite mode "\e[2~": overwrite-mode $endif
More details about this are in the readline documentation.
Adding set expand-tilde on
to ${HOME}/.inputrc
is recommended as
this will change the filename expansion behavior to replace any text
starting with "~" by the full path to the corresponding user's home
directory. While the expansion of filenames will happen on all
arguments where the context is not known (e.g. ~/compile/lamm<TAB>
will expand to ~/compile/lammps/
), it will not replace the tilde by
default. But since LAMMPS does not do tilde expansion itself (unlike a
shell), this will result in errors. Instead the tilde-expression should
be expanded into a valid path, where the plain "~/" stands for the
current user's home directory and "~someuser/" stands for
"/home/someuser" or whatever the full path to that user's home directory
is.
Since the LAMMPS shell (unlike the regular LAMMPS executable) does not
exit when an input file is passed on the command line with the "-in" or
"-i" flag (the behavior is like for python -i <filename>
), it makes
the LAMMPS shell suitable for associating it with input files based on
their filename extension (e.g. ".lmp"). Since lammps-shell
is a
console application, you have to run it inside a terminal program with a
command line like this:
xterm -title "LAMMPS Shell" -e /path/to/lammps-shell -i in.file.lmp
When experimenting with commands to interactively to figure out a
suitable choice of settings or simply the correct syntax, you may want
to record part of your commands to a file for later use. This can be
done with the save_history
commands, which allows to selectively
write a section of the command history to a file (Example:
save_history 25-30 in.run
). This file can be further edited
(Example: |vim in.run
) and then the file read back in and tried out
(Example: source in.run
). If the input also creates a system box,
you first need to use the clear
command command.
Last modified: Sat Oct 17 02:33:02 UTC 2020 by akohlmey