Compare commits

...

2301 Commits

Author SHA1 Message Date
c30ba70fab Merge pull request #2957 from akohlmey/next_release_version
Step version strings for stable release
2021-09-29 20:40:00 -04:00
8d6adfa0d1 Merge pull request #2966 from akohlmey/cmake-tweaks
Tweaks to CMake build for portability and early detection of build problems
2021-09-29 19:46:33 -04:00
111e9d9060 Merge pull request #2969 from jrgissing/bond/react-make-Nevery-per-reaction
bond/react: fix nevery keyword bug
2021-09-29 18:42:00 -04:00
7fbd2138bd recover cross-compilation with mingw64 2021-09-29 15:13:55 -04:00
a5ed701908 make Nevery keyword per-reaction 2021-09-29 14:40:22 -04:00
dd4b195552 silence compiler warnings 2021-09-29 14:04:01 -04:00
2651e6ec2f make C library example work with strict C compilers 2021-09-29 10:37:15 -04:00
81d3eb0b2e add missing keyword 2021-09-29 10:29:09 -04:00
3381f72b80 correctly handle Tcl stub library if available 2021-09-29 09:19:47 -04:00
b4307e2354 only need Tcl not Tk to compile Tcl swig wrapper 2021-09-29 09:01:01 -04:00
aa59f7bd91 must have patch command available to compile ScaFaCoS 2021-09-29 07:50:53 -04:00
af7c613200 portability improvement 2021-09-29 07:50:13 -04:00
f7238de5d5 detect and error out if BLAS/LAPACK libraries variables are a list
This will cause external project compilation to fail since the semi-colons
are converted to blanks, but one cannot properly escape the variables.
So far the only viable solution seems to be to convert the scripts from
using ExternalProject_add() to FetchContent and add_subdirectory()
2021-09-29 07:45:07 -04:00
23e173d44f compiling ML-HDNNP with downloaded n2p2 lib requires the sed command 2021-09-29 07:27:49 -04:00
9e49a934c2 Merge pull request #2965 from stanmoore1/neigh_cutoff
Bugfix: prevent neigh list from copying "unique" stencil/bin
2021-09-28 19:28:32 -04:00
8a35ea05bc Prevent neigh list from copying "unique" stencil/bin 2021-09-28 15:33:44 -06:00
ee0d439bbd Merge pull request #2963 from akohlmey/hybrid-one-coeff-bugfix
Make sure the one_coeff flag is applied to hybrid sub-styles
2021-09-28 09:44:10 -04:00
b3c8f85ff9 make sure the one_coeff flag is applied to sub-styles
since the check for Pair::one_coeff was moved to the Input class (to
reduce redundant code), hybrid substyles could "escape" that requirement.
Thus checks have to be added to the hybrid coeff() methods.
2021-09-28 04:39:46 -04:00
c4616d4a11 Merge pull request #2962 from akohlmey/doc-updates
A few final updates to the LAMMPS manual
2021-09-27 20:39:06 -04:00
9d5aa757c3 Merge pull request #2961 from akohlmey/makefile-updates
Add -std=c++11 to a number of machine makefiles for the traditional make build system
2021-09-27 19:42:49 -04:00
34fe792fad freeze versions of pip packages for processing the manual of the stable version
this way we avoid surprises in case one of the packages get updated
to an incompatible new version. these are know-to-work versions.
2021-09-27 18:31:46 -04:00
d171b92a57 Merge pull request #2959 from Colvars/fix-colvars-run0
Fix Colvars output files not written with "run 0"
2021-09-27 18:08:45 -04:00
53e227766a make "make package-update" and "make package-overwrite" less verbose 2021-09-27 18:01:37 -04:00
09e0214f7d remove references to USER packages, have package lists alphabetically sorted
"make package-update" or "make pu" must be processed in the special order
because of inter-package dependencies
2021-09-27 18:01:01 -04:00
913ce25a01 small tweak 2021-09-27 17:13:32 -04:00
9c4a82f286 be more specific about what the name of the LAMMPS executable can be
also provide a few more examples without a machine suffix
2021-09-27 16:50:25 -04:00
9dbd5bb27d copy request to mention lammps.org form home page instructions for citing 2021-09-27 16:49:29 -04:00
395e22457c add -std=c++11 to a number of machine makefiles for traditional make build 2021-09-27 16:28:55 -04:00
7601001632 Fix Colvars output files not written with "run 0"
See:
  https://github.com/Colvars/colvars/commit/ff2f0d39ee5
which fixes a bug introduced in:
  https://github.com/Colvars/colvars/commit/1e964a542b

The message applies to NAMD, but the logic used in LAMMPS when handling "run 0" is very similar.

The Colvars version string is also updated, however this commit does not
include other changes, such as the following:
  https://github.com/Colvars/colvars/pull/419
which were not fully completed before the LAMMPS Summer 2021 finalization.
2021-09-27 13:38:30 -04:00
7b11f916b7 Merge pull request #2952 from akohlmey/collected-small-changes
Final changes and bugfixes for the stable release
2021-09-26 20:18:34 -04:00
ea030c6dd8 Merge branch 'master' into collected-small-changes 2021-09-26 18:12:40 -04:00
f3b1da83f7 Merge pull request #2956 from stanmoore1/kk_eam_alloy
Fix bug in Kokkos pair_eam_alloy on GPUs
2021-09-26 17:57:03 -04:00
b1d65f001e Merge pull request #2949 from ellio167/kim-print-dirs
Add log file printing of KIM search directories in 'kim init'
2021-09-26 16:34:15 -04:00
b24079fe33 cleaner variant of version check, add directory numbering 2021-09-26 11:24:03 -04:00
18a3728800 Adjust for kim-api bug 2021-09-26 08:36:02 -05:00
184e5fd779 step version strings for stable release 2021-09-25 23:04:53 -04:00
9da8c932ab make check more obvious 2021-09-25 21:33:10 -04:00
0534d98987 update .gitignore for recent additions 2021-09-25 15:54:33 -04:00
9df8a12235 include zstd libs in windows build 2021-09-25 15:18:14 -04:00
64cfd90eeb apply current include file conventions 2021-09-25 13:36:39 -04:00
6f87b1236a cosmetic 2021-09-25 10:42:52 -04:00
53e773e438 calling fwrite() with a null pointer causes undefined behavior. avoid it. 2021-09-25 10:18:55 -04:00
1435a96d6e Fix bug in Kokkos pair_eam_alloy 2021-09-25 07:20:24 -06:00
530912a930 detect double precision support according to OpenCL specs (1.2 and later) 2021-09-25 07:20:52 -04:00
24c9bd4cd2 silence output from hwloc when launching LAMMPS 2021-09-24 23:42:33 -04:00
0b2a4ec4e7 Building voro++ lib as part of LAMMPS requires the "patch" program 2021-09-24 17:07:59 -04:00
85bc9911b8 use proper integer type for atom IDs 2021-09-24 16:57:06 -04:00
b3a8a7bf6f in floating point math a*b may be zero even if both a>0 and b>0 2021-09-24 16:43:07 -04:00
4d9cef823d must use a soft core potential to avoid a singularity 2021-09-24 16:22:44 -04:00
2df1107561 fix string formatting bugs in fix npt/cauchy 2021-09-24 15:52:01 -04:00
973cf017a9 do not call memset on a null pointer 2021-09-24 15:32:59 -04:00
42dca75225 add check and suitable error message when fp64 is required but not available 2021-09-24 12:17:58 -04:00
31f9f17c1b Merge pull request #2917 from akohlmey/programmer-guide-updates
Updates to the Programmer guide section of the manual
2021-09-24 11:27:01 -04:00
46f331095a update some formulations as suggested by @sjplimp 2021-09-23 13:51:06 -04:00
16ab49cff4 update citation info with new LAMMPS paper reference and acknowledge it 2021-09-23 11:59:43 -04:00
5ef4913ebb Merge remote-tracking branch 'github/master' into programmer-guide-updates 2021-09-23 11:16:31 -04:00
17ba0d5804 possible workaround for some GPU package neighbor list issue 2021-09-22 21:47:32 -04:00
7792a4db6b Merge pull request #2932 from rbberger/container_updates
Container definition updates
2021-09-22 17:37:50 -04:00
1b1b6298cd Merge remote-tracking branch 'origin/master' into container_updates 2021-09-22 16:29:42 -04:00
f5fa892ec8 Merge pull request #2916 from rbberger/rocm_updates
Updates to support ROCm 4.3 in GPU package
2021-09-22 16:23:19 -04:00
407f032a55 Update CMake variable descriptions 2021-09-22 15:14:39 -04:00
9906486578 correct paths to downloaded PACE package sources in lib 2021-09-22 12:40:19 -04:00
e79ae552c8 mention how to set the path to the fftw3_omp library 2021-09-22 12:23:20 -04:00
5142300b2e undo "risky" C++20 related changes 2021-09-22 12:22:52 -04:00
d89e6f6765 do not downgrade C++ standard when adding the KOKKOS package 2021-09-21 23:52:49 -04:00
ce05ed15c1 adjust for compatibility with C++20 compilers 2021-09-21 23:52:30 -04:00
f2aacca803 modernize and fix some memory leaks 2021-09-21 22:03:38 -04:00
afccf1933f correctly specify the destructor function name. 2021-09-20 23:40:14 -04:00
8d8c710982 Merge pull request #2942 from akohlmey/next_patch_release
Step version strings for the next patch release
2021-09-20 20:35:23 -04:00
9a2c2b5fe3 Merge pull request #2941 from akohlmey/collected-small-changes
Large collection of updates and bugfixes for the stable release
2021-09-20 16:49:00 -04:00
f340e15587 update version strings 2021-09-20 16:26:47 -04:00
c39d3057dc insert missing atom-ID 2021-09-20 16:14:18 -04:00
b73c9280c9 improve error message 2021-09-20 13:58:48 -04:00
5ff881fb0d Change "offsite" to "external" to correct broken URLs to lammps.org 2021-09-20 12:05:52 -04:00
22d7ce564a fix typo 2021-09-20 07:29:10 -04:00
f80df9ae41 a few more (final?) IWYU updates 2021-09-19 09:41:23 -04:00
4fcf343227 fix typo 2021-09-18 21:59:31 -04:00
3cab58bffe small correction 2021-09-18 21:34:30 -04:00
12406b90a1 more iwyu header updates 2021-09-18 21:24:01 -04:00
579f08bbbc add support for compilation of OpenCL loader on FreeBSD 2021-09-18 19:04:08 -04:00
c0a910a6c5 expand mapping to handle "style_*.h" header files correctly. 2021-09-18 16:37:06 -04:00
2b3a09ac88 a few remaining updates to include statements 2021-09-18 16:36:44 -04:00
2382d6c71d handle changes in GAP repo 2021-09-18 16:36:18 -04:00
bca99f684f update list and order of include files from include-what-you-use analysis 2021-09-18 14:16:48 -04:00
db76edbade implement utils::current_date() convenience function to reduce replicated code 2021-09-18 09:05:35 -04:00
8769c0ae98 reformat strings 2021-09-17 22:58:17 -04:00
5a6c1abeed dead code removal 2021-09-17 22:53:59 -04:00
a46b8688ea apply fix from balance command to fix balance 2021-09-17 22:52:58 -04:00
cb2de211b2 small corrections 2021-09-17 22:52:13 -04:00
a71b77c06e simplify. use utils::strdup() more. 2021-09-17 22:51:59 -04:00
385220fd4b format changes 2021-09-17 22:50:15 -04:00
cd3efc3fa8 initialize all members 2021-09-17 22:45:26 -04:00
029fd56c2a Improve style in response to Axel's suggestions 2021-09-17 20:17:45 -05:00
eb3e8e19c6 use clang-format on kim_init.cpp 2021-09-17 20:14:37 -05:00
2709e06d25 Add log file printing of KIM search directories in 'kim init' 2021-09-17 19:43:54 -05:00
ffeeb2f977 simplify 2021-09-17 19:54:55 -04:00
e6fb0e3bd8 small tweaks 2021-09-17 16:51:37 -04:00
3046c9ca93 include EXTRA-DUMP in "most" 2021-09-16 23:01:42 -04:00
dc49917412 remove unused variable 2021-09-16 22:58:42 -04:00
5bddddcd7a revert modernization change (for now) 2021-09-16 22:57:14 -04:00
5c14825d69 Add stable link in docs 2021-09-16 18:13:41 -04:00
5bbec337e5 provide more comprehensive suggestions for GPU neighbor list errors 2021-09-16 10:23:44 -04:00
0fcc10b635 fix typo 2021-09-16 10:18:49 -04:00
e82a2a3280 enforce initialization and thus silence compiler warnings 2021-09-16 07:58:21 -04:00
75f2eb604d remove redundant code: all struct members are initialized to defaults in the constructor 2021-09-16 07:45:33 -04:00
5411075cc6 modernize 2021-09-16 07:44:27 -04:00
90225153d9 make sure err_flag is initialized 2021-09-16 07:33:34 -04:00
00e396c921 move misplaced #endif and make code more readable 2021-09-16 07:33:24 -04:00
353b3a2bb3 reformat for increased readability 2021-09-16 07:25:04 -04:00
dc50db0675 use explicit scoping when virtual dispatch is not (yet) available 2021-09-16 01:01:38 -04:00
1fd25071b9 modernize 2021-09-16 01:01:19 -04:00
ef8a0e5005 removed dead code, reformat 2021-09-16 00:55:30 -04:00
761e519a15 simplify 2021-09-16 00:55:02 -04:00
a47df02f79 modernize 2021-09-16 00:54:46 -04:00
c83ad07740 simplify 2021-09-16 00:27:16 -04:00
2c945f6753 small performance optimization for pair style comb 2021-09-16 00:26:53 -04:00
7aa6241db5 about 1.5x speedup for pair style comb3 by using MathSpecial::powint() 2021-09-16 00:13:28 -04:00
2b6ff442d8 remove dead code 2021-09-16 00:11:53 -04:00
72193bf877 simplify/modernize 2021-09-16 00:11:44 -04:00
707d9f0ad2 use correct data type for MPI calls 2021-09-16 00:11:16 -04:00
94f83c172a simplify and modernize code a little 2021-09-15 23:15:14 -04:00
272badfa7f small tweaks 2021-09-15 20:14:06 -04:00
1f1029486a fix small bug 2021-09-15 20:13:54 -04:00
7196a295a6 small tweaks from static code analysis 2021-09-15 19:50:52 -04:00
fef8f51d80 refer to "XXX Coeffs" sections consistently 2021-09-15 19:20:47 -04:00
8fa5ac28c4 Merge pull request #2939 from rbberger/python_module_fixes
Python module fixes
2021-09-15 21:47:01 +00:00
fbd0fd7727 fix typo 2021-09-15 17:23:20 -04:00
70b09a809d Bugfix from Trung for crashes in pppm/gpu without local atoms 2021-09-15 17:23:12 -04:00
36b3ee32a4 simplify 2021-09-15 16:46:33 -04:00
3caa066c28 simplify/optimize code 2021-09-15 16:23:07 -04:00
a8220a8502 cosmetic changes 2021-09-15 16:08:53 -04:00
7d92d665e8 use explicit scoping when virtual dispatch is not available. 2021-09-15 16:08:17 -04:00
65d8f7f964 use cmath header instead of math.h 2021-09-15 15:25:58 -04:00
1fdba7280e small optimization 2021-09-15 15:14:52 -04:00
f01681eae7 use symbolic constant 2021-09-15 15:09:58 -04:00
9c301822fd use nullptr 2021-09-15 14:57:10 -04:00
eb80102871 spelling 2021-09-15 13:51:31 -04:00
c1fa663dd8 Try to improve the pair style hybrid docs
This specifically tries to avoid the ambiguous use of "mixing" and
clarify that similar is still different when pair styles are concerned.
See discussion here: https://matsci.org/t/confusion-about-mixing-and-pair-coeff-section/38317/3
2021-09-15 13:48:47 -04:00
1b91bfbfa1 spelling 2021-09-14 17:17:46 -04:00
b1ebaa298c build "fat" cuda binaries only with known toolkits 2021-09-14 17:17:38 -04:00
b1092cfa4e detect C++20 standard 2021-09-14 11:56:43 -04:00
c8170c3388 fix mingw 32-bit vs 64-bit craziness 2021-09-13 10:14:34 -04:00
80f95e5087 step version strings for next patch release 2021-09-13 07:33:34 -04:00
37894d48c6 Revert "simplify building shared libs on windows"
This reverts commit fa3429ab02.
2021-09-13 07:24:00 -04:00
ede3762e84 detect a few more compilers 2021-09-13 00:29:04 -04:00
fa3429ab02 simplify building shared libs on windows 2021-09-12 22:09:18 -04:00
585f35235e add note to README files about age of the example 2021-09-11 13:31:55 -04:00
8cef98fae7 update example to use current library interface. No need to use the namespace. 2021-09-11 13:31:55 -04:00
bd225e2484 update example for dynamically loading LAMMPS with current library API 2021-09-11 13:31:55 -04:00
1c21560c70 must not clear force array. will segfault in hybrid atom styles 2021-09-10 20:33:49 -04:00
f5f49078ee Add more atom fields in numpy_wrapper and correct csforce size 2021-09-10 15:40:49 -04:00
7bb863a46c Return None in case of null pointer 2021-09-10 14:55:17 -04:00
e10d89d8c4 Add omega field to numpy_wrapper detection 2021-09-10 14:55:17 -04:00
02da29513e Merge branch 'master' into programmer-guide-updates
# Conflicts:
#	doc/lammps.1
2021-09-09 23:34:46 -04:00
0dd35bdb66 Merge pull request #2935 from akohlmey/python-module-fixes-and-tests
Python module fixes and tests
2021-09-09 23:31:16 -04:00
b535e58e16 Merge pull request #2929 from stanmoore1/kk_gridcomm
Recover Kokkos compilation
2021-09-09 23:30:41 -04:00
551810d388 Merge pull request #2928 from wouterel/enable-dyngroups-fixbondcreate
Enable dynamic groups for fix bond/create
2021-09-09 23:27:55 -04:00
3fd4bd1fcd Merge branch 'python-module-fixes-and-tests' of github.com:akohlmey/lammps into python-module-fixes-and-tests 2021-09-09 23:05:48 -04:00
6ef8c12457 whitespace 2021-09-09 23:05:30 -04:00
e2b44e89a7 Merge pull request #2927 from akohlmey/docs-update
Update documentation for the stable release
2021-09-09 23:03:12 -04:00
d09851e695 Improve MPI support in PyLammps 2021-09-09 21:47:08 -04:00
7b1e951916 add unit test for checking properties parsed from info command output 2021-09-09 21:13:09 -04:00
4eeb90d135 fix PyLammps parser issue with parsing info command output 2021-09-09 21:12:28 -04:00
390f9eff39 Merge branch 'master' into kk_gridcomm 2021-09-09 19:17:55 -04:00
150a695b8c Merge pull request #2925 from akohlmey/collected-small-changes
Collected small changes
2021-09-09 19:03:20 -04:00
a954ddac5a add missing "private" 2021-09-09 18:03:17 -04:00
f9cd6a384b Add Rocky Linux 8 container definition 2021-09-09 10:45:30 -04:00
8da122c6a4 RHEL8/CentOS8 PowerTools is now powertools 2021-09-09 10:31:17 -04:00
4e92c68244 allow skipping fix timestep tests when LAMMPS was compiled for static libs 2021-09-08 23:41:31 -04:00
8c3924352d only check for meminfo[2] on platforms we know to be supported 2021-09-08 23:02:56 -04:00
6bad470dd5 avoid namespace clash in mini-regex library 2021-09-08 20:39:41 -04:00
bc7dfbed3c add missing #if 2021-09-08 20:00:39 -04:00
9cdb83a24d support utils::guesspath() also on Windows 2021-09-08 18:17:14 -04:00
5c1fa54750 Update more definition files 2021-09-08 18:11:40 -04:00
d5f70ed347 Update container definitions to include PLUMED 2.7.2 2021-09-08 17:43:12 -04:00
9fb29b165d Update CUDA container definitions to CUDA 11.4 2021-09-08 17:40:48 -04:00
40f861097c Recover Kokkos compilation 2021-09-08 14:41:51 -06:00
b74a32c1e3 Update Singularity definitions to use ROCm 4.3 2021-09-08 16:07:54 -04:00
b87a48e40b re-apply clang-format 2021-09-08 15:42:15 -04:00
04748779fd tweak epsilon for portability to FreeBSD 2021-09-08 15:41:43 -04:00
cfa94dfbaf add support for utils::guesspath() on macos 2021-09-08 15:14:06 -04:00
22f295ffd8 Prevent buffer overflow in TextFileReader::next_dvector() 2021-09-08 10:52:42 -04:00
ebcf0bd6a1 Enable dyanmic groups for fix bond/create 2021-09-08 11:54:50 +02:00
c1dbc110d9 cosmetic changes for consistency 2021-09-07 19:12:59 -04:00
36eb2e30df correct URL 2021-09-07 19:12:27 -04:00
a4735628f9 document flags that were missing in the man page and the help message 2021-09-07 19:11:51 -04:00
ad39aa85ab update style guide and requirements/suggestions for contributions 2021-09-07 19:09:35 -04:00
1ae15cf8b7 Merge branch 'master' into programmer-guide-updates 2021-09-07 19:01:21 -04:00
3562c76a66 Update compute angle doc page 2021-09-07 19:00:22 -04:00
194a42b7a5 use more reasonable install prefix when compiling natively on Windows 2021-09-07 15:05:17 -04:00
a16fd25840 minor tweak 2021-09-07 14:26:19 -04:00
55a802afe3 Merge remote-tracking branch 'github/master' into collected-small-changes 2021-09-07 14:20:53 -04:00
9c50420c14 apply clang-format 2021-09-07 14:20:26 -04:00
19e6a9e0d8 Merge pull request #2924 from ohenrich/cg-dna
CG-DNA: Documentation Update
2021-09-07 14:12:07 -04:00
9bc8e0998e must use Python3 version of imported target 2021-09-07 13:34:07 -04:00
909376b14b Merge branch 'master' into collected-small-changes 2021-09-07 13:32:21 -04:00
b0fa666de4 Merge pull request #2923 from akohlmey/python-finalize-take2
Treat calling Py_Finalize() more like MPI_Finalize() and avoid crashes
2021-09-07 11:57:20 -04:00
e070766915 including lmpwindows.h globally from lmptype.h does more harm than good
this addresses some (cross) compilation issues locally.
in the long run, this should be addressed by implementing issue #1884
where platform specific functionality is wrapped into a small library
of generic functions adapted for LAMMPS' needs (like utils:: does for
non-portable convenience functions).
2021-09-07 10:39:16 -04:00
3f83c8397d windows needs io.h for _isatty() 2021-09-07 10:21:00 -04:00
ea34571da1 avoid 32-bit integer overflow 2021-09-07 01:12:24 -04:00
68c842ca84 workaround for MSVC insanity 2021-09-07 00:59:51 -04:00
b2ee7fa3a3 remove stuff that is incompatible with recent MSVC compilers 2021-09-07 00:59:16 -04:00
f5259f0081 correct non-portable code 2021-09-07 00:58:16 -04:00
9a8a4a111f include utils::binary_search in docs 2021-09-06 18:16:07 -04:00
29505404bc add unit test for checking the impact of lammps_python_finalize() 2021-09-06 17:42:18 -04:00
63a2882127 apply clang-format 2021-09-06 17:01:22 -04:00
898f8086db consolidate binary() member functions of Comm and Balance into utils::binary_search() 2021-09-06 16:58:14 -04:00
31a8940ae8 use larger version of FFT grid comm image 2021-09-06 15:50:02 -04:00
bb8b0ef157 add section on PPPM 2021-09-06 12:23:49 -04:00
c1599ffb3e spelling 2021-09-06 09:52:32 -04:00
d8ba7a3e9a add discussion of OpenMP parallelization 2021-09-06 09:52:19 -04:00
bb0188ac1a Corrected linking errors 2021-09-06 13:29:40 +01:00
57cea77fe9 Updated online docu 2021-09-06 11:38:21 +01:00
b132a7eb3a Updated docu to new oxdna atom_style 2021-09-06 09:47:46 +01:00
a7696d5f00 add -skipruin to help message 2021-09-05 22:44:37 -04:00
6e17446f38 add section about parallelization in the OPENMP package 2021-09-05 22:42:42 -04:00
6e57f4f08f fix typo 2021-09-05 22:10:00 -04:00
4fc9753a69 break large file into multiple smaller files by section and add toctree 2021-09-05 21:57:03 -04:00
94f03f169f add section about neighbor list construction 2021-09-05 21:22:39 -04:00
d3af77a876 improve the load imbalance viz 2021-09-05 17:56:58 -04:00
b34a3cec1e update man page with missing flags and correct URLs 2021-09-05 12:45:29 -04:00
0c2d8ad210 Merge branch 'master' into programmer-guide-updates 2021-09-05 12:45:15 -04:00
805b15f5c4 apply clang-format 2021-09-04 14:19:51 -04:00
e2d8fd58fa apply clang-format 2021-09-04 14:01:24 -04:00
0286c3e2be treat Py_Finalize() more like MPI_Finalize()
this is done by
- not automatically calling Py_Finalize() when destructing a python interpreter
- adding wrapper functions so that the call to Py_Finalize() is hidden
  and skipped if Python support is no included.
