Compare commits

...

2698 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
6f00e98945 Merge pull request #2785 from akohlmey/next_patch_release
Step version string for next patch release
2021-05-27 17:13:03 -04:00
bd1c5592ab Merge pull request #2784 from akohlmey/set-python-home
Internally set PYTHONHOME for LAMMPS on Windows
2021-05-27 16:45:34 -04:00
129c517abe link to copy of GPLv2 inside of LAMMPS distribution 2021-05-27 16:09:28 -04:00
98023e73b9 clarify GPL version and fix URLs 2021-05-27 15:44:56 -04:00
2ee3e5851d step version string for next patch release 2021-05-27 15:25:40 -04:00
b4e5298bf8 Merge pull request #2783 from stanmoore1/kk_update_3.4.1
Update Kokkos library in LAMMPS to v3.4.1
2021-05-27 15:10:34 -04:00
89058e8712 skip bundling GPLv3 lib 2021-05-27 15:05:27 -04:00
86059433f6 Merge pull request #2570 from kipbarrett/pair_rann
Add new Package USER-RANN with pair style rann for using a neural network to compute energies and forces
2021-05-27 13:07:26 -04:00
8c8e4eaeec Update Kokkos arch list 2021-05-27 10:48:10 -06:00
0895abaa74 Update Kokkos CMake file 2021-05-27 10:40:31 -06:00
a660f286b1 internally forward LAMMPSHOME environment variable, if present, to PYTHONHOME 2021-05-27 12:39:25 -04:00
76a472d8b8 Merge pull request #2640 from ndtrung81/eam-gpu
Fixing bugs on eam*/gpu for pair hybrid with neigh yes, where the gpu…
2021-05-27 12:11:13 -04:00
e2f702ab63 Merge pull request #2768 from rbberger/doc_versions
Prepare LAMMPS manual to show multiple versions and downloads
2021-05-27 10:54:43 -04:00
7d2f252568 Update Kokkos library in LAMMPS to v3.4.1 2021-05-27 08:45:16 -06:00
40a5c2de5b Merge pull request #2782 from jrgissing/bond/react-doc-tweaks
Bond/react doc tweaks
2021-05-27 10:41:14 -04:00
0713e95873 integrate documentation 2021-05-26 16:55:51 -04:00
258afaafd8 whitespace 2021-05-26 16:05:52 -04:00
80fc111b5c add new package to .gitignore 2021-05-26 16:05:45 -04:00
64aa84a851 remove dead code 2021-05-26 16:01:26 -04:00
f703025c32 whitespace 2021-05-26 16:01:03 -04:00
4b37421318 Add word 2021-05-26 16:00:58 -04:00
c13b1b39ef Change title and add forum page link 2021-05-26 15:58:30 -04:00
409dd02eae Merge remote-tracking branch 'origin/master' into doc_versions 2021-05-26 15:54:56 -04:00
368765f10f disable automatic clang-format processing for .cpp files 2021-05-26 15:41:44 -04:00
769183c94f simplify and reformat 2021-05-26 15:40:15 -04:00
4794b4cd38 update include files according to LAMMPS' conventions 2021-05-26 15:26:25 -04:00
9d9a7e853e make header ready for use with clang-format and apply conventions 2021-05-26 15:26:08 -04:00
1af4538858 update homepage URLs 2021-05-26 15:19:00 -04:00
012003c68a Merge branch 'master' into pair_rann
# Conflicts:
#	cmake/CMakeLists.txt
#	cmake/presets/all_off.cmake
#	cmake/presets/all_on.cmake
2021-05-26 15:17:30 -04:00
49ced1ed18 Merge pull request #2781 from akohlmey/collected-small-changes
Collected small changes
2021-05-26 11:29:18 -04:00
01212881d2 clarify docs 2021-05-26 00:05:21 -04:00
c723fe2345 Update fix_bond_react.rst 2021-05-25 23:54:43 -04:00
0f5a1178fb we don't need txt2rst and txt2html anymore 2021-05-25 22:14:29 -04:00
d3bf00769c a couple more URL fixes 2021-05-25 22:14:00 -04:00
04f7cd0fb7 replace non-ASCII characters 2021-05-25 22:13:37 -04:00
4ee00087c4 update homepage URLs 2021-05-25 18:59:06 -04:00
04defbf49c Merge remote-tracking branch 'github/master' into collected-small-changes 2021-05-25 18:57:34 -04:00
2fa389ed4a Merge pull request #2626 from singraber/pair-style-nnp
Contribution: package USER-HDNNP for high-dimensional neural network potentials
2021-05-25 17:51:40 -04:00
14f989b086 Also use current_version in layout.html 2021-05-25 17:36:52 -04:00
e1c5cfd372 Add LAMMPS_WEBSITE_BUILD_VERSION to set current doc version 2021-05-25 17:23:34 -04:00
5b548879a7 tell CMake to export all symbols when building .dlls on windows
this needs a special treatment when compiling with the MinGW cross-compiler
2021-05-25 17:17:54 -04:00
c10812644d correct citation 2021-05-25 17:17:16 -04:00
735c5c52dc Merge remote-tracking branch 'origin/master' into doc_versions 2021-05-25 17:15:23 -04:00
a3a2bdc8f6 Keep version in header, only show selector if LAMMPS_WEBSITE_BUILD is set 2021-05-25 17:15:17 -04:00
c6bf768826 update list of packages included with cross-compilation 2021-05-25 16:56:41 -04:00
8c9b29f9ec Merge branch 'pair-style-nnp' of github.com:singraber/lammps into pair-style-nnp 2021-05-25 14:52:50 -06:00
c55997abca Minor edits 2021-05-25 14:51:55 -06:00
9e1db61b41 Merge branch 'master' into pair-style-nnp 2021-05-25 16:44:55 -04:00
58625d800e also make CMake scripts in unittest tree consistent 2021-05-25 15:10:18 -04:00
bc063f2e88 make formatting of if statements and string comparisons consistent 2021-05-25 15:06:08 -04:00
bec53a1cbf fix bug with passing strings to fortran. this closes #2780 2021-05-25 14:41:35 -04:00
a853cd0487 tell CMake to export all symbols when building .dlls on windows
this needs a special treatment when compiling with the MinGW cross-compiler
2021-05-25 14:37:31 -04:00
92e995d3a2 Merge pull request #2778 from akohlmey/update-homepage-url
Add tool to fix LAMMPS homepage URLs
2021-05-24 16:58:33 -04:00
7cc00e3fed fix spelling 2021-05-24 16:21:48 -04:00
2e6a0112d3 update URLs in some more files 2021-05-24 16:19:37 -04:00
743ce218a4 Merge branch 'update-homepage-url' of github.com:akohlmey/lammps into update-homepage-url 2021-05-24 15:53:57 -04:00
fdfa761f45 update mesont fortran library sources 2021-05-24 15:53:44 -04:00
e7ed20d307 hack to allow processing individual files. handle a few more substitutions 2021-05-24 15:53:21 -04:00
2a33e3674e Added src/USER-DIELECTRIC and examples/USER/dielectric 2021-05-24 14:51:28 -05:00
49218059b4 hack to allow processing individual files 2021-05-24 15:38:41 -04:00
63ecb77303 fix some more URLs 2021-05-24 15:38:27 -04:00
73195677a5 don't export security statement to source snapshots 2021-05-24 15:34:47 -04:00
825182d06c fix typo. closes #2779 2021-05-24 15:33:48 -04:00
5eb818a02b the manual, especially the PDF version, has 3 parts 2021-05-24 14:44:47 -04:00
dca509a5d8 update the all on/off CMake presets 2021-05-24 14:43:13 -04:00
0a6401fb7b add missing colon 2021-05-24 14:39:39 -04:00
e4b3d8b632 correct table formatting that got broken by changing URLs 2021-05-24 14:38:03 -04:00
3f963ce249 update README/docs about generating the manual and accessing it online 2021-05-24 14:33:00 -04:00
09c19a936b update URLs in source code and manual 2021-05-24 14:18:20 -04:00
9bafefb4df Merge branch 'master' into update-homepage-url 2021-05-24 14:05:04 -04:00
61b1126c3d Merge branch 'master' into pair_rann
# Conflicts:
#	cmake/CMakeLists.txt
#	src/Makefile
2021-05-24 12:21:04 -04:00
a50c980595 Merge branch 'master' into pair-style-nnp 2021-05-24 12:08:45 -04:00
a0352433c0 Merge pull request #2777 from akohlmey/collected-small-changes
Collected small changes and fixes
2021-05-24 11:48:04 -04:00
08b44b59b0 Merge pull request #2776 from akohlmey/clang-tidy
Address issues detected by static code analysis with clang-tidy
2021-05-24 11:07:25 -04:00
7dee0b0633 Merge branch 'gpu-updates' into eam-gpu 2021-05-24 00:24:04 -04:00
0b538b1922 add tool to fix LAMMPS homepage URLs 2021-05-23 19:49:32 -04:00
f3e90633b5 Resolve merge conflicts with upstream one more time 2021-05-23 16:37:42 -04:00
53164321c9 silence CMake warnings with CMake 3.19 and later when cross compiling 2021-05-23 03:37:58 -04:00
ba854ec7c3 changes required to cross-compile unit tests for windows 2021-05-23 01:46:14 -04:00
d5f62a22b8 64-bit integers are "long long" on windows, not "long" (which is 32-bit) 2021-05-23 00:53:40 -04:00
bf2d1db49d PGI compiler can handle restrict and aligned attributes 2021-05-22 21:28:39 -04:00
d9bcbe0e42 fix null pointer dereferences due to typos 2021-05-22 19:16:36 -04:00
5c99669897 silence PGI compiler warnings 2021-05-22 19:09:01 -04:00
d2fe5e6ec8 include compiler optimization with certain build types when using presets 2021-05-22 18:35:56 -04:00
c0d13d064c since the new Intel compiler is LLVM based the _noalias macro needs to be defined like for GNU and Clang 2021-05-22 18:35:15 -04:00
7ba0d553e4 correct C++ standard dependency of Kokkos in Package details summary 2021-05-22 18:34:33 -04:00
6a41109cde work around compatibility issues with MPI and classic intel compilers 2021-05-22 18:30:25 -04:00
47507de276 libn2p2 uses M_PI which is non-standard and thus requires -std=gnu++11 with newer MinGW 2021-05-22 16:26:36 -04:00
0737e014f3 update code owners file 2021-05-22 13:51:55 -04:00
7a17780a82 consistently check for newton pair off and align error message rest of LAMMPS
also add checks for required charge property for pair styles with coulomb
2021-05-22 13:17:58 -04:00
0e1fa44b9d fix compilation error on latest intel OpenCL compiler due to missing tagint definition 2021-05-22 13:16:31 -04:00
6fe5c338a8 add comments to document USER-HDNNP cmake scripting 2021-05-22 11:54:35 -04:00
eae4efdbde silence PGI compiler warnings 2021-05-22 11:53:35 -04:00
076412b7ac allow compiler specific ar 2021-05-22 11:35:40 -04:00
8b76f6ac63 disable debug settings and pass platform "ar" program 2021-05-22 11:28:06 -04:00
42ef13bc06 enable C++11 for compiling N2P2 lib with PGI 2021-05-22 11:19:54 -04:00
14cb45c161 xcode compiler may be reported as AppleClang instead of Clang 2021-05-22 10:40:55 -04:00
5e2b97812e update sed command for BSD sed which doesn't like multiple -e options 2021-05-22 10:33:06 -04:00
450503cc42 pass C++ standard setting flag to N2P2 make (needed for macOS' xcode) 2021-05-22 10:30:38 -04:00
3083756a64 include USER-HDNNP in MinGW64 cross-compilation build 2021-05-22 08:03:29 -04:00
01a94af217 small doc update / whitespace fix 2021-05-22 08:01:45 -04:00
95427b1fda add support for building with Windows including cross-compilation and MPI-2 2021-05-22 07:43:54 -04:00
c0b25853cf more cmake tweaks 2021-05-21 17:12:11 -04:00
9f363f219f silence compiler warning 2021-05-21 16:58:01 -04:00
db55531eed simplify 2021-05-21 16:57:44 -04:00
1c4e011926 plug memory leak 2021-05-21 16:57:35 -04:00
48169abbe8 add doi to short citation message 2021-05-21 16:57:24 -04:00
a9dfecc27f regularize automatic download build for n2p2 library with CMake 2021-05-21 16:16:01 -04:00
10961b8cb6 update to upstream 2021-05-21 16:15:31 -04:00
e01502d349 Finished build doc pages 2021-05-21 18:18:46 +02:00
a9427f20b2 Merge pull request #2770 from strlnkv/wall_region_morse_bug_fix
wall/region Morse potential derivative correction
2021-05-19 20:07:26 -04:00
b2641a4836 Merge pull request #2775 from akohlmey/tip4p-coulomb-warn
Print warning when a tip4p pair style may cause incorrect results
2021-05-19 20:06:05 -04:00
5aebbee564 coordinate -> site 2021-05-19 19:29:00 -04:00
0b8c82e906 use correct type for clang-tidy command options 2021-05-19 17:56:26 -04:00
e584a3b958 Must use explicit scope on virtual functions when called from constructor 2021-05-19 16:57:15 -04:00
cfb3efb50f add cmake config option to enable clang-tidy with preferred options 2021-05-19 16:45:43 -04:00
a847a7ee9e print warning when a tip4p pair style may cause incorrect results 2021-05-19 15:33:26 -04:00
fe93603d15 Merge branch 'eam-gpu' of https://github.com/ndtrung81/lammps into eam-gpu 2021-05-19 10:59:47 -05:00
8af6e58a7f Fixed a bug with the eam kernel for screening out pairs that are excluded by the pair style (when eam is a sub-style in pair hybrid) 2021-05-19 10:56:51 -05:00
a0ca2e2681 Updated pair style hdnnp docs 2021-05-19 00:15:25 +02:00
32838fd4b8 Merge pull request #2773 from dynikon/master
Fix angle_style table doc
2021-05-18 16:31:15 -04:00
12baec203d Merge pull request #2771 from akohlmey/collected-small-changes
CMake and documentation updates for USER-MDI
2021-05-18 15:07:16 -04:00
5dbf9f754e Merge branch 'master' into eam-gpu 2021-05-18 14:19:39 -04:00
3ccac2d9cc Merge pull request #2772 from stanmoore1/bugfix
Fix issues in last patch
2021-05-18 14:17:45 -04:00
c6991b20ca fix angle_table doc 2021-05-18 13:26:13 +09:00
7ebed94df9 fix cut-n-paste bug 2021-05-17 18:14:21 -04:00
fb3fdb43a1 Tweak ASPHERE examples 2021-05-17 10:27:57 -06:00
cc99be900a Fix memory leak in Kokkos memory grow() function 2021-05-17 10:13:56 -06:00
2f91b03c50 Small tweak 2021-05-17 09:52:50 -06:00
b0be5ea408 Merge branch 'bugfix' of github.com:stanmoore1/lammps into bugfix 2021-05-17 09:41:35 -06:00
5271854721 Fix dellocation issues 2021-05-17 09:41:14 -06:00
5ad84a0a49 Fix unitialized variable 2021-05-17 09:08:59 -06:00
640a46ec3f Fix broken examples 2021-05-17 08:29:54 -06:00
9cf8f96838 Fixed bug, changed build docs 2021-05-17 00:39:06 +02:00
31a55f1f76 Merge branch 'master' of github.com:lammps/lammps into pair-style-nnp 2021-05-16 22:54:29 +02:00
333f0c0c2a simplify some more 2021-05-15 23:01:59 -04:00
266b824b92 document -mdi command line flag 2021-05-15 22:30:14 -04:00
e4a24445c4 include USER-PACE in Windows package 2021-05-15 22:17:10 -04:00
017643cfa8 address various issues in USER-MDI.cmake for downloaded MDI library 2021-05-15 21:41:45 -04:00
d8d1f398cd fix formatting issues 2021-05-15 18:12:16 -04:00
7a8cd4694a document -mdi flag in help message 2021-05-15 18:12:03 -04:00
343fe6392b wall/region Morse potential derivative correction
The 1/r part due to dr/dx is added further in post_force().
2021-05-15 23:54:42 +03:00
e04f4dde17 work around use of non-standard M_PI define in PACE external library 2021-05-15 16:39:59 -04:00
8062323b93 update presets to reflect recently added packages 2021-05-15 10:19:01 -04:00
e6178892c7 Merge pull request #2766 from akohlmey/next_patch_release
Step version strings for the next patch release
2021-05-15 01:13:41 -04:00
7d40eb3cac fix issue with commands docs not being kept separate from programmer guide 2021-05-15 00:26:19 -04:00
492d82904f add false positives 2021-05-14 23:51:43 -04:00
59cc481108 change config entry for post 3.5 sphinx versions and enable permalinks 2021-05-14 23:51:33 -04:00
9f4cca4981 correct index entries 2021-05-14 23:50:51 -04:00
c311574fe6 add missing fix entry 2021-05-14 23:50:38 -04:00
20de21f8de Merge branch 'master' into next_patch_release 2021-05-14 23:39:25 -04:00
235e91a337 Merge pull request #2762 from akohlmey/prepare-clang-format
Prepare LAMMPS to support updating the coding style with clang-format
2021-05-14 23:23:35 -04:00
1ed75e3db0 fix buffer overflow in writing triclinic headers with MPI-I/O 2021-05-14 22:51:56 -04:00
6b80cb0169 whitespace 2021-05-14 20:47:08 -04:00
07cb55ef7f Merge branch 'master' into prepare-clang-format 2021-05-14 20:43:51 -04:00
247edbcaa3 Merge pull request #2722 from lammps/kokkos_double_free
Avoid double free in some Kokkos pair styles destruction
2021-05-14 20:43:00 -04:00
d24d501a4a Merge branch 'master' into prepare-clang-format 2021-05-14 20:38:54 -04:00
b23556e1a8 Merge pull request #2765 from masterleinad/fix_snap_kokkos_sycl
Fix compiling the SNAP module with Kokkos and SYCL
2021-05-14 20:31:53 -04:00
06f0a9207e Merge pull request #2769 from lammps/neigh-copy-bug
fix bug with mis-indexing of neighbor build copyflag check
2021-05-14 19:16:56 -04:00
7fcd449864 apply clang-format to all headers with some exceptions 2021-05-14 19:16:07 -04:00
250fbd24a3 neighbor build check on copyflag mis-indexed 2021-05-14 16:06:56 -06:00
60e41a90c2 update new files for clang-format 2021-05-14 17:37:58 -04:00
7284a70900 Merge branch 'master' into prepare-clang-format 2021-05-14 17:25:24 -04:00
de025aec47 Merge pull request #2761 from rbberger/collected-small-changes
Collected small changes and fixes for the next patch release
2021-05-14 17:24:36 -04:00
79ebf387fe Merge branch 'prepare-clang-format' of github.com:akohlmey/lammps into prepare-clang-format 2021-05-14 17:22:03 -04:00
9483db9581 Merge branch 'prepare-clang-format' of github.com:akohlmey/lammps into prepare-clang-format 2021-05-14 17:21:18 -04:00
7d44da08ad Merge branch 'prepare-clang-format' of github.com:akohlmey/lammps into prepare-clang-format 2021-05-14 15:25:05 -04:00
aa6c6169a8 Merge branch 'master' into prepare-clang-format
# Conflicts:
#	src/KOKKOS/nbin_kokkos.h
#	src/KOKKOS/nbin_ssa_kokkos.h
#	src/MOLECULE/bond_fene_expand.h
#	src/USER-DPD/nbin_ssa.h
#	src/USER-DPD/nstencil_half_bin_2d_ssa.h
#	src/USER-DPD/nstencil_half_bin_3d_ssa.h
#	src/USER-INTEL/nbin_intel.h
#	src/USER-MISC/fix_propel_self.cpp
#	src/USER-OMP/npair_full_multi_old_omp.h
#	src/USER-OMP/npair_half_multi_old_newton_omp.h
#	src/USER-OMP/npair_half_size_multi_newtoff_omp.h
#	src/USER-OMP/npair_halffull_newtoff_omp.h
#	src/USER-OMP/npair_halffull_newton_omp.h
#	src/USER-OMP/npair_skip_omp.h
#	src/main.cpp
#	src/nbin_standard.h
#	src/npair_full_multi_old.h
#	src/npair_halffull_newtoff.h
#	src/npair_halffull_newton.h
#	src/npair_skip.h
#	src/npair_skip_respa.h
#	src/npair_skip_size.h
#	src/npair_skip_size_off2on.h
#	src/npair_skip_size_off2on_oneside.h
#	src/nstencil_full_bin_2d.h
#	src/nstencil_full_bin_3d.h
#	src/nstencil_full_ghost_bin_2d.h
#	src/nstencil_full_ghost_bin_3d.h
#	src/nstencil_full_multi_2d.h
#	src/nstencil_full_multi_3d.h
#	src/nstencil_full_multi_old_2d.h
#	src/nstencil_full_multi_old_3d.h
#	src/nstencil_half_bin_2d_newtoff.cpp
#	src/nstencil_half_bin_3d_newtoff.cpp
#	src/nstencil_half_bin_3d_newton_tri.h
#	src/nstencil_half_ghost_bin_2d_newtoff.cpp
#	src/nstencil_half_ghost_bin_2d_newtoff.h
#	src/nstencil_half_ghost_bin_3d_newtoff.cpp
#	src/nstencil_half_ghost_bin_3d_newtoff.h
#	src/nstencil_half_multi_2d.h
#	src/nstencil_half_multi_2d_newtoff.h
#	src/nstencil_half_multi_2d_newton_tri.h
#	src/nstencil_half_multi_2d_tri.h
#	src/nstencil_half_multi_3d_newtoff.h
#	src/nstencil_half_multi_3d_newton_tri.h
2021-05-14 15:24:02 -04:00
117b6e2a80 Add copymode flag 2021-05-14 12:43:02 -06:00
a93ec125a4 Move deep_copy call 2021-05-14 12:24:21 -06:00
6740959c65 Merge pull request #2611 from MolSSI-MDI/mdi
Add MolSSI Driver Interface Support
2021-05-14 13:18:52 -04:00
6f6adc285a Fix typo 2021-05-14 10:25:32 -06:00
5a7e784447 Add missing copymode to parent classes 2021-05-14 10:08:05 -06:00
eedd726edb Merge branch 'master' of github.com:lammps/lammps into kokkos_double_free 2021-05-14 09:38:21 -06:00
7b4fdb92df Use only copymode in Kokkos pair_styles 2021-05-14 09:36:13 -06:00
cf18ec6cc6 Add selection of Manual version 2021-05-14 11:10:15 -04:00
70ce971d4a address some warnings from coverity scan 2021-05-14 08:39:47 -04:00
ad34953a52 Merge branch 'master' into collected-small-changes 2021-05-14 08:35:49 -04:00
e5cc4409a5 Merge pull request #2760 from jrgissing/bond/react-custom_constraint
Bond/react: custom constraint
2021-05-13 20:04:48 -04:00
465cd52707 Fix MDI calls in fix_mdi_engine.cpp 2021-05-13 17:16:07 -04:00
6b275e283c step version number for the next patch release 2021-05-13 17:14:35 -04:00
242949100a describe use of clang-format when submitting contributions 2021-05-13 15:01:42 -04:00
d02e09baaa Merge pull request #17 from akohlmey/mdi_update
MDI formatting updates and MPI STUBS handling
2021-05-13 14:41:51 -04:00
44ed6f1896 don't use provided communicator when LAMMPS was compiled with STUBS 2021-05-13 14:21:23 -04:00
fa80903ac2 NULL -> nullptr; apply clang-format 2021-05-13 14:20:56 -04:00
dc6b8102bc Fix compiling the SNAP module with Kokkos and SYCL 2021-05-13 18:03:22 +00:00
50de35c41a Merge pull request #16 from akohlmey/mdi_updates
USER-MDI updates
2021-05-13 13:18:16 -04:00
0f7a41590d fix bug in lammps_reset_box() no-box check and error out when atoms exist 2021-05-13 12:46:43 -04:00
7c0d632dfb Fix bug in MDI checksums 2021-05-13 12:08:58 -04:00
36de1c4201 remove unused header 2021-05-13 11:49:24 -04:00
8efab68db5 integrate MDI wrapper directly into main.cpp
we can remove the header, since this dummy interface should not be used elsewhere.
2021-05-13 11:41:05 -04:00
8d9465ccdb move MDI C style library calls to separate files 2021-05-13 11:37:05 -04:00
7d7781373c update gitignore 2021-05-13 11:35:13 -04:00
f121ae98d6 forget to update 2021-05-13 11:34:58 -04:00
9cfe665b7a bugfix 2021-05-13 11:34:28 -04:00
30d2f18ccb whitespace fixes 2021-05-13 09:57:58 -04:00
33205ed91f Use "mdi/engine" consistenty, complete integration in manual, spelling 2021-05-13 09:57:08 -04:00
f86f182cd3 cosmetic changes 2021-05-13 08:59:02 -04:00
1f7343d60f format tweaks 2021-05-13 08:57:53 -04:00
d9505a4527 cmake tweaks 2021-05-13 08:57:41 -04:00
800c7cc6c3 Update USER-MDI README 2021-05-12 20:40:58 -04:00
53397fdda5 Expand MDI examples README 2021-05-12 18:31:10 -04:00
6f9f13c97b Update style of MDI function calls 2021-05-12 18:31:10 -04:00
74db24110f Fix bug when using mdi_engine command in parallel 2021-05-12 18:31:10 -04:00
1cbfcf5182 Fix bug in mdi_interface.h 2021-05-12 18:31:10 -04:00
6fa136f230 Add MDI_Comm typedef to dummy MDI interface 2021-05-12 18:31:10 -04:00
04754bc812 Add support for MDI >CELL command 2021-05-12 18:31:10 -04:00
edfb27f964 Add support for MDI CELL_DISPL commands 2021-05-12 18:31:10 -04:00
b940914f45 Improvements to the MDI interface 2021-05-12 18:31:10 -04:00
5595fe2ef6 Improves USER-MDI style and formatting 2021-05-12 18:31:10 -04:00
94b52d3bd1 Minor fixes to MDI documentation 2021-05-12 18:31:10 -04:00
2d12d04545 additions/changes to MDI doc pages 2021-05-12 18:31:10 -04:00
eacfe05e0f Fix bug in MDI cmake build 2021-05-12 18:31:10 -04:00
64fa70f8d2 Add USER-MDI README file 2021-05-12 18:31:10 -04:00
a731c43000 Add docs for mdi_engine command and fix 2021-05-12 18:31:10 -04:00
66fb5e1cf3 Add documentation for MDI library functions 2021-05-12 18:31:10 -04:00
e053619eed Add call to MDI_Set_execute_command 2021-05-12 18:31:10 -04:00
b95fa003f5 Add support for MDI Plugin System 2021-05-12 18:31:10 -04:00
2854ea29a5 Add additional MDI examples 2021-05-12 18:31:10 -04:00
4a0b71f66b Add MDI example 2021-05-12 18:31:10 -04:00
e465205c05 Automatically add mdiengine fix 2021-05-12 18:31:10 -04:00
738fdc2901 Simplify MDI add_compute calls 2021-05-12 18:31:10 -04:00
43935724ba Fix bugs in MDI cmake config 2021-05-12 18:31:10 -04:00
6aa70bff02 Improve MDI package install 2021-05-12 18:31:10 -04:00
63578e3f10 Add MDI errors when using lj units 2021-05-12 18:31:10 -04:00
b21479e20a Added initial MolSSI Driver interface 2021-05-12 18:31:10 -04:00
a7b514e373 fix issue with breathe's doxygen to sphinx translation 2021-05-12 18:03:05 -04:00
9a36acf96b Merge branch 'master' into collected-small-changes 2021-05-12 18:01:48 -04:00
058d56cf5c Merge pull request #2733 from stanmoore1/kk_update_3.4.0
Update Kokkos library in LAMMPS to v3.4.0
2021-05-12 17:00:44 -04:00
e960674cea Merge pull request #2536 from jtclemm/multi_epcc
Add faster method for multi neighboring
2021-05-12 15:25:28 -04:00
a8f469b105 refactor strtok 2021-05-12 15:05:46 -04:00
e715688d03 dead code removal 2021-05-12 14:22:48 -04:00
1f2b709b83 strdup update 2021-05-12 14:17:42 -04:00
0ee7bc6e01 Update remaining variable names after refactor 2021-05-12 13:57:51 -04:00
8617770592 Merge pull request #2511 from samueljmcameron/fix_bd_sphere
Add USER-BROWNIAN package
2021-05-12 13:51:42 -04:00
4ccb17ab62 whitespace 2021-05-12 13:49:41 -04:00
fdfbb0f425 Merge pull request #2706 from gugmelik/smooth-gpu
GPU version of pair_style lj/smooth
2021-05-12 12:02:08 -04:00
cac634076d ensuring cutusermulti always created 2021-05-12 08:59:12 -06:00
7f94712839 Explicitly defining default ncollections 2021-05-12 08:17:14 -06:00
dfb15e76c3 Merge branch 'master' of https://github.com/lammps/lammps into kk_update_3.4.0 2021-05-12 08:14:03 -06:00
e3c9e9c328 document scalar output property of fix grem 2021-05-12 09:13:47 -04:00
6b45f9052f small fixed and error checking 2021-05-12 08:55:00 -04:00
1d10147cb6 reformat and shorten new example inputs 2021-05-12 07:53:18 -04:00
b49d91fa8e add contributing author and citation DOIs 2021-05-12 07:00:47 -04:00
986a72ff6e remove executable permissions on non-executable files 2021-05-12 06:32:58 -04:00
9ef0395313 whitespace fixes 2021-05-12 06:30:52 -04:00
24075b3281 remove unused variable declarations 2021-05-12 06:24:19 -04:00
f0e52981f2 Merge branch 'master' into multi_epcc 2021-05-12 06:16:52 -04:00
8dad40ea49 apply clang-format 2021-05-12 00:17:12 -04:00
d5c7ef113d whitespace fix 2021-05-12 00:10:06 -04:00
71da854c38 small doc updates 2021-05-12 00:07:32 -04:00
5591b0f33d Merge branch 'master' into smooth-gpu 2021-05-11 23:59:14 -04:00
af0e9ee51b update headers, protect initializers and macros, reapply clang-format 2021-05-11 23:52:31 -04:00
bb2ab544c2 avoid compilation failure on CentOS 7 2021-05-11 23:38:04 -04:00
64ae30a5c0 add a security policy file 2021-05-11 23:01:11 -04:00
824dff8181 update .clang-format file from src and update files 2021-05-11 22:48:06 -04:00
68160e3f22 switch to 100 chars columnwidth and apply clang-format to a few .cpp files 2021-05-11 22:11:41 -04:00
d8291eea7b Merge branch 'master' into prepare-clang-format
# Conflicts:
#	src/MOLECULE/bond_fene.h
#	src/MOLECULE/bond_fene_expand.h
2021-05-11 21:49:48 -04:00
1ea46cad0e use PRNGSIZE constant consistently 2021-05-11 21:46:16 -04:00
fdd811a43b Update remaining variable names after refactor 2021-05-11 21:22:29 -04:00
e874446b7c fix whitespace in doc files 2021-05-11 21:20:29 -04:00
57a2f21757 add/update USER-BROWNIAN example inputs and logs 2021-05-11 21:13:10 -04:00
8a507cc7da reformat with clang-format and related changes 2021-05-11 19:32:57 -04:00
ee546e2fa3 Merge pull request #2758 from akohlmey/collected-small-changes
Collected small changes and fixes for the next patch release
2021-05-11 19:31:12 -04:00
0d4cca5af9 fix compilation issues 2021-05-11 18:32:18 -04:00
ed75618ad6 integrate USER-BROWNIAN package into the documentation proper 2021-05-11 18:31:59 -04:00
2013c478ed Traditional make process auto-download works
Implemented via Install.py script
2021-05-12 00:06:31 +02:00
632e0d6a52 add USER-BROWNIAN package to various package management files 2021-05-11 17:59:02 -04:00
5cc3f88fcf changed author 2021-05-12 00:57:41 +03:00
92c5951d6c Update to latest changes from upstream 2021-05-11 17:49:03 -04:00
442a829b1e changed author 2021-05-12 00:40:38 +03:00
5865ced9c7 minor change 2021-05-12 00:25:51 +03:00
01ca668c98 permissions, again 2021-05-11 17:22:41 -04:00
d3186b74f7 updated 2021-05-12 00:14:27 +03:00
8beb251dcc Merge branch 'bond/react-custom_constraint' of https://github.com/jrgissing/lammps into bond/react-custom_constraint 2021-05-11 15:59:02 -04:00
b36ee935f7 update citations 2021-05-11 15:59:00 -04:00
8f917b509b add test for querying the operating system info 2021-05-11 15:24:04 -04:00
5b8763c471 Merge branch 'lammps:master' into smooth-gpu 2021-05-11 22:22:33 +03:00
fbe9240cf3 add python unit test for GPU capabilities 2021-05-11 15:17:43 -04:00
94a646cd01 new accelerator variant: GPU 2021-05-11 22:17:29 +03:00
c2ddce4c26 new accelerator variant: GPU 2021-05-11 22:13:37 +03:00
228711f59b add GPU device query functions to library interface and its wrappers 2021-05-11 14:59:49 -04:00
4213ebd2ff Merge branch 'lammps:master' into bond/react-custom_constraint 2021-05-11 12:54:46 -06:00
ead311adf8 replace variable length array on stack with std::unique_ptr()
this closes #2757
2021-05-11 13:42:47 -04:00
af6eae29d4 reformat else statements 2021-05-11 13:42:34 -04:00
883d55f416 skip running GPU test if there is no viable GPU device 2021-05-11 13:42:25 -04:00
1ae21f46ab revert change that introduced a bug 2021-05-11 13:42:08 -04:00
3173b39444 Update fix_bond_react.rst
restore original docs
2021-05-11 01:26:37 -04:00
527b5d0635 refactor constraints' boolean logic
restores backward compatibility as well
2021-05-11 01:22:39 -04:00
ecc9658cca Add context manager code to PyLammps 2021-05-10 19:19:26 -04:00
985fe9cd31 Use fmt::gmtime in timer.cpp 2021-05-10 19:09:44 -04:00
0260674698 Update .lgtm.yml 2021-05-10 18:54:53 -04:00
b4539fdac2 Update CodeQL configuration 2021-05-10 18:54:01 -04:00
e1b2235d36 Update py_nve.py 2021-05-10 18:42:27 -04:00
85acf0b067 Remove unused imports 2021-05-10 18:42:27 -04:00
67660197a6 Add missing configuration file for LGTM 2021-05-10 18:42:27 -04:00
38eb0fa29d Python: add context manager implementation 2021-05-10 18:42:27 -04:00
f375aab2c5 Correct test name 2021-05-10 18:42:27 -04:00
feb0a49f2f Python: Make NeighList a subclass of object 2021-05-10 18:42:27 -04:00
51847f70f2 Use fmt::localtime() in info.cpp 2021-05-10 18:42:26 -04:00
a687868c69 finalize available GPU hardware introspection functions 2021-05-10 16:34:27 -04:00
3eef759bb1 Merge pull request #2749 from akohlmey/varargs-message-warning
Make warning and info messages vararg compatible and implement "thermo_modify warn"
2021-05-10 13:41:23 -04:00
5895e960cb Merge pull request #2753 from akohlmey/update-pair-polymorphic
Refactor pair style polymorphic to use the TabularFunction class shared with pair style bop
2021-05-10 12:58:49 -04:00
fbdcfb2f72 preliminary interface to detect whether a viable GPU is present 2021-05-10 09:16:51 -04:00
de3a49ac4f silence codeql warnings 2021-05-10 03:48:55 -04:00
c91563b797 avoid uninitialized data issues detected by valgrind 2021-05-10 03:37:20 -04:00
0a1c2b2a23 update false positives 2021-05-09 23:11:20 -04:00
54b7baea7b more codeql recommendations 2021-05-09 20:25:20 -04:00
92fe1373a5 fix bug 2021-05-09 20:24:22 -04:00
69a92a3e00 apply some codeql recommendations
- remove unused imports
- avoid overlaps of variable names with keywords
- make some exception processing more explicit
2021-05-09 19:52:31 -04:00
6d9309b76d remove dead code 2021-05-09 17:44:23 -04:00
bffee8dd6a silence compiler warning 2021-05-09 17:44:12 -04:00
c9470c6baf update includes 2021-05-09 11:33:53 -04:00
48a425718a remove dead code 2021-05-09 05:58:54 -04:00
6cf85e0ae3 replace variable length array with explicit new/delete 2021-05-09 05:58:46 -04:00
c1891dca82 explicitly set vstring to None in case of exceptions 2021-05-09 05:58:20 -04:00
a4ea858bc2 prevent overflow of memory usage accounting 2021-05-09 00:46:49 -04:00
10d7a9f553 Merge pull request #2756 from akohlmey/collected-small-changes
Collected small changes and bugfixes for the next patch release
2021-05-09 00:03:17 -04:00
299ad3b37d work around bogus device overhead info in OpenCL 2021-05-08 23:43:15 -04:00
30068d4599 make the output more fortran-like 2021-05-07 20:14:28 -04:00
86d4ec7a45 Replace localtime() with thread-safe fmt::localtime() 2021-05-07 19:53:18 -04:00
b6b70b2033 small tweak 2021-05-07 19:51:13 -04:00
d70932bcdd add note about cases where the number of warnings can be larger than the limit 2021-05-07 19:46:25 -04:00
c45008d803 avoid possible deadlock scenario in fix deposit and fix pour 2021-05-07 19:11:21 -04:00
aa157e53c3 make consistent with the rest of LAMMPS 2021-05-07 19:10:36 -04:00
9d40f85919 address spelling issues 2021-05-07 18:46:01 -04:00
ad15af0d7f rename MY_CBRT2 to MY_CUBEROOT2 2021-05-07 18:43:21 -04:00
f43b7e0840 update and clarify documentation of thermo_modify warn 2021-05-07 18:42:45 -04:00
8b8f06db63 Simplify unittest-macos.yml 2021-05-07 17:11:13 -04:00
2e3073b16a Add ccache to MacOS GH actions build 2021-05-07 17:09:38 -04:00
b3083f1982 Fixed issue with accessing type2frho array in eam energy kernels 2021-05-07 13:43:58 -04:00
147e561dca Update in.fix_python_invoke_neighlist example 2021-05-07 12:51:58 -04:00
51200de45d Use correct shape for 1d numpy arrays 2021-05-07 12:51:49 -04:00
69d081cd6a prefer system provided OpenCL library on macOS 2021-05-07 09:28:13 -04:00
427a430b93 update list of default settings 2021-05-07 09:18:00 -04:00
09d59a981e fix typo reported on MatSci forum 2021-05-07 07:23:52 -04:00
b36cf85c31 update Swig interface definition file with added APIs. reorder to match library.h. 2021-05-06 20:50:21 -04:00
7441264c31 fix uninitialized data bug 2021-05-06 19:36:09 -04:00
b392b63224 clarify non-mixing behavior 2021-05-06 18:00:22 -04:00
7b9d721c08 fix typos 2021-05-06 18:00:11 -04:00
54884c978a Merge pull request #2742 from rbberger/offline_builds
Add tool to support offline builds
2021-05-05 23:54:55 -04:00
d1941392d3 disable clang-format for all existing .cpp files (for now) 2021-05-05 23:53:38 -04:00
49a7bb57de add clang-format support to plugin examples 2021-05-05 23:51:12 -04:00
5fcd0d8b79 apply clang-format 2021-05-05 23:48:43 -04:00
9e4c618d30 add clang-format support for fastdep tool 2021-05-05 23:46:26 -04:00
13fb03cf2c fix typo 2021-05-05 23:22:05 -04:00
bdbe773a08 add documentation for offline building scripts 2021-05-05 23:20:01 -04:00
4e737b5645 add offline folder to tools README file 2021-05-05 23:19:32 -04:00
97cd87a198 include clang-format configuration file 2021-05-05 22:20:54 -04:00
8874f8a63b simplify with new error functions. replace static string buffers. 2021-05-05 21:12:06 -04:00
22e93468d6 simplify code by appling varargs messages and warnings 2021-05-05 18:19:12 -04:00
8fd0595f1b update error class unit test 2021-05-05 18:18:05 -04:00
5978770ebf ensure that box too small and comm cutoff too small will not trigger on rounding 2021-05-05 17:05:34 -04:00
a23e034ced silence compiler warnings 2021-05-05 16:56:45 -04:00
92058b32ea must use Error::message() to print the warning about suppressed warnings 2021-05-05 16:55:59 -04:00
8a2a4c408e also skip warnings if per rank warning count is over. don't wait until total count is computed 2021-05-05 16:55:35 -04:00
7f034b2ef7 replace replicated Dihedral/Improper problem warning with function in base class 2021-05-05 16:54:40 -04:00
9f4da1128b remove optional logflag argument from Error::message() and Error::warning() 2021-05-05 16:02:51 -04:00
ed45ef301f add unit test for error class 2021-05-05 14:55:47 -04:00
6145412bd8 fix logic bugs 2021-05-05 14:48:33 -04:00
87283f7269 apply warning limit 2021-05-05 14:48:20 -04:00
f12f9166a5 Resolving merge conflicts, updating URLs 2021-05-05 11:19:44 -06:00
18b066c034 seems we can use a tighter epsilon on the revised pair styles bop/polymorphic 2021-05-05 12:11:27 -04:00
f6941447f7 remove unused functions 2021-05-05 12:08:12 -04:00
2a903f85de update unit test reference data 2021-05-05 12:02:32 -04:00
acc1d8aee1 use consolidated value() function 2021-05-05 12:02:00 -04:00
183eb2a7d6 reformat 2021-05-05 12:01:39 -04:00
e4cb6094a4 consolidate value() functions 2021-05-05 12:01:33 -04:00
efd6f7b2d0 Fixed issue with accessing type2frho array in eam energy kernels 2021-05-04 23:12:55 -05:00
7c3a7cb2e4 Merge branch 'master' into eam-gpu 2021-05-04 23:05:29 -05:00
51a84a67f9 cosmetic changes 2021-05-04 22:52:24 -04:00
cdc3e2bad9 refactor to use TabularFunction class shared with pair style bop 2021-05-04 22:26:56 -04:00
8285e71fd9 simplify remove unused code 2021-05-04 22:26:02 -04:00
09684b776f Merge pull request #2750 from akohlmey/update-bop
Updated pair style bop
2021-05-04 20:59:26 -04:00
350ec7cc07 Updating documentation 2021-05-04 17:22:35 -06:00
fa386c0e96 Changing how multi/cutoff works, changing collection indexing in user args 2021-05-04 17:12:17 -06:00
2b33bafbc9 Merge pull request #2748 from akohlmey/collected-small-changes
Collected small changes and fixes for the next patch release
2021-05-04 18:51:43 -04:00
78202ac0ec cosmetic changes 2021-05-04 14:42:17 -04:00
b22b2dcba1 refactor write_tables() 2021-05-04 11:50:44 -04:00
df0f628ad1 eliminate TripletParameters struct 2021-05-04 11:26:40 -04:00
6a24302247 update URLs in comment header 2021-05-04 11:26:18 -04:00
ec9fd8c724 simplify exception handling since PotentialFileReader will catch most of them already 2021-05-04 11:09:36 -04:00
2d67a2630d ifdef out write_tables() method by default 2021-05-04 11:01:41 -04:00
48360bedfa use PotentialFileReader instead of TextFileReader 2021-05-04 10:48:57 -04:00
978d47caef use utils::open_potential() to simplify path expansion and unit checking 2021-05-04 07:19:26 -04:00
4f9f87c8ab include TabularFunction class 2021-05-04 00:24:12 -04:00
9137c579ba update bop unit tests 2021-05-04 00:07:49 -04:00
329cb9c400 print message about reading the potential file name and date 2021-05-03 23:34:05 -04:00
90a57f5328 modernize code, especially the potential file reader, and plug memory leaks 2021-05-03 23:16:02 -04:00
37f26fc5fe update standard element map to bop_elements and check for missing elements 2021-05-03 20:19:21 -04:00
199e750eb1 small tweaks to pass unit tests on FreeBSD 2021-05-03 16:33:04 -04:00
69224ea682 must skip this test if USER-OMP is installed but OpenMP not enabled 2021-05-03 15:30:48 -04:00
14f1c62adf must not define global members in ifdef'd block. 2021-05-03 14:54:34 -04:00
f0cc70b29a implement "thermo_modify warn" to control amount of warnings 2021-05-03 14:21:16 -04:00
8e2ecbc7ac detect Linux distribution, if possible and include in OS info output 2021-05-03 12:12:15 -04:00
8cf2cd5875 update for 32-bit MinGW64 compatibility 2021-05-03 11:38:41 -04:00
37cd51f3e4 tar file was updated one more time 2021-05-02 23:30:02 -04:00
16964e12bc remove fragile OpenMP thread checks 2021-05-02 22:06:08 -04:00
7e04c6933d update opencl-loader library to be compatible with mingw 8 and later 2021-05-02 22:04:27 -04:00
7f8b136724 split TabularFunction class to separate files 2021-04-30 21:57:41 -04:00
4331260b22 update src/.gitignore 2021-04-30 21:50:02 -04:00
5578f57d8a get rid of shadowed variables, sort includes, and replace "me" with "comm->me" 2021-04-30 20:32:37 -04:00
3ddae82cc4 NULL -> nullptr 2021-04-30 20:22:24 -04:00
7339493f6e update format in header and silence compiler warnings 2021-04-30 20:20:57 -04:00
17102f5b37 update BOP pair style from Xiaowang Zhou 2021-04-30 20:13:25 -04:00
ce9ead95e7 updated BOP potential files from Xiaowang Zhou 2021-04-30 20:11:25 -04:00
b4a70880d9 Merge pull request #2745 from rbberger/gpu_updates
Updates to the GPU package
2021-04-30 19:32:44 -04:00
74a382a304 Merge pull request #2744 from akohlmey/update-opencl
Update OpenCL ICD loader library to OpenCL specifications version 3.0.7
2021-04-30 18:55:09 -04:00
fe2a6eb8e7 Add quotes in instructions 2021-04-30 18:47:00 -04:00
dfa9f15817 Use URL-encoded PIP_FIND_LINKS to support spaces in paths 2021-04-30 18:18:58 -04:00
ee0e48ff86 Update README.md 2021-04-30 18:00:29 -04:00
7994bb320f Add more quotes 2021-04-30 17:52:32 -04:00
17242550c1 Update comment 2021-04-30 17:09:48 -04:00
d8220e2773 CMake: Rebuild OpenCL kernel headers when code changes 2021-04-30 17:04:12 -04:00
b19a4aeb22 fix up include files in USER-PTM package 2021-04-30 15:51:50 -04:00
02847ef92b rebase 2021-04-30 15:37:32 -04:00
ad8dc606e9 protect style macros in headers 2021-04-30 15:14:41 -04:00
a1665fddc8 next iteration of preparing for clang-format 2021-04-30 13:51:14 -04:00
04ee87af0c Merge branch 'master' into prepare-clang-format 2021-04-30 13:29:45 -04:00
6f5881e151 Merge pull request #2710 from msvbd/dpd_extended
Generalized DPD pair styles: dpd/ext and dpd/ext/tstat
2021-04-30 13:26:16 -04:00
8d8158396f Merge pull request #2721 from agiliopadua/examples
New examples for FEP calculation and references in doc pages
2021-04-30 12:55:57 -04:00
85ba1e9e3b Fix documentation build by adding explicit dependency to six 2021-04-30 12:27:21 -04:00
b7fb28f940 Merge pull request #2719 from akohlmey/varargs-log-error-functions
Overload utils::logmesg(), Error::all(), and Error::one() so they can take a format string and a variable number of arguments
2021-04-30 12:12:13 -04:00
6029445ab5 Fix tagint datatype with LAMMPS_BIGBIG in OpenCL
The previous version was trying to use 16 byte integers.
2021-04-30 12:01:56 -04:00
0ec6cec117 Merge pull request #2743 from jrgissing/bond/react-create_atoms_bugfix
bond/react: create atoms bugfix
2021-04-30 11:40:37 -04:00
b88cdd6890 Corrected implementation of ellipsoidal dynamics, made ashared base class for the time-integrators, templated the time-integrators (and so reversed changes that this PR had previously made to random_mars src files), combined docs of all three integrators. 2021-04-30 16:30:04 +01:00
bebb5c3edf Add quotes 2021-04-30 11:04:34 -04:00
8b13d75e7f update OpenCL loader library to the 3.0.7 specs 2021-04-30 09:28:56 -04:00
375f8e7054 support loading OpenCL functions up to the OpenCL 3.0 standard 2021-04-30 09:28:01 -04:00
8dfcdc4b3c Revert "activate workaround for problems with new GPU code neighbor lists"
This reverts commit a28d9a6e69.
2021-04-29 19:24:28 -04:00
f61b02eebf Untested Install.py for traditional make process 2021-04-29 23:40:53 +02:00
4384cf57a4 relocate comment 2021-04-29 17:34:04 -04:00
1d51abd160 bond/react: create atoms bufix
fix when multiple insertions straddling box boundary
2021-04-29 16:42:34 -04:00
3bf2dbd45c Merge branch 'offline_builds' of github.com:rbberger/lammps into offline_builds 2021-04-29 14:00:40 -04:00
85f683c1a0 Fix typo 2021-04-29 14:00:23 -04:00
bfd2b301c6 Update README.md 2021-04-29 13:47:43 -04:00
3d36d42e72 Update README.md 2021-04-29 13:47:17 -04:00
53165fc7c9 Add PACELIB to offline scripts 2021-04-29 13:37:26 -04:00
8b410cf2bd Add scripts to simplify offline builds of docs and CMake 2021-04-29 13:26:55 -04:00
00578e1b26 Merge pull request #2741 from stanmoore1/kk_mycutneighsq
Add missing code in Kokkos neighborlist to use custom cutoff
2021-04-28 19:21:07 -04:00
a9ff9312d6 Merge remote-tracking branch 'origin/master' into varargs-log-error-functions 2021-04-28 18:13:31 -04:00
9a7e32a924 Add missing code in Kokkos neighborlist to use custom cutoff 2021-04-28 13:54:23 -06:00
ceb173135b Merge pull request #2737 from ab5424/patch
Update USER-INTEL.cmake
2021-04-27 22:32:30 -04:00
980244dd0c add protection comments 2021-04-27 22:31:01 -04:00
d3b19f22fc Merge pull request #2738 from akohlmey/read_data_trunc_lines
Make read_data compatible with files that have lines longer than 256 chars
2021-04-27 21:11:09 -04:00
5d837a0641 update unit tests 2021-04-27 18:46:30 -04:00
d315105dfa document line length limit in atomfile variable names 2021-04-27 18:43:23 -04:00
632e963092 add comment to line length truncation limit in data files 2021-04-27 18:39:43 -04:00
7b1b57aa9b rename utils::fgets_trunc_nl() to utils::fgets_trunc() 2021-04-27 18:32:51 -04:00
1aec90473c Merge pull request #2739 from stanmoore1/kk_mvapich
Fix typo in MVAPICH flag for Kokkos CUDA-Aware MPI
2021-04-27 18:29:58 -04:00
cc4f25e77c Fix typo in MVAPICH flag for Kokkos CUDA-Aware MPI 2021-04-27 13:44:27 -07:00
f29744b5bc add documentation for fgets_trunc_nl() 2021-04-27 16:21:17 -04:00
15cff295c0 change read_data to use new utility function 2021-04-27 16:14:08 -04:00
e2318e1710 add tests for new function 2021-04-27 16:13:57 -04:00
b65bc86718 new utility function fgets_trunc_nl() 2021-04-27 16:13:45 -04:00
cce54b6ba5 disable check failing due to inconsistent behavior on different platforms 2021-04-27 16:13:23 -04:00
5655523468 correct expected error message 2021-04-27 16:13:15 -04:00
6375b91bd7 Update USER-INTEL.cmake 2021-04-27 17:13:03 +02:00
3455172f7d Merge pull request #2725 from akohlmey/more-unit-tests
Add more unit tests
2021-04-26 23:30:44 -04:00
de3cdfa44b Fix typo 2021-04-26 20:53:10 -06:00
41c784a8a8 Update Build_extras 2021-04-26 20:51:35 -06:00
e95615c6a5 Update Kokkos cmake file 2021-04-26 20:43:36 -06:00
57a7bd7186 adjust for changed CMake variable scope due to moving script code 2021-04-26 20:16:55 -04:00
692da3bf88 Update Kokkos library in LAMMPS to v3.4.0 2021-04-26 16:28:19 -06:00
95285f9365 Merge branch 'master' of github.com:lammps/lammps into pair-style-nnp 2021-04-26 23:52:59 +02:00
ad843f977f Auto-download works now for CMake build. 2021-04-26 23:46:27 +02:00
18215ff3e7 Merge remote-tracking branch 'origin/master' into more-unit-tests 2021-04-26 14:48:14 -04:00
462f27d661 Use copy-and-swap in Tokenizers
Ensures that the classes behave consistently when copied, moved, copy assigned,
and move assigned.
2021-04-26 14:28:13 -04:00
39f3c1684f Merge pull request #2729 from akohlmey/update-contributing-guide
Update the GitHub contributing guide to include the MatSci forum
2021-04-26 14:23:30 -04:00
6b04ebd617 Merge branch 'master' into varargs-log-error-functions 2021-04-26 13:27:58 -04:00
31d244dd80 Merge pull request #2727 from akohlmey/refactor-read-lines-from-file
Move "read_lines_from_file" utility function from Comm class to utils namespace
2021-04-26 13:24:24 -04:00
4a2816b61c Merge pull request #2726 from akohlmey/iwyu-update
Update lists of included header files
2021-04-26 12:28:49 -04:00
0eee2d013d add info to docs 2021-04-26 12:27:34 -04:00
2c6fe2d0b5 add tests for the overloaded constructor using a file pointer 2021-04-26 12:12:45 -04:00
dbd7d454b9 for consistent behavior we must not close the file pointer when it was passed as argument 2021-04-26 12:12:19 -04:00
8af1530e29 throw EOF exception in TextFileReader::next_values() if next_line() doesn't do it 2021-04-26 11:27:17 -04:00
ac60cfb0c3 add custom constructor for TextFileReader that uses an already opened file descriptor 2021-04-26 11:26:50 -04:00
4fa5840f13 fix bug due to adding ArgInfo 2021-04-26 11:02:41 -04:00
792966a957 always describe the git version, even when using a git clone without history 2021-04-26 11:02:15 -04:00
e779de7e1e Merge branch 'master' into more-unit-tests 2021-04-25 22:48:44 -04:00
beca3e5f0d collect the full help message 2021-04-25 22:27:36 -04:00
e9e0bb71b6 Use varargs version of Error:all() and Error::one() where applicable 2021-04-25 21:30:51 -04:00
4cbe6200d6 correct declaration 2021-04-25 21:02:01 -04:00
831b0fb70f correct misplaced [[noreturn]] 2021-04-25 19:26:38 -04:00
4e25204296 add vararg versions of Error::all() and Error::one() plus unit tests 2021-04-25 19:04:49 -04:00
60c2d8ea5b rather than replicate code, expand format to string and call original function 2021-04-25 18:33:37 -04:00
07d4b09eb6 Updated CMake files, auto-download not yet working 2021-04-26 00:03:07 +02:00
a0b0681cc8 rename _internal_logmesg() to fmtargs_logmesg()
vlogmesg() can be too easily confused with logmesg()
2021-04-25 17:20:36 -04:00
b4fa718576 update the GitHub contributing guide to include the MatSci forum in addition to the mailing list. 2021-04-25 07:25:05 -04:00
ba4781bd82 restore old string matching as it works just as well (on my machine) 2021-04-25 01:14:57 -04:00
b7088a14ae use alternate way to compare strings 2021-04-25 00:45:10 -04:00
ba5f531619 add some basic tests for the "processors" command 2021-04-25 00:44:51 -04:00
43325dca82 update/add tests about starting up LAMMPS
- move the test checking the help message from the c++ library
  to running the executable and checking the output
- add a command line test for errors on invalid command line flags
- add a c++ library test checking if ntreads is set to 1 without OMP_NUM_THREADS
2021-04-25 00:19:22 -04:00
b0cd6b3ef7 improve docs also for related functions 2021-04-24 22:08:28 -04:00
7e7a448a08 remove the old versions of the utility function and use the new 2021-04-24 21:33:36 -04:00
8e5e995188 add docs for new utility function 2021-04-24 21:32:29 -04:00
539ab02365 provide more generic implementation of Comm::read_lines_from_file() in utils 2021-04-24 21:05:11 -04:00
92a9994fd4 silence compiler warnings by avoiding to shadow variables 2021-04-24 18:38:12 -04:00
4738337e47 update/trim list of include files according to the IWYU principle 2021-04-24 13:22:39 -04:00
e4c7c23843 move sanitizer and iwyu configuration to Testing module and update iwyu
this changes the iwyu configuration so that it will check for using
GNU or Clang only as supported compilers, enforces the necessary recording
of compilation commands in a json file and tweaks the "iwyu" target
to work around an issue with the current iwyu implementation by placing
the "native" runtime of the chosen compiler first
2021-04-24 11:09:09 -04:00
e6f57cdf2c minor tweaks 2021-04-24 07:21:29 -04:00
66f690004d correctly test move constructors 2021-04-24 07:14:49 -04:00
0aa64eaf14 portability improvement. replace POSIX-only functionality. 2021-04-24 07:14:29 -04:00
e980d17882 reuse existing code. add tests for write_data 2021-04-24 07:14:04 -04:00
2c4017d3ac add test for write_dump cfg 2021-04-24 07:13:26 -04:00
9e7d26351d tweak epsilon for GPU package tests 2021-04-24 07:13:06 -04:00
6943a3da35 must check if file is readable before changes to internal data 2021-04-24 07:12:45 -04:00
6a9b441331 add tests for writing restart files 2021-04-24 01:22:23 -04:00
cf81f72aad more tests for tokenizer classes 2021-04-24 01:22:06 -04:00
8c50f56548 add unit test for TextFileReader class 2021-04-24 00:31:46 -04:00
93691ca939 Merge pull request #2723 from rbberger/gpu_cmake
CMake: Add missing defines to GPU kernel compilation
2021-04-23 21:19:20 -04:00
5933750a85 Merge pull request #2717 from akohlmey/collected-small-changes
Collected small changes and bugfixes
2021-04-23 19:59:35 -04:00
9cdd926763 remove excess quotes 2021-04-23 19:19:41 -04:00
ed926812dc simplify 2021-04-23 18:47:57 -04:00
8a49bf3a31 fix missing argument bug in velocity code and simplify a second case 2021-04-23 18:47:02 -04:00
917cd1b924 silence more compiler warnings 2021-04-23 16:57:39 -04:00
99fa6ed4b4 delay part of the variable.cpp refactoring until we have better unit testing for it. 2021-04-23 16:50:35 -04:00
f47333bebf Update MathJax to 3.1.4 hotfix version 2021-04-23 16:38:54 -04:00
b7272bbbf7 restore variable declaration 2021-04-23 16:38:37 -04:00
24314b2316 Formatting 2021-04-23 16:36:01 -04:00
8ba1b59d8d Correct fprintf statement in debug code 2021-04-23 16:34:12 -04:00
15ce976dba simplify 2021-04-23 16:32:27 -04:00
ef858ae70f silence compiler warnings 2021-04-23 16:19:57 -04:00
f759e6ffcf don't implicitly assume an undefined define equals 0 2021-04-23 15:51:43 -04:00
fe063b27c7 silence compiler warnings 2021-04-23 15:51:16 -04:00
8541b0da3e reduce compiler warnings by avoiding to redeclare variables so they shadow others 2021-04-23 15:35:45 -04:00
5a12baeef9 remove dead code and silence compiler warnings 2021-04-23 15:14:01 -04:00
8fc9eb26bc address spell checker warnings 2021-04-23 15:08:20 -04:00
d60c630e56 cosmetic changes: whitespace and include file order 2021-04-23 15:05:06 -04:00
49b540381c Merge branch 'master' into dpd_extended 2021-04-23 15:03:03 -04:00
628b06b7de fix CMakeLists.txt 2021-04-23 20:15:11 +02:00
1f24a45ef7 fix Makefile 2021-04-23 20:09:51 +02:00
a9abcadc01 one more doc fix 2021-04-23 20:09:41 +02:00
e28867eed0 change doc 2021-04-23 20:08:56 +02:00
792b411e46 fix messed up merge 2021-04-23 11:18:46 -05:00
6a1a58d727 Added CMake imported target N2P2::N2P2 2021-04-23 17:56:35 +02:00
9c21c8e3ef added upstream changes 2021-04-23 10:42:26 -05:00
b2bfb26161 Merge https://github.com/lammps/lammps into pair_rann 2021-04-23 10:35:35 -05:00
8ea5b8c41b add false positives for recently added docs 2021-04-23 11:22:50 -04:00
3ac2b36993 add link to Commands_pair.rst 2021-04-23 16:10:00 +02:00
2e63d126e3 change dir to MISC 2021-04-23 15:49:11 +02:00
62f7e97316 rename pair_styles 2021-04-23 14:39:55 +02:00
a438c2bc7b tweak unit test YAML epsilon values for GPU mixed precision tests to pass 2021-04-23 05:43:03 -04:00
cbf81a5f9f make detection of styles more specific and still support suffixed versions 2021-04-23 05:15:28 -04:00
92cc30e7ba correctly determine the number of active pair style instances 2021-04-23 05:13:36 -04:00
7bae94cb49 fix cut-n-paste bug detected by coverity scan 2021-04-23 04:39:21 -04:00
c8d16353e8 Merge pull request #2724 from akohlmey/consistent-lammps-url-comment
Consistent LAMMPS header comments and URL fixes
2021-04-23 04:20:27 -04:00
ec7d3410f3 add or correct some more LAMMPS header comments 2021-04-22 22:26:27 -04:00
78d1c33bbe a few more http://lammps.sandia.gov to https://lammps.sandia.gov updates 2021-04-22 21:42:34 -04:00
ac9f1fba86 small fixes 2021-04-22 21:40:10 -04:00
61e931ba31 add missing LAMMPS header comment 2021-04-22 21:38:29 -04:00
1ac3991aad Lammps -> LAMMPS 2021-04-22 21:37:54 -04:00
df7fe4431f make LAMMPS homepage URL and C++ indicator comments consistent 2021-04-22 21:26:07 -04:00
4ccb4c9603 CMake: Add missing defines to GPU kernel compilation 2021-04-22 18:46:07 -04:00
2695495552 Avoid double free in Kokkos pair styles 2021-04-22 17:50:09 -04:00
53a0ded240 update MathJax version for CMake based doc build 2021-04-22 16:26:49 -04:00
a2e46c47e3 download only a specific tag/version of MathJax when cloning 2021-04-22 16:20:34 -04:00
65cef12ae2 print compiled in accelerator configuration with ./lmp -h 2021-04-22 16:10:51 -04:00
69d41dc16c Merge pull request #2720 from rbberger/gpu_updates
Update GPU package to allow using CUDA 11.3 drivers
2021-04-22 14:28:51 -04:00
0632922a9b Explicitly check for subgroup support instead of CL version 2021-04-22 12:54:13 -04:00
0f1f49afa7 Add more output to ocl_get_devices 2021-04-22 12:52:30 -04:00
ad02e9df69 Added example of SPCE hydration, LJ + q 2021-04-22 18:40:45 +02:00
25c0bb7a31 Merge branch 'master' into examples 2021-04-22 18:08:32 +02:00
d405f2ec4b Update defines to use old neighbor code for CUDA >= 11.2 2021-04-22 09:16:37 -04:00
a49d783e16 check formatting and multiple arguments when using utils::logmesg() 2021-04-22 05:44:35 -04:00
eb85edfb3d make naming of the compiled pace library consistent with those of other libs 2021-04-22 00:15:14 -04:00
c2579391c0 silence compiler warnings 2021-04-22 00:10:29 -04:00
e7cb20efeb replace non-ASCII character in docs 2021-04-21 23:55:40 -04:00
3aec5c6484 tweak docs for logmesg() overload 2021-04-21 23:50:13 -04:00
d2cdb318ab apply new logmesg() overload to a bunch of cases. 2021-04-21 23:38:45 -04:00
0cf1252f1f add overload to utils::logmesg() that handles format strings and variable arguments
this reduces utils::logmesg(lmp,fmt::format(...)) to utils::logmesg(lmp,...)
while still allowing just a single string argument.
2021-04-21 22:52:32 -04:00
4127faacec substitute unicode general punctuation left/right single/double quotes 2021-04-21 22:02:18 -04:00
a1e07d3f75 fix memory leak in fix atom/swap
reported on MatSci forum:
https://matsci.org/t/question-to-fix-atom-swap-function/36135
2021-04-21 22:01:33 -04:00
96baae29d0 fix bug flagged by compiler warning 2021-04-21 22:01:07 -04:00
b4efeb977d update and sort lists of packages for different presets and categories 2021-04-21 22:00:06 -04:00
6ceeee24e2 Merge branch 'master' into collected-small-changes 2021-04-21 21:59:58 -04:00
7e2d40c5fa Merge pull request #2642 from rbberger/balance_tests
MPI balancing testing
2021-04-21 16:00:01 -04:00
e1d75d7e53 Merge pull request #2715 from lammps/kk_bugfix
Fix compile error in Kokkos package
2021-04-21 15:32:45 -04:00
1c80c9455b whitespace fixes 2021-04-21 14:58:57 -04:00
a64a7d5096 Merge pull request #2714 from julient31/STT2
Improvement of the SPIN package by removing a limitation
2021-04-21 14:55:17 -04:00
6cad2ba829 reverting changes in fix precession/spin 2021-04-21 10:55:43 -06:00
1656661fc2 Disable rcb_min_size test 2021-04-21 11:17:32 -04:00
f270b600f7 Fix compile error in kokkos_type 2021-04-21 08:17:17 -06:00
b1dd616a2f correcting a small typo in the checks, and adding a note in the
documentation of fix precession/spin about the error if a (0,0,0) vector
is given as an input.
2021-04-21 07:43:00 -06:00
0e38bfb58b adding "division by zero" checks in fix precession/spin 2021-04-21 07:25:12 -06:00
2e01bb8f62 Merge pull request #2713 from rbberger/collected_small_changes
Collected small changes
2021-04-20 20:40:49 -04:00
f1945522c4 Merge pull request #2711 from wmbrownIntel/tersoff-gpu-multitype-fix
Fixes issues from Feb 2021 GPU package: update for tersoff styles using multiple types and lj/charmm/coul/charmm
2021-04-20 19:38:03 -04:00
56be6d8ec2 Merge branch 'master' of github.com:lammps/lammps into pair-style-nnp 2021-04-20 23:20:14 +02:00
90d3b65691 Minor changes for CMake build tested 2021-04-20 22:55:26 +02:00
ce09f728dd Merge pull request #2712 from ssande7/chunk_atom_bound_upper
[BUGFIX] compute chunk/atom bound xxx upper
2021-04-20 16:01:41 -04:00
7696d0f84c Add ENVIRONMENT to RunLammps test 2021-04-20 15:40:59 -04:00
a4e2255c87 Avoid memory leak in case of errors/exceptions in add_fix 2021-04-20 14:31:11 -04:00
fcf17a709e Don't store group if initial assignment failed 2021-04-20 14:24:07 -04:00
aba4dfc42e Avoid leaking memory in error cases 2021-04-20 14:06:53 -04:00
8826e962de Add info message when death test is skipped 2021-04-20 14:06:08 -04:00
33556e3745 Remove unused defines 2021-04-20 11:44:39 -04:00
58549fa10d Merge branch 'clean-master2' of github.com:julient31/lammps into STT2 2021-04-19 17:32:16 -06:00
a64378ba5b cleaning-up fix nve/spin and precession/spin 2021-04-19 17:29:47 -06:00
10ea64fb0c Improving the doc for the STT term 2021-04-19 17:25:14 -06:00
f2096ded96 - improved design of test_problem
- cleaned up langevin/spin
- started doc for stt and hexaniso
2021-04-19 17:09:53 -06:00
a6efdf9b9f Clean up molecule files creation 2021-04-19 15:14:01 -04:00
bc4b4147ef Avoid filename collisions with AtomStyles test 2021-04-19 14:57:41 -04:00
92abca3910 bug fixes 2021-04-19 13:40:19 -05:00
58292e5c51 Merge branch 'master' into examples 2021-04-19 19:31:42 +02:00
cf62dbf96a In manual pages point to examples 2021-04-19 18:23:33 +02:00
c46f1b5241 modify tests for hybrid pair styles to include some pair_coeff none settings 2021-04-19 08:51:53 -04:00
d60a247138 fix typo 2021-04-19 08:44:46 -04:00
1ad45d65d6 document limitation of not using GPU pair styles as the same style multiple times with hybrid 2021-04-19 08:09:02 -04:00
5409a2a807 rearrange for better readability 2021-04-19 07:55:10 -04:00
48e9f451f4 disallow using the same GPU pair style multiple times as hybrid sub-style 2021-04-19 01:23:54 -04:00
f3eb577b3b update hybrid tests, enable test for hybrid with CPU neigh list and no multiples of the same style 2021-04-19 01:14:25 -04:00
9469cba081 enable GPU unit test for pair style lj/charmm/coul/charmm 2021-04-19 00:34:22 -04:00
101deae472 Removed error thrown when bound xxx upper is used 2021-04-19 10:19:44 +10:00
bb7931c989 Fixing bugs in slow (non-shared memory) variant of lj/charmm/coul/charmm/gpu 2021-04-18 09:35:54 -07:00
f1680b0fdd enable unit test runs on the GPU for tersoff and tersoff/zbl 2021-04-18 20:43:48 -04:00
8d10f35acb display more info about the GPU package setting in the CMake config summary 2021-04-18 20:43:03 -04:00
3d5897c926 Fixes issue from Feb 2021 GPU package update for tersoff styles using multiple types. 2021-04-18 01:40:33 -07:00
18e5e42ce3 minor change 2021-04-18 04:30:59 +03:00
025489ec2c Merge remote-tracking branch 'origin/master' into collected_small_changes 2021-04-17 11:05:23 -04:00
e5877d8aa9 More explicit code in simple case 2021-04-17 11:04:38 -04:00
233beb4df1 Merge branch 'smooth-gpu' of https://github.com/gugmelik/lammps into smooth-gpu 2021-04-17 14:59:03 +03:00
a91e904f34 minor changes 2021-04-17 14:56:16 +03:00
288c0a8023 Merge pull request #2693 from julient31/spin-kokkos
Adding a spin/kokkos atom style
2021-04-16 18:27:47 -04:00
e906fae88c whitespace fixes 2021-04-16 17:10:07 -04:00
668b74bc09 Merge branch 'master' into spin-kokkos 2021-04-16 17:08:38 -04:00
4ed57cb757 Merge pull request #2705 from akohlmey/collected-small-changes
Collected small changes and fixes
2021-04-16 17:07:39 -04:00
9ea465f56a Merge pull request #2707 from akohlmey/commands-base-class
Add Command base class for command styles
2021-04-16 16:16:40 -04:00
99035dc680 removing all commented lines 2021-04-16 11:59:37 -06:00
87a60da150 Update lal_lj_smooth.h
Added new line at the end of file.
2021-04-16 20:05:58 +03:00
5b9c0ff643 Update lal_lj_smooth.cu
Added new line at the end of file.
2021-04-16 20:03:30 +03:00
e4e20b67a8 Update lal_lj_smooth.cpp
Added new line at the end of file.
2021-04-16 20:02:32 +03:00
7a97331e51 add support for Plumed2 version 2.5.7, 2.6.3, 2.7.1 2021-04-16 12:38:00 -04:00
ce51305b2d fix typing error in doc file 2021-04-16 15:44:20 +02:00
4041a07e66 add USER-DPDEXT to CMakeLists.txt 2021-04-16 15:43:03 +02:00
f115b8ba2f Merge branch 'master' into dpd_extended 2021-04-16 14:16:53 +02:00
9031c23080 add extended dpd (dpdext & dpdext_tstat) 2021-04-16 14:14:18 +02:00
b15a813a59 Avoid manual new / delete[] in AtomVec::Method 2021-04-15 18:46:59 -04:00
7300e5c4bd Use C++ for AtomVec::Method 2021-04-15 18:33:21 -04:00
024725c3e0 notation update
constraints can be grouped logically with curly brackets now, instead of parentheses
2021-04-15 16:19:09 -04:00
21a38c203a bond/react: custom constraint docs 2021-04-15 16:11:39 -04:00
9168f949e6 bond/react: custom constraint 2021-04-15 16:06:47 -04:00
0870a56093 expand exception message to include cause of file open failure 2021-04-15 11:57:48 -04:00
6e739c04e4 use safe fread() call 2021-04-14 20:02:05 -04:00
2a81411029 use linux distro and version info to decide when to look for faster linkers 2021-04-14 20:01:46 -04:00
d5661e06ae Detect linux distribution and version 2021-04-14 20:00:38 -04:00
91dfc6875b Silence compiler warnings about unused variables 2021-04-14 17:02:12 -04:00
2e5079371a must delete command explicitly now 2021-04-14 07:26:34 -04:00
75579fc100 take advantage of having the common Command base class to unify code paths 2021-04-14 07:05:00 -04:00
81578d9934 update docs for change in class topology 2021-04-13 17:47:21 -04:00
b53822da46 provide Command base class in command.h for deriving command styles from 2021-04-13 17:47:00 -04:00
8aed7e55b3 add error check when updating variables in ::single() function 2021-04-13 14:59:37 -04:00
9dbdb4386b fix typo 2021-04-13 14:54:47 -04:00
680e6a389d use type cast consistently 2021-04-13 14:54:04 -04:00
533739b128 avoid NULL pointer dereference / slience warnings issued by static code analysis 2021-04-13 14:53:51 -04:00
3b2c0871cc add and use Neighbor::modify_params() convenience function 2021-04-13 14:53:03 -04:00
107d112265 updates for thermo energy output 2021-04-13 09:43:28 -06:00
208d9f1fce use safe fread function to silence compiler warnings 2021-04-13 09:59:15 -04:00
82337c8cc5 silence compiler warnings when compiling with python 2 2021-04-13 09:58:41 -04:00
bddc6d5820 make installation procedure consistent with install.py 2021-04-13 09:58:19 -04:00
b9cb63ae56 remove redundant check 2021-04-13 00:47:58 -04:00
fab571cf6b IWYU reported header updates 2021-04-13 00:47:49 -04:00
02612047c3 must set CMAKE_EXPORT_COMPILE_COMMANDS ON for using iwyu 2021-04-12 23:57:30 -04:00
d8c68dec6f whitespace fixes 2021-04-12 23:32:26 -04:00
014875fb1e Merge branch 'master' into collected-small-changes 2021-04-12 23:28:43 -04:00
e49e505b9f make utility function private 2021-04-12 23:16:02 -04:00
f07fa3d266 Merge pull request #2704 from rbberger/compress_package
More refactoring of COMPRESS package
2021-04-12 23:01:35 -04:00
dba3cce883 Make dump xyz/gz, xyz/zstd compatible to 'buffer no' option 2021-04-12 20:03:58 -04:00
47814292a1 Make dump cfg/gz, cfg/zstd compatible to 'buffer no' option 2021-04-12 19:57:27 -04:00
9bc353e5bd Merge pull request #2585 from tc387/charge_regulation2
Add fix charge/regulation to MC package
2021-04-12 18:49:03 -04:00
455bb933c8 adding modifications for more than one fix langevin/spin in fix nve/spin 2021-04-12 16:18:22 -06:00
0ca9f2e8a0 Merge pull request #2699 from yury-lysogorskiy/feature/user-pace
USER-PACE pair_style integration into LAMMPS
2021-04-12 17:05:40 -04:00
bb52cf9377 adding mask check for fix prec/spin 2021-04-12 15:01:29 -06:00
573aebf06f adding possibility of one or more fix prec/spin in fix nve/spin 2021-04-12 14:52:47 -06:00
d08d59acb3 whitespace fix 2021-04-12 15:00:21 -04:00
bdfa45376d Merge branch 'master' into collected-small-changes 2021-04-12 14:59:42 -04:00
f1e5d11151 add LAMMPS distribution header 2021-04-12 14:52:53 -04:00
04248c2ccd finalize CMake build docs 2021-04-12 14:52:35 -04:00
ee38452f14 fix bug causing a failed download when using cmake -B <dir> 2021-04-12 14:52:17 -04:00
869fe5a2e1 Merge pull request #2702 from akohlmey/pair-hybrid-scaled
New pair style hybrid/scaled
2021-04-12 14:04:17 -04:00
3925bcc1de apply requested changes do pair style hybrid doc 2021-04-12 13:41:38 -04:00
5605a237cf working on the typedef correction 2021-04-12 10:27:20 -06:00
c324d754a0 when installing the LAMMPS python package create a valid version id 2021-04-12 10:51:44 -04:00
82e1c4fb12 silence compiler warnings 2021-04-12 10:25:39 -04:00
65ba022c2a simplify 2021-04-12 10:25:24 -04:00
a572142e6f fix inconsistent new/delete 2021-04-12 10:25:10 -04:00
0c79673d93 make fix charge/regulation compatible with USER-INTEL package 2021-04-12 10:14:31 -04:00
9658b8e645 move fix charge/regulation to MC package (examples stay in place for now) 2021-04-12 10:05:52 -04:00
0c2fc07cc5 add USER-OMP version of pair style coul/cut/global 2021-04-12 10:00:52 -04:00
bc25fa8268 full integration into documentation build system 2021-04-12 09:59:02 -04:00
e95cbf618b Merge branch 'master' into charge_regulation2 2021-04-12 09:55:15 -04:00
7d95943b7e increased bin size in example input file to avoid dangerous builds 2021-04-12 01:46:39 -05:00
d81f03706c Added an example using real units. 2021-04-12 01:30:36 -05:00
38d5798223 must not look for package metadata when using python module from source tree 2021-04-11 21:36:18 -04:00
bb0be962a9 eliminate use of s(n)printf() in QEQ package 2021-04-11 16:44:46 -04:00
e1418a341a ensure that only one of comb/comb3 is matched and called 2021-04-11 06:05:41 -04:00
39a00e2901 reformat 2021-04-11 06:03:46 -04:00
d88cf587b2 add pair style coul/cut/global and fix restart/data bugs in coul/cut 2021-04-10 00:25:00 -04:00
ec6e2d35cb complete update of the hybrid documentation for hybrid/scaled 2021-04-09 22:50:51 -04:00
0d325f2221 error out when scale factor variables do not exist 2021-04-09 22:50:16 -04:00
0496fd27db reorder include files 2021-04-09 22:49:25 -04:00
0628bb89ce Merge branch 'master' into pair-hybrid-scaled 2021-04-09 22:21:16 -04:00
9b78426eba Merge pull request #2703 from akohlmey/collected-small-changes
Collected small changes and bugfixes
2021-04-09 22:20:35 -04:00
96f59a58d3 be a little more paranoid about avoiding memory leakage 2021-04-09 21:53:18 -04:00
7a2910f05f must have num == 2 for getenv style variables 2021-04-09 21:44:34 -04:00
552d13b9e4 print message only on MPI rank 0 2021-04-09 21:43:02 -04:00
c16e4f241f replace "leaky" call to putenv() with setenv() on non-windows platforms 2021-04-09 20:37:01 -04:00
a69c5a5cae fix bugs in shell putenv and getenv style variables. add more unit tests. 2021-04-09 20:19:04 -04:00
e5ee210f58 Make dump atom/gz, atom/zstd compatible to 'buffer no' option 2021-04-09 18:02:55 -04:00
242881af55 Make dump custom/gz, custom/zstd compatible to 'buffer no' option 2021-04-09 17:46:59 -04:00
234c755507 Add missing types in dump local 2021-04-09 17:21:33 -04:00
511f64fde4 Update dump custom/gz 2021-04-09 16:36:30 -04:00
c17ee12989 Update dump xyz/gz 2021-04-09 15:57:17 -04:00
eb3cddb028 Update docs to include format support in dump local variants 2021-04-09 15:46:18 -04:00
cf41ea6faf Update dump local and local/gz 2021-04-09 15:42:28 -04:00
d19cd8fb11 Fix test 2021-04-09 14:49:45 -04:00
dc71d80306 Add dump local tests 2021-04-09 14:49:07 -04:00
5c9a5ba8ac Add missing code to allow customized formatting in dump local 2021-04-09 14:48:38 -04:00
e0e031aa43 Correct dump_modify example in docs 2021-04-09 13:38:18 -04:00
77de0273be Fix typo 2021-04-09 12:37:14 -04:00
2682663df6 Use GzFileWriter in dump cfg/gz 2021-04-09 11:41:45 -04:00
ded22bf8bc Minor changes to dump_atom_gz/dump_atom_zstd 2021-04-09 11:36:10 -04:00
7b53ce572c Merge branch 'master' into compress_package 2021-04-09 10:58:39 -04:00
08471cb88e update path to updated log file 2021-04-09 10:29:36 -04:00
b6b101f29a update melt example to use velocity with loop geom for consistent velocities 2021-04-09 09:54:47 -04:00
d507c57c8a add missing zeroing of the torque array, reformat code 2021-04-09 09:45:09 -04:00
97977e3e68 incorrect check for additional argument in pair_modify nofdotr 2021-04-09 09:44:23 -04:00
924a331342 avoid uninitialized data usage reported by coverity scan 2021-04-09 09:08:39 -04:00
7b45b691f4 pair_pace.cpp: check that units are "metal"
update ace-evaluator (download link + md5sum in cmake and make build systems):  accept multilines comment at the beginning of potential.ace file
add first comment line for potentials/Cu-PBE-core-rep.ace
2021-04-09 13:31:40 +02:00
4c23ecfd4f error out on special atom styles 2021-04-09 00:47:22 -04:00
de158c40ad add support for torque 2021-04-09 00:38:58 -04:00
f2039b5667 add hybrid/scaled pair style to summary tables 2021-04-09 00:36:29 -04:00
73a33abb44 add unit test for hybrid/scaled 2021-04-09 00:32:06 -04:00
ae27d3bf4c add support for single() and read/write_restart() 2021-04-09 00:31:43 -04:00
8ed6d80b85 first working version, forces only, no restart 2021-04-08 21:25:38 -04:00
ee240f93d9 Rearranged cutoff and element map user input
Cutoff radius is now mandatory argument of pair_style. "emap" keyword is
removed and replaced by additional pair_coeff arguments (similar to
pair_airebo.cpp). Changes in docs are still missing.
2021-04-08 23:54:26 +02:00
a441c7b379 simplify hybrid coeff parsing. check for number is already done with conversion 2021-04-08 17:44:13 -04:00
c660dcefd2 add minimal framework for pair style hybrid/scaled 2021-04-08 17:42:32 -04:00
0aee75857a Eliminated doc build warnings 2021-04-08 14:09:19 -06:00
a39dc9f9b2 Added minimal info on downloading and building PACE library 2021-04-08 13:36:04 -06:00
22a337b393 Updated READMEs in lib/pace and src/USER-PACE 2021-04-08 13:00:20 -06:00
2d19282961 reorder include statements in RIGID package 2021-04-08 13:45:37 -04:00
d1fd2f74d1 update PACELIB_URL (tackling some PGI warnings): v.2021.2.3.upd2
update lib/pace/Makefile: -O3 optimization
2021-04-08 16:06:05 +02:00
492ddbbcfa simplify 2021-04-08 09:32:24 -04:00
74a3796418 avoid ambiguous precedence through using parentheses. update unit test reference 2021-04-08 09:29:18 -04:00
ac5bd8a4f7 correct the description of how the F dot r contributions are computed 2021-04-08 08:44:18 -04:00
73ee7805dc remove GPL3 license terms from src/USER-PACE/pair_pace.*
delete lib/pace/CMakeLists.txt
2021-04-08 12:13:33 +02:00
d22d6ad45d cmake/USER-PACE.cmake: update PACELIB_URL and PACELIB_MD5 (new source files with whitespaces)
lib/pace: add Makefile, Install.py use make
remove the LICENSE from src/USER-PACE
2021-04-08 11:52:49 +02:00
1ca38db9df simplify and avoid temporary buffers when piping to/from gzip 2021-04-07 23:26:21 -04:00
a84ac392a3 silence compiler warnings 2021-04-07 23:25:22 -04:00
c9742056d8 Merge pull request #2701 from akohlmey/next_lammps_version
Step version strings for next patch release
2021-04-07 19:39:52 -04:00
8a233a5ec7 add unit test reference data for USER-PACE 2021-04-07 19:30:38 -04:00
f6f383bf99 add .gitignore file to lib/pace folder 2021-04-07 19:29:22 -04:00
b57025523f honor LAMMPS_POTENTIALS environment variable when loading potential file 2021-04-07 19:28:02 -04:00
bd6dd658d6 Updating to master, misc style changes 2021-04-07 17:21:16 -06:00
2d4b05ffa6 refactor code to more closely match LAMMPS coding conventions
- update indentation to 2 characters
- remove dead code and unused class members
- use convenience functions in many places
- reuse code and members from Pair base class
- declare local functions/variables static
- PIMPL-ify access to the ACE evaluator library functions/classes
- correct settings member variables to match implementation
2021-04-07 19:13:10 -04:00
2d1fc67b5d update .gitignore 2021-04-07 19:09:43 -04:00
d54384dd91 Merge branch 'master' into multi_epcc 2021-04-07 16:34:01 -06:00
084c0713d6 resolve whitespace issues 2021-04-07 18:05:00 -04:00
7b34f025ee correct src/Makefile for USER-PACE 2021-04-07 17:46:18 -04:00
0151fd00c2 correct CMake support for USER-PACE package and align with recent conventions for downloading external code 2021-04-07 17:37:30 -04:00
0496626533 Merge branch 'master' into feature/user-pace 2021-04-07 16:26:26 -04:00
6569c2e434 Merge pull request #2694 from akohlmey/neighlist-interface-updates
Neighbor list library/python interface improvements
2021-04-07 16:25:38 -04:00
feda2dc08d Updated doc page and spelling 2021-04-07 14:07:58 -06:00
3c5424722e Merge pull request #2698 from jtclemm/gran_attractive
New option for granular pairstyles and updates to granular walls
2021-04-07 16:02:57 -04:00
5bc630f008 step version strings for next patch release 2021-04-07 15:07:06 -04:00
5bdf032035 Merge pull request #2308 from akohlmey/gpu-unittest
Add support for testing pair styles in the GPU package
2021-04-07 15:03:03 -04:00
ea8277ce87 whitespace fixes 2021-04-07 14:59:33 -04:00
f072289ac1 need to initialize limit_damping array to NULL 2021-04-07 14:52:36 -04:00
7b18bc1fec correctly handle r-RESPA for lj/class2 and lj/class2/gpu 2021-04-07 14:26:27 -04:00
9af086916b skip GPU tests for a couple more tabulated coulomb tests 2021-04-07 14:11:25 -04:00
835820ba00 reorder includes 2021-04-07 14:00:27 -04:00
5d00fa7ec5 update constants for lj/cubic/gpu from CPU version 2021-04-07 14:00:14 -04:00
29c78d022a add lib/pace/Makefile.lammps 2021-04-07 19:54:35 +02:00
6909bc234a Merge pull request #2700 from rbberger/python_calls_refactor
Python package refactor
2021-04-07 13:35:53 -04:00
da56b9de56 Adding user-omp support 2021-04-07 07:48:43 -06:00
3e3f66adac Merge branch 'master' into smooth-gpu
Added gpu acceleration for smooth pair_style.
2021-04-07 14:15:33 +03:00
0d1ccbe1b5 Move A.Thomson's modifications on doc and examples in:
- doc/src/.rst
- examples/USER/pace
- potentials
2021-04-07 12:43:28 +02:00
3de3302767 remove source files from lib/pace;
add lib/pace/Install.py to automatically download the source files from github/ICAMS/lammps-user-pace;
add lib/pace/CMakeLists.txt to build libpace.a
add lib/pace/README
update src/USER-PACE/Install.sh
2021-04-07 12:20:24 +02:00
717faa6515 correctly detect GPU package with CUDA api 2021-04-06 19:12:28 -04:00
932ea80b25 update reference data for angle style cosine/periodic 2021-04-06 18:39:37 -04:00
0ae75aabcd Remove unused variables 2021-04-06 17:10:16 -04:00
b6776ca3de Remove GCC optimization pragma for GCC < 4.9 due to compiler segfault 2021-04-06 16:48:18 -04:00
5af294d49e Update test_potential_file_reader.cpp 2021-04-06 16:47:06 -04:00
4ba45ddd84 Merge pull request #2697 from ndtrung81/fix-rigid-nh-small-deposit
Fixed a bug with rigid/{nvt,npt,nve,nph}/small when used with fix deposit
2021-04-06 16:08:12 -04:00
c44b8f18ee Adding explicit parentheses to logical operations 2021-04-06 13:54:11 -06:00
8e43d58fab Switching logical operators to match preferred style 2021-04-06 13:48:56 -06:00
6294a7c0dd Merge branch 'master' into gran_attractive 2021-04-06 13:11:37 -06:00
80a65150c2 Patching uninitialized values, replacing lines in documentation 2021-04-06 13:09:46 -06:00
0aa9aa96f6 Update pair_python 2021-04-06 14:50:08 -04:00
7e9fa25121 Update fix_python_move.cpp 2021-04-06 14:48:44 -04:00
5ee24c5b89 Update fix_python_invoke 2021-04-06 14:47:20 -04:00
da5bd578ad Simplify python_impl.cpp 2021-04-06 14:46:35 -04:00
e5a665c1d9 Add utilities for Python code 2021-04-06 14:45:07 -04:00
190a689354 Merge branch 'master' into gpu-unittest
# Conflicts:
#	unittest/force-styles/test_pair_style.cpp
#	unittest/force-styles/tests/angle-cosine_periodic.yaml
#	unittest/force-styles/tests/mol-pair-born.yaml
#	unittest/force-styles/tests/mol-pair-born_coul_dsf.yaml
#	unittest/force-styles/tests/mol-pair-born_coul_long.yaml
#	unittest/force-styles/tests/mol-pair-born_coul_msm.yaml
#	unittest/force-styles/tests/mol-pair-born_coul_msm_table.yaml
#	unittest/force-styles/tests/mol-pair-born_coul_wolf.yaml
#	unittest/force-styles/tests/mol-pair-morse.yaml
#	unittest/force-styles/tests/mol-pair-morse_smooth_linear.yaml
2021-04-06 14:45:06 -04:00
00e4bdb2b7 Merge pull request #2692 from arghdos/master
Porting to new default platform for AMD/HIP in ROCm 4.1
2021-04-06 14:39:30 -04:00
0b4d3588b5 Merge pull request #2695 from akohlmey/collected-small-changes
Collected small changes and fixes
2021-04-06 14:12:51 -04:00
e332382dea Merge pull request #2696 from rbberger/offline_builds
CMake: Improve support for offline builds
2021-04-06 13:52:11 -04:00
698b9b9519 relax epsilon some more 2021-04-06 13:36:27 -04:00
e01e0298cb fix uninitialized data access after restart bug in USER-YAFF pair styles
also fix some source formatting issues
2021-04-06 13:32:42 -04:00
db400c91ae relax error a little bit to avoid failure on macos 2021-04-06 11:37:59 -04:00
d346c53914 silence compiler warnings about formats 2021-04-06 11:28:19 -04:00
6a99f5b5c5 WIP:
-  no auto-download of user-pace src yet
-  lib/pace/*.cpp,*.h are provided explicitly yet.
- implement CMake integration in USER-PACE.cmake and in CMakeLists.txt
2021-04-06 17:24:54 +02:00
11d62b71c3 use clang preset when compiling on MacOS 2021-04-06 11:11:01 -04:00
ac0fa51b0b Merge branch 'master' into gran_attractive 2021-04-06 08:40:56 -06:00
1fe284dbba add examples for using fix rigid/nv?/small with fix deposit 2021-04-06 07:55:43 -04:00
8e28252ac9 Updated fix rigid/nh for the (g_f == 0) case 2021-04-06 00:19:20 -05:00
2fc9734fab Fixed a bug with rigid/*/small when starting with an empty group of rigid bodies such as when using fix deposit 2021-04-05 23:51:11 -05:00
94068cc4c7 Add missing GTEST_MD5 2021-04-05 16:17:41 -04:00
7e57d6a334 add tests for "rerun" 2021-04-05 16:01:27 -04:00
fc6e10921d add post yes/no keyword to rerun commmand (with default to no) 2021-04-05 15:38:59 -04:00
cbd439692e Update cmake/Modules/Packages/KIM.cmake 2021-04-05 15:36:14 -04:00
d4550dbb4b Update cmake/Modules/Packages/USER-SMD.cmake 2021-04-05 15:32:18 -04:00
2509190dae Update cmake/Modules/YAML.cmake 2021-04-05 15:29:33 -04:00
88b9e99707 Update cmake/Modules/Packages/GPU.cmake 2021-04-05 15:26:58 -04:00
b718903efc Update cmake/Modules/Packages/USER-PLUMED.cmake 2021-04-05 15:10:01 -04:00
8ccc19bb2a Update cmake/Modules/Packages/LATTE.cmake 2021-04-05 15:05:48 -04:00
0277883fb2 Update cmake/Modules/Packages/USER-SCAFACOS.cmake 2021-04-05 15:05:48 -04:00
725332614a Update cmake/Modules/Packages/MSCG.cmake 2021-04-05 15:05:47 -04:00
42ca8c5ba0 Update cmake/Modules/Packages/VORONOI.cmake 2021-04-05 15:05:47 -04:00
192ee276b1 Update cmake/Modules/Packages/KOKKOS.cmake 2021-04-05 15:05:47 -04:00
614411130b Update cmake/Modules/Documentation.cmake 2021-04-05 14:44:27 -04:00
3b14606f06 Update cmake/Modules/MPI4WIN.cmake 2021-04-05 14:43:05 -04:00
8533bb17e7 Update cmake/Modules/OpenCLLoader.cmake 2021-04-05 14:36:38 -04:00
4e4a571dbd Add advanced LAMMPS_DOWNLOADS_URL cmake option 2021-04-05 14:31:13 -04:00
f323fb29b3 Reverting no_attraction option in wall gran region docu 2021-04-05 11:53:49 -06:00
6bdf0138ac Typos in documentation 2021-04-05 11:50:53 -06:00
773ec40d3a Misc small fixes 2021-04-05 11:37:35 -06:00
9126fd6ddb Merge pull request #1 from dsbolin/gran_attractive
Gran attractive
2021-04-05 08:46:26 -06:00
e00e2676fc add tests for utils::open_potential() 2021-04-04 22:23:13 -04:00
a858c07e8a add unit tests for empty id, invalid timespecs, and merge sort 2021-04-04 21:51:48 -04:00
67d4302fc7 add tests for tokenizer skip() function and throwing an exception 2021-04-04 21:51:06 -04:00
1e7e930d55 generalize match to fit all rigid/small derived fixes 2021-04-04 21:14:40 -04:00
36c6410fd8 make skip() function argument optional and default to 1 2021-04-04 21:14:12 -04:00
d1b6aaa3f3 plugins also have a .so suffix on MacOS (unlike shared libs) 2021-04-04 20:57:29 -04:00
5e0b017d30 update information about adding unit tests to reflect recent changes 2021-04-04 20:51:58 -04:00
f0e3786ded Minor changes to conform with coding standards 2021-04-04 22:48:25 +02:00
b2e9ffa673 add missing entry to standard packages list 2021-04-03 11:15:00 -04:00
17355f967a address spelling and manual processing issues 2021-04-03 11:11:18 -04:00
a4a23f3ef1 add an example for looking up and looping over a neighbor list 2021-04-03 11:04:24 -04:00
7244ccf8b1 update format 2021-04-03 11:04:02 -04:00
cfc39b5a73 complete porting python neighborlist test to c-library version 2021-04-03 10:44:07 -04:00
6205375c03 allow const char for compute/fix id arguments 2021-04-03 10:26:49 -04:00
1a48667026 add minimal test for neighbor list functions 2021-04-03 10:25:14 -04:00
cea4298946 silence LAMMPS output, if requested 2021-04-03 10:25:03 -04:00
5520d6edd7 confirm that no incompatible neighbor lists are found 2021-04-03 10:24:46 -04:00
432ccffb3e find manybody potentials 2021-04-03 10:23:31 -04:00
46f98ec4dc make compatible with const data pointers as arguments 2021-04-03 10:23:16 -04:00
50b789cc36 Merge branch 'master' into neighlist-interface-updates 2021-04-03 10:18:28 -04:00
b1faf17eeb Updates fix wall/gran to mirror recent updates to pair granular. Also some minor changes related to the limit_damping option 2021-04-03 00:48:00 -06:00
678302bfcb avoid a floating point exception in RanMars::rayleigh() from taking log(0) 2021-04-02 22:08:39 -04:00
d3b2ccf9dd numpy version of neighbor list tests 2021-04-02 21:41:26 -04:00
85a5698c1b add find method to neighbor list wrapper classes 2021-04-02 21:41:08 -04:00
7e70def4cc fix errors/typos in manual 2021-04-02 21:00:42 -04:00
c74bb9b56b add more unit tests for neighbor list access 2021-04-02 21:00:26 -04:00
51212e62d9 correct/update docs and parameter names for finding neighbor lists 2021-04-02 19:55:53 -04:00
9da49d9c6f Merge pull request #2685 from akohlmey/collected-small-changes
Collected small changes and fixes
2021-04-02 19:42:04 -04:00
66e885b6e5 Merge branch 'master' into collected-small-changes
# Conflicts:
#	src/USER-YAFF/pair_lj_switch3_coulgauss_long.cpp
#	src/USER-YAFF/pair_mm3_switch3_coulgauss_long.cpp
2021-04-02 17:57:54 -04:00
b976c2d13c Merge pull request #2679 from akohlmey/more-unittests
Expand unit tests
2021-04-02 17:51:29 -04:00
1c43b4a4c3 Merge branch 'fix_ave_chunk_cdof_bug' into collected-small-changes 2021-04-02 17:50:33 -04:00
90ab63f9ad Merge branch 'master' into collected-small-changes 2021-04-02 17:49:27 -04:00
2c00136f22 used correct suffix when installing plugin binaries for testing 2021-04-02 17:49:15 -04:00
abfe8bab59 fix uninitialized memory access issues. consolidate enumerators. 2021-04-02 17:32:29 -04:00
2a10b5ba69 fix bug causing segfaults 2021-04-02 17:21:34 -04:00
af6452065f correct URL to XTC file format docs on the gromacs homepage 2021-04-02 16:48:13 -04:00
7d85461e97 Prevent compilation from breaking with Python 2 2021-04-02 16:32:25 -04:00
79a413aeea replace calls to sqrt() in constant initializers with precomputed numbers.
this also moves those arrays into a separate file and out of the header
2021-04-02 16:15:28 -04:00
160f2cc630 Update ROCm container definitions 2021-04-02 16:11:23 -04:00
7995fd8923 Merge pull request #2689 from bhanudaysharma/patch-1
Update units.rst (documentation for units commands)
2021-04-02 16:09:56 -04:00
c62b1b1050 Merge remote-tracking branch 'github/master' into collected-small-changes 2021-04-02 16:08:51 -04:00
c4f59764d4 reformat pair_coeff section that got misformatted as string 2021-04-02 15:28:09 -04:00
e613da98d6 Merge pull request #2650 from akohlmey/plugin-loader
New PLUGIN package with a LAMMPS plugin loader command
2021-04-02 15:08:44 -04:00
5583901b2c should not set neighbor list request id to non-zero when just requesting a single neighbor list 2021-04-02 13:51:42 -04:00
43735fd3f5 update neighbor list library interface to use ID field in neighbor list to uniquely identify lists 2021-04-02 13:50:50 -04:00
d24f74b582 add stop on file example to fix halt docs 2021-04-02 12:31:46 -04:00
366b49c581 copy NeighRequest::id to NeighList::id so we can identify them when a style has multiple requests 2021-04-02 12:14:34 -04:00
887eb40ad4 fix crash when requesting verbose output. 2021-04-02 12:07:59 -04:00
2dfafe4adb add is_file() special variable function and unit tests for it 2021-04-02 12:07:43 -04:00
6e97417dbf Merge branch 'gran_attractive' of https://github.com/jtclemm/lammps into gran_attractive 2021-04-01 22:24:04 -06:00
17e6f59463 Merge branch 'spin-kokkos' of github.com:julient31/lammps into spin-kokkos 2021-04-01 11:46:15 -06:00
4975295e0f - adding a force/clear equivalent for spins in verlet/kk
- setting all validation problems for spin/kk
2021-04-01 11:45:16 -06:00
c3eb52f46a add force tests for USER-YAFF pair styles 2021-04-01 12:43:24 -04:00
994ee59fd5 correct single() functions for USER-YAFF pair styles to be consistent with compute() 2021-04-01 12:42:48 -04:00
b5ef98cc22 consolidate the documentation for lj/switch3/coulgauss/long and mm3/switch3/coulgauss/long into a single file 2021-04-01 12:42:07 -04:00
9ac246011e remove flags and setup for multi-cutoff r-RESPA support which is missing 2021-04-01 12:14:40 -04:00
e7422a6bf7 silence compiler warnings 2021-04-01 11:28:18 -04:00
3668ce1374 Merge branch 'master' into more-unittests
# Conflicts:
#	unittest/testing/core.h
2021-04-01 11:11:18 -04:00
4c2fb7a431 Porting to new default platform for AMD/HIP in ROCm 4.1 2021-04-01 09:43:13 -05:00
0b60650c1b Merge branch 'master' into collected-small-changes 2021-04-01 10:11:59 -04:00
21c934d2cd Merge pull request #2682 from rbberger/python_unittests
Python package unit tests
2021-04-01 10:11:26 -04:00
f2a28dea4e Merge pull request #2686 from ProfessorMiller/master
Better handling of incorrect boundary conditions for KIM models with Coulomb interactions
2021-04-01 10:11:08 -04:00
52e5f1e962 Merge pull request #2690 from ohenrich/user-cgdna
USER-CGDNA: Corrected error message
2021-04-01 09:54:45 -04:00
b5d2f5f2b2 address whitespace issues 2021-04-01 09:45:01 -04:00
e0aec1b5d9 remove obsoleted comment 2021-04-01 09:39:17 -04:00
f867e69290 include new split_lines() function in Developer docs 2021-04-01 09:35:52 -04:00
c9652f3aa6 update documentation for the extract_global() method of the lammps.lammps class 2021-04-01 09:31:54 -04:00
eeaa221ee7 Merge pull request #2691 from wmbrownIntel/gpu_cudpp_fix
Fixing bug with GPU neighboring when using builds supporting CUDPP.
2021-04-01 09:21:18 -04:00
d72b390c41 correct check for box changing fixes 2021-04-01 08:48:39 -04:00
f48af95d49 update gcmc example to use fix rigid/small 2021-04-01 08:23:10 -04:00
b34585762b updated sectoring function to account for triclinic cells. I didn't see a triclinic cell error warnings in SPIN/* or KOKKOS/atom_vec_spin_kokkos.cpp files. 2021-04-01 01:00:25 -06:00
8b37f3c044 Fixing incorrect arg for pair gran 2021-03-31 17:25:41 -06:00
8b2676a103 Moving arguments in gran wall, renaming toarg limit_damping 2021-03-31 16:57:13 -06:00
8e4a2e4c7b Renamed a missing cmake file, NNP => HDNNP 2021-04-01 00:41:27 +02:00
7b9dfb296d Renamed pair style, user package: nnp => hdnnp 2021-04-01 00:35:17 +02:00
6dfd475175 Merge branch 'master' of github.com:lammps/lammps into pair-style-nnp 2021-03-31 23:24:11 +02:00
bed57e02f7 avoiding static variable 2021-03-31 16:18:05 -04:00
7699fb3708 generalize some checks in fix rigid and rigid/small 2021-03-31 15:55:31 -04:00
c53f2d4629 correct USER-OMP respa/omp check 2021-03-31 14:55:07 -04:00
9e412bb7a6 Fixing bug with GPU neighboring when using builds supporting CUDPP.
...introduced in Feb 2021 GPU package update. Manifests when GPU library is built with -DUSE_CUDPP and -DLAL_USE_OLD_NEIGHBOR (latter forced with CUDA 11.2).
2021-03-31 11:42:39 -07:00
0bde6c82a3 remove newton bond off check again 2021-03-31 14:40:54 -04:00
e1cf6a312f Corrected error message 2021-03-31 18:56:50 +01:00
d36894ccf5 Adding pertype flag to pair granular 2021-03-30 22:16:47 -06:00
ad2b2c7768 Merge branch 'gran_attractive' of https://github.com/jtclemm/lammps into gran_attractive 2021-03-30 21:55:21 -06:00
2988aa2d1f Fixes bug where accumulated tangential and rolling displacements are not rotated correctly. Pointed out by Deng Pan on LAMMPS mailing list 3/26/21 2021-03-30 21:55:06 -06:00
7e0d44e0ca Adding no_attraction flag to granular pair and wall styles 2021-03-30 20:51:23 -06:00
7092a7769c Update units.rst
In LJ units, the conversion formula between rho and rho* should be corrected to   
\rho^* = \rho \frac{\sigma^{dim}}{m}
2021-03-31 06:44:52 +05:30
183b30abd7 use strmatch() consistently to detect respa and verlet runstyles with optional suffix 2021-03-30 18:30:22 -04:00
eea2f45a95 force newton bond to be on since we don't support it to be off (yet) 2021-03-30 17:19:28 -04:00
e22f9c4768 newton bond off does not work with atom style template currently 2021-03-30 16:48:51 -04:00
2e86cb4176 for atom style template number of bonds does not depend on newton_bond 2021-03-30 15:33:11 -04:00
8f5d11c0c5 add missing return 2021-03-30 13:34:31 -04:00
2d0aad1904 Merge branch 'spin-kokkos' of github.com:julient31/lammps into spin-kokkos 2021-03-30 10:39:27 -06:00
39dc3e69ba Commit before pull 2021-03-30 10:35:25 -06:00
4ee24b85b0 fix a few minor issues with the docs 2021-03-30 11:45:47 -04:00
2dbf59efa9 update install instructions for updates via patch and git for CMake/GNU make 2021-03-30 11:43:56 -04:00
2b5af8894e Merge branch 'master' of git://github.com/lammps/lammps 2021-03-30 11:36:23 -04:00
24d9d6d17d update to kim_interactions to correctly handle incorrect combinations of periodic and f/s boundary conditions when the SM has to choose between kspace or real space coulomb calculations. This version treats "p p p" in kspace, "f f f" or "s s s" in realspace, and "p p f" with kspace-slab. all others are sent to kspace-slab and then caught there as an error. 2021-03-30 11:27:39 -04:00
71dbf43e09 error our when Fix:set_molecule() is called with unsupported fixes
also add example input for using fix rigid/small with fix deposit
2021-03-30 11:10:59 -04:00
57ad6d50f4 silence compiler warnings 2021-03-30 10:36:00 -04:00
256bde9282 Merge branch 'clean-master2' of github.com:julient31/lammps into spin-kokkos 2021-03-30 07:24:42 -06:00
bfca619957 fix typos 2021-03-30 07:49:15 -04:00
40f1a74a7f use more precise detection of verlet and respa run styles 2021-03-30 07:37:39 -04:00
3041561383 add proper r-RESPA support for fix cmap 2021-03-30 07:36:53 -04:00
ea105a3c9a fix typo 2021-03-30 07:36:22 -04:00
41de02ee9d update granular howto 2021-03-29 23:44:38 -04:00
20e6174e59 cannot use tokenizer for parse_args() as the search for commata must be away of parenthesis 2021-03-29 21:11:07 -04:00
213fc06321 Add GzFileWriter implementation 2021-03-29 18:05:04 -04:00
4ea9a9bf04 Removed screening symmetry and added rann example 2021-03-29 15:23:22 -05:00
ddaeabf4d3 Merge branch 'more-unittests' of github.com:akohlmey/lammps into more-unittests 2021-03-29 16:18:38 -04:00
ea808b8563 Merge branch 'master' into more-unittests 2021-03-29 15:27:26 -04:00
2b11848fcc bugfix from dan bolintineanu for issue reported on lammps-users by Deng Pan 2021-03-29 15:26:57 -04:00
6f986eee4e Add missing changes 2021-03-29 15:01:29 -04:00
dca9cd9c1c Kept the .cubin files so that they are only rebuilt whenever changes are made to the relevant source files 2021-03-29 13:46:16 -05:00
7662cfe28d Merge /home/ndtrung/Codes/lammps-git into eam-gpu 2021-03-29 13:33:31 -05:00
aaf9aa6d69 Refactoring of more tests 2021-03-29 14:27:42 -04:00
9058216a54 silence compiler warnings 2021-03-29 14:11:56 -04:00
180d2895c4 Merge pull request #2678 from akohlmey/collected-small-changes
Collected small changes and fixes
2021-03-29 14:05:08 -04:00
dbc30f9c19 Merge pull request #2683 from akohlmey/pair-map-refactor
Refactor element to type mapping code  in pair styles
2021-03-29 12:15:02 -04:00
4d96a50edb Merge branch 'master' of https://github.com/kipbarrett/lammps into pair_rann 2021-03-29 10:55:47 -05:00
1e3f1c584c simplify by using utils::strdup() fmt::format() and reorder includes 2021-03-29 08:12:37 -04:00
806f4e73ed make dihedral style table/cut a derived class from table and remove redundant code 2021-03-29 07:32:43 -04:00
e481eb1154 simplify by using utils::strdup() fmt::format() and reorder includes 2021-03-29 07:29:14 -04:00
b32570c15e simplify by using utils::strdup() and reorder includes 2021-03-28 22:22:13 -04:00
31726f56e6 refactor group2ndx and ndx2group commands to use fmtlib, tokenizer and utils 2021-03-28 14:48:39 -04:00
dfb18caf5a simplify using utils::strdup(), update order of include files 2021-03-27 16:25:55 -04:00
436be824e1 use std:: namespace for STL containers 2021-03-27 12:10:40 -04:00
0b73ab96d2 avoid replicated code, consolidate variables and element mapping 2021-03-27 12:09:36 -04:00
35abca1b40 we should include <strings.h> when using strcasecmp() 2021-03-27 11:18:59 -04:00
e85f945d8e fix typos 2021-03-26 23:12:29 -04:00
1752bd0276 Refactoring of some test files 2021-03-26 12:23:58 -04:00
664335420a Start refactoring tests 2021-03-26 11:50:58 -04:00
b1efdda75c Merge remote-tracking branch 'origin/master' into more-unittests 2021-03-26 11:35:22 -04:00
756d935d06 use std:: namespace for STL containers 2021-03-25 21:13:24 -04:00
029db1413e Add missing verbose after merge 2021-03-25 21:01:32 -04:00
439bc4bb8e Merge remote-tracking branch 'origin/master' into python_unittests 2021-03-25 20:58:28 -04:00
cb25e4aa39 Add nve respa testcase for python/move 2021-03-25 20:34:25 -04:00
a193d9d429 fix several issues when using extract_global() from python exposed by tests 2021-03-25 20:34:25 -04:00
b8f02d759a add support for extracting respa levels and timestep values 2021-03-25 20:34:25 -04:00
e0fdd2ad89 correct lammps.extract_global() method for returned arrays which are returned as list 2021-03-25 20:34:24 -04:00
53f32cea7e simplify using utils::strdup() 2021-03-25 19:42:41 -04:00
2baafda517 simplify 2021-03-25 17:19:11 -04:00
2b34d88b71 fix bug 2021-03-25 17:19:03 -04:00
4efe60ec43 compatibility with older CMake versions 2021-03-25 17:14:57 -04:00
27e31c4b15 simplify 2021-03-25 14:49:49 -04:00
28ac1fddc7 add tests for fix adapt with pairwise and coulomb interactions 2021-03-25 14:20:44 -04:00
6d6e2a7920 add simple check whether the compiled executable can actually run 2021-03-24 21:51:55 -04:00
a772c3b7d2 test a few more functions and constants 2021-03-24 21:27:32 -04:00
47b7653d4d Merge pull request #2653 from rbberger/code_coverage
Add tests to increase code coverage
2021-03-24 20:57:46 -04:00
3c41c12dbc Add testcase for python/move 2021-03-24 18:58:46 -04:00
4fa5ce2dbc Remove unnecessary import 2021-03-24 18:11:31 -04:00
d04d326413 more tests for expressions and vector style variables 2021-03-24 18:02:30 -04:00
55b0e33200 fix typo 2021-03-24 18:01:48 -04:00
b0bc0b9a2f Use time.strptime instead of datetime.strptime
Embedding the Python interpreter multiple times in the same process can
cause this issue due to import caching. https://bugs.python.org/issue27400
This seems to be avoidable by using the time module instead.
2021-03-24 17:54:13 -04:00
81e8676c7e Prepare python/move unittest 2021-03-24 17:15:07 -04:00
aab51fe70e more coverage of utility functions in Variable class 2021-03-24 16:47:56 -04:00
157698543f add tests for "next" command 2021-03-24 16:47:08 -04:00
45191e9f7c Refactor and add fix python/invoke tests 2021-03-24 16:33:39 -04:00
b15502ddc8 Add utils::split_lines 2021-03-24 15:53:00 -04:00
1c9c46d2c1 Add tests to cover python command 2021-03-24 15:42:38 -04:00
407212153f create more variables of different styles 2021-03-24 15:14:58 -04:00
cc54f553e0 complete tests for if command booleans 2021-03-24 14:35:48 -04:00
9d3e37b102 Add more python variable tests 2021-03-24 12:43:47 -04:00
51946205ce add YAML files for MLIAP nn and quadratic snap model input 2021-03-24 12:26:07 -04:00
487c55edf0 simplify and apply clang-format 2021-03-24 11:24:55 -04:00
8790ecc141 Refactor existing tests 2021-03-24 11:18:21 -04:00
b6a030532d add tests for boolean evaluation in "if" command 2021-03-24 10:33:00 -04:00
67f1f12c20 more tests for expressions 2021-03-23 21:42:45 -04:00
85d1257222 move redundant enumerator to Variable class definition in variable.h 2021-03-23 21:41:50 -04:00
23c8d8ccfb Use HasSubstr since output order is dependent on buffering 2021-03-23 20:13:39 -04:00
359a369573 Ensure that global Py_UnbufferedStdioFlag is set when PYTHONUNBUFFERED=1 2021-03-23 19:57:45 -04:00
6b24006d43 Use Info::has_package to check for PYTHON support 2021-03-23 19:56:18 -04:00
180e816886 Simplify PythonPackage tests 2021-03-23 19:55:08 -04:00
4f46ee30a2 avoid crash when functions expecting an argument are used without 2021-03-23 18:13:01 -04:00
346c36e227 replace redundant functions to handle constants with (unordered) map 2021-03-23 17:48:47 -04:00
1efd72eb58 a couple more expressions and functions 2021-03-23 16:55:05 -04:00
1ebb600829 add tests for expressions and functions 2021-03-23 16:47:40 -04:00
014f9ad527 simplify Variable::parse_args() by using Tokenizer class 2021-03-23 16:47:04 -04:00
16c08516a7 test definition of more different variable styles 2021-03-23 16:14:40 -04:00
08d4fec142 add framework for testing the variable command 2021-03-23 14:38:54 -04:00
73b9f22681 Merge pull request #2675 from jrgissing/bond/react-tweak-recent-updates
Bond/react: tweak recent updates
2021-03-23 13:51:48 -04:00
b7296b6d0b consolidate documentation for dihedral styles table and table/cut into one file 2021-03-23 13:49:37 -04:00
403a7a6f84 Merge pull request #2677 from stanmoore1/kk_snap_opt
Optimizations to Kokkos SNAP
2021-03-23 13:32:02 -04:00
875327117b add unit test for dihedral styles table and table/cut 2021-03-23 08:07:35 -04:00
4b076e01be silence compiler warning 2021-03-22 21:36:33 -04:00
ca1496e028 simplify 2021-03-22 21:36:25 -04:00
56121a524c correct equilibrium angle computation for angle style cosine/periodic if b < 0 2021-03-22 16:26:50 -04:00
58744f0a49 correct expression for K 2021-03-22 15:32:24 -04:00
aabfe40ad3 add missing 1/n**2 term to pair style cosine/periodic energy function 2021-03-22 15:10:45 -04:00
e8c8ceaf81 correct attribution of angle style cosine/squared with DREIDING 2021-03-22 11:28:22 -04:00
e2591a90cf Merge branch 'master' of https://github.com/lammps/lammps into kk_snap_opt 2021-03-22 11:24:46 -04:00
b8f6063578 correct documentation of angle style cosine/periodic 2021-03-22 10:47:49 -04:00
2bab4808b6 Improve memory coalescing in Kokkos snap force computation, pointed out by @weinbe2 2021-03-22 08:28:43 -06:00
b3f465babe decrease foward_comm nsize
due to new placement of probability evaluation
2021-03-20 16:34:55 -04:00
012cdf3763 performance improvement bugfix 2021-03-20 16:20:57 -04:00
c4e1255f3e Merge pull request #2674 from rbberger/small_changes
Small code changes
2021-03-19 20:05:41 -04:00
dbe41778fa Merge branch 'small_changes' of github.com:rbberger/lammps into small_changes 2021-03-19 18:51:44 -04:00
06ee5be2ce Fix unhandled cases in docs LAMMPS syntax highlighting 2021-03-19 18:51:21 -04:00
4269eeeef7 Optimize quadratic Kokkos SNAP, pointed out by @weinbe2 2021-03-19 17:22:40 -04:00
125ddb0c82 Merge pull request #2670 from stanmoore1/kk_debye
Fix issues in pair_coul_debye_kokkos
2021-03-19 16:13:28 -04:00
9707771f1c apply UTF-8 character replacement before creating tokens 2021-03-19 16:10:37 -04:00
6503a7c3ba skip explicit temporaries 2021-03-19 15:52:27 -04:00
1f50557b38 Adopt utils::strdup in dump styles 2021-03-19 15:34:43 -04:00
a33a04a392 Remove redundant has_next() check in Tokenizer 2021-03-19 14:12:09 -04:00
5d4614b626 Correct vformat for bigint in dump_custom.cpp 2021-03-19 14:10:20 -04:00
772d270974 Merge pull request #2662 from evoyiatzis/master
Addition of a PyLammps script to compute elastic constants using OpenKIM
2021-03-19 13:43:19 -04:00
41c2a82ccc Merge pull request #2666 from akohlmey/collected-small-changes
Collected small changes and fixes
2021-03-19 13:32:42 -04:00
945ecd1f1c Update kim commands 2021-03-19 13:23:15 -04:00
154b8cb401 remove dead code 2021-03-19 11:42:09 -04:00
d9d5d3a36a Correcting skin distance calculation for collection/interval 2021-03-19 09:29:47 -06:00
ca102e4920 remove dead code 2021-03-19 11:20:32 -04:00
b9bc226e39 save style names alongside the classes when using read_data nocoeff
this fixes #2673
2021-03-19 10:06:02 -04:00
2e7e5aeac4 make fix gcmc and fix widom compatible with USER-INTEL
this fixes #2672
2021-03-19 10:04:28 -04:00
a5563e8d04 simplify using utils::strdup() 2021-03-18 20:56:04 -04:00
1710fb86d3 when using INTEL_LR_THREADS from C++11 we must add the threads library 2021-03-18 20:33:36 -04:00
59c0325f08 simplify by using utils::strdup() 2021-03-18 20:22:08 -04:00
0dd32d2f99 Merge pull request #2671 from rbberger/python_update
Improve LAMMPS error/exception detection in Python package
2021-03-18 19:37:24 -04:00
ff1b6deff0 Merge pull request #2668 from ellio167/trim-models-list
Trim models list returned by "kim query ... get_available_models ..." to those installed on user's system
2021-03-18 18:32:30 -04:00
024a9600b1 update docs 2021-03-18 18:20:32 -04:00
a5ce7c1ac9 better checks for valid data 2021-03-18 18:03:26 -04:00
023d42b5bb add support for region style plugins 2021-03-18 18:03:12 -04:00
03793d5e4d simplify 2021-03-18 17:23:25 -04:00
b2309f6246 add support for computes 2021-03-18 17:09:08 -04:00
fbb3bb14af synchronize interface to managing computes in Modify with that of fixes
- add find_compute_by_style()
- add delete_compute(int)
2021-03-18 17:08:49 -04:00
9b29b1594b add support for bond/angle/dihedral/improper plugins 2021-03-18 14:40:41 -04:00
692802921d Add SYCL output to info command 2021-03-18 14:28:47 -04:00
4c0efceb1e Remove invalid thermo accesses 2021-03-18 14:26:52 -04:00
64ba2f4ee2 Add missing checks for C++ exceptions 2021-03-18 14:26:18 -04:00
4cbf8eb2f8 Fix issues in pair_coul_debye_kokkos, pointed out by @weinbe2 2021-03-18 11:55:04 -06:00
8d18051232 acceleration for pair_style lj/smooth 2021-03-18 20:48:57 +03:00
c5ab2becd7 fix bug in utils::expand_args() 2021-03-18 12:25:31 -04:00
d5a1591cd1 simplify code
- use Tokenizer instead of ValueTokenizer since no value conversions are needed
- don't use fmt::format() when no string formatting is needed
2021-03-18 12:12:30 -04:00
b6498c8b9b Merge pull request #2665 from masterleinad/kokkos_sycl
Allow compiling with SYCL
2021-03-18 11:27:42 -04:00
482aa7a66d Reset LAMMPS_LAMBDA to KOKKOS_LAMBDA 2021-03-18 14:19:57 +00:00
199595c510 Small adjustment to log message 2021-03-17 10:54:55 -05:00
232611c184 Merge branch 'master' into gpu-unittest
# Conflicts:
#	unittest/force-styles/tests/atomic-pair-reax_c.yaml
#	unittest/force-styles/tests/improper-cvff.yaml
#	unittest/force-styles/tests/improper-harmonic.yaml
#	unittest/force-styles/tests/improper-hybrid.yaml
#	unittest/force-styles/tests/mol-pair-lj_cubic.yaml
2021-03-17 08:50:26 -04:00
ecbb75ff3c removing parentheses from mass dictionary 2021-03-17 12:30:02 +01:00
05d6c1e757 Update python/examples/pylammps/elastic/elastic.py
Co-authored-by: Richard Berger <richard.berger@temple.edu>
2021-03-17 10:37:39 +01:00
611eb306be Update python/examples/pylammps/elastic/elastic.py
Co-authored-by: Richard Berger <richard.berger@temple.edu>
2021-03-17 10:37:24 +01:00
5ba57fdd44 forgot to delete this line 2021-03-17 00:21:40 -04:00
2dc0b70575 simplify some more code by using utils::strdup() 2021-03-17 00:10:01 -04:00
ddc77be911 update docs for converting the plugin feature to a package 2021-03-16 23:52:44 -04:00
2a6fcee5e0 add missing file (was ignored by default) 2021-03-16 23:42:06 -04:00
a76a8eae59 fix segfault when processing empty lines 2021-03-16 23:41:18 -04:00
78126c5eb3 fix cmake unit test issue 2021-03-16 23:32:08 -04:00
28e986c266 add python module support for plugins 2021-03-16 23:25:46 -04:00
125ae33ccf convert plugin functionality into a package 2021-03-16 23:00:16 -04:00
a6773bad5d remove unnecessary echo 2021-03-16 19:40:49 -05:00
11894f83b9 clarify and fix grammar issues 2021-03-16 19:50:45 -04:00
31009b0517 Merge branch 'master' into plugin-loader 2021-03-16 19:46:21 -04:00
42895ac6df Merge pull request #2654 from akohlmey/collected-small-changes
Collected small changes
2021-03-16 19:34:54 -04:00
22fdfa27b5 Updated documentation to clarify the treatment of temperature using norm all 2021-03-17 09:01:35 +10:00
1b5a7e2e1e Merge pull request #2664 from rbberger/pylammps_update
PyLammps Examples update
2021-03-16 18:45:38 -04:00
2e45c84c6a Merge pull request #2655 from akohlmey/collected-refactoring
Collected small code refactoring changes
2021-03-16 18:39:30 -04:00
46b86f3b1e Define LAMMPS_DEVICE_FUNCTION 2021-03-16 22:20:47 +00:00
0e8f64251e Correct the token to avoid missing model names
Correct the missing & available strings to match with the rest of query
Add error message when there is no OpenKIM model installed on the system
Correct the header file inlcusion order
2021-03-16 16:23:54 -05:00
772190efd1 Merge pull request #2657 from rbberger/refactor_meam_reader
Refactor MEAMC potential reader
2021-03-16 17:14:34 -04:00
ec5490e467 Allow compiling with SYCL 2021-03-16 21:04:51 +00:00
3eb9b21713 Merge pull request #2658 from akohlmey/more-unittests
Update and expand unit tests
2021-03-16 16:59:14 -04:00
c5a4488c23 Merge pull request #2663 from masterleinad/kokkos_avoid_intrinsics
Avoid intrinsics KOKKOS/npair_kokkos
2021-03-16 16:40:13 -04:00
3b9d5916c9 add backward compatibility for recent changes to KIM commands 2021-03-16 16:38:56 -04:00
5e3ddb6986 Use stable branch for checkout 2021-03-16 16:36:34 -04:00
c81610a3e8 Check for installed OpenKIM models to be returned by kim query command 2021-03-16 14:39:24 -05:00
45b01aba0c Update Jupyter notebooks 2021-03-16 15:18:07 -04:00
32a2ee6dc2 Update mc.ipynb 2021-03-16 14:38:26 -04:00
e9e1a96335 Update simply.ipynb 2021-03-16 14:22:26 -04:00
644b61cd1f Add __dir__() to Atom class 2021-03-16 14:21:19 -04:00
a8597de4be Add __dir__() to variable_set 2021-03-16 14:04:24 -04:00
dc435d8188 Improve indentation 2021-03-16 17:53:41 +00:00
e81fe91c2b don't output null pointers as strings with fmtlib in variable info list 2021-03-16 13:45:05 -04:00
1fae21622a remove trailing whitespace 2021-03-16 13:37:15 -04:00
3304dfcbfe don't output null pointers as strings with fmtlib in variable info list 2021-03-16 13:31:56 -04:00
ac32d907c0 Avoid intrinsics KOKKOS/npair_kokkos 2021-03-16 17:09:37 +00:00
d1b4af60a3 disable GPU binning via CUDPP by default and describe why 2021-03-16 11:58:47 -04:00
b4633bc2b2 Update PyLammps examples README 2021-03-16 11:49:24 -04:00
cf19197f79 revert change causing memory corruption. we need extra space in the allocated string buffer. 2021-03-16 10:03:22 -04:00
eb90fcecb1 simplify using utils::strdup() 2021-03-16 09:39:45 -04:00
1ef1a7d865 simplify using std::string 2021-03-16 09:39:28 -04:00
b7759b0cdb use ValueTokenizer instead of sscanf() for safer parsing of custom processor grids 2021-03-16 09:15:49 -04:00
5d5fc4a04d simplify by using utils::strdup() 2021-03-16 08:56:52 -04:00
a1d8e21b04 Add files via upload 2021-03-16 13:14:20 +01:00
6f07564a92 Create README 2021-03-16 13:13:45 +01:00
11d2b488c1 Fixed incorrect scaling of cdof for 'norm all' 2021-03-16 16:51:10 +10:00
2f8770971c make use of utils::strdup() and simplify 2021-03-16 01:17:10 -04:00
3d67d1eee9 simplify 2021-03-16 00:50:29 -04:00
c39d494ae4 update "magic" for restart files to have more information 2021-03-15 22:58:19 -04:00
68b6296f90 accept negative numbers for group definition by id 2021-03-15 21:53:27 -04:00
154ae86469 fix bug 2021-03-15 21:42:43 -04:00
f2890e39ef update to use new intel fortran compiler name
Co-authored-by: Richard Berger <richard.berger@temple.edu>
2021-03-15 20:53:49 -04:00
f835d5e69e refactor utils::expand_args() 2021-03-15 20:50:26 -04:00
ece2433208 use utils::strdup() for duplicating strings 2021-03-15 17:55:19 -04:00
0808453618 remove dead code 2021-03-15 17:00:27 -04:00
a6a2879807 add a few more tokenizer test cases for added use cases. 2021-03-15 12:02:58 -04:00
63110fd588 replace use of strtok() with Tokenizer class 2021-03-15 12:02:38 -04:00
dbf7b9c24a simplify and get rid of strtok() 2021-03-15 11:28:25 -04:00
23e4078b4e use enumerator constants from base class 2021-03-15 11:27:57 -04:00
ffb86eb2ab fix bug 2021-03-15 11:27:27 -04:00
b13e5fa234 simplify using std::string and utils::strdup(); get rid of strtok() 2021-03-15 09:36:49 -04:00
16387eda40 Merge pull request #2659 from evoyiatzis/patch-2
Updating displace.mod
2021-03-15 07:43:48 -04:00
6a67df7ebc fix typo 2021-03-15 00:34:06 -04:00
88c6e5cb31 correctly identify new Intel compiler. mark old Intel compiler as "classic" 2021-03-15 00:32:31 -04:00
097eebaa36 use __INTEL_LLVM_COMPILER macro to detect new intel compilers as intel, not clang 2021-03-15 00:25:29 -04:00
47b305b558 with the new llvm based intel compiler getrusage.mu_maxrss is zero 2021-03-15 00:07:57 -04:00
e6d8209b9d use new intel LLVM based fortran compiler as well 2021-03-15 00:06:58 -04:00
0f7913a665 Fix token types and remove unused header 2021-03-14 20:46:22 -04:00
11ff1fecf9 use ValueTokenizer to parse group range selector string with strict syntax check 2021-03-14 19:10:44 -04:00
5d795130db more strict checking of valid input in utils::bounds() with new tests 2021-03-14 17:59:00 -04:00
4c17217ad2 add unit tests for the exceptions thrown by ValueTokenizer when data is missing 2021-03-14 17:28:03 -04:00
6158802974 add support for testing per-atom properties with fix property/atom 2021-03-14 17:18:03 -04:00
a6e6f43d55 write a comment to the custom data file section with the column assignment 2021-03-14 15:36:09 -04:00
3642dcfedb use ValueTokenizer for parsing fix property/atom sections of data files 2021-03-14 15:35:12 -04:00
194a551590 complete refactor of file/atomfile variable parsing code 2021-03-14 10:45:07 -04:00
14abdade03 ValueTokenizer will throw a "Not enough tokens" exception, if trying to get the next value without one present 2021-03-14 10:44:27 -04:00
f72013c5db Update displace.mod
The pressure tensor was not computed as time-averaged quantity but as instantaneous value
2021-03-14 12:36:46 +01:00
1b409fbae8 update docs for magic patterns 2021-03-14 06:39:59 -04:00
18be1a2ea3 fix typo in false positives 2021-03-14 05:45:25 -04:00
ad878bbf73 tweak epsilon 2021-03-14 05:44:39 -04:00
84b0da3054 add a "magic" file for use with the file(1) command to detect LAMMPS files 2021-03-14 05:44:28 -04:00
59977d07ef fix unit test failure for non-verbose runs 2021-03-14 05:00:22 -04:00
8c4918457f consistently compare atom->molecular against enumerator constants 2021-03-14 01:25:22 -05:00
5e18518f7a group tester covers now about 40% of group.cpp 2021-03-14 00:49:35 -05:00
0062645cbc check for Atom::molecule_flag instead of Atom::molecular when using molecule ID only 2021-03-14 00:48:36 -05:00
9be96fb96a add unit test for groups 2021-03-13 22:53:03 -05:00
0cdd433eca better error checking 2021-03-13 22:52:37 -05:00
7936a6296f simplify 2021-03-13 22:52:25 -05:00
11386097c6 avoid strtok() when reading variables from file 2021-03-13 21:00:09 -05:00
a1b26fdfc4 small unit test epsion tweaks for impropers 2021-03-13 20:48:34 -05:00
3183c4bdb7 avoid calling strtok() when reading per-atom data in data files 2021-03-13 19:23:24 -05:00
15e30ed44d report dynamic linker error messages on failures 2021-03-13 18:41:36 -05:00
9c13361a17 avoid calling strtok() in group command 2021-03-13 18:33:42 -05:00
e6def05178 refactor parse_coeffs() function to avoid calling strtok() 2021-03-13 18:09:36 -05:00
882b221a17 rename arg,narg,maxarg to avoid shadowing in command() function 2021-03-13 17:35:49 -05:00
5f3649ed95 correctly process strings with DOS-style CR-LF in lammps_commands_string() 2021-03-13 15:48:22 -05:00
ec2be3f8bc add preset for Intel's new oneAPI LLVM based compiler 2021-03-13 13:07:25 -05:00
98fa3661f3 silence compiler warning 2021-03-13 12:41:01 -05:00
10189760c6 fix issue of not removing unloaded plugins from fix map 2021-03-13 12:40:49 -05:00
88760fa648 add plugin clear command to unload all loaded plugins 2021-03-13 12:40:04 -05:00
79d438e090 add support for plugin command to LAMMPS shell 2021-03-13 12:18:07 -05:00
dd94bac0c8 better error message when trying to unload an unsupported plugin style 2021-03-13 12:17:45 -05:00
76cff1ed1e add library interface for introspection of loaded plugins 2021-03-13 12:17:20 -05:00
e3d9c3126b revert back to not supporting loading plugins on windows 2021-03-13 10:25:44 -05:00
4ae7f84c2a whitespace 2021-03-12 22:27:38 -05:00
d05137455c ignore build folders 2021-03-12 22:21:24 -05:00
3e90b1971a add preliminary support for compiling/loading plugins on windows 2021-03-12 22:21:11 -05:00
b2085f56d6 install compiled plugins into the current working directory of the tester 2021-03-12 18:35:39 -05:00
93bbaef547 add unit tests for plugin command 2021-03-12 17:28:22 -05:00
a689c19047 Refactor MEAMC potential file reader 2021-03-12 15:54:20 -05:00
98013a1528 add draft version of unit test (will have to be improved for MacOS) 2021-03-12 15:32:50 -05:00
1c222286e2 correct output 2021-03-12 14:30:08 -05:00
4b1924fad1 add missing check 2021-03-12 14:29:59 -05:00
7b4e143176 support building plugins on MacOS (tested on version 11.0 aka Big Sur) 2021-03-12 14:29:40 -05:00
1dd69a3c00 avoid warnings when processing embedded docs with doxygen 2021-03-12 11:44:34 -05:00
c3f6fb914f add CMake build environment demo for plugins 2021-03-12 11:43:37 -05:00
a2bcd7fe68 programmer documentation update 2021-03-12 00:07:52 -05:00
930c0fca30 must link with -ldl 2021-03-11 23:59:23 -05:00
d95d5f1954 store different factory variants in a union 2021-03-11 23:52:35 -05:00
524c62994e update docs 2021-03-11 23:12:00 -05:00
dde00ab344 add plugin command documentation 2021-03-11 23:10:26 -05:00
83583c465e add support for command plugins with example 2021-03-11 23:09:37 -05:00
256c478a6b reorder functions and make header and implemention order consistent 2021-03-11 22:34:47 -05:00
347db1458d always link with libdl.so/.a or equivalent except on windows 2021-03-11 22:34:23 -05:00
b9028a07bf bugfix 2021-03-11 22:09:50 -05:00
a28d9a6e69 activate workaround for problems with new GPU code neighbor lists 2021-03-11 22:06:10 -05:00
6a14403a27 silence compiler warnings 2021-03-11 22:05:24 -05:00
620dd09509 delete active fixes when unloading fix style plugin 2021-03-11 21:36:14 -05:00
19c042c8d2 add false positives 2021-03-11 21:19:49 -05:00
3d1c6b30af refuse to load a plugin over an existing plugin for the same style 2021-03-11 21:19:29 -05:00
9209cbba92 add support for loading plugins for fixes 2021-03-11 21:19:04 -05:00
f982d98574 small tweaks 2021-03-11 19:34:28 -05:00
b252946fba now fix windows compile for real 2021-03-11 19:34:13 -05:00
dfe4f7a49d small tweaks and simplify 2021-03-11 19:33:50 -05:00
c61de8740c add preliminary documentation for plugin command and about how to write plugins 2021-03-11 19:33:07 -05:00
3ec9f2fd5e whitespace 2021-03-11 17:44:11 -05:00
ee8246f590 recover compilation on windows 2021-03-11 17:44:05 -05:00
b8ae2f5c6f add comments, extra checks, have output only on MPI rank 0 2021-03-11 17:41:08 -05:00
ca88f97a4b added acceleration of lj/smooth on gpu 2021-03-12 01:40:52 +03:00
c78ddb29dd implement reference counting and means to close unused DSO. Must delete pair style when plugin version is in use 2021-03-11 16:57:37 -05:00
36ccb4ddb9 Merge branch 'master' into plugin-loader 2021-03-11 15:02:33 -05:00
76d857e428 Add more tests for COMPRESS package 2021-03-11 14:21:16 -05:00
88962784aa silence warnings when compiling/linking the LAMMPS main object with nvcc_wrapper 2021-03-11 14:03:57 -05:00
0590dddae4 don't use "constexpr" here because multiple compilers are complaining about the missing initializer 2021-03-11 14:03:24 -05:00
ffda7fcc04 simpler interfaces 2021-03-11 14:02:21 -05:00
14da94d189 Add more compression tests for dump local 2021-03-11 13:27:54 -05:00
f53fcf0545 Add more compression tests for dump custom 2021-03-11 13:12:43 -05:00
7e3d1923ab Add more compression tests for dump cfg 2021-03-11 13:02:18 -05:00
c5cb294506 Add other compression tests to xyz tests 2021-03-11 12:42:19 -05:00
3ebc7823b0 Unify dump xyz/gz and xyz/zstd tests 2021-03-11 12:28:56 -05:00
fca6d6bf8f Unify dump local/gz and local/zstd tests 2021-03-11 12:20:25 -05:00
116ffd62de Unify dump custom/gz and custom/zstd tests 2021-03-11 12:11:23 -05:00
aed8608c7c Unify dump cfg/gz and cfg/zstd tests 2021-03-11 11:59:49 -05:00
8e1ccb6123 next iteration: rename functions/files, split header, store dso handle 2021-03-11 07:26:57 -05:00
8325740663 add test for partition command 2021-03-11 06:46:53 -05:00
423772b1fa avoid strtok() when processing the "partition" command 2021-03-11 06:46:40 -05:00
af9321c4d8 correct output 2021-03-11 06:46:14 -05:00
56e3962d9c Merge pull request #2648 from akohlmey/next_lammps_version
Update version strings for the next patch release
2021-03-10 18:05:55 -05:00
20a546c824 Move testcase in its own file 2021-03-10 16:08:51 -05:00
aa625eaf65 Unify dump atom/gz and atom/zstd tests 2021-03-10 15:48:20 -05:00
27ac2bb485 Merge pull request #2652 from rbberger/small_fixes
Collection of small changes
2021-03-10 15:15:23 -05:00
fcec6699ac Merge pull request #2651 from athomps/snap-element-checking
Tightened up the consistency checks on SNAP elements and LAMMPS types
2021-03-10 14:48:54 -05:00
a548ea3bca Add more tests for dump atom/gz 2021-03-10 13:40:10 -05:00
96e92949d0 Merge pull request #2649 from ellio167/kim-citation-update
Add support for unpublished KIM potential citations and citation from pair_kim
2021-03-10 12:21:51 -05:00
592490be4e add unload/list commands 2021-03-10 09:50:28 -05:00
c3249625ab Add addtional constructor to PotentialFileReader 2021-03-10 09:16:46 -05:00
f092eb01e4 Correct array destruction in mliap_model_nn.cpp 2021-03-10 07:36:10 -05:00
ba7872ad5f modernize, simplify, and errorcheck SNAP potential file parse
Specifically this commit makes the following changes:
- use fmtlib to avoid temporary string buffers and snprintf()
- use fmtlib for more specific error messages
- use Tokenizer class instead of strtok() for thread safe and simpler parsing
- use std::string() and '==' for string comparisons
- use utils::*numeric() instead of atoi()/atof() for parsing values
2021-03-10 06:17:47 -05:00
c6bf9a893a rearrange include file order 2021-03-10 06:13:04 -05:00
c9ea640320 whitespace fixes (no tabs, no trailing whitespace) 2021-03-10 04:58:57 -05:00
2162d2fb3f Clarified rules about SNAP elements and LAMMPS types 2021-03-09 19:19:36 -07:00
9329ab6ab8 Added another check specially for chemsnap 2021-03-09 19:14:17 -07:00
115723a4d4 Tightened up the consistency checks on SNAP elements and LAMMPS types 2021-03-09 18:38:47 -07:00
f68a7094ad include /omp variant into plugin example 2021-03-09 18:44:51 -05:00
fb39ceaaeb fix whitespace and typo 2021-03-09 16:00:14 -05:00
f0381b48ca add example for loading a pair style 2021-03-09 15:50:27 -05:00
27a81ffc86 add initial version of a plugin loader interface (for pair styles) 2021-03-09 15:34:48 -05:00
c00887020e Add support for unpublished KIM potential citations and citation from pair_kim 2021-03-09 10:56:50 -06:00
571a65a06d step version strings for the next patch release 2021-03-09 07:26:59 -05:00
6b3f0ddd3b Merge pull request #2647 from agiliopadua/fep
Updated examples in USER-FEP
2021-03-08 23:00:33 -05:00
7ae2da0ace Merge pull request #2641 from pedroantoniosantosf/mliap_nn
Add support for neural network (nn) models to MLIAP package to compute energies and forces without going through Python
2021-03-08 20:27:01 -05:00
37afa0e6d5 Merge pull request #2638 from akohlmey/parse-molecule-refactor
Further refactor parsing of molecule files
2021-03-08 20:04:07 -05:00
f17ac30875 Merge pull request #2590 from markc242/relres-update
New pair style lj/relres
2021-03-08 19:53:03 -05:00
728b4801fd Use other example for thermo_style multi test 2021-03-08 18:15:43 -05:00
83fddb1123 Merge branch 'master' into fep 2021-03-08 23:21:11 +01:00
ee07c88184 Update fep examples 2021-03-08 23:19:51 +01:00
d1c79d54fa Merge remote-tracking branch 'github/master' into mliap_nn 2021-03-08 16:33:38 -05:00
80b902c0c5 Merge pull request #2644 from akohlmey/collected-small-changes
Small bug fix for fixes to fix deposit and fix pour
2021-03-08 16:26:39 -05:00
fc8b3bcfd6 Fixed bigint check 2021-03-08 14:00:34 -07:00
025b18999a Cleaned up the MLIAPData variable names 2021-03-08 13:31:24 -07:00
f1e01274b1 fix pyx file location 2021-03-08 12:15:21 -05:00
e26c9387ae Update fep examples CHhyd CH4-CF4 2021-03-08 15:58:18 +01:00
ce4d622b15 Improved CH4hyd examples 2021-03-08 00:05:48 +01:00
e32d059d26 lj/smooth/gpu 2021-03-06 23:43:25 +03:00
4960aeb3c8 error on line 194 2021-03-06 23:39:37 +03:00
1220aa2eff acquire GIL before updating python path 2021-03-06 14:40:18 -05:00
42035ef99f forgot to include header for Error class 2021-03-06 00:28:12 -05:00
db8f378a20 add check when system becomes too large for MLIAP package 2021-03-05 23:14:57 -05:00
eee08204c3 Merge branch 'master' into mliap_nn 2021-03-05 22:14:57 -05:00
ed5b573286 whitespace fixes 2021-03-05 22:14:46 -05:00
cfcf30975d move .pyx file back where it belongs 2021-03-05 22:14:21 -05:00
08a25af1c9 catch format errors and print suitable error message 2021-03-05 18:04:05 -05:00
0e6736b614 correct logic for detectig 4-byte UTF-8 characters 2021-03-05 17:57:09 -05:00
facb7bd269 make logic explicit through use of parentheses 2021-03-05 17:54:25 -05:00
502d05c88a update reference log files for lj/relres 2021-03-05 17:54:00 -05:00
fdf06e48b2 removed factory creation 2021-03-05 16:53:49 -06:00
02021eb330 removed factory creation 2021-03-05 16:49:04 -06:00
b5e1851e5d removed factory creation 2021-03-05 16:47:13 -06:00
b62a208f4a edit citation reminder short message to match new conventions 2021-03-05 17:23:55 -05:00
89174ddf91 final update with @sjplimp suggested change 2021-03-05 16:28:50 -05:00
e105f1cb05 Merge branch 'relres-update' of https://github.com/markc242/lammps into relres-update
pull
2021-03-05 16:26:34 -05:00
45fabdd16e final update with @sjplimp suggested change 2021-03-05 16:23:05 -05:00
9a8ac23663 indicate that we use GPLv2 2021-03-05 14:16:40 -05:00
2777eafe98 small fix for previous fix for fix pour and fix deposit 2021-03-05 14:15:59 -05:00
b5af4f32b9 Merge pull request #2637 from akohlmey/collected-small-changes
Collected small changes and fixes
2021-03-05 13:22:18 -05:00
debb0ef63d Add comments for review 2021-03-05 10:59:52 -05:00
d8daf1da4c next_reneighbor should be initialized in setup_pre_exchange() 2021-03-05 06:30:41 -05:00
39abc9dce3 nfirst should be a bigint 2021-03-05 06:30:23 -05:00
135099e23f next_reneighbor must be initialized in setup_pre_exchange() 2021-03-05 06:08:06 -05:00
2f4fc31696 since nfirst stores the timestep, it must be a bigint 2021-03-05 06:07:36 -05:00
de6bae6333 stabilize timer based load balancing by adding minimum time of 0.1 seconds 2021-03-05 05:40:28 -05:00
0857bccc10 Add RCB tests 2021-03-04 18:31:54 -05:00
0b9675807b Fix typos 2021-03-04 17:48:44 -05:00
38586669f8 Removed compute*.dat and *v2 files 2021-03-04 19:03:11 -03:00
add929fa06 Removed incorrect and useless early-exit 2021-03-04 11:48:42 -07:00
9b98981e6e Merge branch 'mliap_nn' of github.com:pedroantoniosantosf/lammps into mliap_nn 2021-03-04 08:49:29 -07:00
3bda036ca5 Eliminated shortcut exit that was causing memory overflow 2021-03-04 08:49:06 -07:00
e3a892ccd7 Start unittests for MPI load balancing 2021-03-04 10:10:58 -05:00
31cf07947e fix typo 2021-03-04 03:11:45 -03:00
97d1964383 Merge branch 'master' into collected-small-changes 2021-03-03 21:49:48 -05:00
73c874a042 whitespace 2021-03-03 21:29:59 -05:00
897c337e1c apply suggested improvements and clarifications 2021-03-03 21:27:05 -05:00
26086e04a5 add option to set the runtime path on installation (vs. the default to remove it) 2021-03-03 17:59:05 -05:00
73c36f5e12 Merge branch 'mliap_nn' of github.com:pedroantoniosantosf/lammps into mliap_nn 2021-03-03 14:27:25 -07:00
cf04303daf Final edits to doc page 2021-03-03 14:27:04 -07:00
2f9cca97a9 Removed static functions and cmath include from header 2021-03-03 13:12:02 -07:00
862a5ad2b6 Cleaned up names of PyTorch files 2021-03-03 12:07:45 -07:00
aa5da53b8a more rearranging, tried to elimiante unnecessary name elements 2021-03-03 11:55:26 -07:00
26c5cdfb92 whitespace 2021-03-03 13:49:15 -05:00
f455869de3 update a few more error messages 2021-03-03 13:43:54 -05:00
abfc4465b0 Rearranged nn file locations and names 2021-03-03 11:38:05 -07:00
6c0c6ce3b0 example Ta06A using nn 2021-03-03 14:53:56 -03:00
b7367e713a Update in.mliap.snap.nn.Cu 2021-03-03 14:09:03 -03:00
8f9520b4bb Create log.Cu_nn 2021-03-03 13:39:26 -03:00
38d076e22e Updating nn example and mliap .rst 2021-03-03 13:36:00 -03:00
4af4c0a99b parsing is done on all MPI ranks, so we better use error->all() instead of error->one() 2021-03-03 08:43:51 -05:00
2db78823a0 open() method not really needed. 2021-03-03 08:43:23 -05:00
f02b0cf09b review error messages for Coords, Types, Molecules, and Fragments sections 2021-03-03 08:24:21 -05:00
390e6eb965 Merge branch 'master' into fep 2021-03-03 14:01:43 +01:00
404d46c5b6 add missing keyword to list 2021-03-03 05:37:41 -05:00
21dd629acf correct C7 in Ethanol example for USER-FEP. update logs 2021-03-03 05:36:42 -05:00
7b4034d07a reformat. compute/check some molecule properties 2021-03-02 23:05:27 -05:00
c44dbc567d tweak test for creating atoms and bond from a molecule file 2021-03-02 22:41:09 -05:00
6ab8de58bc add a few more tests 2021-03-02 22:26:40 -05:00
7ddb0c7014 clarify some more error messages 2021-03-02 22:26:23 -05:00
d17daf150b Update to use cutoff term 2021-03-02 20:55:37 -05:00
3ab5b5f63a Documentation updated according to @sjplimp request 2021-03-02 18:57:23 -05:00
16631a0c18 add tests for one file with two molecules and two files with one each 2021-03-02 15:54:06 -05:00
92ff812e9d simplify 2021-03-02 15:53:33 -05:00
d6dbdfdbe6 detect and warn about unknown header keywords (instead of error out on an empty line) 2021-03-02 15:53:17 -05:00
d5c3e1786a Fixing bugs on eam*/gpu for pair hybrid with neigh yes, where the gpu pair style eam is used for only a subset of the pair types. eam being the first substyle works correctly, but otherwise will give incorrect forces 2021-03-02 13:05:37 -06:00
e3942a0d48 update test to use stdio consistently 2021-03-02 12:53:15 -05:00
eecc85659d add missing line 2021-03-02 12:43:06 -05:00
e4ce1de66b add "death tests" for no molecule file and molecule file w/o atoms 2021-03-02 12:16:12 -05:00
60694b2a94 better error check and error message when looking for section headers 2021-03-02 11:59:54 -05:00
861ad834c6 fix typo 2021-03-02 11:22:43 -05:00
01a32b67b0 add minimal unit test program for molecule files 2021-03-02 11:07:03 -05:00
371ee63c2c begin refactor of parsing of sections 2021-03-02 11:06:24 -05:00
e941d0fd4a simplify parsing of keywords 2021-03-02 11:05:18 -05:00
2d96a01bb2 use trim functions in utils to remove whitespace and comments 2021-03-02 11:03:51 -05:00
e09f4b6e7a simplify checking for valid molecule ID 2021-03-02 11:03:17 -05:00
ca8b268ad5 new convencience function for checking valid IDs (includes unit tests) 2021-03-02 11:02:09 -05:00
299cc08232 Merge branch 'master' into gpu-unittest 2021-03-01 23:01:41 -05:00
73de926f09 safer detection and load of lammps shared library 2021-03-01 23:01:05 -05:00
cf5614e7d7 change precision handling so we can on the GPU also run with mixed and single precision 2021-03-01 22:44:24 -05:00
92dd89f9e6 skip a few more tests that crash with the GPU package (/w OpenCL) 2021-03-01 22:41:13 -05:00
7b49b39a93 fix typo 2021-03-01 22:28:23 -05:00
6c7de1cbd0 no support for pppm on GPU (yet) with nozforce or triclinic cell 2021-03-01 22:14:35 -05:00
e02ad44b8b GPU package does not support tabulated long-range coulomb 2021-03-01 22:05:47 -05:00
fb57d86364 dpd and dpd/tsat may only run with 1 thread due to use of per-thread pRNG 2021-03-01 21:45:36 -05:00
6fa3e6d23e remove hardcoded checks for incompatible styles. use skip_tests keyword instead 2021-03-01 21:44:41 -05:00
5629947d89 add skip test entries for tests failing to run for GPU or USER-INTEL 2021-03-01 21:43:38 -05:00
205b45423c combine repetitive code into convenience function 2021-03-01 20:07:19 -05:00
59eaa46f8d Tweaked README.md and changed permissions on source 2021-03-01 17:41:02 -07:00
74713be4a2 add new key to YAML files: skip_tests 2021-03-01 19:27:11 -05:00
4b66c1e570 better error message for incorrect range string 2021-03-01 12:36:29 -05:00
0f63f07ce5 Merge pull request #2634 from evoyiatzis/master
Small extension of extract method in Buckingham pair styles
2021-03-01 09:03:49 -05:00
7e3ca726b1 Merge pull request #2635 from ssande7/fix_nh_extract_bug
[BUGFIX] Correct return values for FixNH::extract()
2021-03-01 08:49:12 -05:00
5407d2968a update unit test reference 2021-02-28 23:33:05 -05:00
e75f1f2f82 Merge branch 'master' into relres-update 2021-02-28 23:20:44 -05:00
a7e5f1acf2 improve grammar and use terms consistent with the rest of LAMMPS 2021-02-28 23:20:02 -05:00
cac03a85f3 add false positive 2021-02-28 23:19:45 -05:00
175e6c964a Documentation and examples updated according to @sjplimp request 2021-02-28 21:30:55 -05:00
0ae38fb2ea Fix return values of extract for pressure variables 2021-03-01 09:48:31 +10:00
a57311ce3a whitespace fixes 2021-02-28 12:03:50 -05:00
30d15b9b22 test for extract parameters in unit tests 2021-02-28 11:59:17 -05:00
4e7df729ae Update fix_adapt_fep.rst 2021-02-28 11:41:28 +01:00
97718fa957 Update fix_adapt.rst 2021-02-28 11:40:43 +01:00
39422dff94 Update compute_fep.rst 2021-02-28 11:39:02 +01:00
2f764edadc Addition of extract method in PairBuckCoulCut cpp 2021-02-28 11:30:12 +01:00
947fa67531 Addition of extract method in BuckCoulCut 2021-02-28 11:25:49 +01:00
b622416417 Extent extract method of PairBuckCoulMSM 2021-02-28 11:21:38 +01:00
6ff8fc093e Extent extract method of BuckCoulLong 2021-02-28 11:20:31 +01:00
76ef7a9081 safer detection and load of lammps shared library 2021-02-27 15:50:58 -05:00
dfeee1f19b run neighbor list on CPU for hybrid pair styles 2021-02-27 15:42:32 -05:00
121774dde3 adjust epsilon for one test 2021-02-27 10:58:04 -05:00
a6f32e472d add explanation why we set pair_modify table only in the lammps_init() 2021-02-27 10:39:03 -05:00
f797d9cb2e must always set pair_modify table (and table/disp) explicitly for long-range styles 2021-02-27 10:36:38 -05:00
981ed01983 recreate all yaml files with updated timestamps 2021-02-26 23:16:51 -05:00
19311d408d use utils::trim() to remove extra whitespace from ctime() output. 2021-02-26 23:10:43 -05:00
fff215b48f Merge branch 'master' into gpu-unittest
# Conflicts:
#	unittest/force-styles/tests/mol-pair-born.yaml
#	unittest/force-styles/tests/mol-pair-born_coul_dsf.yaml
#	unittest/force-styles/tests/mol-pair-born_coul_long.yaml
#	unittest/force-styles/tests/mol-pair-born_coul_msm.yaml
#	unittest/force-styles/tests/mol-pair-born_coul_wolf.yaml
#	unittest/force-styles/tests/mol-pair-buck.yaml
#	unittest/force-styles/tests/mol-pair-buck_coul_long.yaml
#	unittest/force-styles/tests/mol-pair-buck_coul_msm.yaml
#	unittest/force-styles/tests/mol-pair-lj_cubic.yaml
#	unittest/force-styles/tests/mol-pair-morse.yaml
#	unittest/force-styles/tests/mol-pair-tip4p_cut.yaml
#	unittest/force-styles/tests/mol-pair-zbl.yaml
2021-02-26 22:47:11 -05:00
9efc83195a Merge pull request #2624 from rbberger/collected_small_changes
Collection of small changes
2021-02-26 20:38:47 -05:00
1521c7a370 Merge pull request #2625 from yafshar/kim_citation
Updating the kim citation report to lammps conventions
2021-02-26 20:38:28 -05:00
ad7f14936e Merge pull request #2627 from jrgissing/bond/react-performance-improvement
Bond/react performance improvement
2021-02-26 20:38:01 -05:00
2ab9c34e52 Merge pull request #2631 from rbberger/python_additions
Add LAMMPS output readers to Python package
2021-02-26 20:27:52 -05:00
15c5aa9bc1 Merge pull request #2633 from evan-charmworks/utils-regex-context
Make regex code in utils thread-safe
2021-02-26 20:22:12 -05:00
a89f0f332d Make regex code in utils thread-safe
regex_context_t is only 520 bytes on platforms with 8-byte pointers,
which is reasonable to allocate on the stack instead of as a global in
a userland program.
2021-02-26 15:24:08 -06:00
f69768d919 one more change 2021-02-26 15:58:26 -05:00
09e33fd342 fix bugs found by or avoid warnings from coverity scan 2021-02-26 15:55:20 -05:00
099dcedb7f correct docs 2021-02-26 15:54:20 -05:00
3042e28297 try to catch format errors from fmtlib 2021-02-26 14:08:38 -05:00
335a6308d0 update kim query example log file 2021-02-26 13:04:29 -06:00
e88c124da6 add extra cases for query unit test 2021-02-26 12:47:43 -06:00
820cd83713 use utils::strmatch instead of strchr 2021-02-26 12:47:21 -06:00
bb13ce4349 silence compiler warning 2021-02-26 11:35:26 -05:00
9503a089ef adapt kim_init code to use the utils::strfind() and drop using std::regex 2021-02-26 11:20:06 -05:00
272b89688e Merge branch 'master' into kim_citation 2021-02-26 10:51:15 -05:00
aea0ceac03 Merge pull request #2632 from akohlmey/utils-regex-update
Add new utils::strfind() function and update mini-regex code
2021-02-26 10:50:34 -05:00
9017d46235 Merge pull request #2629 from akohlmey/citeme-use-hash
Use a 64-bit hash in the CiteMe class to identify unique citations
2021-02-26 10:49:58 -05:00
e7c829e31e use correct data type for storing hashes 2021-02-26 09:49:06 -05:00
dfae88cf13 address spelling issues 2021-02-25 23:11:41 -05:00
533b406d77 add docs for utils::strfind() 2021-02-25 23:11:25 -05:00
cfc86f7a2d add unit tests for new utils::strfind() function 2021-02-25 23:05:48 -05:00
92d892aa2d add new utility function utils::strfind() 2021-02-25 23:03:17 -05:00
a9467e830e update regex code in utils to state of git repo of 2021-02-25 2021-02-25 23:02:46 -05:00
8e63f1ebf5 detect and abort if inconsistent body data for rounded polygon/polyhedra was provided 2021-02-25 18:26:20 -05:00
37086c391f use std::hash instead of a local crc32 implementation. 2021-02-25 18:15:09 -05:00
f92089298d Fix bug in AvgChunkReader and add docs 2021-02-25 16:56:19 -05:00
69245cb294 add unit tests for citeme class crc32 checks of unique citations 2021-02-25 15:52:38 -05:00
3d96d0a674 Fix wrong group name output in fix ave/chunk 2021-02-25 15:34:29 -05:00
977ba9ff66 Add LogFile and AvgChunkFile readers
Implements changes proposed in #144
2021-02-25 15:32:53 -05:00
0ad39757e2 Cleaning up legacy C-style string processing
Most of the C-style strcmp in the code are replaced with string for
simpler/safer/readable alternatives,
2021-02-25 13:55:24 -06:00
be81376426 use crc32 checksum instead of pointer addresses as unique id for citations 2021-02-25 14:45:17 -05:00
1d2c53b9dd remove redundant function call 2021-02-25 14:14:01 -05:00
4422bfbc7a bond/react: performance improvement 2021-02-25 14:04:56 -05:00
06091a95d2 use a safer utils::strmatch instead of strncmp 2021-02-25 10:11:26 -06:00
3f83adefa5 use a safer utils::strmatch instead of strncmp 2021-02-25 10:00:30 -06:00
9d2408754e use more conventional and thus more familiar way to avoid memory leak 2021-02-25 10:34:39 -05:00
441279d935 don't use custom debug library postfix for libOpenCL.a 2021-02-25 10:30:39 -05:00
42c1e264cb small cleanup in fix gpu 2021-02-25 10:30:26 -05:00
c16064d493 update kim examples log files 2021-02-25 08:23:26 -06:00
7d49773294 updating the kim citation report to lammps conventions 2021-02-25 08:22:36 -06:00
1fc284f3ed Correct fix wall/gran docs 2021-02-25 09:09:00 -05:00
f245467f32 Merge pull request #2290 from abhiShandy/improper-tester
Tester for dihedrals and impropers with their unit-tests
2021-02-25 08:46:53 -05:00
ed53e2bbff Add ignored Makefile.lammps in lib/nnp 2021-02-25 14:02:00 +01:00
0c583fff7d Allow for -DLAMMPS_BIGBIG compilation 2021-02-25 11:54:37 +01:00
03559dfe21 add tests for dihedral and improper style hybrid 2021-02-24 20:51:05 -05:00
dd0d06e373 fix a few more issues in USER-OMP and update indentation 2021-02-24 20:45:07 -05:00
a0a865643e add missing coefficiencts to data file. no more need to set afterwards 2021-02-24 20:42:25 -05:00
785e1ca9f5 add missing writedata=1 setting in constructor 2021-02-24 20:41:53 -05:00
8f3675344f fix bug not ported to USER-OMP version and adapt code style 2021-02-24 20:18:02 -05:00
09192d63a5 plug another memory leak 2021-02-24 19:56:12 -05:00
2d1dcc95a6 update refrence data for impropers 2021-02-24 19:49:42 -05:00
c401d21c38 update include statements to follow conventions 2021-02-24 19:49:11 -05:00
a910c08b57 correct input 2021-02-24 19:39:14 -05:00
9fbec51ac6 update reference data 2021-02-24 19:34:39 -05:00
bd7c37d539 CHARMM dihedral styles require a matching pair style. add code for that. 2021-02-24 19:34:15 -05:00
4245614c0d plug memory leaks 2021-02-24 19:15:02 -05:00
cf9255a90d avoid problems testing dihedrals and impropers 2021-02-24 18:37:58 -05:00
7efacdc911 correctly handle the case of n=1. clean up some ugliness 2021-02-24 18:37:39 -05:00
992d0e13aa Merge branch 'master' of github.com:lammps/lammps into pair-style-nnp 2021-02-24 23:37:21 +01:00
037441b502 More documentation, added citation in source 2021-02-24 23:35:21 +01:00
d81ca27e96 align tester sources with current state of other testers 2021-02-24 17:31:09 -05:00
c45658f1c7 Merge branch 'master' into improper-tester 2021-02-24 17:08:34 -05:00
e713a931d3 Added lots of docs, finished CMake script 2021-02-24 17:57:24 +01:00
e916c5d852 Merge pull request #2599 from weinbe2/snap-launch-bounds
Kokkos SNAP cleanup/optimizations --- templating, Kokkos::LaunchBounds, tuning
2021-02-23 21:53:07 -05:00
d2d6b63820 Merge branch 'master' of https://github.com/lammps/lammps into snap-launch-bounds 2021-02-23 20:55:39 -05:00
358c0a0c04 Merge pull request #2620 from yafshar/kim_commands
Refactor kim commands
2021-02-23 20:31:22 -05:00
c56f665c5b CMake files for finding n2p2 2021-02-23 23:35:18 +01:00
de14ece848 Merge pull request #2622 from rbberger/hip_corrections
Correct compilation of GPU package when using HIP
2021-02-23 16:14:17 -05:00
7d1670d91c cuda 11.0 does not support sm_86, it was added in 11.1 2021-02-23 14:23:54 -05:00
70ca055113 Add workaround to compile with HIP, new neighbor code still needs to be ported 2021-02-23 11:28:05 -05:00
2a0b7a26c0 Add missing cq() getter 2021-02-23 11:26:07 -05:00
446a068159 Use hipGetDeviceProperties to avoid int overflows 2021-02-23 10:14:05 -05:00
6ecbcc277b update death tests for removed commands 2021-02-23 09:59:24 -05:00
d44af3256d Fix lal_charmm.cu to support HIP compilation 2021-02-23 09:51:27 -05:00
8c9e9fa9ee add removed commands to Deprecated commands list and processing 2021-02-23 09:36:20 -05:00
293ebad98f Merge branch 'master' into kim_commands 2021-02-23 09:34:32 -05:00
ba1cb4218f update the label to prevent warning on duplicate label 2021-02-23 07:11:43 -06:00
7e411f2b12 New makefile in lib/nnp/ dir, updated Install.sh 2021-02-23 14:05:06 +01:00
464d9a01c5 apply utils::strdup() in a few more cases 2021-02-23 06:48:45 -06:00
120cdcd7f6 update the kim commands doc 2021-02-23 06:12:11 -06:00
d6380f2fd3 Set the skin and timestep default values
Set the skin and timestep default values as 2.0 Angstroms and 1.0
femtosecond for every unit system
2021-02-23 06:12:10 -06:00
906afd9a32 set the skin value to 2.0 Angstroms 2021-02-23 06:12:10 -06:00
fd9a568df4 clean up the kim command, remove unused targets and double used one to avoid warning 2021-02-23 06:12:10 -06:00
efa5eff85c Some minor changes to kim_commands.rst 2021-02-23 06:12:10 -06:00
9273a45d34 Revising kim command documentation. 2021-02-23 06:12:10 -06:00
31a878bcd6 remove the old kim commands 2021-02-23 06:12:10 -06:00
f04b8f525e naming update 2021-02-23 06:12:10 -06:00
9023847708 update the kim command name 2021-02-23 06:12:09 -06:00
f0fd379c70 update the kim command interface with the new changes 2021-02-23 06:12:09 -06:00
5c00162367 Adding extra cases for 'kim query command' 2021-02-23 06:12:09 -06:00
eea023321a Fix a minor mistake in variable name 2021-02-23 06:12:09 -06:00
2fb0506a43 Fix some typos in kim interface 2021-02-23 06:12:09 -06:00
d73ba9a3b4 Update the 'kim param' doc with the new interface 2021-02-23 06:12:09 -06:00
ad93c64fa6 update the kim command unittests to match with the new kim param interface 2021-02-23 06:12:08 -06:00
4af0714a8c Update the 'kim param' interface
Remove the dependency to 'kim init'. To get/set the parameter
values, pair style must be assigned. Must use 'kim interactions'
or 'pair_style kim' before 'kim param get/set'
2021-02-23 06:12:08 -06:00
21a78d8031 Corect the function name in lower case 2021-02-23 06:12:08 -06:00
9fc0753cef correct the reference to kim command 2021-02-23 06:12:08 -06:00
40e8f01aa6 correct the reference to kim command 2021-02-23 06:12:08 -06:00
0fdaf58610 correct the reference to kim command 2021-02-23 06:12:08 -06:00
a254d5b480 minor correction 2021-02-23 06:12:08 -06:00
aefd965065 update the intro for the kim command 2021-02-23 06:12:07 -06:00
0e46551632 Remove the old command interface and update the kim command as the only one 2021-02-23 06:12:07 -06:00
4cd42093a0 fixed the correct models for extra tests and update the command interface 2021-02-23 06:12:07 -06:00
3b9cbe4361 Update the kim command doc
Update the document with the latest interface changes. Replace the
discontinued models in the examples with the correct models. Test all
provided examples and fix the mistakes in them.
2021-02-23 06:12:07 -06:00
29926c4f71 update kim command unittests with extra test cases for kim param command 2021-02-23 06:12:07 -06:00
c139adf95b Fix the index for get argument and correct the string variable format 2021-02-23 06:12:07 -06:00
21a60235eb Fix a wrong indexing for optional explicit argument 2021-02-23 06:12:06 -06:00
a73f6f58ad Extra check to prevent illegal neighbor request esp, in unit conversion mode 2021-02-23 06:12:06 -06:00
ab05e9f5c1 update the log files for the kim command examples 2021-02-23 06:11:54 -06:00
6dbb0230c2 Updated documentation, cleaned source 2021-02-22 22:57:45 +01:00
ce4dc4e2c6 Merge pull request #2617 from akohlmey/build-opencl-loader
Build and link a static OpenCL ICD loader library by default instead of  system OpenCL lib
2021-02-22 13:37:17 -05:00
1bf2e18bcd Merge pull request #2614 from akohlmey/collected-small-changes
Collected small changes and bugfixes
2021-02-22 13:31:37 -05:00
2378850085 Merge pull request #2616 from jrgissing/bond/react-updates
Bond/react updates
2021-02-22 11:12:57 -05:00
910c78449b Merge pull request #2618 from rbberger/pylammps_history
Make PyLammps command history feature optional
2021-02-22 10:57:51 -05:00
f3ee948450 need to use column 1 in fix ave/time example 2021-02-22 07:10:35 -05:00
f467832e0f Make PyLammps command history feature optional
PyLammps so far has been saving a history for every executed command.  This was
originally added to allow writing out the commands of interactive PyLammps
sessions as regular input scripts.

This commit disables this history by default, which avoids the small, but
rising memory consumption over time. It can be enabled and disabled with the
enable_cmd_history property. There is also now a method to clear the history
at any time.
2021-02-22 01:29:50 -05:00
4786391fad must explicitly register fix gpu 2021-02-21 20:40:11 -05:00
af974c2aba Added pair_nnp documentation 2021-02-22 00:29:10 +01:00
e0e89c588b correct library prefix name use also for building libyaml 2021-02-21 17:11:38 -05:00
db95552f2b update md5sum for updated archive (again) 2021-02-21 16:42:30 -05:00
1a68d761a3 correct how to construct the path to the generated OpenCL lib 2021-02-21 16:21:45 -05:00
06f6766ed6 CMAKE_FIND_LIBRARY_PREFIXES is a path. must use plain "lib" instead, but there is a variable for the suffix 2021-02-21 16:20:36 -05:00
826c618aa9 replace a few more cases of atoi()/atof() with utils::*numeric() functions 2021-02-21 15:09:50 -05:00
0c6671ad64 do not always add styles that depend on other packages 2021-02-21 11:06:58 -05:00
24079e9302 update docs 2021-02-21 10:45:01 -05:00
70327861b2 update for improved OpenCL stub driver with tests 2021-02-21 09:43:56 -05:00
d025b281cf Build and link a static OpenCL loader library for all platforms 2021-02-21 01:28:44 -05:00
d5917652d4 remove output that is no longer necessary. settings are adapted automatically 2021-02-20 23:50:55 -05:00
d9941b1648 Update in.tiny_nylon.stabilized_variable_probability 2021-02-20 20:29:39 -05:00
196b6b9273 variable probability fix 2021-02-20 20:22:53 -05:00
28207f15b8 Switch to forward declaration in header pair_nnp.h 2021-02-21 00:13:52 +01:00
4442f38bed Inclusion of n2p2 interface files
- github.com/CompPhysVienna/n2p2 commit 2f05836
- example modified (less atoms)
2021-02-20 23:04:13 +01:00
7d9187cff8 eval reaction prob after constraints check 2021-02-20 16:24:24 -05:00
80ae5ba7ac refactor constraints check 2021-02-20 15:14:42 -05:00
a98177c366 ring_check refactor 2021-02-20 15:07:50 -05:00
f0f5962676 Merge pull request #2615 from wmbrownIntel/user-intel-hyb-fix
Fix for hybrid pair style with certain combinations of USER-INTEL styles
2021-02-20 07:48:09 -05:00
231a495129 Merge pull request #2610 from wmbrownIntel/gpu-omp-threads
Fixing issue from recent GPU package update with OMP_NUM_THREADS env …
2021-02-20 00:52:05 -05:00
421eb5df0e Merge pull request #2613 from lammps/ssao_bugfix
Fix bug in dump image SSAO depth shading
2021-02-19 18:47:41 -05:00
0f23036450 Merge pull request #2612 from rbberger/small_fixes
Use mallinfo2 with glibc >= 2.33
2021-02-19 18:29:17 -05:00
0a355c0194 Fix bug in dump image ssao depth shading 2021-02-19 15:20:09 -07:00
99ff0bb4d2 fix cut-n-paste bug 2021-02-19 16:57:49 -05:00
d36df19a2d Use mallinfo2 with glibc >= 2.33 2021-02-19 13:22:35 -05:00
fd67f83bb7 replace atoi() with utils::inumeric() 2021-02-19 10:27:31 -05:00
a40db8ddf1 Fix for hybrid pair style with certain combinations of USER-INTEL styles.
Specifically, fixes issue where memory was not zeroed correctly with a hybrid
pair style including an intel variant and a non-intel variant combined with
intel variant(s) of non-pair styles.
2021-02-19 05:59:25 -08:00
ab9552b63a Adding some notes about KOKKOS thread settings to the package doc. 2021-02-19 05:55:37 -08:00
45c782308c Fixing issue from recent GPU package update with OMP_NUM_THREADS env being overridden in GPU library.
Fixing race condition with OpenMP for GPU styles using torque (missed in regression tests due to the first fix)
Documenting GPU package option for setting the number of threads (consistent with USER-INTEL and USER-OMP).
2021-02-18 21:08:18 -08:00
53fdaa5741 Merge pull request #2603 from wmbrownIntel/gpu-updateFeb2021
GPU Package Update February 2021
2021-02-17 19:04:55 -05:00
45f6e9ec2e whitespace 2021-02-17 18:47:41 -05:00
f367e66aba documentation corrections, spelling fixes and updates 2021-02-17 18:47:35 -05:00
e575c5fa29 -fopenmp implies -fopenmp-simd 2021-02-17 18:30:02 -05:00
97f36d31d6 Merge pull request #2609 from akohlmey/collected-small-changes
Python MPI compatibility improvements
2021-02-17 18:03:08 -05:00
1e5a73c468 silence warnings when using default OpenCL headers. Pick OpenCL v2.1 as default. 2021-02-17 17:36:35 -05:00
1f109b0db2 update unittest for lammps_config_has_mpi() change 2021-02-17 15:50:45 -05:00
0c34810518 lmp.mpi4py will always be false if LAMMPS has been compiled without MPI support 2021-02-17 15:29:33 -05:00
db841dd412 correct return value when no packages are installed 2021-02-17 15:28:44 -05:00
1552b0d1d6 update/correct documentation for changes to the STUBS library and its implications 2021-02-17 15:19:24 -05:00
61585b1eb6 make MPI STUBS a C++ library so its symbols won't collide when loading a real MPI library 2021-02-17 15:02:02 -05:00
0a06b90b53 template for smooth/spu 2021-02-17 15:33:28 +03:00
742eebec2d support checking the size of MPI communicators and fail if LAMMPS and mpi4py have a mismatch 2021-02-16 20:22:18 -05:00
f929e57261 avoid loading mpi4py if the LAMMPS executable has been built without MPI 2021-02-16 14:38:03 -05:00
286a15c452 Merge pull request #2604 from akohlmey/collected-small-changes
Correct a few small issues
2021-02-16 14:32:31 -05:00
57b630acbb update documentation for building the manual with PIP_OPTIONS settings 2021-02-16 12:32:37 -05:00
b37ae4aea6 propagate PIP_OPTIONS change to CMake doc build module 2021-02-16 12:26:59 -05:00
039ed4c750 Fixing example input scripts with mode multi 2021-02-16 10:24:15 -07:00
395f6f6107 Merge branch 'master' into collected-small-changes 2021-02-16 12:16:14 -05:00
4fdc7a1362 Merge pull request #2602 from ellio167/fixup_kim_cmake
Fixup errors/issues in cmake/Modules/Packages/KIM.cmake
2021-02-16 12:15:44 -05:00
4af8de3287 Merge pull request #2600 from jrgissing/bond/react-same-type-initiators-fix
bond/react: same-type initiators fix
2021-02-16 12:14:22 -05:00
f6454dce64 Merge pull request #2601 from rbberger/update_python_docs
Fix docs of python module after refactor
2021-02-16 12:07:20 -05:00
7bdbdad271 Update mliap_model_nn.cpp 2021-02-16 14:07:16 -03:00
e7a37877c0 apply changes to doc Makefile to limit the impact of SNL network config changes 2021-02-16 11:40:25 -05:00
96643cc5ec Updating README file 2021-02-16 12:31:29 -03:00
2512b3b942 Adding nn model 2021-02-16 12:28:11 -03:00
9713c11d6c Original MLIAP 2021-02-16 12:27:12 -03:00
7b943948ea Point users to the LAMMPS GitHub Releases page for downloading archives 2021-02-16 06:51:50 -05:00
721c6d96cc Removing Makefile.opencl from lib/gpu 2021-02-16 00:36:37 -08:00
775446b60f Add GERYON_NUMA_FISSION define in CMake 2021-02-16 15:03:17 -05:00
d85a5e3290 Remove OCL_TUNE option in CMake
The GPU package now auto-detects these settings.
2021-02-16 14:57:10 -05:00
224da33b22 Add missing fix_nh_gpu files to CMake build 2021-02-16 12:29:50 -05:00
44ab383917 Remove duplicate line in GPU/Install.sh
Otherwise, after running

$ make yes-all
$ make no-lib

the generated Makefile.package would still contain the LMP_GPU define
2021-02-16 11:14:22 -05:00
515da32215 Fixup errors/issues in cmake/Modules/Packages/KIM.cmake 2021-02-15 16:00:47 -06:00
e2c32d12a4 Feb2021 GPU Package Update - Documentation Files 2021-02-15 11:07:43 -08:00
d256614c9f Fix docs after PR #2592 2021-02-15 13:19:25 -05:00
d3123dd5c3 Feb2021 GPU Package Update - Core LAMMPS Files 2021-02-15 08:37:38 -08:00
e7e2d2323b Feb2021 GPU Package Update - GPU Package Files 2021-02-15 08:20:50 -08:00
74fe20b9a9 Update affiliations 2021-02-15 15:05:40 +01:00
fddb62d0af Update affiliation in fep 2021-02-15 15:00:34 +01:00
6571f238f6 Merge branch 'master' into fep 2021-02-15 14:03:10 +01:00
7584fbb28f Updating fep examples 2021-02-15 13:34:22 +01:00
1fc3fe108e Update mliap_model.cpp 2021-02-13 19:27:29 -03:00
91f74cf956 permissions! 2021-02-13 20:48:31 +00:00
a60853cca6 memory leak
introduced in recent 'create atoms' feature
2021-02-13 14:39:28 -05:00
389f8b040d Testing examples 2021-02-12 20:09:28 -03:00
b165d5a7ed Update mliap_model.cpp 2021-02-12 13:03:24 -03:00
2aa326c827 bond/react: same-type initiators fix
previously, if/when a reaction happens could depend on the order of listed initiator atoms, if they have the same type, in some cases
2021-02-12 10:56:48 -05:00
6bbda594b1 Update mliap_model_nn.cpp 2021-02-12 12:18:44 -03:00
8f55701da8 adding 'kim query' command examples 2021-02-12 08:03:32 -06:00
90e748aa5c Update the 'kim query' unittest
Update the unittest with the latest extension.
Replace the discontinued model of
`EAM_Dynamo_Mendelev_2007_Zr__MO_848899341753_000`
and replace it with the identical version,
`EAM_Dynamo_MendelevAckland_2007v3_Zr__MO_004835508849_000`
2021-02-12 08:03:32 -06:00
7c102a6096 Extend the 'kim query' command
Extend the 'kim query' command to get all available models meeting
certain requirements. To query for KIM models the query function
is `get_available_models`. Now, the 'kim query' works with the `model`
argument and can also be used with no 'kim init' call requirement.
2021-02-12 08:03:32 -06:00
12a9b6165a remove old log files 2021-02-12 08:03:32 -06:00
10a48f18d0 update kim command examples 2021-02-12 08:03:21 -06:00
6769ded03c update the unittests with the latest interface changes 2021-02-12 06:16:34 -06:00
7d7c433fd7 update the error messages to 'kim query' and clean up the code 2021-02-12 06:16:33 -06:00
a859643bac update the error messages to 'kim property' and clean up the code 2021-02-12 06:16:33 -06:00
2d9dcf4e8d clean up and add extra space after comma 2021-02-12 06:16:33 -06:00
265650d97c update the error messages to 'kim param' and clean up the code 2021-02-12 06:16:33 -06:00
98e734845e clean up and add extra space after comma 2021-02-12 06:16:33 -06:00
e5efe21d90 update the error messages to 'kim interactions' and clean up the code 2021-02-12 06:16:33 -06:00
c36a52a8f9 clean up and add extra space after comma 2021-02-12 06:16:33 -06:00
c3393cfc4b update the error messages to 'kim init' and clean up 2021-02-12 06:16:32 -06:00
dac21e5c76 using unique_ptr to prevent memory leak 2021-02-12 06:16:32 -06:00
0c5b3bc611 clean up and remove unnecessary comments 2021-02-12 06:16:32 -06:00
856c9064fb prototype implementation for KIM wrapper command by @akohlmey 2021-02-12 06:16:19 -06:00
45ba0bd313 refactor kim commands by @akohlmey 2021-02-12 06:15:06 -06:00
a742935817 change version strings to 10 Feb 2021 2021-02-12 06:15:06 -06:00
bd547a3c42 Step version strings for next patch release 2021-02-12 06:15:05 -06:00
d83827508f use neighbor->nrequest to be safer, since neighbor->nlist may be larger 2021-02-12 06:15:05 -06:00
258452d1d4 whitespace 2021-02-12 06:15:05 -06:00
7da64cba89 fix issues with multiple uses of create_bonds command 2021-02-12 06:15:05 -06:00
89011570e9 Update MLIAP 2021-02-11 17:59:02 -03:00
8dee6cee8d remove style files from src 2021-02-11 09:25:42 -06:00
f165fdb61d remove all files from src that are in src/USER-RANN 2021-02-11 08:48:00 -06:00
417e92bc2d Axels requested revisions 2021-02-11 08:43:04 -06:00
f705d49d45 reformat docs, correct spelling errors, and update false positives list 2021-02-11 09:17:14 -05:00
7f8e8c635c create new reference log files 2021-02-11 08:01:43 -05:00
d371278765 correct dump style cfg label generation 2021-02-11 07:54:28 -05:00
c583ad6dc4 Merge branch 'master' into charge_regulation2 2021-02-11 07:53:29 -05:00
6c2abf4739 update fix charge/regulation input example to follow LAMMPS conventions closer 2021-02-11 07:53:19 -05:00
676191f330 various cosmetic changes
- print warnings only on MPI rank 0
- use the fix name charge/regulation consistently
- use domain->prd_half for half box length instead of computing it
- use utils::inumeric() to guarantee integer charge input
- LAMMPS coding style adjustments
2021-02-11 07:50:47 -05:00
9671ba7900 silence compiler warnings 2021-02-11 07:05:28 -05:00
8ee693204a use nullptr instead of NULL to initialize pointers 2021-02-11 07:05:07 -05:00
faa2407aa4 plug memory leak 2021-02-11 07:04:19 -05:00
87fad6b82e Merge branch 'master' into snap-launch-bounds 2021-02-10 22:29:46 -05:00
334c0d9969 Fix compiler error uncovered by a host-only Kokkos build 2021-02-10 22:26:40 -05:00
16004e8f45 Merge pull request #2587 from akohlmey/next-patch-version
Step version strings for next patch release
2021-02-10 21:30:20 -05:00
8eb79cf329 Merge pull request #2596 from lammps/create-bonds-bugs
fix issues with multiple uses of create_bonds command
2021-02-10 20:35:55 -05:00
5c415a1ba3 use neighbor->nrequest to be safer, since neighbor->nlist may be larger 2021-02-10 20:14:19 -05:00
697f82c145 whitespace 2021-02-10 18:40:25 -05:00
cb7e68644f fix issues with multiple uses of create_bonds command 2021-02-10 16:21:25 -07:00
11d99d9513 Merge pull request #2545 from akohlmey/citation-refactor
Refactor citation handling in LAMMPS
2021-02-10 18:19:21 -05:00
f8a5991416 rearrange output a little bit 2021-02-10 17:43:18 -05:00
8e8ef0cf63 Re-tune tile size for Kokkos SNAP ComputeYi/Zi. 2021-02-10 16:51:06 -05:00
4ee614b5c2 fix whitespace 2021-02-10 16:16:09 -05:00
ca39dea58b Various cleanup in Kokkos SNAP, replacing verbose Kokkos MDRangePolicy and TeamPolicy types with simpler using definitions. No performance implications. 2021-02-10 16:07:11 -05:00
dd2fc5df62 Introduction of Kokkos::LaunchBounds in Kokkos SNAP. 2021-02-10 15:40:22 -05:00
fc572a0ca8 Cleanup of "magic" numbers in Kokkos SNAP, making team and tile sizes static constexpr int in a centralized place. Various other cleanup. 2021-02-10 15:16:06 -05:00
6adcb4f5b9 Merge pull request #2594 from lammps/voigt-doc
Voigt documentation
2021-02-10 15:08:11 -05:00
d237550854 Replace runtime direction in Kokkos SNAP ComputeFusedDeidrj with compile time templated version. 2021-02-10 14:33:52 -05:00
95a4ac157b update a few more comments 2021-02-10 14:27:17 -05:00
60113a6ddf Applied edits/optimizations suggested by Axel. Further simplifified/fixed MC acceptance equations, few clarifications to documentation. 2021-02-10 13:24:30 -06:00
006de01c05 update false positives list for spell checking 2021-02-10 12:20:04 -05:00
6c1f1df7e2 Merge pull request #2592 from akohlmey/fix-python-issues
Fix a few python module/interface issues with python2.x
2021-02-10 12:02:19 -05:00
5fecd9ed72 more Voigt clarifications 2021-02-10 09:58:53 -07:00
761527e563 clarified Voigt ordering and non-Voigt ordering for virial[6] 2021-02-10 09:55:28 -07:00
11341a5b66 enforce documented Python version requirement for MLIAP with Python 2021-02-10 08:57:14 -05:00
bbb355b1f5 check error status of calls to Python and if they failed print error and terminate 2021-02-10 00:29:39 -05:00
71139ffc9c change version strings to 10 Feb 2021 2021-02-09 21:34:08 -05:00
2dd3b368cd do not install mliap python support for python 2.x 2021-02-09 20:57:08 -05:00
fff1c0c9a7 rename numpy.py to numpy_wrapper.py to avoid lookup conflicts with python2.7 2021-02-09 20:56:33 -05:00
2beef8580a Merge pull request #2589 from akohlmey/check-python-version-match
Add version check for liblammps vs. python module
2021-02-09 16:22:20 -05:00
cc8d435502 Merge pull request #2591 from akohlmey/collected-small-changes
Correct some inconsistencies
2021-02-09 15:09:12 -05:00
903433d9dd use datetime module to convert string date to numeric date 2021-02-09 14:22:37 -05:00
62a152e4a2 get version number from package version instead of rewriting the __init__.py file 2021-02-09 14:13:18 -05:00
e7bcd1ea43 must purge python/build folder so we don't inherit outdated files 2021-02-09 14:12:43 -05:00
f92e07185b initialize arrays for per-level gridcomm buffers to NULL 2021-02-09 13:21:04 -05:00
418135667f address a whole bunch of spelling issues that suddenly popped up. 2021-02-09 12:38:46 -05:00
653c296246 document __version__ module member and version check 2021-02-09 12:29:14 -05:00
65affd6f12 Merge branch 'master' into check-python-version-match 2021-02-09 11:44:29 -05:00
e706f75d17 fix permissions 2021-02-09 11:44:26 -05:00
5646714470 update example inputs and logfile for fix_modify energy yes/no changes, where needed 2021-02-09 11:01:34 -05:00
1e3b63c335 add demonstration of using r-RESPA with a FG/CG sites split 2021-02-09 10:15:42 -05:00
e054b6c1d2 reformat and improve grammar 2021-02-09 09:49:45 -05:00
b75f046146 update pair_coeff in lj/relres unit test to FG and CG atoms 2021-02-09 09:47:32 -05:00
12e8b9eb8b include references to USER-OMP accelerator variant 2021-02-09 09:40:23 -05:00
2773bd7276 add multi-thread version of lj/relres 2021-02-09 09:24:19 -05:00
270a0dfaf6 reformat to use LAMMPS coding style 2021-02-09 09:19:28 -05:00
caf8e14e57 should use ev_init() not ev_setup() 2021-02-09 09:18:56 -05:00
dc61cc39fc rearrange include files 2021-02-09 09:18:43 -05:00
d26c744e54 should use ev_init() not ev_setup() 2021-02-09 09:17:08 -05:00
23acba4184 add simple pair style unit test input 2021-02-09 08:42:47 -05:00
1cbb37b92c clean up input and replace log with logs following LAMMPS conventions 2021-02-09 08:42:31 -05:00
9e25dff8b8 do not include generated files in git repo 2021-02-09 08:42:03 -05:00
29eb700615 whitespace 2021-02-09 08:27:29 -05:00
cd31c99c68 update false positives for added docs 2021-02-09 08:27:19 -05:00
0687ac79c6 fix LaTeX typesetting of equation that was broken with MathJax and pdfLaTeX 2021-02-09 08:27:07 -05:00
69f5d840df New pair style lj/relres 2021-02-09 07:29:38 -05:00
b53b993c68 recover in-place usage by defaulting to version 0 and changing it back after installation 2021-02-09 02:12:37 -05:00
09edb26101 Merge pull request #2586 from akohlmey/collected-small-changes
Final small changes and bugfixes for the patch release.
2021-02-09 01:10:51 -05:00
86b3e8ba2a fix permisssions 2021-02-09 00:52:17 -05:00
7f338a17af fix whitespace 2021-02-09 00:42:30 -05:00
2d1f9646a3 update src/.gitignore 2021-02-09 00:40:55 -05:00
7826b58f73 add check to lammps python module to check consistent versions between module and shared library 2021-02-09 00:38:17 -05:00
1b48ac0eaf Merge branch 'master' into collected-small-changes 2021-02-08 22:46:21 -05:00
db26902393 Merge pull request #2560 from lammps/thermo-energy
Standardize fix contributions to energy and virial, remove THERMO_ENERGY mask
2021-02-08 22:45:23 -05:00
d2b3677d6f whitespace fixes 2021-02-08 21:45:58 -05:00
11866dfcb4 avoid segfault when accessing fix compute data before the fix is initialized 2021-02-08 21:20:25 -05:00
82dc03ab3d update examples and log files for cases affected by the fix_modify changes 2021-02-08 21:17:52 -05:00
6f08e81bf8 don't access uninitialized data and avoid shadowing a class member variable 2021-02-08 20:19:22 -05:00
5e55ab0e9b silence compiler warnings 2021-02-08 20:19:01 -05:00
72ce5c6238 Merge branch 'thermo-energy' of github.com:lammps/lammps into thermo-energy 2021-02-08 20:04:46 -05:00
a6aabc0a93 fix typo 2021-02-08 20:03:13 -05:00
56ae498814 reduce memory leakage in kspace style msm 2021-02-08 17:27:54 -05:00
c5bb414c37 remove dead code 2021-02-08 17:26:39 -05:00
0797d15219 Merge branch 'thermo-energy' of github.com:lammps/lammps into thermo-energy 2021-02-08 14:15:00 -07:00
6909cf9dd5 Uncomment Kokkos code 2021-02-08 14:14:38 -07:00
d42a165ccf Merge branch 'master' into collected-small-changes 2021-02-08 15:33:22 -05:00
33939a0e26 Merge branch 'master' into thermo-energy
# Conflicts:
#	doc/src/fix_ti_spring.rst
#	src/RIGID/fix_rigid_small.cpp
#	src/fix_langevin.cpp
#	src/fix_temp_berendsen.cpp
#	src/fix_temp_csld.cpp
#	src/fix_temp_csvr.cpp
#	src/fix_temp_rescale.cpp
#	src/thermo.cpp
2021-02-08 15:24:29 -05:00
58e4938b0f Updating examples, updating multi in info, fixing memory issues in comm/neighbor 2021-02-08 10:50:57 -07:00
ca1a5731e7 remove files left behind by accident 2021-02-08 12:32:27 -05:00
3d46b084e8 must include LAMMPS_MACHINE suffix when installing python package 2021-02-08 11:08:00 -05:00
b8282a1152 search for python 3.9 as preferred version as well 2021-02-08 11:07:13 -05:00
a3a84c4493 Merge pull request #2584 from jrgissing/bond-react_create_atoms
Bond/react: create atoms
2021-02-08 10:44:36 -05:00
01a05b88b4 avoid memory leak in unit test fixture 2021-02-08 10:43:18 -05:00
c810cda64c must free MPI communicators created by MPI_Comm_split() 2021-02-08 10:40:20 -05:00
92605393f7 correct initialization and memory leaks issues detected by valgrind 2021-02-08 10:39:59 -05:00
de1205c5a9 Fixing misc valgrind issues, particularly with resizing ncollections 2021-02-07 20:38:24 -07:00
9cdacbdebd apply cast to first variable in sequence of multiplications 2021-02-07 21:18:54 -05:00
952216033e Adding correct masks to kokks/user-dpd nbin classes 2021-02-07 13:33:11 -07:00
06e484d3e0 make flags for supporting GPU archs consistent, add ampere consumer GPU arch 2021-02-07 15:30:55 -05:00
5a4c45f2ea Fixing bitmasks and removing method again 2021-02-07 13:02:45 -07:00
05f02fbc32 Removing setup method and adding correct nbin bitmask 2021-02-07 12:49:12 -07:00
880b40e104 Adding setup_bins() method to nbin_intel.cpp 2021-02-07 10:44:51 -07:00
8134296311 fix typo 2021-02-07 09:39:07 -05:00
7c1569459c Step version strings for next patch release 2021-02-06 18:28:18 -05:00
5573d01079 Use typecast to silence CodeQL warnings 2021-02-06 18:18:52 -05:00
1609c498bc avoid integer overflow when computing memory usage 2021-02-06 18:15:48 -05:00
779bbd0853 avoid overflows when computing time or timestep related values 2021-02-06 18:15:24 -05:00
77402bdbc8 avoid overflows when computing memory offsets and allocating memory 2021-02-06 18:14:27 -05:00
1380b7b142 replace (temporary) long double with double. 2021-02-06 18:04:41 -05:00
65a82bb585 Adding new example 2021-02-06 12:57:19 -07:00
4421843604 fixed Latex doc error #2 2021-02-05 19:00:33 -06:00
2f5588733b fixed doc Latex error 2021-02-05 18:47:04 -06:00
26037982bc convert to double early when computing memory usage 2021-02-05 19:42:40 -05:00
12f49c4c89 avoid overflow when computing memory address offsets on 64-bit machines 2021-02-05 19:42:07 -05:00
e223ea3784 cast timestep related expressions to bigint before they can overflow 2021-02-05 19:41:17 -05:00
5036adeff0 timestep processing functions must use bigint instead of int 2021-02-05 19:23:05 -05:00
c4ef85ba22 Updating to master 2021-02-05 17:01:32 -07:00
c94a740b4e Updating examples 2021-02-05 16:43:52 -07:00
0bc31fad09 header file minor cleanup 2021-02-05 17:03:15 -06:00
d62ba49f1a added minor comments 2021-02-05 16:57:00 -06:00
9995bef911 file permissions 2021-02-05 17:50:23 -05:00
6d862569ea Updated emails 2021-02-05 16:24:55 -06:00
19811077b7 fix strdup() vs utils::strdup() bug 2021-02-05 17:16:38 -05:00
606b33ea03 Added fix_charge_regulation source code and documentation. 2021-02-05 16:05:37 -06:00
960713be3b make recent change to fix ti/spring docs use mathjax 2021-02-05 17:01:28 -05:00
c74c3b3f22 update docs for mention CUDPP and MPS support with conventional make 2021-02-05 16:50:59 -05:00
fc8b8d8825 disallow use of CUDPP with CUDA multiprocessor server 2021-02-05 16:44:26 -05:00
754a469a01 add variable for handling cuda-mps-server 2021-02-05 16:43:51 -05:00
4166235be6 synchronize settings with CMake support 2021-02-05 16:43:18 -05:00
ba8f7bf3d8 address argument indexing bug reported by stan 2021-02-05 13:56:47 -05:00
47783aaa9c whitespace 2021-02-05 13:56:06 -05:00
6e11dee2f1 Merge branch 'master' into citation-refactor
# Conflicts:
#	doc/src/fix_bond_react.rst
2021-02-05 13:42:23 -05:00
5d75ae98a8 Merge pull request #2583 from akohlmey/replace-strstr-w-strmatch
Simplify some internal string processing
2021-02-05 13:34:24 -05:00
1da995d2e3 Merge pull request #2580 from akohlmey/collected-small-changes
Collected small changes for the next patch release
2021-02-05 10:32:07 -05:00
89e47e7aae memory fix 2021-02-04 22:31:15 -05:00
dde3a8cebb update log files 2021-02-04 21:00:46 -05:00
9a0805529c rename example files 2021-02-04 20:25:26 -05:00
bd1cc91bdd update create atoms example 2021-02-04 20:20:18 -05:00
cf140e7893 another case where using utils::strdup() reduces code massively. 2021-02-04 18:19:57 -05:00
8d68623b35 silence compiler warnings with IBM XL compilers 2021-02-04 18:08:41 -05:00
cf427bcad8 apply utils::strdup() in a few more cases 2021-02-04 17:52:32 -05:00
5c8bbb42f6 replace variable name "string" with "text" to avoid confusion with std::string 2021-02-04 17:33:54 -05:00
24bf1e5b0c make use of utils::strdup() 2021-02-04 17:33:02 -05:00
ab697be9e7 simplify using fmtlib 2021-02-04 17:00:27 -05:00
0f07215a2b add utils::strdup() convenience function 2021-02-04 17:00:02 -05:00
c129259854 rebase correction 2021-02-04 15:49:16 -05:00
f5bf10e00f remove dead code 2021-02-04 15:34:56 -05:00
e5ead83c8f near->overlap keyword update 2021-02-04 15:33:45 -05:00
4e791ac4f7 replace 'strstr(xxx,"x_") == xxx' with utils::strmatch("^x_") 2021-02-04 15:20:43 -05:00
1e8d57c207 Merge pull request #120 from lammps/master
rebase
2021-02-04 13:02:09 -07:00
8c742fee3e Merge branch 'lammps-master' into bond-react_create_atoms
rebase
2021-02-04 14:59:26 -05:00
2bc2140ed9 Merge branch 'master' of https://github.com/lammps/lammps into lammps-master 2021-02-04 14:58:52 -05:00
11b2a1e1ac reorder package names to be in 2 groups (non-user, user) and each sorted alphabetically 2021-02-04 14:58:49 -05:00
3e07711739 simplify using C++11 syntax 2021-02-04 14:35:39 -05:00
dadea34663 reformat comment 2021-02-04 14:35:39 -05:00
5e29cba076 replace Get_Time() with MPI_Wtime() 2021-02-04 14:35:39 -05:00
95e2214d96 more typecasts to double to avoid 32-bit int overflows when computing memory usage 2021-02-04 14:35:38 -05:00
49ea762300 Merge pull request #2571 from akohlmey/arg-info-class
Add ArgInfo class for simpler processing of compute, fix, and variable references
2021-02-04 14:32:34 -05:00
de5ba601f2 Update fix_bond_react.rst
manual rebase
2021-02-04 13:41:58 -05:00
96f67ebeaa Merge pull request #2582 from ellio167/pair_kim_refactor
Small pair kim refactor to better support multiple run commands with different models
2021-02-04 13:27:06 -05:00
5256631bee test for correctly supporting the use of multiple calls to pair_style kim 2021-02-04 11:28:38 -06:00
302be3f946 Fix typo 2021-02-04 10:09:14 -06:00
8da3bc9144 Increment instance_me in pair_kim to ensure neighbor correct list updates 2021-02-04 09:47:29 -06:00
c9cf8b57f4 Fix behavor of a 2nd call to 'pair_style kim ...' & a bug for parameter changes 2021-02-04 09:45:08 -06:00
8574a417fb Merge pull request #2579 from lammps/fix-ti-spring-doc
Clarify one of the outputs of fix ti/spring
2021-02-04 05:50:35 -05:00
c6c9c82f96 ID strings are immutable, so make them const char * arguments 2021-02-03 21:13:54 -05:00
9f7dc78f86 convert a few more styles to use ArgInfo 2021-02-03 21:06:23 -05:00
9fa1688f39 small corrections for dump custom 2021-02-03 21:06:04 -05:00
04a46bfd99 Merge remote-tracking branch 'github/master' into arg-info-class 2021-02-03 17:43:49 -05:00
4b15ffcf14 more use of ArgInfo class 2021-02-03 17:43:39 -05:00
91d913b7ee Merge pull request #2576 from akohlmey/collected-small-changes
Collected small changes for the next patch release
2021-02-03 17:08:04 -05:00
1ee27e2bc2 clarify one of the outputs of fix ti/spring 2021-02-03 15:01:35 -07:00
a700e506ae use utils::strmatch(name,"^x_") instead of (strstr(name,"x_") == name) 2021-02-03 16:50:19 -05:00
2f7d6672df more files with ArgInfo support added 2021-02-03 16:39:01 -05:00
f745d5d7be continue adding ArgInfo support 2021-02-03 10:52:16 -05:00
56841ba912 Fixing typo in pair gran, fixing bugs in communication and neighbor 2021-02-02 18:05:19 -07:00
4eb143bfee fix another border communication issue in KOKKOS version of atom style dpd 2021-02-02 17:27:29 -05:00
e2e6639013 add typecast to avoid (unlikely but possible) integer overflows.
this will silence a lot of static code analysis warnings
2021-02-02 17:27:04 -05:00
852e4efc6f Updating documentation/examples, patching comm_modify cutoff/multi command 2021-02-02 14:50:30 -07:00
5196926c28 remove meaningless typecast 2021-02-02 14:36:37 -05:00
1da3ba87f4 use -mpicolor flag as documented (and not -mpi). closes #2575 2021-02-02 14:12:46 -05:00
0676c953c0 Removing stray file 2021-02-02 09:41:50 -07:00
d79a2c3a02 Adding collection array, new user arguments, and multi communication 2021-02-02 09:39:13 -07:00
4404469f5c run GitHub actions only on merges/pushes to master to save minutes 2021-02-02 11:38:24 -05:00
85539765d0 update docs about thermo_modify flush 2021-02-02 11:37:08 -05:00
c2c8c5e493 Merge remote-tracking branch 'github/master' into arg-info-class
# Conflicts:
#	src/compute_chunk_atom.cpp
#	src/compute_chunk_spread_atom.cpp
#	src/compute_reduce.cpp
#	src/compute_reduce_region.cpp
#	src/compute_slice.cpp
#	src/fix_ave_atom.cpp
2021-02-02 11:33:01 -05:00
4d98d9f6aa add arginfo to fix saed/vtk 2021-02-02 11:29:08 -05:00
f2479e7d05 Merge pull request #2401 from lammps/configure-github-actions
Enable CodeQL static analysis and integration and unit tests on MacOS via GitHub actions
2021-02-02 10:27:25 -05:00
bfe64629fd switch to do CodeQL analysis and Unittest on MacOS. currently for PRs and master 2021-02-01 20:32:24 -05:00
6d836d8f30 run documentation actions in parallel 2021-02-01 20:32:24 -05:00
a83fe46860 spelling target needs conf.py 2021-02-01 20:32:19 -05:00
88e182da64 speed up compilation for static code analysis by switching to debug build type and turning off optimization 2021-02-01 20:31:37 -05:00
b15555724d combine analysis and simplify 2021-02-01 20:31:37 -05:00
0be1a419c7 split codeql workflow into two files as no compilation is needed for python 2021-02-01 20:31:37 -05:00
60a11b9ea1 do parallel compilation 2021-02-01 20:31:36 -05:00
c11bd658fc Add documentation and style check workflow 2021-02-01 20:31:36 -05:00
9ca0653c3e add CodeQL static code analysis workflow 2021-02-01 20:31:36 -05:00
1a7cb4647f Merge pull request #2569 from akohlmey/collected-small-changes
Collected small changes for the next patch release
2021-02-01 20:18:48 -05:00
2ee701f719 also flush screen stdio buffer with thermo_modify flush yes 2021-02-01 18:43:42 -05:00
2b44d67128 consistent dependencies for targes in "doc" folder makefile 2021-02-01 18:13:00 -05:00
179fbe6172 Merge pull request #2572 from akohlmey/consistent-invoked
Move definition of INVOKED_* constants as enumerator to compute.h
2021-02-01 17:52:57 -05:00
9a419154fa whitespace 2021-02-01 10:15:06 -05:00
5c3b88d938 whitespace 2021-02-01 10:14:31 -05:00
0e9c44d155 IDs are immutable strings 2021-02-01 10:12:13 -05:00
55da46f3e3 add ArgInfo support to some dump styles 2021-02-01 10:12:03 -05:00
fae6fef1ac add tests for DNAME/INAME argument references 2021-02-01 09:39:13 -05:00
3b9f3d989e IDs are immutable strings 2021-02-01 09:08:07 -05:00
660572a0e6 add support for processing "d_" and "i_" for DNAME and INAME, respectively 2021-02-01 09:07:15 -05:00
6d2d3cc33b translated the final compute style to use ArgInfo 2021-02-01 08:01:11 -05:00
26ea789834 add some documentation for the programmer guide and doxygen decorations 2021-01-31 23:06:59 -05:00
d5e6bcd9d3 correctly check for index and dimensionality 2021-01-31 22:13:43 -05:00
99184eb653 correctly use index and dim 2021-01-31 22:06:06 -05:00
2882208e0b must report index1 as 0 for type == ArgInfo::NONE 2021-01-31 22:05:33 -05:00
0f49ce81c7 convert some more files 2021-01-31 21:47:55 -05:00
829e5a7f85 update docs about the organization of sources and relation between classes 2021-01-31 21:06:35 -05:00
48f15e485d put consistent definition of INVOKED_* constants as enumerator into compute.h 2021-01-31 20:13:47 -05:00
f0e4f90608 reformat paragraph 2021-01-31 13:06:10 -05:00
aeaaeed703 clarify and fix typo 2021-01-30 06:08:35 -05:00
3ce92db405 correct path to CMake preset folder in example command 2021-01-30 06:08:17 -05:00
4747e0496a add a bunch of unicode space equivalents 2021-01-30 02:22:49 -05:00
03136ed3e3 two example cases of using the ArgInfo class 2021-01-30 00:51:06 -05:00
c1742aa3d1 add unit tests for ArgInfo class 2021-01-30 00:50:15 -05:00
10834321b0 ArgInfo class for simpler parsing of compute, fix, variable references 2021-01-30 00:49:57 -05:00
065c4939ed relax some unit test epsilons, so the tests pass on MacOS 2021-01-29 18:48:05 -05:00
0e2b528351 add additional heuristics to prevent python unit tests from failing on MacOS 2021-01-29 18:40:24 -05:00
95b445a25a must initialized has_exceptions to avoid false positives in unit tests 2021-01-29 18:38:33 -05:00
908562588e maybe the last one 2021-01-29 17:17:51 -06:00
ec82a4602d should be all ready 2021-01-29 17:08:24 -06:00
72b022c5fa make implicit copy contructor explicit and thus silence compiler warnings 2021-01-29 16:25:32 -05:00
48fa5e6736 fix argument bug 2021-01-29 16:25:32 -05:00
a23e45cc0c remove dead code 2021-01-29 16:25:32 -05:00
461364c006 silence compiler warnings 2021-01-29 16:25:32 -05:00
1312a76dec eliminate use of strtok() by using ValueTokenizer class 2021-01-29 16:25:32 -05:00
222d842b45 Merge pull request #2435 from sramirezh/adding_new_pair
Adding new Wang-Frenkel potential pair style
2021-01-29 16:22:39 -05:00
830ca32fa8 Merge pull request #2479 from james1123581321/master
Updated AGNI pair files and added new AGNI force fields
2021-01-29 15:41:08 -05:00
03e7edd38f Merge pull request #2565 from prs513rosewood/explicit_netcdf_error
Explicit netcdf dumper error message when trying to append to non-existant file
2021-01-29 15:00:01 -05:00
759ac0ddd9 Merge pull request #2564 from akohlmey/detect-utf8-multibytes
Detect UTF-8 multibyte characters input and replace with ASCII equivalents where known
2021-01-29 13:02:34 -05:00
9a9e7759e4 Merge pull request #1 from akohlmey/adding_new_pair
Additional changes for LAMMPS pull request #2435
2021-01-29 11:24:59 -05:00
21eab7affa Merge pull request #2566 from hocky-research-group/fix-python-bug
Fixed bug in get_thermo_data in parsing log files with multiple run() commands
2021-01-29 10:13:49 -05:00
8d2652fa7a Merge pull request #2540 from stanmoore1/kk_update_3.3.0
Update Kokkos library in LAMMPS to v3.3.1
2021-01-29 09:11:27 -05:00
083c098171 fix spelling ( https://en.wiktionary.org/wiki/existant ) 2021-01-29 09:09:36 -05:00
9f8857cd47 Merge pull request #2567 from stanmoore1/auto_sync
Fix sync/modify issue in Kokkos atom_vec
2021-01-29 08:33:29 -05:00
b2d5c32cba Fix sync/modify issue in Kokkos atom_vec 2021-01-28 14:56:51 -07:00
51ac5e34ee make name of include guard consistent with file name 2021-01-28 04:12:39 -05:00
740ae28e3d address spelling issues 2021-01-28 03:59:30 -05:00
9c630d9906 scale down image 2021-01-28 03:59:19 -05:00
8260fbd344 add unit test for wf/cut pair style 2021-01-28 03:48:39 -05:00
cd6ebec652 fix incorrect data type (double vs int) in restart and data file handling 2021-01-28 03:46:46 -05:00
ef351bc9a6 simplify using the powint() function by importing the MathSpecial namespace 2021-01-28 03:46:09 -05:00
dac0a685e1 remove dead code 2021-01-28 03:45:15 -05:00
e3cc058c74 reformat to have shorter lines 2021-01-28 03:43:56 -05:00
cafabbd550 Merge branch 'adding_new_pair' of github.com:sramirezh/lammps-Developing into adding_new_pair 2021-01-28 03:09:45 +00:00
191a91caa2 imported math_special 2021-01-28 03:08:53 +00:00
46984f69ee Added the potential comparison with LJ 2021-01-27 21:39:52 -05:00
458120bdd5 Merge branch 'adding_new_pair' of github.com:sramirezh/lammps-Developing into adding_new_pair 2021-01-28 02:23:37 +00:00
0f31cfc554 corrected the documentation 2021-01-27 21:21:23 -05:00
10af9fbb7d Merge branch 'adding_new_pair' of github.com:sramirezh/lammps-Developing into adding_new_pair 2021-01-28 01:58:57 +00:00
3ed1aa3a72 replaced pow by powint 2021-01-27 20:57:46 -05:00
9ceef78bec included inumeric instead of numeric 2021-01-28 01:35:15 +00:00
21cd69b5d7 Changed the header 2021-01-28 01:31:36 +00:00
6e43ccf32b Fixed bug in get_thermo_data where columns is set to None instead of an empty list 2021-01-27 19:41:24 -05:00
0df55bb3b6 Merge branch 'adding_new_pair' of github.com:sramirezh/lammps-Developing into adding_new_pair 2021-01-28 00:40:12 +00:00
4925243d7e corrected mistake with the link 2021-01-28 00:36:42 +00:00
c6b8b9e8fe moved the potential to user-misc 2021-01-28 00:36:42 +00:00
11841bf638 created the pair style files 2021-01-28 00:36:42 +00:00
ddcde9c2a5 Updated the user-misc readme 2021-01-28 00:36:42 +00:00
6ba9ebe9b8 added the pair to pairs style doc 2021-01-28 00:36:42 +00:00
d295ab9296 Added the pair documentation 2021-01-28 00:36:42 +00:00
1f6539934c added the pair to the commands 2021-01-28 00:36:42 +00:00
e67977377b Added the documentation 2021-01-28 00:36:42 +00:00
09f6d1fa57 added the pair files 2021-01-28 00:36:42 +00:00
bca3164fc4 fix whitespace issues 2021-01-26 18:39:02 -05:00
d1be5d49ca Merge branch 'master' into thermo-energy 2021-01-26 18:37:05 -05:00
2b290d5e42 recover from compilation failures 2021-01-26 18:31:23 -05:00
4f8b81385b fixing grammar of error message 2021-01-26 13:57:39 -05:00
80bac27184 extra files that were not checked in 2021-01-26 11:02:27 -07:00
78b46e819b added Developer doc info for this refactoring 2021-01-26 10:54:02 -07:00
eb9e28e665 fix some typos 2021-01-26 09:30:28 -07:00
fc0936c778 doc pages for virial contributions of fixes 2021-01-26 09:26:31 -07:00
f3d974e5a3 Explicit error message when trying to append to non-existant file
Previous behavior would print "at keyword requires use of 'append yes'" when
trying to append to non-existant file.
2021-01-26 11:21:57 -05:00
6147b9c2ef doc page updates for energy contributions of thermostat and non-thermostat fixes 2021-01-26 08:51:47 -07:00
89216ce1ed add UTF-8 handling to ValueTokenizer class 2021-01-25 23:26:54 -05:00
05f08c0799 avoid false positives in has_utf8() check 2021-01-25 21:44:38 -05:00
afc58659db add not input parsing section about handling of UFT-8 characters 2021-01-25 21:44:02 -05:00
a119164496 add utf-8 check, substitution, and warning to Input::parse() function 2021-01-25 20:53:59 -05:00
69e7480fed update utils::*numeric() functions to use utf8 check and substitution 2021-01-25 20:41:05 -05:00
3e639fe979 Initial inclusion of rann potential 2021-01-25 16:41:35 -06:00
1f6cc25176 Fix link 2021-01-25 14:04:26 -07:00
0f2d0c539d Update Kokkos arch list 2021-01-25 13:52:35 -07:00
f83b796c83 Add note on C++14 requirement in Docs 2021-01-25 13:44:07 -07:00
af9b796855 Update Kokkos version in KOKKOS.cmake 2021-01-25 13:31:01 -07:00
064e0d1c44 redo changes to modify_kokkos.cpp/h 2021-01-25 09:18:37 -07:00
a0e4817a2c more changes to Kokkos Modify class 2021-01-25 09:08:40 -07:00
46b4043966 more changes to Kokkos Modify class 2021-01-25 09:01:51 -07:00
72168d6780 add utility functions to detect UTF-8 characters and substitute with ASCII equivalents 2021-01-25 01:41:38 -05:00
0c35981e31 fep CH4hyd examples 2021-01-23 19:02:21 +01:00
6dfa138037 Update Kokkos version in CMake 2021-01-22 21:08:15 -07:00
d8e2f90632 Update Kokkos library in LAMMPS to v3.3.1 2021-01-22 21:02:05 -07:00
14aac4d348 Merge branch 'master' of github.com:lammps/lammps into kk_update_3.3.0 2021-01-22 21:01:58 -07:00
a77bb30730 Merge pull request #2561 from akohlmey/collected-small-changes
Address minor issues indicated by compiler warnings and static code analysis
2021-01-22 16:24:04 -05:00
893a5018de fep yet more doc 2021-01-22 22:23:47 +01:00
804def066a fep more doc 2021-01-22 22:21:56 +01:00
4244198b10 fep update doc 2021-01-22 22:15:44 +01:00
f37bfc3fdc fep CH4hyd/fdti10 2021-01-22 22:01:26 +01:00
25420fc030 Start update of fep examples and doc 2021-01-22 21:39:09 +01:00
70998c0509 Merge pull request #2562 from stanmoore1/kk_space
Fix issues in Kokkos package with pair/only on
2021-01-22 14:02:31 -05:00
7e1a1d7a2c hoist "shift_flag" outside of inner loops. 2021-01-22 12:27:22 -05:00
bdd2bd21dc add const qualifiers 2021-01-22 12:26:33 -05:00
56e4545ebc restore incorrectly changed code 2021-01-22 12:16:12 -05:00
3bbedb1cd9 whitespace 2021-01-22 08:55:20 -07:00
0b409116aa Template other lambdas on DeviceType 2021-01-22 08:44:29 -07:00
4d4d28d49d Fix issues in Kokkos package with pair/only on 2021-01-22 08:16:30 -07:00
a77c15c185 correct overeager deletion of statements 2021-01-22 09:48:49 -05:00
6d5c88b045 simplify and avoid a redundant computation 2021-01-22 09:27:17 -05:00
50e366cc91 remove dead code 2021-01-22 09:26:33 -05:00
d8fbf7f0ca remove last v_setup() calls from fixes 2021-01-21 17:36:20 -07:00
d169f6c169 USER-BOCS and other compute pressures 2021-01-21 17:27:45 -07:00
5a23b804d9 vtally changes to USER packages 2021-01-21 16:06:54 -07:00
320ba4ef8f more changes to USER-MISC 2021-01-21 15:44:08 -07:00
5a51c74b9d vtally change to fix smd 2021-01-21 15:41:06 -07:00
54e3ee74a2 changes to USER-MISC package 2021-01-21 15:37:18 -07:00
4397706654 missing a change in fix langevin/spin 2021-01-21 15:18:16 -07:00
c091515427 changed syntax for virial tallying in standard package fixes 2021-01-21 15:12:16 -07:00
b5525a19bc changes to files with THERMO_ENERGY mask in standard packages 2021-01-21 13:56:50 -07:00
dbb923e1b2 Merge branch 'thermo-energy' of git+ssh://singsing.sandia.gov/~/lammps/git into thermo-energy 2021-01-21 12:18:21 -07:00
9decb3b37a more changes 2021-01-21 12:17:53 -07:00
20650dc7ce more changes 2021-01-21 12:16:39 -07:00
2c1b6adce3 change virial_atom to virial_peratom 2021-01-21 12:00:16 -07:00
6e3b9307a4 remove ecouple variable from Fix 2021-01-21 11:56:33 -07:00
182eb35f1a changes to fixes that use THERMO_ENERGY 2021-01-21 11:32:11 -07:00
f54fd8fa72 intial refactoring of THERMO_ENERGY mask 2021-01-21 10:31:53 -07:00
6518c95b71 Consolidated publication list 2021-01-19 20:29:53 -08:00
771497e7a5 Added name to contributing authors, added two new references to citation list 2021-01-19 20:19:20 -08:00
bcb5f00743 disable dump by default 2021-01-19 22:59:17 -05:00
1c6aa9292c more consistent formatting. remove dead code. 2021-01-19 22:58:35 -05:00
d0ec325adb re-add log files for AGNI examples 2021-01-19 22:49:41 -05:00
68b9879962 port AGNI pair style changes to USER-OMP version 2021-01-19 22:45:31 -05:00
ade134361e fix memory leak when using pair_coeff multiple times 2021-01-19 22:26:20 -05:00
b8bec5ae39 switch to memory->create()/destroy() for contigous 2d-allocation 2021-01-19 22:25:58 -05:00
d0ed4e42d8 fix bug corrupting the params data structure on MPI ranks != 0 2021-01-19 22:24:43 -05:00
302b09c470 remove redundant MPI communication 2021-01-19 22:24:01 -05:00
a95ee4c945 fix parallel memmory allocation and communication issue 2021-01-19 21:34:12 -05:00
909664409e update c++ source format 2021-01-19 21:33:42 -05:00
a66e4d2f5e fix small memory leak 2021-01-19 21:33:20 -05:00
ad124106e2 update c++ source style to more closely resemble other LAMMPS sources 2021-01-19 21:11:14 -05:00
832a22ee36 Updated file reader 2021-01-19 17:31:10 -08:00
320b5e5c55 Rewrote file-reader to be backwards comaptible with old agni files, reverted Al_jpc.agni 2021-01-19 17:30:11 -08:00
9a04e7e10c make sum variable unambiguous and handle out-of-bounds accesses 2021-01-19 16:55:17 -05:00
9da847e4c0 Added Axel's suggestions for char* to string, updated potential files 2021-01-19 12:55:03 -08:00
61c177ee63 Merge https://github.com/lammps/lammps 2021-01-19 12:03:11 -08:00
4a65aaf5c1 Revised file reader which still crashes, code cleanup 2021-01-19 12:02:38 -08:00
833d5b3bb4 Merge branch 'master' into collected-small-changes 2021-01-19 11:49:07 -05:00
364727acdd Merge pull request #2559 from jrgissing/bond/react-reaction-constraints-bugfix
bond/react: reaction constraints bugfix
2021-01-18 16:59:40 -05:00
d49f021c8b silence compiler warnings 2021-01-18 14:40:23 -05:00
7b87f45d1a Merge pull request #2554 from akohlmey/accelerator-introspection
Add accelerator introspection functionality
2021-01-18 11:59:00 -05:00
f65ea359ac Merge pull request #2558 from akohlmey/use-math-extra
Replace redundant 3-vector function definitions in pair styles with MathExtra functions
2021-01-18 10:42:24 -05:00
06f70723af Merge pull request #2557 from akohlmey/collected-small-changes
Collected small changes and updates
2021-01-18 10:26:50 -05:00
e88d42f596 correct indentation 2021-01-17 16:06:08 -05:00
a2d7d47cac add unittest for python interface of accelerator config introspection 2021-01-16 17:12:29 -05:00
d4a0006388 silence compiler warnings and remove dead code 2021-01-16 15:46:42 -05:00
847ad67fb6 silence compiler warning 2021-01-16 15:38:55 -05:00
7c3cd30ef7 replace non-ASCII character with ASCII equivalent 2021-01-16 01:22:38 -05:00
1cdce9233e identify offloading to Xeon Phi accelerator coprocessors 2021-01-16 01:07:44 -05:00
99ae866973 add Kokkos introspection. correct package names. 2021-01-16 00:57:46 -05:00
a647c236d0 make categories contain lists instead of strings as we may have multiple supported settings 2021-01-16 00:56:27 -05:00
a644375afa make code python2/3 compatible 2021-01-16 00:23:44 -05:00
efda7559c0 Merge branch 'master' into accelerator-introspection 2021-01-16 00:15:07 -05:00
acbcf44437 remove math_vector.h and math_complex.h 2021-01-15 17:52:21 -05:00
37cd54bd57 convert ewald disp to use MathExtra and copy features from math_complex.h and math_vector.h not available 2021-01-15 17:52:10 -05:00
49bc05aa1b replace use of math_vector.h with math_extra.h in some more pair styles 2021-01-15 17:25:44 -05:00
a7c02bb6b8 Update fix_bond_react.cpp 2021-01-15 16:58:18 -05:00
303156848b remove use of math_vector.h from /sphere integrator fixes 2021-01-15 16:55:23 -05:00
3269f6a2e3 bond/react: reaction constraints bugfix
bug could occur if subsequent reaction has fewer constraints than previous
2021-01-15 16:52:39 -05:00
be1fb12bfa convert use of per-style vec3_*() functions to use MathExtra:: functions 2021-01-15 16:13:13 -05:00
33a0c30cfe add const for better optimization, add overload for scaleadd3() 2021-01-15 16:12:14 -05:00
675256f72d replace vec3_*() functions in Tersoff class with equivalent from MathExtra:: 2021-01-15 15:21:07 -05:00
f2c2876f8f add second version of scale3 with alternate argument list to match MANYBODY inlines 2021-01-15 15:20:14 -05:00
8407145e71 remove obsolete makefiles from lib/gpu based on info from @ndtrung81 2021-01-15 14:51:29 -05:00
fdb34f52d7 Merge branch 'master' into collected-small-changes 2021-01-15 14:45:16 -05:00
2a508ee976 Merge pull request #2555 from ndtrung81/gpu-makefiles
Improvements to the GPU library Makefiles
2021-01-15 14:25:19 -05:00
5e6411ea5a Merge pull request #2514 from oywg11/tersoff-shift
Add a shift option to most Tersoff potential variants
2021-01-15 13:59:56 -05:00
8060a750d4 Merge pull request #2556 from akohlmey/eam-he-pair-style
Add eam/he pair style for modeling He bubbles in metals
2021-01-15 12:34:59 -05:00
6d1babfe89 correct reference for eam/he publication 2021-01-15 11:59:21 -05:00
d501fd7e29 simplify description of the HE EAM file format 2021-01-15 11:43:46 -05:00
ff1a7080a8 whitespace 2021-01-14 14:34:00 -05:00
fef1816927 Merge branch 'whitespace-fix' into eam-he-pair-style 2021-01-14 14:33:38 -05:00
537019f91f Made Nvidia.makefile and Opencl.makefile more compact, stored their older version 2021-01-13 22:52:01 -06:00
57db3631e5 Added Makefile.cuda for CUDA and Makefile.opencl for OpenCL, similar to what has been done in Makefile.hip for HIP 2021-01-13 22:50:32 -06:00
a3d21297bc complete integration of eam/he pair style into manual 2021-01-13 22:37:29 -05:00
59ef2e17ea add eam/he pair style to distribution 2021-01-13 22:24:44 -05:00
84ca5b53e3 Moved hBN_shift example to ./examples/tersoff and removed ./examples/USER/misc/tersoff_shift 2021-01-13 19:28:13 -07:00
7bff94910f Created new set of tests for Tersoff variants 2021-01-13 17:05:26 -07:00
b28f6cb8ca Removed some tersoff variants from threebody test set 2021-01-13 16:49:36 -07:00
2c92737cd5 Resolve merge conflicts 2021-01-13 09:42:57 -07:00
a25c77e512 Misc comments, typos, and cleanups 2021-01-12 23:04:14 -07:00
0ae5d963ce update formulations in docs to incorporate suggestions by @sjplimp 2021-01-12 20:44:43 -05:00
2c26f9d14d Merge branch 'whitespace-fix' into accelerator-introspection 2021-01-12 20:26:46 -05:00
22bf810b63 recover current package names. this will become simpler once #2525 is implemented 2021-01-12 20:23:57 -05:00
702de49f59 add documentation for added keyword and library interface functions 2021-01-12 20:11:38 -05:00
3d3590f02d add c-library interface and export to python 2021-01-12 20:10:47 -05:00
9ff011728c Merge pull request #2553 from jrgissing/class2_improper_bug
write_data bugfix for nonzero class2 impropers
2021-01-12 16:40:04 -05:00
2b1a93bd15 expand accelerator output options 2021-01-11 23:18:10 -05:00
56909e88b1 implement accelerator introspection for GPU package 2021-01-11 17:03:23 -05:00
db2eefae5c consistently allow comments in molecule file section headers 2021-01-11 16:12:31 -05:00
1f23fd4829 convert back to degrees when writing class 2 impropers 2021-01-11 15:39:12 -05:00
e0087472e8 Fix issues with 'modify' in unpack_border 2021-01-11 10:29:03 -07:00
c5298c24be start creating API for querying accelerator package features 2021-01-11 11:08:22 -05:00
4758e43a2e add support for setting -DLMP_GPU when the GPU package is installed 2021-01-11 10:18:09 -05:00
1f8faeda5b Merge branch 'whitespace-fix' into tersoff-shift 2021-01-11 09:50:24 -05:00
c779b749b5 benchmark test for the optimized codes 2021-01-11 16:26:06 +02:00
cbca189490 Merge branch 'master' into tersoff-shift 2021-01-11 04:30:11 -05:00
412d1c1b72 rebless unit test data for tersoff shift bugfix 2021-01-11 04:21:23 -05:00
c21ec5f7e8 attempt to reduce the negative performance impact of adding the shift option 2021-01-11 04:20:43 -05:00
ab3fdc718d pass local tests 2021-01-11 10:33:26 +02:00
eec0cc4921 clean the codes 2021-01-11 08:48:40 +02:00
86264c85a5 eliminating the discrepancies 2021-01-11 08:43:15 +02:00
547fcc93d0 Merge branch 'whitespace-fix' into citation-refactor 2021-01-08 18:32:38 -05:00
9ce477dd3f Merge branch 'master' into citation-refactor 2021-01-08 18:32:30 -05:00
6428e542db document updated citation reminder 2021-01-08 18:29:15 -05:00
d3c14dcb51 update citation output to more closely resemble what had been proposed 2021-01-08 18:28:29 -05:00
d5f34f6296 Examples and documentation 2021-01-08 15:27:23 -07:00
e5d2ca99d8 Merge branch 'master' of https://github.com/lammps/lammps into kk_update_3.3.0 2021-01-08 11:11:22 -07:00
b15bb11334 remove trailing whitespace 2021-01-08 12:26:04 -05:00
102a6eba79 Merge pull request #2506 from lammps/fft-flip-sign
Flip sign convention for FFTs used by KSpace methods
2021-01-08 12:09:34 -05:00
acb7cab150 whitespace 2021-01-07 21:52:09 -07:00
91252176af Cleanup 2021-01-07 21:49:25 -07:00
7abab6dd0f Fix bug in Kokkos PPPM per-atom introduced by 985fc86aa3 2021-01-07 21:36:59 -07:00
99ecefca63 Don't use the enum in fft3d_kokkos.cpp so as to match fft3d.cpp 2021-01-07 11:16:57 -07:00
21a0d26c4a cuFFT uses reverse notation 2021-01-07 11:08:48 -07:00
77b19b7ce5 Merge branch 'master' into fft-flip-sign 2021-01-07 10:16:26 -07:00
dec574babf Flip sign in pppm_kokkos 2021-01-07 09:52:40 -07:00
21bffd5258 Fix compile error 2021-01-07 08:48:41 -07:00
3c36737607 Merge pull request #2547 from akohlmey/collected-small-changes
Collected small fixes and code formatting updates
2021-01-06 11:13:49 -05:00
164d2fb64f Work around bug in GCC 7 2021-01-06 08:26:16 -07:00
f2bdd4654e Update from master 2021-01-06 08:15:37 -07:00
cf841e99c4 change '){' tp ') {' 2021-01-05 15:45:52 -05:00
e42845799d more consistent formatting for conditionals and loops 2021-01-05 15:42:35 -05:00
ae3bcff4b6 Merge branch 'master' into collected-small-changes 2021-01-05 15:24:00 -05:00
d6ff307390 Merge pull request #2532 from stanmoore1/kk_pair_fix_comm
Add more granular control of Kokkos pair and fix comm
2021-01-05 15:20:50 -05:00
74a1e9f272 Merge pull request #2549 from weinbe2/fea-snap-ui-aosoa
Kokkos SNAP optimizations --- Recursive polynomial evaluation optimizations, improved parallelism, various C++11-isms
2021-01-05 15:17:26 -05:00
fffbb8ac7f Switch 'real' to 'real_type' 2021-01-05 09:08:57 -07:00
45fab72fdc benchmark test for shift=0 2021-01-05 17:45:34 +02:00
dfcfb4e206 benchmark test for shift=0 2021-01-05 17:45:01 +02:00
12ccc00ac9 Formatting tweak 2021-01-05 08:34:08 -07:00
973c230185 Update chunksize 2021-01-05 08:29:47 -07:00
af993c9518 benchmark test on tersoff shift 2021-01-05 11:53:44 +02:00
df01bbc016 provide input script backward compatibility w/o documenting the old option 2021-01-04 23:28:58 -05:00
6bdf427522 add unit tests for tersoff pair styles used with shift keyword 2021-01-04 23:13:38 -05:00
2e0ae2c810 whitespace 2021-01-04 23:03:56 -05:00
7ca7dfe179 add check to error out if an accelerated variant is used that does not support the shift flag 2021-01-04 23:03:40 -05:00
612d49d69d update docs a bit more 2021-01-04 23:02:17 -05:00
47b4504917 Merge branch 'master' into tersoff-shift 2021-01-04 22:19:59 -05:00
e0f8d01176 Whitespace fix. 2021-01-04 19:33:31 -05:00
3cf9a0758f Cosmetic fixes, start of new potential_reader 2021-01-04 16:25:34 -08:00
80d992a5ac Replies to PR review: comment and variable name clean-up. 2021-01-04 19:06:03 -05:00
07fe926df6 Merge https://github.com/lammps/lammps 2021-01-04 13:28:39 -08:00
4d96b068de properly initialize pointers to be freed 2021-01-04 11:01:12 -05:00
dd69e26cb5 Added clarification of threebody typing of R 2021-01-02 19:51:23 -07:00
0eb3c01eb8 Added false positives 2021-01-02 17:14:17 -07:00
15a599102d Updated doc pages 2021-01-02 17:02:38 -07:00
068e26e0a0 Cleaned up the examples, added loop geom to velocity initializations 2020-12-31 21:22:24 -07:00
6688e2fd6e Changed if( to if ( 2020-12-31 19:01:35 -07:00
f00ca10b1e PR-specific whitespace fixes. 2020-12-30 15:35:37 -05:00
5b34d58e48 Removed kokkos_type.h include from pair_snap_kokkos.h 2020-12-30 15:01:56 -05:00
b08582de69 fix bond/react buffer overflow: must not use sprintf to write to char variable 2020-12-30 09:55:46 -05:00
51a20175c9 more code formatting consistency changes for loops and conditionals 2020-12-30 09:47:45 -05:00
28de7e351a fix off-by-one bug (arrhenius type constraint uses 5 parameters) 2020-12-30 09:23:47 -05:00
4f5192fa86 silence compiler warnings 2020-12-30 09:21:11 -05:00
382ade15fe more consistent formatting of for/while loops and if statements 2020-12-30 09:09:08 -05:00
eef28b58ab remove extra word 2020-12-30 08:55:32 -05:00
23866d9a6f Restored correctness for USER-OMP mod, mod/c, and zbl variants 2020-12-29 20:59:51 -07:00
c3cceeeeb0 Restored correctness for USER-OMP 2020-12-29 20:18:58 -07:00
0e83e792d0 add false positives 2020-12-29 20:31:00 -05:00
bc0b963f98 remove extra empty line 2020-12-29 20:25:42 -05:00
3e6bd3ef32 Propagated changes in PairTersoff to tersoff/mod and tersoff/mod/c 2020-12-29 12:54:29 -07:00
840dd61095 Further optimized algorithm for computing the Wigner U matrices and derivatives thereof. Replaced explicit double within the SNAP kernels with a compile-time "real" type. Optimized GPU compressed neighbor build within SNAP. 2020-12-29 14:23:58 -05:00
fec52f6a48 make CMake script formatting more consistent 2020-12-29 10:40:39 -05:00
76cb49d0a0 silence compiler warnings 2020-12-29 10:31:35 -05:00
086ac30267 whitespace 2020-12-29 10:21:14 -05:00
427d037747 Merge pull request #2508 from athomps/mliappy3
Add support for Python based models to the MLIAP package
2020-12-29 09:59:43 -05:00
2e623ff0a5 Rearranged force calc to move shift-dependence out of low-level code 2020-12-28 20:00:18 -07:00
5dc868ec30 whitespace 2020-12-28 09:37:13 -05:00
1d38cc1990 must not output and add separator line on empty buffers when flushing citations. 2020-12-27 13:46:09 -05:00
4912cde2ae initial attempt to refactor the citation logging in LAMMPS
this implements the basic features and flow of control.
to be done are the specific texts and the documentation.
2020-12-27 12:14:12 -05:00
50be21902e Reducing memory consumption for multi 2020-12-26 16:00:33 -07:00
795bd40318 Resolving merge conflicts 2020-12-26 13:58:24 -07:00
a88fab7558 Missed typos in user-omp 2020-12-26 11:07:48 -07:00
2458eaf4f9 Adding custom grouping option 2020-12-26 11:03:29 -07:00
a38223411f parse the shift option only for basic tersoff class 2020-12-25 15:40:52 +02:00
0a4bee5cd9 parse the shift option only for basic tersoff class and reject for others 2020-12-25 15:20:02 +02:00
cbc6197891 also flip sign on 1d timing FFTs 2020-12-24 16:10:03 -07:00
a4897d38b9 Tweak sync/modify in pair_multi_lucy_rx_kokkos 2020-12-24 10:36:24 -07:00
4382529158 Fix sync/modify issues in fix_qeq 2020-12-24 10:28:52 -07:00
ab5a1f229e Merge pull request #2538 from akohlmey/next-patch-release
Step version strings for the next patch release
2020-12-24 10:30:13 -05:00
3ada956897 Merge branch 'master' of https://github.com/lammps/lammps into kk_pair_fix_comm 2020-12-24 08:08:19 -07:00
9b6ba42c19 revise the doc of Tersoff potential accordingly 2020-12-24 16:45:22 +02:00
7b4d4e41b8 merge tersoff/shift as an option of orginal Tersoff Potential 2020-12-24 16:26:36 +02:00
ddeae8a3ba step version string one more time 2020-12-23 20:15:52 -05:00
fb1cc56b2b Merge pull request #2542 from akohlmey/plumed-update-to-2.7
Add support plumed2 library version 2.7.0
2020-12-23 19:06:44 -05:00
41d6648ac9 Merge pull request #2504 from jrgissing/bond/react-add-logic-to-constraints
Bond/react: add logic to constraints
2020-12-23 15:39:30 -05:00
8e6b89cc81 fix multiplication issue in shake stats 2020-12-23 15:14:00 -05:00
c6fb9c3836 update supported version test in fix plumed for new version 2020-12-23 15:13:38 -05:00
cc2a986f2f Workaround for GCC 7 internal compiler error 2020-12-23 12:26:05 -07:00
78a20a988e add support for plumed version 2.7.0 and make it default 2020-12-23 14:23:39 -05:00
780c31c5f7 Updated PyTorch ReLU example to latest 2020-12-23 12:22:44 -07:00
320c32448c Fix merge conflicts 2020-12-23 10:53:19 -07:00
4519cc02eb Workaround GCC 7 internal compiler error 2020-12-23 10:39:51 -07:00
06d7e5ab02 Merge pull request #2533 from akohlmey/pair-only-suffix
Add pair/only option for accelerator styles
2020-12-23 12:30:39 -05:00
9122b18c6f Updated README files 2020-12-23 10:17:55 -07:00
181ff5298f Merge pull request #2483 from z-gong/tgnh
Temperature-grouped Nose-Hoover thermostat for Drude polarizable model
2020-12-23 11:39:33 -05:00
37063ab61f Small tweaks 2020-12-23 09:22:27 -07:00
e25e32c14e enabling KOKKOS requires raising the required C++ standard to C++14 2020-12-23 10:43:55 -05:00
ddfa5c3e87 document pair/only keyword to package command 2020-12-23 10:09:54 -05:00
5aed28359b Merge pull request #2539 from lammps/doc-developer-notes
new Developer_notes doc page
2020-12-23 09:32:35 -05:00
6fd7d584c2 move release date 2020-12-23 01:05:52 -05:00
acd48f7553 Merge pull request #2517 from stanmoore1/kk_roundup
Fix Kokkos performance regression for small systems
2020-12-23 01:04:08 -05:00
2962fa561d Revert comm flags if pair/only is turned off 2020-12-22 21:08:07 -07:00
a02471967b Tweak DELTA constant 2020-12-22 16:08:21 -07:00
4befc0fa56 Fix logic error 2020-12-22 15:25:40 -07:00
06596683c7 Add back in param 2020-12-22 14:51:27 -07:00
d192a77763 Small tweaks 2020-12-22 14:47:41 -07:00
bfb85d3cb4 Fix typo in docs 2020-12-22 14:37:34 -07:00
3162618512 Update docs 2020-12-22 14:24:24 -07:00
4520ef16e3 Cleanup 2020-12-22 14:22:41 -07:00
679f1e83a4 More cleanup 2020-12-22 13:49:21 -07:00
8ba288e167 Remove unneeded UVM code 2020-12-22 13:16:58 -07:00
6f852e7b2c Remove 'host' option for Kokkos pair and fix comm 2020-12-22 12:55:44 -07:00
271cbad787 Remove redundant code 2020-12-22 11:58:32 -07:00
6dc18d4ff2 Merge pull request #2 from lubbersnick/mliappy3
switch setuptools back to distutils
2020-12-22 10:56:50 -07:00
b421c3d676 Adding arguments, initialization, and communication for custom groupings 2020-12-22 10:20:06 -07:00
cf3ae8cdd2 switch setuptools back to distutils 2020-12-22 09:59:50 -07:00
ecc98cc05f Merge branch 'master' of https://github.com/lammps/lammps into kk_pair_fix_comm 2020-12-22 09:19:18 -07:00
60dc9f6187 Update docs 2020-12-22 09:19:11 -07:00
8efd1c93ec Add more granular control of Kokkos pair and fix comm 2020-12-22 09:19:01 -07:00
0c54f07e71 Update CMake Kokkos version 2020-12-22 09:06:05 -07:00
eea14c55a9 Update Kokkos library in LAMMPS to v3.3.0 2020-12-22 08:52:37 -07:00
7a934eac37 use constexpr instead of define for better typechecking 2020-12-22 10:40:28 -05:00
d07cf22ac5 use parsed-literal sections to reduce spellchecking variable names 2020-12-22 10:25:40 -05:00
ce24d70ccc Add comments about smaller DELTA in atom_vec_kokkos.cpp 2020-12-22 08:15:51 -07:00
f9dd28dbbe Merge branch 'master' of github.com:lammps/lammps into kk_roundup 2020-12-22 08:11:57 -07:00
75eadabaf0 change ordering of sub sections 2020-12-22 08:02:28 -07:00
a1c5ed93ab new Developer_notes doc page 2020-12-21 17:13:32 -07:00
d46fb3cc96 Merge pull request #1 from lubbersnick/mliappy3
Changes to MLIAP python
2020-12-21 15:50:06 -07:00
e7fa0a6bac Changes to MLIAP python
- update lammps python package to use setuptools
- refactor MLIAP classes into lammps python package

lammps.mliap package
- change TorchWrapper to use dtype and device as arguments
- turn activation of mliappy into functions (was a class)
- add a check to see if python interpreter is compatible
  with python lib calls internal to lammps

mliap_model_python_couple.pyx:
- load models ending in '.pt' or '.pth' with pytorch rather than pickle
2020-12-21 11:51:10 -07:00
7c7f13faf5 step version strings for the next LAMMPS release 2020-12-21 10:21:53 -05:00
8678e82a82 Merge pull request #2530 from akohlmey/collected-small-changes
Collected small changes and bugfixes for the next patch release
2020-12-21 10:04:33 -05:00
5a3cb38705 Made requested changes to fix propel/self. Last thing to change would be to re-introduce the types keyword into this fix if that was deemed to be best. 2020-12-21 10:58:27 +00:00
5ae32146eb Adding full neighbor list check for new reduced comm 2020-12-20 17:18:32 -07:00
bce37abe8f Clarifying variable names 2020-12-20 15:15:19 -07:00
800ff0f1c2 update spelling/grammar and false positives 2020-12-20 15:02:59 -05:00
24e2166357 add missing references 2020-12-20 15:02:01 -05:00
2e33887d0b Merge branch 'master' into tgnh 2020-12-20 14:48:49 -05:00
129210c7a0 Updated examples and docs, and added basic brownian dynamics integrator (no rotational degrees of freedom). 2020-12-20 17:38:32 +00:00
05ecf86134 Made changes to propel/self. Kept all features of previous version (and tested they stayed the same), but additionally added dipole option for direction of self-propulsion. Also updated examples. 2020-12-20 16:39:04 +00:00
fee6df1ab6 Fixing typos 2020-12-19 18:07:10 -07:00
0a36baf86d Updating naming in other classes 2020-12-19 17:51:09 -07:00
5d097845e7 Renaming multi2->multi in nstencil 2020-12-19 17:45:46 -07:00
1c52ff15c3 Renaming multi nstencils to multi/old 2020-12-19 17:39:20 -07:00
4a85afcde2 Removing redundant stencils 2020-12-19 17:22:42 -07:00
42e5130893 Renaming multi->multi2 in nbin files 2020-12-19 17:18:54 -07:00
42278e8766 Renaming multi2->multi npair classes, renaming npair multi variables 2020-12-19 17:09:11 -07:00
0549da668d Renaming multi->multi/old, updating lmpcite 2020-12-19 16:06:47 -07:00
c1e3bc5794 Updating to master 2020-12-19 15:28:02 -07:00
a9c6d6f117 Removing temporary utilities 2020-12-19 14:11:46 -07:00
4c1f449350 Moved brownian dynamics files to be in USER-BROWNIAN package 2020-12-19 17:42:47 +00:00
a13f70790a spelling 2020-12-18 23:02:28 -05:00
151110f07f refactor constant vs define in edip pair styles 2020-12-18 22:55:15 -05:00
2022dc0aa9 whitespace fixes 2020-12-18 22:45:26 -05:00
9f206b471e Merge branch 'master' into collected-small-changes 2020-12-18 22:41:27 -05:00
09028b27d4 Merge pull request #2423 from jtclemm/multi_ishan
Extend multi style neighbor lists to finite-sized particles
2020-12-18 22:39:01 -05:00
384376bc51 increase precision of lj/cubic constants and document how to compute them 2020-12-18 22:33:56 -05:00
71e340a792 Adding multi+granular note in neighbor documentation 2020-12-18 17:56:51 -07:00
3641428d27 Merge pull request #2502 from jdevemy/master
Fix invalid result when dihedral quadratic angle is > pi or < -pi
2020-12-18 14:38:04 -05:00
4c7f71bef3 Merge branch 'master' into mliappy3 2020-12-18 09:16:44 -05:00
959f67962d allow to revert the pair/only setting 2020-12-17 22:59:12 -05:00
96fa85f61c alternate implementation of pair/only option (for KOKKOS and GPU) 2020-12-17 22:39:36 -05:00
de94e28c8b correct path to find liblammps.dll with Windows installer package 2020-12-17 21:48:04 -05:00
f6fa564ef2 whitespace 2020-12-17 17:43:04 -05:00
6035c53bb7 Merge branch 'master' into collected-small-changes 2020-12-17 17:41:46 -05:00
79833f9b83 Merge pull request #2521 from rbberger/python_package
Turn LAMMPS Python module into Python package
2020-12-17 17:06:03 -05:00
09023edc98 small python installation docs update 2020-12-17 16:41:18 -05:00
3e2b004d21 more use of constexpr 2020-12-17 16:01:26 -05:00
2426e6245d move static constants in pair style out of the globally included header 2020-12-17 14:03:15 -05:00
a403e209d3 use C++11 constexpr instead of C++98 const. 2020-12-17 13:00:51 -05:00
72f68f3d56 consolidate multiple factorial() function definitions into MathSpecial::factorial() 2020-12-17 12:47:04 -05:00
511a1a5395 Update comments mentioning lammps.py 2020-12-17 12:13:06 -05:00
bcb89a1d90 Honor DESTDIR for packaging 2020-12-17 12:13:06 -05:00
47cdafe651 reduce size of executable/library by replacing static const int with enum 2020-12-17 12:06:44 -05:00
f9f9c37bd2 Update docs 2020-12-17 11:57:40 -05:00
527ffa79dc refactor for clarity 2020-12-17 09:34:56 -05:00
5ddeb45c0a whitespace 2020-12-17 09:25:54 -05:00
e3c3106795 fix incorrect use of MPI_Gather() 2020-12-17 09:20:38 -05:00
181b18beeb tweak epsilon for better compiler compatibility 2020-12-17 07:21:17 -05:00
ba64e7c75c simplify/improve multi-partition test 2020-12-17 07:20:53 -05:00
a1b7d263c2 Modify the expresion of Tersoff Potential to include Tersoff/shift 2020-12-17 11:08:00 +02:00
b36363e0fb Merge pull request #2505 from akohlmey/collected-small-changes
Collected small changes
2020-12-16 23:24:07 -05:00
ed0f045465 Merge pull request #2515 from PabloPiaggi/patch-1
Update temp/csvr manual
2020-12-16 23:18:54 -05:00
f7e0bd45f3 Merge pull request #2520 from akohlmey/add-pgi-preset
Add a CMake preset and some workarounds for using PGI (Nvidia) compilers with LAMMPS
2020-12-16 21:30:04 -05:00
a01b376391 Energy conservation for non-zero lambda3 2020-12-17 03:31:59 +02:00
21f1fae60e FFT changes for KOKKOS 2020-12-16 15:05:38 -07:00
dd8d0f17ed Merge pull request #2522 from yafshar/kim_improvement
Kim improvement
2020-12-16 12:45:30 -05:00
d9440a582c Final touches on docs to discuss temperature in overdamped dynamics. 2020-12-16 17:30:28 +00:00
2ac91eb75c Merge pull request #2523 from srtee/master
build_one() should update parent of skiplist
2020-12-16 12:16:29 -05:00
f2e7f5263e Added bd integrator for ellipsoidal particles as well. 2020-12-16 16:14:13 +00:00
f434797a3e Modify Tersoff/shift as a derived class 2020-12-16 16:30:16 +02:00
0e6e1b6de1 Update the mode to FATAL_ERROR when CURL not found 2020-12-16 07:53:37 -06:00
f614aa401e build_one() update parent skiplist
if an occasional skip list has an occasional parent list, the parent list must be built when the skip list is built. This patch ensures that behavior. (Otherwise, build_one(foo) returns an empty skip list with no warnings or errors.)
2020-12-16 15:42:10 +10:00
21c3a51557 skip unsupported GCC pragma 2020-12-15 20:47:40 -05:00
8fc2c13f8d add PGI compiler version detection 2020-12-15 20:47:20 -05:00
6671e7ba3c relax some more unittest thresholds to reduce failures with crappy compilers 2020-12-15 20:37:14 -05:00
7a9d6611d9 add false positive 2020-12-15 20:36:27 -05:00
3103fe85f6 Update Python_module.rst 2020-12-15 19:16:29 -05:00
ac203b3683 Keep numpy imports inside of functions 2020-12-15 18:50:38 -05:00
ccb304fa13 Remove deprecated PyEval_InitThreads() not needed by Python > 3.6 2020-12-15 18:23:40 -05:00
a575662d5c flip sign within FFT3d itself 2020-12-15 16:08:32 -07:00
162d34d168 Update Python coverage tests 2020-12-15 17:58:41 -05:00
9f8b42acca Add extra unit tests and uncomment the kim_query tests 2020-12-15 16:31:23 -06:00
94cbee7710 Document the cmake KIM_EXTRA_UNITTESTS option
Document KIM_EXTRA_UNITTESTS option and it's pre-requisites.
2020-12-15 15:50:15 -06:00
47d18c9f90 Add KIM_EXTRA_UNITTESTS option
Add KIM_EXTRA_UNITTESTS option which defaults to OFF
and can be enabled on request to add a corresponding
pre-processor define to do extra tests.
2020-12-15 15:48:49 -06:00
33f9a29639 Split core.py into more files 2020-12-15 16:33:21 -05:00
df58a1fc5f Update the eflag_global & eflag_atom
Update the eflag_global & eflag_atom use based on
the flag use in LAMMPS.
2020-12-15 15:22:24 -06:00
9e188a3818 Clean up imports 2020-12-15 16:19:23 -05:00
b390c1e3d3 Split lammps.py into core.py and pylammps.py 2020-12-15 16:15:16 -05:00
588198c5dd Add --embed to python-config for legacy build
Newer versions of Python (v3.9) do not include the python library
in their python-config --ldflags unless you also pass --embed.
2020-12-15 16:10:52 -05:00
aca2eefce5 Transform LAMMPS Python module into package
- Moves lammps.py into its own package
- Imports entire module in __init__.py
- Changes both how legacy and CMake build systems install
- Added traditional setup.py for Python-only installation

Note: the CMake install target runs setup.py build and install
in a way that produces files in CMAKE_BINARY_DIR/python instead
of python/build. This is to maintain out-of-source compilation
support.
2020-12-15 15:11:21 -05:00
2a763d1713 PythonCommands test fails without exceptions enabled 2020-12-15 15:00:31 -05:00
fcf39b613a make fix phonon use of FFTs compatible 2020-12-15 12:36:02 -07:00
65dc5c0351 work around PGI compiler issues 2020-12-15 14:32:18 -05:00
f7dc7e3f3f add preset for use with PGI compilers (tested with version 20.11) 2020-12-15 14:31:40 -05:00
4c09549bbd more changes to pppm/disp and pppm/dipole 2020-12-15 12:25:08 -07:00
3dea3188aa Added a simple neural network potential 2020-12-15 12:14:03 -07:00
a7fa4739f5 update reference 2020-12-15 11:39:14 -05:00
40d260dcc6 Remove word kinetic 2020-12-14 18:45:46 -05:00
4b69693b89 correct/improve warning messages related to per-atom properties 2020-12-14 18:24:50 -05:00
231b40995f work around dump output issues with TAD 2020-12-14 17:49:12 -05:00
1fee2add51 Merge pull request #2518 from ellio167/bump-kim-api-2.2.1
update for kim-api-2.2.1
2020-12-14 17:17:52 -05:00
ac36fb8290 must not use MPI_COMM_WORLD to be compatible with multi-partition runs 2020-12-14 15:53:21 -05:00
17f8aed268 must not use MPI_COMM_WORLD inside of LAMMPS. value of "me" is already computed. 2020-12-14 13:03:16 -05:00
65d1594474 Fix typo and adjust grammar 2020-12-14 08:39:27 -05:00
7f29c56c8f update for kim-api-2.2.1 2020-12-14 00:03:59 -06:00
86ebe0a9d3 Minor change to doc for bd/sphere. 2020-12-13 16:56:00 +00:00
524302e6e6 whitespace 2020-12-13 00:07:48 -05:00
623f674ee5 Merge branch 'master' into collected-small-changes 2020-12-13 00:07:24 -05:00
acce3c265a use C++ string operations 2020-12-13 00:00:15 -05:00
b53f37a9ac fix typo 2020-12-12 23:43:11 -05:00
d913b5fadf Fix Kokkos performance regression for small systems 2020-12-11 08:46:26 -07:00
f81a17abbd Moved fix_bd_sphere to src/USER-MISC folder, examples to examples/USER/misc folder, and added one-liner on README file. 2020-12-11 12:11:02 +00:00
dbdb108512 update temp/csvr manual 2020-12-10 15:18:48 -05:00
4fa48edb81 Adding size/multi npair files 2020-12-10 11:36:15 -07:00
73db18d3ed add citation information 2020-12-10 15:33:24 +02:00
946dae583b add author information 2020-12-10 15:18:56 +02:00
6078d22405 Shifted Tersoff Potential 2020-12-10 14:02:31 +02:00
ee99a2e960 Added reset_dt() function. Have not moved files to USER-MISC folder yet (waiting to hear back on some comments). 2020-12-10 09:12:21 +00:00
57032c661d Merge pull request #1 from lammps/master
update the forked repository
2020-12-10 03:55:35 +02:00
bf0acf9581 Tried to distinguish MLIAP package with Python support from PYTHON package 2020-12-09 17:38:31 -07:00
8f10691ae6 Added link to on-line build info 2020-12-09 17:33:29 -07:00
b8a7edfaa1 Tried to distinguish MLIAP package with Python support from PYTHON package 2020-12-09 17:27:20 -07:00
4964a56974 Tweaked build instructions 2020-12-09 17:12:35 -07:00
56feb03b38 Edits to README 2020-12-09 16:51:36 -07:00
dab4c7409a Changes for pull request 2511. 2020-12-09 21:04:23 +00:00
cc222791a5 use variables to infer filenames from original .pyx source 2020-12-09 10:47:06 -05:00
f7e0fbf064 update MLIAP readme files 2020-12-09 10:28:40 -05:00
50a9ac92a7 update docs for MLIAP some more 2020-12-09 10:28:27 -05:00
ddcd5a3c2e small CMake tweaks and cleanups 2020-12-09 10:28:12 -05:00
6b51bf104a Added unit test for fix bd/sphere. 2020-12-08 14:52:28 +00:00
9848492d93 Added example input scripts for fix_bd_sphere code. 2020-12-08 11:16:42 +00:00
c4ee2f2e42 don't need Python interpreter for compiling the PYTHON package 2020-12-08 00:28:16 -05:00
5b6b327a5d fix CMake errors 2020-12-08 00:04:54 -05:00
33888ec345 Merge pull request #2507 from ohenrich/user-cgdna
USER-CGDNA: Introduced ellipsoid pointer in quaternion data access
2020-12-07 18:35:05 -05:00
77168b5105 delete hack 2020-12-07 18:32:11 -05:00
161fdbd7ec whitespace 2020-12-07 18:30:41 -05:00
1e8391b324 Merge branch 'master' into mliappy3 2020-12-07 18:30:21 -05:00
9feb7414f1 Merge pull request #2510 from athomps/wurtzite-error
Fixed error in Wurtzite script and added more explanation
2020-12-07 18:20:15 -05:00
2ccb39b54c doc updates 2020-12-07 18:08:13 -05:00
3eb22e2406 cleanup and compilation for python off 2020-12-07 17:47:21 -05:00
280c19cf32 rename CMake configuation variable to MLIAP_ENABLE_PYTHON to be more consistent with other packages 2020-12-07 17:46:54 -05:00
3f5a896aab update build system to make it auto-adapt to include python support or not into MLIAP 2020-12-07 17:35:10 -05:00
d350f46a2c Fixed error in Wurtzite script and added more explanation 2020-12-07 09:22:34 -07:00
fd37abd649 fix typo flagged by compiler warning 2020-12-07 01:45:27 -05:00
1695bf3d67 silence compiler warnings and correct issues with energy/virial accumulators
- must not zero global accumulators from Pair class (already done by parent)
- must add not set accumulated values
2020-12-07 01:09:24 -05:00
36c2947de7 silence compiler warnings 2020-12-07 01:06:47 -05:00
3c918029f0 Added virial flag to fix_bd_sphere. 2020-12-06 19:23:15 +00:00
a7d2059d86 Fixed some issues after initial testing. 2020-12-05 09:33:15 +00:00
3ed41295cd Tweaked build instructions 2020-12-04 15:01:39 -07:00
ed7775f083 Added blessed log files 2020-12-04 14:48:02 -07:00
2654aca658 Added blessed examples 2020-12-04 14:04:35 -07:00
851f0775f1 Fixed spelling errors 2020-12-04 11:59:01 -07:00
fddf80b972 further changes to pppm/disp for sign flip 2020-12-04 11:01:36 -07:00
d1422aa109 Removed MLIAPPY package from docs 2020-12-03 19:46:19 -07:00
05bd2c5375 Added some author credits 2020-12-03 19:37:07 -07:00
36a5e9d20e Added some author credits 2020-12-03 19:36:52 -07:00
3c34bdfded Updated the build files 2020-12-03 19:04:53 -07:00
16f11f3421 Moved all mliappy files in to src/MLIAP and examples/mliap 2020-12-03 18:40:01 -07:00
664ed0f850 Merge remote-tracking branch 'origin/mliappy2' into mliappy3 2020-12-03 17:37:26 -07:00
973382295b Clean up file 2020-12-03 16:47:27 -07:00
42e8bfbcaf first step to flip sign of FFTs 2020-12-03 10:28:03 -07:00
ca5c921702 added brownian dynamics integrator fix bd/sphere. 2020-12-03 13:00:21 +00:00
90f00c01a4 Introduced ellipsoid pointer in quaternion data access 2020-12-03 12:57:55 +00:00
c332b5ff09 bugfix when no constraints 2020-12-02 13:02:10 -05:00
bffd87a84f clarify docs 2020-12-02 13:02:10 -05:00
64f7ea6c38 docs for boolean constraint logic 2020-12-02 13:02:09 -05:00
1e5611f776 finally, add the logic eval 2020-12-02 13:02:09 -05:00
855cf2146f set for boolean constraint logic 2020-12-02 13:02:09 -05:00
63e8c83599 refactor constraints array into per-rxn 2020-12-02 13:02:09 -05:00
8df26f551e clean constraints refactor 2020-12-02 13:02:09 -05:00
3a07eef523 refactor dihedral constraint 2020-12-02 13:02:09 -05:00
2af32741fd refactor angle constraint 2020-12-02 13:02:09 -05:00
04e586c83d refactor distanace constraint
NOTE: messes up angle and dihedral constraints!
2020-12-02 13:02:09 -05:00
0de8f829f3 refactor Arrhenius constraint 2020-12-02 13:02:09 -05:00
29667da947 refactor RMSD constraint 2020-12-02 13:02:09 -05:00
206bc93026 bond/react:refactor constraint framework
constraints are now an array of Contraint structs
2020-12-02 13:02:09 -05:00
71827f0099 update pair meam/spline docs to reflect limitations of the implementation
this closes #2500
2020-12-01 19:06:54 -05:00
63d8182ff3 fix spelling 2020-12-01 19:06:09 -05:00
6ac481409a remove temporary flag for using the new pip resolver which is now the default 2020-12-01 19:04:43 -05:00
5a00d3c157 Fix invalid result when dihedral quadratic angle is > pi or < -pi 2020-12-01 09:21:12 +01:00
6308248a44 Replacing binsizex with multi2 version 2020-11-30 20:55:04 -07:00
97b77e0f13 Added preprocessor flag 2020-11-30 19:29:28 -07:00
280c2258c7 Trying to recover from README merge conflict 2020-11-30 16:20:28 -07:00
e716abd34a Fixing bad bracket 2020-11-30 11:00:53 -07:00
6c9bb854c0 Revamping multi2 npair classes, fixed bug if two types had same cut, better comments 2020-11-30 10:51:15 -07:00
8a0dac90ca Removing redundant k variables in npair 2020-11-29 19:57:14 -07:00
2c79fbebe8 Adding todo note for comm, testing for full nlist 2020-11-29 17:48:43 -07:00
cea20da5be Simplifying stencils 2020-11-29 16:07:20 -07:00
f8d35139c3 Adding files for OMP 2020-11-27 17:16:52 -07:00
73a6bb3621 Fixing mistake with stencil cutoffs not being squ squared 2020-11-26 15:58:05 -07:00
9b9e5022d6 initializing comm distances, temporarily sorting nlit dumps 2020-11-26 14:57:48 -07:00
35f2c9bdf2 Several improvements to capabilities and build.
- cmake fixed, no longer needs numpy headers.
- models can be loaded from an external interepreter.
2020-11-26 12:40:28 -07:00
3c79bf7d0f updated to new version of lammps-master 2020-11-23 11:36:46 -08:00
24d2f05f8f resolved centroidstressflag conflict 2020-11-23 10:11:53 -08:00
d7047245f4 Add cross type self bin check for newton 2020-11-22 21:22:29 -07:00
de5df539c9 Changing particle size metric to neighcutsq 2020-11-22 20:40:47 -07:00
00a74558ff Fixing typos 2020-11-22 20:01:14 -07:00
0623817afe Updated README 2020-11-20 11:47:31 -07:00
0927e52dea cleanup dead code 2020-11-18 16:18:34 -05:00
95c267c21b update example with new syntax 2020-11-18 12:02:19 -05:00
9b7831dc4f rename example folder 2020-11-18 11:59:13 -05:00
aa683eca59 bond/react, create_atom: bugfix when create is aborted 2020-11-18 11:47:28 -05:00
337d47ca6c update docs 2020-11-17 22:46:42 -05:00
1931cfa56a add 'near' keyword 2020-11-17 22:18:08 -05:00
c4bf7766fe refactor insert_atoms 2020-11-17 21:37:00 -05:00
400812c4f1 refactor where/when atoms are insert, set up for near keyword 2020-11-17 21:06:47 -05:00
21e495d5ec bond/react: update modify_create syntax
now, allows for multiple sub-keywords
2020-11-17 14:47:50 -05:00
3d28f5d610 make NH propagation a const method 2020-11-17 13:51:38 +01:00
0f0188d7bf Fix BIGBIG build 2020-11-17 13:45:58 +01:00
bf34112672 Init nullptr 2020-11-16 20:36:29 +01:00
c3b9a30b8a Minor fix for molecular DOF calculation. Update doc. 2020-11-16 17:23:53 +01:00
af785039f4 Update docs for TGNH 2020-11-14 17:08:26 +01:00
4de5b1b612 Added README explaining how to run cythonize 2020-11-13 16:30:05 -07:00
bb52af9a07 revert cutoff check
temporary fix for hybrid pair style
2020-11-13 00:51:48 -05:00
75608feb55 cleaned pair_agni.cpp 2020-11-12 20:19:13 -08:00
a3ce72c1b2 actually correct image flag fix
hopefully
2020-11-12 23:07:36 -05:00
af11a54a27 Copying more variables to classes and moving/clarifying definitions 2020-11-12 18:37:53 -07:00
d6ff8dec62 updated pair_agni.cpp 2020-11-12 17:29:24 -08:00
2c4e4a469a Added updated AGNI files 2020-11-12 17:10:11 -08:00
ebf8fd3a84 Added updated AGNI files 2020-11-12 17:09:45 -08:00
6909839ff0 Fix full multi stencil 2020-11-12 15:03:44 -07:00
fb00fc6646 correct image flags in example data file
bond/react, create_atoms
2020-11-12 12:21:05 -05:00
6740f8dbab Fix the compatibility issue with latest LAMMPS. Add examples. 2020-11-12 18:12:23 +01:00
bd19cf73eb bond/react, create_atoms: correct image flag fix 2020-11-12 12:01:59 -05:00
b6dfc28e38 Resetting bin sizes in stencils 2020-11-11 22:50:59 -07:00
9d4ed1a201 bond/react, create_atoms: image flag fix 2020-11-11 21:47:04 -05:00
b5c2dac6e6 bond/react, create_atoms: fix bug in parallel 2020-11-11 20:55:47 -05:00
ac527f4615 Fixing bugs in nstencil 2020-11-11 15:39:53 -07:00
fdd7ecd9d9 bond/react, create_atoms: correctly update molecule IDs 2020-11-11 14:08:35 -05:00
f94c82910d Fixing remaining bugs to compile 2020-11-11 10:11:49 -07:00
9a3ece75f2 Batch 1 of typo/bug fixes 2020-11-10 23:30:58 -07:00
061229093c Adding npair classes 2020-11-10 22:44:55 -07:00
bdc21c87b2 Clarifying multi2 stencil label 2020-11-10 20:15:54 -07:00
dd1cce1da5 Finish stencil classes 2020-11-10 20:03:00 -07:00
af57879416 Labelling stencils half/full, removing unnecessary newton on/off designation 2020-11-10 17:15:28 -07:00
943a187be7 Renamed to multi2, initial stencil edits 2020-11-10 16:39:56 -07:00
12288630f5 Fixing comm and renaming bytype 2020-11-09 16:32:11 -07:00
862bf643f3 Add fix for TGNH thermostat. Copy doc file from fix nh. 2020-11-09 16:53:24 +01:00
17c14661bc port over some recent bugfixes 2020-11-09 00:18:24 -05:00
7c1634e57f Squashed commit for MLIAPPY package
Includes CMAKE install, doc updates, example files.
2020-11-06 13:12:59 -07: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
207831d7a0 corrected mistake with the link 2020-11-05 19:50:54 +00:00
24aafc024b moved the potential to user-misc 2020-11-05 16:26:45 +00:00
129807cb7a created the pair style files 2020-11-05 16:03:38 +00:00
33881917f7 Updated the user-misc readme 2020-11-05 15:59:15 +00:00
30d976d175 added the pair to pairs style doc 2020-11-05 15:57:35 +00:00
7ad8a9f103 Added the pair documentation 2020-11-05 15:29:27 +00:00
4f10ea3ef4 added the pair to the commands 2020-11-05 15:24:14 +00:00
da96833921 Merge remote-tracking branch 'lammps_upstream/stable' into adding_new_pair 2020-11-05 13:16:48 +00:00
280e98b074 Added explicit energy updates 2020-11-03 20:26:34 -07:00
4435ed4870 bond/react:example for create_atoms feature
builds a polysytrene 50-mer in vacuum
2020-10-29 23:08:10 -04:00
557ef57526 Adding initial support for triclinic boundaries 2020-10-29 15:13:28 -06:00
254963cddd Update fix_bond_react.rst 2020-10-25 21:16:04 -04:00
4b111d7c43 bond/react:better initial vels for created atoms 2020-10-25 20:57:46 -04:00
b8d2b65d8d bond/react: generalize get_temperature 2020-10-25 18:56:00 -04:00
d5c6007797 bond/react: revert some overzealous optimization
could cause hang
2020-10-25 17:19:03 -04:00
40b750769b Merge pull request #107 from lammps/master
rebase
2020-10-24 14:56:13 -04:00
c738d92e81 Added the documentation 2020-10-21 13:06:41 +01:00
09170c84d5 added the pair files 2020-10-20 11:50:57 +01:00
d519f4fd4f Missed reference to bin, minor uniform style changes 2020-10-14 16:06:14 -06:00
0ae09c0f3b Adding OMP classes 2020-10-14 15:52:20 -06:00
d0981db66a Minor edits 2020-10-09 13:51:35 -06:00
58e27a9c51 More edits and documentation 2020-10-09 13:50:20 -06:00
dc86c37e23 Minor updates and documentation 2020-10-09 11:38:18 -06:00
c85498e98b started to add spin/kk to the doc
modified validaion tests for kokkos compatibility
2020-10-09 09:47:47 -06:00
e8ebce1b52 Fix GPU compile error 2020-10-08 08:21:55 -06:00
b263a8d3ee Merge branch 'master' of https://github.com/lammps/lammps into spin-kokkos 2020-10-08 08:21:31 -06:00
aa1a87687b Fix minor issues 2020-10-08 07:32:36 -06:00
dddafb3c92 Merge pull request #104 from lammps/master
rebase
2020-10-05 23:19:23 -04:00
ccb7a6ee11 remove unnecessary check
because it breaks create_atoms feature
2020-10-05 23:16:46 -04:00
8d0d7f4f55 Fix testers after API change 2020-10-05 21:53:38 -04:00
2ac83a0e84 Merge remote-tracking branch 'origin/master' into improper-tester 2020-10-05 21:35:42 -04:00
bc1c16d1a6 Removing gran/multi pairstyles 2020-10-05 16:14:01 -06:00
e125d464d1 Replacing molecular enumeration 2020-10-05 16:09:50 -06:00
61c51847c2 bond/react: basic create atoms feature 2020-10-02 20:53:27 -04:00
dfb5cd3262 merged with mastered, copied Ishan's files 2020-10-02 16:37:01 -06:00
21079b3ac2 Added multi-stencil files from Ishan 2020-10-02 16:35:53 -06:00
b1b014aed3 Fixing merge conflicts 2020-10-02 15:09:47 -06:00
c4579a7502 First commit
- added spin/kk style files
- modified few necessary files
- compiles, but SegFault when running
2020-09-30 11:43:01 -06:00
0b903fa7c2 bond/react: create-atoms-draft-docs 2020-09-21 14:53:30 -04:00
ede28cc1bf bond/react:modify-create-correction 2020-09-21 12:01:40 -04:00
0236cabce9 bond/react:add-modify-create-keyword 2020-09-21 10:29:42 -04:00
db8767ee63 Merge branch 'TEMP-master' into bond-react_create_atoms 2020-09-19 10:53:02 -04:00
45eeb403a2 Merge branch 'master' of https://github.com/lammps/lammps into TEMP-master 2020-09-19 10:51:58 -04:00
74e3a1fe8c manual rebase take 2 2020-09-19 10:41:50 -04:00
dbd7b1e001 bond/react: manual rebase header 2020-09-19 10:02:45 -04:00
e6d340aee1 Merge branch 'master' into gpu-unittest 2020-09-09 14:39:29 -04:00
e01a926c87 bond/react: add create_atoms section to map file 2020-09-02 19:16:18 -04:00
00062205b9 bond/react: rename variable used for possible reaction
create->attempt, to avoid clashing with create-atoms variables
2020-09-02 17:51:53 -04:00
ea9b71a4ce Merge pull request #95 from lammps/master
rebase
2020-09-02 12:54:19 -04:00
9b0c07f797 remove undesired trailing whitespace 2020-08-27 19:06:29 -04:00
82cd39da31 Merge branch 'gpu-bugfix' into gpu-unittest 2020-08-27 19:02:30 -04:00
b1b9fe8d24 Merge branch 'gpu-bugfix' into gpu-unittest 2020-08-27 19:01:02 -04:00
e218d8421e Merge branch 'gpu-unittest' of github.com:akohlmey/lammps into gpu-unittest 2020-08-27 18:02:25 -04:00
d0cffd83af Merge branch 'gpu-bugfix' into gpu-unittest 2020-08-27 18:01:27 -04:00
5127071da2 Fixes segfault due to uninitialized pointers 2020-08-26 18:44:07 -04:00
13cf665712 update pair style unit test input files to be compatible with testing GPU package styles 2020-08-23 21:47:17 -04:00
5ed24b330e add preliminary support for testing pair styles in the GPU package 2020-08-23 21:46:18 -04:00
39750c482d add tester for dihedral style and few tests 2020-08-15 00:19:56 -04:00
051ab1f5c2 add test for dihedral style 2020-08-14 23:21:30 -04:00
a65c672afc add tests for all improper styles except hybrid 2020-08-14 23:10:35 -04:00
194fe17263 merge conflicts in cmakelist 2020-08-14 22:33:10 -04:00
a33c0081cd setup a simple improper-harmonic test 2020-08-08 15:58:41 -04:00
ffb074e812 created an empty tester for improper style 2020-08-07 22:15:40 -04:00
7954 changed files with 434988 additions and 287378 deletions

2
.gitattributes vendored
View File

@ -1,3 +1,5 @@
.gitattributes export-ignore
.gitignore export-ignore
.github export-ignore
.lgtm.yml export-ignore
SECURITY.md export-ignore

59
.github/CODEOWNERS vendored
View File

@ -13,33 +13,42 @@ lib/kim/* @ellio167
lib/mesont/* @iafoss
# whole packages
src/COMPRESS/* @akohlmey
src/COMPRESS/* @rbberger
src/GPU/* @ndtrung81
src/KOKKOS/* @stanmoore1
src/KIM/* @ellio167
src/LATTE/* @cnegre
src/MESSAGE/* @sjplimp
src/MLIAP/* @athomps
src/SNAP/* @athomps
src/SPIN/* @julient31
src/USER-CGDNA/* @ohenrich
src/USER-CGSDK/* @akohlmey
src/USER-COLVARS/* @giacomofiorin
src/USER-INTEL/* @wmbrownintel
src/USER-MANIFOLD/* @Pakketeretet2
src/USER-MEAMC/* @martok
src/USER-MESONT/* @iafoss
src/USER-MOFFF/* @hheenen
src/USER-MOLFILE/* @akohlmey
src/USER-NETCDF/* @pastewka
src/USER-PLUMED/* @gtribello
src/USER-PHONON/* @lingtikong
src/USER-PTM/* @pmla
src/USER-OMP/* @akohlmey
src/USER-QMMM/* @akohlmey
src/USER-REAXC/* @hasanmetin
src/USER-SCAFACOS/* @rhalver
src/USER-TALLY/* @akohlmey
src/USER-UEF/* @danicholson
src/USER-VTK/* @rbberger
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
@ -47,7 +56,6 @@ src/GPU/pair_vashishta_gpu.* @andeplane
src/KOKKOS/pair_vashishta_kokkos.* @andeplane
src/MANYBODY/pair_vashishta_table.* @andeplane
src/MANYBODY/pair_atm.* @sergeylishchuk
src/USER-REACTION/fix_bond_react.* @jrgissing
src/USER-MISC/*_grem.* @dstelter92
src/USER-MISC/compute_stress_mop*.* @RomainVermorel
@ -122,15 +130,17 @@ tools/emacs/* @HaoZeke
tools/singularity/* @akohlmey @rbberger
tools/code_standard/* @rbberger
tools/valgrind/* @akohlmey
tools/swig/* @akohlmey
tools/offline/* @rbberger
# tests
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 @junghans @rbberger @akohlmey
cmake/presets/*.cmake @akohlmey
# python
python/* @rbberger
@ -142,6 +152,7 @@ fortran/* @akohlmey
doc/utils/*/* @rbberger
doc/Makefile @rbberger
doc/README @rbberger
examples/plugin/* @akohlmey
# for releases
src/version.h @sjplimp

View File

@ -26,11 +26,11 @@ __
## I don't want to read this whole thing I just have a question!
> **Note:** Please do not file an issue to ask a general question about LAMMPS, its features, how to use specific commands, or how perform simulations or analysis in LAMMPS. Instead post your question to the ['lammps-users' mailing list](https://lammps.sandia.gov/mail.html). You do not need to be subscribed to post to the list (but a mailing list subscription avoids having your post delayed until it is approved by a mailing list moderator). Most posts to the mailing list receive a response within less than 24 hours. Before posting to the mailing list, please read the [mailing list guidelines](https://lammps.sandia.gov/guidelines.html). Following those guidelines will help greatly to get a helpful response. Always mention which LAMMPS version you are using.
> **Note:** Please do not file an issue to ask a general question about LAMMPS, its features, how to use specific commands, or how perform simulations or analysis in LAMMPS. Instead post your question to either the ['lammps-users' mailing list](https://lammps.sandia.gov/mail.html) or the [LAMMPS Material Science Discourse forum](https://matsci.org/lammps). You do not need to be subscribed to post to the list (but a mailing list subscription avoids having your post delayed until it is approved by a mailing list moderator). Most posts to the mailing list receive a response within less than 24 hours. Before posting to the mailing list, please read the [mailing list guidelines](https://lammps.sandia.gov/guidelines.html). Following those guidelines will help greatly to get a helpful response. Always mention which LAMMPS version you are using. The LAMMPS forum was recently created as part of a larger effort to build a materials science community and have discussions not just about using LAMMPS. Thus the forum may be also used for discussions that would be off-topic for the mailing list. Those will just have to be moved to a more general category.
## How Can I Contribute?
There are several ways how you can actively contribute to the LAMMPS project: you can discuss compiling and using LAMMPS, and solving LAMMPS related problems with other LAMMPS users on the lammps-users mailing list, you can report bugs or suggest enhancements by creating issues on GitHub (or posting them to the lammps-users mailing list), and you can contribute by submitting pull requests on GitHub or e-mail your code
There are several ways how you can actively contribute to the LAMMPS project: you can discuss compiling and using LAMMPS, and solving LAMMPS related problems with other LAMMPS users on the lammps-users mailing list, you can report bugs or suggest enhancements by creating issues on GitHub (or posting them to the lammps-users mailing list or posting in the LAMMPS Materials Science Discourse forum), and you can contribute by submitting pull requests on GitHub or e-mail your code
to one of the [LAMMPS core developers](https://lammps.sandia.gov/authors.html). As you may see from the aforementioned developer page, the LAMMPS software package includes the efforts of a very large number of contributors beyond the principal authors and maintainers.
### Discussing How To Use LAMMPS
@ -42,6 +42,8 @@ Anyone can browse/search previous questions/answers in the archives. You do not
If you post a message and you are a subscriber, your message will appear immediately. If you are not a subscriber, your message will be moderated, which typically takes one business day. Either way, when someone replies the reply will usually be sent to both, your personal email address and the mailing list. When replying to people, that responded to your post to the list, please always included the mailing list in your replies (i.e. use "Reply All" and **not** "Reply"). Responses will appear on the list in a few minutes, but it can take a few hours for postings and replies to show up in the SourceForge archive. Sending replies also to the mailing list is important, so that responses are archived and people with a similar issue can search for possible solutions in the mailing list archive.
The LAMMPS Materials Science Discourse forum was created recently to facilitate discussion not just about LAMMPS and as part of a larger effort towards building a materials science community. The forum contains a read-only sub-category with the continually updated mailing list archive, so you won't miss anything by joining only the forum and not the mailing list.
### Reporting Bugs
While developers writing code for LAMMPS are careful to test their code, LAMMPS is such a large and complex software, that it is impossible to test for all combinations of features under all normal and not so normal circumstances. Thus bugs do happen, and if you suspect, that you have encountered one, please try to document it and report it as an [Issue](https://github.com/lammps/lammps/issues) on the LAMMPS GitHub project web page. However, before reporting a bug, you need to check whether this is something that may have already been corrected. The [Latest Features and Bug Fixes in LAMMPS](https://lammps.sandia.gov/bug.html) web page lists all significant changes to LAMMPS over the years. It also tells you what the current latest development version of LAMMPS is, and you should test whether your issue still applies to that version.
@ -72,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.

4
.github/codeql/cpp.yml vendored Normal file
View File

@ -0,0 +1,4 @@
paths:
- src
- lib
- tools

5
.github/codeql/python.yml vendored Normal file
View File

@ -0,0 +1,5 @@
paths:
- python/lammps
queries:
- uses: security-and-quality

49
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@ -0,0 +1,49 @@
# GitHub action to run static code analysis on C++ and Python code
name: "CodeQL Code Analysis"
on:
push:
branches: [master]
jobs:
analyze:
name: Analyze
if: ${{ github.repository == 'lammps/lammps' }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
language: ['cpp', 'python']
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
fetch-depth: 2
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
config-file: ./.github/codeql/${{ matrix.language }}.yml
- name: Create Build Environment
if: ${{ matrix.language == 'cpp' }}
run: mkdir build
- name: Building LAMMPS via CMake
if: ${{ matrix.language == 'cpp' }}
shell: bash
working-directory: build
run: |
cmake -C ../cmake/presets/most.cmake ../cmake
cmake --build . --parallel 2
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

54
.github/workflows/unittest-macos.yml vendored Normal file
View File

@ -0,0 +1,54 @@
# GitHub action to build LAMMPS on MacOS and run unit tests
name: "Unittest for MacOS"
on:
push:
branches: [master]
jobs:
build:
name: MacOS Unit Test
if: ${{ github.repository == 'lammps/lammps' }}
runs-on: macos-latest
env:
CCACHE_DIR: ${{ github.workspace }}/.ccache
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
fetch-depth: 2
- name: Install ccache
run: brew install ccache
- name: Create Build Environment
run: mkdir build
- name: Set up ccache
uses: actions/cache@v2
with:
path: ${{ env.CCACHE_DIR }}
key: macos-ccache-${{ github.sha }}
restore-keys: macos-ccache-
- name: Building LAMMPS via CMake
shell: bash
working-directory: build
run: |
ccache -z
cmake -C ../cmake/presets/clang.cmake \
-C ../cmake/presets/most.cmake \
-D CMAKE_CXX_COMPILER_LAUNCHER=ccache \
-D CMAKE_C_COMPILER_LAUNCHER=ccache \
-D ENABLE_TESTING=on \
-D BUILD_SHARED_LIBS=on \
-D LAMMPS_EXCEPTIONS=on \
../cmake
cmake --build . --parallel 2
ccache -s
- name: Run Tests
working-directory: build
shell: bash
run: ctest -V

1
.gitignore vendored
View File

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

14
.lgtm.yml Normal file
View File

@ -0,0 +1,14 @@
extraction:
cpp:
configure:
command:
- "mkdir build"
- "cd build"
- "cmake -G Ninja -C ../cmake/presets/most.cmake ../cmake"
index:
build_command:
- "cd build"
- "ninja"
python:
python_setup:
version: 3

View File

@ -1,6 +1,6 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
@ -301,9 +301,8 @@ one line to give the program's name and an idea of what it does.
Copyright (C) yyyy name of author
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.
it under the terms of the GNU General Public License version 2 as
published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of

20
README
View File

@ -14,10 +14,10 @@ LAMMPS is a classical molecular dynamics simulation code designed to
run efficiently on parallel computers. It was developed at Sandia
National Laboratories, a US Department of Energy facility, with
funding from the DOE. It is an open-source code, distributed freely
under the terms of the GNU Public License (GPL).
under the terms of the GNU Public License (GPL) version 2.
The primary author of the code is Steve Plimpton, who can be emailed
at sjplimp@sandia.gov. The LAMMPS WWW Site at lammps.sandia.gov has
at sjplimp@sandia.gov. The LAMMPS WWW Site at www.lammps.org has
more information about the code and its uses.
The LAMMPS distribution includes the following files and directories:
@ -37,14 +37,14 @@ tools pre- and post-processing tools
Point your browser at any of these files to get started:
https://lammps.sandia.gov/doc/Manual.html LAMMPS manual
https://lammps.sandia.gov/doc/Intro.html hi-level introduction
https://lammps.sandia.gov/doc/Build.html how to build LAMMPS
https://lammps.sandia.gov/doc/Run_head.html how to run LAMMPS
https://lammps.sandia.gov/doc/Commands_all.html Table of available commands
https://lammps.sandia.gov/doc/Library.html LAMMPS library interfaces
https://lammps.sandia.gov/doc/Modify.html how to modify and extend LAMMPS
https://lammps.sandia.gov/doc/Developer.html LAMMPS developer info
https://docs.lammps.org/Manual.html LAMMPS manual
https://docs.lammps.org/Intro.html hi-level introduction
https://docs.lammps.org/Build.html how to build LAMMPS
https://docs.lammps.org/Run_head.html how to run LAMMPS
https://docs.lammps.org/Commands_all.html Table of available commands
https://docs.lammps.org/Library.html LAMMPS library interfaces
https://docs.lammps.org/Modify.html how to modify and extend LAMMPS
https://docs.lammps.org/Developer.html LAMMPS developer info
You can also create these doc pages locally:

35
SECURITY.md Normal file
View File

@ -0,0 +1,35 @@
# Security Policy
LAMMPS is designed as a user-level application to conduct computer
simulations for research using classical mechanics. As such LAMMPS
depends to some degrees on users providing correctly formatted input and
LAMMPS needs to read and write files based on uncontrolled user input.
As a parallel application for use in high-performance computing
environments, performance critical steps are also done without checking
data.
LAMMPS also is interfaced to a number of external libraries, including
libraries with experimental research software, that are not validated
and tested by the LAMMPS developers, so it is easy to import bad
behavior from calling functions in one of those libraries.
Thus is is quite easy to crash LAMMPS through malicious input and do all
kinds of filesystem manipulations. And because of that LAMMPS should
**NEVER** be compiled or **run** as superuser, either from a "root" or
"administrator" account directly or indirectly via "sudo" or "su".
Therefore what could be seen as a security vulnerability is usually
either a user mistake or a bug in the code. Bugs can be reported in
the LAMMPS project
[issue tracker on GitHub](https://github.com/lammps/lammps/issues).
# Version Updates
LAMMPS follows continuous release development model. We aim to keep all
release versions (stable or patch) fully functional and employ a variety
of automatic testing procedures to detect failures of existing
functionality from adding new features before releases are made. Thus
bugfixes and updates are only integrated into the current development
branch and thus the next (patch) release and users are recommended to
update regularly.

View File

@ -1,7 +1,7 @@
These are input scripts used to run benchmark tests for many of the
interatomic potentials in LAMMPS. The results of running these
scripts on different machines are shown on the Potentials section of
the Benchmark page of the LAMMPS WWW site (lammps.sandia.gov/bench).
the Benchmark page of the LAMMPS WWW site (https://www.lammps.org/bench.html).
Examples are shown below of how to run these scripts. Log files for
running them on 1 and 4 processors of a Linux box are included in the

24
bench/POTENTIALS/in.meam Normal file
View File

@ -0,0 +1,24 @@
# bulk Ni in MEAM
units metal
atom_style atomic
lattice fcc 3.52
region box block 0 20 0 20 0 20
create_box 1 box
create_atoms 1 box
pair_style meam
pair_coeff * * library.meam Ni4 Ni.meam Ni4
velocity all create 1600.0 376847 loop geom
neighbor 1.0 bin
neigh_modify delay 5 every 1
fix 1 all nve
timestep 0.005
thermo 50
run 100

View File

@ -1,24 +0,0 @@
# bulk Ni in MEAM
units metal
atom_style atomic
lattice fcc 3.52
region box block 0 20 0 20 0 20
create_box 1 box
create_atoms 1 box
pair_style meam/c
pair_coeff * * library.meam Ni4 Ni.meam Ni4
velocity all create 1600.0 376847 loop geom
neighbor 1.0 bin
neigh_modify delay 5 every 1
fix 1 all nve
timestep 0.005
thermo 50
run 100

View File

@ -0,0 +1,84 @@
LAMMPS (9 Oct 2020)
using 1 OpenMP thread(s) per MPI task
# bulk Ni in MEAM
units metal
atom_style atomic
lattice fcc 3.52
Lattice spacing in x,y,z = 3.5200000 3.5200000 3.5200000
region box block 0 20 0 20 0 20
create_box 1 box
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (70.400000 70.400000 70.400000)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 32000 atoms
create_atoms CPU = 0.002 seconds
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
velocity all create 1600.0 376847 loop geom
neighbor 1.0 bin
neigh_modify delay 5 every 1
fix 1 all nve
timestep 0.005
thermo 50
run 100
Neighbor list info ...
update every 1 steps, delay 5 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5
ghost atom cutoff = 5
binsize = 2.5, bins = 29 29 29
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair meam, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(2) pair meam, perpetual, half/full from (1)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 55.92 | 55.92 | 55.92 Mbytes
Step Temp E_pair E_mol TotEng Press
0 1600 -142400 0 -135782.09 20259.18
50 885.10702 -139411.51 0 -135750.54 32425.431
100 895.50973 -139454.3 0 -135750.3 31804.185
Loop time of 21.655 on 1 procs for 100 steps with 32000 atoms
Performance: 1.995 ns/day, 12.031 hours/ns, 4.618 timesteps/s
99.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 21.181 | 21.181 | 21.181 | 0.0 | 97.81
Neigh | 0.42787 | 0.42787 | 0.42787 | 0.0 | 1.98
Comm | 0.013557 | 0.013557 | 0.013557 | 0.0 | 0.06
Output | 0.00020766 | 0.00020766 | 0.00020766 | 0.0 | 0.00
Modify | 0.023456 | 0.023456 | 0.023456 | 0.0 | 0.11
Other | | 0.008504 | | | 0.04
Nlocal: 32000.0 ave 32000 max 32000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 13576.0 ave 13576 max 13576 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 780360.0 ave 780360 max 780360 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 1.56072e+06 ave 1.56072e+06 max 1.56072e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1560720
Ave neighs/atom = 48.772500
Neighbor list builds = 8
Dangerous builds = 0
Total wall time: 0:00:21

View File

@ -0,0 +1,84 @@
LAMMPS (9 Oct 2020)
using 1 OpenMP thread(s) per MPI task
# bulk Ni in MEAM
units metal
atom_style atomic
lattice fcc 3.52
Lattice spacing in x,y,z = 3.5200000 3.5200000 3.5200000
region box block 0 20 0 20 0 20
create_box 1 box
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (70.400000 70.400000 70.400000)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 32000 atoms
create_atoms CPU = 0.001 seconds
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
velocity all create 1600.0 376847 loop geom
neighbor 1.0 bin
neigh_modify delay 5 every 1
fix 1 all nve
timestep 0.005
thermo 50
run 100
Neighbor list info ...
update every 1 steps, delay 5 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5
ghost atom cutoff = 5
binsize = 2.5, bins = 29 29 29
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair meam, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(2) pair meam, perpetual, half/full from (1)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 17.42 | 17.42 | 17.42 Mbytes
Step Temp E_pair E_mol TotEng Press
0 1600 -142400 0 -135782.09 20259.18
50 885.10702 -139411.51 0 -135750.54 32425.431
100 895.50973 -139454.3 0 -135750.3 31804.185
Loop time of 6.34746 on 4 procs for 100 steps with 32000 atoms
Performance: 6.806 ns/day, 3.526 hours/ns, 15.754 timesteps/s
98.0% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 6.0585 | 6.1109 | 6.1535 | 1.4 | 96.27
Neigh | 0.11286 | 0.11651 | 0.12455 | 1.4 | 1.84
Comm | 0.058046 | 0.099641 | 0.15569 | 11.7 | 1.57
Output | 9.0122e-05 | 0.00016046 | 0.0003624 | 0.0 | 0.00
Modify | 0.010822 | 0.011674 | 0.014224 | 1.4 | 0.18
Other | | 0.008601 | | | 0.14
Nlocal: 8000.00 ave 8045 max 7947 min
Histogram: 1 0 0 1 0 0 0 1 0 1
Nghost: 6066.75 ave 6120 max 6021 min
Histogram: 1 0 1 0 0 0 1 0 0 1
Neighs: 195090.0 ave 196403 max 193697 min
Histogram: 1 0 0 1 0 0 0 1 0 1
FullNghs: 390180.0 ave 392616 max 387490 min
Histogram: 1 0 0 1 0 0 0 1 0 1
Total # of neighbors = 1560720
Ave neighs/atom = 48.772500
Neighbor list builds = 8
Dangerous builds = 0
Total wall time: 0:00:06

View File

@ -1,84 +0,0 @@
LAMMPS (9 Oct 2020)
using 1 OpenMP thread(s) per MPI task
# bulk Ni in MEAM
units metal
atom_style atomic
lattice fcc 3.52
Lattice spacing in x,y,z = 3.5200000 3.5200000 3.5200000
region box block 0 20 0 20 0 20
create_box 1 box
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (70.400000 70.400000 70.400000)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 32000 atoms
create_atoms CPU = 0.002 seconds
pair_style meam/c
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
velocity all create 1600.0 376847 loop geom
neighbor 1.0 bin
neigh_modify delay 5 every 1
fix 1 all nve
timestep 0.005
thermo 50
run 100
Neighbor list info ...
update every 1 steps, delay 5 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5
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
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(2) pair meam/c, perpetual, half/full from (1)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 55.92 | 55.92 | 55.92 Mbytes
Step Temp E_pair E_mol TotEng Press
0 1600 -142400 0 -135782.09 20259.18
50 885.10702 -139411.51 0 -135750.54 32425.431
100 895.50973 -139454.3 0 -135750.3 31804.185
Loop time of 21.655 on 1 procs for 100 steps with 32000 atoms
Performance: 1.995 ns/day, 12.031 hours/ns, 4.618 timesteps/s
99.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 21.181 | 21.181 | 21.181 | 0.0 | 97.81
Neigh | 0.42787 | 0.42787 | 0.42787 | 0.0 | 1.98
Comm | 0.013557 | 0.013557 | 0.013557 | 0.0 | 0.06
Output | 0.00020766 | 0.00020766 | 0.00020766 | 0.0 | 0.00
Modify | 0.023456 | 0.023456 | 0.023456 | 0.0 | 0.11
Other | | 0.008504 | | | 0.04
Nlocal: 32000.0 ave 32000 max 32000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 13576.0 ave 13576 max 13576 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 780360.0 ave 780360 max 780360 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 1.56072e+06 ave 1.56072e+06 max 1.56072e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1560720
Ave neighs/atom = 48.772500
Neighbor list builds = 8
Dangerous builds = 0
Total wall time: 0:00:21

View File

@ -1,84 +0,0 @@
LAMMPS (9 Oct 2020)
using 1 OpenMP thread(s) per MPI task
# bulk Ni in MEAM
units metal
atom_style atomic
lattice fcc 3.52
Lattice spacing in x,y,z = 3.5200000 3.5200000 3.5200000
region box block 0 20 0 20 0 20
create_box 1 box
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (70.400000 70.400000 70.400000)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 32000 atoms
create_atoms CPU = 0.001 seconds
pair_style meam/c
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
velocity all create 1600.0 376847 loop geom
neighbor 1.0 bin
neigh_modify delay 5 every 1
fix 1 all nve
timestep 0.005
thermo 50
run 100
Neighbor list info ...
update every 1 steps, delay 5 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5
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
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
(2) pair meam/c, perpetual, half/full from (1)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 17.42 | 17.42 | 17.42 Mbytes
Step Temp E_pair E_mol TotEng Press
0 1600 -142400 0 -135782.09 20259.18
50 885.10702 -139411.51 0 -135750.54 32425.431
100 895.50973 -139454.3 0 -135750.3 31804.185
Loop time of 6.34746 on 4 procs for 100 steps with 32000 atoms
Performance: 6.806 ns/day, 3.526 hours/ns, 15.754 timesteps/s
98.0% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 6.0585 | 6.1109 | 6.1535 | 1.4 | 96.27
Neigh | 0.11286 | 0.11651 | 0.12455 | 1.4 | 1.84
Comm | 0.058046 | 0.099641 | 0.15569 | 11.7 | 1.57
Output | 9.0122e-05 | 0.00016046 | 0.0003624 | 0.0 | 0.00
Modify | 0.010822 | 0.011674 | 0.014224 | 1.4 | 0.18
Other | | 0.008601 | | | 0.14
Nlocal: 8000.00 ave 8045 max 7947 min
Histogram: 1 0 0 1 0 0 0 1 0 1
Nghost: 6066.75 ave 6120 max 6021 min
Histogram: 1 0 1 0 0 0 1 0 0 1
Neighs: 195090.0 ave 196403 max 193697 min
Histogram: 1 0 0 1 0 0 0 1 0 1
FullNghs: 390180.0 ave 392616 max 387490 min
Histogram: 1 0 0 1 0 0 0 1 0 1
Total # of neighbors = 1560720
Ave neighs/atom = 48.772500
Neighbor list builds = 8
Dangerous builds = 0
Total wall time: 0:00:06

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

@ -2,7 +2,7 @@ LAMMPS benchmark problems
This directory contains 5 benchmark problems which are discussed in
the Benchmark section of the LAMMPS documentation, and on the
Benchmark page of the LAMMPS WWW site (lammps.sandia.gov/bench).
Benchmark page of the LAMMPS WWW site (https://www.lammps.org/bench.html).
This directory also has several sub-directories:
@ -11,7 +11,7 @@ KEPLER benchmark scripts for GPU cluster with Kepler GPUs
POTENTIALS benchmarks scripts for various potentials in LAMMPS
The results for all of these benchmarks are displayed and discussed on
the Benchmark page of the LAMMPS WWW site: lammps.sandia.gov/bench.
the Benchmark page of the LAMMPS WWW site: https://www.lammps.org/bench.html
The remainder of this file refers to the 5 problems in the top-level
of this directory and how to run them on CPUs, either in serial or

View File

@ -7,6 +7,11 @@ cmake_minimum_required(VERSION 3.10)
if(POLICY CMP0074)
cmake_policy(SET CMP0074 NEW)
endif()
# set policy to silence warnings about missing executable permissions in
# pythonx.y-config when cross-compiling. review occasionally if it may be set to NEW
if(POLICY CMP0109)
cmake_policy(SET CMP0109 OLD)
endif()
########################################
project(lammps CXX)
@ -22,18 +27,30 @@ set(LAMMPS_TOOLS_DIR ${LAMMPS_DIR}/tools)
set(LAMMPS_PYTHON_DIR ${LAMMPS_DIR}/python)
set(LAMMPS_POTENTIALS_DIR ${LAMMPS_DIR}/potentials)
set(LAMMPS_DOWNLOADS_URL "https://download.lammps.org" CACHE STRING "Base URL for LAMMPS downloads")
set(LAMMPS_POTENTIALS_URL "${LAMMPS_DOWNLOADS_URL}/potentials")
set(LAMMPS_THIRDPARTY_URL "${LAMMPS_DOWNLOADS_URL}/thirdparty")
mark_as_advanced(LAMMPS_DOWNLOADS_URL)
find_package(Git)
# by default, install into $HOME/.local (not /usr/local), so that no root access (and sudo!!) is needed
if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/.local" CACHE PATH "default install path" FORCE )
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/.local" CACHE PATH "Default install path" FORCE)
endif()
# If enabled, no need to use LD_LIBRARY_PATH / DYLD_LIBRARY_PATH when installed
option(LAMMPS_INSTALL_RPATH "Set runtime path for shared libraries linked to LAMMPS binaries" OFF)
if(LAMMPS_INSTALL_RPATH)
set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR})
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH ON)
endif()
# Cmake modules/macros are in a subdirectory to keep this file cleaner
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules)
# make sure LIBRARY_PATH is set if environment variable is set
if (DEFINED ENV{LIBRARY_PATH})
if(DEFINED ENV{LIBRARY_PATH})
list(APPEND CMAKE_LIBRARY_PATH "$ENV{LIBRARY_PATH}")
message(STATUS "Appending $ENV{LIBRARY_PATH} to CMAKE_LIBRARY_PATH: ${CMAKE_LIBRARY_PATH}")
endif()
@ -60,7 +77,7 @@ check_for_autogen_files(${LAMMPS_SOURCE_DIR})
include(CheckIncludeFileCXX)
# set required compiler flags and compiler/CPU arch specific optimizations
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -restrict")
if(CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.3 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.4)
set(CMAKE_TUNE_DEFAULT "-xCOMMON-AVX512")
@ -74,6 +91,11 @@ set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF CACHE BOOL "Use compiler extensions")
# export all symbols when building a .dll file on windows
if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND BUILD_SHARED_LIBS)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
endif()
########################################################################
# User input options #
########################################################################
@ -92,11 +114,23 @@ endif()
option(BUILD_TOOLS "Build and install LAMMPS tools (msi2lmp, binary2txt, chain)" OFF)
option(BUILD_LAMMPS_SHELL "Build and install the LAMMPS shell" OFF)
# allow enabling clang-tidy for C++ files
set(ENABLE_CLANG_TIDY OFF CACHE BOOL "Include clang-tidy processing when compiling")
if(ENABLE_CLANG_TIDY)
set(CMAKE_CXX_CLANG_TIDY "clang-tidy;-checks=*-header-filter=.*" CACHE STRING "")
endif()
include(GNUInstallDirs)
file(GLOB ALL_SOURCES ${LAMMPS_SOURCE_DIR}/[^.]*.cpp)
file(GLOB MAIN_SOURCES ${LAMMPS_SOURCE_DIR}/main.cpp)
list(REMOVE_ITEM ALL_SOURCES ${MAIN_SOURCES})
add_library(lammps ${ALL_SOURCES})
# tell CMake to export all symbols to a .dll on Windows with MinGW cross-compilers
if(BUILD_SHARED_LIBS AND (CMAKE_SYSTEM_NAME STREQUAL "Windows") AND CMAKE_CROSSCOMPILING)
set_target_properties(lammps PROPERTIES LINK_FLAGS "-Wl,--export-all-symbols")
endif()
add_executable(lmp ${MAIN_SOURCES})
target_link_libraries(lmp PRIVATE lammps)
set_target_properties(lmp PROPERTIES OUTPUT_NAME ${LAMMPS_BINARY})
@ -104,16 +138,87 @@ 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
QEQ REPLICA RIGID SHOCK SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI
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-LB
USER-MANIFOLD USER-MEAMC USER-MESONT USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
USER-NETCDF USER-PHONON USER-PLUMED USER-PTM USER-QTB 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-ADIOS)
set(SUFFIX_PACKAGES CORESHELL USER-OMP KOKKOS OPT USER-INTEL GPU)
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 INTEL OPENMP)
foreach(PKG ${STANDARD_PACKAGES} ${SUFFIX_PACKAGES})
option(PKG_${PKG} "Build ${PKG} Package" OFF)
endforeach()
@ -123,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
@ -137,12 +242,13 @@ if(NOT CMAKE_CROSSCOMPILING)
find_package(MPI QUIET)
option(BUILD_MPI "Build MPI version" ${MPI_FOUND})
else()
set(MPI_CXX_SKIP_MPICXX TRUE)
option(BUILD_MPI "Build MPI version" OFF)
endif()
if(BUILD_MPI)
# We use a non-standard procedure to cross-compile with MPI on Windows
if((CMAKE_SYSTEM_NAME STREQUAL Windows) AND CMAKE_CROSSCOMPILING)
if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND CMAKE_CROSSCOMPILING)
include(MPI4WIN)
target_link_libraries(lammps PUBLIC MPI::MPI_CXX)
else()
@ -154,8 +260,7 @@ if(BUILD_MPI)
endif()
endif()
else()
enable_language(C)
file(GLOB MPI_SOURCES ${LAMMPS_SOURCE_DIR}/STUBS/mpi.c)
file(GLOB MPI_SOURCES ${LAMMPS_SOURCE_DIR}/STUBS/mpi.cpp)
add_library(mpi_stubs STATIC ${MPI_SOURCES})
set_target_properties(mpi_stubs PROPERTIES OUTPUT_NAME lammps_mpi_stubs${LAMMPS_MACHINE})
target_include_directories(mpi_stubs PUBLIC $<BUILD_INTERFACE:${LAMMPS_SOURCE_DIR}/STUBS>)
@ -177,7 +282,7 @@ string(TOUPPER ${LAMMPS_SIZES} LAMMPS_SIZES)
target_compile_definitions(lammps PUBLIC -DLAMMPS_${LAMMPS_SIZES})
# posix_memalign is not available on Windows
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(LAMMPS_MEMALIGN "0" CACHE STRING "posix_memalign() is not available on Windows" FORCE)
else()
set(LAMMPS_MEMALIGN "64" CACHE STRING "enables the use of the posix_memalign() call instead of malloc() when large chunks or memory are allocated by LAMMPS. Set to 0 to disable")
@ -193,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)
@ -219,7 +325,10 @@ if(BUILD_OMP)
message(FATAL_ERROR "Cannot find the 'omp.h' header file required for full OpenMP support")
endif()
if (((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 9.0)) OR
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 "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)))
# GCC 9.x and later plus Clang 10.x and later implement strict OpenMP 4.0 semantics for consts.
@ -231,69 +340,7 @@ if(BUILD_OMP)
target_link_libraries(lammps PRIVATE OpenMP::OpenMP_CXX)
endif()
# Compiler specific features for testing
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
option(ENABLE_COVERAGE "Enable collecting code coverage data" OFF)
mark_as_advanced(ENABLE_COVERAGE)
if(ENABLE_COVERAGE)
if(CMAKE_VERSION VERSION_LESS 3.13)
if(CMAKE_CXX_FLAGS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_${CMAKE_BUILD_TYPE}_FLAGS} --coverage")
endif()
else()
target_compile_options(lammps PUBLIC --coverage)
target_link_options(lammps PUBLIC --coverage)
endif()
endif()
endif()
#######################################
# add custom target for IWYU analysis
#######################################
set(ENABLE_IWYU OFF CACHE BOOL "Add 'iwyu' build target to call the include-what-you-use tool")
mark_as_advanced(ENABLE_IWYU)
if(ENABLE_IWYU)
find_program(IWYU_EXE NAMES include-what-you-use iwyu)
find_program(IWYU_TOOL NAMES iwyu_tool iwyu-tool iwyu_tool.py)
if (IWYU_EXE AND IWYU_TOOL)
add_custom_target(
iwyu
${IWYU_TOOL} -o clang -p ${CMAKE_CURRENT_BINARY_DIR} -- -Xiwyu --mapping_file=${CMAKE_CURRENT_SOURCE_DIR}/iwyu/iwyu-extra-map.imp
COMMENT "Running IWYU")
add_dependencies(iwyu lammps)
else()
message(FATAL_ERROR "To use IWYU you need the include-what-you-use/iwyu executable"
"and the iwyu-tool/iwyu_tool script installed in your PATH")
endif()
endif()
set(ENABLE_SANITIZER "none" CACHE STRING "Select a code sanitizer option (none (default), address, leak, thread, undefined)")
mark_as_advanced(ENABLE_SANITIZER)
set(ENABLE_SANITIZER_VALUES none address leak thread undefined)
set_property(CACHE ENABLE_SANITIZER PROPERTY STRINGS ${ENABLE_SANITIZER_VALUES})
validate_option(ENABLE_SANITIZER ENABLE_SANITIZER_VALUES)
string(TOLOWER ${ENABLE_SANITIZER} ENABLE_SANITIZER)
if(NOT ENABLE_SANITIZER STREQUAL "none")
if((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") OR (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang"))
if(CMAKE_VERSION VERSION_LESS 3.13)
if(CMAKE_CXX_FLAGS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=${ENABLE_SANITIZER}")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_${CMAKE_BUILD_TYPE}_FLAGS} -fsanitize=${ENABLE_SANITIZER}")
endif()
else()
target_compile_options(lammps PUBLIC -fsanitize=${ENABLE_SANITIZER})
target_link_options(lammps PUBLIC -fsanitize=${ENABLE_SANITIZER})
endif()
else()
message(WARNING "ENABLE_SANITIZER option not supported by ${CMAKE_CXX_COMPILER_ID} compilers. Ignoring.")
set(ENABLE_SANITIZER "none")
endif()
endif()
if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE)
if(PKG_MSCG OR PKG_ATC OR PKG_AWPMD OR PKG_ML-QUIP OR PKG_LATTE)
enable_language(C)
find_package(LAPACK)
find_package(BLAS)
@ -344,7 +391,7 @@ find_program(GZIP_EXECUTABLE gzip)
find_package_handle_standard_args(GZIP REQUIRED_VARS GZIP_EXECUTABLE)
option(WITH_GZIP "Enable GZIP support" ${GZIP_FOUND})
if(WITH_GZIP)
if(GZIP_FOUND OR ((CMAKE_SYSTEM_NAME STREQUAL Windows) AND CMAKE_CROSSCOMPILING))
if(GZIP_FOUND OR ((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND CMAKE_CROSSCOMPILING))
target_compile_definitions(lammps PRIVATE -DLAMMPS_GZIP)
else()
message(FATAL_ERROR "gzip executable not found")
@ -355,7 +402,7 @@ find_program(FFMPEG_EXECUTABLE ffmpeg)
find_package_handle_standard_args(FFMPEG REQUIRED_VARS FFMPEG_EXECUTABLE)
option(WITH_FFMPEG "Enable FFMPEG support" ${FFMPEG_FOUND})
if(WITH_FFMPEG)
if(FFMPEG_FOUND OR ((CMAKE_SYSTEM_NAME STREQUAL Windows) AND CMAKE_CROSSCOMPILING))
if(FFMPEG_FOUND OR ((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND CMAKE_CROSSCOMPILING))
target_compile_definitions(lammps PRIVATE -DLAMMPS_FFMPEG)
else()
message(FATAL_ERROR "ffmpeg executable not found")
@ -372,8 +419,8 @@ else()
set(CUDA_REQUEST_PIC)
endif()
foreach(PKG_WITH_INCL KSPACE PYTHON VORONOI USER-COLVARS USER-MOLFILE USER-NETCDF USER-PLUMED USER-QMMM
USER-QUIP USER-SCAFACOS USER-SMD USER-VTK KIM LATTE MESSAGE MSCG COMPRESS)
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()
@ -466,11 +513,10 @@ 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)
if(PKG_LIB STREQUAL "mesont")
enable_language(Fortran)
file(GLOB_RECURSE ${PKG_LIB}_SOURCES
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.f90)
@ -482,9 +528,9 @@ foreach(SIMPLE_LIB POEMS USER-ATC USER-AWPMD USER-H5MD USER-MESONT)
add_library(${PKG_LIB} STATIC ${${PKG_LIB}_SOURCES})
set_target_properties(${PKG_LIB} PROPERTIES OUTPUT_NAME lammps_${PKG_LIB}${LAMMPS_MACHINE})
target_link_libraries(lammps PRIVATE ${PKG_LIB})
if(PKG_LIB STREQUAL awpmd)
if(PKG_LIB STREQUAL "awpmd")
target_include_directories(awpmd PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/awpmd/systems/interact ${LAMMPS_LIB_SOURCE_DIR}/awpmd/ivutils/include)
elseif(PKG_LIB STREQUAL h5md)
elseif(PKG_LIB STREQUAL "h5md")
target_include_directories(h5md PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/h5md/include ${HDF5_INCLUDE_DIRS})
else()
target_include_directories(${PKG_LIB} PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB})
@ -492,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(LAMMPS_SIZES STREQUAL BIGBIG)
message(FATAL_ERROR "The USER-ATC Package is not compatible with -DLAMMPS_BIGBIG")
if(PKG_ATC)
if(LAMMPS_SIZES STREQUAL "BIGBIG")
message(FATAL_ERROR "The ATC Package is not compatible with -DLAMMPS_BIGBIG")
endif()
target_link_libraries(atc PRIVATE ${LAPACK_LIBRARIES})
if(BUILD_MPI)
@ -510,26 +556,38 @@ 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()
endforeach()
if(PKG_PLUGIN)
if(BUILD_SHARED_LIBS)
target_compile_definitions(lammps PRIVATE -DLMP_PLUGIN)
else()
message(WARNING "Plugin loading will not work unless BUILD_SHARED_LIBS is enabled")
endif()
# link with -ldl or equivalent for plugin loading; except on Windows
if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
target_link_libraries(lammps PRIVATE ${CMAKE_DL_LIBS})
endif()
endif()
######################################################################
# the windows version of LAMMPS requires a couple extra libraries
# and the MPI library - if use - has to be linked right before those
# and after everything else that is compiled locally
######################################################################
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
target_link_libraries(lammps PRIVATE -lwsock32 -lpsapi)
endif()
@ -578,8 +636,8 @@ add_dependencies(lammps gitversion)
# Actually add executable and lib to build
############################################
get_property(LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES)
list (FIND LANGUAGES "Fortran" _index)
if (${_index} GREATER -1)
list(FIND LANGUAGES "Fortran" _index)
if(_index GREATER -1)
target_link_libraries(lammps PRIVATE ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
endif()
set(LAMMPS_CXX_HEADERS angle.h atom.h bond.h citeme.h comm.h compute.h dihedral.h domain.h error.h fix.h force.h group.h improper.h
@ -649,7 +707,7 @@ install(
if(BUILD_SHARED_LIBS)
if(CMAKE_VERSION VERSION_LESS 3.12)
# adjust so we find Python 3 versions before Python 2 on old systems with old CMake
set(Python_ADDITIONAL_VERSIONS 3.8 3.7 3.6 3.5)
set(Python_ADDITIONAL_VERSIONS 3.9 3.8 3.7 3.6 3.5)
find_package(PythonInterp) # Deprecated since version 3.12
if(PYTHONINTERP_FOUND)
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
@ -657,12 +715,12 @@ if(BUILD_SHARED_LIBS)
else()
find_package(Python COMPONENTS Interpreter)
endif()
if (Python_EXECUTABLE)
if(Python_EXECUTABLE)
add_custom_target(
install-python
${Python_EXECUTABLE} install.py -v ${LAMMPS_SOURCE_DIR}/version.h
-m ${LAMMPS_PYTHON_DIR}/lammps.py
-l ${CMAKE_BINARY_DIR}/liblammps${CMAKE_SHARED_LIBRARY_SUFFIX}
install-python ${CMAKE_COMMAND} -E remove_directory build
COMMAND ${Python_EXECUTABLE} install.py -v ${LAMMPS_SOURCE_DIR}/version.h
-p ${LAMMPS_PYTHON_DIR}/lammps
-l ${CMAKE_BINARY_DIR}/liblammps${LAMMPS_MACHINE}${CMAKE_SHARED_LIBRARY_SUFFIX}
WORKING_DIRECTORY ${LAMMPS_PYTHON_DIR}
COMMENT "Installing LAMMPS Python module")
else()
@ -690,12 +748,9 @@ if(BUILD_SHARED_LIBS OR PKG_PYTHON)
else()
find_package(Python COMPONENTS Interpreter)
endif()
if (Python_EXECUTABLE)
execute_process(COMMAND ${Python_EXECUTABLE}
-c "import distutils.sysconfig as cg; print(cg.get_python_lib(1,0,prefix='${CMAKE_INSTALL_PREFIX}'))"
OUTPUT_VARIABLE PYTHON_DEFAULT_INSTDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
set(PYTHON_INSTDIR ${PYTHON_DEFAULT_INSTDIR} CACHE PATH "Installation folder for LAMMPS Python module")
install(FILES ${LAMMPS_PYTHON_DIR}/lammps.py DESTINATION ${PYTHON_INSTDIR})
if(Python_EXECUTABLE)
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/python)
install(CODE "execute_process(COMMAND ${Python_EXECUTABLE} setup.py build -b ${CMAKE_BINARY_DIR}/python install --prefix=${CMAKE_INSTALL_PREFIX} --root=\$ENV{DESTDIR}/ WORKING_DIRECTORY ${LAMMPS_PYTHON_DIR})")
endif()
endif()
@ -707,7 +762,7 @@ get_target_property(DEFINES lammps COMPILE_DEFINITIONS)
include(FeatureSummary)
feature_summary(DESCRIPTION "The following tools and libraries have been found and configured:" WHAT PACKAGES_FOUND)
message(STATUS "<<< Build configuration >>>
Operating System: ${CMAKE_SYSTEM_NAME}
Operating System: ${CMAKE_SYSTEM_NAME} ${CMAKE_LINUX_DISTRO} ${CMAKE_DISTRO_VERSION}
Build type: ${CMAKE_BUILD_TYPE}
Install path: ${CMAKE_INSTALL_PREFIX}
Generator: ${CMAKE_GENERATOR} using ${CMAKE_MAKE_PROGRAM}")
@ -738,15 +793,15 @@ if(OPTIONS)
message(" Options: ${OPTIONS}")
endif()
get_property(LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES)
list (FIND LANGUAGES "Fortran" _index)
if (${_index} GREATER -1)
list(FIND LANGUAGES "Fortran" _index)
if(_index GREATER -1)
message(STATUS "Fortran Compiler: ${CMAKE_Fortran_COMPILER}
Type: ${CMAKE_Fortran_COMPILER_ID}
Version: ${CMAKE_Fortran_COMPILER_VERSION}
Fortran Flags:${CMAKE_Fortran_FLAGS} ${CMAKE_Fortran_FLAGS_${BTYPE}}")
endif()
list (FIND LANGUAGES "C" _index)
if (${_index} GREATER -1)
list(FIND LANGUAGES "C" _index)
if(_index GREATER -1)
message(STATUS "C compiler: ${CMAKE_C_COMPILER}
Type: ${CMAKE_C_COMPILER_ID}
Version: ${CMAKE_C_COMPILER_VERSION}
@ -776,11 +831,12 @@ if(BUILD_MPI)
endif()
if(PKG_GPU)
message(STATUS "<<< GPU package settings >>>
-- GPU API: ${GPU_API}")
-- GPU API: ${GPU_API}")
if(GPU_API STREQUAL "CUDA")
message(STATUS "GPU architecture: ${GPU_ARCH}")
elseif(GPU_API STREQUAL "OPENCL")
message(STATUS "OpenCL tuning: ${OCL_TUNE}")
message(STATUS "CUDA Compiler: ${CUDA_NVCC_EXECUTABLE}")
message(STATUS "GPU default architecture: ${GPU_ARCH}")
message(STATUS "GPU binning with CUDPP: ${CUDPP_OPT}")
message(STATUS "CUDA MPS support: ${CUDA_MPS_SUPPORT}")
elseif(GPU_API STREQUAL "HIP")
message(STATUS "HIP platform: ${HIP_PLATFORM}")
message(STATUS "HIP architecture: ${HIP_ARCH}")
@ -790,7 +846,7 @@ if(PKG_GPU)
message(STATUS "HIP GPU sorting: off")
endif()
endif()
message(STATUS "GPU precision: ${GPU_PREC}")
message(STATUS "GPU precision: ${GPU_PREC}")
endif()
if(PKG_KOKKOS)
message(STATUS "Kokkos Arch: ${KOKKOS_ARCH}")
@ -810,7 +866,7 @@ if(PKG_KSPACE)
endif()
if(PKG_KOKKOS)
if(Kokkos_ENABLE_CUDA)
if (${FFT} STREQUAL "KISS")
if(FFT STREQUAL "KISS")
message(STATUS "Kokkos FFT: KISS")
else()
message(STATUS "Kokkos FFT: cuFFT")

View File

@ -8,13 +8,18 @@ else()
find_package(Python3 COMPONENTS Interpreter QUIET)
endif()
if (Python3_EXECUTABLE)
if(Python3_EXECUTABLE)
if(Python3_VERSION VERSION_GREATER_EQUAL 3.5)
add_custom_target(
check-whitespace
${Python3_EXECUTABLE} ${LAMMPS_TOOLS_DIR}/coding_standard/whitespace.py .
WORKING_DIRECTORY ${LAMMPS_DIR}
COMMENT "Check for whitespace errors")
add_custom_target(
check-homepage
${Python3_EXECUTABLE} ${LAMMPS_TOOLS_DIR}/coding_standard/homepage.py .
WORKING_DIRECTORY ${LAMMPS_DIR}
COMMENT "Check for homepage URL errors")
add_custom_target(
check-permissions
${Python3_EXECUTABLE} ${LAMMPS_TOOLS_DIR}/coding_standard/permissions.py .
@ -25,6 +30,11 @@ if (Python3_EXECUTABLE)
${Python3_EXECUTABLE} ${LAMMPS_TOOLS_DIR}/coding_standard/whitespace.py -f .
WORKING_DIRECTORY ${LAMMPS_DIR}
COMMENT "Fix whitespace errors")
add_custom_target(
fix-homepage
${Python3_EXECUTABLE} ${LAMMPS_TOOLS_DIR}/coding_standard/homepage.py -f .
WORKING_DIRECTORY ${LAMMPS_DIR}
COMMENT "Fix homepage URL errors")
add_custom_target(
fix-permissions
${Python3_EXECUTABLE} ${LAMMPS_TOOLS_DIR}/coding_standard/permissions.py -f .

View File

@ -50,16 +50,20 @@ if(BUILD_DOC)
OUTPUT ${DOC_BUILD_DIR}/requirements.txt
DEPENDS docenv ${DOCENV_REQUIREMENTS_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${DOCENV_REQUIREMENTS_FILE} ${DOC_BUILD_DIR}/requirements.txt
COMMAND ${DOCENV_BINARY_DIR}/pip install --upgrade pip
COMMAND ${DOCENV_BINARY_DIR}/pip install --upgrade ${LAMMPS_DOC_DIR}/utils/converters
COMMAND ${DOCENV_BINARY_DIR}/pip install --use-feature=2020-resolver -r ${DOC_BUILD_DIR}/requirements.txt --upgrade
COMMAND ${DOCENV_BINARY_DIR}/pip $ENV{PIP_OPTIONS} install --upgrade pip
COMMAND ${DOCENV_BINARY_DIR}/pip $ENV{PIP_OPTIONS} install --upgrade ${LAMMPS_DOC_DIR}/utils/converters
COMMAND ${DOCENV_BINARY_DIR}/pip $ENV{PIP_OPTIONS} install -r ${DOC_BUILD_DIR}/requirements.txt --upgrade
)
set(MATHJAX_URL "https://github.com/mathjax/MathJax/archive/3.1.3.tar.gz" CACHE STRING "URL for MathJax tarball")
set(MATHJAX_MD5 "d1c98c746888bfd52ca8ebc10704f92f" CACHE STRING "MD5 checksum of MathJax tarball")
mark_as_advanced(MATHJAX_URL)
# download mathjax distribution and unpack to folder "mathjax"
if(NOT EXISTS ${DOC_BUILD_STATIC_DIR}/mathjax/es5)
file(DOWNLOAD "https://github.com/mathjax/MathJax/archive/3.1.2.tar.gz"
file(DOWNLOAD ${MATHJAX_URL}
"${CMAKE_CURRENT_BINARY_DIR}/mathjax.tar.gz"
EXPECTED_MD5 a4a6a093a89bc2ccab1452d766b98e53)
EXPECTED_MD5 ${MATHJAX_MD5})
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf mathjax.tar.gz WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
file(GLOB MATHJAX_VERSION_DIR ${CMAKE_CURRENT_BINARY_DIR}/MathJax-*)
execute_process(COMMAND ${CMAKE_COMMAND} -E rename ${MATHJAX_VERSION_DIR} ${DOC_BUILD_STATIC_DIR}/mathjax)

View File

@ -0,0 +1,30 @@
# Find the Cythonize tool.
#
# This code sets the following variables:
#
# Cythonize_EXECUTABLE
#
# adapted from https://github.com/cmarshall108/cython-cmake-example/blob/master/cmake/FindCython.cmake
#=============================================================================
if(CMAKE_VERSION VERSION_LESS 3.12)
find_package(PythonInterp 3.6 QUIET) # Deprecated since version 3.12
if(PYTHONINTERP_FOUND)
set(Python3_EXECUTABLE ${PYTHON_EXECUTABLE})
endif()
else()
find_package(Python3 3.6 COMPONENTS Interpreter QUIET)
endif()
# Use the Cython executable that lives next to the Python executable
# if it is a local installation.
if(Python3_EXECUTABLE)
get_filename_component(_python_path ${Python3_EXECUTABLE} PATH)
find_program(Cythonize_EXECUTABLE
NAMES cythonize3 cythonize cythonize.bat
HINTS ${_python_path})
endif()
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Cythonize REQUIRED_VARS Cythonize_EXECUTABLE)
mark_as_advanced(Cythonize_EXECUTABLE)

View File

@ -0,0 +1,61 @@
include(FindPackageHandleStandardArgs)
# Check if N2P2_DIR is set manually.
if (DEFINED ENV{N2P2_DIR})
set(N2P2_DIR "${N2P2_DIR}")
# If not, try if directory "lib/hdnnp/n2p2" exists.
else()
get_filename_component(_fullpath "${LAMMPS_LIB_SOURCE_DIR}/hdnnp/n2p2" REALPATH)
if (EXISTS ${_fullpath})
set(N2P2_DIR "${_fullpath}")
endif()
endif()
# Set path to include directory.
find_path(N2P2_INCLUDE_DIR InterfaceLammps.h HINTS "${N2P2_DIR}/include")
# Two libraries need to be linked: libnnp and libnnpif.
find_library(N2P2_LIBNNP NAMES nnp HINTS "${N2P2_DIR}/lib")
find_library(N2P2_LIBNNPIF NAMES nnpif HINTS "${N2P2_DIR}/lib")
# Users could compile n2p2 with extra flags which are then also required for
# pair_hdnnp.cpp compilation. To forward them to the LAMMPS build process n2p2
# writes a file with cmake commands, e.g.
#
# target_compile_definitions(lammps PRIVATE -DN2P2_NO_SF_GROUPS)
#
# 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
N2P2_DIR
N2P2_INCLUDE_DIR
N2P2_LIBNNP
N2P2_LIBNNPIF
N2P2_CMAKE_EXTRA)
if(N2P2_FOUND)
if (NOT TARGET N2P2::N2P2)
# n2p2 core library "libnnp"
add_library(N2P2::LIBNNP UNKNOWN IMPORTED)
set_target_properties(N2P2::LIBNNP PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES ${N2P2_INCLUDE_DIR}
IMPORTED_LOCATION ${N2P2_LIBNNP})
# n2p2 interface library "libnnpif"
add_library(N2P2::LIBNNPIF UNKNOWN IMPORTED)
set_target_properties(N2P2::LIBNNPIF PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES ${N2P2_INCLUDE_DIR}
IMPORTED_LOCATION ${N2P2_LIBNNPIF})
# Put libnnp, libnnpif and include directory together.
add_library(N2P2::N2P2 INTERFACE IMPORTED)
set_property(TARGET N2P2::N2P2 PROPERTY
INTERFACE_LINK_LIBRARIES N2P2::LIBNNPIF N2P2::LIBNNP)
set(N2P2_CMAKE_EXTRAS ${N2P2_CMAKE_EXTRA})
endif()
endif()
mark_as_advanced(
N2P2_DIR
N2P2_INCLUDE_DIR
N2P2_LIBNNP
N2P2_LIBNNPIF
N2P2_CMAKE_EXTRA
)

View File

@ -1,6 +1,6 @@
message(STATUS "Downloading and building Google Test library")
if(CMAKE_BUILD_TYPE STREQUAL Debug)
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
set(GTEST_LIB_POSTFIX d)
else()
set(GTEST_LIB_POSTFIX)
@ -8,10 +8,12 @@ endif()
include(ExternalProject)
set(GTEST_URL "https://github.com/google/googletest/archive/release-1.10.0.tar.gz" CACHE STRING "URL for GTest tarball")
set(GTEST_MD5 "ecd1fa65e7de707cd5c00bdac56022cd" CACHE STRING "MD5 checksum of GTest tarball")
mark_as_advanced(GTEST_URL)
mark_as_advanced(GTEST_MD5)
ExternalProject_Add(googletest
URL ${GTEST_URL}
URL_MD5 ecd1fa65e7de707cd5c00bdac56022cd
URL ${GTEST_URL}
URL_MD5 ${GTEST_MD5}
SOURCE_DIR "${CMAKE_BINARY_DIR}/gtest-src"
BINARY_DIR "${CMAKE_BINARY_DIR}/gtest-build"
CMAKE_ARGS ${CMAKE_REQUEST_PIC} ${CMAKE_EXTRA_GTEST_OPTS}
@ -20,10 +22,10 @@ ExternalProject_Add(googletest
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
BUILD_BYPRODUCTS <BINARY_DIR>/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gtest${GTEST_LIB_POSTFIX}.a
<BINARY_DIR>/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gmock${GTEST_LIB_POSTFIX}.a
<BINARY_DIR>/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gtest_main${GTEST_LIB_POSTFIX}.a
<BINARY_DIR>/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gmock_main${GTEST_LIB_POSTFIX}.a
BUILD_BYPRODUCTS <BINARY_DIR>/lib/libgtest${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
<BINARY_DIR>/lib/libgmock${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
<BINARY_DIR>/lib/libgtest_main${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
<BINARY_DIR>/lib/libgmock_main${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
LOG_DOWNLOAD ON
LOG_CONFIGURE ON
LOG_BUILD ON
@ -39,10 +41,10 @@ file(MAKE_DIRECTORY ${GTEST_INCLUDE_DIR})
file(MAKE_DIRECTORY ${GMOCK_INCLUDE_DIR})
ExternalProject_Get_Property(googletest BINARY_DIR)
set(GTEST_LIBRARY_PATH ${BINARY_DIR}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gtest${GTEST_LIB_POSTFIX}.a)
set(GMOCK_LIBRARY_PATH ${BINARY_DIR}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gmock${GTEST_LIB_POSTFIX}.a)
set(GTEST_MAIN_LIBRARY_PATH ${BINARY_DIR}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gtest_main${GTEST_LIB_POSTFIX}.a)
set(GMOCK_MAIN_LIBRARY_PATH ${BINARY_DIR}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gmock_main${GTEST_LIB_POSTFIX}.a)
set(GTEST_LIBRARY_PATH ${BINARY_DIR}/lib/libgtest${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
set(GMOCK_LIBRARY_PATH ${BINARY_DIR}/lib/libgmock${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
set(GTEST_MAIN_LIBRARY_PATH ${BINARY_DIR}/lib/libgtest_main${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
set(GMOCK_MAIN_LIBRARY_PATH ${BINARY_DIR}/lib/libgmock_main${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
# Prevent GoogleTest from overriding our compiler/linker options
# when building with Visual Studio

View File

@ -0,0 +1,3 @@
# utility script to call WriteOpenCLHeader function
include(${SOURCE_DIR}/Modules/OpenCLUtils.cmake)
WriteOpenCLHeader(${VARNAME} ${HEADER_FILE} ${SOURCE_FILES})

View File

@ -50,6 +50,7 @@ function(check_for_autogen_files source_dir)
file(GLOB SRC_AUTOGEN_FILES ${source_dir}/style_*.h)
file(GLOB SRC_AUTOGEN_PACKAGES ${source_dir}/packages_*.h)
list(APPEND SRC_AUTOGEN_FILES ${SRC_AUTOGEN_PACKAGES} ${source_dir}/lmpinstalledpkgs.h ${source_dir}/lmpgitversion.h)
list(APPEND SRC_AUTOGEN_FILES ${SRC_AUTOGEN_PACKAGES} ${source_dir}/mliap_model_python_couple.h ${source_dir}/mliap_model_python_couple.cpp)
foreach(_SRC ${SRC_AUTOGEN_FILES})
get_filename_component(FILENAME "${_SRC}" NAME)
if(EXISTS ${source_dir}/${FILENAME})
@ -66,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()
@ -85,7 +86,6 @@ endfunction(GenerateBinaryHeader)
# fetch missing potential files
function(FetchPotentials pkgfolder potfolder)
if (EXISTS "${pkgfolder}/potentials.txt")
set(LAMMPS_POTENTIALS_URL "https://download.lammps.org/potentials")
file(STRINGS "${pkgfolder}/potentials.txt" linelist REGEX "^[^#].")
foreach(line ${linelist})
string(FIND ${line} " " blank)
@ -104,3 +104,13 @@ function(FetchPotentials pkgfolder potfolder)
endforeach()
endif()
endfunction(FetchPotentials)
# set CMAKE_LINUX_DISTRO and CMAKE_DISTRO_VERSION on Linux
if((CMAKE_SYSTEM_NAME STREQUAL "Linux") AND (EXISTS /etc/os-release))
file(STRINGS /etc/os-release distro REGEX "^NAME=")
string(REGEX REPLACE "NAME=\"?([^\"]*)\"?" "\\1" distro "${distro}")
file(STRINGS /etc/os-release disversion REGEX "^VERSION_ID=")
string(REGEX REPLACE "VERSION_ID=\"?([^\"]*)\"?" "\\1" disversion "${disversion}")
set(CMAKE_LINUX_DISTRO ${distro})
set(CMAKE_DISTRO_VERSION ${disversion})
endif()

View File

@ -1,16 +1,25 @@
# Download and configure custom MPICH files for Windows
message(STATUS "Downloading and configuring MPICH-1.4.1 for Windows")
set(MPICH2_WIN64_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/mpich2-win64-devel.tar.gz" CACHE STRING "URL for MPICH2 (win64) tarball")
set(MPICH2_WIN32_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/mpich2-win32-devel.tar.gz" CACHE STRING "URL for MPICH2 (win32) tarball")
set(MPICH2_WIN64_DEVEL_MD5 "4939fdb59d13182fd5dd65211e469f14" CACHE STRING "MD5 checksum of MPICH2 (win64) tarball")
set(MPICH2_WIN32_DEVEL_MD5 "a61d153500dce44e21b755ee7257e031" CACHE STRING "MD5 checksum of MPICH2 (win32) tarball")
mark_as_advanced(MPICH2_WIN64_DEVEL_URL)
mark_as_advanced(MPICH2_WIN32_DEVEL_URL)
mark_as_advanced(MPICH2_WIN64_DEVEL_MD5)
mark_as_advanced(MPICH2_WIN32_DEVEL_MD5)
include(ExternalProject)
if (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
ExternalProject_Add(mpi4win_build
URL https://download.lammps.org/thirdparty/mpich2-win64-devel.tar.gz
URL_MD5 4939fdb59d13182fd5dd65211e469f14
URL ${MPICH2_WIN64_DEVEL_URL}
URL_MD5 ${MPICH2_WIN64_DEVEL_MD5}
CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ""
BUILD_BYPRODUCTS <SOURCE_DIR>/lib/libmpi.a)
else()
ExternalProject_Add(mpi4win_build
URL https://download.lammps.org/thirdparty/mpich2-win32-devel.tar.gz
URL_MD5 a61d153500dce44e21b755ee7257e031
URL ${MPICH2_WIN32_DEVEL_URL}
URL_MD5 ${MPICH2_WIN32_DEVEL_MD5}
CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ""
BUILD_BYPRODUCTS <SOURCE_DIR>/lib/libmpi.a)
endif()

View File

@ -0,0 +1,50 @@
message(STATUS "Downloading and building OpenCL loader library")
set(OPENCL_LOADER_URL "${LAMMPS_THIRDPARTY_URL}/opencl-loader-2021.05.02.tar.gz" CACHE STRING "URL for OpenCL loader tarball")
set(OPENCL_LOADER_MD5 "29180b05056578afda92f0d394c3a373" CACHE STRING "MD5 checksum of OpenCL loader tarball")
mark_as_advanced(OPENCL_LOADER_URL)
mark_as_advanced(OPENCL_LOADER_MD5)
include(ExternalProject)
ExternalProject_Add(opencl_loader
URL ${OPENCL_LOADER_URL}
URL_MD5 ${OPENCL_LOADER_MD5}
SOURCE_DIR "${CMAKE_BINARY_DIR}/opencl_loader-src"
BINARY_DIR "${CMAKE_BINARY_DIR}/opencl_loader-build"
CMAKE_ARGS ${CMAKE_REQUEST_PIC} ${CMAKE_EXTRA_OPENCL_LOADER_OPTS}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
BUILD_BYPRODUCTS <BINARY_DIR>/libOpenCL${CMAKE_STATIC_LIBRARY_SUFFIX}
LOG_DOWNLOAD ON
LOG_CONFIGURE ON
LOG_BUILD ON
INSTALL_COMMAND ""
TEST_COMMAND "")
ExternalProject_Get_Property(opencl_loader SOURCE_DIR)
set(OPENCL_LOADER_INCLUDE_DIR ${SOURCE_DIR}/inc)
# workaround for CMake 3.10 on ubuntu 18.04
file(MAKE_DIRECTORY ${OPENCL_LOADER_INCLUDE_DIR})
ExternalProject_Get_Property(opencl_loader BINARY_DIR)
set(OPENCL_LOADER_LIBRARY_PATH "${BINARY_DIR}/libOpenCL${CMAKE_STATIC_LIBRARY_SUFFIX}")
find_package(Threads QUIET)
if(NOT WIN32)
set(OPENCL_LOADER_DEP_LIBS "Threads::Threads;${CMAKE_DL_LIBS}")
else()
set(OPENCL_LOADER_DEP_LIBS "cfgmgr32;runtimeobject")
endif()
add_library(OpenCL::OpenCL UNKNOWN IMPORTED)
add_dependencies(OpenCL::OpenCL opencl_loader)
set_target_properties(OpenCL::OpenCL PROPERTIES
IMPORTED_LOCATION ${OPENCL_LOADER_LIBRARY_PATH}
INTERFACE_INCLUDE_DIRECTORIES ${OPENCL_LOADER_INCLUDE_DIR}
INTERFACE_LINK_LIBRARIES "${OPENCL_LOADER_DEP_LIBS}")

View File

@ -1,10 +1,8 @@
function(GenerateOpenCLHeader varname outfile files)
message("Creating ${outfile}...")
function(WriteOpenCLHeader varname outfile files)
file(WRITE ${outfile} "const char * ${varname} = \n")
math(EXPR ARG_END "${ARGC}-1")
separate_arguments(files)
foreach(IDX RANGE 2 ${ARG_END})
list(GET ARGV ${IDX} filename)
foreach(filename ${files})
file(READ ${filename} content)
string(REGEX REPLACE "\\s*//[^\n]*\n" "\n" content "${content}")
string(REGEX REPLACE "\\\\" "\\\\\\\\" content "${content}")
@ -15,4 +13,16 @@ function(GenerateOpenCLHeader varname outfile files)
endforeach()
file(APPEND ${outfile} ";\n")
endfunction(WriteOpenCLHeader)
function(GenerateOpenCLHeader varname outfile files)
list(REMOVE_AT ARGV 0 1)
add_custom_command(OUTPUT ${outfile}
COMMAND ${CMAKE_COMMAND} -D SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
-D VARNAME=${varname}
-D HEADER_FILE=${outfile}
-D SOURCE_FILES="${ARGV}"
-P ${CMAKE_CURRENT_SOURCE_DIR}/Modules/GenerateOpenCLHeader.cmake
DEPENDS ${ARGV}
COMMENT "Generating ${outfile}...")
endfunction(GenerateOpenCLHeader)

View File

@ -0,0 +1,13 @@
# Fix rigid/meso requires RIGID to be installed
set(DPD-SMOOTH_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/DPD-SMOOTH)
get_property(hlist GLOBAL PROPERTY FIX)
if(NOT PKG_RIGID)
list(REMOVE_ITEM hlist ${DPD-SMOOTH_SOURCES_DIR}/fix_rigid_meso.h)
get_target_property(LAMMPS_SOURCES lammps SOURCES)
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 ${DPD-SMOOTH_SOURCES_DIR})

View File

@ -1,7 +1,10 @@
set(GPU_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/GPU)
set(GPU_SOURCES ${GPU_SOURCES_DIR}/gpu_extra.h
${GPU_SOURCES_DIR}/fix_gpu.h
${GPU_SOURCES_DIR}/fix_gpu.cpp)
${GPU_SOURCES_DIR}/fix_gpu.cpp
${GPU_SOURCES_DIR}/fix_nh_gpu.h
${GPU_SOURCES_DIR}/fix_nh_gpu.cpp)
target_compile_definitions(lammps PRIVATE -DLMP_GPU)
set(GPU_API "opencl" CACHE STRING "API used by GPU package")
set(GPU_API_VALUES opencl cuda hip)
@ -32,9 +35,12 @@ if(GPU_API STREQUAL "CUDA")
if(NOT BIN2C)
message(FATAL_ERROR "Could not find bin2c, use -DBIN2C=/path/to/bin2c to help cmake finding it.")
endif()
option(CUDPP_OPT "Enable CUDPP_OPT" ON)
option(CUDPP_OPT "Enable GPU binning via CUDAPP (should be off for modern GPUs)" OFF)
option(CUDA_MPS_SUPPORT "Enable tweaks to support CUDA Multi-process service (MPS)" OFF)
if(CUDA_MPS_SUPPORT)
if(CUDPP_OPT)
message(FATAL_ERROR "Must use -DCUDPP_OPT=OFF with -DGPU_CUDA_MPS_SUPPORT=ON")
endif()
set(GPU_CUDA_MPS_FLAGS "-DCUDA_PROXY")
endif()
@ -42,7 +48,7 @@ if(GPU_API STREQUAL "CUDA")
# ensure that no *cubin.h files exist from a compile in the lib/gpu folder
file(GLOB GPU_LIB_OLD_CUBIN_HEADERS ${LAMMPS_LIB_SOURCE_DIR}/gpu/*_cubin.h)
if (GPU_LIB_OLD_CUBIN_HEADERS)
if(GPU_LIB_OLD_CUBIN_HEADERS)
message(FATAL_ERROR "########################################################################\n"
"Found file(s) generated by the make-based build system in lib/gpu\n"
"Please run\n"
@ -97,15 +103,19 @@ if(GPU_API STREQUAL "CUDA")
if(CUDA_VERSION VERSION_GREATER_EQUAL "11.0")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_80,code=[sm_80,compute_80]")
endif()
# Ampere (GPU Arch 8.6) is supported by CUDA 11.1 and later
if(CUDA_VERSION VERSION_GREATER_EQUAL "11.1")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_86,code=[sm_86,compute_86]")
endif()
if(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
message(WARNING "Unsupported CUDA version. Use at your own risk.")
endif()
cuda_compile_fatbin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS ${CUDA_REQUEST_PIC}
-DUNIX -O3 --use_fast_math -Wno-deprecated-gpu-targets -DNV_KERNEL -DUCL_CUDADR ${GPU_CUDA_GENCODE} -D_${GPU_PREC_SETTING})
-DUNIX -O3 --use_fast_math -Wno-deprecated-gpu-targets -DNV_KERNEL -DUCL_CUDADR ${GPU_CUDA_GENCODE} -D_${GPU_PREC_SETTING} -DLAMMPS_${LAMMPS_SIZES})
cuda_compile(GPU_OBJS ${GPU_LIB_CUDPP_CU} OPTIONS ${CUDA_REQUEST_PIC}
-DUNIX -O3 --use_fast_math -Wno-deprecated-gpu-targets -DUCL_CUDADR ${GPU_CUDA_GENCODE} -D_${GPU_PREC_SETTING})
-DUNIX -O3 --use_fast_math -Wno-deprecated-gpu-targets -DUCL_CUDADR ${GPU_CUDA_GENCODE} -D_${GPU_PREC_SETTING} -DLAMMPS_${LAMMPS_SIZES})
foreach(CU_OBJ ${GPU_GEN_OBJS})
get_filename_component(CU_NAME ${CU_OBJ} NAME_WE)
@ -121,7 +131,7 @@ if(GPU_API STREQUAL "CUDA")
add_library(gpu STATIC ${GPU_LIB_SOURCES} ${GPU_LIB_CUDPP_SOURCES} ${GPU_OBJS})
target_link_libraries(gpu PRIVATE ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY})
target_include_directories(gpu PRIVATE ${LAMMPS_LIB_BINARY_DIR}/gpu ${CUDA_INCLUDE_DIRS})
target_compile_definitions(gpu PRIVATE -D_${GPU_PREC_SETTING} -DMPI_GERYON -DUCL_NO_EXIT ${GPU_CUDA_MPS_FLAGS})
target_compile_definitions(gpu PRIVATE -DUSE_CUDA -D_${GPU_PREC_SETTING} -DMPI_GERYON -DUCL_NO_EXIT ${GPU_CUDA_MPS_FLAGS})
if(CUDPP_OPT)
target_include_directories(gpu PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini)
target_compile_definitions(gpu PRIVATE -DUSE_CUDPP)
@ -135,27 +145,20 @@ if(GPU_API STREQUAL "CUDA")
target_include_directories(nvc_get_devices PRIVATE ${CUDA_INCLUDE_DIRS})
elseif(GPU_API STREQUAL "OPENCL")
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
# download and unpack support binaries for compilation of windows binaries.
set(LAMMPS_THIRDPARTY_URL "https://download.lammps.org/thirdparty")
file(DOWNLOAD "${LAMMPS_THIRDPARTY_URL}/opencl-win-devel.tar.gz" "${CMAKE_CURRENT_BINARY_DIR}/opencl-win-devel.tar.gz"
EXPECTED_MD5 2c00364888d5671195598b44c2e0d44d)
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf opencl-win-devel.tar.gz WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_library(OpenCL::OpenCL UNKNOWN IMPORTED)
if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86")
set_target_properties(OpenCL::OpenCL PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/OpenCL/lib_win32/libOpenCL.dll")
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
set_target_properties(OpenCL::OpenCL PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/OpenCL/lib_win64/libOpenCL.dll")
endif()
set_target_properties(OpenCL::OpenCL PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_BINARY_DIR}/OpenCL/include")
# the static OpenCL loader doesn't seem to work on macOS. use the system provided
# version by default instead (for as long as it will be available)
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
set(_opencl_static_default OFF)
else()
set(_opencl_static_default ON)
endif()
option(USE_STATIC_OPENCL_LOADER "Download and include a static OpenCL ICD loader" ${_opencl_static_default})
mark_as_advanced(USE_STATIC_OPENCL_LOADER)
if(USE_STATIC_OPENCL_LOADER)
include(OpenCLLoader)
else()
find_package(OpenCL REQUIRED)
endif()
set(OCL_TUNE "generic" CACHE STRING "OpenCL Device Tuning")
set(OCL_TUNE_VALUES intel fermi kepler cypress generic)
set_property(CACHE OCL_TUNE PROPERTY STRINGS ${OCL_TUNE_VALUES})
validate_option(OCL_TUNE OCL_TUNE_VALUES)
string(TOUPPER ${OCL_TUNE} OCL_TUNE)
include(OpenCLUtils)
set(OCL_COMMON_HEADERS ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_preprocessor.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_aux_fun1.h)
@ -199,7 +202,7 @@ elseif(GPU_API STREQUAL "OPENCL")
add_library(gpu STATIC ${GPU_LIB_SOURCES})
target_link_libraries(gpu PRIVATE OpenCL::OpenCL)
target_include_directories(gpu PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/gpu)
target_compile_definitions(gpu PRIVATE -D_${GPU_PREC_SETTING} -D${OCL_TUNE}_OCL -DMPI_GERYON -DUCL_NO_EXIT)
target_compile_definitions(gpu PRIVATE -D_${GPU_PREC_SETTING} -DMPI_GERYON -DGERYON_NUMA_FISSION -DUCL_NO_EXIT)
target_compile_definitions(gpu PRIVATE -DUSE_OPENCL)
target_link_libraries(lammps PRIVATE gpu)
@ -207,6 +210,7 @@ elseif(GPU_API STREQUAL "OPENCL")
add_executable(ocl_get_devices ${LAMMPS_LIB_SOURCE_DIR}/gpu/geryon/ucl_get_devices.cpp)
target_compile_definitions(ocl_get_devices PRIVATE -DUCL_OPENCL)
target_link_libraries(ocl_get_devices PRIVATE OpenCL::OpenCL)
add_dependencies(ocl_get_devices OpenCL::OpenCL)
elseif(GPU_API STREQUAL "HIP")
if(NOT DEFINED HIP_PATH)
if(NOT DEFINED ENV{HIP_PATH})
@ -221,7 +225,7 @@ elseif(GPU_API STREQUAL "HIP")
if(NOT DEFINED HIP_PLATFORM)
if(NOT DEFINED ENV{HIP_PLATFORM})
set(HIP_PLATFORM "hcc" CACHE PATH "HIP Platform to be used during compilation")
set(HIP_PLATFORM "amd" CACHE PATH "HIP Platform to be used during compilation")
else()
set(HIP_PLATFORM $ENV{HIP_PLATFORM} CACHE PATH "HIP Platform used during compilation")
endif()
@ -229,7 +233,7 @@ elseif(GPU_API STREQUAL "HIP")
set(ENV{HIP_PLATFORM} ${HIP_PLATFORM})
if(HIP_PLATFORM STREQUAL "hcc")
if(HIP_PLATFORM STREQUAL "hcc" OR HIP_PLATFORM STREQUAL "amd")
set(HIP_ARCH "gfx906" CACHE STRING "HIP target architecture")
elseif(HIP_PLATFORM STREQUAL "nvcc")
find_package(CUDA REQUIRED)
@ -287,23 +291,23 @@ elseif(GPU_API STREQUAL "HIP")
set(CUBIN_FILE "${LAMMPS_LIB_BINARY_DIR}/gpu/${CU_NAME}.cubin")
set(CUBIN_H_FILE "${LAMMPS_LIB_BINARY_DIR}/gpu/${CU_NAME}_cubin.h")
if(HIP_PLATFORM STREQUAL "hcc")
if(HIP_PLATFORM STREQUAL "hcc" OR HIP_PLATFORM STREQUAL "amd")
configure_file(${CU_FILE} ${CU_CPP_FILE} COPYONLY)
if(HIP_COMPILER STREQUAL "clang")
add_custom_command(OUTPUT ${CUBIN_FILE}
VERBATIM COMMAND ${HIP_HIPCC_EXECUTABLE} --genco --offload-arch=${HIP_ARCH} -O3 -ffast-math -DUSE_HIP -D_${GPU_PREC_SETTING} -I${LAMMPS_LIB_SOURCE_DIR}/gpu -o ${CUBIN_FILE} ${CU_CPP_FILE}
VERBATIM COMMAND ${HIP_HIPCC_EXECUTABLE} --genco --offload-arch=${HIP_ARCH} -O3 -ffast-math -DUSE_HIP -D_${GPU_PREC_SETTING} -DLAMMPS_${LAMMPS_SIZES} -I${LAMMPS_LIB_SOURCE_DIR}/gpu -o ${CUBIN_FILE} ${CU_CPP_FILE}
DEPENDS ${CU_CPP_FILE}
COMMENT "Generating ${CU_NAME}.cubin")
else()
add_custom_command(OUTPUT ${CUBIN_FILE}
VERBATIM COMMAND ${HIP_HIPCC_EXECUTABLE} --genco -t="${HIP_ARCH}" -f=\"-O3 -ffast-math -DUSE_HIP -D_${GPU_PREC_SETTING} -I${LAMMPS_LIB_SOURCE_DIR}/gpu\" -o ${CUBIN_FILE} ${CU_CPP_FILE}
VERBATIM COMMAND ${HIP_HIPCC_EXECUTABLE} --genco -t="${HIP_ARCH}" -f=\"-O3 -ffast-math -DUSE_HIP -D_${GPU_PREC_SETTING} -DLAMMPS_${LAMMPS_SIZES} -I${LAMMPS_LIB_SOURCE_DIR}/gpu\" -o ${CUBIN_FILE} ${CU_CPP_FILE}
DEPENDS ${CU_CPP_FILE}
COMMENT "Generating ${CU_NAME}.cubin")
endif()
elseif(HIP_PLATFORM STREQUAL "nvcc")
add_custom_command(OUTPUT ${CUBIN_FILE}
VERBATIM COMMAND ${HIP_HIPCC_EXECUTABLE} --fatbin --use_fast_math -DUSE_HIP -D_${GPU_PREC_SETTING} ${HIP_CUDA_GENCODE} -I${LAMMPS_LIB_SOURCE_DIR}/gpu -o ${CUBIN_FILE} ${CU_FILE}
VERBATIM COMMAND ${HIP_HIPCC_EXECUTABLE} --fatbin --use_fast_math -DUSE_HIP -D_${GPU_PREC_SETTING} -DLAMMPS_${LAMMPS_SIZES} ${HIP_CUDA_GENCODE} -I${LAMMPS_LIB_SOURCE_DIR}/gpu -o ${CUBIN_FILE} ${CU_FILE}
DEPENDS ${CU_FILE}
COMMENT "Generating ${CU_NAME}.cubin")
endif()
@ -341,11 +345,16 @@ elseif(GPU_API STREQUAL "HIP")
if(DOWNLOAD_CUB)
message(STATUS "CUB download requested")
set(CUB_URL "https://github.com/NVlabs/cub/archive/1.12.0.tar.gz" CACHE STRING "URL for CUB tarball")
set(CUB_MD5 "1cf595beacafff104700921bac8519f3" CACHE STRING "MD5 checksum of CUB tarball")
mark_as_advanced(CUB_URL)
mark_as_advanced(CUB_MD5)
include(ExternalProject)
ExternalProject_Add(CUB
GIT_REPOSITORY https://github.com/NVlabs/cub
TIMEOUT 5
URL ${CUB_URL}
URL_MD5 ${CUB_MD5}
PREFIX "${CMAKE_CURRENT_BINARY_DIR}"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
@ -357,7 +366,7 @@ elseif(GPU_API STREQUAL "HIP")
else()
find_package(CUB)
if(NOT CUB_FOUND)
message(FATAL_ERROR "CUB library not found. Help CMake to find it by setting CUB_INCLUDE_DIR, or set DOWNLOAD_VORO=ON to download it")
message(FATAL_ERROR "CUB library not found. Help CMake to find it by setting CUB_INCLUDE_DIR, or set DOWNLOAD_CUB=ON to download it")
endif()
endif()
@ -384,18 +393,21 @@ elseif(GPU_API STREQUAL "HIP")
target_compile_definitions(hip_get_devices PRIVATE -D__HIP_PLATFORM_HCC__)
target_include_directories(hip_get_devices PRIVATE ${HIP_ROOT_DIR}/../include)
elseif(HIP_PLATFORM STREQUAL "amd")
target_compile_definitions(gpu PRIVATE -D__HIP_PLATFORM_AMD__)
target_include_directories(gpu PRIVATE ${HIP_ROOT_DIR}/../include)
target_compile_definitions(hip_get_devices PRIVATE -D__HIP_PLATFORM_AMD__)
target_include_directories(hip_get_devices PRIVATE ${HIP_ROOT_DIR}/../include)
endif()
target_link_libraries(lammps PRIVATE gpu)
endif()
# GPU package
FindStyleHeaders(${GPU_SOURCES_DIR} FIX_CLASS fix_ FIX)
set_property(GLOBAL PROPERTY "GPU_SOURCES" "${GPU_SOURCES}")
# detects styles which have GPU version
# detect styles which have a GPU version
RegisterStylesExt(${GPU_SOURCES_DIR} gpu GPU_SOURCES)
RegisterFixStyle(${GPU_SOURCES_DIR}/fix_gpu.h)
get_property(GPU_SOURCES GLOBAL PROPERTY GPU_SOURCES)

View File

@ -0,0 +1,116 @@
check_include_file_cxx(immintrin.h FOUND_IMMINTRIN)
if(NOT FOUND_IMMINTRIN)
message(FATAL_ERROR "immintrin.h header not found, Intel package won't work without it")
endif()
target_compile_definitions(lammps PRIVATE -DLMP_USER_INTEL)
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)
string(TOUPPER ${INTEL_ARCH} INTEL_ARCH)
find_package(Threads QUIET)
if(Threads_FOUND)
set(INTEL_LRT_MODE "threads" CACHE STRING "Long-range threads mode (none, threads, or c++11)")
else()
set(INTEL_LRT_MODE "none" CACHE STRING "Long-range threads mode (none, threads, or c++11)")
endif()
set(INTEL_LRT_VALUES none threads c++11)
set_property(CACHE INTEL_LRT_MODE PROPERTY STRINGS ${INTEL_LRT_VALUES})
validate_option(INTEL_LRT_MODE INTEL_LRT_VALUES)
string(TOUPPER ${INTEL_LRT_MODE} INTEL_LRT_MODE)
if(INTEL_LRT_MODE STREQUAL "THREADS")
if(Threads_FOUND)
target_compile_definitions(lammps PRIVATE -DLMP_INTEL_USELRT)
target_link_libraries(lammps PRIVATE Threads::Threads)
else()
message(FATAL_ERROR "Must have working threads library for Long-range thread support")
endif()
endif()
if(INTEL_LRT_MODE STREQUAL "C++11")
if(Threads_FOUND)
target_compile_definitions(lammps PRIVATE -DLMP_INTEL_USELRT -DLMP_INTEL_LRT11)
target_link_libraries(lammps PRIVATE Threads::Threads)
else()
message(FATAL_ERROR "Must have working threads library for Long-range thread support")
endif()
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16)
message(FATAL_ERROR "INTEL needs at least a 2016 Intel compiler, found ${CMAKE_CXX_COMPILER_VERSION}")
endif()
else()
message(WARNING "INTEL gives best performance with Intel compilers")
endif()
find_package(TBB_MALLOC QUIET)
if(TBB_MALLOC_FOUND)
target_link_libraries(lammps PRIVATE TBB::TBB_MALLOC)
else()
target_compile_definitions(lammps PRIVATE -DLMP_INTEL_NO_TBB)
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
message(WARNING "INTEL with Intel compilers should use TBB malloc libraries")
endif()
endif()
find_package(MKL QUIET)
if(MKL_FOUND)
target_compile_definitions(lammps PRIVATE -DLMP_USE_MKL_RNG)
target_link_libraries(lammps PRIVATE MKL::MKL)
else()
message(STATUS "Pair style dpd/intel will be faster with MKL libraries")
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 "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 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\\\"\"")
target_compile_options(lammps PRIVATE -xMIC-AVX512 -qoffload -fno-alias -ansi-alias -restrict -qoverride-limits ${MIC_OPTIONS})
target_compile_definitions(lammps PRIVATE -DLMP_INTEL_OFFLOAD)
else()
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
include(CheckCXXCompilerFlag)
foreach(_FLAG -O2 "-fp-model fast=2" -no-prec-div -qoverride-limits -qopt-zmm-usage=high -qno-offload -fno-alias -ansi-alias -restrict)
string(REGEX REPLACE "[ =\"]" "" _FLAGX ${_FLAG})
check_cxx_compiler_flag("${_FLAG}" COMPILER_SUPPORTS${_FLAGX})
if(COMPILER_SUPPORTS${_FLAGX})
separate_arguments(_FLAG UNIX_COMMAND "${_FLAG}")
target_compile_options(lammps PRIVATE ${_FLAG})
endif()
endforeach()
endif()
endif()
# collect sources
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 "INTEL_SOURCES" "${INTEL_SOURCES}")
# 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(INTEL_SOURCES GLOBAL PROPERTY INTEL_SOURCES)
if(PKG_KSPACE)
list(APPEND INTEL_SOURCES ${INTEL_SOURCES_DIR}/verlet_lrt_intel.cpp)
RegisterIntegrateStyle(${INTEL_SOURCES_DIR}/verlet_lrt_intel.h)
endif()
target_sources(lammps PRIVATE ${INTEL_SOURCES})
target_include_directories(lammps PRIVATE ${INTEL_SOURCES_DIR})

View File

@ -19,6 +19,8 @@ if(CURL_FOUND)
target_compile_definitions(lammps PRIVATE -DLMP_NO_SSL_CHECK)
endif()
endif()
set(KIM_EXTRA_UNITTESTS OFF CACHE STRING "Set extra unit tests verbose mode on/off. If on, extra tests are included.")
mark_as_advanced(KIM_EXTRA_UNITTESTS)
find_package(PkgConfig QUIET)
set(DOWNLOAD_KIM_DEFAULT ON)
if(PKG_CONFIG_FOUND)
@ -33,9 +35,13 @@ if(DOWNLOAD_KIM)
include(ExternalProject)
enable_language(C)
enable_language(Fortran)
set(KIM_URL "https://s3.openkim.org/kim-api/kim-api-2.2.1.txz" CACHE STRING "URL for KIM tarball")
set(KIM_MD5 "ae1ddda2ef7017ea07934e519d023dca" CACHE STRING "MD5 checksum of KIM tarball")
mark_as_advanced(KIM_URL)
mark_as_advanced(KIM_MD5)
ExternalProject_Add(kim_build
URL https://s3.openkim.org/kim-api/kim-api-2.2.0.txz
URL_MD5 e7f944e1593cffd7444679a660607f6c
URL ${KIM_URL}
URL_MD5 ${KIM_MD5}
BINARY_DIR build
CMAKE_ARGS ${CMAKE_REQUEST_PIC}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
@ -67,14 +73,14 @@ if(DOWNLOAD_KIM)
BUILD_RPATH "${_rpath_prefix}/kim_build-prefix/lib"
)
else()
if(KIM-API_FOUND AND KIM_API_VERSION VERSION_GREATER_EQUAL 2.2.0)
if(KIM-API_FOUND AND KIM-API_VERSION VERSION_GREATER_EQUAL 2.2.0)
# For kim-api >= 2.2.0
find_package(KIM-API ${KIM-API_MIN_VERSION} CONFIG REQUIRED)
find_package(KIM-API 2.2.0 CONFIG REQUIRED)
target_link_libraries(lammps PRIVATE KIM-API::kim-api)
else()
# For kim-api 2.1.3 (consistent with previous version of this file)
find_package(PkgConfig REQUIRED)
pkg_check_modules(KIM-API REQUIRED IMPORTED_TARGET libkim-api>=KIM-API_MIN_VERSION)
pkg_check_modules(KIM-API REQUIRED IMPORTED_TARGET libkim-api>=${KIM-API_MIN_VERSION})
target_link_libraries(lammps PRIVATE PkgConfig::KIM-API)
endif()
endif()

View File

@ -1,4 +1,7 @@
########################################################################
# As of version 3.3.0 Kokkos requires C++14
set(CMAKE_CXX_STANDARD 14)
########################################################################
# consistency checks and Kokkos options/settings required by LAMMPS
if(Kokkos_ENABLE_CUDA)
message(STATUS "KOKKOS: Enabling CUDA LAMBDA function support")
@ -34,9 +37,13 @@ if(DOWNLOAD_KOKKOS)
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS}")
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}")
include(ExternalProject)
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/3.4.01.tar.gz" CACHE STRING "URL for KOKKOS tarball")
set(KOKKOS_MD5 "4c84698917c93a18985b311bb6caf84f" CACHE STRING "MD5 checksum of KOKKOS tarball")
mark_as_advanced(KOKKOS_URL)
mark_as_advanced(KOKKOS_MD5)
ExternalProject_Add(kokkos_build
URL https://github.com/kokkos/kokkos/archive/3.2.01.tar.gz
URL_MD5 ba72440e285ccde05b403694ea0c92e5
URL ${KOKKOS_URL}
URL_MD5 ${KOKKOS_MD5}
CMAKE_ARGS ${KOKKOS_LIB_BUILD_ARGS}
BUILD_BYPRODUCTS <INSTALL_DIR>/lib/libkokkoscore.a
)
@ -48,10 +55,12 @@ if(DOWNLOAD_KOKKOS)
INTERFACE_INCLUDE_DIRECTORIES "${INSTALL_DIR}/include"
INTERFACE_LINK_LIBRARIES ${CMAKE_DL_LIBS})
target_link_libraries(lammps PRIVATE LAMMPS::KOKKOS)
target_link_libraries(lmp PRIVATE LAMMPS::KOKKOS)
add_dependencies(LAMMPS::KOKKOS kokkos_build)
elseif(EXTERNAL_KOKKOS)
find_package(Kokkos 3.2.01 REQUIRED CONFIG)
find_package(Kokkos 3.4.01 REQUIRED CONFIG)
target_link_libraries(lammps PRIVATE Kokkos::kokkos)
target_link_libraries(lmp PRIVATE Kokkos::kokkos)
else()
set(LAMMPS_LIB_KOKKOS_SRC_DIR ${LAMMPS_LIB_SOURCE_DIR}/kokkos)
set(LAMMPS_LIB_KOKKOS_BIN_DIR ${LAMMPS_LIB_BINARY_DIR}/kokkos)
@ -63,6 +72,7 @@ else()
${LAMMPS_LIB_KOKKOS_BIN_DIR})
target_include_directories(lammps PRIVATE ${Kokkos_INCLUDE_DIRS})
target_link_libraries(lammps PRIVATE kokkos)
target_link_libraries(lmp PRIVATE kokkos)
endif()
target_compile_definitions(lammps PRIVATE -DLMP_KOKKOS)
@ -89,7 +99,7 @@ if(PKG_KSPACE)
${KOKKOS_PKG_SOURCES_DIR}/gridcomm_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/remap_kokkos.cpp)
if(Kokkos_ENABLE_CUDA)
if(NOT ${FFT} STREQUAL "KISS")
if(NOT (FFT STREQUAL "KISS"))
target_compile_definitions(lammps PRIVATE -DFFT_CUFFT)
target_link_libraries(lammps PRIVATE cufft)
endif()
@ -106,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

@ -15,10 +15,14 @@ endif()
option(DOWNLOAD_LATTE "Download the LATTE library instead of using an already installed one" ${DOWNLOAD_LATTE_DEFAULT})
if(DOWNLOAD_LATTE)
message(STATUS "LATTE download requested - we will build our own")
set(LATTE_URL "https://github.com/lanl/LATTE/archive/v1.2.2.tar.gz" CACHE STRING "URL for LATTE tarball")
set(LATTE_MD5 "820e73a457ced178c08c71389a385de7" CACHE STRING "MD5 checksum of LATTE tarball")
mark_as_advanced(LATTE_URL)
mark_as_advanced(LATTE_MD5)
include(ExternalProject)
ExternalProject_Add(latte_build
URL https://github.com/lanl/LATTE/archive/v1.2.2.tar.gz
URL_MD5 820e73a457ced178c08c71389a385de7
URL ${LATTE_URL}
URL_MD5 ${LATTE_MD5}
SOURCE_SUBDIR cmake
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> ${CMAKE_REQUEST_PIC} -DCMAKE_INSTALL_LIBDIR=lib
-DBLAS_LIBRARIES=${BLAS_LIBRARIES} -DLAPACK_LIBRARIES=${LAPACK_LIBRARIES}

View File

@ -0,0 +1,32 @@
find_package(Eigen3 NO_MODULE)
if(EIGEN3_FOUND)
set(DOWNLOAD_EIGEN3_DEFAULT OFF)
else()
set(DOWNLOAD_EIGEN3_DEFAULT ON)
endif()
option(DOWNLOAD_EIGEN3 "Download Eigen3 instead of using an already installed one)" ${DOWNLOAD_EIGEN3_DEFAULT})
if(DOWNLOAD_EIGEN3)
message(STATUS "Eigen3 download requested - we will build our own")
set(EIGEN3_URL "https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz" CACHE STRING "URL for Eigen3 tarball")
set(EIGEN3_MD5 "9e30f67e8531477de4117506fe44669b" CACHE STRING "MD5 checksum of Eigen3 tarball")
mark_as_advanced(EIGEN3_URL)
mark_as_advanced(EIGEN3_MD5)
include(ExternalProject)
ExternalProject_Add(Eigen3_build
URL ${EIGEN3_URL}
URL_MD5 ${EIGEN3_MD5}
CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ""
)
ExternalProject_get_property(Eigen3_build SOURCE_DIR)
add_library(LAMMPS::EIGEN3 INTERFACE IMPORTED)
set_target_properties(LAMMPS::EIGEN3 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}")
target_link_libraries(lammps PRIVATE LAMMPS::EIGEN3)
add_dependencies(LAMMPS::EIGEN3 Eigen3_build)
else()
find_package(Eigen3 NO_MODULE)
mark_as_advanced(Eigen3_DIR)
if(NOT EIGEN3_FOUND)
message(FATAL_ERROR "Eigen3 not found, help CMake to find it by setting EIGEN3_INCLUDE_DIR, or set DOWNLOAD_EIGEN3=ON to download it")
endif()
target_link_libraries(lammps PRIVATE Eigen3::Eigen)
endif()

View File

@ -0,0 +1,118 @@
find_package(mdi QUIET)
if(${mdi_FOUND})
set(DOWNLOAD_MDI_DEFAULT OFF)
else()
set(DOWNLOAD_MDI_DEFAULT ON)
endif()
option(DOWNLOAD_MDI "Download and compile the MDI library instead of using an already installed one" ${DOWNLOAD_MDI_DEFAULT})
if(DOWNLOAD_MDI)
message(STATUS "MDI download requested - we will build our own")
set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.2.9.tar.gz" CACHE STRING "URL for MDI tarball")
set(MDI_MD5 "ddfa46d6ee15b4e59cfd527ec7212184" CACHE STRING "MD5 checksum for MDI tarball")
mark_as_advanced(MDI_URL)
mark_as_advanced(MDI_MD5)
enable_language(C)
# only ON/OFF are allowed for "mpi" flag when building MDI library
# so translate boolean value of BUILD_MPI
# always disable MPI when cross-compiling to Windows.
if((BUILD_MPI) AND NOT((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND CMAKE_CROSSCOMPILING))
set(MDI_USE_MPI ON)
else()
set(MDI_USE_MPI OFF)
endif()
# detect if we have python development support and thus can enable python plugins
set(MDI_USE_PYTHON_PLUGINS OFF)
if(CMAKE_VERSION VERSION_LESS 3.12)
find_package(PythonLibs QUIET) # Deprecated since version 3.12
if(PYTHONLIBS_FOUND)
set(MDI_USE_PYTHON_PLUGINS ON)
endif()
else()
find_package(Python QUIET COMPONENTS Development)
if(Python_Development_FOUND)
set(MDI_USE_PYTHON_PLUGINS ON)
endif()
endif()
# download/ build MDI library
# always build static library with -fpic
# support cross-compilation and ninja-build
include(ExternalProject)
ExternalProject_Add(mdi_build
URL ${MDI_URL}
URL_MD5 ${MDI_MD5}
CMAKE_ARGS ${CMAKE_REQUEST_PIC}
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
-Dlanguage=C
-Dlibtype=STATIC
-Dmpi=${MDI_USE_MPI}
-Dpython_plugins=${MDI_USE_PYTHON_PLUGINS}
UPDATE_COMMAND ""
INSTALL_COMMAND ""
BUILD_BYPRODUCTS "<BINARY_DIR>/MDI_Library/libmdi.a"
)
# where is the compiled library?
ExternalProject_get_property(mdi_build BINARY_DIR)
set(MDI_BINARY_DIR "${BINARY_DIR}/MDI_Library")
# workaround for older CMake versions
file(MAKE_DIRECTORY ${MDI_BINARY_DIR})
# create imported target for the MDI library
add_library(LAMMPS::MDI UNKNOWN IMPORTED)
add_dependencies(LAMMPS::MDI mdi_build)
set_target_properties(LAMMPS::MDI PROPERTIES
IMPORTED_LOCATION "${MDI_BINARY_DIR}/libmdi.a"
INTERFACE_INCLUDE_DIRECTORIES ${MDI_BINARY_DIR}
)
set(MDI_DEP_LIBS "")
# if compiling with python plugins we need
# to add python libraries as dependency.
if(MDI_USE_PYTHON_PLUGINS)
if(CMAKE_VERSION VERSION_LESS 3.12)
list(APPEND MDI_DEP_LIBS ${PYTHON_LIBRARIES})
else()
list(APPEND MDI_DEP_LIBS Python::Python)
endif()
endif()
# need to add support for dlopen/dlsym, except when compiling for Windows.
if(NOT (CMAKE_SYSTEM_NAME STREQUAL "Windows"))
list(APPEND MDI_DEP_LIBS "${CMAKE_DL_LIBS}")
endif()
if(MDI_DEP_LIBS)
set_target_properties(LAMMPS::MDI PROPERTIES
IMPORTED_LINK_INTERFACE_LIBRARIES "${MDI_DEP_LIBS}")
endif()
target_link_libraries(lammps PRIVATE LAMMPS::MDI)
target_link_libraries(lmp PRIVATE LAMMPS::MDI)
else()
find_package(mdi)
if(NOT mdi_FOUND)
message(FATAL_ERROR "MDI library not found. Help CMake to find it "
"by setting mdi_LIBRARY and mdi_INCLUDE_DIR, or set DOWNLOAD_MDI=ON "
"to download and compile it")
endif()
# Link the lammps library against MDI
target_include_directories(lammps PRIVATE ${mdi_INCLUDE_DIR})
target_link_libraries(lammps PRIVATE ${mdi_LIBRARY})
# Link the lammps executable against MDI
target_include_directories(lmp PRIVATE ${mdi_INCLUDE_DIR})
target_link_libraries(lmp PRIVATE ${mdi_LIBRARY})
endif()
target_compile_definitions(lammps PRIVATE -DLMP_USER_MDI)
target_compile_definitions(lmp PRIVATE -DLMP_USER_MDI)

View File

@ -1,10 +1,9 @@
if(LAMMPS_SIZES STREQUAL BIGBIG)
if(LAMMPS_SIZES STREQUAL "BIGBIG")
message(FATAL_ERROR "The MESSAGE Package is not compatible with -DLAMMPS_BIGBIG")
endif()
option(MESSAGE_ZMQ "Use ZeroMQ in MESSAGE package" OFF)
file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.F
${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.c
${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.cpp)
file(GLOB_RECURSE cslib_SOURCES
${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.cpp)
add_library(cslib STATIC ${cslib_SOURCES})
target_compile_definitions(cslib PRIVATE -DLAMMPS_${LAMMPS_SIZES})

View File

@ -0,0 +1,127 @@
find_package(N2P2 QUIET)
if(N2P2_FOUND)
set(DOWNLOAD_N2P2_DEFAULT OFF)
else()
set(DOWNLOAD_N2P2_DEFAULT ON)
endif()
option(DOWNLOAD_N2P2 "Download n2p2 library instead of using an already installed one)" ${DOWNLOAD_N2P2_DEFAULT})
if(DOWNLOAD_N2P2)
set(N2P2_URL "https://github.com/CompPhysVienna/n2p2/archive/v2.1.4.tar.gz" CACHE STRING "URL for n2p2 tarball")
set(N2P2_MD5 "9595b066636cd6b90b0fef93398297a5" CACHE STRING "MD5 checksum of N2P2 tarball")
mark_as_advanced(N2P2_URL)
mark_as_advanced(N2P2_MD5)
# adjust settings from detected compiler to compiler platform in n2p2 library
# set compiler specific flag to turn on C++11 syntax (required on macOS and CentOS 7)
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") 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") OR (CMAKE_CXX_COMPILER_ID STREQUAL "NVHPC"))
set(N2P2_COMP gnu)
set(N2P2_CXX_STD "--c++11")
else() # default
set(N2P2_COMP "")
endif()
# pass on archive creator command. prefer compiler specific version, if set.
# important when using cross compiler.
if(CMAKE_CXX_COMPILER_AR)
set(N2P2_AR ${CMAKE_CXX_COMPILER_AR})
else()
set(N2P2_AR ${CMAKE_AR})
endif()
# adjust compilation of n2p2 library to whether MPI is requested in LAMMPS or not
# need special care for compiling for MPICH2 with Linux-to-Windows cross compiler.
if(NOT BUILD_MPI)
set(N2P2_PROJECT_OPTIONS "-DN2P2_NO_MPI")
else()
# get path to MPI include directory when cross-compiling to windows
if((CMAKE_SYSTEM_NAME STREQUAL Windows) AND CMAKE_CROSSCOMPILING)
get_target_property(N2P2_MPI_INCLUDE MPI::MPI_CXX INTERFACE_INCLUDE_DIRECTORIES)
set(N2P2_PROJECT_OPTIONS "-I ${N2P2_MPI_INCLUDE} -DMPICH_SKIP_MPICXX=1")
set(MPI_CXX_COMPILER ${CMAKE_CXX_COMPILER})
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
get_target_property(N2P2_MPI_INCLUDE MPI::MPI_CXX INTERFACE_INCLUDE_DIRECTORIES)
set(N2P2_PROJECT_OPTIONS "-I ${N2P2_MPI_INCLUDE} -DMPICH_SKIP_MPICXX=1")
set(MPI_CXX_COMPILER ${CMAKE_CXX_COMPILER})
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
string(TOUPPER "${CMAKE_BUILD_TYPE}" BTYPE)
set(N2P2_BUILD_FLAGS "${CMAKE_SHARED_LIBRARY_CXX_FLAGS} ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${BTYPE}} ${N2P2_CXX_STD}")
set(N2P2_BUILD_OPTIONS INTERFACES=LAMMPS COMP=${N2P2_COMP} "PROJECT_OPTIONS=${N2P2_PROJECT_OPTIONS}" "PROJECT_DEBUG="
"PROJECT_CC=${CMAKE_CXX_COMPILER}" "PROJECT_MPICC=${MPI_CXX_COMPILER}" "PROJECT_CFLAGS=${N2P2_BUILD_FLAGS}"
"PROJECT_AR=${N2P2_AR}")
# echo final flag for debugging
message(STATUS "N2P2 BUILD OPTIONS: ${N2P2_BUILD_OPTIONS}")
# download compile n2p2 library. much patch MPI calls in LAMMPS interface to accommodate MPI-2 (e.g. for cross-compiling)
include(ExternalProject)
ExternalProject_Add(n2p2_build
URL ${N2P2_URL}
URL_MD5 ${N2P2_MD5}
UPDATE_COMMAND ""
CONFIGURE_COMMAND ""
PATCH_COMMAND sed -i -e "s/\\(MPI_\\(P\\|Unp\\)ack(\\)/\\1(void *) /" src/libnnpif/LAMMPS/InterfaceLammps.cpp
BUILD_COMMAND ${N2P2_MAKE} -f makefile libnnpif ${N2P2_BUILD_OPTIONS}
BUILD_ALWAYS YES
INSTALL_COMMAND ""
BUILD_IN_SOURCE 1
LOG_BUILD ON
SOURCE_SUBDIR src/
BUILD_BYPRODUCTS <SOURCE_DIR>/lib/libnnp.a <SOURCE_DIR>/lib/libnnpif.a
)
# create imported target LAMMPS::N2P2 from two libraries nnp and nnpif
ExternalProject_get_property(n2p2_build SOURCE_DIR)
# n2p2 core library "libnnp"
add_library(LAMMPS::N2P2::LIBNNP UNKNOWN IMPORTED)
set_target_properties(LAMMPS::N2P2::LIBNNP PROPERTIES
IMPORTED_LOCATION "${SOURCE_DIR}/lib/libnnp.a"
INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}/include")
# n2p2 interface library "libnnpif"
add_library(LAMMPS::N2P2::LIBNNPIF UNKNOWN IMPORTED)
set_target_properties(LAMMPS::N2P2::LIBNNPIF PROPERTIES
IMPORTED_LOCATION "${SOURCE_DIR}/lib/libnnpif.a"
INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}/include")
# nnpif library has MPI calls if MPI is enabled, so we must link with MPI libs
if(BUILD_MPI)
set_target_properties(LAMMPS::N2P2::LIBNNPIF PROPERTIES
INTERFACE_LINK_LIBRARIES MPI::MPI_CXX)
if((CMAKE_SYSTEM_NAME STREQUAL Windows) AND CMAKE_CROSSCOMPILING)
add_dependencies(LAMMPS::N2P2::LIBNNPIF MPI::MPI_CXX)
endif()
endif()
# final step to define imported target
add_library(LAMMPS::N2P2 INTERFACE IMPORTED)
set_property(TARGET LAMMPS::N2P2 PROPERTY
INTERFACE_LINK_LIBRARIES LAMMPS::N2P2::LIBNNPIF LAMMPS::N2P2::LIBNNP)
target_link_libraries(lammps PRIVATE LAMMPS::N2P2)
add_dependencies(LAMMPS::N2P2 n2p2_build)
# work around issues with older CMake versions
file(MAKE_DIRECTORY "${SOURCE_DIR}/include")
file(MAKE_DIRECTORY "${SOURCE_DIR}/lib")
else()
find_package(N2P2)
if(NOT N2P2_FOUND)
message(FATAL_ERROR "n2p2 not found, help CMake to find it by setting N2P2_DIR, or set DOWNLOAD_N2P2=ON to download it")
endif()
target_link_libraries(lammps PRIVATE N2P2::N2P2)
include(${N2P2_CMAKE_EXTRAS})
endif()

View File

@ -0,0 +1,40 @@
# 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)
if(Cythonize_FOUND)
set(MLIAP_ENABLE_PYTHON_DEFAULT ON)
endif()
endif()
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 ML-IAP")
endif()
if(CMAKE_VERSION VERSION_LESS 3.12)
if(PYTHONLIBS_VERSION_STRING VERSION_LESS 3.6)
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 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}/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
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MLIAP_CYTHON_SRC} ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.pyx
COMMAND ${Cythonize_EXECUTABLE} -3 ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.pyx
WORKING_DIRECTORY ${MLIAP_BINARY_DIR}
MAIN_DEPENDENCY ${MLIAP_CYTHON_SRC}
COMMENT "Generating C++ sources with cythonize...")
target_compile_definitions(lammps PRIVATE -DMLIAP_PYTHON)
target_sources(lammps PRIVATE ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp)
target_include_directories(lammps PRIVATE ${MLIAP_BINARY_DIR})
endif()

View File

@ -0,0 +1,25 @@
set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2021.4.9.tar.gz" CACHE STRING "URL for PACE evaluator library sources")
set(PACELIB_MD5 "4db54962fbd6adcf8c18d46e1798ceb5" CACHE STRING "MD5 checksum of PACE evaluator library tarball")
mark_as_advanced(PACELIB_URL)
mark_as_advanced(PACELIB_MD5)
# download library sources to build folder
file(DOWNLOAD ${PACELIB_URL} ${CMAKE_BINARY_DIR}/libpace.tar.gz SHOW_PROGRESS EXPECTED_HASH MD5=${PACELIB_MD5})
# uncompress downloaded sources
execute_process(
COMMAND ${CMAKE_COMMAND} -E remove_directory lammps-user-pace*
COMMAND ${CMAKE_COMMAND} -E tar xzf libpace.tar.gz
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
file(GLOB PACE_EVALUATOR_INCLUDE_DIR ${CMAKE_BINARY_DIR}/lammps-user-pace-*/USER-PACE)
file(GLOB PACE_EVALUATOR_SOURCES ${CMAKE_BINARY_DIR}/lammps-user-pace-*/USER-PACE/*.cpp)
list(FILTER PACE_EVALUATOR_SOURCES EXCLUDE REGEX pair_pace.cpp)
add_library(pace STATIC ${PACE_EVALUATOR_SOURCES})
set_target_properties(pace PROPERTIES CXX_EXTENSIONS ON OUTPUT_NAME lammps_pace${LAMMPS_MACHINE})
target_include_directories(pace PUBLIC ${PACE_EVALUATOR_INCLUDE_DIR})
target_link_libraries(lammps PRIVATE pace)

View File

@ -0,0 +1,7 @@
set(MOLFILE_INCLUDE_DIR "${LAMMPS_LIB_SOURCE_DIR}/molfile" CACHE STRING "Path to VMD molfile plugin headers")
add_library(molfile INTERFACE)
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

@ -7,10 +7,15 @@ else()
endif()
option(DOWNLOAD_MSCG "Download MSCG library instead of using an already installed one)" ${DOWNLOAD_MSCG_DEFAULT})
if(DOWNLOAD_MSCG)
set(MSCG_URL "https://github.com/uchicago-voth/MSCG-release/archive/1.7.3.1.tar.gz" CACHE STRING "URL for MSCG tarball")
set(MSCG_MD5 "8c45e269ee13f60b303edd7823866a91" CACHE STRING "MD5 checksum of MSCG tarball")
mark_as_advanced(MSCG_URL)
mark_as_advanced(MSCG_MD5)
include(ExternalProject)
ExternalProject_Add(mscg_build
URL https://github.com/uchicago-voth/MSCG-release/archive/1.7.3.1.tar.gz
URL_MD5 8c45e269ee13f60b303edd7823866a91
URL ${MSCG_URL}
URL_MD5 ${MSCG_MD5}
SOURCE_SUBDIR src/CMake
CMAKE_ARGS ${CMAKE_REQUEST_PIC} ${EXTRA_MSCG_OPTS}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}

View File

@ -0,0 +1,26 @@
# 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
if(NOT BUILD_MPI)
find_package(NetCDF REQUIRED)
else()
find_package(NetCDF)
if(NETCDF_FOUND)
find_package(PNetCDF)
else()
find_package(PNetCDF REQUIRED)
endif()
endif()
if(NETCDF_FOUND)
target_link_libraries(lammps PRIVATE NetCDF::NetCDF)
target_compile_definitions(lammps PRIVATE -DLMP_HAS_NETCDF)
endif(NETCDF_FOUND)
if(PNETCDF_FOUND)
target_link_libraries(lammps PRIVATE PNetCDF::PNetCDF)
target_compile_definitions(lammps PRIVATE -DLMP_HAS_PNETCDF)
endif(PNETCDF_FOUND)
target_compile_definitions(lammps PRIVATE -DNC_64BIT_DATA=0x0020)

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

@ -0,0 +1,106 @@
set(PLUMED_MODE "static" CACHE STRING "Linkage mode for Plumed2 library")
set(PLUMED_MODE_VALUES static shared runtime)
set_property(CACHE PLUMED_MODE PROPERTY STRINGS ${PLUMED_MODE_VALUES})
validate_option(PLUMED_MODE PLUMED_MODE_VALUES)
string(TOUPPER ${PLUMED_MODE} PLUMED_MODE)
set(PLUMED_LINK_LIBS)
if(PLUMED_MODE STREQUAL "STATIC")
find_package(LAPACK REQUIRED)
find_package(BLAS REQUIRED)
find_package(GSL REQUIRED)
list(APPEND PLUMED_LINK_LIBS ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} GSL::gsl)
find_package(ZLIB QUIET)
if(ZLIB_FOUND)
list(APPEND PLUMED_LINK_LIBS ZLIB::ZLIB)
endif()
find_package(FFTW3 QUIET)
if(FFTW3_FOUND)
list(APPEND PLUMED_LINK_LIBS FFTW3::FFTW3)
endif()
endif()
find_package(PkgConfig QUIET)
set(DOWNLOAD_PLUMED_DEFAULT ON)
if(PKG_CONFIG_FOUND)
pkg_check_modules(PLUMED QUIET plumed)
if(PLUMED_FOUND)
set(DOWNLOAD_PLUMED_DEFAULT OFF)
endif()
endif()
option(DOWNLOAD_PLUMED "Download Plumed package instead of using an already installed one" ${DOWNLOAD_PLUMED_DEFAULT})
if(DOWNLOAD_PLUMED)
if(BUILD_MPI)
set(PLUMED_CONFIG_MPI "--enable-mpi")
set(PLUMED_CONFIG_CC ${CMAKE_MPI_C_COMPILER})
set(PLUMED_CONFIG_CXX ${CMAKE_MPI_CXX_COMPILER})
else()
set(PLUMED_CONFIG_MPI "--disable-mpi")
set(PLUMED_CONFIG_CC ${CMAKE_C_COMPILER})
set(PLUMED_CONFIG_CXX ${CMAKE_CXX_COMPILER})
endif()
if(BUILD_OMP)
set(PLUMED_CONFIG_OMP "--enable-openmp")
else()
set(PLUMED_CONFIG_OMP "--disable-openmp")
endif()
message(STATUS "PLUMED download requested - we will build our own")
if(PLUMED_MODE STREQUAL "STATIC")
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/libplumed.a")
elseif(PLUMED_MODE STREQUAL "SHARED")
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/libplumed${CMAKE_SHARED_LIBRARY_SUFFIX};<INSTALL_DIR>/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
elseif(PLUMED_MODE STREQUAL "RUNTIME")
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/libplumedWrapper.a")
endif()
set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.7.1/plumed-src-2.7.1.tgz" CACHE STRING "URL for PLUMED tarball")
set(PLUMED_MD5 "4eac6a462ec84dfe0cec96c82421b8e8" CACHE STRING "MD5 checksum of PLUMED tarball")
mark_as_advanced(PLUMED_URL)
mark_as_advanced(PLUMED_MD5)
include(ExternalProject)
ExternalProject_Add(plumed_build
URL ${PLUMED_URL}
URL_MD5 ${PLUMED_MD5}
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR>
${CONFIGURE_REQUEST_PIC}
--enable-modules=all
${PLUMED_CONFIG_MPI}
${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)
add_library(LAMMPS::PLUMED UNKNOWN IMPORTED)
add_dependencies(LAMMPS::PLUMED plumed_build)
if(PLUMED_MODE STREQUAL "STATIC")
set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libplumed.a INTERFACE_LINK_LIBRARIES "${PLUMED_LINK_LIBS};${CMAKE_DL_LIBS}")
elseif(PLUMED_MODE STREQUAL "SHARED")
set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libplumed${CMAKE_SHARED_LIBRARY_SUFFIX} INTERFACE_LINK_LIBRARIES "${INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX};${CMAKE_DL_LIBS}")
elseif(PLUMED_MODE STREQUAL "RUNTIME")
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_DEFAULT_KERNEL=${INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libplumedWrapper.a INTERFACE_LINK_LIBRARIES "${CMAKE_DL_LIBS}")
endif()
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
file(MAKE_DIRECTORY ${INSTALL_DIR}/include)
else()
find_package(PkgConfig REQUIRED)
pkg_check_modules(PLUMED REQUIRED plumed)
add_library(LAMMPS::PLUMED INTERFACE IMPORTED)
if(PLUMED_MODE STREQUAL "STATIC")
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.static)
elseif(PLUMED_MODE STREQUAL "SHARED")
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.shared)
elseif(PLUMED_MODE STREQUAL "RUNTIME")
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_DEFAULT_KERNEL=${PLUMED_LIBDIR}/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.runtime)
endif()
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_LINK_LIBRARIES "${PLUMED_LOAD}")
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${PLUMED_INCLUDE_DIRS}")
endif()
target_link_libraries(lammps PRIVATE LAMMPS::PLUMED)

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

@ -0,0 +1,69 @@
enable_language(Fortran)
enable_language(C)
find_package(GSL REQUIRED)
find_package(PkgConfig QUIET)
find_package(MPI REQUIRED)
set(DOWNLOAD_SCAFACOS_DEFAULT ON)
if(PKG_CONFIG_FOUND)
pkg_check_modules(SCAFACOS QUIET scafacos)
if(SCAFACOS_FOUND)
set(DOWNLOAD_SCAFACOS_DEFAULT OFF)
endif()
endif()
option(DOWNLOAD_SCAFACOS "Download ScaFaCoS library instead of using an already installed one" ${DOWNLOAD_SCAFACOS_DEFAULT})
if(DOWNLOAD_SCAFACOS)
message(STATUS "ScaFaCoS download requested - we will build our own")
set(SCAFACOS_URL "https://github.com/scafacos/scafacos/releases/download/v1.0.1/scafacos-1.0.1.tar.gz" CACHE STRING "URL for SCAFACOS tarball")
set(SCAFACOS_MD5 "bd46d74e3296bd8a444d731bb10c1738" CACHE STRING "MD5 checksum of SCAFACOS tarball")
mark_as_advanced(SCAFACOS_URL)
mark_as_advanced(SCAFACOS_MD5)
# version 1.0.1 needs a patch to compile and linke cleanly with GCC 10 and later.
file(DOWNLOAD ${LAMMPS_THIRDPARTY_URL}/scafacos-1.0.1-fix.diff ${CMAKE_CURRENT_BINARY_DIR}/scafacos-1.0.1.fix.diff
EXPECTED_HASH MD5=4baa1333bb28fcce102d505e1992d032)
include(ExternalProject)
ExternalProject_Add(scafacos_build
URL ${SCAFACOS_URL}
URL_MD5 ${SCAFACOS_MD5}
PATCH_COMMAND patch -p1 < ${CMAKE_CURRENT_BINARY_DIR}/scafacos-1.0.1.fix.diff
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR> --disable-doc
--enable-fcs-solvers=fmm,p2nfft,direct,ewald,p3m
--with-internal-fftw --with-internal-pfft
--with-internal-pnfft ${CONFIGURE_REQUEST_PIC}
FC=${CMAKE_MPI_Fortran_COMPILER}
CXX=${CMAKE_MPI_CXX_COMPILER}
CC=${CMAKE_MPI_C_COMPILER}
F77=
BUILD_BYPRODUCTS
<INSTALL_DIR>/lib/libfcs.a
<INSTALL_DIR>/lib/libfcs_direct.a
<INSTALL_DIR>/lib/libfcs_ewald.a
<INSTALL_DIR>/lib/libfcs_fmm.a
<INSTALL_DIR>/lib/libfcs_p2nfft.a
<INSTALL_DIR>/lib/libfcs_p3m.a
<INSTALL_DIR>/lib/libfcs_near.a
<INSTALL_DIR>/lib/libfcs_gridsort.a
<INSTALL_DIR>/lib/libfcs_resort.a
<INSTALL_DIR>/lib/libfcs_redist.a
<INSTALL_DIR>/lib/libfcs_common.a
<INSTALL_DIR>/lib/libfcs_pnfft.a
<INSTALL_DIR>/lib/libfcs_pfft.a
<INSTALL_DIR>/lib/libfcs_fftw3_mpi.a
<INSTALL_DIR>/lib/libfcs_fftw3.a
)
ExternalProject_get_property(scafacos_build INSTALL_DIR)
file(MAKE_DIRECTORY ${INSTALL_DIR}/include)
add_library(LAMMPS::SCAFACOS UNKNOWN IMPORTED)
set_target_properties(LAMMPS::SCAFACOS PROPERTIES
IMPORTED_LOCATION "${INSTALL_DIR}/lib/libfcs.a"
INTERFACE_INCLUDE_DIRECTORIES "${INSTALL_DIR}/include"
INTERFACE_LINK_LIBRARIES "${INSTALL_DIR}/lib/libfcs.a;${INSTALL_DIR}/lib/libfcs_direct.a;${INSTALL_DIR}/lib/libfcs_ewald.a;${INSTALL_DIR}/lib/libfcs_fmm.a;${INSTALL_DIR}/lib/libfcs_p2nfft.a;${INSTALL_DIR}/lib/libfcs_p3m.a;GSL::gsl;${INSTALL_DIR}/lib/libfcs_near.a;${INSTALL_DIR}/lib/libfcs_gridsort.a;${INSTALL_DIR}/lib/libfcs_resort.a;${INSTALL_DIR}/lib/libfcs_redist.a;${INSTALL_DIR}/lib/libfcs_common.a;${INSTALL_DIR}/lib/libfcs_pnfft.a;${INSTALL_DIR}/lib/libfcs_pfft.a;${INSTALL_DIR}/lib/libfcs_fftw3_mpi.a;${INSTALL_DIR}/lib/libfcs_fftw3.a;MPI::MPI_Fortran;MPI::MPI_C")
target_link_libraries(lammps PRIVATE LAMMPS::SCAFACOS)
add_dependencies(LAMMPS::SCAFACOS scafacos_build)
else()
find_package(PkgConfig REQUIRED)
pkg_check_modules(SCAFACOS REQUIRED IMPORTED_TARGET scafacos)
target_link_libraries(lammps PRIVATE PkgConfig::SCAFACOS)
endif()

View File

@ -1,109 +0,0 @@
check_include_file_cxx(immintrin.h FOUND_IMMINTRIN)
if(NOT FOUND_IMMINTRIN)
message(FATAL_ERROR "immintrin.h header not found, Intel package won't work without it")
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_VALUES cpu knl)
set_property(CACHE INTEL_ARCH PROPERTY STRINGS ${INTEL_ARCH_VALUES})
validate_option(INTEL_ARCH INTEL_ARCH_VALUES)
string(TOUPPER ${INTEL_ARCH} INTEL_ARCH)
find_package(Threads QUIET)
if(Threads_FOUND)
set(INTEL_LRT_MODE "threads" CACHE STRING "Long-range threads mode (none, threads, or c++11)")
else()
set(INTEL_LRT_MODE "none" CACHE STRING "Long-range threads mode (none, threads, or c++11)")
endif()
set(INTEL_LRT_VALUES none threads c++11)
set_property(CACHE INTEL_LRT_MODE PROPERTY STRINGS ${INTEL_LRT_VALUES})
validate_option(INTEL_LRT_MODE INTEL_LRT_VALUES)
string(TOUPPER ${INTEL_LRT_MODE} INTEL_LRT_MODE)
if(INTEL_LRT_MODE STREQUAL "THREADS")
if(Threads_FOUND)
target_compile_definitions(lammps PRIVATE -DLMP_INTEL_USELRT)
target_link_libraries(lammps PRIVATE Threads::Threads)
else()
message(FATAL_ERROR "Must have working threads library for Long-range thread support")
endif()
endif()
if(INTEL_LRT_MODE STREQUAL "C++11")
target_compile_definitions(lammps PRIVATE -DLMP_INTEL_USELRT -DLMP_INTEL_LRT11)
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}")
endif()
else()
message(WARNING "USER-INTEL gives best performance with Intel compilers")
endif()
find_package(TBB_MALLOC QUIET)
if(TBB_MALLOC_FOUND)
target_link_libraries(lammps PRIVATE TBB::TBB_MALLOC)
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")
endif()
endif()
find_package(MKL QUIET)
if(MKL_FOUND)
target_compile_definitions(lammps PRIVATE -DLMP_USE_MKL_RNG)
target_link_libraries(lammps PRIVATE MKL::MKL)
else()
message(STATUS "Pair style dpd/intel will be faster with MKL libraries")
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")
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")
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\\\"\"")
target_compile_options(lammps PRIVATE -xMIC-AVX512 -qoffload -fno-alias -ansi-alias -restrict -qoverride-limits ${MIC_OPTIONS})
target_compile_definitions(lammps PRIVATE -DLMP_INTEL_OFFLOAD)
else()
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
include(CheckCXXCompilerFlag)
foreach(_FLAG -O2 -fp-model fast=2 -no-prec-div -qoverride-limits -qopt-zmm-usage=high -qno-offload -fno-alias -ansi-alias -restrict)
check_cxx_compiler_flag("${_FLAG}" COMPILER_SUPPORTS${_FLAG})
if(COMPILER_SUPPORTS${_FLAG})
target_compile_options(lammps PRIVATE ${_FLAG})
endif()
endforeach()
endif()
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_property(GLOBAL PROPERTY "USER-INTEL_SOURCES" "${USER-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)
get_property(USER-INTEL_SOURCES GLOBAL PROPERTY USER-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)
endif()
target_sources(lammps PRIVATE ${USER-INTEL_SOURCES})
target_include_directories(lammps PRIVATE ${USER-INTEL_SOURCES_DIR})

View File

@ -1,9 +0,0 @@
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})
# no need to link with -ldl on windows
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,26 +0,0 @@
# USER-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
if(NOT BUILD_MPI)
find_package(NetCDF REQUIRED)
else()
find_package(NetCDF)
if(NETCDF_FOUND)
find_package(PNetCDF)
else()
find_package(PNetCDF REQUIRED)
endif()
endif()
if(NETCDF_FOUND)
target_link_libraries(lammps PRIVATE NetCDF::NetCDF)
target_compile_definitions(lammps PRIVATE -DLMP_HAS_NETCDF)
endif(NETCDF_FOUND)
if(PNETCDF_FOUND)
target_link_libraries(lammps PRIVATE PNetCDF::PNetCDF)
target_compile_definitions(lammps PRIVATE -DLMP_HAS_PNETCDF)
endif(PNETCDF_FOUND)
target_compile_definitions(lammps PRIVATE -DNC_64BIT_DATA=0x0020)

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,98 +0,0 @@
set(PLUMED_MODE "static" CACHE STRING "Linkage mode for Plumed2 library")
set(PLUMED_MODE_VALUES static shared runtime)
set_property(CACHE PLUMED_MODE PROPERTY STRINGS ${PLUMED_MODE_VALUES})
validate_option(PLUMED_MODE PLUMED_MODE_VALUES)
string(TOUPPER ${PLUMED_MODE} PLUMED_MODE)
set(PLUMED_LINK_LIBS)
if(PLUMED_MODE STREQUAL "STATIC")
find_package(LAPACK REQUIRED)
find_package(BLAS REQUIRED)
find_package(GSL REQUIRED)
list(APPEND PLUMED_LINK_LIBS ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} GSL::gsl)
find_package(ZLIB QUIET)
if(ZLIB_FOUND)
list(APPEND PLUMED_LINK_LIBS ZLIB::ZLIB)
endif()
find_package(FFTW3 QUIET)
if(FFTW3_FOUND)
list(APPEND PLUMED_LINK_LIBS FFTW3::FFTW3)
endif()
endif()
find_package(PkgConfig QUIET)
set(DOWNLOAD_PLUMED_DEFAULT ON)
if(PKG_CONFIG_FOUND)
pkg_check_modules(PLUMED QUIET plumed)
if(PLUMED_FOUND)
set(DOWNLOAD_PLUMED_DEFAULT OFF)
endif()
endif()
option(DOWNLOAD_PLUMED "Download Plumed package instead of using an already installed one" ${DOWNLOAD_PLUMED_DEFAULT})
if(DOWNLOAD_PLUMED)
if(BUILD_MPI)
set(PLUMED_CONFIG_MPI "--enable-mpi")
set(PLUMED_CONFIG_CC ${CMAKE_MPI_C_COMPILER})
set(PLUMED_CONFIG_CXX ${CMAKE_MPI_CXX_COMPILER})
else()
set(PLUMED_CONFIG_MPI "--disable-mpi")
set(PLUMED_CONFIG_CC ${CMAKE_C_COMPILER})
set(PLUMED_CONFIG_CXX ${CMAKE_CXX_COMPILER})
endif()
if(BUILD_OMP)
set(PLUMED_CONFIG_OMP "--enable-openmp")
else()
set(PLUMED_CONFIG_OMP "--disable-openmp")
endif()
message(STATUS "PLUMED download requested - we will build our own")
if(PLUMED_MODE STREQUAL "STATIC")
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/libplumed.a")
elseif(PLUMED_MODE STREQUAL "SHARED")
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/libplumed${CMAKE_SHARED_LIBRARY_SUFFIX};<INSTALL_DIR>/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
elseif(PLUMED_MODE STREQUAL "RUNTIME")
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/libplumedWrapper.a")
endif()
include(ExternalProject)
ExternalProject_Add(plumed_build
URL https://github.com/plumed/plumed2/releases/download/v2.6.1/plumed-src-2.6.1.tgz
URL_MD5 89a9a450fc6025299fe16af235957163
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR>
${CONFIGURE_REQUEST_PIC}
--enable-modules=all
${PLUMED_CONFIG_MPI}
${PLUMED_CONFIG_OMP}
CXX=${PLUMED_CONFIG_CXX}
CC=${PLUMED_CONFIG_CC}
BUILD_BYPRODUCTS ${PLUMED_BUILD_BYPRODUCTS}
)
ExternalProject_get_property(plumed_build INSTALL_DIR)
add_library(LAMMPS::PLUMED UNKNOWN IMPORTED)
add_dependencies(LAMMPS::PLUMED plumed_build)
if(PLUMED_MODE STREQUAL "STATIC")
set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libplumed.a INTERFACE_LINK_LIBRARIES "${PLUMED_LINK_LIBS};${CMAKE_DL_LIBS}")
elseif(PLUMED_MODE STREQUAL "SHARED")
set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libplumed${CMAKE_SHARED_LIBRARY_SUFFIX} INTERFACE_LINK_LIBRARIES "${INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX};${CMAKE_DL_LIBS}")
elseif(PLUMED_MODE STREQUAL "RUNTIME")
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_DEFAULT_KERNEL=${INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libplumedWrapper.a INTERFACE_LINK_LIBRARIES "${CMAKE_DL_LIBS}")
endif()
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
file(MAKE_DIRECTORY ${INSTALL_DIR}/include)
else()
find_package(PkgConfig REQUIRED)
pkg_check_modules(PLUMED REQUIRED plumed)
add_library(LAMMPS::PLUMED INTERFACE IMPORTED)
if(PLUMED_MODE STREQUAL "STATIC")
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.static)
elseif(PLUMED_MODE STREQUAL "SHARED")
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.shared)
elseif(PLUMED_MODE STREQUAL "RUNTIME")
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_DEFAULT_KERNEL=${PLUMED_LIBDIR}/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.runtime)
endif()
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_LINK_LIBRARIES "${PLUMED_LOAD}")
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${PLUMED_INCLUDE_DIRS}")
endif()
target_link_libraries(lammps PRIVATE LAMMPS::PLUMED)

View File

@ -1,65 +0,0 @@
enable_language(Fortran)
enable_language(C)
find_package(GSL REQUIRED)
find_package(PkgConfig QUIET)
find_package(MPI REQUIRED)
set(DOWNLOAD_SCAFACOS_DEFAULT ON)
if(PKG_CONFIG_FOUND)
pkg_check_modules(SCAFACOS QUIET scafacos)
if(SCAFACOS_FOUND)
set(DOWNLOAD_SCAFACOS_DEFAULT OFF)
endif()
endif()
option(DOWNLOAD_SCAFACOS "Download ScaFaCoS library instead of using an already installed one" ${DOWNLOAD_SCAFACOS_DEFAULT})
if(DOWNLOAD_SCAFACOS)
message(STATUS "ScaFaCoS download requested - we will build our own")
# version 1.0.1 needs a patch to compile and linke cleanly with GCC 10 and later.
file(DOWNLOAD https://download.lammps.org/thirdparty/scafacos-1.0.1-fix.diff ${CMAKE_CURRENT_BINARY_DIR}/scafacos-1.0.1.fix.diff
EXPECTED_HASH MD5=4baa1333bb28fcce102d505e1992d032)
include(ExternalProject)
ExternalProject_Add(scafacos_build
URL https://github.com/scafacos/scafacos/releases/download/v1.0.1/scafacos-1.0.1.tar.gz
URL_MD5 bd46d74e3296bd8a444d731bb10c1738
PATCH_COMMAND patch -p1 < ${CMAKE_CURRENT_BINARY_DIR}/scafacos-1.0.1.fix.diff
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR> --disable-doc
--enable-fcs-solvers=fmm,p2nfft,direct,ewald,p3m
--with-internal-fftw --with-internal-pfft
--with-internal-pnfft ${CONFIGURE_REQUEST_PIC}
FC=${CMAKE_MPI_Fortran_COMPILER}
CXX=${CMAKE_MPI_CXX_COMPILER}
CC=${CMAKE_MPI_C_COMPILER}
F77=
BUILD_BYPRODUCTS
<INSTALL_DIR>/lib/libfcs.a
<INSTALL_DIR>/lib/libfcs_direct.a
<INSTALL_DIR>/lib/libfcs_ewald.a
<INSTALL_DIR>/lib/libfcs_fmm.a
<INSTALL_DIR>/lib/libfcs_p2nfft.a
<INSTALL_DIR>/lib/libfcs_p3m.a
<INSTALL_DIR>/lib/libfcs_near.a
<INSTALL_DIR>/lib/libfcs_gridsort.a
<INSTALL_DIR>/lib/libfcs_resort.a
<INSTALL_DIR>/lib/libfcs_redist.a
<INSTALL_DIR>/lib/libfcs_common.a
<INSTALL_DIR>/lib/libfcs_pnfft.a
<INSTALL_DIR>/lib/libfcs_pfft.a
<INSTALL_DIR>/lib/libfcs_fftw3_mpi.a
<INSTALL_DIR>/lib/libfcs_fftw3.a
)
ExternalProject_get_property(scafacos_build INSTALL_DIR)
file(MAKE_DIRECTORY ${INSTALL_DIR}/include)
add_library(LAMMPS::SCAFACOS UNKNOWN IMPORTED)
set_target_properties(LAMMPS::SCAFACOS PROPERTIES
IMPORTED_LOCATION "${INSTALL_DIR}/lib/libfcs.a"
INTERFACE_INCLUDE_DIRECTORIES "${INSTALL_DIR}/include"
INTERFACE_LINK_LIBRARIES "${INSTALL_DIR}/lib/libfcs.a;${INSTALL_DIR}/lib/libfcs_direct.a;${INSTALL_DIR}/lib/libfcs_ewald.a;${INSTALL_DIR}/lib/libfcs_fmm.a;${INSTALL_DIR}/lib/libfcs_p2nfft.a;${INSTALL_DIR}/lib/libfcs_p3m.a;GSL::gsl;${INSTALL_DIR}/lib/libfcs_near.a;${INSTALL_DIR}/lib/libfcs_gridsort.a;${INSTALL_DIR}/lib/libfcs_resort.a;${INSTALL_DIR}/lib/libfcs_redist.a;${INSTALL_DIR}/lib/libfcs_common.a;${INSTALL_DIR}/lib/libfcs_pnfft.a;${INSTALL_DIR}/lib/libfcs_pfft.a;${INSTALL_DIR}/lib/libfcs_fftw3_mpi.a;${INSTALL_DIR}/lib/libfcs_fftw3.a;MPI::MPI_Fortran;MPI::MPI_C")
target_link_libraries(lammps PRIVATE LAMMPS::SCAFACOS)
add_dependencies(LAMMPS::SCAFACOS scafacos_build)
else()
find_package(PkgConfig REQUIRED)
pkg_check_modules(SCAFACOS REQUIRED IMPORTED_TARGET scafacos)
target_link_libraries(lammps PRIVATE PkgConfig::SCAFACOS)
endif()

View File

@ -1,13 +0,0 @@
# Fix rigid/meso requires RIGID to be installed
set(USER-SDPD_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-SDPD)
get_property(hlist GLOBAL PROPERTY FIX)
if(NOT PKG_RIGID)
list(REMOVE_ITEM hlist ${USER-SDPD_SOURCES_DIR}/fix_rigid_meso.h)
get_target_property(LAMMPS_SOURCES lammps SOURCES)
list(REMOVE_ITEM LAMMPS_SOURCES ${USER-SDPD_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})

View File

@ -1,28 +0,0 @@
find_package(Eigen3 NO_MODULE)
if(EIGEN3_FOUND)
set(DOWNLOAD_EIGEN3_DEFAULT OFF)
else()
set(DOWNLOAD_EIGEN3_DEFAULT ON)
endif()
option(DOWNLOAD_EIGEN3 "Download Eigen3 instead of using an already installed one)" ${DOWNLOAD_EIGEN3_DEFAULT})
if(DOWNLOAD_EIGEN3)
message(STATUS "Eigen3 download requested - we will build our own")
include(ExternalProject)
ExternalProject_Add(Eigen3_build
URL https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz
URL_MD5 9e30f67e8531477de4117506fe44669b
CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ""
)
ExternalProject_get_property(Eigen3_build SOURCE_DIR)
add_library(LAMMPS::EIGEN3 INTERFACE IMPORTED)
set_target_properties(LAMMPS::EIGEN3 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}")
target_link_libraries(lammps PRIVATE LAMMPS::EIGEN3)
add_dependencies(LAMMPS::EIGEN3 Eigen3_build)
else()
find_package(Eigen3 NO_MODULE)
mark_as_advanced(Eigen3_DIR)
if(NOT EIGEN3_FOUND)
message(FATAL_ERROR "Eigen3 not found, help CMake to find it by setting EIGEN3_INCLUDE_DIR, or set DOWNLOAD_EIGEN3=ON to download it")
endif()
target_link_libraries(lammps PRIVATE Eigen3::Eigen)
endif()

View File

@ -7,6 +7,11 @@ endif()
option(DOWNLOAD_VORO "Download and compile the Voro++ library instead of using an already installed one" ${DOWNLOAD_VORO_DEFAULT})
if(DOWNLOAD_VORO)
message(STATUS "Voro++ download requested - we will build our own")
set(VORO_URL "${LAMMPS_THIRDPARTY_URL}/voro++-0.4.6.tar.gz" CACHE STRING "URL for Voro++ tarball")
set(VORO_MD5 "2338b824c3b7b25590e18e8df5d68af9" CACHE STRING "MD5 checksum for Voro++ tarball")
mark_as_advanced(VORO_URL)
mark_as_advanced(VORO_MD5)
include(ExternalProject)
if(BUILD_SHARED_LIBS)
@ -22,8 +27,8 @@ if(DOWNLOAD_VORO)
endif()
ExternalProject_Add(voro_build
URL https://download.lammps.org/thirdparty/voro++-0.4.6.tar.gz
URL_MD5 2338b824c3b7b25590e18e8df5d68af9
URL ${VORO_URL}
URL_MD5 ${VORO_MD5}
PATCH_COMMAND patch -b -p0 < ${LAMMPS_LIB_SOURCE_DIR}/voronoi/voro-make.patch
CONFIGURE_COMMAND ""
BUILD_COMMAND make ${VORO_BUILD_OPTIONS}

View File

@ -9,7 +9,7 @@ function(prevent_in_source_builds)
get_filename_component(bindir "${CMAKE_BINARY_DIR}" REALPATH)
# disallow in-source builds
if("${srcdir}" STREQUAL "${bindir}" OR "${srcdir2}" STREQUAL "${bindir}" OR "${srcdir3}" STREQUAL "${bindir}")
if(("${srcdir}" STREQUAL "${bindir}") OR ("${srcdir2}" STREQUAL "${bindir}") OR ("${srcdir3}" STREQUAL "${bindir}"))
message(FATAL_ERROR "\
CMake must not to be run in the source directory. \

View File

@ -16,11 +16,14 @@ if(ENABLE_TESTING)
set(MEMORYCHECK_COMMAND "${VALGRIND_BINARY}" CACHE FILEPATH "Memory Check Command")
set(MEMORYCHECK_COMMAND_OPTIONS "${VALGRIND_DEFAULT_OPTIONS}" CACHE STRING "Memory Check Command Options")
# check if a faster linker is available.
# only verified with GNU and Clang compilers and new CMake
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.13)
if((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
OR (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang"))
# we need to build and link a LOT of tester executables, so it is worth checking if
# a faster linker is available. requires GNU or Clang compiler, newer CMake.
# also only verified with Fedora Linux > 30 and Ubuntu <= 18.04 (Ubuntu 20.04 fails)
if((CMAKE_SYSTEM_NAME STREQUAL "Linux") AND (CMAKE_VERSION VERSION_GREATER_EQUAL 3.13)
AND ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")))
if(((CMAKE_LINUX_DISTRO STREQUAL "Ubuntu") AND (CMAKE_DISTRO_VERSION VERSION_LESS_EQUAL 18.04))
OR ((CMAKE_LINUX_DISTRO STREQUAL "Fedora") AND (CMAKE_DISTRO_VERSION VERSION_GREATER 30)))
include(CheckCXXCompilerFlag)
set(CMAKE_CUSTOM_LINKER_DEFAULT default)
check_cxx_compiler_flag(-fuse-ld=lld HAVE_LLD_LINKER_FLAG)
@ -53,3 +56,76 @@ if(ENABLE_TESTING)
get_filename_component(LAMMPS_UNITTEST_BIN ${CMAKE_BINARY_DIR}/unittest ABSOLUTE)
add_subdirectory(${LAMMPS_UNITTEST_DIR} ${LAMMPS_UNITTEST_BIN})
endif()
# Compiler specific features for testing
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
option(ENABLE_COVERAGE "Enable collecting code coverage data" OFF)
mark_as_advanced(ENABLE_COVERAGE)
if(ENABLE_COVERAGE)
if(CMAKE_VERSION VERSION_LESS 3.13)
if(CMAKE_CXX_FLAGS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_${CMAKE_BUILD_TYPE}_FLAGS} --coverage")
endif()
else()
target_compile_options(lammps PUBLIC --coverage)
target_link_options(lammps PUBLIC --coverage)
endif()
endif()
endif()
#######################################
# add custom target for IWYU analysis
#######################################
set(ENABLE_IWYU OFF CACHE BOOL "Add 'iwyu' build target to call the include-what-you-use tool")
mark_as_advanced(ENABLE_IWYU)
if(ENABLE_IWYU)
# enforce these settings
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE BOOL "Enable reporting compilation commands to compile_commands.json" FORCE)
if(NOT ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")))
message(FATAL_ERROR "IWYU is only supported with Clang or GNU compilers")
endif()
# detect the "native" header folder so we can include them first
execute_process(COMMAND ${CMAKE_CXX_COMPILER} --print-search-dirs OUTPUT_VARIABLE IWYU_SEARCH_PATHS)
string(REGEX REPLACE ".*libraries: *=([^:]+):.*" "\\1/include" IWYU_EXTRA_INCLUDE_DIR ${IWYU_SEARCH_PATHS})
find_program(IWYU_EXE NAMES include-what-you-use iwyu)
find_program(IWYU_TOOL NAMES iwyu_tool iwyu-tool iwyu_tool.py)
if(IWYU_EXE AND IWYU_TOOL)
add_custom_target(
iwyu
${IWYU_TOOL} -o clang -p ${CMAKE_CURRENT_BINARY_DIR} -- -I${IWYU_EXTRA_INCLUDE_DIR} -Xiwyu --mapping_file=${CMAKE_CURRENT_SOURCE_DIR}/iwyu/iwyu-extra-map.imp
COMMENT "Running IWYU")
add_dependencies(iwyu lammps)
else()
message(FATAL_ERROR "To use IWYU you need the include-what-you-use/iwyu executable"
"and the iwyu-tool/iwyu_tool script installed in your PATH")
endif()
endif()
#######################################
# select code sanitizer options
#######################################
set(ENABLE_SANITIZER "none" CACHE STRING "Select a code sanitizer option (none (default), address, leak, thread, undefined)")
mark_as_advanced(ENABLE_SANITIZER)
set(ENABLE_SANITIZER_VALUES none address leak thread undefined)
set_property(CACHE ENABLE_SANITIZER PROPERTY STRINGS ${ENABLE_SANITIZER_VALUES})
validate_option(ENABLE_SANITIZER ENABLE_SANITIZER_VALUES)
string(TOLOWER ${ENABLE_SANITIZER} ENABLE_SANITIZER)
if(NOT ENABLE_SANITIZER STREQUAL "none")
if((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") OR (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang"))
if(CMAKE_VERSION VERSION_LESS 3.13)
if(CMAKE_CXX_FLAGS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=${ENABLE_SANITIZER}")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_${CMAKE_BUILD_TYPE}_FLAGS} -fsanitize=${ENABLE_SANITIZER}")
endif()
else()
target_compile_options(lammps PUBLIC -fsanitize=${ENABLE_SANITIZER})
target_link_options(lammps PUBLIC -fsanitize=${ENABLE_SANITIZER})
endif()
else()
message(WARNING "ENABLE_SANITIZER option not supported by ${CMAKE_CXX_COMPILER_ID} compilers. Ignoring.")
set(ENABLE_SANITIZER "none")
endif()
endif()

View File

@ -45,7 +45,7 @@ if(BUILD_LAMMPS_SHELL)
target_include_directories(lammps-shell PRIVATE ${LAMMPS_TOOLS_DIR}/lammps-shell)
# workaround for broken readline pkg-config file on FreeBSD
if(CMAKE_SYSTEM_NAME STREQUAL FreeBSD)
if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
target_include_directories(lammps-shell PRIVATE /usr/local/include)
endif()
target_link_libraries(lammps-shell PRIVATE lammps PkgConfig::READLINE)

View File

@ -2,17 +2,32 @@ message(STATUS "Downloading and building YAML library")
include(ExternalProject)
set(YAML_URL "https://pyyaml.org/download/libyaml/yaml-0.2.5.tar.gz" CACHE STRING "URL for libyaml tarball")
set(YAML_MD5 "bb15429d8fb787e7d3f1c83ae129a999" CACHE STRING "MD5 checksum of libyaml tarball")
mark_as_advanced(YAML_URL)
mark_as_advanced(YAML_MD5)
# support cross-compilation to windows
if(CMAKE_CROSSCOMPILING AND (CMAKE_SYSTEM_NAME STREQUAL "Windows"))
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86")
set(YAML_CROSS_HOST --host=i686-mingw64)
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
set(YAML_CROSS_HOST --host=x86_64-mingw64)
else()
message(FATAL_ERROR "Unsupported cross-compilation "
" for ${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}"
" on ${CMAKE_HOST_SYSTEM}/${CMAKE_HOST_SYSTEM_PROCESSOR}")
endif()
endif()
ExternalProject_Add(libyaml
URL ${YAML_URL}
URL_MD5 bb15429d8fb787e7d3f1c83ae129a999
URL_MD5 ${YAML_MD5}
SOURCE_DIR "${CMAKE_BINARY_DIR}/yaml-src"
BINARY_DIR "${CMAKE_BINARY_DIR}/yaml-build"
CONFIGURE_COMMAND <SOURCE_DIR>/configure ${CONFIGURE_REQUEST_PIC}
CXX=${CMAKE_CXX_COMPILER}
CC=${CMAKE_C_COMPILER}
--prefix=<INSTALL_DIR> --disable-shared
BUILD_BYPRODUCTS <INSTALL_DIR>/lib/${CMAKE_FIND_LIBRARY_PREFIXES}yaml.a
CXX=${CMAKE_CXX_COMPILER} CC=${CMAKE_C_COMPILER}
--prefix=<INSTALL_DIR> --disable-shared ${YAML_CROSS_HOST}
BUILD_BYPRODUCTS <INSTALL_DIR>/lib/libyaml${CMAKE_STATIC_LIBRARY_SUFFIX}
TEST_COMMAND "")
ExternalProject_Get_Property(libyaml INSTALL_DIR)
@ -23,7 +38,7 @@ set(YAML_LIBRARY_DIR ${INSTALL_DIR}/lib)
file(MAKE_DIRECTORY ${YAML_INCLUDE_DIR})
file(MAKE_DIRECTORY ${YAML_LIBRARY_DIR})
set(YAML_LIBRARY_PATH ${INSTALL_DIR}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}yaml.a)
set(YAML_LIBRARY_PATH ${INSTALL_DIR}/lib/libyaml${CMAKE_STATIC_LIBRARY_SUFFIX})
add_library(Yaml::Yaml UNKNOWN IMPORTED)
set_target_properties(Yaml::Yaml PROPERTIES

View File

@ -17,7 +17,7 @@ if(GIT_FOUND AND EXISTS ${LAMMPS_DIR}/.git)
ERROR_QUIET
WORKING_DIRECTORY ${LAMMPS_DIR}
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${GIT_EXECUTABLE} describe --dirty=-modified
execute_process(COMMAND ${GIT_EXECUTABLE} describe --dirty=-modified --always
OUTPUT_VARIABLE temp_git_describe
ERROR_QUIET
WORKING_DIRECTORY ${LAMMPS_DIR}

View File

@ -24,7 +24,7 @@ includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
Name: liblammps@LAMMPS_MACHINE@
Description: Large-scale Atomic/Molecular Massively Parallel Simulator Library
URL: http://lammps.sandia.gov
URL: https://www.lammps.org
Version: @PROJECT_VERSION@
Requires:
Libs: -L${libdir} -llammps@LAMMPS_MACHINE@

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 MISC MESSAGE MLIAP
MOLECULE MPIIO MSCG OPT PERI POEMS PYTHON QEQ REPLICA RIGID SHOCK
SNAP SPIN SRD VORONOI
USER-ADIOS USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP
USER-H5MD USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESODPD
USER-MESONT USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-OMP
USER-PHONON USER-PLUMED USER-PTM USER-QMMM USER-QTB USER-QUIP
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 MISC MESSAGE MLIAP
MOLECULE MPIIO MSCG OPT PERI POEMS PYTHON QEQ REPLICA RIGID SHOCK
SNAP SPIN SRD VORONOI
USER-ADIOS USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP
USER-H5MD USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESODPD
USER-MESONT USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-OMP
USER-PHONON USER-PLUMED USER-PTM USER-QMMM USER-QTB USER-QUIP
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,26 @@
# 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 -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)
set(MPI_CXX "clang++" CACHE STRING "" FORCE)
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)
unset(HAVE_OMP_H_INCLUDE CACHE)
set(OpenMP_C "clang" CACHE STRING "" FORCE)
set(OpenMP_C_FLAGS "-fopenmp" CACHE STRING "" FORCE)
set(OpenMP_C_LIB_NAMES "omp" CACHE STRING "" FORCE)

View File

@ -1,7 +1,7 @@
# preset that turns on packages with automatic downloads of sources of potentials
# compilation of libraries like Plumed or ScaFaCoS can take a considerable amount of time.
# 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)
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)
@ -9,9 +9,11 @@ endforeach()
set(DOWNLOAD_KIM ON CACHE BOOL "" FORCE)
set(DOWNLOAD_LATTE ON CACHE BOOL "" FORCE)
set(DOWNLOAD_MDI ON CACHE BOOL "" FORCE)
set(DOWNLOAD_MSCG ON CACHE BOOL "" FORCE)
set(DOWNLOAD_VORO ON CACHE BOOL "" FORCE)
set(DOWNLOAD_EIGEN3 ON CACHE BOOL "" FORCE)
set(DOWNLOAD_PACE ON CACHE BOOL "" FORCE)
set(DOWNLOAD_PLUMED ON CACHE BOOL "" FORCE)
set(DOWNLOAD_SCAFACOS 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

@ -3,10 +3,20 @@
set(CMAKE_CXX_COMPILER "icpc" CACHE STRING "" FORCE)
set(CMAKE_C_COMPILER "icc" CACHE STRING "" FORCE)
set(CMAKE_Fortran_COMPILER "ifort" 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_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)
set(MPI_CXX "icpc" CACHE STRING "" FORCE)
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)
unset(HAVE_OMP_H_INCLUDE CACHE)
set(OpenMP_C "icc" CACHE STRING "" FORCE)
set(OpenMP_C_FLAGS "-qopenmp" CACHE STRING "" FORCE)
set(OpenMP_C_LIB_NAMES "omp" 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-CGDNA USER-CGSDK
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF
USER-FEP USER-INTEL USER-MANIFOLD 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
POEMS PYTHON QEQ REPLICA RIGID SHOCK SNAP SPIN SRD VORONOI
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,10 +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 MPIIO MSCG PYTHON
VORONOI USER-ADIOS USER-ATC USER-AWPMD USER-H5MD USER-LB
USER-MOLFILE USER-MESONT USER-NETCDF 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,28 @@
# preset that will enable the LLVM based Intel compilers with support for MPI and OpenMP and Fortran (on Linux boxes)
set(CMAKE_CXX_COMPILER "icpx" CACHE STRING "" FORCE)
set(CMAKE_C_COMPILER "icx" CACHE STRING "" FORCE)
set(CMAKE_Fortran_COMPILER "ifx" 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_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)
set(MPI_CXX "icpx" CACHE STRING "" FORCE)
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)
set(OpenMP_C "icx" CACHE STRING "" FORCE)
set(OpenMP_C_FLAGS "-qopenmp" CACHE STRING "" FORCE)
set(OpenMP_C_LIB_NAMES "omp" CACHE STRING "" FORCE)
set(OpenMP_CXX "icpx" CACHE STRING "" FORCE)
set(OpenMP_CXX_FLAGS "-qopenmp" CACHE STRING "" FORCE)
set(OpenMP_CXX_LIB_NAMES "omp" CACHE STRING "" FORCE)
set(OpenMP_Fortran_FLAGS "-qopenmp" CACHE STRING "" FORCE)
set(OpenMP_omp_LIBRARY "libiomp5.so" CACHE PATH "" 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)

16
cmake/presets/pgi.cmake Normal file
View File

@ -0,0 +1,16 @@
# preset that will enable clang/clang++ with support for MPI and OpenMP (on Linux boxes)
set(CMAKE_CXX_COMPILER "pgc++" CACHE STRING "" FORCE)
set(CMAKE_C_COMPILER "pgcc" CACHE STRING "" FORCE)
set(CMAKE_Fortran_COMPILER "pgfortran" CACHE STRING "" FORCE)
set(MPI_CXX "pgc++" CACHE STRING "" FORCE)
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)
set(OpenMP_C "pgcc" CACHE STRING "" FORCE)
set(OpenMP_C_FLAGS "-mp" CACHE STRING "" FORCE)
set(OpenMP_C_LIB_NAMES "omp" CACHE STRING "" FORCE)
set(OpenMP_CXX "pgc++" CACHE STRING "" FORCE)
set(OpenMP_CXX_FLAGS "-mp" CACHE STRING "" FORCE)
set(OpenMP_CXX_LIB_NAMES "omp" CACHE STRING "" FORCE)
set(OpenMP_omp_LIBRARY "libomp.so" CACHE PATH "" FORCE)

View File

@ -10,7 +10,6 @@ endif
BUILDDIR = ${CURDIR}
RSTDIR = $(BUILDDIR)/src
VENV = $(BUILDDIR)/docenv
TXT2RST = $(VENV)/bin/txt2rst
ANCHORCHECK = $(VENV)/bin/rst_anchor_check
SPHINXCONFIG = $(BUILDDIR)/utils/sphinx-config
MATHJAX = $(SPHINXCONFIG)/_static/mathjax
@ -47,6 +46,8 @@ HAS_PDFLATEX = YES
endif
endif
# override settings for PIP commands
# PIP_OPTIONS = --cert /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt --proxy http://proxy.mydomain.org
#SPHINXEXTRA = -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocessing.cpu_count())') $(shell test -f $(BUILDDIR)/doxygen/xml/run.stamp && printf -- "-E")
@ -57,7 +58,7 @@ SPHINXEXTRA = -E -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiproc
# we only want to use explicitly listed files.
DOXYFILES = $(shell sed -n -e 's/\#.*$$//' -e '/^ *INPUT \+=/,/^[A-Z_]\+ \+=/p' doxygen/Doxyfile.in | sed -e 's/@LAMMPS_SOURCE_DIR@/..\/src/g' -e 's/\\//g' -e 's/ \+/ /' -e 's/[A-Z_]\+ \+= *\(YES\|NO\|\)//')
.PHONY: help clean-all clean clean-spelling epub mobi rst html pdf spelling anchor_check style_check xmlgen
.PHONY: help clean-all clean clean-spelling epub mobi rst html pdf spelling anchor_check style_check char_check xmlgen
# ------------------------------------------
@ -66,7 +67,6 @@ help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html create HTML pages in html dir"
@echo " pdf create Manual.pdf in this dir"
@echo " fetch fetch HTML and PDF files from LAMMPS web site"
@echo " epub create ePUB format manual for e-book readers"
@echo " mobi convert ePUB to MOBI format manual for e-book readers (e.g. Kindle)"
@echo " (requires ebook-convert tool from calibre)"
@ -94,7 +94,7 @@ $(SPHINXCONFIG)/conf.py: $(SPHINXCONFIG)/conf.py.in
-e 's,@LAMMPS_PYTHON_DIR@,$(BUILDDIR)/../python,g' \
-e 's,@LAMMPS_DOC_DIR@,$(BUILDDIR),g' $< > $@
html: xmlgen $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJAX)
html: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJAX)
@if [ "$(HAS_BASH)" == "NO" ] ; then echo "bash was not found at $(OSHELL)! Please use: $(MAKE) SHELL=/path/to/bash" 1>&2; exit 1; fi
@$(MAKE) $(MFLAGS) -C graphviz all
@(\
@ -118,7 +118,7 @@ html: xmlgen $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJAX)
@rm -rf html/PDF/.[sg]*
@echo "Build finished. The HTML pages are in doc/html."
spelling: xmlgen $(VENV) $(SPHINXCONFIG)/false_positives.txt
spelling: xmlgen $(SPHINXCONFIG)/conf.py $(VENV) $(SPHINXCONFIG)/false_positives.txt
@if [ "$(HAS_BASH)" == "NO" ] ; then echo "bash was not found at $(OSHELL)! Please use: $(MAKE) SHELL=/path/to/bash" 1>&2; exit 1; fi
@(\
. $(VENV)/bin/activate ; env PYTHONWARNINGS= \
@ -183,13 +183,6 @@ pdf: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK)
@rm -rf latex/PDF/.[sg]*
@echo "Build finished. Manual.pdf is in this directory."
fetch:
@rm -rf html_www Manual_www.pdf
@curl -s -o Manual_www.pdf http://lammps.sandia.gov/doc/Manual.pdf
@curl -s -o lammps-doc.tar.gz http://lammps.sandia.gov/tars/lammps-doc.tar.gz
@tar xzf lammps-doc.tar.gz
@rm -f lammps-doc.tar.gz
anchor_check : $(ANCHORCHECK)
@(\
. $(VENV)/bin/activate ;\
@ -211,6 +204,9 @@ package_check : $(VENV)
deactivate ;\
)
char_check :
@( env LC_ALL=C grep -n '[^ -~]' $(RSTDIR)/*.rst && exit 1 || : )
xmlgen : doxygen/xml/index.xml
doxygen/Doxyfile: doxygen/Doxyfile.in
@ -228,15 +224,15 @@ $(VENV):
@( \
$(VIRTUALENV) -p $(PYTHON) $(VENV); \
. $(VENV)/bin/activate; \
pip install --upgrade pip; \
pip install --use-feature=2020-resolver -r $(BUILDDIR)/utils/requirements.txt; \
pip $(PIP_OPTIONS) install --upgrade pip; \
pip $(PIP_OPTIONS) install -r $(BUILDDIR)/utils/requirements.txt; \
deactivate;\
)
$(MATHJAX):
@git clone --depth 1 https://github.com/mathjax/MathJax.git $@
@git clone -b 3.2.0 -c advice.detachedHead=0 --depth 1 git://github.com/mathjax/MathJax.git $@
$(TXT2RST) $(ANCHORCHECK): $(VENV)
$(ANCHORCHECK): $(VENV)
@( \
. $(VENV)/bin/activate; \
(cd utils/converters;\

View File

@ -25,16 +25,11 @@ github-development-workflow.md notes on the LAMMPS development workflow
include-file-conventions.md notes on LAMMPS' include file conventions
documentation_conventions.md notes on writing documentation for LAMMPS
If you downloaded a LAMMPS tarball from lammps.sandia.gov, then the html
If you downloaded a LAMMPS tarball from www.lammps.org, then the html
folder and the PDF manual should be included. If you downloaded LAMMPS
from GitHub then you either need to download them or build them.
from GitHub then you either need to build them.
(a) You can "fetch" the current HTML and PDF files from the LAMMPS web
site. Just type "make fetch". This should create a html_www directory
and Manual_www.pdf file. These will always represent the latest published
patch/development version of LAMMPS.
(b) You can build the HTML and PDF files yourself, by typing "make html"
You can build the HTML and PDF files yourself, by typing "make html"
or by "make pdf", respectively. This requires various tools and files.
Some of them have to be installed (more on that below). For the rest the
build process will attempt to download and install into a python virtual
@ -78,4 +73,4 @@ the tool 'ebook-convert' from the 'calibre' e-book management software
----------------
More details this can be found in the manual itself. The online
version is at: https://lammps.sandia.gov/doc/Manual_build.html
version is at: https://docs.lammps.org/Build_manual.html

View File

@ -424,6 +424,8 @@ INPUT = @LAMMPS_SOURCE_DIR@/utils.cpp \
@LAMMPS_SOURCE_DIR@/input.h \
@LAMMPS_SOURCE_DIR@/tokenizer.cpp \
@LAMMPS_SOURCE_DIR@/tokenizer.h \
@LAMMPS_SOURCE_DIR@/arg_info.cpp \
@LAMMPS_SOURCE_DIR@/arg_info.h \
@LAMMPS_SOURCE_DIR@/text_file_reader.cpp \
@LAMMPS_SOURCE_DIR@/text_file_reader.h \
@LAMMPS_SOURCE_DIR@/potential_file_reader.cpp \

View File

@ -18,8 +18,8 @@ digraph lammps {
Up [shape=box label="Update" color=blue]
Un [shape=box label="Universe" color=blue]
Ti [shape=box label="Timer" color=blue]
Lt [label="Lattice"]
Rg [label="Region" color=red]
Lt [label="Lattice"]
Rb [shape=box label="RegionBlock"]
Rs [shape=box label="RegionSphere"]
Av [label="AtomVec" color=red]
@ -34,6 +34,7 @@ digraph lammps {
Du [label="Dump" color=red]
Fi [label="Fix" color=red]
Cp [label="Compute" color=red]
Cm [label="Command" color=red]
Th [label="Thermo"]
Va [label="Variable"]
Ew [shape=box label="Ewald"]
@ -71,16 +72,19 @@ digraph lammps {
Dg [shape=box label="DumpCFG"]
Ve [shape=box label="Verlet"]
Rr [shape=box label="Respa"]
Ru [shape=box label="Run"]
Se [shape=box label="Set"]
Pt [shape=box label="PPPMTIP4P"]
Vs [shape=box label="VerletSplit"]
Ro [shape=box label="RespaOMP"]
Mc [shape=box label="MinCG"]
Mf [shape=box label="MinFire"]
La -> {At Ci Co Do Er Fo Gr In Me Mo Ne Ou Ti Up Un} [penwidth=2]
Do -> {Lt Rg} [penwidth=2]
Do -> {Rg Lt} [penwidth=2]
Rg -> {Rb Rs} [style=dashed penwidth=2]
Co -> {Cb Ct} [style=dashed penwidth=2]
In -> Va [penwidth=2]
In -> {Va Cm} [penwidth=2]
Cm -> {Ru Se} [style=dashed penwidth=2]
Mo -> {Fi Cp} [penwidth=2]
Fo -> {Pa Bo An Di Im Ks} [penwidth=2]
Ks -> {Ew Pp} [style=dashed penwidth=2]

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 "30 November 2020" "2020-10-29"
.TH LAMMPS "2 July 2021" "2021-07-2"
.SH NAME
.B LAMMPS
\- Molecular Dynamics Simulator.
@ -34,7 +34,7 @@ semiconductors) and coarse-grained or mesoscopic systems. It can be used to
model atoms or, more generically, as a parallel particle simulator at the
atomic, meso, or continuum scale.
See https://lammps.sandia.gov/ for more information and documentation.
See https://www.lammps.org/ for more information and documentation.
.SH EXECUTABLE NAME
The
@ -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

@ -1129,6 +1129,9 @@ Bibliography
**(Sutmann)**
Sutmann, Arnold, Fahrenberger, et. al., Physical review / E 88(6), 063308 (2013)
**(Sutmann)** G. Sutmann. ScaFaCoS - a Scalable library of Fast Coulomb Solvers for particle Systems.
In Bajaj, Zavattieri, Koslowski, Siegmund, Proceedings of the Society of Engineering Science 51st Annual Technical Meeting. 2014.
**(Swinburne)**
Swinburne and Marinica, Physical Review Letters, 120, 1 (2018)
@ -1285,9 +1288,6 @@ Bibliography
**(Wennberg)**
Wennberg, Murtola, Hess, Lindahl, J Chem Theory Comput, 9, 3527 (2013).
**(Who)**
Who, Author2, Author3, J of Long Range Solvers, 35, 164-177 (2012).
**(Wicaksono1)**
Wicaksono, Sinclair, Militzer, Computational Materials Science, 117, 397-405 (2016).

View File

@ -1,7 +1,7 @@
Basic build options
===================
The following topics are covered on this page, for building both with
The following topics are covered on this page, for building with both
CMake and make:
* :ref:`Serial vs parallel build <serial>`
@ -90,12 +90,12 @@ 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::
The file ``src/STUBS/mpi.c`` provides a CPU timer function
The file ``src/STUBS/mpi.cpp`` provides a CPU timer function
called ``MPI_Wtime()`` that calls ``gettimeofday()``. If your
operating system does not support ``gettimeofday()``, you will
need to insert code to call another timer. Note that the
@ -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
@ -234,14 +234,21 @@ LAMMPS.
cmake ../cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_Fortran_COMPILER=gfortran
# Building with Intel Compilers:
cmake ../cmake -DCMAKE_C_COMPILER=icc -DCMAKE_CXX_COMPILER=icpc -DCMAKE_Fortran_COMPILER=ifort
# Building with Intel oneAPI Compilers:
cmake ../cmake -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DCMAKE_Fortran_COMPILER=ifx
# Building with LLVM/Clang Compilers:
cmake ../cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_Fortran_COMPILER=flang
# Building with PGI/Nvidia Compilers:
cmake ../cmake -DCMAKE_C_COMPILER=pgcc -DCMAKE_CXX_COMPILER=pgc++ -DCMAKE_Fortran_COMPILER=pgfortran
For compiling with the Clang/LLVM compilers a CMake preset is
provided that can be loaded with
`-C ../cmake/presets/clang.cmake`. Similarly,
`-C ../cmake/presets/intel.cmake` should switch the compiler
toolchain to the Intel compilers.
toolchain to the legacy Intel compilers, `-C ../cmake/presets/oneapi.cmake`
will switch to the LLVM based oneAPI Intel compilers,
and `-C ../cmake/presets/pgi.cmake`
will switch the compiler to the PGI compilers.
In addition you can set ``CMAKE_TUNE_FLAGS`` to specifically add
compiler flags to tune for optimal performance on given hosts. By
@ -318,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)
@ -523,6 +530,20 @@ you want to copy files to is protected.
make # perform make after CMake command
make install # perform the installation into prefix
During the installation process CMake will by default remove any runtime
path settings for loading shared libraries. Because of this you may
have to set or modify the ``LD_LIBRARY_PATH`` (or ``DYLD_LIBRARY_PATH``)
environment variable, if you are installing LAMMPS into a non-system
location and/or are linking to libraries in a non-system location that
depend on such runtime path settings.
As an alternative you may set the CMake variable ``LAMMPS_INSTALL_RPATH``
to ``on`` and then the runtime paths for any linked shared libraries
and the library installation folder for the LAMMPS library will be
embedded and thus the requirement to set environment variables is avoided.
The ``off`` setting is usually preferred for packaged binaries or when
setting up environment modules, the ``on`` setting is more convenient
for installing software into a non-system or personal folder.
.. tab:: Traditional make
There is no "install" option in the ``src/Makefile`` for LAMMPS.

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

@ -28,6 +28,28 @@ variable VERBOSE set to 1:
----------
.. _clang-tidy:
Enable static code analysis with clang-tidy
-------------------------------------------
The `clang-tidy tool <https://clang.llvm.org/extra/clang-tidy/>`_ is a
static code analysis tool to diagnose (and potentially fix) typical
programming errors or coding style violations. It has a modular framework
of tests that can be adjusted to help identifying problems before they
become bugs and also assist in modernizing large code bases (like LAMMPS).
It can be enabled for all C++ code with the following CMake flag
.. code-block:: bash
-D ENABLE_CLANG_TIDY=value # value = no (default) or yes
With this flag enabled all source files will be processed twice, first to
be compiled and then to be analyzed. Please note that the analysis can be
significantly more time consuming than the compilation itself.
----------
.. _iwyu_processing:
Report missing and unneeded '#include' statements
@ -288,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.
@ -323,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
@ -447,12 +469,24 @@ The following options are available.
.. code-block:: bash
make check-whitespace # generate coverage report in HTML format
make fix-whitespace # generate coverage report in XML format
make check-permissions # delete folder with HTML format coverage report
make fix-permissions # delete all collected coverage data and HTML output
make check-whitespace # search for files with whitespace issues
make fix-whitespace # correct whitespace issues in files
make check-homepage # search for files with old LAMMPS homepage URLs
make fix-homepage # correct LAMMPS homepage URLs in files
make check-permissions # search for files with permissions issues
make fix-permissions # correct permissions issues in files
For the code in the ``unittest`` tree we are using the `clang-format`
tool (Clang version 8.0 or later is required). If available, the source
code files in the ``unittest`` tree can be updated to conform to the
formatting settings using ``make format-tests``.
For the code in the ``unittest`` and ``src`` trees we are transitioning
to use the `clang-format` tool to assist with having a consistent source
code style. The `clang-format` command bundled with Clang version 8.0
or later is required. The configuration is in files ``.clang-format``
in the respective folders. Since the modifications from `clang-format`
can be significant and - especially for "legacy style code" - also is
not always improving readability, a large number of files currently have
a ``// clang-format off`` at the top, which will disable the processing.
Over time, files will be refactored and updated to that `clang-format`
may be applied to them (at least in part).
If `clang-format` is available, the source code files in the ``unittest``
tree can be updated to conform to the formatting settings using
``make format-tests`` and the files in ``src`` with ``make format-src``.

View File

@ -37,27 +37,31 @@ This is the list of packages that may require additional steps.
* :ref:`KOKKOS <kokkos>`
* :ref:`LATTE <latte>`
* :ref:`MESSAGE <message>`
* :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-INTEL <user-intel>`
* :ref:`USER-MESONT <user-mesont>`
* :ref:`USER-MOLFILE <user-molfile>`
* :ref:`USER-NETCDF <user-netcdf>`
* :ref:`USER-PLUMED <user-plumed>`
* :ref:`USER-OMP <user-omp>`
* :ref:`USER-QMMM <user-qmmm>`
* :ref:`USER-QUIP <user-quip>`
* :ref:`USER-SCAFACOS <user-scafacos>`
* :ref:`USER-SMD <user-smd>`
* :ref:`USER-VTK <user-vtk>`
* :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>`
----------
@ -119,21 +123,21 @@ CMake build
-D GPU_API=value # value = opencl (default) or cuda or hip
-D GPU_PREC=value # precision setting
# value = double or mixed (default) or single
-D OCL_TUNE=value # hardware choice for GPU_API=opencl
# generic (default) or intel (Intel CPU) or fermi, kepler, cypress (NVIDIA)
-D GPU_ARCH=value # primary GPU hardware choice for GPU_API=cuda
# value = sm_XX, see below
# default is sm_50
-D HIP_ARCH=value # primary GPU hardware choice for GPU_API=hip
# value depends on selected HIP_PLATFORM
# default is 'gfx906' for HIP_PLATFORM=hcc and 'sm_50' for HIP_PLATFORM=nvcc
# default is 'gfx906' for HIP_PLATFORM=amd and 'sm_50' for HIP_PLATFORM=nvcc
-D HIP_USE_DEVICE_SORT=value # enables GPU sorting
# value = yes (default) or no
-D CUDPP_OPT=value # optimization setting for GPU_API=cuda
# enables CUDA Performance Primitives Optimizations
# value = yes (default) or no
-D CUDPP_OPT=value # use GPU binning on with CUDA (should be off for modern GPUs)
# enables CUDA Performance Primitives, must be "no" for CUDA_MPS_SUPPORT=yes
# value = yes or no (default)
-D CUDA_MPS_SUPPORT=value # enables some tweaks required to run with active nvidia-cuda-mps daemon
# value = yes or no (default)
-D USE_STATIC_OPENCL_LOADER=value # downloads/includes OpenCL ICD loader library, no local OpenCL headers/libs needed
# value = yes (default) or no
:code:`GPU_ARCH` settings for different GPU hardware is as follows:
@ -160,19 +164,32 @@ When building with CMake, you **must NOT** build the GPU library in ``lib/gpu``
using the traditional build procedure. CMake will detect files generated by that
process and will terminate with an error and a suggestion for how to remove them.
If you are compiling for OpenCL, the default setting is to download, build, and
link with a static OpenCL ICD loader library and standard OpenCL headers. This
way no local OpenCL development headers or library needs to be present and only
OpenCL compatible drivers need to be installed to use OpenCL. If this is not
desired, you can set :code:`USE_STATIC_OPENCL_LOADER` to :code:`no`.
If you are compiling with HIP, note that before running CMake you will have to
set appropriate environment variables. Some variables such as
:code:`HCC_AMDGPU_TARGET` or :code:`CUDA_PATH` are necessary for :code:`hipcc`
:code:`HCC_AMDGPU_TARGET` (for ROCm <= 4.0) or :code:`CUDA_PATH` are necessary for :code:`hipcc`
and the linker to work correctly.
.. code:: bash
# AMDGPU target
# AMDGPU target (ROCm <= 4.0)
export HIP_PLATFORM=hcc
export HCC_AMDGPU_TARGET=gfx906
cmake -D PKG_GPU=on -D GPU_API=HIP -D HIP_ARCH=gfx906 -D CMAKE_CXX_COMPILER=hipcc ..
make -j 4
.. code:: bash
# AMDGPU target (ROCm >= 4.1)
export HIP_PLATFORM=amd
cmake -D PKG_GPU=on -D GPU_API=HIP -D HIP_ARCH=gfx906 -D CMAKE_CXX_COMPILER=hipcc ..
make -j 4
.. code:: bash
# CUDA target (not recommended, use GPU_ARCH=cuda)
@ -218,11 +235,20 @@ Makefile if desired:
* ``CUDA_PRECISION`` = precision (double, mixed, single)
* ``EXTRAMAKE`` = which Makefile.lammps.\* file to copy to Makefile.lammps
The file Makefile.linux_multi is set up to include support for multiple
The file Makefile.cuda is set up to include support for multiple
GPU architectures as supported by the CUDA toolkit in use. This is done
through using the "--gencode " flag, which can be used multiple times and
thus support all GPU architectures supported by your CUDA compiler.
To enable GPU binning via CUDA performance primitives set the Makefile variable
``CUDPP_OPT = -DUSE_CUDPP -Icudpp_mini``. This should **not** be used with
most modern GPUs.
To support the CUDA multiprocessor server you can set the define
``-DCUDA_PROXY``. Please note that in this case you must **not** use
the CUDA performance primitives and thus set the variable ``CUDPP_OPT``
to empty.
If the library build is successful, 3 files should be created:
``lib/gpu/libgpu.a``\ , ``lib/gpu/nvc_get_devices``\ , and
``lib/gpu/Makefile.lammps``\ . The latter has settings that enable LAMMPS
@ -249,18 +275,18 @@ To build with this package, the KIM library with API v2 must be downloaded
and built on your system. It must include the KIM models that you want to
use with LAMMPS.
If you would like to use the :doc:`kim_query <kim_commands>`
If you would like to use the :doc:`kim query <kim_commands>`
command, you also need to have libcurl installed with the matching
development headers and the curl-config tool.
If you would like to use the :doc:`kim_property <kim_commands>`
If you would like to use the :doc:`kim property <kim_commands>`
command, you need to build LAMMPS with the PYTHON package installed
and linked to Python 3.6 or later. See the :ref:`PYTHON package build info <python>`
for more details on this. After successfully building LAMMPS with Python, you
also need to install the kim-property Python package, which can be easily done using
*pip* as ``pip install kim-property``, or from the *conda-forge* channel as
``conda install kim-property`` if LAMMPS is built in Conda. More detailed
information is available at:
also need to install the ``kim-property`` Python package, which can be easily
done using *pip* as ``pip install kim-property``, or from the *conda-forge*
channel as ``conda install kim-property`` if LAMMPS is built in Conda. More
detailed information is available at:
`kim-property installation <https://github.com/openkim/kim-property#installing-kim-property>`_.
In addition to installing the KIM API, it is also necessary to install the
@ -282,6 +308,7 @@ minutes to hours) to build. Of course you only need to do that once.)
-D DOWNLOAD_KIM=value # download OpenKIM API v2 for build, value = no (default) or yes
-D LMP_DEBUG_CURL=value # set libcurl verbose mode on/off, value = off (default) or on
-D LMP_NO_SSL_CHECK=value # tell libcurl to not verify the peer, value = no (default) or yes
-D KIM_EXTRA_UNITTESTS=value # enables extra unit tests, value = no (default) or yes
If ``DOWNLOAD_KIM`` is set to *yes* (or *on*), the KIM API library
will be downloaded and built inside the CMake build directory. If
@ -290,11 +317,16 @@ minutes to hours) to build. Of course you only need to do that once.)
``PKG_CONFIG_PATH`` environment variable so that libkim-api can be
found, or run the command ``source kim-api-activate``.
Extra unit tests can only be available if they are explicitly requested
(``KIM_EXTRA_UNITTESTS`` is set to *yes* (or *on*)) and the prerequisites
are met. See :ref:`KIM Extra unit tests <kim_extra_unittests>` for
more details on this.
.. tab:: Traditional make
You can download and build the KIM library manually if you prefer;
follow the instructions in ``lib/kim/README``. You can also do
this in one step from the lammps/src dir, using a command like
this in one step from the lammps/src directory, using a command like
these, which simply invoke the ``lib/kim/Install.py`` script with
the specified args.
@ -314,7 +346,7 @@ minutes to hours) to build. Of course you only need to do that once.)
.. code-block:: make
LMP_INC = -DLMP_NO_SSL_CHECK
LMP_INC = -DLMP_NO_SSL_CHECK
Debugging OpenKIM web queries in LAMMPS
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -338,6 +370,39 @@ specify your own CA cert path by setting the environment variable
``CURL_CA_BUNDLE`` to the path of your choice. A call to the KIM web
query would get this value from the environment variable.
.. _kim_extra_unittests:
KIM Extra unit tests (CMake only)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
During development, testing, or debugging, if
:doc:`unit testing <Build_development>` is enabled in LAMMPS, one can also
enable extra tests on :doc:`KIM commands <kim_commands>` by setting the
``KIM_EXTRA_UNITTESTS`` to *yes* (or *on*).
Enabling the extra unit tests have some requirements,
* It requires to have internet access.
* It requires to have libcurl installed with the matching development headers
and the curl-config tool.
* It requires to build LAMMPS with the PYTHON package installed and linked to
Python 3.6 or later. See the :ref:`PYTHON package build info <python>` for
more details on this.
* It requires to have ``kim-property`` Python package installed, which can be
easily done using *pip* as ``pip install kim-property``, or from the
*conda-forge* channel as ``conda install kim-property`` if LAMMPS is built in
Conda. More detailed information is available at:
`kim-property installation <https://github.com/openkim/kim-property#installing-kim-property>`_.
* It is also necessary to install
``EAM_Dynamo_MendelevAckland_2007v3_Zr__MO_004835508849_000``,
``EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005``, and
``LennardJones612_UniversalShifted__MO_959249795837_003`` KIM models.
See `Obtaining KIM Models <http://openkim.org/doc/usage/obtaining-models>`_
to learn how to install a pre-built binary of the OpenKIM Repository of
Models or see
`Installing KIM Models <https://openkim.org/doc/usage/obtaining-models/#installing_models>`_
to learn how to install the specific KIM models.
----------
.. _kokkos:
@ -392,6 +457,9 @@ They must be specified in uppercase.
* - ZEN2
- HOST
- AMD Zen2 class CPU (AVX 2)
* - ZEN3
- HOST
- AMD Zen3 class CPU (AVX 2)
* - ARMV80
- HOST
- ARMv8.0 Compatible CPU
@ -404,6 +472,9 @@ They must be specified in uppercase.
* - ARMV8_THUNDERX2
- HOST
- ARMv8 Cavium ThunderX2 CPU
* - A64FX
- HOST
- ARMv8.2 with SVE Support
* - WSM
- HOST
- Intel Westmere CPU (SSE 4.2)
@ -476,17 +547,23 @@ They must be specified in uppercase.
* - AMPERE80
- GPU
- NVIDIA Ampere generation CC 8.0 GPU
* - AMPERE86
- GPU
- NVIDIA Ampere generation CC 8.6 GPU
* - VEGA900
- GPU
- AMD GPU MI25 GFX900
* - VEGA906
- GPU
- AMD GPU MI50/MI60 GFX906
* - VEGA908
- GPU
- AMD GPU MI100 GFX908
* - INTEL_GEN
- GPU
- Intel GPUs Gen9+
This list was last updated for version 3.2 of the Kokkos library.
This list was last updated for version 3.4.1 of the Kokkos library.
.. tabs::
@ -545,7 +622,7 @@ This list was last updated for version 3.2 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:
@ -732,6 +809,56 @@ be installed on your system.
----------
.. _mliap:
ML-IAP package
---------------------------
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::
.. tab:: CMake build
.. code-block:: bash
-D MLIAP_ENABLE_PYTHON=value # enable mliappy model (default is autodetect)
Without this setting, CMake will check whether it can find a
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/ML-IAP`` folder,
as that can lead to compilation errors if Python support is not enabled.
If you did it by accident, please remove the generated .cpp and .h files.
.. tab:: Traditional make
The build uses the ``lib/python/Makefile.mliap_python`` file in the
compile/link process to add a rule to update the files generated by
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 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.
----------
.. _mscg:
MSCG package
@ -929,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
@ -950,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
@ -1024,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
@ -1075,9 +1202,9 @@ USER-AWPMD package
----------
.. _user-colvars:
.. _colvars:
USER-COLVARS package
COLVARS package
---------------------------------------
This package includes the `Colvars library
@ -1091,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
@ -1134,9 +1261,49 @@ be built for the most part with all major versions of the C++ language.
----------
.. _user-plumed:
.. _ml-pace:
USER-PLUMED package
ML-PACE package
-----------------------------
This package requires a library that can be downloaded and built
in lib/pace or somewhere else, which must be done before building
LAMMPS with this package. The code for the library can be found
at: `https://github.com/ICAMS/lammps-user-pace/ <https://github.com/ICAMS/lammps-user-pace/>`_
.. tabs::
.. tab:: CMake build
By default the library will be downloaded from the git repository
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
archive with ``md5sum`` you may also need to set ``PACELIB_MD5``
if you provide a different library version than what is downloaded
automatically.
.. tab:: Traditional make
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.
.. code-block:: bash
$ make lib-pace # print help message
$ make lib-pace args="-b" # download and build the default version in lib/pace
You should not need to edit the ``lib/pace/Makefile.lammps`` file.
----------
.. _plumed:
PLUMED package
-------------------------------------
.. _plumedinstall: https://plumed.github.io/doc-master/user-doc/html/_installation.html
@ -1144,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.
@ -1180,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
@ -1213,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
@ -1238,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
@ -1258,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
@ -1277,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
@ -1309,24 +1476,78 @@ the HDF5 library.
----------
.. _user-intel:
.. _ml-hdnnp:
USER-INTEL package
ML-HDNNP package
----------------
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
system for detailed information.
In case of a manual installation of *n2p2* you only need to build the *n2p2* core
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>`_.
.. tabs::
.. tab:: CMake build
.. code-block:: bash
-D DOWNLOAD_N2P2=value # download n2p2 for build, value = no (default) or yes
-D N2P2_DIR=path # n2p2 base directory (only needed if a custom location)
If ``DOWNLOAD_N2P2`` is set, the *n2p2* library will be downloaded and
built inside the CMake build directory. If the *n2p2* library is already
on your system (in a location CMake cannot find it), set the ``N2P2_DIR``
to path where *n2p2* is located. If *n2p2* is located directly in
``lib/hdnnp/n2p2`` it will be automatically found by CMake.
.. tab:: Traditional make
You can download and build the *n2p2* library manually if you prefer;
follow the instructions in ``lib/hdnnp/README``\ . You can also do it in
one step from the ``lammps/src`` dir, using a command like these, which
simply invoke the ``lib/hdnnp/Install.py`` script with the specified args:
.. code-block:: bash
$ make lib-hdnnp # print help message
$ make lib-hdnnp args="-b" # download and build in lib/hdnnp/n2p2-...
$ make lib-hdnnp args="-b -v 2.1.4" # download and build specific version
$ make lib-hdnnp args="-p /usr/local/n2p2" # use the existing n2p2 installation in /usr/local/n2p2
Note that 3 symbolic (soft) links, ``includelink``, ``liblink`` and
``Makefile.lammps``, will be created in ``lib/hdnnp`` to point to
``n2p2/include``, ``n2p2/lib`` and ``n2p2/lib/Makefile.lammps-extra``,
respectively. When LAMMPS is built in ``src`` it will use these links.
----------
.. _intel:
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::
@ -1343,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:
@ -1379,9 +1600,38 @@ TBB and MKL.
----------
.. _user-mesont:
.. _mdi:
USER-MESONT package
MDI package
-----------------------------
.. tabs::
.. tab:: CMake build
.. code-block:: bash
-D DOWNLOAD_MDI=value # download MDI Library for build, value = no (default) or yes
.. tab:: Traditional make
Before building LAMMPS, you must build the MDI Library in
``lib/mdi``\ . You can do this by executing a command like one
of the following from the ``lib/mdi`` directory:
.. code-block:: bash
$ python Install.py -m gcc # build using gcc compiler
$ python Install.py -m icc # build using icc compiler
The build should produce two files: ``lib/mdi/includelink/mdi.h``
and ``lib/mdi/liblink/libmdi.so``\ .
----------
.. _mesont:
MESONT package
-------------------------
This package includes a library written in Fortran 90 in the
@ -1394,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
@ -1421,9 +1671,9 @@ they will be downloaded the first time this package is installed.
----------
.. _user-molfile:
.. _molfile:
USER-MOLFILE package
MOLFILE package
---------------------------------------
.. tabs::
@ -1433,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
@ -1459,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
@ -1471,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
@ -1490,9 +1740,9 @@ on your system.
----------
.. _user-omp:
.. _openmp:
USER-OMP package
OPENMP package
-------------------------------
.. tabs::
@ -1500,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.
@ -1523,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
@ -1551,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
@ -1598,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
@ -1618,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
@ -1633,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
@ -1680,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.
@ -1724,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
@ -1736,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

@ -20,16 +20,8 @@ the suffix ``.so.0`` (or some other number).
.. note::
Care should be taken to use the same MPI library for the calling code
and the LAMMPS library. The ``library.h`` file includes ``mpi.h``
and uses definitions from it so those need to be available and
consistent. When LAMMPS is compiled with the included STUBS MPI
library, then its ``mpi.h`` file needs to be included. While it is
technically possible to use a full MPI library in the calling code
and link to a serial LAMMPS library compiled with MPI STUBS, it is
recommended to use the *same* MPI library for both, and then use
``MPI_Comm_split()`` in the calling code to pass a suitable
communicator with a subset of MPI ranks to the function creating the
LAMMPS instance.
and the LAMMPS library unless LAMMPS is to be compiled without (real)
MPI support using the include STUBS MPI library.
Link with LAMMPS as a static library
------------------------------------
@ -110,7 +102,7 @@ executable, that are also required to link the LAMMPS executable.
.. code-block:: bash
gcc -c -O -I${HOME}/lammps/src/STUBS -I${HOME}/lammps/src -caller.c
gcc -c -O -I${HOME}/lammps/src -caller.c
g++ -o caller caller.o -L${HOME}/lammps/lib/poems \
-L${HOME}/lammps/src/STUBS -L${HOME}/lammps/src \
-llammps_serial -lpoems -lmpi_stubs
@ -174,7 +166,7 @@ the POEMS package installed becomes:
.. code-block:: bash
gcc -c -O -I${HOME}/lammps/src/STUBS -I${HOME}/lammps/src -caller.c
gcc -c -O -I${HOME}/lammps/src -caller.c
g++ -o caller caller.o -L${HOME}/lammps/src -llammps_serial
Locating liblammps.so at runtime

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

@ -28,29 +28,18 @@ If you downloaded LAMMPS as a tarball from `the LAMMPS website <lws_>`_,
the html folder and the PDF files should be included.
If you downloaded LAMMPS from the public git repository, then the HTML
and PDF files are not included. Instead you need to create them, in one
of two ways:
a. You can "fetch" the current HTML and PDF files from the LAMMPS web
site. Just type ``make fetch``. This should download a ``html_www``
directory and a ``Manual_www.pdf`` file. Note that if new LAMMPS features
have been added more recently than the date of your LAMMPS version, the
fetched documentation will include those changes (but your source code
will not, unless you update your local repository).
b. You can build the HTML or PDF files yourself, by typing ``make html``
or ``make pdf`` in the ``doc`` folder. This requires various tools
and files. Some of them have to be installed (see below). For the
rest the build process will attempt to download and install them into
a python virtual environment and local folders.
and PDF files are not included. You can build the HTML or PDF files yourself,
by typing ``make html`` or ``make pdf`` in the ``doc`` folder. This requires
various tools and files. Some of them have to be installed (see below). For
the rest the build process will attempt to download and install them into
a python virtual environment and local folders.
A current version of the manual (latest patch release, aka unstable
branch) is is available online at:
`https://lammps.sandia.gov/doc/Manual.html
<https://lammps.sandia.gov/doc/Manual.html>`_ A version of the manual
corresponding to the ongoing development (aka master branch) is
available online at: `https://docs.lammps.org/
<https://docs.lammps.org/>`_
`https://docs.lammps.org/Manual.html <https://docs.lammps.org/Manual.html>`_.
A version of the manual corresponding to the ongoing development (aka master branch)
is available online at: `https://docs.lammps.org/latest/
<https://docs.lammps.org/latest/>`_
Build using GNU make
--------------------
@ -74,7 +63,11 @@ For the documentation build a python virtual environment is set up in
the folder ``doc/docenv`` and various python packages are installed into
that virtual environment via the ``pip`` tool. For rendering embedded
LaTeX code also the `MathJax <https://www.mathjax.org/>`_ JavaScript
engine needs to be downloaded.
engine needs to be downloaded. If you need to pass additional options
to the pip commands to work (e.g. to use a web proxy or to point to
additional SSL certificates) you can set them via the ``PIP_OPTIONS``
environment variable or uncomment and edit the ``PIP_OPTIONS`` setting
at beginning of the makefile.
The actual translation is then done via ``make`` commands in the doc
folder. The following ``make`` commands are available:
@ -108,7 +101,10 @@ installation of the HTML manual pages into the "install" step when
installing LAMMPS after the CMake build via ``cmake --build . --target
install``. The documentation build is included in the default build
target, but can also be requested independently with
``cmake --build . --target doc``.
``cmake --build . --target doc``. If you need to pass additional options
to the pip commands to work (e.g. to use a web proxy or to point to
additional SSL certificates) you can set them via the ``PIP_OPTIONS``
environment variable.
.. code-block:: bash
@ -208,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
@ -250,4 +246,4 @@ the file ``lammps/doc/utils/sphinx-config/false_positives.txt``.
.. _rst: https://docutils.readthedocs.io/en/sphinx-docs/user/rst/quickstart.html
.. _lws: https://lammps.sandia.gov
.. _lws: https://www.lammps.org

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-INTEL <user-intel>` | :ref:`USER-MOLFILE <user-molfile>` |
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
| :ref:`USER-NETCDF <user-netcdf>` | :ref:`USER-PLUMED <user-plumed>` | :ref:`USER-OMP <user-omp>` | :ref:`USER-QMMM <user-qmmm>` | :ref:`USER-QUIP <user-quip>` | :ref:`USER-SCAFACOS <user-scafacos>` |
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
| :ref:`USER-SMD <user-smd>` | :ref:`USER-VTK <user-vtk>` | | | | |
+----------------------------------+----------------------------------+------------------------------------+------------------------------+--------------------------------+--------------------------------------+
.. 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,13 +167,14 @@ 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
cmake -C ../cmake/presets/clang.cmake [OPTIONS] ../cmake # change settings to use the Clang compilers by default
cmake -C ../cmake/presets/gcc.cmake [OPTIONS] ../cmake # change settings to use the GNU compilers by default
cmake -C ../cmake/presets/intel.cmake [OPTIONS] ../cmake # change settings to use the Intel compilers by default
cmake -C ../cmake/presets/pgi.cmake [OPTIONS] ../cmake # change settings to use the PGI compilers by default
cmake -C ../cmake/presets/all_on.cmake [OPTIONS] ../cmake # enable all packages
cmake -C ../cmake/presets/all_off.cmake [OPTIONS] ../cmake # disable all packages
mingw64-cmake -C ../cmake/presets/mingw-cross.cmake [OPTIONS] ../cmake # compile with MinGW cross compilers
@ -207,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
@ -224,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
@ -244,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.

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