Compare commits

..

265 Commits

Author SHA1 Message Date
3b480397d1 Merge pull request #2822 from akohlmey/next_patch_release
Step version strings for next patch release
2021-07-02 17:08:28 -04:00
c2a12f97c5 Merge pull request #2818 from akohlmey/package-reorganization-step1
Package Reorganization (step 1)
2021-07-02 16:16:19 -04:00
ce9351d7e7 add package update processing for cythonize 2021-07-02 15:55:17 -04:00
b075d18b38 ML-IAP Python interface depends on PYTHON package 2021-07-02 15:24:32 -04:00
5408210623 reformat 2021-07-02 14:34:23 -04:00
dbeaec4957 reformat 2021-07-02 14:17:00 -04:00
34fa0da60e Merge branch 'master' into package-reorganization-step1
# Conflicts:
#	doc/src/Packages_details.rst
2021-07-02 13:24:49 -04:00
411d1f1240 move fix imd from USER-MISC to MISC 2021-07-02 13:19:47 -04:00
bf5934e581 Merge pull request #2795 from jtclemm/fabric
Add fabric tensor compute
2021-07-01 21:59:48 -04:00
f4d4da32a7 Merge pull request #2470 from lammps/kk_finalize
Fix issue with Kokkos::finalize and library interface
2021-07-01 21:11:49 -04:00
c495fdfdf3 step version strings for next patch release 2021-07-01 20:17:07 -04:00
76526ef2b7 Merge pull request #2817 from julient31/exchange-biquadratic
Correcting a small bug in fix nve/spin
2021-07-01 20:12:12 -04:00
a370e9e329 DPD basic styles have GPU package versions 2021-07-01 00:58:10 -04:00
58196d57f1 New package DPD-BASIC with pair styles dpd, dpd/tstat, dpd/ext, dpd/ext/tstat 2021-07-01 00:51:55 -04:00
88c8d1a3c6 rename "minimal" preset to "basic" 2021-06-30 20:39:17 -04:00
e4bb7da69f small tweak 2021-06-30 20:25:21 -04:00
b1d16508fe small tweak to recover first initialization settings for consistent output 2021-06-30 17:40:42 -04:00
2ca87ccd3f handle package dependency issues 2021-06-30 15:09:58 -04:00
63da5c4ba1 fix typo 2021-06-30 15:08:24 -04:00
7ba9c22d2c update installation instructions and remove references to patches which we don't provide anymore 2021-06-30 14:54:58 -04:00
11328cbed2 update package variables and implement minimal/most selection of packages 2021-06-30 14:45:26 -04:00
1c25caaa6e convert explicit tables of packages to simpler to maintain table from list constructs 2021-06-30 14:40:20 -04:00
d7a24dee91 Add warning 2021-06-30 12:08:33 -06:00
4928bd8b3d Merge branch 'master' of github.com:lammps/lammps into kk_finalize 2021-06-30 10:18:12 -06:00
d47f2aca53 recover compilation with CMake 2021-06-29 22:18:27 -04:00
cc0d9f2be0 recover building the manual 2021-06-29 21:49:21 -04:00
16002ddb54 rename some more example folders 2021-06-29 21:48:57 -04:00
9d208c9ebd rename some examples folders 2021-06-29 20:25:18 -04:00
878795e64a bulk rename of remaining USER- packages 2021-06-29 20:12:59 -04:00
2d4bb8f38c rename USER-MESODPD and USER-SDPD to DPD-MESO and DPD-SMOOTH 2021-06-29 19:45:38 -04:00
8e185a1a12 rename USER-DPD to DPD-REACT 2021-06-29 19:41:23 -04:00
6ceedb62be rename USER-REAXC to REAXFF 2021-06-29 19:37:55 -04:00
1dc25b0e10 rename USER-OMP to OPENMP 2021-06-29 17:48:22 -04:00
c085e55695 rename USER-SMD package to MACHDYN 2021-06-29 17:19:39 -04:00
8bf6805e1d rename USER-LB to LATBOLTZ 2021-06-29 17:07:14 -04:00
dc3efd17d2 rename USER-MEAMC to MEAM and pair style meam/c to meam (keeping meam/c as an alias) 2021-06-29 16:59:05 -04:00
995195606e rename USER-RANN to ML-RANN 2021-06-29 16:32:06 -04:00
c582d5b5ce update path to examples in README files 2021-06-29 15:58:08 -04:00
d52cd88492 rename USER-QUIP to ML-QUIP 2021-06-29 15:55:41 -04:00
fd24820603 rename USER-PACE to ML-PACE 2021-06-29 15:45:50 -04:00
031e537d3f rename USER-HDNNP to ML-HDNNP 2021-06-29 15:38:45 -04:00
efaec31a84 rename USER-CGDNA and USER-CGSDK to CG-DNA and CG-SDK 2021-06-29 15:28:27 -04:00
aeeb79b188 correcting small bug in fix nve/spin 2021-06-29 12:31:50 -06:00
9cb82f4033 update docs for renames examples folders 2021-06-29 11:31:57 -04:00
7390d8e344 remove bogus folder 2021-06-29 11:31:31 -04:00
4342987043 rename example folders 2021-06-29 11:23:47 -04:00
b8c5f08e75 improve error message 2021-06-29 11:13:44 -04:00
e482502691 rename SNAP package to ML-SNAP and fix up some remaining MLIAP to ML-IAP issues 2021-06-29 11:06:59 -04:00
553a06e823 remove bogus file 2021-06-29 10:44:40 -04:00
eda2cd965e rename MLIAP package to ML-IAP 2021-06-29 10:44:32 -04:00
105c86399b Merge pull request #2813 from akohlmey/collected-small-changes
Collected small changes
2021-06-28 20:14:01 -04:00
dd822848b4 add doi to citations 2021-06-28 10:47:28 -04:00
4d6bef3e04 modernize using utility functions 2021-06-28 10:43:35 -04:00
4a21a0e727 make handling of 2theta values consistent including using the default 2021-06-28 10:17:48 -04:00
9a740a4a60 add lammps_kokos_finalize() support to various LAMMPS wrappers and document 2021-06-27 17:07:42 -04:00
2ef47fce69 add missing initializer for KokkosLMP::is_finalized 2021-06-27 16:08:22 -04:00
8ec3d90f5c simplify 2021-06-27 15:41:59 -04:00
ef54c7290e must pass pointer to Error class as argument since static functions don't have access to "this" 2021-06-27 15:40:38 -04:00
54351bb3d8 consolidate initialization, reformat 2021-06-27 15:18:50 -04:00
5d9b5261fb address possible 32-bit integer overflow issues reported by static code analysis 2021-06-27 15:04:01 -04:00
e8646f6aaf fix very minor memory leak issues reported by static code analysis 2021-06-27 15:03:12 -04:00
78d1c8bc7e USER-MOLFILE depends on CMAKE_DL_LIBS when not compiling on Windows 2021-06-27 14:39:53 -04:00
4a0750ade0 correct documentation under restrictions for temp/csld and temp/csvr fixes 2021-06-25 15:46:30 -04:00
a74a718b6f Add additional error check 2021-06-25 10:47:55 -06:00
30ac0107c8 Remove unused function 2021-06-25 10:32:54 -06:00
2d5e8f050a Make Kokkos init/finalize calls safer 2021-06-24 13:25:35 -06:00
ddac9c21dc Update from master 2021-06-24 11:57:21 -06:00
9fb7e25413 correct escape 2021-06-24 09:25:35 -04:00
8a344918a9 no escape needed 2021-06-24 09:15:58 -04:00
652864ed5c Merge pull request #2810 from akohlmey/collected-small-changes
Collected small changes
2021-06-23 19:30:04 -04:00
f5f5721cfb reformat 2021-06-22 18:29:13 -04:00
2741279254 Adding correct scalar variable 2021-06-22 14:40:10 -06:00
d5e5f590e8 Updating documentation, adding compute scalar 2021-06-22 14:14:25 -06:00
cc7538e7b9 fix cut-n-paste bug in AtomVec class 2021-06-22 13:14:24 -04:00
8f60a54656 update USER-RANN example to run faster and provide reference logs 2021-06-22 12:27:05 -04:00
f4de4902e2 new compute dipole command 2021-06-22 11:57:29 -04:00
31011252e3 reformat, mention compute dipole 2021-06-22 11:57:08 -04:00
60e1c2be6d fix formatting and spelling 2021-06-22 11:56:46 -04:00
95f713bd38 skip testing the fortran module if CMake cannot identify the fortran compiler
this avoids compilation failure with the new llvm based flang (aka f18)
2021-06-21 17:25:29 -04:00
ae86364402 replace non-standard variable-length arrays with normal allocations 2021-06-21 16:57:53 -04:00
28fa06b298 turn off extra warnings with gcc.cmake preset and introduce a pedantic preset
the pedantic preset turns warnings about variable length arrays to errors
2021-06-21 16:57:05 -04:00
55dc5216a0 Revert "update googletest"
googletest compilation breaks on CentOS7 with native compilers
thus we are going back to version 1.10 (for now).

This reverts commit c6d950d35e.
2021-06-21 16:36:24 -04:00
ddc596170e Merge pull request #2803 from akohlmey/collected-small-changes
Collected small changes
2021-06-21 12:59:16 -04:00
f59273fb09 Merge pull request #2796 from macstein/mliap_so3_ver2
Add support for SO3 descriptor to MLIAP package
2021-06-21 11:03:11 -04:00
72221238d6 correct indentation 2021-06-21 09:45:35 -04:00
2624e3fd8f add unit test for pair style rann 2021-06-20 22:14:06 -04:00
3a079c666c fix bug when reading masses 2021-06-20 22:13:47 -04:00
a4c8650d2a plug memory leaks in USER-PACE 2021-06-20 21:29:49 -04:00
651772e6fa spelling 2021-06-20 15:51:38 -04:00
0ce9d147a4 fix typo 2021-06-20 15:50:07 -04:00
e8f1a7a182 silence compiler warnings 2021-06-19 21:30:22 -04:00
15033d59e6 reorder package details paragraphs, fix broken reference to plumed 2021-06-19 20:37:29 -04:00
b3c3714e7d pair style bop is not compatible with hybrid styles and multi-cutoff 2021-06-18 23:39:42 -04:00
94ff9d1796 add missing word 2021-06-18 23:39:09 -04:00
eef68062dd Merge branch 'master' of github.com:joeweaver/lammps into collected-small-changes 2021-06-18 06:53:21 -04:00
2a15276005 Fix omitted word typo
Very minor edit. Not sure if a fork and PR is the way you'd prefer edits or if I should've just filed an issue/sent an email.
2021-06-18 11:17:37 +01:00
6a07942428 Merge pull request #2802 from tc387/charge-regulation-update
Added variable pH support and fixed Ewald self-energy updating
2021-06-17 23:02:14 -04:00
396b426cd1 reformat 2021-06-17 16:30:49 -04:00
af802d18d1 update gcc preset to include gfortran 2021-06-17 13:33:33 -04:00
1225dda3ad update MathJax to version 3.2.0 2021-06-17 10:57:15 -04:00
4b83439eeb reformat and modernize 2021-06-17 10:35:35 -04:00
a90a48c038 update ASPHERE box/srd example 2021-06-17 10:35:07 -04:00
5a511c2e92 whitespace 2021-06-17 09:56:14 -04:00
45048a7384 silence compiler warnings, remove dead code, simplify 2021-06-16 13:57:13 -04:00
b7e059126a silence compiler warnings 2021-06-16 13:47:23 -04:00
e207896632 silence compiler warnings, simplify 2021-06-16 13:18:32 -04:00
9eefa39201 silence compiler warnings 2021-06-16 13:17:25 -04:00
afdca31d01 reformat 2021-06-16 08:40:40 -04:00
1bb9fb2819 changed natoms to nlocal 2021-06-15 10:55:17 -07:00
6b56177e48 small updated to variable description in fix_charge_regulation.rst 2021-06-15 10:44:45 -05:00
d88577f44b whitespace 2021-06-15 10:52:07 -04:00
03d8ae04bd simplify 2021-06-15 10:48:19 -04:00
f380f8915f Merge branch 'master' into charge-regulation-update 2021-06-15 10:45:26 -04:00
63f9590b0e keep track of memory use. use bigint in some cases to avoid overflows. 2021-06-15 07:00:17 -04:00
73d97241f2 simplify large memory use explanation 2021-06-15 06:58:42 -04:00
48c2ed2430 remove trailing whitespace 2021-06-15 06:57:46 -04:00
a0e0f5e1bd Update pair_mliap.rst
added note regarding SO3 pre computations and array size.
2021-06-14 23:49:44 -07:00
80964619c8 add documentation for pair_mliap regarding so3 and nn 2021-06-14 22:59:30 -07:00
ce79622897 Merge pull request #2798 from akohlmey/collected-small-changes
Collected small changes
2021-06-14 20:20:34 -04:00
a4a7fc353c Added variable pH support and fixed Ewald self-energy updating 2021-06-14 18:55:38 -05:00
ec0f47642a delete old log files 2021-06-14 11:44:05 -07:00
6a4420ba5c updated log files from the latested run 2021-06-14 11:40:45 -07:00
97799eabaf added contributing author 2021-06-14 10:57:27 -07:00
480fd39342 OpenMP suppression updates 2021-06-13 22:34:06 -04:00
b105abde1f make memory management more consistent and move declarations to base classes
this change reduced some code redundancy and consolidates memory management.
- pointers are initialized to null and deleted where they are declared
- pointers are deleted/destroyed before created/allocated
- memory usage is reported where pointers are declared

This makes it easier to follow flow of control and avoids memory leaks
2021-06-13 22:31:35 -04:00
3f83c6f96a move coeffelem declaration to base class and avoid memory leak 2021-06-13 19:10:07 -04:00
3f2834b997 fix new/delete mismatch bugs 2021-06-13 18:58:43 -04:00
14ca95026f begin documentation for SO3 MLIAP descriptor 2021-06-13 18:29:36 -04:00
e99e2ead68 update valgrind suppressions for newer GCC compilers 2021-06-13 18:28:42 -04:00
9c385a98af small tweaks and reformat 2021-06-13 18:06:40 -04:00
2ca0a4df98 add unit test for MLIAP SO3 descriptor 2021-06-13 17:45:00 -04:00
84d04752d3 update log files. make Si example (much) smaller 2021-06-13 17:40:00 -04:00
66cf2319a1 silence compiler warning 2021-06-13 17:11:13 -04:00
af34348e8a removed unused parameters 2021-06-13 00:01:31 -07:00
aa2940448e Update mliap_model_nn.cpp
set nonlinearflag in NN model
2021-06-12 19:49:32 -07:00
9de5c9fc98 correct homepage URLs 2021-06-12 21:33:01 -04:00
4522b16721 use floating point function 2021-06-12 21:29:20 -04:00
110fcf70f9 correct mismatched new type[] / delete 2021-06-12 21:29:06 -04:00
5b91fd8193 whitespace 2021-06-12 21:24:26 -04:00
a9bf1a4372 apply clang-format 2021-06-12 21:24:16 -04:00
87ea63266b fix a few formatting issues, silence compiler warnings, remove dead code 2021-06-12 21:20:28 -04:00
55c2d51476 better support for newer compilers. prefer flang with clang 2021-06-12 21:19:05 -04:00
34608aba9b update 2021-06-12 15:06:10 -07:00
6acb767847 update 2021-06-12 14:53:35 -07:00
f2ee71284f update 2021-06-12 13:23:02 -07:00
7f261a2801 update 2021-06-12 10:36:37 -07:00
c6d950d35e update googletest 2021-06-12 13:10:56 -04:00
51994c8c65 update 2021-06-12 01:02:31 -07:00
263d92eff5 whitespace 2021-06-11 16:30:01 -04:00
e1cfb95f54 update CODEOWNERS 2021-06-11 16:28:05 -04:00
a23f56a4f0 silence compiler warnings, remove dead code and fix bugs 2021-06-11 16:26:34 -04:00
4a2d32ff6d remove dead code 2021-06-11 15:11:01 -04:00
431ab35732 whitespace 2021-06-11 15:10:53 -04:00
5da4d78308 Merge branch 'master' into fabric 2021-06-11 15:10:20 -04:00
a474754b33 Update pair_mliap.cpp 2021-06-11 10:54:09 -07:00
f14a4377ce spelling 2021-06-10 23:16:44 -04:00
fe0422d042 whitespace 2021-06-10 23:16:44 -04:00
ae3a4dbf0d apply clang-format 2021-06-10 23:16:43 -04:00
59b83a6f27 simplify 2021-06-10 23:16:31 -04:00
406d2c4eb2 typo in compute_fabric.cpp 2021-06-10 15:18:55 -06:00
c9d38b7b6d Mention contact number in documentation 2021-06-10 15:16:15 -06:00
06ff2f897a Fixing typos in documentation and comments 2021-06-10 14:08:19 -06:00
7dda30a198 Adding type filter 2021-06-10 11:40:09 -06:00
e64ec4647a Delete dump.myforce.3 2021-06-09 20:45:06 -07:00
06aa6b737e Delete dump.myforce.2 2021-06-09 20:44:56 -07:00
399de7dbf8 Delete dump.myforce.1 2021-06-09 20:44:45 -07:00
b4e9e99067 Delete dump.myforce.0 2021-06-09 20:44:32 -07:00
72ae091aa6 Merge remote-tracking branch 'upstream/master' into mliap_so3_ver2
To have a fetch
2021-06-09 20:31:46 -07:00
75fd4e9eec update 2021-06-09 16:59:59 -07:00
b1f8740204 update 2021-06-09 16:55:11 -07:00
1e5e08fc1b Merge pull request #2793 from ndtrung81/user-dielectric
Contributing a new package USER-DIELECTRIC
2021-06-08 20:07:36 -04:00
41bdf0f398 address spelling issues and update list of false positives 2021-06-08 18:46:48 -04:00
832ae2c049 Merge branch 'master' into user-dielectric 2021-06-08 17:11:37 -04:00
9944bbe61e Merge pull request #2786 from akohlmey/collected-small-changes
Collected small changes
2021-06-08 14:08:28 -04:00
b8236c6402 improve error messages by printing unrecognized property 2021-06-08 11:19:21 -04:00
a32e682697 error exit if driver sends number of atoms. add comment why. 2021-06-08 10:38:28 -04:00
337527282d Added the documentation for atom style dielectric and for compute efield/atom 2021-06-07 16:36:45 -05:00
ffd1b2bfa9 fix compilation issue 2021-06-07 11:48:13 -04:00
7322066dde use alternate approach for dealing with Package style dependency issues 2021-06-06 18:39:19 -04:00
8b0a063059 must not test for bonded interactions without MOLECULE package 2021-06-06 18:37:14 -04:00
0ee6cf798c include cythonize for building MLIAP with Python support 2021-06-06 18:25:47 -04:00
b524a0b819 correctly remove dependent sources for fix QEQ 2021-06-06 18:25:16 -04:00
0bc86a7eea modernize and reformat code 2021-06-05 21:43:38 -04:00
f7ca10b070 update documentation towards more complete integration
this includes the following steps:
- added missing sections about the packages (incomplete)
- added missing files for the pair styles and the compute (incomplete)
- merge fix doc files into a single file (incomplete)
- link to added styles from Commands overvies and style lists (incomplete)