- call the Python::finalize() wrapper in main.cpp (similar to the equivalent Kokkos function)
- add a wrapper of that call to the C library interface
2021-09-04 13:53:51 -04:00
91b0ae798a make VALUELENGTH constant consistent. 2021-09-04 12:41:52 -04:00
59ef1737c6 add communication section 2021-09-03 22:42:01 -04:00
5be4fb86ea use a more compact image 2021-09-03 21:05:16 -04:00
801cd647c3 Merge pull request #2919 from akohlmey/collected-small-changes
Collected small changes and fixes
2021-09-03 19:03:29 -04:00
a98ded7722 adapt section about domain decomposition from paper 2021-09-03 16:59:41 -04:00
6290054e52 forgot to update lammps.cpp 2021-09-03 11:37:03 -04:00
f768b701ee add -skiprun command line flag that sets a timeout so that run and minimizations loops are skipped 2021-09-03 11:21:42 -04:00
6cf2aa4fbb update github workflow doc 2021-09-02 16:29:20 -04:00
0d765a824e integrate file with description of include file conventions 2021-09-02 15:03:19 -04:00
5851692527 mention when testing may be added 2021-09-02 14:25:10 -04:00
d3447008a1 update contribution guidelines for github 2021-09-02 14:24:57 -04:00
bca9157405 Correct fix bond/swap doc page 2021-09-02 14:10:43 -04:00
ca7bab7e41 refactor style guide and integrate text from issue 2021-09-01 22:16:26 -04:00
72d92ac9e8 correct and clarify Python compatibility 2021-09-01 22:03:12 -04:00
c186b24292 avoid segfaults due to uninitialized data 2021-09-01 21:47:39 -04:00
495f424a67 apply clang-format to pair_lj_cut.cpp so it can serve as example 2021-09-01 20:08:06 -04:00
e6d7a544e2 remove whitespace from comma separated arguments to variable functions 2021-09-01 14:02:35 -04:00
af33724a38 update and reorder the description of the process for submitting contributions 2021-09-01 12:15:52 -04:00
d301c2a71f Merge branch 'master' into programmer-guide-updates 2021-09-01 10:08:51 -04:00
9085662e2b Merge pull request #2899 from akohlmey/next_patch_release
Step version strings for the next patch release
2021-08-31 19:43:41 -04:00
7943cb2067 Merge branch 'master' into programmer-guide-updates 2021-08-31 18:27:25 -04:00
66008a519b Merge pull request #2913 from akohlmey/last-minute-fixes
Some last minute fixes for the next patch release
2021-08-31 18:24:17 -04:00
8db2d64f11 Updates to support ROCm 4.3 in GPU package 2021-08-31 17:56:01 -04:00
000b4c5fda integrate fix ttm/grid properly into the documentation 2021-08-31 16:20:21 -04:00
c567f33cc1 apply spelling fixes and update formatting a little 2021-08-31 16:17:03 -04:00
ae2f0ef18d whitespace 2021-08-31 16:05:11 -04:00
e9ef26c2be Merge branch 'master' into last-minute-fixes 2021-08-31 16:03:50 -04:00
6448f44fa5 Merge pull request #2914 from rbberger/doc_updates
Minor documentation updates
2021-08-31 15:59:34 -04:00
08eb3345af silence some compiler warnings 2021-08-31 15:11:46 -04:00
6b243845c0 update HIP preset for CMake 2021-08-31 15:11:37 -04:00
b8ed4b28b3 add test for fix adapt with hybrid pair 2021-08-31 14:28:09 -04:00
c66a51bca1 fix bug in fix adapt: reinit must be called for the top-level pair/bond style 2021-08-31 14:23:13 -04:00
888d6fd9b4 small update 2021-08-31 14:20:52 -04:00
191e4671b6 Add section about how to output YAML or JSON 2021-08-31 11:28:13 -04:00
de0aa1e97a Fixup ttm doc page 2021-08-31 11:28:08 -04:00
8f600f6db7 Merge pull request #2912 from stanmoore1/kk_foward_comm_array
Add missing Kokkos sync-to-host to fix false-positive warning
2021-08-31 10:21:31 -04:00
16c063cba5 Fix OPENMP install script properly remove -DLMP_OPENMP from Makefile.packages 2021-08-30 18:39:24 -04:00
c76949e0f0 Merge pull request #2902 from lammps/fix-ttm-grid
Add fix ttm/grid and refactor grid communication to make it globally available.
2021-08-30 17:43:39 -04:00
5b42d5f302 Fix compile issue 2021-08-30 15:21:24 -06:00
1703cd4ca2 Whitespace 2021-08-30 14:57:59 -06:00
0e639a2c5b Add missing Kokkos sync to host 2021-08-30 14:52:26 -06:00
66fc0438a8 Merge branch 'master' into fix-ttm-grid
# Conflicts:
#	doc/src/pair_snap.rst
2021-08-30 16:37:51 -04:00
25a6c59cea Merge pull request #2900 from stanmoore1/kk_bugfixes
Fix issues in KOKKOS package
2021-08-30 15:28:41 -04:00
00c3c5cf06 Port changes from #2903 to Kokkos 2021-08-30 12:43:07 -06:00
2de482f825 Merge pull request #2911 from akohlmey/fix-gpu-package-issues
Fix minor GPU package issues for the stable release
2021-08-30 13:45:23 -04:00
6635b402c6 Merge pull request #2910 from wmbrownIntel/intel-mm-scale-fix
Fix (the fix) for _MM_SCALE preprocessor defines for future Intel compilers
2021-08-30 13:10:21 -04:00
22ce955065 Merge pull request #2909 from wmbrownIntel/born_coul_wolf_nofast
Override any OpenCL fast math JIT settings for born/coul/wolf{/cs}/gpu…
2021-08-30 11:51:04 -04:00
d9c1a299bf Merge pull request #2908 from jrgissing/bond-react-fixes
Bond/react: memory leak
2021-08-30 11:23:26 -04:00
284ed98fb8 fix spelling error and reformat paragraph 2021-08-29 22:08:49 -04:00
5d03028028 Merge branch 'master' into kk_bugfixes 2021-08-29 22:07:40 -04:00
5257b8d280 split off the programming/submission style guide to a separate file 2021-08-29 22:00:05 -04:00
afc65993d0 clarify 2021-08-29 21:43:13 -04:00
be3348be86 update for clang-format 2021-08-29 21:42:59 -04:00
518b2c24f2 use the term 'website' consistently (and not also 'web site') 2021-08-29 21:42:49 -04:00
664a07a3fe disallow GPU neighbor list with hybrid pair styles (which has still problems) 2021-08-29 17:57:30 -04:00
39d8b239ff don't report bogus timings 2021-08-29 17:56:47 -04:00
05eba8e484 move patch release date to august 31st 2021-08-29 16:33:14 -04:00
fb72e00081 Fix (the fix) for _MM_SCALE preprocessor defines for future Intel compilers. 2021-08-28 17:18:05 -07:00
89556f0bcb Override any OpenCL fast math JIT settings for born/coul/wolf{/cs}/gpu to resolve numerical deviations seen with some OpenCL implementations. 2021-08-28 17:01:58 -07:00
653f6f994f Merge branch 'lammps:master' into bond-react-fixes 2021-08-28 16:05:59 -04:00
cddac395c6 some more cleanup 2021-08-28 07:52:14 -04:00
993826989c modernize fix ttm/mod implementation and align with fix ttm 2021-08-28 07:44:06 -04:00
1e37595055 pretty 2021-08-28 07:43:18 -04:00
f49b94e126 update docs. mention support for comments in electron temperature grid files 2021-08-28 07:42:55 -04:00
da1fb924bb modernize code some more. avoid string pointer magic. 2021-08-28 05:43:39 -04:00
e6a45c1fa7 refactor grid data file reader. support descriptive comment(s) and metadata 2021-08-27 23:23:12 -04:00
90d95466c2 add UNITS: metadata 2021-08-27 23:21:04 -04:00
6be84b72a8 simplify and plug memory leak with file output 2021-08-27 21:10:05 -04:00
c779798f3f properly disable clang-format processing 2021-08-27 20:34:46 -04:00
59a6c08a43 correct spelling 2021-08-27 20:32:42 -04:00
9c2b96286f print GPU available info only when GPU package is included 2021-08-27 20:32:22 -04:00
28b6649f0c whitespace 2021-08-27 20:31:58 -04:00
cf33f0bb96 silence compiler warnings, remove dead code, and do some reformatting 2021-08-27 20:22:29 -04:00
a66f3dfbdd Merge branch 'master' into fix-ttm-grid 2021-08-27 19:56:42 -04:00
e93ae9ba12 apply clang-format 2021-08-27 19:56:33 -04:00
c513fc8784 update pppm/gpu to use the refactored GridComm class 2021-08-27 19:52:39 -04:00
90f82a8ef1 memory leak 2021-08-27 17:03:11 -04:00
4d1a6cbd73 Merge pull request #2904 from lammps/memory-null
force all memory methods to return nullptr if requested size <= 0
2021-08-27 16:59:04 -04:00
3e058b734b Merge pull request #2887 from jrgissing/bond-react-fixes
Bond react fixes
2021-08-27 16:58:33 -04:00
cc69431dd3 Merge pull request #2897 from dxhisboy/master
Correcting non-fdotr Virial tensor computation for interlayer potentials
2021-08-27 16:54:56 -04:00
1795e1530f Merge pull request #2896 from akohlmey/collected-small-changes
Collected changes and updates for the next patch release
2021-08-27 15:58:05 -04:00
a58e4fc876 whitespace 2021-08-27 14:59:26 -04:00
4eef3eaac6 Merge branch 'master' into collected-small-changes 2021-08-27 14:58:42 -04:00
4be33df8fb relax force test epsilon values a little for cross-platform tests 2021-08-27 14:57:31 -04:00
e363b4aeff Merge pull request #2905 from weinbe2/fea-snap-large-system
Kokkos SNAP large system optimizations and cleanup
2021-08-27 14:23:37 -04:00
66da0ebada adjust INTEL pppm files for new GridComm interface 2021-08-27 11:01:27 -06:00
9658d1d983 Bump up the default chunksize in SNAP and update the docs 2021-08-27 12:34:19 -04:00
6ab951fedc only change functions known to break with zero-length 2021-08-27 10:28:40 -06:00
2387e12464 Merge pull request #2893 from lammps/doc-intro-updates
Update Intro section of LAMMPS Manual for stable release
2021-08-27 12:09:10 -04:00
0879484827 sync OPENMP package with new GridComm syntax 2021-08-27 09:48:35 -06:00
4089d7757d error->one to error->all corrections 2021-08-27 11:24:04 -04:00
89b4cc9498 Remove comment 2021-08-27 11:03:54 -04:00
aa9f337ef5 Small tweak to docs 2021-08-27 10:47:11 -04:00
27cabbf734 Add missing variable 2021-08-27 10:38:47 -04:00
ecba2d8489 Update doc page 2021-08-27 10:33:18 -04:00
1970ede534 Add user-settable threshold for extra parallelism 2021-08-27 10:22:10 -04:00
cfaa3040ed add a comment explaining the restriction to C and H elements in AIREBO/REBO 2021-08-27 10:02:53 -04:00
7ac2c0c66e refactor custom constraint
evaluates per-atom variables once, and correctly communicates values to ghosts
2021-08-26 23:00:15 -04:00
8c96f1a14b Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes 2021-08-26 22:56:08 -04:00
a686ce33c6 Added less-parallelism-higher-perf paths to recursive polynomial routines. Fixed qSNAP memory coalescing issue. Various modularity improvements. 2021-08-26 22:55:07 -04:00
bbb3f35aa3 "int64_t" is defined in stdint.h; must use "long" in OpenCL kernels instead 2021-08-26 22:46:08 -04:00
fc6b17b82a improve whitespace handling
previously, spaces inside of custom 'rxn' functions could cause issues
2021-08-26 22:28:44 -04:00
42a3a7d10f Merge branch 'master' into collected-small-changes
# Conflicts:
#	src/fix_property_atom.cpp
2021-08-26 21:14:23 -04:00
a587f67423 Merge pull request #2903 from lammps/fix-property-tweak
Fix property/atom tweak
2021-08-26 20:07:13 -04:00
a519dc3e9a make DIELECTRIC package use of GridComm compatible with new version 2021-08-26 16:33:39 -06:00
21b017368b force all memory methods to return nullptr if requested size <= 0 2021-08-26 15:43:12 -06:00
ab8c9851b2 change style to styles to remove override of fix->style string 2021-08-26 15:20:52 -06:00
a85f125ee7 whitespace 2021-08-26 16:58:14 -04:00
892a18c3f6 Merge branch 'master' into fix-ttm-grid 2021-08-26 16:57:19 -04:00
f63d0202be Rely on auto_sync in verlet setup 2021-08-26 14:54:48 -06:00
6fea5dd316 avoid creating empty per atom position arrays for enforcing pbc for dumps 2021-08-26 16:16:30 -04:00
16d73c86ba adjust example TTM input scripts 2021-08-26 13:37:00 -06:00
ddbb8f1aa6 Remove unnecessary data tranfer in fix_nve_sphere_kokkos 2021-08-26 13:36:32 -06:00
49b0623d6b Fix issue with Kokkos granular and pair/only on 2021-08-26 13:26:46 -06:00
62fcaedd33 update example log files 2021-08-26 13:25:46 -06:00
7b3e7d3d3a allow for command-line setting of initial temp 2021-08-26 11:52:07 -06:00
d38549e05f Update ancient Kokkos Arch in Makefile.kokkos_cuda_mpi 2021-08-26 11:03:57 -06:00
beffa0d1a1 remove old fix ttm 2021-08-26 10:19:56 -06:00
cbe27096b3 final tweaks 2021-08-26 10:19:22 -06:00
0fb03072b1 restart bug fix in new fix ttm/grid 2021-08-26 10:08:34 -06:00
be98d0bbd9 Fix memory issue in fix_nvt_sllod_kokkos 2021-08-26 09:36:16 -06:00
0e8facdcbb Makefile.kokkos: fix (standard_in) 1: syntax error (kokkos PR4173) 2021-08-26 08:58:58 -06:00
c1ca58ba82 Merge branch 'master' of github.com:lammps/lammps into kk_bugfixes 2021-08-26 08:21:39 -06:00
7e5782a81b Fix deallocation issue in pair_lj_charmm_coul_charmm_kokkos 2021-08-26 08:21:16 -06:00
45854bab0c step version strings for next patch release 2021-08-26 07:46:24 -04:00
0d8c58db02 synchronize DomainOMP::pbc() code with Domain::pbc() 2021-08-26 07:41:57 -04:00
a7f4bbffcf avoid segfault when trying to apply (strict) pbc or convert to/from fractional coordinates on an MPI rank without atoms 2021-08-26 07:10:47 -04:00
84896fc7d4 add building micelle2d.x 2021-08-26 06:36:27 -04:00
e20d66ac19 avoid module name conflict 2021-08-26 06:36:17 -04:00
49a81d6fba silence compiler warnings 2021-08-26 06:30:16 -04:00
c7357d5731 Merge remote-tracking branch 'github/master' into collected-small-changes 2021-08-26 05:30:50 -04:00
6fcd4c0e30 Merge remote-tracking branch 'github/master' into doc-intro-updates 2021-08-26 05:29:53 -04:00
e3af1544f1 Merge pull request #2804 from Vsevak/tip4p_fix_types
Fix atom types handling in the tip4p/gpu kernels
2021-08-26 01:08:19 -04:00
1d33bd1264 whitespace 2021-08-26 01:05:25 -04:00
484f2f4c95 must exclude two more folders from whitespace checking 2021-08-26 01:05:14 -04:00
acf80f5c89 Merge branch 'master' into doc-intro-updates 2021-08-26 01:03:25 -04:00
2845269bdb use MBytes consistently 2021-08-26 01:00:08 -04:00
0aded3931b convert to Fortran 2003 2021-08-26 00:37:25 -04:00
4b707b8684 small tweak 2021-08-26 00:35:43 -04:00
f13fe138cc apply clang-format 2021-08-26 00:35:31 -04:00
9dd1dcab30 remove call to non-portable FDATE() function (a GNU Fortran extension) 2021-08-25 23:56:20 -04:00
61855c5058 apply whitespace checking/fixing also to free-format Fortran files 2021-08-25 23:46:48 -04:00
45e599cb33 modernize Fortran 2021-08-25 23:42:07 -04:00
fe4ec9d1ea select Fortran 2003 as standard for compiling bundled Fortran code 2021-08-25 23:36:12 -04:00
8468d89ec8 tweak epsilon for passing test on macOS 2021-08-25 23:31:53 -04:00
5361af7082 notes on reducing disk space requirements when building LAMMPS from source 2021-08-25 22:51:21 -04:00
c3083785b7 list some more features 2021-08-25 22:02:51 -04:00
a2d77593bb fix typo 2021-08-25 22:01:42 -04:00
4846d8283e convert chain.f to fortran 90+ style free format file chain.f90
this is to maintain compatibility with some newer fortran compilers
that do not support legacy style fortran by default anymore.
2021-08-25 18:38:08 -04:00
a0dfae9876 more debugging of restarts 2021-08-25 16:28:40 -06:00
abd4a6cfa3 remove calls to Modify::end_of_step() during the full_energy() functions
the fixes atom/swap, gcmc, widom, and charge_regulation would call
Modify::end_of_step() in order to make certain that all energy contributions
to the total energy are properly tallied. However, this is no longer
true and it causes lots of unexpected problems, since fixes like
fix ave/time, fix store/state, fix print and many more are called at
the wrong time during a timestep and possibly multiple times which can
lead to very unexpected and incorrect results. fix atc and fix colvars
are currently the only fixes that signal that they contribute to the
global energy *and* run during Modify::end_of_step(). However, they
do not perform any actions related to the global energy in those calls.
2021-08-25 16:41:25 -04:00
51d4e91086 Merge pull request #2882 from CTCMS-UQ/SLLOD-Kokkos
Add Kokkos accelerated styles for shear flow simulations (SLLOD)
2021-08-25 14:44:50 -04:00
ae94a60d4a more debugging 2021-08-25 12:42:47 -06:00
1c0ac4adb7 correct citation string 2021-08-25 07:57:16 -04:00
cc98f9b1e6 add unit test 2021-08-25 07:42:37 -04:00
ce0f1478cb correct stress tally to give results consistent with fdotr 2021-08-25 07:42:37 -04:00
b55673f0a6 add unit test 2021-08-25 07:42:37 -04:00
3a8faa8966 correct stress tally 2021-08-25 07:42:37 -04:00
b1e40a05bc disallow newton pair off 2021-08-25 07:42:37 -04:00
61b9d4a19f update epsilon 2021-08-25 07:42:37 -04:00
d9579c4ecd Changed the virial computation method for pair/ilp/graphene/hbn and pair/kolmogorov/crespi/full from fk x rkj to fk x rki 2021-08-25 14:55:28 +08:00
caaea35c64 Merge pull request #2 from akohlmey/SLLOD-Kokkos
Update pull request to current upstream and resolve merge conflict
2021-08-25 15:29:23 +10:00
0a07f4eae0 spelling issues 2021-08-24 23:48:17 -04:00
c6145e029a update features list 2021-08-24 23:46:06 -04:00
026d7bd112 update description of development model and release cycles 2021-08-24 23:26:22 -04:00
e4e08972f8 update overview text 2021-08-24 23:02:49 -04:00
a1e0341d8c detect and update output for OpenMP version 5.1 2021-08-24 23:01:43 -04:00
7ddfa382dc enable and process pair style table with clang-format 2021-08-24 22:27:11 -04:00
d79c42ac41 improve error messages for incorrect/inconsistent table data 2021-08-24 22:26:59 -04:00
5ba6fee94e Merge branch 'master' into SLLOD-Kokkos
# Conflicts:
#	src/KOKKOS/compute_temp_kokkos.h
2021-08-24 21:48:03 -04:00
857d0d255d change OFFSET to correct value 2021-08-24 17:25:53 -06:00
30fc6e3790 consistency between fix TTM variants 2021-08-24 17:17:54 -06:00
ccbf39d2c9 add unit tests using pppm and ewald with a tilted box 2021-08-24 16:00:26 -04:00
dfc03bd107 avoid 32bit integer overflow on 64-bit storage sizes 2021-08-24 15:49:41 -04:00
588f821ac8 add support for text output and restart output 2021-08-24 13:46:29 -06:00
2150fb7413 adjust epsilon for portability 2021-08-24 15:41:42 -04:00
2239130798 randomize bilayer data file positions to make interlayer tests more reliable 2021-08-24 15:41:28 -04:00
eaf5e08542 detect invalid use and silence compiler warnings 2021-08-24 14:27:20 -04:00
25d9d5dfff Merge pull request #2895 from rbberger/python_coverage_fix
Use .coveragerc to configure Python coverage reporting
2021-08-24 14:07:23 -04:00
3d34ee5087 Merge branch 'master' into fix-ttm-grid 2021-08-24 11:34:27 -06:00
8dd2428294 Merge pull request #2891 from akohlmey/collected-small-changes
Collected small changes and bug fixes
2021-08-24 13:34:20 -04:00
0bb26ff296 make fix qeq/reaxff/kk consistent with REAXFF package version 2021-08-24 12:13:06 -04:00
a26da031aa Use .coveragerc to configure Python coverage reporting 2021-08-24 11:27:30 -04:00
af14e3227d skip folders/files in lib with downloaded content 2021-08-24 10:32:10 -04:00
1c7cc42846 fix parallel programming bug in interlayer pair styles 2021-08-24 10:28:57 -04:00
862cb43fa9 Enable unittest for GPU lj/cut/tip4p/long 2021-08-24 17:07:51 +03:00
3dc142c0b0 Added fix_nvt_sllod_kokkos and compute_temp_deform_kokkos to Install.sh 2021-08-24 16:23:05 +10:00
d34083dd54 update false positives 2021-08-23 23:25:25 -04:00
4fb67c0cc6 mention pre-C++-11 version as C++-98 version. 2021-08-23 23:25:16 -04:00
d561fe3457 clarify license terms description and reduce redundancy. mention LGPL verison 2021-08-23 23:24:47 -04:00
897dfdfb19 some updates to authors list 2021-08-23 23:24:06 -04:00
e6455c2153 fix spelling errors 2021-08-23 23:12:23 -04:00
3bce886ab7 workaround style checker issue 2021-08-23 22:16:39 -04:00
49c9f4597f apply clang-format 2021-08-23 21:46:54 -04:00
72679f6127 Merge branch 'master' into collected-small-changes 2021-08-23 21:44:21 -04:00
c84ebd1c93 update docs for build options for development 2021-08-23 21:43:49 -04:00
d72d8fa938 we require python 3.5 or later 2021-08-23 21:43:06 -04:00
1ee1471b56 fix spelling errors 2021-08-23 21:42:48 -04:00
43261c3a4f Merge pull request #2885 from lammps/grid-adjust
Grid adjust
2021-08-23 21:39:35 -04:00
7b3755bcf4 remove redundant '// clang-format off' marker 2021-08-23 21:17:04 -04:00
7fe6e95d3a make clang-format processing verbose to show progress 2021-08-23 21:11:05 -04:00
1bd6e56369 simplify code using utils::strdup() 2021-08-23 21:06:56 -04:00
9a19a814e4 apply clang-format to packages 2021-08-23 21:06:33 -04:00
686f41731f disable applying clang-format to all "style" classes in the KOKKOS package (for now) 2021-08-23 20:55:41 -04:00
8f71979ba1 update formatting in src folder with clang-format 2021-08-23 20:46:09 -04:00
cb19806020 update ReaxFF reference data due to use of more precise constants in fix qeq/reax 2021-08-23 20:34:44 -04:00
d44edeb32e make clang-format custom targets in CMake similar to the ones in GNU make 2021-08-23 18:36:44 -04:00
6b6e63f77f avoid redundant defines 2021-08-23 18:36:07 -04:00
fec77e49bd add clang-format commands to Makefile 2021-08-23 18:22:12 -04:00
2cfc629388 reformat REAXFF headers with clang-format 2021-08-23 18:21:47 -04:00
86739c46d9 Merge pull request #2889 from jrgissing/property/atom-group-bugfix
property/atom group bugfix
2021-08-23 18:20:53 -04:00
6bc8da05b9 reformat unittest tree with clang-format 2021-08-23 17:06:30 -04:00
4e715da2f3 Merge branch 'grid-adjust' of github.com:lammps/lammps into grid-adjust 2021-08-23 14:57:12 -06:00
0dea376e1a restart support for TTM fixes 2021-08-23 14:56:33 -06:00
d640cd6838 Merge pull request #2890 from stanmoore1/kk_deform
Fix bug with v remap option in Kokkos fix deform
2021-08-23 16:41:23 -04:00
3a3f32d3a8 Merge branch 'master' into tip4p_fix_types 2021-08-23 16:43:55 +03:00
0f8b331d8f enable check/fix scripts in traditional makefile 2021-08-22 22:47:55 -04:00
0c7cf3cdaa protect against use with Python 2.x, use full absolute directory path internally 2021-08-22 22:47:09 -04:00
bc91d05857 fix typo 2021-08-22 20:46:58 -04:00
92b5b159e5 replace tabs and remove trailing whitespace in lib folder with updated script 2021-08-22 20:45:24 -04:00
30821b37e5 replace tabs 2021-08-22 20:43:27 -04:00
0c4752b858 add support to check for tabs as whitespace errors including option to fix 2021-08-22 20:43:08 -04:00
607e75f984 remove tabs 2021-08-22 19:42:55 -04:00
8b2e3ad3ee add unit tests for fix addtorque 2021-08-22 14:27:38 -04:00
bb852f2393 skip some more aliased styles 2021-08-22 14:21:31 -04:00
bb5a11b330 add timestepping unit tests for atom style sphere 2021-08-22 14:16:50 -04:00
bf618b3128 support tests for integrators with dipoles and extended particles 2021-08-22 12:44:02 -04:00
d9538a4745 skip some aliases when checking for missing force style tests 2021-08-22 11:55:37 -04:00
db887b4d7a add unit test for angle style dipole 2021-08-22 11:49:29 -04:00
433ece22ec add unit test for dihedral style spherical 2021-08-22 11:28:32 -04:00
9b4317335a reorder includes 2021-08-22 11:28:04 -04:00
9ce9d36ac5 correct package designations for styles in the EXTRA-MOLECULES package 2021-08-22 11:27:48 -04:00
403ee3a85f apply clang-format 2021-08-22 11:13:34 -04:00
ce71e45db0 plug memory leak 2021-08-22 11:11:32 -04:00
eeff288541 tweak settings to pass OpenCL GPU tests in mixed precision 2021-08-22 10:50:28 -04:00
dd670bab66 update dipole data file with randomized dipole orientations 2021-08-21 20:50:16 -04:00
46e4e1b60e add kspace tests with dipoles 2021-08-21 20:45:25 -04:00
1b72cf01a9 add unit test inputs for pair styles with point dipoles 2021-08-21 20:31:18 -04:00
384330aff2 update/correct extract function 2021-08-21 20:31:02 -04:00
1c7bf82930 initialize scale array 2021-08-21 20:30:38 -04:00
4032c6da98 fix restart bug 2021-08-21 20:30:15 -04:00
09b0809d75 add template files for testing dipolar pair styles and kspace styles 2021-08-21 19:18:21 -04:00
3083e6f4cb make ewald/disp/dipole an alias for ewald/disp for more obvious choices for users 2021-08-21 15:56:46 -04:00
2afa00ae66 pretty 2021-08-21 15:18:54 -04:00
ad5cc694dc correctly check for and enable/disable dipole and dispersion support 2021-08-21 15:18:44 -04:00
d8f0cec031 updates/bug-fixes to parallel fix ttm/grid 2021-08-20 16:57:20 -06:00
7c61e96f0b Fix bug with v remap option in Kokkos fix deform 2021-08-20 16:08:06 -06:00
1a81a94dfb fix up whitespace issues (remove tabs, trailing whitespace) 2021-08-20 15:00:19 -04:00
29fe006e46 fix issue in non-perioidic msm.cpp to allow it to work with any grid partitioning 2021-08-20 12:43:47 -06:00
1eb506002b Merge pull request #2888 from lammps/sticker-bonds
Sticker bonds
2021-08-20 14:28:57 -04:00
8735555e00 1 liner fix for PR #2342 2021-08-20 14:17:05 -04:00
fcc6cc628e fix whitespace 2021-08-20 13:47:24 -04:00
55605167ab Merge pull request #135 from lammps/master
rebase
2021-08-20 10:26:57 -04:00
7a8afb6eef add fragment count to molecule file output 2021-08-19 20:10:26 -04:00
f0a041799f add original TTM for testing 2021-08-19 16:55:57 -06:00
95bae4d78c sync with current master 2021-08-19 16:09:41 -06:00
9577db6578 Merge branch 'master' into fix-ttm-grid 2021-08-19 16:00:56 -06:00
3404920e98 Merge pull request #2342 from lammps/fix-property-array
Enable fix property/atom to create custom arrays
2021-08-19 17:33:55 -04:00
b0197e0607 Merge branch 'master' into grid-adjust 2021-08-19 17:29:51 -04:00
d4de26f6ef fix whitespace issues 2021-08-19 17:28:48 -04:00
537f0eed8e Merge pull request #2886 from akohlmey/pair-coul-exclude
Add a pair style coul/exclude for removing excluded coulomb interactions
2021-08-19 17:25:57 -04:00
f7c8b0c88b address spellcheck issues 2021-08-19 17:00:46 -04:00
bc6e805c99 fix doc formatting issues 2021-08-19 16:53:03 -04:00
e1c1c663c4 correction to doc page 2021-08-19 14:21:15 -06:00
845cebaab1 Add comment 2021-08-19 14:02:57 -06:00
eebbbe9f73 support a second usage model with fix bond/swap 2021-08-19 14:01:06 -06:00
7d0c052425 Fix deallocation with Kokkos 2021-08-19 14:00:37 -06:00
9470a0eeb6 clarified doc pages for fix property/atom and read_data 2021-08-19 11:34:25 -06:00
8aeaa82909 improve error message 2021-08-19 11:08:04 -04:00
1c67561be8 Merge branch 'fix-property-array' of github.com:lammps/lammps into fix-property-array 2021-08-19 09:00:51 -06:00
7046b75861 remove evil tabs 2021-08-19 10:06:34 -04:00
11b4ae641f add unit test for pair style coul/exclude 2021-08-19 05:46:12 -04:00
23231118d1 add a couple explanatory comments 2021-08-19 05:29:54 -04:00
093fbfd4b5 add documentation for pair style coul/exclude 2021-08-19 05:25:36 -04:00
8b680d43e5 add pair style coul/exclude for use with kspace style scafacos 2021-08-19 05:00:52 -04:00
7d0cdea282 allow using kspace_style scafacos for molecular systems under certain conditions 2021-08-19 05:00:11 -04:00
4ce71fd767 pretty 2021-08-19 04:23:44 -04:00
89de4eb7c4 make sure that coul/exclude special neighbors are always flagged 2021-08-19 04:23:26 -04:00
3a7a5d13ef apply clang-format 2021-08-19 04:22:55 -04:00
e149c2fe10 function no longer needs to be public 2021-08-19 04:20:12 -04:00
5c46c6d3a6 update unit test for per-atom arrays and vectors 2021-08-18 22:51:09 -04:00
c53875421b fix read_data bug 2021-08-18 22:50:42 -04:00
b942c4d122 fix data corruption bug affecting write_data 2021-08-18 22:31:46 -04:00
04b0f98a5f fix logic bug in utils::expand_args() 2021-08-18 20:26:51 -04:00
d9f3745eff pretty 2021-08-18 20:26:01 -04:00
546c9a109e fix uninitialized data bug 2021-08-18 20:25:49 -04:00
5e6079c2fc Merge branch 'fix-property-array' of github.com:lammps/lammps into fix-property-array 2021-08-18 16:54:02 -06:00
b19a211d70 update code 2021-08-18 18:06:21 -04:00
f6874af7e5 pretty 2021-08-18 18:05:36 -04:00
104fa4624e correct utils::expand_args() 2021-08-18 18:04:44 -04:00
4e16df9a21 remove prototype for early version of partition_grid method 2021-08-18 15:56:52 -06:00
2119b59d97 code documentation tweaks 2021-08-18 15:49:23 -06:00
1c5bdadcfb small alteration to code that assigns grid pts to procs 2021-08-18 15:43:54 -06:00
dbfba25e04 Merge pull request #1 from akohlmey/SLLOD-Kokkos
Update to current upstream, fix a few cosmetic issues, use alternative to str(n)cmp()
2021-08-19 07:29:51 +10:00
cf25a586bd debugging merged version 2021-08-18 13:07:49 -06:00
de61b3a547 update utils::expand_args 2021-08-18 14:35:27 -04:00
0a99d338f2 update argument parsing 2021-08-18 14:35:02 -04:00
1e37d1ad7f pretty 2021-08-18 14:34:03 -04:00
40fcfef35b create_atoms serial build bugfix 2021-08-18 14:17:04 -04:00
355dd5db9b include 2 use cases in doc page 2021-08-18 11:55:47 -06:00
e08c4abb4b whitespace fixes 2021-08-18 13:06:00 -04:00
4fed16fe8b pretty 2021-08-18 13:00:40 -04:00
f9b32f0eef use ArgInfo class to process references to custom vectors and arrays 2021-08-18 13:00:32 -04:00
300fee0437 add some more checks for typical string matches for references to fixes and alike 2021-08-18 12:59:56 -04:00
c50abed92b recover compilation 2021-08-18 12:59:31 -04:00
c6819e30cf simplify 2021-08-18 12:58:39 -04:00
c57da0661d update package name 2021-08-18 12:49:16 -04:00
6db856fd68 refactor dynamic constraints array
cannot use memory->* routines with non-primitive types
2021-08-18 11:24:32 -04:00
08e71eee6d corrections to recent large reformatting PR 2021-08-18 10:30:35 -04:00
f30434659e Merge branch 'master' into SLLOD-Kokkos 2021-08-18 05:55:34 -04:00
511ac49949 reformat, minor cosmetic changes 2021-08-18 05:53:23 -04:00
ee5273fbb1 Merge pull request #2879 from akohlmey/interlayer-refactor
Unit tests, bugfixes and file reader refactor for some INTERLAYER pair styles
2021-08-18 04:54:13 -04:00
4876e0cbb6 Changed URLs in the headers to point to the new LAMMPS site. 2021-08-18 17:37:00 +10:00
2e59b5c4de Fixed whitespace errors and removed some extraneous comments. 2021-08-18 15:23:46 +10:00
b385c85440 Refactored PPPMKokkos::setup_triclinic kernel indexing to be more consistent the rest of the codebase.
This commit "fixes" the temporary solution using Kokkos::MDRange in commit a98b8bee88.
2021-08-18 15:23:46 +10:00
d7f9f9fead Updated documentation to include Kokkos accelerated NEMD styles.
Also tidied up header files and attribution to fit LAMMPS coding style.
2021-08-18 15:23:46 +10:00
8ae9d51466 Fixed memory issues in ComputeTempDeformKokkos. 2021-08-18 15:23:46 +10:00
8945d81be3 Added Kokkos accelerated SLLOD thermostat (nvt/sllod/kk). 2021-08-18 15:23:46 +10:00
e7ba4179a7 Added Kokkos-enabled version of compute temp/deform. 2021-08-18 15:23:46 +10:00
e400e5b6f7 Fixed bug in PPPMKokkos::setup_triclinic for MPI calculations.
This fix should probably be considered a temporary fix - it relies on a
3-dimensional Kokkos range which seems to be disfavoured in the rest of
LAMMPS' codebase.
2021-08-18 15:23:46 +10:00
cfd9cf625d Initial draft of Kokkos acclerated PPPM routines for triclinic cells. 2021-08-18 15:23:46 +10:00
a1dd2c7655 move inline functions from header to cpp file 2021-08-17 22:37:47 -04:00
f470964393 apply clang-format 2021-08-17 22:35:05 -04:00
96b563dffc move common taper functions for interlayer potentials to separate header 2021-08-17 22:34:32 -04:00
bbb8adf656 update kolmogorov/crespi/z and lebedeva/z pair styles to use new file reader and unit conversion 2021-08-17 21:56:17 -04:00
661ec1acc3 fix typo 2021-08-17 21:55:22 -04:00
bb3c4797b3 update some more interlayer potential files 2021-08-17 21:55:12 -04:00
c758d224e0 Merge pull request #2881 from stanmoore1/kk_cmake
Fix issue when building Kokkos with CMake
2021-08-17 21:12:18 -04:00
62564b0a5c cmake: only use LMP_KOKKOS define in build interface 2021-08-17 15:52:09 -06:00
58a86412ec recover compilation 2021-08-17 16:26:59 -04:00
6dafbd2fbe support metal2real unit conversion 2021-08-17 16:20:00 -04:00
0906e94207 small fixes 2021-08-17 16:13:01 -04:00
e5a194d8d4 sync Kokkos changes with current master 2021-08-17 14:12:47 -06:00
2bf9fa91db more changes to merge with current master 2021-08-17 14:03:58 -06:00
05bd545cd3 flush tiny stresses to zero to avoid false positives when testing 2021-08-17 15:10:46 -04:00
4f9941e18d support metal2real unit conversion in pair style drip 2021-08-17 15:05:23 -04:00
6d53cd1986 refactor potential file reader in pair style drip 2021-08-17 14:50:34 -04:00
96280dc185 Merge branch 'master' into fix-property-array 2021-08-17 12:19:27 -06:00
8b8cce4399 add unit test YAML file for DRIP pair style 2021-08-17 14:12:50 -04:00
e6af1eecb8 resolved merge conflicts with master 2021-08-17 11:55:33 -06:00
82871ca515 Merge branch 'master' into interlayer-refactor 2021-08-17 13:25:13 -04:00
527240e941 Merge pull request #2880 from akohlmey/arginfo_update
Collected bugfixes and small update for ArgInfo class
2021-08-17 13:24:02 -04:00
d321202908 Add change from @junghans 2021-08-17 10:27:50 -06:00
9fa255b3ff Fix issue when building Kokkos with CMake 2021-08-17 10:09:39 -06:00
18cc43a560 extend ArgInfo class to also accept "i2_name" and "d2_name" 2021-08-17 12:04:58 -04:00
95a2041df3 reformat potential file headers to comply with LAMMPS' conventions 2021-08-17 10:48:51 -04:00
01503535f4 remove unused symlinks 2021-08-17 10:48:09 -04:00
6ccdeafa78 reformat with clang-format 2021-08-17 10:22:42 -04:00
42fadf55cf fix typos 2021-08-17 10:05:58 -04:00
0dbcb5dd66 replace #define with constrexpr for better compiler error reports on integer constants 2021-08-17 09:42:08 -04:00
f24054f7b3 test utils::fgets_trunc() with buffer size of exactly the length of string 2021-08-17 09:41:19 -04:00
e91185869d fix bug in utils::fgets_trunc(). closes #2878 2021-08-17 09:38:12 -04:00
a901427ee0 Merge pull request #2876 from akohlmey/address-lgtm-issues
Address code quality issues flagged by lgtm.com
2021-08-17 08:53:09 -04:00
dad9942bb8 Merge pull request #2869 from akohlmey/modify-add-returns-index
Have add_fix(), replace_fix() and add_compute() in Modify return class instance and refactor/simplify code
2021-08-16 15:44:16 -04:00
436d200a9a refactor file reader code 2021-08-16 15:29:43 -04:00
9e559de601 pretty 2021-08-16 15:21:51 -04:00
56a74bbe3d refactor file reader code 2021-08-16 15:21:38 -04:00
6f46ac57b9 plug small memory leak in pppm/gpu 2021-08-16 13:50:43 -04:00
7b873ffc0b add unit tests for ilp/graphene/hbn and kolmogorov/crespi/full 2021-08-15 19:07:57 -04:00
832f6499ed add suppression for OpenMP in newer GCC compilers 2021-08-15 18:39:42 -04:00
7efbdb24cc fix memory leak 2021-08-15 18:39:21 -04:00
e15c51c7e1 correctly use global cutoff instead of per-type-pair cutoffs 2021-08-15 17:44:22 -04:00
cba8e8237a avoid memory leak with MPI-IO 2021-08-13 06:25:21 -04:00
eaedd9ad48 fix output issues 2021-08-13 06:24:57 -04:00
9cb8a6205e apply "no" argument correctly 2021-08-13 06:24:39 -04:00
a765cf373a update formatting 2021-08-13 06:24:22 -04:00
f08c249d40 don't hide parameter with local variable 2021-08-13 06:23:46 -04:00
1abce8e821 remove dead code 2021-08-13 05:51:05 -04:00
3bfb235070 fix memory leak 2021-08-13 05:50:53 -04:00
3e99e24f41 make calls to virtual functions from constructors explicit 2021-08-13 05:50:44 -04:00
0928c912c0 fix memory leaks and reformat 2021-08-13 05:50:03 -04:00
26c681cf73 update for changes in base class 2021-08-09 16:28:19 -04:00
c8b7b8271d add missing dependency 2021-08-09 16:28:03 -04:00
1d98388129 Merge branch 'modify-add-returns-index' of github.com:akohlmey/lammps into modify-add-returns-index
# Conflicts:
#	src/GRANULAR/pair_gran_hooke_history.cpp
2021-08-09 16:00:48 -04:00
fe008b93d7 remove obsolete line 2021-08-07 10:33:26 -04:00
42625a82d1 simplify more code for creating fix instances using the improved APIs 2021-08-07 10:09:06 -04:00
68c15ebf04 refactor/simplify code due to changes in Modify 2021-08-07 10:09:06 -04:00
f23b04f9b6 update Eigen3 to support the latest stable release 3.3.9 2021-08-07 10:09:06 -04:00
88604328f5 workaround for PGI compilers 2021-08-07 10:09:06 -04:00
156790df2c apply changes to modify class 2021-08-07 10:08:58 -04:00
0b30f57812 streamline code by using changes in Modify class 2021-08-07 10:04:49 -04:00
0d9344c9e2 simplify 2021-08-07 10:04:49 -04:00
01f5b7e095 when creating or replacing a fix or compute, return pointer to new instance 2021-08-07 10:04:49 -04:00
e789bf8925 use temporary vector container to avoid explicit delete[] 2021-08-07 10:04:49 -04:00
0123f9290f update Eigen3 to support the latest stable release 3.3.9 2021-08-06 18:59:56 -04:00
06371629d6 workaround for PGI compilers 2021-08-06 18:44:42 -04:00
c84e7a5040 Merge pull request #2868 from akohlmey/collected-small-changes
Collected small changes
2021-08-06 18:35:29 -04:00
29bf3acd9e apply changes to modify class 2021-08-06 18:34:32 -04:00
03f9ef7de9 add unique identifier to the history fix so the gran/*/history styles can be used multiple times with pair style hybrid 2021-08-06 15:34:43 -04:00
e9e6cdca1d using GPU package is not compatible with fix qeq variants 2021-08-06 14:22:48 -04:00
e29bd3d157 update defines from -DLMP_USER-<PKG> to -DLMP_<PKG> for consistency 2021-08-06 14:07:43 -04:00
93465f98d8 improve error message 2021-08-06 13:55:53 -04:00
aeef6e6773 reformat with clang-format 2021-08-06 13:55:53 -04:00
8baaed5724 use const std::string & instead of const char *. avoid exception in sfree() 2021-08-06 13:55:53 -04:00
a7d05cff09 streamline code by using changes in Modify class 2021-08-06 13:39:02 -04:00
b16bca2f45 simplify 2021-08-06 13:39:02 -04:00
06f6434b38 when creating or replacing a fix or compute, return pointer to new instance 2021-08-06 13:39:02 -04:00
5861577a72 use temporary vector container to avoid explicit delete[] 2021-08-06 13:39:02 -04:00
912a1fc561 Merge pull request #2865 from rbberger/python_update
Python package update
2021-08-06 13:37:14 -04:00
eece77eecf Merge pull request #2866 from Colvars/colvars-update
Update Colvars to version 2021-08-06 (silence Coverity Scan warnings)
2021-08-06 11:20:46 -04:00
eb52f7c290 Update Colvars to version 2021-08-06 (silence Coverity Scan warnings)
Also include PDF copy of the manual forgotten in previous PR.
2021-08-06 10:32:37 -04:00
b9fa4e1db2 avoid memory leaks on specifying keywords multiple times 2021-08-06 10:22:31 -04:00
f3a03d6a84 Catch ValueError instead of base exception 2021-08-06 10:21:40 -04:00
53b94ac94d Allow fix python/move to load class from __main__ 2021-08-05 18:10:19 -04:00
980b817f3f Allow python pair style to load class from __main__ 2021-08-05 18:03:05 -04:00
5045595ad8 Merge pull request #2861 from akohlmey/fix-valgrind-issues
Address issues flagged by running unit tests with valgrind and sanitizer instrumentation
2021-08-05 16:07:57 -04:00
3fc97e9466 Merge branch 'fix-valgrind-issues' of github.com:akohlmey/lammps into fix-valgrind-issues 2021-08-05 12:20:33 -04:00
5295bb5109 fix refactoring bugs 2021-08-05 12:20:20 -04:00
177e60830e Merge branch 'master' into fix-valgrind-issues 2021-08-05 12:11:59 -04:00
c23dc22a3e Merge pull request #2862 from akohlmey/intel-set_ntypes-consistent
Make ForceConst::set_ntypes() more robust and fix related bug in pair style sw/intel
2021-08-05 11:50:50 -04:00
50c476b6af Merge pull request #2863 from Colvars/colvars-update
Update Colvars library to version 2021-08-03
2021-08-05 11:16:51 -04:00
9a60ab0c23 correctly insert atoms/molecules any nfreq timesteps even with multiple run
this changes the computation of "next_reneighbor" so that it is based
on "nfirst" which is set during the constructor of the class.
This still maintains the property that the first deposit attempt is not
done during setup, but on the next step.
2021-08-04 21:32:10 -04:00
bc6dfdb656 update readme 2021-08-04 17:44:56 -04:00
08a727d510 make some class members temporaries since they don't need to persist 2021-08-04 17:19:23 -04:00
2e7b3081a1 fix bug enumerating output when using python invoke with multiple functions 2021-08-04 17:07:16 -04:00
bb9c0630f8 suppressions for readline function calls from lammps-shell 2021-08-04 17:06:02 -04:00
0ea6406bb9 Merge branch 'fix-valgrind-issues' of github.com:akohlmey/lammps into fix-valgrind-issues 2021-08-04 12:25:12 -04:00
c4442206d4 add special case for heredocs in utils::split_words() to avoid segfaults 2021-08-04 12:03:34 -04:00
7068f3e77b add a few more test cases for testing utils::split_words() 2021-08-04 12:02:55 -04:00
2a9be42758 Update Colvars to version 2021-08-03 2021-08-03 18:03:18 -04:00
0938bc8999 update docs for hybrid style updates 2021-08-02 21:53:31 -04:00
c1c31c6b04 may not call memmove() on a null pointer, even if 'n' is 0. 2021-08-02 21:35:25 -04:00
04c7e7543e use friend statement instead of (incorrect) cast to give access to protected class member 2021-08-02 21:34:30 -04:00
37ca6a8e0b make handling of reference to Memory class in ForceConst class more robust 2021-08-02 15:50:44 -04:00
b7be9415de fix segfault with pair style sw/intel 2021-08-02 15:49:26 -04:00
53050a0429 add suppressions for FlexiBLAS on Fedora 2021-08-02 15:45:32 -04:00
a3bfcc68ef add libgomp suppression for newer GCC 2021-08-02 15:45:15 -04:00
848db31a77 reformat with clang-format 2021-08-02 15:25:01 -04:00
8aa39a6c40 make compatible with CLASS2 2021-08-02 15:23:16 -04:00
45858be1b6 avoid uninitialized data access for hybrid styles with OPENMP 2021-08-02 15:22:21 -04:00
50e8d7c36b Merge pull request #2859 from akohlmey/next_patch_release
Step version strings for next patch release
2021-07-30 16:40:10 -04:00
29eee29241 Merge pull request #2860 from evoyiatzis/patch-1
fixing compute gyration/shape indexing bug
2021-07-30 15:45:51 -04:00
db4fcd7537 update package dependency 2021-07-30 15:24:23 -04:00
75214f1eeb Merge pull request #2857 from akohlmey/update-formatted-output
Modernize formatted output and string handling in packages
2021-07-30 12:50:25 -04:00
82936b1e4f fixing indexing bug
The gyration_tensor[4] element  as computed by "compute gyration" corresponds to the xz component of the gyration tensor and the gyration_tensor[5] to the yz component. The  code  assumed that gyration_tensor[4] corresponds to the yz component and the gyration_tensor[5] to the xz.
2021-07-30 18:14:44 +02:00
f5b82ea3ef Merge pull request #2856 from akohlmey/collected-small-changes
Collected small changes and fixes
2021-07-30 11:36:40 -04:00
5f401da462 correct bug in derived CG-DNA FENE bond classes and optimize code 2021-07-30 10:48:15 -04:00
9dc662973e step version strings for next patch release 2021-07-29 21:18:03 -04:00
d211bbc0d6 expand ArgInfo class unit tests 2021-07-29 20:58:02 -04:00
cb32bb972b fix bugs in ArgInfo class 2021-07-29 20:57:42 -04:00
6b20da7549 update lammps shell test to use a fix that is always available 2021-07-29 17:48:35 -04:00
4710b7bc9e modernize and simplify code to find best matching restart file 2021-07-29 17:25:42 -04:00
5cdf55937d move pair style tracker to a better location 2021-07-29 17:17:06 -04:00
ca2abd22be remove unused file 2021-07-29 17:08:16 -04:00
a80829bd79 avoid compilation error 2021-07-29 16:14:52 -04:00
a6d66c3518 update .gitignore 2021-07-29 16:07:23 -04:00
33905fd689 fix one more KOKKOS package installation dependency 2021-07-29 16:07:14 -04:00
246b70ae46 update codeowners list 2021-07-29 15:56:21 -04:00
c49a533ad9 reformat, simplify, add reference log files 2021-07-29 15:40:43 -04:00
b108da3e5c simplify format handling 2021-07-29 15:26:29 -04:00
dcff3d70e0 simplify fix instance creation 2021-07-29 15:18:58 -04:00
520109bda0 simplify 2021-07-29 14:55:22 -04:00
ebe5e6c024 reformat 2021-07-29 14:44:15 -04:00
5b6b6b8767 simplify and use utils functions 2021-07-29 14:33:41 -04:00
b5830b672a simplify logging code 2021-07-29 14:18:38 -04:00
9cf790a2fe simplify and use fmtlib 2021-07-29 14:09:49 -04:00
3a968b81ad update 2021-07-29 13:59:59 -04:00
b4e3795913 fix copy-n-paste error 2021-07-29 13:58:27 -04:00
43b3c97cc0 add unit tests for scafacos kspace solver (skipping p3m) 2021-07-29 13:57:02 -04:00
2a1177fa92 reformat with clang-format 2021-07-29 13:29:56 -04:00
508798ab2b simplify code, make use of fmtlib and utils 2021-07-29 13:25:06 -04:00
a9271b6d9a replace temporary char buffer with using fmtlib 2021-07-29 12:36:50 -04:00
211d6636b4 modernize and simplify code to find best matching restart file 2021-07-29 12:09:55 -04:00
5f2b947b99 fix typo 2021-07-29 11:48:24 -04:00
1e48be92aa avoid segfault 2021-07-28 21:50:20 -04:00
b9ab0eb607 fix broken symbolic links 2021-07-28 21:32:52 -04:00
bf6c982b49 skip using neighbor list load balancing weight when using KOKKOS with GPU 2021-07-28 21:30:06 -04:00
b8d3297659 add missing package dependency 2021-07-28 18:45:09 -04:00
d33863839e update pair style installation dependencies 2021-07-28 18:37:59 -04:00
294ac76f41 forgot to move pair style beck to EXTRA-PAIR 2021-07-28 18:33:33 -04:00
6fcfbb7793 add missing dependency for conventional build 2021-07-28 18:18:54 -04:00
3a5d3fc541 fix compilation 2021-07-28 18:11:59 -04:00
218467b385 use fabs() instead of abs() on floating point number 2021-07-28 16:17:12 -04:00
9a4bc8eda1 apply citation reminder 2021-07-28 16:16:54 -04:00
f46e1c98f7 removed dead code and make consistent with non-OPENMP version 2021-07-28 16:16:42 -04:00
32be894ae2 silence compiler warnings 2021-07-28 16:16:22 -04:00
b59f23068f Merge pull request #2851 from akohlmey/next_patch_release
Step version number strings for the next patch release
2021-07-28 15:26:03 -04:00
b2f70f4e1f Merge pull request #2855 from akohlmey/update-unittest
Correct a couple of unit tests for package reorganization
2021-07-28 14:15:01 -04:00
600471d07f skip run test with fix when fix is not available 2021-07-28 12:11:54 -04:00
74a27c102e correct prerequisite 2021-07-28 12:11:35 -04:00
ed34856961 Merge pull request #2854 from akohlmey/final-fixes-for-patch-release
Final fixes for the patch release
2021-07-27 20:31:52 -04:00
8e6b7bf6e5 Merge pull request #2853 from stanmoore1/kk_verlet
Fix bug in verlet_kokkos.cpp with GRANULAR package
2021-07-27 18:59:20 -04:00
bb5da016d4 add dependencies for KOKKOS style to the conventional build 2021-07-27 18:21:45 -04:00
269690b771 document hard package dependencies 2021-07-27 18:21:22 -04:00
fe34fe26b2 add a hard dependency on EXTRA-PAIR to the DIELECTRIC package 2021-07-27 18:21:08 -04:00
416048e939 Fix compile error 2021-07-27 15:57:06 -06:00
f20479f10e Fix typo 2021-07-27 15:47:42 -06:00
e47bd5c490 Merge branch 'master' of github.com:lammps/lammps into kk_verlet 2021-07-27 14:28:54 -06:00
c4eee478b1 move back to src for dependencies 2021-07-27 15:53:35 -04:00
de4322b54c whitespace fixes 2021-07-27 14:32:04 -04:00
3ff096e517 Merge pull request #2848 from akohlmey/collected-small-changes
Collected small changes for the next patch release
2021-07-27 14:24:12 -04:00
b1331f52a5 Merge pull request #2849 from wmbrownIntel/intel-omp-simd
Convert Intel package simd vectorization directives to OpenMP standard
2021-07-27 13:37:58 -04:00
dbe14d9ee7 Add missing method to Kokkos verlet 2021-07-27 11:22:20 -06:00
d292da78ca address CodeQL warnings and reformat with clang-format 2021-07-27 12:29:44 -04:00
f7f85822a9 move some more computes from EXTRA-COMPUTE back to src because of dependencies 2021-07-27 12:07:27 -04:00
8838fbc1c3 Merge pull request #2850 from akohlmey/lammps-gather-bonds
Implement lammps_gather_bonds() into the C-library interface and the Python module
2021-07-27 11:30:19 -04:00
ec069595f7 move compute orientorder/atom because compute coord/atom depends on it 2021-07-27 11:16:40 -04:00
2d488bab6b Merge branch 'master' into collected-small-changes 2021-07-27 11:15:00 -04:00
dab884fd1f Merge pull request #2829 from akohlmey/package-reorganization2
Package reorganization (step 2)
2021-07-27 10:55:32 -04:00
f39c5178d8 update plumed to version 2.7.2 and drop workaround for 2.7.1 2021-07-27 09:56:52 -04:00
16fae72670 small tweak for MinGW-64 compilation on Fedora 34 2021-07-27 08:44:59 -04:00
a4ffffad33 update some version strings for library and python APIs 2021-07-26 23:10:24 -04:00
044fe2e49d step version number strings for the next patch release 2021-07-26 23:09:18 -04:00
458253b452 add python interface with optional numpy support for lammps_gather_bonds()
unit tests are included
2021-07-26 22:40:21 -04:00
cc87e7eee3 add unit test for c-library interface function lammps_gather_bonds() 2021-07-26 20:59:14 -04:00
829bc8a617 update equation for updated NEB code 2021-07-26 18:45:37 -04:00
fdc75dcf35 add lammps_gather_bonds() function to the C library interface 2021-07-26 18:32:06 -04:00
f34f6b2a27 Merge branch 'master' of https://github.com/wmbrownIntel/lammps into intel-omp-simd 2021-07-26 12:10:37 -07:00
af359df042 Allowing nofdotr for Intel package with newton off. 2021-07-26 12:04:31 -07:00
fefcd0e2af Converting cilk vectorization directives to the openmp standard and changing some more depracated vector intrinsics. Data alignment directives for compiler vectorization are still mostly intel specific. 2021-07-26 11:22:21 -07:00
cca17feb27 silence compiler warnings, remove dead code 2021-07-26 12:31:09 -04:00
1fa621d02d correct quoted screen output 2021-07-25 21:18:52 -04:00
ef244c3061 small updates to the introduction 2021-07-25 21:05:33 -04:00
7e6a06b1cc update Pizza.py URLs 2021-07-25 21:04:26 -04:00
0513ba2df5 spelling 2021-07-25 20:28:14 -04:00
5a79429f03 fix up some more package designations and clean up some legacy formatting 2021-07-25 20:23:37 -04:00
18b1e10be8 Merge branch 'master' into package-reorganization2 2021-07-25 19:21:47 -04:00
1ebd60e35e update and add explanation 2021-07-25 10:56:38 -04:00
afc54639c4 update references to USER-MISC package 2021-07-25 10:42:35 -04:00
41db4235d6 update package names for pair style moved away from USER-MISC 2021-07-25 10:28:40 -04:00
513e792ece fix required package message 2021-07-25 10:15:15 -04:00
9d9b089700 get rid of references to USER-MISC in the general discussion 2021-07-25 10:03:16 -04:00
9d162d865a move pimd to REPLICA 2021-07-25 09:59:56 -04:00
2e4119dca7 update package list and details for newly created packages and removed USER-MISC 2021-07-24 21:01:19 -04:00
f192102da9 move examples away from USER-MISC now that the package folder is gone 2021-07-24 20:53:23 -04:00
57270c5339 set flag to tell CMake to not use/link the MPI C++ interface in the correct place 2021-07-24 13:46:13 -04:00
add7565d9f recover unit test compilation 2021-07-23 18:24:40 -04:00
852f18525d complete moving packages and styles around 2021-07-23 18:11:25 -04:00
0de2167fb6 Merge pull request #2846 from stanmoore1/mpich
Add logic for GPU-enabled MPICH to Kokkos package
2021-07-23 14:42:18 -04:00
1bc0a5ca8a Merge branch 'master' of github.com:lammps/lammps into mpich 2021-07-23 10:28:28 -06:00
c587252894 rename unittest YAML files 2021-07-23 12:13:50 -04:00
25aa202976 tweak epsilon to pass reaxff unittests on macOS 2021-07-23 12:12:57 -04:00
594bf56ee3 silence compiler warnings on macOS 2021-07-23 12:12:40 -04:00
fd3be6176d remove dead code 2021-07-23 08:36:23 -04:00
d2684a2370 Merge branch 'master' into package-reorganization2 2021-07-23 07:41:10 -04:00
8889fa316e Merge pull request #2837 from akohlmey/fix-external-python-support
Update and document support for fix external in the library interface and python module
2021-07-23 07:30:47 -04:00
c33bead8b1 silence static code analysis warning 2021-07-22 23:26:22 -04:00
ff7f2e78a1 Merge branch 'master' into fix-external-python-support 2021-07-22 23:09:54 -04:00
320f7da91a Merge pull request #2708 from akohlmey/refactor-reaxff-parser
Refactoring and improving REAXFF and QEQ packages
2021-07-22 23:04:09 -04:00
c8cc5ecb9f implement setting per-atom virial from numpy array (thanks to stackoverflow) 2021-07-22 22:50:05 -04:00
a078d1ba53 check energy and virial per atom arrays for correct size 2021-07-22 22:49:16 -04:00
9066495d78 Merge pull request #2838 from kipbarrett/pair_rann
plugged memory leaks in ml-rann package. Resolves [2811]
2021-07-22 22:04:39 -04:00
bf8bde5b03 implement numpy wrapper for setting per-atom energy. virial not yet implemented 2021-07-22 16:59:04 -04:00
d0a654097f Merge branch 'collected-small-changes' into refactor-reaxff-parser 2021-07-22 16:46:07 -04:00
fbf3bcae70 correct automated substition mistake 2021-07-22 16:45:30 -04:00
74c306b32b whitespace 2021-07-22 16:37:06 -04:00
324ae3181b python interface for per-atom data for fix external 2021-07-22 15:27:51 -04:00
d3e19aa430 Merge branch 'info-create-atoms' of github.com:athomps/lammps into collected-small-changes 2021-07-22 15:00:21 -04:00
d211cea898 bugfix from Dan Bolintineanu. closes #2812 2021-07-22 14:58:33 -04:00
2d93edab1b Added one line of diagnostic output to create_atoms command 2021-07-22 12:22:34 -06:00
bb46dd7d1f update embedded documentation for the library interface functions for accessing fix external 2021-07-22 13:14:49 -04:00
fde6cae56d Add logic for GPU-enabled MPICH 2021-07-22 08:44:32 -06:00
d5ba7b2578 Propagate variable rename 2021-07-22 08:10:42 -06:00
b7334fc688 Merge pull request #2844 from rbberger/offline_update
Offline compilation tool update
2021-07-22 08:58:06 -04:00
f79b6ac373 recover compilation of KOKKOS package 2021-07-21 23:39:19 -04:00
c59dc079db correctly detect when to retrieve parameters from pair style reaxff 2021-07-21 22:53:18 -04:00
c78d4eab36 update standard examples for new style names 2021-07-21 22:52:43 -04:00
9cf50eb4db add allocation and reduction for per-atom stress with OpenMP 2021-07-21 22:44:18 -04:00
5b46e679c8 update style names 2021-07-21 22:00:43 -04:00
03249dec8b reformat 2021-07-21 22:00:27 -04:00
e12070316b fix spelling issue 2021-07-21 22:00:18 -04:00
f8f4af471f general rename of files, styles, and keywords from "reax/c", "reax", or "reaxc" to "reaxff" 2021-07-21 21:52:25 -04:00
6d3a5a6eb9 Port custom changes to atom_kokkos 2021-07-21 17:05:56 -06:00
aa885a9d8d make virial processing use the total global virial 2021-07-21 17:06:21 -04:00
5436975fa2 update unit test reference data for REAXFF also with OpenMP enabled 2021-07-21 16:01:28 -04:00
b20fcbd686 implement per-atom stress and nofdotr support for reax/c/omp 2021-07-21 16:00:28 -04:00
72744ea441 update swig interface file to the latest changes in the c library header 2021-07-21 12:08:19 -04:00
d7edc95193 Update init_http_cache.sh 2021-07-21 11:34:43 -04:00
13147707aa Add utility script to help update URLs for offline tool 2021-07-21 11:33:11 -04:00
f53c1978cc swap groups in the example snippet to get consistent pressure and heat flux sign 2021-07-21 10:23:12 -04:00
d16f751413 Merge branch 'master' into package-reorganization2 2021-07-21 10:23:04 -04:00
94ce07b2de Merge branch 'lammps:master' into tip4p_fix_types 2021-07-21 14:09:39 +03:00
f6e9c30818 update unit tests 2021-07-21 00:47:10 -04:00
cf3bf374fa Merge branch 'master' into refactor-reaxff-parser 2021-07-21 00:30:53 -04:00
9615867600 make contribution to global virial compatible with pf/array mode 2021-07-21 00:25:32 -04:00
f5e7e26ef9 Merge pull request #2836 from akohlmey/collected-small-changes
Collected small changes
2021-07-20 20:51:59 -04:00
6604508b55 Merge branch 'master' into collected-small-changes 2021-07-20 19:39:10 -04:00
96389213ab Merge pull request #2788 from jtclemm/track-contacts
Track properties of pair interactions
2021-07-20 19:38:21 -04:00
2c77adaefb reformat with clang-format 2021-07-20 19:36:44 -04:00
de092206b9 support using LAMMPS_POTENTIALS expansion for (primary) QUIP file and echo file and units 2021-07-20 19:35:00 -04:00
03f6244fef add quip SW potential file and corresponding unit test 2021-07-20 19:34:06 -04:00
8a4820a033 add data/units comments to example quip potential files 2021-07-20 19:31:52 -04:00
600b0d34ca disable install command for build libquip.a (not needed) 2021-07-20 19:31:04 -04:00
c19d37990d reformat with clang-format 2021-07-20 18:31:52 -04:00
b9cc8c8d24 Merge branch 'master' into collected-small-changes 2021-07-20 18:14:02 -04:00
2718596d65 Merge pull request #2835 from ohenrich/cg-dna
Documentation: CG-DNA package
2021-07-20 18:03:34 -04:00
63794aa698 Merge branch 'master' into track-contacts
# Conflicts:
#	doc/src/Packages_details.rst
#	src/DIELECTRIC/pair_coul_cut_dielectric.h
#	src/MISC/fix_pair_tracker.cpp
#	src/MISC/fix_pair_tracker.h
#	src/MISC/pair_tracker.cpp
#	src/MISC/pair_tracker.h
#	src/pair_tracker.h
2021-07-20 16:19:38 -04:00
acfe590343 whitespace 2021-07-20 16:03:33 -04:00
06d5bcb19b Merge branch 'master' into collected-small-changes 2021-07-20 16:02:46 -04:00
2a0c6ad979 Merge pull request #2841 from donatas-surblys/heat-flux-virial-tally
A new tally compute to obtain virial heat flow from group 2 to group 1
2021-07-20 16:01:30 -04:00
d8ca3e4b16 add support for automatically downloading and building libquip 2021-07-20 16:00:42 -04:00
eeea566093 correct typo 2021-07-20 14:32:30 -04:00
b6e749f7fc reformat with clang-format 2021-07-20 14:27:29 -04:00
64a85fc762 Merge pull request #2842 from wmbrownIntel/user-intel-llvm
Intel Package Update for CLANG/LLVM-based compiler
2021-07-20 14:22:33 -04:00
2a4b60d597 in the output info section: flux -> flow 2021-07-20 18:03:11 +09:00
6fd1cda2a6 update documentaion for heat/flux/tally and heat/flux/virial/tally 2021-07-20 17:48:12 +09:00
cfd9e31d18 add links to heat/flux/virial/tally and add short descriptions for tally computes 2021-07-20 13:31:41 +09:00
1345c25f41 Fixing issue where __INTEL_COMPILER not defined for next-gen (LLVM-based) in tersoff. 2021-07-19 17:49:11 -07:00
52a0b0a902 Merge branch 'master' into pair_rann 2021-07-19 18:04:43 -04:00
596845c8ef Merge branch 'master' of https://github.com/lammps/lammps into user-intel-llvm 2021-07-19 11:25:42 -07:00
d739c3bede Fixes to the Intel package to remove errors and warnings with clang-based compiler and support alternate preprocessor defines for the next-gen Intel compiler (currently not recommended for performance).. 2021-07-19 11:16:09 -07:00
4e0071c8cf rearranged deallocation 2021-07-19 12:52:09 -05:00
a1082f4de9 fix typo 2021-07-19 12:15:43 -04:00
008da35533 Merge branch 'master' into refactor-reaxff-parser 2021-07-19 11:52:43 -04:00
52156ccb35 Merge branch 'master' into package-reorganization2 2021-07-19 11:07:42 -04:00
5c4fb41ac0 Merge pull request #2839 from craabreu/respa_bug_fix
Fixed bug in fix np[ht] with runstyle respa
2021-07-19 11:02:25 -04:00
ef72ea9dd9 Fixed whitespace issues 2021-07-19 11:49:27 +01:00
cf85fba37c Corrected text in warning message 2021-07-19 11:27:08 +01:00
2881f95d7a Merge branch 'cg-dna' of https://github.com/ohenrich/lammps into cg-dna 2021-07-19 11:23:50 +01:00
170b5be906 Added missing pointer name, reformatting 2021-07-19 11:23:27 +01:00
15b3b6445e Updated tests and documentation, added warning message 2021-07-19 11:22:06 +01:00
f247a2aedf fix issues with pair style more/soft and reformat 2021-07-19 01:04:35 -04:00
0cb09786b6 need to make this functions virtual since they are overridded by morse/soft 2021-07-19 01:02:52 -04:00
b03f25a650 simplify 2021-07-19 01:02:06 -04:00
1c4e8aba12 add tests for per-atom values, global energy with pf/array mode 2021-07-19 00:29:27 -04:00
8460d67eb2 update embedded documentation to correctly describe the functionality 2021-07-19 00:25:00 -04:00
76ec9b8616 port changes from dump netcdf to dump netcdf/mpiio 2021-07-18 19:04:08 -04:00
1f9e0adfe9 more reformatting 2021-07-18 18:37:27 -04:00
536ba492fb error out on trying to dump strings or variables 2021-07-18 17:47:01 -04:00
ce7cca2ae4 use scoped enums from Dump and Thermo classes instead of replicating them, reformat 2021-07-18 17:44:06 -04:00
2eff15d1e6 move data type enum to header so it can be used in dump netcdf 2021-07-18 17:41:14 -04:00
418acea543 support wildcard dump keywords, simplify, modernize, reformat 2021-07-18 16:59:58 -04:00
3c0a2345cc simplify, reformat, and better error messages 2021-07-18 16:42:43 -04:00
8ed608abbf Fixed RESPA/kspace/barostat bug in BOCS, DRUDE, and USER-MISC 2021-07-18 16:22:25 -03:00
fa7ae99511 Fixed bug in fix np[ht] with runstyle respa 2021-07-18 12:48:05 -03:00
57df891572 avoid duplicate label 2021-07-17 07:49:41 -04:00
1ff90a9e8c ignore Testing folder in root dir (created when running "ctest --test-dir build") 2021-07-17 07:45:53 -04:00
f251bc544f support setting global virial for fix external from python 2021-07-17 07:38:53 -04:00
fa654f2270 add support for set_vector for fix external in c-library, python and unittest 2021-07-16 23:41:25 -04:00
d462bb3131 fix off-by-one bug 2021-07-16 22:44:04 -04:00
504b756a9a recover compilation. we don't use the energy, only the force 2021-07-16 22:06:39 -04:00
0ddd90fe0f reformat allocations and deallocations 2021-07-16 21:50:56 -04:00
626b93cfbb plug memory leak for alpha/alpha_k parameter 2021-07-16 21:44:53 -04:00
ba5bf0fb77 plugged memory leaks. Resolves [2811] 2021-07-16 17:37:06 -05:00
5912d0a1c2 add support for setting global energy for fix external to python module 2021-07-16 17:43:44 -04:00
f3dc13c9dd expand library interface for fix external functionality 2021-07-16 17:29:15 -04:00
8b1dedf04a add extract method to fix external 2021-07-16 17:21:57 -04:00
6d292b1bf2 small tweaks 2021-07-16 14:51:27 -04:00
88e363c0bb document and add unit tests for lammps_set_fix_external_callback() 2021-07-16 14:51:04 -04:00
034c337aaf reformat 2021-07-16 12:05:45 -04:00
ef2e5dbb73 reformat 2021-07-16 10:56:54 -04:00
a4d58462df simplify and avoid failure with -ffast-math where NaN signaling doesn't work reliably 2021-07-16 10:54:59 -04:00
fb1e757524 Merge branch 'lammps:master' into cg-dna 2021-07-16 12:58:26 +01:00
b7a17dc25d Added warning message in documentation and dsDNA ring test in examples 2021-07-16 12:57:21 +01:00
b00a281708 a tally compute to obtain virial heat flux into group 1 due to group 2 2021-07-16 14:29:07 +09:00
bed363cda9 Merge branch 'master' into collected-small-changes 2021-07-15 17:24:15 -04:00
741e13743c Merge branch 'master' into refactor-reaxff-parser 2021-07-15 17:23:56 -04:00
95792ac928 Merge pull request #2833 from athomps/delete-last-mol
Delete last mol
2021-07-15 17:16:48 -04:00
2a61f72790 Merge pull request #2827 from ohenrich/cg-dna
CG-DNA: New Class AtomVecOxdna
2021-07-15 16:43:08 -04:00
5be930fa76 cleanup 2021-07-15 16:40:15 -04:00
637eef51b9 reformat 2021-07-15 15:45:01 -04:00
dc70f97ad4 restore changes from upstream that were undone by incorrectly resolving merge conflicts 2021-07-15 15:44:35 -04:00
d97ea4ebf6 make dependency of CG-DNA on ASPHERE and MOLECULE a hard dependency 2021-07-15 15:42:50 -04:00
d024dc0e09 whitespace fixes 2021-07-15 15:12:04 -04:00
3402953f05 Merge pull request #2832 from stanmoore1/kk_snap_host
Revert Kokkos CPU SNAP to original code
2021-07-15 15:06:50 -04:00
a7619b8dae Removed virtual keyword, defined internal variable 2021-07-15 17:32:19 +01:00
e6181d14d7 Use latest versions in master branch 2021-07-15 13:53:15 +01:00
e99b8ed07c Merge branch 'master' into cg-dna 2021-07-15 13:37:24 +01:00
0f0059269d Modified data_bonds_post() and calling structure 2021-07-15 13:36:40 +01:00
54cf985280 Add message so no unexpected behavior 2021-07-14 20:54:50 -06:00
5f302b9035 temporarily skip testing REAXFF with OpenMP 2021-07-14 17:42:46 -04:00
1ce5e3bd00 Merge branch 'master' of github.com:lammps/lammps into kk_snap_host 2021-07-14 14:49:16 -06:00
e87fae5c92 remove unused variable 2021-07-14 14:38:29 -04:00
ece556b463 Merge branch 'master' into refactor-reaxff-parser
# Conflicts:
#	src/OPENMP/reaxc_init_md_omp.cpp
#	src/REAXFF/reaxc_allocate.cpp
#	src/REAXFF/reaxc_control.cpp
#	src/REAXFF/reaxc_defs.h
#	src/REAXFF/reaxc_ffield.cpp
#	src/REAXFF/reaxc_init_md.cpp
#	src/REAXFF/reaxc_io_tools.cpp
#	src/REAXFF/reaxc_list.cpp
#	src/REAXFF/reaxc_traj.cpp
2021-07-14 14:34:25 -04:00
5af74edcc0 Merge pull request #2815 from stanmoore1/kk_hash
Add atom_map hash option for Kokkos package
2021-07-14 14:20:11 -04:00
2295745318 Revert to original SNAP code for Kokkos CPU 2021-07-14 11:21:12 -06:00
fb73382c94 Documented restriction on molecular count >= 1 for fix rigid 2021-07-14 11:13:54 -06:00
38b156a08a Resolved bogus merge conflict and added change to last molecule deletion 2021-07-14 11:07:10 -06:00
c9c27ac7e2 Merge pull request #2831 from stanmoore1/kk_noinit
Remove deprecated Kokkos code ViewAllocateWithoutInitializing
2021-07-14 12:09:30 -04:00
3895ae194d Make function static 2021-07-13 12:17:24 -06:00
871ef80f83 Merge branch 'master' of github.com:lammps/lammps into kk_noinit 2021-07-13 11:42:41 -06:00
fc5f91b44c Revert accidental change 2021-07-13 10:34:50 -06:00
ac07253ed6 Fix GPU issues 2021-07-13 10:29:37 -06:00
d412a4c933 re-enable OpenMP testing for ReaxFF 2021-07-12 21:03:10 -04:00
01d7afdaa4 Small refactor 2021-07-12 15:54:02 -06:00
4c0036955e Merge branch 'kk_hash' of github.com:stanmoore1/lammps into kk_hash 2021-07-12 15:53:50 -06:00
e29577634d fix whitespace 2021-07-12 16:23:45 -04:00
65e2a8f070 Avoid unnecessary deep_copy when only a single memory space 2021-07-12 14:21:05 -06:00
e0ba11fbf0 update LAMMPS homepage URL 2021-07-12 16:19:31 -04:00
b4d3dbe0af Avoid unnecessary deep_copy when only a single memory space 2021-07-12 14:11:53 -06:00
f4239530bd recover virial and nofdotr related changes by @athomps and @akohlmey 2021-07-12 15:58:27 -04:00
b752bda1b9 Fix GPU issues 2021-07-12 13:06:54 -06:00
757e2f8cff Merge branch 'master' into refactor-reaxff-parser
# Conflicts:
#	doc/src/fix_qeq_reax.rst
#	src/OPENMP/reaxc_bond_orders_omp.h
#	src/OPENMP/reaxc_bonds_omp.h
#	src/OPENMP/reaxc_forces_omp.h
#	src/OPENMP/reaxc_hydrogen_bonds_omp.h
#	src/OPENMP/reaxc_init_md_omp.cpp
#	src/OPENMP/reaxc_init_md_omp.h
#	src/OPENMP/reaxc_multi_body_omp.h
#	src/OPENMP/reaxc_nonbonded_omp.h
#	src/OPENMP/reaxc_torsion_angles_omp.h
#	src/OPENMP/reaxc_valence_angles_omp.h
#	src/OPENMP/reaxff_omp.h
#	src/Purge.list
#	src/QEQ/fix_qeq.cpp
#	src/QEQ/fix_qeq.h
#	src/QEQ/fix_qeq_dynamic.cpp
#	src/QEQ/fix_qeq_fire.cpp
#	src/REAXFF/fix_qeq_reax.cpp
#	src/REAXFF/reaxc_allocate.h
#	src/REAXFF/reaxc_bond_orders.h
#	src/REAXFF/reaxc_bonds.h
#	src/REAXFF/reaxc_control.h
#	src/REAXFF/reaxc_defs.h
#	src/REAXFF/reaxc_ffield.h
#	src/REAXFF/reaxc_forces.h
#	src/REAXFF/reaxc_hydrogen_bonds.h
#	src/REAXFF/reaxc_init_md.cpp
#	src/REAXFF/reaxc_init_md.h
#	src/REAXFF/reaxc_io_tools.cpp
#	src/REAXFF/reaxc_io_tools.h
#	src/REAXFF/reaxc_list.h
#	src/REAXFF/reaxc_lookup.h
#	src/REAXFF/reaxc_multi_body.h
#	src/REAXFF/reaxc_nonbonded.h
#	src/REAXFF/reaxc_reset_tools.h
#	src/REAXFF/reaxc_system_props.cpp
#	src/REAXFF/reaxc_system_props.h
#	src/REAXFF/reaxc_tool_box.h
#	src/REAXFF/reaxc_torsion_angles.h
#	src/REAXFF/reaxc_traj.cpp
#	src/REAXFF/reaxc_traj.h
#	src/REAXFF/reaxc_types.h
#	src/REAXFF/reaxc_valence_angles.h
#	src/REAXFF/reaxc_vector.cpp
#	src/REAXFF/reaxc_vector.h
#	src/REAXFF/reaxff_api.h
#	src/REAXFF/reaxff_defs.h
#	src/REAXFF/reaxff_inline.h
#	src/REAXFF/reaxff_types.h
#	src/text_file_reader.cpp
#	src/text_file_reader.h
#	unittest/force-styles/tests/atomic-pair-reax_c.yaml
#	unittest/force-styles/tests/atomic-pair-reax_c_lgvdw.yaml
#	unittest/force-styles/tests/atomic-pair-yukawa_colloid.yaml
2021-07-12 14:25:47 -04:00
ad966e130b Fix typos 2021-07-12 10:41:31 -06:00
0540ce547b Merge branch 'master' into package-reorganization2 2021-07-12 11:45:27 -04:00
998b76520e Merge pull request #2830 from akohlmey/opencl-loader-3.0.8
Update OpenCL ICD loader and headers to latest spec 3.0.8
2021-07-12 11:44:34 -04:00
dfa5ecdc74 Merge pull request #2736 from akohlmey/nofdotr-tests-and-updates
Fix issues exposed by running pair style unit tests with `pair_modify nofdotr`
2021-07-12 11:10:47 -04:00
b361992292 Remove deprecated Kokkos code ViewAllocateWithoutInitializing 2021-07-12 08:53:07 -06:00
05f28661f2 temporarily skip some tests for REAXFF until working on PR #2708 2021-07-12 05:43:04 -04:00
bc4f2b65ae the INTEL package does not support pair_modify nofdotr
- no need to test for it
- add a check and report an error if the nofdotr setting is used
2021-07-12 05:19:41 -04:00
bc08d9a973 temporarily skip testing pair_modify nofdotr for reax/c until we merge PR #2708 2021-07-11 20:14:10 -04:00
6134164ad3 pair style rann does not support per-atom stress or pair_modify nofdotr 2021-07-11 20:03:52 -04:00
d774cd5ddc fix sign errors and pair_modify nofdotr behavior for pair style bop 2021-07-11 19:27:49 -04:00
7e3e786530 fix up pair style polymorphic for pair_modify nofdotr 2021-07-11 19:19:41 -04:00
90e0de8dca update MEAM package to correctly handle pair_modify nofdotr 2021-07-11 16:32:46 -04:00
5e096a7f9f correct ev_tally4() for pair_modify nofdotr 2021-07-11 16:04:17 -04:00
51d082ff2b reformat comments 2021-07-11 14:57:00 -04:00
eecc012525 sphinx 4.1.0 failes to parse utils::logmesg(lmp,format,...) template function 2021-07-11 14:56:47 -04:00
41a434ae1f fix compilation issues with new/old Intel compilers 2021-07-11 14:09:17 -04:00
b47a212b17 initialize "me" before using it. 2021-07-11 13:55:00 -04:00
0dcca23cdb whitespace 2021-07-11 09:22:38 -04:00
283da2649a fixes for pair_modify nofdotr 2021-07-11 09:16:47 -04:00
50da38722a make airebo compatible with pair_modify nofdotr 2021-07-11 08:47:30 -04:00
a4748b4c28 update several MANYBODY potentials for pair_modify nofdotr 2021-07-11 08:20:20 -04:00
9898941169 update tersoff docs about tersoff/intel requiring intel compilers 2021-07-11 08:00:01 -04:00
03c55c14bc avoid unneeded computations/tallying, small cleanups 2021-07-11 01:10:19 -04:00
0e440f9a42 more general mapping of tersoff/intel to tersoff when non-Intel compiler is used 2021-07-11 00:56:14 -04:00
467410d934 recover compilation due to changes in utility functions. still needs fixing 2021-07-11 00:55:45 -04:00
f82096c46c correct nofdotr handling for tersoff styles 2021-07-11 00:55:22 -04:00
bfc9df1302 exclude tersoff/intel. fix newton off instantiation. 2021-07-11 00:53:26 -04:00
eff03f1493 reformat and use std::numeric_limits<double>::min() instead of DBL_MIN (Posix-only) 2021-07-10 23:40:30 -04:00
2d9ea81b94 fix bug with virial tally in edip/omp 2021-07-10 23:18:27 -04:00
0e55c2c4f2 Merge branch 'master' into nofdotr-tests-and-updates
# Conflicts:
#	unittest/cplusplus/test_lammps_class.cpp
2021-07-10 22:36:43 -04:00
8f8dff758e reformat 2021-07-10 14:39:25 -04:00
ac903ec291 update list of non-style KOKKOS package sources with newly added file 2021-07-10 10:55:07 -04:00
4456e8151f use explicit scoping in destructor of polymorph class 2021-07-10 10:54:02 -04:00
89d7e34540 destructor in polymorph base class should be virtual 2021-07-10 10:53:36 -04:00
e8aa3823d3 Add virtual keyword to AtomKokkos destructor 2021-07-09 15:48:44 -06:00
4c1eea630c Merge branch 'package-reorganization2' of github.com:akohlmey/lammps into package-reorganization2 2021-07-09 16:54:31 -04:00
2e0ed643e4 update and reformat 2021-07-09 16:54:18 -04:00
6571a84884 move some styles around 2021-07-09 16:54:00 -04:00
0eaacea67d Whitespace 2021-07-09 14:17:06 -06:00
be3c0ce5a0 Fix typo 2021-07-09 14:13:54 -06:00
6c088b97ac Add missing data transfer for map_array 2021-07-09 14:08:32 -06:00
33ac10df7a Missed one instance of SUCCESS 2021-07-09 14:00:19 -06:00
8730fc3c6a Merge branch 'master' of https://github.com/lammps/lammps into kk_hash 2021-07-09 11:41:08 -06:00
8323b402fb update OpenCL ICD loader and headers to latest spec (3.0.8) from 2021-06-30 2021-07-08 14:49:54 -04:00
ab11482d7e add INTERLAYER package to CMake list of known packages 2021-07-08 09:30:18 -04:00
b2a396da3c Merge pull request #2828 from tomswinburne/snap-scale
Adding scale parameter to pair/snap for fix/adapt
2021-07-07 16:10:11 -04:00
46d5d9724a move interlayer potentials to their own package 2021-07-07 15:52:53 -04:00
39bd342913 Resolved conflict 2021-07-07 10:04:05 +01:00
d190ef09c2 Initialised id5p atom quantity 2021-07-07 09:58:53 +01:00
c9ddee5e38 Merge pull request #2824 from ndtrung81/dielectric-updates
Updates to the DIELECTRIC package
2021-07-06 20:58:23 -04:00
91790e8586 Update Commands_kspace.rst 2021-07-06 20:21:34 -04:00
18f5ef1a76 Merge pull request #2826 from akohlmey/collected-small-changes
Collected small changes
2021-07-06 19:35:17 -04:00
5f7766a71c Merge pull request #2823 from Ruyk/master
use SYCL team_reduce to mimic cuda __syncthreads_count
2021-07-06 16:38:18 -04:00
908587be56 Merge branch 'master' of github.com:lammps/lammps into kk_hash 2021-07-06 13:54:47 -06:00
4f6e28a0d8 Refactor use of Kokkos::UnorderedMap to fix Cuda issue 2021-07-06 13:49:12 -06:00
d041e5cba0 we require at least zstd API version 1.4 2021-07-06 13:39:07 -04:00
c805040e14 two more uses of temporary variable 2021-07-06 13:10:40 -04:00
0614cb16bb add missing dependency 2021-07-06 13:07:08 -04:00
9b31ed511b Merge branch 'fm' into ssc 2021-07-06 17:31:58 +02:00
71f82e81d7 Merge branch 'snap-scale' into fm 2021-07-06 17:23:24 +02:00
40e83088b0 update SNAP unit tests for added extract keyword 2021-07-06 11:11:35 -04:00
3675bef2b0 doc 2021-07-06 14:06:27 +02:00
2c0b87573f remove whitespace 2021-07-06 10:34:59 +02:00
edf623bc82 remove whitespace 2021-07-06 10:33:46 +02:00
ee751cf040 remove whitespace 2021-07-06 10:33:28 +02:00
65e2d8fd5e Added data_bonds_post2() method for testing purposes 2021-07-05 17:29:11 +01:00
4b81802ae8 Created new feature branch for PR as per request 2021-07-05 16:07:40 +01:00
f84ab6f26b clarify fix nve impact 2021-07-04 19:21:09 -04:00
455b7b9392 remove single precision floating point math and reformat 2021-07-04 18:24:46 -04:00
a61e79ad72 avoid integer overflow issues reported by CodeQL 2021-07-03 17:38:48 -04:00
4b42b51006 fix broken links 2021-07-03 16:23:55 -04:00
b314c83266 fix up mistyped package names 2021-07-03 16:19:15 -04:00
c61480eace fix indexing for pppm/disp/dielectric 2021-07-03 16:12:52 -04:00
da06535be5 fix doc build warnings 2021-07-03 16:06:43 -04:00
d471f13d27 non-portable OpenMP pragmas 2021-07-03 15:55:01 -04:00
9996d7eaad NULL -> nullptr, and coding style updates 2021-07-03 15:50:09 -04:00
de3ac9d440 update for package rename in upstream 2021-07-03 15:38:24 -04:00
430e7e962f Merge branch 'master' into dielectric-updates
# Conflicts:
#	src/DIELECTRIC/Install.sh
#	src/DIELECTRIC/pppm_disp_dielectric.cpp
#	src/DIELECTRIC/pppm_disp_dielectric.h
2021-07-03 15:27:57 -04:00
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
bee95e41ae Added references to example input scripts to the doc pages 2021-07-02 14:06:06 -05:00
48d3acb52b Updated the doc pages for the /dielectric styles 2021-07-02 13:45:08 -05:00
5408210623 reformat 2021-07-02 14:34:23 -04:00
dbeaec4957 reformat 2021-07-02 14:17:00 -04:00
2a21c4b29f add sticker-bond support to fix bond/swap 2021-07-02 11:46:25 -06:00
34fa0da60e Merge branch 'master' into package-reorganization-step1
# Conflicts:
#	doc/src/Packages_details.rst
2021-07-02 13:24:49 -04:00
021e8a404d Updated example data files 2021-07-02 12:20:26 -05:00
411d1f1240 move fix imd from USER-MISC to MISC 2021-07-02 13:19:47 -04:00
bc715ac7e8 Merge upstream master into dielectric-updates 2021-07-02 12:14:06 -05:00
e2a78cbed6 SYCL team_reduce to mimic cuda __syncthreads_count
This fixes a suspected out of bounds error later on in the kernel.
2021-07-02 15:41:32 +01: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
a8be4ca4b8 cleaner implementation 2021-06-29 11:31:49 +02:00
1a662b78d5 conform 2021-06-29 10:53:02 +02:00
49e8fead3a revert 2021-06-29 10:51:10 +02:00
84d94d9da0 Merge branch 'master' of github.com:tomswinburne/lammps 2021-06-29 10:48:39 +02:00
5e3fe19c9f revert 2021-06-29 10:48:19 +02:00
130a925f8f Merge branch 'lammps:master' into master 2021-06-29 10:43:23 +02:00
105c86399b Merge pull request #2813 from akohlmey/collected-small-changes
Collected small changes
2021-06-28 20:14:01 -04:00
9a4735c6ef Temporarily rename variable to avoid name collision until #2708 is merged 2021-06-28 11:11:45 -06:00
39b99afb56 Remove error description in header file 2021-06-28 09:34:08 -06:00
91e0614cef Remove unnecessary virtual keyword 2021-06-28 08:51:28 -06: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
a4c2bc13cf Add atom_map hash option for Kokkos package 2021-06-28 08:38:31 -06: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
7b87b5c80b snap scaling 2021-06-27 15:46:14 +02:00
2726e0e923 Merge branch 'lammps:master' into master 2021-06-27 14:10:49 +02: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
d982d153f8 Fix conditions for correct results on other types 2021-06-18 18:26:53 +03: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
8fef6a10dd Fix atom types handling in the tip4p/gpu kernels 2021-06-18 00:52:23 +03: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
1c6ce70776 Updated qsum_qsq() in pppm/dielectric and pppm/disp/dielectric 2021-06-14 00:09:48 -05:00
2dfbdcbc40 Added pppm/disp/dielectric, minor updates to lj/long/coul/long/dielectric 2021-06-13 23:55:28 -05: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
26127e1fa0 more changes to fix ttm/grid 2021-06-09 15:49:20 -06:00
456b81417d first version of fix ttm/grid 2021-06-09 09:03:50 -06: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
f2a6329fe7 silence compiler warnings 2021-06-04 09:07:53 -04:00
5f4bd99544 Merge branch 'master' into track-contacts 2021-06-04 08:42:51 -04:00
1358f4549b doc updates for MISC package 2021-06-04 08:39:00 -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
2500169193 whitespace 2021-06-04 00:57:26 -04:00
337ba1f729 fix spelling issues 2021-06-04 00:56:24 -04:00
8e082c2f6a complete integration into manual 2021-06-04 00:56:09 -04:00
4d3897c482 update LAMMPS homepage URLs 2021-06-04 00:49:30 -04:00
d17b49a894 apply clang-format 2021-06-04 00:43:45 -04:00
edf734ed59 remove installed package files 2021-06-04 00:43:18 -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
80f28e7fa9 fixing merge conflicts, update to master 2021-06-02 12:33:37 -06:00
96ac2dc9f6 update to master 2021-06-02 12:15:41 -06:00
77f009126a Fixing comments and log files 2021-06-02 12:12:17 -06:00
b2ed89b21f Updating documentation 2021-06-02 12:02:02 -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
14617cf4d2 Increasing chances for copying neighborlists 2021-05-21 11:28:21 -06:00
afaf992ac2 Second working of bits for neigh/history 2021-05-21 11:06:34 -06:00
e01502d349 Finished build doc pages 2021-05-21 18:18:46 +02:00
83a15ef03f fixing typos in documentation 2021-05-20 18:26:02 -06: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
0c6857914d Adding example, misc patches 2021-05-18 20:57:24 -06: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
f61c27ca12 Updating gitignore 2021-05-18 14:07:23 -06:00
1f89d9b315 Adding documentation, misc changes 2021-05-18 14:04:49 -06: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
4303f4a74e Adding type filter 2021-05-16 16:45:18 -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
fe2065a56c Adding requirement for same group to print contacts 2021-05-14 17:53:09 -06:00
d939a16d3b Completing pair and fix 2021-05-14 17:26:51 -06: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
fdf12c4abc Initial files 2021-05-14 13:03:24 -06: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
3a6e27e0e8 must skip nofdotr test for sw since that requires newton on with /intel 2021-04-27 12:33:33 -04:00
6375b91bd7 Update USER-INTEL.cmake 2021-04-27 17:13:03 +02:00
9a09378136 can only use and test fdotr with USER-INTEL when newton pair is off 2021-04-27 09:53:20 -04:00
081b322ecd use the correct way to look up a neighbor list request 2021-04-27 09:51:53 -04:00
73f4346056 add nofdotr test 2021-04-27 09:00:04 -04:00
7ec8d025c8 tweak epsilon to adjust for numeric noise when using pair_modify nofdotr 2021-04-27 08:29:21 -04:00
7d6f7a0984 disable check failing due to inconsistent behavior on different platforms 2021-04-27 07:44:44 -04:00
ae8c48bcec correct expected error message 2021-04-27 07:44:14 -04: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
f856030203 update example inputs and log files for current state of affairs 2021-04-21 15:22:00 -04:00
865759116e update some comments 2021-04-21 15:14:18 -04:00
4eaa45337c reorder functions for simpler side-by-side comparison 2021-04-21 15:14:12 -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
9b59e901bc update reax/c tests. disable OpenMP tests as that code is broken. 2021-04-21 09:54:59 -04: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
82ecfabe22 remove more unused code and structs 2021-04-21 01:29:48 -04:00
d2008aa362 add test for reaxff using coulomb tabulation 2021-04-21 01:19:45 -04:00
dbced62a65 reorder code for better plain vs. omp code comparison. remove unused stuff 2021-04-21 00:44:09 -04:00
08f4c30051 Merge branch 'master' into refactor-reaxff-parser 2021-04-20 20:52:18 -04:00
2e01bb8f62 Merge pull request #2713 from rbberger/collected_small_changes
Collected small changes
2021-04-20 20:40:49 -04:00
2a7e662d71 more whitespace 2021-04-20 20:14:30 -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
daf984835c whitespace 2021-04-20 17:31:43 -04:00
56be6d8ec2 Merge branch 'master' of github.com:lammps/lammps into pair-style-nnp 2021-04-20 23:20:14 +02:00
b014e8b94f revert standard reax/c test 2021-04-20 17:15:52 -04:00
90d3b65691 Minor changes for CMake build tested 2021-04-20 22:55:26 +02:00
66eea0b63a call destroy() before create() for multi-dimensional arrays to avoid leakage 2021-04-20 16:54:17 -04:00
83c1187e47 clear allocated data structure so that all included pointers are initialized to null 2021-04-20 16:53:39 -04: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
c543815692 small tweaks 2021-04-20 15:28:42 -04:00
daaebd55a6 add QEQ parameter file 2021-04-20 14:56:27 -04:00
2045667902 document QEQ package incompatibilities 2021-04-20 14:55:09 -04:00
678e243430 small update of unit test inputs 2021-04-20 14:54:14 -04:00
ae570c05d8 we don't need to hardcode pair styles to skip specific tests, but use YAML file for it 2021-04-20 14:53:44 -04:00
a959d65560 whitespace fixes 2021-04-20 14:52:42 -04:00
fec12020ac add unit tests for fix qeq/point and fix qeq/shielded 2021-04-20 14:52:29 -04:00
fe2efa4cb3 disallow usage of qeq fixes with incompatible GPU and USER-INTEL packages 2021-04-20 14:51:27 -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
799fb284c8 small updates to the QEQ package for better testing
- add a "warn no/yes" keyword/value pair to allow turning of the convergence warning
- add a scalar compute to retrieve the number of QEq itration from the fix
- update the buck example input to run all QEq methods from a common restart
- document changes
2021-04-20 14:00:51 -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
6c4ad8ad35 implement nowarn flag for qeq/reax fixes and add scalar compute function for number of qeq iterations
make behavior handling the maximum number of iterations consistent
across USER-REAXC, USER-OMP and KOKKOS package variants so that
they all give the same results for the same number of iterations
in serial and parallel
2021-04-19 07:38:50 -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
c11e9cc849 remove unused defines and enumerators 2021-04-18 22:59:55 -04:00
43491b4220 lift compile time limit to 25 atom types 2021-04-18 22:31:35 -04:00
f9d133dcba must use a reference for the shortcut to work 2021-04-18 22:07:38 -04:00
e901fff8b6 remove unused variable 2021-04-18 21:18:42 -04:00
937bfe7dd8 add some convenience variables to improve readability 2021-04-18 21:15:45 -04:00
101deae472 Removed error thrown when bound xxx upper is used 2021-04-19 10:19:44 +10:00
0c88e57173 remove last remnants of OMP_TIMING code hack 2021-04-18 15:46:27 -04: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
6c88baceb7 remove support for writing "native" trajectory files from USER-REAXC 2021-04-18 05:20:35 -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
ab8d78c8f4 convert control file reader code to use text file reader class 2021-04-18 04:33:52 -04:00
238ed55313 small code tweaks and whitespace update 2021-04-18 04:33:06 -04:00
162e4e16a5 fix incorrect indentation 2021-04-18 04:15:58 -04:00
242fc2d212 modernize parameter file parser in QEQ package 2021-04-18 04:06:46 -04:00
09d7fe2fcf don't ignore comments in ReaxFF force field files 2021-04-18 04:05:01 -04:00
6bc6da7657 throw EOF exception in TextFileReader::next_values() if next_line() doesn't do it 2021-04-18 04:04:40 -04:00
6f343aaeed add UNITS keyword comments to fix qeq parameter files 2021-04-18 04:02:18 -04:00
ab3303ed7b fix indexing bug for hydrogen bond parameters 2021-04-18 02:45:23 -04:00
eaa064e01d remove unused tokenizer function 2021-04-18 02:35:08 -04:00
18e5e42ce3 minor change 2021-04-18 04:30:59 +03:00
545f551c9d modernize force field parser for ReaxFF 2021-04-17 18:30:04 -04:00
f0ef44a496 fix small memory leak 2021-04-17 18:23:36 -04:00
87e74bc721 small tweaks for better alignment and access to the LAMMPS Memory class 2021-04-17 15:42:56 -04:00
04c5b23d90 add custom constructor for TextFileReader that uses an already opened file descriptor 2021-04-17 15:41:45 -04: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
3b55872a18 updates for legacy build system 2021-04-17 03:10:13 -04:00
1c6db4b0cb some more smaller tweaks 2021-04-17 02:51:18 -04:00
dcdb5cc0e0 whitespace fixes 2021-04-17 02:28:32 -04:00
eb4d7efd32 silence compiler warning 2021-04-17 02:27:45 -04:00
a8f54d097c Merge branch 'master' into refactor-reaxff-parser 2021-04-17 02:19:37 -04:00
224c593846 convert USER-REAXC to use a ReaxFF namespace
also bundle exported functions in fewer header files
2021-04-17 02:18:35 -04: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
81458fe132 convert control file reader to ReaxFF namespace 2021-04-16 16:59:49 -04:00
a46c901be6 remove unused data structure members 2021-04-16 16:59:23 -04:00
b96d1ac1a5 first step of adopting a ReaxFF namespace and reorganizing the ReaxFF headers 2021-04-16 16:45:46 -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
f2772e5894 PIMPL-ify reax/c pair styles; first steps toward a ReaxFF namespace 2021-04-16 10:50:53 -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
2c38d1b7d4 reax/c native trajectory output cleanup/simplification 2021-04-16 07:22:16 -04:00
6c07d2fb11 replace some more sprintf() calls to local buffers with fmtlib 2021-04-15 20:08:25 -04:00
3eed9f23c8 replace sprintf() into local char buffers with fmtlib 2021-04-15 19:02:59 -04: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
d1f004962a convert fix qeq/reax to use modern LAMMPS file parsing 2021-04-15 17:13:31 -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
8b87eb9468 remove unused file pointers and file streams 2021-04-15 15:49:51 -04:00
cc82e9b558 remove unused rtensor data type and support functions for it. 2021-04-15 14:36:07 -04:00
fb75e3e8b1 remove unused and commented out defines 2021-04-15 14:35:28 -04:00
b3bc2d3df1 adjust pair style reax/c to read control file on MPI rank 0 and use tokenizer class 2021-04-15 13:21:54 -04:00
0870a56093 expand exception message to include cause of file open failure 2021-04-15 11:57:48 -04:00
499b685421 clean up workspace management, output control, and enumerators 2021-04-15 10:58:29 -04:00
4dfd06cd8f remove unused communication storage 2021-04-15 10:20:34 -04:00
8118c23a98 remove totals from energy_data struct 2021-04-15 10:11:24 -04:00
1fe2812c2b recover from CI compilation failure 2021-04-15 09:45:10 -04:00
06a8f746cc remove some more unused timer info and unused arguments 2021-04-15 09:36:21 -04:00
def09d4d7a remove unused simulation data struct members and related code 2021-04-15 07:36:02 -04:00
f0369ce72d remove unused timing data structure 2021-04-15 07:06:56 -04:00
7dc21842c2 ignore/remove unused control file settings and related functions and data structures 2021-04-15 06:58:20 -04:00
54ee33fe58 simplify creation of reaxc fix 2021-04-15 04:48:02 -04:00
112142be35 remove some unused structs, typedefs and data members 2021-04-15 00:18:47 -04:00
487e0b041c eliminate mpi_datatypes struct 2021-04-14 23:26:37 -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
390b1683f0 remove unusued function pointer typedefs 2021-04-14 17:53:29 -04:00
a2dcbf6a2d remove obsolete define 2021-04-14 17:52:10 -04:00
73cd6f8e4e read control file only on MPI rank 0, then broadcast its data 2021-04-14 17:51:41 -04:00
91dfc6875b Silence compiler warnings about unused variables 2021-04-14 17:02:12 -04:00
89b0227849 move file opening step to reax/c function. simplify code. 2021-04-14 16:42:37 -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
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
feda2dc08d Updated doc page and spelling 2021-04-07 14:07:58 -06:00
29c78d022a add lib/pace/Makefile.lammps 2021-04-07 19:54:35 +02: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
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
f0e3786ded Minor changes to conform with coding standards 2021-04-04 22:48:25 +02: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
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
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
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
256bde9282 Merge branch 'clean-master2' of github.com:julient31/lammps into spin-kokkos 2021-03-30 07:24:42 -06: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
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
4d96a50edb Merge branch 'master' of https://github.com/kipbarrett/lammps into pair_rann 2021-03-29 10:55:47 -05:00
8255fca58f darwin library error 2021-03-23 12:30:16 +01:00
8af131424a Merge pull request #4 from lammps/master
update my fork
2021-03-23 11:20:29 +01:00
d9d5d3a36a Correcting skin distance calculation for collection/interval 2021-03-19 09:29:47 -06:00
8d18051232 acceleration for pair_style lj/smooth 2021-03-18 20:48:57 +03:00
ca88f97a4b added acceleration of lj/smooth on gpu 2021-03-12 01:40:52 +03: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
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
debb0ef63d Add comments for review 2021-03-05 10:59:52 -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
e3a892ccd7 Start unittests for MPI load balancing 2021-03-04 10:10:58 -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
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
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
e713a931d3 Added lots of docs, finished CMake script 2021-02-24 17:57:24 +01:00
c56f665c5b CMake files for finding n2p2 2021-02-23 23:35:18 +01:00
7e411f2b12 New makefile in lib/nnp/ dir, updated Install.sh 2021-02-23 14:05:06 +01:00
6dbb0230c2 Updated documentation, cleaned source 2021-02-22 22:57:45 +01:00
af974c2aba Added pair_nnp documentation 2021-02-22 00:29:10 +01: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
0a06b90b53 template for smooth/spu 2021-02-17 15:33:28 +03:00
039ed4c750 Fixing example input scripts with mode multi 2021-02-16 10:24:15 -07: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
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
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
58e4938b0f Updating examples, updating multi in info, fixing memory issues in comm/neighbor 2021-02-08 10:50:57 -07:00
de1205c5a9 Fixing misc valgrind issues, particularly with resizing ncollections 2021-02-07 20:38:24 -07:00
952216033e Adding correct masks to kokks/user-dpd nbin classes 2021-02-07 13:33:11 -07: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
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
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
6d862569ea Updated emails 2021-02-05 16:24:55 -06:00
606b33ea03 Added fix_charge_regulation source code and documentation. 2021-02-05 16:05:37 -06:00
56841ba912 Fixing typo in pair gran, fixing bugs in communication and neighbor 2021-02-02 18:05:19 -07:00
852e4efc6f Updating documentation/examples, patching comm_modify cutoff/multi command 2021-02-02 14:50:30 -07: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
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
1eefc13cdb Merge pull request #3 from lammps/master
update fork
2021-01-27 08:34:04 +01:00
3e639fe979 Initial inclusion of rann potential 2021-01-25 16:41:35 -06:00
b2f96d92df remove print statement 2021-01-13 10:31:03 -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
fc79280548 other USER-DPD uses of dname vs new dvname 2021-01-12 12:37:50 -07:00
6f4d657061 enable pair table/rx for new custom vector syntax 2021-01-12 12:28:06 -07:00
386fe6158a edits to doc pages, including per-atom variables 2021-01-12 09:07:23 -07:00
bddd26ba6c additional changes needed to merge with current master 2021-01-11 17:26:00 -07:00
0b14770468 merge with current master 2021-01-11 16:13:33 -07:00
d5f34f6296 Examples and documentation 2021-01-08 15:27:23 -07: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
b421c3d676 Adding arguments, initialization, and communication for custom groupings 2020-12-22 10:20:06 -07: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
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
d9440a582c Final touches on docs to discuss temperature in overdamped dynamics. 2020-12-16 17:30:28 +00:00
f2e7f5263e Added bd integrator for ellipsoidal particles as well. 2020-12-16 16:14:13 +00:00
86ebe0a9d3 Minor change to doc for bd/sphere. 2020-12-13 16:56:00 +00: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
4fa48edb81 Adding size/multi npair files 2020-12-10 11:36:15 -07: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
dab4c7409a Changes for pull request 2511. 2020-12-09 21:04:23 +00: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
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
ca5c921702 added brownian dynamics integrator fix bd/sphere. 2020-12-03 13:00:21 +00:00
6308248a44 Replacing binsizex with multi2 version 2020-11-30 20:55:04 -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
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
af11a54a27 Copying more variables to classes and moving/clarifying definitions 2020-11-12 18:37:53 -07:00
6909839ff0 Fix full multi stencil 2020-11-12 15:03:44 -07:00
b6dfc28e38 Resetting bin sizes in stencils 2020-11-11 22:50:59 -07:00
ac527f4615 Fixing bugs in nstencil 2020-11-11 15:39:53 -07: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
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
557ef57526 Adding initial support for triclinic boundaries 2020-10-29 15:13:28 -06:00
58e27a9c51 More edits and documentation 2020-10-09 13:50:20 -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
e125d464d1 Replacing molecular enumeration 2020-10-05 16:09:50 -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
64257393b9 remove custom vector usage from USER-DPD:fix_rx.cpp 2020-09-09 10:21:59 -06:00
76725731fd changes in package files to match new find_custom() syntax 2020-09-08 13:48:41 -06:00
d1442b0538 enable per-atom custom arrays in addition to vectors 2020-09-04 11:33:49 -06:00
7269 changed files with 289519 additions and 147167 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

70
.github/CODEOWNERS vendored
View File

@ -13,43 +13,51 @@ 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 @stanmoore1
src/REACTION/* @jrgissing
src/SCAFACOS/* @rhalver
src/TALLY/* @akohlmey
src/UEF/* @danicholson
src/VTK/* @rbberger
# individual files in packages
src/GPU/pair_vashishta_gpu.* @andeplane
src/KOKKOS/pair_vashishta_kokkos.* @andeplane
src/MANYBODY/pair_vashishta_table.* @andeplane
src/MANYBODY/pair_atm.* @sergeylishchuk
src/USER-REACTION/fix_bond_react.* @jrgissing
src/USER-MISC/*_grem.* @dstelter92
src/USER-MISC/compute_stress_mop*.* @RomainVermorel
src/REPLICA/*_grem.* @dstelter92
src/EXTRA-COMPUTE/compute_stress_mop*.* @RomainVermorel
src/MISC/*_tracker.* @jtclemm
# core LAMMPS classes
src/lammps.* @sjplimp
@ -73,6 +81,7 @@ src/kspace.* @sjplimp
src/lmptyp.h @sjplimp
src/library.* @sjplimp
src/main.cpp @sjplimp
src/min_*.* @sjplimp
src/memory.* @sjplimp
src/modify.* @sjplimp
src/molecule.* @sjplimp
@ -101,7 +110,6 @@ src/thermo.* @sjplimp
src/universe.* @sjplimp
src/update.* @sjplimp
src/variable.* @sjplimp
src/verlet.* @sjplimp
src/velocity.* @sjplimp
src/write_data.* @sjplimp
src/write_restart.* @sjplimp
@ -114,23 +122,26 @@ src/info.* @akohlmey @rbberger
src/timer.* @akohlmey
src/min* @sjplimp @stanmoore1
src/utils.* @akohlmey @rbberger
src/verlet.* @sjplimp @stanmoore1
src/math_eigen_impl.h @jewettaij
# tools
tools/msi2lmp/* @akohlmey
tools/emacs/* @HaoZeke
tools/singularity/* @akohlmey @rbberger
tools/code_standard/* @rbberger
tools/coding_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 +153,7 @@ fortran/* @akohlmey
doc/utils/*/* @rbberger
doc/Makefile @rbberger
doc/README @rbberger
examples/plugin/* @akohlmey
# for releases
src/version.h @sjplimp

View File

@ -5,8 +5,9 @@ Thank your for considering to contribute to the LAMMPS software project.
The following is a set of guidelines as well as explanations of policies and work flows for contributing to the LAMMPS molecular dynamics software project. These guidelines focus on submitting issues or pull requests on the LAMMPS GitHub project.
Thus please also have a look at:
* [The Section on submitting new features for inclusion in LAMMPS of the Manual](https://lammps.sandia.gov/doc/Modify_contribute.html)
* [The LAMMPS GitHub Tutorial in the Manual](http://lammps.sandia.gov/doc/Howto_github.html)
* [The guide for submitting new features in the LAMMPS manual](https://lammps.sandia.gov/doc/Modify_contribute.html)
* [The guide on programming style and requirement in the LAMMPS manual](https://lammps.sandia.gov/doc/Modify_contribute.html)
* [The GitHub tutorial in the LAMMPS manual](http://lammps.sandia.gov/doc/Howto_github.html)
## Table of Contents
@ -26,11 +27,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 posted 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 or the forum, 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 +43,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.
@ -60,37 +63,12 @@ To be able to submit an issue on GitHub, you have to register for an account (fo
### Contributing Code
We encourage users to submit new features or modifications for LAMMPS to the core developers so they can be added to the LAMMPS distribution. The preferred way to manage and coordinate this is by submitting a pull request at the LAMMPS project on GitHub. For any larger modifications or programming project, you are encouraged to contact the LAMMPS developers ahead of time, in order to discuss implementation strategies and coding guidelines, that will make it easier to integrate your contribution and result in less work for everybody involved. You are also encouraged to search through the list of open issues on GitHub and submit a new issue for a planned feature, so you would not duplicate the work of others (and possibly get scooped by them) or have your work duplicated by others.
We encourage users to submit new features or modifications for LAMMPS. Instructions, guidelines, requirements,
and recommendations are in the following sections of the LAMMPS manual:
* [The guide for submitting new features in the LAMMPS manual](https://lammps.sandia.gov/doc/Modify_contribute.html)
* [The guide on programming style and requirement in the LAMMPS manual](https://lammps.sandia.gov/doc/Modify_contribute.html)
* [The GitHub tutorial in the LAMMPS manual](http://lammps.sandia.gov/doc/Howto_github.html)
How quickly your contribution will be integrated depends largely on how much effort it will cause to integrate and test it, how much it requires changes to the core code base, and of how much interest it is to the larger LAMMPS community. Please see below for a checklist of typical requirements. Once you have prepared everything, see [this tutorial](https://lammps.sandia.gov/doc/Howto_github.html)
for instructions on how to submit your changes or new files through a GitHub pull request
Here is a checklist of steps you need to follow to submit a single file or user package for our consideration. Following these steps will save both you and us time. See existing files in packages in the source directory for examples. If you are uncertain, please ask on the lammps-users mailing list.
* C++ source code must be compatible with the C++-11 standard. Packages may require a later standard, if justified.
* All source files you provide must compile with the most current version of LAMMPS with multiple configurations. In particular you need to test compiling LAMMPS from scratch with `-DLAMMPS_BIGBIG` set in addition to the default `-DLAMMPS_SMALLBIG` setting. Your code will need to work correctly in serial and in parallel using MPI.
* 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.
* 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
* 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.
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.
If the new features/files are broadly useful we may add them as core files to LAMMPS or as part of a standard package. Else we will add them as a user-contributed file or package. Examples of user packages are in src sub-directories that start with USER. The USER-MISC package is simply a collection of (mostly) unrelated single files, which is the simplest way to have your contribution quickly added to the LAMMPS distribution. You can see a list of the both standard and user packages by typing "make package" in the LAMMPS src directory.
Note that by providing us files to release, you are agreeing to make them open-source, i.e. we can release them under the terms of the GPL, used as a license for the rest of LAMMPS. See Section 1.4 for details.
With user packages and files, all we are really providing (aside from the fame and fortune that accompanies having your name in the source code and on the Authors page of the LAMMPS WWW site), is a means for you to distribute your work to the LAMMPS user community, and a mechanism for others to easily try out your new feature. This may help you find bugs or make contact with new collaborators. Note that you are also implicitly agreeing to support your code which means answer questions, fix bugs, and maintain it if LAMMPS changes in some way that breaks it (an unusual event).
To be able to submit an issue on GitHub, you have to register for an account (for GitHub in general). If you do not want to do that, or have other reservations or difficulties to submit a pull request, you can - as an alternative - contact one or more of the core LAMMPS developers and ask if one of them would be interested in manually merging your code into LAMMPS and send them your source code. Since the effort to merge a pull request is a small fraction of the effort of integrating source code manually (which would usually be done by converting the contribution into a pull request), your chances to have your new code included quickly are the best with a pull request.
If you prefer to submit patches or full files, you should first make certain, that your code works correctly with the latest patch-level version of LAMMPS and contains all bug fixes from it. Then create a gzipped tar file of all changed or added files or a corresponding patch file using 'diff -u' or 'diff -c' and compress it with gzip. Please only use gzip compression, as this works well on all platforms.
## GitHub Workflows
@ -100,17 +78,17 @@ This section briefly summarizes the steps that will happen **after** you have su
After submitting an issue, one or more of the LAMMPS developers will review it and categorize it by assigning labels. Confirmed bug reports will be labeled `bug`; if the bug report also contains a suggestion for how to fix it, it will be labeled `bugfix`; if the issue is a feature request, it will be labeled `enhancement`. Other labels may be attached as well, depending on which parts of the LAMMPS code are affected. If the assessment is, that the issue does not warrant any changes, the `wontfix` label will be applied and if the submission is incorrect or something that should not be submitted as an issue, the `invalid` label will be applied. In both of the last two cases, the issue will then be closed without further action.
For feature requests, what happens next is that developers may comment on the viability or relevance of the request, discuss and make suggestions for how to implement it. If a LAMMPS developer or user is planning to implement the feature, the issue will be assigned to that developer. For developers, that are not yet listed as LAMMPS project collaborators, they will receive an invitation to be added to the LAMMPS project as a collaborator so they can get assigned. If the requested feature or enhancement is implemented, it will usually be submitted as a pull request, which will contain a reference to the issue number. And once the pull request is reviewed and accepted for inclusion into LAMMPS, the issue will be closed. For details on how pull requests are processed, please see below.
For feature requests, what happens next is that developers may comment on the viability or relevance of the request, discuss and make suggestions for how to implement it. If a LAMMPS developer or user is planning to implement the feature, the issue will be assigned to that developer. For developers, that are not yet listed as LAMMPS project collaborators, they will receive an invitation to be added to the LAMMPS project as a collaborator so they can get assigned. If the requested feature or enhancement is implemented, it will be submitted as a pull request, which will contain a reference to the issue number. And once the pull request is reviewed and accepted for inclusion into LAMMPS, the issue will be closed. For details on how pull requests are processed, please see below. Feature requests may be labeled with `volunteer_needed` if none of the LAMMPS developers has the time and the required knowledge implement the feature.
For bug reports, the next step is that one of the core LAMMPS developers will self-assign to the issue and try to confirm the bug. If confirmed, the `bug` label and potentially other labels are added to classify the issue and its impact to LAMMPS. Before confirming, further questions may be asked or requests for providing additional input files or details about the steps required to reproduce the issue. Any bugfix is likely to be submitted as a pull request (more about that below) and since most bugs require only local changes, the bugfix may be included in a pull request specifically set up to collect such local bugfixes or small enhancements. Once the bugfix is included in the master branch, the issue will be closed.
For bug reports, the next step is that one of the core LAMMPS developers will self-assign to the issue and try to confirm the bug. If confirmed, the `bug` label and potentially other labels are added to classify the issue and its impact to LAMMPS. Otherwise the `unconfirmed` label will be applied and some comment about what was tried to confirm the bug added. Before confirming, further questions may be asked or requests for providing additional input files or details about the steps required to reproduce the issue. Any bugfix will be submitted as a pull request (more about that below) and since most bugs require only local changes, the bugfix may be included in a pull request specifically set up to collect such local bugfixes or small enhancements. Once the bugfix is included in the master branch, the issue will be closed.
### Pull Requests
For submitting pull requests, there is a [detailed tutorial](https://lammps.sandia.gov/doc/Howto_github.html) in the LAMMPS manual. Thus only a brief breakdown of the steps is presented here. Please note, that the LAMMPS developers are still reviewing and trying to improve the process. If you are unsure about something, do not hesitate to post a question on the lammps-users mailing list or contact one fo the core LAMMPS developers.
Immediately after the submission, the LAMMPS continuing integration server at ci.lammps.org will download your submitted branch and perform a simple compilation test, i.e. will test whether your submitted code can be compiled under various conditions. It will also do a check on whether your included documentation translates cleanly. Whether these tests are successful or fail will be recorded. If a test fails, please inspect the corresponding output on the CI server and take the necessary steps, if needed, so that the code can compile cleanly again. The test will be re-run each the pull request is updated with a push to the remote branch on GitHub.
Next a LAMMPS core developer will self-assign and do an overall technical assessment of the submission. If you are not yet registered as a LAMMPS collaborator, you will receive an invitation for that. As part of the assessment, the pull request will be categorized with labels. There are two special labels: `needs_work` (indicates that work from the submitter of the pull request is needed) and `work_in_progress` (indicates, that the assigned LAMMPS developer will make changes, if not done by the contributor who made the submit).
Pull requests are the **only** way that changes get made to the LAMMPS distribution. So also the LAMMPS core developers will submit pull requests for their own changes and discuss them on GitHub. Thus if you submit a pull request it will be treated in a similar fashion. When you submit a pull request you may opt to submit a "Draft" pull request. That means your changes are visible and will be subject to testing, but reviewers will not be (auto-)assigned and comments will take into account that this is not complete. On the other hand, this is a perfect way to ask the LAMMPS developers for comments on non-obvious changes and get feedback and possible suggestions for improvements or recommendations about what to avoid.
Immediately after the submission, the LAMMPS continuing integration server at ci.lammps.org will download your submitted branch and perform a number of tests: it will tests whether it compiles cleanly under various conditions, it will also do a check on whether your included documentation translates cleanly and run some unit tests and other checks. Whether these tests are successful or fail will be recorded. If a test fails, please inspect the corresponding output on the CI server and take the necessary steps, if needed, so that the code can compile cleanly again. The test will be re-run each time the pull request is updated with a push to the remote branch on GitHub. If you are unsure about what you need to change, ask a question in the discussion area of the pull request.
Next a LAMMPS core developer will self-assign and do an overall technical assessment of the submission. If you submitted a draft pull request, this will not happen unless you mark it "ready for review". If you are not yet invited as a LAMMPS collaborator, and your contribution seems significant, you may also receive an invitation for collaboration on the LAMMPS repository. As part of the assessment, the pull request will be categorized with labels. There are two special labels: `needs_work` (indicates that work from the submitter of the pull request is needed) and `work_in_progress` (indicates, that the assigned LAMMPS developer will make changes, if not done by the contributor who made the submit).
You may also receive comments and suggestions on the overall submission or specific details and on occasion specific requests for changes as part of the review. If permitted, also additional changes may be pushed into your pull request branch or a pull request may be filed in your LAMMPS fork on GitHub to include those changes.
The LAMMPS developer may then decide to assign the pull request to another developer (e.g. when that developer is more knowledgeable about the submitted feature or enhancement or has written the modified code). It may also happen, that additional developers are requested to provide a review and approve the changes. For submissions, that may change the general behavior of LAMMPS, or where a possibility of unwanted side effects exists, additional tests may be requested by the assigned developer.
If the assigned developer is satisfied and considers the submission ready for inclusion into LAMMPS, the pull request will receive approvals and be merged into the master branch by one of the core LAMMPS developers. After the pull request is merged, you may delete the feature branch used for the pull request in your personal LAMMPS fork.
Since the learning curve for git is quite steep for efficiently managing remote repositories, local and remote branches, pull requests and more, do not hesitate to ask questions, if you are not sure about how to do certain steps that are asked of you. Even if the changes asked of you do not make sense to you, they may be important for the LAMMPS developers. Please also note, that these all are guidelines and nothing set in stone. So depending on the nature of the contribution, the workflow may be adjusted.
If the assigned developer is satisfied and considers the submission ready for inclusion into LAMMPS, the pull request will receive approvals and be merged into the master branch by one of the core LAMMPS developers. After the pull request is merged, you may delete the feature branch used for the pull request in your personal LAMMPS fork. The minimum requirement to merge a pull request is that all automated tests have to pass and at least one LAMMPS developer has approved integrating the submitted code. Since the approver will not be the person merging a pull request, you will have at least two LAMMPS developers that looked at your contribution.
Since the learning curve for git is quite steep for efficiently managing remote repositories, local and remote branches, pull requests and more, do not hesitate to ask questions, if you are not sure about how to do certain steps that are asked of you. Even if the changes asked of you do not make sense to you, they may be important for the LAMMPS developers. Please also note, that these all are guidelines and nothing set in stone. So depending on the nature of the contribution, the work flow may be adjusted.

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

View File

@ -31,16 +31,18 @@ jobs:
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
config-file: ./.github/codeql/${{ matrix.language }}.yml
- name: Create Build Environment
run: cmake -E make_directory ${{github.workspace}}/build
if: ${{ matrix.language == 'cpp' }}
run: mkdir build
- name: Building LAMMPS via CMake
if: ${{ matrix.language == 'cpp' }}
shell: bash
working-directory: ${{github.workspace}}/build
working-directory: build
run: |
cmake -C $GITHUB_WORKSPACE/cmake/presets/most.cmake $GITHUB_WORKSPACE/cmake
cmake -C ../cmake/presets/most.cmake ../cmake
cmake --build . --parallel 2
- name: Perform CodeQL Analysis

View File

@ -10,6 +10,8 @@ jobs:
name: MacOS Unit Test
if: ${{ github.repository == 'lammps/lammps' }}
runs-on: macos-latest
env:
CCACHE_DIR: ${{ github.workspace }}/.ccache
steps:
- name: Checkout repository
@ -17,20 +19,36 @@ jobs:
with:
fetch-depth: 2
- name: Install ccache
run: brew install ccache
- name: Create Build Environment
run: cmake -E make_directory ${{github.workspace}}/build
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: ${{github.workspace}}/build
working-directory: build
run: |
cmake -C $GITHUB_WORKSPACE/cmake/presets/clang.cmake \
-C $GITHUB_WORKSPACE/cmake/presets/most.cmake \
$GITHUB_WORKSPACE/cmake \
-DENABLE_TESTING=ON -DBUILD_SHARED_LIBS=ON -DLAMMPS_EXCEPTIONS=ON
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: ${{github.workspace}}/build
working-directory: build
shell: bash
run: ctest -V

3
.gitignore vendored
View File

@ -12,6 +12,7 @@
*.sif
*.dll
*.pyc
a.out
__pycache__
Obj_*
@ -43,6 +44,8 @@ Thumbs.db
/build*
/CMakeCache.txt
/CMakeFiles/
/Testing
/Makefile
/Testing
/cmake_install.cmake
/lmp

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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

10
cmake/.coveragerc.in Normal file
View File

@ -0,0 +1,10 @@
[run]
source = @LAMMPS_PYTHON_DIR@
parallel=True
branch=True
omit=*/install.py
*/setup.py
[paths]
sources = python
@LAMMPS_PYTHON_DIR@

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)
@ -31,7 +36,11 @@ 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_SYSTEM_NAME STREQUAL "Windows") AND (NOT CMAKE_CROSSCOMPILING))
set(CMAKE_INSTALL_PREFIX "$ENV{USERPROFILE}/LAMMPS" CACHE PATH "Default install path" FORCE)
else()
set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/.local" CACHE PATH "Default install path" FORCE)
endif()
endif()
# If enabled, no need to use LD_LIBRARY_PATH / DYLD_LIBRARY_PATH when installed
@ -72,7 +81,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") OR (CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM"))
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")
@ -85,6 +94,15 @@ endif()
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF CACHE BOOL "Use compiler extensions")
# ugly hack for MSVC which by default always reports an old C++ standard in the __cplusplus macro
if(MSVC)
add_compile_options(/Zc:__cplusplus)
endif()
# 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 #
@ -104,11 +122,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})
@ -116,17 +146,92 @@ install(TARGETS lmp EXPORT LAMMPS_Targets DESTINATION ${CMAKE_INSTALL_BINDIR})
option(CMAKE_VERBOSE_MAKEFILE "Generate verbose Makefiles" OFF)
set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE
GRANULAR KSPACE LATTE MANYBODY MC MESSAGE MISC MLIAP MOLECULE PERI POEMS
PLUGIN QEQ REPLICA RIGID SHOCK SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI
USER-ADIOS USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESODPD USER-CGSDK
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
USER-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)
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
EXTRA-COMPUTE
EXTRA-DUMP
EXTRA-FIX
EXTRA-MOLECULE
EXTRA-PAIR
FEP
GRANULAR
H5MD
INTERLAYER
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
ORIENT
PERI
PHONON
PLUGIN
PLUMED
POEMS
PTM
PYTHON
QEQ
QMMM
QTB
REACTION
REAXFF
REPLICA
RIGID
SCAFACOS
SHOCK
SMTBQ
SPH
SPIN
SRD
TALLY
UEF
VORONOI
VTK
YAFF)
set(SUFFIX_PACKAGES CORESHELL GPU KOKKOS OPT USER-INTEL USER-OMP)
set(SUFFIX_PACKAGES CORESHELL GPU KOKKOS OPT INTEL OPENMP)
foreach(PKG ${STANDARD_PACKAGES} ${SUFFIX_PACKAGES})
option(PKG_${PKG} "Build ${PKG} Package" OFF)
@ -137,7 +242,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
@ -147,7 +252,6 @@ if(PKG_USER-ADIOS)
endif()
if(NOT CMAKE_CROSSCOMPILING)
set(MPI_CXX_SKIP_MPICXX TRUE)
find_package(MPI QUIET)
option(BUILD_MPI "Build MPI version" ${MPI_FOUND})
else()
@ -155,8 +259,11 @@ else()
endif()
if(BUILD_MPI)
# do not include the (obsolete) MPI C++ bindings which makes
# for leaner object files and avoids namespace conflicts
set(MPI_CXX_SKIP_MPICXX TRUE)
# 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()
@ -190,7 +297,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")
@ -206,12 +313,16 @@ 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)
pkg_depends(DIELECTRIC EXTRA-PAIR)
pkg_depends(CG-DNA MOLECULE)
pkg_depends(CG-DNA ASPHERE)
# detect if we may enable OpenMP support by default
set(BUILD_OMP_DEFAULT OFF)
@ -232,8 +343,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
(CMAKE_CXX_COMPILER_ID STREQUAL "PGI") 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.
@ -245,69 +358,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)
@ -327,6 +378,8 @@ if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE)
endif()
endif()
# tweak jpeg library names to avoid linker errors with MinGW cross-compilation
set(JPEG_NAMES libjpeg libjpeg-62)
find_package(JPEG QUIET)
option(WITH_JPEG "Enable JPEG support" ${JPEG_FOUND})
if(WITH_JPEG)
@ -358,7 +411,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")
@ -369,7 +422,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")
@ -386,8 +439,8 @@ else()
set(CUDA_REQUEST_PIC)
endif()
foreach(PKG_WITH_INCL KSPACE PYTHON MLIAP 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()
@ -480,11 +533,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)
@ -496,9 +548,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})
@ -506,13 +558,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)
@ -524,15 +576,15 @@ if(PKG_USER-ATC)
target_compile_definitions(atc PRIVATE -DLAMMPS_${LAMMPS_SIZES})
endif()
if(PKG_USER-H5MD)
include(Packages/USER-H5MD)
if(PKG_H5MD)
include(Packages/H5MD)
endif()
######################################################################
# packages which selectively include variants based on enabled styles
# e.g. accelerator packages
######################################################################
foreach(PKG_WITH_INCL CORESHELL QEQ USER-OMP USER-SDPD KOKKOS OPT USER-INTEL GPU)
foreach(PKG_WITH_INCL CORESHELL QEQ OPENMP DPD-SMOOTH KOKKOS OPT INTEL GPU)
if(PKG_${PKG_WITH_INCL})
include(Packages/${PKG_WITH_INCL})
endif()
@ -555,7 +607,7 @@ endif()
# 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()
@ -604,8 +656,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
@ -683,7 +735,7 @@ if(BUILD_SHARED_LIBS)
else()
find_package(Python COMPONENTS Interpreter)
endif()
if (Python_EXECUTABLE)
if(Python_EXECUTABLE)
add_custom_target(
install-python ${CMAKE_COMMAND} -E remove_directory build
COMMAND ${Python_EXECUTABLE} install.py -v ${LAMMPS_SOURCE_DIR}/version.h
@ -716,7 +768,7 @@ if(BUILD_SHARED_LIBS OR PKG_PYTHON)
else()
find_package(Python COMPONENTS Interpreter)
endif()
if (Python_EXECUTABLE)
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()
@ -725,12 +777,19 @@ endif()
include(Testing)
include(CodeCoverage)
include(CodingStandard)
find_package(ClangFormat 8.0)
if(ClangFormat_FOUND)
add_custom_target(format-src
COMMAND ${ClangFormat_EXECUTABLE} --verbose -i -style=file *.cpp *.h */*.cpp */*.h
WORKING_DIRECTORY ${LAMMPS_SOURCE_DIR})
endif()
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}")
@ -761,15 +820,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}
@ -799,9 +858,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 "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}")
@ -811,7 +873,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}")
@ -831,7 +893,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

