Compare commits

..

195 Commits

Author SHA1 Message Date
738f155cc4 Merge pull request #1777 from akohlmey/next_patch_release
Step version strings for next patch release
2019-11-20 12:04:10 -05:00
ae46503b73 Merge pull request #1782 from akohlmey/last-minute-fixes
Last minute bugfix for the upcoming patch release
2019-11-20 12:03:32 -05:00
6b3421c966 silence compiler warning 2019-11-19 17:23:03 -05:00
3525c13653 need to make certain, that cvflag_atom is always initialized 2019-11-19 16:36:09 -05:00
8f3680039b Merge pull request #1704 from donatas-surblys/many-body-atomic-stress-rev
Revised implementation of a new atomic stress definition for correct computation of heat flux with many-body interactions
2019-11-19 15:53:40 -05:00
5435d19a7c update compute command lists for added compute centroid/stress/atom 2019-11-19 13:48:39 -05:00
2e31086094 Merge branch 'master' into many-body-atomic-stress-rev 2019-11-19 13:27:52 -05:00
39a26e6c35 Merge pull request #1769 from akohlmey/collected-small-fixes
Collected small fixes for the next patch release
2019-11-18 11:33:12 -05:00
fbf280f6a3 Merge pull request #1775 from rbberger/doc_updates
Update bond docs
2019-11-18 11:32:07 -05:00
2e24d0ab26 step version strings for next patch release 2019-11-18 10:38:42 -05:00
19b265f845 Update CMake-based doc build 2019-11-16 23:57:12 -05:00
3ff3621efa Fix pdf build 2019-11-16 23:17:08 -05:00
d6b1e302f2 Update docs: bond_hybrid 2019-11-16 22:59:34 -05:00
ff9f93bbf6 Update docs: bond_table 2019-11-16 22:51:46 -05:00
1b4e84de94 Update docs: bond_none 2019-11-16 22:46:53 -05:00
18a86a90ef Update docs: bond_zero 2019-11-16 22:44:28 -05:00
2a900f85aa Update docs: bond_style 2019-11-16 22:40:33 -05:00
c5c7e6953c Update docs: bond_write 2019-11-16 22:35:06 -05:00
9780fd3146 Update docs: bond_coeff 2019-11-16 22:30:09 -05:00
d13ec0d098 Update docs: bond_quartic 2019-11-16 22:27:08 -05:00
2150415888 Update docs: bond_oxdna 2019-11-16 22:18:22 -05:00
48485f1e2f Update docs: bond_nonlinear 2019-11-16 22:14:15 -05:00
35181a66d0 Update docs: bond_morse 2019-11-16 22:08:33 -05:00
64c31b377e Update docs: bond_mm3 2019-11-16 19:59:59 -05:00
7aa74ac250 Update docs: bond_harmonic_shift_cut 2019-11-16 19:53:38 -05:00
fed5d07aa7 Update docs: bond_harmonic_shift 2019-11-16 19:36:17 -05:00
41c0d69050 Update docs: pair_list 2019-11-16 19:28:20 -05:00
4a1e9d9483 Update docs: bond_harmonic 2019-11-16 19:19:57 -05:00
5760de0587 Update docs: bond_gromos 2019-11-16 19:10:25 -05:00
a3b3b761ef Update docs: bond_fene_expand 2019-11-16 19:07:16 -05:00
5f89fde6bc Update docs: bond_fene 2019-11-16 18:59:49 -05:00
98bd975e90 Update docs: bond_class2 2019-11-16 18:53:01 -05:00
a1d226f26e Update docs: atom_style 2019-11-16 18:42:32 -05:00
4b6265ae40 Update docs: atom_modify 2019-11-16 18:40:26 -05:00
4889488412 rename count_embed to numforce and move the location where numforce is set to 0 2019-11-15 19:49:30 -05:00
9a43229c83 disable single function for KOKKOS eam styles, since the required data is not available 2019-11-15 19:48:58 -05:00
b61fb73677 Merge branch 'master' into collected-small-fixes
# Conflicts:
#	doc/README
2019-11-15 16:44:47 -05:00
2e6b19ea5f Merge pull request #1770 from rbberger/doc_math_changes
Update angle docs
2019-11-15 16:27:36 -05:00
95de27d8d1 correct false positives to not have non-ASCII characters 2019-11-15 14:31:33 -05:00
08044dcd35 update README for "make pdf" and list dependencies 2019-11-15 14:21:44 -05:00
e287cd975b update README 2019-11-15 14:10:33 -05:00
3d106c7d47 replace non-ascii character 2019-11-15 14:09:59 -05:00
334a74830d Fix equations 2019-11-15 12:48:43 -05:00
7e58920fe3 move developer's guide tex sources back to src/Developer 2019-11-15 12:37:46 -05:00
71a4755a8e Update docs: angle_table 2019-11-15 11:48:00 -05:00
10f98e3f10 Update docs: angle_none 2019-11-15 11:42:02 -05:00
cdd56cd08f Update docs: angle_style 2019-11-15 11:22:25 -05:00
fb64068fbc Update docs: angle_coeff 2019-11-15 11:16:47 -05:00
e017e7d447 Update docs: angle_zero 2019-11-15 11:13:07 -05:00
a20a27880d Update docs: angle_sdk 2019-11-15 11:05:23 -05:00
5d6137fd69 Update docs: angle_quartic 2019-11-15 10:55:06 -05:00
ec052ea99a Update docs: angle_mm3 2019-11-15 10:45:25 -05:00
c182d3f545 Update docs: fix_restrain 2019-11-14 21:16:24 -05:00
aed67fc96e Update docs: angle_hybrid 2019-11-14 21:06:14 -05:00
dcf332f896 Update docs: angle_harmonic 2019-11-14 20:57:34 -05:00
46db670093 Update docs: angle_fourier_simple 2019-11-14 20:52:55 -05:00
36a5c73a71 Update docs: angle_fourier 2019-11-14 20:49:02 -05:00
954be8483a Update docs: angle_dipole 2019-11-14 20:44:22 -05:00
35f305eac4 Update docs: angle_cross 2019-11-14 17:02:23 -05:00
579b1271b0 Update docs: angle_cosine_squared 2019-11-14 16:51:06 -05:00
f2271e294d Update docs: angle_cosine_shift_exp 2019-11-14 16:32:17 -05:00
de166a3d16 Update docs: angle_cosine_shift 2019-11-14 16:19:06 -05:00
c4511cb2fc Update docs: angle_cosine_periodic 2019-11-14 15:59:40 -05:00
71304c3b8c Update docs: angle_cosine_delta 2019-11-14 15:52:29 -05:00
00fc015e4c Update docs: angle_cosine_buck6d 2019-11-14 15:48:19 -05:00
c25f8b2120 Update docs: angle_cosine 2019-11-14 15:43:27 -05:00
28402ad656 Update docs: angle_class2 2019-11-14 15:36:29 -05:00
9c1d5e76cc Update docs: angle_charmm 2019-11-14 15:31:21 -05:00
125b29a686 replace non-ascii character 2019-11-14 13:50:30 -05:00
0ef3d0e59a update README 2019-11-14 12:36:05 -05:00
9ea5e40255 move developer's guide tex sources back to src/Developer 2019-11-14 12:35:50 -05:00
32753a59e6 one more whitespace cleanup 2019-11-14 09:42:44 -05:00
fd22ef52cc Merge branch 'master' into collected-small-fixes 2019-11-14 09:41:50 -05:00
5d042cf629 Merge pull request #1740 from cabb99/master
Fix print patch to allow print on rerun
2019-11-14 09:25:50 -05:00
60fe0c0b86 Silence compiler warning 2019-11-14 09:24:56 -05:00
f18cb83def fix spelling: dihedras -> dihedrals 2019-11-14 01:07:30 +09:00
28269c4a21 change wording to be more in line with LAMMPS terminology and current state of implementation 2019-11-13 22:19:34 +09:00
85e96bf31c fix broken italization 2019-11-13 22:02:10 +09:00
e44c394680 pairwise -> two-body for clarity in appropriate comments 2019-11-13 19:48:52 +09:00
b80e5d3d11 fix spelling: forth -> fourth 2019-11-13 18:45:49 +09:00
b5c6647992 prevent pair hybrid from needlessly allocating vatom when only cvatom is needed 2019-11-13 18:42:34 +09:00
6b94126f67 change flag name in pair.h: cntratmstressflag -> centroidstressflag 2019-11-13 18:37:48 +09:00
e0646b73e3 revised implementation of inclusion of embedding energy in PairEAM::single()
this variant is also ported to USER-OMP and OPT
2019-11-13 01:46:00 -05:00
f1e4f98364 include embedding energy term in PairEAM::single() 2019-11-13 01:04:39 -05:00
f704079fb7 remove trailing whitespace 2019-11-12 16:13:01 -05:00
25e2a7a37f update bond style table docs about out-of-range errors 2019-11-12 14:25:45 -05:00
1955c57791 make fix print work the same for run, multiple runs, rerun 2019-11-12 10:16:50 -07:00
2d75e6b167 Add author name to false positives for citation "Boone, Babaei, Wilmer, J Chem Theory Comput, 15, 5579–5587 (2019)." 2019-11-12 23:37:14 +09:00
b6930cbc8d Add author names to false positives for citation "Surblys, Matsubara, Kikugawa, Ohara, Phys Rev E, 99, 051301(R) (2019)." 2019-11-12 23:34:03 +09:00
b65a3e94a7 update compute heat/flux documentation 2019-11-12 22:43:52 +09:00
de7a8c6559 Merge pull request #1768 from ellio167/doc-conda
Add Install_conda doc
2019-11-11 17:11:22 -05:00
5289417e9c Merge pull request #1739 from evoyiatzis/shape_chunk
Computing the eigenvalues of the gyration tensor and shape parameters…
2019-11-11 17:10:52 -05:00
06fdaa04b3 Merge pull request #2 from rbberger/shape_chunk
Fix documentation
2019-11-11 21:46:44 +01:00
0018a88f45 Only keep RST version of compute_gyration_shape_chunk 2019-11-11 15:32:48 -05:00
22a033f5d4 Move compute_gyration_shape_chunk.txt into txt/ folder 2019-11-11 15:32:09 -05:00
16f67ee56a Add new words to false-positives.txt 2019-11-11 15:26:48 -05:00
5ba7686939 add documentation about centroid/stress/atom compute 2019-11-12 01:40:59 +09:00
9e2129b676 Merge pull request #1767 from LucienPan0903/p_class2
Patch of class2 dihedral
2019-11-11 10:44:37 -05:00
7db3d7b5c0 setting cntatmstressflag = 1 for true pariwise styles 2019-11-12 00:02:50 +09:00
0a64dff132 add initial support to centroid virial in USER-OMP pair styles 2019-11-11 23:27:10 +09:00
7937bec396 add pair style compatibility check to compute centroid/stress/atom 2019-11-11 22:45:59 +09:00
a782245179 support for par-atom centroid virial in pair hybrid 2019-11-11 19:39:01 +09:00
61a286a0da compute centroid/atom/stress will use cvatom from pair styles when available 2019-11-11 19:16:21 +09:00
3258a14923 initial support for par-atom centroid virial in pair styles 2019-11-11 18:46:59 +09:00
02791e0b4d Add Install_conda doc 2019-11-10 17:49:15 -06:00
93b03aa82c Merge pull request #1 from akohlmey/shape_chunk
Documentation update
2019-11-10 21:35:30 +01:00
599a189545 Patch of class2 dihedral 2019-11-08 17:28:49 -05:00
59b5ef8fb0 Patch of Dihedral class2 2019-11-08 17:17:01 -05:00
cb30ab7556 Merge branch 'p_class2' of github.com:LucienPan0903/lammps into p_class2 2019-11-08 16:28:49 -05:00
4baa665a80 Patch of class2 dihedral
Fix the NAN problem when any two bonds are nearly parallel
2019-11-08 16:26:54 -05:00
e5933ecc4a Fix previous submission of nan problem 2019-11-08 16:22:57 -05:00
29b2dc7043 Patch of class2 dihedral
Fix the nan problem when any two bonds are nearly parallel
2019-11-08 16:11:34 -05:00
b9648884bb Add rst versions of new documentation 2019-11-08 15:28:12 -05:00
07a34382ae Magic
Merge branch 'master' into shape_chunk
2019-11-08 15:25:47 -05:00
90729ebe25 Merge pull request #1764 from jwood13/stable
Add a max and min option to fix_gcmc
2019-11-08 15:01:51 -05:00
6623169d97 Delete example file on request of @athomps 2019-11-08 15:00:26 -05:00
95a6498569 Merge pull request #1766 from lammps/compute-hma-doc
Link compute hma docs
2019-11-08 14:51:32 -05:00
8778ec9dde Merge pull request #1763 from lammps/fix-pour-doc
add documention to FixPour::outside(), simplify logic a bit
2019-11-08 12:09:19 -05:00
0583fb6ae0 update rst file also 2019-11-08 09:46:49 -07:00
82ecce8a1a Merge branch 'master' into compute-hma-doc 2019-11-08 09:40:40 -07:00
cbca94e4bf Merge pull request #1765 from rbberger/doc_fixes
Doc Fixes
2019-11-08 11:27:33 -05:00
02a1ef0630 add compute hma to list of computes 2019-11-08 09:25:08 -07:00
81e92de838 Fix doc Makefile 2019-11-07 21:47:29 -05:00
83f0eb0058 Remove unnecessary files 2019-11-07 21:47:02 -05:00
ce6893e717 Add max/min changes to documentation
again
2019-11-08 12:59:39 +11:00
e926c16544 Merge remote-tracking branch 'upstream/master' into stable 2019-11-08 12:58:23 +11:00
c5b0f0afcf add documention to FixPour::outside(), simplify logic a bit 2019-11-07 17:06:38 -07:00
d37ee59296 Add example of fix gcmc max behaviour 2019-11-08 10:53:53 +11:00
a2eec80f25 add max and min to documentation 2019-11-08 10:53:53 +11:00
e5dd154366 Make max/min prevent moves already outside the bounds
Previously allowed free movement outside the bounds until they were reached.
Now forces movement towards the bounds
2019-11-08 10:53:53 +11:00
6d7a591dce Merge pull request #1762 from rbberger/doc_lammps_lexer
Add LAMMPSLexer for LAMMPS code-blocks in docs
2019-11-07 16:25:01 -05:00
d2da55f5e3 Update Howto_pylammps.rst and remove Howto_pylammps.txt 2019-11-06 23:52:04 -05:00
3f10c4fcdc Update Manual_build.rst and remove Manual_build.txt 2019-11-06 23:33:14 -05:00
eaef8089a1 Add LAMMPSLexer for LAMMPS code-blocks in docs 2019-11-06 17:40:39 -05:00
bb18adc745 Merge pull request #1761 from rbberger/doc_updates
Update documentation tools and paths
2019-11-06 12:24:03 -05:00
9ac9ba6401 Merge branch 'master' into doc_updates 2019-11-06 11:35:35 -05:00
cf0eac62fa Merge pull request #1745 from yafshar/feature_parameterupdate
New KIM package feature: kim_param command for querying model parameters.
2019-11-06 09:17:07 -05:00
e64f68e73c Merge pull request #1 from akohlmey/kim_update_rst_fixes
Documentation update for your LAMMPS pull request
2019-11-06 07:55:42 -06:00
2fd9a27902 update kim_commands.rst from .txt file 2019-11-06 08:33:05 -05:00
729eabd771 make QUIP_LIBRARY setting consistent and backport change to .rst file only 2019-11-06 08:32:07 -05:00
efcf919ede Merge branch 'master' into feature_parameterupdate 2019-11-06 08:21:33 -05:00
2bbf52073f Merge pull request #1759 from akohlmey/hybrid-exclusion-bugfix
Consistent exclusion settings with multiple kspace-like sub-styles in pair hybrid
2019-11-06 06:24:35 -05:00
ee4e6352c4 Merge pull request #1755 from akohlmey/whitespace-cleanup
Whitespace cleanup
2019-11-06 06:23:16 -05:00
c3e52c3c8c Use globs for style lists 2019-11-05 15:49:09 -05:00
c756e472ae Remove Manual.txt and use variable for version 2019-11-05 15:34:57 -05:00
5e6694f3bc Re-enabled conversion of equations arrays. Disabled works even worse 2019-11-05 15:27:21 -05:00
423a3bb99f Add initial version of updated tools from #1533 2019-11-05 15:27:21 -05:00
74dade3ccb Change doc folder src -> txt, rst -> src 2019-11-05 15:27:21 -05:00
fe91d462db Merge pull request #1758 from marian-code/patch-1
wrong cmake option for QUIP
2019-11-05 12:11:17 -05:00
ae4764e614 address pair match issue with multiple hybrid substyles in exclusion settings 2019-11-05 11:03:25 -05:00
7ec1dccbe0 wrong cmake option for QUIP
QUIP cmake option for specifying library path should be QUIP_LIBRARY not QUIP_LIBRARIES
2019-11-05 14:57:44 +01:00
7bef07e9f7 Merge branch 'master' into HEAD 2019-11-04 16:52:02 -05:00
cf251eb8be Merge pull request #1756 from julient31/correct-minimizer
Correct warning issue in min_cg.cpp
2019-11-04 15:37:32 -05:00
e20439374e Merge pull request #1643 from rbberger/docs_to_rst_migration
Change documentation to use RST directly
2019-11-04 12:15:22 -05:00
1074884f74 Commit JT 110419
- removed fmax uninitialized variable from min_cg.cpp
- removed tabs from comments
- initialized fdotf variables
2019-11-04 09:04:43 -07:00
b6b022b610 whitespace cleanup: remove trailing blanks 2019-11-03 11:03:39 -05:00
9e7ca428aa whitespace cleanup: remove (evil) tabs 2019-11-03 11:01:42 -05:00
12cb19090a Remove txt2html and htmldoc from doc build 2019-11-02 23:07:49 -04:00
8f946b765e Add missing RST files 2019-11-02 23:03:36 -04:00
eac5f6e53e Update RST files 2019-11-02 23:01:18 -04:00
aeaa289d1d Merge branch 'master' into docs_to_rst_migration 2019-11-02 22:57:43 -04:00
63cce391ca Adding the documentation for the new 'kim_param' command
New documnetation is added and the whole document is checked
and partly rewritten for clarity and errors are corrected

Adding the word "Zm" to prevent the spelling error in document
building check.
2019-10-29 11:51:05 -05:00
5ce8860dce Updating the 'kim_query' default behavior and adding the 'list' setting
Adding the 'list' setting of {formatarg} (default behavior or if
{formatarg} is not specified), the result is returned as a
space-separated list of values in {variable}.
2019-10-29 11:51:05 -05:00
c8c92189b4 New capabilities for accessing KIM portable models parameters
Add an ability within LAMMPS for getting/setting KIM
portable models (PM) parameters. The assumption is that
the model is already known (through 'kim_init') when
calling the new command.

'kim_param get' gets the value of PM parameters, where
the command input includes:
parameter name, & location, or indices range, and the
variable(s) name / variable name + split / list /explicit
to return the value(s).

'kim_param get paramname index_range varname [s|split|list|explicit]'

'kim_param set' sets the value(s) of PM parameters, where
the command input includes:
parameter name, & location, or indices range, and the
corresponding variable(s) value(s).

'kim_param set paramname index_range value(s)'

NOTE: The varable_name is the name of the lammps variable in the
lammps input script and can be used in other locations in the
script.
2019-10-29 11:51:05 -05:00
3cca4e0d2d New capabilities for updating KIM portable models parameters
1. Add new capabilities within LAMMPS for setting parameters of
the KIM portable models (PM). The current implementation extends
the 'pair_coeff' command to modify the PM parameters.
A series of additional parameters after the species list is the
input to the modified command. Each set of the other setting
is parameter name, range of array indices, and corresponding
parameter values.

2. Add two getters to the PairKIM class to get the KIM_Model object,
and the atom type list outside the 'pair_kim' command for ease of
use and extension ability of a new 'kim_param' command.
2019-10-29 11:50:28 -05:00
63cb88daae Printing the mutable parameters of the KIM portable models
Calling 'kim_init' would report the mutable parameters
of KIM portable models (PM) including parameter's name,
data type, and extent.
2019-10-29 10:46:35 -05:00
050a0d4f5c fixing link issues 2019-10-27 12:15:50 +01:00
e263890a6b inclusion of reference links in the text 2019-10-26 18:09:11 +02:00
9885d384be Fix print patch to allow print on rerun 2019-10-23 13:00:34 -05:00
b7fbb36b81 one more missing entry to required files 2019-10-23 12:10:20 -04:00
fad4cecc20 no need to define link targets that are not pointed to 2019-10-23 12:10:03 -04:00
22b9cce436 Update lammps.book 2019-10-22 20:44:06 +02:00
a8501f922c Computing the eigenvalues of the gyration tensor and shape parameters per chunk 2019-10-22 20:35:54 +02:00
e47090d931 add suport for centroid virial to hybrid angle/dihedral/improper styles 2019-10-11 18:10:06 +09:00
3e49aab521 update missed pair styles for modified ev_setup_thr 2019-10-08 19:47:15 +09:00
f4a07cf24e update USER-OMP to compute per-atom virial for pairs when vflag=8 2019-10-08 16:11:58 +09:00
9301fc6b9d update compute heat/flux to work with compute centroid/stress/atom 2019-10-08 12:05:49 +09:00
4e53102499 add compute centroid/stress/atom 2019-10-08 16:06:13 +09:00
7bd296919e update USER-OMP to compute per-atom centroid virial for impropers when vflag=8 2019-10-08 14:55:26 +09:00
a368f4ee29 update USER-OMP to compute per-atom centroid virial for dihedrals when vflag=8 2019-10-08 14:55:20 +09:00
cbeba2fa25 add a comment to bond.cpp about per-atom virial and per-atom centroid virial equivalency 2019-10-08 15:41:13 +09:00
20b44f2427 update USER-OMP to compute per-atom centroid virial for angles when vflag=8 2019-10-08 14:06:54 +09:00
d401d07595 v_tally9 helper function for adding arrays with 9 elements 2019-10-04 19:39:23 +09:00
ad6e5a82b0 update USER-OMP to compute per-atom centroid virial for bonds when vflag=8 2019-10-08 16:08:04 +09:00
d2281503ca add centroid virial argument (cvatom) to ThrOMP::ev_setup_thr, and modify all related styles to pass a NULL pointer to pass compilation 2019-10-04 19:14:05 +09:00
25b6de2001 update improper.h and improper.cpp to compute per-atom centroid virial according to vflag=8 2019-10-04 18:33:26 +09:00
8a307ed12e update dihedral.h and dihedral.cpp to compute per-atom centroid virial according to vflag=8 2019-10-04 18:27:04 +09:00
239edc3442 update angle.h and angle.cpp to compute per-atom centroid virial according to vflag=8 2019-10-04 18:05:25 +09:00
0067a5b0fe add support for pressatomflag=2 to compute.h and vflag=8 to integrate.cpp and min.cpp to indicate centroid atomic stress computation 2019-10-04 17:34:15 +09:00
a75f84334f Merge branch 'stable' of gitlab.com:jared.wood13/lammps into stable 2019-09-10 15:04:01 +10:00
ddab4eeb1a Remove SHA1 utility used in doc Makefile 2019-08-22 14:11:32 -06:00
574e4067dc Add documentation files in RST format
This is the first step for moving the documentation format from *.txt to the
*.rst format.

In the last years we've been automatically converting txt files from Steve's
markup into RST to generate the documentation pages via Sphinx. The decision
has now been made to fully migrate to RST and avoid the conversion in the
future.

This will enable us to fully use RST and Sphinx to improve the documentation.

For the intermediate period, while there are still pending PRs with
documentation changes, we will keep both source files and update the RST files
accordingly.
2019-08-22 14:11:32 -06:00
475e8875a3 Merge branch 'stable' of gitlab.com:jared.wood13/lammps into stable 2019-07-08 15:24:55 +02:00
eb9f5cf128 Update gcmc to have a max and min 2019-07-03 17:24:00 +02:00
56e1032c1d Update gcmc to have a max and min 2019-06-27 17:50:45 +02:00
1908 changed files with 146621 additions and 8510 deletions

View File