major part that is missing is the documentation of the atom style and
the description of the file format in the read_data docs.
there should probably also additions to the `set` command to set those
properties from input scripts.
2021-06-05 21:00:35 -04:00
5e675e6eff bugfix for library unit test due to CMake package changes 2021-06-05 19:19:14 -04:00
c5412db1a4 correct package dependency handling 2021-06-05 17:26:24 -04:00
c5c9a27593 protect OpenMP pragma with preprocessor define 2021-06-05 16:24:39 -04:00
3a73dd831a fix bug when reporting fix wall energies 2021-06-05 16:16:57 -04:00
655c7b02ec update conventional build installation 2021-06-05 16:03:31 -04:00
22c391e603 add new package to presets 2021-06-05 15:57:47 -04:00
1fb4ec663b port code to current LAMMPS style and make it compatible with OpenMP 4.x compilers 2021-06-05 15:55:23 -04:00
75e5ad4c7a correct CMake support (also fix some bugs for other packages) 2021-06-05 15:48:25 -04:00
ac403394e4 disable clang-format processing for .cpp files by default 2021-06-05 12:14:46 -04:00
02707d7a0d add CMake support 2021-06-05 12:11:36 -04:00
6b6cae7c11 update dependencies 2021-06-05 11:28:11 -04:00
f7bae950e8 update .gitignore 2021-06-05 11:24:03 -04:00
672fa7d8ff move /omp styles to USER-OMP package 2021-06-05 11:21:26 -04:00
7928e90179 make headers compatibel with clang-format 2021-06-05 11:20:47 -04:00
076e25f2a5 update LAMMPS homepage URLs 2021-06-05 11:16:27 -04:00
13b8c63e7a Merge branch 'master' into user-dielectric 2021-06-05 11:14:44 -04:00
f92bee868a whitespace fixes 2021-06-05 11:12:58 -04:00
2dd7a0a678 Removed debugging leftover 2021-06-04 23:09:27 -05:00
ed604e906b Updated README for USER-DIELECTRIC 2021-06-04 22:41:25 -05:00
f2dad0486b Integrating documentation, misc fixes in compute 2021-06-04 10:06:05 -06:00
56b9de1d6b Merge remote-tracking branch 'github/master' into collected-small-changes 2021-06-04 11:38:31 -04:00
d74d7cfd5f Merge pull request #2789 from rbberger/gpu_hip_fixes
More GPU fixes for HIP
2021-06-04 01:08:53 -04:00
80c90d8ee2 fix broken links/references 2021-06-04 00:34:37 -04:00
067fd48b57 Merge remote-tracking branch 'github/master' into collected-small-changes
# Conflicts:
#	python/lammps/__init__.py
#	python/lammps/core.py
2021-06-04 00:28:32 -04:00
2463c2dd71 Merge pull request #2787 from rbberger/python_updates
Update to Python package and examples
2021-06-04 00:26:48 -04:00
41787088a3 Merge pull request #2790 from rbberger/docs_canonical_url
Allow setting canonical URL in doc build
2021-06-03 23:16:48 -04:00
5599deae0a quick-fix to compile plumed-2.7.1 with newer GCC and Clang compilers 2021-06-03 19:47:32 -04:00
ed624b518e update windows specific instructions for running LAMMPS for latest package 2021-06-03 16:51:39 -04:00
b92c2ab873 correct broadcast for atom->natoms 2021-06-03 16:14:14 -04:00
2afa783e1e silence compiler warning 2021-06-03 16:13:38 -04:00
6fb6980987 Set copyright date automatically 2021-06-03 14:18:20 -04:00
4a8b460201 update singularity container definition file for Fedora 34 2021-06-03 14:04:59 -04:00
2b012f4af7 Update copyright date in docs 2021-06-03 13:16:04 -04:00
415f33134b fix typos in Kolmolgorov-Crespi potential formula 2021-06-03 13:12:43 -04:00
21607fe0ce Update website URL in lammps theme 2021-06-03 12:03:36 -04:00
1e66dfbd74 Add LAMMPS_WEBSITE_BASEURL env variable to set canonical URL in docs 2021-06-02 17:44:45 -04:00
9e7b502050 Removing leftover files 2021-06-02 14:18:26 -06:00
479622e57d Adding compute fabric 2021-06-02 14:17:15 -06:00
8ea9179a00 Correct device pointer datatype in HIP UCL_Const 2021-06-02 15:46:57 -04:00
62423b0c75 Disable new GPU neighbor for HIP 2021-06-02 15:45:06 -04:00
f3ba2d07f8 prefer GNU make (aka gmake) over plain "make", to avoid compilation failures 2021-06-02 15:14:37 -04:00
7e05c6f8fd Update ROCm container defintiion and add missing lib path 2021-06-02 14:40:37 -04:00
96ac2dc9f6 update to master 2021-06-02 12:15:41 -06:00
a1194e89d5 Remove unused sys.path 2021-06-02 13:17:08 -04:00
249a2a6783 Sync copies of pizza 2021-06-02 13:09:52 -04:00
b9e9dda1ab Updated example input scripts, data files and README 2021-06-02 12:03:46 -05:00
3f1bbf7c71 Add support for building wheels with pip 2021-06-02 11:46:48 -04:00
1ce50e0b1d Minor updates to fix polarize/* 2021-06-02 10:37:43 -05:00
41d289e2b0 Keep Python 2 code path 2021-06-02 11:18:00 -04:00
3d991cda6f Remove pypar from docs 2021-06-02 11:13:44 -04:00
5fe890679c Remove pypar and non-functional commented code 2021-06-02 11:07:18 -04:00
d4a6c718a9 Moved citation to a single place 2021-06-02 09:22:36 -05:00
0aaad39233 Remove MPI comments in gui.py 2021-06-01 18:10:47 -04:00
f2974d3b1b More cleanup to fix polarize* 2021-06-01 16:54:47 -05:00
400b55e6d5 Remove mentions of Pypar 2021-06-01 17:51:06 -04:00
232ae5e856 Fix typo in core.py 2021-06-01 17:36:45 -04:00
faccf52922 Updated dielectric/omp pair styles 2021-06-01 16:31:13 -05:00
6c86abc3b3 Use default matplotlib engine and use pause for animation 2021-06-01 16:59:00 -04:00
313389c0ad Correct title in gnuplot graph 2021-06-01 16:57:37 -04:00
62675e6e2b Minor fixes in pizza tools 2021-06-01 16:57:19 -04:00
0d0c0ab136 Move import to get_ctypes_int() function 2021-06-01 15:31:00 -04:00
20ffacaf70 Add exception type 2021-06-01 15:30:28 -04:00
49536ce02c Make compliance.py Python 3 compatible 2021-06-01 15:15:11 -04:00
c12f7e226b More cleanup to fix polarize*, access to the per-atom variables from the Atom class, and updates to doc pages 2021-06-01 11:22:14 -05:00
1b8825a377 expand LGTM exposure of LAMMPS styles 2021-05-31 18:23:37 -04:00
fde2295685 add comments to suppress useless warnings from LGTM 2021-05-31 12:01:50 -04:00
185664824e address LGTM issues 2021-05-31 12:01:05 -04:00
4736d15b7c replace outdated email address 2021-05-31 11:40:15 -04:00
458af788e1 Minor edits and cleanup 2021-05-30 11:33:06 -05:00
be6be2fc07 Fixed a bug with AtomVecDielectric for pack fields_border 2021-05-30 10:29:28 -05:00
7a52cfcc01 Added a doc page for the fix polarize/* 2021-05-28 16:27:03 -05:00
30e18a1b76 Added compute efield/atom and citation for the fixes polarize* 2021-05-28 16:06:36 -05:00
127627a5f7 Updated Install.sh 2021-05-28 15:42:03 -05:00
1fd6014eca Updated fix polarize/bem/gmres and fix polarize/functional 2021-05-28 15:38:02 -05:00
342c84aba4 Updated AtomVecDielectric to support atom properties like full (molecule, bonds, angles, dihedrals, special) 2021-05-28 15:14:56 -05:00
e248faa9bd silence compiler warnings 2021-05-28 14:09:41 -04:00
14f0c215eb make console detection smarter and don't use a pager at all with OpenMPI 2021-05-28 14:09:32 -04:00
454e11f7a5 Bringing USER-DIELECTRIC up-to-date with latest changes in upstream LAMMPS 2021-05-28 12:41:52 -05:00
2a33e3674e Added src/USER-DIELECTRIC and examples/USER/dielectric 2021-05-24 14:51:28 -05:00
825facf6e0 Fix compile issue with accelerator_kokkos.h 2020-11-06 12:33:31 -07:00
5526cc2c53 Fix issue with Kokkos::finalize and library interface 2020-11-06 12:01:45 -07:00
3294 changed files with 28481 additions and 26288 deletions

55
.github/CODEOWNERS vendored
View File

@ -22,32 +22,33 @@ src/MESSAGE/* @sjplimp
src/MLIAP/* @athomps
src/SNAP/* @athomps
src/SPIN/* @julient31
src/USER-BROWNIAN/* @samueljmcameron
src/USER-CGDNA/* @ohenrich
src/USER-CGSDK/* @akohlmey
src/USER-COLVARS/* @giacomofiorin
src/USER-FEP/* @agiliopadua
src/USER-HDNNP/* @singraber
src/USER-INTEL/* @wmbrownintel
src/USER-MANIFOLD/* @Pakketeretet2
src/USER-MDI/* @taylor-a-barnes
src/USER-MEAMC/* @martok
src/USER-MESONT/* @iafoss
src/USER-MOFFF/* @hheenen
src/USER-MOLFILE/* @akohlmey
src/USER-NETCDF/* @pastewka
src/USER-PACE/* @yury-lysogorskiy
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-REACTION/* @jrgissing
src/USER-SCAFACOS/* @rhalver
src/USER-TALLY/* @akohlmey
src/USER-UEF/* @danicholson
src/USER-VTK/* @rbberger
src/BROWNIAN/* @samueljmcameron
src/CG-DNA/* @ohenrich
src/CG-SDK/* @akohlmey
src/COLVARS/* @giacomofiorin
src/DIELECTRIC/* @ndtrung81
src/FEP/* @agiliopadua
src/ML-HDNNP/* @singraber
src/INTEL/* @wmbrownintel
src/MANIFOLD/* @Pakketeretet2
src/MDI/* @taylor-a-barnes
src/MEAM/* @martok
src/MESONT/* @iafoss
src/MOFFF/* @hheenen
src/MOLFILE/* @akohlmey
src/NETCDF/* @pastewka
src/ML-PACE/* @yury-lysogorskiy
src/PLUMED/* @gtribello
src/PHONON/* @lingtikong
src/PTM/* @pmla
src/OPENMP/* @akohlmey
src/QMMM/* @akohlmey
src/REAXFF/* @hasanmetin
src/REACTION/* @jrgissing
src/SCAFACOS/* @rhalver
src/TALLY/* @akohlmey
src/UEF/* @danicholson
src/VTK/* @rbberger
# individual files in packages
@ -137,7 +138,7 @@ unittest/* @akohlmey @rbberger
# cmake
cmake/* @junghans @rbberger
cmake/Modules/Packages/USER-COLVARS.cmake @junghans @rbberger @giacomofiorin
cmake/Modules/Packages/COLVARS.cmake @junghans @rbberger @giacomofiorin
cmake/Modules/Packages/KIM.cmake @junghans @rbberger @ellio167
cmake/presets/*.cmake @akohlmey

View File

@ -74,13 +74,13 @@ Here is a checklist of steps you need to follow to submit a single file or user
* For consistency with the rest of LAMMPS and especially, if you want your contribution(s) to be added to main LAMMPS code or one of its standard packages, it needs to be written in a style compatible with other LAMMPS source files. This means: 2-character indentation per level, no tabs, no trailing whitespace, no lines over 80 characters. I/O is done via the C-style stdio library, style class header files should not import any system headers, STL containers should be avoided in headers, and forward declarations used where possible or needed. All added code should be placed into the LAMMPS_NS namespace or a sub-namespace; global or static variables should be avoided, as they conflict with the modular nature of LAMMPS and the C++ class structure. There MUST NOT be any "using namespace XXX;" statements in headers. In the implementation file (<name>.cpp) system includes should be placed in angular brackets (<>) and for c-library functions the C++ style header files should be included (<cstdio> instead of <stdio.h>, or <cstring> instead of <string.h>). This all is so the developers can more easily understand, integrate, and maintain your contribution and reduce conflicts with other parts of LAMMPS. This basically means that the code accesses data structures, performs its operations, and is formatted similar to other LAMMPS source files, including the use of the error class for error and warning messages.
* Source, style name, and documentation file should follow the following naming convention: style names should be lowercase and words separated by a forward slash; for a new fix style 'foo/bar', the class should be named FixFooBar, the name of the source files should be 'fix_foo_bar.h' and 'fix_foo_bar.cpp' and the corresponding documentation should be in a file 'fix_foo_bar.rst'.
* If you want your contribution to be added as a user-contributed feature, and it is a single file (actually a `<name>.cpp` and `<name>.h` file) it can be rapidly added to the USER-MISC directory. Include the one-line entry to add to the USER-MISC/README file in that directory, along with the 2 source files. You can do this multiple times if you wish to contribute several individual features.
* If you want your contribution to be added as a user-contribution and it is several related features, it is probably best to make it a user package directory with a name like USER-FOO. In addition to your new files, the directory should contain a README text file. The README should contain your name and contact information and a brief description of what your new package does. If your files depend on other LAMMPS style files also being installed (e.g. because your file is a derived class from the other LAMMPS class), then an Install.sh file is also needed to check for those dependencies. See other README and Install.sh files in other USER directories as examples. Send us a tarball of this USER-FOO directory.
* If you want your contribution to be added as a user-contribution and it is several related features, it is probably best to make it a user package directory with a name like FOO. In addition to your new files, the directory should contain a README text file. The README should contain your name and contact information and a brief description of what your new package does. If your files depend on other LAMMPS style files also being installed (e.g. because your file is a derived class from the other LAMMPS class), then an Install.sh file is also needed to check for those dependencies. See other README and Install.sh files in other USER directories as examples. Send us a tarball of this FOO directory.
* Your new source files need to have the LAMMPS copyright, GPL notice, and your name and email address at the top, like other user-contributed LAMMPS source files. They need to create a class that is inside the LAMMPS namespace. If the file is for one of the USER packages, including USER-MISC, then we are not as picky about the coding style (see above). I.e. the files do not need to be in the same stylistic format and syntax as other LAMMPS files, though that would be nice for developers as well as users who try to read your code.
* You **must** also create or extend a documentation file for each new command or style you are adding to LAMMPS. For simplicity and convenience, the documentation of groups of closely related commands or styles may be combined into a single file. This will be one file for a single-file feature. For a package, it might be several files. These are files in the [reStructuredText](https://docutils.sourceforge.io/rst.html) markup language, that are then converted to HTML and PDF. The tools for this conversion are included in the source distribution, and the translation can be as simple as doing "make html pdf" in the doc folder. Thus the documentation source files must be in the same format and style as other `<name>.rst` files in the lammps/doc/src directory for similar commands and styles; use one or more of them as a starting point. An introduction to reStructuredText can be found at [https://docutils.sourceforge.io/docs/user/rst/quickstart.html](https://docutils.sourceforge.io/docs/user/rst/quickstart.html). The text files can include mathematical expressions and symbol in ".. math::" sections or ":math:" expressions or figures (see doc/JPG for examples), or even additional PDF files with further details (see doc/PDF for examples). The doc page should also include literature citations as appropriate; see the bottom of doc/fix_nh.rst for examples and the earlier part of the same file for how to format the cite itself. The "Restrictions" section of the doc page should indicate that your command is only available if LAMMPS is built with the appropriate USER-MISC or USER-FOO package. See other user package doc files for examples of how to do this. The prerequisite for building the HTML format files are Python 3.x and virtualenv. Please run at least `make html`, `make pdf` and `make spelling` and carefully inspect and proofread the resulting HTML format doc page as well as the output produced to the screen. Make sure that all spelling errors are fixed or the necessary false positives are added to the `doc/utils/sphinx-config/false_positives.txt` file. For new styles, those usually also need to be added to lists on the respective overview pages. This can be checked for also with `make style_check`.
* For a new package (or even a single command) you should include one or more example scripts demonstrating its use. These should run in no more than a couple minutes, even on a single processor, and not require large data files as input. See directories under examples/USER for examples of input scripts other users provided for their packages. These example inputs are also required for validating memory accesses and testing for memory leaks with valgrind
* You **must** also create or extend a documentation file for each new command or style you are adding to LAMMPS. For simplicity and convenience, the documentation of groups of closely related commands or styles may be combined into a single file. This will be one file for a single-file feature. For a package, it might be several files. These are files in the [reStructuredText](https://docutils.sourceforge.io/rst.html) markup language, that are then converted to HTML and PDF. The tools for this conversion are included in the source distribution, and the translation can be as simple as doing "make html pdf" in the doc folder. Thus the documentation source files must be in the same format and style as other `<name>.rst` files in the lammps/doc/src directory for similar commands and styles; use one or more of them as a starting point. An introduction to reStructuredText can be found at [https://docutils.sourceforge.io/docs/user/rst/quickstart.html](https://docutils.sourceforge.io/docs/user/rst/quickstart.html). The text files can include mathematical expressions and symbol in ".. math::" sections or ":math:" expressions or figures (see doc/JPG for examples), or even additional PDF files with further details (see doc/PDF for examples). The doc page should also include literature citations as appropriate; see the bottom of doc/fix_nh.rst for examples and the earlier part of the same file for how to format the cite itself. The "Restrictions" section of the doc page should indicate that your command is only available if LAMMPS is built with the appropriate USER-MISC or FOO package. See other user package doc files for examples of how to do this. The prerequisite for building the HTML format files are Python 3.x and virtualenv. Please run at least `make html`, `make pdf` and `make spelling` and carefully inspect and proofread the resulting HTML format doc page as well as the output produced to the screen. Make sure that all spelling errors are fixed or the necessary false positives are added to the `doc/utils/sphinx-config/false_positives.txt` file. For new styles, those usually also need to be added to lists on the respective overview pages. This can be checked for also with `make style_check`.
* For a new package (or even a single command) you should include one or more example scripts demonstrating its use. These should run in no more than a couple minutes, even on a single processor, and not require large data files as input. See directories under examples/PACKAGES for examples of input scripts other users provided for their packages. These example inputs are also required for validating memory accesses and testing for memory leaks with valgrind
* For new utility functions or class (i.e. anything that does not depend on a LAMMPS object), new unit tests should be added to the unittest tree.
* When adding a new LAMMPS style, a .yaml file with a test configuration and reference data should be added for the styles where a suitable tester program already exists (e.g. pair styles, bond styles, etc.).
* If there is a paper of yours describing your feature (either the algorithm/science behind the feature itself, or its initial usage, or its implementation in LAMMPS), you can add the citation to the <name>.cpp source file. See src/USER-EFF/atom_vec_electron.cpp for an example. A LaTeX citation is stored in a variable at the top of the file and a single line of code that references the variable is added to the constructor of the class. Whenever a user invokes your feature from their input script, this will cause LAMMPS to output the citation to a log.cite file and prompt the user to examine the file. Note that you should only use this for a paper you or your group authored. E.g. adding a cite in the code for a paper by Nose and Hoover if you write a fix that implements their integrator is not the intended usage. That kind of citation should just be in the doc page you provide.
* If there is a paper of yours describing your feature (either the algorithm/science behind the feature itself, or its initial usage, or its implementation in LAMMPS), you can add the citation to the <name>.cpp source file. See src/EFF/atom_vec_electron.cpp for an example. A LaTeX citation is stored in a variable at the top of the file and a single line of code that references the variable is added to the constructor of the class. Whenever a user invokes your feature from their input script, this will cause LAMMPS to output the citation to a log.cite file and prompt the user to examine the file. Note that you should only use this for a paper you or your group authored. E.g. adding a cite in the code for a paper by Nose and Hoover if you write a fix that implements their integrator is not the intended usage. That kind of citation should just be in the doc page you provide.
Finally, as a general rule-of-thumb, the more clear and self-explanatory you make your documentation and README files, and the easier you make it for people to get started, e.g. by providing example scripts, the more likely it is that users will try out your new feature.

1
.gitignore vendored
View File

@ -12,6 +12,7 @@
*.sif
*.dll
*.pyc
a.out
__pycache__
Obj_*

View File

@ -4,7 +4,7 @@ extraction:
command:
- "mkdir build"
- "cd build"
- "cmake -G Ninja -C ../cmake/presets/minimal.cmake ../cmake"
- "cmake -G Ninja -C ../cmake/presets/most.cmake ../cmake"
index:
build_command:
- "cd build"

View File

@ -8,7 +8,7 @@ region box block 0 20 0 20 0 20
create_box 1 box
create_atoms 1 box
pair_style meam/c
pair_style meam
pair_coeff * * library.meam Ni4 Ni.meam Ni4
velocity all create 1600.0 376847 loop geom

View File

@ -15,7 +15,7 @@ create_atoms 1 box
Created 32000 atoms
create_atoms CPU = 0.002 seconds
pair_style meam/c
pair_style meam
pair_coeff * * library.meam Ni4 Ni.meam Ni4
Reading potential file library.meam with DATE: 2012-06-29
Reading potential file Ni.meam with DATE: 2007-06-11
@ -38,12 +38,12 @@ Neighbor list info ...
ghost atom cutoff = 5
binsize = 2.5, bins = 29 29 29
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair meam/c, perpetual
(1) pair meam, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(2) pair meam/c, perpetual, half/full from (1)
(2) pair meam, perpetual, half/full from (1)
attributes: half, newton on
pair build: halffull/newton
stencil: none

View File

@ -15,7 +15,7 @@ create_atoms 1 box
Created 32000 atoms
create_atoms CPU = 0.001 seconds
pair_style meam/c
pair_style meam
pair_coeff * * library.meam Ni4 Ni.meam Ni4
Reading potential file library.meam with DATE: 2012-06-29
Reading potential file Ni.meam with DATE: 2007-06-11
@ -38,12 +38,12 @@ Neighbor list info ...
ghost atom cutoff = 5
binsize = 2.5, bins = 29 29 29
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair meam/c, perpetual
(1) pair meam, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(2) pair meam/c, perpetual, half/full from (1)
(2) pair meam, perpetual, half/full from (1)
attributes: half, newton on
pair build: halffull/newton
stencil: none

View File

@ -24,7 +24,7 @@ velocity all create 300.0 9999
pair_style reax/c NULL
pair_coeff * * ffield.reax C H O N
WARNING: Changed valency_val to valency_boc for X (src/USER-REAXC/reaxc_ffield.cpp:315)
WARNING: Changed valency_val to valency_boc for X (src/REAXFF/reaxc_ffield.cpp:315)
timestep 0.1
fix 1 all nve

View File

@ -24,7 +24,7 @@ velocity all create 300.0 9999
pair_style reax/c NULL
pair_coeff * * ffield.reax C H O N
WARNING: Changed valency_val to valency_boc for X (src/USER-REAXC/reaxc_ffield.cpp:315)
WARNING: Changed valency_val to valency_boc for X (src/REAXFF/reaxc_ffield.cpp:315)
timestep 0.1
fix 1 all nve

View File

@ -138,17 +138,86 @@ install(TARGETS lmp EXPORT LAMMPS_Targets DESTINATION ${CMAKE_INSTALL_BINDIR})
option(CMAKE_VERBOSE_MAKEFILE "Generate verbose Makefiles" OFF)
set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE
GRANULAR KSPACE LATTE MANYBODY MC MESSAGE MISC MLIAP MOLECULE PERI POEMS
PLUGIN QEQ REPLICA RIGID SHOCK SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI
USER-ADIOS USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESODPD USER-CGSDK
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
USER-HDNNP USER-LB USER-MANIFOLD USER-MDI USER-MEAMC USER-MESONT USER-MGPT USER-MISC
USER-MOFFF USER-MOLFILE USER-NETCDF USER-PHONON USER-PLUMED USER-PTM USER-QTB
USER-RANN USER-REACTION USER-REAXC USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH
USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM USER-YAFF USER-PACE USER-BROWNIAN)
set(STANDARD_PACKAGES
ADIOS
ASPHERE
ATC
AWPMD
BOCS
BODY
BROWNIAN
CG-DNA
CG-SDK
CLASS2
COLLOID
COLVARS
COMPRESS
DIELECTRIC
DIFFRACTION
DIPOLE
DPD-BASIC
DPD-MESO
DPD-REACT
DPD-SMOOTH
DRUDE
EFF
FEP
GRANULAR
H5MD
KIM
KSPACE
LATBOLTZ
LATTE
MACHDYN
MANIFOLD
MANYBODY
MC
MDI
MEAM
MESONT
MESSAGE
MGPT
MISC
ML-HDNNP
ML-IAP
ML-PACE
ML-QUIP
ML-RANN
ML-SNAP
MOFFF
MOLECULE
MOLFILE
MPIIO
MSCG
NETCDF
PERI
PHONON
PLUGIN
PLUMED
POEMS
PTM
PYTHON
QEQ
QMMM
QTB
REACTION
REAXFF
REPLICA
RIGID
SCAFACOS
SHOCK
SMTBQ
SPH
SPIN
SRD
TALLY
UEF
USER-MISC
VORONOI
VTK
YAFF)
set(SUFFIX_PACKAGES CORESHELL GPU KOKKOS OPT USER-INTEL USER-OMP)
set(SUFFIX_PACKAGES CORESHELL GPU KOKKOS OPT INTEL OPENMP)
foreach(PKG ${STANDARD_PACKAGES} ${SUFFIX_PACKAGES})
option(PKG_${PKG} "Build ${PKG} Package" OFF)
@ -159,7 +228,7 @@ endforeach()
######################################################
target_include_directories(lammps PUBLIC $<BUILD_INTERFACE:${LAMMPS_SOURCE_DIR}>)
if(PKG_USER-ADIOS)
if(PKG_ADIOS)
# The search for ADIOS2 must come before MPI because
# it includes its own MPI search with the latest FindMPI.cmake
# script that defines the MPI::MPI_C target
@ -229,12 +298,13 @@ endif()
# "hard" dependencies between packages resulting
# in an error instead of skipping over files
pkg_depends(MLIAP SNAP)
pkg_depends(ML-IAP ML-SNAP)
pkg_depends(MPIIO MPI)
pkg_depends(USER-ATC MANYBODY)
pkg_depends(USER-LB MPI)
pkg_depends(USER-PHONON KSPACE)
pkg_depends(USER-SCAFACOS MPI)
pkg_depends(ATC MANYBODY)
pkg_depends(LATBOLTZ MPI)
pkg_depends(PHONON KSPACE)
pkg_depends(SCAFACOS MPI)
pkg_depends(DIELECTRIC KSPACE)
# detect if we may enable OpenMP support by default
set(BUILD_OMP_DEFAULT OFF)
@ -256,7 +326,8 @@ if(BUILD_OMP)
endif()
if(((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 9.0)) OR
(CMAKE_CXX_COMPILER_ID STREQUAL "PGI") OR
(CMAKE_CXX_COMPILER_ID STREQUAL "PGI") OR (CMAKE_CXX_COMPILER_ID STREQUAL "NVHPC") OR
(CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM") OR (CMAKE_CXX_COMPILER_ID STREQUAL "XLClang") OR
((CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0)) OR
((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0)) OR
((CMAKE_CXX_COMPILER_ID STREQUAL "Intel") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.0)))
@ -269,7 +340,7 @@ if(BUILD_OMP)
target_link_libraries(lammps PRIVATE OpenMP::OpenMP_CXX)
endif()
if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE)
if(PKG_MSCG OR PKG_ATC OR PKG_AWPMD OR PKG_ML-QUIP OR PKG_LATTE)
enable_language(C)
find_package(LAPACK)
find_package(BLAS)
@ -348,8 +419,8 @@ else()
set(CUDA_REQUEST_PIC)
endif()
foreach(PKG_WITH_INCL KSPACE PYTHON MLIAP VORONOI USER-COLVARS USER-HDNNP USER-MDI USER-MOLFILE USER-NETCDF USER-PLUMED
USER-QMMM USER-QUIP USER-SCAFACOS USER-SMD USER-VTK KIM LATTE MESSAGE MSCG COMPRESS USER-PACE)
foreach(PKG_WITH_INCL KSPACE PYTHON ML-IAP VORONOI COLVARS ML-HDNNP MDI MOLFILE NETCDF
PLUMED QMMM ML-QUIP SCAFACOS MACHDYN VTK KIM LATTE MESSAGE MSCG COMPRESS ML-PACE)
if(PKG_${PKG_WITH_INCL})
include(Packages/${PKG_WITH_INCL})
endif()
@ -442,9 +513,8 @@ endforeach()
##############################################
# add lib sources of (simple) enabled packages
############################################
foreach(SIMPLE_LIB POEMS USER-ATC USER-AWPMD USER-H5MD USER-MESONT)
if(PKG_${SIMPLE_LIB})
string(REGEX REPLACE "^USER-" "" PKG_LIB "${SIMPLE_LIB}")
foreach(PKG_LIB POEMS ATC AWPMD H5MD MESONT)
if(PKG_${PKG_LIB})
string(TOLOWER "${PKG_LIB}" PKG_LIB)
if(PKG_LIB STREQUAL "mesont")
enable_language(Fortran)
@ -468,13 +538,13 @@ foreach(SIMPLE_LIB POEMS USER-ATC USER-AWPMD USER-H5MD USER-MESONT)
endif()
endforeach()
if(PKG_USER-AWPMD)
if(PKG_AWPMD)
target_link_libraries(awpmd PRIVATE ${LAPACK_LIBRARIES})
endif()
if(PKG_USER-ATC)
if(PKG_ATC)
if(LAMMPS_SIZES STREQUAL "BIGBIG")
message(FATAL_ERROR "The USER-ATC Package is not compatible with -DLAMMPS_BIGBIG")
message(FATAL_ERROR "The ATC Package is not compatible with -DLAMMPS_BIGBIG")
endif()
target_link_libraries(atc PRIVATE ${LAPACK_LIBRARIES})
if(BUILD_MPI)
@ -486,15 +556,15 @@ if(PKG_USER-ATC)
target_compile_definitions(atc PRIVATE -DLAMMPS_${LAMMPS_SIZES})
endif()
if(PKG_USER-H5MD)
include(Packages/USER-H5MD)
if(PKG_H5MD)
include(Packages/H5MD)
endif()
######################################################################
# packages which selectively include variants based on enabled styles
# e.g. accelerator packages
######################################################################
foreach(PKG_WITH_INCL CORESHELL QEQ USER-OMP USER-SDPD KOKKOS OPT USER-INTEL GPU)
foreach(PKG_WITH_INCL CORESHELL QEQ OPENMP DPD-SMOOTH KOKKOS OPT INTEL GPU)
if(PKG_${PKG_WITH_INCL})
include(Packages/${PKG_WITH_INCL})
endif()

View File

@ -22,7 +22,7 @@ find_library(N2P2_LIBNNPIF NAMES nnpif HINTS "${N2P2_DIR}/lib")
#
# target_compile_definitions(lammps PRIVATE -DN2P2_NO_SF_GROUPS)
#
# to "lib/lammps-extra.cmake" which is then included by USER-HDNNP.cmake.
# to "lib/lammps-extra.cmake" which is then included by ML-HDNNP.cmake.
find_file(N2P2_CMAKE_EXTRA NAMES lammps-extra.cmake HINTS "${N2P2_DIR}/lib")
find_package_handle_standard_args(N2P2 DEFAULT_MSG

View File

@ -67,7 +67,7 @@ endfunction()
macro(pkg_depends PKG1 PKG2)
if(PKG_${PKG1} AND NOT (PKG_${PKG2} OR BUILD_${PKG2}))
message(FATAL_ERROR "${PKG1} package needs LAMMPS to be build with ${PKG2}")
message(FATAL_ERROR "The ${PKG1} package needs LAMMPS to be build with the ${PKG2} package")
endif()
endmacro()

View File

@ -1,13 +1,13 @@
# Fix rigid/meso requires RIGID to be installed
set(USER-SDPD_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-SDPD)
set(DPD-SMOOTH_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/DPD-SMOOTH)
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 hlist ${DPD-SMOOTH_SOURCES_DIR}/fix_rigid_meso.h)
get_target_property(LAMMPS_SOURCES lammps SOURCES)
list(REMOVE_ITEM LAMMPS_SOURCES ${USER-SDPD_SOURCES_DIR}/fix_rigid_meso.cpp)
list(REMOVE_ITEM LAMMPS_SOURCES ${DPD-SMOOTH_SOURCES_DIR}/fix_rigid_meso.cpp)
set_property(TARGET lammps PROPERTY SOURCES ${LAMMPS_SOURCES})
endif()
set_property(GLOBAL PROPERTY FIX "${hlist}")
target_include_directories(lammps PRIVATE ${USER-SDPD_SOURCES_DIR})
target_include_directories(lammps PRIVATE ${DPD-SMOOTH_SOURCES_DIR})

View File

@ -5,7 +5,7 @@ endif()
target_compile_definitions(lammps PRIVATE -DLMP_USER_INTEL)
set(INTEL_ARCH "cpu" CACHE STRING "Architectures used by USER-INTEL (cpu or knl)")
set(INTEL_ARCH "cpu" CACHE STRING "Architectures used by INTEL (cpu or knl)")
set(INTEL_ARCH_VALUES cpu knl)
set_property(CACHE INTEL_ARCH PROPERTY STRINGS ${INTEL_ARCH_VALUES})
validate_option(INTEL_ARCH INTEL_ARCH_VALUES)
@ -40,10 +40,10 @@ endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16)
message(FATAL_ERROR "USER-INTEL needs at least a 2016 Intel compiler, found ${CMAKE_CXX_COMPILER_VERSION}")
message(FATAL_ERROR "INTEL needs at least a 2016 Intel compiler, found ${CMAKE_CXX_COMPILER_VERSION}")
endif()
else()
message(WARNING "USER-INTEL gives best performance with Intel compilers")
message(WARNING "INTEL gives best performance with Intel compilers")
endif()
find_package(TBB_MALLOC QUIET)
@ -52,7 +52,7 @@ if(TBB_MALLOC_FOUND)
else()
target_compile_definitions(lammps PRIVATE -DLMP_INTEL_NO_TBB)
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
message(WARNING "USER-INTEL with Intel compilers should use TBB malloc libraries")
message(WARNING "INTEL with Intel compilers should use TBB malloc libraries")
endif()
endif()
@ -65,12 +65,12 @@ else()
endif()
if((NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows") AND (NOT ${LAMMPS_MEMALIGN} STREQUAL "64") AND (NOT ${LAMMPS_MEMALIGN} STREQUAL "128") AND (NOT ${LAMMPS_MEMALIGN} STREQUAL "256"))
message(FATAL_ERROR "USER-INTEL only supports memory alignment of 64, 128 or 256 on this platform")
message(FATAL_ERROR "INTEL only supports memory alignment of 64, 128 or 256 on this platform")
endif()
if(INTEL_ARCH STREQUAL "KNL")
if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
message(FATAL_ERROR "Must use Intel compiler with USER-INTEL for KNL architecture")
message(FATAL_ERROR "Must use Intel compiler with INTEL for KNL architecture")
endif()
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -xHost -qopenmp -qoffload")
set(MIC_OPTIONS "-qoffload-option,mic,compiler,\"-fp-model fast=2 -mGLOB_default_function_attrs=\\\"gather_scatter_loop_unroll=4\\\"\"")
@ -91,26 +91,26 @@ else()
endif()
# collect sources
set(USER-INTEL_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-INTEL)
set(USER-INTEL_SOURCES ${USER-INTEL_SOURCES_DIR}/fix_intel.cpp
${USER-INTEL_SOURCES_DIR}/fix_nh_intel.cpp
${USER-INTEL_SOURCES_DIR}/intel_buffers.cpp
${USER-INTEL_SOURCES_DIR}/nbin_intel.cpp
${USER-INTEL_SOURCES_DIR}/npair_intel.cpp)
set(INTEL_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/INTEL)
set(INTEL_SOURCES ${INTEL_SOURCES_DIR}/fix_intel.cpp
${INTEL_SOURCES_DIR}/fix_nh_intel.cpp
${INTEL_SOURCES_DIR}/intel_buffers.cpp
${INTEL_SOURCES_DIR}/nbin_intel.cpp
${INTEL_SOURCES_DIR}/npair_intel.cpp)
set_property(GLOBAL PROPERTY "USER-INTEL_SOURCES" "${USER-INTEL_SOURCES}")
set_property(GLOBAL PROPERTY "INTEL_SOURCES" "${INTEL_SOURCES}")
# detect styles which have a USER-INTEL version
RegisterStylesExt(${USER-INTEL_SOURCES_DIR} intel USER-INTEL_SOURCES)
RegisterNBinStyle(${USER-INTEL_SOURCES_DIR}/nbin_intel.h)
RegisterNPairStyle(${USER-INTEL_SOURCES_DIR}/npair_intel.h)
RegisterFixStyle(${USER-INTEL_SOURCES_DIR}/fix_intel.h)
# detect styles which have a INTEL version
RegisterStylesExt(${INTEL_SOURCES_DIR} intel INTEL_SOURCES)
RegisterNBinStyle(${INTEL_SOURCES_DIR}/nbin_intel.h)
RegisterNPairStyle(${INTEL_SOURCES_DIR}/npair_intel.h)
RegisterFixStyle(${INTEL_SOURCES_DIR}/fix_intel.h)
get_property(USER-INTEL_SOURCES GLOBAL PROPERTY USER-INTEL_SOURCES)
get_property(INTEL_SOURCES GLOBAL PROPERTY INTEL_SOURCES)
if(PKG_KSPACE)
list(APPEND USER-INTEL_SOURCES ${USER-INTEL_SOURCES_DIR}/verlet_lrt_intel.cpp)
RegisterIntegrateStyle(${USER-INTEL_SOURCES_DIR}/verlet_lrt_intel.h)
list(APPEND INTEL_SOURCES ${INTEL_SOURCES_DIR}/verlet_lrt_intel.cpp)
RegisterIntegrateStyle(${INTEL_SOURCES_DIR}/verlet_lrt_intel.h)
endif()
target_sources(lammps PRIVATE ${USER-INTEL_SOURCES})
target_include_directories(lammps PRIVATE ${USER-INTEL_SOURCES_DIR})
target_sources(lammps PRIVATE ${INTEL_SOURCES})
target_include_directories(lammps PRIVATE ${INTEL_SOURCES_DIR})

View File

@ -116,7 +116,7 @@ RegisterNBinStyle(${KOKKOS_PKG_SOURCES_DIR}/nbin_kokkos.h)
RegisterNPairStyle(${KOKKOS_PKG_SOURCES_DIR}/npair_kokkos.h)
RegisterNPairStyle(${KOKKOS_PKG_SOURCES_DIR}/npair_halffull_kokkos.h)
if(PKG_USER-DPD)
if(PKG_DPD-REACT)
get_property(KOKKOS_PKG_SOURCES GLOBAL PROPERTY KOKKOS_PKG_SOURCES)
list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/npair_ssa_kokkos.cpp)
RegisterNPairStyle(${KOKKOS_PKG_SOURCES_DIR}/npair_ssa_kokkos.h)

View File

@ -16,13 +16,13 @@ if(DOWNLOAD_N2P2)
if((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang"))
set(N2P2_COMP llvm)
set(N2P2_CXX_STD "-std=c++11")
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
elseif((CMAKE_CXX_COMPILER_ID STREQUAL "Intel") OR (CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM"))
set(N2P2_COMP intel)
set(N2P2_CXX_STD "-std=c++11")
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(N2P2_COMP gnu)
set(N2P2_CXX_STD "-std=gnu++11")
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "PGI")
elseif((CMAKE_CXX_COMPILER_ID STREQUAL "PGI") OR (CMAKE_CXX_COMPILER_ID STREQUAL "NVHPC"))
set(N2P2_COMP gnu)
set(N2P2_CXX_STD "--c++11")
else() # default
@ -55,6 +55,9 @@ if(DOWNLOAD_N2P2)
endif()
endif()
# prefer GNU make, if available. N2P2 lib seems to need it.
find_program(N2P2_MAKE NAMES gmake make)
# override compiler (optimization) flags in n2p2 library to flags used for LAMMPS
# specifically -march=native can result in problems when compiling on HPC clusters or with a cross compiler
# this convoluted way gets correct quoting/escaping when configuring the external project
@ -74,7 +77,7 @@ if(DOWNLOAD_N2P2)
UPDATE_COMMAND ""
CONFIGURE_COMMAND ""
PATCH_COMMAND sed -i -e "s/\\(MPI_\\(P\\|Unp\\)ack(\\)/\\1(void *) /" src/libnnpif/LAMMPS/InterfaceLammps.cpp
BUILD_COMMAND make -f makefile libnnpif ${N2P2_BUILD_OPTIONS}
BUILD_COMMAND ${N2P2_MAKE} -f makefile libnnpif ${N2P2_BUILD_OPTIONS}
BUILD_ALWAYS YES
INSTALL_COMMAND ""
BUILD_IN_SOURCE 1

View File

@ -1,4 +1,4 @@
# if PYTHON package is included we may also include Python support in MLIAP
# if PYTHON package is included we may also include Python support in ML-IAP
set(MLIAP_ENABLE_PYTHON_DEFAULT OFF)
if(PKG_PYTHON)
find_package(Cythonize QUIET)
@ -7,25 +7,25 @@ if(PKG_PYTHON)
endif()
endif()
option(MLIAP_ENABLE_PYTHON "Build MLIAP package with Python support" ${MLIAP_ENABLE_PYTHON_DEFAULT})
option(MLIAP_ENABLE_PYTHON "Build ML-IAP package with Python support" ${MLIAP_ENABLE_PYTHON_DEFAULT})
if(MLIAP_ENABLE_PYTHON)
find_package(Cythonize REQUIRED)
if(NOT PKG_PYTHON)
message(FATAL_ERROR "Must enable PYTHON package for including Python support in MLIAP")
message(FATAL_ERROR "Must enable PYTHON package for including Python support in ML-IAP")
endif()
if(CMAKE_VERSION VERSION_LESS 3.12)
if(PYTHONLIBS_VERSION_STRING VERSION_LESS 3.6)
message(FATAL_ERROR "Python support in MLIAP requires Python 3.6 or later")
message(FATAL_ERROR "Python support in ML-IAP requires Python 3.6 or later")
endif()
else()
if(Python_VERSION VERSION_LESS 3.6)
message(FATAL_ERROR "Python support in MLIAP requires Python 3.6 or later")
message(FATAL_ERROR "Python support in ML-IAP requires Python 3.6 or later")
endif()
endif()
set(MLIAP_BINARY_DIR ${CMAKE_BINARY_DIR}/cython)
set(MLIAP_CYTHON_SRC ${LAMMPS_SOURCE_DIR}/MLIAP/mliap_model_python_couple.pyx)
set(MLIAP_CYTHON_SRC ${LAMMPS_SOURCE_DIR}/ML-IAP/mliap_model_python_couple.pyx)
get_filename_component(MLIAP_CYTHON_BASE ${MLIAP_CYTHON_SRC} NAME_WE)
file(MAKE_DIRECTORY ${MLIAP_BINARY_DIR})
add_custom_command(OUTPUT ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.h

View File

@ -1,5 +1,7 @@
set(MOLFILE_INCLUDE_DIR "${LAMMPS_LIB_SOURCE_DIR}/molfile" CACHE STRING "Path to VMD molfile plugin headers")
set(MOLFILE_INCLUDE_DIRS "${MOLFILE_INCLUDE_DIR}")
add_library(molfile INTERFACE)
target_include_directories(molfile INTERFACE ${MOLFILE_INCLUDE_DIRS})
target_include_directories(molfile INTERFACE ${MOLFILE_INCLUDE_DIR})
if(NOT (CMAKE_SYSTEM_NAME STREQUAL "Windows"))
target_link_libraries(molfile INTERFACE ${CMAKE_DL_LIBS})
endif()
target_link_libraries(lammps PRIVATE molfile)

View File

@ -1,4 +1,4 @@
# USER-NETCDF can use NetCDF, Parallel NetCDF (PNetCDF), or both. At least one necessary.
# NETCDF can use NetCDF, Parallel NetCDF (PNetCDF), or both. At least one necessary.
# NetCDF library enables dump style "netcdf", while PNetCDF enables dump style "netcdf/mpiio"
# may use NetCDF or PNetCDF with MPI, but must have NetCDF without

View File

@ -0,0 +1,40 @@
set(OPENMP_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/OPENMP)
set(OPENMP_SOURCES ${OPENMP_SOURCES_DIR}/thr_data.cpp
${OPENMP_SOURCES_DIR}/thr_omp.cpp
${OPENMP_SOURCES_DIR}/fix_omp.cpp
${OPENMP_SOURCES_DIR}/fix_nh_omp.cpp
${OPENMP_SOURCES_DIR}/fix_nh_sphere_omp.cpp
${OPENMP_SOURCES_DIR}/domain_omp.cpp)
target_compile_definitions(lammps PRIVATE -DLMP_USER_OMP)
set_property(GLOBAL PROPERTY "OMP_SOURCES" "${OPENMP_SOURCES}")
# detects styles which have OPENMP version
RegisterStylesExt(${OPENMP_SOURCES_DIR} omp OMP_SOURCES)
RegisterFixStyle(${OPENMP_SOURCES_DIR}/fix_omp.h)
get_property(OPENMP_SOURCES GLOBAL PROPERTY OMP_SOURCES)
# manually add package dependent source files from OPENMP that do not provide styles
if(PKG_ASPHERE)
list(APPEND OPENMP_SOURCES ${OPENMP_SOURCES_DIR}/fix_nh_asphere_omp.cpp)
endif()
if(PKG_RIGID)
list(APPEND OPENMP_SOURCES ${OPENMP_SOURCES_DIR}/fix_rigid_nh_omp.cpp)
endif()
if(PKG_REAXFF)
list(APPEND OPENMP_SOURCES ${OPENMP_SOURCES_DIR}/reaxc_bond_orders_omp.cpp
${OPENMP_SOURCES_DIR}/reaxc_hydrogen_bonds_omp.cpp
${OPENMP_SOURCES_DIR}/reaxc_nonbonded_omp.cpp
${OPENMP_SOURCES_DIR}/reaxc_bonds_omp.cpp
${OPENMP_SOURCES_DIR}/reaxc_init_md_omp.cpp
${OPENMP_SOURCES_DIR}/reaxc_torsion_angles_omp.cpp
${OPENMP_SOURCES_DIR}/reaxc_forces_omp.cpp
${OPENMP_SOURCES_DIR}/reaxc_multi_body_omp.cpp
${OPENMP_SOURCES_DIR}/reaxc_valence_angles_omp.cpp)
endif()
target_sources(lammps PRIVATE ${OPENMP_SOURCES})
target_include_directories(lammps PRIVATE ${OPENMP_SOURCES_DIR})

View File

@ -72,6 +72,7 @@ if(DOWNLOAD_PLUMED)
${PLUMED_CONFIG_OMP}
CXX=${PLUMED_CONFIG_CXX}
CC=${PLUMED_CONFIG_CC}
PATCH_COMMAND sed -i "/^#include <algorithm>/a #include <limits>" <SOURCE_DIR>/src/lepton/Operation.h
BUILD_BYPRODUCTS ${PLUMED_BUILD_BYPRODUCTS}
)
ExternalProject_get_property(plumed_build INSTALL_DIR)

View File

@ -1,18 +1,13 @@
# Fix qeq/fire requires MANYBODY (i.e. COMB and COMB3) to be installed
set(QEQ_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/QEQ)
file(GLOB QEQ_HEADERS ${QEQ_SOURCES_DIR}/fix*.h)
file(GLOB QEQ_SOURCES ${QEQ_SOURCES_DIR}/fix*.cpp)
get_property(hlist GLOBAL PROPERTY FIX)
if(NOT PKG_MANYBODY)
list(REMOVE_ITEM QEQ_HEADERS ${QEQ_SOURCES_DIR}/fix_qeq_fire.h)
list(REMOVE_ITEM QEQ_SOURCES ${QEQ_SOURCES_DIR}/fix_qeq_fire.cpp)
list(REMOVE_ITEM hlist ${QEQ_SOURCES_DIR}/fix_qeq_fire.h)
get_target_property(LAMMPS_SOURCES lammps SOURCES)
list(REMOVE_ITEM LAMMPS_SOURCES ${QEQ_SOURCES_DIR}/fix_qeq_fire.cpp)
set_property(TARGET lammps PROPERTY SOURCES ${LAMMPS_SOURCES})
endif()
set_property(GLOBAL PROPERTY "QEQ_SOURCES" "${QEQ_SOURCES}")
set_property(GLOBAL PROPERTY FIX "${hlist}")
foreach(MY_HEADER ${QEQ_HEADERS})
AddStyleHeader(${MY_HEADER} FIX)
endforeach()
get_property(QEQ_SOURCES GLOBAL PROPERTY QEQ_SOURCES)
target_sources(lammps PRIVATE ${QEQ_SOURCES})
target_include_directories(lammps PRIVATE ${QEQ_SOURCES_DIR})

View File

@ -1,40 +0,0 @@
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)
target_compile_definitions(lammps PRIVATE -DLMP_USER_OMP)
set_property(GLOBAL PROPERTY "OMP_SOURCES" "${USER-OMP_SOURCES}")
# 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)
# manually add package dependent source files from USER-OMP that do not provide styles
if(PKG_ASPHERE)
list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/fix_nh_asphere_omp.cpp)
endif()
if(PKG_RIGID)
list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/fix_rigid_nh_omp.cpp)
endif()
if(PKG_USER-REAXC)
list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/reaxc_bond_orders_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_hydrogen_bonds_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_nonbonded_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_bonds_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_init_md_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_torsion_angles_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_forces_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_multi_body_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_valence_angles_omp.cpp)
endif()
target_sources(lammps PRIVATE ${USER-OMP_SOURCES})
target_include_directories(lammps PRIVATE ${USER-OMP_SOURCES_DIR})

View File

@ -1,17 +1,90 @@
# preset that turns on all existing packages off. can be used to reset
# Preset that turns on all existing packages off. Can be used to reset
# an existing package selection without losing any other settings
set(ALL_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MESSAGE MISC MLIAP MOLECULE
MPIIO MSCG OPT PERI PLUGIN POEMS PYTHON QEQ REPLICA RIGID SHOCK SNAP SPIN
SRD VORONOI
USER-ADIOS USER-ATC USER-AWPMD USER-BROWNIAN USER-BOCS USER-CGDNA USER-CGSDK
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
USER-HDNNP USER-INTEL USER-LB USER-MANIFOLD USER-MDI USER-MEAMC USER-MESODPD
USER-MESONT USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-OMP
USER-PACE USER-PHONON USER-PLUMED USER-PTM USER-QMMM USER-QTB USER-QUIP USER-RANN
USER-REACTION USER-REAXC USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH
USER-TALLY USER-UEF USER-VTK USER-YAFF)
set(ALL_PACKAGES
ADIOS
ASPHERE
ATC
AWPMD
BOCS
BODY
BROWNIAN
CG-DNA
CG-SDK
CLASS2
COLLOID
COLVARS
COMPRESS
CORESHELL
DIELECTRIC
DIFFRACTION
DIPOLE
DPD-BASIC
DPD-MESO
DPD-REACT
DPD-SMOOTH
DRUDE
EFF
FEP
GPU
GRANULAR
H5MD
INTEL
KIM
KOKKOS
KSPACE
LATBOLTZ
LATTE
MACHDYN
MANIFOLD
MANYBODY
MC
MDI
MEAM
MESONT
MESSAGE
MGPT
MISC
ML-HDNNP
ML-IAP
ML-PACE
ML-QUIP
ML-RANN
ML-SNAP
MOFFF
MOLECULE
MOLFILE
MPIIO
MSCG
NETCDF
OPENMP
OPT
PERI
PHONON
PLUGIN
PLUMED
POEMS
PTM
PYTHON
QEQ
QMMM
QTB
REACTION
REAXFF
REPLICA
RIGID
SCAFACOS
SHOCK
SMTBQ
SPH
SPIN
SRD
TALLY
UEF
USER-MISC
VORONOI
VTK
YAFF)
foreach(PKG ${ALL_PACKAGES})
set(PKG_${PKG} OFF CACHE BOOL "" FORCE)

View File

@ -1,19 +1,92 @@
# preset that turns on all existing packages. using the combination
# this preset followed by the nolib.cmake preset should configure a
# LAMMPS binary, with as many packages included, that can be compiled
# Preset that turns on all existing packages. Using the combination
# of this preset followed by the nolib.cmake preset should configure
# a LAMMPS binary, with as many packages included, that can be compiled
# with just a working C++ compiler and an MPI library.
set(ALL_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MESSAGE MISC MLIAP MOLECULE
MPIIO MSCG OPT PERI PLUGIN POEMS PYTHON QEQ REPLICA RIGID SHOCK SNAP SPIN
SRD VORONOI
USER-ADIOS USER-ATC USER-AWPMD USER-BROWNIAN USER-BOCS USER-CGDNA USER-CGSDK
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
USER-HDNNP USER-INTEL USER-LB USER-MANIFOLD USER-MDI USER-MEAMC USER-MESODPD
USER-MESONT USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-OMP
USER-PACE USER-PHONON USER-PLUMED USER-PTM USER-QMMM USER-QTB USER-QUIP USER-RANN
USER-REACTION USER-REAXC USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH
USER-TALLY USER-UEF USER-VTK USER-YAFF)
set(ALL_PACKAGES
ADIOS
ASPHERE
ATC
AWPMD
BOCS
BODY
BROWNIAN
CG-DNA
CG-SDK
CLASS2
COLLOID
COLVARS
COMPRESS
CORESHELL
DIELECTRIC
DIFFRACTION
DIPOLE
DPD-BASIC
DPD-MESO
DPD-REACT
DPD-SMOOTH
DRUDE
EFF
FEP
GPU
GRANULAR
H5MD
INTEL
KIM
KOKKOS
KSPACE
LATBOLTZ
LATTE
MACHDYN
MANIFOLD
MANYBODY
MC
MDI
MEAM
MESONT
MESSAGE
MGPT
MISC
ML-HDNNP
ML-IAP
ML-PACE
ML-QUIP
ML-RANN
ML-SNAP
MOFFF
MOLECULE
MOLFILE
MPIIO
MSCG
NETCDF
OPENMP
OPT
PERI
PHONON
PLUGIN
PLUMED
POEMS
PTM
PYTHON
QEQ
QMMM
QTB
REACTION
REAXFF
REPLICA
RIGID
SCAFACOS
SHOCK
SMTBQ
SPH
SPIN
SRD
TALLY
UEF
USER-MISC
VORONOI
VTK
YAFF)
foreach(PKG ${ALL_PACKAGES})
set(PKG_${PKG} ON CACHE BOOL "" FORCE)

View File

@ -1,13 +1,18 @@
# preset that will enable clang/clang++ with support for MPI and OpenMP (on Linux boxes)
# prefer flang over gfortran, if available
find_program(CLANG_FORTRAN NAMES flang gfortran f95)
set(ENV{OMPI_FC} ${CLANG_FORTRAN})
set(CMAKE_CXX_COMPILER "clang++" CACHE STRING "" FORCE)
set(CMAKE_C_COMPILER "clang" CACHE STRING "" FORCE)
set(CMAKE_Fortran_COMPILER ${CLANG_FORTRAN} CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_DEBUG "-Wall -Wextra -g -std=f95" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG -std=f95" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG -std=f95" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)

View File

@ -1,7 +1,7 @@
# Preset that turns on packages with automatic downloads of sources or potentials.
# Compilation of libraries like Plumed or ScaFaCoS can take a considerable amount of time.
set(ALL_PACKAGES KIM LATTE MSCG VORONOI USER-PLUMED USER-SCAFACOS USER-SMD USER-MESONT USER-MDI USER-PACE)
set(ALL_PACKAGES KIM LATTE MSCG VORONOI PLUMED SCAFACOS MACHDYN MESONT MDI ML-PACE)
foreach(PKG ${ALL_PACKAGES})
set(PKG_${PKG} ON CACHE BOOL "" FORCE)

View File

@ -2,10 +2,22 @@
set(CMAKE_CXX_COMPILER "g++" CACHE STRING "" FORCE)
set(CMAKE_C_COMPILER "gcc" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_Fortran_COMPILER "gfortran" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_DEBUG "-Wall -g" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g -O2 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
set(MPI_CXX "g++" CACHE STRING "" FORCE)
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
set(MPI_C "gcc" CACHE STRING "" FORCE)
set(MPI_C_COMPILER "mpicc" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_DEBUG "-Wall -g" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g -O2 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
set(MPI_Fortran "gfortran" CACHE STRING "" FORCE)
set(MPI_Fortran_COMPILER "mpifort" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_DEBUG "-Wall -g" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-g -O2 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)
set(OpenMP_C "gcc" CACHE STRING "" FORCE)

View File

@ -1,13 +1,69 @@
set(WIN_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
GRANULAR KSPACE LATTE MANYBODY MC MISC MLIAP MOLECULE OPT
PERI POEMS QEQ REPLICA RIGID SHOCK SNAP SPIN SRD VORONOI
USER-ATC USER-AWPMD USER-BOCS USER-BROWNIAN USER-CGDNA USER-CGSDK
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP
USER-HDNNP USER-INTEL USER-MANIFOLD USER-MDI USER-MEAMC USER-MESODPD
USER-MESONT USER-MISC USER-MGPT USER-MOFFF USER-MOLFILE USER-OMP
USER-PHONON USER-PTM USER-QTB USER-REACTION USER-REAXC
USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF
USER-YAFF)
set(WIN_PACKAGES
ASPHERE
ATC
AWPMD
BOCS
BODY
BROWNIAN
CG-DNA
CG-SDK
CLASS2
COLLOID
COLVARS
COMPRESS
CORESHELL
DIELECTRIC
DIFFRACTION
DIPOLE
DPD-BASIC
DPD-MESO
DPD-REACT
DPD-SMOOTH
DRUDE
EFF
FEP
GPU
GRANULAR
INTEL
KSPACE
LATTE
MACHDYN
MANIFOLD
MANYBODY
MC
MDI
MEAM
MESONT
MGPT
MISC
ML-HDNNP
ML-IAP
ML-SNAP
MOFFF
MOLECULE
MOLFILE
OPENMP
OPT
PERI
PHONON
POEMS
PTM
QEQ
QTB
REACTION
REAXFF
REPLICA
RIGID
SHOCK
SMTBQ
SPH
SPIN
SRD
TALLY
UEF
USER-MISC
VORONOI
YAFF)
foreach(PKG ${WIN_PACKAGES})
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
@ -16,7 +72,7 @@ endforeach()
# these two packages require a full MPI implementation
if(BUILD_MPI)
set(PKG_MPIIO ON CACHE BOOL "" FORCE)
set(PKG_USER-LB ON CACHE BOOL "" FORCE)
set(PKG_LATBOLTZ ON CACHE BOOL "" FORCE)
endif()
set(DOWNLOAD_VORO ON CACHE BOOL "" FORCE)

View File

@ -2,13 +2,59 @@
# external libraries. Compared to all_on.cmake some more unusual packages
# are removed. The resulting binary should be able to run most inputs.
set(ALL_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE
GRANULAR KSPACE MANYBODY MC MISC MLIAP MOLECULE OPT PERI
PLUGIN POEMS PYTHON QEQ REPLICA RIGID SHOCK SNAP SPIN SRD VORONOI
USER-BROWNIAN USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS
USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-MEAMC
USER-MESODPD USER-MISC USER-MOFFF USER-OMP USER-PHONON USER-REACTION
USER-REAXC USER-SDPD USER-SPH USER-SMD USER-UEF USER-YAFF)
set(ALL_PACKAGES
ASPHERE
BOCS
BODY
BROWNIAN
CG-DNA
CG-SDK
CLASS2
COLLOID
COLVARS
COMPRESS
CORESHELL
DIELECTRIC
DIFFRACTION
DIPOLE
DPD-BASIC
DPD-MESO
DPD-REACT
DPD-SMOOTH
DRUDE
EFF
FEP
GRANULAR
KSPACE
MACHDYN
MANYBODY
MC
MEAM
MISC
ML-IAP
ML-SNAP
MOFFF
MOLECULE
OPENMP
OPT
PERI
PHONON
PLUGIN
POEMS
PYTHON
QEQ
REACTION
REAXFF
REPLICA
RIGID
SHOCK
SPH
SPIN
SRD
UEF
USER-MISC
VORONOI
YAFF)
foreach(PKG ${ALL_PACKAGES})
set(PKG_${PKG} ON CACHE BOOL "" FORCE)

View File

@ -1,11 +1,34 @@
# preset that turns off all packages that require some form of external
# library or special compiler (fortran or cuda) or equivalent.
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MESSAGE MPIIO MSCG
PYTHON VORONOI
USER-ADIOS USER-ATC USER-AWPMD USER-H5MD USER-HDNNP USER-LB USER-MOLFILE
USER-MESONT USER-MDI USER-NETCDF USER-PACE USER-PLUMED USER-QMMM USER-QUIP
USER-SCAFACOS USER-SMD USER-VTK)
set(PACKAGES_WITH_LIB
ADIOS
ATC
AWPMD
COMPRESS
GPU
H5MD
KIM
KOKKOS
LATBOLTZ
LATTE
MACHDYN
MDI
MESONT
MESSAGE
ML-HDNNP
ML-PACE
ML-QUIP
MOLFILE
MPIIO
MSCG
NETCDF
PLUMED
PYTHON
QMMM
SCAFACOS
VORONOI
VTK)
foreach(PKG ${PACKAGES_WITH_LIB})
set(PKG_${PKG} OFF CACHE BOOL "" FORCE)

View File

@ -0,0 +1,26 @@
# preset that will restore gcc/g++ with support for MPI and OpenMP (on Linux boxes)
set(CMAKE_CXX_COMPILER "g++" CACHE STRING "" FORCE)
set(CMAKE_C_COMPILER "gcc" CACHE STRING "" FORCE)
set(CMAKE_Fortran_COMPILER "gfortran" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -Werror=vla -Wno-maybe-uninitialized -g" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-Wall -Wextra -Werror=vla -Wno-maybe-uninitialized -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELEASE "-Wall -O3 -DNDEBUG" CACHE STRING "" FORCE)
set(MPI_CXX "g++" CACHE STRING "" FORCE)
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
set(MPI_C "gcc" CACHE STRING "" FORCE)
set(MPI_C_COMPILER "mpicc" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_DEBUG "-Wall -Wextra -Wno-maybe-uninitialized -g" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-Wall -Wextra -Wno-maybe-uninitialized -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_RELEASE "-Wall -O3 -DNDEBUG" CACHE STRING "" FORCE)
set(MPI_Fortran "gfortran" CACHE STRING "" FORCE)
set(MPI_Fortran_COMPILER "mpifort" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)
set(OpenMP_C "gcc" CACHE STRING "" FORCE)
set(OpenMP_C_FLAGS "-fopenmp" CACHE STRING "" FORCE)
set(OpenMP_C_LIB_NAMES "gomp" CACHE STRING "" FORCE)
set(OpenMP_CXX "g++" CACHE STRING "" FORCE)
set(OpenMP_CXX_FLAGS "-fopenmp" CACHE STRING "" FORCE)
set(OpenMP_CXX_LIB_NAMES "gomp" CACHE STRING "" FORCE)
set(OpenMP_omp_LIBRARY "libgomp.so" CACHE PATH "" FORCE)

View File

@ -230,7 +230,7 @@ $(VENV):
)
$(MATHJAX):
@git clone -b 3.1.4 -c advice.detachedHead=0 --depth 1 git://github.com/mathjax/MathJax.git $@
@git clone -b 3.2.0 -c advice.detachedHead=0 --depth 1 git://github.com/mathjax/MathJax.git $@
$(ANCHORCHECK): $(VENV)
@( \

View File

@ -122,7 +122,7 @@ recorded compilation commands information when typing `make iwyu`.
A lot of code predates the application of the rules in this document
and the rules themselves are a moving target. So there are going to be
significant chunks of code that do not fully comply. This applies
for example to the USER-REAXC, or the USER-ATC package. The LAMMPS
for example to the REAXFF, or the ATC package. The LAMMPS
developers are dedicated to make an effort to improve the compliance
and welcome volunteers wanting to help with the process.

View File

@ -1,4 +1,4 @@
.TH LAMMPS "27 May 2021" "2021-05-27"
.TH LAMMPS "2 July 2021" "2021-07-2"
.SH NAME
.B LAMMPS
\- Molecular Dynamics Simulator.
@ -135,7 +135,7 @@ For example "-pk gpu 2" is the same as "package gpu 2" in the input
script. The possible styles and options are discussed in the
.B LAMMPS
manual for the "package" command. This switch can be used multiple
times, e.g. to set options for the USER-INTEL and USER-OMP packages
times, e.g. to set options for the INTEL and OPENMP packages
when used together. Along with the "-sf" or "-suffix" switch, this
is a convenient mechanism for invoking accelerator packages and their
options without having to edit an input script.

View File

@ -90,7 +90,7 @@ standard. A more detailed discussion of that is below.
directory, or ``make`` from the ``src/STUBS`` dir. If the build
fails, you may need to edit the ``STUBS/Makefile`` for your
platform. The stubs library does not provide MPI/IO functions
required by some LAMMPS packages, e.g. ``MPIIO`` or ``USER-LB``,
required by some LAMMPS packages, e.g. ``MPIIO`` or ``LATBOLTZ``,
and thus is not compatible with those packages.
.. note::
@ -120,19 +120,19 @@ self-installed MPICH or OpenMPI, so you should study the provided
documentation to find out how to build and link with it.
The majority of OpenMP (threading) support in LAMMPS is provided by the
``USER-OMP`` package; see the :doc:`Speed_omp`
page for details. The ``USER-INTEL`` package also includes OpenMP
threading (it is compatible with ``USER-OMP`` and will usually fall
back on styles from that package, if a ``USER-INTEL`` does not exist)
``OPENMP`` package; see the :doc:`Speed_omp`
page for details. The ``INTEL`` package also includes OpenMP
threading (it is compatible with ``OPENMP`` and will usually fall
back on styles from that package, if a ``INTEL`` does not exist)
and adds vectorization support when compiled with compatible compilers,
in particular the Intel compilers on top of OpenMP. Also, the ``KOKKOS``
package can be compiled to include OpenMP threading.
In addition, there are a few commands in LAMMPS that have native OpenMP
support included as well. These are commands in the ``MPIIO``,
``SNAP``, ``USER-DIFFRACTION``, and ``USER-DPD`` packages. In addition
``ML-SNAP``, ``DIFFRACTION``, and ``DPD-REACT`` packages. In addition
some packages support OpenMP threading indirectly through the libraries
they interface to: e.g. ``LATTE``, ``KSPACE``, and ``USER-COLVARS``.
they interface to: e.g. ``LATTE``, ``KSPACE``, and ``COLVARS``.
See the :doc:`Packages details <Packages_details>` page for more
info on these packages and the pages for their respective commands
for OpenMP threading info.
@ -176,7 +176,7 @@ performance. Vendor provided compilers for a specific hardware can
produce faster code than open-source compilers like the GNU compilers.
On the most common x86 hardware most popular C++ compilers are quite
similar in performance of C/C++ code at high optimization levels. When
using the ``USER-INTEL`` package, there is a distinct advantage in using
using the ``INTEL`` package, there is a distinct advantage in using
the `Intel C++ compiler <intel_>`_ due to much improved vectorization
through SSE and AVX instructions on compatible hardware as the source
code includes changes and Intel compiler specific directives to enable
@ -325,9 +325,9 @@ LAMMPS.
.. code-block:: bash
Makefile.opt # OPT package
Makefile.omp # USER-OMP package
Makefile.intel_cpu # USER-INTEL package for CPUs
Makefile.intel_coprocessor # USER-INTEL package for KNLs
Makefile.omp # OPENMP package
Makefile.intel_cpu # INTEL package for CPUs
Makefile.intel_coprocessor # INTEL package for KNLs
Makefile.gpu # GPU package
Makefile.kokkos_cuda_mpi # KOKKOS package for GPUs
Makefile.kokkos_omp # KOKKOS package for CPUs (OpenMP)

View File

@ -140,7 +140,7 @@ can be used several times in one command.
For your convenience we provide :ref:`CMake presets <cmake_presets>`
that combine multiple settings to enable optional LAMMPS packages or use
a different compiler tool chain. Those are loaded with the *-C* flag
(``-C ../cmake/presets/minimal.cmake``). This step would only be needed
(``-C ../cmake/presets/basic.cmake``). This step would only be needed
once, as the settings from the preset files are stored in the
``CMakeCache.txt`` file. It is also possible to customize the build
by adding one or more *-D* flags to the CMake command line.

View File

@ -310,7 +310,7 @@ and working.
parameter needs to be adjusted. Typically a value around 1.0e-13
can be used, but it may need to be as large as 1.0e-8 in some
cases.
- The tests for pair styles from OPT, USER-OMP and USER-INTEL are
- The tests for pair styles from OPT, OPENMP and INTEL are
performed with automatically rescaled epsilon to account for
additional loss of precision from code optimizations and different
summation orders.
@ -345,7 +345,7 @@ and compared. If the fix is a thermostat and thus the internal property
``t_target`` can be extracted, then this is compared to the reference
data. The tests are repeated with the respa run style.
If the fix has a multi-threaded version in the USER-OMP package, then
If the fix has a multi-threaded version in the OPENMP package, then
the entire set of tests is repeated for that version as well.
For this to work, some additional conditions have to be met by the

View File

@ -37,31 +37,31 @@ This is the list of packages that may require additional steps.
* :ref:`KOKKOS <kokkos>`
* :ref:`LATTE <latte>`
* :ref:`MESSAGE <message>`
* :ref:`MLIAP <mliap>`
* :ref:`ML-IAP <mliap>`
* :ref:`MSCG <mscg>`
* :ref:`OPT <opt>`
* :ref:`POEMS <poems>`
* :ref:`PYTHON <python>`
* :ref:`VORONOI <voronoi>`
* :ref:`USER-ADIOS <user-adios>`
* :ref:`USER-ATC <user-atc>`
* :ref:`USER-AWPMD <user-awpmd>`
* :ref:`USER-COLVARS <user-colvars>`
* :ref:`USER-H5MD <user-h5md>`
* :ref:`USER-HDNNP <user-hdnnp>`
* :ref:`USER-INTEL <user-intel>`
* :ref:`USER-MDI <user-mdi>`
* :ref:`USER-MESONT <user-mesont>`
* :ref:`USER-MOLFILE <user-molfile>`
* :ref:`USER-NETCDF <user-netcdf>`
* :ref:`USER-PACE <user-pace>`
* :ref:`USER-PLUMED <user-plumed>`
* :ref:`USER-OMP <user-omp>`
* :ref:`USER-QMMM <user-qmmm>`
* :ref:`USER-QUIP <user-quip>`
* :ref:`USER-SCAFACOS <user-scafacos>`
* :ref:`USER-SMD <user-smd>`
* :ref:`USER-VTK <user-vtk>`
* :ref:`ADIOS <adios>`
* :ref:`ATC <atc>`
* :ref:`AWPMD <awpmd>`
* :ref:`COLVARS <colvars>`
* :ref:`H5MD <h5md>`
* :ref:`ML-HDNNP <ml-hdnnp>`
* :ref:`INTEL <intel>`
* :ref:`MDI <mdi>`
* :ref:`MESONT <mesont>`
* :ref:`MOLFILE <molfile>`
* :ref:`NETCDF <netcdf>`
* :ref:`ML-PACE <ml-pace>`
* :ref:`PLUMED <plumed>`
* :ref:`OPENMP <openmp>`
* :ref:`QMMM <qmmm>`
* :ref:`ML-QUIP <ml-quip>`
* :ref:`SCAFACOS <scafacos>`
* :ref:`MACHDYN <machdyn>`
* :ref:`VTK <vtk>`
----------
@ -622,7 +622,7 @@ This list was last updated for version 3.4.1 of the Kokkos library.
mkdir build-kokkos-cuda
cd build-kokkos-cuda
cmake -C ../cmake/presets/minimal.cmake -C ../cmake/presets/kokkos-cuda.cmake ../cmake
cmake -C ../cmake/presets/basic.cmake -C ../cmake/presets/kokkos-cuda.cmake ../cmake
cmake --build .
.. tab:: Basic traditional make settings:
@ -811,16 +811,17 @@ be installed on your system.
.. _mliap:
MLIAP package
ML-IAP package
---------------------------
Building the MLIAP package requires including the :ref:`SNAP <PKG-SNAP>`
package. There will be an error message if this requirement is not satisfied.
Using the *mliappy* model also requires enabling Python support, which
in turn requires the :ref:`PYTHON <PKG-PYTHON>`
package **and** requires you have the `cython <https://cython.org>`_ software
installed and with it a working ``cythonize`` command. This feature requires
compiling LAMMPS with Python version 3.6 or later.
Building the ML-IAP package requires including the :ref:`ML-SNAP
<PKG-ML-SNAP>` package. There will be an error message if this requirement
is not satisfied. Using the *mliappy* model also requires enabling
Python support, which in turn requires to include the :ref:`PYTHON
<PKG-PYTHON>` package **and** requires to have the `cython
<https://cython.org>`_ software installed and with it a working
``cythonize`` command. This feature requires compiling LAMMPS with
Python version 3.6 or later.
.. tabs::
@ -834,9 +835,9 @@ compiling LAMMPS with Python version 3.6 or later.
suitable Python version and the ``cythonize`` command and choose
the default accordingly. During the build procedure the provided
.pyx file(s) will be automatically translated to C++ code and compiled.
Please do **not** run ``cythonize`` manually in the ``src/MLIAP`` folder,
Please do **not** run ``cythonize`` manually in the ``src/ML-IAP`` folder,
as that can lead to compilation errors if Python support is not enabled.
If you did by accident, please remove the generated .cpp and .h files.
If you did it by accident, please remove the generated .cpp and .h files.
.. tab:: Traditional make
@ -845,15 +846,16 @@ compiling LAMMPS with Python version 3.6 or later.
the ``cythonize`` command in case the corresponding .pyx file(s) were
modified. You may need to modify ``lib/python/Makefile.lammps``
if the LAMMPS build fails.
To manually enforce building MLIAP with Python support enabled,
you can add
``-DMLIAP_PYTHON`` to the ``LMP_INC`` variable in your machine makefile.
You may have to manually run the ``cythonize`` command on .pyx file(s)
in the ``src`` folder, if this is not automatically done during
installing the MLIAP package. Please do **not** run ``cythonize``
in the ``src/MLIAP`` folder, as that can lead to compilation errors
if Python support is not enabled.
If you did by accident, please remove the generated .cpp and .h files.
To enable building the ML-IAP package with Python support enabled,
you need to add ``-DMLIAP_PYTHON`` to the ``LMP_INC`` variable in
your machine makefile. You may have to manually run the
``cythonize`` command on .pyx file(s) in the ``src`` folder, if
this is not automatically done during installing the ML-IAP
package. Please do **not** run ``cythonize`` in the ``src/ML-IAP``
folder, as that can lead to compilation errors if Python support
is not enabled. If you did this by accident, please remove the
generated .cpp and .h files.
----------
@ -1054,12 +1056,12 @@ binary package provided by your operating system.
----------
.. _user-adios:
.. _adios:
USER-ADIOS package
ADIOS package
-----------------------------------
The USER-ADIOS package requires the `ADIOS I/O library
The ADIOS package requires the `ADIOS I/O library
<https://github.com/ornladios/ADIOS2>`_, version 2.3.1 or newer. Make
sure that you have ADIOS built either with or without MPI to match if
you build LAMMPS with or without MPI. ADIOS compilation settings for
@ -1075,38 +1077,38 @@ systems.
.. code-block:: bash
-D ADIOS2_DIR=path # path is where ADIOS 2.x is installed
-D PKG_USER-ADIOS=yes
-D PKG_ADIOS=yes
.. tab:: Traditional make
Turn on the USER-ADIOS package before building LAMMPS. If the
Turn on the ADIOS package before building LAMMPS. If the
ADIOS 2.x software is installed in PATH, there is nothing else to
do:
.. code-block:: bash
$ make yes-user-adios
$ make yes-adios
otherwise, set ADIOS2_DIR environment variable when turning on the package:
.. code-block:: bash
$ ADIOS2_DIR=path make yes-user-adios # path is where ADIOS 2.x is installed
$ ADIOS2_DIR=path make yes-adios # path is where ADIOS 2.x is installed
----------
.. _user-atc:
.. _atc:
USER-ATC package
ATC package
-------------------------------
The USER-ATC package requires the MANYBODY package also be installed.
The ATC package requires the MANYBODY package also be installed.
.. tabs::
.. tab:: CMake build
No additional settings are needed besides ``-D PKG_USER-ATC=yes``
No additional settings are needed besides ``-D PKG_ATC=yes``
and ``-D PKG_MANYBODY=yes``.
.. tab:: Traditional make
@ -1149,16 +1151,16 @@ The USER-ATC package requires the MANYBODY package also be installed.
----------
.. _user-awpmd:
.. _awpmd:
USER-AWPMD package
AWPMD package
------------------
.. tabs::
.. tab:: CMake build
No additional settings are needed besides ``-D PKG_USER-AQPMD=yes``.
No additional settings are needed besides ``-D PKG_AQPMD=yes``.
.. tab:: Traditional make
@ -1200,9 +1202,9 @@ USER-AWPMD package
----------
.. _user-colvars:
.. _colvars:
USER-COLVARS package
COLVARS package
---------------------------------------
This package includes the `Colvars library
@ -1216,7 +1218,7 @@ be built for the most part with all major versions of the C++ language.
This is the recommended build procedure for using Colvars in
LAMMPS. No additional settings are normally needed besides
``-D PKG_USER-COLVARS=yes``.
``-D PKG_COLVARS=yes``.
.. tab:: Traditional make
@ -1259,9 +1261,9 @@ be built for the most part with all major versions of the C++ language.
----------
.. _user-pace:
.. _ml-pace:
USER-PACE package
ML-PACE package
-----------------------------
This package requires a library that can be downloaded and built
@ -1274,8 +1276,8 @@ at: `https://github.com/ICAMS/lammps-user-pace/ <https://github.com/ICAMS/lammps
.. tab:: CMake build
By default the library will be downloaded from the git repository
and built automatically when the USER-PACE package is enabled with
``-D PKG_USER-PACE=yes``. The location for the sources may be
and built automatically when the ML-PACE package is enabled with
``-D PKG_ML-PACE=yes``. The location for the sources may be
customized by setting the variable ``PACELIB_URL`` when
configuring with CMake (e.g. to use a local archive on machines
without internet access). Since CMake checks the validity of the
@ -1286,7 +1288,7 @@ at: `https://github.com/ICAMS/lammps-user-pace/ <https://github.com/ICAMS/lammps
.. tab:: Traditional make
You can download and build the USER-PACE library
You can download and build the ML-PACE library
in one step from the ``lammps/src`` dir, using these commands,
which invoke the ``lib/pace/Install.py`` script.
@ -1299,9 +1301,9 @@ at: `https://github.com/ICAMS/lammps-user-pace/ <https://github.com/ICAMS/lammps
----------
.. _user-plumed:
.. _plumed:
USER-PLUMED package
PLUMED package
-------------------------------------
.. _plumedinstall: https://plumed.github.io/doc-master/user-doc/html/_installation.html
@ -1309,7 +1311,7 @@ USER-PLUMED package
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_>`_.
The USER-PLUMED package has been tested to work with Plumed versions
The PLUMED package has been tested to work with Plumed versions
2.4.x, 2.5.x, and 2.6.x and will error out, when trying to run calculations
with a different version of the Plumed kernel.
@ -1345,7 +1347,7 @@ LAMMPS build.
.. tab:: CMake build
When the ``-D PKG_USER-PLUMED=yes`` flag is included in the cmake
When the ``-D PKG_PLUMED=yes`` flag is included in the cmake
command you must ensure that GSL is installed in locations that
are specified in your environment. There are then two additional
variables that control the manner in which PLUMED is obtained and
@ -1378,7 +1380,7 @@ LAMMPS build.
.. tab:: Traditional make
PLUMED needs to be installed before the USER-PLUMED package is
PLUMED needs to be installed before the PLUMED package is
installed so that LAMMPS can find the right settings when
compiling and linking the LAMMPS executable. You can either
download and build PLUMED inside the LAMMPS plumed library folder
@ -1403,12 +1405,12 @@ LAMMPS build.
build to use. A new file ``lib/plumed/Makefile.lammps`` is also
created with settings suitable for LAMMPS to compile and link
PLUMED using the desired linkage mode. After this step is
completed, you can install the USER-PLUMED package and compile
completed, you can install the PLUMED package and compile
LAMMPS in the usual manner:
.. code-block:: bash
$ make yes-user-plumed
$ make yes-plumed
$ make machine
Once this compilation completes you should be able to run LAMMPS
@ -1423,15 +1425,15 @@ LAMMPS build.
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
the PLUMED package with "make yes-plumed" to update the
required makefile settings with the changes in the lib/plumed
folder.
----------
.. _user-h5md:
.. _h5md:
USER-H5MD package
H5MD package
---------------------------------
To build with this package you must have the HDF5 software package
@ -1442,7 +1444,7 @@ the HDF5 library.
.. tab:: CMake build
No additional settings are needed besides ``-D PKG_USER-H5MD=yes``.
No additional settings are needed besides ``-D PKG_H5MD=yes``.
This should auto-detect the H5MD library on your system. Several
advanced CMake H5MD options exist if you need to specify where it
@ -1474,13 +1476,13 @@ the HDF5 library.
----------
.. _user-hdnnp:
.. _ml-hdnnp:
USER-HDNNP package
---------------------------------
ML-HDNNP package
----------------
To build with the USER-HDNNP package it is required to download and build the
external `n2p2 <https://github.com/CompPhysVienna/n2p2>`__ library ``v2.1.4``
To build with the ML-HDNNP package it is required to download and build the
external `n2p2 <https://github.com/CompPhysVienna/n2p2>`_ library ``v2.1.4``
(or higher). The LAMMPS build process offers an automatic download and
compilation of *n2p2* or allows you to choose the installation directory of
*n2p2* manually. Please see the boxes below for the CMake and traditional build
@ -1490,7 +1492,7 @@ In case of a manual installation of *n2p2* you only need to build the *n2p2* cor
library ``libnnp`` and interface library ``libnnpif``. When using GCC it should
suffice to execute ``make libnnpif`` in the *n2p2* ``src`` directory. For more
details please see ``lib/hdnnp/README`` and the `n2p2 build documentation
<https://compphysvienna.github.io/n2p2/topics/build.html>`__.
<https://compphysvienna.github.io/n2p2/topics/build.html>`_.
.. tabs::
@ -1528,24 +1530,24 @@ details please see ``lib/hdnnp/README`` and the `n2p2 build documentation
----------
.. _user-intel:
.. _intel:
USER-INTEL package
INTEL package
-----------------------------------
To build with this package, you must choose which hardware you want to
build for, either x86 CPUs or Intel KNLs in offload mode. You should
also typically :ref:`install the USER-OMP package <user-omp>`, as it can be
used in tandem with the USER-INTEL package to good effect, as explained
also typically :ref:`install the OPENMP package <openmp>`, as it can be
used in tandem with the INTEL package to good effect, as explained
on the :doc:`Speed_intel` page.
When using Intel compilers version 16.0 or later is required. You can
also use the GNU or Clang compilers and they will provide performance
improvements over regular styles and USER-OMP styles, but less so than
improvements over regular styles and OPENMP styles, but less so than
with the Intel compilers. Please also note, that some compilers have
been found to apply memory alignment constraints incompletely or
incorrectly and thus can cause segmentation faults in otherwise correct
code when using features from the USER-INTEL package.
code when using features from the INTEL package.
.. tabs::
@ -1562,7 +1564,7 @@ code when using features from the USER-INTEL package.
Choose which hardware to compile for in Makefile.machine via the
following settings. See ``src/MAKE/OPTIONS/Makefile.intel_cpu*``
and ``Makefile.knl`` files for examples. and
``src/USER-INTEL/README`` for additional information.
``src/INTEL/README`` for additional information.
For CPUs:
@ -1598,9 +1600,9 @@ TBB and MKL.
----------
.. _user-mdi:
.. _mdi:
USER-MDI package
MDI package
-----------------------------
.. tabs::
@ -1627,9 +1629,9 @@ USER-MDI package
----------
.. _user-mesont:
.. _mesont:
USER-MESONT package
MESONT package
-------------------------
This package includes a library written in Fortran 90 in the
@ -1642,7 +1644,7 @@ they will be downloaded the first time this package is installed.
.. tab:: CMake build
No additional settings are needed besides ``-D PKG_USER-MESONT=yes``
No additional settings are needed besides ``-D PKG_MESONT=yes``
.. tab:: Traditional make
@ -1669,9 +1671,9 @@ they will be downloaded the first time this package is installed.
----------
.. _user-molfile:
.. _molfile:
USER-MOLFILE package
MOLFILE package
---------------------------------------
.. tabs::
@ -1681,9 +1683,9 @@ USER-MOLFILE package
.. code-block:: bash
-D MOLFILE_INCLUDE_DIR=path # (optional) path where VMD molfile plugin headers are installed
-D PKG_USER-MOLFILE=yes
-D PKG_MOLFILE=yes
Using ``-D PKG_USER-MOLFILE=yes`` enables the package, and setting
Using ``-D PKG_MOLFILE=yes`` enables the package, and setting
``-D MOLFILE_INCLUDE_DIR`` allows to provide a custom location for
the molfile plugin header files. These should match the ABI of the
plugin files used, and thus one typically sets them to include
@ -1707,9 +1709,9 @@ USER-MOLFILE package
----------
.. _user-netcdf:
.. _netcdf:
USER-NETCDF package
NETCDF package
-------------------------------------
To build with this package you must have the NetCDF library installed
@ -1719,7 +1721,7 @@ on your system.
.. tab:: CMake build
No additional settings are needed besides ``-D PKG_USER-NETCDF=yes``.
No additional settings are needed besides ``-D PKG_NETCDF=yes``.
This should auto-detect the NETCDF library if it is installed on
your system at standard locations. Several advanced CMake NETCDF
@ -1738,9 +1740,9 @@ on your system.
----------
.. _user-omp:
.. _openmp:
USER-OMP package
OPENMP package
-------------------------------
.. tabs::
@ -1748,13 +1750,13 @@ USER-OMP package
.. tab:: CMake build
No additional settings are required besides ``-D
PKG_USER-OMP=yes``. If CMake detects OpenMP compiler support, the
USER-OMP code will be compiled with multi-threading support
PKG_OPENMP=yes``. If CMake detects OpenMP compiler support, the
OPENMP code will be compiled with multi-threading support
enabled, otherwise as optimized serial code.
.. tab:: Traditional make
To enable multi-threading support in the USER-OMP package (and
To enable multi-threading support in the OPENMP package (and
other styles supporting OpenMP) the following compile and link
flags must be added to your Makefile.machine file. See
``src/MAKE/OPTIONS/Makefile.omp`` for an example.
@ -1771,12 +1773,12 @@ USER-OMP package
----------
.. _user-qmmm:
.. _qmmm:
USER-QMMM package
QMMM package
---------------------------------
For using LAMMPS to do QM/MM simulations via the USER-QMMM package you
For using LAMMPS to do QM/MM simulations via the QMMM package you
need to build LAMMPS as a library. A LAMMPS executable with :doc:`fix
qmmm <fix_qmmm>` included can be built, but will not be able to do a
QM/MM simulation on as such. You must also build a QM code - currently
@ -1799,11 +1801,11 @@ verified to work in February 2020 with Quantum Espresso versions 6.3 to
libqmmm.a) are not included in the static LAMMPS library and
(currently) not installed, while their code is included in the
shared LAMMPS library. Thus a typical command line to configure
building LAMMPS for USER-QMMM would be:
building LAMMPS for QMMM would be:
.. code-block:: bash
cmake -C ../cmake/presets/minimal.cmake -D PKG_USER-QMMM=yes \
cmake -C ../cmake/presets/basic.cmake -D PKG_QMMM=yes \
-D BUILD_LIB=yes -DBUILD_SHARED_LIBS=yes ../cmake
After completing the LAMMPS build and also configuring and
@ -1846,9 +1848,9 @@ verified to work in February 2020 with Quantum Espresso versions 6.3 to
----------
.. _user-quip:
.. _ml-quip:
USER-QUIP package
ML-QUIP package
---------------------------------
To build with this package, you must download and build the QUIP
@ -1866,7 +1868,7 @@ to be downloaded and configured. See step 1 and step 1.1 in the
-D QUIP_LIBRARY=path # path to libquip.a (only needed if a custom location)
CMake will **not** download and build the QUIP library. But once you have
done that, a CMake build of LAMMPS with ``-D PKG_USER-QUIP=yes`` should
done that, a CMake build of LAMMPS with ``-D PKG_ML-QUIP=yes`` should
work. Set the ``QUIP_LIBRARY`` variable if CMake cannot find the QUIP library.
.. tab:: Traditional make
@ -1881,9 +1883,9 @@ to be downloaded and configured. See step 1 and step 1.1 in the
----------
.. _user-scafacos:
.. _scafacos:
USER-SCAFACOS package
SCAFACOS package
-----------------------------------------
To build with this package, you must download and build the
@ -1928,9 +1930,9 @@ To build with this package, you must download and build the
----------
.. _user-smd:
.. _machdyn:
USER-SMD package
MACHDYN package
-------------------------------
To build with this package, you must download the Eigen3 library.
@ -1972,9 +1974,9 @@ Eigen3 is a template library, so you do not need to build it.
----------
.. _user-vtk:
.. _vtk:
USER-VTK package
VTK package
-------------------------------
To build with this package you must have the VTK library installed on
@ -1984,7 +1986,7 @@ your system.
.. tab:: CMake build
No additional settings are needed besides ``-D PKG_USER-VTK=yes``.
No additional settings are needed besides ``-D PKG_VTK=yes``.
This should auto-detect the VTK library if it is installed on your
system at standard locations. Several advanced VTK options exist

View File

@ -117,10 +117,10 @@ settings may become outdated:
make mac # build serial LAMMPS on a Mac
make mac_mpi # build parallel LAMMPS on a Mac
make intel_cpu # build with the USER-INTEL package optimized for CPUs
make knl # build with the USER-INTEL package optimized for KNLs
make intel_cpu # build with the INTEL package optimized for CPUs
make knl # build with the INTEL package optimized for KNLs
make opt # build with the OPT package optimized for CPUs
make omp # build with the USER-OMP package optimized for OpenMP
make omp # build with the OPENMP package optimized for OpenMP
make kokkos_omp # build with the KOKKOS package for OpenMP
make kokkos_cuda_mpi # build with the KOKKOS package for GPUs
make kokkos_phi # build with the KOKKOS package for KNLs

View File

@ -204,7 +204,7 @@ be multiple tests run automatically:
.. parsed-literal::
Found 33 standard and 41 user packages
Found 74 packages
Standard package NEWPACKAGE missing in Packages_standard.rst
Standard package NEWPACKAGE missing in Packages_details.rst

View File

@ -30,17 +30,37 @@ steps, as explained on the :doc:`Build extras <Build_extras>` page.
These links take you to the extra instructions for those select
packages:
+--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+
| :ref:`COMPRESS <compress>` | :ref:`GPU <gpu>` | :ref:`KIM <kim>` | :ref:`KOKKOS <kokkos>` | :ref:`LATTE <latte>` | :ref:`MESSAGE <message>` |
+--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+
| :ref:`MSCG <mscg>` | :ref:`OPT <opt>` | :ref:`POEMS <poems>` | :ref:`PYTHON <python>` | :ref:`VORONOI <voronoi>` | :ref:`USER-ADIOS <user-adios>` |
+--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+
| :ref:`USER-ATC <user-atc>` | :ref:`USER-AWPMD <user-awpmd>` | :ref:`USER-COLVARS <user-colvars>` | :ref:`USER-H5MD <user-h5md>` | :ref:`USER-HDNNP <user-hdnnp>` | :ref:`USER-INTEL <user-intel>` |
+--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+
| :ref:`USER-MOLFILE <user-molfile>` | :ref:`USER-NETCDF <user-netcdf>` | :ref:`USER-PACE <user-pace>` | :ref:`USER-PLUMED <user-plumed>` | :ref:`USER-OMP <user-omp>` | :ref:`USER-QMMM <user-qmmm>` |
+--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+
| :ref:`USER-QUIP <user-quip>` | :ref:`USER-SCAFACOS <user-scafacos>` | :ref:`USER-SMD <user-smd>` | :ref:`USER-VTK <user-vtk>` | | |
+--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+
.. table_from_list::
:columns: 6
* :ref:`ADIOS <adios>`
* :ref:`ATC <atc>`
* :ref:`AWPMD <awpmd>`
* :ref:`COLVARS <colvars>`
* :ref:`COMPRESS <compress>`
* :ref:`GPU <gpu>`
* :ref:`H5MD <h5md>`
* :ref:`INTEL <intel>`
* :ref:`KIM <kim>`
* :ref:`KOKKOS <kokkos>`
* :ref:`LATTE <latte>`
* :ref:`MACHDYN <machdyn>`
* :ref:`MESSAGE <message>`
* :ref:`ML-HDNNP <ml-hdnnp>`
* :ref:`ML-PACE <ml-pace>`
* :ref:`ML-QUIP <ml-quip>`
* :ref:`MOLFILE <molfile>`
* :ref:`MSCG <mscg>`
* :ref:`NETCDF <netcdf>`
* :ref:`OPENMP <openmp>`
* :ref:`OPT <opt>`
* :ref:`PLUMED <plumed>`
* :ref:`POEMS <poems>`
* :ref:`PYTHON <python>`
* :ref:`QMMM <qmmm>`
* :ref:`SCAFACOS <scafacos>`
* :ref:`VORONOI <voronoi>`
* :ref:`VTK <vtk>`
The mechanism for including packages is simple but different for CMake
versus make.
@ -58,14 +78,10 @@ versus make.
.. code-block:: csh
-D PKG_MANYBODY=yes
-D PKG_USER-INTEL=yes
-D PKG_INTEL=yes
All standard and user packages are included the same way. Note
that USER packages have a hyphen between USER and the rest of the
package name, not an underscore.
See the shortcut section below for how to install many packages at
once with CMake.
All packages are included the same way. See the shortcut section
below for how to install many packages at once with CMake.
.. note::
@ -89,12 +105,10 @@ versus make.
.. code-block:: bash
make no-rigid
make yes-user-intel
make yes-intel
All standard and user packages are included the same way.
See the shortcut section below for how to install many packages at
once with make.
All packages are included the same way. See the shortcut section
below for how to install many packages at once with make.
.. note::
@ -126,7 +140,7 @@ other files dependent on that package are also excluded.
.. note::
By default no package is installed. Prior to August 2018, however,
By default no packages are installed. Prior to August 2018, however,
if you downloaded a tarball, 3 packages (KSPACE, MANYBODY, MOLECULE)
were pre-installed via the traditional make procedure in the ``src``
directory. That is no longer the case, so that CMake will build
@ -153,7 +167,7 @@ one of them as a starting point and customize it to your needs.
.. code-block:: bash
cmake -C ../cmake/presets/minimal.cmake [OPTIONS] ../cmake # enable just a few core packages
cmake -C ../cmake/presets/basic.cmake [OPTIONS] ../cmake # enable just a few core packages
cmake -C ../cmake/presets/most.cmake [OPTIONS] ../cmake # enable most packages
cmake -C ../cmake/presets/download.cmake [OPTIONS] ../cmake # enable packages which download sources or potential files
cmake -C ../cmake/presets/nolib.cmake [OPTIONS] ../cmake # disable packages that do require extra libraries or tools
@ -208,10 +222,10 @@ These commands install/un-install sets of packages:
make yes-all # install all packages
make no-all # uninstall all packages
make yes-standard or make yes-std # install standard packages
make no-standard or make no-std # uninstall standard packages
make yes-user # install user packages
make no-user # uninstall user packages
make yes-basic # install a few commonly used packages'
make no-basic # remove a few commonly used packages'
make yes-most # install most packages w/o libs'
make no-most # remove most packages w/o libs'
make yes-lib # install packages that require extra libraries
make no-lib # uninstall packages that require extra libraries
make yes-ext # install packages that require external libraries
@ -225,15 +239,14 @@ package`` will list all the these commands.
Installing or un-installing a package for the make based build process
works by simply copying files back and forth between the main source
directory src and the sub-directories with the package name (e.g.
src/KSPACE, src/USER-ATC), so that the files are included or excluded
src/KSPACE, src/ATC), so that the files are included or excluded
when LAMMPS is built. Only source files in the src folder will be
compiled.
The following make commands help manage files that exist in both the
src directory and in package sub-directories. You do not normally
need to use these commands unless you are editing LAMMPS files or are
:doc:`installing a patch <Install_patch>` downloaded from the LAMMPS web
site.
updating LAMMPS via git.
Type ``make package-status`` or ``make ps`` to show which packages are
currently installed. For those that are installed, it will list any
@ -245,10 +258,10 @@ currently installed, without listing the status of packages that are
not installed.
Type ``make package-update`` or ``make pu`` to overwrite src files with
files from the package sub-directories if the package is installed.
It should be used after a :doc:`patch has been applied <Install_patch>`,
since patches only update the files in the package sub-directory, but
not the src files.
files from the package sub-directories if the package is installed. It
should be used after the checkout has been :doc:`updated or changed
withy git <Install_git>`, this will only update the files in the package
sub-directories, but not the copies in the src folder.
Type ``make package-overwrite`` to overwrite files in the package
sub-directories with src files.

View File

@ -64,7 +64,7 @@ LAMMPS can use them if they are available on your system.
selected, then CMake will try to detect, if threaded FFTW
libraries are available and enable them by default. This setting
is independent of whether OpenMP threads are enabled and a
packages like KOKKOS or USER-OMP is used. If CMake cannot detect
packages like KOKKOS or OPENMP is used. If CMake cannot detect
the FFT library, you can set these variables to assist:
.. code-block:: bash
@ -242,8 +242,8 @@ does not support 64-bit integers or incurs performance penalties when
using them.
These are limits for the core of the LAMMPS code, specific features or
some styles may impose additional limits. The :ref:`USER-ATC
<PKG-USER-ATC>` package cannot be compiled with the "bigbig" setting.
some styles may impose additional limits. The :ref:`ATC
<PKG-ATC>` package cannot be compiled with the "bigbig" setting.
Also, there are limitations when using the library interface where some
functions with known issues have been replaced by dummy calls printing a
corresponding error message rather than crashing randomly or corrupting

View File

@ -18,7 +18,7 @@ Bond_style potentials
All LAMMPS :doc:`bond_style <bond_style>` commands. Some styles have
accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
parenthesis: g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t =
OPT.
.. table_from_list::
@ -57,7 +57,7 @@ Angle_style potentials
All LAMMPS :doc:`angle_style <angle_style>` commands. Some styles have
accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
parenthesis: g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t =
OPT.
.. table_from_list::
@ -99,7 +99,7 @@ Dihedral_style potentials
All LAMMPS :doc:`dihedral_style <dihedral_style>` commands. Some styles
have accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
parenthesis: g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t =
OPT.
.. table_from_list::
@ -135,7 +135,7 @@ Improper_style potentials
All LAMMPS :doc:`improper_style <improper_style>` commands. Some styles
have accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
parenthesis: g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t =
OPT.
.. table_from_list::

View File

@ -16,8 +16,8 @@ Compute commands
An alphabetic list of all LAMMPS :doc:`compute <compute>` commands.
Some styles have accelerated versions. This is indicated by
additional letters in parenthesis: g = GPU, i = USER-INTEL, k =
KOKKOS, o = USER-OMP, t = OPT.
additional letters in parenthesis: g = GPU, i = INTEL, k =
KOKKOS, o = OPENMP, t = OPT.
.. table_from_list::
:columns: 5
@ -47,17 +47,20 @@ KOKKOS, o = USER-OMP, t = OPT.
* :doc:`dihedral <compute_dihedral>`
* :doc:`dihedral/local <compute_dihedral_local>`
* :doc:`dilatation/atom <compute_dilatation_atom>`
* :doc:`dipole <compute_dipole>`
* :doc:`dipole/chunk <compute_dipole_chunk>`
* :doc:`displace/atom <compute_displace_atom>`
* :doc:`dpd <compute_dpd>`
* :doc:`dpd/atom <compute_dpd_atom>`
* :doc:`edpd/temp/atom <compute_edpd_temp_atom>`
* :doc:`efield/atom <compute_efield_atom>`
* :doc:`entropy/atom <compute_entropy_atom>`
* :doc:`erotate/asphere <compute_erotate_asphere>`
* :doc:`erotate/rigid <compute_erotate_rigid>`
* :doc:`erotate/sphere <compute_erotate_sphere>`
* :doc:`erotate/sphere/atom <compute_erotate_sphere_atom>`
* :doc:`event/displace <compute_event_displace>`
* :doc:`fabric <compute_fabric>`
* :doc:`fep <compute_fep>`
* :doc:`force/tally <compute_tally>`
* :doc:`fragment/atom <compute_cluster_atom>`

View File

@ -16,7 +16,7 @@ Fix commands
An alphabetic list of all LAMMPS :doc:`fix <fix>` commands. Some styles
have accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
parenthesis: g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t =
OPT.
.. table_from_list::
@ -162,6 +162,9 @@ OPT.
* :doc:`planeforce <fix_planeforce>`
* :doc:`plumed <fix_plumed>`
* :doc:`poems <fix_poems>`
* :doc:`polarize/bem/gmres <fix_polarize>`
* :doc:`polarize/bem/icc <fix_polarize>`
* :doc:`polarize/functional <fix_polarize>`
* :doc:`pour <fix_pour>`
* :doc:`precession/spin <fix_precession_spin>`
* :doc:`press/berendsen <fix_press_berendsen>`

View File

@ -16,7 +16,7 @@ KSpace solvers
All LAMMPS :doc:`kspace_style <kspace_style>` solvers. Some styles have
accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
parenthesis: g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t =
OPT.
.. table_from_list::
@ -28,6 +28,7 @@ OPT.
* :doc:`ewald/dipole/spin <kspace_style>`
* :doc:`msm (o) <kspace_style>`
* :doc:`msm/cg (o) <kspace_style>`
* :doc:`msm/dielectric <kspace_style>`
* :doc:`pppm (giko) <kspace_style>`
* :doc:`pppm/cg (o) <kspace_style>`
* :doc:`pppm/dipole <kspace_style>`
@ -36,4 +37,5 @@ OPT.
* :doc:`pppm/disp/tip4p (o) <kspace_style>`
* :doc:`pppm/stagger <kspace_style>`
* :doc:`pppm/tip4p (o) <kspace_style>`
* :doc:`pppm/dielectric <kspace_style>`
* :doc:`scafacos <kspace_style>`

View File

@ -16,7 +16,7 @@ Pair_style potentials
All LAMMPS :doc:`pair_style <pair_style>` commands. Some styles have
accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t =
parenthesis: g = GPU, i = INTEL, k = KOKKOS, o = OPENMP, t =
OPT.
.. table_from_list::
@ -69,6 +69,7 @@ OPT.
* :doc:`comb3 <pair_comb>`
* :doc:`cosine/squared <pair_cosine_squared>`
* :doc:`coul/cut (gko) <pair_coul>`
* :doc:`coul/cut/dielectric <pair_dielectric>`
* :doc:`coul/cut/global (o) <pair_coul>`
* :doc:`coul/cut/soft (o) <pair_fep_soft>`
* :doc:`coul/debye (gko) <pair_coul>`
@ -76,6 +77,7 @@ OPT.
* :doc:`coul/dsf (gko) <pair_coul>`
* :doc:`coul/long (gko) <pair_coul>`
* :doc:`coul/long/cs (g) <pair_cs>`
* :doc:`coul/long/dielectric <pair_dielectric>`
* :doc:`coul/long/soft (o) <pair_fep_soft>`
* :doc:`coul/msm (o) <pair_coul>`
* :doc:`coul/slater/cut <pair_coul_slater>`
@ -143,13 +145,17 @@ OPT.
* :doc:`lj/cubic (go) <pair_lj_cubic>`
* :doc:`lj/cut (gikot) <pair_lj>`
* :doc:`lj/cut/coul/cut (gko) <pair_lj_cut_coul>`
* :doc:`lj/cut/coul/cut/dielectric (o) <pair_dielectric>`
* :doc:`lj/cut/coul/cut/soft (o) <pair_fep_soft>`
* :doc:`lj/cut/coul/debye (gko) <pair_lj_cut_coul>`
* :doc:`lj/cut/coul/debye/dielectric <pair_dielectric>`
* :doc:`lj/cut/coul/dsf (gko) <pair_lj_cut_coul>`
* :doc:`lj/cut/coul/long (gikot) <pair_lj_cut_coul>`
* :doc:`lj/cut/coul/long/cs <pair_cs>`
* :doc:`lj/cut/coul/long/dielectric (o) <pair_dielectric>`
* :doc:`lj/cut/coul/long/soft (o) <pair_fep_soft>`
* :doc:`lj/cut/coul/msm (go) <pair_lj_cut_coul>`
* :doc:`lj/cut/coul/msm/dielectric <pair_dielectric>`
* :doc:`lj/cut/coul/wolf (o) <pair_lj_cut_coul>`
* :doc:`lj/cut/dipole/cut (go) <pair_dipole>`
* :doc:`lj/cut/dipole/long (g) <pair_dipole>`
@ -164,6 +170,7 @@ OPT.
* :doc:`lj/gromacs (gko) <pair_gromacs>`
* :doc:`lj/gromacs/coul/gromacs (ko) <pair_gromacs>`
* :doc:`lj/long/coul/long (iot) <pair_lj_long>`
* :doc:`lj/long/coul/long/dielectric <pair_dielectric>`
* :doc:`lj/long/dipole/long <pair_dipole>`
* :doc:`lj/long/tip4p/long (o) <pair_lj_long>`
* :doc:`lj/mdf <pair_mdf>`
@ -183,7 +190,7 @@ OPT.
* :doc:`lubricateU/poly <pair_lubricateU>`
* :doc:`mdpd <pair_mesodpd>`
* :doc:`mdpd/rhosum <pair_mesodpd>`
* :doc:`meam/c <pair_meamc>`
* :doc:`meam <pair_meam>`
* :doc:`meam/spline (o) <pair_meam_spline>`
* :doc:`meam/sw/spline <pair_meam_sw_spline>`
* :doc:`mesocnt <pair_mesocnt>`

View File

@ -164,7 +164,7 @@ LAMMPS:
allowed, but that should be sufficient for most use cases.
.. admonition:: ASCII versus UTF-8
:class: note
:class: note
LAMMPS expects and processes 7-bit ASCII format text internally.
Many modern environments use UTF-8 encoding, which is a superset

View File

@ -25,23 +25,20 @@ The reset_ids command has been renamed to :doc:`reset_atom_ids <reset_atom_ids>`
MEAM package
------------
The MEAM package has been removed since it was superseded by the
:ref:`USER-MEAMC package <PKG-USER-MEAMC>`. The code in
the USER-MEAMC package is a translation of the Fortran code of MEAM into C++,
which removes several restrictions (e.g. there can be multiple instances
in hybrid pair styles) and allows for some optimizations leading
to better performance. The new pair style :doc:`meam/c <pair_meamc>` has
the exact same syntax as the old "meam" pair style and thus pair style
meam is an alias to the new style and backward
compatibility of old inputs is preserved.
The MEAM package in Fortran has been replaced by a C++ implementation.
The code in the :ref:`MEAM package <PKG-MEAM>` is a translation of the
Fortran code of MEAM into C++, which removes several restrictions
(e.g. there can be multiple instances in hybrid pair styles) and allows
for some optimizations leading to better performance. The pair style
:doc:`meam <pair_meam>` has the exact same syntax.
REAX package
------------
The REAX package has been removed since it was superseded by the
:ref:`USER-REAXC package <PKG-USER-REAXC>`. The USER-REAXC
:ref:`REAXFF package <PKG-REAXFF>`. The REAXFF
package has been tested to yield equivalent results to the REAX package,
offers better performance, supports OpenMP multi-threading via USER-OMP,
offers better performance, supports OpenMP multi-threading via OPENMP,
and GPU and threading parallelization through KOKKOS. The new pair styles
are not syntax compatible with the removed reax pair style, so input
files will have to be adapted.

View File

@ -404,8 +404,8 @@ noise). Then it will restart from the previously generated restart and
compare with the reference and also start from the data file. A final
check will use multi-cutoff r-RESPA (if supported by the pair style) at
a 1:1 split and compare to the Verlet results. These sets of tests are
run with multiple test fixtures for accelerated styles (OPT, USER-OMP,
USER-INTEL) and for the latter two with 4 OpenMP threads enabled. For
run with multiple test fixtures for accelerated styles (OPT, OPENMP,
INTEL) and for the latter two with 4 OpenMP threads enabled. For
these tests the relative error (epsilon) is lowered by a common factor
due to the additional numerical noise, but the tests are still comparing
to the same reference data.

View File

@ -59,7 +59,7 @@ of each timestep. First of all, implement a constructor:
}
In the constructor you should parse your fix arguments which are
specified in the script. All fixes have pretty the same syntax:
specified in the script. All fixes have pretty much the same syntax:
``fix <fix-ID> <fix group> <fix name> <fix arguments ...>``. The
first 3 parameters are parsed by Fix base class constructor, while
``<fix arguments>`` should be parsed by you. In our case, we need to

View File

@ -1,11 +1,11 @@
Errors
******
These doc pages describe the errors you can encounter when using
LAMMPS. The common problems include conceptual issues. The messages
and warnings doc pages give complete lists of all the messages the
code may generate (except those generated by USER packages), with
additional details for many of them.
These doc pages describe many of the error and warning message you can
encounter when using LAMMPS. The common problems include conceptual
issues. The messages and warnings doc pages give complete lists of all
the messages the code may generate, with additional details for many of
them.
.. toctree::
:maxdepth: 1

View File

@ -14,10 +14,6 @@ For example, a message like this:
means that line #78 in the file src/velocity.cpp generated the error.
Looking in the source code may help you figure out what went wrong.
Note that error messages from :doc:`user-contributed packages <Packages_user>` are not listed here. If such an error
occurs and is not self-explanatory, you will need to look in the source
code or contact the author of the package.
Doc page with :doc:`WARNING messages <Errors_warnings>`
----------
@ -5899,7 +5895,7 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
other.
*Must set number of threads via package omp command*
Because you are using the USER-OMP package, set the number of threads
Because you are using the OPENMP package, set the number of threads
via its settings, not by the pair_style snap nthreads setting.
*Must shrink-wrap piston boundary*
@ -6344,16 +6340,16 @@ keyword to allow for additional bonds to be formed
The GPU package must be installed via "make yes-gpu" before LAMMPS is
built.
*Package intel command without USER-INTEL package installed*
The USER-INTEL package must be installed via "make yes-user-intel"
*Package intel command without INTEL package installed*
The INTEL package must be installed via "make yes-intel"
before LAMMPS is built.
*Package kokkos command without KOKKOS package enabled*
The KOKKOS package must be installed via "make yes-kokkos" before
LAMMPS is built, and the "-k on" must be used to enable the package.
*Package omp command without USER-OMP package installed*
The USER-OMP package must be installed via "make yes-user-omp" before
*Package omp command without OPENMP package installed*
The OPENMP package must be installed via "make yes-openmp" before
LAMMPS is built.
*Pair body requires atom style body*
@ -8064,13 +8060,13 @@ keyword to allow for additional bonds to be formed
*Using suffix gpu without GPU package installed*
Self-explanatory.
*Using suffix intel without USER-INTEL package installed*
*Using suffix intel without INTEL package installed*
Self-explanatory.
*Using suffix kk without KOKKOS package enabled*
Self-explanatory.
*Using suffix omp without USER-OMP package installed*
*Using suffix omp without OPENMP package installed*
Self-explanatory.
*Using update dipole flag requires atom attribute mu*

View File

@ -14,10 +14,6 @@ generated. For example, a message like this:
means that line #187 in the file src/domain.cpp generated the error.
Looking in the source code may help you figure out what went wrong.
Note that warning messages from :doc:`user-contributed packages <Packages_user>` are not listed here. If such a warning
occurs and is not self-explanatory, you will need to look in the source
code or contact the author of the package.
Doc page with :doc:`ERROR messages <Errors_messages>`
----------
@ -529,7 +525,7 @@ This will most likely cause errors in kinetic fluctuations.
*OMP_NUM_THREADS environment is not set.*
This environment variable must be set appropriately to use the
USER-OMP package.
OPENMP package.
*One or more atoms are time integrated more than once*
This is probably an error since you typically do not want to

View File

@ -205,11 +205,13 @@ Uppercase directories
+------------+--------------------------------------------------------------------------------------------------+
| MC | using LAMMPS in a Monte Carlo mode to relax the energy of a system |
+------------+--------------------------------------------------------------------------------------------------+
| PACKAGES | examples for specific packages and contributed commands in USER-MISC |
+------------+--------------------------------------------------------------------------------------------------+
| SPIN | examples for features of the SPIN package |
+------------+--------------------------------------------------------------------------------------------------+
| UNITS | examples that run the same simulation in lj, real, metal units |
+------------+--------------------------------------------------------------------------------------------------+
| USER | examples for USER packages and USER-contributed commands |
| USER-MISC | examples for commands in the USER-MISC packages |
+------------+--------------------------------------------------------------------------------------------------+
| VISCOSITY | compute viscosity via several methods |
+------------+--------------------------------------------------------------------------------------------------+
@ -217,11 +219,14 @@ Uppercase directories
Nearly all of these directories have README files which give more
details on how to understand and use their contents.
The USER directory has a large number of sub-directories which
correspond by name to a USER package. They contain scripts that
illustrate how to use the command(s) provided in that package. Many
The PACKAGES directory has a large number of sub-directories which
correspond by name to specific packages. They contain scripts that
illustrate how to use the command(s) provided in those packages. Many
of the sub-directories have their own README files which give further
instructions. See the :doc:`Packages_details <Packages_details>` doc
page for more info on specific USER packages.
page for more info on specific packages.
Similarly the USER-MISC directory has sub-directories for examples
corresponding to individual commands or styles in the USER-MISC package.
.. _openkim: https://openkim.org

View File

@ -382,9 +382,9 @@ change some variables later with additional *-D* flags. A few examples:
.. code-block:: bash
cmake -C ../cmake/presets/minimal.cmake -D PKG_MISC=on ../cmake
cmake -C ../cmake/presets/basic.cmake -D PKG_MISC=on ../cmake
cmake -C ../cmake/presets/clang.cmake -C ../cmake/presets/most.cmake ../cmake
cmake -C ../cmake/presets/minimal.cmake -D BUILD_MPI=off ../cmake
cmake -C ../cmake/presets/basic.cmake -D BUILD_MPI=off ../cmake
The first command will install the packages ``KSPACE``, ``MANYBODY``,
``MOLECULE``, ``RIGID`` and ``MISC``; the first four from the preset
@ -400,7 +400,7 @@ It is also possible to do this incrementally.
.. code-block:: bash
cmake -C ../cmake/presets/minimal.cmake ../cmake
cmake -C ../cmake/presets/basic.cmake ../cmake
cmake -D PKG_MISC=on .
will achieve the same final configuration as in the first example above.

View File

@ -2,14 +2,14 @@ Tutorial for Thermalized Drude oscillators in LAMMPS
====================================================
This tutorial explains how to use Drude oscillators in LAMMPS to
simulate polarizable systems using the USER-DRUDE package. As an
simulate polarizable systems using the DRUDE package. As an
illustration, the input files for a simulation of 250 phenol molecules
are documented. First of all, LAMMPS has to be compiled with the
USER-DRUDE package activated. Then, the data file and input scripts
DRUDE package activated. Then, the data file and input scripts
have to be modified to include the Drude dipoles and how to handle
them.
Example input scripts available: examples/USER/drude
Example input scripts available: examples/PACKAGES/drude
----------
@ -82,7 +82,7 @@ The data file is similar to a standard LAMMPS data file for
to their DC should appear in the data file as normal atoms and bonds.
You can use the *polarizer* tool (Python script distributed with the
USER-DRUDE package) to convert a non-polarizable data file (here
DRUDE package) to convert a non-polarizable data file (here
*data.102494.lmp*\ ) to a polarizable data file (\ *data-p.lmp*\ )
.. code-block:: bash

View File

@ -17,6 +17,11 @@ This compute
* :doc:`compute erotate/sphere <compute_erotate_sphere>`
calculates rotational kinetic energy which can be :doc:`output with thermodynamic info <Howto_output>`.
The compute
* :doc:`compute fabric <compute_fabric>`
calculates various versions of the fabric tensor for granular and non-granular pair styles.
Use one of these 4 pair potentials, which compute forces and torques
between interacting pairs of particles:

View File

@ -5,11 +5,11 @@ Manifolds (surfaces)
This doc page is not about a LAMMPS input script command, but about
manifolds, which are generalized surfaces, as defined and used by the
USER-MANIFOLD package, to track particle motion on the manifolds. See
the src/USER-MANIFOLD/README file for more details about the package
MANIFOLD package, to track particle motion on the manifolds. See
the src/MANIFOLD/README file for more details about the package
and its commands.
Below is a list of currently supported manifolds by the USER-MANIFOLD
Below is a list of currently supported manifolds by the MANIFOLD
package, their parameters and a short description of them. The
parameters listed here are in the same order as they should be passed
to the relevant fixes.

View File

@ -10,7 +10,7 @@ systems can be simulated in LAMMPS using three methods:
* the adiabatic core-shell method, implemented in the
:doc:`CORESHELL <Howto_coreshell>` package,
* the thermalized Drude dipole method, implemented in the
:doc:`USER-DRUDE <Howto_drude>` package.
:doc:`DRUDE <Howto_drude>` package.
The fluctuating charge method calculates instantaneous charges on
interacting atoms based on the electronegativity equalization

View File

@ -208,7 +208,7 @@ Presets are a way to specify a collection of CMake options using a file.
.. code-block:: bash
cmake ../cmake/presets/minimal.cmake ../cmake
cmake ../cmake/presets/basic.cmake ../cmake
This command configures the build and generates the necessary Makefiles. To compile the binary, run the make command.

View File

@ -18,7 +18,6 @@ need the source code.
Install_tarball
Install_git
Install_patch
These are the files and sub-directories in the LAMMPS distribution:
@ -27,6 +26,8 @@ These are the files and sub-directories in the LAMMPS distribution:
+------------+-------------------------------------------+
| LICENSE | GNU General Public License (GPL) |
+------------+-------------------------------------------+
| SECURITY.md| Security Policy for the LAMMPS package |
+------------+-------------------------------------------+
| bench | benchmark problems |
+------------+-------------------------------------------+
| cmake | CMake build files |

View File

@ -120,8 +120,11 @@ changed. How to do this depends on the build system you are using.
$ make package-update # sync package files with src files
$ make foo # re-build for your machine (mpi, serial, etc)
Just as described on the :doc:`Apply patch <Install_patch>` page,
after a patch has been installed.
to enforce consistency of the source between the src folder
and package directories. This is OK to do even if you don't
use any packages. The "make purge" command removes any deprecated
src files if they were removed by the patch from a package
sub-directory.
.. warning::

View File

@ -1,96 +0,0 @@
Applying patches
----------------
It is easy to stay current with the most recent LAMMPS patch releases
if you use git to track the LAMMPS development. Instructions for
how to stay current are on the
:doc:`Download the LAMMPS source with git <Install_git>` page.
If you prefer to download a tarball, as described on the
:doc:`tarball download <Install_tarball>` 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 fixes and new feature page <https://www.lammps.org/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
LAMMPS directory.
.. note::
You should not apply patch files to a local git checkout of
LAMMPS, only to an unpacked tarball. Use git commands to
update such a version of the LAMMPS source code.
Here are the steps to apply a patch file. Note that if your version
of LAMMPS is several patch releases behind, you need to apply all the
intervening patch files in succession to bring your version of LAMMPS
up to date.
* Download the patch file. You may have to shift-click in your browser
to download the file instead of display it. Patch files have names
like patch.12Dec16.
* Put the patch file in your top-level LAMMPS directory, where the
LICENSE and README files are.
* Apply the patch by typing the following command from your top-level
LAMMPS directory, where the redirected file is the name of the patch
file.
.. code-block:: bash
$ patch -bp1 < patch.12Dec16
* A list of updated files print out to the screen. The -b switch
creates backup files of your originals (e.g. src/force.cpp.orig), so
you can manually undo the patch if something goes wrong.
* Once you have updated your local files you need to re-build LAMMPS.
If you are applying several patches successively, you only need to
do the rebuild once at the end. How to do it depends on the build
system you are using.
.. tabs::
.. tab:: CMake build
Change to your build folder and type:
.. code-block:: bash
cmake . --build
CMake should auto-detect whether it needs to re-run the CMake
configuration step and otherwise redo the build for all files
that have been changed or files that depend on changed files.
In case some build options have been changed or renamed, you
may have to update those by running:
.. code-block:: bash
cmake .
and then rebuild.
.. tab:: Traditional make
Switch to the src directory and type:
.. code-block:: bash
$ make purge # remove any deprecated src files
$ make package-update # sync package files with src files
$ make foo # re-build for your machine (mpi, serial, etc)
to enforce consistency of the source between the src folder
and package directories. This is OK to do even if you don't
use any packages. The "make purge" command removes any deprecated
src files if they were removed by the patch from a package
sub-directory.
.. warning::
If you wish to edit/change a src file that is from a package,
you should edit the version of the file inside the package
sub-directory with src, then re-install the package. The
version in the source directory is merely a copy and will be
wiped out if you type "make package-update".

View File

@ -47,15 +47,3 @@ release.
.. _git: https://github.com/lammps/lammps/releases
----------
If you download a current LAMMPS tarball, one way to stay current as
new patch tarballs are released, is to download a patch file which you
can apply to your local directory to update it for each new patch
release. (Or of course you could just download the newest tarball
periodically.)
The patch files are posted on the `bug and feature page <bug_>`_ of the
website, along with a list of changed files and details about what is
in the new patch release. Instructions for applying a patch file are
on the :doc:`Install patch <Install_patch>` page.

View File

@ -14,13 +14,13 @@ current and older versions of LAMMPS are available. 32-bit and 64-bit
installers are available, and each installer contains both a serial
and parallel executable. The installer web site also explains how to
install the Windows MPI package (MPICH2 from Argonne National Labs),
needed to run in parallel.
needed to run in parallel with MPI.
The LAMMPS binaries contain *all* :doc:`optional packages <Packages>`
included in the source distribution except: KIM, KOKKOS, MSCG, PYTHON,
USER-ADIOS, USER-H5MD, USER-NETCDF, USER-QMMM, USER-QUIP, and USER-VTK.
ADIOS, H5MD, NETCDF, QMMM, ML-QUIP, and VTK.
The serial version also does not include the MPIIO and
USER-LB packages. The GPU package is compiled for OpenCL with
LATBOLTZ packages. The GPU package is compiled for OpenCL with
mixed precision kernels.
The LAMMPS library is compiled as a shared library and the

View File

@ -29,19 +29,19 @@ The following folks deserve special recognition. Many of the packages
they have written are unique for an MD code and LAMMPS would not be as
general-purpose as it is without their expertise and efforts.
* Metin Aktulga (MSU), USER-REAXC package for C version of ReaxFF
* Mike Brown (Intel), GPU and USER-INTEL packages
* Colin Denniston (U Western Ontario), USER-LB package
* Georg Ganzenmuller (EMI), USER-SMD and USER-SPH packages
* Andres Jaramillo-Botero (Caltech), USER-EFF package for electron force field
* Reese Jones (Sandia) and colleagues, USER-ATC package for atom/continuum coupling
* Metin Aktulga (MSU), REAXFF package for C version of ReaxFF
* Mike Brown (Intel), GPU and INTEL packages
* Colin Denniston (U Western Ontario), LATBOLTZ package
* Georg Ganzenmuller (EMI), MACHDYN and SPH packages
* Andres Jaramillo-Botero (Caltech), EFF package for electron force field
* Reese Jones (Sandia) and colleagues, ATC package for atom/continuum coupling
* Christoph Kloss (DCS Computing), LIGGGHTS code for granular materials, built on top of LAMMPS
* Rudra Mukherjee (JPL), POEMS package for articulated rigid body motion
* 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
* Christian Trott (Sandia), CUDA and KOKKOS packages
* Ilya Valuev (JIHT), AWPMD package for wave packet MD
* Greg Wagner (Northwestern U), MEAM package for MEAM potential
----------

View File

@ -31,7 +31,7 @@ that are not possible with existing input script commands.
applies to the core LAMMPS code and less so on add-on packages,
especially when those packages require additional code in the *lib*
folder, interface LAMMPS to Fortran libraries, or the code uses
static variables (like the USER-COLVARS package).
static variables (like the COLVARS package).
Another major issue to deal with is to correctly handle MPI.
Creating a LAMMPS instance requires passing an MPI communicator, or

View File

@ -9,6 +9,7 @@ This section documents the following functions:
- :cpp:func:`lammps_close`
- :cpp:func:`lammps_mpi_init`
- :cpp:func:`lammps_mpi_finalize`
- :cpp:func:`lammps_kokkos_finalize`
--------------------

View File

@ -124,6 +124,7 @@ Indices and tables
.. _webbrowser:
.. admonition:: Web Browser Compatibility
:class: note
The HTML version of the manual makes use of advanced features present
in "modern" web browsers. This can lead to incompatibilities with older

View File

@ -53,5 +53,5 @@ in two stages: the callback function is registered with the pair style
and then called from the Pair::ev_tally() function, which is called for
each pair after force and energy has been computed for this pair. Then
the tallied values are retrieved with the standard compute_scalar or
compute_vector or compute_peratom methods. The :doc:`compute styles in the USER-TALLY package <compute_tally>`
compute_vector or compute_peratom methods. The :doc:`compute styles in the TALLY package <compute_tally>`
provide *examples* for utilizing this mechanism.

View File

@ -49,13 +49,11 @@ with gzip. Please only use gzip compression, as this works well and is
available on all platforms.
If the new features/files are broadly useful we may add them as core
files to LAMMPS or as part of a :doc:`standard package <Packages_standard>`. Else we will add them as a
user-contributed file or :doc:`user package <Packages_user>`. Examples
of user packages are in src sub-directories that start with USER. The
files to LAMMPS or as part of a :doc:`package <Packages_list>`. The
USER-MISC package is simply a collection of (mostly) unrelated single
files, which is the simplest way to have your contribution quickly
added to the LAMMPS distribution. All the standard and user packages
are listed and described on the :doc:`Packages details <Packages_details>` doc page.
files, which is the simplest way to have your contribution quickly added
to the LAMMPS distribution. All packages are listed and described
on the :doc:`Packages details <Packages_details>` doc page.
Note that by providing us files to release, you are agreeing to make
them open-source, i.e. we can release them under the terms of the GPL
@ -65,27 +63,19 @@ on request only and with files that are authorized for that kind of
distribution removed (e.g. interface to FFTW). See the
:doc:`LAMMPS license <Intro_opensource>` doc page for details.
With user packages and files, all we are really providing (aside from
the fame and fortune that accompanies having your name in the source
code and on the `Authors page <https://www.lammps.org/authors.html>`_
of the `LAMMPS WWW site <lws_>`_), is a means for you to distribute your
work to the LAMMPS user community, and a mechanism for others to
easily try out your new feature. This may help you find bugs or make
contact with new collaborators. Note that you're also implicitly
agreeing to support your code which means answer questions, fix bugs,
and maintain it if LAMMPS changes in some way that breaks it (an
unusual event).
.. note::
If you prefer to actively develop and support your add-on
feature yourself, then you may wish to make it available for download
from your own website, as a user package that LAMMPS users can add to
their copy of LAMMPS. See the `Offsite LAMMPS packages and tools <https://www.lammps.org/offsite.html>`_ page of the LAMMPS web
site for examples of groups that do this. We are happy to advertise
your package and web site from that page. Simply email the
`developers <https://www.lammps.org/authors.html>`_ with info about
your package and we will post it there.
If you prefer to actively develop and support your add-on feature
yourself, then you may wish to make it available for download from
your own website, as a user package that LAMMPS users can add to
their copy of LAMMPS. See the `Offsite LAMMPS packages and tools
<https://www.lammps.org/offsite.html>`_ page of the LAMMPS web site
for examples of groups that do this. We are happy to advertise your
package and web site from that page. Simply email the `developers
<https://www.lammps.org/authors.html>`_ with info about your package
and we will post it there. We recommend to name external packages
USER-\<name\> so they can be easily distinguished from bundled packages
that do not have the USER- prefix.
.. _lws: https://www.lammps.org
@ -167,17 +157,20 @@ packages in the src directory for examples. If you are uncertain, please ask.
2 source files. You can do this multiple times if you wish to
contribute several individual features.
* If you want your contribution to be added as a user-contribution and
it is several related features, it is probably best to make it a user
package directory with a name like USER-FOO. In addition to your new
files, the directory should contain a README text file. The README
should contain your name and contact information and a brief
* If you want your contribution to be added and it has several related
features or is dependent on an external or bundled library, it is best
to make it a package directory with a name like FOO. In addition to
your new files, the directory should contain a README text file. The
README should contain your name and contact information and a brief
description of what your new package does. If your files depend on
other LAMMPS style files also being installed (e.g. because your file
is a derived class from the other LAMMPS class), then an Install.sh
file is also needed to check for those dependencies. See other README
and Install.sh files in other USER directories as examples. Send us a
tarball of this USER-FOO directory.
and Install.sh files in other directories as examples. Submit a pull
request on GitHub or send us a tarball of this FOO directory. Pull
requests are strongly encouraged since the greatly reduce the effort
to integrate a contribution and simplify the process of adjusting the
contributed code to cleanly integrate into the LAMMPS distribution.
* Your new source files need to have the LAMMPS copyright, GPL notice,
and your name and email address at the top, like other
@ -190,21 +183,21 @@ packages in the src directory for examples. If you are uncertain, please ask.
code.
* You **must** also create a **documentation** file for each new command
or style you are adding to LAMMPS. For simplicity and convenience, the
documentation of groups of closely related commands or styles may be
combined into a single file. This will be one file for a single-file
feature. For a package, it might be several files. These are text
files with a .rst extension using the `reStructuredText <rst_>`_
markup language, that are then converted to HTML and PDF using the
`Sphinx <sphinx_>`_ documentation generator tool. Running Sphinx with
the included configuration requires Python 3.x. Configuration
settings and custom extensions for this conversion are included in the
source distribution, and missing python packages will be transparently
downloaded into a virtual environment via pip. Thus, if your local
system is missing required packages, you need access to the
internet. The translation can be as simple as doing "make html pdf" in
the doc folder. As appropriate, the text files can include inline
mathematical expression or figures (see doc/JPG for examples).
or style you are adding to LAMMPS. For simplicity and convenience,
the documentation of groups of closely related commands or styles may
be combined into a single file. This will be one file for a
single-file feature. For a package, it might be several files. These
are text files with a .rst extension using the `reStructuredText
<rst_>`_ markup language, that are then converted to HTML and PDF
using the `Sphinx <sphinx_>`_ documentation generator tool. Running
Sphinx with the included configuration requires Python 3.x.
Configuration settings and custom extensions for this conversion are
included in the source distribution, and missing python packages will
be transparently downloaded into a virtual environment via pip. Thus,
if your local system is missing required packages, you need access to
the internet. The translation can be as simple as doing "make html
pdf" in the doc folder. As appropriate, the text files can include
inline mathematical expression or figures (see doc/JPG for examples).
Additional PDF files with further details (see doc/PDF for examples)
may also be included. The doc page should also include literature
citations as appropriate; see the bottom of doc/fix_nh.rst for
@ -212,21 +205,21 @@ packages in the src directory for examples. If you are uncertain, please ask.
cite itself. Citation labels must be unique across all .rst files.
The "Restrictions" section of the doc page should indicate if your
command is only available if LAMMPS is built with the appropriate
USER-MISC or USER-FOO package. See other user package doc files for
examples of how to do this. Please run at least "make html" and "make
spelling" and carefully inspect and proofread the resulting HTML
format doc page before submitting your code. Upon submission of a
pull request, checks for error free completion of the HTML and PDF
build will be performed and also a spell check, a check for correct
anchors and labels, and a check for completeness of references all
styles in their corresponding tables and lists is run. In case the
spell check reports false positives they can be added to the file
USER-MISC or FOO package. See other package doc files for examples of
how to do this. Please run at least "make html" and "make spelling"
and carefully inspect and proofread the resulting HTML format doc page
before submitting your code. Upon submission of a pull request,
checks for error free completion of the HTML and PDF build will be
performed and also a spell check, a check for correct anchors and
labels, and a check for completeness of references all styles in their
corresponding tables and lists is run. In case the spell check
reports false positives they can be added to the file
doc/utils/sphinx-config/false_positives.txt
* For a new package (or even a single command) you should include one or
more example scripts demonstrating its use. These should run in no
more than a couple minutes, even on a single processor, and not require
large data files as input. See directories under examples/USER for
large data files as input. See directories under examples/PACKAGES for
examples of input scripts other users provided for their packages.
These example inputs are also required for validating memory accesses
and testing for memory leaks with valgrind
@ -234,7 +227,7 @@ packages in the src directory for examples. If you are uncertain, please ask.
* If there is a paper of yours describing your feature (either the
algorithm/science behind the feature itself, or its initial usage, or
its implementation in LAMMPS), you can add the citation to the \*.cpp
source file. See src/USER-EFF/atom_vec_electron.cpp for an example.
source file. See src/EFF/atom_vec_electron.cpp for an example.
A LaTeX citation is stored in a variable at the top of the file and
a single line of code registering this variable is added to the
constructor of the class. If there is additional functionality (which

View File

@ -14,6 +14,5 @@ LAMMPS build process.
.. toctree::
:maxdepth: 1
Packages_standard
Packages_user
Packages_list
Packages_details

File diff suppressed because it is too large Load Diff

449
doc/src/Packages_list.rst Normal file
View File

@ -0,0 +1,449 @@
Available Packages
==================
This is the list of packages included in LAMMPS. The link for each
package name gives more details.
Packages are supported by either the LAMMPS developers or the
contributing authors and written in a syntax and style consistent with
the rest of LAMMPS.
The "Example" column is a sub-directory in the examples directory of the
distribution which has an input script that uses the package.
E.g. "peptide" refers to the examples/peptide directory; PACKAGES/atc refers
to the examples/PACKAGES/atc directory. The "Library" column indicates
whether an extra library is needed to build and use the package:
* no = no library
* sys = system library: you likely have it on your machine
* 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
.. list-table::
:header-rows: 1
:widths: auto
* - Package
- Description
- Doc page
- Example
- Library
* - :ref:`ADIOS <PKG-ADIOS>`
- dump output via ADIOS
- :doc:`dump adios <dump_adios>`
- PACKAGES/adios
- ext
* - :ref:`ASPHERE <PKG-ASPHERE>`
- aspherical particle models
- :doc:`Howto spherical <Howto_spherical>`
- ellipse
- no
* - :ref:`ATC <PKG-ATC>`
- Atom-to-Continuum coupling
- :doc:`fix atc <fix_atc>`
- PACKAGES/atc
- int
* - :ref:`AWPMD <PKG-AWPMD>`
- wave packet MD
- :doc:`pair_style awpmd/cut <pair_awpmd>`
- PACKAGES/awpmd
- int
* - :ref:`BOCS <PKG-BOCS>`
- BOCS bottom up coarse graining
- :doc:`fix bocs <fix_bocs>`
- PACKAGES/bocs
- no
* - :ref:`BODY <PKG-BODY>`
- body-style particles
- :doc:`Howto body <Howto_body>`
- body
- no
* - :ref:`BROWNIAN <PKG-BROWNIAN>`
- Brownian dynamics, self-propelled particles
- :doc:`fix brownian <fix_brownian>`, :doc:`fix propel/self <fix_propel_self>`
- PACKAGES/brownian
- no
* - :ref:`CG-DNA <PKG-CG-DNA>`
- coarse-grained DNA force fields
- src/CG-DNA/README
- PACKAGES/cgdna
- no
* - :ref:`CG-SDK <PKG-CG-SDK>`
- SDK coarse-graining model
- :doc:`pair_style lj/sdk <pair_sdk>`
- PACKAGES/cgsdk
- no
* - :ref:`CLASS2 <PKG-CLASS2>`
- class 2 force fields
- :doc:`pair_style lj/class2 <pair_class2>`
- n/a
- no
* - :ref:`COLLOID <PKG-COLLOID>`
- colloidal particles
- :doc:`atom_style colloid <atom_style>`
- colloid
- no
* - :ref:`COLVARS <PKG-COLVARS>`
- collective variables library
- :doc:`fix colvars <fix_colvars>`
- PACKAGES/colvars
- int
* - :ref:`COMPRESS <PKG-COMPRESS>`
- I/O compression
- :doc:`dump \*/gz <dump>`
- n/a
- sys
* - :ref:`CORESHELL <PKG-CORESHELL>`
- adiabatic core/shell model
- :doc:`Howto coreshell <Howto_coreshell>`
- coreshell
- no
* - :ref:`DIELECTRIC <PKG-DIELECTRIC>`
- dielectric boundary solvers and force styles
- :doc:`compute efield/atom <compute_efield_atom>`
- PACKAGES/dielectric
- no
* - :ref:`DIFFRACTION <PKG-DIFFRACTION>`
- virtual x-ray and electron diffraction
- :doc:`compute xrd <compute_xrd>`
- PACKAGES/diffraction
- no
* - :ref:`DIPOLE <PKG-DIPOLE>`
- point dipole particles
- :doc:`pair_style lj/.../dipole <pair_dipole>`
- dipole
- no
* - :ref:`DPD-BASIC <PKG-DPD-BASIC>`
- basic DPD models
- :doc:`pair_styles dpd dpd/tstat <pair_dpd>` :doc:`dpd/ext dpd/ext/tstat <pair_dpd_ext>`
- PACKAGES/dpd-basic
- no
* - :ref:`DPD-MESO <PKG-DPD-MESO>`
- mesoscale DPD models
- :doc:`pair_style edpd <pair_mesodpd>`
- PACKAGES/dpd-meso
- no
* - :ref:`DPD-REACT <PKG-DPD-REACT>`
- reactive dissipative particle dynamics
- src/DPD-REACT/README
- PACKAGES/dpd-react
- no
* - :ref:`DPD-SMOOTH <PKG-DPD-SMOOTH>`
- smoothed dissipative particle dynamics
- src/DPD-SMOOTH/README
- PACKAGES/dpd-smooth
- no
* - :ref:`DRUDE <PKG-DRUDE>`
- Drude oscillators
- :doc:`Howto drude <Howto_drude>`
- PACKAGES/drude
- no
* - :ref:`EFF <PKG-EFF>`
- electron force field
- :doc:`pair_style eff/cut <pair_eff>`
- PACKAGES/eff
- no
* - :ref:`FEP <PKG-FEP>`
- free energy perturbation
- :doc:`compute fep <compute_fep>`
- PACKAGES/fep
- no
* - :ref:`GPU <PKG-GPU>`
- GPU-enabled styles
- :doc:`Section gpu <Speed_gpu>`
- `Benchmarks <https://www.lammps.org/bench.html>`_
- int
* - :ref:`GRANULAR <PKG-GRANULAR>`
- granular systems
- :doc:`Howto granular <Howto_granular>`
- pour
- no
* - :ref:`H5MD <PKG-H5MD>`
- dump output via HDF5
- :doc:`dump h5md <dump_h5md>`
- n/a
- ext
* - :ref:`INTEL <PKG-INTEL>`
- optimized Intel CPU and KNL styles
- :doc:`Speed intel <Speed_intel>`
- `Benchmarks <https://www.lammps.org/bench.html>`_
- no
* - :ref:`KIM <PKG-KIM>`
- OpenKIM wrapper
- :doc:`pair_style kim <pair_kim>`
- kim
- ext
* - :ref:`KOKKOS <PKG-KOKKOS>`
- Kokkos-enabled styles
- :doc:`Speed kokkos <Speed_kokkos>`
- `Benchmarks <https://www.lammps.org/bench.html>`_
- no
* - :ref:`KSPACE <PKG-KSPACE>`
- long-range Coulombic solvers
- :doc:`kspace_style <kspace_style>`
- peptide
- no
* - :ref:`LATBOLTZ <PKG-LATBOLTZ>`
- Lattice Boltzmann fluid
- :doc:`fix lb/fluid <fix_lb_fluid>`
- PACKAGES/latboltz
- no
* - :ref:`LATTE <PKG-LATTE>`
- quantum DFTB forces via LATTE
- :doc:`fix latte <fix_latte>`
- latte
- ext
* - :ref:`MACHDYN <PKG-MACHDYN>`
- smoothed Mach dynamics
- `SMD User Guide <PDF/MACHDYN_LAMMPS_userguide.pdf>`_
- PACKAGES/machdyn
- ext
* - :ref:`MANIFOLD <PKG-MANIFOLD>`
- motion on 2d surfaces
- :doc:`fix manifoldforce <fix_manifoldforce>`
- PACKAGES/manifold
- no
* - :ref:`MANYBODY <PKG-MANYBODY>`
- many-body potentials
- :doc:`pair_style tersoff <pair_tersoff>`
- shear
- no
* - :ref:`MC <PKG-MC>`
- Monte Carlo options
- :doc:`fix gcmc <fix_gcmc>`
- n/a
- no
* - :ref:`MDI <PKG-MDI>`
- client-server coupling
- :doc:`MDI Howto <Howto_mdi>`
- PACKAGES/mdi
- ext
* - :ref:`MEAM <PKG-MEAM>`
- modified EAM potential (C++)
- :doc:`pair_style meam <pair_meam>`
- meam
- no
* - :ref:`MESONT <PKG-MESONT>`
- mesoscopic tubular potential model
- pair styles :doc:`mesont/tpm <pair_mesont_tpm>`, :doc:`mesocnt <pair_mesocnt>`
- PACKAGES/mesont
- int
* - :ref:`MESSAGE <PKG-MESSAGE>`
- client/server messaging
- :doc:`message <message>`
- message
- int
* - :ref:`MGPT <PKG-MGPT>`
- fast MGPT multi-ion potentials
- :doc:`pair_style mgpt <pair_mgpt>`
- PACKAGES/mgpt
- no
* - :ref:`MISC <PKG-MISC>`
- miscellaneous single-file commands
- n/a
- no
- no
* - :ref:`ML-HDNNP <PKG-ML-HDNNP>`
- High-dimensional neural network potentials
- :doc:`pair_style hdnnp <pair_hdnnp>`
- PACKAGES/hdnnp
- ext
* - :ref:`ML-IAP <PKG-ML-IAP>`
- multiple machine learning potentials
- :doc:`pair_style mliap <pair_mliap>`
- mliap
- no
* - :ref:`ML-PACE <PKG-ML-PACE>`
- Atomic Cluster Expansion potential
- :doc:`pair pace <pair_pace>`
- PACKAGES/pace
- ext
* - :ref:`ML-QUIP <PKG-ML-QUIP>`
- QUIP/libatoms interface
- :doc:`pair_style quip <pair_quip>`
- PACKAGES/quip
- ext
* - :ref:`ML-RANN <PKG-ML-RANN>`
- Pair style for RANN potentials
- :doc:`pair rann <pair_rann>`
- PACKAGES/rann
- no
* - :ref:`ML-SNAP <PKG-ML-SNAP>`
- quantum-fitted potential
- :doc:`pair_style snap <pair_snap>`
- snap
- no
* - :ref:`MOFFF <PKG-MOFFF>`
- styles for `MOF-FF <MOFplus_>`_ force field
- :doc:`pair_style buck6d/coul/gauss <pair_buck6d_coul_gauss>`
- PACKAGES/mofff
- no
* - :ref:`MOLECULE <PKG-MOLECULE>`
- molecular system force fields
- :doc:`Howto bioFF <Howto_bioFF>`
- peptide
- no
* - :ref:`MOLFILE <PKG-MOLFILE>`
- `VMD <VMD_>`_ molfile plug-ins
- :doc:`dump molfile <dump_molfile>`
- n/a
- ext
* - :ref:`MPIIO <PKG-MPIIO>`
- MPI parallel I/O dump and restart
- :doc:`dump <dump>`
- n/a
- no
* - :ref:`MSCG <PKG-MSCG>`
- multi-scale coarse-graining wrapper
- :doc:`fix mscg <fix_mscg>`
- mscg
- ext
* - :ref:`NETCDF <PKG-NETCDF>`
- dump output via NetCDF
- :doc:`dump netcdf <dump_netcdf>`
- n/a
- ext
* - :ref:`OPENMP <PKG-OPENMP>`
- OpenMP-enabled styles
- :doc:`Speed omp <Speed_omp>`
- `Benchmarks <https://www.lammps.org/bench.html>`_
- no
* - :ref:`OPT <PKG-OPT>`
- optimized pair styles
- :doc:`Speed opt <Speed_opt>`
- `Benchmarks <https://www.lammps.org/bench.html>`_
- no
* - :ref:`PERI <PKG-PERI>`
- Peridynamics models
- :doc:`pair_style peri <pair_peri>`
- peri
- no
* - :ref:`PHONON <PKG-PHONON>`
- phonon dynamical matrix
- :doc:`fix phonon <fix_phonon>`
- PACKAGES/phonon
- no
* - :ref:`PLUGIN <PKG-PLUGIN>`
- Plugin loader command
- :doc:`plugin <plugin>`
- plugins
- no
* - :ref:`PLUMED <PKG-PLUMED>`
- :ref:`PLUMED <PLUMED>` free energy library
- :doc:`fix plumed <fix_plumed>`
- PACKAGES/plumed
- ext
* - :ref:`POEMS <PKG-POEMS>`
- coupled rigid body motion
- :doc:`fix poems <fix_poems>`
- rigid
- int
* - :ref:`PTM <PKG-PTM>`
- Polyhedral Template Matching
- :doc:`compute ptm/atom <compute_ptm_atom>`
- n/a
- no
* - :ref:`PYTHON <PKG-PYTHON>`
- embed Python code in an input script
- :doc:`python <python>`
- python
- sys
* - :ref:`QEQ <PKG-QEQ>`
- QEq charge equilibration
- :doc:`fix qeq <fix_qeq>`
- qeq
- no
* - :ref:`QMMM <PKG-QMMM>`
- QM/MM coupling
- :doc:`fix qmmm <fix_qmmm>`
- PACKAGES/qmmm
- ext
* - :ref:`QTB <PKG-QTB>`
- quantum nuclear effects
- :doc:`fix qtb <fix_qtb>` :doc:`fix qbmsst <fix_qbmsst>`
- qtb
- no
* - :ref:`REACTION <PKG-REACTION>`
- chemical reactions in classical MD
- :doc:`fix bond/react <fix_bond_react>`
- PACKAGES/reaction
- no
* - :ref:`REAXFF <PKG-REAXFF>`
- ReaxFF potential (C/C++)
- :doc:`pair_style reaxc <pair_reaxc>`
- reax
- no
* - :ref:`REPLICA <PKG-REPLICA>`
- multi-replica methods
- :doc:`Howto replica <Howto_replica>`
- tad
- no
* - :ref:`RIGID <PKG-RIGID>`
- rigid bodies and constraints
- :doc:`fix rigid <fix_rigid>`
- rigid
- no
* - :ref:`SCAFACOS <PKG-SCAFACOS>`
- wrapper for ScaFaCoS Kspace solver
- :doc:`kspace_style scafacos <kspace_style>`
- PACKAGES/scafacos
- ext
* - :ref:`SHOCK <PKG-SHOCK>`
- shock loading methods
- :doc:`fix msst <fix_msst>`
- n/a
- no
* - :ref:`SMTBQ <PKG-SMTBQ>`
- second moment tight binding potential
- :doc:`pair_style smtbq <pair_smtbq>`
- PACKAGES/smtbq
- no
* - :ref:`SPH <PKG-SPH>`
- smoothed particle hydrodynamics
- `SPH User Guide <PDF/SPH_LAMMPS_userguide.pdf>`_
- PACKAGES/sph
- no
* - :ref:`SPIN <PKG-SPIN>`
- magnetic atomic spin dynamics
- :doc:`Howto spins <Howto_spins>`
- SPIN
- no
* - :ref:`SRD <PKG-SRD>`
- stochastic rotation dynamics
- :doc:`fix srd <fix_srd>`
- srd
- no
* - :ref:`TALLY <PKG-TALLY>`
- pairwise tally computes
- :doc:`compute XXX/tally <compute_tally>`
- PACKAGES/tally
- no
* - :ref:`UEF <PKG-UEF>`
- extensional flow
- :doc:`fix nvt/uef <fix_nh_uef>`
- PACKAGES/uef
- no
* - :ref:`USER-MISC <PKG-USER-MISC>`
- single-file contributions
- USER-MISC/README
- USER-MISC
- no
* - :ref:`VORONOI <PKG-VORONOI>`
- Voronoi tesselation
- :doc:`compute voronoi/atom <compute_voronoi_atom>`
- n/a
- ext
* - :ref:`VTK <PKG-VTK>`
- dump output via VTK
- :doc:`compute vtk <dump_vtk>`
- n/a
- ext
* - :ref:`YAFF <PKG-YAFF>`
- additional styles implemented in YAFF
- :doc:`angle_style cross <angle_cross>`
- PACKAGES/yaff
- no
.. _MOFplus: https://www.mofplus.org/content/show/MOF-FF
.. _PLUMED: https://www.plumed.org
.. _VMD: https://www.ks.uiuc.edu/Research/vmd/