@ -54,6 +54,8 @@ if(ENABLE_COVERAGE)
if(COVERAGE_FOUND)
set(PYTHON_COVERAGE_HTML_DIR ${CMAKE_BINARY_DIR}/python_coverage_html)
configure_file(.coveragerc.in ${CMAKE_BINARY_DIR}/.coveragerc @ONLY)
add_custom_command(
OUTPUT ${CMAKE_BINARY_DIR}/unittest/python/.coverage
COMMAND ${COVERAGE_BINARY} combine
@ -63,16 +65,16 @@ if(ENABLE_COVERAGE)
add_custom_target(
gen_python_coverage_html
COMMAND ${COVERAGE_BINARY} html -d ${PYTHON_COVERAGE_HTML_DIR}
DEPENDS ${CMAKE_BINARY_DIR}/unittest/python/.coverage
COMMAND ${COVERAGE_BINARY} html --rcfile=${CMAKE_BINARY_DIR}/.coveragerc -d ${PYTHON_COVERAGE_HTML_DIR}
DEPENDS ${CMAKE_BINARY_DIR}/unittest/python/.coverage ${CMAKE_BINARY_DIR}/.coveragerc
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/unittest/python
COMMENT "Generating HTML Python coverage report..."
)
add_custom_target(
gen_python_coverage_xml
COMMAND ${COVERAGE_BINARY} xml -o ${CMAKE_BINARY_DIR}/python_coverage.xml
DEPENDS ${CMAKE_BINARY_DIR}/unittest/python/.coverage
COMMAND ${COVERAGE_BINARY} xml --rcfile=${CMAKE_BINARY_DIR}/.coveragerc -o ${CMAKE_BINARY_DIR}/python_coverage.xml
DEPENDS ${CMAKE_BINARY_DIR}/unittest/python/.coverage ${CMAKE_BINARY_DIR}/.coveragerc
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/unittest/python
COMMENT "Generating XML Python coverage report..."
)

View File

@ -15,6 +15,11 @@ if(Python3_EXECUTABLE)
${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

@ -55,8 +55,8 @@ if(BUILD_DOC)
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.2.tar.gz" CACHE STRING "URL for MathJax tarball")
set(MATHJAX_MD5 "a4a6a093a89bc2ccab1452d766b98e53" CACHE STRING "MD5 checksum of MathJax tarball")
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"

View File

@ -38,7 +38,7 @@ if(FFTW3_FOUND)
add_library(FFTW3::FFTW3_OMP UNKNOWN IMPORTED)
set_target_properties(FFTW3::FFTW3_OMP PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${FFTW3_OMP_LIBRARY}"
IMPORTED_LOCATION "${FFTW3_OMP_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${FFTW3_INCLUDE_DIRS}")
endif()
endif()

View File

@ -37,7 +37,7 @@ if(FFTW3F_FOUND)
add_library(FFTW3F::FFTW3F_OMP UNKNOWN IMPORTED)
set_target_properties(FFTW3F::FFTW3F_OMP PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${FFTW3F_OMP_LIBRARY}"
IMPORTED_LOCATION "${FFTW3F_OMP_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${FFTW3F_INCLUDE_DIRS}")
endif()
endif()

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)

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

@ -67,7 +67,7 @@ endfunction()
macro(pkg_depends PKG1 PKG2)
if(PKG_${PKG1} AND NOT (PKG_${PKG2} OR BUILD_${PKG2}))
message(FATAL_ERROR "${PKG1} package needs LAMMPS to be build with ${PKG2}")
message(FATAL_ERROR "The ${PKG1} package needs LAMMPS to be build with the ${PKG2} package")
endif()
endmacro()
@ -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,6 +1,6 @@
message(STATUS "Downloading and building OpenCL loader library")
set(OPENCL_LOADER_URL "${LAMMPS_THIRDPARTY_URL}/opencl-loader-2020.12.18.tar.gz" CACHE STRING "URL for OpenCL loader tarball")
set(OPENCL_LOADER_MD5 "011cdcbd41030be94f3fced6d763a52a" CACHE STRING "MD5 checksum of OpenCL loader tarball")
set(OPENCL_LOADER_URL "${LAMMPS_THIRDPARTY_URL}/opencl-loader-2021.09.18.tar.gz" CACHE STRING "URL for OpenCL loader tarball")
set(OPENCL_LOADER_MD5 "3b3882627964bd02e5c3b02065daac3c" CACHE STRING "MD5 checksum of OpenCL loader tarball")
mark_as_advanced(OPENCL_LOADER_URL)
mark_as_advanced(OPENCL_LOADER_MD5)

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

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

View File

@ -48,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"
@ -71,51 +71,54 @@ if(GPU_API STREQUAL "CUDA")
# build arch/gencode commands for nvcc based on CUDA toolkit version and use choice
# --arch translates directly instead of JIT, so this should be for the preferred or most common architecture
set(GPU_CUDA_GENCODE "-arch=${GPU_ARCH}")
# Fermi (GPU Arch 2.x) is supported by CUDA 3.2 to CUDA 8.0
if((CUDA_VERSION VERSION_GREATER_EQUAL "3.2") AND (CUDA_VERSION VERSION_LESS "9.0"))
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_20,code=[sm_20,compute_20] ")
endif()
# Kepler (GPU Arch 3.0) is supported by CUDA 5 to CUDA 10.2
if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "11.0"))
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_30,code=[sm_30,compute_30] ")
endif()
# Kepler (GPU Arch 3.5) is supported by CUDA 5 to CUDA 11
if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "12.0"))
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_35,code=[sm_35,compute_35]")
endif()
# Maxwell (GPU Arch 5.x) is supported by CUDA 6 and later
if(CUDA_VERSION VERSION_GREATER_EQUAL "6.0")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52]")
endif()
# Pascal (GPU Arch 6.x) is supported by CUDA 8 and later
if(CUDA_VERSION VERSION_GREATER_EQUAL "8.0")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_60,code=[sm_60,compute_60] -gencode arch=compute_61,code=[sm_61,compute_61]")
endif()
# Volta (GPU Arch 7.0) is supported by CUDA 9 and later
if(CUDA_VERSION VERSION_GREATER_EQUAL "9.0")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_70,code=[sm_70,compute_70]")
endif()
# Turing (GPU Arch 7.5) is supported by CUDA 10 and later
if(CUDA_VERSION VERSION_GREATER_EQUAL "10.0")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_75,code=[sm_75,compute_75]")
endif()
# Ampere (GPU Arch 8.0) is supported by CUDA 11 and later
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()
# apply the following to build "fat" CUDA binaries only for known CUDA toolkits
if(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
message(WARNING "Unsupported CUDA version. Use at your own risk.")
message(WARNING "Untested CUDA Toolkit version. Use at your own risk")
else()
# Fermi (GPU Arch 2.x) is supported by CUDA 3.2 to CUDA 8.0
if((CUDA_VERSION VERSION_GREATER_EQUAL "3.2") AND (CUDA_VERSION VERSION_LESS "9.0"))
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_20,code=[sm_20,compute_20] ")
endif()
# Kepler (GPU Arch 3.0) is supported by CUDA 5 to CUDA 10.2
if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "11.0"))
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_30,code=[sm_30,compute_30] ")
endif()
# Kepler (GPU Arch 3.5) is supported by CUDA 5 to CUDA 11
if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "12.0"))
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_35,code=[sm_35,compute_35]")
endif()
# Maxwell (GPU Arch 5.x) is supported by CUDA 6 and later
if(CUDA_VERSION VERSION_GREATER_EQUAL "6.0")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52]")
endif()
# Pascal (GPU Arch 6.x) is supported by CUDA 8 and later
if(CUDA_VERSION VERSION_GREATER_EQUAL "8.0")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_60,code=[sm_60,compute_60] -gencode arch=compute_61,code=[sm_61,compute_61]")
endif()
# Volta (GPU Arch 7.0) is supported by CUDA 9 and later
if(CUDA_VERSION VERSION_GREATER_EQUAL "9.0")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_70,code=[sm_70,compute_70]")
endif()
# Turing (GPU Arch 7.5) is supported by CUDA 10 and later
if(CUDA_VERSION VERSION_GREATER_EQUAL "10.0")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_75,code=[sm_75,compute_75]")
endif()
# Ampere (GPU Arch 8.0) is supported by CUDA 11 and later
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()
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)
@ -145,9 +148,16 @@ if(GPU_API STREQUAL "CUDA")
target_include_directories(nvc_get_devices PRIVATE ${CUDA_INCLUDE_DIRS})
elseif(GPU_API STREQUAL "OPENCL")
option(USE_STATIC_OPENCL_LOADER "Download and include a static OpenCL ICD loader" ON)
# 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)
if(USE_STATIC_OPENCL_LOADER)
include(OpenCLLoader)
else()
find_package(OpenCL REQUIRED)
@ -207,13 +217,20 @@ elseif(GPU_API STREQUAL "OPENCL")
elseif(GPU_API STREQUAL "HIP")
if(NOT DEFINED HIP_PATH)
if(NOT DEFINED ENV{HIP_PATH})
set(HIP_PATH "/opt/rocm/hip" CACHE PATH "Path to which HIP has been installed")
set(HIP_PATH "/opt/rocm/hip" CACHE PATH "Path to HIP installation")
else()
set(HIP_PATH $ENV{HIP_PATH} CACHE PATH "Path to which HIP has been installed")
set(HIP_PATH $ENV{HIP_PATH} CACHE PATH "Path to HIP installation")
endif()
endif()
set(CMAKE_MODULE_PATH "${HIP_PATH}/cmake" ${CMAKE_MODULE_PATH})
find_package(HIP REQUIRED)
if(NOT DEFINED ROCM_PATH)
if(NOT DEFINED ENV{ROCM_PATH})
set(ROCM_PATH "/opt/rocm" CACHE PATH "Path to ROCm installation")
else()
set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "Path to ROCm installation")
endif()
endif()
list(APPEND CMAKE_PREFIX_PATH ${HIP_PATH} ${ROCM_PATH})
find_package(hip REQUIRED)
option(HIP_USE_DEVICE_SORT "Use GPU sorting" ON)
if(NOT DEFINED HIP_PLATFORM)
@ -289,18 +306,18 @@ elseif(GPU_API STREQUAL "HIP")
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()
@ -315,10 +332,11 @@ elseif(GPU_API STREQUAL "HIP")
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${LAMMPS_LIB_BINARY_DIR}/gpu/*_cubin.h ${LAMMPS_LIB_BINARY_DIR}/gpu/*.cu.cpp")
hip_add_library(gpu STATIC ${GPU_LIB_SOURCES})
add_library(gpu STATIC ${GPU_LIB_SOURCES})
target_include_directories(gpu PRIVATE ${LAMMPS_LIB_BINARY_DIR}/gpu)
target_compile_definitions(gpu PRIVATE -D_${GPU_PREC_SETTING} -DMPI_GERYON -DUCL_NO_EXIT)
target_compile_definitions(gpu PRIVATE -DUSE_HIP)
target_link_libraries(gpu PRIVATE hip::host)
if(HIP_USE_DEVICE_SORT)
# add hipCUB
@ -367,8 +385,9 @@ elseif(GPU_API STREQUAL "HIP")
endif()
endif()
hip_add_executable(hip_get_devices ${LAMMPS_LIB_SOURCE_DIR}/gpu/geryon/ucl_get_devices.cpp)
add_executable(hip_get_devices ${LAMMPS_LIB_SOURCE_DIR}/gpu/geryon/ucl_get_devices.cpp)
target_compile_definitions(hip_get_devices PRIVATE -DUCL_HIP)
target_link_libraries(hip_get_devices hip::host)
if(HIP_PLATFORM STREQUAL "nvcc")
target_compile_definitions(gpu PRIVATE -D__HIP_PLATFORM_NVCC__)

View File

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

View File

@ -1,6 +1,8 @@
########################################################################
# As of version 3.3.0 Kokkos requires C++14
set(CMAKE_CXX_STANDARD 14)
if(CMAKE_CXX_STANDARD LESS 14)
set(CMAKE_CXX_STANDARD 14)
endif()
########################################################################
# consistency checks and Kokkos options/settings required by LAMMPS
if(Kokkos_ENABLE_CUDA)
@ -37,8 +39,8 @@ 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.3.01.tar.gz" CACHE STRING "URL for KOKKOS tarball")
set(KOKKOS_MD5 "08201d1c7cf5bc458ce0f5b44a629d5a" CACHE STRING "MD5 checksum of KOKKOS tarball")
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
@ -58,7 +60,7 @@ if(DOWNLOAD_KOKKOS)
target_link_libraries(lmp PRIVATE LAMMPS::KOKKOS)
add_dependencies(LAMMPS::KOKKOS kokkos_build)
elseif(EXTERNAL_KOKKOS)
find_package(Kokkos 3.3.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()
@ -74,11 +76,12 @@ else()
target_link_libraries(lammps PRIVATE kokkos)
target_link_libraries(lmp PRIVATE kokkos)
endif()
target_compile_definitions(lammps PRIVATE -DLMP_KOKKOS)
target_compile_definitions(lammps PUBLIC $<BUILD_INTERFACE:LMP_KOKKOS>)
set(KOKKOS_PKG_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/KOKKOS)
set(KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/atom_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/atom_map_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/atom_vec_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/comm_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/comm_tiled_kokkos.cpp
@ -99,7 +102,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()
@ -116,7 +119,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)
@ -126,4 +129,4 @@ endif()
get_property(KOKKOS_PKG_SOURCES GLOBAL PROPERTY KOKKOS_PKG_SOURCES)
target_sources(lammps PRIVATE ${KOKKOS_PKG_SOURCES})
target_include_directories(lammps PRIVATE ${KOKKOS_PKG_SOURCES_DIR})
target_include_directories(lammps PUBLIC $<BUILD_INTERFACE:${KOKKOS_PKG_SOURCES_DIR}>)

View File

@ -19,6 +19,14 @@ if(DOWNLOAD_LATTE)
set(LATTE_MD5 "820e73a457ced178c08c71389a385de7" CACHE STRING "MD5 checksum of LATTE tarball")
mark_as_advanced(LATTE_URL)
mark_as_advanced(LATTE_MD5)
# CMake cannot pass BLAS or LAPACK library variable to external project if they are a list
list(LENGTH BLAS_LIBRARIES} NUM_BLAS)
list(LENGTH LAPACK_LIBRARIES NUM_LAPACK)
if((NUM_BLAS GREATER 1) OR (NUM_LAPACK GREATER 1))
message(FATAL_ERROR "Cannot compile downloaded LATTE library due to a technical limitation")
endif()
include(ExternalProject)
ExternalProject_Add(latte_build
URL ${LATTE_URL}

View File

@ -7,8 +7,8 @@ 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")
set(EIGEN3_URL "https://gitlab.com/libeigen/eigen/-/archive/3.3.9/eigen-3.3.9.tar.gz" CACHE STRING "URL for Eigen3 tarball")
set(EIGEN3_MD5 "609286804b0f79be622ccf7f9ff2b660" CACHE STRING "MD5 checksum of Eigen3 tarball")
mark_as_advanced(EIGEN3_URL)
mark_as_advanced(EIGEN3_MD5)
include(ExternalProject)
@ -30,3 +30,8 @@ else()
endif()
target_link_libraries(lammps PRIVATE Eigen3::Eigen)
endif()
# PGI/Nvidia compiler internals collide with vector intrinsics support in Eigen3
if((CMAKE_CXX_COMPILER_ID STREQUAL "PGI") OR (CMAKE_CXX_COMPILER_ID STREQUAL "NVHPC"))
target_compile_definitions(lammps PRIVATE -DEIGEN_DONT_VECTORIZE)
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_MDI)
target_compile_definitions(lmp PRIVATE -DLMP_MDI)

View File

@ -1,4 +1,4 @@
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)

View File

@ -0,0 +1,133 @@
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}")
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}")
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}")
# must have "sed" command to compile n2p2 library (for now)
find_program(HAVE_SED sed)
if(NOT HAVE_SED)
message(FATAL_ERROR "Must have 'sed' program installed to compile 'n2p2' library for ML-HDNNP package")
endif()
# 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

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

View File

@ -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,70 @@
enable_language(Fortran)
find_package(QUIP QUIET)
if(QUIP_FOUND)
set(DOWNLOAD_QUIP_DEFAULT OFF)
else()
set(DOWNLOAD_QUIP_DEFAULT ON)
endif()
option(DOWNLOAD_QUIP "Download the QUIP library instead of using an already installed one" ${DOWNLOAD_QUIP_DEFAULT})
if(DOWNLOAD_QUIP)
string(TOUPPER "${CMAKE_BUILD_TYPE}" BTYPE)
set(temp "F77 = ${CMAKE_Fortran_COMPILER}\nF90 = ${CMAKE_Fortran_COMPILER}\nF95 = ${CMAKE_Fortran_COMPILER}\n")
set(temp "${temp}CC=${CMAKE_C_COMPILER}\nCPLUSPLUS=${CMAKE_CXX_COMPILER}\nLINKER=${CMAKE_Fortran_COMPILER}\n")
if(CMAKE_Fortran_COMPILER_ID STREQUAL Intel)
set(temp "${temp}FPP=${CMAKE_Fortran_COMPILER} -E\nOPTIM=${CMAKE_Fortran_FLAGS_${BTYPE}}\n")
set(temp "${temp}DEFINES += -DGETARG_F2003 -DFORTRAN_UNDERSCORE\n")
set(temp "${temp}F95FLAGS += -fpp -free -fPIC\n")
set(temp "${temp}F77FLAGS += -fpp -fixed -fPIC\n")
elseif(CMAKE_Fortran_COMPILER_ID STREQUAL GNU)
set(temp "${temp}FPP=${CMAKE_Fortran_COMPILER} -E -x f95-cpp-input\nOPTIM=${CMAKE_Fortran_FLAGS_${BTYPE}}\n")
set(temp "${temp}DEFINES += -DGETARG_F2003 -DGETENV_F2003 -DGFORTRAN -DFORTRAN_UNDERSCORE\n")
set(temp "${temp}F95FLAGS += -x f95-cpp-input -ffree-line-length-none -ffree-form -fno-second-underscore -fPIC\n")
set(temp "${temp}F77FLAGS += -x f77-cpp-input -fno-second-underscore -fPIC\n")
else()
message(FATAL_ERROR "The ${CMAKE_Fortran_COMPILER_ID} Fortran compiler is not (yet) supported for building QUIP")
endif()
set(temp "${temp}CFLAGS += -fPIC \nCPLUSPLUSFLAGS += -fPIC\nAR_ADD=src\n")
set(temp "${temp}MATH_LINKOPTS=")
foreach(flag ${BLAS_LIBRARIES})
set(temp "${temp} ${flag}")
endforeach()
foreach(flag ${LAPACK_LIBRARIES})
set(temp "${temp} ${flag}")
endforeach()
set(temp "${temp}\n")
set(temp "${temp}PYTHON=python\nPIP=pip\nEXTRA_LINKOPTS=\n")
set(temp "${temp}HAVE_CP2K=0\nHAVE_VASP=0\nHAVE_TB=0\nHAVE_PRECON=1\nHAVE_LOTF=0\nHAVE_ONIOM=0\n")
set(temp "${temp}HAVE_LOCAL_E_MIX=0\nHAVE_QC=0\nHAVE_GAP=1\nHAVE_DESCRIPTORS_NONCOMMERCIAL=1\n")
set(temp "${temp}HAVE_TURBOGAP=0\nHAVE_QR=1\nHAVE_THIRDPARTY=0\nHAVE_FX=0\nHAVE_SCME=0\nHAVE_MTP=0\n")
set(temp "${temp}HAVE_MBD=0\nHAVE_TTM_NF=0\nHAVE_CH4=0\nHAVE_NETCDF4=0\nHAVE_MDCORE=0\nHAVE_ASAP=0\n")
set(temp "${temp}HAVE_CGAL=0\nHAVE_METIS=0\nHAVE_LMTO_TBE=0\nHAVE_SCALAPACK=0\n")
file(WRITE ${CMAKE_BINARY_DIR}/quip.config "${temp}")
message(STATUS "QUIP download via git requested - we will build our own")
# QUIP has no releases (except for a tag marking the end of Python 2 support). We use the current "public" branch
# The LAMMPS interface wrapper has a compatibility constant that is being checked at runtime.
include(ExternalProject)
ExternalProject_Add(quip_build
GIT_REPOSITORY "https://github.com/libAtoms/QUIP/"
GIT_TAG origin/public
GIT_SHALLOW YES
GIT_PROGRESS YES
PATCH_COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/quip.config <SOURCE_DIR>/arch/Makefile.lammps
CONFIGURE_COMMAND env QUIP_ARCH=lammps make config
BUILD_COMMAND env QUIP_ARCH=lammps make libquip
INSTALL_COMMAND ""
BUILD_IN_SOURCE YES
BUILD_BYPRODUCTS <SOURCE_DIR>/build/lammps/libquip.a
)
ExternalProject_get_property(quip_build SOURCE_DIR)
add_library(LAMMPS::QUIP UNKNOWN IMPORTED)
set_target_properties(LAMMPS::QUIP PROPERTIES
IMPORTED_LOCATION "${SOURCE_DIR}/build/lammps/libquip.a"
INTERFACE_LINK_LIBRARIES "${LAPACK_LIBRARIES}")
target_link_libraries(lammps PRIVATE LAMMPS::QUIP)
add_dependencies(LAMMPS::QUIP quip_build)
else()
find_package(QUIP REQUIRED)
target_link_libraries(lammps PRIVATE QUIP::QUIP ${LAPACK_LIBRARIES})
endif()

View File

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

View File

@ -12,6 +12,13 @@ if(DOWNLOAD_MSCG)
mark_as_advanced(MSCG_URL)
mark_as_advanced(MSCG_MD5)
# CMake cannot pass BLAS or LAPACK library variable to external project if they are a list
list(LENGTH BLAS_LIBRARIES} NUM_BLAS)
list(LENGTH LAPACK_LIBRARIES NUM_LAPACK)
if((NUM_BLAS GREATER 1) OR (NUM_LAPACK GREATER 1))
message(FATAL_ERROR "Cannot compile downloaded MSCG library due to a technical limitation")
endif()
include(ExternalProject)
ExternalProject_Add(mscg_build
URL ${MSCG_URL}

View File

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

View File

@ -0,0 +1,40 @@
set(OPENMP_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/OPENMP)
set(OPENMP_SOURCES ${OPENMP_SOURCES_DIR}/thr_data.cpp
${OPENMP_SOURCES_DIR}/thr_omp.cpp
${OPENMP_SOURCES_DIR}/fix_omp.cpp
${OPENMP_SOURCES_DIR}/fix_nh_omp.cpp
${OPENMP_SOURCES_DIR}/fix_nh_sphere_omp.cpp
${OPENMP_SOURCES_DIR}/domain_omp.cpp)
target_compile_definitions(lammps PRIVATE -DLMP_OPENMP)
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}/reaxff_bond_orders_omp.cpp
${OPENMP_SOURCES_DIR}/reaxff_hydrogen_bonds_omp.cpp
${OPENMP_SOURCES_DIR}/reaxff_nonbonded_omp.cpp
${OPENMP_SOURCES_DIR}/reaxff_bonds_omp.cpp
${OPENMP_SOURCES_DIR}/reaxff_init_md_omp.cpp
${OPENMP_SOURCES_DIR}/reaxff_torsion_angles_omp.cpp
${OPENMP_SOURCES_DIR}/reaxff_forces_omp.cpp
${OPENMP_SOURCES_DIR}/reaxff_multi_body_omp.cpp
${OPENMP_SOURCES_DIR}/reaxff_valence_angles_omp.cpp)
endif()
target_sources(lammps PRIVATE ${OPENMP_SOURCES})
target_include_directories(lammps PRIVATE ${OPENMP_SOURCES_DIR})

View File

@ -54,8 +54,9 @@ if(DOWNLOAD_PLUMED)
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/libplumedWrapper.a")
endif()
set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.7.0/plumed-src-2.7.0.tgz" CACHE STRING "URL for PLUMED tarball")
set(PLUMED_MD5 "95f29dd0c067577f11972ff90dfc7d12" CACHE STRING "MD5 checksum of PLUMED tarball")
set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.7.2/plumed-src-2.7.2.tgz" CACHE STRING "URL for PLUMED tarball")
set(PLUMED_MD5 "cfa0b4dd90a81c25d3302e8d97bfeaea" CACHE STRING "MD5 checksum of PLUMED tarball")
mark_as_advanced(PLUMED_URL)
mark_as_advanced(PLUMED_MD5)

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

@ -23,6 +23,11 @@ if(DOWNLOAD_SCAFACOS)
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)
find_program(HAVE_PATCH patch)
if(NOT HAVE_PATCH)
message(FATAL_ERROR "The 'patch' program is required to build the ScaFaCoS library")
endif()
include(ExternalProject)
ExternalProject_Add(scafacos_build
URL ${SCAFACOS_URL}

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,3 +0,0 @@
enable_language(Fortran)
find_package(QUIP REQUIRED)
target_link_libraries(lammps PRIVATE QUIP::QUIP ${LAPACK_LIBRARIES})

View File

@ -26,6 +26,11 @@ if(DOWNLOAD_VORO)
set(VORO_BUILD_OPTIONS CXX=${CMAKE_CXX_COMPILER} CFLAGS=${VORO_BUILD_CFLAGS})
endif()
find_program(HAVE_PATCH patch)
if(NOT HAVE_PATCH)
message(FATAL_ERROR "The 'patch' program is required to build the voro++ library")
endif()
ExternalProject_Add(voro_build
URL ${VORO_URL}
URL_MD5 ${VORO_MD5}

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

@ -9,14 +9,16 @@ if(BUILD_TOOLS)
check_language(Fortran)
if(CMAKE_Fortran_COMPILER)
enable_language(Fortran)
add_executable(chain.x ${LAMMPS_TOOLS_DIR}/chain.f)
add_executable(chain.x ${LAMMPS_TOOLS_DIR}/chain.f90)
target_link_libraries(chain.x PRIVATE ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
install(TARGETS chain.x DESTINATION ${CMAKE_INSTALL_BINDIR})
add_executable(micelle2d.x ${LAMMPS_TOOLS_DIR}/micelle2d.f90)
target_link_libraries(micelle2d.x PRIVATE ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
install(TARGETS chain.x micelle2d.x DESTINATION ${CMAKE_INSTALL_BINDIR})
else()
message(WARNING "No suitable Fortran compiler found, skipping build of 'chain.x'")
message(WARNING "No suitable Fortran compiler found, skipping build of 'chain.x' and 'micelle2d.x'")
endif()
else()
message(WARNING "CMake build doesn't support fortran, skipping build of 'chain.x'")
message(WARNING "CMake build doesn't support Fortran, skipping build of 'chain.x' and 'micelle2d.x'")
endif()
enable_language(C)
@ -45,7 +47,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

@ -6,15 +6,27 @@ set(YAML_MD5 "bb15429d8fb787e7d3f1c83ae129a999" CACHE STRING "MD5 checksum of li
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 ${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
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 "")

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

@ -1,7 +1,28 @@
[
{ include: [ "<bits/types/struct_rusage.h>", private, "<sys/resource.h>", public ] },
{ include: [ "<bits/exception.h>", public, "<exception>", public ] },
{ include: [ "@<Eigen/.*>", private, "<Eigen/Eigen>", public ] },
{ include: [ "@<gtest/.*>", private, "\"gtest/gtest.h\"", public ] },
{ include: [ "@<gmock/.*>", private, "\"gmock/gmock.h\"", public ] },
{ include: [ "@<gmock/.*>", private, "\"gmock/gmock.h\"", public ] },
{ include: [ "@<(cell|c_loops|container).hh>", private, "<voro++.hh>", public ] },
{ include: [ "@\"atom_vec_.*.h\"", public, "\"style_atom.h\"", public ] },
{ include: [ "@\"body_.*.h\"", public, "\"style_body.h\"", public ] },
{ include: [ "@\"compute_.*.h\"", public, "\"style_compute.h\"", public ] },
{ include: [ "@\"fix_.*.h\"", public, "\"style_fix.h\"", public ] },
{ include: [ "@\"dump_.*.h\"", public, "\"style_dump.h\"", public ] },
{ include: [ "@\"min_.*.h\"", public, "\"style_minimize.h\"", public ] },
{ include: [ "@\"reader_.*.h\"", public, "\"style_reader.h\"", public ] },
{ include: [ "@\"region_.*.h\"", public, "\"style_region.h\"", public ] },
{ include: [ "@\"pair_.*.h\"", public, "\"style_pair.h\"", public ] },
{ include: [ "@\"angle_.*.h\"", public, "\"style_angle.h\"", public ] },
{ include: [ "@\"bond_.*.h\"", public, "\"style_bond.h\"", public ] },
{ include: [ "@\"dihedral_.*.h\"", public, "\"style_dihedral.h\"", public ] },
{ include: [ "@\"improper_.*.h\"", public, "\"style_improper.h\"", public ] },
{ include: [ "@\"kspace_.*.h\"", public, "\"style_kspace.h\"", public ] },
{ include: [ "@\"nbin_.*.h\"", public, "\"style_nbin.h\"", public ] },
{ include: [ "@\"npair_.*.h\"", public, "\"style_npair.h\"", public ] },
{ include: [ "@\"nstenci_.*.h\"", public, "\"style_nstencil.h\"", public ] },
{ include: [ "@\"ntopo_.*.h\"", public, "\"style_ntopo.h\"", public ] },
{ include: [ "<float.h>", public, "<cfloat>", public ] },
{ include: [ "<limits.h>", public, "<climits>", public ] },
{ include: [ "<bits/types/struct_tm.h>", private, "<ctime>", public ] },
]

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,96 @@
# 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
EXTRA-COMPUTE
EXTRA-DUMP
EXTRA-FIX
EXTRA-MOLECULE
EXTRA-PAIR
FEP
GPU
GRANULAR
H5MD
INTEL
INTERLAYER
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
ORIENT
PERI
PHONON
PLUGIN
PLUMED
POEMS
PTM
PYTHON
QEQ
QMMM
QTB
REACTION
REAXFF
REPLICA
RIGID
SCAFACOS
SHOCK
SMTBQ
SPH
SPIN
SRD
TALLY
UEF
VORONOI
VTK
YAFF)
foreach(PKG ${ALL_PACKAGES})
set(PKG_${PKG} OFF CACHE BOOL "" FORCE)

View File

@ -1,19 +1,98 @@
# 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
EXTRA-COMPUTE
EXTRA-DUMP
EXTRA-FIX
EXTRA-MOLECULE
EXTRA-PAIR
FEP
GPU
GRANULAR
H5MD
INTEL
INTERLAYER
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
ORIENT
PERI
PHONON
PLUGIN
PLUMED
POEMS
PTM
PYTHON
QEQ
QMMM
QTB
REACTION
REAXFF
REPLICA
RIGID
SCAFACOS
SHOCK
SMTBQ
SPH
SPIN
SRD
TALLY
UEF
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=f2003" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG -std=f2003" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG -std=f2003" 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

@ -1,11 +1,23 @@
# preset that will restore gcc/g++ with support for MPI and OpenMP (on Linux boxes)
# preset that will explicitly request gcc/g++ compilers with support for MPI and OpenMP
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 -std=f2003" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-g -O2 -DNDEBUG -std=f2003" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG -std=f2003" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)
set(OpenMP_C "gcc" CACHE STRING "" FORCE)

View File

@ -1,12 +1,26 @@
# preset that will enable hipcc plus gcc with support for MPI and OpenMP (on Linux boxes)
# preset that will enable hipcc plus gcc/gfortran with support for MPI and OpenMP (on Linux boxes)
set(CMAKE_CXX_COMPILER "hipcc" 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 -g" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_DEBUG "-Wall -Wextra -g -std=f2003" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG -std=f2003" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG -std=f2003" 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(OpenMP_CXX "hipcc" CACHE STRING "" FORCE)
set(MPI_CXX "hipcc" CACHE STRING "" FORCE)
set(MPI_CXX_COMPILER "mpicxx" 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_FLAGS "-fopenmp" CACHE STRING "" FORCE)
set(OpenMP_CXX "hipcc" CACHE STRING "" FORCE)
set(OpenMP_CXX_LIB_NAMES "omp" CACHE STRING "" FORCE)
set(OpenMP_omp_LIBRARY "libomp.so" CACHE PATH "" FORCE)

View File

@ -0,0 +1,30 @@
# preset that will enable hip (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 "hipcc" CACHE STRING "" FORCE)
set(CMAKE_C_COMPILER "hipcc" 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=f2003" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG -std=f2003" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG -std=f2003" 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 "hipcc" CACHE STRING "" FORCE)
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)
set(OpenMP_C "hipcc" CACHE STRING "" FORCE)
set(OpenMP_C_FLAGS "-fopenmp" CACHE STRING "" FORCE)
set(OpenMP_C_LIB_NAMES "omp" CACHE STRING "" FORCE)
set(OpenMP_CXX "hipcc" CACHE STRING "" FORCE)
set(OpenMP_CXX_FLAGS "-fopenmp" CACHE STRING "" FORCE)
set(OpenMP_CXX_LIB_NAMES "omp" CACHE STRING "" FORCE)
set(OpenMP_omp_LIBRARY "libomp.so" CACHE PATH "" 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,76 @@
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
EXTRA-COMPUTE
EXTRA-DUMP
EXTRA-FIX
EXTRA-MOLECULE
EXTRA-PAIR
FEP
GPU
GRANULAR
INTEL
INTERLAYER
KSPACE
LATTE
MACHDYN
MANIFOLD
MANYBODY
MC
MDI
MEAM
MESONT
MGPT
MISC
ML-HDNNP
ML-IAP
ML-SNAP
ML-RANN
MOFFF
MOLECULE
MOLFILE
OPENMP
OPT
ORIENT
PERI
PHONON
POEMS
PTM
QEQ
QTB
REACTION
REAXFF
REPLICA
RIGID
SHOCK
SMTBQ
SPH
SPIN
SRD
TALLY
UEF
VORONOI
YAFF)
foreach(PKG ${WIN_PACKAGES})
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
@ -16,7 +79,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,66 @@
# external libraries. Compared to all_on.cmake some more unusual packages
# are removed. The resulting binary should be able to run most inputs.
set(ALL_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE
GRANULAR KSPACE MANYBODY MC MISC MLIAP MOLECULE OPT PERI
PLUGIN POEMS PYTHON QEQ REPLICA RIGID SHOCK SNAP SPIN SRD VORONOI
USER-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
EXTRA-COMPUTE
EXTRA-DUMP
EXTRA-FIX
EXTRA-MOLECULE
EXTRA-PAIR
FEP
GRANULAR
INTERLAYER
KSPACE
MACHDYN
MANYBODY
MC
MEAM
MISC
ML-IAP
ML-SNAP
MOFFF
MOLECULE
OPENMP
OPT
ORIENT
PERI
PHONON
PLUGIN
POEMS
PYTHON
QEQ
REACTION
REAXFF
REPLICA
RIGID
SHOCK
SPH
SPIN
SRD
TALLY
UEF
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

@ -1,12 +1,22 @@
# preset that will enable the LLVM based Intel compilers with support for MPI and OpenMP (on Linux boxes)
# 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)
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)

View File

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

View File

@ -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
@ -59,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
# ------------------------------------------
@ -68,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)"
@ -185,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 ;\
@ -213,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
@ -236,9 +230,9 @@ $(VENV):
)
$(MATHJAX):
@git clone --depth 1 git://github.com/mathjax/MathJax.git $@
@git clone -b 3.2.0 -c advice.detachedHead=0 --depth 1 git://github.com/mathjax/MathJax.git $@
$(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

@ -6,7 +6,7 @@ choices the LAMMPS developers have agreed on. Git and GitHub provide the
tools, but do not set policies, so it is up to the developers to come to
an agreement as to how to define and interpret policies. This document
is likely to change as our experiences and needs change and we try to
adapt accordingly. Last change 2018-12-19.
adapt accordingly. Last change 2021-09-02.
## Table of Contents
@ -23,10 +23,10 @@ adapt accordingly. Last change 2018-12-19.
In the interest of consistency, ONLY ONE of the core LAMMPS developers
should doing the merging itself. This is currently
[@akohlmey](https://github.com/akohlmey) (Axel Kohlmeyer).
If this assignment needs to be changed, it shall be done right after a
stable release. If the currently assigned developer cannot merge outstanding pull
requests in a timely manner, or in other extenuating circumstances,
[@akohlmey](https://github.com/akohlmey) (Axel Kohlmeyer). If this
assignment needs to be changed, it shall be done right after a stable
release. If the currently assigned developer cannot merge outstanding
pull requests in a timely manner, or in other extenuating circumstances,
other core LAMMPS developers with merge rights can merge pull requests,
when necessary.
@ -55,13 +55,14 @@ the required changes or ask the submitter of the pull request to implement
them. Even though, all LAMMPS developers may have write access to pull
requests (if enabled by the submitter, which is the default), only the
submitter or the assignee of a pull request may do so. During this
period the `work_in_progress` label shall be applied to the pull
period the `work_in_progress` label may be applied to the pull
request. The assignee gets to decide what happens to the pull request
next, e.g. whether it should be assigned to a different developer for
additional checks and changes, or is recommended to be merged. Removing
the `work_in_progress` label and assigning the pull request to the
developer tasked with merging signals that a pull request is ready to be
merged.
merged. In addition, a `ready_for_merge` label may also be assigned
to signal urgency to merge this pull request quickly.
### Pull Request Reviews
@ -97,108 +98,50 @@ rationale behind choices made. Exceptions to this policy are technical
discussions, that are centered on tools or policies themselves
(git, GitHub, c++) rather than on the content of the pull request.
### Checklist for Pull Requests
Here are some items to check:
* source and text files should not have CR/LF line endings (use dos2unix to remove)
* every new command or style should have documentation. The names of
source files (c++ and manual) should follow the name of the style.
(example: `src/fix_nve.cpp`, `src/fix_nve.h` for `fix nve` command,
implementing the class `FixNVE`, documented in `doc/src/fix_nve.rst`)
* all new style names should be lower case, the must be no dashes,
blanks, or underscores separating words, only forward slashes.
* new style docs should be added to the "overview" files in
`doc/src/Commands_*.rst`, `doc/src/{fixes,computes,pairs,bonds,...}.rst`
* check whether manual cleanly translates with `make html` and `make pdf`
* if documentation is (still) provided as a .txt file, convert to .rst
and remove the .txt file. For files in doc/txt the conversion is automatic.
* remove all .txt files in `doc/txt` that are out of sync with their .rst counterparts in `doc/src`
* check spelling of manual with `make spelling` in doc folder
* check style tables and command lists with `make style_check`
* new source files in packages should be added to `src/.gitignore`
* removed or renamed files in packages should be added to `src/Purge.list`
* C++ source files should use C++ style include files for accessing
C-library APIs, e.g. `#include <cstdlib>` instead of `#include <stdlib.h>`.
And they should use angular brackets instead of double quotes. Full list:
* assert.h -> cassert
* ctype.h -> cctype
* errno.h -> cerrno
* float.h -> cfloat
* limits.h -> climits
* math.h -> cmath
* complex.h -> complex
* setjmp.h -> csetjmp
* signal.h -> csignal
* stddef.h -> cstddef
* stdint.h -> cstdint
* stdio.h -> cstdio
* stdlib.h -> cstdlib
* string.h -> cstring
* time.h -> ctime
* Do NOT replace (as they are C++-11): `inttypes.h` and `stdint.h`.
* Code must follow the C++-11 standard. C++98-only is no longer accepted
* Code should use `nullptr` instead of `NULL` where applicable.
in individual special purpose packages
* indentation is 2 spaces per level
* there should be NO tabs and no trailing whitespace (review the "checkstyle" test on pull requests)
* header files, especially of new styles, should not include any
other headers, except the header with the base class or cstdio.
Forward declarations should be used instead when possible.
* iostreams should be avoided. LAMMPS uses stdio from the C-library.
* use of STL in headers and class definitions should be avoided.
exception is <string>, but it won't need to be explicitly included
since pointers.h already includes it. so std::string can be used directly.
* there MUST NOT be any "using namespace XXX;" statements in headers.
* static class members should be avoided at all cost.
* anything storing atom IDs should be using `tagint` and not `int`.
This can be flagged by the compiler only for pointers and only when
compiling LAMMPS with `-DLAMMPS_BIGBIG`.
* when including both `lmptype.h` (and using defines or macros from it)
and `mpi.h`, `lmptype.h` must be included first.
* see https://github.com/lammps/lammps/blob/master/doc/include-file-conventions.md
for general include file conventions and best practices
* when pair styles are added, check if settings for flags like
`single_enable`, `writedata`, `reinitflag`, `manybody_flag`
and others are correctly set and supported.
## GitHub Issues
The GitHub issue tracker is the location where the LAMMPS developers
and other contributors or LAMMPS users can report issues or bugs with
the LAMMPS code or request new features to be added. Feature requests
are usually indicated by a `[Feature Request]` marker in the subject.
Issues are assigned to a person, if this person is working on this
feature or working to resolve an issue. Issues that have nobody working
on them at the moment, have the label `volunteer needed` attached.
the LAMMPS code or request new features to be added. Bug reports have
a `[Bug]` marker in the subject line; suggestions for changes or
adding new functionality are indicated by a `[Feature Request]`
marker in the subject. This is automatically done when using the
corresponding template for submitting an issue. Issues may be assigned
to one or more developers, if they are working on this feature or
working to resolve an issue. Issues that have nobody working
on them at the moment or in the near future, have the label
`volunteer needed` attached.
When an issue, say `#125` is resolved by a specific pull request,
the comment for the pull request shall contain the text `closes #125`
or `fixes #125`, so that the issue is automatically deleted when
the pull request is merged.
the pull request is merged. The template for pull requests includes
a header where connections between pull requests and issues can be listed
and thus were this comment should be placed.
## Milestones and Release Planning
LAMMPS uses a continuous release development model with incremental
changes, i.e. significant effort is made - including automated pre-merge
testing - that the code in the branch "master" does not get broken.
More extensive testing (including regression testing) is performed after
code is merged to the "master" branch. There are patch releases of
LAMMPS every 1-3 weeks at a point, when the LAMMPS developers feel, that
a sufficient amount of changes have happened, and the post-merge testing
has been successful. These patch releases are marked with a
`patch_<version date>` tag and the "unstable" branch follows only these
versions (and thus is always supposed to be of production quality,
unlike "master", which may be temporary broken, in the case of larger
change sets or unexpected incompatibilities or side effects.
testing - that the code in the branch "master" does not get easily
broken. These tests are run after every update to a pull request. More
extensive and time consuming tests (including regression testing) are
performed after code is merged to the "master" branch. There are patch
releases of LAMMPS every 3-5 weeks at a point, when the LAMMPS
developers feel, that a sufficient amount of changes have happened, and
the post-merge testing has been successful. These patch releases are
marked with a `patch_<version date>` tag and the "unstable" branch
follows only these versions (and thus is always supposed to be of
production quality, unlike "master", which may be temporary broken, in
the case of larger change sets or unexpected incompatibilities or side
effects.
About 3-4 times each year, there are going to be "stable" releases
of LAMMPS. These have seen additional, manual testing and review of
About 1-2 times each year, there are going to be "stable" releases of
LAMMPS. These have seen additional, manual testing and review of
results from testing with instrumented code and static code analysis.
Also, in the last 2-3 patch releases before a stable release are
"release candidate" versions which only contain bugfixes and
documentation updates. For release planning and the information of
code contributors, issues and pull requests being actively worked on
are assigned a "milestone", which corresponds to the next stable
release or the stable release after that, with a tentative release
date.
Also, the last 1-3 patch releases before a stable release are "release
candidate" versions which only contain bugfixes and documentation
updates. For release planning and the information of code contributors,
issues and pull requests being actively worked on are assigned a
"milestone", which corresponds to the next stable release or the stable
release after that, with a tentative release date.

View File

@ -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

@ -1,128 +0,0 @@
# Outline of include file conventions in LAMMPS
This purpose of this document is to provide a point of reference
for LAMMPS developers and contributors as to what include files
and definitions to put where into LAMMPS source.
Last change 2020-08-31
## Table of Contents
* [Motivation](#motivation)
* [Rules](#rules)
* [Tools](#tools)
* [Legacy Code](#legacy-code)
## Motivation
The conventions outlined in this document are supposed to help make
maintenance of the LAMMPS software easier. By trying to achieve
consistency across files contributed by different developers, it will
become easier for the code maintainers to modify and adjust files and,
overall, the chance for errors or portability issues will be reduced.
The rules employed are supposed to minimize naming conflicts and
simplify dependencies between files and thus speed up compilation. They
may, as well, make otherwise hidden dependencies visible.
## Rules
Below are the various rules that are applied. Not all are enforced
strictly and automatically. If there are no significant side effects,
exceptions may be possible for cases where a full compliance to the
rules may require a large effort compared to the benefit.
### Core Files Versus Package Files
All rules listed below are most strictly observed for core LAMMPS files,
which are the files that are not part of a package, and the files of the
packages MOLECULE, MANYBODY, KSPACE, and RIGID. On the other end of
the spectrum are USER packages and legacy packages that predate these
rules and thus may not be fully compliant. Also, new contributions
will be checked more closely, while existing code will be incrementally
adapted to the rules as time and required effort permits.
### System Versus Local Header Files
All system- or library-provided include files are included with angular
brackets (examples: `#include <cstring>` or `#include <mpi.h>`) while
include files provided with LAMMPS are included with double quotes
(examples: `#include "pointers.h"` or `#include "compute_temp.h"`).
For headers declaring functions of the C-library, the corresponding
C++ versions should be included (examples: `#include <cstdlib>` or
`#include <cctypes>` instead of `#include <stdlib.h>` or
`#include<ctypes.h>` ).
### C++ Standard Compliance
LAMMPS core files use standard conforming C++ compatible with the
C++11 standard, unless explicitly noted. Also, LAMMPS uses the C-style
stdio library for I/O instead of iostreams. Since using both at the
same time can cause problems, iostreams should be avoided where possible.
### Lean Header Files
Header files will typically contain the definition of a (single) class.
These header files should have as few include statements as possible.
This is particularly important for classes that implement a "style" and
thus use a macro of the kind `SomeStyle(some/name,SomeName)`. These will
all be included in the auto-generated `"some_style.h"` files which
results in a high potential for direct or indirect symbol name clashes.
In the ideal case, the header would only include one file defining the
parent class. That would typically be either `#include "pointers.h"` for
the `Pointers` class, or a header of a class derived from it like
`#include "pair.h"` for the `Pair` class and so on. References to other
classes inside the class should be make through pointers, for which forward
declarations (inside the `LAMMPS_NS` or the new class' namespace) can
be employed. The full definition will then be included into the corresponding
implementation file. In the given example from above, the header file
would be called `some_name.h` and the implementation `some_name.cpp` (all
lower case with underscores, while the class itself would be in camel case
and no underscores `SomeName`, and the style name with lower case names separated by
a forward slash).
### Implementation Files
In the implementation files (typically, those would have the same base name
as the corresponding header with a .cpp extension instead of .h) include
statements should follow the "include what you use" principle.
### Order of Include Statements
Include files should be included in this order:
* the header matching the implementation (`some_class.h` for file `some_class.cpp`)
* mpi.h (only if needed)
* LAMMPS local headers (preferably in alphabetical order)
* system and library headers (anything that is using angular brackets; preferably in alphabetical order)
* conditional include statements (i.e. anything bracketed with ifdefs)
### Special Cases and Exceptions
#### pointers.h
The `pointer.h` header file also includes (in this order) `lmptype.h`,
`mpi.h`, `cstddef`, `cstdio`, `string`, `utils.h`, and `fmt/format.h`
and through `lmptype.h` indirectly also `climits`, `cstdlib`, `cinttypes`.
This means any header including `pointers.h` can assume that `FILE`,
`NULL`, `INT_MAX` are defined, and the may freely use the std::string
for arguments. Corresponding implementation files do not need to include
those headers.
## Tools
The [Include What You Use tool](https://include-what-you-use.org/)
can be used to provide supporting information about compliance with
the rules listed here. Through setting `-DENABLE_IWYU=on` when running
CMake, a custom build target is added that will enable recording
the compilation commands and then run the `iwyu_tool` using the
recorded compilation commands information when typing `make iwyu`.
## Legacy Code
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
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 "8 April 2021" "2021-04-08"
.TH LAMMPS "29 September 2021" "2021-09-29"
.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
@ -54,7 +54,7 @@ using
this <machine name> parameter can be chosen arbitrarily at configuration
time, but more common is to just use
.B lmp
without a suffix. In this manpage we will use
without a suffix. In this man page we will use
.B lmp
to represent any of those names.
@ -94,7 +94,7 @@ Enable or disable general KOKKOS support, as provided by the KOKKOS
package. Even if LAMMPS is built with this package, this switch must
be set to \fBon\fR to enable running with KOKKOS-enabled styles. More
details on this switch and its optional keyword value pairs are discussed
at: https://lammps.sandia.gov/doc/Run_options.html
at: https://docs.lammps.org/Run_options.html
.TP
\fB\-l <log file>\fR or \fB\-log <log file>\fR
Specify a log file for LAMMPS to write status information to.
@ -122,6 +122,38 @@ to perform client/server messaging with another application.
.B LAMMPS
can act as either a client or server (or both).
.TP
\fB\-mdi '<mdi_flags>'\fR
This flag is only recognized and used when
.B LAMMPS
has support for the MolSSI
Driver Interface (MDI) included as part of the MDI package. This flag is
specific to the MDI library and controls how
.B LAMMPS
interacts with MDI. There are usually multiple flags that have to follow it
and those have to be placed in quotation marks. For more information about
how to launch LAMMPS in MDI client/server mode please refer to the
MDI How-to at https://docs.lammps.org/Howto_mdi.html
.TP
\fB\-c\fR or \fB\-cite <style or filename>\fR
Select how and where to output a reminder about citing contributions
to the
.B LAMMPS
code that were used during the run. Available keywords
for styles are "both", "none", "screen", or "log". Any other keyword
will be considered a file name to write the detailed citation info to
instead of logfile or screen. Default is the "log" style where there
is a short summary in the screen output and detailed citations
in BibTeX format in the logfile. The option "both" selects the detailed
output for both, "none", the short output for both, and "screen" will
write the detailed info to the screen and the short version to the log
file. If a dedicated citation info file is requested, the screen and
log file output will be in the short format (same as with "none").
See https://docs.lammps.org/Intro_citing.html for more details on
how to correctly reference and cite
.B LAMMPS
.
.TP
\fB\-nc\fR or \fB\-nocite\fR
Disable writing the "log.cite" file which is normally written to
list references for specific cite-able features used during a
@ -135,7 +167,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.
@ -202,7 +234,7 @@ the standard output. If <file name> is "none", (most) screen
output will be suppressed. In multi-partition mode only
some high-level all-partition information is written to the
screen or "<file name>" file, the remainder is written in a
per-partition file "screen.N" or "<file name>.N"
per-partition file "screen.N" or "<file name>.N"
with "N" being the respective partition number, and unless
overridden by the \-pscreen flag (see above).
.TP
@ -218,8 +250,19 @@ and then "omp") and thus requires two arguments. Along with the
"-package" command-line switch, this is a convenient mechanism for
invoking styles from accelerator packages and setting their options
without having to edit an input script.
.TP
\fB\-sr\fR or \fB\-skiprun\fR
Insert the command "timer timeout 0 every 1" at the
beginning of an input file or after a "clear" command.
This has the effect that the entire
.B LAMMPS
input script is processed without executing actual
"run" or "minimize" or similar commands (their main loops are skipped).
This can be helpful and convenient to test input scripts of long running
calculations for correctness to avoid having them crash after a
long time due to a typo or syntax error in the middle or at the end.
See https://lammps.sandia.gov/doc/Run_options.html for additional
See https://docs.lammps.org/Run_options.html for additional
details and discussions on command-line options.
.SH LAMMPS BASICS
@ -254,7 +297,7 @@ the chapter on errors in the
manual gives some additional information about error messages, if possible.
.SH COPYRIGHT
© 2003--2020 Sandia Corporation
© 2003--2021 Sandia Corporation
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2 as

View File

@ -98,7 +98,7 @@ msi2lmp decane -c 0 -f oplsaa
.SH COPYRIGHT
© 2003--2019 Sandia Corporation
© 2003--2021 Sandia Corporation
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2 as

View File

@ -191,7 +191,7 @@ Bibliography
A.\ Calhoun, M. Pavese, G. Voth, Chem Phys Letters, 262, 415 (1996).
**(Campana)**
C.\ Campana and M. H. Muser, *Practical Green's function approach to the simulation of elastic semi-infinite solids*\ , `Phys. Rev. B [74], 075420 (2006) <https://doi.org/10.1103/PhysRevB.74.075420>`_
C.\ Campana and M. H. Muser, *Practical Green's function approach to the simulation of elastic semi-infinite solids*, `Phys. Rev. B [74], 075420 (2006) <https://doi.org/10.1103/PhysRevB.74.075420>`_
**(Cao1)**
J.\ Cao and B. Berne, J Chem Phys, 99, 2902 (1993).
@ -767,7 +767,7 @@ Bibliography
Morris, Fox, Zhu, J Comp Physics, 136, 214-226 (1997).
**(Moustafa)**
Sabry G. Moustafa, Andrew J. Schultz, and David A. Kofke, *Very fast averaging of thermal properties of crystals by molecular simulation*\ , `Phys. Rev. E [92], 043303 (2015) <https://link.aps.org/doi/10.1103/PhysRevE.92.043303>`_
Sabry G. Moustafa, Andrew J. Schultz, and David A. Kofke, *Very fast averaging of thermal properties of crystals by molecular simulation*, `Phys. Rev. E [92], 043303 (2015) <https://link.aps.org/doi/10.1103/PhysRevE.92.043303>`_
**(Muller-Plathe1)**
Muller-Plathe, J Chem Phys, 106, 6082 (1997).
@ -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

@ -22,4 +22,5 @@ page.
Build_extras
Build_manual
Build_windows
Build_diskspace
Build_development

View File

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

View File

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

View File

@ -1,15 +1,15 @@
Development build options (CMake only)
======================================
Development build options
=========================
The CMake build procedure of LAMMPS offers a few extra options which are
The build procedures in LAMMPS offers a few extra options which are
useful during development, testing or debugging.
----------
.. _compilation:
Monitor compilation flags
-------------------------
Monitor compilation flags (CMake only)
--------------------------------------
Sometimes it is necessary to verify the complete sequence of compilation flags
generated by the CMake build. To enable a more verbose output during
@ -28,22 +28,46 @@ variable VERBOSE set to 1:
----------
.. _clang-tidy:
Enable static code analysis with clang-tidy (CMake only)
--------------------------------------------------------
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
-------------------------------------------------
Report missing and unneeded '#include' statements (CMake only)
--------------------------------------------------------------
The conventions for how and when to use and order include statements in
LAMMPS are `documented in a separate file <https://github.com/lammps/lammps/blob/master/doc/include-file-conventions.md>`_
(also included in the source code distribution). To assist with following
LAMMPS are documented in :doc:`Modify_style`. To assist with following
these conventions one can use the `Include What You Use tool <https://include-what-you-use.org/>`_.
This is still under development and for large and complex projects like LAMMPS
This tool is still under development and for large and complex projects like LAMMPS
there are some false positives, so suggested changes need to be verified manually.
It is recommended to use at least version 0.14, which has much fewer incorrect
reports than earlier versions.
It is recommended to use at least version 0.16, which has much fewer incorrect
reports than earlier versions. To install the IWYU toolkit, you need to have
the clang compiler **and** its development package installed. Download the IWYU
version that matches the version of the clang compiler, configure, build, and
install it.
The necessary steps to generate the report can be enabled via a
CMake variable:
The necessary steps to generate the report can be enabled via a CMake variable
during CMake configuration.
.. code-block:: bash
@ -64,8 +88,8 @@ on recording all commands required to do the compilation.
.. _sanitizer:
Address, Undefined Behavior, and Thread Sanitizer Support
---------------------------------------------------------
Address, Undefined Behavior, and Thread Sanitizer Support (CMake only)
----------------------------------------------------------------------
Compilers such as GCC and Clang support generating instrumented binaries
which use different sanitizer libraries to detect problems in the code
@ -94,8 +118,8 @@ compilation and linking stages. This is done through setting the
.. _testing:
Code Coverage and Unit Testing
------------------------------
Code Coverage and Unit Testing (CMake only)
-------------------------------------------
The LAMMPS code is subject to multiple levels of automated testing
during development: integration testing (i.e. whether the code compiles
@ -288,7 +312,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 +347,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
@ -442,17 +466,56 @@ Coding style utilities
To aid with enforcing some of the coding style conventions in LAMMPS
some additional build targets have been added. These require Python 3.5
or later and will only work on Unix-like operating and file systems.
or later and will only work properly on Unix-like operating and file systems.
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``.
These should help to replace all TAB characters with blanks and remove
any trailing whitespace. Also all LAMMPS homepage URL references can be
updated to the location change from Sandia to the lammps.org domain.
And the permission check can remove executable permissions from non-executable
files (like source code).
Clang-format support
--------------------
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 formatting style. The `clang-format` command bundled with Clang
version 8.0 or later is required. The configuration is in files called
``.clang-format`` in the respective folders. Since the modifications
from `clang-format` can be significant and - especially for "legacy
style code" - they are not always improving readability, a large number
of files currently have a ``// clang-format off`` at the top, which will
disable the processing. As of fall 2021 all files have been either
"protected" this way or are enabled for full or partial `clang-format`
processing. Over time, the "protected" files will be refactored and
updated so that `clang-format` may be applied to them as well.
It is recommended for all newly contributed files to use the clang-format
processing while writing the code or do the coding style processing
(including the scripts mentioned in the previous paragraph)
If `clang-format` is available, files can be updated individually with
commands like the following:
.. code-block:: bash
$ clang-format -i some_file.cpp
The following target are available for both, GNU make and CMake:
.. code-block:: bash
make format-src # apply clang-format to all files in src and the package folders
make format-tests # apply clang-format to all files in the unittest tree

View File

@ -0,0 +1,45 @@
Notes for saving disk space when building LAMMPS from source
------------------------------------------------------------
LAMMPS is a large software project with a large number of source files,
extensive documentation, and a large collection of example files.
When downloading LAMMPS by cloning the
`git repository from GitHub <https://github.com/lammps/lammps>`_ this
will by default also download the entire commit history since September 2006.
Compiling LAMMPS will add the storage requirements of the compiled object
files and libraries to the tally.
In a user account on an HPC cluster with filesystem quotas or in other
environments with restricted disk space capacity it may be needed to
reduce the storage requirements. Here are some suggestions:
- Create a so-called shallow repository by cloning only the last commit
instead of the full project history by using ``git clone git@github.com:lammps/lammps --depth=1 --branch=master``.
This reduces the downloaded size to about half. With ``--depth=1`` it is not possible to check out different
versions/branches of LAMMPS, using ``--depth=1000`` will make multiple recent versions available at little
extra storage needs (the entire git history had nearly 30,000 commits in fall 2021).
- Download a tar archive from either the `download section on the LAMMPS homepage <https://www.lammps.org/download.html>`_
or from the `LAMMPS releases page on GitHub <https://github.com/lammps/lammps/releases>`_ these will not
contain the git history at all.
- Build LAMMPS without the debug flag (remove ``-g`` from the machine makefile or use ``-DCMAKE_BUILD_TYPE=Release``)
or use the ``strip`` command on the LAMMPS executable when no more debugging would be needed. The strip command
may also be applied to the LAMMPS shared library. The static library may be deleted entirely.
- Delete compiled object files and libraries after copying the LAMMPS executable to a permanent location.
When using the traditional build process, one may use ``make clean-<machine>`` or ``make clean-all``
to delete object files in the src folder. For CMake based builds, one may use ``make clean`` or just
delete the entire build folder.
- The folders containing the documentation tree (doc), the examples (examples) are not needed to build and
run LAMMPS and can be safely deleted. Some files in the potentials folder are large and may be deleted,
if not needed. The largest of those files (occupying about 120 MBytes combined) will only be downloaded on
demand, when the corresponding package is installed.
- When using the CMake build procedure, the compilation can be done on a (local) scratch storage that will not
count toward the quota. A local scratch file system may offer the additional benefit of speeding up creating
object files and linking with libraries compared to a networked file system. Also with CMake (and unlike with
the traditional make) it is possible to compile LAMMPS executables with different settings and packages included
from the same source tree since all the configuration information is stored in the build folder. So it is
not necessary to have multiple copies of LAMMPS.

View File

@ -31,34 +31,37 @@ This is the list of packages that may require additional steps.
.. 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:`MDI <mdi>`
* :ref:`MESONT <mesont>`
* :ref:`MESSAGE <message>`
* :ref:`MLIAP <mliap>`
* :ref:`ML-HDNNP <ml-hdnnp>`
* :ref:`ML-IAP <mliap>`
* :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:`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:`VTK <vtk>`
----------
@ -71,7 +74,8 @@ To build with this package you must have the `zlib compression library
<https://zlib.net>`_ available on your system to build dump styles with
a '/gz' suffix. There are also styles using the
`Zstandard <https://facebook.github.io/zstd/>`_ library which have a
'/zstd' suffix.
'/zstd' suffix. The zstd library version must be at least 1.4. Older
versions use an incompatible API and thus LAMMPS will fail to compile.
.. tabs::
@ -454,6 +458,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
@ -466,6 +473,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)
@ -538,6 +548,9 @@ 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
@ -546,12 +559,12 @@ They must be specified in uppercase.
- AMD GPU MI50/MI60 GFX906
* - VEGA908
- GPU
- AMD GPU GFX908
- AMD GPU MI100 GFX908
* - INTEL_GEN
- GPU
- Intel GPUs Gen9+
This list was last updated for version 3.3 of the Kokkos library.
This list was last updated for version 3.4.1 of the Kokkos library.
.. tabs::
@ -610,7 +623,7 @@ This list was last updated for version 3.3 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:
@ -799,16 +812,17 @@ be installed on your system.
.. _mliap:
MLIAP package
ML-IAP package
---------------------------
Building the MLIAP package requires including the :ref:`SNAP <PKG-SNAP>`
package. There will be an error message if this requirement is not satisfied.
Using the *mliappy* model also requires enabling Python support, which
in turn requires the :ref:`PYTHON <PKG-PYTHON>`
package **and** requires you have the `cython <https://cython.org>`_ software
installed and with it a working ``cythonize`` command. This feature requires
compiling LAMMPS with Python version 3.6 or later.
Building the ML-IAP package requires including the :ref:`ML-SNAP
<PKG-ML-SNAP>` package. There will be an error message if this requirement
is not satisfied. Using the *mliappy* model also requires enabling
Python support, which in turn requires to include the :ref:`PYTHON
<PKG-PYTHON>` package **and** requires to have the `cython
<https://cython.org>`_ software installed and with it a working
``cythonize`` command. This feature requires compiling LAMMPS with
Python version 3.6 or later.
.. tabs::
@ -822,9 +836,9 @@ compiling LAMMPS with Python version 3.6 or later.
suitable Python version and the ``cythonize`` command and choose
the default accordingly. During the build procedure the provided
.pyx file(s) will be automatically translated to C++ code and compiled.
Please do **not** run ``cythonize`` manually in the ``src/MLIAP`` folder,
Please do **not** run ``cythonize`` manually in the ``src/ML-IAP`` folder,
as that can lead to compilation errors if Python support is not enabled.
If you did by accident, please remove the generated .cpp and .h files.
If you did it by accident, please remove the generated .cpp and .h files.
.. tab:: Traditional make
@ -833,15 +847,16 @@ compiling LAMMPS with Python version 3.6 or later.
the ``cythonize`` command in case the corresponding .pyx file(s) were
modified. You may need to modify ``lib/python/Makefile.lammps``
if the LAMMPS build fails.
To manually enforce building MLIAP with Python support enabled,
you can add
``-DMLIAP_PYTHON`` to the ``LMP_INC`` variable in your machine makefile.
You may have to manually run the ``cythonize`` command on .pyx file(s)
in the ``src`` folder, if this is not automatically done during
installing the MLIAP package. Please do **not** run ``cythonize``
in the ``src/MLIAP`` folder, as that can lead to compilation errors
if Python support is not enabled.
If you did by accident, please remove the generated .cpp and .h files.
To enable building the ML-IAP package with Python support enabled,
you need to add ``-DMLIAP_PYTHON`` to the ``LMP_INC`` variable in
your machine makefile. You may have to manually run the
``cythonize`` command on .pyx file(s) in the ``src`` folder, if
this is not automatically done during installing the ML-IAP
package. Please do **not** run ``cythonize`` in the ``src/ML-IAP``
folder, as that can lead to compilation errors if Python support
is not enabled. If you did this by accident, please remove the
generated .cpp and .h files.
----------
@ -1042,12 +1057,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
@ -1063,38 +1078,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
@ -1137,16 +1152,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
@ -1188,9 +1203,9 @@ USER-AWPMD package
----------
.. _user-colvars:
.. _colvars:
USER-COLVARS package
COLVARS package
---------------------------------------
This package includes the `Colvars library
@ -1204,7 +1219,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
@ -1247,9 +1262,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
@ -1257,7 +1312,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.
@ -1293,7 +1348,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
@ -1326,7 +1381,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
@ -1351,12 +1406,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
@ -1371,15 +1426,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
@ -1390,7 +1445,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
@ -1422,24 +1477,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::
@ -1456,7 +1565,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:
@ -1492,9 +1601,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
@ -1507,7 +1645,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
@ -1534,9 +1672,9 @@ they will be downloaded the first time this package is installed.
----------
.. _user-molfile:
.. _molfile:
USER-MOLFILE package
MOLFILE package
---------------------------------------
.. tabs::
@ -1546,9 +1684,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
@ -1572,9 +1710,9 @@ USER-MOLFILE package
----------
.. _user-netcdf:
.. _netcdf:
USER-NETCDF package
NETCDF package
-------------------------------------
To build with this package you must have the NetCDF library installed
@ -1584,7 +1722,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
@ -1603,9 +1741,9 @@ on your system.
----------
.. _user-omp:
.. _openmp:
USER-OMP package
OPENMP package
-------------------------------
.. tabs::
@ -1613,13 +1751,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.
@ -1636,12 +1774,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
@ -1664,11 +1802,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
@ -1711,16 +1849,16 @@ 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
library. It can be obtained from GitHub. For support of GAP
potentials, additional files with specific licensing conditions need
to be downloaded and configured. See step 1 and step 1.1 in the
``lib/quip/README`` file for details on how to do this.
to be downloaded and configured. The automatic download will from
within CMake will download the non-commercial use version.
.. tabs::
@ -1728,11 +1866,14 @@ to be downloaded and configured. See step 1 and step 1.1 in the
.. code-block:: bash
-D DOWNLOAD_QUIP=value # download OpenKIM API v2 for build, value = no (default) or yes
-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
work. Set the ``QUIP_LIBRARY`` variable if CMake cannot find the QUIP library.
CMake will try to download and build the QUIP library from GitHub, if it is not
found on the local machine. This requires to have git installed. It will use the same compilers
and flags as used for compiling LAMMPS. Currently this is only supported for the GNU and the
Intel compilers. Set the ``QUIP_LIBRARY`` variable if you want to use a previously compiled
and installed QUIP library and CMake cannot find it.
.. tab:: Traditional make
@ -1746,9 +1887,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
@ -1793,9 +1934,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.
@ -1837,9 +1978,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
@ -1849,7 +1990,7 @@ your system.
.. tab:: CMake build
No additional settings are needed besides ``-D PKG_USER-VTK=yes``.
No additional settings are needed besides ``-D PKG_VTK=yes``.
This should auto-detect the VTK library if it is installed on your
system at standard locations. Several advanced VTK options exist

View File

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

View File

@ -22,35 +22,23 @@ files. Here is a list with descriptions:
.gitignore # list of files and folders to be ignored by git
doxygen-warn.log # logfile with warnings from running doxygen
github-development-workflow.md # notes on the LAMMPS development workflow
include-file-conventions.md # notes on LAMMPS' include file conventions
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
--------------------
@ -86,8 +74,8 @@ folder. The following ``make`` commands are available:
.. code-block:: bash
make html # generate HTML in html dir using Sphinx
make pdf # generate PDF as Manual.pdf using Sphinx and pdflatex
make fetch # fetch HTML pages and PDF files from LAMMPS web site
make pdf # generate PDF as Manual.pdf using Sphinx and PDFLaTeX
make fetch # fetch HTML pages and PDF files from LAMMPS website
# and unpack into the html_www folder and Manual_www.pdf
make epub # generate LAMMPS.epub in ePUB format using Sphinx
make mobi # generate LAMMPS.mobi in MOBI format using ebook-convert
@ -215,9 +203,9 @@ be multiple tests run automatically:
.. parsed-literal::
Found 33 standard and 41 user packages
Standard package NEWPACKAGE missing in Packages_standard.rst
Standard package NEWPACKAGE missing in Packages_details.rst
Found 88 packages
Package NEWPACKAGE missing in Packages_list.rst
Package NEWPACKAGE missing in Packages_details.rst
- A test that only standard, printable ASCII text characters are used.
This runs the command ``env LC_ALL=C grep -n '[^ -~]' src/*.rst`` and
@ -257,4 +245,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,7 +167,7 @@ one of them as a starting point and customize it to your needs.
.. code-block:: bash
cmake -C ../cmake/presets/minimal.cmake [OPTIONS] ../cmake # enable just a few core packages
cmake -C ../cmake/presets/basic.cmake [OPTIONS] ../cmake # enable just a few core packages
cmake -C ../cmake/presets/most.cmake [OPTIONS] ../cmake # enable most packages
cmake -C ../cmake/presets/download.cmake [OPTIONS] ../cmake # enable packages which download sources or potential files
cmake -C ../cmake/presets/nolib.cmake [OPTIONS] ../cmake # disable packages that do require extra libraries or tools
@ -208,10 +222,10 @@ These commands install/un-install sets of packages:
make yes-all # install all packages
make no-all # uninstall all packages
make yes-standard or make yes-std # install standard packages
make no-standard or make no-std # uninstall standard packages
make yes-user # install user packages
make no-user # uninstall user packages
make yes-basic # install a few commonly used packages'
make no-basic # remove a few commonly used packages'
make yes-most # install most packages w/o libs'
make no-most # remove most packages w/o libs'
make yes-lib # install packages that require extra libraries
make no-lib # uninstall packages that require extra libraries
make yes-ext # install packages that require external libraries
@ -225,15 +239,14 @@ package`` will list all the these commands.
Installing or un-installing a package for the make based build process
works by simply copying files back and forth between the main source
directory src and the sub-directories with the package name (e.g.
src/KSPACE, src/USER-ATC), so that the files are included or excluded
src/KSPACE, src/ATC), so that the files are included or excluded
when LAMMPS is built. Only source files in the src folder will be
compiled.
The following make commands help manage files that exist in both the
src directory and in package sub-directories. You do not normally
need to use these commands unless you are editing LAMMPS files or are
:doc:`installing a patch <Install_patch>` downloaded from the LAMMPS web
site.
updating LAMMPS via git.
Type ``make package-status`` or ``make ps`` to show which packages are
currently installed. For those that are installed, it will list any
@ -245,10 +258,10 @@ currently installed, without listing the status of packages that are
not installed.
Type ``make package-update`` or ``make pu`` to overwrite src files with
files from the package sub-directories if the package is installed.
It should be used after a :doc:`patch has been applied <Install_patch>`,
since patches only update the files in the package sub-directory, but
not the src files.
files from the package sub-directories if the package is installed. It
should be used after the checkout has been :doc:`updated or changed
withy git <Install_git>`, this will only update the files in the package
sub-directories, but not the copies in the src folder.
Type ``make package-overwrite`` to overwrite files in the package
sub-directories with src files.

View File

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

View File

@ -67,6 +67,7 @@ An alphabetic list of all general LAMMPS commands.
* :doc:`lattice <lattice>`
* :doc:`log <log>`
* :doc:`mass <mass>`
* :doc:`mdi/engine <mdi_engine>`
* :doc:`message <message>`
* :doc:`minimize <minimize>`
* :doc:`min_modify <min_modify>`

View File

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

View File

@ -2,7 +2,7 @@ Commands by category
====================
This page lists most of the LAMMPS commands, grouped by category. The
:doc:`General commands <Commands_all>` doc page lists all general commands
:doc:`General commands <Commands_all>` page lists all general commands
alphabetically. Style options for entries like fix, compute, pair etc.
have their own pages where they are listed alphabetically.

View File

@ -16,8 +16,8 @@ Compute commands
An alphabetic list of all LAMMPS :doc:`compute <compute>` commands.
Some styles have accelerated versions. This is indicated by
additional letters in parenthesis: g = GPU, i = USER-INTEL, k =
KOKKOS, o = USER-OMP, t = OPT.
additional letters in parenthesis: g = GPU, i = INTEL, k =
KOKKOS, o = OPENMP, t = OPT.
.. table_from_list::
:columns: 5
@ -47,17 +47,20 @@ KOKKOS, o = USER-OMP, t = OPT.
* :doc:`dihedral <compute_dihedral>`
* :doc:`dihedral/local <compute_dihedral_local>`
* :doc:`dilatation/atom <compute_dilatation_atom>`
* :doc:`dipole <compute_dipole>`
* :doc:`dipole/chunk <compute_dipole_chunk>`
* :doc:`displace/atom <compute_displace_atom>`
* :doc:`dpd <compute_dpd>`
* :doc:`dpd/atom <compute_dpd_atom>`
* :doc:`edpd/temp/atom <compute_edpd_temp_atom>`
* :doc:`efield/atom <compute_efield_atom>`
* :doc:`entropy/atom <compute_entropy_atom>`
* :doc:`erotate/asphere <compute_erotate_asphere>`
* :doc:`erotate/rigid <compute_erotate_rigid>`
* :doc:`erotate/sphere <compute_erotate_sphere>`
* :doc:`erotate/sphere/atom <compute_erotate_sphere_atom>`
* :doc:`event/displace <compute_event_displace>`
* :doc:`fabric <compute_fabric>`
* :doc:`fep <compute_fep>`
* :doc:`force/tally <compute_tally>`
* :doc:`fragment/atom <compute_cluster_atom>`
@ -69,6 +72,7 @@ KOKKOS, o = USER-OMP, t = OPT.
* :doc:`gyration/shape/chunk <compute_gyration_shape_chunk>`
* :doc:`heat/flux <compute_heat_flux>`
* :doc:`heat/flux/tally <compute_tally>`
* :doc:`heat/flux/virial/tally <compute_tally>`
* :doc:`hexorder/atom <compute_hexorder_atom>`
* :doc:`hma <compute_hma>`
* :doc:`improper <compute_improper>`
@ -148,7 +152,7 @@ KOKKOS, o = USER-OMP, t = OPT.
* :doc:`temp/chunk <compute_temp_chunk>`
* :doc:`temp/com <compute_temp_com>`
* :doc:`temp/cs <compute_temp_cs>`
* :doc:`temp/deform <compute_temp_deform>`
* :doc:`temp/deform (k) <compute_temp_deform>`
* :doc:`temp/deform/eff <compute_temp_deform_eff>`
* :doc:`temp/drude <compute_temp_drude>`
* :doc:`temp/eff <compute_temp_eff>`

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