Compare commits

..

702 Commits

Author SHA1 Message Date
c0ab126e77 Merge pull request #1223 from akohlmey/next-patch-release
Patch release 27 November 2018
2018-11-27 16:37:10 -05:00
f254b8e3a3 Merge pull request #1226 from akohlmey/cmake-gpu-enhancements
Enhancements for using CMake with the GPU package, improved compatibility with cmake 3.x versions, improved handling of shared library building.
2018-11-27 16:05:47 -05:00
ebacd5ca6b anti-nitpick hack 2018-11-27 14:36:59 -05:00
79fafcb12c passing build type specific compiler flags to building the voro++ library 2018-11-27 09:57:21 -05:00
dbc798e286 correct passing flags to local voro++ build 2018-11-27 05:47:19 -05:00
6e8c537564 Merge pull request #1225 from akohlmey/last-minute-fixes
Last minute fixes
2018-11-26 22:56:44 -05:00
d43f229162 do not warn about deprecated GPU target archs 2018-11-26 22:48:23 -05:00
00b138f542 verbose CUDA assembly processing is more distracting than helping 2018-11-26 22:45:54 -05:00
1fdfc89d25 make $HOME/.local the default LAMMPS installation destination 2018-11-26 22:27:21 -05:00
d6ea31e143 implement changes suggested by @junghans for GPU/CUDA compilation 2018-11-26 22:06:10 -05:00
91b96fa0c9 build MESSAGE package client/server library always as static library 2018-11-26 21:37:23 -05:00
c980dd0a56 remove stray endif() 2018-11-26 20:56:13 -05:00
3ad74985eb replace more inline expansions with explicit code. some general overhaul and better propagation of consistent compiler settings and flags for library builds 2018-11-26 20:53:23 -05:00
aa0b9684dc remove inline expansion from two more cases (of external library builds) 2018-11-26 20:19:28 -05:00
05fb2d7587 more generated files/symlinks to ignore 2018-11-26 18:23:06 -05:00
5df2f92651 minor cleanup in lib/gpu 2018-11-26 18:22:33 -05:00
55359789fb improve docs for building the GPU library with CUDA and CMake/make with fat binaries 2018-11-26 18:13:50 -05:00
e0ff230268 remove comment-in-comment 2018-11-26 17:03:48 -05:00
b3975f4b14 reword a few options for clarity 2018-11-26 17:03:32 -05:00
c61da28f0a allow building "fat" GPU binaries in CUDA mode, resulting in executables compatible with all GPUs supported by the used CUDA toolkit 2018-11-26 17:03:09 -05:00
1ddbd24a4e add missing include file 2018-11-26 15:45:23 -05:00
6745c37741 Merge pull request #1222 from lammps/doc-adjust3
Some adjustments to the documentation for the per style listing pages
2018-11-26 15:20:29 -05:00
4434481c91 remove trailing whitespace in manual source files 2018-11-26 14:48:53 -05:00
c42d07d907 Merge branch 'master' into doc-adjust3 2018-11-26 14:47:29 -05:00
79b3e9e27d some clarifications and corrections on the wildcard command line docs 2018-11-26 14:46:39 -05:00
cce874dfb4 step version number to 27 November 2018 2018-11-26 14:28:57 -05:00
4004b8f161 Merge pull request #1219 from akohlmey/fix-class2-write-coeff
Handle class2 force field parameters correctly in write_coeff
2018-11-26 14:23:26 -05:00
96b971875f Merge pull request #1217 from akohlmey/more-small-changes
More small changes and bug fixes for the next release
2018-11-26 14:22:03 -05:00
bfaa2e9ee1 more adjustments to style pages 2018-11-26 11:24:48 -07:00
a010780808 merged in current master 2018-11-26 11:00:22 -07:00
32b3ff6cd7 remove tabs 2018-11-24 23:59:43 -05:00
179e84f282 replace dos/windows-style CR-LF line endings with unix style LF-only 2018-11-24 16:57:01 -05:00
f50ff9a9e3 use C++ style include files in USER-PTM package consistently 2018-11-24 16:47:59 -05:00
5af7f52370 formatting tweak for labels, add checking item for added pair styles 2018-11-24 16:47:18 -05:00
b76c7ddc84 correct some incorrect writedata and single_enable settings 2018-11-22 09:22:58 -05:00
d1255ab572 we are LAMMPS, not LIGGGHTS 2018-11-22 09:22:09 -05:00
5efd8c06b1 correct formatting for examples when discussing the non-incremental nature of special_bonds 2018-11-22 06:25:39 -05:00
900ecc170a document that rcb balancing depends on comm_style tiled which in turn is not compatible with triclinic cells 2018-11-21 16:08:24 -05:00
b1b6980d32 write_coeff needs to do special processing for class2 angles, dihedrals, and impropers 2018-11-21 15:46:41 -05:00
689334706f Merge branch 'more-small-changes' of github.com:akohlmey/lammps into more-small-changes 2018-11-21 09:24:21 -05:00
a91d89b516 avoid array overflows and silence compiler warnings from unused parameters 2018-11-21 09:24:10 -05:00
385cf2e1fc avoid array overflows and silence compiler warnings 2018-11-20 22:40:46 -05:00
090fc7bc8a remove unused sphinx-images extension from virtualenv setup 2018-11-20 22:14:24 -05:00
d359beb170 Merge pull request #1215 from jrgissing/bond/react-doc-corrections,mostly-formatting
Bond/react doc corrections,mostly formatting
2018-11-20 10:50:55 -05:00
719f719496 Merge pull request #1216 from bondrewd/charmm2lammps
make topology parsing in charmm2lammps.pl more tolerant
2018-11-20 10:35:52 -05:00
421f97e444 Merge pull request #1214 from akohlmey/collected-small-changes
Collected small changes and many spelling fixes for next release candidate
2018-11-20 10:34:58 -05:00
9f960baa4f restore USER-ATM package data files taken from CVS repo 2018-11-20 09:17:02 -05:00
981f56840e update workflow tips for checking new LAMMPS contributions 2018-11-20 00:30:45 -05:00
4c021dad37 port spell fixes to source code 2018-11-20 00:09:11 -05:00
4251c70e93 update list of false positives for spellchecking 2018-11-20 00:08:07 -05:00
0bcb1bd301 more spelling fixes and occational re-edits 2018-11-20 00:06:40 -05:00
c6c00ee7ee more spelling fixes 2018-11-19 20:46:32 -05:00
6f7b052e24 update comments and remove commented code 2018-11-19 16:38:25 -05:00
9b401b6ed0 fix topology parsing 2018-11-20 06:22:32 +09:00
b34dac41c2 port documentation spelling fixes to comments or strings in source code. 2018-11-19 16:15:24 -05:00
13ae678f39 more manual spelling fixes 2018-11-19 16:13:57 -05:00
8a94a32551 avoid duplicate label 2018-11-19 15:19:23 -05:00
b6f0fe4c2d more changes for correct and consistent spelling in the manual 2018-11-19 11:47:33 -05:00
809bd855b6 adjust wording of non-features discussion to be more in-sync with recent developments 2018-11-19 11:24:55 -05:00
4dc2f9c6c4 fix some spelling errors in the manual 2018-11-19 11:24:17 -05:00
c49c35e41d avoid tuncation error through integer division and promote to use "bigint" instead of "int" to avoid overflows for large systems 2018-11-17 06:40:33 -05:00
1597e78d5a guarantee initialization of hyperflag 2018-11-17 06:39:28 -05:00
a7bfb30043 update atc/cauchy_born examples with missing files 2018-11-16 23:03:47 -05:00
1d4e1f1425 bond/react:doc corrections 2018-11-16 20:47:51 -07:00
d7abb8cf4d Revert "bond/react: doc corrections, mostly formatting"
This reverts commit da88305f4d.
2018-11-16 20:42:52 -07:00
da88305f4d bond/react: doc corrections, mostly formatting 2018-11-16 20:41:49 -07:00
177a5ddb7a Merge pull request #34 from lammps/master
rebase
2018-11-16 20:29:46 -07:00
bbcb659158 render fix commands in 6 columns instead of 8 so only narrow screens need to scroll horizontally 2018-11-16 22:09:07 -05:00
dc6054fc2d rename "All commands" headers to "General commands" 2018-11-16 22:04:35 -05:00
0264edfcec provide example for how to set Tdamp correctly to 100 timesteps for all choices of unit 2018-11-16 16:27:47 -05:00
a66384cfea update github tutorial/howto for recent changes in the development workflow 2018-11-16 16:27:05 -05:00
fd4262805d for enabling MPIIO we also need to set -DLMP_MPIIO 2018-11-16 15:48:35 -05:00
0d72c3769d Merge pull request #1212 from stanmoore1/git_doc
Tweak to github-development-workflow.md
2018-11-16 12:44:58 -05:00
177733ecdd Merge pull request #1211 from lammps/doc-hyper
change warning to just a note
2018-11-16 12:11:54 -05:00
0b60bf65d1 Merge pull request #1210 from giacomofiorin/colvars-update
Update Colvars library to version 2018-11-16
2018-11-16 12:00:41 -05:00
c5c26abdd3 change warning to just a note 2018-11-16 09:26:37 -07:00
5974741eea Tweak to github-development-workflow.md 2018-11-16 09:26:12 -07:00
d8f540a433 Merge branch 'master' into colvars-update 2018-11-16 11:24:10 -05:00
0a96b891ef Merge pull request #1209 from pdebuyl/fix_cmake_h5md
fix cmake build for USER-H5MD
2018-11-16 11:22:45 -05:00
11de8dafe3 Update Colvars library to version 2018-11-16
Fixes several issues with running averages and time correlation function
computations.  Details are in:

https://github.com/Colvars/colvars/issues/143
https://github.com/Colvars/colvars/issues/193
https://github.com/Colvars/colvars/pull/194
2018-11-16 09:57:07 -05:00
2c979e878f fix cmake build for USER-H5MD
The hdf5 includes were needed as well for building the dump.
2018-11-16 15:18:58 +01:00
cf79751f4f Merge pull request #1207 from akohlmey/next-patch-release
Patch release 15 November 2018
2018-11-15 19:33:52 -05:00
e4dee3de17 Merge pull request #1206 from akohlmey/collected-small-changes
Collected small changes for next release
2018-11-15 17:29:26 -05:00
6e225d90fc fix some minor bugs write data file writing and remove dead code and silence compiler warnings 2018-11-15 16:50:56 -05:00
1fc3b4618c remove dead code and silence compiler warnings 2018-11-15 16:50:56 -05:00
eae9d27f6d OpenMP support from the compiler is not a requirement for USER-OMP. Without OpenMP, it is like the OPT package but for many more styles, so it is still useful and should be supported. 2018-11-15 16:50:56 -05:00
db29ec7eee complete workflow document 2018-11-15 14:58:02 -05:00
090778c42b Merge pull request #1204 from lammps/doc-plumed
Linkage mode improvements and documentation updates for USER-PLUMED package
2018-11-15 13:48:58 -05:00
db935dba5e Merge pull request #1201 from junghans/cmake_doc
cmake: update internal doc about how cmake finds executables
2018-11-15 13:48:17 -05:00
e160376365 incomplete first draft. committed for checking the markup in github. 2018-11-15 12:45:15 -05:00
d5f222464b Update README.md 2018-11-15 09:48:46 -07:00
4d9e2a014b add detailed build instructions and discussion of linkage modes for PLUMED library and USER-PLUMED package 2018-11-15 11:35:04 -05:00
8a4983e4bc reformatting and simplification of fix plumed docs 2018-11-15 10:53:38 -05:00
82d6aa9add interlink fixes colvars, plumed, and smd 2018-11-15 10:52:41 -05:00
4231ab3d57 correct some links 2018-11-15 10:52:03 -05:00
25914ea3f3 patch 15Nov2018 2018-11-15 10:17:25 -05:00
47bf9f73be Merge pull request #33 from lammps/master
rebase
2018-11-14 22:01:31 -07:00
003bb28471 make @gtribello code owner of the USER-PLUMED package 2018-11-14 22:17:25 -05:00
a557644939 support all three plumed linkage modes with CMake as well. For downloaded and previously installed plumed lib 2018-11-14 22:13:18 -05:00
04520e627d add code and scripts to support all three plumed linkage modes with fix plumed for conventional build 2018-11-14 21:26:36 -05:00
952e52982e add comment to indicate code intended for backward compatibility only 2018-11-14 05:37:59 -05:00
a942d8b3ba use memset() for clearing of arrays 2018-11-14 05:30:23 -05:00
7a22b8aa62 check only in currently added data file atoms for dihedral overflow 2018-11-14 05:29:26 -05:00
4c1fbc359a use tagint when unpacking atom tags from communication buffers 2018-11-14 05:28:19 -05:00
2c644c5f2e Merge pull request #1197 from akohlmey/collected-small-fixes
Collection of small changes and bugfixes for the next release
2018-11-13 15:18:09 -05:00
b1186a971e Merge pull request #1202 from lammps/hyper
Add Hyper-dynamics to REPLICA package
2018-11-13 15:17:30 -05:00
2dbd575a4b Merge pull request #1203 from stanmoore1/kk_update
Update Kokkos library in LAMMPS to v2.7.24
2018-11-13 15:15:09 -05:00
4805e1df22 doc page additions for USER-PLUMED package 2018-11-13 08:29:07 -07:00
380f0e4971 remove some debugging code 2018-11-13 08:06:40 -07:00
a026ce9669 correct broken links detected by make mobi 2018-11-12 21:38:26 -05:00
7e779d16de correct broken links in manual reported by 'make html' 2018-11-12 21:33:37 -05:00
b776f0f29f remove dead code and silence warnings about unused parameters 2018-11-12 21:11:55 -05:00
443644025f silence compiler warnings 2018-11-12 20:50:14 -05:00
c4c90a96ec avoid void return from non-void function 2018-11-12 20:49:01 -05:00
5cb2463204 c++ style include files do not have a .h extension 2018-11-12 20:33:30 -05:00
5a4e44b75a remove accidentally duplicated code 2018-11-12 20:27:21 -05:00
0ca02b6f41 added new commands to doc pages, fixed a few missing entries as well 2018-11-12 17:23:15 -07:00
2b96dfd6cc Remove deprecated Kokkos code 2018-11-12 15:49:31 -07:00
c22c6e4d34 Add LAMMPS changes to Kokkos Makefile 2018-11-12 15:30:14 -07:00
b2d67bcbb5 Remove tpls dir 2018-11-12 15:18:06 -07:00
b3f08b38a2 Update Kokkos library in LAMMPS to v2.7.24 2018-11-12 15:16:26 -07:00
8e9d4f5bce modify bond style hybrid, so it can handle bond style quartic as a sub-style 2018-11-12 16:06:55 -05:00
fe07ad279d added NULL declations to constructor, removed debug code 2018-11-12 12:32:54 -07:00
5062c43aea rename example outputs 2018-11-12 12:32:53 -07:00
90caf0019c fix doc page errors 2018-11-12 12:32:53 -07:00
3b7ebbb8df new hyper examples 2018-11-12 12:32:53 -07:00
d7a479d2f6 hyper example dir 2018-11-12 12:32:52 -07:00
0c8ce199af more updates to hyper docs 2018-11-12 12:32:52 -07:00
4a6f088c0b updates to hyper doc pages 2018-11-12 12:32:52 -07:00
56598fcd0b changes to prd command doc page 2018-11-12 12:32:52 -07:00
265c11dca9 more edits to hyper docs 2018-11-12 12:32:52 -07:00
d6631266ce doc files in wrong dir 2018-11-12 12:32:52 -07:00
fbd610b8a9 global/local hyperdynamics src and doc files 2018-11-12 12:32:52 -07:00
86d1304176 cmake: update doc aobut executables 2018-11-10 18:58:53 -07:00
f68d77c7af correct formatting 2018-11-09 08:03:58 -05:00
7a4f534676 replace non-ASCII character 2018-11-09 08:03:41 -05:00
729201ab93 fix typo reported in #1199 2018-11-09 08:03:19 -05:00
ab8215a669 remove dead code 2018-11-09 01:09:31 -05:00
fe04147ee0 fix typo 2018-11-09 01:09:22 -05:00
62b1159673 update presets for USER-PLUMED package. fix typo. 2018-11-09 01:08:57 -05:00
adeb0c2b54 replace faulty preprocessor logic
fixes #1196
2018-11-09 01:08:57 -05:00
1651a21f92 Merge pull request #1198 from akohlmey/next-patch-release
Patch release 9 November 2018
2018-11-08 20:49:49 -05:00
cbae3b5afa Merge pull request #1184 from DiscreteLogarithm/sdpd
add USER-SDPD package for Smoothed Dissipative Particle Dynamics
2018-11-08 17:21:21 -05:00
f2a29880e2 patch 9Nov2018 2018-11-08 16:48:43 -05:00
e0955f6434 Merge branch 'master' into sdpd to resolve merge conflicts
# Conflicts:
#	cmake/CMakeLists.txt
#	src/Makefile
2018-11-08 16:32:02 -05:00
3681bc853d Merge pull request #1195 from jrgissing/bond/react-custom_edges
Bond/react: charge update for custom edges
2018-11-08 16:19:23 -05:00
a6e9b99295 Merge pull request #1180 from gtribello/master
Add natively supported PLUMED interface to LAMMPS
2018-11-08 16:16:50 -05:00
893a51ce14 Merge pull request #1191 from akohlmey/msi2lmp-avoid-bad-topology
Dihedral generation bugfix for msi2lmp
2018-11-08 16:10:31 -05:00
80ee08482c Merge pull request #1182 from junghans/pkgconfig_doc
liblammps.pc: add some more documentation
2018-11-08 16:10:15 -05:00
bbb371134d include USER-SDPD package in list of user packages in conventional make 2018-11-06 22:38:02 -05:00
a1e8992eac replace non-ASCII characters 2018-11-06 22:21:19 -05:00
baa7b705b8 improve logic and grammar of error messages 2018-11-06 22:13:38 -05:00
2d12260ade remove bogus single function and set single_enable = 0 2018-11-06 22:13:05 -05:00
31277349c6 remove dead code and avoid compiler warnings 2018-11-06 22:10:27 -05:00
df232c1cf6 use c++ style include files for c-library functions 2018-11-06 22:09:05 -05:00
bdf73f7adb ignore USER-SDPD files when installed 2018-11-06 22:07:35 -05:00
84fcf01bed bond/react: allow custom update of charges near template edges
also, fixes a bug introduced in PR #1189, when not using stabilization
2018-11-06 19:59:22 -07:00
cc0d685e8e Merge pull request #32 from lammps/master
rebase
2018-11-06 19:52:08 -07:00
5196fa37e0 Merge pull request #1194 from ohenrich/user-cgdna
Update reference for USER-CGDNA
2018-11-06 15:52:22 -05:00
4e6253254c Merge branch 'master' into user-cgdna 2018-11-06 19:48:06 +00:00
562296bdb7 Updated link to preprint article 2018-11-06 19:44:35 +00:00
91c4ef6f64 Merge pull request #1189 from jrgissing/bond/react-custom_group
Bond/react custom group support
2018-11-06 10:32:06 -05:00
f46d6a4312 Merge pull request #1192 from julient31/master
update reference for SPIN package
2018-11-06 10:26:27 -05:00
cb828e9579 update reference 2018-11-06 07:48:47 +01:00
ed77701e56 Merge pull request #31 from lammps/master
rebase
2018-11-05 20:25:38 -07:00
7ed6cab040 do not generate illegal dihedrals, e.g. from 3-membered rings 2018-11-05 20:35:43 -05:00
ce7f76de1d cmake: switch plumed to full static mode 2018-11-05 07:39:23 -07:00
58d2f0cc57 cmake: fix linking again plumed 2018-11-05 05:55:31 -07:00
ab7aa9dfda correction to fix group property doc 2018-11-05 00:49:33 -07:00
6d1ea2d0b1 broke smooth restarts at some point. fixed 2018-11-05 00:46:53 -07:00
a3ca177d20 various small changes and reformatting
- add memory usage estimator
- test against varying number of atoms
- test against non-consecutive atom tags
- test for 32-bit overflow in number of atoms
- test for 32-bit overflow in timestep
- reduce tail correction error to warning
- more LAMMPS style formatting of the source code
- remove trailing whitespace
- avoid leaking memory from allocated arrays for masses/charges/tags
2018-11-04 19:52:10 -05:00
a3c0fe7726 Added check on fix modify for PLUMED to ensures that virial is calculated for group all 2018-11-04 11:43:07 +00:00
a051d61e1f Added functionality to support fix modify for fix plumed 2018-11-04 11:24:01 +00:00
8cb665f013 Added functionality to throw error when time step changes and PLUMED is being used 2018-11-04 10:21:28 +00:00
cb8c51e353 Got rid of some of the hard-coded units in the plumed interface 2018-11-03 18:13:28 +00:00
a37d718ed1 update bond/react examples 2018-11-03 12:01:00 -06:00
f7aa01d74a bond/react: convert group-ID to group-ID-prefix
enables consistent syntax when using custom groups
2018-11-03 11:57:46 -06:00
badfdd7433 download only the plumed-src package and include further tweaks to be compatible with plumed 2.5b 2018-11-03 00:21:10 -04:00
ac11d66d5a provide reference logfiles and move generated files to reference folder 2018-11-02 23:28:09 -04:00
18216de084 correctly check for fixes that maintain their own pressure compute 2018-11-02 23:21:09 -04:00
3cb2291a5a need to include comm.h now 2018-11-02 22:52:51 -04:00
54c52c3bdf adjust compilation settings to link in plumed library statically and all its dependencies 2018-11-02 22:52:36 -04:00
df3390e224 update formatting to closer match LAMMPS' programming style 2018-11-02 21:33:30 -04:00
d185b34b19 reformat to closer match LAMMPS programming style 2018-11-02 21:19:53 -04:00
30518a993b add LAMMPS header 2018-11-02 21:14:36 -04:00
b7e507a258 fix typo and reformat 2018-11-02 21:08:45 -04:00
ea9746f26d insert fix plumed docs into manual generation 2018-11-02 21:08:32 -04:00
2635f7d160 Merge pull request #1190 from giacomofiorin/colvars-update
Update Colvars library to version 2018-10-16
2018-11-02 20:11:28 -04:00
85a5cab663 Update Colvars library to version 2018-10-16 2018-11-02 17:45:20 -04:00
b1c50e3bbe Added plumed documentation in a txt file 2018-11-02 19:50:49 +00:00
0c7c344e19 additional molecule templates sanity-check
thanks to Sagar Patil for report
2018-11-01 01:26:12 -06:00
b67e54dd7d reciprocal 'related commands' 2018-11-01 01:09:52 -06:00
5821a5ecc8 bond/react: custom group with stabilization option 2018-11-01 01:04:45 -06:00
20b9c7fd79 Merge pull request #30 from lammps/master
rebase
2018-10-31 20:15:45 -06:00
a66d4c7451 Merge pull request #1186 from akohlmey/various-small-fixes
Various small fixes
2018-10-31 12:13:38 -04:00
7514838700 put LAMMPS sources folder first in list of include directories 2018-10-31 04:18:08 -04:00
1fccb391a6 Merge pull request #1185 from jrgissing/bond/react-update_edges-option
Bond/react: update edges option
2018-10-31 00:43:07 -04:00
688945a0ef silence compiler warnings about initialization order and unused args 2018-10-31 00:34:58 -04:00
50b99c8450 silence compiler warnings about unused arguments 2018-10-31 00:19:06 -04:00
446b05ebc1 silence warning about initialization order 2018-10-31 00:17:17 -04:00
2a5cd1d31e remove debug output 2018-10-31 00:16:44 -04:00
3faecc4d28 add option to update all atoms' atomic charges
option to update all atomic charges, even when edge atoms are defined
2018-10-30 22:11:52 -06:00
e992bf935b Merge pull request #29 from lammps/master
rebase
2018-10-30 20:35:47 -06:00
42068944aa Merge branch 'master' of github.com:gtribello/lammps into fix-plumed 2018-10-30 20:43:49 -04:00
e3b89b60dc add checksum support for downloaded tar archives. upgrade to v2.4.3 2018-10-30 20:43:20 -04:00
e70a9b0f26 updated CMakeLists to handle the optional dependency of USER-SDPD 2018-10-30 19:35:22 +03:30
113539b053 Merge pull request #1183 from akohlmey/voro-clean-namespace
Reduce namespace pollution for VORONOI package
2018-10-30 11:53:56 -04:00
ba6f6f73f1 first commit: added SDPD 2018-10-30 17:40:00 +03:30
c838a9fd48 use forward declarations for better namespace hygiene 2018-10-30 00:33:51 -04:00
fb4df86d3d Merge pull request #1170 from akohlmey/fix-merge-sort
Bug fix for merge sort by Jeffrey Frey
2018-10-29 18:47:50 -04:00
1bae30c295 liblammps.pc: add some more documentation 2018-10-29 06:57:46 -06:00
044507640f include Plumed.h with full path 2018-10-29 06:52:19 -06:00
bcc7a4c32f cmake: add PLUMED include dir 2018-10-29 06:36:47 -06:00
283096d1d5 update .gitignore 2018-10-29 03:50:55 -04:00
079134255d make sure class member "list" is initialized to NULL in constructor 2018-10-29 03:49:25 -04:00
25b425dbb0 no need to import the PLMD namespace globally 2018-10-28 22:21:35 -04:00
bee2cb96fa remove references to Plumed.cpp and Plumed.h 2018-10-28 22:18:27 -04:00
360aca581c remove last reference to voro++ 2018-10-28 21:56:49 -04:00
21661f84db Merge pull request #1181 from akohlmey/fixup-github-folder
Updates to contributing guidelines
2018-10-28 21:55:02 -04:00
a662afe970 fully integrate USER-PLUMED package into conventional build 2018-10-28 21:37:33 -04:00
3a082e227e remove obsolete and redundant files 2018-10-28 21:33:51 -04:00
54d728c0c7 reduce need for include files by adding forward declaration 2018-10-28 21:33:06 -04:00
ae499b980d make Plumed.cpp obsolete in USER-PLUMED code by inserting it into fix_plumed.cpp 2018-10-28 21:32:47 -04:00
925d6d37b9 adjust header inclusion to current LAMMPS conventions 2018-10-28 21:32:01 -04:00
bdf3764905 update user-plumed Install.sh file to fit better into LAMMPS, adjust to changes in lib folder 2018-10-28 21:31:40 -04:00
bfbf5695fd adjust path for includelink to find the Plumed.h wrapper properly 2018-10-28 21:30:37 -04:00
e788ffe210 Merge branch 'master' of github.com:gtribello/lammps into fix-plumed 2018-10-28 21:29:53 -04:00
3cc9384488 cmake: add support USER-PLUMED 2018-10-28 16:23:29 -06:00
a60b6d1ab8 add feature to python lib install script to support existing installation and use links 2018-10-28 18:12:32 -04:00
174b180a41 remove file that is not present 2018-10-28 18:12:02 -04:00
7bbd8644c8 rework some of the pull request instructions to be realigned with the recent changes in the workflow. 2018-10-28 08:50:37 -04:00
f36b7e38a8 correct link to github tutorial in CONTRIBUTING doc 2018-10-28 08:42:28 -04:00
f70af61b35 Added new version of Plumed wrapper 2018-10-28 09:27:22 +00:00
4fa78a78de Added instructions on PLUMED to build extras and Package details pages of manual 2018-10-26 22:12:17 +01:00
ff9f836be4 Merge remote-tracking branch 'upstream/master' 2018-10-26 22:01:05 +01:00
2e79d9f340 Merged Pablo's fixes into the plumed interface for lammps 2018-10-25 21:45:35 +01:00
2428c1c1f3 Merge pull request #1177 from lammps/modify-reorder
reorder operations in init() to fix a bug with compute chunk/atom del…
2018-10-25 10:55:14 -04:00
0e213b80e9 reorder operations in init() to fix a bug with compute chunk/atom deleting a fix 2018-10-25 08:23:10 -06:00
2c1f420a48 more tweaks 2018-10-24 13:43:26 -06:00
07f92d225e formatting tweak 2018-10-24 12:03:51 -06:00
7e5ec96bcd more tweaks from style check script 2018-10-24 12:02:36 -06:00
c8870f1b78 change intro to each list of commands 2018-10-24 11:57:34 -06:00
7069b52a44 Merge pull request #1172 from akohlmey/next-patch-release
Patch release 24 October 2018
2018-10-23 18:08:38 -04:00
45f28517ef Merge pull request #1174 from akohlmey/fix-kspace-refactor
Bug fix for Kspace refactoring in USER-INTEL package
2018-10-23 13:33:36 -04:00
fccc26758b Merge pull request #1152 from lammps/doc-adjust2
More Documentation consistency improvements
2018-10-23 13:05:04 -04:00
b6b6270716 fix bug reported in issue #1173 2018-10-23 11:58:00 -04:00
0293dee9b2 patch 24Oct2018 2018-10-23 11:03:51 -04:00
6107f00e9d Merge pull request #1164 from akohlmey/fix-halt-for-minimize
Enable use of fix halt for minimizations
2018-10-23 10:35:26 -04:00
1d38f2d725 Merge pull request #1165 from akohlmey/refactor-kspace-base-class
Refactor kspace base class to have a settings() method
2018-10-23 10:35:12 -04:00
4a5c14f60d Merge pull request #1148 from akohlmey/deprecated-styles
Implement dummy classes for deprecated and removed styles
2018-10-23 10:34:58 -04:00
aa27c8f733 convert double quotes to latex style 2018-10-23 09:17:00 -04:00
da38ae0370 apply fix for merge sort from issue #1163 by @jtfrey and re-enable it 2018-10-23 08:57:33 -04:00
527ec61586 Merge pull request #1169 from akohlmey/kokkos-parallel-for-workaround
Workaround for parallel_for() compilation issue with newer GNU compilers
2018-10-22 11:17:47 -04:00
8649081904 fix broken links in manual 2018-10-21 18:39:25 -04:00
c0dd187802 make sure all pictures are includes in epub/mobi files 2018-10-21 18:38:46 -04:00
3661836a3b Merge pull request #1168 from athomps/compute-adf
Created new compute ADF for angular distribution function
2018-10-20 20:57:38 -04:00
76a2a9ab0a Fixed normalization error for ordinate degree 2018-10-20 17:16:47 -06:00
8223f5e0a3 Eliminated another initialization error and tweaked rdf-adf example 2018-10-20 16:46:45 -06:00
07a499fcc1 improve check for missing styles in lammps.book 2018-10-20 10:01:55 -04:00
8aecefe233 fix uninitialized data bug in compute adf 2018-10-20 08:12:19 -04:00
2140caa6f5 add an example for RDF and ADF computation with water molecules 2018-10-20 08:12:02 -04:00
fb6f019a11 correct link to output options 2018-10-20 06:45:57 -04:00
79da210dc4 integrate compute adf into manual build infrastructure 2018-10-20 06:45:28 -04:00
348febdf4b work around for parallel_for() compilation issue with newer compilers
apparently, data items used inside parallel_for() constructs have
rather strict requirements on const-ness, which is enforced by
newer GNU compilers. As a workaround we construct explicit const
copies of those class instances. This closes #1045
2018-10-20 02:54:48 -04:00
0783f8ad2f Added compute_rdf.txt 2018-10-19 18:43:58 -06:00
3a735d15d4 Added compute_rdf.cpp 2018-10-19 18:43:04 -06:00
04a4a29fcf Creatd new compute ADF for angular distribution function 2018-10-19 18:36:11 -06:00
52f02f2bbb Merge pull request #1167 from lammps/create-triclinic-lib
fix triclinic rounding bug for lib interface as well
2018-10-19 19:06:01 -04:00
f82a8493fa Merge pull request #1166 from rbberger/cmake_prevent_src_builds
Add src directory to PreventInSourceBuilds checks
2018-10-19 17:56:25 -04:00
8cd70f7d78 fix triclinic rounding bug for lib interface as well 2018-10-19 15:27:38 -06:00
27a46cec8c Add src directory to PreventInSourceBuilds checks 2018-10-19 17:25:18 -04:00
15de09683e Merge pull request #1162 from lammps/restart2dump
added -restart2dump command-line option
2018-10-19 17:24:17 -04:00
f542590090 Merge pull request #1136 from junghans/cmake_out_source
cmake: prevent in-source build
2018-10-19 17:02:05 -04:00
01c3ab5979 update embedded command line help summary string for new feature 2018-10-19 16:49:06 -04:00
709013be5a harden code against buffer overflows 2018-10-19 16:48:37 -04:00
db32373b32 fix some typos caused by trusting emacs' smart case-preserving replace too much 2018-10-19 16:11:13 -04:00
9d7c4ac5f2 add depreacted kspace style 2018-10-19 16:01:26 -04:00
0ec94b2ad6 replace non-ASCII character 2018-10-19 16:01:13 -04:00
83c830fd8a port kspace refactor to GPU and KOKKOS package 2018-10-19 15:47:00 -04:00
3a4bef351c refactor kspace style in USER-SCAFACOS and fix uninitialized handle bug 2018-10-19 15:32:29 -04:00
da84138475 correct scafacos input example 2018-10-19 15:31:53 -04:00
2f52eee6bf kspace refactor compiles for KSPACE and USER-OMP 2018-10-19 15:11:37 -04:00
80e0dddae0 use min_post_force() method to hook fix halt into minimization 2018-10-19 14:08:25 -04:00
1c994bda46 corrections to fix neb doc page 2018-10-19 09:53:19 -06:00
f5206d2f7b more one-liner in pair_style doc page 2018-10-19 09:53:19 -06:00
9bca5ae607 added one-line pair descriptions 2018-10-19 09:53:19 -06:00
d1f260a765 undo changes to PRD doc from another branch 2018-10-19 09:53:19 -06:00
36a1ca7e72 updates some one-line style defs 2018-10-19 09:53:19 -06:00
5f1c77ced2 tweaks to USER-PTM package doc 2018-10-19 09:53:18 -06:00
dc89bdd924 more changes augmenting lists with USER styles and to core/shell doc pages 2018-10-19 09:53:18 -06:00
a979c6eeec updating files that have lists of command styles 2018-10-19 09:53:18 -06:00
cc6f1be82d first attempt to port fix halt to minimizations 2018-10-19 07:26:49 -04:00
9090fd0255 propagate the kspace change to a the first few kspace styles 2018-10-18 16:31:17 -04:00
7deb1df2b6 split kspace style constructor into plain constructor and settings() method 2018-10-18 16:30:45 -04:00
d9dd80b368 added -restart2dump command-line option 2018-10-18 14:24:48 -06:00
4015b36a1a Merge pull request #1161 from lammps/create-atoms-single
bug fix for create_atoms single remap and triclinic
2018-10-18 13:41:28 -04:00
dcde84eb53 bug fix for create_atoms single remap and triclinic 2018-10-18 11:22:51 -06:00
7bb5821baf add deprecated dump and region styles 2018-10-17 18:13:12 -04:00
2b0e474729 implement deprecated styles for bond, angle, dihedral, and improper 2018-10-17 16:26:20 -04:00
65ebbdada3 add DEPRECATED compute style 2018-10-17 16:05:10 -04:00
b71f530bd0 make default style name for deprecated styles uppercase, so it is considered internal
also consolidate the writeout message across styles into a single convenience function
2018-10-17 16:04:52 -04:00
0ec9b9a71a Merge pull request #1160 from akohlmey/user-ptm-portability
Make USER-PTM compile with MinGW64 for Windows
2018-10-16 14:52:26 -04:00
2273604533 resolve portability issues to windows w.r.t. fixed width integer types 2018-10-16 13:49:06 -04:00
6e99b3d8ff Merge pull request #1159 from wmbrownIntel/user-intel-sf-hybrid
Fix to allow suffix and pair hybrid to work together with USER-INTEL.
2018-10-16 06:09:58 -04:00
bea0a3091d Fix to allow suffix and pair hybrid to work together with USER-INTEL. 2018-10-15 10:25:39 -07:00
7968d2ed22 Merge pull request #1155 from athomps/sna-atom-leakfix2
Fixed a segfault introduced by memory-leak fix (#1125)
2018-10-12 13:01:15 -04:00
382e91cf5b Merge pull request #1156 from wmbrownIntel/user-intel-hybrid
Adding hybrid support to USER-INTEL package + EAM/intel bug fix
2018-10-12 12:35:36 -04:00
ce63a22783 Merge pull request #1157 from wmbrownIntel/user-intel-makefiles
Changes to intel Makefiles to make use of MKL consistent.
2018-10-12 12:32:28 -04:00
00c75ecb74 Merge pull request #988 from valleymouth/granular-kokkos
Kokkos port for GRANULAR
2018-10-12 09:04:36 -06:00
8224c89f93 Revert size_velocity change in atom_vec_dpd_kokkos 2018-10-11 16:38:44 -06:00
a223338b47 Fix hang with Kokkos and USER-DPD examples 2018-10-11 16:32:44 -06:00
8eb74d8fb3 Add missing Kokkos pack/unpack comm vel functions 2018-10-11 13:21:44 -06:00
e5c6b6987a Merge branch 'master' of github.com:lammps/lammps into granular-kokkos 2018-10-11 13:14:25 -06:00
8cbee78725 Changes to intel Makefiles to make use of MKL consistent. 2018-10-11 05:46:40 -07:00
c37deebffa Adding full hybrid support to USER-INTEL package and fixing bug with EAM parameter initialization. 2018-10-11 05:12:00 -07:00
c142288eb3 Fixed a segfault introduced by memory-leak fix 2018-10-10 17:24:14 -06:00
7faa48b4c3 Merge pull request #1154 from stanmoore1/small_fixes
Small fixes
2018-10-10 23:05:21 +02:00
a1266a1a1e Fix compile error with copysign function 2018-10-10 14:19:23 -06:00
7cce002cf9 Makefile fix from the mailing list 2018-10-10 14:18:24 -06:00
2def00d4c9 Add missing files to .gitignore 2018-10-10 14:18:00 -06:00
3d0722b974 Merge branch 'master' of github.com:lammps/lammps into granular-kokkos 2018-10-10 10:43:54 -06:00
747f72aca2 Merge branch 'granular-kokkos' of https://github.com/valleymouth/lammps into granular-kokkos 2018-10-10 09:53:15 +01:00
1b76e14224 Merge pull request #1151 from akohlmey/next-patch-release
update version number for next patch release
2018-10-10 02:20:50 +02:00
9a0c02a845 Merge pull request #1150 from mkanski/compute_pair_multiple_pstyles
Extend compute pair to handle multiple instances of a sub-style in pair style hybrid
2018-10-10 00:48:52 +02:00
70bee26641 update version number 2018-10-09 12:59:12 -04:00
7416e113ff Merge pull request #1147 from akohlmey/fix-omp-intel-neighbor
Resolve neighbor list request conflict with USER-INTEL and USER-OMP
2018-10-09 18:40:41 +02:00
791024586e Merge pull request #1131 from ckadding/master
Add compute_pressure_cylinder to USER-MISC package
2018-10-09 18:40:02 +02:00
962fd1df90 Merge pull request #1146 from jrgissing/maxspecial_restarts
put atom->maxspecial in restarts
2018-10-09 17:55:24 +02:00
dc6123fafc fix stupid typo 2018-10-08 17:26:21 +02:00
3c41295e70 change implementation to be consistent with pair_coeff and remain backward compatible 2018-10-08 17:23:22 +02:00
e7ca200e97 Merge pull request #1149 from akohlmey/doc-adjust-bugfix
correct typo in USER-SMD introduced by doc-adjust PR
2018-10-05 22:21:33 +02:00
8b944e06f0 Small changes in doc file 2018-10-05 21:08:18 +02:00
8960774b16 correct typo in USER-SMD introduced by doc-adjust PR 2018-10-05 14:55:18 -04:00
1e9778b81e Extend compute pair to handle multiple instances of a given pair style 2018-10-05 20:34:12 +02:00
d805796cd7 Merge pull request #1133 from lammps/doc-adjust
Multiple documentation adjustments and corrections from Steve and Axel
2018-10-05 20:20:18 +02:00
0c1ff5ac3e Fixing issues with AtomVecSphereKokkos not correctly handling cases with varying and constant radius. 2018-10-05 17:10:31 +01:00
43ae9656d7 add a "deprecated" command style for flagging future removed commands 2018-10-05 17:23:09 +02:00
61e2cd3f61 avoid requesting threaded neighbor lists that are both threaded via USER-OMP and USER-INTEL 2018-10-05 16:03:11 +02:00
e024658cec Merge branch 'doc_cleanup' of https://github.com/jrgissing/lammps into maxspecial_restarts 2018-10-05 14:15:39 +02:00
17853aef20 modify restart changes, so it stays backward compatible and does not result in unexpected behavior when reading old restarts. also use consistent naming conventions for enum entries 2018-10-05 09:47:47 +02:00
7f8302b65b replace extra_special with maxspecial in restarts 2018-10-04 22:08:43 -06:00
fd20eb93b2 remove listing of extinct special_bonds 'extra' keyword 2018-10-04 21:30:34 -06:00
b16a83cddc Merge pull request #28 from lammps/master
rebase
2018-10-04 21:26:22 -06:00
b02d3b1b94 cosmetic change 2018-10-04 12:24:46 +02:00
a1a9f34c18 pair style deprecated now functional and compatible with hybrid pair styles 2018-10-04 12:18:28 +02:00
c3abf13af1 don't allow hybrid/overlay as hybrid substyle as well 2018-10-04 12:18:01 +02:00
cdea8968c2 Merge pull request #1143 from athomps/semigrand_issue_1139
Fixed sign error on mu for semigrand variant of fix atom/swap
2018-10-03 07:42:56 +02:00
9e9b97231c Fixed sign error on mu for semigrand variant 2018-10-02 16:56:27 -06:00
a549752764 reduce compiler warnings and some more whitespace adjustments 2018-10-02 15:18:15 -04:00
590ab1661e convert more system headers to c++ style 2018-10-02 15:17:11 -04:00
08b135ce6b Apply uniform LAMMPS formatting 2018-10-02 14:54:09 -04:00
a6ba55080f Use MathConst namespace 2018-10-02 14:33:49 -04:00
e3b80e734a remove trailing whitespace 2018-10-02 12:37:13 -04:00
177044cd07 Merge pull request #1142 from stanmoore1/kk_eam
Fix bug in Kokkos EAM
2018-10-02 10:28:51 -06:00
ff7449b29a ensure, that we have no division by zero and add an upper limit for bins 2018-10-02 12:27:05 -04:00
13d3903e8d integrate compute pressure/cylinder into build and README 2018-10-02 11:56:29 -04:00
f81836d605 reformat compute pressure/cylinder docs and integrate it into the manual 2018-10-02 11:51:23 -04:00
57b2f60556 Fix bug in Kokkos EAM 2018-10-02 09:45:13 -06:00
c7c0defa77 Insert a comma 2018-10-02 10:45:43 -04:00
ac658a17fc Update compute_pressure_cylinder.cpp 2018-10-02 10:34:08 -04:00
b5a5270f4a fix typos in compute msd/chunk
as reported by @evoyiatzis the example is incorrect,
but also a mention of the compute a few lines above.
2018-10-02 16:29:18 +02:00
b481af51d6 add pair_style deprecated and some tweaks for fix style 2018-10-02 16:26:20 +02:00
69c3ff560e Clarify restrictions and output 2018-10-02 10:11:57 -04:00
af5ac6bcdf Add NULL pointers to constructor init 2018-10-02 09:55:37 -04:00
89c0655809 Add input validation 2018-10-02 09:46:53 -04:00
3a0cfc1d57 Modifying headers 2018-10-02 09:32:26 -04:00
dba8f9c62b Merge pull request #1137 from dilkins/fast-forward-langevin
Fast-forward Langevin functionality included in USER-MISC package
2018-10-02 14:19:37 +02:00
ca3a64ea3e fully integrate fix ffl in conventional build processing 2018-10-02 11:25:39 +02:00
4b4f7d6ee0 implement conventions for unique links in docs 2018-10-02 11:25:12 +02:00
66bfdd20d4 fully integrate fix ffl docs into the manual system 2018-10-02 11:24:45 +02:00
990a93f9d9 fix typo in example input 2018-10-02 10:58:28 +02:00
d5e71e7099 enumeration of flip types 2018-10-02 10:41:55 +02:00
14251948f3 LAMMPS coding conventions 2018-10-02 10:18:40 +02:00
799ffc58d9 C++ system headers included and enumeration of flip_int used;documentation corrected 2018-10-01 17:13:56 +02:00
a333fdac30 correct some documentation issues with the recently added USER-PTM package 2018-09-28 18:02:13 +02:00
ffbc33bea5 Merge branch 'master' into doc-adjust 2018-09-28 17:07:51 +02:00
12d2dd201a update description of RPM based LAMMPS packages with info from @junghans
this fixes #1135
2018-09-28 15:47:56 +02:00
497af2ebb9 document eam/cd/old 2018-09-28 13:44:42 +02:00
21c59d4cf0 Fast-forward Langevin functionality included 2018-09-28 12:46:11 +02:00
4fe23c3854 Merge pull request #1120 from pmla/polyhedral-template-matching
Added compute for Polyhedral Template Matching
2018-09-28 12:26:06 +02:00
1de76c33fd Merge pull request #1122 from oywg11/master
collecting small changes for potential #839
2018-09-28 12:22:29 +02:00
2da999d864 cmake: prevent in-source build 2018-09-27 12:18:43 -06:00
e4d4f3a775 Merge pull request #1132 from martok/meam-init
Small fixes to MEAM/C
2018-09-27 19:40:05 +02:00
f58aa05e02 remove references to USER-OMP version of pair style nb3b/harmonic 2018-09-27 07:44:54 -04:00
9ae6cb5c4f add recently renamed file to purge list 2018-09-27 07:28:44 -04:00
f23b638d47 include USER-PTM into git management 2018-09-27 07:23:38 -04:00
e1627caf04 integrate compute ptm/atom and USER-PTM into the docs 2018-09-27 07:20:03 -04:00
5481e99331 remove broken USER-OMP pair style 2018-09-27 06:52:20 -04:00
91286ddb0e remove references to fix ave/spatial and ave/spatial/sphere 2018-09-27 06:51:30 -04:00
cf0f3b6b61 Update manual for renamed or removed files 2018-09-27 06:23:59 -04:00
8e7ddff6dc reverse order in which pdf files are created.
Creating Developer.pdf first and Manual.pdf later makes
any warnings from the latter step, e.g. about missing
files in doc/src/lammps.book more visible.
2018-09-27 06:15:03 -04:00
7987f3319e remove outdated references to linux rpms on rpm.lammps.org 2018-09-27 06:05:26 -04:00
b07adbf98c Update installing/running LAMMPS on ubuntu for daily binary 2018-09-27 05:49:43 -04:00
a9b8a6521d more mis-matches between doc pages and src files 2018-09-25 13:18:54 -06:00
5a6226caa5 jive src headers with doc page entries and example scripts 2018-09-25 10:50:43 -06:00
37fe03c0ab escape backslash in bibtex string for correct citeme output 2018-09-25 09:19:09 -04:00
93e56c113a add USER-PTM to build system 2018-09-25 09:18:11 -04:00
e5ddc909ad Fully zero-init MEAM data structure 2018-09-25 14:19:26 +02:00
aefdcd0f94 Silence some warnings 2018-09-25 11:14:42 +02:00
36c5fb2ec6 update formatting 2018-09-24 10:37:52 -04:00
918030bf1c Merge branch 'master' of https://github.com/oywg11/lammps into ilp-update 2018-09-24 10:29:08 -04:00
de010551cf Merge pull request #1128 from akohlmey/complain-reax-meam
Warn more loudly about REAX and MEAM going away soon
2018-09-23 10:35:28 -04:00
6e546ef5af added ptm namespace 2018-09-20 14:20:58 -04:00
dd39bc44ee Add compute_pressure_cylinder documentation 2018-09-20 09:16:58 -04:00
5aeba421bb Add compute_pressure_cylinder .cpp and .h files 2018-09-20 09:15:43 -04:00
37201beda5 Fixed folder structure 2018-09-20 00:04:07 -04:00
c705e8d0e6 renamed files for LAMMPS build system compatibility 2018-09-19 20:46:48 -04:00
cda89283aa warn more loudly about REAX and MEAM going away soon 2018-09-18 22:13:17 -04:00
c2758a0b55 Merge pull request #1126 from lammps/patch-18-sep-2018
patch 18Sep18
2018-09-18 21:50:30 -04:00
9c58834af2 Merge pull request #1127 from akohlmey/reax-bonds-typo
fix typo in gzip support for fix reax/bonds
2018-09-18 18:05:57 -04:00
4bfac61b1a fix typo in gzip support for fix reax/bonds 2018-09-18 17:41:02 -04:00
8dff5fd5d7 patch 18Sep18 2018-09-18 17:24:10 -04:00
e9ed95c2db Merge pull request #1108 from akohlmey/fix-sprintf-buffer-overflows
Avoid more buffer overflows due to using snprintf() on fixed size buffers
2018-09-18 16:57:10 -04:00
33e33048bf Merge pull request #1125 from athomps/sna-atom-leakfix
The sna*/atom computes were not destroying SNA objects. Fixed.
2018-09-18 15:50:17 -04:00
d753c51c45 The sna*/atom computes were not destroying SNA objects. Fixed. 2018-09-17 19:44:32 -06:00
e2293cc7df Merge pull request #1119 from lammps/doc-clarify
doc page clarifications
2018-09-17 06:10:25 -04:00
0c287a55cd Merge pull request #1092 from RomainVermorel/master
New stress/mop and stress/mop/profile computes for USER-MISC
2018-09-17 05:16:42 -04:00
5f6b5c5400 fix typo 2018-09-17 05:11:59 -04:00
494b149272 fix typo 2018-09-17 05:10:56 -04:00
39ee7876c4 fix typo 2018-09-17 05:09:23 -04:00
8fa80081df fix typo 2018-09-17 05:08:22 -04:00
e14db00d52 doc link adjustments 2018-09-14 17:31:33 -06:00
7054800932 Merge branch 'master' into master 2018-09-12 22:13:43 +03:00
01beaf38a1 small modifications for potential #839 2018-09-12 21:51:57 +03:00
83b6d6ae96 small modifications of potential #839 2018-09-12 17:47:16 +03:00
6ae4bdead5 Merge pull request #1089 from lammps/spread
2 new computes: chunk/spread/atom and reduce/chunk
2018-09-11 21:21:02 -04:00
1f5885fc45 Merge pull request #1099 from jrgissing/bond/react-efficient-competing_reactions
bond/react: efficient competing reactions
2018-09-11 21:18:41 -04:00
92b508f14c Merge pull request #1097 from lammps/localvars
add variable option to compute bond/angle/dihedral local
2018-09-11 21:18:15 -04:00
b7c75b6c4e Added compute for Polyhedral Template Matching 2018-09-11 16:41:44 -04:00
c3ece2f086 typo in fix relax/box doc page 2018-09-11 12:44:35 -06:00
7f328d3f79 cite a good book on SLLOD thermostatting for molecular systems 2018-09-11 11:49:46 -06:00
983e8bb110 doc page clarifications 2018-09-11 11:36:37 -06:00
0305cca1df make certain that *_freq flags are initialized. use -1 instead of 0 to avoid division by zero 2018-09-10 22:47:45 -04:00
3d2c731709 avoid class initialization order warnings 2018-09-10 22:32:56 -04:00
02b653c0ce correct end of itemized list to be compatible with txt2rst conversion 2018-09-10 22:22:42 -04:00
a33f45f176 Merge pull request #1112 from akohlmey/rename-cdeam-omp
Rename files for pair style eam/cd/omp in USER-OMP
2018-09-10 15:16:10 -04:00
a903e64947 Merge pull request #1114 from junghans/cmake_eigen3
cmake: fix Eigen3 detection
2018-09-10 10:45:20 -04:00
46b87518b8 cmake: use NO_MODULE for Eigen3 2018-09-10 00:35:55 -04:00
45682f8695 Merge pull request #1115 from junghans/cmake_globfix
cmake: fix globbing of emacs files
2018-09-09 22:15:44 -04:00
2faa34b2be Merge pull request #1105 from rbberger/truncate-file-path
Avoid buffer overflow during errors with long filenames
2018-09-09 01:30:14 -04:00
075d366051 Merge pull request #1116 from akohlmey/correct-doc-build
Correct multiple issues in manual build
2018-09-09 01:28:29 -04:00
3b073de357 make it less likely to have people get confused by Eigen3_DIR 2018-09-09 01:21:37 -04:00
6f379f54d6 Merge pull request #1117 from lammps/doc-tweak
small doc page changes, format and content on doc page tarballs
2018-09-07 23:48:46 -04:00
e325c78628 Merge pull request #1101 from Pakketeretet2/bugfix-pair-morse-smooth-linear
Bugfix pair morse smooth linear
2018-09-07 23:38:16 -04:00
b488f1072e recent package links 2018-09-07 14:22:38 -06:00
0384ef8967 more tweaks to client/server doc pages 2018-09-07 14:00:39 -06:00
25907c856e small doc page changes, format and content on doc page tarballs 2018-09-07 09:56:03 -06:00
861a7acdf0 cmake: fix globbing in some more places 2018-09-07 06:40:06 -06:00
f7cdf2a7b8 Merge pull request #26 from lammps/master
rebase
2018-09-06 21:37:52 -06:00
aea148a86a Merge pull request #1100 from rbberger/info-command-refactoring
Avoid unnecessary sorting in print_columns
2018-09-06 22:55:56 -04:00
dd64c063cf various fixes for the manual to address breakage from merging MESSAGE and USER-SCAFACOS packages 2018-09-06 22:28:20 -04:00
44fcdc4024 update reference examples with versions that do not vary by MPI rank count 2018-09-06 21:20:47 -04:00
947f574503 Merge branch 'master' into compute_mop
# Conflicts:
#	cmake/CMakeLists.txt
2018-09-06 21:13:42 -04:00
5c4434b283 Merge pull request #1113 from akohlmey/more-codeowners
Expand the list of code owners for more automated review requests
2018-09-06 20:59:07 -04:00
8f8aee65d2 cmake: fix globbing of emacs files
Done by: sed -i '/GLOB/s@/\*\.@/[^.]*.@g' CMakeLists.txt
2018-09-06 14:52:49 -06:00
d7b00f86f8 cmake: fix Eigen3 detection
For some reason FindEigen3.cmake defines all cap. variables, i.e.
Eigen3_FOUND -> EIGEN3_FOUND
2018-09-06 14:18:31 -06:00
efd582fb21 update list of code owners for automatic review requests. started assigning core files 2018-09-06 13:13:20 -04:00
b915716b60 fix inconsistency resulting from error in auto-replace macro 2018-09-06 12:27:10 -04:00
b3079f3aec rename files and classes for pair style eam/cd/omp to follow the rename of the non-threaded classes 2018-09-06 12:07:25 -04:00
84657f1531 final pass at sprintf() buffer overflow prevention. also fix typo in previous commit 2018-09-06 12:00:04 -04:00
db510af582 more fixes for potential buffer overflows by using snprintf() instead of sprintf() 2018-09-06 11:32:44 -04:00
9c27548a5c more replacing of sprintf() with snprintf() 2018-09-06 10:45:48 -04:00
4d52cb9245 more buffer overflow avoiding through using snprintf() 2018-09-06 09:57:43 -04:00
fbc1c1cfdd replace fixed buffer sprintf() with straight fprintf() 2018-09-06 09:57:10 -04:00
ca04e8f31c use snprintf() in a bunch of cases to avoid overflowing fixed size buffers with unchecked strings 2018-09-06 02:57:53 -04:00
ba1c5d3191 Avoid buffer overflow during errors with long filenames 2018-09-05 21:39:09 -04:00
0b951840f2 Merge pull request #1103 from rbberger/cmake-fix-user-omp
cmake: add missing fix_omp.h and fix_omp.cpp to compilation
2018-09-05 21:27:24 -04:00
95c3d2fc8e Merge pull request #1051 from stanmoore1/data_dup
Add data duplication option to the KOKKOS package
2018-09-05 17:09:09 -06:00
ad498811b1 cmake: add missing fix_omp.h and fix_omp.cpp to compilation 2018-09-05 16:04:35 -04:00
510e09f4ef patch 5Sep18 2018-09-05 13:39:18 -04:00
5003354fba Replaced a tab with whitespace. 2018-09-05 11:42:48 -04:00
9b38a5b359 Replaced gpu Makefile with the one from upstream so as not to delete it. 2018-09-05 11:39:41 -04:00
1c8feed69f Removed gpu makefile from wrong branch. 2018-09-05 11:38:04 -04:00
84de0d38ea Replaced files with those from upstream. 2018-09-05 11:34:07 -04:00
c192236a7e Commit before switching to old master. 2018-09-05 11:28:06 -04:00
779f1bd0b1 Fixes a bug in pair_morse_smooth_linear where the cutoff was not properly initialized. 2018-09-05 11:27:10 -04:00
a28990ed8d Merge pull request #989 from rhalver/ScaFaCoS
[Feature Contribution] Scafacos
2018-09-05 11:24:13 -04:00
0c92c22755 moved contents of USER-MOP package to USER-MISC as suggested by @sjplimp 2018-09-05 10:56:12 -04:00
4a5e28af81 Avoid unnecessary sorting in print_columns
std::map is a sorted associative container. We don't need to
first copy it into a vector and sort that one.
print_columns has been refactored as a template function and
makes use of this property.
2018-09-05 10:35:47 -04:00
d3d16882ca remove note for Rene 2018-09-05 08:12:19 -06:00
ae7b18fb77 only one call to extract needed 2018-09-05 00:11:50 -06:00
efd81a2854 Merge branch 'master' into bond/react-efficient-competing_reactions 2018-09-04 22:34:04 -06:00
a5f7b418de bond/react: efficient competing reactions 2018-09-04 22:06:49 -06:00
09ef2bc829 Merge pull request #1093 from rbberger/cmake-fixes
Collection of CMake fixes
2018-09-04 21:51:47 -04:00
f8b8ebed5b Merge pull request #1098 from junghans/cmake_testing
cmake: only add tests if exe is build
2018-09-04 21:50:23 -04:00
ff2e13e063 Merge branch 'master' into ScaFaCoS 2018-09-04 21:35:46 -04:00
8608b4f93c Remove extra libm in LAMMPS_LINK_LIBS 2018-09-04 21:31:08 -04:00
db7c2549d0 cmake: inject with-pic into Scafacos 2018-09-04 17:05:59 -06:00
037420b611 cmake: only add tests if exe is build 2018-09-04 14:59:30 -06:00
bcecc0389e add variable option to compute bond/angle/dihedral local 2018-09-04 14:48:44 -06:00
5edff5d970 Merge pull request #1095 from rbberger/cmake-add-core-tests
Add core tests to CMake
2018-09-04 16:28:26 -04:00
af4b2b9354 Add LAMMPS_TESTING_SOURCE_DIR and LAMMPS_TESTING_GIT_TAG options 2018-09-04 15:37:32 -04:00
842136afc8 Add core tests to CMake 2018-09-04 12:12:49 -04:00
990f733d22 Merge pull request #1091 from akohlmey/less-compiler-warnings
Collected diverse small changes
2018-09-04 10:30:04 -04:00
f18f12d1a6 Fix NETCDF include and libs in CMake 2018-09-04 09:15:00 -04:00
a6dfab6f27 recover some const'ness in Domain class, that was lost when merging MESSAGE package. fixes lib/atc compilation issue 2018-09-04 09:13:22 -04:00
1d3116d7c2 Merge branch 'master' into less-compiler-warnings 2018-09-04 08:59:12 -04:00
cb4ffaf95c update docs and references for name changes in USER-MOP package, remove obsoleted files 2018-09-04 08:42:32 -04:00
c9cf3fba8f Merge pull request #1013 from lammps/cslib
new MESSAGE package for client/server/coupling
2018-09-04 08:29:15 -04:00
a797a0d193 changed computes names to stress/mop and stress/mop/profile 2018-09-04 14:02:19 +02:00
0af80bbbe0 Merge pull request #24 from lammps/master
rebase
2018-09-03 21:44:22 -06:00
f6f4b58167 add parallel reference output 2018-09-03 23:42:52 -04:00
7b423c6d4b integrate USER-MOP package into build and documentat system. apply latest LAMMPS programming style conventions 2018-09-03 23:37:25 -04:00
ba4ff7744b new USER-MOP package submitted 2018-09-03 16:26:36 +02:00
9e03bf7db9 make USER-DIFFRACTION input example fully consistent with output and remove additional input file 2018-09-01 19:12:46 -04:00
754036462f Merge pull request #1088 from junghans/pkgconfig_version
liblammps.pc: add lammps version
2018-09-01 11:40:56 -04:00
5f0423b97d change -mpi to -mpicolor 2018-08-31 17:04:27 -06:00
a299a7fa28 Merge branch 'cslib' of github.com:lammps/lammps into cslib 2018-08-31 16:37:19 -06:00
78301e5e93 Merge branch 'master' into cslib 2018-08-31 16:30:28 -06:00
f66ce801ad final testing 2018-08-31 16:21:45 -06:00
bc62002b1c units and doc changes 2018-08-31 16:05:24 -06:00
a989d04d09 think this flag should not be set by this fix 2018-08-31 14:17:36 -06:00
e3ce702eec doc adjust 2018-08-31 13:53:02 -06:00
c4c5f9a32e 2 new computes: chunk/spread/atom and reduce/chunk 2018-08-31 13:44:49 -06:00
41f0951d0c liblammps.pc: add lammps version 2018-08-31 10:09:03 -06:00
3f07adb765 Merge branch 'master' of https://www.github.com/lammps/lammps into port-enforce2d-kokkos 2018-08-30 11:53:05 -04:00
054abe280e squash some more compiler warnings 2018-08-29 14:55:36 -04:00
0860b9e674 Build cslib static or as shared 2018-08-29 07:52:16 -04:00
a7e9076bc0 Rename to libcsmpi/libcsnompi like in Makefile 2018-08-29 07:30:53 -04:00
4c32a551bd Rename to libcs.a 2018-08-29 07:24:38 -04:00
6ea33e3e89 Fix typo and use ZMQ stubs in CMake when necessary 2018-08-29 06:51:20 -04:00
944574232e Merge branch 'cslib' of github.com:lammps/lammps into cslib 2018-08-28 17:09:24 -06:00
83d453e78b updates to MD protocol and examples 2018-08-28 17:08:52 -06:00
30d45e6773 Ensure MESSAGE files are added to CMake compilation 2018-08-28 15:22:43 -04:00
cb318f55e9 Add missing or lost cmake changes 2018-08-28 10:11:16 -04:00
c477129165 real <-> metal unit conversion factors 2018-08-24 16:17:07 -06:00
d8b087aeb4 docs for MD protocol enhancements 2018-08-24 11:11:34 -06:00
735ec9de0b more general MD c/s protocol 2018-08-24 10:53:05 -06:00
33d5fe457c re-merge with current master 2018-08-24 09:57:08 -06:00
2eeb8cecb2 removed left-over debug messages 2018-08-23 10:08:31 -06:00
01fe356904 first version of scafacos.h without the inclusion of the ScaFaCoS header 2018-08-22 17:18:36 -06:00
8930a88e99 enrich the AIMD interface 2018-08-22 15:12:52 -06:00
fd56124a94 corrected remap call and logic for check if correct solver / tolerance combinations are set 2018-08-22 14:17:21 -06:00
03b880a31c more doc page updates 2018-08-22 11:42:41 -06:00
4e13ce1d25 add back in MESSAGE package info in CMakeLists.txt 2018-08-22 11:21:14 -06:00
89a3670fb5 merge master into cslib branch, update docs 2018-08-22 11:19:55 -06:00
c4b55385e2 doc updates 2018-08-22 10:40:39 -06:00
cb8482b0e6 another doc change 2018-08-22 10:22:51 -06:00
a9fb8636ad doc page updates and changed domain->remap() call 2018-08-22 09:52:44 -06:00
9a15d0bd83 Merge branch 'master' into scafacos 2018-08-22 09:25:29 -06:00
f466c64071 enable merge to current GH master 2018-08-22 09:21:54 -06:00
bfd711ad12 fixed missing initialization of xpbc as well as deallocation in constructor 2018-08-21 17:29:38 -06:00
c23534019c fixed typo in example file name 2018-08-21 17:28:42 -06:00
3573970e4a fixed double definition, removed virial check for p3m and removed unused function definition Scafacos::pack... 2018-08-21 17:04:52 -06:00
fc7d9ff558 apply PBC to coords passed to scafacos 2018-08-21 11:12:21 -06:00
cca1e0a399 Merge branch 'master' into granular-kokkos 2018-08-20 22:02:41 -04:00
f8e6e4275a Merge branch 'master' of https://www.github.com/lammps/lammps into port-enforce2d-kokkos 2018-08-20 15:12:11 -04:00
e0fc050bf4 Changes to linux makefile. 2018-08-20 15:12:05 -04:00
781ddc07c7 update to CSlib website link 2018-08-13 15:29:28 -06:00
9765a9a430 Implementing forward/border comm in Kokkos. 2018-08-13 16:03:23 +01:00
165fa01a97 Cleanup 2018-08-10 14:23:51 -06:00
8f665a5a0f Update Kokkos docs for data duplication 2018-08-10 13:46:03 -06:00
6f1986a8f1 Small tweaks to Kokkos EAM 2018-08-10 13:10:02 -06:00
eb4d586493 Remove duplicate if test in fix_qeq_reax_kokkos 2018-08-10 12:53:27 -06:00
9f058f19bc Deallocate duplicated memory 2018-08-10 12:49:02 -06:00
44d7c79fdc Merge branch 'master' of https://github.com/lammps/lammps into reax_dup 2018-08-10 12:33:28 -06:00
12ecc45b6a Add data duplication to pair_snap_kokkos 2018-08-10 12:30:58 -06:00
ebc0abbb8d Add data duplication to pair_eam_kokkos variants 2018-08-10 12:30:37 -06:00
faa21a0591 Add data duplication to pair_sw_kokkos 2018-08-10 12:30:17 -06:00
d9fb37e25e Add data duplication to pair_tersoff_kokkos and variants 2018-08-10 12:30:03 -06:00
120fdbb9fc Add data duplication to pair_eam_kokkos 2018-08-10 10:53:22 -06:00
b0183de7ca Merge branch 'master' into reax_dup 2018-08-09 17:11:26 -06:00
e08aaa7e39 added examples for P3M with ScaFaCoS 2018-08-08 15:03:47 -06:00
2a5e550bda updated log files 2018-08-08 15:02:19 -06:00
fc93a79fdd updated to support ScaFaCoS 1.0.1 2018-08-08 14:05:28 -06:00
7f5476b408 removed deprecated log files (will be replaced with more current ones) 2018-08-08 14:04:41 -06:00
64cd37b6ed Merge branch 'master' of https://www.github.com/lammps/lammps into port-enforce2d-kokkos 2018-08-08 11:56:28 -04:00
76ad2b35a9 Merge remote-tracking branch 'origin/master' into ScaFaCoS 2018-08-08 09:53:32 -06:00
74633ce28f fixed merge conflict 2018-08-08 09:53:27 -06:00
48fd8b46ee cleaned documentation, added p3m entry for allowed tolerance type 2018-08-07 15:04:37 -06:00
eb86ec3eea added support for p3m, added check for compatible tolerance / method combinations (should they not be caught by ScaFaCoS itself) 2018-08-07 15:03:48 -06:00
cdde51d8af fixed example so that P3M also works, changed tolerance type in the FMM example 2018-08-07 14:29:04 -06:00
a944d1c913 fixed missing REQUIRED and introduced the compilation of internal sub-libraries (FFTW,PFFT,PNFFT) 2018-08-07 14:26:53 -06:00
bf2a942f36 Merge branch 'master' into reax_dup 2018-08-07 13:18:45 -06:00
ba693a74be Add contribute method to pair_table_kokkos 2018-08-07 12:27:32 -06:00
0a27b7065b bug fixes: ScaFaCoS returns virial as 9-value array, requires copies to Lammps 6-value array; fixed error in compuation of per-atom energy calculation 2018-08-06 16:01:39 -06:00
953b283773 updated URL for tarball download 2018-08-06 15:59:46 -06:00
b97195d48f CMake: download ScaFaCoS, compile and link it - required resorting, as Fortran MPI is required 2018-08-06 15:58:53 -06:00
c1dffe40dc Merge branch 'master' of https://www.github.com/lammps/lammps into port-enforce2d-kokkos 2018-08-06 10:25:22 -04:00
446a8da8e7 Commit before merge. 2018-08-06 10:25:12 -04:00
94bf221258 implemented checks for unsupported solvers 2018-08-03 11:31:50 -06:00
e8774dce97 removed thread restriction on make command, should make the building process faster 2018-08-03 11:31:11 -06:00
463e34cef5 Merge remote-tracking branch 'origin/master' into HEAD 2018-08-03 08:13:12 -06:00
cdd85b0749 Merge branch 'reax_dup' of ssh://github.com/stanmoore1/lammps into reax_dup 2018-08-03 07:37:49 -06:00
3e962c9729 Update from master 2018-08-03 07:37:18 -06:00
b2d1332d46 change proc count to color for MPI_Comm_split 2018-08-02 14:47:20 -06:00
efaebe0eb0 READMEs for USER-SCAFACOS completed 2018-08-02 13:44:12 -06:00
5412204ff7 Merge branch 'master' into granular-kokkos 2018-08-02 10:11:50 +02:00
a8f0200fe9 Install.py works on dummy tar-ball 2018-07-31 13:33:10 -06:00
ac0ab4ba34 changed CMake file to require pkg_config for ScaFaCoS and removed Fortran/C dependencies 2018-07-31 13:31:50 -06:00
ae04fd0bea fixed error: if no particles are on a process, the arrays for efield and epot were not allocated, leading to segfaults; shifted the parameter output to after the tuning step, so if the values are changed, the changed values are displayed 2018-07-31 09:48:59 -06:00
b2c75cc0b9 enable LAMMPS/VASP coupling to work w/out using VASP 2018-07-24 17:29:52 -06:00
a4dbac63d3 more updates to the new MESSAGE package 2018-07-24 17:22:15 -06:00
37a0a7b49b fixed compilation error 2018-07-24 15:55:48 -06:00
8846f97868 explained differences between absolute and relative tolerance more 2018-07-24 15:46:28 -06:00
655bd10db6 doc changes to 2 files 2018-07-24 15:20:37 -06:00
1aa8307fa1 change CSlib files to BSD license 2018-07-24 12:04:23 -06:00
81abd8bc0a extended scafacos documentation 2018-07-24 11:59:44 -06:00
ab1cc706cc change syntax of standard C include files 2018-07-24 11:55:56 -06:00
2e93202519 Merge branch 'cslib' of github.com:lammps/lammps into cslib 2018-07-24 11:46:55 -06:00
c2c654c87b CMake additions to new MESSAGE package 2018-07-24 11:44:15 -06:00
b08a2fcd3b mended un-done changes from Git master 2018-07-24 11:36:12 -06:00
8495fb62f4 Add preliminary cmake support 2018-07-24 10:33:12 -04:00
ae2d43031b added pressure output, to compare results with global virial (with internal PPPM) 2018-07-23 16:25:02 -06:00
1b7af5d93b added the computation of the global virial by ScaFaCoS 2018-07-23 16:24:16 -06:00
a90e019ec7 updated ScaFaCoS examples, added open-boundary Hammersley distributed sphere and charged cloud near a charged wall examples 2018-07-23 16:13:15 -06:00
ef3fd1374a added kspace_style for internal fmm tuning (for inhomogenous systems) and fixed the call to fcs_set_tolerance 2018-07-23 16:11:18 -06:00
2f55981224 new MESSAGE package for client/server/coupling 2018-07-23 15:58:33 -06:00
0e0afdeb51 fixed typo and removed comment 2018-07-20 10:41:19 -06:00
5c934cdb6f fixed examples to work with charged molecular restriction and new kspace call format 2018-07-20 10:40:29 -06:00
407708dcd2 reverted change to kspace call and using domain->boxlo for origin for now 2018-07-20 10:38:18 -06:00
fba165d6b2 changed the files according to remarks by Steve (compare to previous commit) 2018-07-19 11:46:56 -06:00
591e782415 Optimizing PairGranHookeHistoryKokkos to be less divergent. 2018-07-19 17:08:44 +01:00
a62b65096b more error checks for Scafacos usage 2018-07-18 15:48:17 -06:00
b0c9fde1dd more changes from Steve 2018-07-18 15:32:03 -06:00
1a959a5683 must add USER-SCAFACOS to PACKLIB variable in Makefile
We need "make no-lib" to be correct for automated testing to work, since only known packages with libraries can be successfully compiled through jenkins and other tools. Those scripts usually do "make yes-all no-lib" and then "make yes-XXX" for selected packages where it is known how to build the required libs.
2018-07-18 13:26:45 -04:00
eebd075a15 added scaling for different units (lj, metal, ...) and storage of atom-wise potentials (eatom / eatom_flag) 2018-07-18 11:05:54 -06:00
406aaf011f Improving global memory access pattern for firstflag and firstvalue in FixNeighHistoryKokkos. 2018-07-16 15:30:24 +01:00
e7f4e059cf convert to KSspace style rather than fix 2018-07-13 16:46:06 -06:00
6cfdcd1000 removed custom error message, information is added to error->one() call 2018-07-13 08:49:47 -06:00
cdf091f228 fixed an error in the scafacos example (added missing keyword tolerance) 2018-07-13 08:37:29 -06:00
c442166ded Tidied up example directory for PLUMED 2018-07-12 16:22:40 +01:00
6d9face1ec Added documentation describing PLUMED package installation 2018-07-12 12:26:09 +01:00
4734bc09dc Added descriptions of static linking of PLUMED to README files 2018-07-11 21:56:08 +01:00
8cca44ae45 removed wrong error messages 2018-07-11 14:02:51 -06:00
88d3233b66 replaced printf with fprintf as requested 2018-07-11 14:02:30 -06:00
56c2127127 Merge branch 'granular-kokkos' of github.com:valleymouth/lammps into granular-kokkos 2018-07-11 12:03:57 -06:00
b5816f2637 Update docs for Kokkos version of GRANULAR package 2018-07-11 12:03:34 -06:00
492e945b5a Added options to link plumed statically 2018-07-11 16:39:52 +01:00
0d1e55c99d Removing unnecessary calls to sync/modified in AtomVecSphereKokkos. 2018-07-11 11:06:16 -04:00
c83b5ec226 Prevent error when Kokkos debug mode turned on 2018-07-10 19:49:41 -06:00
687a4427da Fix runtime error in pair_dpd_fdt_energy_kokkos due to rmass change 2018-07-10 12:15:08 -06:00
af0eb52410 Error out if using fix pour with the KOKKOS package 2018-07-10 10:21:42 -06:00
a49f946f2f Add missing modify in atom_vec_sphere_kokkos 2018-07-10 10:04:13 -06:00
8c3cbad7ae Fix runtime error in fix_nve_kokkos 2018-07-10 09:15:24 -06:00
4d5635a3c4 Fixed virial contribution from PLUMED 2018-07-10 16:01:45 +01:00
ca8b109a1c Fix issues with rmass in KOKKOS package 2018-07-10 08:59:06 -06:00
55980294f1 Fix issues in atom_vec_sphere_kokkos 2018-07-09 18:47:17 -06:00
ee98d026dc preliminary documentation added (to be improved) 2018-07-09 14:28:25 -06:00
dd38318f5f adjustments to indention and line lengths (<=80 now) 2018-07-09 14:12:06 -06:00
4c4d8372e4 removed C++ std::cout I/O and replaced it with printf 2018-07-09 14:01:06 -06:00
dbfea0e617 update folder structure to comply to LAMMPS contribution rules 2018-07-09 13:53:31 -06:00
f698e37bf2 merged latest version of CMakeLists.txt with custom one (adding USER-SCAFACOS) 2018-07-09 13:41:35 -06:00
4743bb3c30 rename of the ScaFaCoS package 2018-07-09 13:35:46 -06:00
400ae72267 added tolerance to the example 2018-07-09 13:18:28 -06:00
b259de95d2 fix for ScaFaCoS library 2018-07-09 13:00:52 -06:00
c84ae38e34 Fixed installation scripts for PLUMED 2018-07-09 17:27:41 +01:00
43cdca80f2 Fixed passing of charges 2018-07-09 15:06:10 +01:00
ee98daeba5 Fix bug in atom_vec_sphere_kokkos 2018-07-06 16:47:55 -06:00
2cd95d1a99 Fix misnamed variable in comm_kokkos 2018-07-06 15:47:14 -06:00
13d562e969 Removed wrong which variable 2018-07-06 12:06:09 -06:00
228caa3fab Remove randomread from radius to prevent Kokkos runtime error when radius isn't defined 2018-07-06 11:59:25 -06:00
64fb7674b1 Fix compile warning in fix_freeze_kokkos 2018-07-06 11:58:42 -06:00
cce0755ee9 Fix memory free issue in fix_neigh_history_kokkos 2018-07-06 10:08:21 -06:00
67ed11a960 Allow Kokkos version of fix gravity in fix pour, including kk/device and kk/host suffixes 2018-07-06 09:52:41 -06:00
acb0436057 Allow Kokkos version of fix gravity in fix pour 2018-07-06 09:31:48 -06:00
2f3343b7ed Fixing dependencies with GRANULAR. 2018-07-06 05:24:26 -04:00
13efc1b76d Attempt to fix compilation issue with kokkos_omp. 2018-07-05 18:32:19 -04:00
dc93d4ceea Added virial computation to PairGranHookeHistoryKokkos. 2018-07-05 06:03:27 -04:00
a6df61a637 Making ComputeTempKokkos compatible with rmass in device memory. 2018-07-03 12:05:21 -04:00
f394ed94f3 dump vtk also works with VTK version 8. 2018-07-03 11:33:55 -04:00
11a5ed0e03 Porting fix freeze to Kokkos. 2018-07-03 11:29:13 -04:00
a365246e3a Porting fix gravity to Kokkos. 2018-07-03 11:21:54 -04:00
8ebe38474d Porting fix nve/sphere to Kokkos. 2018-07-03 11:13:27 -04:00
0a5b027bac Porting pair gran/hooke/history to Kokkos. 2018-07-03 11:10:27 -04:00
7f5a83cb1d Added first go at checks on PLUMED interface to LAMMPS 2018-07-02 17:04:19 +01:00
b299bfa821 Started adding tests on PLUMED interface 2018-07-02 13:58:38 +01:00
2c5f2a6683 Added running example of PLUMED + LAMMPS
Not sure if this has been done correctly.  I add both the input and the output
2018-07-02 10:22:23 +01:00
9b44529591 Added an example 2018-06-29 17:46:51 +01:00
f5642ac292 Removed reference to local version of PLUMED from interface 2018-06-29 16:28:53 +01:00
ef0f9c0451 First attempt at permanent PLUMED interface 2018-06-29 12:26:19 +01:00
30f8bb059f Merge branch 'reax_dup' of github.com:stanmoore1/lammps into reax_dup 2018-04-02 12:11:22 -06:00
52254fe155 Fix issue in fix_qeq_reax_kokkos 2018-04-02 12:10:30 -06:00
d8e0f48864 Merge branch 'master' into reax_dup 2018-04-02 10:55:09 -06:00
385e1e5adf Fix compile error with CUDA 2018-03-22 12:28:21 -06:00
28b894a1d7 Remove unnecessary semicolon 2018-03-22 12:09:04 -06:00
f72d38e0c3 Merge branch 'master' into reax_dup 2018-03-22 10:03:06 -06:00
2dcee75ae4 Add data duplication to pair_kokkos.h 2018-03-22 10:01:50 -06:00
968587ac1e Merge from master 2018-03-21 17:24:35 -06:00
6dd8efd0b4 Add if statements 2018-03-21 17:20:45 -06:00
ed494b295f WIP 2018-03-01 11:52:39 -07:00
dbc308f352 Add warning 2018-03-01 10:06:43 -07:00
4ec99edcc6 Merge branch 'master' of github.com:stanmoore1/lammps into reax_dup 2018-02-27 13:10:17 -07:00
c2477ce522 Merge branch 'reax_dup' of ssh://github.com/stanmoore1/lammps into reax_dup 2018-02-12 09:00:21 -07:00
f10c988903 Merge branch 'master' into reax_dup 2018-02-12 08:59:57 -07:00
81331e2a34 Better load balance fix_qeq_reax_kokkos for half neigh list 2017-12-21 11:07:06 -07:00
dbbfacc598 Fix atomic issues 2017-12-20 16:13:28 -07:00
2fc8da08f4 Merge branch 'develop' into reax_dup 2017-12-20 14:32:05 -07:00
5886cadeef Fix compiler warnings in atom_vec_hybrid_kokkos 2017-12-18 14:12:58 -07:00
2b99a26b47 Fix issue in fix_qeq_reax_kokkos, can't call child function from base constructor 2017-12-18 13:57:56 -07:00
7156d49b8d Merge branch 'pr-750' into develop 2017-12-18 11:13:17 -07:00
dce6c9edce Merge branch 'pr-747' into develop 2017-12-18 11:13:15 -07:00
b0f9ae049d Merge branch 'pr-725' into develop 2017-12-18 11:13:11 -07:00
a5790ef68f Rename to ScatterView 2017-12-11 08:38:54 -07:00
8e68015a6f Merge branch 'reax_dup' of github.com:stanmoore1/lammps into reax_dup 2017-12-11 08:32:20 -07:00
95aec46b99 Merge remote-tracking branch 'origin/master' into reax_dup 2017-12-11 08:30:27 -07:00
8a9a7f4e50 Fix issues 2017-12-06 14:06:35 -07:00
d2da1f5797 Template out atomics for full neighbor list 2017-12-06 09:41:29 -07:00
9f08cec07a Merge branch 'improve_reax' of ssh://github.com/stanmoore1/lammps into reax_dup 2017-11-30 09:48:15 -07:00
ee9ba99cde Fix some bugs in pair_reaxc_kokkos 2017-11-29 11:11:20 -07:00
41202c3627 Turn atomics back on for some views in pair_reaxc_kokkos 2017-11-28 16:28:17 -07:00
54f2493018 Added ReductionView to Kokkos ReaxFF 2017-11-28 14:53:44 -07:00
1413 changed files with 284443 additions and 10201 deletions

69
.github/CODEOWNERS vendored
View File

@ -17,6 +17,7 @@ src/GPU/* @ndtrung81
src/KOKKOS/* @stanmoore1
src/KIM/* @ellio167
src/LATTE/* @cnegre
src/MESSAGE/* @sjplimp
src/SPIN/* @julient31
src/USER-CGDNA/* @ohenrich
src/USER-CGSDK/* @akohlmey
@ -28,20 +29,88 @@ src/USER-MEAMC/* @martok
src/USER-MOFFF/* @hheenen
src/USER-MOLFILE/* @akohlmey
src/USER-NETCDF/* @pastewka
src/USER-PLUMED/* @gtribello
src/USER-PHONON/* @lingtikong
src/USER-PTM/* @pmla
src/USER-OMP/* @akohlmey
src/USER-QMMM/* @akohlmey
src/USER-REAXC/* @hasanmetin
src/USER-SCAFACOS/* @rhalver
src/USER-TALLY/* @akohlmey
src/USER-UEF/* @danicholson
src/USER-VTK/* @rbberger
# individual files in packages
src/GPU/pair_vashishta_gpu.* @andeplane
src/KOKKOS/pair_vashishta_kokkos.* @andeplane
src/MANYBODY/pair_vashishta_table.* @andeplane
src/MANYBODY/pair_atm.* @sergeylishchuk
src/USER-MISC/fix_bond_react.* @jrgissing
src/USER-MISC/*_grem.* @dstelter92
src/USER-MISC/compute_stress_mop*.* @RomainVermorel
# core LAMMPS classes
src/lammps.* @sjplimp
src/pointers.h @sjplimp
src/atom.* @sjplimp
src/atom_vec.* @sjplimp
src/angle.* @sjplimp
src/bond.* @sjplimp
src/comm*.* @sjplimp
src/compute.* @sjplimp
src/dihedral.* @sjplimp
src/domain.* @sjplimp
src/dump*.* @sjplimp
src/error.* @sjplimp
src/finish.* @sjplimp
src/fix.* @sjplimp
src/force.* @sjplimp
src/group.* @sjplimp
src/improper.* @sjplimp
src/kspace.* @sjplimp
src/lmptyp.h @sjplimp
src/library.* @sjplimp
src/main.cpp @sjplimp
src/memory.* @sjplimp
src/modify.* @sjplimp
src/molecule.* @sjplimp
src/my_page.h @sjplimp
src/my_pool_chunk.h @sjplimp
src/npair*.* @sjplimp
src/ntopo*.* @sjplimp
src/nstencil*.* @sjplimp
src/neighbor.* @sjplimp
src/nbin*.* @sjplimp
src/neigh_*.* @sjplimp
src/output.* @sjplimp
src/pair.* @sjplimp
src/rcb.* @sjplimp
src/random_*.* @sjplimp
src/region*.* @sjplimp
src/rcb.* @sjplimp
src/read*.* @sjplimp
src/rerun.* @sjplimp
src/run.* @sjplimp
src/respa.* @sjplimp
src/set.* @sjplimp
src/special.* @sjplimp
src/suffix.h @sjplimp
src/thermo.* @sjplimp
src/universe.* @sjplimp
src/update.* @sjplimp
src/variable.* @sjplimp
src/verlet.* @sjplimp
src/velocity.* @sjplimp
src/write_data.* @sjplimp
src/write_restart.* @sjplimp
# overrides for specific files
src/dump_movie.* @akohlmey
src/exceptions.h @rbberger
src/fix_nh.* @athomps
src/info.* @akohlmey @rbberger
src/timer.* @akohlmey
# tools
tools/msi2lmp/* @akohlmey

View File

@ -6,7 +6,7 @@ The following is a set of guidelines as well as explanations of policies and wor
Thus please also have a look at:
* [The Section on submitting new features for inclusion in LAMMPS of the Manual](http://lammps.sandia.gov/doc/Section_modify.html#mod-15)
* [The LAMMPS GitHub Tutorial in the Manual](http://lammps.sandia.gov/doc/tutorial_github.html)
* [The LAMMPS GitHub Tutorial in the Manual](http://lammps.sandia.gov/doc/Howto_github.html)
## Table of Contents
@ -62,7 +62,7 @@ To be able to submit an issue on GitHub, you have to register for an account (fo
We encourage users to submit new features or modifications for LAMMPS to the core developers so they can be added to the LAMMPS distribution. The preferred way to manage and coordinate this is by submitting a pull request at the LAMMPS project on GitHub. For any larger modifications or programming project, you are encouraged to contact the LAMMPS developers ahead of time, in order to discuss implementation strategies and coding guidelines, that will make it easier to integrate your contribution and result in less work for everybody involved. You are also encouraged to search through the list of open issues on GitHub and submit a new issue for a planned feature, so you would not duplicate the work of others (and possibly get scooped by them) or have your work duplicated by others.
How quickly your contribution will be integrated depends largely on how much effort it will cause to integrate and test it, how much it requires changes to the core code base, and of how much interest it is to the larger LAMMPS community. Please see below for a checklist of typical requirements. Once you have prepared everything, see [this tutorial](http://lammps.sandia.gov/doc/tutorial_github.html)
How quickly your contribution will be integrated depends largely on how much effort it will cause to integrate and test it, how much it requires changes to the core code base, and of how much interest it is to the larger LAMMPS community. Please see below for a checklist of typical requirements. Once you have prepared everything, see [this tutorial](http://lammps.sandia.gov/doc/Howto_github.html)
for instructions on how to submit your changes or new files through a GitHub pull request
Here is a checklist of steps you need to follow to submit a single file or user package for our consideration. Following these steps will save both you and us time. See existing files in packages in the source directory for examples. If you are uncertain, please ask on the lammps-users mailing list.
@ -102,11 +102,11 @@ For bug reports, the next step is that one of the core LAMMPS developers will se
### Pull Requests
For submitting pull requests, there is a [detailed tutorial](http://lammps.sandia.gov/doc/tutorial_github.html) in the LAMMPS manual. Thus only a brief breakdown of the steps is presented here.
For submitting pull requests, there is a [detailed tutorial](http://lammps.sandia.gov/doc/Howto_github.html) in the LAMMPS manual. Thus only a brief breakdown of the steps is presented here. Please note, that the LAMMPS developers are still reviewing and trying to improve the process. If you are unsure about something, do not hesitate to post a question on the lammps-users mailing list or contact one fo the core LAMMPS developers.
Immediately after the submission, the LAMMPS continuing integration server at ci.lammps.org will download your submitted branch and perform a simple compilation test, i.e. will test whether your submitted code can be compiled under various conditions. It will also do a check on whether your included documentation translates cleanly. Whether these tests are successful or fail will be recorded. If a test fails, please inspect the corresponding output on the CI server and take the necessary steps, if needed, so that the code can compile cleanly again. The test will be re-run each the pull request is updated with a push to the remote branch on GitHub.
Next a LAMMPS core developer will self-assign and do an overall technical assessment of the submission. If you are not yet registered as a LAMMPS collaborator, you will receive an invitation for that.
You may also receive comments and suggestions on the overall submission or specific details. If permitted, additional changes may be pushed into your pull request branch or a pull request may be filed in your LAMMPS fork on GitHub to include those changes.
The LAMMPS developer may then decide to assign the pull request to another developer (e.g. when that developer is more knowledgeable about the submitted feature or enhancement or has written the modified code). It may also happen, that additional developers are requested to provide a review and approve the changes. For submissions, that may change the general behavior of LAMMPS, or where a possibility of unwanted side effects exists, additional tests may be requested by the assigned developer.
If the assigned developer is satisfied and considers the submission ready for inclusion into LAMMPS, the pull request will be assigned to the LAMMPS lead developer, Steve Plimpton (@sjplimp), who will then have the final decision on whether the submission will be included, additional changes are required or it will be ultimately rejected. After the pull request is merged, you may delete the pull request branch in your personal LAMMPS fork.
Since the learning curve for git is quite steep for efficiently managing remote repositories, local and remote branches, pull requests and more, do not hesitate to ask questions, if you are not sure about how to do certain steps that are asked of you. Even if the changes asked of you do not make sense to you, they may be important for the LAMMPS developers. Please also note, that these all are guidelines and not set in stone.
If the assigned developer is satisfied and considers the submission ready for inclusion into LAMMPS, the pull request will receive approvals and be merged into the master branch by one of the core LAMMPS developers. After the pull request is merged, you may delete the feature branch used for the pull request in your personal LAMMPS fork.
Since the learning curve for git is quite steep for efficiently managing remote repositories, local and remote branches, pull requests and more, do not hesitate to ask questions, if you are not sure about how to do certain steps that are asked of you. Even if the changes asked of you do not make sense to you, they may be important for the LAMMPS developers. Please also note, that these all are guidelines and nothing set in stone. So depending on the nature of the contribution, the workflow may be adjusted.

View File

@ -11,9 +11,13 @@ get_filename_component(LAMMPS_LIB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib
get_filename_component(LAMMPS_LIB_BINARY_DIR ${CMAKE_BINARY_DIR}/lib ABSOLUTE)
get_filename_component(LAMMPS_DOC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../doc ABSOLUTE)
# by default, install into $HOME/.local (not /usr/local), so that no root access (and sudo!!) is needed
if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/.local" CACHE PATH "default install path" FORCE )
endif()
# To avoid conflicts with the conventional Makefile build system, we build everything here
file(GLOB LIB_SOURCES ${LAMMPS_SOURCE_DIR}/*.cpp)
file(GLOB LIB_SOURCES ${LAMMPS_SOURCE_DIR}/[^.]*.cpp)
file(GLOB LMP_SOURCES ${LAMMPS_SOURCE_DIR}/main.cpp)
list(REMOVE_ITEM LIB_SOURCES ${LMP_SOURCES})
@ -69,10 +73,13 @@ get_lammps_version(${LAMMPS_SOURCE_DIR}/version.h LAMMPS_VERSION)
# Cmake modules/macros are in a subdirectory to keep this file cleaner
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules)
include(PreventInSourceBuilds)
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CXX_FLAGS)
#release comes with -O3 by default
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
endif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CXX_FLAGS)
string(TOUPPER "${CMAKE_BUILD_TYPE}" BTYPE)
# check for files auto-generated by make-based buildsystem
# this is fast, so check for it all the time
@ -136,6 +143,7 @@ if(BUILD_EXE)
if(LAMMPS_MACHINE)
set(LAMMPS_MACHINE "_${LAMMPS_MACHINE}")
endif()
set(LAMMPS_BINARY lmp${LAMMPS_MACHINE})
endif()
option(BUILD_LIB "Build LAMMPS library" OFF)
@ -162,6 +170,38 @@ set(LAMMPS_LINK_LIBS)
set(LAMMPS_DEPS)
set(LAMMPS_API_DEFINES)
set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR
KSPACE MANYBODY MC MEAM MESSAGE MISC MOLECULE PERI REAX REPLICA RIGID SHOCK
SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD
USER-BOCS USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION
USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD
USER-MEAMC USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF
USER-PHONON USER-PLUMED USER-PTM USER-QTB USER-REAXC USER-SCAFACOS
USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK
USER-QUIP USER-QMMM)
set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU)
set(OTHER_PACKAGES CORESHELL QEQ)
foreach(PKG ${DEFAULT_PACKAGES})
option(PKG_${PKG} "Build ${PKG} Package" OFF)
endforeach()
foreach(PKG ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
option(PKG_${PKG} "Build ${PKG} Package" OFF)
endforeach()
######################################################
# packages with special compiler needs or external libs
######################################################
if(PKG_REAX OR PKG_MEAM OR PKG_USER-QUIP OR PKG_USER-QMMM OR PKG_LATTE OR PKG_USER-SCAFACOS)
enable_language(Fortran)
endif()
if(PKG_MEAM OR PKG_USER-H5MD OR PKG_USER-QMMM OR PKG_USER-SCAFACOS)
enable_language(C)
endif()
include_directories(${LAMMPS_SOURCE_DIR})
# do MPI detection after language activation, if MPI for these language is required
find_package(MPI QUIET)
option(BUILD_MPI "Build MPI version" ${MPI_FOUND})
if(BUILD_MPI)
@ -206,25 +246,52 @@ endif()
option(CMAKE_VERBOSE_MAKEFILE "Verbose makefile" OFF)
option(ENABLE_TESTING "Enable testing" OFF)
if(ENABLE_TESTING)
if(ENABLE_TESTING AND BUILD_EXE)
enable_testing()
endif(ENABLE_TESTING)
option(LAMMPS_TESTING_SOURCE_DIR "Location of lammps-testing source directory" "")
option(LAMMPS_TESTING_GIT_TAG "Git tag of lammps-testing" "master")
mark_as_advanced(LAMMPS_TESTING_SOURCE_DIR LAMMPS_TESTING_GIT_TAG)
set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR
KSPACE MANYBODY MC MEAM MISC MOLECULE PERI REAX REPLICA RIGID SHOCK SPIN SNAP
SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD USER-BOCS
USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE
USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC
USER-MOFFF USER-MOLFILE USER-NETCDF USER-PHONON USER-QTB USER-REAXC USER-SMD
USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM)
set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU)
set(OTHER_PACKAGES CORESHELL QEQ)
foreach(PKG ${DEFAULT_PACKAGES})
option(PKG_${PKG} "Build ${PKG} Package" OFF)
endforeach()
foreach(PKG ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
option(PKG_${PKG} "Build ${PKG} Package" OFF)
endforeach()
if (CMAKE_VERSION VERSION_GREATER "3.10.3" AND NOT LAMMPS_TESTING_SOURCE_DIR)
include(FetchContent)
FetchContent_Declare(lammps-testing
GIT_REPOSITORY https://github.com/lammps/lammps-testing.git
GIT_TAG ${LAMMPS_TESTING_GIT_TAG}
)
FetchContent_GetProperties(lammps-testing)
if(NOT lammps-testing_POPULATED)
message(STATUS "Downloading tests...")
FetchContent_Populate(lammps-testing)
endif()
set(LAMMPS_TESTING_SOURCE_DIR ${lammps-testing_SOURCE_DIR})
elseif(NOT LAMMPS_TESTING_SOURCE_DIR)
message(WARNING "Full test-suite requires CMake >= 3.11 or copy of\n"
"https://github.com/lammps/lammps-testing in LAMMPS_TESTING_SOURCE_DIR")
endif()
if(EXISTS ${LAMMPS_TESTING_SOURCE_DIR})
message(STATUS "Running test discovery...")
file(GLOB_RECURSE TEST_SCRIPTS ${LAMMPS_TESTING_SOURCE_DIR}/tests/core/*/in.*)
foreach(script_path ${TEST_SCRIPTS})
get_filename_component(TEST_NAME ${script_path} EXT)
get_filename_component(SCRIPT_NAME ${script_path} NAME)
get_filename_component(PARENT_DIR ${script_path} DIRECTORY)
string(SUBSTRING ${TEST_NAME} 1 -1 TEST_NAME)
string(REPLACE "-" "_" TEST_NAME ${TEST_NAME})
string(REPLACE "+" "_" TEST_NAME ${TEST_NAME})
set(TEST_NAME "test_core_${TEST_NAME}_serial")
add_test(${TEST_NAME} ${CMAKE_BINARY_DIR}/${LAMMPS_BINARY} -in ${SCRIPT_NAME})
set_tests_properties(${TEST_NAME} PROPERTIES WORKING_DIRECTORY ${PARENT_DIR})
endforeach()
list(LENGTH TEST_SCRIPTS NUM_TESTS)
message(STATUS "Found ${NUM_TESTS} tests.")
endif()
endif()
macro(pkg_depends PKG1 PKG2)
if(PKG_${PKG1} AND NOT (PKG_${PKG2} OR BUILD_${PKG2}))
@ -238,21 +305,11 @@ pkg_depends(MPIIO MPI)
pkg_depends(USER-ATC MANYBODY)
pkg_depends(USER-LB MPI)
pkg_depends(USER-PHONON KSPACE)
######################################################
# packages with special compiler needs or external libs
######################################################
if(PKG_REAX OR PKG_MEAM OR PKG_USER-QUIP OR PKG_USER-QMMM OR PKG_LATTE)
enable_language(Fortran)
endif()
if(PKG_MEAM OR PKG_USER-H5MD OR PKG_USER-QMMM)
enable_language(C)
endif()
pkg_depends(USER-SCAFACOS MPI)
find_package(OpenMP QUIET)
option(BUILD_OMP "Build with OpenMP support" ${OpenMP_FOUND})
if(BUILD_OMP OR PKG_USER-OMP OR PKG_KOKKOS OR PKG_USER-INTEL)
if(BUILD_OMP OR PKG_KOKKOS OR PKG_USER-INTEL)
find_package(OpenMP REQUIRED)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
@ -297,12 +354,12 @@ if(PKG_KSPACE)
endif()
endif()
if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE)
if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE OR PKG_USER-PLUMED)
find_package(LAPACK)
find_package(BLAS)
if(NOT LAPACK_FOUND OR NOT BLAS_FOUND)
enable_language(Fortran)
file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/*.[fF])
file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/[^.]*.[fF])
add_library(linalg STATIC ${LAPACK_SOURCES})
set(LAPACK_LIBRARIES linalg)
else()
@ -370,16 +427,30 @@ if(WITH_FFMPEG)
add_definitions(-DLAMMPS_FFMPEG)
endif()
if(BUILD_SHARED_LIBS)
set(CONFIGURE_REQUEST_PIC "--with-pic")
set(CMAKE_REQUEST_PIC "-DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE}")
set(CUDA_REQUEST_PIC "-Xcompiler ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}")
else()
set(CONFIGURE_REQUEST_PIC)
set(CMAKE_REQUEST_PIC)
set(CUDA_REQUEST_PIC)
endif()
if(PKG_VORONOI)
option(DOWNLOAD_VORO "Download voro++ (instead of using the system's one)" OFF)
option(DOWNLOAD_VORO "Download and compile the Voro++ library instead of using an already installed one" OFF)
if(DOWNLOAD_VORO)
message(STATUS "Voro++ download requested - we will build our own")
include(ExternalProject)
if(BUILD_SHARED_LIBS)
set(VORO_BUILD_OPTIONS "CFLAGS=-fPIC")
set(VORO_BUILD_CFLAGS "${CMAKE_SHARED_LIBRARY_CXX_FLAGS} ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${BTYPE}}")
else()
set(VORO_BUILD_OPTIONS)
set(VORO_BUILD_CFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${BTYPE}}")
endif()
string(APPEND VORO_BUILD_CFLAGS ${CMAKE_CXX_FLAGS})
set(VORO_BUILD_OPTIONS CXX=${CMAKE_CXX_COMPILER} CFLAGS=${VORO_BUILD_CFLAGS})
ExternalProject_Add(voro_build
URL http://math.lbl.gov/voro++/download/dir/voro++-0.4.6.tar.gz
@ -393,7 +464,7 @@ if(PKG_VORONOI)
else()
find_package(VORO)
if(NOT VORO_FOUND)
message(FATAL_ERROR "VORO not found, help CMake to find it by setting VORO_LIBRARY and VORO_INCLUDE_DIR, or set DOWNLOAD_VORO=ON to download it")
message(FATAL_ERROR "Voro++ library not found. Help CMake to find it by setting VORO_LIBRARY and VORO_INCLUDE_DIR, or set DOWNLOAD_VORO=ON to download it")
endif()
endif()
include_directories(${VORO_INCLUDE_DIRS})
@ -401,31 +472,128 @@ if(PKG_VORONOI)
endif()
if(PKG_LATTE)
option(DOWNLOAD_LATTE "Download latte (instead of using the system's one)" OFF)
option(DOWNLOAD_LATTE "Download the LATTE library instead of using an already installed one" OFF)
if(DOWNLOAD_LATTE)
if (CMAKE_VERSION VERSION_LESS "3.7") # due to SOURCE_SUBDIR
if (CMAKE_VERSION VERSION_LESS "3.7") # due to SOURCE_SUBDIR
message(FATAL_ERROR "For downlading LATTE you need at least cmake-3.7")
endif()
message(STATUS "LATTE not found - we will build our own")
message(STATUS "LATTE download requested - we will build our own")
include(ExternalProject)
ExternalProject_Add(latte_build
URL https://github.com/lanl/LATTE/archive/v1.2.1.tar.gz
URL_MD5 85ac414fdada2d04619c8f936344df14
SOURCE_SUBDIR cmake
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE}
)
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> ${CMAKE_REQUEST_PIC}
)
ExternalProject_get_property(latte_build INSTALL_DIR)
set(LATTE_LIBRARIES ${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/liblatte.a)
list(APPEND LAMMPS_DEPS latte_build)
else()
find_package(LATTE)
if(NOT LATTE_FOUND)
message(FATAL_ERROR "LATTE not found, help CMake to find it by setting LATTE_LIBRARY, or set DOWNLOAD_LATTE=ON to download it")
message(FATAL_ERROR "LATTE library not found, help CMake to find it by setting LATTE_LIBRARY, or set DOWNLOAD_LATTE=ON to download it")
endif()
endif()
list(APPEND LAMMPS_LINK_LIBS ${LATTE_LIBRARIES} ${LAPACK_LIBRARIES})
endif()
if(PKG_USER-SCAFACOS)
find_package(GSL REQUIRED)
option(DOWNLOAD_SCAFACOS "Download ScaFaCoS library instead of using an already installed one" OFF)
if(DOWNLOAD_SCAFACOS)
message(STATUS "ScaFaCoS download requested - we will build our own")
include(ExternalProject)
ExternalProject_Add(scafacos_build
URL https://github.com/scafacos/scafacos/releases/download/v1.0.1/scafacos-1.0.1.tar.gz
URL_MD5 bd46d74e3296bd8a444d731bb10c1738
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR> --disable-doc
--enable-fcs-solvers=fmm,p2nfft,direct,ewald,p3m
--with-internal-fftw --with-internal-pfft
--with-internal-pnfft ${CONFIGURE_REQUEST_PIC}
FC=${CMAKE_MPI_Fortran_COMPILER}
CXX=${CMAKE_MPI_CXX_COMPILER}
CC=${CMAKE_MPI_C_COMPILER}
F77=
)
ExternalProject_get_property(scafacos_build INSTALL_DIR)
set(SCAFACOS_BUILD_DIR ${INSTALL_DIR})
set(SCAFACOS_INCLUDE_DIRS ${SCAFACOS_BUILD_DIR}/include)
list(APPEND LAMMPS_DEPS scafacos_build)
# list and order from pkg_config file of ScaFaCoS build
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_direct.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_ewald.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_fmm.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_p2nfft.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_p3m.a)
list(APPEND LAMMPS_LINK_LIBS ${GSL_LIBRARIES})
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_near.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_gridsort.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_resort.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_redist.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_common.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_pnfft.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_pfft.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_fftw3_mpi.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_fftw3.a)
list(APPEND LAMMPS_LINK_LIBS ${MPI_Fortran_LIBRARIES})
list(APPEND LAMMPS_LINK_LIBS ${MPI_C_LIBRARIES})
else()
FIND_PACKAGE(PkgConfig REQUIRED)
PKG_CHECK_MODULES(SCAFACOS scafacos REQUIRED)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_LDFLAGS})
endif()
include_directories(${SCAFACOS_INCLUDE_DIRS})
endif()
if(PKG_USER-PLUMED)
find_package(GSL REQUIRED)
set(PLUMED_MODE "static" CACHE STRING "Linkage mode for Plumed2 library")
set(PLUMED_MODE_VALUES static shared runtime)
set_property(CACHE PLUMED_MODE PROPERTY STRINGS ${PLUMED_MODE_VALUES})
validate_option(PLUMED_MODE PLUMED_MODE_VALUES)
string(TOUPPER ${PLUMED_MODE} PLUMED_MODE)
option(DOWNLOAD_PLUMED "Download Plumed package instead of using an already installed one" OFF)
if(DOWNLOAD_PLUMED)
message(STATUS "PLUMED download requested - we will build our own")
include(ExternalProject)
ExternalProject_Add(plumed_build
URL https://github.com/plumed/plumed2/releases/download/v2.4.3/plumed-src-2.4.3.tgz
URL_MD5 b1be7c48971627febc11c61b70767fc5
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR> ${CONFIGURE_REQUEST_PIC})
ExternalProject_get_property(plumed_build INSTALL_DIR)
set(PLUMED_INSTALL_DIR ${INSTALL_DIR})
list(APPEND LAMMPS_DEPS plumed_build)
if(PLUMED_MODE STREQUAL "STATIC")
add_definitions(-D__PLUMED_WRAPPER_CXX=1)
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/plumed/obj/kernel.o
"${PLUMED_INSTALL_DIR}/lib/plumed/obj/PlumedStatic.o" ${GSL_LIBRARIES} ${CMAKE_DL_LIBS} ${LAPACK_LIBRARIES})
elseif(PLUMED_MODE STREQUAL "SHARED")
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumed.so ${CMAKE_DL_LIBS})
elseif(PLUMED_MODE STREQUAL "RUNTIME")
add_definitions(-D__PLUMED_HAS_DLOPEN=1 -D__PLUMED_DEFAULT_KERNEL=${PLUMED_INSTALL_DIR}/lib/libplumedKernel.so)
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumedWrapper.a -rdynamic ${CMAKE_DL_LIBS})
endif()
set(PLUMED_INCLUDE_DIRS "${PLUMED_INSTALL_DIR}/include")
else()
find_package(PkgConfig REQUIRED)
pkg_check_modules(PLUMED plumed REQUIRED)
if(PLUMED_MODE STREQUAL "STATIC")
add_definitions(-D__PLUMED_WRAPPER_CXX=1)
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.static)
elseif(PLUMED_MODE STREQUAL "SHARED")
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.shared)
elseif(PLUMED_MODE STREQUAL "RUNTIME")
add_definitions(-D__PLUMED_HAS_DLOPEN=1 -D__PLUMED_DEFAULT_KERNEL=${PLUMED_LIBDIR}/libplumedKernel.so)
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.runtime)
endif()
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_LOAD})
endif()
include_directories(${PLUMED_INCLUDE_DIRS})
endif()
if(PKG_USER-MOLFILE)
add_library(molfile INTERFACE)
target_include_directories(molfile INTERFACE ${LAMMPS_LIB_SOURCE_DIR}/molfile)
@ -435,17 +603,18 @@ endif()
if(PKG_USER-NETCDF)
find_package(NetCDF REQUIRED)
include_directories(NETCDF_INCLUDE_DIR)
list(APPEND LAMMPS_LINK_LIBS ${NETCDF_LIBRARY})
include_directories(${NETCDF_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${NETCDF_LIBRARIES})
add_definitions(-DLMP_HAS_NETCDF -DNC_64BIT_DATA=0x0020)
endif()
if(PKG_USER-SMD)
option(DOWNLOAD_EIGEN3 "Download Eigen3 (instead of using the system's one)" OFF)
option(DOWNLOAD_EIGEN3 "Download Eigen3 instead of using an already installed one)" OFF)
if(DOWNLOAD_EIGEN3)
message(STATUS "Eigen3 download requested - we will build our own")
include(ExternalProject)
ExternalProject_Add(Eigen3_build
URL http://bitbucket.org/eigen/eigen/get/3.3.4.tar.gz
URL http://bitbucket.org/eigen/eigen/get/3.3.4.tar.gz
URL_MD5 1a47e78efe365a97de0c022d127607c3
CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ""
)
@ -453,8 +622,9 @@ if(PKG_USER-SMD)
set(EIGEN3_INCLUDE_DIR ${SOURCE_DIR})
list(APPEND LAMMPS_DEPS Eigen3_build)
else()
find_package(Eigen3)
if(NOT Eigen3_FOUND)
find_package(Eigen3 NO_MODULE)
mark_as_advanced(Eigen3_DIR)
if(NOT EIGEN3_FOUND)
message(FATAL_ERROR "Eigen3 not found, help CMake to find it by setting EIGEN3_INCLUDE_DIR, or set DOWNLOAD_EIGEN3=ON to download it")
endif()
endif()
@ -481,8 +651,9 @@ if(PKG_USER-VTK)
endif()
if(PKG_KIM)
option(DOWNLOAD_KIM "Download kim-api (instead of using the system's one)" OFF)
option(DOWNLOAD_KIM "Download KIM-API v1 from OpenKIM instead of using an already installed one)" OFF)
if(DOWNLOAD_KIM)
message(STATUS "KIM-API v1 download requested - we will build our own")
include(ExternalProject)
ExternalProject_Add(kim_build
URL https://github.com/openkim/kim-api/archive/v1.9.5.tar.gz
@ -497,19 +668,48 @@ if(PKG_KIM)
else()
find_package(KIM)
if(NOT KIM_FOUND)
message(FATAL_ERROR "KIM not found, help CMake to find it by setting KIM_LIBRARY and KIM_INCLUDE_DIR, or set DOWNLOAD_KIM=ON to download it")
message(FATAL_ERROR "KIM-API v1 not found, help CMake to find it by setting KIM_LIBRARY and KIM_INCLUDE_DIR, or set DOWNLOAD_KIM=ON to download it")
endif()
endif()
list(APPEND LAMMPS_LINK_LIBS ${KIM_LIBRARIES})
include_directories(${KIM_INCLUDE_DIRS})
endif()
if(PKG_MESSAGE)
option(MESSAGE_ZMQ "Use ZeroMQ in MESSAGE package" OFF)
file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.F
${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.c
${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.cpp)
add_library(cslib STATIC ${cslib_SOURCES})
if(BUILD_MPI)
target_compile_definitions(cslib PRIVATE -DMPI_YES)
set_target_properties(cslib PROPERTIES OUTPUT_NAME "csmpi")
else()
target_compile_definitions(cslib PRIVATE -DMPI_NO)
set_target_properties(cslib PROPERTIES OUTPUT_NAME "csnompi")
endif()
if(MESSAGE_ZMQ)
target_compile_definitions(cslib PRIVATE -DZMQ_YES)
find_package(ZMQ REQUIRED)
target_include_directories(cslib PRIVATE ${ZMQ_INCLUDE_DIRS})
target_link_libraries(cslib PUBLIC ${ZMQ_LIBRARIES})
else()
target_compile_definitions(cslib PRIVATE -DZMQ_NO)
target_include_directories(cslib PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src/STUBS_ZMQ)
endif()
list(APPEND LAMMPS_LINK_LIBS cslib)
include_directories(${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src)
endif()
if(PKG_MSCG)
find_package(GSL REQUIRED)
option(DOWNLOAD_MSCG "Download latte (instead of using the system's one)" OFF)
option(DOWNLOAD_MSCG "Download MSCG library instead of using an already installed one)" OFF)
if(DOWNLOAD_MSCG)
if (CMAKE_VERSION VERSION_LESS "3.7") # due to SOURCE_SUBDIR
message(FATAL_ERROR "For downlading LATTE you need at least cmake-3.7")
if (CMAKE_VERSION VERSION_LESS "3.7") # due to SOURCE_SUBDIR
message(FATAL_ERROR "For downlading MSCG you need at least cmake-3.7")
endif()
include(ExternalProject)
if(NOT LAPACK_FOUND)
@ -519,7 +719,7 @@ if(PKG_MSCG)
URL https://github.com/uchicago-voth/MSCG-release/archive/1.7.3.1.tar.gz
URL_MD5 8c45e269ee13f60b303edd7823866a91
SOURCE_SUBDIR src/CMake
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} ${EXTRA_MSCG_OPTS}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> ${CMAKE_REQUEST_PIC} ${EXTRA_MSCG_OPTS}
BUILD_COMMAND make mscg INSTALL_COMMAND ""
)
ExternalProject_get_property(mscg_build BINARY_DIR)
@ -567,7 +767,7 @@ set(MATH_LIBRARIES "m" CACHE STRING "math library")
mark_as_advanced( MATH_LIBRARIES )
include(CheckLibraryExists)
if (CMAKE_VERSION VERSION_LESS "3.4")
enable_language(C) # check_library_exists isn't supported without a c compiler before v3.4
enable_language(C) # check_library_exists isn't supported without a C compiler before v3.4
endif()
# RB: disabled this check because it breaks with KOKKOS CUDA enabled
#foreach(FUNC sin cos)
@ -590,8 +790,8 @@ RegisterStyles(${LAMMPS_SOURCE_DIR})
foreach(PKG ${DEFAULT_PACKAGES})
set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG})
file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/*.cpp)
file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/*.h)
file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/[^.]*.cpp)
file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/[^.]*.h)
# check for package files in src directory due to old make system
DetectBuildSystemConflict(${LAMMPS_SOURCE_DIR} ${${PKG}_SOURCES} ${${PKG}_HEADERS})
@ -605,12 +805,19 @@ foreach(PKG ${DEFAULT_PACKAGES})
endif()
endforeach()
# packages that need defines set
foreach(PKG MPIIO)
if(PKG_${PKG})
add_definitions(-DLMP_${PKG})
endif()
endforeach()
# dedicated check for entire contents of accelerator packages
foreach(PKG ${ACCEL_PACKAGES})
set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG})
file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/*.cpp)
file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/*.h)
file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/[^.]*.cpp)
file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/[^.]*.h)
# check for package files in src directory due to old make system
DetectBuildSystemConflict(${LAMMPS_SOURCE_DIR} ${${PKG}_SOURCES} ${${PKG}_HEADERS})
@ -624,14 +831,16 @@ foreach(SIMPLE_LIB REAX MEAM POEMS USER-ATC USER-AWPMD USER-COLVARS USER-H5MD
if(PKG_${SIMPLE_LIB})
string(REGEX REPLACE "^USER-" "" PKG_LIB "${SIMPLE_LIB}")
string(TOLOWER "${PKG_LIB}" PKG_LIB)
file(GLOB_RECURSE ${PKG_LIB}_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.F
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.c ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.cpp)
file(GLOB_RECURSE ${PKG_LIB}_SOURCES
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.F
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.c
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.cpp)
add_library(${PKG_LIB} STATIC ${${PKG_LIB}_SOURCES})
list(APPEND LAMMPS_LINK_LIBS ${PKG_LIB})
if(PKG_LIB STREQUAL awpmd)
target_include_directories(awpmd PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/awpmd/systems/interact ${LAMMPS_LIB_SOURCE_DIR}/awpmd/ivutils/include)
elseif(PKG_LIB STREQUAL h5md)
target_include_directories(h5md PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/h5md/include)
target_include_directories(h5md PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/h5md/include ${HDF5_INCLUDE_DIRS})
elseif(PKG_LIB STREQUAL colvars)
target_compile_options(colvars PRIVATE -DLEPTON)
target_include_directories(colvars PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/colvars/lepton/include)
@ -654,6 +863,7 @@ if(PKG_USER-H5MD)
find_package(HDF5 REQUIRED)
target_link_libraries(h5md ${HDF5_LIBRARIES})
target_include_directories(h5md PRIVATE ${HDF5_INCLUDE_DIRS})
include_directories(${HDF5_INCLUDE_DIRS})
endif()
@ -700,6 +910,7 @@ if(PKG_USER-OMP)
set(USER-OMP_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-OMP)
set(USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/thr_data.cpp
${USER-OMP_SOURCES_DIR}/thr_omp.cpp
${USER-OMP_SOURCES_DIR}/fix_omp.cpp
${USER-OMP_SOURCES_DIR}/fix_nh_omp.cpp
${USER-OMP_SOURCES_DIR}/fix_nh_sphere_omp.cpp
${USER-OMP_SOURCES_DIR}/domain_omp.cpp)
@ -708,7 +919,7 @@ if(PKG_USER-OMP)
# detects styles which have USER-OMP version
RegisterStylesExt(${USER-OMP_SOURCES_DIR} omp OMP_SOURCES)
RegisterFixStyle("${USER-OMP_SOURCES_DIR}/fix_omp.h")
get_property(USER-OMP_SOURCES GLOBAL PROPERTY OMP_SOURCES)
@ -738,6 +949,20 @@ if(PKG_USER-OMP)
include_directories(${USER-OMP_SOURCES_DIR})
endif()
# Fix rigid/meso requires RIGID to be installed
if(PKG_USER-SDPD)
set(USER-SDPD_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-SDPD)
get_property(hlist GLOBAL PROPERTY FIX)
if(NOT PKG_RIGID)
list(REMOVE_ITEM hlist ${USER-SDPD_SOURCES_DIR}/fix_rigid_meso.h)
list(REMOVE_ITEM LIB_SOURCES ${USER-SDPD_SOURCES_DIR}/fix_rigid_meso.cpp)
endif()
set_property(GLOBAL PROPERTY FIX "${hlist}")
include_directories(${USER-SDPD_SOURCES_DIR})
endif()
if(PKG_KOKKOS)
set(LAMMPS_LIB_KOKKOS_SRC_DIR ${LAMMPS_LIB_SOURCE_DIR}/kokkos)
set(LAMMPS_LIB_KOKKOS_BIN_DIR ${LAMMPS_LIB_BINARY_DIR}/kokkos)
@ -815,7 +1040,7 @@ if(PKG_USER-INTEL)
endif()
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16)
message(FATAL_ERROR "USER-INTEL is needed at least 2016 intel compiler, found ${CMAKE_CXX_COMPILER_VERSION}")
message(FATAL_ERROR "USER-INTEL needs at least a 2016 intel compiler, found ${CMAKE_CXX_COMPILER_VERSION}")
endif()
if(NOT BUILD_OMP)
@ -880,7 +1105,7 @@ if(PKG_USER-INTEL)
endif()
if(PKG_GPU)
if (CMAKE_VERSION VERSION_LESS "3.1")
if (CMAKE_VERSION VERSION_LESS "3.1")
message(FATAL_ERROR "For the GPU package you need at least cmake-3.1")
endif()
set(GPU_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/GPU)
@ -908,35 +1133,63 @@ if(PKG_GPU)
set(GPU_PREC_SETTING "SINGLE_SINGLE")
endif()
file(GLOB GPU_LIB_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cpp)
file(GLOB GPU_LIB_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cpp)
file(MAKE_DIRECTORY ${LAMMPS_LIB_BINARY_DIR}/gpu)
if(GPU_API STREQUAL "CUDA")
find_package(CUDA REQUIRED)
find_program(BIN2C bin2c)
if(NOT BIN2C)
message(FATAL_ERROR "Couldn't find bin2c, use -DBIN2C helping cmake to find it.")
message(FATAL_ERROR "Could not find bin2c, use -DBIN2C=/path/to/bin2c to help cmake finding it.")
endif()
option(CUDPP_OPT "Enable CUDPP_OPT" ON)
set(GPU_ARCH "sm_30" CACHE STRING "LAMMPS GPU CUDA SM architecture (e.g. sm_60)")
set(GPU_ARCH "sm_30" CACHE STRING "LAMMPS GPU CUDA SM primary architecture (e.g. sm_60)")
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/*.cu)
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/[^.]*.cu)
list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_pppm.cu)
cuda_include_directories(${LAMMPS_LIB_SOURCE_DIR}/gpu ${LAMMPS_LIB_BINARY_DIR}/gpu)
if(CUDPP_OPT)
cuda_include_directories(${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini)
file(GLOB GPU_LIB_CUDPP_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/*.cpp)
file(GLOB GPU_LIB_CUDPP_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/*.cu)
file(GLOB GPU_LIB_CUDPP_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/[^.]*.cpp)
file(GLOB GPU_LIB_CUDPP_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/[^.]*.cu)
endif()
cuda_compile_cubin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS
-DUNIX -O3 -Xptxas -v --use_fast_math -DNV_KERNEL -DUCL_CUDADR -arch=${GPU_ARCH} -D_${GPU_PREC_SETTING})
# build arch/gencode commands for nvcc based on CUDA toolkit version and use choice
# --arch translates directly instead of JIT, so this should be for the preferred or most common architecture
set(GPU_CUDA_GENCODE "-arch=${GPU_ARCH} ")
# Fermi (GPU Arch 2.x) is supported by CUDA 3.2 to CUDA 8.0
if((CUDA_VERSION VERSION_GREATER "3.1") AND (CUDA_VERSION VERSION_LESS "9.0"))
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_20,code=[sm_20,compute_20] ")
endif()
# Kepler (GPU Arch 3.x) is supported by CUDA 5 and later
if(CUDA_VERSION VERSION_GREATER "4.9")
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_30,code=[sm_30,compute_30] -gencode arch=compute_35,code=[sm_35,compute_35] ")
endif()
# Maxwell (GPU Arch 5.x) is supported by CUDA 6 and later
if(CUDA_VERSION VERSION_GREATER "5.9")
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52] ")
endif()
# Pascal (GPU Arch 6.x) is supported by CUDA 8 and later
if(CUDA_VERSION VERSION_GREATER "7.9")
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_60,code=[sm_60,compute_60] -gencode arch=compute_61,code=[sm_61,compute_61] ")
endif()
# Volta (GPU Arch 7.0) is supported by CUDA 9 and later
if(CUDA_VERSION VERSION_GREATER "8.9")
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_70,code=[sm_70,compute_70] ")
endif()
# Turing (GPU Arch 7.5) is supported by CUDA 10 and later
if(CUDA_VERSION VERSION_GREATER "9.9")
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_75,code=[sm_75,compute_75] ")
endif()
cuda_compile(GPU_OBJS ${GPU_LIB_CUDPP_CU} OPTIONS $<$<BOOL:${BUILD_SHARED_LIBS}>:-Xcompiler=-fPIC>
-DUNIX -O3 -Xptxas -v --use_fast_math -DUCL_CUDADR -arch=${GPU_ARCH} -D_${GPU_PREC_SETTING})
cuda_compile_fatbin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS
-DUNIX -O3 --use_fast_math -Wno-deprecated-gpu-targets -DNV_KERNEL -DUCL_CUDADR ${GPU_CUDA_GENCODE} -D_${GPU_PREC_SETTING})
cuda_compile(GPU_OBJS ${GPU_LIB_CUDPP_CU} OPTIONS ${CUDA_REQUEST_PIC}
-DUNIX -O3 --use_fast_math -Wno-deprecated-gpu-targets -DUCL_CUDADR ${GPU_CUDA_GENCODE} -D_${GPU_PREC_SETTING})
foreach(CU_OBJ ${GPU_GEN_OBJS})
get_filename_component(CU_NAME ${CU_OBJ} NAME_WE)
@ -978,7 +1231,7 @@ if(PKG_GPU)
include(OpenCLUtils)
set(OCL_COMMON_HEADERS ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_preprocessor.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_aux_fun1.h)
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cu)
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu)
list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne.cu ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne_lj.cu)
foreach(GPU_KERNEL ${GPU_LIB_CU})
@ -1028,7 +1281,6 @@ set(LAMMPS_STYLE_HEADERS_DIR ${CMAKE_CURRENT_BINARY_DIR}/styles)
GenerateStyleHeaders(${LAMMPS_STYLE_HEADERS_DIR})
include_directories(${LAMMPS_SOURCE_DIR})
include_directories(${LAMMPS_STYLE_HEADERS_DIR})
######################################
@ -1085,12 +1337,12 @@ if(BUILD_EXE)
add_dependencies(lmp ${LAMMPS_DEPS})
endif()
endif()
set_target_properties(lmp PROPERTIES OUTPUT_NAME lmp${LAMMPS_MACHINE})
set_target_properties(lmp PROPERTIES OUTPUT_NAME ${LAMMPS_BINARY})
install(TARGETS lmp DESTINATION ${CMAKE_INSTALL_BINDIR})
install(FILES ${LAMMPS_DOC_DIR}/lammps.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 RENAME lmp${LAMMPS_MACHINE}.1)
install(FILES ${LAMMPS_DOC_DIR}/lammps.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 RENAME ${LAMMPS_BINARY}.1)
if(ENABLE_TESTING)
add_test(ShowHelp lmp${LAMMPS_MACHINE} -help)
add_test(ShowHelp ${LAMMPS_BINARY} -help)
endif()
endif()
@ -1105,7 +1357,7 @@ if(BUILD_DOC)
set(VIRTUALENV ${PYTHON_EXECUTABLE} -m virtualenv)
file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/*.txt)
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})
@ -1200,13 +1452,12 @@ endif()
###############################################################################
# Print package summary
###############################################################################
foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES})
foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
if(PKG_${PKG})
message(STATUS "Building package: ${PKG}")
endif()
endforeach()
string(TOUPPER "${CMAKE_BUILD_TYPE}" BTYPE)
get_directory_property(CPPFLAGS DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS)
include(FeatureSummary)
feature_summary(DESCRIPTION "The following packages have been found:" WHAT PACKAGES_FOUND)
@ -1222,14 +1473,14 @@ message(STATUS "<<< Build configuration >>>
get_property(LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES)
list (FIND LANGUAGES "Fortran" _index)
if (${_index} GREATER -1)
message(STATUS "Fortran Compiler ${CMAKE_Fortran_COMPILER}
message(STATUS "Fortran Compiler ${CMAKE_Fortran_COMPILER}
Type ${CMAKE_Fortran_COMPILER_ID}
Version ${CMAKE_Fortran_COMPILER_VERSION}
Fortran Flags ${CMAKE_Fortran_FLAGS} ${CMAKE_Fortran_FLAGS_${BTYPE}}")
endif()
list (FIND LANGUAGES "C" _index)
if (${_index} GREATER -1)
message(STATUS "C Compiler ${CMAKE_C_COMPILER}
message(STATUS "C Compiler ${CMAKE_C_COMPILER}
Type ${CMAKE_C_COMPILER_ID}
Version ${CMAKE_C_COMPILER_VERSION}
C Flags ${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${BTYPE}}")
@ -1237,7 +1488,7 @@ endif()
if(CMAKE_EXE_LINKER_FLAGS)
message(STATUS "Linker flags:
Executable ${CMAKE_EXE_LINKER_FLAGS}")
endif()
endif()
if(BUILD_SHARED_LIBS)
message(STATUS "Shared libraries ${CMAKE_SHARED_LINKER_FLAGS}")
else()

View File

@ -0,0 +1,8 @@
find_path(ZMQ_INCLUDE_DIR zmq.h)
find_library(ZMQ_LIBRARY NAMES zmq)
set(ZMQ_LIBRARIES ${ZMQ_LIBRARY})
set(ZMQ_INCLUDE_DIRS ${ZMQ_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(ZMQ DEFAULT_MSG ZMQ_LIBRARY ZMQ_INCLUDE_DIR)

View File

@ -0,0 +1,23 @@
# - Prevent in-source builds.
# https://stackoverflow.com/questions/1208681/with-cmake-how-would-you-disable-in-source-builds/
function(prevent_in_source_builds)
# make sure the user doesn't play dirty with symlinks
get_filename_component(srcdir "${CMAKE_SOURCE_DIR}" REALPATH)
get_filename_component(srcdir2 "${CMAKE_SOURCE_DIR}/.." REALPATH)
get_filename_component(srcdir3 "${CMAKE_SOURCE_DIR}/../src" REALPATH)
get_filename_component(bindir "${CMAKE_BINARY_DIR}" REALPATH)
# disallow in-source builds
if("${srcdir}" STREQUAL "${bindir}" OR "${srcdir2}" STREQUAL "${bindir}" OR "${srcdir3}" STREQUAL "${bindir}")
message(FATAL_ERROR "\
CMake must not to be run in the source directory. \
Rather create a dedicated build directory and run CMake there. \
To clean up after this aborted in-place compilation:
rm -r CMakeCache.txt CMakeFiles
")
endif()
endfunction()
prevent_in_source_builds()

View File

@ -85,19 +85,23 @@ function(RegisterNPairStyle path)
AddStyleHeader(${path} NPAIR)
endfunction(RegisterNPairStyle)
function(RegisterFixStyle path)
AddStyleHeader(${path} FIX)
endfunction(RegisterFixStyle)
function(RegisterStyles search_path)
FindStyleHeaders(${search_path} ANGLE_CLASS angle_ ANGLE ) # angle ) # force
FindStyleHeaders(${search_path} ATOM_CLASS atom_vec_ ATOM_VEC ) # atom ) # atom atom_vec_hybrid
FindStyleHeaders(${search_path} BODY_CLASS body_ BODY ) # body ) # atom_vec_body
FindStyleHeaders(${search_path} BOND_CLASS bond_ BOND ) # bond ) # force
FindStyleHeaders(${search_path} COMMAND_CLASS "" COMMAND ) # command ) # input
FindStyleHeaders(${search_path} COMMAND_CLASS "[^.]" COMMAND ) # command ) # input
FindStyleHeaders(${search_path} COMPUTE_CLASS compute_ COMPUTE ) # compute ) # modify
FindStyleHeaders(${search_path} DIHEDRAL_CLASS dihedral_ DIHEDRAL ) # dihedral ) # force
FindStyleHeaders(${search_path} DUMP_CLASS dump_ DUMP ) # dump ) # output write_dump
FindStyleHeaders(${search_path} FIX_CLASS fix_ FIX ) # fix ) # modify
FindStyleHeaders(${search_path} IMPROPER_CLASS improper_ IMPROPER ) # improper ) # force
FindStyleHeaders(${search_path} INTEGRATE_CLASS "" INTEGRATE ) # integrate ) # update
FindStyleHeaders(${search_path} KSPACE_CLASS "" KSPACE ) # kspace ) # force
FindStyleHeaders(${search_path} INTEGRATE_CLASS "[^.]" INTEGRATE ) # integrate ) # update
FindStyleHeaders(${search_path} KSPACE_CLASS "[^.]" KSPACE ) # kspace ) # force
FindStyleHeaders(${search_path} MINIMIZE_CLASS min_ MINIMIZE ) # minimize ) # update
FindStyleHeaders(${search_path} NBIN_CLASS nbin_ NBIN ) # nbin ) # neighbor
FindStyleHeaders(${search_path} NPAIR_CLASS npair_ NPAIR ) # npair ) # neighbor

View File

@ -195,6 +195,7 @@ cmake -C ../cmake/presets/std_nolib.cmake -D PKG_GPU=on ../cmake
<td><code>CMAKE_INSTALL_PREFIX</code></td>
<td>Install location where LAMMPS files will be copied to. In the Unix/Linux case with Makefiles this controls what `make install` will do.</td>
<td>
Default setting is <code>$HOME/.local</code>.
</td>
</tr>
<tr>
@ -1492,6 +1493,11 @@ target API.
</dl>
</td>
</tr>
<tr>
<td><code>BIN2C</code> (CUDA only)</td>
<td>Path to bin2c executable, will automatically pick up the first one in your $PATH.</td>
<td>(automatic)</td>
</tr>
</tbody>
</table>
@ -1647,9 +1653,8 @@ requires `gzip` to be in your `PATH`
</tr>
<tr>
<td><code>GZIP_EXECUTABLE</code></td>
<td></td>
<td>
</td>
<td>Path to gzip executable, will automatically pick up the first one in your $PATH.</td>
<td>(automatic)</td>
</tr>
</tbody>
</table>
@ -1679,9 +1684,8 @@ requires `ffmpeg` to be in your `PATH`
</tr>
<tr>
<td><code>FFMPEG_EXECUTABLE</code></td>
<td></td>
<td>
</td>
<td>Path to ffmpeg executable, will automatically pick up the first one in your $PATH.</td>
<td>(automatic)</td>
</tr>
</tbody>
</table>

View File

@ -1,9 +1,29 @@
# pkg-config file for lammps
# https://people.freedesktop.org/~dbn/pkg-config-guide.html
# Usage: cc `pkg-config --cflags --libs liblammps` -o myapp myapp.c
# after you added @CMAKE_INSTALL_FULL_LIBDIR@/pkg-config to PKG_CONFIG_PATH,
# Add the directory where lammps.pc got installed to your PKG_CONFIG_PATH
# e.g. export PKG_CONFIG_PATH=@CMAKE_INSTALL_FULL_LIBDIR@/pkgconfig
# Use this on commandline with:
# c++ `pkg-config --cflags --libs lammps` -o myapp myapp.cpp
# Use this in a Makefile:
# myapp: myapp.cpp
# $(CC) `pkg-config --cflags --libs lammps` -o $@ $<
# Use this in autotools:
# configure.ac:
# PKG_CHECK_MODULES([LAMMPS], [lammps])
# Makefile.am:
# myapp_CFLAGS = $(LAMMPS_CFLAGS)
# myapp_LDADD = $(LAMMPS_LIBS)
# Use this in CMake:
# CMakeLists.txt:
# find_package(PkgConfig)
# pkg_check_modules(LAMMPS IMPORTED_TARGET lammps)
# target_link_libraries(<lib> PkgConfig::LAMMPS)
prefix=@CMAKE_INSTALL_PREFIX@
libdir=@CMAKE_INSTALL_FULL_LIBDIR@
includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
@ -11,7 +31,7 @@ includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
Name: liblammps@LAMMPS_MACHINE@
Description: Large-scale Atomic/Molecular Massively Parallel Simulator Library
URL: http://lammps.sandia.gov
Version:
Version: @LAMMPS_VERSION@
Requires:
Libs: -L${libdir} -llammps@LAMMPS_LIB_SUFFIX@
Libs.private: -lm

View File

@ -8,12 +8,12 @@ set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVA
USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB
USER-QUIP USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY
USER-QUIP USER-REAXC USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY
USER-UEF USER-VTK)
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI
USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE
USER-NETCDF USER-QMMM USER-QUIP USER-SMD USER-VTK)
USER-NETCDF USER-PLUMED USER-QMMM USER-QUIP USER-SMD USER-VTK)
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})

View File

@ -8,12 +8,12 @@ set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVA
USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB
USER-QUIP USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY
USER-QUIP USER-REAXC USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY
USER-UEF USER-VTK)
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI
USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE
USER-NETCDF USER-QMMM USER-QUIP USER-SMD USER-VTK)
USER-NETCDF USER-PLUMED USER-QMMM USER-QUIP USER-SMD USER-VTK)
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})

View File

@ -56,11 +56,13 @@ set(PKG_USER-MOFFF OFF CACHE BOOL "" FORCE)
set(PKG_USER-MOLFILE OFF CACHE BOOL "" FORCE)
set(PKG_USER-NETCDF OFF CACHE BOOL "" FORCE)
set(PKG_USER-OMP OFF CACHE BOOL "" FORCE)
set(PKG_USER-PHOFFOFF OFF CACHE BOOL "" FORCE)
set(PKG_USER-PHONON OFF CACHE BOOL "" FORCE)
set(PKG_USER-PLUMED OFF CACHE BOOL "" FORCE)
set(PKG_USER-QMMM OFF CACHE BOOL "" FORCE)
set(PKG_USER-QTB OFF CACHE BOOL "" FORCE)
set(PKG_USER-QUIP OFF CACHE BOOL "" FORCE)
set(PKG_USER-REAXC OFF CACHE BOOL "" FORCE)
set(PKG_USER-SDPD OFF CACHE BOOL "" FORCE)
set(PKG_USER-SMD OFF CACHE BOOL "" FORCE)
set(PKG_USER-SMTBQ OFF CACHE BOOL "" FORCE)
set(PKG_USER-SPH OFF CACHE BOOL "" FORCE)

View File

@ -8,12 +8,12 @@ set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVA
USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB
USER-QUIP USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY
USER-QUIP USER-REAXC USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY
USER-UEF USER-VTK)
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI
USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE
USER-NETCDF USER-QMMM USER-QUIP USER-SMD USER-VTK)
USER-NETCDF USER-PLUMED USER-QMMM USER-QUIP USER-SMD USER-VTK)
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})

View File

@ -8,7 +8,7 @@ set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVA
USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB
USER-QUIP USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY
USER-QUIP USER-REAXC USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY
USER-UEF USER-VTK)
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI

View File

@ -8,7 +8,7 @@ set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVA
USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB
USER-QUIP USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY
USER-QUIP USER-REAXC USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY
USER-UEF USER-VTK)
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI

View File

@ -8,12 +8,12 @@ set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVA
USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB
USER-QUIP USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY
USER-QUIP USER-REAXC USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY
USER-UEF USER-VTK)
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI
USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE
USER-NETCDF USER-QMMM USER-QUIP USER-SMD USER-VTK)
USER-NETCDF USER-PLUMED USER-QMMM USER-QUIP USER-SMD USER-VTK)
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})

View File

@ -38,7 +38,7 @@ OBJECTS=$(SOURCES:src/%.txt=$(RSTDIR)/%.rst)
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html create HTML doc pages in html dir"
@echo " pdf create Manual.pdf and Developer.pdf in this dir"
@echo " pdf create Developer.pdf and Manual.pdf in this dir"
@echo " old create old-style HTML doc pages in old dir"
@echo " fetch fetch HTML and PDF files from LAMMPS web site"
@echo " epub create ePUB format manual for e-book readers"
@ -95,9 +95,10 @@ spelling: $(OBJECTS) utils/sphinx-config/false_positives.txt
@echo "Spell check finished."
epub: $(OBJECTS)
@mkdir -p epub
@mkdir -p epub/JPG
@rm -f LAMMPS.epub
@cp src/JPG/lammps-logo.png epub/
@cp src/JPG/*.* epub/JPG
@(\
. $(VENV)/bin/activate ;\
cp -r src/* $(RSTDIR)/ ;\
@ -116,17 +117,17 @@ mobi: epub
pdf: utils/txt2html/txt2html.exe
@(\
set -e; \
cd src; \
../utils/txt2html/txt2html.exe -b *.txt; \
htmldoc --batch lammps.book; \
for s in `echo *.txt | sed -e 's,\.txt,\.html,g'` ; \
do grep -q $$s lammps.book || \
echo doc file $$s missing in src/lammps.book; done; \
rm *.html; \
cd Developer; \
cd src/Developer; \
pdflatex developer; \
pdflatex developer; \
mv developer.pdf ../../Developer.pdf; \
cd ..; \
../utils/txt2html/txt2html.exe -b *.txt; \
htmldoc --batch lammps.book; \
for s in `echo *.txt | sed -e 's/ \(pairs\|bonds\|angles\|dihedrals\|impropers\|commands_list\|fixes\|computes\).txt/ /g' | sed -e 's,\.txt,\.html,g'` ; \
do grep -q ^$$s lammps.book || \
echo WARNING: doc file $$s missing in src/lammps.book; done; \
rm *.html; \
)
old: utils/txt2html/txt2html.exe
@ -175,7 +176,6 @@ $(VENV):
$(VIRTUALENV) -p $(PYTHON) $(VENV); \
. $(VENV)/bin/activate; \
pip install Sphinx; \
pip install sphinxcontrib-images; \
deactivate;\
)

View File

@ -0,0 +1,192 @@
# Outline of the GitHub Development Workflow
This purpose of this document is to provide a point of reference for the
core LAMMPS developers and other LAMMPS contributors to understand the
choices the LAMMPS developers have agreed on. Git and GitHub provide the
tools, but do not set policies, so it is up to the developers to come to
an agreement as to how to define and interpret policies. This document
is likely to change as our experiences and needs change and we try to
adapt accordingly. Last change 2018-11-15.
## Table of Contents
* [GitHub Merge Management](#github-merge-management)
* [Pull Requests](#pull-requests)
* [Pull Request Assignments](#pull-request-assignments)
* [Pull Request Reviews](#pull-request-reviews)
* [Pull Request Discussions](#pull-request-discussions)
* [Checklist for Pull Requests](#checklist-for-pull-requests)
* [GitHub Issues](#github-issues)
* [Milestones and Release Planning](#milestones-and-release-planning)
## GitHub Merge Management
In the interest of consistency, ONLY ONE of the core LAMMPS developers
should doing the merging itself. This is currently
[@akohlmey](https://github.com/akohlmey) (Axel Kohlmeyer).
If this assignment needs to be changed, it shall be done right after a
stable release. If the currently assigned developer cannot merge outstanding pull
requests in a timely manner, or in other extenuating circumstances,
other core LAMMPS developers with merge rights can merge pull requests,
when necessary.
## Pull Requests
ALL changes to the LAMMPS code and documentation, however trivial, MUST
be submitted as a pull request to GitHub. All changes to the "master"
branch must be made exclusively through merging pull requests. The
"unstable" and "stable" branches, respectively are only to be updated
upon patch or stable releases with fast-forward merges based on the
associated tags. Pull requests may also be submitted to (long-running)
feature branches created by LAMMPS developers inside the LAMMPS project,
if needed. Those are not subject to the merge and review restrictions
discussed in this document, though, but get managed as needed on a
case-by-case basis.
### Pull Request Assignments
Pull requests can be "chaperoned" by one of the LAMMPS core developers.
This is indicated by who the pull request is assigned to. LAMMPS core
developers can self-assign or they can decide to assign a pull request
to a different LAMMPS developer. Being assigned to a pull request means,
that this pull request may need some work and the assignee is tasked to
determine what this might be needed or not, and may either implement the
required changes or ask the submitter of the pull request to implement
them. Even though, all LAMMPS developers may have write access to pull
requests (if enabled by the submitter, which is the default), only the
submitter or the assignee of a pull request may do so. During this
period the `work_in_progress` label shall be applied to the pull
request. The assignee gets to decide what happens to the pull request
next, e.g. whether it should be assigned to a different developer for
additional checks and changes, or is recommended to be merged. Removing
the `work_in_progress` label and assigning the pull request to the
developer tasked with merging signals that a pull request is ready to be
merged.
### Pull Request Reviews
People can be assigned to review a pull request in two ways:
* They can be assigned manually to review a pull request
by the submitter or a LAMMPS developer
* They can be automatically assigned, because a developers matches
a file pattern in the `.github/CODEOWNERS` file, which associates
developers with the code they contributed and maintain.
Reviewers are requested to state their appraisal of the proposed changes
and either approve or request changes. People may unassign themselves
from review, if they feel not competent about the changes proposed. At
least one review from a LAMMPS developer with write access is required
before merging in addition to the automated compilation tests. The
feature, that reviews from code owners are "hard" reviews (i.e. they
must all be approved before merging is allowed), is currently disabled
and it is in the discretion of the merge maintainer to assess when
a sufficient degree of approval has been reached. Reviews may be
(automatically) dismissed, when the reviewed code has been changed,
and then approval is required a second time.
### Pull Request Discussions
All discussions about a pull request should be kept as much as possible
on the pull request discussion page on GitHub, so that other developers
can later review the entire discussion after the fact and understand the
rationale behind choices made. Exceptions to this policy are technical
discussions, that are centered on tools or policies themselves
(git, github, c++) rather than on the content of the pull request.
### Checklist for Pull Requests
Here are some items to check:
* source and text files should not have CR/LF line endings (use dos2unix to remove)
* every new command or style should have documentation. The names of
source files (c++ and manual) should follow the name of the style.
(example: `src/fix_nve.cpp`, `src/fix_nve.h` for `fix nve` command,
implementing the class `FixNVE`, documented in `doc/src/fix_nve.txt`)
* all new style names should be lower case, the must be no dashes,
blanks, or underscores separating words, only forward slashes.
* new style docs should be added to the "overview" files in
`doc/src/Commands_*.txt`, `doc/src/{fixes,computes,pairs,bonds,...}.txt`
and `doc/src/lammps.book`
* check whether manual cleanly translates with `make html` and `make pdf`
* check spelling of manual with `make spelling` in doc folder
* new source files in packages should be added to `src/.gitignore`
* removed or renamed files in packages should be added to `src/Purge.list`
* C++ source files should use C++ style include files for accessing
C-library APIs, e.g. `#include <cstdlib>` instead of `#include <stdlib.h>`.
And they should use angular brackets instead of double quotes. Full list:
* assert.h -> cassert
* ctype.h -> cctype
* errno.h -> cerrno
* float.h -> cfloat
* limits.h -> climits
* math.h -> cmath
* omplex.h -> complex
* setjmp.h -> csetjmp
* signal.h -> csignal
* stddef.h -> cstddef
* stdint.h -> cstdint
* stdio.h -> cstdio
* stdlib.h -> cstdlib
* string.h -> cstring
* time.h -> ctime
Do not replace (as they are C++-11): `inttypes.h` and `stdint.h`.
* Code should follow the C++-98 standard. C++-11 is only accepted
in individual special purpose packages
* indentation is two spaces per level
* there should be no tabs and no trailing whitespace
* header files, especially of new styles, should not include any
other headers, except the header with the base class or cstdio.
Forward declarations should be used instead when possible.
* iostreams should be avoided. LAMMPS uses stdio from the C-library.
* use of STL in headers and class definitions should be avoided.
* static class members should be avoided at all cost.
* anything storing atom IDs should be using `tagint` and not `int`.
This can be flagged by the compiler only for pointers and only when
compiling LAMMPS with `-DLAMMPS_BIGBIG`.
* when including both `lmptype.h` (and using defines or macros from it)
and `mpi.h`, `lmptype.h` must be included first.
* when pair styles are added, check if settings for flags like
`single_enable`, `writedata`, `reinitflag`, `manybody_flag`
and others are correctly set and supported.
## GitHub Issues
The GitHub issue tracker is the location where the LAMMPS developers
and other contributors or LAMMPS users can report issues or bugs with
the LAMMPS code or request new features to be added. Feature requests
are usually indicated by a `[Feature Request]` marker in the subject.
Issues are assigned to a person, if this person is working on this
feature or working to resolve an issue. Issues that have nobody working
on them at the moment, have the label `volunteer needed` attached.
When an issue, say `#125` is resolved by a specific pull request,
the comment for the pull request shall contain the text `closes #125`
or `fixes #125`, so that the issue is automatically deleted when
the pull request is merged.
## Milestones and Release Planning
LAMMPS uses a continuous release development model with incremental
changes, i.e. significant effort is made - including automated pre-merge
testing - that the code in the branch "master" does not get broken.
More extensive testing (including regression testing) is performed after
code is merged to the "master" branch. There are patch releases of
LAMMPS every 1-3 weeks at a point, when the LAMMPS developers feel, that
a sufficient amount of changes have happened, and the post-merge testing
has been successful. These patch releases are marked with a
`patch_<version date>` tag and the "unstable" branch follows only these
versions (and thus is always supposed to be of production quality,
unlike "master", which may be temporary broken, in the case of larger
change sets or unexpected incompatibilities or side effects.
About 3-4 times each year, there are going to be "stable" releases
of LAMMPS. These have seen additional, manual testing and review of
results from testing with instrumented code and static code analysis.
Also, in the last 2-3 patch releases before a stable release are
"release candidate" versions which only contain bugfixes and
documentation updates. For release planning and the information of
code contributors, issues and pull requests being actively worked on
are assigned a "milestone", which corresponds to the next stable
release or the stable release after that, with a tentative release
date.

View File

@ -49,7 +49,7 @@ make mybox :pre # uses Makefile.mybox to produce lmp_mybox :pre
Serial build (see src/MAKE/Makefile.serial):
MPI_INC = -I../STUBS
MPI_INC = -I../STUBS
MPI_PATH = -L../STUBS
MPI_LIB = -lmpi_stubs :pre
@ -137,9 +137,9 @@ simply loading the appropriate module before building LAMMPS.
-D CMAKE_C_COMPILER=name # name of C compiler
-D CMAKE_Fortran_COMPILER=name # name of Fortran compiler :pre
-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 :pre
-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 :pre
By default CMake will use a compiler it finds and it will add
optimization flags appropriate to that compiler and any "accelerator
@ -172,7 +172,7 @@ want.
Parallel build (see src/MAKE/Makefile.mpi):
CC = mpicxx
CCFLAGS = -g -O3
CCFLAGS = -g -O3
LINK = mpicxx
LINKFLAGS = -g -O :pre
@ -292,6 +292,10 @@ 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.
:line
Install LAMMPS after a build :h4,link(install)

View File

@ -27,7 +27,7 @@ make command to build LAMMPS, which uses the created
Makefile(s). Example:
cd lammps # change to the LAMMPS distribution directory
mkdir build; cd build # create a new directory (folder) for build
mkdir build; cd build # create a new directory (folder) for build
cmake ../cmake \[options ...\] # configuration with (command-line) cmake
make # compilation :pre
@ -44,7 +44,7 @@ LAMMPS or need to re-compile LAMMPS repeatedly, installation of the
ccache (= Compiler Cache) software may speed up compilation even more.
After compilation, you can optionally copy the LAMMPS executable and
library into your system folders (by default under /usr/local) with:
library into your system folders (by default under $HOME/.local) with:
make install # optional, copy LAMMPS executable & library elsewhere :pre

View File

@ -31,6 +31,7 @@ This is the list of packages that may require additional steps.
"KOKKOS"_#kokkos,
"LATTE"_#latte,
"MEAM"_#meam,
"MESSAGE"_#message,
"MSCG"_#mscg,
"OPT"_#opt,
"POEMS"_#poems,
@ -44,9 +45,11 @@ This is the list of packages that may require additional steps.
"USER-INTEL"_#user-intel,
"USER-MOLFILE"_#user-molfile,
"USER-NETCDF"_#user-netcdf,
"USER-PLUMED"_#user-plumed,
"USER-OMP"_#user-omp,
"USER-QMMM"_#user-qmmm,
"USER-QUIP"_#user-quip,
"USER-SCAFACOS"_#user-scafacos,
"USER-SMD"_#user-smd,
"USER-VTK"_#user-vtk :tb(c=6,ea=c,a=l)
@ -61,7 +64,7 @@ available on your system.
If CMake cannot find the library, you can set these variables:
-D ZLIB_INCLUDE_DIR=path # path to zlib.h header file
-D ZLIB_INCLUDE_DIR=path # path to zlib.h header file
-D ZLIB_LIBRARIES=path # path to libz.a (.so) file :pre
[Traditional make]:
@ -84,22 +87,30 @@ which GPU hardware to build for.
# value = double or mixed (default) or single
-D OCL_TUNE=value # hardware choice for GPU_API=opencl
# generic (default) or intel (Intel CPU) or fermi, kepler, cypress (NVIDIA)
-D GPU_ARCH=value # hardware choice for GPU_API=cuda
-D GPU_ARCH=value # primary GPU hardware choice for GPU_API=cuda
# value = sm_XX, see below
# default is Cuda-compiler dependent, but typically sm_20
-D CUDPP_OPT=value # optimization setting for GPU_API=cudea
-D CUDPP_OPT=value # optimization setting for GPU_API=cuda
# enables CUDA Performance Primitives Optimizations
# yes (default) or no :pre
GPU_ARCH settings for different GPU hardware is as follows:
sm_20 for Fermi (C2050/C2070, deprecated as of CUDA 8.0) or GeForce GTX 580 or similar
sm_30 for Kepler (K10)
sm_35 for Kepler (K40) or GeForce GTX Titan or similar
sm_37 for Kepler (dual K80)
sm_50 for Maxwell
sm_60 for Pascal (P100)
sm_70 for Volta :ul
sm_20 or sm_21 for Fermi (supported by CUDA 3.2 until CUDA 7.5)
sm_30 or sm_35 or sm_37 for Kepler (supported since CUDA 5)
sm_50 or sm_52 for Maxwell (supported since CUDA 6)
sm_60 or sm_61 for Pascal (supported since CUDA 8)
sm_70 for Volta (supported since CUDA 9)
sm_75 for Turing (supported since CUDA 10) :ul
A more detailed list can be found, for example,
at "Wikipedia's CUDA article"_https://en.wikipedia.org/wiki/CUDA#GPUs_supported
CMake can detect which version of the CUDA toolkit is used and thus can
include support for [all] major GPU architectures supported by this toolkit.
Thus the GPU_ARCH setting is merely an optimization, to have code for
the preferred GPU architecture directly included rather than having to wait
for the JIT compiler of the CUDA driver to translate it.
[Traditional make]:
@ -134,6 +145,11 @@ CUDA_ARCH = sm_XX, what GPU hardware you have, same as CMake GPU_ARCH above
CUDA_PRECISION = precision (double, mixed, single)
EXTRAMAKE = which Makefile.lammps.* file to copy to Makefile.lammps :ul
The file Makefile.linux_multi is set up to include support for multiple
GPU architectures as supported by the CUDA toolkit in use. This is done
through using the "--gencode " flag, which can be used multiple times and
thus support all GPU architectures supported by your CUDA compiler.
If the library build is successful, 3 files should be created:
lib/gpu/libgpu.a, lib/gpu/nvc_get_devices, and
lib/gpu/Makefile.lammps. The latter has settings that enable LAMMPS
@ -147,8 +163,9 @@ re-build LAMMPS. This is because the compilation of files in the GPU
package uses the library settings from the lib/gpu/Makefile.machine
used to build the GPU library.
:line
KIM package :h4,link(kim)
To build with this package, the KIM library must be downloaded and
@ -175,7 +192,7 @@ package?" page.
[CMake build]:
-D DOWNLOAD_KIM=value # download OpenKIM API v1 for build, value = no (default) or yes
-D KIM_LIBRARY=path # KIM library file (only needed if a custom location)
-D KIM_LIBRARY=path # KIM library file (only needed if a custom location)
-D KIM_INCLUDE_DIR=path # KIM include directory (only needed if a custom location) :pre
If DOWNLOAD_KIM is set, the KIM library will be downloaded and built
@ -252,7 +269,7 @@ For NVIDIA GPUs using CUDA, set these 4 variables:
-D KOKKOS_ARCH="archCPU;archGPU" # archCPU = CPU from list above that is hosting the GPU
# archGPU = GPU from list above
-D KOKKOS_ENABLE_CUDA=yes
-D KOKKOS_ENABLE_OPENMP=yes
-D KOKKOS_ENABLE_OPENMP=yes
-D CMAKE_CXX_COMPILER=wrapper # wrapper = full path to Cuda nvcc wrapper :pre
The wrapper value is the Cuda nvcc compiler wrapper provided in the
@ -294,7 +311,7 @@ export OMPI_CXX = $(KOKKOS_ABSOLUTE_PATH)/config/nvcc_wrapper
CC = mpicxx :pre
:line
LATTE package :h4,link(latte)
To build with this package, you must download and build the LATTE
@ -322,7 +339,7 @@ args:
make lib-latte # print help message
make lib-latte args="-b" # download and build in lib/latte/LATTE-master
make lib-latte args="-p $HOME/latte" # use existing LATTE installation in $HOME/latte
make lib-latte args="-b -m gfortran" # download and build in lib/latte and
make lib-latte args="-b -m gfortran" # download and build in lib/latte and
# copy Makefile.lammps.gfortran to Makefile.lammps
:pre
@ -333,7 +350,7 @@ also check that the Makefile.lammps file you create is appropriate for
the compiler you use on your system to build LATTE.
:line
MEAM package :h4,link(meam)
NOTE: the use of the MEAM package is discouraged, as it has been
@ -361,6 +378,10 @@ make lib-meam args="-m mpi" # build with default Fortran compiler compatible
make lib-meam args="-m serial" # build with compiler compatible with "make serial" (GNU Fortran)
make lib-meam args="-m ifort" # build with Intel Fortran compiler using Makefile.ifort :pre
NOTE: You should test building the MEAM library with both the Intel
and GNU compilers to see if a simulation runs faster with one versus
the other on your system.
The build should produce two files: lib/meam/libmeam.a and
lib/meam/Makefile.lammps. The latter is copied from an existing
Makefile.lammps.* and has settings needed to link C++ (LAMMPS) with
@ -372,7 +393,36 @@ EXTRAMAKE variable to specify a corresponding Makefile.lammps.machine
file.
:line
MESSAGE package :h4,link(message)
This package can optionally include support for messaging via sockets,
using the open-source "ZeroMQ library"_http://zeromq.org, which must
be installed on your system.
[CMake build]:
-D MESSAGE_ZMQ=value # build with ZeroMQ support, value = no (default) or yes
[Traditional make]:
Before building LAMMPS, you must build the CSlib library in
lib/message. You can build the CSlib library manually if you prefer;
follow the instructions in lib/message/README. You can also do it in
one step from the lammps/src dir, using a command like these, which
simply invoke the lib/message/Install.py script with the specified args:
make lib-message # print help message
make lib-message args="-m -z" # build with MPI and socket (ZMQ) support
make lib-message args="-s" # build as serial lib with no ZMQ support
The build should produce two files: lib/message/cslib/src/libmessage.a
and lib/message/Makefile.lammps. The latter is copied from an
existing Makefile.lammps.* and has settings to link with the ZeroMQ
library if requested in the build.
:line
MSCG package :h4,link(mscg)
To build with this package, you must download and build the MS-CG
@ -384,7 +434,7 @@ lib/mscg/README and MSCG/Install files for more details.
[CMake build]:
-D DOWNLOAD_MSCG=value # download MSCG for build, value = no (default) or yes
-D MSCG_LIBRARY=path # MSCG library file (only needed if a custom location)
-D MSCG_LIBRARY=path # MSCG library file (only needed if a custom location)
-D MSCG_INCLUDE_DIR=path # MSCG include directory (only needed if a custom location) :pre
If DOWNLOAD_MSCG is set, the MSCG library will be downloaded and built
@ -429,7 +479,7 @@ line of your Makefile.machine. See src/MAKE/OPTIONS/Makefile.opt for
an example.
:line
POEMS package :h4,link(poems)
[CMake build]:
@ -458,7 +508,7 @@ for your system, which should define an EXTRAMAKE variable to specify
a corresponding Makefile.lammps.machine file.
:line
PYTHON package :h4,link(python)
Building with the PYTHON package requires you have a Python shared
@ -485,7 +535,7 @@ Makefile.lammps.* file (and copy it to Makefile.lammps) if the LAMMPS
build fails.
:line
REAX package :h4,link(reax)
NOTE: the use of the REAX package and its "pair_style
@ -528,14 +578,14 @@ file.
VORONOI package :h4,link(voronoi)
To build with this package, you must download and build the "Voro++
library"_voro_home.
library"_voro-home.
:link(voro_home,http://math.lbl.gov/voro++)
:link(voro-home,http://math.lbl.gov/voro++)
[CMake build]:
-D DOWNLOAD_VORO=value # download Voro++ for build, value = no (default) or yes
-D VORO_LIBRARY=path # Voro++ library file (only needed if at custom location)
-D VORO_LIBRARY=path # Voro++ library file (only needed if at custom location)
-D VORO_INCLUDE_DIR=path # Voro++ include directory (only needed if at custom location) :pre
If DOWNLOAD_VORO is set, the Voro++ library will be downloaded and
@ -677,6 +727,103 @@ a corresponding Makefile.lammps.machine file.
:line
USER-PLUMED package :h4,link(user-plumed)
Before building LAMMPS with this package, you must first build PLUMED.
PLUMED can be built as part of the LAMMPS build or installed separately
from LAMMPS using the generic "plumed installation instructions"_plumedinstall.
:link(plumedinstall,http://plumed.github.io/doc-master/user-doc/html/_installation.html)
PLUMED can be linked into MD codes in three different modes: static,
shared, and runtime. With the "static" mode, all required PLUMED code
is linked statically into the MD code. The MD code is then fully
independent from the PLUMED installation, but also you have to
rebuild/relink the MD code to update the PLUMED code inside it. With
"shared" linkage mode, the MD code is linked to a shared library
containing the PLUMED code, preferably after it was installed in a
globally accessible location. This way the same installed PLUMED code
can be shared across multiple MD packages and can be updated, for as
long as the shared PLUMED library is ABI-compatible. The third linkage
mode is "runtime" which allows to switch the PLUMED kernel at runtime
between different variants through setting the PLUMED_KERNEL environment
variable, which has to point to the location of the libplumedKernel.so
dynamical shared object, which is then loaded at runtime. This is
particularly convenient for doing PLUMED development and comparing
multiple PLUMED versions without having to recompile the hosting MD
code. All three linkage modes are supported by LAMMPS on selected
operating systems (e.g. Linux) and using either CMake or traditional
make build. The "static" mode should be most portable, the "runtime"
mode support in LAMMPS makes the most assumptions about operating
system and compiler environment. If one mode does not work, try a
different one, or switch to a different build system, or consider
a global PLUMED installation or downloading it during building LAMMPS.
[CMake build]:
-D DOWNLOAD_PLUMED=value # download PLUMED for build, value = no (default) or yes
-D PLUMED_MODE=value # Linkage mode for PLUMED, value = static (default), shared, or runtime :pre
If DOWNLOAD_PLUMED is set to "yes", the PLUMED library will be
downloaded (the version of that is hard-coded to a vetted version of
PLUMED, usually a recent stable release version) and built inside the
CMake build directory. If DOWNLOAD_PLUMED is set to "no" (the default),
CMake will try to detect an installed version of PLUMED and link to
that. For this to work, the PLUMED library has to be installed into a
location where the pkg-config tool can find it or the PKG_CONFIG_PATH
environment variable has to be set up accordingly.
The PLUMED_MODE setting determines the linkage mode of the PLUMED
library. Allowed values are "static" (default), "shared", or "runtime".
For a discussion of PLUMED linkage modes, please see above. When
enabling DOWNLOAD_PLUMED, the static linkage mode is recommended.
[Traditional make]:
Before installing the USER-PLUMED package, first the PLUMED library
needs to be configured so that LAMMPS can find the right settings when
compiling and linking the LAMMPS executable itself. You can either
download and build PLUMED inside the LAMMPS plumed library folder or use
a previously installed PLUMED library and point LAMMPS to its
location. You also have to choose the linkage mode: "static" (default),
"shared" or "runtime". For a discussion of PLUMED linkage modes, please
see above.
Download/compilation/configuration of the plumed library can be done
from the src folder through the following make args:
make lib-plumed # print help message
make lib-plumed args="-b" # download and build PLUMED in lib/plumed/plumed2
make lib-plumed args="-p $HOME/.local" # use existing PLUMED installation in $HOME/.local
make lib-plumed args="-p /usr/local -m shared" # use existing PLUMED installation in
# /usr/local and use shared linkage mode
:pre
Note that 2 symbolic (soft) links, "includelink" and "liblink" are
created in lib/plumed to point into the location of the PLUMED build to
use and also a new file lib/plumed/Makefile.lammps is created with
settings suitable for LAMMPS to compile and link PLUMED in the desired
linkage mode. After this step is completed, you can install the
USER-PLUMED package and compile LAMMPS in the usual manner:
make yes-user-plumed
make machine :pre
Once this compilation completes you should be able to run LAMMPS in the
usual way. For shared linkage mode, libplumed.so must be found by the
LAMMPS executable, which on many operating systems means, you have to
set the LD_LIBRARY_PATH environment variable accordingly.
Support for the different linkage modes in LAMMPS varies for different
operating systems, using the static linkage is expected to be the most
portable, and thus set to be the default.
If you want to change the linkage mode, you have to re-run "make
lib-plumed" with the desired settings [and] do a re-install if the
USER-PLUMED package with "make yes-user-plumed" to update the required
makefile settings with the changes in the lib/plumed folder.
:line
USER-H5MD package :h4,link(user-h5md)
To build with this package you must have the HDF5 software package
@ -834,7 +981,7 @@ Quantum ESPRESSO known to work with this QM/MM interface was version
[CMake build]:
The CMake build system currently does not support building the full
QM/MM-capable hybrid executable of LAMMPS and QE called pwqmmm.x.
QM/MM-capable hybrid executable of LAMMPS and QE called pwqmmm.x.
You must use the traditional make build for this package.
[Traditional make]:
@ -894,6 +1041,45 @@ successfully build on your system.
:line
USER-SCAFACOS package :h4,link(user-scafacos)
To build with this package, you must download and build the "ScaFaCoS
Coulomb solver library"_scafacos-home
:link(scafacos-home,http://www.scafacos.de)
[CMake build]:
-D DOWNLOAD_SCAFACOS=value # download ScaFaCoS for build, value = no (default) or yes
-D SCAFACOS_LIBRARY=path # ScaFaCos library file (only needed if at custom location)
-D SCAFACOS_INCLUDE_DIR=path # ScaFaCoS include directory (only needed if at custom location) :pre
If DOWNLOAD_SCAFACOS is set, the ScaFaCoS library will be downloaded
and built inside the CMake build directory. If the ScaFaCoS library
is already on your system (in a location CMake cannot find it),
SCAFACOS_LIBRARY is the filename (plus path) of the ScaFaCoS library
file, not the directory the library file is in. SCAFACOS_INCLUDE_DIR
is the directory the ScaFaCoS include file is in.
[Traditional make]:
You can download and build the ScaFaCoS library manually if you
prefer; follow the instructions in lib/scafacos/README. You can also
do it in one step from the lammps/src dir, using a command like these,
which simply invoke the lib/scafacos/Install.py script with the
specified args:
make lib-scafacos # print help message
make lib-scafacos args="-b" # download and build in lib/scafacos/scafacos-<version>
make lib-scafacos args="-p $HOME/scafacos # use existing ScaFaCoS installation in $HOME/scafacos
Note that 2 symbolic (soft) links, "includelink" and "liblink", are
created in lib/scafacos to point to the ScaFaCoS src dir. When LAMMPS
builds in src it will use these links. You should not need to edit
the lib/scafacos/Makefile.lammps file.
:line
USER-SMD package :h4,link(user-smd)
To build with this package, you must download the Eigen3 library.

View File

@ -42,6 +42,7 @@ packages:
"KOKKOS"_Build_extras.html#kokkos,
"LATTE"_Build_extras.html#latte,
"MEAM"_Build_extras.html#meam,
"MESSAGE"_Build_extras.html#message,
"MSCG"_Build_extras.html#mscg,
"OPT"_Build_extras.html#opt,
"POEMS"_Build_extras.html#poems,
@ -55,9 +56,11 @@ packages:
"USER-INTEL"_Build_extras.html#user-intel,
"USER-MOLFILE"_Build_extras.html#user-molfile,
"USER-NETCDF"_Build_extras.html#user-netcdf,
"USER-PLUMED"_Build_extras.html#user-plumed,
"USER-OMP"_Build_extras.html#user-omp,
"USER-QMMM"_Build_extras.html#user-qmmm,
"USER-QUIP"_Build_extras.html#user-quip,
"USER-SCAFACOS"_Build_extras.html#user-scafacos,
"USER-SMD"_Build_extras.html#user-smd,
"USER-VTK"_Build_extras.html#user-vtk :tb(c=6,ea=c,a=l)

View File

@ -22,7 +22,7 @@ explain how to do this for building both with CMake and make.
"Error handling exceptions"_#exceptions when using LAMMPS as a library :all(b)
:line
FFT library :h4,link(fft)
When the KSPACE package is included in a LAMMPS build, the
@ -73,7 +73,7 @@ FFT_LIB with the appropriate FFT libraries to include in the link.
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.
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
@ -92,7 +92,7 @@ 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.
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).
@ -139,16 +139,16 @@ adequate.
[Makefile.machine setting]:
LMP_INC = -DLAMMPS_SMALLBIG # or -DLAMMPS_BIGBIG or -DLAMMPS_SMALLSMALL :pre
# default is LAMMMPS_SMALLBIG if not specified
# 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 :ul
The "bigbig" setting increases the latter two limits. It allows for:
total atom count = 2^63 atoms (about 9e18)
@ -209,12 +209,12 @@ Usually these settings are all that is needed. If CMake cannot find
the graphics header, library, executable files, you can set these
variables:
-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 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 :pre
[Makefile.machine settings]:

View File

@ -53,20 +53,20 @@ 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. The CMake build system is untested
for this; you will have to request that makefiles are generated and
manually set the compiler.
manually set the compiler.
When compiling for Windows [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
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.
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.
them as an issue or pull request on the LAMMPS GitHub project.
Using a cross-compiler :h4,link(cross)

View File

@ -42,10 +42,10 @@ END_RST -->
"Input script structure"_Commands_structure.html
"Commands by category"_Commands_category.html :all(b)
"All commands"_Commands_all.html
"Fix commands"_Commands_fix.html
"Compute commands"_Commands_compute.html
"Pair commands"_Commands_pair.html
"General commands"_Commands_all.html
"Fix commands"_Commands_fix.html
"Compute commands"_Commands_compute.html
"Pair commands"_Commands_pair.html
"Bond, angle, dihedral, improper commands"_Commands_bond.html
"KSpace solvers"_Commands_kspace.html :all(b)

View File

@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
:line
"All commands"_Commands_all.html,
"General commands"_Commands_all.html,
"Fix styles"_Commands_fix.html,
"Compute styles"_Commands_compute.html,
"Pair styles"_Commands_pair.html,
@ -17,9 +17,9 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
"Improper styles"_Commands_bond.html#improper,
"KSpace styles"_Commands_kspace.html :tb(c=3,ea=c)
All commands :h3
General commands :h3
An alphabetic list of all LAMMPS commands.
An alphabetic list of all general LAMMPS commands.
"angle_coeff"_angle_coeff.html,
"angle_style"_angle_style.html,
@ -59,6 +59,7 @@ An alphabetic list of all LAMMPS commands.
"fix_modify"_fix_modify.html,
"group"_group.html,
"group2ndx"_group2ndx.html,
"hyper"_hyper.html,
"if"_if.html,
"info"_info.html,
"improper_coeff"_improper_coeff.html,
@ -71,6 +72,7 @@ An alphabetic list of all LAMMPS commands.
"lattice"_lattice.html,
"log"_log.html,
"mass"_mass.html,
"message"_message.html,
"minimize"_minimize.html,
"min_modify"_min_modify.html,
"min_style"_min_style.html,
@ -103,6 +105,7 @@ An alphabetic list of all LAMMPS commands.
"restart"_restart.html,
"run"_run.html,
"run_style"_run_style.html,
"server"_server.html,
"set"_set.html,
"shell"_shell.html,
"special_bonds"_special_bonds.html,

View File

@ -5,7 +5,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
:link(ld,Manual.html)
:link(lc,Commands_all.html)
"All commands"_Commands_all.html,
"General commands"_Commands_all.html,
"Fix styles"_Commands_fix.html,
"Compute styles"_Commands_compute.html,
"Pair styles"_Commands_pair.html,
@ -34,7 +34,7 @@ OPT.
"fene (iko)"_bond_fene.html,
"fene/expand (o)"_bond_fene_expand.html,
"gromos (o)"_bond_gromos.html,
"harmonic (ko)"_bond_harmonic.html,
"harmonic (iko)"_bond_harmonic.html,
"harmonic/shift (o)"_bond_harmonic_shift.html,
"harmonic/shift/cut (o)"_bond_harmonic_shift_cut.html,
"morse (o)"_bond_morse.html,
@ -57,9 +57,11 @@ OPT.
"zero"_angle_zero.html,
"hybrid"_angle_hybrid.html :tb(c=3,ea=c)
"charmm (ko)"_angle_charmm.html,
"charmm (iko)"_angle_charmm.html,
"class2 (ko)"_angle_class2.html,
"class2/p6"_angle_class2.html,
"cosine (o)"_angle_cosine.html,
"cosine/buck6d"_angle_cosine_buck6d.html,
"cosine/delta (o)"_angle_cosine_delta.html,
"cosine/periodic (o)"_angle_cosine_periodic.html,
"cosine/shift (o)"_angle_cosine_shift.html,
@ -70,7 +72,7 @@ OPT.
"fourier/simple (o)"_angle_fourier_simple.html,
"harmonic (iko)"_angle_harmonic.html,
"quartic (o)"_angle_quartic.html,
"sdk"_angle_sdk.html,
"sdk (o)"_angle_sdk.html,
"table (o)"_angle_table.html :tb(c=4,ea=c)
:line
@ -97,7 +99,7 @@ OPT.
"nharmonic (o)"_dihedral_nharmonic.html,
"opls (iko)"_dihedral_opls.html,
"quadratic (o)"_dihedral_quadratic.html,
"spherical (o)"_dihedral_spherical.html,
"spherical"_dihedral_spherical.html,
"table (o)"_dihedral_table.html,
"table/cut"_dihedral_table_cut.html :tb(c=4,ea=c)
@ -112,7 +114,7 @@ OPT.
"none"_improper_none.html,
"zero"_improper_zero.html,
"hybrid"_improper_hybrid.html :tb(c=3,ea=c)
"hybrid"_improper_hybrid.html :tb(c=3,ea=c)
"class2 (ko)"_improper_class2.html,
"cossq (o)"_improper_cossq.html,
@ -120,5 +122,6 @@ OPT.
"distance"_improper_distance.html,
"fourier (o)"_improper_fourier.html,
"harmonic (iko)"_improper_harmonic.html,
"inversion/harmonic"_improper_inversion_harmonic.html,
"ring (o)"_improper_ring.html,
"umbrella (o)"_improper_umbrella.html :tb(c=4,ea=c)

View File

@ -10,10 +10,9 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
Commands by category :h3
This page lists most of the LAMMPS commands, grouped by category. The
"Commands all"_Commands_all.html doc page lists all commands
alphabetically. It also includes long lists of style options for
entries that appear in the following categories as a single command
(fix, compute, pair, etc).
"General commands"_Commands_all.html 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:

View File

@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
:line
"All commands"_Commands_all.html,
"General commands"_Commands_all.html,
"Fix styles"_Commands_fix.html,
"Compute styles"_Commands_compute.html,
"Pair styles"_Commands_pair.html,
@ -25,6 +25,7 @@ additional letters in parenthesis: g = GPU, i = USER-INTEL, k =
KOKKOS, o = USER-OMP, t = OPT.
"ackland/atom"_compute_ackland_atom.html,
"adf"_compute_adf.html,
"aggregate/atom"_compute_cluster_atom.html,
"angle"_compute_angle.html,
"angle/local"_compute_angle_local.html,
@ -35,6 +36,7 @@ KOKKOS, o = USER-OMP, t = OPT.
"bond/local"_compute_bond_local.html,
"centro/atom"_compute_centro_atom.html,
"chunk/atom"_compute_chunk_atom.html,
"chunk/spread/atom"_compute_chunk_spread_atom.html,
"cluster/atom"_compute_cluster_atom.html,
"cna/atom"_compute_cna_atom.html,
"cnp/atom"_compute_cnp_atom.html,
@ -91,12 +93,15 @@ KOKKOS, o = USER-OMP, t = OPT.
"pe/tally"_compute_tally.html,
"plasticity/atom"_compute_plasticity_atom.html,
"pressure"_compute_pressure.html,
"pressure/cylinder"_compute_pressure_cylinder.html,
"pressure/uef"_compute_pressure_uef.html,
"property/atom"_compute_property_atom.html,
"property/chunk"_compute_property_chunk.html,
"property/local"_compute_property_local.html,
"ptm/atom"_compute_ptm_atom.html,
"rdf"_compute_rdf.html,
"reduce"_compute_reduce.html,
"reduce/chunk"_compute_reduce_chunk.html,
"reduce/region"_compute_reduce.html,
"rigid/local"_compute_rigid_local.html,
"saed"_compute_saed.html,
@ -115,7 +120,7 @@ KOKKOS, o = USER-OMP, t = OPT.
"smd/tlsph/strain"_compute_smd_tlsph_strain.html,
"smd/tlsph/strain/rate"_compute_smd_tlsph_strain_rate.html,
"smd/tlsph/stress"_compute_smd_tlsph_stress.html,
"smd/triangle/mesh/vertices"_compute_smd_triangle_mesh_vertices.html,
"smd/triangle/vertices"_compute_smd_triangle_vertices.html,
"smd/ulsph/num/neighs"_compute_smd_ulsph_num_neighs.html,
"smd/ulsph/strain"_compute_smd_ulsph_strain.html,
"smd/ulsph/strain/rate"_compute_smd_ulsph_strain_rate.html,
@ -126,6 +131,8 @@ KOKKOS, o = USER-OMP, t = OPT.
"snav/atom"_compute_sna_atom.html,
"spin"_compute_spin.html,
"stress/atom"_compute_stress_atom.html,
"stress/mop"_compute_stress_mop.html,
"stress/mop/profile"_compute_stress_mop.html,
"stress/tally"_compute_tally.html,
"tdpd/cc/atom"_compute_tdpd_cc_atom.html,
"temp (k)"_compute_temp.html,
@ -133,6 +140,7 @@ KOKKOS, o = USER-OMP, t = OPT.
"temp/body"_compute_temp_body.html,
"temp/chunk"_compute_temp_chunk.html,
"temp/com"_compute_temp_com.html,
"temp/cs"_compute_temp_cs.html,
"temp/deform"_compute_temp_deform.html,
"temp/deform/eff"_compute_temp_deform_eff.html,
"temp/drude"_compute_temp_drude.html,

View File

@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
:line
"All commands"_Commands_all.html,
"General commands"_Commands_all.html,
"Fix styles"_Commands_fix.html,
"Compute styles"_Commands_compute.html,
"Pair styles"_Commands_pair.html,
@ -40,11 +40,13 @@ OPT.
"ave/time"_fix_ave_time.html,
"aveforce"_fix_aveforce.html,
"balance"_fix_balance.html,
"bocs"_fix_bocs.html,
"bond/break"_fix_bond_break.html,
"bond/create"_fix_bond_create.html,
"bond/react"_fix_bond_react.html,
"bond/swap"_fix_bond_swap.html,
"box/relax"_fix_box_relax.html,
"client/md"_fix_client_md.html,
"cmap"_fix_cmap.html,
"colvars"_fix_colvars.html,
"controller"_fix_controller.html,
@ -54,7 +56,7 @@ OPT.
"drag"_fix_drag.html,
"drude"_fix_drude.html,
"drude/transform/direct"_fix_drude_transform.html,
"drude/transform/reverse"_fix_drude_transform.html,
"drude/transform/inverse"_fix_drude_transform.html,
"dt/reset"_fix_dt_reset.html,
"edpd/source"_fix_dpd_source.html,
"efield"_fix_efield.html,
@ -65,16 +67,19 @@ OPT.
"eos/table/rx (k)"_fix_eos_table_rx.html,
"evaporate"_fix_evaporate.html,
"external"_fix_external.html,
"ffl"_fix_ffl.html,
"filter/corotate"_fix_filter_corotate.html,
"flow/gauss"_fix_flow_gauss.html,
"freeze"_fix_freeze.html,
"freeze (k)"_fix_freeze.html,
"gcmc"_fix_gcmc.html,
"gld"_fix_gld.html,
"gle"_fix_gle.html,
"gravity (o)"_fix_gravity.html,
"gravity (ko)"_fix_gravity.html,
"grem"_fix_grem.html,
"halt"_fix_halt.html,
"heat"_fix_heat.html,
"hyper/global"_fix_hyper_global.html,
"hyper/local"_fix_hyper_local.html,
"imd"_fix_imd.html,
"indent"_fix_indent.html,
"ipi"_fix_ipi.html,
@ -91,6 +96,7 @@ OPT.
"lineforce"_fix_lineforce.html,
"manifoldforce"_fix_manifoldforce.html,
"meso"_fix_meso.html,
"meso/move"_fix_meso_move.html,
"meso/stationary"_fix_meso_stationary.html,
"momentum (k)"_fix_momentum.html,
"move"_fix_move.html,
@ -106,15 +112,16 @@ OPT.
"nph/eff"_fix_nh_eff.html,
"nph/sphere (o)"_fix_nph_sphere.html,
"nphug (o)"_fix_nphug.html,
"npt (kio)"_fix_nh.html,
"npt (iko)"_fix_nh.html,
"npt/asphere (o)"_fix_npt_asphere.html,
"npt/body"_fix_npt_body.html,
"npt/eff"_fix_nh_eff.html,
"npt/sphere (o)"_fix_npt_sphere.html,
"npt/uef"_fix_nh_uef.html,
"nve (kio)"_fix_nve.html,
"nve (iko)"_fix_nve.html,
"nve/asphere (i)"_fix_nve_asphere.html,
"nve/asphere/noforce"_fix_nve_asphere_noforce.html,
"nve/awpmd"_fix_nve_awpmd.html,
"nve/body"_fix_nve_body.html,
"nve/dot"_fix_nve_dot.html,
"nve/dotc/langevin"_fix_nve_dotc_langevin.html,
@ -123,7 +130,7 @@ OPT.
"nve/line"_fix_nve_line.html,
"nve/manifold/rattle"_fix_nve_manifold_rattle.html,
"nve/noforce"_fix_nve_noforce.html,
"nve/sphere (o)"_fix_nve_sphere.html,
"nve/sphere (ko)"_fix_nve_sphere.html,
"nve/spin"_fix_nve_spin.html,
"nve/tri"_fix_nve_tri.html,
"nvk"_fix_nvk.html,
@ -142,6 +149,7 @@ OPT.
"phonon"_fix_phonon.html,
"pimd"_fix_pimd.html,
"planeforce"_fix_planeforce.html,
"plumed"_fix_plumed.html,
"poems"_fix_poems.html,
"pour"_fix_pour.html,
"precession/spin"_fix_precession_spin.html,
@ -168,27 +176,28 @@ OPT.
"restrain"_fix_restrain.html,
"rhok"_fix_rhok.html,
"rigid (o)"_fix_rigid.html,
"rigid/meso"_fix_rigid_meso.html,
"rigid/nph (o)"_fix_rigid.html,
"rigid/nph/small"_fix_rigid.html,
"rigid/npt (o)"_fix_rigid.html,
"rigid/npt/small"_fix_rigid.html,
"rigid/nve (o)"_fix_rigid.html,
"rigid/nve/small"_fix_rigid.html,
"rigid/nvt (o)"_fix_rigid.html,
"rigid/nvt/small"_fix_rigid.html,
"rigid/small (o)"_fix_rigid.html,
"rigid/small/nph"_fix_rigid.html,
"rigid/small/npt"_fix_rigid.html,
"rigid/small/nve"_fix_rigid.html,
"rigid/small/nvt"_fix_rigid.html,
"rx (k)"_fix_rx.html,
"saed/vtk"_fix_saed_vtk.html,
"setforce (k)"_fix_setforce.html,
"shake"_fix_shake.html,
"shardlow (k)"_fix_shardlow.html,
"smd"_fix_smd.html,
"smd/adjust/dt"_fix_smd_adjust_dt.html,
"smd/integrate/tlsph"_fix_smd_integrate_tlsph.html,
"smd/integrate/ulsph"_fix_smd_integrate_ulsph.html,
"smd/move/triangulated/surface"_fix_smd_move_triangulated_surface.html,
"smd/adjust_dt"_fix_smd_adjust_dt.html,
"smd/integrate_tlsph"_fix_smd_integrate_tlsph.html,
"smd/integrate_ulsph"_fix_smd_integrate_ulsph.html,
"smd/move_tri_surf"_fix_smd_move_triangulated_surface.html,
"smd/setvel"_fix_smd_setvel.html,
"smd/wall/surface"_fix_smd_wall_surface.html,
"smd/wall_surface"_fix_smd_wall_surface.html,
"spring"_fix_spring.html,
"spring/chunk"_fix_spring_chunk.html,
"spring/rg"_fix_spring_rg.html,
@ -216,7 +225,7 @@ OPT.
"wall/body/polyhedron"_fix_wall_body_polyhedron.html,
"wall/colloid"_fix_wall.html,
"wall/ees"_fix_wall_ees.html,
"wall/gran"_fix_wall_gran.html,
"wall/gran (o)"_fix_wall_gran.html,
"wall/gran/region"_fix_wall_gran_region.html,
"wall/harmonic"_fix_wall.html,
"wall/lj1043"_fix_wall.html,
@ -226,4 +235,4 @@ OPT.
"wall/reflect (k)"_fix_wall_reflect.html,
"wall/region"_fix_wall_region.html,
"wall/region/ees"_fix_wall_ees.html,
"wall/srd"_fix_wall_srd.html :tb(c=8,ea=c)
"wall/srd"_fix_wall_srd.html :tb(c=6,ea=c)

View File

@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
:line
"All commands"_Commands_all.html,
"General commands"_Commands_all.html,
"Fix styles"_Commands_fix.html,
"Compute styles"_Commands_compute.html,
"Pair styles"_Commands_pair.html,
@ -33,4 +33,5 @@ OPT.
"pppm/disp (i)"_kspace_style.html,
"pppm/disp/tip4p"_kspace_style.html,
"pppm/stagger"_kspace_style.html,
"pppm/tip4p (o)"_kspace_style.html :tb(c=4,ea=c)
"pppm/tip4p (o)"_kspace_style.html,
"scafacos"_kspace_style.html :tb(c=4,ea=c)

View File

@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
:line
"All commands"_Commands_all.html,
"General commands"_Commands_all.html,
"Fix styles"_Commands_fix.html,
"Compute styles"_Commands_compute.html,
"Pair styles"_Commands_pair.html,
@ -26,13 +26,13 @@ OPT.
"none"_pair_none.html,
"zero"_pair_zero.html,
"hybrid"_pair_hybrid.html,
"hybrid (k)"_pair_hybrid.html,
"hybrid/overlay (k)"_pair_hybrid.html :tb(c=4,ea=c)
"adp (o)"_pair_adp.html,
"agni (o)"_pair_agni.html,
"airebo (oi)"_pair_airebo.html,
"airebo/morse (oi)"_pair_airebo.html,
"airebo (io)"_pair_airebo.html,
"airebo/morse (io)"_pair_airebo.html,
"atm"_pair_atm.html,
"awpmd/cut"_pair_awpmd.html,
"beck (go)"_pair_beck.html,
@ -42,21 +42,23 @@ OPT.
"bop"_pair_bop.html,
"born (go)"_pair_born.html,
"born/coul/dsf"_pair_born.html,
"born/coul/dsf/cs"_pair_born.html,
"born/coul/dsf/cs"_pair_cs.html,
"born/coul/long (go)"_pair_born.html,
"born/coul/long/cs"_pair_born.html,
"born/coul/long/cs (g)"_pair_cs.html,
"born/coul/msm (o)"_pair_born.html,
"born/coul/wolf (go)"_pair_born.html,
"born/coul/wolf/cs"_pair_born.html,
"born/coul/wolf/cs (g)"_pair_cs.html,
"brownian (o)"_pair_brownian.html,
"brownian/poly (o)"_pair_brownian.html,
"buck (giko)"_pair_buck.html,
"buck/coul/cut (giko)"_pair_buck.html,
"buck/coul/long (giko)"_pair_buck.html,
"buck/coul/long/cs"_pair_buck.html,
"buck/coul/long/cs"_pair_cs.html,
"buck/coul/msm (o)"_pair_buck.html,
"buck/long/coul/long (o)"_pair_buck_long.html,
"buck/mdf"_pair_mdf.html,
"buck6d/coul/gauss/dsf"_pair_buck6d_coul_gauss.html,
"buck6d/coul/gauss/long"_pair_buck6d_coul_gauss.html,
"colloid (go)"_pair_colloid.html,
"comb (o)"_pair_comb.html,
"comb3"_pair_comb.html,
@ -66,13 +68,13 @@ OPT.
"coul/diel (o)"_pair_coul_diel.html,
"coul/dsf (gko)"_pair_coul.html,
"coul/long (gko)"_pair_coul.html,
"coul/long/cs"_pair_coul.html,
"coul/long/cs (g)"_pair_cs.html,
"coul/long/soft (o)"_pair_lj_soft.html,
"coul/msm"_pair_coul.html,
"coul/msm (o)"_pair_coul.html,
"coul/shield"_pair_coul_shield.html,
"coul/streitz"_pair_coul.html,
"coul/wolf (ko)"_pair_coul.html,
"coul/wolf/cs"_pair_coul.html,
"coul/wolf/cs"_pair_cs.html,
"dpd (gio)"_pair_dpd.html,
"dpd/fdt"_pair_dpd_fdt.html,
"dpd/fdt/energy (k)"_pair_dpd_fdt.html,
@ -81,6 +83,7 @@ OPT.
"eam (gikot)"_pair_eam.html,
"eam/alloy (gikot)"_pair_eam.html,
"eam/cd (o)"_pair_eam.html,
"eam/cd/old (o)"_pair_eam.html,
"eam/fs (gikot)"_pair_eam.html,
"edip (o)"_pair_edip.html,
"edip/multi"_pair_edip.html,
@ -90,11 +93,11 @@ OPT.
"exp6/rx (k)"_pair_exp6_rx.html,
"extep"_pair_extep.html,
"gauss (go)"_pair_gauss.html,
"gauss/cut"_pair_gauss.html,
"gauss/cut (o)"_pair_gauss.html,
"gayberne (gio)"_pair_gayberne.html,
"gran/hertz/history (o)"_pair_gran.html,
"gran/hooke (o)"_pair_gran.html,
"gran/hooke/history (o)"_pair_gran.html,
"gran/hooke/history (ko)"_pair_gran.html,
"gw"_pair_gw.html,
"gw/zbl"_pair_gw.html,
"hbond/dreiding/lj (o)"_pair_hbond_dreiding.html,
@ -109,9 +112,9 @@ OPT.
"list"_pair_list.html,
"lj/charmm/coul/charmm (iko)"_pair_charmm.html,
"lj/charmm/coul/charmm/implicit (ko)"_pair_charmm.html,
"lj/charmm/coul/long (giko)"_pair_charmm.html,
"lj/charmm/coul/long/soft (o)"_pair_charmm.html,
"lj/charmm/coul/msm"_pair_charmm.html,
"lj/charmm/coul/long (gikot)"_pair_charmm.html,
"lj/charmm/coul/long/soft (o)"_pair_lj_soft.html,
"lj/charmm/coul/msm (o)"_pair_charmm.html,
"lj/charmmfsw/coul/charmmfsh"_pair_charmm.html,
"lj/charmmfsw/coul/long"_pair_charmm.html,
"lj/class2 (gko)"_pair_class2.html,
@ -124,12 +127,12 @@ OPT.
"lj/cut/coul/debye (gko)"_pair_lj.html,
"lj/cut/coul/dsf (gko)"_pair_lj.html,
"lj/cut/coul/long (gikot)"_pair_lj.html,
"lj/cut/coul/long/cs"_pair_lj.html,
"lj/cut/coul/long/cs"_pair_cs.html,
"lj/cut/coul/long/soft (o)"_pair_lj_soft.html,
"lj/cut/coul/msm (go)"_pair_lj.html,
"lj/cut/coul/wolf (o)"_pair_lj.html,
"lj/cut/dipole/cut (go)"_pair_dipole.html,
"lj/cut/dipole/long"_pair_dipole.html,
"lj/cut/dipole/long (g)"_pair_dipole.html,
"lj/cut/dipole/sf (go)"_pair_dipole.html,
"lj/cut/soft (o)"_pair_lj_soft.html,
"lj/cut/thole/long (o)"_pair_thole.html,
@ -137,15 +140,17 @@ OPT.
"lj/cut/tip4p/long (ot)"_pair_lj.html,
"lj/cut/tip4p/long/soft (o)"_pair_lj_soft.html,
"lj/expand (gko)"_pair_lj_expand.html,
"lj/expand/coul/long (g)"_pair_lj_expand.html,
"lj/gromacs (gko)"_pair_gromacs.html,
"lj/gromacs/coul/gromacs (ko)"_pair_gromacs.html,
"lj/long/coul/long (io)"_pair_lj_long.html,
"lj/long/coul/long (iot)"_pair_lj_long.html,
"lj/long/dipole/long"_pair_dipole.html,
"lj/long/tip4p/long"_pair_lj_long.html,
"lj/long/tip4p/long (o)"_pair_lj_long.html,
"lj/mdf"_pair_mdf.html,
"lj/sdk (gko)"_pair_sdk.html,
"lj/sdk/coul/long (go)"_pair_sdk.html,
"lj/sdk/coul/msm (o)"_pair_sdk.html,
"lj/sf/dipole/sf (go)"_pair_dipole.html,
"lj/smooth (o)"_pair_lj_smooth.html,
"lj/smooth/linear (o)"_pair_lj_smooth_linear.html,
"lj96/cut (go)"_pair_lj96.html,
@ -160,14 +165,14 @@ OPT.
"meam/spline (o)"_pair_meam_spline.html,
"meam/sw/spline"_pair_meam_sw_spline.html,
"mgpt"_pair_mgpt.html,
"mie/cut (o)"_pair_mie.html,
"mie/cut (g)"_pair_mie.html,
"momb"_pair_momb.html,
"morse (gkot)"_pair_morse.html,
"morse/smooth/linear"_pair_morse.html,
"morse/smooth/linear (o)"_pair_morse.html,
"morse/soft"_pair_morse.html,
"multi/lucy"_pair_multi_lucy.html,
"multi/lucy/rx (k)"_pair_multi_lucy_rx.html,
"nb3b/harmonic (o)"_pair_nb3b_harmonic.html,
"nb3b/harmonic"_pair_nb3b_harmonic.html,
"nm/cut (o)"_pair_nm.html,
"nm/cut/coul/cut (o)"_pair_nm.html,
"nm/cut/coul/long (o)"_pair_nm.html,
@ -179,7 +184,9 @@ OPT.
"oxdna2/coaxstk"_pair_oxdna2.html,
"oxdna2/dh"_pair_oxdna2.html,
"oxdna2/excv"_pair_oxdna2.html,
"oxdna2/hbond"_pair_oxdna2.html,
"oxdna2/stk"_pair_oxdna2.html,
"oxdna2/xstk"_pair_oxdna2.html,
"peri/eps"_pair_peri.html,
"peri/lps (o)"_pair_peri.html,
"peri/pmb (o)"_pair_peri.html,
@ -189,11 +196,12 @@ OPT.
"quip"_pair_quip.html,
"reax"_pair_reax.html,
"reax/c (ko)"_pair_reaxc.html,
"rebo (oi)"_pair_airebo.html,
"rebo (io)"_pair_airebo.html,
"resquared (go)"_pair_resquared.html,
"sdpd/taitwater/isothermal"_pair_sdpd_taitwater_isothermal.html,
"smd/hertz"_pair_smd_hertz.html,
"smd/tlsph"_pair_smd_tlsph.html,
"smd/triangulated/surface"_pair_smd_triangulated_surface.html,
"smd/tri_surface"_pair_smd_triangulated_surface.html,
"smd/ulsph"_pair_smd_ulsph.html,
"smtbq"_pair_smtbq.html,
"snap (k)"_pair_snap.html,
@ -225,8 +233,8 @@ OPT.
"tip4p/long/soft (o)"_pair_lj_soft.html,
"tri/lj"_pair_tri_lj.html,
"ufm (got)"_pair_ufm.html,
"vashishta (ko)"_pair_vashishta.html,
"vashishta (gko)"_pair_vashishta.html,
"vashishta/table (o)"_pair_vashishta.html,
"yukawa (gok)"_pair_yukawa.html,
"yukawa (gko)"_pair_yukawa.html,
"yukawa/colloid (go)"_pair_yukawa_colloid.html,
"zbl (gok)"_pair_zbl.html :tb(c=4,ea=c)
"zbl (gko)"_pair_zbl.html :tb(c=4,ea=c)

View File

@ -91,7 +91,7 @@ See the "variable"_variable.html command for more details of how
strings are assigned to variables and evaluated, and how they can be
used in input script commands.
(4) The line is broken into "words" separated by whitespace (tabs,
(4) The line is broken into "words" separated by white-space (tabs,
spaces). Note that words can thus contain letters, digits,
underscores, or punctuation characters.

3
doc/src/Developer/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
/developer.aux
/developer.log
/developer.toc

View File

@ -22,10 +22,10 @@ users.
LAMMPS source files are in two directories of the distribution
tarball. The src directory has the majority of them, all of which are
C++ files (*.cpp and *.h). Many of these files are in the src
directory itself. There are also dozens of "packages", which can be
directory itself. There are also dozens of ``packages'', which can be
included or excluded when LAMMPS is built. See the
doc/Section\_build.html section of the manual for more information
about packages, or type "make" from within the src directory, which
about packages, or type ``make'' from within the src directory, which
lists package-related commands, such as ``make package-status''. The
source files for each package are in an all-uppercase sub-directory of
src, like src/MOLECULE or src/USER-CUDA. If the package is currently
@ -38,17 +38,17 @@ The lib directory also contains source code for external libraries,
used by a few of the packages. Each sub-directory, like meam or gpu,
contains the source files, some of which are in different languages
such as Fortran. The files are compiled into libraries from within
each sub-directory, e.g. performing a "make" in the lib/meam directory
each sub-directory, e.g. performing a ``make'' in the lib/meam directory
creates a libmeam.a file. These libraries are linked to during a
LAMMPS build, if the corresponding package is installed.
LAMMPS C++ source files almost always come in pairs, such as run.cpp
and run.h. The pair of files defines a C++ class, the Run class in
this case, which contains the code invoked by the "run" command in a
this case, which contains the code invoked by the ``run'' command in a
LAMMPS input script. As this example illustrates, source file and
class names often have a one-to-one correspondence with a command used
in a LAMMPS input script. Some source files and classes do not have a
corresponding input script command, e.g. force.cpp and the Force
corresponding input script command, e.g. ``force.cpp'' and the Force
class. They are discussed in the next section.
\pagebreak
@ -57,12 +57,12 @@ class. They are discussed in the next section.
Though LAMMPS has a lot of source files and classes, its class
hierarchy is quite simple, as outlined in Fig \ref{fig:classes}. Each
boxed name refers to a class and has a pair of associated source files
in lammps/src, e.g. memory.cpp and memory.h. More details on the
in lammps/src, e.g. ``memory.cpp'' and ``memory.h''. More details on the
class and its methods and data structures can be found by examining
its *.h file.
LAMMPS (lammps.cpp/h) is the top-level class for the entire code. It
holds an "instance" of LAMMPS and can be instantiated one or more
holds an ``instance'' of LAMMPS and can be instantiated one or more
times by a calling code. For example, the file src/main.cpp simply
instantiates one instance of LAMMPS and passes it the input script.
@ -81,7 +81,7 @@ enabled by a bit of cleverness in the Pointers class (see
src/pointers.h) which every class inherits from.
There are a handful of virtual parent classes in LAMMPS that define
what LAMMPS calls "styles". They are shaded red in Fig
what LAMMPS calls ``styles''. They are shaded red in Fig
\ref{fig:classes}. Each of these are parents of a number of child
classes that implement the interface defined by the parent class. For
example, the fix style has around 100 child classes. They are the
@ -89,17 +89,17 @@ possible fixes that can be specified by the fix command in an input
script, e.g. fix nve, fix shake, fix ave/time, etc. The corresponding
classes are Fix (for the parent class), FixNVE, FixShake, FixAveTime,
etc. The source files for these classes are easy to identify in the
src directory, since they begin with the word "fix", e,g,
src directory, since they begin with the word ``fix'', e,g,
fix\_nve.cpp, fix\_shake,cpp, fix\_ave\_time.cpp, etc.
The one exception is child class files for the "command" style. These
The one exception is child class files for the ``command'' style. These
implement specific commands in the input script that can be invoked
before/after/between runs or which launch a simulation. Examples are
the create\_box, minimize, run, and velocity commands which encode the
CreateBox, Minimize, Run, and Velocity classes. The corresponding
files are create\_box,cpp, minimize.cpp, run.cpp, and velocity.cpp.
The list of command style files can be found by typing "grep
COMMAND\_CLASS *.h" from within the src directory, since that word in
The list of command style files can be found by typing ``grep
COMMAND\_CLASS *.h'' from within the src directory, since that word in
the header file identifies the class as an input script command.
Similar words can be grepped to list files for the other LAMMPS
styles. E.g. ATOM\_CLASS, PAIR\_CLASS, BOND\_CLASS, REGION\_CLASS,
@ -471,13 +471,13 @@ FixStyle(your/fix/name,FixMine)
\end{verbatim}
\end{center}
Where "your/fix/name" is a name of your fix in the script and FixMine
Where ``your/fix/name'' is a name of your fix in the script and FixMine
is the name of the class. This code allows LAMMPS to find your fix
when it parses input script. In addition, your fix header must be
included in the file "style\_fix.h". In case if you use LAMMPS make,
included in the file ``style\_fix.h''. In case if you use LAMMPS make,
this file is generated automatically - all files starting with prefix
fix\_ are included, so call your header the same way. Otherwise, don't
forget to add your include into "style\_fix.h".
forget to add your include into ``style\_fix.h''.
Let's write a simple fix which will print average velocity at the end
of each timestep. First of all, implement a constructor:
@ -567,11 +567,11 @@ void FixPrintVel::end_of_step()
\end{center}
In the code above, we use MathExtra routines defined in
"math\_extra.h". There are bunch of math functions to work with
``math\_extra.h''. There are bunch of math functions to work with
arrays of doubles as with math vectors.
In this code we use an instance of Atom class. This object is stored
in the Pointers class (see "pointers.h"). This object contains all
in the Pointers class (see ``pointers.h''). This object contains all
global information about the simulation system. Data from Pointers
class available to all classes inherited from it using protected
inheritance. Hence when you write you own class, which is going to use
@ -689,7 +689,7 @@ int FixSavePos::unpack_exchange(int nlocal, double *buf)
Now, a little bit about memory allocation. We used Memory class which
is just a bunch of template functions for allocating 1D and 2D
arrays. So you need to add include "memory.h" to have access to them.
arrays. So you need to add include ``memory.h'' to have access to them.
Finally, if you need to write/read some global information used in
your fix to the restart file, you might do it by setting flag

BIN
doc/src/Eqs/ptm_rmsd.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

21
doc/src/Eqs/ptm_rmsd.tex Normal file
View File

@ -0,0 +1,21 @@
\documentclass[12pt,article]{article}
\usepackage{indentfirst}
\usepackage{amsmath}
\newcommand{\set}[1]{\ensuremath{\mathbf{#1}}}
\newcommand{\mean}[1]{\ensuremath{\overline{#1}}}
\newcommand{\norm}[1]{\ensuremath{\left|\left|{#1}\right|\right|}}
\begin{document}
\begin{equation*}
\text{RMSD}(\set{u}, \set{v}) = \min_{s, \set{Q}} \sqrt{\frac{1}{N} \sum\limits_{i=1}^{N}
\norm{
s[\vec{u_i} - \mean{\set{u}}]
-
\set{Q} \vec{v_i}
}^2}
\end{equation*}
\end{document}

View File

@ -32,7 +32,7 @@ END_RST -->
"Common problems"_Errors_common.html
"Reporting bugs"_Errors_bugs.html
"Error messages"_Errors_messages.html
"Error messages"_Errors_messages.html
"Warning messages"_Errors_warnings.html :all(b)
<!-- END_HTML_ONLY -->

View File

@ -421,9 +421,9 @@ This is an internal error. It should normally not occur. :dd
This is an internal error. It should normally not occur. :dd
{Bad real space Coulomb cutoff in fix tune/kspace} :dt
{Bad real space Coulombic cutoff in fix tune/kspace} :dt
Fix tune/kspace tried to find the optimal real space Coulomb cutoff using
Fix tune/kspace tried to find the optimal real space Coulombic cutoff using
the Newton-Rhaphson method, but found a non-positive or NaN cutoff :dd
{Balance command before simulation box is defined} :dt
@ -460,7 +460,7 @@ compute. :dd
{Big particle in fix srd cannot be point particle} :dt
Big particles must be extended spheriods or ellipsoids. :dd
Big particles must be extended spheroids or ellipsoids. :dd
{Bigint setting in lmptype.h is invalid} :dt
@ -780,7 +780,7 @@ Cannot use tilt factors unless the simulation box is non-orthogonal. :dd
Self-explanatory. :dd
{Cannot change box z boundary to nonperiodic for a 2d simulation} :dt
{Cannot change box z boundary to non-periodic for a 2d simulation} :dt
Self-explanatory. :dd
@ -1092,11 +1092,6 @@ correct. :dd
The specified file cannot be opened. Check that the path and name are
correct. :dd
{Cannot open fix ave/spatial file %s} :dt
The specified file cannot be opened. Check that the path and name are
correct. :dd
{Cannot open fix ave/time file %s} :dt
The specified file cannot be opened. Check that the path and name are
@ -1293,7 +1288,7 @@ are defined. :dd
You cannot reset the timestep when a fix that keeps track of elapsed
time is in place. :dd
{Cannot run 2d simulation with nonperiodic Z dimension} :dt
{Cannot run 2d simulation with non-periodic Z dimension} :dt
Use the boundary command to make the z dimension periodic in order to
run a 2d simulation. :dd
@ -1677,10 +1672,6 @@ provided by an atom map. An atom map does not exist (by default) for
non-molecular problems. Using the atom_modify map command will force
an atom map to be created. :dd
{Cannot use fix ave/spatial z for 2 dimensional model} :dt
Self-explanatory. :dd
{Cannot use fix bond/break with non-molecular systems} :dt
Only systems with bonds that can be changed can be used. Atom_style
@ -2125,29 +2116,29 @@ Self-explanatory. :dd
Fix setforce cannot be used in this manner. Use fix addforce
instead. :dd
{Cannot use nonperiodic boundares with fix ttm} :dt
{Cannot use non-periodic boundares with fix ttm} :dt
This fix requires a fully periodic simulation box. :dd
{Cannot use nonperiodic boundaries with Ewald} :dt
{Cannot use non-periodic boundaries with Ewald} :dt
For kspace style ewald, all 3 dimensions must have periodic boundaries
unless you use the kspace_modify command to define a 2d slab with a
non-periodic z dimension. :dd
{Cannot use nonperiodic boundaries with EwaldDisp} :dt
{Cannot use non-periodic boundaries with EwaldDisp} :dt
For kspace style ewald/disp, all 3 dimensions must have periodic
boundaries unless you use the kspace_modify command to define a 2d
slab with a non-periodic z dimension. :dd
{Cannot use nonperiodic boundaries with PPPM} :dt
{Cannot use non-periodic boundaries with PPPM} :dt
For kspace style pppm, all 3 dimensions must have periodic boundaries
unless you use the kspace_modify command to define a 2d slab with a
non-periodic z dimension. :dd
{Cannot use nonperiodic boundaries with PPPMDisp} :dt
{Cannot use non-periodic boundaries with PPPMDisp} :dt
For kspace style pppm/disp, all 3 dimensions must have periodic
boundaries unless you use the kspace_modify command to define a 2d
@ -2425,10 +2416,6 @@ Self-explanatory. :dd
Self-explanatory. :dd
{Compute ID for fix ave/spatial does not exist} :dt
Self-explanatory. :dd
{Compute ID for fix ave/time does not exist} :dt
Self-explanatory. :dd
@ -3364,21 +3351,21 @@ probably due to errors in the Python code. :dd
The default minimum order is 2. This can be reset by the
kspace_modify minorder command. :dd
{Coulomb cut not supported in pair_style buck/long/coul/coul} :dt
{Coulombic cutoff not supported in pair_style buck/long/coul/coul} :dt
Must use long-range Coulombic interactions. :dd
{Coulomb cut not supported in pair_style lj/long/coul/long} :dt
{Coulombic cutoff not supported in pair_style lj/long/coul/long} :dt
Must use long-range Coulombic interactions. :dd
{Coulomb cut not supported in pair_style lj/long/tip4p/long} :dt
{Coulombic cutoff not supported in pair_style lj/long/tip4p/long} :dt
Must use long-range Coulombic interactions. :dd
{Coulomb cutoffs of pair hybrid sub-styles do not match} :dt
{Coulombic cutoffs of pair hybrid sub-styles do not match} :dt
If using a Kspace solver, all Coulomb cutoffs of long pair styles must
If using a Kspace solver, all Coulombic cutoffs of long pair styles must
be the same. :dd
{Coulombic cut not supported in pair_style lj/long/dipole/long} :dt
@ -4074,10 +4061,6 @@ Self-explanatory. :dd
Self-explanatory. :dd
{Fix ID for fix ave/spatial does not exist} :dt
Self-explanatory. :dd
{Fix ID for fix ave/time does not exist} :dt
Self-explanatory. :dd
@ -4379,51 +4362,6 @@ same style. :dd
Self-explanatory. :dd
{Fix ave/spatial compute does not calculate a per-atom array} :dt
Self-explanatory. :dd
{Fix ave/spatial compute does not calculate a per-atom vector} :dt
A compute used by fix ave/spatial must generate per-atom values. :dd
{Fix ave/spatial compute does not calculate per-atom values} :dt
A compute used by fix ave/spatial must generate per-atom values. :dd
{Fix ave/spatial compute vector is accessed out-of-range} :dt
The index for the vector is out of bounds. :dd
{Fix ave/spatial fix does not calculate a per-atom array} :dt
Self-explanatory. :dd
{Fix ave/spatial fix does not calculate a per-atom vector} :dt
A fix used by fix ave/spatial must generate per-atom values. :dd
{Fix ave/spatial fix does not calculate per-atom values} :dt
A fix used by fix ave/spatial must generate per-atom values. :dd
{Fix ave/spatial fix vector is accessed out-of-range} :dt
The index for the vector is out of bounds. :dd
{Fix ave/spatial for triclinic boxes requires units reduced} :dt
Self-explanatory. :dd
{Fix ave/spatial settings invalid with changing box size} :dt
If the box size changes, only the units reduced option can be
used. :dd
{Fix ave/spatial variable is not atom-style variable} :dt
A variable used by fix ave/spatial must generate per-atom values. :dd
{Fix ave/time cannot set output array intensive/extensive from these inputs} :dt
One of more of the vector inputs has individual elements which are
@ -6000,9 +5938,9 @@ map command will force an atom map to be created. :dd
Self-explanatory. :dd
{Input line quote not followed by whitespace} :dt
{Input line quote not followed by white-space} :dt
An end quote must be followed by whitespace. :dd
An end quote must be followed by white-space. :dd
{Insertion region extends outside simulation box} :dt
@ -7076,7 +7014,7 @@ The kspace accuracy designated in the input must be greater than zero. :dd
{KSpace accuracy too large to estimate G vector} :dt
Reduce the accuracy request or specify gwald explicitly
Reduce the accuracy request or specify gewald explicitly
via the kspace_modify command. :dd
{KSpace accuracy too low} :dt
@ -8076,7 +8014,7 @@ Self-explanatory. :dd
{Package command after simulation box is defined} :dt
The package command cannot be used afer a read_data, read_restart, or
The package command cannot be used after a read_data, read_restart, or
create_box command. :dd
{Package gpu command without GPU package installed} :dt
@ -9260,7 +9198,7 @@ creates one large file for all processors. :dd
{Restart file byte ordering is not recognized} :dt
The file does not appear to be a LAMMPS restart file since it doesn't
contain a recognized byte-orderomg flag at the beginning. :dd
contain a recognized byte-ordering flag at the beginning. :dd
{Restart file byte ordering is swapped} :dt
@ -9472,7 +9410,7 @@ You may also want to boost the page size. :dd
{Small to big integers are not sized correctly} :dt
This error occurs whenthe sizes of smallint, imageint, tagint, bigint,
This error occurs when the sizes of smallint, imageint, tagint, bigint,
as defined in src/lmptype.h are not what is expected. Contact
the developers if this occurs. :dd

View File

@ -291,24 +291,6 @@ This may cause accuracy problems. :dd
This may cause accuracy problems. :dd
{Fix thermal/conductivity comes before fix ave/spatial} :dt
The order of these 2 fixes in your input script is such that fix
thermal/conductivity comes first. If you are using fix ave/spatial to
measure the temperature profile induced by fix viscosity, then this
may cause a glitch in the profile since you are averaging immediately
after swaps have occurred. Flipping the order of the 2 fixes
typically helps. :dd
{Fix viscosity comes before fix ave/spatial} :dt
The order of these 2 fixes in your input script is such that
fix viscosity comes first. If you are using fix ave/spatial
to measure the velocity profile induced by fix viscosity, then
this may cause a glitch in the profile since you are averaging
immediately after swaps have occurred. Flipping the order
of the 2 fixes typically helps. :dd
{Fixes cannot send data in Kokkos communication, switching to classic communication} :dt
This is current restriction with Kokkos. :dd
@ -775,7 +757,7 @@ Self-explanatory. :dd
This may indicate the shell command did not operate as expected. :dd
{Should not allow rigid bodies to bounce off relecting walls} :dt
{Should not allow rigid bodies to bounce off reflecting walls} :dt
LAMMPS allows this, but their dynamics are not computed correctly. :dd
@ -868,10 +850,10 @@ Most FENE models need this setting for the special_bonds command. :dd
Most FENE models need this setting for the special_bonds command. :dd
{Using a manybody potential with bonds/angles/dihedrals and special_bond exclusions} :dt
{Using a many-body potential with bonds/angles/dihedrals and special_bond exclusions} :dt
This is likely not what you want to do. The exclusion settings will
eliminate neighbors in the neighbor list, which the manybody potential
eliminate neighbors in the neighbor list, which the many-body potential
needs to calculated its terms correctly. :dd
{Using compute temp/deform with inconsistent fix deform remap option} :dt

View File

@ -78,7 +78,7 @@ 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 nonbonded 3-body harmonic pair style
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

View File

@ -45,7 +45,7 @@ General howto :h3
<!-- RST
.. toctree::
:name: general
:name: general_howto
:maxdepth: 1
Howto_restart
@ -54,6 +54,7 @@ General howto :h3
Howto_replica
Howto_library
Howto_couple
Howto_client_server
END_RST -->
@ -64,7 +65,8 @@ END_RST -->
"Run multiple simulations from one input script"_Howto_multiple.html
"Multi-replica simulations"_Howto_replica.html
"Library interface to LAMMPS"_Howto_library.html
"Couple LAMMPS to other codes"_Howto_couple.html :all(b)
"Couple LAMMPS to other codes"_Howto_couple.html
"Using LAMMPS in client/server mode"_Howto_client_server.html :all(b)
<!-- END_HTML_ONLY -->

View File

@ -19,7 +19,7 @@ barostat attempts to equilibrate the system to the requested T and/or
P.
Barostatting in LAMMPS is performed by "fixes"_fix.html. Two
barosttating methods are currently available: Nose-Hoover (npt and
barostatting methods are currently available: Nose-Hoover (npt and
nph) and Berendsen:
"fix npt"_fix_nh.html

View File

@ -40,7 +40,7 @@ Install Windows Subsystem for Linux :h5
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.
Subsystem for Linux (Beta) and press OK.
:image(JPG/bow_tutorial_04_small.png,JPG/bow_tutorial_04.png)
:image(JPG/bow_tutorial_05.png,JPG/bow_tutorial_05.png)
@ -54,12 +54,12 @@ 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

View File

@ -132,7 +132,7 @@ x1 y1 z1
xN yN zN :pre
where M = 6 + 3*N, and N is the number of sub-particles in the body
particle.
particle.
The integer line has a single value N. The floating point line(s)
list 6 moments of inertia followed by the coordinates of the N
@ -315,7 +315,7 @@ x1 y1 z1
...
xN yN zN
0 1
1 2
1 2
2 3
...
0 1 2 -1

View File

@ -22,8 +22,8 @@ commands, to calculate various properties of a system:
"fix ave/chunk"_fix_ave_chunk.html
any of the "compute */chunk"_compute.html commands :ul
Here, each of the 3 kinds of chunk-related commands is briefly
overviewed. Then some examples are given of how to compute different
Here a brief overview for each of the 4 kinds of chunk-related commands
is provided. Then some examples are given of how to compute different
properties with chunk commands.
Compute chunk/atom command: :h4
@ -83,8 +83,9 @@ chunk.
Compute */chunk commands: :h4
Currently the following computes operate on chunks of atoms to produce
per-chunk values.
The following computes operate on chunks of atoms to produce per-chunk
values. Any compute whose style name ends in "/chunk" is in this
category:
"compute com/chunk"_compute_com_chunk.html
"compute gyration/chunk"_compute_gyration_chunk.html
@ -111,8 +112,8 @@ of a center of mass, which requires summing mass*position over the
atoms and then dividing by summed mass.
All of these computes produce a global vector or global array as
output, wih one or more values per chunk. They can be used
in various ways:
output, wih one or more values per chunk. The output can be used in
various ways:
As input to the "fix ave/time"_fix_ave_time.html command, which can
write the values to a file and optionally time average them. :ulb,l
@ -122,9 +123,27 @@ histogram values across chunks. E.g. a histogram of cluster sizes or
molecule diffusion rates. :l
As input to special functions of "equal-style
variables"_variable.html, like sum() and max(). E.g. to find the
largest cluster or fastest diffusing molecule. :l
:ule
variables"_variable.html, like sum() and max() and ave(). E.g. to
find the largest cluster or fastest diffusing molecule or average
radius-of-gyration of a set of molecules (chunks). :l,ule
Other chunk commands: :h4
"compute chunk/spread/atom"_compute_chunk_spread_atom.html
"compute reduce/chunk"_compute_reduce_chunk.html :ul
The "compute chunk/spread/atom"_compute_chunk_spread_atom.html command
spreads per-chunk values to each atom in the chunk, producing per-atom
values as its output. This can be useful for outputting per-chunk
values to a per-atom "dump file"_dump.html. Or for using an atom's
associated chunk value in an "atom-style variable"_variable.html.
The "compute reduce/chunk"_compute_reduce_chunk.html command reduces a
peratom value across the atoms in each chunk to produce a value per
chunk. When used with the "compute
chunk/spread/atom"_compute_chunk_spread_atom.html command it can
create peratom values that induce a new set of chunks with a second
"compute chunk/atom"_compute_chunk_atom.html command.
Example calculations with chunks :h4
@ -164,3 +183,13 @@ compute cluster all cluster/atom 1.0
compute cc1 all chunk/atom c_cluster compress yes
compute size all property/chunk cc1 count
fix 1 all ave/histo 100 1 100 0 20 20 c_size mode vector ave running beyond ignore file tmp.histo :pre
(6) An example of using a per-chunk value to apply per-atom forces to
compress individual polymer chains (molecules) in a mixture, is
explained on the "compute
chunk/spread/atom"_compute_chunk_spread_atom.html command doc page.
(7) An example of using one set of per-chunk values for molecule
chunks, to create a 2nd set of micelle-scale chunks (clustered
molecules, due to hydrophobicity), is explained on the "compute
chunk/reduce"_compute_reduce_chunk.html command doc page.

View File

@ -0,0 +1,131 @@
"Higher level section"_Howto.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
Using LAMMPS in client/server mode :h3
Client/server coupling of two codes is where one code is the "client"
and sends request messages to a "server" code. The server responds to
each request with a reply message. This enables the two codes to work
in tandem to perform a simulation. LAMMPS can act as either a client
or server code.
Some advantages of client/server coupling are that the two codes run
as stand-alone executables; they are not linked together. Thus
neither code needs to have a library interface. This often makes it
easier to run the two codes on different numbers of processors. If a
message protocol (format and content) is defined for a particular kind
of simulation, then in principle any code that implements the
client-side protocol can be used in tandem with any code that
implements the server-side protocol, without the two codes needing to
know anything more specific about each other.
A simple example of client/server coupling is where LAMMPS is the
client code performing MD timestepping. Each timestep it sends a
message to a server quantum code containing current coords of all the
atoms. The quantum code computes energy and forces based on the
coords. It returns them as a message to LAMMPS, which completes the
timestep.
Alternate methods for code coupling with LAMMPS are described on
the "Howto couple"_Howto_couple.html doc page.
LAMMPS support for client/server coupling is in its "MESSAGE
package"_Packages_details.html#PKG-MESSAGE which implements several
commands that enable LAMMPS to act as a client or server, as discussed
below. The MESSAGE package also wraps a client/server library called
CSlib which enables two codes to exchange messages in different ways,
either via files, sockets, or MPI. The CSlib is provided with LAMMPS
in the lib/message dir. The CSlib has its own
"website"_http://cslib.sandia.gov with documentation and test
programs.
NOTE: For client/server coupling to work between LAMMPS and another
code, the other code also has to use the CSlib. This can sometimes be
done without any modifications to the other code by simply wrapping it
with a Python script that exchanges CSlib messages with LAMMPS and
prepares input for or processes output from the other code. The other
code also has to implement a matching protocol for the format and
content of messages that LAMMPS exchanges with it.
These are the commands currently in the MESSAGE package for two
protocols, MD and MC (Monte Carlo). New protocols can easily be
defined and added to this directory, where LAMMPS acts as either the
client or server.
"message"_message.html
"fix client md"_fix_client_md.html = LAMMPS is a client for running MD
"server md"_server_md.html = LAMMPS is a server for computing MD forces
"server mc"_server_mc.html = LAMMPS is a server for computing a Monte Carlo energy :ul
The server doc files give details of the message protocols
for data that is exchanged between the client and server.
These example directories illustrate how to use LAMMPS as either a
client or server code:
examples/message
examples/COUPLE/README
examples/COUPLE/lammps_mc
examples/COUPLE/lammps_vasp :ul
The examples/message dir couples a client instance of LAMMPS to a
server instance of LAMMPS.
The lammps_mc dir shows how to couple LAMMPS as a server to a simple
Monte Carlo client code as the driver.
The lammps_vasp dir shows how to couple LAMMPS as a client code
running MD timestepping to VASP acting as a server providing quantum
DFT forces, thru a Python wrapper script on VASP.
Here is how to launch a client and server code together for any of the
4 modes of message exchange that the "message"_message.html command
and the CSlib support. Here LAMMPS is used as both the client and
server code. Another code could be substituted for either.
The examples below show launching both codes from the same window (or
batch script), using the "&" character to launch the first code in the
background. For all modes except {mpi/one}, you could also launch the
codes in separate windows on your desktop machine. It does not
matter whether you launch the client or server first.
In these examples either code can be run on one or more processors.
If running in a non-MPI mode (file or zmq) you can launch a code on a
single processor without using mpirun.
IMPORTANT: If you run in mpi/two mode, you must launch both codes via
mpirun, even if one or both of them runs on a single processor. This
is so that MPI can figure out how to connect both MPI processes
together to exchange MPI messages between them.
For message exchange in {file}, {zmq}, or {mpi/two} modes:
% mpirun -np 1 lmp_mpi -log log.client < in.client &
% mpirun -np 2 lmp_mpi -log log.server < in.server :pre
% mpirun -np 4 lmp_mpi -log log.client < in.client &
% mpirun -np 1 lmp_mpi -log log.server < in.server :pre
% mpirun -np 2 lmp_mpi -log log.client < in.client &
% mpirun -np 4 lmp_mpi -log log.server < in.server :pre
For message exchange in {mpi/one} mode:
Launch both codes in a single mpirun command:
mpirun -np 2 lmp_mpi -mpicolor 0 -in in.message.client -log log.client : -np 4 lmp_mpi -mpicolor 1 -in in.message.server -log log.server :pre
The two -np values determine how many procs the client and the server
run on.
A LAMMPS executable run in this manner must use the -mpicolor color
command-line option as their its option, where color is an integer
label that will be used to distinguish one executable from another in
the multiple executables that the mpirun command launches. In this
example the client was colored with a 0, and the server with a 1.

View File

@ -19,7 +19,7 @@ polarizable"_Howto_polarizable.html doc page for a discussion of all
the polarizable models available in LAMMPS.
Technically, shells are attached to the cores by a spring force f =
k*r where k is a parametrized spring constant and r is the distance
k*r where k is a parameterized spring constant and r is the distance
between the core and the shell. The charges of the core and the shell
add up to the ion charge, thus q(ion) = q(core) + q(shell). This
setup introduces the ion polarizability (alpha) given by
@ -111,7 +111,7 @@ the core and shell particles corresponds to the polarization,
hereby an instantaneous relaxation of the shells is approximated
and a fast core/shell spring frequency ensures a nearly constant
internal kinetic energy during the simulation.
Thermostats can alter this polarization behaviour, by scaling the
Thermostats can alter this polarization behavior, by scaling the
internal kinetic energy, meaning the shell will not react freely to
its electrostatic environment.
Therefore it is typically desirable to decouple the relative motion of
@ -165,7 +165,7 @@ fix_modify press_bar temp CSequ press thermo_press_lmp # pressure modification
If "compute temp/cs"_compute_temp_cs.html is used, the decoupled
relative motion of the core and the shell should in theory be
stable. However numerical fluctuation can introduce a small
momentum to the system, which is noticable over long trajectories.
momentum to the system, which is noticeable over long trajectories.
Therefore it is recommendable to use the "fix
momentum"_fix_momentum.html command in combination with "compute
temp/cs"_compute_temp_cs.html when equilibrating the system to

View File

@ -16,10 +16,12 @@ atoms and pass those forces to LAMMPS. Or a continuum finite element
nodal points, compute a FE solution, and return interpolated forces on
MD atoms.
LAMMPS can be coupled to other codes in at least 3 ways. Each has
LAMMPS can be coupled to other codes in at least 4 ways. Each has
advantages and disadvantages, which you'll have to think about in the
context of your application.
:line
(1) Define a new "fix"_fix.html command that calls the other code. In
this scenario, LAMMPS is the driver code. During its timestepping,
the fix is invoked, and can make library calls to the other code,
@ -32,6 +34,8 @@ LAMMPS.
:link(poems,http://www.rpi.edu/~anderk5/lab)
:line
(2) Define a new LAMMPS command that calls the other code. This is
conceptually similar to method (1), but in this case LAMMPS and the
other code are on a more equal footing. Note that now the other code
@ -52,6 +56,8 @@ command writes and reads.
See the "Modify command"_Modify_command.html doc page for info on how
to add a new command to LAMMPS.
:line
(3) Use LAMMPS as a library called by another code. In this case the
other code is the driver and calls LAMMPS as needed. Or a wrapper
code could link and call both LAMMPS and another code as libraries.
@ -102,3 +108,9 @@ on all the processors. Or it might allocate half the processors to
LAMMPS and half to the other code and run both codes simultaneously
before syncing them up periodically. Or it might instantiate multiple
instances of LAMMPS to perform different calculations.
:line
(4) Couple LAMMPS with another code in a client/server mode. This is
described on the "Howto client/server"_Howto_client_server.html doc
page.

View File

@ -74,7 +74,7 @@ command.
A reasonable approach that combines the upsides of both methods is to
make the first run using the {kspace_modify force/disp/real} and
{kspace_modify force/disp/kspace} commands, write down the PPPM
parameters from the outut, and specify these parameters using the
parameters from the output, and specify these parameters using the
second approach in subsequent runs (which have the same composition,
force field, and approximately the same volume).

View File

@ -17,7 +17,7 @@ for a discussion of all the polarizable models available in LAMMPS.
The Drude model has a number of features aimed at its use in
molecular systems ("Lamoureux and Roux"_#howto-Lamoureux):
Thermostating of the additional degrees of freedom associated with the
Thermostatting of the additional degrees of freedom associated with the
induced dipoles at very low temperature, in terms of the reduced
coordinates of the Drude particles with respect to their cores. This
makes the trajectory close to that of relaxed induced dipoles. :ulb,l

View File

@ -82,7 +82,7 @@ decouple the degrees of freedom associated with the Drude oscillators
from those of the normal atoms. Thermalizing the Drude dipoles at
temperatures comparable to the rest of the simulation leads to several
problems (kinetic energy transfer, very short timestep, etc.), which
can be remediate by the "cold Drude" technique ("Lamoureux and
can be remedied by the "cold Drude" technique ("Lamoureux and
Roux"_#Lamoureux2).
Two closely related models are used to represent polarization through
@ -213,7 +213,7 @@ of mass of the DC-DP pairs, with relaxation time 100 and with random
seed 12345. This fix applies also a Langevin thermostat at temperature
1. to the relative motion of the DPs around their DCs, with relaxation
time 20 and random seed 13977. Only the DCs and non-polarizable
atoms need to be in this fix's group. LAMMPS will thermostate the DPs
atoms need to be in this fix's group. LAMMPS will thermostat the DPs
together with their DC. For this, ghost atoms need to know their
velocities. Thus you need to add the following command:
@ -360,7 +360,7 @@ fix NPH all nph iso 1. 1. 500 :pre
It is also possible to use a Nose-Hoover instead of a Langevin
thermostat. This requires to use "{fix
drude/transform}"_fix_drude_transform.html just before and after the
time intergation fixes. The {fix drude/transform/direct} converts the
time integration fixes. The {fix drude/transform/direct} converts the
atomic masses, positions, velocities and forces into a reduced
representation, where the DCs transform into the centers of mass of
the DC-DP pairs and the DPs transform into their relative position
@ -396,7 +396,7 @@ global pressure and thus a global temperature whatever the fix group.
We do want the pressure to correspond to the whole system, but we want
the temperature to correspond to the fix group only. We must then use
the {fix_modify} command for this. In the end, the block of
instructions for thermostating and barostating will look like
instructions for thermostatting and barostatting will look like
compute TATOMS ATOMS temp
fix DIRECT all drude/transform/direct

View File

@ -30,7 +30,7 @@ examples/elastic directory described on the "Examples"_Examples.html
doc page.
Calculating elastic constants at finite temperature is more
challenging, because it is necessary to run a simulation that perfoms
challenging, because it is necessary to run a simulation that performs
time averages of differential properties. One way to do this is to
measure the change in average stress tensor in an NVT simulations when
the cell volume undergoes a finite deformation. In order to balance

View File

@ -96,7 +96,7 @@ machine to a directory with the name you chose. If none is given, it will
default to "lammps". Typical names are "mylammps" or something similar.
You can use this local clone to make changes and
test them without interfering with the repository on Github.
test them without interfering with the repository on GitHub.
To pull changes from upstream into this copy, you can go to the directory
and use git pull:
@ -150,7 +150,7 @@ After the commit, the changes can be pushed to the same branch on GitHub:
$ git push :pre
Git will ask you for your user name and password on GitHub if you have
not configured anything. If your local branch is not present on Github yet,
not configured anything. If your local branch is not present on GitHub yet,
it will ask you to add it by running
$ git push --set-upstream origin github-tutorial-update :pre
@ -254,20 +254,53 @@ them, or if a developer has requested that something needs to be changed
before the feature can be accepted into the official LAMMPS version.
After each push, the automated checks are run again.
[Labels]
LAMMPS developers may add labels to your pull request to assign it to
categories (mostly for bookkeeping purposes), but a few of them are
important: needs_work, work_in_progress, test-for-regression, and
full-regression-test. The first two indicate, that your pull request
is not considered to be complete. With "needs_work" the burden is on
exclusively on you; while "work_in_progress" can also mean, that a
LAMMPS developer may want to add changes. Please watch the comments
to the pull requests. The two "test" labels are used to trigger
extended tests before the code is merged. This is sometimes done by
LAMMPS developers, if they suspect that there may be some subtle
side effects from your changes. It is not done by default, because
those tests are very time consuming.
[Reviews]
As of Summer 2018, a pull request needs at least 1 approving review
from a LAMMPS developer with write access to the repository.
In case your changes touch code that certain developers are associated
with, they are auto-requested by the GitHub software. Those associations
are set in the file
".github/CODEOWNERS"_https://github.com/lammps/lammps/blob/master/.github/CODEOWNERS
Thus if you want to be automatically notified to review when anybody
changes files or packages, that you have contributed to LAMMPS, you can
add suitable patterns to that file, or a LAMMPS developer may add you.
Otherwise, you can also manually request reviews from specific developers,
or LAMMPS developers - in their assessment of your pull request - may
determine who else should be reviewing your contribution and add that person.
Through reviews, LAMMPS developers also may request specific changes from you.
If those are not addressed, your pull requests cannot be merged.
[Assignees]
There is an assignee label for pull requests. If the request has not
There is an assignee property for pull requests. If the request has not
been reviewed by any developer yet, it is not assigned to anyone. After
revision, a developer can choose to assign it to either a) you, b) a
LAMMPS developer (including him/herself) or c) Steve Plimpton (sjplimp).
LAMMPS developer (including him/herself) or c) Axel Kohlmeyer (akohlmey).
Case a) happens if changes are required on your part :ulb,l
Case b) means that at the moment, it is being tested and reviewed by a
LAMMPS developer with the expectation that some changes would be required.
After the review, the developer can choose to implement changes directly
or suggest them to you. :l
Case c) means that the pull request has been assigned to the lead
developer Steve Plimpton and means it is considered ready for merging. :ule,l
Case c) means that the pull request has been assigned to the developer
overseeing the merging of pull requests into the master branch. :ule,l
In this case, Axel assigned the tutorial to Steve:
@ -336,7 +369,7 @@ commit and push again:
$ git commit -m "Merged Axel's suggestions and updated text"
$ git push git@github.com:Pakketeretet2/lammps :pre
This merge also shows up on the lammps Github page:
This merge also shows up on the lammps GitHub page:
:c,image(JPG/tutorial_reverse_pull_request7.png)
@ -381,3 +414,6 @@ Furthermore, the naming of the patches now follow the pattern
"patch_<Day><Month><Year>" to simplify comparisons between releases.
Finally, all patches and submissions are subject to automatic testing
and code checks to make sure they at the very least compile.
A discussion of the LAMMPS developer GitHub workflow can be found in the file
"doc/github-development-workflow.md"_https://github.com/lammps/lammps/blob/master/doc/github-development-workflow.md

View File

@ -185,7 +185,7 @@ by the same function if the caller needs to know the ordering. The
lammps_gather_subset() function allows the caller to request values
for only a subset of atoms (identified by ID).
For all 3 gather function, per-atom image flags can be retrieved in 2 ways.
If the count is specified as 1, they are returned
If the count is specified as 1, they are returned
in a packed format with all three image flags stored in a single integer.
If the count is specified as 3, the values are unpacked into xyz flags
by the library before returning them.

View File

@ -31,8 +31,8 @@ plane @ a b c x0 y0 z0 @ a*(x-x0) + b*(y-y0) + c*(z-z0) = 0 @ A plane with norma
plane_wiggle @ a w @ z - a*sin(w*x) = 0 @ A plane with a sinusoidal modulation on z along x.
sphere @ R @ x^2 + y^2 + z^2 - R^2 = 0 @ A sphere of radius R
supersphere @ R q @ | x |^q + | y |^q + | z |^q - R^q = 0 @ A supersphere of hyperradius R
spine @ a, A, B, B2, c @ -(x^2 + y^2) + (a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^4), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ An approximation to a dendtritic spine
spine_two @ a, A, B, B2, c @ -(x^2 + y^2) + (a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^2), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ Another approximation to a dendtritic spine
spine @ a, A, B, B2, c @ -(x^2 + y^2) + (a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^4), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ An approximation to a dendritic spine
spine_two @ a, A, B, B2, c @ -(x^2 + y^2) + (a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^2), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ Another approximation to a dendritic spine
thylakoid @ wB LB lB @ Various, see "(Paquay)"_#Paquay1 @ A model grana thylakoid consisting of two block-like compartments connected by a bridge of width wB, length LB and taper length lB
torus @ R r @ (R - sqrt( x^2 + y^2 ) )^2 + z^2 - r^2 @ A torus with large radius R and small radius r, centered on (0,0,0) :tb(s=@)

View File

@ -24,6 +24,11 @@ by subtracting out the streaming velocity of the shearing atoms. The
velocity profile or other properties of the fluid can be monitored via
the "fix ave/chunk"_fix_ave_chunk.html command.
NOTE: A recent (2017) book by "(Daivis and Todd)"_#Daivis-nemd
discusses use of the SLLOD method and non-equilibrium MD (NEMD)
thermostatting generally, for both simple and complex fluids,
e.g. molecular systems. The latter can be tricky to do correctly.
As discussed in the previous section on non-orthogonal simulation
boxes, the amount of tilt or skew that can be applied is limited by
LAMMPS for computational efficiency to be 1/2 of the parallel box
@ -46,3 +51,9 @@ An alternative method for calculating viscosities is provided via the
NEMD simulations can also be used to measure transport properties of a fluid
through a pore or channel. Simulations of steady-state flow can be performed
using the "fix flow/gauss"_fix_flow_gauss.html command.
:line
:link(Daivis-nemd)
[(Daivis and Todd)] Daivis and Todd, Nonequilibrium Molecular Dynamics (book),
Cambridge University Press, https://doi.org/10.1017/9781139017848, (2017).

View File

@ -45,8 +45,8 @@ high symmetry around each site leads to stable trajectories of the
core-shell pairs. However, bonded atoms in molecules can be so close
that a core would interact too strongly or even capture the Drude
particle of a neighbor. The Drude dipole model is relatively more
complex in order to remediate this and other issues. Specifically, the
Drude model includes specific thermostating of the core-Drude pairs
complex in order to remedy this and other issues. Specifically, the
Drude model includes specific thermostatting of the core-Drude pairs
and short-range damping of the induced dipoles.
The three polarization methods can be implemented through a
@ -77,5 +77,5 @@ motion of the Drude particles with respect to their cores is kept
approaching the self-consistent regime. In both models the
temperature is regulated using the velocities of the center of mass of
core+shell (or Drude) pairs, but in the Drude model the actual
relative core-Drude particle motion is thermostated separately as
relative core-Drude particle motion is thermostatted separately as
well.

View File

@ -141,16 +141,16 @@ Python code if {L} was a lammps instance:
L.command("region box block 0 10 0 5 -0.5 0.5") :pre
With the PyLammps interface, any command can be split up into arbitrary parts
separated by whitespace, passed as individual arguments to a region method.
separated by white-space, passed as individual arguments to a region method.
L.region("box block", 0, 10, 0, 5, -0.5, 0.5) :pre
Note that each parameter is set as Python literal floating-point number. In the
PyLammps interface, each command takes an arbitrary parameter list and transparently
merges it to a single command string, separating individual parameters by whitespace.
merges it to a single command string, separating individual parameters by white-space.
The benefit of this approach is avoiding redundant command calls and easier
parameterization. In the original interface parametrization needed to be done
parameterization. In the original interface parameterization needed to be done
manually by creating formatted strings.
L.command("region box block %f %f %f %f %f %f" % (xlo, xhi, ylo, yhi, zlo, zhi)) :pre
@ -328,7 +328,7 @@ jupyter notebook :pre
IPyLammps Examples :h4
Examples of IPython notebooks can be found in the python/examples/pylammps
subdirectory. To open these notebooks launch {jupyter notebook} inside this
sub-directory. To open these notebooks launch {jupyter notebook} inside this
directory and navigate to one of them. If you compiled and installed
a LAMMPS shared library with exceptions, PNG, JPEG and FFMPEG support
you should be able to rerun all of these notebooks.

View File

@ -9,7 +9,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
Multi-replica simulations :h3
Several commands in LAMMPS run mutli-replica simulations, meaning
Several commands in LAMMPS run multi-replica simulations, meaning
that multiple instances (replicas) of your simulation are run
simultaneously, with small amounts of data exchanged between replicas
periodically.

View File

@ -30,7 +30,7 @@ r0 of OH bond = 1.0
theta of HOH angle = 109.47 :all(b),p
Note that as originally proposed, the SPC model was run with a 9
Angstrom cutoff for both LJ and Coulommbic terms. It can also be used
Angstrom cutoff for both LJ and Coulombic terms. It can also be used
with long-range Coulombics (Ewald or PPPM in LAMMPS), without changing
any of the parameters above, though it becomes a different model in
that mode of usage.

View File

@ -35,7 +35,7 @@ There are several "atom styles"_atom_style.html that allow for
definition of finite-size particles: sphere, dipole, ellipsoid, line,
tri, peri, and body.
The sphere style defines particles that are spheriods and each
The sphere style defines particles that are spheroids and each
particle can have a unique diameter and mass (or density). These
particles store an angular velocity (omega) and can be acted upon by
torque. The "set" command can be used to modify the diameter and mass
@ -236,7 +236,7 @@ particles are point masses.
Also note that body particles cannot be modeled with the "fix
rigid"_fix_rigid.html command. Body particles are treated by LAMMPS
as single particles, though they can store internal state, such as a
list of sub-particles. Individual body partices are typically treated
list of sub-particles. Individual body particles are typically treated
as rigid bodies, and their motion integrated with a command like "fix
nve/body"_fix_nve_body.html. Interactions between pairs of body
particles are computed via a command like "pair_style

View File

@ -12,48 +12,48 @@ Magnetic spins :h3
The magnetic spin simulations are enabled by the SPIN package, whose
implementation is detailed in "Tranchida"_#Tranchida7.
The model represents the simulation of atomic magnetic spins coupled
to lattice vibrations. The dynamics of those magnetic spins can be used
to simulate a broad range a phenomena related to magneto-elasticity, or
or to study the influence of defects on the magnetic properties of
materials.
The model represents the simulation of atomic magnetic spins coupled
to lattice vibrations. The dynamics of those magnetic spins can be used
to simulate a broad range a phenomena related to magneto-elasticity, or
or to study the influence of defects on the magnetic properties of
materials.
The magnetic spins are interacting with each others and with the
lattice via pair interactions. Typically, the magnetic exchange
interaction can be defined using the
The magnetic spins are interacting with each others and with the
lattice via pair interactions. Typically, the magnetic exchange
interaction can be defined using the
"pair/spin/exchange"_pair_spin_exchange.html command. This exchange
applies a magnetic torque to a given spin, considering the orientation
of its neighboring spins and their relative distances.
It also applies a force on the atoms as a function of the spin
orientations and their associated inter-atomic distances.
of its neighboring spins and their relative distances.
It also applies a force on the atoms as a function of the spin
orientations and their associated inter-atomic distances.
The command "fix precession/spin"_fix_precession_spin.html allows to
apply a constant magnetic torque on all the spins in the system. This
torque can be an external magnetic field (Zeeman interaction), or an
uniaxial magnetic anisotropy.
uniaxial magnetic anisotropy.
A Langevin thermostat can be applied to those magnetic spins using
"fix langevin/spin"_fix_langevin_spin.html. Typically, this thermostat
can be coupled to another Langevin thermostat applied to the atoms
using "fix langevin"_fix_langevin.html in order to simulate
thermostated spin-lattice system.
A Langevin thermostat can be applied to those magnetic spins using
"fix langevin/spin"_fix_langevin_spin.html. Typically, this thermostat
can be coupled to another Langevin thermostat applied to the atoms
using "fix langevin"_fix_langevin.html in order to simulate
thermostatted spin-lattice system.
The magnetic Gilbert damping can also be applied using "fix
langevin/spin"_fix_langevin_spin.html. It allows to either dissipate
the thermal energy of the Langevin thermostat, or to perform a
The magnetic Gilbert damping can also be applied using "fix
langevin/spin"_fix_langevin_spin.html. It allows to either dissipate
the thermal energy of the Langevin thermostat, or to perform a
relaxation of the magnetic configuration toward an equilibrium state.
All the computed magnetic properties can be output by two main
commands. The first one is "compute spin"_compute_spin.html, that
enables to evaluate magnetic averaged quantities, such as the total
All the computed magnetic properties can be output by two main
commands. The first one is "compute spin"_compute_spin.html, that
enables to evaluate magnetic averaged quantities, such as the total
magnetization of the system along x, y, or z, the spin temperature, or
the magnetic energy. The second command is "compute
the magnetic energy. The second command is "compute
property/atom"_compute_property_atom.html. It enables to output all the
per atom magnetic quantities. Typically, the orientation of a given
per atom magnetic quantities. Typically, the orientation of a given
magnetic spin, or the magnetic force acting on this spin.
:line
:link(Tranchida7)
[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson,
[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson,
arXiv preprint arXiv:1801.10233, (2018).

View File

@ -43,6 +43,11 @@ nvt/asphere"_fix_nvt_asphere.html thermostat not only translation
velocities but also rotational velocities for spherical and aspherical
particles.
NOTE: A recent (2017) book by "(Daivis and Todd)"_#Daivis-thermostat
discusses use of the SLLOD method and non-equilibrium MD (NEMD)
thermostatting generally, for both simple and complex fluids,
e.g. molecular systems. The latter can be tricky to do correctly.
DPD thermostatting alters pairwise interactions in a manner analogous
to the per-particle thermostatting of "fix
langevin"_fix_langevin.html.
@ -87,3 +92,9 @@ specify them explicitly via the "thermo_style
custom"_thermo_style.html command. Or you can use the
"thermo_modify"_thermo_modify.html command to re-define what
temperature compute is used for default thermodynamic output.
:line
:link(Daivis-thermostat)
[(Daivis and Todd)] Daivis and Todd, Nonequilibrium Molecular Dynamics (book),
Cambridge University Press, https://doi.org/10.1017/9781139017848, (2017).

View File

@ -200,7 +200,7 @@ used with non-orthogonal basis vectors to define a lattice that will
tile a triclinic simulation box via the
"create_atoms"_create_atoms.html command.
A second use is to run Parinello-Rahman dynamics via the "fix
A second use is to run Parrinello-Rahman dynamics via the "fix
npt"_fix_nh.html command, which will adjust the xy, xz, yz tilt
factors to compensate for off-diagonal components of the pressure
tensor. The analog for an "energy minimization"_minimize.html is

View File

@ -37,6 +37,11 @@ used to shear the fluid in between them, again with some kind of
thermostat that modifies only the thermal (non-shearing) components of
velocity to prevent the fluid from heating up.
NOTE: A recent (2017) book by "(Daivis and Todd)"_#Daivis-viscosity
discusses use of the SLLOD method and non-equilibrium MD (NEMD)
thermostatting generally, for both simple and complex fluids,
e.g. molecular systems. The latter can be tricky to do correctly.
In both cases, the velocity profile setup in the fluid by this
procedure can be monitored by the "fix ave/chunk"_fix_ave_chunk.html
command, which determines grad(Vstream) in the equation above.
@ -131,3 +136,9 @@ mean-square-displacement formulation for self-diffusivity. The
time-integrated momentum fluxes play the role of Cartesian
coordinates, whose mean-square displacement increases linearly
with time at sufficiently long times.
:line
:link(Daivis-viscosity)
[(Daivis and Todd)] Daivis and Todd, Nonequilibrium Molecular Dynamics (book),
Cambridge University Press, https://doi.org/10.1017/9781139017848, (2017).

View File

@ -45,7 +45,7 @@ git clone -b unstable https://github.com/lammps/lammps.git mylammps :pre
where "mylammps" is the name of the directory you wish to create on
your machine and "unstable" is one of the 3 branches listed above.
(Note that you actually download all 3 branches; you can switch
between them at any time using "git checkout <branchname>".)
between them at any time using "git checkout <branch name>".)
Once the command completes, your directory will contain the same files
as if you unpacked a current LAMMPS tarball, with two exceptions:

View File

@ -9,39 +9,16 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
Download an executable for Linux :h3
Binaries are available for many different versions of Linux:
Binaries are available for different versions of Linux:
"Pre-built binary RPMs for Fedora/RedHat/CentOS/openSUSE"_#rpm
"Pre-built Ubuntu Linux executables"_#ubuntu
"Pre-built Fedora Linux executables"_#fedora
"Pre-built EPEL Linux executables (RHEL, CentOS)"_#epel
"Pre-built OpenSuse Linux executables"_#opensuse
"Pre-built Gentoo Linux executable"_#gentoo :all(b)
:line
Pre-built binary RPMs for Fedora/RedHat/CentOS/openSUSE :h4,link(rpm)
Pre-built LAMMPS executables for various Linux distributions
can be downloaded as binary RPM files from this site:
"http://rpm.lammps.org"_http://rpm.lammps.org
There are multiple package variants supporting serial, parallel and
Python wrapper versions. The LAMMPS binaries contain all optional
packages included in the source distribution except: GPU, KIM, REAX,
and USER-INTEL.
Installation instructions for the various versions are here:
"http://rpm.lammps.org/install.html"_http://rpm.lammps.org/install.html
The instructions show how to enable the repository in the respective
system's package management system. Installing and updating are then
straightforward and automatic.
Thanks to Axel Kohlmeyer (Temple U, akohlmey at gmail.com) for setting
up this RPM capability.
:line
Pre-built Ubuntu Linux executables :h4,link(ubuntu)
A pre-built LAMMPS executable suitable for running on the latest
@ -60,10 +37,10 @@ To install LAMMPS do the following once:
sudo apt-get install lammps-daily :pre
This downloads an executable named "lammps-daily" to your box, which
This downloads an executable named "lmp_daily" to your box, which
can then be used in the usual way to run input scripts:
lammps-daily < in.lj :pre
lmp_daily -in in.lj :pre
To update LAMMPS to the most current version, do the following:
@ -99,6 +76,80 @@ Ubuntu package capability.
:line
Pre-built Fedora Linux executables :h4,link(fedora)
Pre-built LAMMPS packages for stable releases are available
in the Fedora Linux distribution as of version 28. The packages
can be installed via the dnf package manager. There are 3 basic
varieties (lammps = no MPI, lammps-mpich = MPICH MPI library,
lammps-openmpi = OpenMPI MPI library) and for each support for
linking to the C library interface (lammps-devel, lammps-mpich-devel,
lammps-openmpi-devel), the header for compiling programs using
the C library interface (lammps-headers), and the LAMMPS python
module for Python 3. All packages can be installed at the same
time and the name of the LAMMPS executable is {lmp} in all 3 cases.
By default, {lmp} will refer to the serial executable, unless
one of the MPI environment modules is loaded
("module load mpi/mpich-x86_64" or "module load mpi/openmpi-x86_64").
Then the corresponding parallel LAMMPS executable is used.
The same mechanism applies when loading the LAMMPS python module.
To install LAMMPS with OpenMPI and run an input in.lj with 2 CPUs do:
dnf install lammps-openmpi
module load mpi/openmpi-x86_64
mpirun -np 2 lmp -in in.lj :pre
The "dnf install" command is needed only once. In case of a new LAMMPS
stable release, "dnf update" will automatically update to the newer
version as soon at the RPM files are built and uploaded to the download
mirrors. The "module load" command is needed once per (shell) session
or shell terminal instance, unless it is automatically loaded from the
shell profile.
Please use "lmp -help" to see which compilation options, packages,
and styles are included in the binary.
Thanks to Christoph Junghans (LANL) for making LAMMPS available in Fedora.
:line
Pre-built EPEL Linux executable :h4,link(epel)
Pre-built LAMMPS packages for stable releases are available
in the "Extra Packages for Enterprise Linux (EPEL) repository"_https://fedoraproject.org/wiki/EPEL
for use with Red Hat Enterprise Linux (RHEL) or CentOS version 7.x
and compatible Linux distributions. Names of packages, executable,
and content are the same as described above for Fedora Linux.
But RHEL/CentOS 7.x uses the "yum" package manager instead of "dnf"
in Fedora 28.
Please use "lmp -help" to see which compilation options, packages,
and styles are included in the binary.
Thanks to Christoph Junghans (LANL) for making LAMMPS available in EPEL.
:line
Pre-built OpenSuse Linux executable :h4,link(opensuse)
A pre-built LAMMPS package for stable releases is available
in OpenSuse as of Leap 15.0. You can install the package with:
zypper install lammps :pre
This includes support for OpenMPI. The name of the LAMMPS executable
is {lmp}. Thus to run an input in parallel on 2 CPUs you would do:
mpirun -np 2 lmp -in in.lj :pre
Please use "lmp -help" to see which compilation options, packages,
and styles are included in the binary.
Thanks to Christoph Junghans (LANL) for making LAMMPS available in OpenSuse.
:line
Pre-built Gentoo Linux executable :h4,link(gentoo)
LAMMPS is part of Gentoo's main package tree and can be installed by

View File

@ -49,7 +49,8 @@ Lennard-Jones benchmark file:
% brew test lammps -v :pre
If you have problems with the installation you can post issues to
"this link"_https://github.com/Homebrew/homebrew-science/issues.
"this link"_homebrew.
Thanks to Derek Thomas (derekt at cello.t.u-tokyo.ac.jp) for setting
up the Homebrew capability.
:link(homebrew,https://github.com/Homebrew/homebrew-science/issues)

View File

@ -17,7 +17,7 @@ how to stay current are on the "Install git"_Install_git.html and
If you prefer to download a tarball, as described on the "Install
git"_Install_tarball.html doc page, you can stay current by
downloading "patch files" when new patch releases are made. A link to
a patch file is posted on the "bug and feature
a patch file is posted on the "bug and feature
page"_http://lammps.sandia.gov/bug.html of the LAMMPS website, along
with a list of changed files and details about what is in the new patch
release. This page explains how to apply the patch file to your local

View File

@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
:line
Download source as a tarball :h3
Download source and documentation as a tarball :h3
You can download a current LAMMPS tarball from the "download page"_download
of the "LAMMPS website"_lws.
@ -22,6 +22,10 @@ few times per year, and undergo more testing before release. Patch
releases occur a couple times per month. The new contents in all
releases are listed on the "bug and feature page"_bug of the website.
Both tarballs include LAMMPS documentation (HTML and PDF files)
corresponding to that version. The download page also has an option
to download the current-version LAMMPS documentation by itself.
Older versions of LAMMPS can also be downloaded from "this
page"_older.

View File

@ -48,7 +48,7 @@ Trung Ngyuen (Northwestern U), GPU and RIGID and BODY packages
Mike Parks (Sandia), PERI package for Peridynamics
Roy Pollock (LLNL), Ewald and PPPM solvers
Christian Trott (Sandia), USER-CUDA and KOKKOS packages
Ilya Valuev (JIHT), USER-AWPMD package for wave-packet MD
Ilya Valuev (JIHT), USER-AWPMD package for wave packet MD
Greg Wagner (Northwestern U), MEAM package for MEAM potential :ul
:line
@ -58,7 +58,7 @@ page"_http://lammps.sandia.gov/history.html of the website, LAMMPS
originated as a cooperative project between DOE labs and industrial
partners. Folks involved in the design and testing of the original
version of LAMMPS were the following:
John Carpenter (Mayo Clinic, formerly at Cray Research)
Terry Stouch (Lexicon Pharmaceuticals, formerly at Bristol Myers Squibb)
Steve Lustig (Dupont)

View File

@ -68,7 +68,7 @@ commands)
pairwise potentials: Lennard-Jones, Buckingham, Morse, Born-Mayer-Huggins, \
Yukawa, soft, class 2 (COMPASS), hydrogen bond, tabulated
charged pairwise potentials: Coulombic, point-dipole
manybody potentials: EAM, Finnis/Sinclair EAM, modified EAM (MEAM), \
many-body potentials: EAM, Finnis/Sinclair EAM, modified EAM (MEAM), \
embedded ion method (EIM), EDIP, ADP, Stillinger-Weber, Tersoff, \
REBO, AIREBO, ReaxFF, COMB, SNAP, Streitz-Mintmire, 3-body polymorphic
long-range interactions for charge, point-dipoles, and LJ dispersion: \
@ -110,11 +110,11 @@ Atom creation :h4,link(create)
displace atoms :ul
Ensembles, constraints, and boundary conditions :h4,link(ensemble)
("fix"_fix.html command)
("fix"_fix.html command)
2d or 3d systems
orthogonal or non-orthogonal (triclinic symmetry) simulation domains
constant NVE, NVT, NPT, NPH, Parinello/Rahman integrators
constant NVE, NVT, NPT, NPH, Parrinello/Rahman integrators
thermostatting options for groups and geometric regions of atoms
pressure control via Nose/Hoover or Berendsen barostatting in 1 to 3 dimensions
simulation box deformation (tensile and shear)
@ -128,7 +128,7 @@ Ensembles, constraints, and boundary conditions :h4,link(ensemble)
variety of additional boundary conditions and constraints :ul
Integrators :h4,link(integrate)
("run"_run.html, "run_style"_run_style.html, "minimize"_minimize.html commands)
("run"_run.html, "run_style"_run_style.html, "minimize"_minimize.html commands)
velocity-Verlet integrator
Brownian dynamics
@ -142,7 +142,7 @@ Diagnostics :h4,link(diag)
see various flavors of the "fix"_fix.html and "compute"_compute.html commands :ul
Output :h4,link(output)
("dump"_dump.html, "restart"_restart.html commands)
("dump"_dump.html, "restart"_restart.html commands)
log file of thermodynamic info
text dump files of atom coords, velocities, other per-atom quantities

View File

@ -13,15 +13,19 @@ LAMMPS is designed to be a fast, parallel engine for molecular
dynamics (MD) simulations. It provides only a modest amount of
functionality for setting up simulations and analyzing their output.
Specifically, LAMMPS does not:
Specifically, LAMMPS was not conceived and designed for:
run thru a GUI
build molecular systems
being run thru a GUI
build molecular systems, or building molecular topologies
assign force-field coefficients automagically
perform sophisticated analyses of your MD simulation
perform sophisticated analysis of your MD simulation
visualize your MD simulation interactively
plot your output data :ul
Although over the years these limitations have been somewhat
reduced through features added to LAMMPS or external tools
that either interface with LAMMPS or extend LAMMPS.
Here are suggestions on how to perform these tasks:
GUI: LAMMPS can be built as a library and a Python wrapper that wraps
@ -29,7 +33,7 @@ the library interface is provided. Thus, GUI interfaces can be
written in Python (or C or C++ if desired) that run LAMMPS and
visualize or plot its output. Examples of this are provided in the
python directory and described on the "Python"_Python_head.html doc
page. :ulb,l
page. Also, there are several external wrappers or GUI front ends.:ulb,l
Builder: Several pre-processing tools are packaged with LAMMPS. Some
of them convert input files in formats produced by other MD codes such
@ -40,28 +44,36 @@ molecular builder that will generate complex molecular models. See
the "Tools"_Tools.html doc page for details on tools packaged with
LAMMPS. The "Pre/post processing
page"_http:/lammps.sandia.gov/prepost.html of the LAMMPS website
describes a variety of 3rd party tools for this task. :l
describes a variety of 3rd party tools for this task. Furthermore,
some LAMMPS internal commands to reconstruct topology, as well as
the option to insert molecule templates instead of atoms.:l
Force-field assignment: The conversion tools described in the previous
bullet for CHARMM, AMBER, and Insight will also assign force field
coefficients in the LAMMPS format, assuming you provide CHARMM, AMBER,
or Accelerys force field files. :l
or BIOVIA (formerly Accelrys) force field files. :l
Simulation analyses: If you want to perform analyses on-the-fly as
Simulation analysis: If you want to perform analysis on-the-fly as
your simulation runs, see the "compute"_compute.html and
"fix"_fix.html doc pages, which list commands that can be used in a
LAMMPS input script. Also see the "Modify"_Modify.html doc page for
info on how to add your own analysis code or algorithms to LAMMPS.
For post-processing, LAMMPS output such as "dump file
snapshots"_dump.html can be converted into formats used by other MD or
post-processing codes. Some post-processing tools packaged with
post-processing codes. To some degree, that conversion can be done
directly inside of LAMMPS by interfacing to the VMD molfile plugins.
The "rerun"_rerun.html command also allows to do some post-processing
of existing trajectories, and through being able to read a variety
of file formats, this can also be used for analyzing trajectories
from other MD codes. Some post-processing tools packaged with
LAMMPS will do these conversions. Scripts provided in the
tools/python directory can extract and massage data in dump files to
make it easier to import into other programs. See the
"Tools"_Tools.html doc page for details on these various options. :l
Visualization: LAMMPS can produce JPG or PNG snapshot images
on-the-fly via its "dump image"_dump_image.html command. For
on-the-fly via its "dump image"_dump_image.html command and pass
them to an external program FFmpeg to generate movies from them. For
high-quality, interactive visualization there are many excellent and
free tools available. See the "Other Codes
page"_http://lammps.sandia.gov/viz.html page of the LAMMPS website for

View File

@ -1,7 +1,7 @@
<!-- HTML_ONLY -->
<HEAD>
<TITLE>LAMMPS Users Manual</TITLE>
<META NAME="docnumber" CONTENT="31 Aug 2018 version">
<META NAME="docnumber" CONTENT="27 Nov 2018 version">
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
</HEAD>
@ -21,7 +21,7 @@
:line
LAMMPS Documentation :c,h1
31 Aug 2018 version :c,h2
27 Nov 2018 version :c,h2
"What is a LAMMPS version?"_Manual_version.html

View File

@ -61,7 +61,7 @@ make pdf # generate 2 PDF files (Manual.pdf,Developer.pdf)
make old # generate old-style HTML pages in old dir via txt2html
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 mobi # generate LAMMPS.mobi in MOBI format using ebook-convert
make clean # remove intermediate RST files created by HTML build
make clean-all # remove entire build folder and any cached data :pre

View File

@ -33,11 +33,11 @@ how much effort it will cause to integrate and test it, how much it
requires changes to the core codebase, and of how much interest it is
to the larger LAMMPS community. Please see below for a checklist of
typical requirements. Once you have prepared everything, see the
"Howto github"_Howto_github.html doc page for instructions on how to
"Using GitHub with LAMMPS Howto"_Howto_github.html doc page for instructions on how to
submit your changes or new files through a GitHub pull request. If you
prefer to submit patches or full files, you should first make certain,
that your code works correctly with the latest patch-level version of
LAMMPS and contains all bugfixes from it. Then create a gzipped tar
LAMMPS and contains all bug fixes from it. Then create a gzipped tar
file of all changed or added files or a corresponding patch file using
'diff -u' or 'diff -c' and compress it with gzip. Please only use gzip
compression, as this works well on all platforms.

View File

@ -10,7 +10,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
Pair styles :h3
Classes that compute pairwise interactions are derived from the Pair
class. In LAMMPS, pairwise calculation include manybody potentials
class. In LAMMPS, pairwise calculation include many-body potentials
such as EAM or Tersoff where particles interact without a static bond
topology. New styles can be created to add new pair potentials to
LAMMPS.

View File

@ -20,6 +20,6 @@ Here is a brief description of methods you define in your new derived
class. See region.h for details.
inside: determine whether a point is in the region
surface_interior: determine if a point is within a cutoff distance inside of surc
surface_exterior: determine if a point is within a cutoff distance outside of surf
surface_interior: determine if a point is within a cutoff distance inside of surface
surface_exterior: determine if a point is within a cutoff distance outside of surface
shape_update : change region shape if set by time-dependent variable :tb(s=:)

View File

@ -46,6 +46,7 @@ as contained in the file name.
"MANYBODY"_#PKG-MANYBODY,
"MC"_#PKG-MC,
"MEAM"_#PKG-MEAM,
"MESSAGE"_#PKG-MESSAGE,
"MISC"_#PKG-MISC,
"MOLECULE"_#PKG-MOLECULE,
"MPIIO"_#PKG-MPIIO,
@ -88,10 +89,14 @@ as contained in the file name.
"USER-NETCDF"_#PKG-USER-NETCDF,
"USER-OMP"_#PKG-USER-OMP,
"USER-PHONON"_#PKG-USER-PHONON,
"USER-PLUMED"_#PKG-USER-PLUMED,
"USER-PTM"_#PKG-USER-PTM,
"USER-QMMM"_#PKG-USER-QMMM,
"USER-QTB"_#PKG-USER-QTB,
"USER-QUIP"_#PKG-USER-QUIP,
"USER-REAXC"_#PKG-USER-REAXC,
"USER-SCAFACOS"_#PKG-USER-SCAFACOS,
"USER-SDPD"_#PKG-USER-SDPD,
"USER-SMD"_#PKG-USER-SMD,
"USER-SMTBQ"_#PKG-USER-SMTBQ,
"USER-SPH"_#PKG-USER-SPH,
@ -200,7 +205,7 @@ available on your system.
[Author:] Axel Kohlmeyer (Temple U).
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -281,7 +286,7 @@ also the "KOKKOS"_#PKG-KOKKOS package, which has GPU-enabled styles.
[Authors:] Mike Brown (Intel) while at Sandia and ORNL and Trung Nguyen
(Northwestern U) while at ORNL.
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -349,7 +354,7 @@ API which the "pair_style kim"_pair_kim.html command uses. He
developed the pair style in collaboration with Valeriu Smirichinski (U
Minnesota).
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -395,7 +400,7 @@ which was developed by Carter Edwards, Christian Trott, and others at
Sandia, and which is included in the LAMMPS distribution in
lib/kokkos.
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -459,10 +464,10 @@ dynamics can be run with LAMMPS using density-functional tight-binding
quantum forces calculated by LATTE.
More information on LATTE can be found at this web site:
"https://github.com/lanl/LATTE"_latte_home. A brief technical
"https://github.com/lanl/LATTE"_latte-home. A brief technical
description is given with the "fix latte"_fix_latte.html command.
:link(latte_home,https://github.com/lanl/LATTE)
:link(latte-home,https://github.com/lanl/LATTE)
[Authors:] Christian Negre (LANL) and Steve Plimpton (Sandia). LATTE
itself is developed at Los Alamos National Laboratory by Marc
@ -489,7 +494,7 @@ MANYBODY package :link(PKG-MANYBODY),h4
[Contents:]
A variety of manybody and bond-order potentials. These include
A variety of many-body and bond-order potentials. These include
(AI)REBO, BOP, EAM, EIM, Stillinger-Weber, and Tersoff potentials.
[Supporting info:]
@ -513,7 +518,7 @@ MC package :link(PKG-MC),h4
Several fixes and a pair style that have Monte Carlo (MC) or MC-like
attributes. These include fixes for creating, breaking, and swapping
bonds, for performing atomic swaps, and performing grand-canonical MC
(GCMC) in conjuction with dynamics.
(GCMC) in conjunction with dynamics.
[Supporting info:]
@ -543,16 +548,12 @@ and user interface.
[Author:] Greg Wagner (Northwestern U) while at Sandia.
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
extras"_Build_extras.html doc page.
NOTE: You should test building the MEAM library with both the Intel
and GNU compilers to see if a simulation runs faster with one versus
the other on your system.
[Supporting info:]
src/MEAM: filenames -> commands
@ -563,6 +564,31 @@ examples/meam :ul
:line
MESSAGE package :link(PKG-MESSAGE),h4
[Contents:]
Commands to use LAMMPS as either a client or server and couple it to
another application.
[Install:]
This package has "specific installation
instructions"_Build_extras.html#message on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
src/MESSAGE: filenames -> commands
lib/message/README
"message"_message.html
"fix client/md"_fix_client_md.html
"server md"_server_md.html
"server mc"_server_mc.html
examples/message :ul
:line
MISC package :link(PKG-MISC),h4
[Contents:]
@ -644,9 +670,9 @@ MSCG package :link(PKG-mscg),h4
A "fix mscg"_fix_mscg.html command which can parameterize a
Multi-Scale Coarse-Graining (MSCG) model using the open-source "MS-CG
library"_mscg_home.
library"_mscg-home.
:link(mscg_home,https://github.com/uchicago-voth/MSCG-release)
:link(mscg-home,https://github.com/uchicago-voth/MSCG-release)
To use this package you must have the MS-CG library available on your
system.
@ -655,7 +681,7 @@ system.
library was developed by Jacob Wagner in Greg Voth's group at the
University of Chicago.
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -687,7 +713,7 @@ have styles optimized for CPU performance.
[Authors:] James Fischer (High Performance Technologies), David Richie,
and Vincent Natoli (Stone Ridge Technolgy).
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -744,7 +770,7 @@ connections at hinge points.
[Author:] Rudra Mukherjee (JPL) while at RPI.
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -776,7 +802,7 @@ shared library available on your system, which needs to be a Python 2
version, 2.6 or later. Python 3 is not yet supported. See the
lib/python/README for more details.
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -824,7 +850,7 @@ as bonds are created and destroyed.
[Author:] Aidan Thompson (Sandia).
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -984,11 +1010,11 @@ VORONOI package :link(PKG-VORONOI),h4
[Contents:]
A compute command which calculates the Voronoi tesselation of a
collection of atoms by wrapping the "Voro++ library"_voro_home. This
collection of atoms by wrapping the "Voro++ library"_voro-home. This
can be used to calculate the local volume or each atoms or its near
neighbors.
:link(voro_home,http://math.lbl.gov/voro++)
:link(voro-home,http://math.lbl.gov/voro++)
To use this package you must have the Voro++ library available on your
system.
@ -997,7 +1023,7 @@ system.
library was written by Chris Rycroft (Harvard U) while at UC Berkeley
and LBNL.
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -1024,7 +1050,7 @@ atomic information to continuum fields.
[Authors:] Reese Jones, Jeremy Templeton, Jon Zimmerman (Sandia).
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -1051,7 +1077,7 @@ model.
[Author:] Ilya Valuev (JIHT, Russia).
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -1074,7 +1100,7 @@ This package provides "fix bocs"_fix_bocs.html, a modified version
of "fix npt"_fix_nh.html which includes the pressure correction to
the barostat as outlined in:
N. J. H. Dunn and W. G. Noid, "Bottom-up coarse-grained models that
N. J. H. Dunn and W. G. Noid, "Bottom-up coarse-grained models that
accurately describe the structure, pressure, and compressibility of
molecular liquids," J. Chem. Phys. 143, 243148 (2015).
@ -1159,10 +1185,10 @@ and Jerome Henin (LISM, CNRS, Marseille, France), originally for
the NAMD MD code, but with portability in mind. Axel Kohlmeyer
(Temple U) provided the interface to LAMMPS.
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#user-colvars on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -1176,6 +1202,36 @@ examples/USER/colvars :ul
:line
USER-PLUMED package :link(PKG-USER-PLUMED),h4
[Contents:]
The fix plumed command allows you to use the PLUMED free energy plugin
for molecular dynamics to analyze and bias your LAMMPS trajectory on
the fly. The PLUMED library is called from within the LAMMPS input
script by using the "fix plumed _fix_plumed.html command.
[Authors:] The "PLUMED library"_#PLUMED is written and maintained by
Massimilliano Bonomi, Giovanni Bussi, Carlo Camiloni and Gareth
Tribello.
:link(PLUMED,http://www.plumed.org)
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
src/USER-PLUMED/README
lib/plumed/README
"fix plumed"_fix_plumed.html
examples/USER/plumed :ul
:line
USER-DIFFRACTION package :link(PKG-USER-DIFFRACTION),h4
[Contents:]
@ -1339,7 +1395,7 @@ system.
[Author:] Pierre de Buyl (KU Leuven) created both the package and the
H5MD format.
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -1377,7 +1433,7 @@ NOTE: the USER-INTEL package contains styles that require using the
[Author:] Mike Brown (Intel).
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -1496,7 +1552,7 @@ USER-MEAMC package :link(PKG-USER-MEAMC),h4
[Contents:]
A pair style for the modified embedded atom (MEAM) potential
translated from the Fortran version in the "MEAM"_MEAM package
translated from the Fortran version in the "MEAM"_#PKG-MEAM package
to plain C++. In contrast to the MEAM package, no library
needs to be compiled and the pair style can be instantiated
multiple times.
@ -1547,17 +1603,17 @@ USER-MOFFF package :link(PKG-USER-MOFFF),h4
[Contents:]
Pair, angle and improper styles needed to employ the MOF-FF
force field by Schmid and coworkers with LAMMPS.
force field by Schmid and coworkers with LAMMPS.
MOF-FF is a first principles derived force field with the primary aim
to simulate MOFs and related porous framework materials, using spherical
to simulate MOFs and related porous framework materials, using spherical
Gaussian charges. It is described in S. Bureekaew et al., Phys. Stat. Sol. B
2013, 250, 1128-1141.
For the usage of MOF-FF see the example in the example directory as
For the usage of MOF-FF see the example in the example directory as
well as the "MOF+"_MOFplus website.
:link(MOFplus,https://www.mofplus.org/content/show/MOF-FF)
[Author:] Hendrik Heenen (Technical U of Munich),
[Author:] Hendrik Heenen (Technical U of Munich),
Rochus Schmid (Ruhr-University Bochum).
[Supporting info:]
@ -1577,7 +1633,7 @@ USER-MOLFILE package :link(PKG-USER-MOLFILE),h4
[Contents:]
A "dump molfile"_dump_molfile.html command which uses molfile plugins
that are bundled with the "VMD"_vmd_home
that are bundled with the "VMD"_vmd-home
molecular visualization and analysis program, to enable LAMMPS to dump
snapshots in formats compatible with various molecular simulation
tools.
@ -1598,7 +1654,7 @@ at
[Author:] Axel Kohlmeyer (Temple U).
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -1629,16 +1685,16 @@ Note that NetCDF files can be directly visualized with the following
tools:
"Ovito"_ovito (Ovito supports the AMBER convention and the extensions mentioned above)
"VMD"_vmd_home
"VMD"_vmd-home
"AtomEye"_atomeye (the libAtoms version of AtomEye contains a NetCDF reader not present in the standard distribution) :ul
:link(ovito,http://www.ovito.org)
:link(vmd_home,https://www.ks.uiuc.edu/Research/vmd/)
:link(vmd-home,https://www.ks.uiuc.edu/Research/vmd/)
:link(atomeye,http://www.libatoms.org)
[Author:] Lars Pastewka (Karlsruhe Institute of Technology).
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -1682,7 +1738,7 @@ See src/MAKE/OPTIONS/Makefile.omp for an example.
Once you have an appropriate Makefile.machine, you can
install/un-install the package and build LAMMPS in the usual manner:
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -1721,6 +1777,25 @@ examples/USER/phonon :ul
:line
USER-PTM package :link(PKG-USER-PTM),h4
[Contents:]
A "compute ptm/atom"_compute_ptm_atom.html command that calculates
local structure characterization using the Polyhedral Template
Matching methodology.
[Author:] Peter Mahler Larsen (MIT).
[Supporting info:]
src/USER-PTM: filenames not starting with ptm_ -> commands
src/USER-PTM: filenames starting with ptm_ -> supporting code
src/USER-PTM/LICENSE
"compute ptm/atom"_compute_ptm_atom.html :ul
:line
USER-QMMM package :link(PKG-USER-QMMM),h4
[Contents:]
@ -1742,7 +1817,7 @@ without changes to LAMMPS itself.
[Author:] Axel Kohlmeyer (Temple U).
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -1800,7 +1875,7 @@ on your system.
[Author:] Albert Bartok (Cambridge University)
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -1838,6 +1913,66 @@ examples/reax :ul
:line
USER-SCAFACOS package :link(PKG-USER-SCAFACOS),h4
[Contents:]
A KSpace style which wraps the "ScaFaCoS Coulomb solver
library"_http://www.scafacos.de to compute long-range Coulombic
interactions.
To use this package you must have the ScaFaCoS library available on
your system.
[Author:] Rene Halver (JSC) wrote the scafacos LAMMPS command.
ScaFaCoS itself was developed by a consortium of German research
facilities with a BMBF (German Ministry of Science and Education)
funded project in 2009-2012. Participants of the consortium were the
Universities of Bonn, Chemnitz, Stuttgart, and Wuppertal as well as
the Forschungszentrum Juelich.
[Install:]
This package has "specific installation
instructions"_Build_extras.html#user-scafacos on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
src/USER-SCAFACOS: filenames -> commands
src/USER-SCAFACOS/README
"kspace_style scafacos"_kspace_style.html
"kspace_modify"_kspace_modify.html
examples/USER/scafacos :ul
:line
USER-SDPD package :link(PKG-USER-SDPD),h4
[Contents:]
A pair style for smoothed dissipative particle dynamics (SDPD), which
is an extension of smoothed particle hydrodynamics (SPH) to mesoscale
where thermal fluctuations are important (see the
"USER-SPH package"_#PKG-USER-SPH).
Also two fixes for moving and rigid body integration of SPH/SDPD particles
(particles of atom_style meso).
[Author:] Morteza Jalalvand (Institute for Advanced Studies in Basic
Sciences, Iran).
[Supporting info:]
src/USER-SDPD: filenames -> commands
src/USER-SDPD/README
"pair_style sdpd/taitwater/isothermal"_pair_sdpd_taitwater_isothermal.html
"fix meso/move"_fix_meso_move.html
"fix rigid/meso"_fix_rigid_meso.html
examples/USER/sdpd :ul
:line
USER-SMD package :link(PKG-USER-SMD),h4
[Contents:]
@ -1859,7 +1994,7 @@ specified as surface geometries from *.STL files.
[Author:] Georg Ganzenmuller (Fraunhofer-Institute for High-Speed
Dynamics, Ernst Mach Institute, Germany).
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
@ -1985,7 +2120,7 @@ system.
[Authors:] Richard Berger (JKU) and Daniel Queteschiner (DCS Computing).
[Install:]
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build

View File

@ -47,6 +47,7 @@ Package, Description, Doc page, Example, Library
"MANYBODY"_Packages_details.html#PKG-MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, no
"MC"_Packages_details.html#PKG-MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, n/a, no
"MEAM"_Packages_details.html#PKG-MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int
"MESSAGE"_Packages_details.html#PKG-MESSAGE, client/server messaging, "message"_message.html, message, int
"MISC"_Packages_details.html#PKG-MISC, miscellaneous single-file commands, n/a, no, no
"MOLECULE"_Packages_details.html#PKG-MOLECULE, molecular system force fields, "Howto bioFF"_Howto_bioFF.html, peptide, no
"MPIIO"_Packages_details.html#PKG-MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, n/a, no

View File

@ -38,8 +38,8 @@ int = internal library: provided with LAMMPS, but you may need to build it
ext = external library: you will need to download and install it on your machine :ul
Package, Description, Doc page, Example, Library
"USER-ATC"_Packages_details.html#PKG-USER-ATC, atom-to-continuum coupling, "fix atc"_fix_atc.html, USER/atc, int
"USER-AWPMD"_Packages_details.html#PKG-USER-AWPMD, wave-packet MD, "pair_style awpmd/cut"_pair_awpmd.html, USER/awpmd, int
"USER-ATC"_Packages_details.html#PKG-USER-ATC, Atom-to-Continuum coupling, "fix atc"_fix_atc.html, USER/atc, int
"USER-AWPMD"_Packages_details.html#PKG-USER-AWPMD, wave packet MD, "pair_style awpmd/cut"_pair_awpmd.html, USER/awpmd, int
"USER-BOCS"_Packages_details.html#PKG-USER-BOCS, BOCS bottom up coarse graining, "fix bocs"_fix_bocs.html, USER/bocs, no
"USER-CGDNA"_Packages_details.html#PKG-USER-CGDNA, coarse-grained DNA force fields, src/USER-CGDNA/README, USER/cgdna, no
"USER-CGSDK"_Packages_details.html#PKG-USER-CGSDK, SDK coarse-graining model, "pair_style lj/sdk"_pair_sdk.html, USER/cgsdk, no
@ -62,13 +62,20 @@ Package, Description, Doc page, Example, Library
"USER-NETCDF"_Packages_details.html#PKG-USER-NETCDF, dump output via NetCDF,"dump netcdf"_dump_netcdf.html, n/a, ext
"USER-OMP"_Packages_details.html#PKG-USER-OMP, OpenMP-enabled styles,"Speed omp"_Speed_omp.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, no
"USER-PHONON"_Packages_details.html#PKG-USER-PHONON, phonon dynamical matrix,"fix phonon"_fix_phonon.html, USER/phonon, no
"USER-PLUMED"_Packages_details.html#PKG-USER-PLUMED, "PLUMED"_#PLUMED free energy library,"fix plumed"_fix_plumed.html, USER/plumed, ext
"USER-PTM"_Packages_details.html#PKG-USER-PTM, Polyhedral Template Matching,"compute ptm/atom"_compute_ptm_atom.html, n/a, no
"USER-QMMM"_Packages_details.html#PKG-USER-QMMM, QM/MM coupling,"fix qmmm"_fix_qmmm.html, USER/qmmm, ext
"USER-QTB"_Packages_details.html#PKG-USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, no
"USER-QUIP"_Packages_details.html#PKG-USER-QUIP, QUIP/libatoms interface,"pair_style quip"_pair_quip.html, USER/quip, ext
"USER-REAXC"_Packages_details.html#PKG-USER-REAXC, ReaxFF potential (C/C++) ,"pair_style reaxc"_pair_reaxc.html, reax, no
"USER-SCAFACOS"_Packages_details.html#PKG-USER-SCAFACOS, wrapper on ScaFaCoS solver,"kspace_style scafacos"_kspace_style.html, USER/scafacos, ext
"USER-SDPD"_Packages_details.html#PKG-USER-SDPD, smoothed dissipative particle dynamics,"pair_style sdpd/taitwater/isothermal"_pair_sdpd_taitwater_isothermal.html, USER/sdpd, no
"USER-SMD"_Packages_details.html#PKG-USER-SMD, smoothed Mach dynamics,"SMD User Guide"_PDF/SMD_LAMMPS_userguide.pdf, USER/smd, ext
"USER-SMTBQ"_Packages_details.html#PKG-USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, no
"USER-SPH"_Packages_details.html#PKG-USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, no
"USER-TALLY"_Packages_details.html#PKG-USER-TALLY, pairwise tally computes,"compute XXX/tally"_compute_tally.html, USER/tally, no
"USER-UEF"_Packages_details.html#PKG-USER-UEF, extensional flow,"fix nvt/uef"_fix_nh_uef.html, USER/uef, no
"USER-VTK"_Packages_details.html#PKG-USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, n/a, ext :tb(ea=c,ca1=l)
:link(MOFplus,https://www.mofplus.org/content/show/MOF-FF)
:link(PLUMED,http://www.plumed.org)

View File

@ -79,7 +79,7 @@ of Python and your machine to successfully build LAMMPS. See the
lib/python/README file for more info.
If you want to write Python code with callbacks to LAMMPS, then you
must also follow the steps overviewed in the "Python
must also follow the steps summarized in the "Python
run"_Python_run.html doc page. I.e. you must build LAMMPS as a shared
library and insure that Python can find the python/lammps.py file and
the shared library.

View File

@ -46,7 +46,7 @@ http://mt.seas.upenn.edu/Archive/Graphics/A3/A3.html :pre
:link(atomeye,http://mt.seas.upenn.edu/Archive/Graphics/A)
:link(atomeye3,http://mt.seas.upenn.edu/Archive/Graphics/A3/A3.html)
The latter link is to AtomEye 3 which has the scriping
The latter link is to AtomEye 3 which has the scripting
capability needed by these Python scripts.
Note that for PyMol, you need to have built and installed the

View File

@ -18,13 +18,15 @@ letter abbreviation can be used:
"-i or -in"_#file
"-k or -kokkos"_#run-kokkos
"-l or -log"_#log
"-m or -mpicolor"_#mpicolor
"-nc or -nocite"_#nocite
"-pk or -package"_#package
"-p or -partition"_#partition
"-pl or -plog"_#plog
"-ps or -pscreen"_#pscreen
"-r or -restart"_#restart
"-ro or -reorder"_#reorder
"-r2data or -restart2data"_#restart2data
"-r2dump or -restart2dump"_#restart2dump
"-sc or -screen"_#screen
"-sf or -suffix"_#suffix
"-v or -var"_#var :ul
@ -175,6 +177,30 @@ Option -plog will override the name of the partition log files file.N.
:line
[-mpicolor] color :link(mpicolor)
If used, this must be the first command-line argument after the LAMMPS
executable name. It is only used when LAMMPS is launched by an mpirun
command which also launches another executable(s) at the same time.
(The other executable could be LAMMPS as well.) The color is an
integer value which should be different for each executable (another
application may set this value in a different way). LAMMPS and the
other executable(s) perform an MPI_Comm_split() with their own colors
to shrink the MPI_COMM_WORLD communication to be the subset of
processors they are actually running on.
Currently, this is only used in LAMMPS to perform client/server
messaging with another application. LAMMPS can act as either a client
or server (or both). More details are given on the "Howto
client/server"_Howto_client_server.html doc page.
Specifically, this refers to the "mpi/one" mode of messaging provided
by the "message"_message.html command and the CSlib library LAMMPS
links with from the lib/message directory. See the
"message"_message.html command for more details.
:line
[-nocite] :link(nocite)
Disable writing the log.cite file which is normally written to list
@ -255,34 +281,6 @@ specified by the -screen command-line option.
:line
[-restart restartfile {remap} datafile keyword value ...] :link(restart)
Convert the restart file into a data file and immediately exit. This
is the same operation as if the following 2-line input script were
run:
read_restart restartfile {remap}
write_data datafile keyword value ... :pre
Note that the specified restartfile and datafile can have wild-card
characters ("*",%") as described by the
"read_restart"_read_restart.html and "write_data"_write_data.html
commands. But a filename such as file.* will need to be enclosed in
quotes to avoid shell expansion of the "*" character.
Note that following restartfile, the optional flag {remap} can be
used. This has the same effect as adding it to the
"read_restart"_read_restart.html command, as explained on its doc
page. This is only useful if the reading of the restart file triggers
an error that atoms have been lost. In that case, use of the remap
flag should allow the data file to still be produced.
Also note that following datafile, the same optional keyword/value
pairs can be listed as used by the "write_data"_write_data.html
command.
:line
[-reorder] :link(reorder)
This option has 2 forms:
@ -356,6 +354,80 @@ the LAMMPS simulation domain.
:line
[-restart2data restartfile \[remap\] datafile keyword value ...]
:link(restart2data)
Convert the restart file into a data file and immediately exit. This
is the same operation as if the following 2-line input script were
run:
read_restart restartfile \[remap\]
write_data datafile keyword value ... :pre
The specified restartfile and/or datafile name may contain the wild-card
character "*". The restartfile name may also contain the wild-card
character "%". The meaning of these characters is explained on the
"read_restart"_read_restart.html and "write_data"_write_data.html doc
pages. The use of "%" means that a parallel restart file can be read.
Note that a filename such as file.* may need to be enclosed in quotes or
the "*" character prefixed with a backslash ("\") to avoid shell
expansion of the "*" character.
Following restartfile argument, the optional word "remap" may be used.
This has the same effect like adding it to a
"read_restart"_read_restart.html command, and operates as explained on
its doc page. This is useful if reading the restart file triggers an
error that atoms have been lost. In that case, use of the remap flag
should allow the data file to still be produced.
The syntax following restartfile (or remap), namely
datafile keyword value ... :pre
is identical to the arguments of the "write_data"_write_data.html
command. See its doc page for details. This includes its
optional keyword/value settings.
:line
[-restart2dump restartfile \[remap\] group-ID dumpstyle dumpfile arg1 arg2 ...] :link(restart2dump)
Convert the restart file into a dump file and immediately exit. This
is the same operation as if the following 2-line input script were
run:
read_restart restartfile \[remap\]
write_dump group-ID dumpstyle dumpfile arg1 arg2 ... :pre
Note that the specified restartfile and dumpfile names may contain
wild-card characters ("*","%") as explained on the
"read_restart"_read_restart.html and "write_dump"_write_dump.html doc
pages. The use of "%" means that a parallel restart file and/or
parallel dump file can be read and/or written. Note that a filename
such as file.* may need to be enclosed in quotes or the "*" character
prefixed with a backslash ("\") to avoid shell expansion of the "*"
character.
Note that following the restartfile argument, the optional word "remap"
can be used. This has the effect as adding it to the
"read_restart"_read_restart.html command, as explained on its doc page.
This is useful if reading the restart file triggers an error that atoms
have been lost. In that case, use of the remap flag should allow the
dump file to still be produced.
The syntax following restartfile (or remap), namely
group-ID dumpstyle dumpfile arg1 arg2 ... :pre
is identical to the arguments of the "write_dump"_write_dump.html
command. See its doc page for details. This includes what per-atom
fields are written to the dump file and optional dump_modify settings,
including ones that affect how parallel dump files are written, e.g.
the {nfile} and {fileper} keywords. See the
"dump_modify"_dump_modify.html doc page for details.
:line
[-screen file] :link(screen)
Specify a file for LAMMPS to write its screen information to. In
@ -455,7 +527,7 @@ option is equivalent to putting the line "variable name index value1
value2 ..." at the beginning of the input script. Defining an index
variable as a command-line argument overrides any setting for the same
index variable in the input script, since index variables cannot be
re-defined.
re-defined.
See the "variable"_variable.html command for more info on defining
index and other kinds of variables and the "Commands

View File

@ -41,7 +41,7 @@ path for the default location of this MPI package. After the
installation of the MPICH2 software, it needs to be integrated into
the system. For this you need to start a Command Prompt in
{Administrator Mode} (right click on the icon and select it). Change
into the MPICH2 installation directory, then into the subdirectory
into the MPICH2 installation directory, then into the sub-directory
[bin] and execute [smpd.exe -install]. Exit the command window.
Get a new, regular command prompt by going to Start->Run... ,

View File

@ -19,7 +19,7 @@ using code options that implement alternate algorithms that can
speed-up a simulation. The second is to use one of the several
accelerator packages provided with LAMMPS that contain code optimized
for certain kinds of hardware, including multi-core CPUs, GPUs, and
Intel Xeon Phi coprocessors.
Intel Xeon Phi co-processors.
The "Benchmark page"_http://lammps.sandia.gov/bench.html of the LAMMPS
web site gives performance results for the various accelerator

View File

@ -14,11 +14,11 @@ Corporation. It provides two methods for accelerating simulations,
depending on the hardware you have. The first is acceleration on
Intel CPUs by running in single, mixed, or double precision with
vectorization. The second is acceleration on Intel Xeon Phi
coprocessors via offloading neighbor list and non-bonded force
co-processors via offloading neighbor list and non-bonded force
calculations to the Phi. The same C++ code is used in both cases.
When offloading to a coprocessor from a CPU, the same routine is run
When offloading to a co-processor from a CPU, the same routine is run
twice, once on the CPU and once with an offload flag. This allows
LAMMPS to run on the CPU cores and coprocessor cores simultaneously.
LAMMPS to run on the CPU cores and co-processor cores simultaneously.
[Currently Available USER-INTEL Styles:]
@ -27,9 +27,9 @@ Bond Styles: fene, fourier, harmonic :l
Dihedral Styles: charmm, harmonic, opls :l
Fixes: nve, npt, nvt, nvt/sllod, nve/asphere :l
Improper Styles: cvff, harmonic :l
Pair Styles: airebo, airebo/morse, buck/coul/cut, buck/coul/long,
buck, dpd, eam, eam/alloy, eam/fs, gayberne, lj/charmm/coul/charmm,
lj/charmm/coul/long, lj/cut, lj/cut/coul/long, lj/long/coul/long,
Pair Styles: airebo, airebo/morse, buck/coul/cut, buck/coul/long,
buck, dpd, eam, eam/alloy, eam/fs, gayberne, lj/charmm/coul/charmm,
lj/charmm/coul/long, lj/cut, lj/cut/coul/long, lj/long/coul/long,
rebo, sw, tersoff :l
K-Space Styles: pppm, pppm/disp :l
:ule
@ -47,7 +47,7 @@ These are scalable in size; the results given are with 512K
particles (524K for Liquid Crystal). Most of the simulations are
standard LAMMPS benchmarks (indicated by the filename extension in
parenthesis) with modifications to the run length and to add a
warmup run (for use with offload benchmarks).
warm-up run (for use with offload benchmarks).
:c,image(JPG/user_intel.png)
@ -134,19 +134,19 @@ Do not use thread affinity (set KMP_AFFINITY=none) :l
The "newton off" setting may provide better scalability :l
:ule
For Intel Xeon Phi coprocessors (Offload):
For Intel Xeon Phi co-processors (Offload):
Edit src/MAKE/OPTIONS/Makefile.intel_coprocessor as necessary :ulb,l
Edit src/MAKE/OPTIONS/Makefile.intel_co-processor as necessary :ulb,l
"-pk intel N omp 1" added to command-line where N is the number of
coprocessors per node. :l
co-processors per node. :l
:ule
:line
[Required hardware/software:]
In order to use offload to coprocessors, an Intel Xeon Phi
coprocessor and an Intel compiler are required. For this, the
In order to use offload to co-processors, an Intel Xeon Phi
co-processor and an Intel compiler are required. For this, the
recommended version of the Intel compiler is 14.0.1.106 or
versions 15.0.2.044 and higher.
@ -214,7 +214,7 @@ Makefile.intel_cpu_intelmpi # Intel Compiler, Intel MPI, No Offload
Makefile.knl # Intel Compiler, Intel MPI, No Offload
Makefile.intel_cpu_mpich # Intel Compiler, MPICH, No Offload
Makefile.intel_cpu_openpmi # Intel Compiler, OpenMPI, No Offload
Makefile.intel_coprocessor # Intel Compiler, Intel MPI, Offload :pre
Makefile.intel_co-processor # Intel Compiler, Intel MPI, Offload :pre
Makefile.knl is identical to Makefile.intel_cpu_intelmpi except that
it explicitly specifies that vectorization should be for Intel Xeon
@ -227,18 +227,18 @@ source /opt/intel/parallel_studio_xe_2016.3.067/psxevars.sh
# or psxevars.csh for C-shell
make intel_cpu_intelmpi :pre
Note that if you build with support for a Phi coprocessor, the same
binary can be used on nodes with or without coprocessors installed.
However, if you do not have coprocessors on your system, building
Note that if you build with support for a Phi co-processor, the same
binary can be used on nodes with or without co-processors installed.
However, if you do not have co-processors on your system, building
without offload support will produce a smaller binary.
The general requirements for Makefiles with the USER-INTEL package
are as follows. When using Intel compilers, "-restrict" is required
and "-qopenmp" is highly recommended for CCFLAGS and LINKFLAGS.
are as follows. When using Intel compilers, "-restrict" is required
and "-qopenmp" is highly recommended for CCFLAGS and LINKFLAGS.
CCFLAGS should include "-DLMP_INTEL_USELRT" (unless POSIX Threads
are not supported in the build environment) and "-DLMP_USE_MKL_RNG"
(unless Intel Math Kernel Library (MKL) is not available in the build
environment). For Intel compilers, LIB should include "-ltbbmalloc"
environment). For Intel compilers, LIB should include "-ltbbmalloc"
or if the library is not available, "-DLMP_INTEL_NO_TBB" can be added
to CCFLAGS. For builds supporting offload, "-DLMP_INTEL_OFFLOAD" is
required for CCFLAGS and "-qoffload" is required for LINKFLAGS. Other
@ -272,7 +272,7 @@ Advanced performance tuning options are also described below to get
the best performance.
When running on a single node (including runs using offload to a
coprocessor), best performance is normally obtained by using 1 MPI
co-processor), best performance is normally obtained by using 1 MPI
task per physical core and additional OpenMP threads with SMT. For
Intel Xeon processors, 2 OpenMP threads should be used for SMT.
For Intel Xeon Phi CPUs, 2 or 4 OpenMP threads should be used
@ -290,7 +290,7 @@ NOTE: Setting core affinity is often used to pin MPI tasks and OpenMP
threads to a core or group of cores so that memory access can be
uniform. Unless disabled at build time, affinity for MPI tasks and
OpenMP threads on the host (CPU) will be set by default on the host
{when using offload to a coprocessor}. In this case, it is unnecessary
{when using offload to a co-processor}. In this case, it is unnecessary
to use other methods to control affinity (e.g. taskset, numactl,
I_MPI_PIN_DOMAIN, etc.). This can be disabled with the {no_affinity}
option to the "package intel"_package.html command or by disabling the
@ -310,15 +310,15 @@ editing the input script. This switch will automatically append
options for the USER-INTEL package. The default package command will
specify that USER-INTEL calculations are performed in mixed precision,
that the number of OpenMP threads is specified by the OMP_NUM_THREADS
environment variable, and that if coprocessors are present and the
binary was built with offload support, that 1 coprocessor per node
environment variable, and that if co-processors are present and the
binary was built with offload support, that 1 co-processor per node
will be used with automatic balancing of work between the CPU and the
coprocessor.
co-processor.
You can specify different options for the USER-INTEL package by using
the "-pk intel Nphi" "command-line switch"_Run_options.html with
keyword/value pairs as specified in the documentation. Here, Nphi = #
of Xeon Phi coprocessors/node (ignored without offload
of Xeon Phi co-processors/node (ignored without offload
support). Common options to the USER-INTEL package include {omp} to
override any OMP_NUM_THREADS setting and specify the number of OpenMP
threads, {mode} to set the floating-point precision mode, and {lrt} to
@ -332,7 +332,7 @@ Examples (see documentation for your MPI/Machine for differences in
launching MPI applications):
mpirun -np 72 -ppn 36 lmp_machine -sf intel -in in.script # 2 nodes, 36 MPI tasks/node, $OMP_NUM_THREADS OpenMP Threads
mpirun -np 72 -ppn 36 lmp_machine -sf intel -in in.script -pk intel 0 omp 2 mode double # Don't use any coprocessors that might be available, use 2 OpenMP threads for each task, use double precision :pre
mpirun -np 72 -ppn 36 lmp_machine -sf intel -in in.script -pk intel 0 omp 2 mode double # Don't use any co-processors that might be available, use 2 OpenMP threads for each task, use double precision :pre
[Or run with the USER-INTEL package by editing an input script:]
@ -364,7 +364,7 @@ intel"_package.html command that can improve performance when using
"PPPM"_kspace_style.html for long-range electrostatics on processors
with SMT. It generates an extra pthread for each MPI task. The thread
is dedicated to performing some of the PPPM calculations and MPI
communications. This feature requires setting the preprocessor flag
communications. This feature requires setting the pre-processor flag
-DLMP_INTEL_USELRT in the makefile when compiling LAMMPS. It is unset
in the default makefiles ({Makefile.mpi} and {Makefile.serial}) but
it is set in all makefiles tuned for the USER-INTEL package. On Intel
@ -399,7 +399,7 @@ the "suffix hybrid intel omp"_suffix.html command can also be used
within the input script to automatically append the "omp" suffix to
styles when USER-INTEL styles are not available.
NOTE: For simulations on higher node counts, add "processors * * *
NOTE: For simulations on higher node counts, add "processors * * *
grid numa"_processors.html to the beginning of the input script for
better scalability.
@ -422,29 +422,29 @@ that MPI runs are performed in MCDRAM.
The default settings for offload should give good performance.
When using LAMMPS with offload to Intel coprocessors, best performance
When using LAMMPS with offload to Intel co-processors, best performance
will typically be achieved with concurrent calculations performed on
both the CPU and the coprocessor. This is achieved by offloading only
a fraction of the neighbor and pair computations to the coprocessor or
both the CPU and the co-processor. This is achieved by offloading only
a fraction of the neighbor and pair computations to the co-processor or
using "hybrid"_pair_hybrid.html pair styles where only one style uses
the "intel" suffix. For simulations with long-range electrostatics or
bond, angle, dihedral, improper calculations, computation and data
transfer to the coprocessor will run concurrently with computations
transfer to the co-processor will run concurrently with computations
and MPI communications for these calculations on the host CPU. This
is illustrated in the figure below for the rhodopsin protein benchmark
running on E5-2697v2 processors with a Intel Xeon Phi 7120p
coprocessor. In this plot, the vertical access is time and routines
co-processor. In this plot, the vertical access is time and routines
running at the same time are running concurrently on both the host and
the coprocessor.
the co-processor.
:c,image(JPG/offload_knc.png)
The fraction of the offloaded work is controlled by the {balance}
keyword in the "package intel"_package.html command. A balance of 0
runs all calculations on the CPU. A balance of 1 runs all
supported calculations on the coprocessor. A balance of 0.5 runs half
of the calculations on the coprocessor. Setting the balance to -1
(the default) will enable dynamic load balancing that continously
supported calculations on the co-processor. A balance of 0.5 runs half
of the calculations on the co-processor. Setting the balance to -1
(the default) will enable dynamic load balancing that continuously
adjusts the fraction of offloaded work throughout the simulation.
Because data transfer cannot be timed, this option typically produces
results within 5 to 10 percent of the optimal fixed balance.
@ -455,23 +455,23 @@ near-optimal setting that will carry over to additional runs.
The default for the "package intel"_package.html command is to have
all the MPI tasks on a given compute node use a single Xeon Phi
coprocessor. In general, running with a large number of MPI tasks on
co-processor. In general, running with a large number of MPI tasks on
each node will perform best with offload. Each MPI task will
automatically get affinity to a subset of the hardware threads
available on the coprocessor. For example, if your card has 61 cores,
available on the co-processor. For example, if your card has 61 cores,
with 60 cores available for offload and 4 hardware threads per core
(240 total threads), running with 24 MPI tasks per node will cause
each MPI task to use a subset of 10 threads on the coprocessor. Fine
each MPI task to use a subset of 10 threads on the co-processor. Fine
tuning of the number of threads to use per MPI task or the number of
threads to use per core can be accomplished with keyword settings of
the "package intel"_package.html command.
The USER-INTEL package has two modes for deciding which atoms will be
handled by the coprocessor. This choice is controlled with the {ghost}
handled by the co-processor. This choice is controlled with the {ghost}
keyword of the "package intel"_package.html command. When set to 0,
ghost atoms (atoms at the borders between MPI tasks) are not offloaded
to the card. This allows for overlap of MPI communication of forces
with computation on the coprocessor when the "newton"_newton.html
with computation on the co-processor when the "newton"_newton.html
setting is "on". The default is dependent on the style being used,
however, better performance may be achieved by setting this option
explicitly.
@ -482,24 +482,24 @@ cores. This is due to the fact that additional threads are generated
internally to handle the asynchronous offload tasks.
If pair computations are being offloaded to an Intel Xeon Phi
coprocessor, a diagnostic line is printed to the screen (not to the
co-processor, a diagnostic line is printed to the screen (not to the
log file), during the setup phase of a run, indicating that offload
mode is being used and indicating the number of coprocessor threads
mode is being used and indicating the number of co-processor threads
per MPI task. Additionally, an offload timing summary is printed at
the end of each run. When offloading, the frequency for "atom
sorting"_atom_modify.html is changed to 1 so that the per-atom data is
effectively sorted at every rebuild of the neighbor lists. All the
available coprocessor threads on each Phi will be divided among MPI
available co-processor threads on each Phi will be divided among MPI
tasks, unless the {tptask} option of the "-pk intel" "command-line
switch"_Run_options.html is used to limit the coprocessor threads per
switch"_Run_options.html is used to limit the co-processor threads per
MPI task.
[Restrictions:]
When offloading to a coprocessor, "hybrid"_pair_hybrid.html styles
When offloading to a co-processor, "hybrid"_pair_hybrid.html styles
that require skip lists for neighbor builds cannot be offloaded.
Using "hybrid/overlay"_pair_hybrid.html is allowed. Only one intel
accelerated style may be used with hybrid styles.
accelerated style may be used with hybrid styles when offloading.
"Special_bonds"_special_bonds.html exclusion lists are not currently
supported with offload, however, the same effect can often be
accomplished by setting cutoffs for excluded atom types to 0. None of
@ -510,7 +510,7 @@ supported.
[References:]
Brown, W.M., Carrillo, J.-M.Y., Mishra, B., Gavhane, N., Thakker, F.M., De Kraker, A.R., Yamada, M., Ang, J.A., Plimpton, S.J., "Optimizing Classical Molecular Dynamics in LAMMPS," in Intel Xeon Phi Processor High Performance Programming: Knights Landing Edition, J. Jeffers, J. Reinders, A. Sodani, Eds. Morgan Kaufmann. :ulb,l
Brown, W.M., Carrillo, J.-M.Y., Mishra, B., Gavhane, N., Thakkar, F.M., De Kraker, A.R., Yamada, M., Ang, J.A., Plimpton, S.J., "Optimizing Classical Molecular Dynamics in LAMMPS," in Intel Xeon Phi Processor High Performance Programming: Knights Landing Edition, J. Jeffers, J. Reinders, A. Sodani, Eds. Morgan Kaufmann. :ulb,l
Brown, W. M., Semin, A., Hebenstreit, M., Khvostov, S., Raman, K., Plimpton, S.J. "Increasing Molecular Dynamics Simulation Rates with an 8-Fold Increase in Electrical Power Efficiency."_http://dl.acm.org/citation.cfm?id=3014915 2016 High Performance Computing, Networking, Storage and Analysis, SC16: International Conference (pp. 82-95). :l

View File

@ -13,11 +13,11 @@ Kokkos is a templated C++ library that provides abstractions to allow
a single implementation of an application kernel (e.g. a pair style)
to run efficiently on different kinds of hardware, such as GPUs, Intel
Xeon Phis, or many-core CPUs. Kokkos maps the C++ kernel onto
different backend languages such as CUDA, OpenMP, or Pthreads. The
different back end languages such as CUDA, OpenMP, or Pthreads. The
Kokkos library also provides data abstractions to adjust (at compile
time) the memory layout of data structures like 2d and 3d arrays to
optimize performance on different hardware. For more information on
Kokkos, see "Github"_https://github.com/kokkos/kokkos. Kokkos is part
Kokkos, see "GitHub"_https://github.com/kokkos/kokkos. Kokkos is part
of "Trilinos"_http://trilinos.sandia.gov/packages/kokkos. The Kokkos
library was written primarily by Carter Edwards, Christian Trott, and
Dan Sunderland (all Sandia).
@ -106,6 +106,11 @@ modification to the input script is needed. Alternatively, one can run
with the KOKKOS package by editing the input script as described
below.
NOTE: When using a single OpenMP thread, the Kokkos Serial back end (i.e.
Makefile.kokkos_mpi_only) will give better performance than the OpenMP
back end (i.e. Makefile.kokkos_omp) because some of the overhead to make
the code thread-safe is removed.
NOTE: The default for the "package kokkos"_package.html command is to
use "full" neighbor lists and set the Newton flag to "off" for both
pairwise and bonded interactions. However, when running on CPUs, it
@ -122,6 +127,22 @@ mpirun -np 16 lmp_kokkos_mpi_only -k on -sf kk -pk kokkos newton on neigh half c
If the "newton"_newton.html command is used in the input
script, it can also override the Newton flag defaults.
For half neighbor lists and OpenMP, the KOKKOS package uses data
duplication (i.e. thread-private arrays) by default to avoid
thread-level write conflicts in the force arrays (and other data
structures as necessary). Data duplication is typically fastest for
small numbers of threads (i.e. 8 or less) but does increase memory
footprint and is not scalable to large numbers of threads. An
alternative to data duplication is to use thread-level atomic operations
which do not require data duplication. The use of atomic operations can
be enforced by compiling LAMMPS with the "-DLMP_KOKKOS_USE_ATOMICS"
pre-processor flag. Most but not all Kokkos-enabled pair_styles support
data duplication. Alternatively, full neighbor lists avoid the need for
duplication or atomic operations but require more compute operations per
atom. When using the Kokkos Serial back end or the OpenMP back end with
a single thread, no duplication or atomic operations are used. For CUDA
and half neighbor lists, the KOKKOS package always uses atomic operations.
[Core and Thread Affinity:]
When using multi-threading, it is important for performance to bind
@ -172,7 +193,7 @@ threads/task as Nt. The product of these two values should be N, i.e.
NOTE: The default for the "package kokkos"_package.html command is to
use "full" neighbor lists and set the Newton flag to "off" for both
pairwise and bonded interactions. When running on KNL, this will
typically be best for pair-wise potentials. For manybody potentials,
typically be best for pair-wise potentials. For many-body potentials,
using "half" neighbor lists and setting the Newton flag to "on" may be
faster. It can also be faster to use non-threaded communication. Use
the "-pk kokkos" "command-line switch"_Run_options.html to change the
@ -186,7 +207,7 @@ mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos newton on neigh half co
NOTE: MPI tasks and threads should be bound to cores as described
above for CPUs.
NOTE: To build with Kokkos support for Intel Xeon Phi coprocessors
NOTE: To build with Kokkos support for Intel Xeon Phi co-processors
such as Knight's Corner (KNC), your system must be configured to use
them in "native" mode, not "offload" mode like the USER-INTEL package
supports.

View File

@ -131,7 +131,7 @@ effect worsens when using an increasing number of nodes. :l
The system has a spatially inhomogeneous particle density which does
not map well to the "domain decomposition scheme"_processors.html or
"load-balancing"_balance.html options that LAMMPS provides. This is
because multi-threading achives parallelism over the number of
because multi-threading achieves parallelism over the number of
particles, not via their distribution in space. :l
A machine is being used in "capability mode", i.e. near the point
@ -143,7 +143,7 @@ the performance-limiting factor. Using multi-threading allows less
MPI tasks to be invoked and can speed-up the long-range solver, while
increasing overall performance by parallelizing the pairwise and
bonded calculations via OpenMP. Likewise additional speedup can be
sometimes be achived by increasing the length of the Coulombic cutoff
sometimes be achieved by increasing the length of the Coulombic cutoff
and thus reducing the work done by the long-range solver. Using the
"run_style verlet/split"_run_style.html command, which is compatible
with the USER-OMP package, is an alternative way to reduce the number

View File

@ -14,7 +14,7 @@ Accelerated versions of various "pair_style"_pair_style.html,
been added to LAMMPS, which will typically run faster than the
standard non-accelerated versions. Some require appropriate hardware
to be present on your system, e.g. GPUs or Intel Xeon Phi
coprocessors.
co-processors.
All of these commands are in packages provided with LAMMPS. An
overview of packages is give on the "Packages"_Packages.html doc
@ -161,7 +161,7 @@ package. These styles support vectorized single and mixed precision
calculations, in addition to full double precision. In extreme cases,
this can provide speedups over 3.5x on CPUs. The package also
supports acceleration in "offload" mode to Intel(R) Xeon Phi(TM)
coprocessors. This can result in additional speedup over 2x depending
co-processors. This can result in additional speedup over 2x depending
on the hardware configuration. :l
Styles with a "kk" suffix are part of the KOKKOS package, and can be

View File

@ -163,7 +163,7 @@ for the "chain benchmark"_Speed_bench.html.
colvars tools :h4,link(colvars)
The colvars directory contains a collection of tools for postprocessing
The colvars directory contains a collection of tools for post-processing
data produced by the colvars collective variable library.
To compile the tools, edit the makefile for your system and run "make".
@ -263,7 +263,7 @@ These tools were provided by Andres Jaramillo-Botero at CalTech
emacs tool :h4,link(emacs)
The tools/emacs directory contains an Emacs Lisp add-on file for GNU Emacs
The tools/emacs directory contains an Emacs Lisp add-on file for GNU Emacs
that enables a lammps-mode for editing input scripts when using GNU Emacs,
with various highlighting options set up.
@ -406,15 +406,15 @@ supports it. It has its own WWW page at
msi2lmp tool :h4,link(msi)
The msi2lmp sub-directory contains a tool for creating LAMMPS template
input and data files from BIOVIA's Materias Studio files (formerly Accelrys'
Insight MD code, formerly MSI/Biosym and its Discover MD code).
input and data files from BIOVIA's Materias Studio files (formerly
Accelrys' Insight MD code, formerly MSI/Biosym and its Discover MD code).
This tool was written by John Carpenter (Cray), Michael Peachey
(Cray), and Steve Lustig (Dupont). Several people contributed changes
to remove bugs and adapt its output to changes in LAMMPS.
This tool has several known limitations and is no longer under active
development, so there are no changes except for the occasional bugfix.
development, so there are no changes except for the occasional bug fix.
See the README file in the tools/msi2lmp folder for more information.

View File

@ -7,8 +7,8 @@
:line
angle_style class2 command :h3
angle_style class2/omp command :h3
angle_style class2/kk command :h3
angle_style class2/omp command :h3
angle_style class2/p6 command :h3
[Syntax:]

View File

@ -60,26 +60,14 @@ doc page for details.
:line
Here is an alphabetic list of angle styles defined in LAMMPS. Click on
the style to display the formula it computes and coefficients
specified by the associated "angle_coeff"_angle_coeff.html command.
Note that there are also additional angle styles submitted by users
which are included in the LAMMPS distribution. The full list of all
angle styles is on the "Commands bond"_Commands_bond.html#angle doc
The list of all angle styles defined in LAMMPS is given on the
"angle_style"_angle_style.html doc page. They are also listed in more
compact form on the "Commands angle"_Commands_bond.html#angle doc
page.
"angle_style none"_angle_none.html - turn off angle interactions
"angle_style hybrid"_angle_hybrid.html - define multiple styles of angle interactions :ul
"angle_style charmm"_angle_charmm.html - CHARMM angle
"angle_style class2"_angle_class2.html - COMPASS (class 2) angle
"angle_style cosine"_angle_cosine.html - cosine angle potential
"angle_style cosine/delta"_angle_cosine_delta.html - difference of cosines angle potential
"angle_style cosine/periodic"_angle_cosine_periodic.html - DREIDING angle
"angle_style cosine/squared"_angle_cosine_squared.html - cosine squared angle potential
"angle_style harmonic"_angle_harmonic.html - harmonic angle
"angle_style table"_angle_table.html - tabulated by angle :ul
On either of those pages, click on the style to display the formula it
computes and its coefficients as specified by the associated
angle_coeff command.
:line

View File

@ -23,25 +23,25 @@ The {cosine/buck6d} angle style uses the potential
:c,image(Eqs/angle_cosine_buck6d.jpg)
where K is the energy constant, n is the periodic multiplicity and
where K is the energy constant, n is the periodic multiplicity and
Theta0 is the equilibrium angle.
The coefficients must be defined for each angle type via the
The coefficients must be defined for each angle type via the
"angle_coeff"_angle_coeff.html command as in the example above, or in
the data file or restart files read by the "read_data"_read_data.html
or "read_restart"_read_restart.html commands in the following order:
K (energy)
n
n
Theta0 (degrees) :ul
Theta0 is specified in degrees, but LAMMPS converts it to radians
Theta0 is specified in degrees, but LAMMPS converts it to radians
internally.
Additional to the cosine term the {cosine/buck6d} angle style computes
the short range (vdW) interaction belonging to the
"pair_buck6d"_pair_buck6d_coul_gauss.html between the end atoms of
the angle. For this reason this angle style only works in combination
Additional to the cosine term the {cosine/buck6d} angle style computes
the short range (vdW) interaction belonging to the
"pair_buck6d"_pair_buck6d_coul_gauss.html between the end atoms of the
angle. For this reason this angle style only works in combination
with the "pair_buck6d"_pair_buck6d_coul_gauss.html styles and needs
the "special_bonds"_special_bonds.html 1-3 interactions to be weighted
0.0 to prevent double counting.
@ -51,8 +51,8 @@ the "special_bonds"_special_bonds.html 1-3 interactions to be weighted
[Restrictions:]
{cosine/buck6d} can only be used in combination with the
"pair_buck6d"_pair_buck6d_coul_gauss.html style and with a
"special_bonds"_special_bonds.html 0.0 weighting of 1-3 interactions.
"pair_buck6d"_pair_buck6d_coul_gauss.html style and with a
"special_bonds"_special_bonds.html 0.0 weighting of 1-3 interactions.
This angle style can only be used if LAMMPS was built with the
USER-MOFFF package. See the "Build package"_Build_package.html doc

View File

@ -63,7 +63,7 @@ instructions on how to use the accelerated styles effectively.
[Restrictions:]
This angle style can only be used if LAMMPS was built with the
USER-MISC package.
USER-MISC package.
[Related commands:]

View File

@ -7,6 +7,7 @@
:line
angle_style sdk command :h3
angle_style sdk/omp command :h3
[Syntax:]
@ -27,7 +28,7 @@ The {sdk} angle style is a combination of the harmonic angle potential,
where theta0 is the equilibrium value of the angle and K a prefactor,
with the {repulsive} part of the non-bonded {lj/sdk} pair style
between the atoms 1 and 3. This angle potential is intended for
coarse grained MD simulations with the CMM parametrization using the
coarse grained MD simulations with the CMM parameterization using the
"pair_style lj/sdk"_pair_sdk.html. Relative to the pair_style
{lj/sdk}, however, the energy is shifted by {epsilon}, to avoid sudden
jumps. Note that the usual 1/2 factor is included in K.
@ -43,6 +44,30 @@ internally; hence the units of K are in energy/radian^2.
The also required {lj/sdk} parameters will be extracted automatically
from the pair_style.
:line
Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
functionally the same as the corresponding style without the suffix.
They have been optimized to run faster, depending on your available
hardware, as discussed on the "Speed packages"_Speed_packages.html doc
page. The accelerated styles take the same arguments and should
produce the same results, except for round-off and precision issues.
These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
USER-OMP and OPT packages, respectively. They are only enabled if
LAMMPS was built with those packages. See the "Build
package"_Build_package.html doc page for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line
switch"_Run_options.html when you invoke LAMMPS, or you can use the
"suffix"_suffix.html command in your input script.
See the "Speed packages"_Speed_packages.html doc page for more
instructions on how to use the accelerated styles effectively.
:line
[Restrictions:]
This angle style can only be used if LAMMPS was built with the

View File

@ -57,23 +57,37 @@ Here is an alphabetic list of angle styles defined in LAMMPS. Click on
the style to display the formula it computes and coefficients
specified by the associated "angle_coeff"_angle_coeff.html command.
Note that there are also additional angle styles submitted by users
which are included in the LAMMPS distribution. The full list of all
angle styles are is on the "Commands bond"_Commands_bond.html#angle
doc page.
Click on the style to display the formula it computes, any additional
arguments specified in the angle_style command, and coefficients
specified by the associated "angle_coeff"_angle_coeff.html command.
"angle_style none"_angle_none.html - turn off angle interactions
"angle_style zero"_angle_zero.html - topology but no interactions
"angle_style hybrid"_angle_hybrid.html - define multiple styles of angle interactions :ul
There are also additional accelerated pair styles included in the
LAMMPS distribution for faster performance on CPUs, GPUs, and KNLs.
The individual style names on the "Commands
angle"_Commands_bond.html#angle doc page are followed by one or more
of (g,i,k,o,t) to indicate which accelerated styles exist.
"angle_style charmm"_angle_charmm.html - CHARMM angle
"angle_style class2"_angle_class2.html - COMPASS (class 2) angle
"angle_style cosine"_angle_cosine.html - cosine angle potential
"angle_style cosine/delta"_angle_cosine_delta.html - difference of cosines angle potential
"angle_style cosine/periodic"_angle_cosine_periodic.html - DREIDING angle
"angle_style cosine/squared"_angle_cosine_squared.html - cosine squared angle potential
"angle_style harmonic"_angle_harmonic.html - harmonic angle
"angle_style table"_angle_table.html - tabulated by angle :ul
"none"_angle_none.html - turn off angle interactions
"zero"_angle_zero.html - topology but no interactions
"hybrid"_angle_hybrid.html - define multiple styles of angle interactions :ul
"charmm"_angle_charmm.html - CHARMM angle
"class2"_angle_class2.html - COMPASS (class 2) angle
"class2/p6"_angle_class2.html - COMPASS (class 2) angle expanded to 6th order
"cosine"_angle_cosine.html - angle with cosine term
"cosine/buck6d"_angle_cosine_buck6d.html - same as cosine with Buckingham term between 1-3 atoms
"cosine/delta"_angle_cosine_delta.html - angle with difference of cosines
"cosine/periodic"_angle_cosine_periodic.html - DREIDING angle
"cosine/shift"_angle_cosine_shift.html - angle cosine with a shift
"cosine/shift/exp"_angle_cosine_shift_exp.html - cosine with shift and exponential term in spring constant
"cosine/squared"_angle_cosine_squared.html - angle with cosine squared term
"dipole"_angle_dipole.html - angle that controls orientation of a point dipole
"fourier"_angle_fourier.html - angle with multiple cosine terms
"fourier/simple"_angle_fourier_simple.html - angle with a single cosine term
"harmonic"_angle_harmonic.html - harmonic angle
"quartic"_angle_quartic.html - angle with cubic and quartic terms
"sdk"_angle_sdk.html - harmonic angle with repulsive SDK pair style between 1-3 atoms
"table"_angle_table.html - tabulated by angle :ul
:line

View File

@ -39,7 +39,7 @@ atom_style body nparticle 2 10
atom_style hybrid charge bond
atom_style hybrid charge body nparticle 2 5
atom_style spin
atom_style template myMols
atom_style template myMols
atom_style tdpd 2 :pre
[Description:]
@ -87,7 +87,7 @@ quantities.
{line} | end points, angular velocity | rigid bodies |
{meso} | rho, e, cv | SPH particles |
{molecular} | bonds, angles, dihedrals, impropers | uncharged molecules |
{peri} | mass, volume | mesocopic Peridynamic models |
{peri} | mass, volume | mesoscopic Peridynamic models |
{smd} | volume, kernel diameter, contact radius, mass | solid and fluid SPH particles |
{sphere} | diameter, mass, angular velocity | granular models |
{spin} | magnetic moment | system with magnetic particles |
@ -309,9 +309,9 @@ force fields"_pair_eff.html.
The {dpd} style is part of the USER-DPD package for dissipative
particle dynamics (DPD).
The {edpd}, {mdpd}, and {tdpd} styles are part of the USER-MESO package
for energy-conserving dissipative particle dynamics (eDPD), many-body
dissipative particle dynamics (mDPD), and transport dissipative particle
The {edpd}, {mdpd}, and {tdpd} styles are part of the USER-MESO package
for energy-conserving dissipative particle dynamics (eDPD), many-body
dissipative particle dynamics (mDPD), and transport dissipative particle
dynamics (tDPD), respectively.
The {meso} style is part of the USER-SPH package for smoothed particle

View File

@ -247,7 +247,7 @@ to {Niter} times. After each dimension finishes, the imbalance factor
is re-computed, and the balancing operation halts if the {stopthresh}
criterion is met.
A rebalance operation in a single dimension is performed using a
A re-balance operation in a single dimension is performed using a
recursive multisectioning algorithm, where the position of each
cutting plane (line in 2d) in the dimension is adjusted independently.
This is similar to a recursive bisectioning for a single value, except
@ -261,11 +261,11 @@ information, so that they become closer together over time. Thus as
the recursion progresses, the count of particles on either side of the
plane gets closer to the target value.
Once the rebalancing is complete and final processor sub-domains
Once the re-balancing is complete and final processor sub-domains
assigned, particles are migrated to their new owning processor, and
the balance procedure ends.
NOTE: At each rebalance operation, the bisectioning for each cutting
NOTE: At each re-balance operation, the bisectioning for each cutting
plane (line in 2d) typically starts with low and high bounds separated
by the extent of a processor's sub-domain in one dimension. The size
of this bracketing region shrinks by 1/2 every iteration. Thus if
@ -348,7 +348,7 @@ specified groups, its weight is not changed. If it belongs to
multiple groups, its weight is the product of the weight factors.
This weight style is useful in combination with pair style
"hybrid"_pair_hybrid.html, e.g. when combining a more costly manybody
"hybrid"_pair_hybrid.html, e.g. when combining a more costly many-body
potential with a fast pair-wise potential. It is also useful when
using "run_style respa"_run_style.html where some portions of the
system have many bonded interactions and others none. It assumes that
@ -510,9 +510,13 @@ each processor, instead of 4, and "SQUARES" replaced by "CUBES".
For 2d simulations, the {z} style cannot be used. Nor can a "z"
appear in {dimstr} for the {shift} style.
Balancing through recursive bisectioning ({rcb} style) requires
"comm_style tiled"_comm_style.html
[Related commands:]
"group"_group.html, "processors"_processors.html,
"fix balance"_fix_balance.html
"fix balance"_fix_balance.html, "comm_style"_comm_style.html
[Default:] none
:link(pizza,http://pizza.sandia.gov)

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