View File

@ -1,95 +0,0 @@
Standard packages
=================
This is the list of standard packages in LAMMPS. The link for each
package name gives more details.
Standard packages are supported by the LAMMPS developers and are
written in a syntax and style consistent with the rest of LAMMPS.
This means the developers will answer questions about them, debug and
fix them if necessary, and keep them compatible with future changes to
LAMMPS.
The "Example" column is a sub-directory in the examples directory of
the distribution which has an input script that uses the package.
E.g. "peptide" refers to the examples/peptide directory; USER/atc
refers to the examples/USER/atc directory. The "Library" column
indicates whether an extra library is needed to build and use the
package:
* no = no library
* sys = system library: you likely have it on your machine
* 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
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| Package | Description | Doc page | Example | Library |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`ASPHERE <PKG-ASPHERE>` | aspherical particle models | :doc:`Howto spherical <Howto_spherical>` | ellipse | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`BODY <PKG-BODY>` | body-style particles | :doc:`Howto body <Howto_body>` | body | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`CLASS2 <PKG-CLASS2>` | class 2 force fields | :doc:`pair_style lj/class2 <pair_class2>` | n/a | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`COLLOID <PKG-COLLOID>` | colloidal particles | :doc:`atom_style colloid <atom_style>` | colloid | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`COMPRESS <PKG-COMPRESS>` | I/O compression | :doc:`dump \*/gz <dump>` | n/a | sys |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`CORESHELL <PKG-CORESHELL>` | adiabatic core/shell model | :doc:`Howto coreshell <Howto_coreshell>` | coreshell | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`DIPOLE <PKG-DIPOLE>` | point dipole particles | :doc:`pair_style lj/.../dipole <pair_dipole>` | dipole | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`GPU <PKG-GPU>` | GPU-enabled styles | :doc:`Section gpu <Speed_gpu>` | `Benchmarks <https://www.lammps.org/bench.html>`_ | int |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`GRANULAR <PKG-GRANULAR>` | granular systems | :doc:`Howto granular <Howto_granular>` | pour | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`KIM <PKG-KIM>` | OpenKIM wrapper | :doc:`pair_style kim <pair_kim>` | kim | ext |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`KOKKOS <PKG-KOKKOS>` | Kokkos-enabled styles | :doc:`Speed kokkos <Speed_kokkos>` | `Benchmarks <https://www.lammps.org/bench.html>`_ | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`KSPACE <PKG-KSPACE>` | long-range Coulombic solvers | :doc:`kspace_style <kspace_style>` | peptide | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`LATTE <PKG-LATTE>` | quantum DFTB forces via LATTE | :doc:`fix latte <fix_latte>` | latte | ext |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MANYBODY <PKG-MANYBODY>` | many-body potentials | :doc:`pair_style tersoff <pair_tersoff>` | shear | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MC <PKG-MC>` | Monte Carlo options | :doc:`fix gcmc <fix_gcmc>` | n/a | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MESSAGE <PKG-MESSAGE>` | client/server messaging | :doc:`message <message>` | message | int |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MISC <PKG-MISC>` | miscellaneous single-file commands | n/a | no | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MLIAP <PKG-MLIAP>` | multiple machine learning potentials | :doc:`pair_style mliap <pair_mliap>` | mliap | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MOLECULE <PKG-MOLECULE>` | molecular system force fields | :doc:`Howto bioFF <Howto_bioFF>` | peptide | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MPIIO <PKG-MPIIO>` | MPI parallel I/O dump and restart | :doc:`dump <dump>` | n/a | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`MSCG <PKG-MSCG>` | multi-scale coarse-graining wrapper | :doc:`fix mscg <fix_mscg>` | mscg | ext |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`OPT <PKG-OPT>` | optimized pair styles | :doc:`Speed opt <Speed_opt>` | `Benchmarks <https://www.lammps.org/bench.html>`_ | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`PERI <PKG-PERI>` | Peridynamics models | :doc:`pair_style peri <pair_peri>` | peri | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`PLUGIN <PKG-PLUGIN>` | Plugin loader command | :doc:`plugin <plugin>` | plugins | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`POEMS <PKG-POEMS>` | coupled rigid body motion | :doc:`fix poems <fix_poems>` | rigid | int |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`PYTHON <PKG-PYTHON>` | embed Python code in an input script | :doc:`python <python>` | python | sys |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`QEQ <PKG-QEQ>` | QEq charge equilibration | :doc:`fix qeq <fix_qeq>` | qeq | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`REPLICA <PKG-REPLICA>` | multi-replica methods | :doc:`Howto replica <Howto_replica>` | tad | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`RIGID <PKG-RIGID>` | rigid bodies and constraints | :doc:`fix rigid <fix_rigid>` | rigid | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`SHOCK <PKG-SHOCK>` | shock loading methods | :doc:`fix msst <fix_msst>` | n/a | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`SNAP <PKG-SNAP>` | quantum-fitted potential | :doc:`pair_style snap <pair_snap>` | snap | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`SPIN <PKG-SPIN>` | magnetic atomic spin dynamics | :doc:`Howto spins <Howto_spins>` | SPIN | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`SRD <PKG-SRD>` | stochastic rotation dynamics | :doc:`fix srd <fix_srd>` | srd | no |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+
| :ref:`VORONOI <PKG-VORONOI>` | Voronoi tesselation | :doc:`compute voronoi/atom <compute_voronoi_atom>` | n/a | ext |
+----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+