@ -9,9 +9,7 @@ if(BUILD_DOC)
set(VIRTUALENV ${PYTHON_EXECUTABLE} -m virtualenv)
file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/[^.]*.txt)
file(GLOB PDF_EXTRA_SOURCES ${LAMMPS_DOC_DIR}/src/lammps_commands*.txt ${LAMMPS_DOC_DIR}/src/lammps_support.txt ${LAMMPS_DOC_DIR}/src/lammps_tutorials.txt)
list(REMOVE_ITEM DOC_SOURCES ${PDF_EXTRA_SOURCES})
file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/[^.]*.rst)
add_custom_command(
OUTPUT docenv
@ -28,25 +26,10 @@ if(BUILD_DOC)
COMMAND ${DOCENV_BINARY_DIR}/pip install --upgrade ${LAMMPS_DOC_DIR}/utils/converters
)
set(RST_FILES "")
set(RST_DIR ${CMAKE_BINARY_DIR}/rst)
file(MAKE_DIRECTORY ${RST_DIR})
foreach(TXT_FILE ${DOC_SOURCES})
get_filename_component(FILENAME ${TXT_FILE} NAME_WE)
set(RST_FILE ${RST_DIR}/${FILENAME}.rst)
list(APPEND RST_FILES ${RST_FILE})
add_custom_command(
OUTPUT ${RST_FILE}
DEPENDS requirements.txt docenv ${TXT_FILE}
COMMAND ${DOCENV_BINARY_DIR}/txt2rst -o ${RST_DIR} ${TXT_FILE}
)
endforeach()
add_custom_command(
OUTPUT html
DEPENDS ${RST_FILES}
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LAMMPS_DOC_DIR}/src ${RST_DIR}
COMMAND ${DOCENV_BINARY_DIR}/sphinx-build -j ${NPROCS} -b html -c ${LAMMPS_DOC_DIR}/utils/sphinx-config -d ${CMAKE_BINARY_DIR}/doctrees ${RST_DIR} html
DEPENDS ${DOC_SOURCES} docenv requirements.txt
COMMAND ${DOCENV_BINARY_DIR}/sphinx-build -j ${NPROCS} -b html -c ${LAMMPS_DOC_DIR}/utils/sphinx-config -d ${CMAKE_BINARY_DIR}/doctrees ${LAMMPS_DOC_DIR}/src html
)
add_custom_target(

2
doc/.gitignore vendored
View File

@ -6,3 +6,5 @@
/LAMMPS.mobi
/Manual.pdf
/Developer.pdf
/doctrees
/docenv

View File

@ -1,12 +1,12 @@
# Makefile for LAMMPS documentation
SHELL = /bin/bash
SHA1 = $(shell echo ${USER}-${PWD} | python utils/sha1sum.py)
BUILDDIR = /tmp/lammps-docs-$(SHA1)
RSTDIR = $(BUILDDIR)/rst
BUILDDIR = ${CURDIR}
RSTDIR = $(BUILDDIR)/src
TXTDIR = $(BUILDDIR)/txt
VENV = $(BUILDDIR)/docenv
TXT2RST = $(VENV)/bin/txt2rst
ANCHORCHECK = $(VENV)/bin/doc_anchor_check
ANCHORCHECK = $(VENV)/bin/rst_anchor_check
PYTHON = $(shell which python3)
VIRTUALENV = virtualenv
@ -28,10 +28,10 @@ HAS_VIRTUALENV = YES
endif
SPHINXEXTRA = -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocessing.cpu_count())')
SOURCES=$(filter-out $(wildcard src/lammps_commands*.txt) src/lammps_support.txt src/lammps_tutorials.txt,$(wildcard src/*.txt))
OBJECTS=$(SOURCES:src/%.txt=$(RSTDIR)/%.rst)
SOURCES=$(filter-out $(wildcard $(TXTDIR)/lammps_commands*.txt) $(TXTDIR)/lammps_support.txt $(TXTDIR)/lammps_tutorials.txt,$(wildcard $(TXTDIR)/*.txt))
OBJECTS=$(SOURCES:$(TXTDIR)/%.txt=$(RSTDIR)/%.rst)
.PHONY: help clean-all clean epub mobi html pdf old venv spelling anchor_check
.PHONY: help clean-all clean epub mobi rst html pdf venv spelling anchor_check
# ------------------------------------------
@ -39,37 +39,36 @@ help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html create HTML doc pages in html dir"
@echo " pdf create Developer.pdf and Manual.pdf in this dir"
@echo " old create old-style HTML doc pages and Manual.pdf in old dir"
@echo " fetch fetch HTML and PDF files from LAMMPS web site"
@echo " epub create ePUB format manual for e-book readers"
@echo " mobi convert ePUB to MOBI format manual for e-book readers (e.g. Kindle)"
@echo " (requires ebook-convert tool from calibre)"
@echo " clean remove all intermediate RST files"
@echo " clean-all reset the entire build environment"
@echo " txt2html build txt2html tool"
@echo " anchor_check scan for duplicate anchor labels"
@echo " spelling spell-check the manual"
# ------------------------------------------
clean-all: clean
rm -rf $(BUILDDIR)/* utils/txt2html/txt2html.exe
rm -rf $(BUILDDIR)/docenv $(BUILDDIR)/doctrees
clean:
rm -rf $(RSTDIR) html old epub latex
rm -rf html epub latex
rm -rf spelling
clean-spelling:
rm -rf spelling
rst: clean $(OBJECTS) $(ANCHORCHECK)
html: $(OBJECTS) $(ANCHORCHECK)
@(\
. $(VENV)/bin/activate ;\
cp -r src/* $(RSTDIR)/ ;\
sphinx-build $(SPHINXEXTRA) -b html -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\
echo "############################################" ;\
doc_anchor_check src/*.txt ;\
env LC_ALL=C grep -n '[^ -~]' src/*.txt ;\
rst_anchor_check src/*.rst ;\
env LC_ALL=C grep -n '[^ -~]' $(RSTDIR)/*.rst ;\
echo "############################################" ;\
deactivate ;\
)
@ -89,8 +88,7 @@ spelling: $(OBJECTS) utils/sphinx-config/false_positives.txt
@(\
. $(VENV)/bin/activate ;\
pip install sphinxcontrib-spelling ;\
cp -r src/* $(RSTDIR)/ ;\
cp utils/sphinx-config/false_positives.txt $(RSTDIR)/ ;\
cp utils/sphinx-config/false_positives.txt $(RSTDIR)/ ;\
sphinx-build -b spelling -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) spelling ;\
deactivate ;\
)
@ -103,7 +101,6 @@ epub: $(OBJECTS)
@cp src/JPG/*.* epub/JPG
@(\
. $(VENV)/bin/activate ;\
cp -r src/* $(RSTDIR)/ ;\
sphinx-build $(SPHINXEXTRA) -b epub -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) epub ;\
deactivate ;\
)
@ -126,10 +123,9 @@ pdf: $(OBJECTS) $(ANCHORCHECK)
)
@(\
. $(VENV)/bin/activate ;\
cp -r src/* $(RSTDIR)/ ;\
sphinx-build $(SPHINXEXTRA) -b latex -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) latex ;\
echo "############################################" ;\
doc_anchor_check src/*.txt ;\
rst_anchor_check src/*.rst ;\
echo "############################################" ;\
deactivate ;\
)
@ -155,27 +151,6 @@ pdf: $(OBJECTS) $(ANCHORCHECK)
@rm -rf latex/USER/*/*.[sg]*
@echo "Build finished. Manual.pdf and Developer.pdf are in this directory."
old: utils/txt2html/txt2html.exe
@rm -rf old
@mkdir old; mkdir old/Eqs; mkdir old/JPG; mkdir old/PDF
@cd src; ../utils/txt2html/txt2html.exe -b *.txt; \
mv *.html ../old; \
cp Eqs/*.jpg ../old/Eqs; \
cp JPG/* ../old/JPG; \
cp PDF/* ../old/PDF;
@( set -e;\
cd src/Developer; \
pdflatex developer; \
pdflatex developer; \
mv developer.pdf ../../old/Developer.pdf; \
cd ../../old; \
for s in `echo ../src/*.txt | sed -e 's,\.\./src/,,g' -e 's/ \(pairs\|bonds\|angles\|dihedrals\|impropers\|commands_list\|fixes\|computes\).txt/ /g' | sed -e 's,\.txt,\.html,g'` ; \
do grep -q ^$$s ../src/lammps.book || \
echo WARNING: doc file $$s missing in src/lammps.book; done; \
htmldoc --batch ../src/lammps.book; \
)
fetch:
@rm -rf html_www Manual_www.pdf Developer_www.pdf
@curl -s -o Manual_www.pdf http://lammps.sandia.gov/doc/Manual.pdf
@ -184,21 +159,16 @@ fetch:
@tar xzf lammps-doc.tar.gz
@rm -f lammps-doc.tar.gz
txt2html: utils/txt2html/txt2html.exe
anchor_check : $(ANCHORCHECK)
@(\
. $(VENV)/bin/activate ;\
doc_anchor_check src/*.txt ;\
rst_anchor_check src/*.txt ;\
deactivate ;\
)
# ------------------------------------------
utils/txt2html/txt2html.exe: utils/txt2html/txt2html.cpp
g++ -O -Wall -o $@ $<
$(RSTDIR)/%.rst : src/%.txt $(TXT2RST)
$(RSTDIR)/%.rst : $(TXTDIR)/%.txt $(TXT2RST)
@(\
mkdir -p $(RSTDIR) ; \
. $(VENV)/bin/activate ;\

View File

@ -5,7 +5,7 @@ sub-directories and optionally 2 PDF files and an ePUB file:
src content files for LAMMPS documentation
html HTML version of the LAMMPS manual (see html/Manual.html)
tools tools and settings for building the documentation
utils utilities and settings for building the documentation
Manual.pdf large PDF version of entire manual
Developer.pdf small PDF with info about how LAMMPS is structured
LAMMPS.epub Manual in ePUB format
@ -25,17 +25,12 @@ the fetched documentation will include those changes (but your source
code will not, unless you update your local repository).
(b) You can build the HTML and PDF files yourself, by typing "make
html" followed by "make pdf". Note that the PDF make requires the
HTML files already exist. This requires various tools including
Sphinx, which the build process will attempt to download and install
on your system, if not already available. See more details below.
(c) You can genererate an older, simpler, less-fancy style of HTML
documentation by typing "make old". This will create an "old"
directory. This can be useful if (b) does not work on your box for
some reason, or you want to quickly view the HTML version of a doc
page you have created or edited yourself within the src directory.
E.g. if you are planning to submit a new feature to LAMMPS.
html" or by "make pdf", respectively. This requires various tools
including the Python documentation processing tool Sphinx, which the
build process will attempt to download and install on your system into
a python virtual environment, if not already available. The PDF file
will require a working LaTeX installation with several add-on packages
in addition to the Python/Sphinx setup. See more details below.
----------------
@ -46,11 +41,10 @@ Options:
make html # generate HTML in html dir using Sphinx
make pdf # generate 2 PDF files (Manual.pdf,Developer.pdf)
# in this dir via htmldoc and pdflatex
make old # generate old-style HTML pages in old dir via txt2html
# in this dir via Sphinx and PDFLaTeX
make fetch # fetch HTML doc pages and 2 PDF files from web site
# as a tarball and unpack into html dir and 2 PDFs
make epub # generate LAMMPS.epub in ePUB format using Sphinx
make epub # generate LAMMPS.epub in ePUB format using Sphinx
make clean # remove intermediate RST files created by HTML build
make clean-all # remove entire build folder and any cached data
@ -94,8 +88,17 @@ This will install virtualenv from the Python Package Index.
Installing prerequisites for PDF build
[TBA]
Same as for HTML plus a compatible LaTeX installation with
support for PDFLaTeX. Also the following LaTeX packages need
to be installed (e.g. from texlive):
- amsmath
- babel
- cmap
- fncychap
- geometry
- hyperref
- hypcap
- times
----------------
Installing prerequisites for epub build
@ -103,7 +106,11 @@ Installing prerequisites for epub build
## ePUB
Same as for HTML. This uses the same tools and configuration
files as the HTML tree.
files as the HTML tree. The ePUB format conversion currently
does not support processing mathematical expressions via MathJAX,
so there will be limitations on some pages. For the time being
until this is resolved, building and using the PDF format file
is recommended instead.
For converting the generated ePUB file to a mobi format file
(for e-book readers like Kindle, that cannot read ePUB), you

View File

@ -1,4 +1,4 @@
.TH LAMMPS "30 October 2019" "2019-10-30"
.TH LAMMPS "20 November 2019" "2019-11-20"
.SH NAME
.B LAMMPS
\- Molecular Dynamics Simulator.

2
doc/src/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
Eqs
JPG

28
doc/src/Build.rst Normal file
View File

@ -0,0 +1,28 @@
Build LAMMPS
************
LAMMPS can be built as an executable or library from source code via
either traditional makefiles (which may require manual editing)
for use with GNU make or gmake, or a build environment generated by CMake
(Unix Makefiles, Xcode, Visual Studio, KDevelop or more). As an
alternative you can download a package with pre-built executables
as described on the :doc:`Install <Install>` doc page.
.. toctree::
:maxdepth: 1
Build_cmake
Build_make
Build_link
Build_basics
Build_settings
Build_package
Build_extras
Build_windows
Build_development
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

437
doc/src/Build_basics.rst Normal file
View File

@ -0,0 +1,437 @@
Basic build options
===================
The following topics are covered on this page, for building both with
CMake and make:
* :ref:`Serial vs parallel build <serial>`
* :ref:`Choice of compiler and compile/link options <compile>`
* :ref:`Build LAMMPS as an executable or a library <exe>`
* :ref:`Build the LAMMPS documentation <doc>`
* :ref:`Install LAMMPS after a build <install>`
----------
.. _serial:
Serial vs parallel build
-------------------------------------
LAMMPS can be built to run in parallel using the ubiquitous `MPI (message-passing interface) <https://en.wikipedia.org/wiki/Message_Passing_Interface>`_
library. Or it can built to run on a single processor (serial)
without MPI. It can also be built with support for OpenMP threading
(see more discussion below).
**CMake variables**\ :
.. parsed-literal::
-D BUILD_MPI=value # yes or no, default is yes if CMake finds MPI, else no
-D BUILD_OMP=value # yes or no (default)
-D LAMMPS_MACHINE=name # name = mpi, serial, mybox, titan, laptop, etc
# no default value
The executable created by CMake (after running make) is lmp\_name. If
the LAMMPS\_MACHINE variable is not specified, the executable is just
lmp. Using BUILD\_MPI=no will produce a serial executable.
**Traditional make**\ :
.. parsed-literal::
cd lammps/src
make mpi # parallel build, produces lmp_mpi using Makefile.mpi
make serial # serial build, produces lmp_serial using Makefile/serial
make mybox # uses Makefile.mybox to produce lmp_mybox
Serial build (see src/MAKE/Makefile.serial):
.. parsed-literal::
MPI_INC = -I../STUBS
MPI_PATH = -L../STUBS
MPI_LIB = -lmpi_stubs
For a parallel build, if MPI is installed on your system in the usual
place (e.g. under /usr/local), you do not need to specify the 3
variables MPI\_INC, MPI\_PATH, MPI\_LIB. The MPI wrapper on the compiler
(e.g. mpicxx, mpiCC) knows where to find the needed include and
library files. Failing this, these 3 variables can be used to specify
where the mpi.h file (MPI\_INC), and the MPI library files (MPI\_PATH)
are found, and the name of the library files (MPI\_LIB).
For a serial build, you need to specify the 3 variables, as shown
above.
For a serial LAMMPS build, use the dummy MPI library provided in
src/STUBS. You also need to build the STUBS library for your platform
before making LAMMPS itself. A "make serial" build does this for.
Otherwise, type "make mpi-stubs" from the src directory, or "make"
from the src/STUBS dir. If the build fails, you will need to edit the
STUBS/Makefile for your platform.
The file STUBS/mpi.c provides a CPU timer function called MPI\_Wtime()
that calls gettimeofday() . If your system doesn't support
gettimeofday() , you'll need to insert code to call another timer.
Note that the ANSI-standard function clock() rolls over after an hour
or so, and is therefore insufficient for timing long LAMMPS
simulations.
**CMake and make info**\ :
If you are installing MPI yourself, we recommend MPICH2 from Argonne
National Laboratory or OpenMPI. MPICH can be downloaded from the
`Argonne MPI site <http://www.mcs.anl.gov/research/projects/mpich2/>`_.
OpenMPI can be downloaded from the `OpenMPI site <http://www.open-mpi.org>`_. Other MPI packages should also work.
If you are running on a large parallel machine, your system admins or
the vendor should have already installed a version of MPI, which is
likely to be faster than a self-installed MPICH or OpenMPI, so find
out how to build and link with it.
The majority of OpenMP (threading) support in LAMMPS is provided by
the USER-OMP package; see the :doc:`Speed omp <Speed_omp>` doc page for
details. The USER-INTEL package also provides OpenMP support (it is
compatible with USER-OMP) and adds vectorization support when compiled
with the Intel compilers on top of that. Also, the KOKKOS package can
be compiled for using OpenMP threading.
However, there are a few commands in LAMMPS that have native OpenMP
support. These are commands in the MPIIO, SNAP, USER-DIFFRACTION, and
USER-DPD packages. In addition some packages support OpenMP threading
indirectly through the libraries they interface to: e.g. LATTE and
USER-COLVARS. See the :doc:`Packages details <Packages_details>` doc
page for more info on these packages and the doc pages for their
respective commands for OpenMP threading info.
For CMake, if you use BUILD\_OMP=yes, you can use these packages and
turn on their native OpenMP support and turn on their native OpenMP
support at run time, by setting the OMP\_NUM\_THREADS environment
variable before you launch LAMMPS.
For building via conventional make, the CCFLAGS and LINKFLAGS
variables in Makefile.machine need to include the compiler flag that
enables OpenMP. For GNU compilers it is -fopenmp. For (recent) Intel
compilers it is -qopenmp. If you are using a different compiler,
please refer to its documentation.
.. _default-none-issues:
**OpenMP Compiler compatibility info**\ :
Some compilers do not fully support the 'default(none)' directive
and others (e.g. GCC version 9 and beyond) may implement OpenMP 4.0
semantics, which are incompatible with the OpenMP 3.1 directives used
in LAMMPS (for maximal compatibility with compiler versions in use).
In those case, all 'default(none)' directives (which aid in detecting
incorrect and unwanted sharing) can be replaced with 'default(shared)'
while dropping all 'shared()' directives. The script
'src/USER-OMP/hack\_openmp\_for\_pgi\_gcc9.sh' can be used to automate
this conversion.
----------
.. _compile:
Choice of compiler and compile/link options
---------------------------------------------------------
The choice of compiler and compiler flags can be important for
performance. Vendor compilers can produce faster code than
open-source compilers like GNU. On boxes with Intel CPUs, we suggest
trying the `Intel C++ compiler <intel_>`_.
.. _intel: https://software.intel.com/en-us/intel-compilers
On parallel clusters or supercomputers which use "modules" for their
compile/link environments, you can often access different compilers by
simply loading the appropriate module before building LAMMPS.
**CMake variables**\ :
.. parsed-literal::
-D CMAKE_CXX_COMPILER=name # name of C++ compiler
-D CMAKE_C_COMPILER=name # name of C compiler
-D CMAKE_Fortran_COMPILER=name # name of Fortran compiler
-D CMAKE_CXX_FLAGS=string # flags to use with C++ compiler
-D CMAKE_C_FLAGS=string # flags to use with C compiler
-D CMAKE_Fortran_FLAGS=string # flags to use with Fortran compiler
By default CMake will use a compiler it finds and it will add
optimization flags appropriate to that compiler and any :doc:`accelerator packages <Speed_packages>` you have included in the build.
You can tell CMake to look for a specific compiler with these variable
settings. Likewise you can specify the FLAGS variables if you want to
experiment with alternate optimization flags. You should specify all
3 compilers, so that the small number of LAMMPS source files written
in C or Fortran are built with a compiler consistent with the one used
for all the C++ files:
.. parsed-literal::
Building with GNU Compilers:
cmake ../cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_Fortran_COMPILER=gfortran
Building with Intel Compilers:
cmake ../cmake -DCMAKE_C_COMPILER=icc -DCMAKE_CXX_COMPILER=icpc -DCMAKE_Fortran_COMPILER=ifort
Building with LLVM/Clang Compilers:
cmake ../cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_Fortran_COMPILER=flang
.. note::
When the cmake command completes, it prints info to the screen
as to which compilers it is using, and what flags will be used in the
compilation. Note that if the top-level compiler is mpicxx, it is
simply a wrapper on a real compiler. The underlying compiler info is
what will be listed in the CMake output. You should check to insure
you are using the compiler and optimization flags are the ones you
want.
**Makefile.machine settings**\ :
Parallel build (see src/MAKE/Makefile.mpi):
.. parsed-literal::
CC = mpicxx
CCFLAGS = -g -O3
LINK = mpicxx
LINKFLAGS = -g -O
Serial build (see src/MAKE/Makefile.serial):
.. parsed-literal::
CC = g++
CCFLAGS = -g -O3
LINK = g++
LINKFLAGS = -g -O
The "compiler/linker settings" section of a Makefile.machine lists
compiler and linker settings for your C++ compiler, including
optimization flags. You should always use mpicxx or mpiCC for
a parallel build, since these compiler wrappers will include
a variety of settings appropriate for your MPI installation.
.. note::
If you build LAMMPS with any :doc:`accelerator packages <Speed_packages>` included, they have specific
optimization flags that are either required or recommended for optimal
performance. You need to include these in the CCFLAGS and LINKFLAGS
settings above. For details, see the individual package doc pages
listed on the :doc:`Speed packages <Speed_packages>` doc page. Or
examine these files in the src/MAKE/OPTIONS directory. They
correspond to each of the 5 accelerator packages and their hardware
variants:
.. parsed-literal::
Makefile.opt # OPT package
Makefile.omp # USER-OMP package
Makefile.intel_cpu # USER-INTEL package for CPUs
Makefile.intel_coprocessor # USER-INTEL package for KNLs
Makefile.gpu # GPU package
Makefile.kokkos_cuda_mpi # KOKKOS package for GPUs
Makefile.kokkos_omp # KOKKOS package for CPUs (OpenMP)
Makefile.kokkos_phi # KOKKOS package for KNLs (OpenMP)
----------
.. _exe:
Build LAMMPS as an executable or a library
----------------------------------------------------
LAMMPS can be built as either an executable or as a static or shared
library. The LAMMPS library can be called from another application or
a scripting language. See the :doc:`Howto couple <Howto_couple>` doc
page for more info on coupling LAMMPS to other codes. See the
:doc:`Python <Python_head>` doc page for more info on wrapping and
running LAMMPS from Python via its library interface.
**CMake variables**\ :
.. parsed-literal::
-D BUILD_EXE=value # yes (default) or no
-D BUILD_LIB=value # yes or no (default)
-D BUILD_SHARED_LIBS=value # yes or no (default)
-D LAMMPS_LIB_SUFFIX=name # name = mpi, serial, mybox, titan, laptop, etc
# no default value
Setting BUILD\_EXE=no will not produce an executable. Setting
BUILD\_LIB=yes will produce a static library named liblammps.a.
Setting both BUILD\_LIB=yes and BUILD\_SHARED\_LIBS=yes will produce a
shared library named liblammps.so. If LAMMPS\_LIB\_SUFFIX is set the generated
libraries will be named liblammps\_name.a or liblammps\_name.so instead.
**Traditional make**\ :
.. parsed-literal::
cd lammps/src
make machine # build LAMMPS executable lmp_machine
make mode=lib machine # build LAMMPS static lib liblammps_machine.a
make mode=shlib machine # build LAMMPS shared lib liblammps_machine.so
The two library builds also create generic soft links, named
liblammps.a and liblammps.so, which point to the liblammps\_machine
files.
**CMake and make info**\ :
Note that for a shared library to be usable by a calling program, all
the auxiliary libraries it depends on must also exist as shared
libraries. This will be the case for libraries included with LAMMPS,
such as the dummy MPI library in src/STUBS or any package libraries in
the lib/packages directory, since they are always built as shared
libraries using the -fPIC switch. However, if a library like MPI or
FFTW does not exist as a shared library, the shared library build will
generate an error. This means you will need to install a shared
library version of the auxiliary library. The build instructions for
the library should tell you how to do this.
As an example, here is how to build and install the `MPICH library <mpich_>`_, a popular open-source version of MPI, distributed by
Argonne National Lab, as a shared library in the default
/usr/local/lib location:
.. _mpich: http://www-unix.mcs.anl.gov/mpi
.. parsed-literal::
./configure --enable-shared
make
make install
You may need to use "sudo make install" in place of the last line if
you do not have write privileges for /usr/local/lib. The end result
should be the file /usr/local/lib/libmpich.so.
----------
.. _doc:
Build the LAMMPS documentation
----------------------------------------
**CMake variable**\ :
.. parsed-literal::
-D BUILD_DOC=value # yes or no (default)
This will create the HTML doc pages within the CMake build directory.
The reason to do this is if you want to "install" LAMMPS on a system
after the CMake build via "make install", and include the doc pages in
the install.
**Traditional make**\ :
.. parsed-literal::
cd lammps/doc
make html # html doc pages
make pdf # single Manual.pdf file
This will create a lammps/doc/html dir with the HTML doc pages so that
you can browse them locally on your system. Type "make" from the
lammps/doc dir to see other options.
.. note::
You can also download a tarball of the documentation for the
current LAMMPS version (HTML and PDF files), from the website
`download page <http://lammps.sandia.gov/download.html>`_.
----------
.. _tools:
Build LAMMPS tools
------------------------------
Some tools described in :doc:`Auxiliary tools <Tools>` can be built directly
using CMake or Make.
**CMake variable**\ :
.. parsed-literal::
-D BUILD_TOOLS=value # yes or no (default)
The generated binaries will also become part of the LAMMPS installation (see below)
**Traditional make**\ :
.. parsed-literal::
cd lammps/tools
make all # build all binaries of tools
make binary2txt # build only binary2txt tool
make chain # build only chain tool
make micelle2d # build only micelle2d tool
make thermo_extract # build only thermo_extract tool
----------
.. _install:
Install LAMMPS after a build
------------------------------------------
After building LAMMPS, you may wish to copy the LAMMPS executable of
library, along with other LAMMPS files (library header, doc files) to
a globally visible place on your system, for others to access. Note
that you may need super-user privileges (e.g. sudo) if the directory
you want to copy files to is protected.
**CMake variable**\ :
.. parsed-literal::
cmake -D CMAKE_INSTALL_PREFIX=path [options ...] ../cmake
make # perform make after CMake command
make install # perform the installation into prefix
**Traditional make**\ :
There is no "install" option in the src/Makefile for LAMMPS. If you
wish to do this you will need to first build LAMMPS, then manually
copy the desired LAMMPS files to the appropriate system directories.
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

245
doc/src/Build_cmake.rst Normal file
View File

@ -0,0 +1,245 @@
Build LAMMPS with CMake
=======================
This page is a short summary of how to use CMake to build LAMMPS.
Details on CMake variables that enable specific LAMMPS build options
are given on the pages linked to from the :doc:`Build <Build>` doc page.
Richard Berger (Temple U) has also written a `more comprehensive guide <https://github.com/lammps/lammps/blob/master/cmake/README.md>`_
for how to use CMake to build LAMMPS. If you are new to CMake it is a
good place to start.
----------
Building LAMMPS with CMake is a two-step process. First you use CMake
to create a build environment in a new directory. On Linux systems,
this will be based on makefiles for use with make. Then you use the
make command to build LAMMPS, which uses the created
Makefile(s). Example:
.. parsed-literal::
cd lammps # change to the LAMMPS distribution directory
mkdir build; cd build # create a new directory (folder) for build
cmake [options ...] ../cmake # configuration with (command-line) cmake
make # compilation
The cmake command will detect available features, enable selected
packages and options, and will generate the build environment. By default
this build environment will be created for "Unix Makefiles" on most
platforms and particularly on Linux. However, alternate build tools
(e.g. Ninja) and support files for Integrated Development Environments
(IDE) like Eclipse, CodeBlocks, or Kate can be generated, too. This is
selected via the "-G" command line flag. For the rest of the documentation
we will assume that the build environment is generated for makefiles
and thus the make command will be used to compile and link LAMMPS as
indicated above, producing (by default) an executable called "lmp" and
a library called "liblammps.a" in the "build" folder. When generating
a build environment for the "Ninja" build tool, the build command would
be "ninja" instead of "make".
If your machine has multiple CPU cores (most do these days), using a
command like "make -jN" (with N being the number of available local
CPU cores) can be much faster. If you plan to do development on
LAMMPS or need to re-compile LAMMPS repeatedly, installation of the
ccache (= Compiler Cache) software may speed up repeated compilation
even more.
After compilation, you may optionally install the LAMMPS executable into
your system with:
.. parsed-literal::
make install # optional, copy LAMMPS executable & library elsewhere
This will install the lammps executable and library (if requested), some
tools (if configured) and additional files like library API headers,
manpages, potential and force field files. The location of the installation
tree is set by the CMake variable "CMAKE\_INSTALL\_PREFIX" which defaults
to ${HOME}/.local
----------
There are 3 variants of CMake: a command-line version (cmake), a text mode
UI version (ccmake), and a graphical GUI version (cmake-GUI). You can use
any of them interchangeably to configure and create the LAMMPS build
environment. On Linux all the versions produce a Makefile as their
output. See more details on each below.
You can specify a variety of options with any of the 3 versions, which
affect how the build is performed and what is included in the LAMMPS
executable. Links to pages explaining all the options are listed on
the :doc:`Build <Build>` doc page.
You must perform the CMake build system generation and compilation in
a new directory you create. It can be anywhere on your local machine.
In these Build pages we assume that you are building in a directory
called "lammps/build". You can perform separate builds independently
with different options, so long as you perform each of them in a
separate directory you create. All the auxiliary files created by one
build process (executable, object files, log files, etc) are stored in
this directory or sub-directories within it that CMake creates.
.. note::
To perform a CMake build, no packages can be installed or a
build been previously attempted in the LAMMPS src directory by using
"make" commands to :doc:`perform a conventional LAMMPS build <Build_make>`. CMake detects if this is the case and
generates an error, telling you to type "make no-all purge" in the src
directory to un-install all packages. The purge removes all the \*.h
files auto-generated by make.
You must have CMake version 2.8 or later on your system to build
LAMMPS. A handful of LAMMPS packages (KOKKOS, LATTE, MSCG) require a
later version. CMake will print a message telling you if a later
version is required. Installation instructions for CMake are below.
After the initial build, if you edit LAMMPS source files, or add your
own new files to the source directory, you can just re-type make from
your build directory and it will re-compile only the files that have
changed. If you want to change CMake options you can run cmake (or
ccmake or cmake-gui) again from the same build directory and alter
various options; see details below. Or you can remove the entire build
folder, recreate the directory and start over.
----------
**Command-line version of CMake**\ :
.. parsed-literal::
cmake [options ...] /path/to/lammps/cmake # build from any dir
cmake [options ...] ../cmake # build from lammps/build
The cmake command takes one required argument, which is the LAMMPS
cmake directory which contains the CMakeLists.txt file.
The argument can be preceeded or followed by various CMake
command-line options. Several useful ones are:
.. parsed-literal::
-D CMAKE_INSTALL_PREFIX=path # where to install LAMMPS executable/lib if desired
-D CMAKE_BUILD_TYPE=type # type = RelWithDebInfo (default), Release, MinSizeRel, or Debug
-G output # style of output CMake generates
-DVARIABLE=value # setting for a LAMMPS feature to enable
-D VARIABLE=value # ditto, but cannot come after CMakeLists.txt dir
-C path/to/preset/file # load some CMake settings before configuring
All the LAMMPS-specific -D variables that a LAMMPS build supports are
described on the pages linked to from the :doc:`Build <Build>` doc page.
All of these variable names are upper-case and their values are
lower-case, e.g. -D LAMMPS\_SIZES=smallbig. For boolean values, any of
these forms can be used: yes/no, on/off, 1/0.
On Unix/Linux machines, CMake generates a Makefile by default to
perform the LAMMPS build. Alternate forms of build info can be
generated via the -G switch, e.g. Visual Studio on a Windows machine,
Xcode on MacOS, or KDevelop on Linux. Type "cmake --help" to see the
"Generator" styles of output your system supports.
.. note::
When CMake runs, it prints configuration info to the screen.
You should review this to verify all the features you requested were
enabled, including packages. You can also see what compilers and
compile options will be used for the build. Any errors in CMake
variable syntax will also be flagged, e.g. mis-typed variable names or
variable values.
CMake creates a CMakeCache.txt file when it runs. This stores all the
settings, so that when running CMake again you can use the current
folder '.' instead of the path to the LAMMPS cmake folder as the
required argument to the CMake command. Either way the existing
settings will be inherited unless the CMakeCache.txt file is removed.
If you later want to change a setting you can rerun cmake in the build
directory with different setting. Please note that some automatically
detected variables will not change their value when you rerun cmake.
In these cases it is usually better to first remove all the
files/directories in the build directory, or start with a fresh build
directory.
----------
**Curses version (terminal-style menu) of CMake**\ :
.. parsed-literal::
ccmake ../cmake
You initiate the configuration and build environment generation steps
separately. For the first you have to type **c**\ , for the second you
have to type **g**\ . You may need to type **c** multiple times, and may be
required to edit some of the entries of CMake configuration variables
in between. Please see the `ccmake manual <https://cmake.org/cmake/help/latest/manual/ccmake.1.html>`_ for
more information.
----------
**GUI version of CMake**\ :
.. parsed-literal::
cmake-gui ../cmake
You initiate the configuration and build environment generation steps
separately. For the first you have to click on the **Configure** button,
for the second you have to click on the **Generate** button. You may
need to click on **Configure** multiple times, and may be required to
edit some of the entries of CMake configuration variables in between.
Please see the `cmake-gui manual <https://cmake.org/cmake/help/latest/manual/cmake-gui.1.html>`_
for more information.
----------
**Installing CMake**
Check if your machine already has CMake installed:
.. parsed-literal::
which cmake # do you have it?
which cmake3 # version 3 may have this name
cmake --version # what specific version you have
On clusters or supercomputers which use environment modules to manage
software packages, do this:
.. parsed-literal::
module list # is a cmake module already loaded?
module avail # is a cmake module available?
module load cmake3 # load cmake module with appropriate name
Most Linux distributions offer pre-compiled cmake packages through
their package management system. If you do not have CMake or a new
enough version, you can download the latest version at
`https://cmake.org/download/ <https://cmake.org/download/>`_.
Instructions on how to install it on various platforms can be found
`on this page <https://cmake.org/install/>`_.
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

View File

@ -0,0 +1,120 @@
Development build options (CMake only)
======================================
The CMake build of LAMMPS has a few extra options which are useful during
development, testing or debugging.
----------
.. _compilation:
Verify compilation flags
------------------------------------------
Sometimes it is necessary to verify the complete sequence of compilation flags
generated by the CMake build. To enable a more verbose output during
compilation you can use the following option.
.. parsed-literal::
-D CMAKE_VERBOSE_MAKEFILE=value # value = no (default) or yes
Another way of doing this without reconfiguration is calling make with variable VERBOSE set to 1:
.. parsed-literal::
make VERBOSE=1
----------
.. _sanitizer:
Address, Undefined Behavior, and Thread Sanitizer Support
-------------------------------------------------------------------------
Compilers such as GCC and Clang support generating binaries which use different
sanitizers to detect problems in code during run-time. They can detect `memory leaks <https://clang.llvm.org/docs/AddressSanitizer.html>`_,
code that runs into `undefined behavior <https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html>`_ of the
language and `data races <https://clang.llvm.org/docs/ThreadSanitizer.html>`_ in threaded code.
The following settings allow you enable these features if your compiler supports
it. Please note that they come with a performance hit. However, they are
usually faster than using tools like Valgrind.
.. parsed-literal::
-D ENABLE_SANITIZE_ADDRESS=value # enable Address Sanitizer, value = no (default) or yes
-D ENABLE_SANITIZE_UNDEFINED=value # enable Undefined Behaviour Sanitizer, value = no (default) or yes
-D ENABLE_SANITIZE_THREAD=value # enable Thread Sanitizer, value = no (default) or yes
----------
.. _testing:
Code Coverage and Testing
---------------------------------------
We do extensive regression testing of the LAMMPS code base on a continuous
basis. Some of the logic to do this has been added to the CMake build so
developers can run the tests directly on their workstation.
.. note::
this is incomplete and only represents a small subset of tests that we run
.. parsed-literal::
-D ENABLE_TESTING=value # enable simple run tests of LAMMPS, value = no (default) or yes
-D LAMMPS_TESTING_SOURCE_DIR=path # path to lammps-testing repository (option if in custom location)
-D LAMMPS_TESTING_GIT_TAG=value # version of lammps-testing repository that should be used, value = master (default) or custom git commit or tag
If you enable testing in the CMake build it will create an additional target called "test". You can run them with:
.. parsed-literal::
make test
The test cases used come from the lammps-testing repository. They are
derivatives of the examples folder with some modifications to make the run
faster.
You can also collect code coverage metrics while running the tests by enabling
coverage support during building.
.. parsed-literal::
-D ENABLE_COVERAGE=value # enable coverage measurements, value = no (default) or yes
This will also add the following targets to generate coverage reports after running the LAMMPS executable:
.. parsed-literal::
make test # run tests first!
make gen_coverage_html # generate coverage report in HTML format
make gen_coverage_xml # generate coverage report in XML format
These reports require GCOVR to be installed. The easiest way to do this to install it via pip:
.. parsed-literal::
pip install git+https://github.com/gcovr/gcovr.git
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

1399
doc/src/Build_extras.rst Normal file

File diff suppressed because it is too large Load Diff

91
doc/src/Build_link.rst Normal file
View File

@ -0,0 +1,91 @@
Link LAMMPS as a library to another code
========================================
LAMMPS can be used as a library by another application, including
Python scripts. The files src/library.cpp and library.h define the
C-style API for using LAMMPS as a library. See the :doc:`Howto library <Howto_library>` doc page for a description of the
interface and how to extend it for your needs.
The :doc:`Build basics <Build_basics>` doc page explains how to build
LAMMPS as either a shared or static library. This results in one of
these 2 files:
liblammps.so # shared library
liblammps.a # static library
----------
**Link with LAMMPS as a static library**\ :
The calling application can link to LAMMPS as a static library with a
link command like this:
g++ caller.o -L/home/sjplimp/lammps/src -llammps -o caller
The -L argument is the path to where the liblammps.a file is. The
-llammps argument is shorthand for the file liblammps.a.
----------
**Link with LAMMPS as a shared library**\ :
If you wish to link to liblammps.so, the operating system finds shared
libraries to load at run-time using the environment variable
LD\_LIBRARY\_PATH. To enable this you can do one of two things:
(1) Copy the liblammps.so file to a location the system can find it,
such as /usr/local/lib. I.e. a directory already listed in your
LD\_LIBRARY\_PATH variable. You can type
.. parsed-literal::
printenv LD_LIBRARY_PATH
to see what directories are in that list.
(2) Add the LAMMPS src directory (or the directory you perform CMake
build in) to your LD\_LIBRARY\_PATH, so that the current version of the
shared library is always available to programs that use it.
For the csh or tcsh shells, you would add something like this to your
~/.cshrc file:
.. parsed-literal::
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/home/sjplimp/lammps/src
----------
**Calling the LAMMPS library**\ :
Either flavor of library (static or shared) allows one or more LAMMPS
objects to be instantiated from the calling program.
When used from a C++ program, all of LAMMPS is wrapped in a LAMMPS\_NS
namespace; you can safely use any of its classes and methods from
within the calling code, as needed.
When used from a C or Fortran program, the library has a simple
C-style interface, provided in src/library.cpp and src/library.h.
See the :doc:`Python library <Python_library>` doc page for a
description of the Python interface to LAMMPS, which wraps the C-style
interface.
See the sample codes in examples/COUPLE/simple for examples of C++ and
C and Fortran codes that invoke LAMMPS through its library interface.
Other examples in the COUPLE directory use coupling ideas discussed on
the :doc:`Howto couple <Howto_couple>` doc page.
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

94
doc/src/Build_make.rst Normal file
View File

@ -0,0 +1,94 @@
Build LAMMPS with make
======================
Building LAMMPS with traditional makefiles requires that you have a
Makefile."machine" file appropriate for your system in the src/MAKE,
src/MAKE/MACHINES, src/MAKE/OPTIONS, or src/MAKE/MINE directory (see
below). It can include various options for customizing your LAMMPS
build with a number of global compilation options and features.
To include LAMMPS packages (i.e. optional commands and styles) you
must install them first, as discussed on the :doc:`Build package <Build_package>` doc page. If the packages require
provided or external libraries, you must build those libraries before
building LAMMPS. Building :doc:`LAMMPS with CMake <Build_cmake>` can
automate all of this for many types of machines, especially
workstations, desktops and laptops, so we suggest you try it first.
These commands perform a default LAMMPS build, producing the LAMMPS
executable lmp\_serial or lmp\_mpi in lammps/src:
.. parsed-literal::
cd lammps/src
make serial # build a serial LAMMPS executable
make mpi # build a parallel LAMMPS executable with MPI
make # see a variety of make options
This initial compilation can take a long time, since LAMMPS is a large
project with many features. If your machine has multiple CPU cores
(most do these days), using a command like "make -jN mpi" (with N =
the number of available CPU cores) can be much faster. If you plan to
do development on LAMMPS or need to re-compile LAMMPS repeatedly, the
installation of the ccache (= Compiler Cache) software may speed up
compilation even more.
After the initial build, whenever you edit LAMMPS source files, or add
or remove new files to the source directory (e.g. by installing or
uninstalling packages), you must re-compile and relink the LAMMPS
executable with the same "make" command. This makefiles dependencies
should insure that only the subset of files that need to be are
re-compiled.
.. note::
When you build LAMMPS for the first time, a long list of \*.d
files will be printed out rapidly. This is not an error; it is the
Makefile doing its normal creation of dependencies.
----------
The lammps/src/MAKE tree contains all the Makefile.machine files
included in the LAMMPS distribution. Typing "make machine" uses
Makefile.machine. Thus the "make serial" or "make mpi" lines above
use Makefile.serial and Makefile.mpi. Others are in these dirs:
.. parsed-literal::
OPTIONS # Makefiles which enable specific options
MACHINES # Makefiles for specific machines
MINE # customized Makefiles you create (you may need to create this folder)
Typing "make" lists all the available Makefile.machine files. A file
with the same name can appear in multiple folders (not a good idea).
The order the dirs are searched is as follows: src/MAKE/MINE,
src/MAKE, src/MAKE/OPTIONS, src/MAKE/MACHINES. This gives preference
to a customized file you put in src/MAKE/MINE.
Makefiles you may wish to try include these (some require a package
first be installed). Many of these include specific compiler flags
for optimized performance. Please note, however, that some of these
customized machine Makefile are contributed by users. Since both
compilers, OS configurations, and LAMMPS itself keep changing, their
settings may become outdated:
.. parsed-literal::
make mac # build serial LAMMPS on a Mac
make mac_mpi # build parallel LAMMPS on a Mac
make intel_cpu # build with the USER-INTEL package optimized for CPUs
make knl # build with the USER-INTEL package optimized for KNLs
make opt # build with the OPT package optimized for CPUs
make omp # build with the USER-OMP package optimized for OpenMP
make kokkos_omp # build with the KOKKOS package for OpenMP
make kokkos_cuda_mpi # build with the KOKKOS package for GPUs
make kokkos_phi # build with the KOKKOS package for KNLs
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

265
doc/src/Build_package.rst Normal file
View File

@ -0,0 +1,265 @@
Include packages in build
=========================
In LAMMPS, a package is a group of files that enable a specific set of
features. For example, force fields for molecular systems or
rigid-body constraints are in packages. In the src directory, each
package is a sub-directory with the package name in capital letters.
An overview of packages is given on the :doc:`Packages <Packages>` doc
page. Brief overviews of each package are on the :doc:`Packages details <Packages_details>` doc page.
When building LAMMPS, you can choose to include or exclude each
package. In general there is no need to include a package if you
never plan to use its features.
If you get a run-time error that a LAMMPS command or style is
"Unknown", it is often because the command is contained in a package,
and your build did not include that package. Running LAMMPS with the
:doc:`-h command-line switch <Run_options>` will print all the included
packages and commands for that executable.
For the majority of packages, if you follow the single step below to
include it, you can then build LAMMPS exactly the same as you would
without any packages installed. A few packages may require additional
steps, as explained on the :doc:`Build extras <Build_extras>` doc page.
These links take you to the extra instructions for those select
packages:
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
| :ref:`COMPRESS <compress>` | :ref:`GPU <gpu>` | :ref:`KIM <kim>` | :ref:`KOKKOS <kokkos>` | :ref:`LATTE <latte>` | :ref:`MESSAGE <message>` |
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
| :ref:`MSCG <mscg>` | :ref:`OPT <opt>` | :ref:`POEMS <poems>` | :ref:`PYTHON <python>` | :ref:`VORONOI <voronoi>` | :ref:`USER-ADIOS <user-adios>` |
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
| :ref:`USER-ATC <user-atc>` | :ref:`USER-AWPMD <user-awpmd>` | :ref:`USER-COLVARS <user-colvars>` | :ref:`USER-H5MD <user-h5md>` | :ref:`USER-INTEL <user-intel>` | :ref:`USER-MOLFILE <user-molfile>` |
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
| :ref:`USER-NETCDF <user-netcdf>` | :ref:`USER-PLUMED <user-plumed>` | :ref:`USER-OMP <user-omp>` | :ref:`USER-QMMM <user-qmmm>` | :ref:`USER-QUIP <user-quip>` | :ref:`USER-SCAFACOS <user-scafacos>` |
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
| :ref:`USER-SMD <user-smd>` | :ref:`USER-VTK <user-vtk>` | | | | |
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
The mechanism for including packages is simple but different for CMake
versus make.
**CMake variables**\ :
.. parsed-literal::
-D PKG_NAME=value # yes or no (default)
Examples:
.. parsed-literal::
-D PKG_MANYBODY=yes
-D PKG_USER-INTEL=yes
All standard and user packages are included the same way. Note that
USER packages have a hyphen between USER and the rest of the package
name, not an underscore.
See the shortcut section below for how to install many packages at
once with CMake.
.. note::
If you toggle back and forth between building with CMake vs
make, no packages in the src directory can be installed when you
invoke cmake. CMake will give an error if that is not the case,
indicating how you can un-install all packages in the src dir.
**Traditional make**\ :
.. parsed-literal::
cd lammps/src
make ps # check which packages are currently installed
make yes-name # install a package with name
make no-name # un-install a package with name
make mpi # build LAMMPS with whatever packages are now installed
Examples:
.. parsed-literal::
make no-rigid
make yes-user-intel
All standard and user packages are included the same way.
See the shortcut section below for how to install many packages at
once with make.
.. note::
You must always re-build LAMMPS (via make) after installing or
un-installing a package, for the action to take effect.
.. note::
You cannot install or un-install packages and build LAMMPS in a
single make command with multiple targets, e.g. make yes-colloid mpi.
This is because the make procedure creates a list of source files that
will be out-of-date for the build if the package configuration changes
within the same command. You can include or exclude multiple packages
in a single make command, e.g. make yes-colloid no-manybody.
**CMake and make info**\ :
Any package can be included or excluded in a LAMMPS build, independent
of all other packages. However, some packages include files derived
from files in other packages. LAMMPS checks for this and does the
right thing. Individual files are only included if their dependencies
are already included. Likewise, if a package is excluded, other files
dependent on that package are also excluded.
When you download a LAMMPS tarball or download LAMMPS source files
from the Git or SVN repositories, no packages are pre-installed in the
src directory.
.. note::
Prior to Aug 2018, if you downloaded a tarball, 3 packages
(KSPACE, MANYBODY, MOLECULE) were pre-installed in the src directory.
That is no longer the case, so that CMake will build as-is without the
need to un-install those packages.
----------
**CMake shortcuts for installing many packages**\ :
Instead of specifying all the CMake options via the command-line,
CMake allows initializing the variable cache using script files. These
are regular CMake files which can manipulate and set variables, and
can also contain control flow constructs.
LAMMPS includes several of these files to define configuration
"presets", similar to the options that exist for the Make based
system. Using these files you can enable/disable portions of the
available packages in LAMMPS. If you need a custom preset you can take
one of them as a starting point and customize it to your needs.
+-------------------------------------------------------------+-----------------------------------------------------------+
| cmake -C ../cmake/presets/all\_on.cmake [OPTIONS] ../cmake | enable all packages |
+-------------------------------------------------------------+-----------------------------------------------------------+
| cmake -C ../cmake/presets/all\_off.cmake [OPTIONS] ../cmake | disable all packages |
+-------------------------------------------------------------+-----------------------------------------------------------+
| cmake -C ../cmake/presets/minimal.cmake [OPTIONS] ../cmake | enable just a few core packages |
+-------------------------------------------------------------+-----------------------------------------------------------+
| cmake -C ../cmake/presets/most.cmake [OPTIONS] ../cmake | enable most common packages |
+-------------------------------------------------------------+-----------------------------------------------------------+
| cmake -C ../cmake/presets/nolib.cmake [OPTIONS] ../cmake | disable packages that do require extra libraries or tools |
+-------------------------------------------------------------+-----------------------------------------------------------+
| cmake -C ../cmake/presets/clang.cmake [OPTIONS] ../cmake | change settings to use the Clang compilers by default |
+-------------------------------------------------------------+-----------------------------------------------------------+
| cmake -C ../cmake/presets/mingw.cmake [OPTIONS] ../cmake | enable all packages compatible with MinGW compilers |
+-------------------------------------------------------------+-----------------------------------------------------------+
.. note::
Running cmake this way manipulates the variable cache in your
current build directory. You can combine multiple presets and options
in a single cmake run, or change settings incrementally by running
cmake with new flags.
**Example:**
.. parsed-literal::
# build LAMMPS with most commonly used packages, but then remove
# those requiring additional library or tools, but still enable
# GPU package and configure it for using CUDA. You can run.
mkdir build
cd build
cmake -C ../cmake/presets/most.cmake -C ../cmake/presets/nolib.cmake -D PKG_GPU=on -D GPU_API=cuda ../cmake
# to add another package, say BODY to the previous configuration you can run:
cmake -D PKG_BODY=on .
# to reset the package selection from above to the default of no packages
# but leaving all other settings untouched. You can run:
cmake -C ../cmake/presets/no_all.cmake .
----------
**Make shortcuts for installing many packages**\ :
The following commands are useful for managing package source files
and their installation when building LAMMPS via traditional make.
Just type "make" in lammps/src to see a one-line summary.
These commands install/un-install sets of packages:
+-----------------------------------+-----------------------------------------------------+
| make yes-all | install all packages |
+-----------------------------------+-----------------------------------------------------+
| make no-all | un-install all packages |
+-----------------------------------+-----------------------------------------------------+
| make yes-standard or make yes-std | install standard packages |
+-----------------------------------+-----------------------------------------------------+
| make no-standard or make no-std | un-install standard packages |
+-----------------------------------+-----------------------------------------------------+
| make yes-user | install user packages |
+-----------------------------------+-----------------------------------------------------+
| make no-user | un-install user packages |
+-----------------------------------+-----------------------------------------------------+
| make yes-lib | install packages that require extra libraries |
+-----------------------------------+-----------------------------------------------------+
| make no-lib | un-install packages that require extra libraries |
+-----------------------------------+-----------------------------------------------------+
| make yes-ext | install packages that require external libraries |
+-----------------------------------+-----------------------------------------------------+
| make no-ext | un-install packages that require external libraries |
+-----------------------------------+-----------------------------------------------------+
which install/un-install various sets of packages. Typing "make
package" will list all the these commands.
.. note::
Installing or un-installing a package works by simply copying
files back and forth between the main src directory and
sub-directories with the package name (e.g. src/KSPACE, src/USER-ATC),
so that the files are included or excluded when LAMMPS is built.
The following make commands help manage files that exist in both the
src directory and in package sub-directories. You do not normally
need to use these commands unless you are editing LAMMPS files or are
:doc:`installing a patch <Install_patch>` downloaded from the LAMMPS web
site.
Type "make package-status" or "make ps" to show which packages are
currently installed. For those that are installed, it will list any
files that are different in the src directory and package
sub-directory.
Type "make package-installed" or "make pi" to show which packages are
currently installed, without listing the status of packages that are
not installed.
Type "make package-update" or "make pu" to overwrite src files with
files from the package sub-directories if the package is installed.
It should be used after a :doc:`patch has been applied <Install_patch>`,
since patches only update the files in the package sub-directory, but
not the src files.
Type "make package-overwrite" to overwrite files in the package
sub-directories with src files.
Type "make package-diff" to list all differences between pairs of
files in both the src dir and a package dir.
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

479
doc/src/Build_settings.rst Normal file
View File

@ -0,0 +1,479 @@
Optional build settings
=======================
LAMMPS can be built with several optional settings. Each sub-section
explain how to do this for building both with CMake and make.
| :ref:`C++11 standard compliance test <cxx11>` when building all of LAMMPS
| :ref:`FFT library <fft>` for use with the :doc:`kspace\_style pppm <kspace_style>` command
| :ref:`Size of LAMMPS data types <size>`
| :ref:`Read or write compressed files <gzip>`
| :ref:`Output of JPG and PNG files <graphics>` via the :doc:`dump image <dump_image>` command
| :ref:`Output of movie files <graphics>` via the :doc:`dump\_movie <dump_image>` command
| :ref:`Memory allocation alignment <align>`
| :ref:`Workaround for long long integers <longlong>`
| :ref:`Error handling exceptions <exceptions>` when using LAMMPS as a library
|
----------
.. _cxx11:
C++11 standard compliance test
------------------------------------------
The LAMMPS developers plan to transition to make the C++11 standard the
minimum requirement for compiling LAMMPS. Currently this only applies to
some packages like KOKKOS while the rest aims to be compatible with the C++98
standard. Most currently used compilers are compatible with C++11; some need
to set extra flags to switch. To determine the impact of requiring C++11,
we have added a simple compliance test to the source code, that will cause
the compilation to abort, if C++11 compliance is not available or enabled.
To bypass this check, you need to change a setting in the makefile or
when calling CMake.
**CMake variable**\ :
.. parsed-literal::
-D DISABLE_CXX11_REQUIREMENT=yes
You can set additional C++ compiler flags (beyond those selected by CMake)
through the CMAKE\_CXX\_FLAGS variable. Example for CentOS 7:
.. parsed-literal::
-D CMAKE_CXX_FLAGS="-O3 -g -fopenmp -DNDEBUG -std=c++11"
**Makefile.machine setting**\ :
.. parsed-literal::
LMP_INC = -DLAMMPS_CXX98
----------
.. _fft:
FFT library
---------------------
When the KSPACE package is included in a LAMMPS build, the
:doc:`kspace\_style pppm <kspace_style>` command performs 3d FFTs which
require use of an FFT library to compute 1d FFTs. The KISS FFT
library is included with LAMMPS but other libraries can be faster.
LAMMPS can use them if they are available on your system.
**CMake variables**\ :
.. parsed-literal::
-D FFT=value # FFTW3 or MKL or KISS, default is FFTW3 if found, else KISS
-D FFT_SINGLE=value # yes or no (default), no = double precision
-D FFT_PACK=value # array (default) or pointer or memcpy
.. note::
The values for the FFT variable must be in upper-case. This is
an exception to the rule that all CMake variables can be specified
with lower-case values.
Usually these settings are all that is needed. If CMake cannot find
the FFT library, you can set these variables:
.. parsed-literal::
-D FFTW3_INCLUDE_DIRS=path # path to FFTW3 include files
-D FFTW3_LIBRARIES=path # path to FFTW3 libraries
-D MKL_INCLUDE_DIRS=path # ditto for Intel MKL library
-D MKL_LIBRARIES=path
**Makefile.machine settings**\ :
.. parsed-literal::
FFT_INC = -DFFT_FFTW3 # -DFFT_FFTW3, -DFFT_FFTW (same as -DFFT_FFTW3), -DFFT_MKL, or -DFFT_KISS
# default is KISS if not specified
FFT_INC = -DFFT_SINGLE # do not specify for double precision
FFT_INC = -DFFT_PACK_ARRAY # or -DFFT_PACK_POINTER or -DFFT_PACK_MEMCPY
# default is FFT\_PACK\_ARRAY if not specified
.. parsed-literal::
FFT_INC = -I/usr/local/include
FFT_PATH = -L/usr/local/lib
FFT_LIB = -lfftw3 # FFTW3 double precision
FFT_LIB = -lfftw3 -lfftw3f # FFTW3 single precision
FFT_LIB = -lmkl_intel_lp64 -lmkl_sequential -lmkl_core # MKL with Intel compiler
FFT_LIB = -lmkl_gf_lp64 -lmkl_sequential -lmkl_core # MKL with GNU compier
As with CMake, you do not need to set paths in FFT\_INC or FFT\_PATH, if
make can find the FFT header and library files. You must specify
FFT\_LIB with the appropriate FFT libraries to include in the link.
**CMake and make info**\ :
The `KISS FFT library <http://kissfft.sf.net>`_ is included in the LAMMPS
distribution. It is portable across all platforms. Depending on the
size of the FFTs and the number of processors used, the other
libraries listed here can be faster.
However, note that long-range Coulombics are only a portion of the
per-timestep CPU cost, FFTs are only a portion of long-range
Coulombics, and 1d FFTs are only a portion of the FFT cost (parallel
communication can be costly). A breakdown of these timings is printed
to the screen at the end of a run using the :doc:`kspace\_style pppm <kspace_style>` command. The :doc:`Run output <Run_output>`
doc page gives more details.
FFTW is a fast, portable FFT library that should also work on any
platform and can be faster than the KISS FFT library. You can
download it from `www.fftw.org <http://www.fftw.org>`_. LAMMPS requires
version 3.X; the legacy version 2.1.X is no longer supported.
Building FFTW for your box should be as simple as ./configure; make;
make install. The install command typically requires root privileges
(e.g. invoke it via sudo), unless you specify a local directory with
the "--prefix" option of configure. Type "./configure --help" to see
various options.
The Intel MKL math library is part of the Intel compiler suite. It
can be used with the Intel or GNU compiler (see FFT\_LIB setting above).
Performing 3d FFTs in parallel can be time consuming due to data
access and required communication. This cost can be reduced by
performing single-precision FFTs instead of double precision. Single
precision means the real and imaginary parts of a complex datum are
4-byte floats. Double precision means they are 8-byte doubles. Note
that Fourier transform and related PPPM operations are somewhat less
sensitive to floating point truncation errors and thus the resulting
error is less than the difference in precision. Using the -DFFT\_SINGLE
setting trades off a little accuracy for reduced memory use and
parallel communication costs for transposing 3d FFT data.
When using -DFFT\_SINGLE with FFTW3 you may need to build the FFTW
library a second time with support for single-precision.
For FFTW3, do the following, which should produce the additional
library libfftw3f.a
.. parsed-literal::
make clean
./configure --enable-single; make; make install
Performing 3d FFTs requires communication to transpose the 3d FFT
grid. The data packing/unpacking for this can be done in one of 3
modes (ARRAY, POINTER, MEMCPY) as set by the FFT\_PACK syntax above.
Depending on the machine, the size of the FFT grid, the number of
processors used, one option may be slightly faster. The default is
ARRAY mode.
----------
.. _size:
Size of LAMMPS data types
------------------------------------
LAMMPS has a few integer data types which can be defined as 4-byte or
8-byte integers. The default setting of "smallbig" is almost always
adequate.
**CMake variable**\ :
.. parsed-literal::
-D LAMMPS_SIZES=value # smallbig (default) or bigbig or smallsmall
**Makefile.machine setting**\ :
.. parsed-literal::
LMP_INC = -DLAMMPS_SMALLBIG # or -DLAMMPS_BIGBIG or -DLAMMPS_SMALLSMALL
# default is LAMMPS\_SMALLBIG if not specified
**CMake and make info**\ :
The default "smallbig" setting allows for simulations with:
* total atom count = 2\^63 atoms (about 9e18)
* total timesteps = 2\^63 (about 9e18)
* atom IDs = 2\^31 (about 2 billion)
* image flags = roll over at 512
The "bigbig" setting increases the latter two limits. It allows for:
* total atom count = 2\^63 atoms (about 9e18)
* total timesteps = 2\^63 (about 9e18)
* atom IDs = 2\^63 (about 9e18)
* image flags = roll over at about 1 million (2\^20)
The "smallsmall" setting is only needed if your machine does not
support 8-byte integers. It allows for:
* total atom count = 2\^31 atoms (about 2 billion)
* total timesteps = 2\^31 (about 2 billion)
* atom IDs = 2\^31 (about 2 billion)
* image flags = roll over at 512 (2\^9)
Atom IDs are not required for atomic systems which do not store bond
topology information, though IDs are enabled by default. The
:doc:`atom\_modify id no <atom_modify>` command will turn them off. Atom
IDs are required for molecular systems with bond topology (bonds,
angles, dihedrals, etc). Thus if you model a molecular system with
more than 2 billion atoms, you need the "bigbig" setting.
Image flags store 3 values per atom which count the number of times an
atom has moved through the periodic box in each dimension. See the
:doc:`dump <dump>` doc page for a discussion. If an atom moves through
the periodic box more than this limit, the value will "roll over",
e.g. from 511 to -512, which can cause diagnostics like the
mean-squared displacement, as calculated by the :doc:`compute msd <compute_msd>` command, to be faulty.
Note that the USER-ATC package and the USER-INTEL package are currently
not compatible with the "bigbig" setting. Also, there are limitations
when using the library interface. Some functions with known issues
have been replaced by dummy calls printing a corresponding error rather
than crashing randomly or corrupting data.
Also note that the GPU package requires its lib/gpu library to be
compiled with the same size setting, or the link will fail. A CMake
build does this automatically. When building with make, the setting
in whichever lib/gpu/Makefile is used must be the same as above.
----------
.. _graphics:
Output of JPG, PNG, and movie files
--------------------------------------------------
The :doc:`dump image <dump_image>` command has options to output JPEG or
PNG image files. Likewise the :doc:`dump movie <dump_image>` command
outputs movie files in MPEG format. Using these options requires the
following settings:
**CMake variables**\ :
.. parsed-literal::
-D WITH_JPEG=value # yes or no
# default = yes if CMake finds JPEG files, else no
-D WITH_PNG=value # yes or no
# default = yes if CMake finds PNG and ZLIB files, else no
-D WITH_FFMPEG=value # yes or no
# default = yes if CMake can find ffmpeg, else no
Usually these settings are all that is needed. If CMake cannot find
the graphics header, library, executable files, you can set these
variables:
.. parsed-literal::
-D JPEG_INCLUDE_DIR=path # path to jpeglib.h header file
-D JPEG_LIBRARIES=path # path to libjpeg.a (.so) file
-D PNG_INCLUDE_DIR=path # path to png.h header file
-D PNG_LIBRARIES=path # path to libpng.a (.so) file
-D ZLIB_INCLUDE_DIR=path # path to zlib.h header file
-D ZLIB_LIBRARIES=path # path to libz.a (.so) file
-D FFMPEG_EXECUTABLE=path # path to ffmpeg executable
**Makefile.machine settings**\ :
.. parsed-literal::
LMP_INC = -DLAMMPS_JPEG
LMP_INC = -DLAMMPS_PNG
LMP_INC = -DLAMMPS_FFMPEG
JPG_INC = -I/usr/local/include # path to jpeglib.h, png.h, zlib.h header files if make cannot find them
JPG_PATH = -L/usr/lib # paths to libjpeg.a, libpng.a, libz.a (.so) files if make cannot find them
JPG_LIB = -ljpeg -lpng -lz # library names
As with CMake, you do not need to set JPG\_INC or JPG\_PATH, if make can
find the graphics header and library files. You must specify JPG\_LIB
with a list of graphics libraries to include in the link. You must
insure ffmpeg is in a directory where LAMMPS can find it at runtime,
i.e. a dir in your PATH environment variable.
**CMake and make info**\ :
Using ffmpeg to output movie files requires that your machine
supports the "popen" function in the standard runtime library.
.. note::
On some clusters with high-speed networks, using the fork()
library calls (required by popen()) can interfere with the fast
communication library and lead to simulations using ffmpeg to hang or
crash.
----------
.. _gzip:
Read or write compressed files
-----------------------------------------
If this option is enabled, large files can be read or written with
gzip compression by several LAMMPS commands, including
:doc:`read\_data <read_data>`, :doc:`rerun <rerun>`, and :doc:`dump <dump>`.
**CMake variables**\ :
.. parsed-literal::
-D WITH_GZIP=value # yes or no
# default is yes if CMake can find gzip, else no
-D GZIP_EXECUTABLE=path # path to gzip executable if CMake cannot find it
**Makefile.machine setting**\ :
.. parsed-literal::
LMP_INC = -DLAMMPS_GZIP
**CMake and make info**\ :
This option requires that your machine supports the "popen()" function
in the standard runtime library and that a gzip executable can be
found by LAMMPS during a run.
.. note::
On some clusters with high-speed networks, using the fork()
library calls (required by popen()) can interfere with the fast
communication library and lead to simulations using compressed output
or input to hang or crash. For selected operations, compressed file
I/O is also available using a compression library instead, which is
what the :ref:`COMPRESS package <PKG-COMPRESS>` enables.
----------
.. _align:
Memory allocation alignment
---------------------------------------
This setting enables the use of the posix\_memalign() call instead of
malloc() when LAMMPS allocates large chunks or memory. This can make
vector instructions on CPUs more efficient, if dynamically allocated
memory is aligned on larger-than-default byte boundaries.
On most current systems, the malloc() implementation returns
pointers that are aligned to 16-byte boundaries. Using SSE vector
instructions efficiently, however, requires memory blocks being
aligned on 64-byte boundaries.
**CMake variable**\ :
.. parsed-literal::
-D LAMMPS_MEMALIGN=value # 0, 8, 16, 32, 64 (default)
Use a LAMMPS\_MEMALIGN value of 0 to disable using posix\_memalign()
and revert to using the malloc() C-library function instead. When
compiling LAMMPS for Windows systems, malloc() will always be used
and this setting ignored.
**Makefile.machine setting**\ :
.. parsed-literal::
LMP_INC = -DLAMMPS_MEMALIGN=value # 8, 16, 32, 64
Do not set -DLAMMPS\_MEMALIGN, if you want to have memory allocated
with the malloc() function call instead. -DLAMMPS\_MEMALIGN **cannot**
be used on Windows, as it does use different function calls for
allocating aligned memory, that are not compatible with how LAMMPS
manages its dynamical memory.
----------
.. _longlong:
Workaround for long long integers
------------------------------------------------
If your system or MPI version does not recognize "long long" data
types, the following setting will be needed. It converts "long long"
to a "long" data type, which should be the desired 8-byte integer on
those systems:
**CMake variable**\ :
.. parsed-literal::
-D LAMMPS_LONGLONG_TO_LONG=value # yes or no (default)
**Makefile.machine setting**\ :
.. parsed-literal::
LMP_INC = -DLAMMPS_LONGLONG_TO_LONG
----------
.. _exceptions:
Exception handling when using LAMMPS as a library
------------------------------------------------------------------
This setting is useful when external codes drive LAMMPS as a library.
With this option enabled LAMMPS errors do not kill the caller.
Instead, the call stack is unwound and control returns to the caller,
e.g. to Python.
**CMake variable**\ :
.. parsed-literal::
-D LAMMPS_EXCEPTIONS=value # yes or no (default)
**Makefile.machine setting**\ :
.. parsed-literal::
LMP_INC = -DLAMMPS_EXCEPTIONS
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

111
doc/src/Build_windows.rst Normal file
View File

@ -0,0 +1,111 @@
Notes for building LAMMPS on Windows
====================================
* :ref:`General remarks <generic>`
* :ref:`Running Linux on Windows <linux>`
* :ref:`Using GNU GCC ported to Windows <gnu>`
* :ref:`Using a cross-compiler <cross>`
----------
.. _generic:
General remarks
-----------------------------
LAMMPS is developed and tested primarily on Linux machines. The vast
majority of HPC clusters and supercomputers today runs on Linux as well.
Thus portability to other platforms is desired, but not always achieved.
The LAMMPS developers strongly rely on LAMMPS users giving feedback and
providing assistance in resolving portability issues. This particularly
true for compiling LAMMPS on Windows, since this platform has significant
differences with some low-level functionality.
.. _linux:
Running Linux on Windows
------------------------------------
So before trying to build LAMMPS on Windows, please consider if using
the pre-compiled Windows binary packages are sufficient for your needs
(as an aside, those packages themselves are build on a Linux machine
using cross-compilers). If it is necessary for your to compile LAMMPS
on a Windows machine (e.g. because it is your main desktop), please also
consider using a virtual machine software and run a Linux virtual machine,
or - if have a recently updated Windows 10 installation - consider using
the Windows subsystem for Linux, which allows to run a bash shell from
Ubuntu and from there on, you can pretty much use that shell like you
are running on an Ubuntu Linux machine (e.g. installing software via
apt-get). For more details on that, please see :doc:`this tutorial <Howto_bash>`
.. _gnu:
Using GNU GCC ported to Windows
-----------------------------------------
One option for compiling LAMMPS on Windows natively, that has been known
to work in the past is to install a bash shell, unix shell utilities,
perl, GNU make, and a GNU compiler ported to Windows. The Cygwin package
provides a unix/linux interface to low-level Windows functions, so LAMMPS
can be compiled on Windows. The necessary (minor) modifications to LAMMPS
are included, but may not always up-to-date for recently added functionality
and the corresponding new code. A machine makefile for using cygwin for
the old build system is provided. Using CMake for this mode of compilation
is untested and not likely to work.
When compiling for Windows do **not** set the -DLAMMPS\_MEMALIGN define
in the LMP\_INC makefile variable and add -lwsock32 -lpsapi to the linker
flags in LIB makefile variable. Try adding -static-libgcc or -static or
both to the linker flags when your resulting LAMMPS Windows executable
complains about missing .dll files. The CMake configuration should set
this up automatically, but is untested.
In case of problems, you are recommended to contact somebody with
experience in using cygwin. If you do come across portability problems
requiring changes to the LAMMPS source code, or figure out corrections
yourself, please report them on the lammps-users mailing list, or file
them as an issue or pull request on the LAMMPS GitHub project.
.. _cross:
Using a cross-compiler
----------------------------------
If you need to provide custom LAMMPS binaries for Windows, but do not
need to do the compilation on Windows, please consider using a Linux
to Windows cross-compiler. This is how currently the Windows binary
packages are created by the LAMMPS developers. Because of that, this is
probably the currently best tested and supported way to build LAMMPS
executables for Windows. There are makefiles provided for the
traditional build system, but CMake has also been successfully tested
using the mingw32-cmake and mingw64-cmake wrappers that are bundled
with the cross-compiler environment on Fedora machines. A CMake preset
selecting all packages compatible with this cross-compilation build
is provided. You likely need to disable the GPU package unless you
download and install the contents of the pre-compiled `OpenCL ICD loader library <https://download.lammps.org/thirdparty/opencl-win-devel.tar.gz>`_
into your MinGW64 cross-compiler environment. The cross-compilation
currently will only produce non-MPI serial binaries.
Please keep in mind, though, that this only applies to compiling LAMMPS.
Whether the resulting binaries do work correctly is no tested by the
LAMMPS developers. We instead rely on the feedback of the users
of these pre-compiled LAMMPS packages for Windows. We will try to resolve
issues to the best of our abilities if we become aware of them. However
this is subject to time constraints and focus on HPC platforms.
.. _native:
Native Visual C++ support
--------------------------------------
Support for the Visual C++ compilers is currently not available. The
CMake build system is capable of creating suitable a Visual Studio
style build environment, but the LAMMPS code itself is not fully ported
to support Visual C++. Volunteers to take on this task are welcome.
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

34
doc/src/Commands.rst Normal file
View File

@ -0,0 +1,34 @@
Commands
********
These pages describe how a LAMMPS input script is formatted and the
commands in it are used to define a LAMMPS simulation.
.. toctree::
:maxdepth: 1
Commands_input
Commands_parse
Commands_structure
Commands_category
.. toctree::
:maxdepth: 1
Commands_all
Commands_fix
Commands_compute
Commands_pair
Commands_bond
Commands_kspace
.. toctree::
:maxdepth: 1
Commands_removed
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

59
doc/src/Commands_all.rst Normal file
View File

@ -0,0 +1,59 @@
+----------------------------------------+------------------------------------+------------------------------------------+
| :doc:`General commands <Commands_all>` | :doc:`Fix styles <Commands_fix>` | :doc:`Compute styles <Commands_compute>` |
+----------------------------------------+------------------------------------+------------------------------------------+
| :doc:`Pair styles <Commands_pair>` | :doc:`Bond styles <Commands_bond>` | :ref:`Angle styles <angle>` |
+----------------------------------------+------------------------------------+------------------------------------------+
| :ref:`Dihedral styles <dihedral>` | :ref:`Improper styles <improper>` | :doc:`KSpace styles <Commands_kspace>` |
+----------------------------------------+------------------------------------+------------------------------------------+
General commands
================
An alphabetic list of all general LAMMPS commands.
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`angle\_coeff <angle_coeff>` | :doc:`angle\_style <angle_style>` | :doc:`atom\_modify <atom_modify>` | :doc:`atom\_style <atom_style>` | :doc:`balance <balance>` | :doc:`bond\_coeff <bond_coeff>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`bond\_style <bond_style>` | :doc:`bond\_write <bond_write>` | :doc:`boundary <boundary>` | :doc:`box <box>` | :doc:`change\_box <change_box>` | :doc:`clear <clear>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`comm\_modify <comm_modify>` | :doc:`comm\_style <comm_style>` | :doc:`compute <compute>` | :doc:`compute\_modify <compute_modify>` | :doc:`create\_atoms <create_atoms>` | :doc:`create\_bonds <create_bonds>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`create\_box <create_box>` | :doc:`delete\_atoms <delete_atoms>` | :doc:`delete\_bonds <delete_bonds>` | :doc:`dielectric <dielectric>` | :doc:`dihedral\_coeff <dihedral_coeff>` | :doc:`dihedral\_style <dihedral_style>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`dimension <dimension>` | :doc:`displace\_atoms <displace_atoms>` | :doc:`dump <dump>` | :doc:`dump adios <dump_adios>` | :doc:`dump image <dump_image>` | :doc:`dump movie <dump_image>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`dump netcdf <dump_netcdf>` | :doc:`dump netcdf/mpiio <dump_netcdf>` | :doc:`dump vtk <dump_vtk>` | :doc:`dump\_modify <dump_modify>` | :doc:`dynamical\_matrix <dynamical_matrix>` | :doc:`echo <echo>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`fix <fix>` | :doc:`fix\_modify <fix_modify>` | :doc:`group <group>` | :doc:`group2ndx <group2ndx>` | :doc:`hyper <hyper>` | :doc:`if <if>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`info <info>` | :doc:`improper\_coeff <improper_coeff>` | :doc:`improper\_style <improper_style>` | :doc:`include <include>` | :doc:`jump <jump>` | :doc:`kim\_init <kim_commands>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`kim\_interactions <kim_commands>` | :doc:`kim\_query <kim_commands>` | :doc:`kspace\_modify <kspace_modify>` | :doc:`kspace\_style <kspace_style>` | :doc:`label <label>` | :doc:`lattice <lattice>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`log <log>` | :doc:`mass <mass>` | :doc:`message <message>` | :doc:`minimize <minimize>` | :doc:`min\_modify <min_modify>` | :doc:`min\_style <min_style>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`min\_style spin <min_spin>` | :doc:`molecule <molecule>` | :doc:`ndx2group <group2ndx>` | :doc:`neb <neb>` | :doc:`neb/spin <neb_spin>` | :doc:`neigh\_modify <neigh_modify>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`neighbor <neighbor>` | :doc:`newton <newton>` | :doc:`next <next>` | :doc:`package <package>` | :doc:`pair\_coeff <pair_coeff>` | :doc:`pair\_modify <pair_modify>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`pair\_style <pair_style>` | :doc:`pair\_write <pair_write>` | :doc:`partition <partition>` | :doc:`prd <prd>` | :doc:`print <print>` | :doc:`processors <processors>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`python <python>` | :doc:`quit <quit>` | :doc:`read\_data <read_data>` | :doc:`read\_dump <read_dump>` | :doc:`read\_restart <read_restart>` | :doc:`region <region>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`replicate <replicate>` | :doc:`rerun <rerun>` | :doc:`reset\_ids <reset_ids>` | :doc:`reset\_timestep <reset_timestep>` | :doc:`restart <restart>` | :doc:`run <run>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`run\_style <run_style>` | :doc:`server <server>` | :doc:`set <set>` | :doc:`shell <shell>` | :doc:`special\_bonds <special_bonds>` | :doc:`suffix <suffix>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`tad <tad>` | :doc:`temper <temper>` | :doc:`temper/grem <temper_grem>` | :doc:`temper/npt <temper_npt>` | :doc:`thermo <thermo>` | :doc:`thermo\_modify <thermo_modify>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`thermo\_style <thermo_style>` | :doc:`third\_order <third_order>` | :doc:`timer <timer>` | :doc:`timestep <timestep>` | :doc:`uncompute <uncompute>` | :doc:`undump <undump>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`unfix <unfix>` | :doc:`units <units>` | :doc:`variable <variable>` | :doc:`velocity <velocity>` | :doc:`write\_coeff <write_coeff>` | :doc:`write\_data <write_data>` |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
| :doc:`write\_dump <write_dump>` | :doc:`write\_restart <write_restart>` | | | | |
+-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+---------------------------------------------+-----------------------------------------+
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

112
doc/src/Commands_bond.rst Normal file
View File

@ -0,0 +1,112 @@
.. _bond:
Bond\_style potentials
=================================
All LAMMPS :doc:`bond\_style <bond_style>` commands. Some styles have
accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
OPT.
+---------------------------------------+-------------------------------------------------+---------------------------------------------------------+---------------------------------+
| :doc:`none <bond_none>` | :doc:`zero <bond_zero>` | :doc:`hybrid <bond_hybrid>` | |
+---------------------------------------+-------------------------------------------------+---------------------------------------------------------+---------------------------------+
| | | | |
+---------------------------------------+-------------------------------------------------+---------------------------------------------------------+---------------------------------+
| :doc:`class2 (ko) <bond_class2>` | :doc:`fene (iko) <bond_fene>` | :doc:`fene/expand (o) <bond_fene_expand>` | :doc:`gromos (o) <bond_gromos>` |
+---------------------------------------+-------------------------------------------------+---------------------------------------------------------+---------------------------------+
| :doc:`harmonic (iko) <bond_harmonic>` | :doc:`harmonic/shift (o) <bond_harmonic_shift>` | :doc:`harmonic/shift/cut (o) <bond_harmonic_shift_cut>` | :doc:`mm3 <bond_mm3>` |
+---------------------------------------+-------------------------------------------------+---------------------------------------------------------+---------------------------------+
| :doc:`morse (o) <bond_morse>` | :doc:`nonlinear (o) <bond_nonlinear>` | :doc:`oxdna/fene <bond_oxdna>` | :doc:`oxdna2/fene <bond_oxdna>` |
+---------------------------------------+-------------------------------------------------+---------------------------------------------------------+---------------------------------+
| :doc:`quartic (o) <bond_quartic>` | :doc:`table (o) <bond_table>` | | |
+---------------------------------------+-------------------------------------------------+---------------------------------------------------------+---------------------------------+
----------
.. _angle:
Angle\_style potentials
===================================
All LAMMPS :doc:`angle\_style <angle_style>` commands. Some styles have
accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
OPT.
+------------------------------------------------------+--------------------------------------------------+----------------------------------------------------+----------------------------------------------+
| :doc:`none <angle_none>` | :doc:`zero <angle_zero>` | :doc:`hybrid <angle_hybrid>` | |
+------------------------------------------------------+--------------------------------------------------+----------------------------------------------------+----------------------------------------------+
| | | | |
+------------------------------------------------------+--------------------------------------------------+----------------------------------------------------+----------------------------------------------+
| :doc:`charmm (iko) <angle_charmm>` | :doc:`class2 (ko) <angle_class2>` | :doc:`class2/p6 <angle_class2>` | :doc:`cosine (ko) <angle_cosine>` |
+------------------------------------------------------+--------------------------------------------------+----------------------------------------------------+----------------------------------------------+
| :doc:`cosine/buck6d <angle_cosine_buck6d>` | :doc:`cosine/delta (o) <angle_cosine_delta>` | :doc:`cosine/periodic (o) <angle_cosine_periodic>` | :doc:`cosine/shift (o) <angle_cosine_shift>` |
+------------------------------------------------------+--------------------------------------------------+----------------------------------------------------+----------------------------------------------+
| :doc:`cosine/shift/exp (o) <angle_cosine_shift_exp>` | :doc:`cosine/squared (o) <angle_cosine_squared>` | :doc:`cross <angle_cross>` | :doc:`dipole (o) <angle_dipole>` |
+------------------------------------------------------+--------------------------------------------------+----------------------------------------------------+----------------------------------------------+
| :doc:`fourier (o) <angle_fourier>` | :doc:`fourier/simple (o) <angle_fourier_simple>` | :doc:`harmonic (iko) <angle_harmonic>` | :doc:`mm3 <angle_mm3>` |
+------------------------------------------------------+--------------------------------------------------+----------------------------------------------------+----------------------------------------------+
| :doc:`quartic (o) <angle_quartic>` | :doc:`sdk (o) <angle_sdk>` | :doc:`table (o) <angle_table>` | |
+------------------------------------------------------+--------------------------------------------------+----------------------------------------------------+----------------------------------------------+
----------
.. _dihedral:
Dihedral\_style potentials
=========================================
All LAMMPS :doc:`dihedral\_style <dihedral_style>` commands. Some styles
have accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
OPT.
+-------------------------------------------+-------------------------------------------+-------------------------------------------+---------------------------------------------------------+
| :doc:`none <dihedral_none>` | :doc:`zero <dihedral_zero>` | :doc:`hybrid <dihedral_hybrid>` | |
+-------------------------------------------+-------------------------------------------+-------------------------------------------+---------------------------------------------------------+
| | | | |
+-------------------------------------------+-------------------------------------------+-------------------------------------------+---------------------------------------------------------+
| :doc:`charmm (iko) <dihedral_charmm>` | :doc:`charmmfsw <dihedral_charmm>` | :doc:`class2 (ko) <dihedral_class2>` | :doc:`cosine/shift/exp (o) <dihedral_cosine_shift_exp>` |
+-------------------------------------------+-------------------------------------------+-------------------------------------------+---------------------------------------------------------+
| :doc:`fourier (io) <dihedral_fourier>` | :doc:`harmonic (iko) <dihedral_harmonic>` | :doc:`helix (o) <dihedral_helix>` | :doc:`multi/harmonic (o) <dihedral_multi_harmonic>` |
+-------------------------------------------+-------------------------------------------+-------------------------------------------+---------------------------------------------------------+
| :doc:`nharmonic (o) <dihedral_nharmonic>` | :doc:`opls (iko) <dihedral_opls>` | :doc:`quadratic (o) <dihedral_quadratic>` | :doc:`spherical <dihedral_spherical>` |
+-------------------------------------------+-------------------------------------------+-------------------------------------------+---------------------------------------------------------+
| :doc:`table (o) <dihedral_table>` | :doc:`table/cut <dihedral_table_cut>` | | |
+-------------------------------------------+-------------------------------------------+-------------------------------------------+---------------------------------------------------------+
----------
.. _improper:
Improper\_style potentials
=========================================
All LAMMPS :doc:`improper\_style <improper_style>` commands. Some styles
have accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
OPT.
+--------------------------------------+-----------------------------------------+-------------------------------------------+---------------------------------------------------------+
| :doc:`none <improper_none>` | :doc:`zero <improper_zero>` | :doc:`hybrid <improper_hybrid>` | |
+--------------------------------------+-----------------------------------------+-------------------------------------------+---------------------------------------------------------+
| | | | |
+--------------------------------------+-----------------------------------------+-------------------------------------------+---------------------------------------------------------+
| :doc:`class2 (ko) <improper_class2>` | :doc:`cossq (o) <improper_cossq>` | :doc:`cvff (io) <improper_cvff>` | :doc:`distance <improper_distance>` |
+--------------------------------------+-----------------------------------------+-------------------------------------------+---------------------------------------------------------+
| :doc:`distharm <improper_distharm>` | :doc:`fourier (o) <improper_fourier>` | :doc:`harmonic (iko) <improper_harmonic>` | :doc:`inversion/harmonic <improper_inversion_harmonic>` |
+--------------------------------------+-----------------------------------------+-------------------------------------------+---------------------------------------------------------+
| :doc:`ring (o) <improper_ring>` | :doc:`sqdistharm <improper_sqdistharm>` | :doc:`umbrella (o) <improper_umbrella>` | |
+--------------------------------------+-----------------------------------------+-------------------------------------------+---------------------------------------------------------+
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

View File

@ -0,0 +1,137 @@
Commands by category
====================
This page lists most of the LAMMPS commands, grouped by category. The
:doc:`General commands <Commands_all>` doc page lists all general commands
alphabetically. Style options for entries like fix, compute, pair etc.
have their own pages where they are listed alphabetically.
Initialization:
* :doc:`newton <newton>`,
* :doc:`package <package>`,
* :doc:`processors <processors>`,
* :doc:`suffix <suffix>`,
* :doc:`units <units>`
Setup simulation box:
* :doc:`boundary <boundary>`,
* :doc:`box <box>`,
* :doc:`change\_box <change_box>`,
* :doc:`create\_box <create_box>`,
* :doc:`dimension <dimension>`,
* :doc:`lattice <lattice>`,
* :doc:`region <region>`
Setup atoms:
* :doc:`atom\_modify <atom_modify>`,
* :doc:`atom\_style <atom_style>`,
* :doc:`balance <balance>`,
* :doc:`create\_atoms <create_atoms>`,
* :doc:`create\_bonds <create_bonds>`,
* :doc:`delete\_atoms <delete_atoms>`,
* :doc:`delete\_bonds <delete_bonds>`,
* :doc:`displace\_atoms <displace_atoms>`,
* :doc:`group <group>`,
* :doc:`mass <mass>`,
* :doc:`molecule <molecule>`,
* :doc:`read\_data <read_data>`,
* :doc:`read\_dump <read_dump>`,
* :doc:`read\_restart <read_restart>`,
* :doc:`replicate <replicate>`,
* :doc:`set <set>`,
* :doc:`velocity <velocity>`
Force fields:
* :doc:`angle\_coeff <angle_coeff>`,
* :doc:`angle\_style <angle_style>`,
* :doc:`bond\_coeff <bond_coeff>`,
* :doc:`bond\_style <bond_style>`,
* :doc:`bond\_write <bond_write>`,
* :doc:`dielectric <dielectric>`,
* :doc:`dihedral\_coeff <dihedral_coeff>`,
* :doc:`dihedral\_style <dihedral_style>`,
* :doc:`improper\_coeff <improper_coeff>`,
* :doc:`improper\_style <improper_style>`,
* :doc:`kspace\_modify <kspace_modify>`,
* :doc:`kspace\_style <kspace_style>`,
* :doc:`pair\_coeff <pair_coeff>`,
* :doc:`pair\_modify <pair_modify>`,
* :doc:`pair\_style <pair_style>`,
* :doc:`pair\_write <pair_write>`,
* :doc:`special\_bonds <special_bonds>`
Settings:
* :doc:`comm\_modify <comm_modify>`,
* :doc:`comm\_style <comm_style>`,
* :doc:`info <info>`,
* :doc:`min\_modify <min_modify>`,
* :doc:`min\_style <min_style>`,
* :doc:`neigh\_modify <neigh_modify>`,
* :doc:`neighbor <neighbor>`,
* :doc:`partition <partition>`,
* :doc:`reset\_timestep <reset_timestep>`,
* :doc:`run\_style <run_style>`,
* :doc:`timer <timer>`,
* :doc:`timestep <timestep>`
Operations within timestepping (fixes) and diagnostics (computes):
* :doc:`compute <compute>`,
* :doc:`compute\_modify <compute_modify>`,
* :doc:`fix <fix>`,
* :doc:`fix\_modify <fix_modify>`,
* :doc:`uncompute <uncompute>`,
* :doc:`unfix <unfix>`
Output:
* :doc:`dump image <dump_image>`,
* :doc:`dump movie <dump_image>`,
* :doc:`dump <dump>`,
* :doc:`dump\_modify <dump_modify>`,
* :doc:`restart <restart>`,
* :doc:`thermo <thermo>`,
* :doc:`thermo\_modify <thermo_modify>`,
* :doc:`thermo\_style <thermo_style>`,
* :doc:`undump <undump>`,
* :doc:`write\_coeff <write_coeff>`,
* :doc:`write\_data <write_data>`,
* :doc:`write\_dump <write_dump>`,
* :doc:`write\_restart <write_restart>`
Actions:
* :doc:`minimize <minimize>`,
* :doc:`neb <neb>`,
* :doc:`neb\_spin <neb_spin>`,
* :doc:`prd <prd>`,
* :doc:`rerun <rerun>`,
* :doc:`run <run>`,
* :doc:`tad <tad>`,
* :doc:`temper <temper>`
Input script control:
* :doc:`clear <clear>`,
* :doc:`echo <echo>`,
* :doc:`if <if>`,
* :doc:`include <include>`,
* :doc:`jump <jump>`,
* :doc:`label <label>`,
* :doc:`log <log>`,
* :doc:`next <next>`,
* :doc:`print <print>`,
* :doc:`python <python>`,
* :doc:`quit <quit>`,
* :doc:`shell <shell>`,
* :doc:`variable <variable>`
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

View File

@ -0,0 +1,70 @@
+----------------------------------------+------------------------------------+------------------------------------------+
| :doc:`General commands <Commands_all>` | :doc:`Fix styles <Commands_fix>` | :doc:`Compute styles <Commands_compute>` |
+----------------------------------------+------------------------------------+------------------------------------------+
| :doc:`Pair styles <Commands_pair>` | :doc:`Bond styles <Commands_bond>` | :ref:`Angle styles <angle>` |
+----------------------------------------+------------------------------------+------------------------------------------+
| :ref:`Dihedral styles <dihedral>` | :ref:`Improper styles <improper>` | :doc:`KSpace styles <Commands_kspace>` |
+----------------------------------------+------------------------------------+------------------------------------------+
Compute commands
================
An alphabetic list of all LAMMPS :doc:`compute <compute>` commands.
Some styles have accelerated versions. This is indicated by
additional letters in parenthesis: g = GPU, i = USER-INTEL, k =
KOKKOS, o = USER-OMP, t = OPT.
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`ackland/atom <compute_ackland_atom>` | :doc:`adf <compute_adf>` | :doc:`aggregate/atom <compute_cluster_atom>` | :doc:`angle <compute_angle>` | :doc:`angle/local <compute_angle_local>` | :doc:`angmom/chunk <compute_angmom_chunk>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`basal/atom <compute_basal_atom>` | :doc:`body/local <compute_body_local>` | :doc:`bond <compute_bond>` | :doc:`bond/local <compute_bond_local>` | :doc:`centro/atom <compute_centro_atom>` | :doc:`centroid/stress/atom <compute_stress_atom>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`chunk/atom <compute_chunk_atom>` | :doc:`chunk/spread/atom <compute_chunk_spread_atom>` | :doc:`cluster/atom <compute_cluster_atom>` | :doc:`cna/atom <compute_cna_atom>` | :doc:`cnp/atom <compute_cnp_atom>` | :doc:`com <compute_com>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`com/chunk <compute_com_chunk>` | :doc:`contact/atom <compute_contact_atom>` | :doc:`coord/atom <compute_coord_atom>` | :doc:`damage/atom <compute_damage_atom>` | :doc:`dihedral <compute_dihedral>` | :doc:`dihedral/local <compute_dihedral_local>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`dilatation/atom <compute_dilatation_atom>` | :doc:`dipole/chunk <compute_dipole_chunk>` | :doc:`displace/atom <compute_displace_atom>` | :doc:`dpd <compute_dpd>` | :doc:`dpd/atom <compute_dpd_atom>` | :doc:`edpd/temp/atom <compute_edpd_temp_atom>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`entropy/atom <compute_entropy_atom>` | :doc:`erotate/asphere <compute_erotate_asphere>` | :doc:`erotate/rigid <compute_erotate_rigid>` | :doc:`erotate/sphere <compute_erotate_sphere>` | :doc:`erotate/sphere/atom <compute_erotate_sphere_atom>` | :doc:`event/displace <compute_event_displace>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`fep <compute_fep>` | :doc:`force/tally <compute_tally>` | :doc:`fragment/atom <compute_cluster_atom>` | :doc:`global/atom <compute_global_atom>` | :doc:`group/group <compute_group_group>` | :doc:`gyration <compute_gyration>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`gyration/chunk <compute_gyration_chunk>` | :doc:`gyration/shape <compute_gyration_shape>` | :doc:`gyration/shape/chunk <compute_gyration_shape_chunk>` | :doc:`heat/flux <compute_heat_flux>` | :doc:`heat/flux/tally <compute_tally>` | :doc:`hexorder/atom <compute_hexorder_atom>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`hma <compute_hma>` | :doc:`improper <compute_improper>` | :doc:`improper/local <compute_improper_local>` | :doc:`inertia/chunk <compute_inertia_chunk>` | :doc:`ke <compute_ke>` | :doc:`ke/atom <compute_ke_atom>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`ke/atom/eff <compute_ke_atom_eff>` | :doc:`ke/eff <compute_ke_eff>` | :doc:`ke/rigid <compute_ke_rigid>` | :doc:`meso/e/atom <compute_meso_e_atom>` | :doc:`meso/rho/atom <compute_meso_rho_atom>` | :doc:`meso/t/atom <compute_meso_t_atom>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`momentum <compute_momentum>` | :doc:`msd <compute_msd>` | :doc:`msd/chunk <compute_msd_chunk>` | :doc:`msd/nongauss <compute_msd_nongauss>` | :doc:`omega/chunk <compute_omega_chunk>` | :doc:`orientorder/atom <compute_orientorder_atom>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`pair <compute_pair>` | :doc:`pair/local <compute_pair_local>` | :doc:`pe <compute_pe>` | :doc:`pe/atom <compute_pe_atom>` | :doc:`pe/mol/tally <compute_tally>` | :doc:`pe/tally <compute_tally>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`plasticity/atom <compute_plasticity_atom>` | :doc:`pressure <compute_pressure>` | :doc:`pressure/cylinder <compute_pressure_cylinder>` | :doc:`pressure/uef <compute_pressure_uef>` | :doc:`property/atom <compute_property_atom>` | :doc:`property/chunk <compute_property_chunk>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`property/local <compute_property_local>` | :doc:`ptm/atom <compute_ptm_atom>` | :doc:`rdf <compute_rdf>` | :doc:`reduce <compute_reduce>` | :doc:`reduce/chunk <compute_reduce_chunk>` | :doc:`reduce/region <compute_reduce>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`rigid/local <compute_rigid_local>` | :doc:`saed <compute_saed>` | :doc:`slice <compute_slice>` | :doc:`smd/contact/radius <compute_smd_contact_radius>` | :doc:`smd/damage <compute_smd_damage>` | :doc:`smd/hourglass/error <compute_smd_hourglass_error>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`smd/internal/energy <compute_smd_internal_energy>` | :doc:`smd/plastic/strain <compute_smd_plastic_strain>` | :doc:`smd/plastic/strain/rate <compute_smd_plastic_strain_rate>` | :doc:`smd/rho <compute_smd_rho>` | :doc:`smd/tlsph/defgrad <compute_smd_tlsph_defgrad>` | :doc:`smd/tlsph/dt <compute_smd_tlsph_dt>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`smd/tlsph/num/neighs <compute_smd_tlsph_num_neighs>` | :doc:`smd/tlsph/shape <compute_smd_tlsph_shape>` | :doc:`smd/tlsph/strain <compute_smd_tlsph_strain>` | :doc:`smd/tlsph/strain/rate <compute_smd_tlsph_strain_rate>` | :doc:`smd/tlsph/stress <compute_smd_tlsph_stress>` | :doc:`smd/triangle/vertices <compute_smd_triangle_vertices>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`smd/ulsph/num/neighs <compute_smd_ulsph_num_neighs>` | :doc:`smd/ulsph/strain <compute_smd_ulsph_strain>` | :doc:`smd/ulsph/strain/rate <compute_smd_ulsph_strain_rate>` | :doc:`smd/ulsph/stress <compute_smd_ulsph_stress>` | :doc:`smd/vol <compute_smd_vol>` | :doc:`sna/atom <compute_sna_atom>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`snad/atom <compute_sna_atom>` | :doc:`snav/atom <compute_sna_atom>` | :doc:`spin <compute_spin>` | :doc:`stress/atom <compute_stress_atom>` | :doc:`stress/mop <compute_stress_mop>` | :doc:`stress/mop/profile <compute_stress_mop>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`stress/tally <compute_tally>` | :doc:`tdpd/cc/atom <compute_tdpd_cc_atom>` | :doc:`temp (k) <compute_temp>` | :doc:`temp/asphere <compute_temp_asphere>` | :doc:`temp/body <compute_temp_body>` | :doc:`temp/chunk <compute_temp_chunk>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`temp/com <compute_temp_com>` | :doc:`temp/cs <compute_temp_cs>` | :doc:`temp/deform <compute_temp_deform>` | :doc:`temp/deform/eff <compute_temp_deform_eff>` | :doc:`temp/drude <compute_temp_drude>` | :doc:`temp/eff <compute_temp_eff>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`temp/partial <compute_temp_partial>` | :doc:`temp/profile <compute_temp_profile>` | :doc:`temp/ramp <compute_temp_ramp>` | :doc:`temp/region <compute_temp_region>` | :doc:`temp/region/eff <compute_temp_region_eff>` | :doc:`temp/rotate <compute_temp_rotate>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`temp/sphere <compute_temp_sphere>` | :doc:`temp/uef <compute_temp_uef>` | :doc:`ti <compute_ti>` | :doc:`torque/chunk <compute_torque_chunk>` | :doc:`vacf <compute_vacf>` | :doc:`vcm/chunk <compute_vcm_chunk>` |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
| :doc:`voronoi/atom <compute_voronoi_atom>` | :doc:`xrd <compute_xrd>` | | | | |
+------------------------------------------------------------+--------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+----------------------------------------------------------+--------------------------------------------------------------+
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

94
doc/src/Commands_fix.rst Normal file
View File

@ -0,0 +1,94 @@
+----------------------------------------+------------------------------------+------------------------------------------+
| :doc:`General commands <Commands_all>` | :doc:`Fix styles <Commands_fix>` | :doc:`Compute styles <Commands_compute>` |
+----------------------------------------+------------------------------------+------------------------------------------+
| :doc:`Pair styles <Commands_pair>` | :doc:`Bond styles <Commands_bond>` | :ref:`Angle styles <angle>` |
+----------------------------------------+------------------------------------+------------------------------------------+
| :ref:`Dihedral styles <dihedral>` | :ref:`Improper styles <improper>` | :doc:`KSpace styles <Commands_kspace>` |
+----------------------------------------+------------------------------------+------------------------------------------+
Fix commands
============
An alphabetic list of all LAMMPS :doc:`fix <fix>` commands. Some styles
have accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
OPT.
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`adapt <fix_adapt>` | :doc:`adapt/fep <fix_adapt_fep>` | :doc:`addforce <fix_addforce>` | :doc:`addtorque <fix_addtorque>` | :doc:`append/atoms <fix_append_atoms>` | :doc:`atc <fix_atc>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`atom/swap <fix_atom_swap>` | :doc:`ave/atom <fix_ave_atom>` | :doc:`ave/chunk <fix_ave_chunk>` | :doc:`ave/correlate <fix_ave_correlate>` | :doc:`ave/correlate/long <fix_ave_correlate_long>` | :doc:`ave/histo <fix_ave_histo>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`ave/histo/weight <fix_ave_histo>` | :doc:`ave/time <fix_ave_time>` | :doc:`aveforce <fix_aveforce>` | :doc:`balance <fix_balance>` | :doc:`bocs <fix_bocs>` | :doc:`bond/break <fix_bond_break>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`bond/create <fix_bond_create>` | :doc:`bond/react <fix_bond_react>` | :doc:`bond/swap <fix_bond_swap>` | :doc:`box/relax <fix_box_relax>` | :doc:`client/md <fix_client_md>` | :doc:`cmap <fix_cmap>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`colvars <fix_colvars>` | :doc:`controller <fix_controller>` | :doc:`deform (k) <fix_deform>` | :doc:`deposit <fix_deposit>` | :doc:`dpd/energy (k) <fix_dpd_energy>` | :doc:`drag <fix_drag>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`drude <fix_drude>` | :doc:`drude/transform/direct <fix_drude_transform>` | :doc:`drude/transform/inverse <fix_drude_transform>` | :doc:`dt/reset <fix_dt_reset>` | :doc:`edpd/source <fix_dpd_source>` | :doc:`efield <fix_efield>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`ehex <fix_ehex>` | :doc:`electron/stopping <fix_electron_stopping>` | :doc:`enforce2d (k) <fix_enforce2d>` | :doc:`eos/cv <fix_eos_cv>` | :doc:`eos/table <fix_eos_table>` | :doc:`eos/table/rx (k) <fix_eos_table_rx>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`evaporate <fix_evaporate>` | :doc:`external <fix_external>` | :doc:`ffl <fix_ffl>` | :doc:`filter/corotate <fix_filter_corotate>` | :doc:`flow/gauss <fix_flow_gauss>` | :doc:`freeze (k) <fix_freeze>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`gcmc <fix_gcmc>` | :doc:`gld <fix_gld>` | :doc:`gle <fix_gle>` | :doc:`gravity (ko) <fix_gravity>` | :doc:`grem <fix_grem>` | :doc:`halt <fix_halt>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`heat <fix_heat>` | :doc:`hyper/global <fix_hyper_global>` | :doc:`hyper/local <fix_hyper_local>` | :doc:`imd <fix_imd>` | :doc:`indent <fix_indent>` | :doc:`ipi <fix_ipi>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`langevin (k) <fix_langevin>` | :doc:`langevin/drude <fix_langevin_drude>` | :doc:`langevin/eff <fix_langevin_eff>` | :doc:`langevin/spin <fix_langevin_spin>` | :doc:`latte <fix_latte>` | :doc:`lb/fluid <fix_lb_fluid>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`lb/momentum <fix_lb_momentum>` | :doc:`lb/pc <fix_lb_pc>` | :doc:`lb/rigid/pc/sphere <fix_lb_rigid_pc_sphere>` | :doc:`lb/viscous <fix_lb_viscous>` | :doc:`lineforce <fix_lineforce>` | :doc:`manifoldforce <fix_manifoldforce>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`meso <fix_meso>` | :doc:`meso/move <fix_meso_move>` | :doc:`meso/stationary <fix_meso_stationary>` | :doc:`momentum (k) <fix_momentum>` | :doc:`move <fix_move>` | :doc:`mscg <fix_mscg>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`msst <fix_msst>` | :doc:`mvv/dpd <fix_mvv_dpd>` | :doc:`mvv/edpd <fix_mvv_dpd>` | :doc:`mvv/tdpd <fix_mvv_dpd>` | :doc:`neb <fix_neb>` | :doc:`neb\_spin <fix_neb_spin>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`nph (ko) <fix_nh>` | :doc:`nph/asphere (o) <fix_nph_asphere>` | :doc:`nph/body <fix_nph_body>` | :doc:`nph/eff <fix_nh_eff>` | :doc:`nph/sphere (o) <fix_nph_sphere>` | :doc:`nphug (o) <fix_nphug>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`npt (iko) <fix_nh>` | :doc:`npt/asphere (o) <fix_npt_asphere>` | :doc:`npt/body <fix_npt_body>` | :doc:`npt/eff <fix_nh_eff>` | :doc:`npt/sphere (o) <fix_npt_sphere>` | :doc:`npt/uef <fix_nh_uef>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`nve (iko) <fix_nve>` | :doc:`nve/asphere (i) <fix_nve_asphere>` | :doc:`nve/asphere/noforce <fix_nve_asphere_noforce>` | :doc:`nve/awpmd <fix_nve_awpmd>` | :doc:`nve/body <fix_nve_body>` | :doc:`nve/dot <fix_nve_dot>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`nve/dotc/langevin <fix_nve_dotc_langevin>` | :doc:`nve/eff <fix_nve_eff>` | :doc:`nve/limit <fix_nve_limit>` | :doc:`nve/line <fix_nve_line>` | :doc:`nve/manifold/rattle <fix_nve_manifold_rattle>` | :doc:`nve/noforce <fix_nve_noforce>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`nve/sphere (ko) <fix_nve_sphere>` | :doc:`nve/spin <fix_nve_spin>` | :doc:`nve/tri <fix_nve_tri>` | :doc:`nvk <fix_nvk>` | :doc:`nvt (iko) <fix_nh>` | :doc:`nvt/asphere (o) <fix_nvt_asphere>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`nvt/body <fix_nvt_body>` | :doc:`nvt/eff <fix_nh_eff>` | :doc:`nvt/manifold/rattle <fix_nvt_manifold_rattle>` | :doc:`nvt/sllod (io) <fix_nvt_sllod>` | :doc:`nvt/sllod/eff <fix_nvt_sllod_eff>` | :doc:`nvt/sphere (o) <fix_nvt_sphere>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`nvt/uef <fix_nh_uef>` | :doc:`oneway <fix_oneway>` | :doc:`orient/bcc <fix_orient>` | :doc:`orient/fcc <fix_orient>` | :doc:`phonon <fix_phonon>` | :doc:`pimd <fix_pimd>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`planeforce <fix_planeforce>` | :doc:`plumed <fix_plumed>` | :doc:`poems <fix_poems>` | :doc:`pour <fix_pour>` | :doc:`precession/spin <fix_precession_spin>` | :doc:`press/berendsen <fix_press_berendsen>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`print <fix_print>` | :doc:`property/atom (k) <fix_property_atom>` | :doc:`python/invoke <fix_python_invoke>` | :doc:`python/move <fix_python_move>` | :doc:`qbmsst <fix_qbmsst>` | :doc:`qeq/comb (o) <fix_qeq_comb>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`qeq/dynamic <fix_qeq>` | :doc:`qeq/fire <fix_qeq>` | :doc:`qeq/point <fix_qeq>` | :doc:`qeq/reax (ko) <fix_qeq_reax>` | :doc:`qeq/shielded <fix_qeq>` | :doc:`qeq/slater <fix_qeq>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`qmmm <fix_qmmm>` | :doc:`qtb <fix_qtb>` | :doc:`rattle <fix_shake>` | :doc:`reax/c/bonds (k) <fix_reaxc_bonds>` | :doc:`reax/c/species (k) <fix_reaxc_species>` | :doc:`recenter <fix_recenter>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`restrain <fix_restrain>` | :doc:`rhok <fix_rhok>` | :doc:`rigid (o) <fix_rigid>` | :doc:`rigid/meso <fix_rigid_meso>` | :doc:`rigid/nph (o) <fix_rigid>` | :doc:`rigid/nph/small <fix_rigid>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`rigid/npt (o) <fix_rigid>` | :doc:`rigid/npt/small <fix_rigid>` | :doc:`rigid/nve (o) <fix_rigid>` | :doc:`rigid/nve/small <fix_rigid>` | :doc:`rigid/nvt (o) <fix_rigid>` | :doc:`rigid/nvt/small <fix_rigid>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`rigid/small (o) <fix_rigid>` | :doc:`rx (k) <fix_rx>` | :doc:`saed/vtk <fix_saed_vtk>` | :doc:`setforce (k) <fix_setforce>` | :doc:`shake <fix_shake>` | :doc:`shardlow (k) <fix_shardlow>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`smd <fix_smd>` | :doc:`smd/adjust\_dt <fix_smd_adjust_dt>` | :doc:`smd/integrate\_tlsph <fix_smd_integrate_tlsph>` | :doc:`smd/integrate\_ulsph <fix_smd_integrate_ulsph>` | :doc:`smd/move\_tri\_surf <fix_smd_move_triangulated_surface>` | :doc:`smd/setvel <fix_smd_setvel>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`smd/wall\_surface <fix_smd_wall_surface>` | :doc:`spring <fix_spring>` | :doc:`spring/chunk <fix_spring_chunk>` | :doc:`spring/rg <fix_spring_rg>` | :doc:`spring/self <fix_spring_self>` | :doc:`srd <fix_srd>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`store/force <fix_store_force>` | :doc:`store/state <fix_store_state>` | :doc:`tdpd/source <fix_dpd_source>` | :doc:`temp/berendsen <fix_temp_berendsen>` | :doc:`temp/csld <fix_temp_csvr>` | :doc:`temp/csvr <fix_temp_csvr>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`temp/rescale <fix_temp_rescale>` | :doc:`temp/rescale/eff <fix_temp_rescale_eff>` | :doc:`tfmc <fix_tfmc>` | :doc:`thermal/conductivity <fix_thermal_conductivity>` | :doc:`ti/spring <fix_ti_spring>` | :doc:`tmd <fix_tmd>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`ttm <fix_ttm>` | :doc:`ttm/mod <fix_ttm>` | :doc:`tune/kspace <fix_tune_kspace>` | :doc:`vector <fix_vector>` | :doc:`viscosity <fix_viscosity>` | :doc:`viscous <fix_viscous>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`wall/body/polygon <fix_wall_body_polygon>` | :doc:`wall/body/polyhedron <fix_wall_body_polyhedron>` | :doc:`wall/colloid <fix_wall>` | :doc:`wall/ees <fix_wall_ees>` | :doc:`wall/gran <fix_wall_gran>` | :doc:`wall/gran/region <fix_wall_gran_region>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`wall/harmonic <fix_wall>` | :doc:`wall/lj1043 <fix_wall>` | :doc:`wall/lj126 <fix_wall>` | :doc:`wall/lj93 (k) <fix_wall>` | :doc:`wall/morse <fix_wall>` | :doc:`wall/piston <fix_wall_piston>` |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
| :doc:`wall/reflect (k) <fix_wall_reflect>` | :doc:`wall/region <fix_wall_region>` | :doc:`wall/region/ees <fix_wall_ees>` | :doc:`wall/srd <fix_wall_srd>` | | |
+--------------------------------------------------+--------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------+----------------------------------------------------------------+------------------------------------------------+
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

View File

@ -1,13 +1,5 @@
"Higher level section"_Commands.html - "LAMMPS WWW Site"_lws - "LAMMPS
Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Commands_all.html)
:line
LAMMPS input scripts :h3
LAMMPS input scripts
====================
LAMMPS executes by reading commands from a input script (text file),
one line at a time. When the input script ends, LAMMPS exits. Each
@ -24,15 +16,21 @@ simulation with all the settings. Rather, the input script is read
one line at a time and each command takes effect when it is read.
Thus this sequence of commands:
timestep 0.5
run 100
run 100 :pre
.. code-block:: LAMMPS
timestep 0.5
run 100
run 100
does something different than this sequence:
run 100
timestep 0.5
run 100 :pre
.. code-block:: LAMMPS
run 100
timestep 0.5
run 100
In the first case, the specified timestep (0.5 fs) is used for two
simulations of 100 timesteps each. In the 2nd case, the default
@ -47,14 +45,18 @@ belong to the group.
(3) Sometimes command B will use values that can be set by command A.
This means command A must precede command B in the input script if it
is to have the desired effect. For example, the
"read_data"_read_data.html command initializes the system by setting
:doc:`read\_data <read_data>` command initializes the system by setting
up the simulation box and assigning atoms to processors. If default
values are not desired, the "processors"_processors.html and
"boundary"_boundary.html commands need to be used before read_data to
values are not desired, the :doc:`processors <processors>` and
:doc:`boundary <boundary>` commands need to be used before read\_data to
tell LAMMPS how to map processors to the simulation box.
Many input script errors are detected by LAMMPS and an ERROR or
WARNING message is printed. The "Errors"_Errors.html doc page gives
WARNING message is printed. The :doc:`Errors <Errors>` doc page gives
more information on what errors mean. The documentation for each
command lists restrictions on how the command can be used.
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

View File

@ -0,0 +1,28 @@
+----------------------------------------+------------------------------------+------------------------------------------+
| :doc:`General commands <Commands_all>` | :doc:`Fix styles <Commands_fix>` | :doc:`Compute styles <Commands_compute>` |
+----------------------------------------+------------------------------------+------------------------------------------+
| :doc:`Pair styles <Commands_pair>` | :doc:`Bond styles <Commands_bond>` | :ref:`Angle styles <angle>` |
+----------------------------------------+------------------------------------+------------------------------------------+
| :ref:`Dihedral styles <dihedral>` | :ref:`Improper styles <improper>` | :doc:`KSpace styles <Commands_kspace>` |
+----------------------------------------+------------------------------------+------------------------------------------+
KSpace solvers
==============
All LAMMPS :doc:`kspace\_style <kspace_style>` solvers. Some styles have
accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
OPT.
+------------------------------------+--------------------------------------+-------------------------------------+---------------------------------------+
| :doc:`ewald (o) <kspace_style>` | :doc:`ewald/disp <kspace_style>` | :doc:`msm (o) <kspace_style>` | :doc:`msm/cg (o) <kspace_style>` |
+------------------------------------+--------------------------------------+-------------------------------------+---------------------------------------+
| :doc:`pppm (gok) <kspace_style>` | :doc:`pppm/cg (o) <kspace_style>` | :doc:`pppm/disp (i) <kspace_style>` | :doc:`pppm/disp/tip4p <kspace_style>` |
+------------------------------------+--------------------------------------+-------------------------------------+---------------------------------------+
| :doc:`pppm/stagger <kspace_style>` | :doc:`pppm/tip4p (o) <kspace_style>` | :doc:`scafacos <kspace_style>` | |
+------------------------------------+--------------------------------------+-------------------------------------+---------------------------------------+
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

136
doc/src/Commands_pair.rst Normal file
View File

@ -0,0 +1,136 @@
+----------------------------------------+------------------------------------+------------------------------------------+
| :doc:`General commands <Commands_all>` | :doc:`Fix styles <Commands_fix>` | :doc:`Compute styles <Commands_compute>` |
+----------------------------------------+------------------------------------+------------------------------------------+
| :doc:`Pair styles <Commands_pair>` | :doc:`Bond styles <Commands_bond>` | :ref:`Angle styles <angle>` |
+----------------------------------------+------------------------------------+------------------------------------------+
| :ref:`Dihedral styles <dihedral>` | :ref:`Improper styles <improper>` | :doc:`KSpace styles <Commands_kspace>` |
+----------------------------------------+------------------------------------+------------------------------------------+
Pair\_style potentials
======================
All LAMMPS :doc:`pair\_style <pair_style>` commands. Some styles have
accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
OPT.
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`none <pair_none>` | :doc:`zero <pair_zero>` | :doc:`hybrid (k) <pair_hybrid>` | :doc:`hybrid/overlay (k) <pair_hybrid>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| | | | |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`adp (o) <pair_adp>` | :doc:`agni (o) <pair_agni>` | :doc:`airebo (io) <pair_airebo>` | :doc:`airebo/morse (io) <pair_airebo>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`atm <pair_atm>` | :doc:`awpmd/cut <pair_awpmd>` | :doc:`beck (go) <pair_beck>` | :doc:`body/nparticle <pair_body_nparticle>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`body/rounded/polygon <pair_body_rounded_polygon>` | :doc:`body/rounded/polyhedron <pair_body_rounded_polyhedron>` | :doc:`bop <pair_bop>` | :doc:`born (go) <pair_born>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`born/coul/dsf <pair_born>` | :doc:`born/coul/dsf/cs <pair_cs>` | :doc:`born/coul/long (go) <pair_born>` | :doc:`born/coul/long/cs (g) <pair_cs>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`born/coul/msm (o) <pair_born>` | :doc:`born/coul/wolf (go) <pair_born>` | :doc:`born/coul/wolf/cs (g) <pair_cs>` | :doc:`brownian (o) <pair_brownian>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`brownian/poly (o) <pair_brownian>` | :doc:`buck (giko) <pair_buck>` | :doc:`buck/coul/cut (giko) <pair_buck>` | :doc:`buck/coul/long (giko) <pair_buck>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`buck/coul/long/cs <pair_cs>` | :doc:`buck/coul/msm (o) <pair_buck>` | :doc:`buck/long/coul/long (o) <pair_buck_long>` | :doc:`buck/mdf <pair_mdf>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`buck6d/coul/gauss/dsf <pair_buck6d_coul_gauss>` | :doc:`buck6d/coul/gauss/long <pair_buck6d_coul_gauss>` | :doc:`colloid (go) <pair_colloid>` | :doc:`comb (o) <pair_comb>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`comb3 <pair_comb>` | :doc:`cosine/squared <pair_cosine_squared>` | :doc:`coul/cut (gko) <pair_coul>` | :doc:`coul/cut/soft (o) <pair_fep_soft>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`coul/debye (gko) <pair_coul>` | :doc:`coul/diel (o) <pair_coul_diel>` | :doc:`coul/dsf (gko) <pair_coul>` | :doc:`coul/long (gko) <pair_coul>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`coul/long/cs (g) <pair_cs>` | :doc:`coul/long/soft (o) <pair_fep_soft>` | :doc:`coul/msm (o) <pair_coul>` | :doc:`coul/shield <pair_coul_shield>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`coul/streitz <pair_coul>` | :doc:`coul/wolf (ko) <pair_coul>` | :doc:`coul/wolf/cs <pair_cs>` | :doc:`dpd (gio) <pair_dpd>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`dpd/fdt <pair_dpd_fdt>` | :doc:`dpd/fdt/energy (k) <pair_dpd_fdt>` | :doc:`dpd/tstat (go) <pair_dpd>` | :doc:`dsmc <pair_dsmc>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`e3b <pair_e3b>` | :doc:`drip <pair_drip>` | :doc:`eam (gikot) <pair_eam>` | :doc:`eam/alloy (gikot) <pair_eam>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`eam/cd (o) <pair_eam>` | :doc:`eam/cd/old (o) <pair_eam>` | :doc:`eam/fs (gikot) <pair_eam>` | :doc:`edip (o) <pair_edip>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`edip/multi <pair_edip>` | :doc:`edpd <pair_meso>` | :doc:`eff/cut <pair_eff>` | :doc:`eim (o) <pair_eim>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`exp6/rx (k) <pair_exp6_rx>` | :doc:`extep <pair_extep>` | :doc:`gauss (go) <pair_gauss>` | :doc:`gauss/cut (o) <pair_gauss>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`gayberne (gio) <pair_gayberne>` | :doc:`gran/hertz/history (o) <pair_gran>` | :doc:`gran/hooke (o) <pair_gran>` | :doc:`gran/hooke/history (ko) <pair_gran>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`granular <pair_granular>` | :doc:`gw <pair_gw>` | :doc:`gw/zbl <pair_gw>` | :doc:`hbond/dreiding/lj (o) <pair_hbond_dreiding>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`hbond/dreiding/morse (o) <pair_hbond_dreiding>` | :doc:`ilp/graphene/hbn <pair_ilp_graphene_hbn>` | :doc:`kim <pair_kim>` | :doc:`kolmogorov/crespi/full <pair_kolmogorov_crespi_full>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`kolmogorov/crespi/z <pair_kolmogorov_crespi_z>` | :doc:`lcbop <pair_lcbop>` | :doc:`lebedeva/z <pair_lebedeva_z>` | :doc:`lennard/mdf <pair_mdf>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`line/lj <pair_line_lj>` | :doc:`list <pair_list>` | :doc:`lj/charmm/coul/charmm (iko) <pair_charmm>` | :doc:`lj/charmm/coul/charmm/implicit (ko) <pair_charmm>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`lj/charmm/coul/long (gikot) <pair_charmm>` | :doc:`lj/charmm/coul/long/soft (o) <pair_fep_soft>` | :doc:`lj/charmm/coul/msm (o) <pair_charmm>` | :doc:`lj/charmmfsw/coul/charmmfsh <pair_charmm>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`lj/charmmfsw/coul/long <pair_charmm>` | :doc:`lj/class2 (gko) <pair_class2>` | :doc:`lj/class2/coul/cut (ko) <pair_class2>` | :doc:`lj/class2/coul/cut/soft <pair_fep_soft>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`lj/class2/coul/long (gko) <pair_class2>` | :doc:`lj/class2/coul/long/soft <pair_fep_soft>` | :doc:`lj/class2/soft <pair_fep_soft>` | :doc:`lj/cubic (go) <pair_lj_cubic>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`lj/cut (gikot) <pair_lj>` | :doc:`lj/cut/coul/cut (gko) <pair_lj>` | :doc:`lj/cut/coul/cut/soft (o) <pair_fep_soft>` | :doc:`lj/cut/coul/debye (gko) <pair_lj>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`lj/cut/coul/dsf (gko) <pair_lj>` | :doc:`lj/cut/coul/long (gikot) <pair_lj>` | :doc:`lj/cut/coul/long/cs <pair_cs>` | :doc:`lj/cut/coul/long/soft (o) <pair_fep_soft>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`lj/cut/coul/msm (go) <pair_lj>` | :doc:`lj/cut/coul/wolf (o) <pair_lj>` | :doc:`lj/cut/dipole/cut (go) <pair_dipole>` | :doc:`lj/cut/dipole/long (g) <pair_dipole>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`lj/cut/dipole/sf (go) <pair_dipole>` | :doc:`lj/cut/soft (o) <pair_fep_soft>` | :doc:`lj/cut/thole/long (o) <pair_thole>` | :doc:`lj/cut/tip4p/cut (o) <pair_lj>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`lj/cut/tip4p/long (ot) <pair_lj>` | :doc:`lj/cut/tip4p/long/soft (o) <pair_fep_soft>` | :doc:`lj/expand (gko) <pair_lj_expand>` | :doc:`lj/expand/coul/long (g) <pair_lj_expand>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`lj/gromacs (gko) <pair_gromacs>` | :doc:`lj/gromacs/coul/gromacs (ko) <pair_gromacs>` | :doc:`lj/long/coul/long (iot) <pair_lj_long>` | :doc:`lj/long/dipole/long <pair_dipole>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`lj/long/tip4p/long (o) <pair_lj_long>` | :doc:`lj/mdf <pair_mdf>` | :doc:`lj/sdk (gko) <pair_sdk>` | :doc:`lj/sdk/coul/long (go) <pair_sdk>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`lj/sdk/coul/msm (o) <pair_sdk>` | :doc:`lj/sf/dipole/sf (go) <pair_dipole>` | :doc:`lj/smooth (o) <pair_lj_smooth>` | :doc:`lj/smooth/linear (o) <pair_lj_smooth_linear>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`lj/switch3/coulgauss/long <pair_lj_switch3_coulgauss>` | :doc:`lj96/cut (go) <pair_lj96>` | :doc:`local/density <pair_local_density>` | :doc:`lubricate (o) <pair_lubricate>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`lubricate/poly (o) <pair_lubricate>` | :doc:`lubricateU <pair_lubricateU>` | :doc:`lubricateU/poly <pair_lubricateU>` | :doc:`mdpd <pair_meso>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`mdpd/rhosum <pair_meso>` | :doc:`meam/c <pair_meamc>` | :doc:`meam/spline (o) <pair_meam_spline>` | :doc:`meam/sw/spline <pair_meam_sw_spline>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`mgpt <pair_mgpt>` | :doc:`mie/cut (g) <pair_mie>` | :doc:`momb <pair_momb>` | :doc:`morse (gkot) <pair_morse>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`morse/smooth/linear (o) <pair_morse>` | :doc:`morse/soft <pair_fep_soft>` | :doc:`multi/lucy <pair_multi_lucy>` | :doc:`multi/lucy/rx (k) <pair_multi_lucy_rx>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`nb3b/harmonic <pair_nb3b_harmonic>` | :doc:`nm/cut (o) <pair_nm>` | :doc:`nm/cut/coul/cut (o) <pair_nm>` | :doc:`nm/cut/coul/long (o) <pair_nm>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`oxdna/coaxstk <pair_oxdna>` | :doc:`oxdna/excv <pair_oxdna>` | :doc:`oxdna/hbond <pair_oxdna>` | :doc:`oxdna/stk <pair_oxdna>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`oxdna/xstk <pair_oxdna>` | :doc:`oxdna2/coaxstk <pair_oxdna2>` | :doc:`oxdna2/dh <pair_oxdna2>` | :doc:`oxdna2/excv <pair_oxdna2>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`oxdna2/hbond <pair_oxdna2>` | :doc:`oxdna2/stk <pair_oxdna2>` | :doc:`oxdna2/xstk <pair_oxdna2>` | :doc:`peri/eps <pair_peri>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`peri/lps (o) <pair_peri>` | :doc:`peri/pmb (o) <pair_peri>` | :doc:`peri/ves <pair_peri>` | :doc:`polymorphic <pair_polymorphic>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`python <pair_python>` | :doc:`quip <pair_quip>` | :doc:`reax/c (ko) <pair_reaxc>` | :doc:`rebo (io) <pair_airebo>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`resquared (go) <pair_resquared>` | :doc:`sdpd/taitwater/isothermal <pair_sdpd_taitwater_isothermal>` | :doc:`smd/hertz <pair_smd_hertz>` | :doc:`smd/tlsph <pair_smd_tlsph>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`smd/tri\_surface <pair_smd_triangulated_surface>` | :doc:`smd/ulsph <pair_smd_ulsph>` | :doc:`smtbq <pair_smtbq>` | :doc:`snap (k) <pair_snap>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`snap (k) <pair_snap>` | :doc:`soft (go) <pair_soft>` | :doc:`sph/heatconduction <pair_sph_heatconduction>` | :doc:`sph/idealgas <pair_sph_idealgas>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`sph/lj <pair_sph_lj>` | :doc:`sph/rhosum <pair_sph_rhosum>` | :doc:`sph/taitwater <pair_sph_taitwater>` | :doc:`sph/taitwater/morris <pair_sph_taitwater_morris>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`spin/dipole/cut <pair_spin_dipole>` | :doc:`spin/dipole/long <pair_spin_dipole>` | :doc:`spin/dmi <pair_spin_dmi>` | :doc:`spin/exchange <pair_spin_exchange>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`spin/magelec <pair_spin_magelec>` | :doc:`spin/neel <pair_spin_neel>` | :doc:`srp <pair_srp>` | :doc:`sw (giko) <pair_sw>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`table (gko) <pair_table>` | :doc:`table/rx (k) <pair_table_rx>` | :doc:`tdpd <pair_meso>` | :doc:`tersoff (giko) <pair_tersoff>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`tersoff/mod (gko) <pair_tersoff_mod>` | :doc:`tersoff/mod/c (o) <pair_tersoff_mod>` | :doc:`tersoff/table (o) <pair_tersoff>` | :doc:`tersoff/zbl (gko) <pair_tersoff_zbl>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`thole <pair_thole>` | :doc:`tip4p/cut (o) <pair_coul>` | :doc:`tip4p/long (o) <pair_coul>` | :doc:`tip4p/long/soft (o) <pair_fep_soft>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`tri/lj <pair_tri_lj>` | :doc:`ufm (got) <pair_ufm>` | :doc:`vashishta (gko) <pair_vashishta>` | :doc:`vashishta/table (o) <pair_vashishta>` |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
| :doc:`yukawa (gko) <pair_yukawa>` | :doc:`yukawa/colloid (go) <pair_yukawa_colloid>` | :doc:`zbl (gko) <pair_zbl>` | |
+--------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+-------------------------------------------------------------+
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

View File

@ -1,13 +1,5 @@
"Higher level section"_Commands.html - "LAMMPS WWW Site"_lws - "LAMMPS
Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Commands_all.html)
:line
Parsing rules for input scripts :h3
Parsing rules for input scripts
===============================
Each non-blank line in the input script is treated as a command.
LAMMPS commands are case sensitive. Command names are lower-case, as
@ -30,6 +22,10 @@ comment after a trailing "&" character will prevent the command from
continuing on the next line. Also note that for multi-line commands a
single leading "#" will comment out the entire command.
.. code-block:: LAMMPS
# this is a comment
(3) The line is searched repeatedly for $ characters, which indicate
variables that are replaced with a text string. See an exception in
(6).
@ -37,11 +33,11 @@ variables that are replaced with a text string. See an exception in
If the $ is followed by curly brackets, then the variable name is the
text inside the curly brackets. If no curly brackets follow the $,
then the variable name is the single character immediately following
the $. Thus $\{myTemp\} and $x refer to variable names "myTemp" and
the $. Thus ${myTemp} and $x refer to variable names "myTemp" and
"x".
How the variable is converted to a text string depends on what style
of variable it is; see the "variable"_variable.html doc page for details.
of variable it is; see the :doc:`variable <variable>` doc page for details.
It can be a variable that stores multiple text strings, and return one
of them. The returned text string can be multiple "words" (space
separated) which will then be interpreted as multiple arguments in the
@ -50,17 +46,23 @@ will be evaluated and its numeric result returned as a string.
As a special case, if the $ is followed by parenthesis, then the text
inside the parenthesis is treated as an "immediate" variable and
evaluated as an "equal-style variable"_variable.html. This is a way
evaluated as an :doc:`equal-style variable <variable>`. This is a way
to use numeric formulas in an input script without having to assign
them to variable names. For example, these 3 input script lines:
variable X equal (xlo+xhi)/2+sqrt(v_area)
region 1 block $X 2 INF INF EDGE EDGE
variable X delete :pre
.. code-block:: LAMMPS
variable X equal (xlo+xhi)/2+sqrt(v_area)
region 1 block $X 2 INF INF EDGE EDGE
variable X delete
can be replaced by
region 1 block $((xlo+xhi)/2+sqrt(v_area)) 2 INF INF EDGE EDGE :pre
.. code-block:: LAMMPS
region 1 block $((xlo+xhi)/2+sqrt(v_area)) 2 INF INF EDGE EDGE
so that you do not have to define (or discard) a temporary variable X.
@ -73,21 +75,27 @@ specified a high-precision "%.20g" is used as the default.
This can be useful for formatting print output to a desired precision:
print "Final energy per atom: $(pe/atoms:%10.3f) eV/atom" :pre
.. code-block:: LAMMPS
print "Final energy per atom: $(pe/atoms:%10.3f) eV/atom"
Note that neither the curly-bracket or immediate form of variables can
contain nested $ characters for other variables to substitute for.
Thus you cannot do this:
variable a equal 2
variable b2 equal 4
print "B2 = $\{b$a\}" :pre
.. code-block:: LAMMPS
variable a equal 2
variable b2 equal 4
print "B2 = ${b$a}"
Nor can you specify this $($x-1.0) for an immediate variable, but
you could use $(v_x-1.0), since the latter is valid syntax for an
"equal-style variable"_variable.html.
you could use $(v\_x-1.0), since the latter is valid syntax for an
:doc:`equal-style variable <variable>`.
See the "variable"_variable.html command for more details of how
See the :doc:`variable <variable>` command for more details of how
strings are assigned to variables and evaluated, and how they can be
used in input script commands.
@ -108,29 +116,38 @@ multiple lines of an argument to retain their line breaks, the text
can be enclosed in triple quotes, in which case "&" characters are not
needed. For example:
print "Volume = $v"
print 'Volume = $v'
if "$\{steps\} > 1000" then quit
variable a string "red green blue &
purple orange cyan"
print """
System volume = $v
System temperature = $t
""" :pre
.. code-block:: LAMMPS
print "Volume = $v"
print 'Volume = $v'
if "${steps} > 1000" then quit
variable a string "red green blue &
purple orange cyan"
print """
System volume = $v
System temperature = $t
"""
In each case, the single, double, or triple quotes are removed when
the single argument they enclose is stored internally.
See the "dump modify format"_dump_modify.html, "print"_print.html,
"if"_if.html, and "python"_python.html commands for examples.
See the :doc:`dump modify format <dump_modify>`, :doc:`print <print>`,
:doc:`if <if>`, and :doc:`python <python>` commands for examples.
A "#" or "$" character that is between quotes will not be treated as a
comment indicator in (2) or substituted for as a variable in (3).
NOTE: If the argument is itself a command that requires a quoted
argument (e.g. using a "print"_print.html command as part of an
"if"_if.html or "run every"_run.html command), then single, double, or
triple quotes can be nested in the usual manner. See the doc pages
for those commands for examples. Only one of level of nesting is
allowed, but that should be sufficient for most use cases.
.. note::
If the argument is itself a command that requires a quoted
argument (e.g. using a :doc:`print <print>` command as part of an
:doc:`if <if>` or :doc:`run every <run>` command), then single, double, or
triple quotes can be nested in the usual manner. See the doc pages
for those commands for examples. Only one of level of nesting is
allowed, but that should be sufficient for most use cases.
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

View File

@ -0,0 +1,67 @@
Removed commands and packages
=============================
This page lists LAMMPS commands and packages that have been removed from
the distribution and provides suggestions for alternatives or replacements.
LAMMPS has special dummy styles implemented, that will stop LAMMPS and
print a suitable error message in most cases, when a style/command is used
that has been removed.
Fix ave/spatial and fix ave/spatial/sphere
------------------------------------------
The fixes ave/spatial and ave/spatial/sphere have been removed from LAMMPS
since they were superseded by the more general and extensible "chunk
infrastructure". Here the system is partitioned in one of many possible
ways through the :doc:`compute chunk/atom <compute_chunk_atom>` command
and then averaging is done using :doc:`fix ave/chunk <fix_ave_chunk>`.
Please refer to the :doc:`chunk HOWTO <Howto_chunk>` section for an overview.
MEAM package
------------
The MEAM package has been removed since it was superseded by the
:ref:`USER-MEAMC package <PKG-USER-MEAMC>`. The code in
the USER-MEAMC package is a translation of the Fortran code of MEAM into C++,
which removes several restrictions (e.g. there can be multiple instances
in hybrid pair styles) and allows for some optimizations leading
to better performance. The new pair style :doc:`meam/c <pair_meamc>` has
the exact same syntax as the old "meam" pair style and thus pair style
:doc:`meam <pair_meamc>` is an alias to the new style and backward
compatibility of old inputs is preserved.
REAX package
------------
The REAX package has been removed since it was superseded by the
:ref:`USER-REAXC package <PKG-USER-REAXC>`. The USER-REAXC
package has been tested to yield equivalent results to the REAX package,
offers better performance, supports OpenMP multi-threading via USER-OMP,
and GPU and threading parallelization through KOKKOS. The new pair styles
are not syntax compatible with the removed reax pair style, so input
files will have to be adapted.
USER-CUDA package
-----------------
The USER-CUDA package had been removed, since it had been unmaintained
for a long time and had known bugs and problems. Significant parts of
the design were transferred to the
:ref:`KOKKOS package <PKG-KOKKOS>`, which has similar
performance characteristics on Nvidia GPUs. Both, the KOKKOS
and the :ref:`GPU package <PKG-GPU>` are maintained
and allow running LAMMPS with GPU acceleration.
restart2data tool
-----------------
The functionality of the restart2data tool has been folded into the
LAMMPS executable directly instead of having a separate tool. A
combination of the commands :doc:`read\_restart <read_restart>` and
:doc:`write\_data <write_data>` can be used to the same effect. For added
convenience this conversion can also be triggered by :doc:`command line flags <Run_options>`
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

View File

@ -0,0 +1,91 @@
Input script structure
======================
This page describes the structure of a typical LAMMPS input script.
The examples directory in the LAMMPS distribution contains many sample
input scripts; it is discussed on the :doc:`Examples <Examples>` doc
page.
A LAMMPS input script typically has 4 parts:
1. Initialization
2. Atom definition
3. Settings
4. Run a simulation
The last 2 parts can be repeated as many times as desired. I.e. run a
simulation, change some settings, run some more, etc. Each of the 4
parts is now described in more detail. Remember that almost all
commands need only be used if a non-default value is desired.
(1) Initialization
Set parameters that need to be defined before atoms are created or
read-in from a file.
The relevant commands are :doc:`units <units>`,
:doc:`dimension <dimension>`, :doc:`newton <newton>`,
:doc:`processors <processors>`, :doc:`boundary <boundary>`,
:doc:`atom\_style <atom_style>`, :doc:`atom\_modify <atom_modify>`.
If force-field parameters appear in the files that will be read, these
commands tell LAMMPS what kinds of force fields are being used:
:doc:`pair\_style <pair_style>`, :doc:`bond\_style <bond_style>`,
:doc:`angle\_style <angle_style>`, :doc:`dihedral\_style <dihedral_style>`,
:doc:`improper\_style <improper_style>`.
(2) Atom definition
There are 3 ways to define atoms in LAMMPS. Read them in from a data
or restart file via the :doc:`read\_data <read_data>` or
:doc:`read\_restart <read_restart>` commands. These files can contain
molecular topology information. Or create atoms on a lattice (with no
molecular topology), using these commands: :doc:`lattice <lattice>`,
:doc:`region <region>`, :doc:`create\_box <create_box>`,
:doc:`create\_atoms <create_atoms>`. The entire set of atoms can be
duplicated to make a larger simulation using the
:doc:`replicate <replicate>` command.
(3) Settings
Once atoms and molecular topology are defined, a variety of settings
can be specified: force field coefficients, simulation parameters,
output options, etc.
Force field coefficients are set by these commands (they can also be
set in the read-in files): :doc:`pair\_coeff <pair_coeff>`,
:doc:`bond\_coeff <bond_coeff>`, :doc:`angle\_coeff <angle_coeff>`,
:doc:`dihedral\_coeff <dihedral_coeff>`,
:doc:`improper\_coeff <improper_coeff>`,
:doc:`kspace\_style <kspace_style>`, :doc:`dielectric <dielectric>`,
:doc:`special\_bonds <special_bonds>`.
Various simulation parameters are set by these commands:
:doc:`neighbor <neighbor>`, :doc:`neigh\_modify <neigh_modify>`,
:doc:`group <group>`, :doc:`timestep <timestep>`,
:doc:`reset\_timestep <reset_timestep>`, :doc:`run\_style <run_style>`,
:doc:`min\_style <min_style>`, :doc:`min\_modify <min_modify>`.
Fixes impose a variety of boundary conditions, time integration, and
diagnostic options. The :doc:`fix <fix>` command comes in many flavors.
Various computations can be specified for execution during a
simulation using the :doc:`compute <compute>`,
:doc:`compute\_modify <compute_modify>`, and :doc:`variable <variable>`
commands.
Output options are set by the :doc:`thermo <thermo>`, :doc:`dump <dump>`,
and :doc:`restart <restart>` commands.
(4) Run a simulation
A molecular dynamics simulation is run using the :doc:`run <run>`
command. Energy minimization (molecular statics) is performed using
the :doc:`minimize <minimize>` command. A parallel tempering
(replica-exchange) simulation can be run using the
:doc:`temper <temper>` command.
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K (\theta - \theta_0)^2 + K_{UB} (r - r_{UB})^2
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@ -1,12 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
\begin{eqnarray*}
E & = & E_a + E_{bb} + E_{ba} \\
E_a & = & K_2 (\theta - \theta_0)^2 + K_3 (\theta - \theta_0)^3 + K_4 (\theta - \theta_0)^4 \\
E_{bb} & = & M (r_{ij} - r_1) (r_{jk} - r_2) \\
E_{ba} & = & N_1 (r_{ij} - r_1) (\theta - \theta_0) + N_2 (r_{jk} - r_2) (\theta - \theta_0)
\end{eqnarray*}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K [1 + \cos(\theta)]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

View File

@ -1,15 +0,0 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
$$
E = K \left[ 1 + \cos(n\theta - \theta_0)\right]
$$
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K [1 - \cos(\theta - \theta_0)]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -1,9 +0,0 @@
\documentstyle[12pt]{article}
\begin{document}
$$
E=C\left[ 1-B(-1)^ncos\left( n\theta\right) \right]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -1,9 +0,0 @@
\documentstyle[12pt]{article}
\begin{document}
$$
E=-\frac{Umin}{2} \left[ 1+Cos(\theta-\theta_0) \right]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

View File

@ -1,13 +0,0 @@
\documentstyle[12pt]{article}
\begin{document}
$$
E=-U_{min}
\frac{e^{-a U(\theta,\theta_0)}-1}{e^a-1}
\quad\mbox{with}\quad
U(\theta,\theta_0)
=-0.5 \left(1+\cos(\theta-\theta_0) \right)
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K [\cos(\theta) - \cos(\theta_0)]^2
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
\thispagestyle{empty}
$$
E = K_{SS} \left(r_{12}-r_{12,0}\right)\left(r_{32}-r_{32,0}\right) + K_{BS0}\left(r_{12}-r_{12,0}\right)\left(\theta-\theta_0\right) + K_{BS1}\left(r_{32}-r_{32,0}\right)\left(\theta-\theta_0\right)
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -1,10 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
\begin{eqnarray*}
-\vec{T_j} & = & \vec{r_{ij}} \times \vec{F_i}\\
\vec{F_j} & = & -\vec{F_i} \\
\end{eqnarray*}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
\cos\gamma = \frac{\vec{\mu_j}\bullet\vec{r_{ij}}}{\mu_j\,r_{ij}}
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K (\cos\gamma - \cos\gamma_0)^2
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
\vec{T_j} = \frac{2K(\cos\gamma - \cos\gamma_0)}{\mu_j\,r_{ij}}\,
\vec{r_{ij}} \times \vec{\mu_j}
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K [C_0 + C_1 \cos ( \theta) + C_2 \cos( 2 \theta) ]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K [ 1.0 + c \cos ( n \theta) ]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K (\theta - \theta_0)^2
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
\thispagestyle{empty}
$$
E = K (\theta - \theta_0)^2 \left[ 1 - 0.014(\theta - \theta_0) + 5.6(10)^{-5} (\theta - \theta_0)^2 - 7.0(10)^{-7} (\theta - \theta_0)^3 + 9(10)^{-10} (\theta - \theta_0)^4 \right]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K_2 (\theta - \theta_0)^2 + K_3 (\theta - \theta_0)^3 + K_4 (\theta - \theta_0)^4
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K_2 (r - r_0)^2 + K_3 (r - r_0)^3 + K_4 (r - r_0)^4
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

View File

@ -1,11 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = -0.5 K R_0^2 \ln \left[ 1 - \left(\frac{r}{R_0}\right)^2\right] +
4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} -
\left(\frac{\sigma}{r}\right)^6 \right] + \epsilon
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,13 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = -0.5 K R_0^2
\ln \left[1 -\left( \frac{\left(r - \Delta\right)}{R_0}\right)^2 \right] +
4 \epsilon \left[ \left(\frac{\sigma}{\left(r -
\Delta\right)}\right)^{12} - \left(\frac{\sigma}{\left(r -
\Delta\right)}\right)^6 \right] + \epsilon
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -1,10 +0,0 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
$$
E = K (r^2 - r_0^2)^2
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K (r - r_0)^2
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = \frac{Umin}{(r_0-r_c)^2} \left[ (r-r_0)^2-(r_c-r_0)^2 \right]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = \frac{Umin}{(r_0-r_c)^2} \left[ (r-r_0)^2-(r_c-r_0)^2 \right]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
\thispagestyle{empty}
$$
E = K (r - r_0)^2 \left[ 1 - 2.55(r-r_0) + (7/12) 2.55^2(r-r_0)^2 \right]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -1,10 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
% E = D \left[ 1 - \exp \left( -\alpha (r - r_0) \right) \right]^2
E = D \left[ 1 - e^{-\alpha (r - r_0)} \right]^2
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = \frac{\epsilon (r - r_0)^2}{ [ \lambda^2 - (r - r_0)^2 ]}
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -1,10 +0,0 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
$$
E = - \frac{\epsilon}{2} \ln \left[ 1 - \left(\frac{r-r0}{\Delta}\right)^2\right]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

View File

@ -1,11 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K (r - R_c)^ 2 (r - R_c - B_1) (r - R_c - B_2) + U_0 +
4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} -
\left(\frac{\sigma}{r}\right)^6 \right] + \epsilon
$$
\end{document}

22
doc/src/Errors.rst Normal file
View File

@ -0,0 +1,22 @@
Errors
******
These doc pages describe the errors you can encounter when using
LAMMPS. The common problems include conceptual issues. The messages
and warnings doc pages give complete lists of all the messages the
code may generate (except those generated by USER packages), with
additional details for many of them.
.. toctree::
:maxdepth: 1
Errors_common
Errors_bugs
Errors_messages
Errors_warnings
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

32
doc/src/Errors_bugs.rst Normal file
View File

@ -0,0 +1,32 @@
Reporting bugs
==============
If you are confident that you have found a bug in LAMMPS, follow these
steps.
Check the `New features and bug fixes <http://lammps.sandia.gov/bug.html>`_ section of the `LAMMPS WWW site <lws_>`_ to see if the bug has already been reported or fixed or the
`Unfixed bug <http://lammps.sandia.gov/unbug.html>`_ to see if a fix is
pending.
Check the `mailing list <http://lammps.sandia.gov/mail.html>`_ to see if
it has been discussed before.
If not, send an email to the mailing list describing the problem with
any ideas you have as to what is causing it or where in the code the
problem might be. The developers will ask for more info if needed,
such as an input script or data files.
The most useful thing you can do to help us fix the bug is to isolate
the problem. Run it on the smallest number of atoms and fewest number
of processors and with the simplest input script that reproduces the
bug and try to identify what command or combination of commands is
causing the problem.
.. note::
this page needs to have GitHub issues info added
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

128
doc/src/Errors_common.rst Normal file
View File

@ -0,0 +1,128 @@
Common problems
===============
If two LAMMPS runs do not produce the exact same answer on different
machines or different numbers of processors, this is typically not a
bug. In theory you should get identical answers on any number of
processors and on any machine. In practice, numerical round-off can
cause slight differences and eventual divergence of molecular dynamics
phase space trajectories within a few 100s or few 1000s of timesteps.
However, the statistical properties of the two runs (e.g. average
energy or temperature) should still be the same.
If the :doc:`velocity <velocity>` command is used to set initial atom
velocities, a particular atom can be assigned a different velocity
when the problem is run on a different number of processors or on
different machines. If this happens, the phase space trajectories of
the two simulations will rapidly diverge. See the discussion of the
*loop* option in the :doc:`velocity <velocity>` command for details and
options that avoid this issue.
Similarly, the :doc:`create\_atoms <create_atoms>` command generates a
lattice of atoms. For the same physical system, the ordering and
numbering of atoms by atom ID may be different depending on the number
of processors.
Some commands use random number generators which may be setup to
produce different random number streams on each processor and hence
will produce different effects when run on different numbers of
processors. A commonly-used example is the :doc:`fix langevin <fix_langevin>` command for thermostatting.
A LAMMPS simulation typically has two stages, setup and run. Most
LAMMPS errors are detected at setup time; others like a bond
stretching too far may not occur until the middle of a run.
LAMMPS tries to flag errors and print informative error messages so
you can fix the problem. For most errors it will also print the last
input script command that it was processing. Of course, LAMMPS cannot
figure out your physics or numerical mistakes, like choosing too big a
timestep, specifying erroneous force field coefficients, or putting 2
atoms on top of each other! If you run into errors that LAMMPS
doesn't catch that you think it should flag, please send an email to
the `developers <http://lammps.sandia.gov/authors.html>`_.
If you get an error message about an invalid command in your input
script, you can determine what command is causing the problem by
looking in the log.lammps file or using the :doc:`echo command <echo>`
to see it on the screen. If you get an error like "Invalid ...
style", with ... being fix, compute, pair, etc, it means that you
mistyped the style name or that the command is part of an optional
package which was not compiled into your executable. The list of
available styles in your executable can be listed by using :doc:`the -h command-line swith <Run_options>`. The installation and
compilation of optional packages is explained on the :doc:`Build packages <Build_package>` doc page.
For a given command, LAMMPS expects certain arguments in a specified
order. If you mess this up, LAMMPS will often flag the error, but it
may also simply read a bogus argument and assign a value that is
valid, but not what you wanted. E.g. trying to read the string "abc"
as an integer value of 0. Careful reading of the associated doc page
for the command should allow you to fix these problems. In most cases,
where LAMMPS expects to read a number, either integer or floating point,
it performs a stringent test on whether the provided input actually
is an integer or floating-point number, respectively, and reject the
input with an error message (for instance, when an integer is required,
but a floating-point number 1.0 is provided):
.. parsed-literal::
ERROR: Expected integer parameter instead of '1.0' in input script or data file
Some commands allow for using variable references in place of numeric
constants so that the value can be evaluated and may change over the
course of a run. This is typically done with the syntax *v\_name* for a
parameter, where name is the name of the variable. On the other hand,
immediate variable expansion with the syntax $\ *name* is performed while
reading the input and before parsing commands,
.. note::
Using a variable reference (i.e. *v\_name*) is only allowed if
the documentation of the corresponding command explicitly says it is.
Otherwise, you will receive an error message of this kind:
.. parsed-literal::
ERROR: Expected floating point parameter instead of 'v_name' in input script or data file
Generally, LAMMPS will print a message to the screen and logfile and
exit gracefully when it encounters a fatal error. Sometimes it will
print a WARNING to the screen and logfile and continue on; you can
decide if the WARNING is important or not. A WARNING message that is
generated in the middle of a run is only printed to the screen, not to
the logfile, to avoid cluttering up thermodynamic output. If LAMMPS
crashes or hangs without spitting out an error message first then it
could be a bug (see :doc:`this section <Errors_bugs>`) or one of the following
cases:
LAMMPS runs in the available memory a processor allows to be
allocated. Most reasonable MD runs are compute limited, not memory
limited, so this shouldn't be a bottleneck on most platforms. Almost
all large memory allocations in the code are done via C-style malloc's
which will generate an error message if you run out of memory.
Smaller chunks of memory are allocated via C++ "new" statements. If
you are unlucky you could run out of memory just when one of these
small requests is made, in which case the code will crash or hang (in
parallel), since LAMMPS doesn't trap on those errors.
Illegal arithmetic can cause LAMMPS to run slow or crash. This is
typically due to invalid physics and numerics that your simulation is
computing. If you see wild thermodynamic values or NaN values in your
LAMMPS output, something is wrong with your simulation. If you
suspect this is happening, it is a good idea to print out
thermodynamic info frequently (e.g. every timestep) via the
:doc:`thermo <thermo>` so you can monitor what is happening.
Visualizing the atom movement is also a good idea to insure your model
is behaving as you expect.
In parallel, one way LAMMPS can hang is due to how different MPI
implementations handle buffering of messages. If the code hangs
without an error message, it may be that you need to specify an MPI
setting or two (usually via an environment variable) to enable
buffering or boost the sizes of messages that can be buffered.
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

8408
doc/src/Errors_messages.rst Normal file

File diff suppressed because it is too large Load Diff

796
doc/src/Errors_warnings.rst Normal file
View File

@ -0,0 +1,796 @@
Warning messages
================
This is an alphabetic list of the WARNING messages LAMMPS prints out
and the reason why. If the explanation here is not sufficient, the
documentation for the offending command may help. Warning messages
also list the source file and line number where the warning was
generated. For example, a message like this:
.. parsed-literal::
WARNING: Bond atom missing in box size check (domain.cpp:187)
means that line #187 in the file src/domain.cpp generated the error.
Looking in the source code may help you figure out what went wrong.
Note that warning messages from :doc:`user-contributed packages <Packages_user>` are not listed here. If such a warning
occurs and is not self-explanatory, you'll need to look in the source
code or contact the author of the package.
Doc page with :doc:`ERROR messages <Errors_messages>`
----------
*Adjusting Coulombic cutoff for MSM, new cutoff = %g*
The adjust/cutoff command is turned on and the Coulombic cutoff has been
adjusted to match the user-specified accuracy.
*Angle atoms missing at step %ld*
One or more of 3 atoms needed to compute a particular angle are
missing on this processor. Typically this is because the pairwise
cutoff is set too short or the angle has blown apart and an atom is
too far away.
*Angle style in data file differs from currently defined angle style*
Self-explanatory.
*Angles are defined but no angle style is set*
The topology contains angles, but there are no angle forces computed
since there was no angle\_style command.
*Atom style in data file differs from currently defined atom style*
Self-explanatory.
*Bond atom missing in box size check*
The 2nd atoms needed to compute a particular bond is missing on this
processor. Typically this is because the pairwise cutoff is set too
short or the bond has blown apart and an atom is too far away.
*Bond atom missing in image check*
The 2nd atom in a particular bond is missing on this processor.
Typically this is because the pairwise cutoff is set too short or the
bond has blown apart and an atom is too far away.
*Bond atoms missing at step %ld*
The 2nd atom needed to compute a particular bond is missing on this
processor. Typically this is because the pairwise cutoff is set too
short or the bond has blown apart and an atom is too far away.
*Bond style in data file differs from currently defined bond style*
Self-explanatory.
*Bonds are defined but no bond style is set*
The topology contains bonds, but there are no bond forces computed
since there was no bond\_style command.
*Bond/angle/dihedral extent > half of periodic box length*
This is a restriction because LAMMPS can be confused about which image
of an atom in the bonded interaction is the correct one to use.
"Extent" in this context means the maximum end-to-end length of the
bond/angle/dihedral. LAMMPS computes this by taking the maximum bond
length, multiplying by the number of bonds in the interaction (e.g. 3
for a dihedral) and adding a small amount of stretch.
*Bond/react: Atom affected by reaction too close to template edge*
This means an atom which changes type or connectivity during the
reaction is too close to an 'edge' atom defined in the superimpose
file. This could cause incorrect assignment of bonds, angle, etc.
Generally, this means you must include more atoms in your templates,
such that there are at least two atoms between each atom involved in
the reaction and an edge atom.
*Both groups in compute group/group have a net charge; the Kspace boundary correction to energy will be non-zero*
Self-explanatory.
*Calling write\_dump before a full system init.*
The write\_dump command is used before the system has been fully
initialized as part of a 'run' or 'minimize' command. Not all dump
styles and features are fully supported at this point and thus the
command may fail or produce incomplete or incorrect output. Insert
a "run 0" command, if a full system init is required.
*Cannot count rigid body degrees-of-freedom before bodies are fully initialized*
This means the temperature associated with the rigid bodies may be
incorrect on this timestep.
*Cannot count rigid body degrees-of-freedom before bodies are initialized*
This means the temperature associated with the rigid bodies may be
incorrect on this timestep.
*Cannot include log terms without 1/r terms; setting flagHI to 1*
Self-explanatory.
*Cannot include log terms without 1/r terms; setting flagHI to 1.*
Self-explanatory.
*Charges are set, but coulombic solver is not used*
Self-explanatory.
*Charges did not converge at step %ld: %lg*
Self-explanatory.
*Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost*
The communication cutoff defaults to the maximum of what is inferred from
pair and bond styles (will be zero, if none are defined) and what is specified
via :doc:`comm\_modify cutoff <comm_modify>` (defaults to 0.0). If this results
to 0.0, no ghost atoms will be generated and LAMMPS may lose atoms or use
incorrect periodic images of atoms in interaction lists. To avoid, either use
:doc:`pair style zero <pair_zero>` with a suitable cutoff or use :doc:`comm\_modify cutoff <comm_modify>`.
*Communication cutoff is too small for SNAP micro load balancing, increased to %lf*
Self-explanatory.
*Compute cna/atom cutoff may be too large to find ghost atom neighbors*
The neighbor cutoff used may not encompass enough ghost atoms
to perform this operation correctly.
*Computing temperature of portions of rigid bodies*
The group defined by the temperature compute does not encompass all
the atoms in one or more rigid bodies, so the change in
degrees-of-freedom for the atoms in those partial rigid bodies will
not be accounted for.
*Create\_bonds max distance > minimum neighbor cutoff*
This means atom pairs for some atom types may not be in the neighbor
list and thus no bond can be created between them.
*Delete\_atoms cutoff > minimum neighbor cutoff*
This means atom pairs for some atom types may not be in the neighbor
list and thus an atom in that pair cannot be deleted.
*Dihedral atoms missing at step %ld*
One or more of 4 atoms needed to compute a particular dihedral are
missing on this processor. Typically this is because the pairwise
cutoff is set too short or the dihedral has blown apart and an atom is
too far away.
*Dihedral problem*
Conformation of the 4 listed dihedral atoms is extreme; you may want
to check your simulation geometry.
*Dihedral problem: %d %ld %d %d %d %d*
Conformation of the 4 listed dihedral atoms is extreme; you may want
to check your simulation geometry.
*Dihedral style in data file differs from currently defined dihedral style*
Self-explanatory.
*Dihedrals are defined but no dihedral style is set*
The topology contains dihedrals, but there are no dihedral forces computed
since there was no dihedral\_style command.
*Dump dcd/xtc timestamp may be wrong with fix dt/reset*
If the fix changes the timestep, the dump dcd file will not
reflect the change.
*Energy due to X extra global DOFs will be included in minimizer energies*
When using fixes like box/relax, the potential energy used by the minimizer
is augmented by an additional energy provided by the fix. Thus the printed
converged energy may be different from the total potential energy.
*Estimated error in splitting of dispersion coeffs is %g*
Error is greater than 0.0001 percent.
*Ewald/disp Newton solver failed, using old method to estimate g\_ewald*
Self-explanatory. Choosing a different cutoff value may help.
*FENE bond too long*
A FENE bond has stretched dangerously far. It's interaction strength
will be truncated to attempt to prevent the bond from blowing up.
*FENE bond too long: %ld %d %d %g*
A FENE bond has stretched dangerously far. It's interaction strength
will be truncated to attempt to prevent the bond from blowing up.
*FENE bond too long: %ld %g*
A FENE bond has stretched dangerously far. It's interaction strength
will be truncated to attempt to prevent the bond from blowing up.
*Fix SRD walls overlap but fix srd overlap not set*
You likely want to set this in your input script.
*Fix bond/swap will ignore defined angles*
See the doc page for fix bond/swap for more info on this
restriction.
*Fix deposit near setting < possible overlap separation %g*
This test is performed for finite size particles with a diameter, not
for point particles. The near setting is smaller than the particle
diameter which can lead to overlaps.
*Fix evaporate may delete atom with non-zero molecule ID*
This is probably an error, since you should not delete only one atom
of a molecule.
*Fix gcmc using full\_energy option*
Fix gcmc has automatically turned on the full\_energy option since it
is required for systems like the one specified by the user. User input
included one or more of the following: kspace, triclinic, a hybrid
pair style, an eam pair style, or no "single" function for the pair
style.
*Fix langevin gjf using random gaussians is not implemented with kokkos*
This will most likely cause errors in kinetic fluctuations.
*Fix property/atom mol or charge w/out ghost communication*
A model typically needs these properties defined for ghost atoms.
*Fix qeq CG convergence failed (%g) after %d iterations at %ld step*
Self-explanatory.
*Fix qeq has non-zero lower Taper radius cutoff*
Absolute value must be <= 0.01.
*Fix qeq has very low Taper radius cutoff*
Value should typically be >= 5.0.
*Fix qeq/dynamic tolerance may be too small for damped dynamics*
Self-explanatory.
*Fix qeq/fire tolerance may be too small for damped fires*
Self-explanatory.
*Fix rattle should come after all other integration fixes*
This fix is designed to work after all other integration fixes change
atom positions. Thus it should be the last integration fix specified.
If not, it will not satisfy the desired constraints as well as it
otherwise would.
*Fix recenter should come after all other integration fixes*
Other fixes may change the position of the center-of-mass, so
fix recenter should come last.
*Fix srd SRD moves may trigger frequent reneighboring*
This is because the SRD particles may move long distances.
*Fix srd grid size > 1/4 of big particle diameter*
This may cause accuracy problems.
*Fix srd particle moved outside valid domain*
This may indicate a problem with your simulation parameters.
*Fix srd particles may move > big particle diameter*
This may cause accuracy problems.
*Fix srd viscosity < 0.0 due to low SRD density*
This may cause accuracy problems.
*Fixes cannot send data in Kokkos communication, switching to classic communication*
This is current restriction with Kokkos.
*For better accuracy use 'pair\_modify table 0'*
The user-specified force accuracy cannot be achieved unless the table
feature is disabled by using 'pair\_modify table 0'.
*Geometric mixing assumed for 1/r\^6 coefficients*
Self-explanatory.
*Group for fix\_modify temp != fix group*
The fix\_modify command is specifying a temperature computation that
computes a temperature on a different group of atoms than the fix
itself operates on. This is probably not what you want to do.
*H matrix size has been exceeded: m\_fill=%d H.m=%d\n*
This is the size of the matrix.
*Ignoring unknown or incorrect info command flag*
Self-explanatory. An unknown argument was given to the info command.
Compare your input with the documentation.
*Improper atoms missing at step %ld*
One or more of 4 atoms needed to compute a particular improper are
missing on this processor. Typically this is because the pairwise
cutoff is set too short or the improper has blown apart and an atom is
too far away.
*Improper problem: %d %ld %d %d %d %d*
Conformation of the 4 listed improper atoms is extreme; you may want
to check your simulation geometry.
*Improper style in data file differs from currently defined improper style*
Self-explanatory.
*Impropers are defined but no improper style is set*
The topology contains impropers, but there are no improper forces computed
since there was no improper\_style command.
*Inconsistent image flags*
The image flags for a pair on bonded atoms appear to be inconsistent.
Inconsistent means that when the coordinates of the two atoms are
unwrapped using the image flags, the two atoms are far apart.
Specifically they are further apart than half a periodic box length.
Or they are more than a box length apart in a non-periodic dimension.
This is usually due to the initial data file not having correct image
flags for the 2 atoms in a bond that straddles a periodic boundary.
They should be different by 1 in that case. This is a warning because
inconsistent image flags will not cause problems for dynamics or most
LAMMPS simulations. However they can cause problems when such atoms
are used with the fix rigid or replicate commands. Note that if you
have an infinite periodic crystal with bonds then it is impossible to
have fully consistent image flags, since some bonds will cross
periodic boundaries and connect two atoms with the same image
flag.
*Increasing communication cutoff for GPU style*
The pair style has increased the communication cutoff to be consistent with
the communication cutoff requirements for this pair style when run on the GPU.
*KIM Model does not provide 'energy'; Potential energy will be zero*
Self-explanatory.
*KIM Model does not provide 'forces'; Forces will be zero*
Self-explanatory.
*KIM Model does not provide 'particleEnergy'; energy per atom will be zero*
Self-explanatory.
*KIM Model does not provide 'particleVirial'; virial per atom will be zero*
Self-explanatory.
*Kspace\_modify slab param < 2.0 may cause unphysical behavior*
The kspace\_modify slab parameter should be larger to insure periodic
grids padded with empty space do not overlap.
*Less insertions than requested*
The fix pour command was unsuccessful at finding open space
for as many particles as it tried to insert.
*Library error in lammps\_gather\_atoms*
This library function cannot be used if atom IDs are not defined
or are not consecutively numbered.
*Library error in lammps\_scatter\_atoms*
This library function cannot be used if atom IDs are not defined or
are not consecutively numbered, or if no atom map is defined. See the
atom\_modify command for details about atom maps.
*Likewise 1-2 special neighbor interactions != 1.0*
The topology contains bonds, but there is no bond style defined
and a 1-2 special neighbor scaling factor was not 1.0. This
means that pair style interactions may have scaled or missing
pairs in the neighbor list in expectation of interactions for
those pairs being computed from the bond style.
*Likewise 1-3 special neighbor interactions != 1.0*
The topology contains angles, but there is no angle style defined
and a 1-3 special neighbor scaling factor was not 1.0. This
means that pair style interactions may have scaled or missing
pairs in the neighbor list in expectation of interactions for
those pairs being computed from the angle style.
*Likewise 1-4 special neighbor interactions != 1.0*
The topology contains dihedrals, but there is no dihedral style defined
and a 1-4 special neighbor scaling factor was not 1.0. This
means that pair style interactions may have scaled or missing
pairs in the neighbor list in expectation of interactions for
those pairs being computed from the dihedral style.
*Lost atoms via change\_box: original %ld current %ld*
The command options you have used caused atoms to be lost.
*Lost atoms via displace\_atoms: original %ld current %ld*
The command options you have used caused atoms to be lost.
*Lost atoms: original %ld current %ld*
Lost atoms are checked for each time thermo output is done. See the
thermo\_modify lost command for options. Lost atoms usually indicate
bad dynamics, e.g. atoms have been blown far out of the simulation
box, or moved further than one processor's sub-domain away before
reneighboring.
*MSM mesh too small, increasing to 2 points in each direction*
Self-explanatory.
*Mismatch between velocity and compute groups*
The temperature computation used by the velocity command will not be
on the same group of atoms that velocities are being set for.
*Mixing forced for lj coefficients*
Self-explanatory.
*Molecule attributes do not match system attributes*
An attribute is specified (e.g. diameter, charge) that is
not defined for the specified atom style.
*Molecule has bond topology but no special bond settings*
This means the bonded atoms will not be excluded in pair-wise
interactions.
*Molecule template for create\_atoms has multiple molecules*
The create\_atoms command will only create molecules of a single type,
i.e. the first molecule in the template.
*Molecule template for fix gcmc has multiple molecules*
The fix gcmc command will only create molecules of a single type,
i.e. the first molecule in the template.
*Molecule template for fix shake has multiple molecules*
The fix shake command will only recognize molecules of a single
type, i.e. the first molecule in the template.
*More than one compute centro/atom*
It is not efficient to use compute centro/atom more than once.
*More than one compute cluster/atom*
It is not efficient to use compute cluster/atom more than once.
*More than one compute cna/atom defined*
It is not efficient to use compute cna/atom more than once.
*More than one compute contact/atom*
It is not efficient to use compute contact/atom more than once.
*More than one compute coord/atom*
It is not efficient to use compute coord/atom more than once.
*More than one compute damage/atom*
It is not efficient to use compute ke/atom more than once.
*More than one compute dilatation/atom*
Self-explanatory.
*More than one compute erotate/sphere/atom*
It is not efficient to use compute erorate/sphere/atom more than once.
*More than one compute hexorder/atom*
It is not efficient to use compute hexorder/atom more than once.
*More than one compute ke/atom*
It is not efficient to use compute ke/atom more than once.
*More than one compute orientorder/atom*
It is not efficient to use compute orientorder/atom more than once.
*More than one compute plasticity/atom*
Self-explanatory.
*More than one compute sna/atom*
Self-explanatory.
*More than one compute snad/atom*
Self-explanatory.
*More than one compute snav/atom*
Self-explanatory.
*More than one fix poems*
It is not efficient to use fix poems more than once.
*More than one fix rigid*
It is not efficient to use fix rigid more than once.
*Neighbor exclusions used with KSpace solver may give inconsistent Coulombic energies*
This is because excluding specific pair interactions also excludes
them from long-range interactions which may not be the desired effect.
The special\_bonds command handles this consistently by insuring
excluded (or weighted) 1-2, 1-3, 1-4 interactions are treated
consistently by both the short-range pair style and the long-range
solver. This is not done for exclusions of charged atom pairs via the
neigh\_modify exclude command.
*New thermo\_style command, previous thermo\_modify settings will be lost*
If a thermo\_style command is used after a thermo\_modify command, the
settings changed by the thermo\_modify command will be reset to their
default values. This is because the thermo\_modify command acts on
the currently defined thermo style, and a thermo\_style command creates
a new style.
*No Kspace calculation with verlet/split*
The 2nd partition performs a kspace calculation so the kspace\_style
command must be used.
*No automatic unit conversion to XTC file format conventions possible for units lj*
This means no scaling will be performed.
*No fixes defined, atoms won't move*
If you are not using a fix like nve, nvt, npt then atom velocities and
coordinates will not be updated during timestepping.
*No joints between rigid bodies, use fix rigid instead*
The bodies defined by fix poems are not connected by joints. POEMS
will integrate the body motion, but it would be more efficient to use
fix rigid.
*Not using real units with pair reax*
This is most likely an error, unless you have created your own ReaxFF
parameter file in a different set of units.
*Number of MSM mesh points changed to be a multiple of 2*
MSM requires that the number of grid points in each direction be a multiple
of two and the number of grid points in one or more directions have been
adjusted to meet this requirement.
*OMP\_NUM\_THREADS environment is not set.*
This environment variable must be set appropriately to use the
USER-OMP package.
*One or more atoms are time integrated more than once*
This is probably an error since you typically do not want to
advance the positions or velocities of an atom more than once
per timestep.
*One or more chunks do not contain all atoms in molecule*
This may not be what you intended.
*One or more dynamic groups may not be updated at correct point in timestep*
If there are other fixes that act immediately after the initial stage
of time integration within a timestep (i.e. after atoms move), then
the command that sets up the dynamic group should appear after those
fixes. This will insure that dynamic group assignments are made
after all atoms have moved.
*One or more respa levels compute no forces*
This is computationally inefficient.
*Pair COMB charge %.10f with force %.10f hit max barrier*
Something is possibly wrong with your model.
*Pair COMB charge %.10f with force %.10f hit min barrier*
Something is possibly wrong with your model.
*Pair brownian needs newton pair on for momentum conservation*
Self-explanatory.
*Pair dpd needs newton pair on for momentum conservation*
Self-explanatory.
*Pair dsmc: num\_of\_collisions > number\_of\_A*
Collision model in DSMC is breaking down.
*Pair dsmc: num\_of\_collisions > number\_of\_B*
Collision model in DSMC is breaking down.
*Pair style in data file differs from currently defined pair style*
Self-explanatory.
*Pair style restartinfo set but has no restart support*
This pair style has a bug, where it does not support reading and
writing information to a restart file, but does not set the member
variable "restartinfo" to 0 as required in that case.
*Particle deposition was unsuccessful*
The fix deposit command was not able to insert as many atoms as
needed. The requested volume fraction may be too high, or other atoms
may be in the insertion region.
*Proc sub-domain size < neighbor skin, could lead to lost atoms*
The decomposition of the physical domain (likely due to load
balancing) has led to a processor's sub-domain being smaller than the
neighbor skin in one or more dimensions. Since reneighboring is
triggered by atoms moving the skin distance, this may lead to lost
atoms, if an atom moves all the way across a neighboring processor's
sub-domain before reneighboring is triggered.
*Reducing PPPM order b/c stencil extends beyond nearest neighbor processor*
This may lead to a larger grid than desired. See the kspace\_modify overlap
command to prevent changing of the PPPM order.
*Reducing PPPMDisp Coulomb order b/c stencil extends beyond neighbor processor*
This may lead to a larger grid than desired. See the kspace\_modify overlap
command to prevent changing of the PPPM order.
*Reducing PPPMDisp dispersion order b/c stencil extends beyond neighbor processor*
This may lead to a larger grid than desired. See the kspace\_modify overlap
command to prevent changing of the PPPM order.
*Replacing a fix, but new group != old group*
The ID and style of a fix match for a fix you are changing with a fix
command, but the new group you are specifying does not match the old
group.
*Replicating in a non-periodic dimension*
The parameters for a replicate command will cause a non-periodic
dimension to be replicated; this may cause unwanted behavior.
*Resetting reneighboring criteria during PRD*
A PRD simulation requires that neigh\_modify settings be delay = 0,
every = 1, check = yes. Since these settings were not in place,
LAMMPS changed them and will restore them to their original values
after the PRD simulation.
*Resetting reneighboring criteria during TAD*
A TAD simulation requires that neigh\_modify settings be delay = 0,
every = 1, check = yes. Since these settings were not in place,
LAMMPS changed them and will restore them to their original values
after the PRD simulation.
*Resetting reneighboring criteria during minimization*
Minimization requires that neigh\_modify settings be delay = 0, every =
1, check = yes. Since these settings were not in place, LAMMPS
changed them and will restore them to their original values after the
minimization.
*Restart file used different # of processors*
The restart file was written out by a LAMMPS simulation running on a
different number of processors. Due to round-off, the trajectories of
your restarted simulation may diverge a little more quickly than if
you ran on the same # of processors.
*Restart file used different 3d processor grid*
The restart file was written out by a LAMMPS simulation running on a
different 3d grid of processors. Due to round-off, the trajectories
of your restarted simulation may diverge a little more quickly than if
you ran on the same # of processors.
*Restart file used different boundary settings, using restart file values*
Your input script cannot change these restart file settings.
*Restart file used different newton bond setting, using restart file value*
The restart file value will override the setting in the input script.
*Restart file used different newton pair setting, using input script value*
The input script value will override the setting in the restart file.
*Restrain problem: %d %ld %d %d %d %d*
Conformation of the 4 listed dihedral atoms is extreme; you may want
to check your simulation geometry.
*Running PRD with only one replica*
This is allowed, but you will get no parallel speed-up.
*SRD bin shifting turned on due to small lamda*
This is done to try to preserve accuracy.
*SRD bin size for fix srd differs from user request*
Fix SRD had to adjust the bin size to fit the simulation box. See the
cubic keyword if you want this message to be an error vs warning.
*SRD bins for fix srd are not cubic enough*
The bin shape is not within tolerance of cubic. See the cubic
keyword if you want this message to be an error vs warning.
*SRD particle %d started inside big particle %d on step %ld bounce %d*
See the inside keyword if you want this message to be an error vs
warning.
*SRD particle %d started inside wall %d on step %ld bounce %d*
See the inside keyword if you want this message to be an error vs
warning.
*Shake determinant < 0.0*
The determinant of the quadratic equation being solved for a single
cluster specified by the fix shake command is numerically suspect. LAMMPS
will set it to 0.0 and continue.
*Shell command '%s' failed with error '%s'*
Self-explanatory.
*Shell command returned with non-zero status*
This may indicate the shell command did not operate as expected.
*Should not allow rigid bodies to bounce off reflecting walls*
LAMMPS allows this, but their dynamics are not computed correctly.
*Should not use fix nve/limit with fix shake or fix rattle*
This will lead to invalid constraint forces in the SHAKE/RATTLE
computation.
*Simulations might be very slow because of large number of structure factors*
Self-explanatory.
*Slab correction not needed for MSM*
Slab correction is intended to be used with Ewald or PPPM and is not needed by MSM.
*System is not charge neutral, net charge = %g*
The total charge on all atoms on the system is not 0.0.
For some KSpace solvers this is only a warning.
*Table inner cutoff >= outer cutoff*
You specified an inner cutoff for a Coulombic table that is longer
than the global cutoff. Probably not what you wanted.
*Temperature for MSST is not for group all*
User-assigned temperature to MSST fix does not compute temperature for
all atoms. Since MSST computes a global pressure, the kinetic energy
contribution from the temperature is assumed to also be for all atoms.
Thus the pressure used by MSST could be inaccurate.
*Temperature for NPT is not for group all*
User-assigned temperature to NPT fix does not compute temperature for
all atoms. Since NPT computes a global pressure, the kinetic energy
contribution from the temperature is assumed to also be for all atoms.
Thus the pressure used by NPT could be inaccurate.
*Temperature for fix modify is not for group all*
The temperature compute is being used with a pressure calculation
which does operate on group all, so this may be inconsistent.
*Temperature for thermo pressure is not for group all*
User-assigned temperature to thermo via the thermo\_modify command does
not compute temperature for all atoms. Since thermo computes a global
pressure, the kinetic energy contribution from the temperature is
assumed to also be for all atoms. Thus the pressure printed by thermo
could be inaccurate.
*The fix ave/spatial command has been replaced by the more flexible fix ave/chunk and compute chunk/atom commands -- fix ave/spatial will be removed in the summer of 2015*
Self-explanatory.
*The minimizer does not re-orient dipoles when using fix efield*
This means that only the atom coordinates will be minimized,
not the orientation of the dipoles.
*Too many common neighbors in CNA %d times*
More than the maximum # of neighbors was found multiple times. This
was unexpected.
*Too many inner timesteps in fix ttm*
Self-explanatory.
*Too many neighbors in CNA for %d atoms*
More than the maximum # of neighbors was found multiple times. This
was unexpected.
*Triclinic box skew is large*
The displacement in a skewed direction is normally required to be less
than half the box length in that dimension. E.g. the xy tilt must be
between -half and +half of the x box length. You have relaxed the
constraint using the box tilt command, but the warning means that a
LAMMPS simulation may be inefficient as a result.
*Use special bonds = 0,1,1 with bond style fene*
Most FENE models need this setting for the special\_bonds command.
*Use special bonds = 0,1,1 with bond style fene/expand*
Most FENE models need this setting for the special\_bonds command.
*Using a many-body potential with bonds/angles/dihedrals and special\_bond exclusions*
This is likely not what you want to do. The exclusion settings will
eliminate neighbors in the neighbor list, which the many-body potential
needs to calculated its terms correctly.
*Using compute temp/deform with inconsistent fix deform remap option*
Fix nvt/sllod assumes deforming atoms have a velocity profile provided
by "remap v" or "remap none" as a fix deform option.
*Using compute temp/deform with no fix deform defined*
This is probably an error, since it makes little sense to use
compute temp/deform in this case.
*Using fix srd with box deformation but no SRD thermostat*
The deformation will heat the SRD particles so this can
be dangerous.
*Using kspace solver on system with no charge*
Self-explanatory.
*Using largest cut-off for lj/long/dipole/long long long*
Self-explanatory.
*Using largest cutoff for buck/long/coul/long*
Self-explanatory.
*Using largest cutoff for lj/long/coul/long*
Self-explanatory.
*Using largest cutoff for pair\_style lj/long/tip4p/long*
Self-explanatory.
*Using package gpu without any pair style defined*
Self-explanatory.
*Using pair potential shift with pair\_modify compute no*
The shift effects will thus not be computed.
*Using pair tail corrections with nonperiodic system*
This is probably a bogus thing to do, since tail corrections are
computed by integrating the density of a periodic system out to
infinity.
*Using pair tail corrections with pair\_modify compute no*
The tail corrections will thus not be computed.
*pair style reax is now deprecated and will soon be retired. Users should switch to pair\_style reax/c*
Self-explanatory.
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

235
doc/src/Examples.rst Normal file
View File

@ -0,0 +1,235 @@
Example scripts
===============
The LAMMPS distribution includes an examples sub-directory with many
sample problems. Many are 2d models that run quickly and are
straightforward to visualize, requiring at most a couple of minutes to
run on a desktop machine. Each problem has an input script (in.\*) and
produces a log file (log.\*) when it runs. Some use a data file
(data.\*) of initial coordinates as additional input. A few sample log
file run on different machines and different numbers of processors are
included in the directories to compare your answers to. E.g. a log
file like log.date.crack.foo.P means the "crack" example was run on P
processors of machine "foo" on that date (i.e. with that version of
LAMMPS).
Many of the input files have commented-out lines for creating dump
files and image files.
If you uncomment the :doc:`dump <dump>` command in the input script, a
text dump file will be produced, which can be animated by various
`visualization programs <http://lammps.sandia.gov/viz.html>`_.
If you uncomment the :doc:`dump image <dump>` command in the input
script, and assuming you have built LAMMPS with a JPG library, JPG
snapshot images will be produced when the simulation runs. They can
be quickly post-processed into a movie using commands described on the
:doc:`dump image <dump_image>` doc page.
Animations of many of the examples can be viewed on the Movies section
of the `LAMMPS web site <lws_>`_.
There are two kinds of sub-directories in the examples dir. Lowercase
dirs contain one or a few simple, quick-to-run problems. Uppercase
dirs contain up to several complex scripts that illustrate a
particular kind of simulation method or model. Some of these run for
longer times, e.g. to measure a particular quantity.
Lists of both kinds of directories are given below.
----------
Lowercase directories
---------------------
+-------------+------------------------------------------------------------------+
| accelerate | run with various acceleration options (OpenMP, GPU, Phi) |
+-------------+------------------------------------------------------------------+
| airebo | polyethylene with AIREBO potential |
+-------------+------------------------------------------------------------------+
| atm | Axilrod-Teller-Muto potential example |
+-------------+------------------------------------------------------------------+
| balance | dynamic load balancing, 2d system |
+-------------+------------------------------------------------------------------+
| body | body particles, 2d system |
+-------------+------------------------------------------------------------------+
| cmap | CMAP 5-body contributions to CHARMM force field |
+-------------+------------------------------------------------------------------+
| colloid | big colloid particles in a small particle solvent, 2d system |
+-------------+------------------------------------------------------------------+
| comb | models using the COMB potential |
+-------------+------------------------------------------------------------------+
| controller | use of fix controller as a thermostat |
+-------------+------------------------------------------------------------------+
| coreshell | core/shell model using CORESHELL package |
+-------------+------------------------------------------------------------------+
| crack | crack propagation in a 2d solid |
+-------------+------------------------------------------------------------------+
| deposit | deposit atoms and molecules on a surface |
+-------------+------------------------------------------------------------------+
| dipole | point dipolar particles, 2d system |
+-------------+------------------------------------------------------------------+
| dreiding | methanol via Dreiding FF |
+-------------+------------------------------------------------------------------+
| eim | NaCl using the EIM potential |
+-------------+------------------------------------------------------------------+
| ellipse | ellipsoidal particles in spherical solvent, 2d system |
+-------------+------------------------------------------------------------------+
| flow | Couette and Poiseuille flow in a 2d channel |
+-------------+------------------------------------------------------------------+
| friction | frictional contact of spherical asperities between 2d surfaces |
+-------------+------------------------------------------------------------------+
| gcmc | Grand Canonical Monte Carlo (GCMC) via the fix gcmc command |
+-------------+------------------------------------------------------------------+
| granregion | use of fix wall/region/gran as boundary on granular particles |
+-------------+------------------------------------------------------------------+
| hugoniostat | Hugoniostat shock dynamics |
+-------------+------------------------------------------------------------------+
| hyper | global and local hyperdynamics of diffusion on Pt surface |
+-------------+------------------------------------------------------------------+
| indent | spherical indenter into a 2d solid |
+-------------+------------------------------------------------------------------+
| kim | use of potentials from the `OpenKIM Repository <openkim_>`_ |
+-------------+------------------------------------------------------------------+
| latte | examples for using fix latte for DFTB via the LATTE library |
+-------------+------------------------------------------------------------------+
| meam | MEAM test for SiC and shear (same as shear examples) |
+-------------+------------------------------------------------------------------+
| melt | rapid melt of 3d LJ system |
+-------------+------------------------------------------------------------------+
| message | demos for LAMMPS client/server coupling with the MESSAGE package |
+-------------+------------------------------------------------------------------+
| micelle | self-assembly of small lipid-like molecules into 2d bilayers |
+-------------+------------------------------------------------------------------+
| min | energy minimization of 2d LJ melt |
+-------------+------------------------------------------------------------------+
| mscg | parameterize a multi-scale coarse-graining (MSCG) model |
+-------------+------------------------------------------------------------------+
| msst | MSST shock dynamics |
+-------------+------------------------------------------------------------------+
| nb3b | use of non-bonded 3-body harmonic pair style |
+-------------+------------------------------------------------------------------+
| neb | nudged elastic band (NEB) calculation for barrier finding |
+-------------+------------------------------------------------------------------+
| nemd | non-equilibrium MD of 2d sheared system |
+-------------+------------------------------------------------------------------+
| obstacle | flow around two voids in a 2d channel |
+-------------+------------------------------------------------------------------+
| peptide | dynamics of a small solvated peptide chain (5-mer) |
+-------------+------------------------------------------------------------------+
| peri | Peridynamic model of cylinder impacted by indenter |
+-------------+------------------------------------------------------------------+
| pour | pouring of granular particles into a 3d box, then chute flow |
+-------------+------------------------------------------------------------------+
| prd | parallel replica dynamics of vacancy diffusion in bulk Si |
+-------------+------------------------------------------------------------------+
| python | using embedded Python in a LAMMPS input script |
+-------------+------------------------------------------------------------------+
| qeq | use of the QEQ package for charge equilibration |
+-------------+------------------------------------------------------------------+
| rdf-adf | computing radial and angle distribution functions for water |
+-------------+------------------------------------------------------------------+
| reax | RDX and TATB models using the ReaxFF |
+-------------+------------------------------------------------------------------+
| rigid | rigid bodies modeled as independent or coupled |
+-------------+------------------------------------------------------------------+
| shear | sideways shear applied to 2d solid, with and without a void |
+-------------+------------------------------------------------------------------+
| snap | NVE dynamics for BCC tantalum crystal using SNAP potential |
+-------------+------------------------------------------------------------------+
| srd | stochastic rotation dynamics (SRD) particles as solvent |
+-------------+------------------------------------------------------------------+
| streitz | use of Streitz/Mintmire potential with charge equilibration |
+-------------+------------------------------------------------------------------+
| tad | temperature-accelerated dynamics of vacancy diffusion in bulk Si |
+-------------+------------------------------------------------------------------+
| threebody | regression test input for a variety of manybody potentials |
+-------------+------------------------------------------------------------------+
| vashishta | use of the Vashishta potential |
+-------------+------------------------------------------------------------------+
| voronoi | Voronoi tesselation via compute voronoi/atom command |
+-------------+------------------------------------------------------------------+
Here is how you can run and visualize one of the sample problems:
.. parsed-literal::
cd indent
cp ../../src/lmp_linux . # copy LAMMPS executable to this dir
lmp_linux -in in.indent # run the problem
Running the simulation produces the files *dump.indent* and
*log.lammps*\ . You can visualize the dump file of snapshots with a
variety of 3rd-party tools highlighted on the
`Visualization <http://lammps.sandia.gov/viz.html>`_ page of the LAMMPS
web site.
If you uncomment the :doc:`dump image <dump_image>` line(s) in the input
script a series of JPG images will be produced by the run (assuming
you built LAMMPS with JPG support; see the
:doc:`Build\_settings <Build_settings>` doc page for details). These can
be viewed individually or turned into a movie or animated by tools
like ImageMagick or QuickTime or various Windows-based tools. See the
:doc:`dump image <dump_image>` doc page for more details. E.g. this
Imagemagick command would create a GIF file suitable for viewing in a
browser.
.. parsed-literal::
% convert -loop 1 \*.jpg foo.gif
----------
Uppercase directories
---------------------
+------------+--------------------------------------------------------------------------------------------------+
| ASPHERE | various aspherical particle models, using ellipsoids, rigid bodies, line/triangle particles, etc |
+------------+--------------------------------------------------------------------------------------------------+
| COUPLE | examples of how to use LAMMPS as a library |
+------------+--------------------------------------------------------------------------------------------------+
| DIFFUSE | compute diffusion coefficients via several methods |
+------------+--------------------------------------------------------------------------------------------------+
| ELASTIC | compute elastic constants at zero temperature |
+------------+--------------------------------------------------------------------------------------------------+
| ELASTIC\_T | compute elastic constants at finite temperature |
+------------+--------------------------------------------------------------------------------------------------+
| HEAT | compute thermal conductivity for LJ and water via fix ehex |
+------------+--------------------------------------------------------------------------------------------------+
| KAPPA | compute thermal conductivity via several methods |
+------------+--------------------------------------------------------------------------------------------------+
| MC | using LAMMPS in a Monte Carlo mode to relax the energy of a system |
+------------+--------------------------------------------------------------------------------------------------+
| SPIN | examples for features of the SPIN package |
+------------+--------------------------------------------------------------------------------------------------+
| UNITS | examples that run the same simulation in lj, real, metal units |
+------------+--------------------------------------------------------------------------------------------------+
| USER | examples for USER packages and USER-contributed commands |
+------------+--------------------------------------------------------------------------------------------------+
| VISCOSITY | compute viscosity via several methods |
+------------+--------------------------------------------------------------------------------------------------+
Nearly all of these directories have README files which give more
details on how to understand and use their contents.
The USER directory has a large number of sub-directories which
correspond by name to a USER package. They contain scripts that
illustrate how to use the command(s) provided in that package. Many
of the sub-directories have their own README files which give further
instructions. See the :doc:`Packages\_details <Packages_details>` doc
page for more info on specific USER packages.
.. _openkim: https://openkim.org
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

106
doc/src/Howto.rst Normal file
View File

@ -0,0 +1,106 @@
Howto discussions
*****************
These doc pages describe how to perform various tasks with LAMMPS,
both for users and developers. The
`glossary <http://lammps.sandia.gov>`_ website page also lists MD
terminology with links to corresponding LAMMPS manual pages. The
example input scripts included in the examples dir of the LAMMPS
distribution and highlighted on the :doc:`Examples <Examples>` doc page
also show how to setup and run various kinds of simulations.
Tutorials howto
===============
.. toctree::
:name: tutorials
:maxdepth: 1
Howto_github
Howto_pylammps
Howto_bash
General howto
=============
.. toctree::
:name: general_howto
:maxdepth: 1
Howto_restart
Howto_viz
Howto_multiple
Howto_replica
Howto_library
Howto_couple
Howto_client_server
Settings howto
==============
.. toctree::
:name: settings
:maxdepth: 1
Howto_2d
Howto_triclinic
Howto_thermostat
Howto_barostat
Howto_walls
Howto_nemd
Howto_dispersion
Analysis howto
==============
.. toctree::
:name: analysis
:maxdepth: 1
Howto_output
Howto_chunk
Howto_temperature
Howto_elastic
Howto_kappa
Howto_viscosity
Howto_diffusion
Force fields howto
==================
.. toctree::
:name: force
:maxdepth: 1
Howto_bioFF
Howto_tip3p
Howto_tip4p
Howto_spc
Packages howto
==============
.. toctree::
:name: packages
:maxdepth: 1
Howto_spherical
Howto_granular
Howto_body
Howto_polarizable
Howto_coreshell
Howto_drude
Howto_drude2
Howto_manifold
Howto_spins
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

48
doc/src/Howto_2d.rst Normal file
View File

@ -0,0 +1,48 @@
2d simulations
==============
Use the :doc:`dimension <dimension>` command to specify a 2d simulation.
Make the simulation box periodic in z via the :doc:`boundary <boundary>`
command. This is the default.
If using the :doc:`create box <create_box>` command to define a
simulation box, set the z dimensions narrow, but finite, so that the
create\_atoms command will tile the 3d simulation box with a single z
plane of atoms - e.g.
.. parsed-literal::
:doc:`create box <create_box>` 1 -10 10 -10 10 -0.25 0.25
If using the :doc:`read data <read_data>` command to read in a file of
atom coordinates, set the "zlo zhi" values to be finite but narrow,
similar to the create\_box command settings just described. For each
atom in the file, assign a z coordinate so it falls inside the
z-boundaries of the box - e.g. 0.0.
Use the :doc:`fix enforce2d <fix_enforce2d>` command as the last
defined fix to insure that the z-components of velocities and forces
are zeroed out every timestep. The reason to make it the last fix is
so that any forces induced by other fixes will be zeroed out.
Many of the example input scripts included in the LAMMPS distribution
are for 2d models.
.. note::
Some models in LAMMPS treat particles as finite-size spheres, as
opposed to point particles. See the :doc:`atom\_style sphere <atom_style>` and :doc:`fix nve/sphere <fix_nve_sphere>`
commands for details. By default, for 2d simulations, such particles
will still be modeled as 3d spheres, not 2d discs (circles), meaning
their moment of inertia will be that of a sphere. If you wish to
model them as 2d discs, see the :doc:`set density/disc <set>` command
and the *disc* option for the :doc:`fix nve/sphere <fix_nve_sphere>`,
:doc:`fix nvt/sphere <fix_nvt_sphere>`, :doc:`fix nph/sphere <fix_nph_sphere>`, :doc:`fix npt/sphere <fix_npt_sphere>`
commands.
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

View File

@ -0,0 +1,68 @@
Barostats
=========
Barostatting means controlling the pressure in an MD simulation.
:doc:`Thermostatting <Howto_thermostat>` means controlling the
temperature of the particles. Since the pressure includes a kinetic
component due to particle velocities, both these operations require
calculation of the temperature. Typically a target temperature (T)
and/or pressure (P) is specified by the user, and the thermostat or
barostat attempts to equilibrate the system to the requested T and/or
P.
Barostatting in LAMMPS is performed by :doc:`fixes <fix>`. Two
barostatting methods are currently available: Nose-Hoover (npt and
nph) and Berendsen:
* :doc:`fix npt <fix_nh>`
* :doc:`fix npt/sphere <fix_npt_sphere>`
* :doc:`fix npt/asphere <fix_npt_asphere>`
* :doc:`fix nph <fix_nh>`
* :doc:`fix press/berendsen <fix_press_berendsen>`
The :doc:`fix npt <fix_nh>` commands include a Nose-Hoover thermostat
and barostat. :doc:`Fix nph <fix_nh>` is just a Nose/Hoover barostat;
it does no thermostatting. Both :doc:`fix nph <fix_nh>` and :doc:`fix press/berendsen <fix_press_berendsen>` can be used in conjunction
with any of the thermostatting fixes.
As with the :doc:`thermostats <Howto_thermostat>`, :doc:`fix npt <fix_nh>`
and :doc:`fix nph <fix_nh>` only use translational motion of the
particles in computing T and P and performing thermo/barostatting.
:doc:`Fix npt/sphere <fix_npt_sphere>` and :doc:`fix npt/asphere <fix_npt_asphere>` thermo/barostat using not only
translation velocities but also rotational velocities for spherical
and aspherical particles.
All of the barostatting fixes use the :doc:`compute pressure <compute_pressure>` compute to calculate a current
pressure. By default, this compute is created with a simple :doc:`compute temp <compute_temp>` (see the last argument of the :doc:`compute pressure <compute_pressure>` command), which is used to calculated
the kinetic component of the pressure. The barostatting fixes can
also use temperature computes that remove bias for the purpose of
computing the kinetic component which contributes to the current
pressure. See the doc pages for the individual fixes and for the
:doc:`fix\_modify <fix_modify>` command for instructions on how to assign
a temperature or pressure compute to a barostatting fix.
.. note::
As with the thermostats, the Nose/Hoover methods (:doc:`fix npt <fix_nh>` and :doc:`fix nph <fix_nh>`) perform time integration.
:doc:`Fix press/berendsen <fix_press_berendsen>` does NOT, so it should
be used with one of the constant NVE fixes or with one of the NVT
fixes.
Thermodynamic output, which can be setup via the
:doc:`thermo\_style <thermo_style>` command, often includes pressure
values. As explained on the doc page for the
:doc:`thermo\_style <thermo_style>` command, the default pressure is
setup by the thermo command itself. It is NOT the pressure associated
with any barostatting fix you have defined or with any compute you
have defined that calculates a pressure. The doc pages for the
barostatting fixes explain the ID of the pressure compute they create.
Thus if you want to view these pressures, you need to specify them
explicitly via the :doc:`thermo\_style custom <thermo_style>` command.
Or you can use the :doc:`thermo\_modify <thermo_modify>` command to
re-define what pressure compute is used for default thermodynamic
output.
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

291
doc/src/Howto_bash.rst Normal file
View File

@ -0,0 +1,291 @@
Using LAMMPS with Bash on Windows
=================================
**written by Richard Berger**
----------
Starting with Windows 10 you can install Linux tools directly in Windows. This
allows you to compile LAMMPS following the same procedure as on a real Ubuntu
Linux installation. Software can be easily installed using the package manager
via apt-get and all files are accessible in both the Windows Explorer and your
Linux shell (bash). This avoids switching to a different operating system or
installing a virtual machine. Everything runs on Windows.
Installing Bash on Windows
--------------------------
Prerequisites
^^^^^^^^^^^^^
* Windows 10 (64bit only)
* Latest updates installed
Enable developer mode
^^^^^^^^^^^^^^^^^^^^^
You enable this feature by first opening Windows Settings and enabling
Developer mode. Go to the Windows settings and search for "developer". This
will allow you to install software which comes from outside of the Windows
Store. You might be prompted to reboot your compute. Please do so.
.. image:: JPG/bow_tutorial_01_small.png
:target: JPG/bow_tutorial_01.png
.. image:: JPG/bow_tutorial_02_small.png
:target: JPG/bow_tutorial_02.png
.. image:: JPG/bow_tutorial_03_small.png
:target: JPG/bow_tutorial_03.png
Install Windows Subsystem for Linux
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Next you must ensure that the Window Subsystem for Linux is installed. Again,
search for "enable windows features" in the Settings dialog. This opens a
dialog with a list of features you can install. Add a checkmark to Windows
Subsystem for Linux (Beta) and press OK.
.. image:: JPG/bow_tutorial_04_small.png
:target: JPG/bow_tutorial_04.png
.. image:: JPG/bow_tutorial_05.png
:target: JPG/bow_tutorial_05.png
Install Bash for Windows
^^^^^^^^^^^^^^^^^^^^^^^^
After installation completes, type "bash" in the Windows Start menu search.
Select the first found option. This will launch a command-line window which
will prompt you about installing Ubuntu on Windows. Confirm with "y" and press
enter. This will then download Ubuntu for Windows.
.. image:: JPG/bow_tutorial_06.png
.. image:: JPG/bow_tutorial_07.png
During installation, you will be asked for a new password. This will be used
for installing new software and running commands with sudo.
.. image:: JPG/bow_tutorial_08.png
Type exit to close the command-line window.
Go to the Start menu and type "bash" again. This time you will see a "Bash on
Ubuntu on Windows" Icon. Start this program.
.. image:: JPG/bow_tutorial_09.png
Congratulations, you have installed **Bash on Ubuntu on Windows**\ .
.. image:: JPG/bow_tutorial_10.png
----------
Compiling LAMMPS in Bash on Windows
-----------------------------------
The installation of LAMMPS in this environment is identical to working inside
of a real Ubuntu Linux installation. At the time writing, it uses Ubuntu 16.04.
Installing prerequisite packages
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
First upgrade all existing packages using
.. parsed-literal::
sudo apt update
sudo apt upgrade -y
Next install the following packages, which include compilers and libraries
needed for various LAMMPS features:
.. parsed-literal::
sudo apt install -y build-essential ccache gfortran openmpi-bin libopenmpi-dev libfftw3-dev libjpeg-dev libpng12-dev python-dev python-virtualenv libblas-dev liblapack-dev libhdf5-serial-dev hdf5-tools
Files in Ubuntu on Windows
^^^^^^^^^^^^^^^^^^^^^^^^^^
When you launch "Bash on Ubuntu on Windows" you will start out in your Linux
user home directory /home/\ **username**\ . You can access your Windows user directory
using the /mnt/c/Users/\ **username** folder.
Download LAMMPS
^^^^^^^^^^^^^^^
Obtain a copy of the LAMMPS code and go into it using "cd"
Option 1: Downloading LAMMPS tarball using wget
"""""""""""""""""""""""""""""""""""""""""""""""
.. parsed-literal::
wget http://lammps.sandia.gov/tars/lammps-stable.tar.gz
tar xvzf lammps-stable.tar.gz
cd lammps-31Mar17
Option 2: Obtaining LAMMPS code from GitHub
"""""""""""""""""""""""""""""""""""""""""""
.. parsed-literal::
git clone https://github.com/lammps/lammps.git
cd lammps
Compiling LAMMPS
^^^^^^^^^^^^^^^^
At this point you can compile LAMMPS like on Ubuntu Linux.
Compiling serial version
""""""""""""""""""""""""
.. parsed-literal::
cd src/
make -j 4 serial
This will create an executable called lmp\_serial in the src/ directory
Compiling MPI version
"""""""""""""""""""""
.. parsed-literal::
cd src/
make -j 4 mpi
This will create an executable called lmp\_mpi in the src/ directory
----------
Finally, please note the absolute path of your src folder. You can get this using
.. parsed-literal::
pwd
or
.. parsed-literal::
echo $PWD
To run any examples you need the location of the executable. For now, let us
save this location in a temporary variable
.. parsed-literal::
LAMMPS_DIR=$PWD
----------
Running an example script
^^^^^^^^^^^^^^^^^^^^^^^^^
Once compiled you can execute some of the LAMMPS examples. Switch into the
examples/melt folder
.. parsed-literal::
cd ../examples/melt
The full path of the serial executable is $LAMMPS\_DIR/lmp\_serial, while the mpi
version is $LAMMPS\_DIR/lmp\_mpi. You can run the melt example with either
version as follows:
.. parsed-literal::
$LAMMPS_DIR/lmp_serial -in in.melt
or
.. parsed-literal::
mpirun -np 4 $LAMMPS_DIR/lmp_mpi -in in.melt
Note the use of our variable $LAMMPS\_DIR, which expands into the full path of
the LAMMPS src folder we saved earlier.
Adding your executable directory to your PATH
"""""""""""""""""""""""""""""""""""""""""""""
You can avoid having to type the full path of your LAMMPS binary by adding its
parent folder to the PATH environment variable as follows:
.. parsed-literal::
export PATH=$LAMMPS_DIR:$PATH
Input scripts can then be run like this:
.. parsed-literal::
lmp_serial -in in.melt
or
.. parsed-literal::
mpirun -np 4 lmp_mpi -in in.melt
However, this PATH variable will not persist if you close your bash window.
To persist this setting edit the $HOME/.bashrc file using your favorite editor
and add this line
.. parsed-literal::
export PATH=/full/path/to/your/lammps/src:$PATH
**Example:**
For an executable lmp\_serial with a full path
.. parsed-literal::
/home/richard/lammps/src/lmp_serial
the PATH variable should be
.. parsed-literal::
export PATH=/home/richard/lammps/src:$PATH
.. note::
This should give you a jump start when trying to run LAMMPS on Windows.
To become effective in this environment I encourage you to look into Linux
tutorials explaining Bash and Basic Unix commands (e.g., `Linux Journey <https://linuxjourney.com>`_)
.. _lws: http://lammps.sandia.gov
.. _ld: Manual.html
.. _lc: Commands_all.html

Some files were not shown because too many files have changed in this diff Show More