View File

@ -1,130 +0,0 @@
User packages
=============
This is a list of user packages in LAMMPS. The link for each package
name gives more details.
User packages have been contributed by users, and begin with the
"user" prefix. If a contribution is a single command (single file),
it is typically in the USER-MISC package. User packages don't
necessarily meet the requirements of the :doc:`standard packages <Packages_standard>`. This means the developers will try
to keep things working and usually can answer technical questions
about compiling the package. If you have problems using a specific
feature provided in a user package, you may need to contact the
contributor directly to get help. Information on how to submit
additions you make to LAMMPS as single files or as a standard or user
package is explained on the :doc:`Modify contribute <Modify_contribute>`
doc page.
The "Example" column is a sub-directory in the examples directory of
the distribution which has an input script that uses the package.
E.g. "peptide" refers to the examples/peptide directory; USER/atc
refers to the examples/USER/atc directory. The "Library" column
indicates whether an extra library is needed to build and use the
package:
* no = no library
* sys = system library: you likely have it on your machine
* 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
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| Package | Description | Doc page | Example | Library |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-ADIOS <PKG-USER-ADIOS>` | dump output via ADIOS | :doc:`dump adios <dump_adios>` | USER/adios | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-ATC <PKG-USER-ATC>` | Atom-to-Continuum coupling | :doc:`fix atc <fix_atc>` | USER/atc | int |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-AWPMD <PKG-USER-AWPMD>` | wave packet MD | :doc:`pair_style awpmd/cut <pair_awpmd>` | USER/awpmd | int |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-BOCS <PKG-USER-BOCS>` | BOCS bottom up coarse graining | :doc:`fix bocs <fix_bocs>` | USER/bocs | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-BROWNIAN <PKG-USER-BROWNIAN>` | Brownian dynamics and self-propelled particles | :doc:`fix brownian <fix_brownian>`, :doc:`fix propel/self <fix_propel_self>` | USER/brownian | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-CGDNA <PKG-USER-CGDNA>` | coarse-grained DNA force fields | src/USER-CGDNA/README | USER/cgdna | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-CGSDK <PKG-USER-CGSDK>` | SDK coarse-graining model | :doc:`pair_style lj/sdk <pair_sdk>` | USER/cgsdk | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-COLVARS <PKG-USER-COLVARS>` | collective variables library | :doc:`fix colvars <fix_colvars>` | USER/colvars | int |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-DIFFRACTION <PKG-USER-DIFFRACTION>` | virtual x-ray and electron diffraction | :doc:`compute xrd <compute_xrd>` | USER/diffraction | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-DPD <PKG-USER-DPD>` | reactive dissipative particle dynamics | src/USER-DPD/README | USER/dpd | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-DRUDE <PKG-USER-DRUDE>` | Drude oscillators | :doc:`Howto drude <Howto_drude>` | USER/drude | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-EFF <PKG-USER-EFF>` | electron force field | :doc:`pair_style eff/cut <pair_eff>` | USER/eff | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-FEP <PKG-USER-FEP>` | free energy perturbation | :doc:`compute fep <compute_fep>` | USER/fep | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-H5MD <PKG-USER-H5MD>` | dump output via HDF5 | :doc:`dump h5md <dump_h5md>` | n/a | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-HDNNP <PKG-USER-HDNNP>` | High-dimensional neural network potentials | :doc:`pair_style hdnnp <pair_hdnnp>` | USER/hdnnp | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-INTEL <PKG-USER-INTEL>` | optimized Intel CPU and KNL styles | :doc:`Speed intel <Speed_intel>` | `Benchmarks <https://www.lammps.org/bench.html>`_ | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-LB <PKG-USER-LB>` | Lattice Boltzmann fluid | :doc:`fix lb/fluid <fix_lb_fluid>` | USER/lb | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-MANIFOLD <PKG-USER-MANIFOLD>` | motion on 2d surfaces | :doc:`fix manifoldforce <fix_manifoldforce>` | USER/manifold | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-MDI <PKG-USER-MDI>` | client-server coupling | :doc:`MDI Howto <Howto_mdi>` | USER/mdi | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-MEAMC <PKG-USER-MEAMC>` | modified EAM potential (C++) | :doc:`pair_style meam/c <pair_meamc>` | meamc | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-MESODPD <PKG-USER-MESODPD>` | mesoscale DPD models | :doc:`pair_style edpd <pair_mesodpd>` | USER/mesodpd | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-MESONT <PKG-USER-MESONT>` | mesoscopic tubular potential model for nanotubes | pair style :doc:`mesont/tpm <pair_mesont_tpm>`, :doc:`mesocnt <pair_mesocnt>` | USER/mesont | int |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-MGPT <PKG-USER-MGPT>` | fast MGPT multi-ion potentials | :doc:`pair_style mgpt <pair_mgpt>` | USER/mgpt | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-MISC <PKG-USER-MISC>` | single-file contributions | USER-MISC/README | USER/misc | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-MOFFF <PKG-USER-MOFFF>` | styles for `MOF-FF <MOFplus_>`_ force field | :doc:`pair_style buck6d/coul/gauss <pair_buck6d_coul_gauss>` | USER/mofff | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-MOLFILE <PKG-USER-MOLFILE>` | `VMD <https://www.ks.uiuc.edu/Research/vmd/>`_ molfile plug-ins | :doc:`dump molfile <dump_molfile>` | n/a | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-NETCDF <PKG-USER-NETCDF>` | dump output via NetCDF | :doc:`dump netcdf <dump_netcdf>` | n/a | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-OMP <PKG-USER-OMP>` | OpenMP-enabled styles | :doc:`Speed omp <Speed_omp>` | `Benchmarks <https://www.lammps.org/bench.html>`_ | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-PACE <PKG-USER-PACE>` | Fast implementation of Atomic Cluster Expansion (ACE) potential | :doc:`pair pace <pair_pace>` | USER/pace | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-PHONON <PKG-USER-PHONON>` | phonon dynamical matrix | :doc:`fix phonon <fix_phonon>` | USER/phonon | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-PLUMED <PKG-USER-PLUMED>` | :ref:`PLUMED <PLUMED>` free energy library | :doc:`fix plumed <fix_plumed>` | USER/plumed | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-PTM <PKG-USER-PTM>` | Polyhedral Template Matching | :doc:`compute ptm/atom <compute_ptm_atom>` | n/a | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-QMMM <PKG-USER-QMMM>` | QM/MM coupling | :doc:`fix qmmm <fix_qmmm>` | USER/qmmm | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-QTB <PKG-USER-QTB>` | quantum nuclear effects | :doc:`fix qtb <fix_qtb>` :doc:`fix qbmsst <fix_qbmsst>` | qtb | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-QUIP <PKG-USER-QUIP>` | QUIP/libatoms interface | :doc:`pair_style quip <pair_quip>` | USER/quip | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-RANN <PKG-USER-RANN>` | rapid atomistic neural network (RANN) potentials | :doc:`pair rann <pair_rann>` | USER/rann | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-REACTION <PKG-USER-REACTION>` | chemical reactions in classical MD | :doc:`fix bond/react <fix_bond_react>` | USER/reaction | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-REAXC <PKG-USER-REAXC>` | ReaxFF potential (C/C++) | :doc:`pair_style reaxc <pair_reaxc>` | reax | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-SCAFACOS <PKG-USER-SCAFACOS>` | wrapper on ScaFaCoS solver | :doc:`kspace_style scafacos <kspace_style>` | USER/scafacos | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-SDPD <PKG-USER-SDPD>` | smoothed dissipative particle dynamics | :doc:`pair_style sdpd/taitwater/isothermal <pair_sdpd_taitwater_isothermal>` | USER/sdpd | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-SMD <PKG-USER-SMD>` | smoothed Mach dynamics | `SMD User Guide <PDF/SMD_LAMMPS_userguide.pdf>`_ | USER/smd | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-SMTBQ <PKG-USER-SMTBQ>` | second moment tight binding QEq potential | :doc:`pair_style smtbq <pair_smtbq>` | USER/smtbq | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-SPH <PKG-USER-SPH>` | smoothed particle hydrodynamics | `SPH User Guide <PDF/SPH_LAMMPS_userguide.pdf>`_ | USER/sph | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-TALLY <PKG-USER-TALLY>` | pairwise tally computes | :doc:`compute XXX/tally <compute_tally>` | USER/tally | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-UEF <PKG-USER-UEF>` | extensional flow | :doc:`fix nvt/uef <fix_nh_uef>` | USER/uef | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-VTK <PKG-USER-VTK>` | dump output via VTK | :doc:`compute vtk <dump_vtk>` | n/a | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-YAFF <PKG-USER-YAFF>` | additional styles implemented in YAFF | :doc:`angle_style cross <angle_cross>` | USER/yaff | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
.. _MOFplus: https://www.mofplus.org/content/show/MOF-FF
.. _PLUMED: https://www.plumed.org

View File

@ -134,7 +134,10 @@ compiled with.
The :py:func:`lmp.close() <lammps.lammps.close()>` call is
optional since the LAMMPS class instance will also be deleted
automatically during the :py:class:`lammps <lammps.lammps>` class
destructor.
destructor. Instead of :py:func:`lmp.close() <lammps.lammps.close()>`
it is also possible to call :py:func:`lmp.finalize() <lammps.lammps.finalize()>`;
this will destruct the LAMMPS instance, but also finalized and release
the MPI and/or Kokkos environment if enabled and active.
Note that you can create multiple LAMMPS objects in your Python
script, and coordinate and run multiple simulations, e.g.

View File

@ -69,7 +69,7 @@ this.
cd build
# configure LAMMPS compilation
cmake -C ../cmake/presets/minimal.cmake -D BUILD_SHARED_LIBS=on \
cmake -C ../cmake/presets/basic.cmake -D BUILD_SHARED_LIBS=on \
-D LAMMPS_EXCEPTIONS=on -D PKG_PYTHON=on ../cmake
# compile LAMMPS
@ -377,14 +377,6 @@ make MPI calls directly from Python in your script, if you desire.
We have tested this with `MPI for Python <https://mpi4py.readthedocs.io/>`_
(aka mpi4py) and you will find installation instruction for it below.
.. note::
Older LAMMPS versions were also tested with `PyPar <https://github.com/daleroberts/pypar>`_
but we can no longer test it, since it does not work with the Python
(3.x) versions on our test servers. Since there have been no updates
to PyPar visible in its repository since November 2016 we have to assume
it is no longer maintained.
Installation of mpi4py (version 3.0.3 as of Sep 2020) can be done as
follows:

View File

@ -10,7 +10,7 @@ letter abbreviation can be used:
* :ref:`-i or -in <file>`
* :ref:`-k or -kokkos <run-kokkos>`
* :ref:`-l or -log <log>`
* :ref:`-mdi <mdi>`
* :ref:`-mdi <mdi_flags>`
* :ref:`-m or -mpicolor <mpicolor>`
* :ref:`-c or -cite <cite>`
* :ref:`-nc or -nocite <nocite>`
@ -89,7 +89,7 @@ in the :doc:`the KOKKOS package page <Speed_kokkos>`, this switch must be set to
running with KOKKOS-enabled styles the package provides. If the
switch is not set (the default), LAMMPS will operate as if the KOKKOS
package were not installed; i.e. you can run standard LAMMPS or with
the GPU or USER-OMP packages, for testing or benchmarking purposes.
the GPU or OPENMP packages, for testing or benchmarking purposes.
Additional optional keyword/value pairs can be specified which
determine how Kokkos will use the underlying hardware on your
@ -197,12 +197,12 @@ Option -plog will override the name of the partition log files file.N.
----------
.. _mdi:
.. _mdi_flags:
**-mdi 'multiple flags'**
This flag is only recognized and used when LAMMPS has support for the MolSSI
Driver Interface (MDI) included as part of the :ref:`USER-MDI <PKG-USER-MDI>`
Driver Interface (MDI) included as part of the :ref:`MDI <PKG-MDI>`
package. This flag is specific to the MDI library and controls how LAMMPS
interacts with MDI. There are usually multiple flags that have to follow it
and those have to be placed in quotation marks. For more information about
@ -274,7 +274,7 @@ script. For example "-package gpu 2" or "-pk gpu 2" is the same as
:doc:`package gpu 2 <package>` in the input script. The possible styles
and args are documented on the :doc:`package <package>` doc page. This
switch can be used multiple times, e.g. to set options for the
USER-INTEL and USER-OMP packages which can be used together.
INTEL and OPENMP packages which can be used together.
Along with the "-suffix" command-line switch, this is a convenient
mechanism for invoking accelerator packages and their options without
@ -540,16 +540,16 @@ Use variants of various styles if they exist. The specified style can
be *gpu*\ , *intel*\ , *kk*\ , *omp*\ , *opt*\ , or *hybrid*\ . These
refer to optional packages that LAMMPS can be built with, as described
in :doc:`Accelerate performance <Speed>`. The "gpu" style corresponds to the
GPU package, the "intel" style to the USER-INTEL package, the "kk"
GPU package, the "intel" style to the INTEL package, the "kk"
style to the KOKKOS package, the "opt" style to the OPT package, and
the "omp" style to the USER-OMP package. The hybrid style is the only
the "omp" style to the OPENMP package. The hybrid style is the only
style that accepts arguments. It allows for two packages to be
specified. The first package specified is the default and will be used
if it is available. If no style is available for the first package,
the style for the second package will be used if available. For
example, "-suffix hybrid intel omp" will use styles from the
USER-INTEL package if they are installed and available, but styles for
the USER-OMP package otherwise.
INTEL package if they are installed and available, but styles for
the OPENMP package otherwise.
Along with the "-package" command-line switch, this is a convenient
mechanism for invoking accelerator packages and their options without
@ -570,15 +570,15 @@ default GPU settings, as if the command "package gpu 1" were used at
the top of your input script. These settings can be changed by using
the "-package gpu" command-line switch or the :doc:`package gpu <package>` command in your script.
For the USER-INTEL package, using this command-line switch also
invokes the default USER-INTEL settings, as if the command "package
For the INTEL package, using this command-line switch also
invokes the default INTEL settings, as if the command "package
intel 1" were used at the top of your input script. These settings
can be changed by using the "-package intel" command-line switch or
the :doc:`package intel <package>` command in your script. If the
USER-OMP package is also installed, the hybrid style with "intel omp"
OPENMP package is also installed, the hybrid style with "intel omp"
arguments can be used to make the omp suffix a second choice, if a
requested style is not available in the USER-INTEL package. It will
also invoke the default USER-OMP settings, as if the command "package
requested style is not available in the INTEL package. It will
also invoke the default OPENMP settings, as if the command "package
omp 0" were used at the top of your input script. These settings can
be changed by using the "-package omp" command-line switch or the
:doc:`package omp <package>` command in your script.

View File

@ -7,16 +7,16 @@ To run a serial (non-MPI) executable, follow these steps:
then typing "cmd".
* Move to the directory where you have your input script,
(e.g. by typing: cd "Documents").
* At the command prompt, type "lmp_serial -in in.file", where
* At the command prompt, type "lmp -in in.file", where
in.file is the name of your LAMMPS input script.
Note that the serial executable includes support for multi-threading
parallelization from the styles in the USER-OMP packages. To run with
parallelization from the styles in the OPENMP packages. To run with
4 threads, you can type this:
.. code-block:: bash
lmp_serial -in in.lj -pk omp 4 -sf omp
lmp -in in.lj -pk omp 4 -sf omp
----------
@ -41,15 +41,17 @@ into the MPICH2 installation directory, then into the sub-directory
* Move to the directory where you have your input file
(e.g. by typing: cd "Documents").
Then type something like this:
Then you can run the executable in serial like in the example above
or in parallel using MPI with one of the following commands:
.. code-block:: bash
mpiexec -localonly 4 lmp_mpi -in in.file
mpiexec -np 4 lmp_mpi -in in.file
mpiexec -localonly 4 lmp -in in.file
mpiexec -np 4 lmp -in in.file
where in.file is the name of your LAMMPS input script. For the latter
case, you may be prompted to enter your password.
case, you may be prompted to enter the password that you set during
installation of the MPI library software.
In this mode, output may not immediately show up on the screen, so if
your input script takes a long time to execute, you may need to be
@ -60,11 +62,12 @@ something like this:
.. code-block:: bash
lmp_mpi -in in.lj
lmp -in in.lj
Note that the parallel executable also includes OpenMP
multi-threading, which can be combined with MPI using something like:
.. code-block:: bash
mpiexec -localonly 2 lmp_mpi -in in.lj -pk omp 2 -sf omp
mpiexec -localonly 2 lmp -in in.lj -pk omp 2 -sf omp

View File

@ -67,12 +67,12 @@ section below for examples where this has been done.
pair style - on the CPU. This can often be easily achieved with placing
a *suffix off* command before and a *suffix on* command after the
*kspace_style pppm* command.
* The KOKKOS/OpenMP and USER-OMP package have different thread management
strategies, which should result in USER-OMP being more efficient for a
* The KOKKOS/OpenMP and OPENMP package have different thread management
strategies, which should result in OPENMP being more efficient for a
small number of threads with increasing overhead as the number of threads
per MPI rank grows. The KOKKOS/OpenMP kernels have less overhead in that
case, but have lower performance with few threads.
* The USER-INTEL package contains many options and settings for achieving
* The INTEL package contains many options and settings for achieving
additional performance on Intel hardware (CPU and accelerator cards), but
to unlock this potential, an Intel compiler is required. The package code
will compile with GNU gcc, but it will not be as efficient.
@ -90,5 +90,5 @@ section below for examples where this has been done.
both, NVIDIA and AMD GPUs well. On NVIDIA hardware, using CUDA is typically
resulting in equal or better performance over OpenCL.
* OpenCL in the GPU package does theoretically also support Intel CPUs or
Intel Xeon Phi, but the native support for those in KOKKOS (or USER-INTEL)
Intel Xeon Phi, but the native support for those in KOKKOS (or INTEL)
is superior.

View File

@ -35,8 +35,8 @@ Coulombics. It has the following general features:
To compile and use this package in CUDA mode, you currently need
to have an NVIDIA GPU and install the corresponding NVIDIA CUDA
toolkit software on your system (this is primarily tested on Linux
and completely unsupported on Windows):
toolkit software on your system (this is only tested on Linux
and unsupported on Windows):
* Check if you have an NVIDIA GPU: cat /proc/driver/nvidia/gpus/\*/information
* Go to http://www.nvidia.com/object/cuda_get.html
@ -150,7 +150,7 @@ hardware, which pair style is used, the number of atoms/GPU, and the
precision used on the GPU (double, single, mixed). Using the GPU package
in OpenCL mode on CPUs (which uses vectorization and multithreading) is
usually resulting in inferior performance compared to using LAMMPS' native
threading and vectorization support in the USER-OMP and USER-INTEL packages.
threading and vectorization support in the OPENMP and INTEL packages.
See the `Benchmark page <https://www.lammps.org/bench.html>`_ of the
LAMMPS web site for performance of the GPU package on various

View File

@ -1,7 +1,7 @@
USER-INTEL package
INTEL package
==================
The USER-INTEL package is maintained by Mike Brown at Intel
The INTEL package is maintained by Mike Brown at Intel
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
@ -12,7 +12,7 @@ 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 co-processor cores simultaneously.
Currently Available USER-INTEL Styles
Currently Available INTEL Styles
"""""""""""""""""""""""""""""""""""""
* Angle Styles: charmm, harmonic
@ -28,7 +28,7 @@ Currently Available USER-INTEL Styles
.. warning::
None of the styles in the USER-INTEL package currently
None of the styles in the INTEL package currently
support computing per-atom stress. If any compute or fix in your
input requires it, LAMMPS will abort with an error message.
@ -41,7 +41,7 @@ precision mode. Performance improvements are shown compared to
LAMMPS *without using other acceleration packages* as these are
under active development (and subject to performance changes). The
measurements were performed using the input files available in
the src/USER-INTEL/TEST directory with the provided run script.
the src/INTEL/TEST directory with the provided run script.
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
@ -56,7 +56,7 @@ Results are speedups obtained on Intel Xeon E5-2697v4 processors
Knights Landing), and Intel Xeon Gold 6148 processors (code-named
Skylake) with "June 2017" LAMMPS built with Intel Parallel Studio
2017 update 2. Results are with 1 MPI task per physical core. See
*src/USER-INTEL/TEST/README* for the raw simulation rates and
*src/INTEL/TEST/README* for the raw simulation rates and
instructions to reproduce.
----------
@ -67,11 +67,11 @@ Accuracy and order of operations
In most molecular dynamics software, parallelization parameters
(# of MPI, OpenMP, and vectorization) can change the results due
to changing the order of operations with finite-precision
calculations. The USER-INTEL package is deterministic. This means
calculations. The INTEL package is deterministic. This means
that the results should be reproducible from run to run with the
*same* parallel configurations and when using deterministic
libraries or library settings (MPI, OpenMP, FFT). However, there
are differences in the USER-INTEL package that can change the
are differences in the INTEL package that can change the
order of operations compared to LAMMPS without acceleration:
* Neighbor lists can be created in a different order
@ -88,7 +88,7 @@ order of operations compared to LAMMPS without acceleration:
Twister generator included in the Intel MKL library (that should be
more robust than the default Masaglia random number generator)
The precision mode (described below) used with the USER-INTEL
The precision mode (described below) used with the INTEL
package can change the *accuracy* of the calculations. For the
default *mixed* precision option, calculations between pairs or
triplets of atoms are performed in single precision, intended to
@ -102,7 +102,7 @@ mode should not be used without appropriate validation.
Quick Start for Experienced Users
"""""""""""""""""""""""""""""""""
LAMMPS should be built with the USER-INTEL package installed.
LAMMPS should be built with the INTEL package installed.
Simulations should be run with 1 MPI task per physical *core*\ ,
not *hardware thread*\ .
@ -148,7 +148,7 @@ When using Intel compilers version 16.0 or later is required.
In order to use offload to co-processors, an Intel Xeon Phi
co-processor and an Intel compiler are required.
Although any compiler can be used with the USER-INTEL package,
Although any compiler can be used with the INTEL package,
currently, vectorization directives are disabled by default when
not using Intel compilers due to lack of standard support and
observations of decreased performance. The OpenMP standard now
@ -185,7 +185,7 @@ can start running so that the CPU pipeline is still being used
efficiently. Although benefits can be seen by launching a MPI task
for every hardware thread, for multinode simulations, we recommend
that OpenMP threads are used for SMT instead, either with the
USER-INTEL package, :doc:`USER-OMP package <Speed_omp>`, or
INTEL package, :doc:`OPENMP package <Speed_omp>`, or
:doc:`KOKKOS package <Speed_kokkos>`. In the example above, up
to 36X speedups can be observed by using all 36 physical cores with
LAMMPS. By using all 72 hardware threads, an additional 10-30%
@ -202,10 +202,10 @@ this information can normally be obtained with:
cat /proc/cpuinfo
Building LAMMPS with the USER-INTEL package
Building LAMMPS with the INTEL package
"""""""""""""""""""""""""""""""""""""""""""
See the :ref:`Build extras <user-intel>` doc page for
See the :ref:`Build extras <intel>` doc page for
instructions. Some additional details are covered here.
For building with make, several example Makefiles for building with
@ -228,7 +228,7 @@ simple as:
.. code-block:: bash
make yes-user-intel
make yes-intel
source /opt/intel/parallel_studio_xe_2016.3.067/psxevars.sh
# or psxevars.csh for C-shell
make intel_cpu_intelmpi
@ -238,7 +238,7 @@ 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
The general requirements for Makefiles with the INTEL package
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
@ -253,7 +253,7 @@ recommended CCFLAG options for best performance are "-O2 -fno-alias
.. note::
See the src/USER-INTEL/README file for additional flags that
See the src/INTEL/README file for additional flags that
might be needed for best performance on Intel server processors
code-named "Skylake".
@ -270,14 +270,14 @@ recommended CCFLAG options for best performance are "-O2 -fno-alias
in most of the example Makefiles is to use "-xHost", however this
should not be used when cross-compiling.
Running LAMMPS with the USER-INTEL package
Running LAMMPS with the INTEL package
""""""""""""""""""""""""""""""""""""""""""
Running LAMMPS with the USER-INTEL package is similar to normal use
Running LAMMPS with the INTEL package is similar to normal use
with the exceptions that one should 1) specify that LAMMPS should use
the USER-INTEL package, 2) specify the number of OpenMP threads, and
the INTEL package, 2) specify the number of OpenMP threads, and
3) optionally specify the specific LAMMPS styles that should use the
USER-INTEL package. 1) and 2) can be performed from the command-line
INTEL package. 1) and 2) can be performed from the command-line
or by editing the input script. 3) requires editing the input script.
Advanced performance tuning options are also described below to get
the best performance.
@ -312,27 +312,27 @@ almost all cases.
recommended, especially when running on a machine with Intel
Hyper-Threading technology disabled.
Run with the USER-INTEL package from the command line
Run with the INTEL package from the command line
"""""""""""""""""""""""""""""""""""""""""""""""""""""
To enable USER-INTEL optimizations for all available styles used in
To enable INTEL optimizations for all available styles used in
the input script, the "-sf intel" :doc:`command-line switch <Run_options>` can be used without any requirement for
editing the input script. This switch will automatically append
"intel" to styles that support it. It also invokes a default command:
:doc:`package intel 1 <package>`. This package command is used to set
options for the USER-INTEL package. The default package command will
specify that USER-INTEL calculations are performed in mixed precision,
options for the INTEL package. The default package command will
specify that 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 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
co-processor.
You can specify different options for the USER-INTEL package by using
You can specify different options for the INTEL package by using
the "-pk intel Nphi" :doc:`command-line switch <Run_options>` with
keyword/value pairs as specified in the documentation. Here, Nphi = #
of Xeon Phi co-processors/node (ignored without offload
support). Common options to the USER-INTEL package include *omp* to
support). Common options to the 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
enable Long-Range Thread mode as described below. See the :doc:`package intel <package>` command for details, including the default values
@ -348,11 +348,11 @@ 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 co-processors that might be available, use 2 OpenMP threads for each task, use double precision
Or run with the USER-INTEL package by editing an input script
Or run with the INTEL package by editing an input script
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
As an alternative to adding command-line arguments, the input script
can be edited to enable the USER-INTEL package. This requires adding
can be edited to enable the INTEL package. This requires adding
the :doc:`package intel <package>` command to the top of the input
script. For the second example above, this would be:
@ -360,7 +360,7 @@ script. For the second example above, this would be:
package intel 0 omp 2 mode double
To enable the USER-INTEL package only for individual styles, you can
To enable the INTEL package only for individual styles, you can
add an "intel" suffix to the individual style, e.g.:
.. code-block:: LAMMPS
@ -368,7 +368,7 @@ add an "intel" suffix to the individual style, e.g.:
pair_style lj/cut/intel 2.5
Alternatively, the :doc:`suffix intel <suffix>` command can be added to
the input script to enable USER-INTEL styles for the commands that
the input script to enable INTEL styles for the commands that
follow in the input script.
Tuning for Performance
@ -376,7 +376,7 @@ Tuning for Performance
.. note::
The USER-INTEL package will perform better with modifications
The INTEL package will perform better with modifications
to the input script when :doc:`PPPM <kspace_style>` is used:
:doc:`kspace_modify diff ad <kspace_modify>` should be added to the
input script.
@ -388,7 +388,7 @@ is dedicated to performing some of the PPPM calculations and MPI
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
it is set in all makefiles tuned for the INTEL package. On Intel
Xeon Phi x200 series CPUs, the LRT feature will likely improve
performance, even on a single node. On Intel Xeon processors, using
this mode might result in better performance when using multiple nodes,
@ -407,9 +407,9 @@ when using offload.
performance and/or scalability for simple 2-body potentials such as
lj/cut or when using LRT mode on processors supporting AVX-512.
Not all styles are supported in the USER-INTEL package. You can mix
the USER-INTEL package with styles from the :doc:`OPT <Speed_opt>`
package or the :doc:`USER-OMP package <Speed_omp>`. Of course, this
Not all styles are supported in the INTEL package. You can mix
the INTEL package with styles from the :doc:`OPT <Speed_opt>`
package or the :doc:`OPENMP package <Speed_omp>`. Of course, this
requires that these packages were installed at build time. This can
performed automatically by using "-sf hybrid intel opt" or "-sf hybrid
intel omp" command-line options. Alternatively, the "opt" and "omp"
@ -420,7 +420,7 @@ where Nt is the number of OpenMP threads. The number of OpenMP threads
should not be set differently for the different packages. Note that
the :doc:`suffix hybrid intel omp <suffix>` command can also be used
within the input script to automatically append the "omp" suffix to
styles when USER-INTEL styles are not available.
styles when INTEL styles are not available.
.. note::
@ -492,7 +492,7 @@ 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 :doc:`package intel <package>` command.
The USER-INTEL package has two modes for deciding which atoms will be
The INTEL package has two modes for deciding which atoms will be
handled by the co-processor. This choice is controlled with the *ghost*
keyword of the :doc:`package intel <package>` command. When set to 0,
ghost atoms (atoms at the borders between MPI tasks) are not offloaded
@ -528,7 +528,7 @@ accelerated style may be used with hybrid styles when offloading.
:doc:`Special_bonds <special_bonds>` 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
the pair styles in the USER-INTEL package currently support the
the pair styles in the INTEL package currently support the
"inner", "middle", "outer" options for rRESPA integration via the
:doc:`run_style respa <run_style>` command; only the "pair" option is
supported.

View File

@ -27,7 +27,7 @@ GPUs) and HIP (for AMD GPUs). You choose the mode at build time to
produce an executable compatible with a specific hardware.
.. admonition:: C++14 support
:class: note
:class: note
Kokkos requires using a compiler that supports the c++14 standard. For
some compilers, it may be necessary to add a flag to enable c++14 support.
@ -235,7 +235,7 @@ threads/task as Nt. The product of these two values should be N, i.e.
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
them in "native" mode, not "offload" mode like the INTEL package
supports.
Running on GPUs
@ -390,10 +390,10 @@ Generally speaking, the following rules of thumb apply:
* When running on CPUs only, with a single thread per MPI task,
performance of a KOKKOS style is somewhere between the standard
(un-accelerated) styles (MPI-only mode), and those provided by the
USER-OMP package. However the difference between all 3 is small (less
OPENMP package. However the difference between all 3 is small (less
than 20%).
* When running on CPUs only, with multiple threads per MPI task,
performance of a KOKKOS style is a bit slower than the USER-OMP
performance of a KOKKOS style is a bit slower than the OPENMP
package.
* When running large number of atoms per GPU, KOKKOS is typically faster
than the GPU package when compiled for double precision. The benefit
@ -401,8 +401,8 @@ Generally speaking, the following rules of thumb apply:
significantly on the hardware in use and the simulated system and pair
style.
* When running on Intel hardware, KOKKOS is not as fast as
the USER-INTEL package, which is optimized for x86 hardware (not just
from Intel) and compilation with the Intel compilers. The USER-INTEL
the INTEL package, which is optimized for x86 hardware (not just
from Intel) and compilation with the Intel compilers. The INTEL
package also can increase the vector length of vector instructions
by switching to single or mixed precision mode.

View File

@ -1,7 +1,7 @@
USER-OMP package
OPENMP package
================
The USER-OMP package was developed by Axel Kohlmeyer at Temple
The OPENMP package was developed by Axel Kohlmeyer at Temple
University. It provides optimized and multi-threaded versions
of many pair styles, nearly all bonded styles (bond, angle, dihedral,
improper), several Kspace styles, and a few fix styles. It uses
@ -15,13 +15,13 @@ To enable multi-threading, your compiler must support the OpenMP interface.
You should have one or more multi-core CPUs, as multiple threads can only be
launched by each MPI task on the local node (using shared memory).
Building LAMMPS with the USER-OMP package
Building LAMMPS with the OPENMP package
"""""""""""""""""""""""""""""""""""""""""
See the :ref:`Build extras <user-omp>` doc page for
See the :ref:`Build extras <openmp>` doc page for
instructions.
Run with the USER-OMP package from the command line
Run with the OPENMP package from the command line
"""""""""""""""""""""""""""""""""""""""""""""""""""
These examples assume one or more 16-core nodes.
@ -39,7 +39,7 @@ tasks used per node. E.g. the mpirun command in MPICH does this via
its -np and -ppn switches. Ditto for OpenMPI via -np and -npernode.
You need to choose how many OpenMP threads per MPI task will be used
by the USER-OMP package. Note that the product of MPI tasks \*
by the OPENMP package. Note that the product of MPI tasks \*
threads/task should not exceed the physical number of cores (on a
node), otherwise performance will suffer.
@ -55,7 +55,7 @@ details, including the default values used if it is not specified. It
also gives more details on how to set the number of threads via the
OMP_NUM_THREADS environment variable.
Or run with the USER-OMP package by editing an input script
Or run with the OPENMP package by editing an input script
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
The discussion above for the mpirun/mpiexec command, MPI tasks/node,
@ -69,7 +69,7 @@ Use the :doc:`suffix omp <suffix>` command, or you can explicitly add an
pair_style lj/cut/omp 2.5
You must also use the :doc:`package omp <package>` command to enable the
USER-OMP package. When you do this you also specify how many threads
OPENMP package. When you do this you also specify how many threads
per MPI task to use. The command doc page explains other options and
how to set the number of threads via the OMP_NUM_THREADS environment
variable.
@ -82,10 +82,10 @@ reduction in the "Pair time", "Bond time", "KSpace time", and "Loop
time" values printed at the end of a run.
You may see a small performance advantage (5 to 20%) when running a
USER-OMP style (in serial or parallel) with a single thread per MPI
OPENMP style (in serial or parallel) with a single thread per MPI
task, versus running standard LAMMPS with its standard un-accelerated
styles (in serial or all-MPI parallelization with 1 task/core). This
is because many of the USER-OMP styles contain similar optimizations
is because many of the OPENMP styles contain similar optimizations
to those used in the OPT package, described in
:doc:`the OPT package <Speed_opt>` doc page.
@ -95,19 +95,19 @@ tested via benchmark runs for a specific simulation running on a
specific machine, paying attention to guidelines discussed in the next
sub-section.
A description of the multi-threading strategy used in the USER-OMP
A description of the multi-threading strategy used in the OPENMP
package and some performance examples are
`presented here <http://sites.google.com/site/akohlmey/software/lammps-icms/lammps-icms-tms2011-talk.pdf?attredirects=0&d=1>`_.
Guidelines for best performance
"""""""""""""""""""""""""""""""
For many problems on current generation CPUs, running the USER-OMP
For many problems on current generation CPUs, running the OPENMP
package with a single thread/task is faster than running with multiple
threads/task. This is because the MPI parallelization in LAMMPS is
often more efficient than multi-threading as implemented in the
USER-OMP package. The parallel efficiency (in a threaded sense) also
varies for different USER-OMP styles.
OPENMP package. The parallel efficiency (in a threaded sense) also
varies for different OPENMP styles.
Using multiple threads/task can be more effective under the following
circumstances:
@ -143,7 +143,7 @@ circumstances:
sometimes be achieved by increasing the length of the Coulombic cutoff
and thus reducing the work done by the long-range solver. Using the
:doc:`run_style verlet/split <run_style>` command, which is compatible
with the USER-OMP package, is an alternative way to reduce the number
with the OPENMP package, is an alternative way to reduce the number
of MPI tasks assigned to the KSpace calculation.
Additional performance tips are as follows:

View File

@ -12,17 +12,16 @@ All of these commands are in packages provided with LAMMPS. An
overview of packages is give on the :doc:`Packages <Packages>` doc
pages.
These are the accelerator packages currently in LAMMPS, either as
standard or user packages:
These are the accelerator packages currently in LAMMPS:
+-----------------------------------------+-------------------------------------------------------+
| :doc:`GPU Package <Speed_gpu>` | for GPUs via CUDA, OpenCL, or ROCm HIP |
+-----------------------------------------+-------------------------------------------------------+
| :doc:`USER-INTEL Package <Speed_intel>` | for Intel CPUs and Intel Xeon Phi |
| :doc:`INTEL Package <Speed_intel>` | for Intel CPUs and Intel Xeon Phi |
+-----------------------------------------+-------------------------------------------------------+
| :doc:`KOKKOS Package <Speed_kokkos>` | for NVIDIA GPUs, Intel Xeon Phi, and OpenMP threading |
+-----------------------------------------+-------------------------------------------------------+
| :doc:`USER-OMP Package <Speed_omp>` | for OpenMP threading and generic CPU optimizations |
| :doc:`OPENMP Package <Speed_omp>` | for OpenMP threading and generic CPU optimizations |
+-----------------------------------------+-------------------------------------------------------+
| :doc:`OPT Package <Speed_opt>` | generic CPU optimizations |
+-----------------------------------------+-------------------------------------------------------+
@ -41,11 +40,11 @@ Inverting this list, LAMMPS currently has acceleration support for
three kinds of hardware, via the listed packages:
+-----------------+-----------------------------------------------------------------------------------------------------------------------------+
| Many-core CPUs | :doc:`USER-INTEL <Speed_intel>`, :doc:`KOKKOS <Speed_kokkos>`, :doc:`USER-OMP <Speed_omp>`, :doc:`OPT <Speed_opt>` packages |
| Many-core CPUs | :doc:`INTEL <Speed_intel>`, :doc:`KOKKOS <Speed_kokkos>`, :doc:`OPENMP <Speed_omp>`, :doc:`OPT <Speed_opt>` packages |
+-----------------+-----------------------------------------------------------------------------------------------------------------------------+
| GPUs | :doc:`GPU <Speed_gpu>`, :doc:`KOKKOS <Speed_kokkos>` packages |
+-----------------+-----------------------------------------------------------------------------------------------------------------------------+
| Intel Phi/AVX | :doc:`USER-INTEL <Speed_intel>`, :doc:`KOKKOS <Speed_kokkos>` packages |
| Intel Phi/AVX | :doc:`INTEL <Speed_intel>`, :doc:`KOKKOS <Speed_kokkos>` packages |
+-----------------+-----------------------------------------------------------------------------------------------------------------------------+
Which package is fastest for your hardware may depend on the size
@ -84,9 +83,9 @@ listed above:
+--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| build the accelerator library | only for GPU package |
+--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| install the accelerator package | make yes-opt, make yes-user-intel, etc |
| install the accelerator package | make yes-opt, make yes-intel, etc |
+--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| add compile/link flags to Makefile.machine in src/MAKE | only for USER-INTEL, KOKKOS, USER-OMP, OPT packages |
| add compile/link flags to Makefile.machine in src/MAKE | only for INTEL, KOKKOS, OPENMP, OPT packages |
+--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| re-build LAMMPS | make machine |
+--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
@ -116,15 +115,15 @@ script.
With a few exceptions, you can build a single LAMMPS executable
with all its accelerator packages installed. Note however that the
USER-INTEL and KOKKOS packages require you to choose one of their
INTEL and KOKKOS packages require you to choose one of their
hardware options when building for a specific platform. I.e. CPU or
Phi option for the USER-INTEL package. Or the OpenMP, Cuda, or Phi
Phi option for the INTEL package. Or the OpenMP, Cuda, or Phi
option for the KOKKOS package.
These are the exceptions. You cannot build a single executable with:
* both the USER-INTEL Phi and KOKKOS Phi options
* the USER-INTEL Phi or Kokkos Phi option, and the GPU package
* both the INTEL Phi and KOKKOS Phi options
* the INTEL Phi or Kokkos Phi option, and the GPU package
See the examples/accelerate/README and make.list files for sample
Make.py commands that build LAMMPS with any or all of the accelerator
@ -156,7 +155,7 @@ are in the individual accelerator sections.
* Styles with a "gpu" suffix are part of the GPU package and can be run
on Intel, NVIDIA, or AMD GPUs. The speed-up on a GPU depends on a
variety of factors, discussed in the accelerator sections.
* Styles with an "intel" suffix are part of the USER-INTEL
* Styles with an "intel" suffix are part of the INTEL
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
@ -167,7 +166,7 @@ are in the individual accelerator sections.
run using OpenMP on multicore CPUs, on an NVIDIA or AMD GPU, or on an
Intel Xeon Phi in "native" mode. The speed-up depends on a variety of
factors, as discussed on the KOKKOS accelerator page.
* Styles with an "omp" suffix are part of the USER-OMP package and allow
* Styles with an "omp" suffix are part of the OPENMP package and allow
a pair-style to be run in multi-threaded mode using OpenMP. This can
be useful on nodes with high-core counts when using less MPI processes
than cores is advantageous, e.g. when running with PPPM so that FFTs

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