Compare commits

...

2464 Commits

Author SHA1 Message Date
bd4bbbddbe Merge pull request #3245 from akohlmey/next_patch_release
Step version strings for the next patch release
2022-05-04 19:57:23 -04:00
2aa1c6975f fix typo 2022-05-04 19:09:19 -04:00
e285ba43eb Merge branch 'develop' into next_patch_release 2022-05-04 19:08:10 -04:00
582de4f951 Merge pull request #3248 from akohlmey/add_set_time
Add time option to the "reset_timestep" command and make the "time" property restartable
2022-05-04 18:43:07 -04:00
dcd6c18e45 update indent 2022-05-04 17:50:34 -04:00
4c6cb8648b replace image with embedded latex text 2022-05-04 17:50:25 -04:00
edda6b6f70 Merge remote-tracking branch 'github/develop' into add_set_time 2022-05-04 16:29:54 -04:00
803376b1b4 Merge pull request #3241 from akohlmey/collected-small-changes
Collected small changes and fixes for the next patch release
2022-05-04 16:26:02 -04:00
e897ab7611 improve error messages 2022-05-04 16:25:12 -04:00
ba3aa8fab5 remove NULL option for reset_timestep 2022-05-04 16:21:06 -04:00
81bb4bfc23 Merge branch 'collected-small-changes' into add_set_time 2022-05-04 15:49:14 -04:00
059c84bf41 Merge branch 'develop' into add_set_time 2022-05-04 15:47:28 -04:00
eec86c8038 Merge branch 'develop' into collected-small-changes 2022-05-04 15:45:38 -04:00
ad6cebb049 Merge pull request #3246 from GenieTim/compute-abs-sum
Implement a aveabs and sumabs reduce command
2022-05-04 14:46:54 -04:00
61214b9a52 Merge pull request #3243 from akohlmey/delete-by-variable
Implement variable option for delete_atoms
2022-05-04 13:50:00 -04:00
f8742d599b merge set_time command into reset_timestep 2022-05-04 13:24:52 -04:00
d4a93ff9c7 Merge pull request #3247 from vladgl/adp-kk
Kokkos accelerated variant for adp pair style
2022-05-04 13:05:29 -04:00
87b99306ba make force_clear() a public pure function in min.h and integrate.h
these are required changes for adding NWChem couping support as a fix
2022-05-04 12:30:17 -04:00
af32267db3 Merge branch 'develop' into compute-abs-sum 2022-05-04 12:23:50 -04:00
7fa2fe134c Fix typo 2022-05-04 10:18:11 -06:00
515e2928a9 Sync with pair eam 2022-05-04 10:15:36 -06:00
8a5e7fa609 update docs 2022-05-04 12:07:59 -04:00
ed0ee913e1 Small tweaks 2022-05-04 11:18:10 -04:00
a26fa50736 Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes 2022-05-04 05:47:34 -04:00
5d510ac7b3 Merge remote-tracking branch 'akohlmey/region-tests' into collected-small-changes 2022-05-04 05:46:34 -04:00
c37d5be524 Merge branch 'develop' into collected-small-changes 2022-05-04 05:45:33 -04:00
0bedff1ce0 implement set_time command 2022-05-03 13:15:52 -04:00
e7153d30c8 re-enable dynamic group support for tally computes 2022-05-03 11:22:38 -04:00
257a070666 add test for ellipsoid, check for special case of ellipsoid/prism 2022-05-03 11:02:01 -04:00
bd5858019e add minimal unit test for Region class 2022-05-02 17:06:28 -04:00
4ef8ca091d Fix virial computation in adp/kk 2022-05-02 22:16:28 +03:00
8473bc19f5 Merge branch 'develop' into adp-kk 2022-05-02 13:41:03 -04:00
df77641071 fix permissions and whitespace 2022-05-02 13:40:39 -04:00
cb345870a9 Add adp/kk to install script (fix commit #d3843db) 2022-05-02 19:24:01 +03:00
d3843dbf09 Add adp/kk to install script 2022-05-02 19:16:59 +03:00
fef6c37ea7 Merge pull request #3240 from akohlmey/ave-yaml-file-colname
Add support for custom column names and YAML format output to fix ave/time
2022-05-02 11:45:50 -04:00
0e5a66b1cd Implement a aveabs and sumabs reduce command 2022-05-02 17:34:08 +02:00
e51c51e7f9 Kokkos accelerator variant for adp pair style 2022-05-02 18:17:49 +03:00
39ee6b6a7f step version strings for the next patch release 2022-05-02 10:34:43 -04:00
89deab6a3e silence compiler warnings 2022-04-30 19:51:04 -04:00
1191d08b47 Merge branch 'develop' into collected-small-changes 2022-04-30 19:39:16 -04:00
deef9fae23 fix bug with wrong mapping of pair style classes 2022-04-30 19:15:00 -04:00
1b8641685a Merge pull request #3242 from dxhisboy/develop
Adding saip/metal/opt and ilp/tmd/opt
2022-04-30 12:59:41 -04:00
672c063fd8 add unit test for delete_atoms 2022-04-29 22:33:15 -04:00
2f599bace1 enable and apply clang-format 2022-04-29 22:01:34 -04:00
f5113aa84a better error messages 2022-04-29 21:59:37 -04:00
31d6af6114 add delete_atoms "variable" option 2022-04-29 21:59:22 -04:00
9c45af7730 avoid potential 32-bit integer overflow 2022-04-29 20:53:57 -04:00
cac9fcaf86 cannot build ELECTRODE package by default on native windows because it requires BLAS 2022-04-29 20:18:50 -04:00
4a3bcd9230 Merge branch 'develop' into collected-small-changes 2022-04-29 20:15:36 -04:00
87b0939fe7 Merge pull request #2871 from evoyiatzis/master
implementation of an "ellipsoidal" region option
2022-04-29 19:46:15 -04:00
44c4d0a4d6 Merge pull request #3194 from robeme/electrode
ELECTRODE package for constant potential method
2022-04-29 18:30:29 -04:00
ee8d8042e6 add example for YAML processing with Perl 2022-04-29 17:42:23 -04:00
514bfe77df apply changes suggested by @sjplimp 2022-04-29 17:33:37 -04:00
5e18f15435 remove unused variables 2022-04-29 15:29:04 -04:00
d0938ce398 apply clang-format 2022-04-29 15:13:47 -04:00
80c716b81f update false positives 2022-04-29 15:11:11 -04:00
f09e886fd2 remove unused function 2022-04-29 15:10:57 -04:00
47f62838db Merge branch 'develop' into electrode 2022-04-29 14:37:48 -04:00
3c71c07048 Merge pull request #3230 from athomps/snap-inner-mod
Snap inner cutoff improvements and porting to KOKKOS
2022-04-29 14:36:48 -04:00
37d2d9e013 Remove trailing spaces 2022-04-29 10:56:34 -06:00
3f44f8f50d Merge pull request #3236 from lammps/fix-adapt-angle2
bug fix for new fix adapt angle support
2022-04-29 12:50:10 -04:00
df76673bee bdim --> adim in fix adapt 2022-04-29 10:10:36 -06:00
2f8e708184 more whitespace 2022-04-29 09:37:27 -06:00
894b7810b2 whitespace 2022-04-29 09:32:24 -06:00
57098f3df7 Remove extra files 2022-04-29 09:22:14 -06:00
69a79ba082 whitespace 2022-04-29 09:17:24 -06:00
641e769bde Revert a3c6baad4c 2022-04-29 09:03:44 -06:00
435f652263 removed trailing whitespace in pair_ilp_tmd_opt and pair_saip_metal_opt 2022-04-29 22:54:41 +08:00
6ced400207 change saip and tmd to virtual public inherit, so that corresponding opt package can compile 2022-04-29 22:28:48 +08:00
f93ac86c53 updated Install.sh for OPT package to adopt new interlayer potential optimizations 2022-04-29 22:05:52 +08:00
943cb531bf Modified chunk code of pair_ilp_graphene_hbn_opt for adopting pair_saip_metal_opt and pair_ilp_tmd_opt 2022-04-29 21:56:52 +08:00
c34efcc718 fixed multielement assignment error
tested in CPU and GPU mode, gets same output for eneriges and forces as build without KOKKOS for various settings of sinner, dinner
2022-04-29 07:53:39 -06:00
2292caef38 updated sinner/dinner log output
now logmsg displays all element params for sinner, dinner on same line (replaces only first param + ...)
2022-04-29 07:48:02 -06:00
9c48a75c8e fix issues reported by coverity scan 2022-04-29 06:49:47 -04:00
b2300ba9cb Merge branch 'develop' into collected-small-changes 2022-04-29 05:51:05 -04:00
6fb3cef39f Merge pull request #3031 from Iximiel/develop
Second Moment Aproximation to the Tight Binding addes as pair style
2022-04-28 22:32:38 -04:00
cb41e354b8 Merge pull request #3238 from akohlmey/doc-math-funcs
Document special math functions
2022-04-28 22:11:09 -04:00
7d9cdc7ec4 update documentation. more examples. document fix_modify options 2022-04-28 18:34:49 -04:00
bf8f5e2f87 more compact output 2022-04-28 18:08:59 -04:00
a3e0e1a6eb fixed multielement assignment error 2022-04-28 15:57:53 -06:00
2ae9ca5073 swap rows and columns back for easier import into pandas 2022-04-28 16:03:04 -04:00
f25b60fded simplify pandas processing. add missing image with plot 2022-04-28 16:02:45 -04:00
f09556018b fix bugs reported by @jibril-b-coulibaly 2022-04-28 14:47:53 -04:00
04b46a9ce8 implement yaml output for mode vector 2022-04-28 14:33:15 -04:00
eb5d867adf Improve erfc 2022-04-28 13:45:57 +00:00
2f71c96bde add yaml format output for mode scalar 2022-04-28 07:46:47 -04:00
09ed718c14 add example to plot thermo data with pandas+matplotlib 2022-04-28 07:45:51 -04:00
cfc4dcea3d must quote keyword data to avoid issues parsing the YAML data 2022-04-28 07:34:23 -04:00
33a63e5cd3 remove dead code to silence compiler warnings 2022-04-28 03:03:29 -04:00
a05bdfa76c add override to polymorph functions 2022-04-27 18:36:00 -04:00
cd3ce8459b enable and apply clang-format 2022-04-27 18:35:44 -04:00
74afc04580 remove error comments from header 2022-04-27 18:29:41 -04:00
233d4ad349 whitespace fixes 2022-04-27 18:29:27 -04:00
8481abda05 Merge branch 'develop' into ellipsoid-region 2022-04-27 18:28:38 -04:00
55fddf3aac update (tentative) release date 2022-04-27 18:26:07 -04:00
b76594e551 enforce only newton pair on with smatb pair styles. add unit tests 2022-04-27 18:08:05 -04:00
2d45e3340f move sources and examples for smatb styles to SMTBQ package folders 2022-04-27 15:14:02 -04:00
585b14f08f fix memory leak 2022-04-27 15:10:55 -04:00
3cfae26b84 update docs and make part of SMTBQ package 2022-04-27 15:10:46 -04:00
3b1165ccdc update files to be more compatible with LAMMPS' conventions and for code changes 2022-04-27 15:02:32 -04:00
75d42a87e5 Merge branch 'develop' into Iximiel/develop 2022-04-27 14:15:10 -04:00
cdba0da780 Merge branch 'snap-inner-mod' of github.com:athomps/lammps into snap-inner-mod 2022-04-27 10:58:43 -06:00
a3c6baad4c Removed CPU specific options 2022-04-27 10:58:22 -06:00
0e1f9968c1 Merge branch 'develop' of github.com:lammps/lammps into snap-inner-mod 2022-04-27 10:48:24 -06:00
6439777406 complete documentation of the MathSpecial namespace 2022-04-27 11:59:25 -04:00
d857600d9c start documenting functions in the MathSpecial namespace 2022-04-27 04:46:18 -04:00
691ba89b6f Merge pull request #3234 from lammps/variable-vector-wildcard
add support for wildcards in variable vectors
2022-04-26 18:21:46 -04:00
1fcf82aeef Merge remote-tracking branch 'github/develop' into variable-vector-wildcard 2022-04-26 17:54:32 -04:00
56b4671cd8 Merge pull request #3233 from akohlmey/collected-small-changes
Collected small changes for the next patch release
2022-04-26 17:54:11 -04:00
d8e98cb99d make tests more complex and add vector variable expansion 2022-04-26 17:53:47 -04:00
831caaa150 Merge branch 'collected-small-changes' into variable-vector-wildcard 2022-04-26 17:26:17 -04:00
64fff417c3 test more bound variants 2022-04-26 17:25:27 -04:00
7eb6c2652f update advanced utils tests. include test for expand args 2022-04-26 16:16:44 -04:00
800e0a7357 bug fix for new fix adapt angle support 2022-04-26 09:34:27 -06:00
7663fc6256 correctly use "type" to detect executables/scripts 2022-04-26 11:08:31 -04:00
26278643d4 Port changes to Kokkos 2022-04-26 08:22:00 -06:00
407f6af1ed Merge branch 'develop' of github.com:lammps/lammps into snap-inner-mod 2022-04-26 08:13:30 -06:00
192b22a6ce Set rng init for electrode/thermo 2022-04-26 16:03:45 +02:00
837f9040d8 add tests for advanced utility functions that require a LAMMPS instance 2022-04-26 09:30:34 -04:00
4691ff06b5 format 2022-04-26 09:30:10 -04:00
ba02d90bf1 add test for new errorurl() utility function 2022-04-26 09:29:57 -04:00
a649fa3a79 detect yaml file output by file name 2022-04-26 06:20:00 -04:00
7aaa71d22e Merge remote-tracking branch 'lammps/develop' into electrode 2022-04-26 10:29:39 +02:00
66b8ab9c6e Revamped examples 2022-04-26 09:42:45 +02:00
fdb7dfdea7 also remove mode from fix ave/correlate 2022-04-25 17:04:04 -06:00
e7a9073ccd remove discussion of mode 2022-04-25 17:01:15 -06:00
65978c33b6 2 more doc pages 2022-04-25 16:06:52 -06:00
bb8e953fb5 add support for wildcards in variable vectors 2022-04-25 15:43:08 -06:00
950b175fcd remove invalid [[noreturn]] attribute 2022-04-25 16:23:48 -04:00
dc605d35ee Updated ML-IAP package 2022-04-25 13:58:41 -06:00
8679266db8 add container definitions for Fedora 36 and Ubuntu 22.04LTS 2022-04-25 13:05:43 -04:00
960d3faa5e Merge branch 'master' of github.com:z-gong/lammps into collected-small-changes 2022-04-25 02:58:17 -04:00
a5cd95d6c6 Add comment for the units in compute/viscosity 2022-04-25 06:23:54 +02:00
28900925f4 Fix the unit for fix/accelerate/cos 2022-04-25 05:59:41 +02:00
9c46acfd62 fix parallel processing bug with shell mkdir command 2022-04-24 23:23:01 -04:00
45de998aa9 Merge pull request #3231 from akohlmey/remove-error-docs-in-header
Remove error docs from header files
2022-04-24 18:30:17 -04:00
6cfbd73bcd add documentation for new error and warning policy 2022-04-23 16:40:28 -04:00
f7e7abc908 fix uninitialized pointer bug 2022-04-23 15:17:26 -04:00
b4c3c479b7 remove error docs from one more file 2022-04-23 13:52:29 -04:00
4d1bdb4741 add python tool to detect and remove (if desired) error docs from headers
also document the tools in the manual.
2022-04-23 13:52:12 -04:00
78c10bac4a clang-format update 2022-04-23 13:08:11 -04:00
115962db88 Merge branch 'develop' into remove-error-docs-in-header 2022-04-23 12:46:54 -04:00
ce5d8a578e Merge pull request #3228 from run-towards-the-future/develop
A pull request for an optimized ILP(ilp/graphene/hbn) potential
2022-04-23 12:42:27 -04:00
f970a9de6a Merge pull request #3219 from akohlmey/region-lookup-refactor
Region lookup refactor
2022-04-23 11:33:01 -04:00
67bcfe3b62 remove unused code and variables, more programming style consistency 2022-04-23 09:26:35 -04:00
b55b9f5a6a removed request for ghost neighbor list 2022-04-23 20:35:48 +08:00
ef51fb7dea Fix bugs, Derives from PairILPGrapheneHBN instead of Pair
Improve the performance of pair style, ilp/graphene/hbn/opt
Updates to the OPT package
2022-04-23 19:45:50 +08:00
8fe0231b75 Fix bugs, Derives from PairILPGrapheneHBN instead of Pair
Add a new pair style, ilp/graphene/hbn/opt
Updates to the OPT package
2022-04-23 19:43:34 +08:00
e1856dc708 cosmetic 2022-04-23 07:42:31 -04:00
5da6fae9f6 silence compiler warnings 2022-04-23 07:35:18 -04:00
69249e84e1 adjust epsilon 2022-04-23 07:35:00 -04:00
8f019f4800 doc fixes: spelling and links 2022-04-23 07:34:44 -04:00
d55e7f9e51 Merge branch 'develop' into region-lookup-refactor 2022-04-23 07:14:28 -04:00
b1546a725c Merge pull request #3093 from Bibobu/Elastic_stress
Add compute born/matrix command to compute elastic stress
2022-04-23 07:07:29 -04:00
113fc0a77a Merge pull request #3227 from akohlmey/safer-data-file-parsing
Improve data file parsing and reported error messages
2022-04-23 06:41:17 -04:00
419b0f9494 add missing curly brace 2022-04-23 06:02:14 -04:00
31470819c0 Merge branch 'develop' into Elastic_stress 2022-04-23 04:36:45 -04:00
7bfa368d8d Merge pull request #2667 from ssande7/compute_temp_profile_dof
[BUGFIX] Collection of DoF-related fixes for compute temp/profile
2022-04-23 04:31:38 -04:00
c17845276a Derives from PairILPGrapheneHBN instead of Pair
Improve the performance of pair style, ilp/graphene/hbn/opt
Updates to the OPT packages
2022-04-23 14:29:03 +08:00
b631411985 Derives from PairILPGrapheneHBN instead of Pair
Add a new pair style, ilp/graphene/hbn/opt
Updates to the OPT package
2022-04-23 14:26:13 +08:00
26ca371d93 Merge branch 'develop' into region-lookup-refactor 2022-04-22 23:47:49 -04:00
79a7d2abf6 remove error docs from header files 2022-04-22 23:31:15 -04:00
e49930df21 Merge branch 'develop' into safer-data-file-parsing 2022-04-22 23:13:39 -04:00
471c728ac4 Merge pull request #3224 from lammps/dynamic-groups
change update of dynamic groups to post_force location in timestep
2022-04-22 23:11:17 -04:00
cbefeeb677 Merge pull request #3220 from athomps/specify-verlet
Explcitly state that fix nve uses velocity-Verlet integrator
2022-04-22 23:10:48 -04:00
8115e8a5a4 Merge pull request #3226 from lammps/error-url
Add utility to print url with link to error message in online manual
2022-04-22 23:10:21 -04:00
9f9a5ca76f Merge branch 'develop' into region-lookup-refactor 2022-04-22 22:53:02 -04:00
9be8ef09a2 Merge pull request #3229 from lammps/fix-adapt-angle
Fix adapt angle
2022-04-22 22:44:18 -04:00
97bfc0bb77 avoid (unlikely) overflow 2022-04-22 22:38:46 -04:00
cf647347c9 Merge branch 'develop' into safer-data-file-parsing
# Conflicts:
#	src/atom.cpp
2022-04-22 22:25:41 -04:00
8e9cc0eb51 Merge branch 'develop' into compute_temp_profile_dof 2022-04-22 22:16:42 -04:00
47564ab6bc Merge branch 'develop' into region-lookup-refactor 2022-04-22 22:11:41 -04:00
1319cb2cf5 fix typo 2022-04-22 22:08:13 -04:00
aed7bafac0 Merge pull request #3217 from akohlmey/atomvec-strings
Refactor Atom and AtomVec classes to use std::string and std::vector for setting up per-atom data
2022-04-22 22:03:26 -04:00
3a5ab301b2 propagate changes from previous commit to other packages that were missing them 2022-04-22 21:46:24 -04:00
5aebd151b6 Update compute_temp_profile.rst 2022-04-22 18:47:13 -06:00
16dd89c641 Added qualifier to assertions + note about inhomogeneous rigid systems 2022-04-23 10:30:44 +10:00
a90c632ae2 fix bug when no other post_force fixes are defined 2022-04-22 17:10:56 -06:00
48d8094d95 Merge branch 'develop' into snap-inner-mod 2022-04-22 16:54:21 -06:00
2c71d0eea2 Ported to KOKKOS, untested 2022-04-22 16:43:19 -06:00
01e7530902 shorten URL message text 2022-04-22 17:00:55 -04:00
907bcd16a8 Update compute_temp_profile.rst 2022-04-22 14:21:57 -06:00
b40e662b10 Merge pull request #3223 from akohlmey/less-fmtlib-warnings
Reduce excessive warnings from fmtlib and assorted small changes
2022-04-22 15:03:49 -04:00
fec5538d3c fix initialization bugs 2022-04-22 13:52:15 -04:00
1568974e8e whitespace 2022-04-22 13:39:05 -04:00
c054edda6b allow larger error margin for pressure computes 2022-04-22 13:22:01 -04:00
c0d0c84f7d update unit test files to implementation changes 2022-04-22 12:16:28 -04:00
da520bf8b7 integrate better into manual and traditional build system 2022-04-22 11:38:55 -04:00
68d1c856b3 fix typo 2022-04-22 11:27:08 -04:00
77b563a024 disable unknown pragma warnings for the summit machine when using CUDA 2022-04-22 11:23:54 -04:00
b4e2e2ec34 add support for angle cosine 2022-04-22 09:12:12 -06:00
a6f2f04664 Removed forgotten neighbor->ago condition in compute_born_matrix. Rewritten compute_pair loop so that newton condition does not affect results. 2022-04-22 16:59:52 +02:00
644b3f6933 clarify and remove redundant text 2022-04-22 09:32:10 -04:00
23186da560 Merge branch 'snap-inner-bug-printf' of github.com:megmcca/lammps into less-fmtlib-warnings 2022-04-22 09:26:29 -04:00
3b1021abd1 cosmetic changes. improve programming style conformance 2022-04-22 08:36:20 -04:00
55a7c341af improve data file section parsing
- avoid segfaults when dereferencing a null pointer on short files
- allow skipping over empty and comment-only lines.
2022-04-22 08:35:09 -04:00
6d56629660 improve error messages 2022-04-22 08:31:53 -04:00
dc4752ef63 add convenience function for printing a missing arguments error message 2022-04-22 08:28:14 -04:00
079d3ea067 remove extraneous printf line 2022-04-22 06:16:45 -06:00
3e9f207062 Improve the performance of pair style, ilp/graphene/hbn/opt
Updates to the OPT package
2022-04-22 20:00:28 +08:00
e0049a07f3 Add a new pair style, ilp/graphene/hbn/opt
Updates to the OPT package
2022-04-22 17:55:05 +08:00
13664a0185 add utility to print url with pointer to error message 2022-04-22 05:25:50 -04:00
4de9ab85ce Completed inner cutoff, KOKKOS still in progress 2022-04-21 17:30:12 -06:00
3f3c481554 add support to fix adapt for angle coeffs 2022-04-21 17:00:11 -06:00
0b6a689f3c Removed the domain->minimum_image() calls from dihedral_nharmonic and angle_cosine. 2022-04-22 00:37:49 +02:00
6b3c868c6e Removed commented previous nb list request. 2022-04-22 00:26:00 +02:00
5fd2311951 Pulled develop. Solved false_positives.txt bond.cpp and bond.h files conflict. 2022-04-22 00:24:50 +02:00
0b0947c167 Solved the dihedral index problem. It was actually the indices used. 2022-04-22 00:20:25 +02:00
ea66d4e73f mostly doc page edits 2022-04-21 16:00:53 -06:00
0ece11c491 add a code comment 2022-04-21 15:19:04 -06:00
8cb47c8504 change update of dynamic groups to post_force location in timestep 2022-04-21 15:02:47 -06:00
c6abc9e682 need wheel module for modern install procedure 2022-04-21 16:15:42 -04:00
09187801c1 suppress nvcc unknown pragma warnings 2022-04-21 15:01:46 -04:00
247c61c93f make portable to ubuntu 2022-04-21 13:01:13 -04:00
04afec7771 fix minor doc issues 2022-04-21 13:00:26 -04:00
05a845fafd compute_dihedral finally agrees with numdiff! 2022-04-21 18:37:26 +02:00
6dcafd693f Update fix_nve.rst 2022-04-21 10:13:05 -06:00
1df430aef4 align with doc folder makefile 2022-04-21 12:02:05 -04:00
b7a3af7bd1 update plumed version in containers and install python3-venv 2022-04-21 12:01:49 -04:00
556ad777d1 update code to use safe fread() and thus silence compiler warnings on ubuntu 2022-04-21 11:53:59 -04:00
b7d329f9b3 remove unused field in class 2022-04-21 07:58:54 -04:00
1a8ba25444 silence some excessive warning by the new Intel compilers 2022-04-21 07:58:43 -04:00
e9eb74e13a add missing override 2022-04-21 07:50:48 -04:00
c07551072d must check if externally set C++ standard is at least c++11 2022-04-21 07:50:30 -04:00
e8cacc4380 Updated example syntax 2022-04-20 18:17:23 -06:00
b4b6ba91e0 Slight adjustment to definition of Sinner and Dinner 2022-04-20 18:01:24 -06:00
9cac62401d only set the C++ standard value if it is not set externally 2022-04-20 19:32:42 -04:00
96e22b1104 disable CUDA support with Eigen3 2022-04-20 18:50:55 -04:00
5242b5557f Merge branch 'develop' into less-fmtlib-warnings 2022-04-20 18:24:06 -04:00
4544664edc comment out assertion causing many warnings 2022-04-20 18:14:10 -04:00
38093ffe47 KOKKOS doesn't require nvcc_wrapper anymore when compiling with CMake 2022-04-20 18:13:42 -04:00
c62e2ad4d1 disable warnings with PGI/NVHPC compilers and import CMAKE_TUNE_FLAGS 2022-04-20 17:39:33 -04:00
aebbd04297 Merge pull request #3222 from akohlmey/fasthtml
Add fasthtml target for faster testing of .rst to .html translation
2022-04-20 17:16:23 -04:00
da0e0359b6 Merge pull request #3221 from akohlmey/ttm_mod_fix
Fix file reader bug in fix ttm/mod
2022-04-20 16:55:10 -04:00
a8e5e0e515 use python -m venv instead of virtualenv 2022-04-20 15:49:22 -04:00
42d875a411 add fasthtml target for faster testing of .rst to html translation 2022-04-20 15:02:00 -04:00
bc0236d869 Bugfix tagint type for tags 2022-04-20 18:49:55 +02:00
a3a3354d1b fix file reader bug and add ttm/mod example 2022-04-20 11:52:36 -04:00
f6523851b5 Explcitly state that fix nve uses velocity-Verlet integrator 2022-04-20 08:58:53 -06:00
c086664c2a Per-atom vector usage 2022-04-20 16:23:44 +02:00
9d1d552fde bugfix init_list for etypes 2022-04-20 16:23:44 +02:00
df5b1a228d tweak epsilon for macos/arm64 2022-04-19 21:57:43 -04:00
71e96e8b7c Merge pull request #3212 from ndtrung81/dielectric-updates
Updates to the DIELECTRIC package
2022-04-18 09:33:28 -04:00
f40b8f5694 Merge branch 'develop' into dielectric-updates 2022-04-17 17:47:55 -04:00
9228855257 cosmetic 2022-04-17 17:47:38 -04:00
c820eeb118 re-apply clang-format 2022-04-17 17:47:31 -04:00
7c64ff6634 Improved the precision of the conversion factor epsilon0e2q, added more options for units, ensured that qqrd2e be included in efield in several pair styles, and updated the fix polarize doc page 2022-04-17 12:01:41 -05:00
44e4510251 replace vector for storing regions with unordered_set for simpler processing 2022-04-16 11:17:55 -04:00
aa4787f604 complete region handling refactor 2022-04-16 00:17:39 -04:00
cbb4abc55c improve formatting 2022-04-15 17:12:31 -04:00
69d9c5187e refactor group access, enable and apply clang-format 2022-04-15 15:29:43 -04:00
4b400fb4a6 overload count() function to pass in Region pointer directly 2022-04-14 22:00:50 -04:00
21f24ef572 Merge pull request #3218 from lammps/mdi-new-functions
MDI new functions
2022-04-14 20:48:51 -04:00
a0a82cad0b Merge pull request #3214 from stanmoore1/kk_tersoff_bugfix
Fix issues in Kokkos Tersoff and Stillinger-Weber pair styles
2022-04-14 17:28:59 -04:00
e66fb6a1c1 apply clang-format 2022-04-14 17:28:05 -04:00
64b1c45a49 update MDI library and checksum 2022-04-14 17:27:20 -04:00
56bfa90a69 adapt bpm/sphere atom style 2022-04-14 17:23:11 -04:00
20827b4105 sync with new version of MDI library 2022-04-14 15:00:09 -06:00
111111b38b Merge branch 'develop' into atomvec-strings 2022-04-14 16:52:04 -04:00
26f6976568 move errorfunction complement approximation factor into shared namespace 2022-04-14 16:47:38 -04:00
8b31edb102 programming style updates and clang-format applied 2022-04-14 16:47:10 -04:00
81e203b5fa only allow "lj" and "real" units for now 2022-04-14 16:43:59 -04:00
4380ed23d1 documentation and LAMMPS homepage URL updates 2022-04-14 15:55:22 -04:00
0cfb26799c Fix copy/paste error 2022-04-14 13:47:57 -06:00
5bd86a05b2 Merge pull request #2906 from jtclemm/BPM
Adding package for bonded particle models
2022-04-14 15:43:14 -04:00
c5565a4e02 Small tweaks 2022-04-14 13:16:44 -06:00
5c70f45feb updates to use new funcs from Python as well 2022-04-14 10:49:12 -06:00
29582f09a1 add missing update to property_atom function API 2022-04-14 12:34:58 -04:00
ac8d97d358 capture by reference 2022-04-14 12:27:45 -04:00
31178661c9 switch to C++11 compatible lambda function capture 2022-04-14 12:27:03 -04:00
095c610a3f no more need to explicitly initialize empty fields 2022-04-14 12:00:56 -04:00
b5eb5ac686 update docs for adding atom styles to refactored process 2022-04-14 11:48:18 -04:00
500a3426ed "stringify" and "vectorize" per-atom data handling in Atom class 2022-04-14 11:31:20 -04:00
198d07e905 print warning when fix property/atom is issues before reading a restart 2022-04-14 11:06:35 -04:00
b16d48aa41 "stringify" and "vectorize" processing of per-atom attributs in AtomVec classes 2022-04-14 11:06:10 -04:00
9424c2558e enable and apply clang-format. minor cosmetic changes 2022-04-13 21:05:19 -04:00
1755d06870 Merge pull request #3216 from lammps/update-citation
update a citation
2022-04-13 19:16:57 -04:00
bc2b600f09 changes to use new MDI library functions 2022-04-13 16:26:48 -06:00
0946d41c3f Merge pull request #3215 from megmcca/snap-inner-bug
fix crash with multielement inner cutoff
2022-04-13 16:17:10 -04:00
30914a73fb Update error messages 2022-04-13 14:10:52 -06:00
44f67330e2 Port changes to other flavors of Tersoff 2022-04-13 13:50:49 -06:00
21c61a5c77 Merge pull request #3213 from akohlmey/gpu-remove-legacy
Remove support for CUDA toolkits before version 8 and GPUs older than Kepler
2022-04-13 15:10:17 -04:00
bd6d7b9136 clarify CUDA versus OpenCL build and runtime restrictions 2022-04-13 14:24:43 -04:00
c9ab5ebbf5 cosmetic 2022-04-13 12:59:54 -04:00
2804de8c26 fix refactoring bug 2022-04-13 12:59:41 -04:00
fb37c86632 remove duplicate 2022-04-13 12:59:30 -04:00
0f1097d7e6 recover read_restart and read_data capability for fix property/atom 2022-04-13 12:41:40 -04:00
2d5fadd88f Switch to const ref to help compiler 2022-04-13 10:27:41 -06:00
230bed0bc4 fix crash with multielement inner cutoff 2022-04-13 09:49:13 -06:00
9e94722987 Remove full neigh option in Kokkos Tersoff and SW pair styles 2022-04-13 08:14:02 -06:00
ef4e41d2a2 programming style and format updates 2022-04-12 22:52:07 -04:00
467cae9436 permissions 2022-04-12 18:43:47 -04:00
09b08ecd85 whitespace 2022-04-12 18:36:51 -04:00
8c153adceb spelling 2022-04-12 18:36:16 -04:00
e89303c202 Fix compile error with Kokkos CUDA 2022-04-12 16:31:21 -06:00
622a4a6d51 Overallocate slightly to reduce memory reallocs 2022-04-12 16:20:21 -06:00
2998462743 Add const 2022-04-12 16:07:37 -06:00
f64d405ad8 Fixing remaining errors/warnings in doc build 2022-04-12 15:59:38 -06:00
90a6a3c125 Fix typo 2022-04-12 15:57:49 -06:00
2fa99703bf Fix issues in Kokkos Tersoff and SW pair styles 2022-04-12 15:49:28 -06:00
616349c27b Merge branch 'develop' into dielectric-updates 2022-04-12 16:33:02 -05:00
f3363070e7 remove support for CUDA toolkits before version 8 and GPUs older than Kepler 2022-04-12 15:48:16 -04:00
ca37c01476 Fixing broken links/references in documentation 2022-04-12 13:36:39 -06:00
e1a7ea38a9 update a citation 2022-04-12 12:59:25 -06:00
929e46b5c7 remove dead code 2022-04-12 11:06:28 -04:00
e1a2423f2e modernize, initialize pointers, apply clang-format 2022-04-12 11:06:18 -04:00
2ff8ac0cb2 Merge pull request #3210 from arghdos/fix_volatile
Add non-volatile version of join function to DomainKokkos
2022-04-11 19:48:43 -04:00
12d7ef541b Need both versions of join 2022-04-11 15:13:44 -06:00
804c43b33c Merge branch 'develop' of github.com:lammps/lammps into fix_volatile 2022-04-11 15:11:37 -06:00
ef53298f7c Added the omp version of pair lj/cut/coul/debye/dielectric 2022-04-11 15:45:12 -05:00
2a595713f3 Updated doc page of the set command for the local dielectric constant,
which could be used as a measure of polarizability in the future
2022-04-11 15:01:19 -05:00
b666f7324c Updated the example input script with the set command for per-atom dielectric constant 2022-04-11 14:44:02 -05:00
b05aadf877 Allowed to set the atom local dielectric values (epsilon) 2022-04-11 14:18:43 -05:00
49aebf64b9 include BPM package in multiple presets 2022-04-11 12:41:28 -04:00
9d907e31b3 recover compilation 2022-04-11 12:40:59 -04:00
36723853c9 Merge branch 'develop' into BPM 2022-04-11 12:18:34 -04:00
8161dff58a Added pair style lj/cut/coul/debye/dielectric, added conversion factor epsilon02eq for real units 2022-04-11 10:54:41 -05:00
ebc74d7428 Indice correction in EXTRA-COMPUTE/compute_born_matrix.cpp, some PBC check in EXTRA-MOLECULE/dihedral_nharmonic.cpp and MOLECULA/angle_cosine.cpp. Also added born_matrix to angle_cosine.cpp 2022-04-11 17:53:48 +02:00
236d275b2f Merge pull request #3211 from akohlmey/collected-small-changes
Collected clang-tidy updates
2022-04-11 11:07:00 -04:00
b36262cd11 cosmetic 2022-04-10 20:47:42 -04:00
d6f7570d57 avoid redundant use of boolean literals 2022-04-10 20:47:31 -04:00
74f2b67b1a no if statement required before delete[] 2022-04-10 19:55:24 -04:00
3eec2eec9a make buffer size a compile time constant and use strncpy() instead of strcpy() 2022-04-10 18:33:17 -04:00
200b4f13c7 use dynamic cast instead of c-style cast when casting from base type to derived class 2022-04-10 18:18:06 -04:00
39b316729b use auto type when assigning from cast or using new 2022-04-10 18:16:36 -04:00
6071376d42 derive ATC_Error exception class from std::exception 2022-04-10 15:25:37 -04:00
413a01ade5 apply clang-tidy updates 2022-04-10 12:07:54 -04:00
1a2d83ab01 HDF5 library may be parallel which is an error with serial LAMMPS 2022-04-10 12:07:54 -04:00
591498ab31 Updated and fixed typos in doc pages 2022-04-10 10:24:31 -05:00
a9f5a1af51 initialize class member pointers in initializer to null 2022-04-10 11:13:33 -04:00
c54fe7d97d small update 2022-04-10 08:00:47 -04:00
85b69000cd revert to use NULL instead of nullptr, so that it compiles without having to enable c++11 compatibility 2022-04-09 20:54:59 -04:00
ddf67ec42d properly use nullptr on pointers (with a little help from clang-tidy) 2022-04-09 20:27:40 -04:00
2d346638fb correctly declare and override virtual functions for desired polymorphism 2022-04-09 20:17:36 -04:00
a620f5bd7d fix pointer type bug 2022-04-09 19:59:43 -04:00
07bc76871c avoid unsafe strcpy() 2022-04-09 19:01:42 -04:00
4adeb29491 clang-tidy fixes 2022-04-09 19:00:59 -04:00
177f9cabc1 add ELECTRODE package to suitable presets 2022-04-09 18:19:55 -04:00
4e81adaf8c make buffer size for text file reader adjustable 2022-04-09 17:46:47 -04:00
fcd3e76767 skip unsupported unit tests 2022-04-09 17:45:38 -04:00
c07b06c8d1 skip unsupported unit tests 2022-04-09 17:44:40 -04:00
420dc969d3 need to set buffer size based on generated output format 2022-04-09 17:26:41 -04:00
eb9af11d64 make buffer size for text file reader adjustable 2022-04-09 17:26:03 -04:00
b20c98753f style changes 2022-04-09 10:10:33 -04:00
44ccbd2184 use internal reader/parser classes for file reading and writing 2022-04-09 10:10:19 -04:00
06fc53ac69 make timer output configurable and off by default 2022-04-09 10:08:58 -04:00
75d87383e2 one more OpenMP fix 2022-04-09 09:10:45 -04:00
a04c0077b9 silence some more compiler warnings and try to resolve issues with old compilers 2022-04-09 09:04:17 -04:00
8625a6d946 apply clang-format 2022-04-09 08:00:11 -04:00
ce62da1cca compatibility with legacy OpenMP implementations 2022-04-09 07:53:17 -04:00
71f8e11d70 join multi-line strings 2022-04-09 07:45:01 -04:00
a94fa0a840 formatting 2022-04-09 07:44:33 -04:00
23598fa658 spelling 2022-04-09 07:44:15 -04:00
7673eda947 apply clang-format 2022-04-09 07:16:22 -04:00
6dea9fa10c add missing dependency handling in GNU make build for ELECTRODE package 2022-04-09 07:10:31 -04:00
c04db4b545 modernize 2022-04-09 07:01:42 -04:00
e0c4f6164e silence compiler warnings 2022-04-09 07:01:35 -04:00
cab6fca22e update to latest upstream and modernize neighbor list request handling 2022-04-09 07:00:39 -04:00
19b42bc726 Merge branch 'develop' into electrode 2022-04-09 06:31:22 -04:00
8ce2ce8fd4 remove unused import 2022-04-09 04:02:01 -04:00
a71bf4cae5 Merge pull request #3207 from lammps/remove-message-package
remove MESSAGE package
2022-04-09 03:20:26 -04:00
8dce9f7a60 install pyyaml 2022-04-09 00:39:50 -04:00
6c87962551 fix remaining doc build issues 2022-04-09 00:39:27 -04:00
674d2a6788 Merge branch 'develop' into remove-message-package 2022-04-09 00:25:11 -04:00
8b53ff9383 Merge pull request #2921 from lammps/mdi-expand
Enhance MDI support in LAMMPS in its MDI package
2022-04-09 00:18:50 -04:00
22122092e4 Merge pull request #3206 from akohlmey/add-kimplugin
Add kimplugin source and CMake based build support
2022-04-08 23:09:13 -04:00
d0d4bbf5ae Merge pull request #3196 from akohlmey/avoid-bigint-format-scanf
Refactor code to avoid XXXINT_FORMAT defines and  xxscanf() function calls
2022-04-08 21:24:57 -04:00
5ff42d8993 simplify 2022-04-08 21:21:36 -04:00
81933b7972 silence compiler warnings 2022-04-08 21:19:32 -04:00
f3685fa8de fix bugs 2022-04-08 21:18:55 -04:00
375062d02c restore modern API usage 2022-04-08 21:18:28 -04:00
093667799d Merge branch 'develop' into mdi-expand 2022-04-08 20:58:53 -04:00
1cc913d006 Merge pull request #3205 from akohlmey/dump-style-yaml
Add dump style yaml
2022-04-08 20:55:01 -04:00
8cdce34b27 Merge branch 'develop' into dump-style-yaml 2022-04-08 18:42:28 -04:00
6849356d63 fix spelling, formatting, and cross-link/indexing issues 2022-04-08 18:35:51 -04:00
530d8c007d minor tweak 2022-04-08 18:09:10 -04:00
521d45dcc6 remove MESSAGE package from CMake 2022-04-08 18:00:36 -04:00
fbc55937fe Merge pull request #3198 from bathmatt/pair-dpd
DPD-BASIC kokkosification
2022-04-08 17:48:28 -04:00
dff3bc5656 Merge branch 'develop' into avoid-bigint-format-scanf 2022-04-08 17:39:25 -04:00
fc24cf15ce Merge pull request #3197 from akohlmey/custom-thermo-headers
add support for custom header keywords with thermo output and dump styles
2022-04-08 17:29:35 -04:00
b24d01fae6 remove broken links in the manual from removing packages 2022-04-08 17:27:01 -04:00
d0edc48a65 update purge list with removed source files from MESSAGE package 2022-04-08 17:26:16 -04:00
f405c7acc9 add deprecation handling removed commands and styles 2022-04-08 17:25:56 -04:00
ef7c6a580e simplify 2022-04-08 16:51:52 -04:00
2c509d96a6 we are not compatible with those old versions for the MDI library 2022-04-08 16:43:41 -04:00
07aecb3678 whitespace fixes and apply clang-format 2022-04-08 16:36:21 -04:00
bfaa1e9ed0 whitespace 2022-04-08 16:28:57 -04:00
a7ccb16aa8 Merge pull request #3192 from davidfir3/fep_ta
New feature compute fep/ta
2022-04-08 16:27:12 -04:00
33798b99a4 remove debug print statement 2022-04-08 14:08:51 -06:00
caa977e869 Remove redundant calls 2022-04-08 13:28:14 -06:00
f8ec0365c6 Fix a few more issues 2022-04-08 12:52:26 -06:00
d99b1258e3 remove volatile to fix build error from Kokkos commit (5574130fb333ac1745a52d4a6383ac95c64bdc0f) 2022-04-08 11:13:31 -05:00
b73437aa63 Merge pull request #3208 from arghdos/develop
Fix for building GPU backend on ROCm 5.1+
2022-04-08 07:19:27 -04:00
4efdfaa8f3 simplify and make consistent, fix time based dump bug 2022-04-08 07:05:30 -04:00
bd4d92c76d entry for mdi sub-dir in Examples.rst 2022-04-07 16:02:45 -06:00
77565add6e Add C++14 to Makefile build system
Change-Id: I24f72b4aaca93a49877775c3d181507c83cd7f82
2022-04-07 17:54:20 -04:00
ab0e5d5568 Fix for building GPU backend on ROCm 5.0+
Change-Id: I32ad9be86d6a0467ccae555a1d0272813c905e97
2022-04-07 17:48:03 -04:00
792ae5dae5 remove src/MESSAGE package and supporting dirs and doc pages 2022-04-07 15:44:48 -06:00
f40180f7fb lib README edit 2022-04-07 15:15:50 -06:00
adef9b7747 add log files to examples/mdi 2022-04-07 15:13:29 -06:00
40aa146624 Prune unused code and fix virial issue 2022-04-07 15:05:07 -06:00
0b6aa59621 updated doc pages 2022-04-07 14:42:58 -06:00
e2f25a96e1 spelling 2022-04-07 14:50:33 -04:00
ddb6350fe8 Remove unused var 2022-04-07 10:53:38 -06:00
9b969648d5 add kimplugin source and CMake based build support 2022-04-07 12:51:06 -04:00
2956aee8dc Small tweaks 2022-04-07 10:45:50 -06:00
4f67f586d0 Fix memory issue and leftover debugging 2022-04-07 10:02:58 -06:00
fdf59e6a03 more debugging for plugin library mode 2022-04-07 09:26:43 -06:00
f5add95083 fix syntax error 2022-04-07 06:08:54 -04:00
8a6e6fe523 make dump style yaml test dependent on it being available 2022-04-07 05:59:31 -04:00
3970942028 add test for yaml dump style 2022-04-07 02:44:17 -04:00
0e8e1171c6 add unit test for yaml style thermo output and updated logfile class 2022-04-07 02:07:05 -04:00
59fa0be35f update for recent changes in thermo output 2022-04-07 02:06:55 -04:00
98b908387f add unit test for yaml style thermo output and updated logfile class 2022-04-07 02:05:47 -04:00
601bdadf44 update for recent changes in thermo output 2022-04-07 02:05:05 -04:00
082254455b improve confusing error messages 2022-04-07 00:37:30 -04:00
58ecf03e5d correct yaml import 2022-04-07 00:37:18 -04:00
348ee5299e implement a dump style yaml 2022-04-06 19:11:55 -04:00
e944ecd1c2 correct docs 2022-04-06 19:10:16 -04:00
207b34ae12 allow for pre-timestepping comm with engine, e.g. for force eval 2022-04-06 16:38:58 -06:00
b1e92c9ec6 update YAML reading python example to read faster using libyaml. 2022-04-06 17:38:25 -04:00
4bd28cf920 altering how plugin mode works 2022-04-06 15:24:02 -06:00
2b8b916cba delete unused enums 2022-04-06 10:08:53 -04:00
cd7f08a8e7 support dump_modify for column headers in ADIOS dump styles 2022-04-06 09:31:01 -04:00
387b0df554 Remove gitlab pipeline 2022-04-06 08:21:12 +02:00
b4cc158981 Merge pull request #3182 from charlessievers/mliap
ML-IAP updates
2022-04-05 22:07:27 -04:00
e4f62cae9a integrated added styles into manual 2022-04-05 22:01:21 -04:00
4ad8af629d whitespace 2022-04-05 21:53:29 -04:00
f89a08985e update DPD-BASIC package examples 2022-04-05 21:50:36 -04:00
607ecf595b Add ScatterView 2022-04-05 17:04:23 -06:00
8744627059 Tiny tweaks 2022-04-05 16:04:43 -06:00
efa7116b58 Merge branch 'develop' of https://github.com/lammps/lammps into pair-dpd 2022-04-05 15:48:36 -06:00
cd0b921ed2 Merge pull request #3203 from stanmoore1/acks2_bug
Fix issues in ReaxFF QEq and ACKS2
2022-04-05 16:29:30 -04:00
65be564cd6 Review akohlmey 2022-04-05 15:35:04 +00:00
22392d226a silence compiler warnings 2022-04-04 21:11:09 -04:00
a5139d7100 make sure "NN" is initialized before it is used 2022-04-04 21:03:15 -04:00
288c154290 Merge pull request #3186 from Ruyk/kokkos-sycl-cmake
Add kokkos-sycl.cmake preset
2022-04-04 16:12:24 -04:00
c274146358 whitespace 2022-04-04 15:40:19 -04:00
3eb7194619 Merge branch 'develop' into acks2_bug 2022-04-04 15:39:44 -04:00
3e01bc48d4 Need s ghosts 2022-04-04 13:05:10 -06:00
134c77a5c6 reference kokkos-sycl.cmake in the docs 2022-04-04 14:47:53 -04:00
fd80b1bd9b Merge pull request #3201 from samueljmcameron/bugfix_dumpvtk
Bug fix in vtk dump.
2022-04-04 14:40:56 -04:00
776dc34411 Add missing vars 2022-04-04 12:28:03 -06:00
f42635a40d Should be nall not nghost 2022-04-04 12:08:38 -06:00
4fadf4c830 more debugging on plugin mode 2022-04-04 10:30:12 -06:00
b4fc86e467 Fix issues in ReaxFF QEq and ACKS2 2022-04-04 10:24:54 -06:00
02f972292c spelling 2022-04-04 12:16:28 -04:00
5d4ec45534 Merge branch 'develop' into custom-thermo-headers 2022-04-04 12:08:23 -04:00
d89ff310c1 Merge pull request #3202 from lammps/fix-deform-doc-page-edit
Fix deform doc page edit
2022-04-04 12:07:10 -04:00
a0b15c2d04 Merge pull request #3199 from lammps/misc
Misc changes
2022-04-04 11:51:59 -04:00
63a841e300 doc page edit 2022-04-04 08:59:40 -06:00
3ed011dcfb whitespace 2022-04-03 10:55:56 -04:00
028beb8da4 Merge branch 'develop' into misc 2022-04-03 10:55:24 -04:00
db00b49a50 Merge pull request #3195 from weinbe2/feature/kk-reax-ang-tors-optim
kk/reax: Preprocessing optimizations to ComputeAngular,Torsion; Modularity/Memory improvements in BuildLists
2022-04-03 09:52:08 -04:00
e5a01026a7 add unit tests for fix move 2022-04-03 03:19:47 -04:00
c9d0889f25 add "transrot" style to fix move that allows to do translation and rotation at the same time 2022-04-02 18:34:17 -04:00
584b166823 enable and apply clang-format 2022-04-02 17:20:34 -04:00
93c67a3c07 make compute msd (and msd/nongauss) error out immediately when used with a dynamic group 2022-04-02 17:13:30 -04:00
8e838c1424 Bug fix in vtk dump. 2022-04-02 12:55:51 +01:00
49abd0d269 update docs 2022-04-01 15:17:10 -04:00
fb9316701b port colname changes to MPIIO package 2022-04-01 14:57:41 -04:00
dab640220c Fix name to match code 2022-04-01 12:48:58 -06:00
ea9e3c0860 Update fix ACKS2 docs 2022-04-01 12:45:38 -06:00
2f895d63a6 Add missing variable assignment 2022-04-01 12:32:24 -06:00
fb76cb9a5c updated virtual 2022-04-01 17:54:12 +02:00
294dcc5f93 more debugging for plugin mode 2022-04-01 09:27:48 -06:00
68f27bb4cd addressing comments from Evan's review 2022-04-01 17:02:57 +02:00
ce67cb0ca1 first stab at implementing dump_modify colname 2022-04-01 07:41:13 -04:00
9c0934e82c Have ext-tstat working 2022-04-01 10:37:53 +02:00
c470c204d4 remved unused var 2022-04-01 10:35:05 +02:00
4042a52db1 rename header keyword to colname 2022-03-31 21:58:35 -04:00
4437f16e08 remove references to non-existing folders 2022-03-31 17:49:24 -04:00
335b78b4f2 Add contributing author to list 2022-03-31 15:27:05 -06:00
e3611c5d73 add support for custom keywords with thermo output 2022-03-31 17:26:46 -04:00
19a6eecfbb more debugging for plugin engine mode 2022-03-31 14:41:38 -06:00
4dc4d74056 Add back in accidentally deleted call 2022-03-31 13:10:22 -06:00
ad4701f4f7 Small tweaks 2022-03-31 12:52:36 -06:00
72874376f0 Remove #ifdef 2022-03-31 12:27:43 -06:00
79fcf18013 Remove #ifdef 2022-03-31 12:25:58 -06:00
229f0af537 enable LAMMPS as driver to use plugin engine 2022-03-31 12:09:05 -06:00
df05bbb72b moved dpd_tstat to kokkos 2022-03-31 17:20:56 +02:00
28976b8c92 recover compilation on windows with old MPICH version 2022-03-31 08:44:43 -04:00
12ddc4ad12 final set of XXXINT_FORMAT changes 2022-03-31 07:51:14 -04:00
52b563a83e modernize parsing in fix tmd, add support for comments and empty lines 2022-03-31 07:36:50 -04:00
33b6466611 add minimal fix tmd example 2022-03-31 07:31:43 -04:00
b97c30e6e7 more refactoring, modernizing, removing of debug code 2022-03-31 06:24:44 -04:00
acd9c7950e update doc and example 2022-03-31 12:25:10 +08:00
b64e90dfe0 simplify. avoid XXXINT_FORMAT macros 2022-03-30 23:43:28 -04:00
1c9dc9c0d9 correct formatting 2022-03-30 22:11:46 -04:00
65a083c83d add support for </>VELOCITIES command at nodes 2022-03-30 15:52:55 -06:00
993441b25a avoid XXXINT_FORMAT macros in fix reaxff/bonds 2022-03-30 17:52:21 -04:00
c7a9a3e2f6 simplify and replace use of XXXINT_FORMAT macros 2022-03-30 16:13:38 -04:00
f3fa04ae0a bugfix 2022-03-30 15:01:03 -04:00
c4729b39b4 replace more uses of XXXINT_FORMAT with fmtlib 2022-03-30 13:53:25 -04:00
14f54aae40 Reax: Preprocessing optimizations to ComputeAngular,Torsion. Modularity boosts + memory reductions for BuildLists 2022-03-30 08:23:41 -07:00
5003c35963 have first cut of just pair-dpd 2022-03-30 16:22:26 +02:00
ddf93eb7ba removed unused var 2022-03-30 15:42:09 +02:00
69d32f286b Stan's patch 2022-03-30 15:10:54 +02:00
2517d1fb55 Converted DPD-BASIC-EXT to use Kokkos 2022-03-30 15:10:54 +02:00
9aad583c7d more parsing updates 2022-03-30 07:38:33 -04:00
999c880dfd simplify parsing numbers and reduce usage of BIGINT_FORMAT 2022-03-30 07:12:25 -04:00
ff3ac64b7e spelling 2022-03-30 03:32:26 -04:00
faacf575b5 add support for >+FORCES command 2022-03-29 14:20:44 -06:00
b92d117524 Merge pull request #3191 from akohlmey/collected-small-changes
Collected small changes and fixes
2022-03-29 14:45:18 -04:00
385b7a77e6 Merge pull request #3193 from samueljmcameron/stable_fix_brownian_update
BROWNIAN package update
2022-03-29 13:03:11 -04:00
2a35ec2d85 Merge pull request #3187 from stanmoore1/kk_opt_neighlist
Optimize Kokkos neigh list for GPUs
2022-03-29 12:05:34 -04:00
d9880273e3 fix typo 2022-03-29 11:54:34 -04:00
b8c7a6153d whitespace 2022-03-29 09:49:48 -04:00
bfe361c576 fix doc building issues 2022-03-29 09:47:44 -04:00
5ea526728e Merge branch 'develop' into stable_fix_brownian_update 2022-03-29 08:26:11 -04:00
88ff2db715 cosmetic updates, print warnings only on MPI rank 0 2022-03-29 08:23:18 -04:00
6f1fac1c59 Updated docs. 2022-03-29 12:21:09 +01:00
c28504961d remove references to the mailing list in the manual and replace with forum link, if needed 2022-03-29 07:01:00 -04:00
dcd6bea172 one final fix in constructor of asphere. 2022-03-29 11:22:21 +01:00
27d2fab951 simplify processing for "*" in filenames for embedding timestep by using utility function 2022-03-29 06:06:48 -04:00
da61b6871a Added in check for ellipsoid in brownian_asphere 2022-03-29 10:46:05 +01:00
db5e4e05a8 fix bug that happens when fix ave/time Nfreq < thermo freq 2022-03-29 15:35:23 +08:00
0bebe6c428 First commit, things not working though. 2022-03-29 07:50:19 +01:00
015257889d flag compatibility with VTK version 9 2022-03-29 01:03:04 -04:00
b211f97efa update and improve ADIOS support
- modernize code
- remove dead code and unused definitions, enums, and includes
- create default adios2_config.xml file if it doesn't exist
- enable and apply clang-format
- update documentation
2022-03-29 01:01:57 -04:00
333e3b0491 apply clangformat 2022-03-28 22:48:00 -04:00
3ba7b8c24c add star_subst() utility function that replaces a '*' in a string with a number 2022-03-28 22:47:20 -04:00
82d0a55862 remove merge conflict message 2022-03-28 15:26:20 -06:00
6407745781 update programming style and enable/apply clang-format 2022-03-28 16:49:11 -04:00
a60e1546b2 properly integrate into build system and docs 2022-03-28 16:48:44 -04:00
60e2b84e09 Fuse loops 2022-03-28 14:43:16 -06:00
1a3c6d3dbc tweak to one MDI doc file 2022-03-28 14:33:17 -06:00
d80fe166d1 Merge branch 'develop' into collected-small-changes 2022-03-28 16:30:01 -04:00
438cba3604 update programming style to latest conventions, enable and apply clang-format 2022-03-28 16:26:55 -04:00
88c075ba90 Tune for HIP 2022-03-28 14:19:50 -06:00
48332c3b18 Rename variable 2022-03-28 14:17:44 -06:00
94645ae720 update of doc pages to match new version of MDI support 2022-03-28 13:56:16 -06:00
63caa8bb44 reorder so that kspace follows improper and comes before compute 2022-03-28 15:12:25 -04:00
120c080fc2 avoid converting a null pointer to a std::string and correct error check 2022-03-28 15:07:23 -04:00
9920b22509 programming style updates 2022-03-28 15:06:55 -04:00
cd8cdc711c Merge pull request #3189 from CDenniston/develop
remove defunct LBtype argument from lb/fluid doc
2022-03-28 14:12:00 -04:00
540cf9b6d7 Merge pull request #3188 from njzjz/kspace_plugin
support kspace style plugin
2022-03-28 11:58:40 -04:00
51c41f09bf recover unit tests for variables 2022-03-28 09:21:25 -04:00
af4afb7e03 modify error/warning message 2022-03-28 21:14:13 +08:00
ebf2b1e706 add doc for compute fep/ta 2022-03-28 20:01:59 +08:00
d7f95da8f3 add extract_setting special function to variable command 2022-03-28 08:00:29 -04:00
4545954385 reformat for wider lines 2022-03-28 07:24:51 -04:00
13228ca29a add dimension check 2022-03-28 13:34:36 +08:00
c52bffda9c remove defunct LBtype argument from lb/fluid doc 2022-03-27 11:26:23 -04:00
cf17fd2306 remap ghost atoms, no need to forward_comm() 2022-03-27 21:49:51 +08:00
603136a93b rename some function & variable, output delta area 2022-03-27 20:52:00 +08:00
7c333b8e07 include bonded eng, cancel neigh build & fix bugs 2022-03-27 20:22:16 +08:00
ff107315cb need to always extract the path to MPI include directory 2022-03-26 23:20:57 -04:00
980b6cada7 update formatting 2022-03-26 10:55:10 -04:00
36444a1db1 add DOI for 29 September 2021 version 2022-03-26 10:48:45 -04:00
356091e1e0 support kspace plugin
I need such feature in the development of deepmd-kit.
2022-03-26 03:39:07 -04:00
2e84700224 delete unused variable "pairflag" 2022-03-26 13:55:22 +08:00
dc668ed0df update to README instructions 2022-03-25 16:11:17 -06:00
55d3edef2f doc info in sequence_driver.py 2022-03-25 16:10:43 -06:00
d710d19aef Enforce pre_exchange() order for (currently) unused update option 2022-03-25 15:56:59 -06:00
4d037376af include GHub whitespace changes 2022-03-25 15:19:13 -06:00
0c1516b34d Add another missing change 2022-03-25 14:14:42 -07:00
055fefc542 finished MDI engine and test script debugging 2022-03-25 15:07:38 -06:00
d648247b80 whitespace 2022-03-25 13:03:56 -07:00
d131223161 Restore changes lost in Git shuffle 2022-03-25 12:59:45 -07:00
9f0eb2ea1a Add note about memory 2022-03-25 12:17:33 -07:00
b14086f3f9 Update docs 2022-03-25 12:12:04 -07:00
a5e22c07c7 Merge branch 'kk_npair_ghost_gpu' of github.com:stanmoore1/lammps into neigh_transpose 2022-03-25 11:49:17 -07:00
01abeda9ef Merge branch 'develop' of https://github.com/lammps/lammps into kk_npair_ghost_gpu 2022-03-25 12:08:32 -06:00
e2e046c452 add missing host overload to make Clang happy
Change-Id: Ib0bd9dec3ecc6bf13b9894b07024172a9810cd77
2022-03-25 12:05:25 -06:00
17b35878ea Add version of Kokkos Ghost neigh list optimized for GPUs 2022-03-25 12:03:20 -06:00
c3f4dac7dc Small tweak to comments 2022-03-25 09:45:05 -07:00
6dae6198a2 Add neigh transpose as Kokkos package option 2022-03-25 09:17:39 -07:00
2279b28df2 Update from upstream 2022-03-25 09:00:56 -07:00
8e9b508c88 Merge branch 'develop' of github.com:lammps/lammps into Elastic_stress 2022-03-25 16:01:35 +01:00
274db39aa5 demo of new compute style fep/ta 2022-03-25 22:41:39 +08:00
29ada4e263 Update description header 2022-03-25 11:19:59 +00:00
2ae448d9d0 Add kokkos-sycl.cmake & relevant compiler flags 2022-03-25 11:05:09 +00:00
58f59197ff silence warnings from coverity scan 2022-03-25 05:30:01 -04:00
5663a9c38b print current LAMMPS version number in configuration summary 2022-03-24 17:07:45 -04:00
4e180bc237 update URL for downloading old LAMMPS versions 2022-03-24 17:02:07 -04:00
08bdaf8ca7 Merge pull request #3184 from akohlmey/next_patch_release
Update version strings for next patch release
2022-03-24 14:27:29 -04:00
dad8fb8b06 Removing residual files 2022-03-24 11:44:44 -06:00
82f4487d4d Merge pull request #3185 from akohlmey/collected-small-changes
Final small changes for patch release
2022-03-24 13:25:01 -04:00
82c5c622b8 fix temperature initialization bug in KOKKOS nose-hoover code 2022-03-24 11:44:02 -04:00
81d0165c5c Merge pull request #3181 from jibril-b-coulibaly/new_damp
Damping fixes for finite-size particles simulations
2022-03-24 11:08:02 -04:00
4278ff8205 update threebody example 2022-03-24 07:32:30 -04:00
383f0adc94 update version strings for patch release 2022-03-23 19:44:14 -04:00
d8d12ccf1c Merge pull request #3180 from akohlmey/strtok-parsing-refactor
Refactor files to replace parsing with strtok() to use tokenizer classes
2022-03-23 19:40:39 -04:00
6e959b6f43 more robust response to >COORDS command 2022-03-23 17:21:00 -06:00
a3beb063a3 update and simplify parsing of STL mesh using LAMMPS utilities 2022-03-23 18:41:17 -04:00
66f97ef6bc whitespace 2022-03-23 17:22:46 -04:00
a4018dbb4b update MDI library to version 1.3.0 2022-03-23 17:18:19 -04:00
92a968a8a9 Resolving merge conflicts 2022-03-23 14:28:27 -06:00
07cec37786 add Note to damping/cundall documentation about fix order. Remove fix order warning from fix viscous/sphere 2022-03-23 14:59:43 -05:00
42dd772455 more work on plugin mode 2022-03-23 13:45:20 -06:00
f95aaf5898 update settings 2022-03-23 15:15:51 -04:00
d785483c4c update potential file parsing in pair style meam/spline and meam/sw/spline 2022-03-23 15:09:31 -04:00
61f28aea36 add "rewind()" member function to Text and Potential file reader classes 2022-03-23 14:44:50 -04:00
67329b6fff fix KOKKOS bug 2022-03-23 14:40:17 -04:00
9417e41676 Rename sphere/bpm, remove bond instance, add smooth option 2022-03-23 11:41:27 -06:00
c4425a1b0e debugging plugin mode 2022-03-23 11:17:51 -06:00
2ab9aa3cdc dummy commit to trigger resolving github inconsistency 2022-03-23 11:16:54 -04:00
59eca42127 synchronize format handling and fix/compute/variable checking with dump custom 2022-03-23 10:57:52 -04:00
a208f1fc39 minor tweak to one style thermo output for keeping columns straight 2022-03-23 10:48:15 -04:00
ae41996967 add support for determining damping scale factor from atom-style variable 2022-03-23 10:43:26 -04:00
ace6c67697 Copy .h & .cpp from compute_fep for comparison 2022-03-23 22:26:44 +08:00
1fd699d279 enable and apply clang-format 2022-03-23 05:06:15 -04:00
b6e37c828e move fix viscous/sphere to EXTRA-FIX package 2022-03-23 05:02:32 -04:00
e247c1a4d0 update related commands 2022-03-23 04:57:49 -04:00
4a5f5b9980 Merge remote-tracking branch 'github/develop' into new_damp 2022-03-23 04:47:52 -04:00
23461d4ba8 spelling 2022-03-23 04:47:48 -04:00
9d500280c9 more tweaks for extep potential file 2022-03-22 22:21:23 -04:00
c18236216b add MPI_Group_free() support to STUBS 2022-03-22 21:54:36 -04:00
0bd8500da3 whitespace 2022-03-22 21:47:26 -04:00
31f0d5c056 Merge remote-tracking branch 'github/develop' into strtok-parsing-refactor 2022-03-22 21:44:15 -04:00
8ef9eae60a update potential file parser in pair style extep 2022-03-22 21:43:26 -04:00
080662683d use tokenizer to read neb initial replica files 2022-03-22 20:54:42 -04:00
3e7de83e6e Merge pull request #3179 from akohlmey/thermo-refactor-plus-yaml
Refactoring of Thermo class and new thermo style yaml
2022-03-22 20:17:25 -04:00
4c13f99b04 convert to use LAMMPS' tokenizer and potential file reader classes 2022-03-22 17:59:53 -04:00
1ee40f8f8f change to tests 2022-03-22 11:11:43 -06:00
194751e800 add support for full minimizations 2022-03-22 09:32:31 -06:00
eb44b6b1fa Merge branch 'develop' into mdi-expand 2022-03-22 08:39:24 -06:00
6555c7302d debugging for series of calcs 2022-03-22 08:38:39 -06:00
d3ba1af89c rename cundamp to damping/cundall 2022-03-22 09:01:53 -05:00
2e539918c1 slight change in __init__.py to fix *.a bug 2022-03-21 22:55:28 -07:00
862e4ba67a Added different pytorch modules that allow different handling of element types and proposal for __init__.py bug fix 2022-03-21 22:45:28 -07:00
8954ac4f20 correct/simplify for GPU device specialization 2022-03-21 17:12:43 -04:00
643511294e create fix for rotational viscous damping on spheres. create fix for Cundall type damping for granular simulations 2022-03-21 15:34:04 -05:00
4c1a6d7ecf tweak settings for thermo style "one" 2022-03-21 14:44:07 -04:00
6c30bdf082 add missing reaxff files to purge list 2022-03-21 14:35:09 -04:00
6f2c09c187 Merge branch 'develop' of github.com:lammps/lammps into Elastic_stress 2022-03-21 10:46:53 +01:00
bc86bdf984 use tokenizer in fix phonon 2022-03-20 21:54:58 -04:00
4c95314ea6 must set boxflag *after* checking for rigid fix because we might change the box ourselves 2022-03-20 21:25:26 -04:00
550ae15dff proper handle partial initialization from infile 2022-03-20 21:12:35 -04:00
89c7d8f707 replace strtok based file reader with ValueTokernizer 2022-03-20 16:34:41 -04:00
adf4a23f58 refactor and apply clang-format
- replace file reader code using TextFileReader and ValueTokenizer
- replace traversing list of fixes with accessor functions
- enable and apply clang-format
- add examples for reading rigid bodies from file
2022-03-20 15:28:31 -04:00
356555418d remove dead code 2022-03-20 00:41:26 -04:00
45d246b9c5 Merge branch 'develop' into thermo-refactor-plus-yaml 2022-03-19 21:55:18 -04:00
d539dcd8d4 repair collateral damage to NETCDF package from Thermo class refactor 2022-03-19 20:54:50 -04:00
1b7da77a4a update some more version change timestamps 2022-03-19 20:20:30 -04:00
294dd2778a update thermo style yaml docs and examples for reading and parsing 2022-03-19 20:19:52 -04:00
c70b0b39ac update documentation for modifying LAMMPS to reflect changes to Thermo class 2022-03-19 18:06:56 -04:00
74103b141a enable and apply clang-format 2022-03-19 18:03:29 -04:00
a4d2062865 reduce redundant code with helper functions and simplify by using std::string 2022-03-19 18:01:12 -04:00
f5ebfbf90b refactor thermo output processing and add new yaml thermo style 2022-03-19 16:39:09 -04:00
649e8a27b3 Merge pull request #3159 from akohlmey/neigh-request-refactor
Refactor neighbor list request code
2022-03-19 00:47:09 -04:00
4399559259 adjust epsilon for unit test on MacOS 2022-03-18 23:37:54 -04:00
ad5235a764 update yaml file for force style unit tests with higher precision numbers 2022-03-18 22:44:50 -04:00
c80a182150 relax epsilon for MSVC++ test 2022-03-18 21:20:44 -04:00
88ac22cd62 silence compiler warnings. avoid uninitialized access. 2022-03-18 20:02:49 -04:00
4f3a9f9b63 Merge branch 'develop' into neigh-request-refactor 2022-03-18 19:23:51 -04:00
3f28768b5e Merge pull request #3177 from akohlmey/collected-small-changes
Collected small changes and fixes
2022-03-18 19:22:40 -04:00
a96aef73d1 Merge remote-tracking branch 'github/develop' into neigh-request-refactor 2022-03-18 18:28:35 -04:00
3828518e5e implement suggestions from @athomps 2022-03-18 18:28:20 -04:00
2b2bc64ad9 Merge pull request #3178 from akohlmey/sphinx-theme-update
Update LAMMPS theme for HTML pages of the manual
2022-03-18 18:09:56 -04:00
68673633f0 silence compiler warnings about unused variables 2022-03-18 18:09:24 -04:00
a7fce6dc39 add harmonic/cut to python example folder. small tweaks to docs and examples 2022-03-18 17:58:30 -04:00
6c6a6b7c64 provide more complex example for using pair style python 2022-03-18 17:07:01 -04:00
30966dfed0 Bugfix from @weinbe2 2022-03-18 14:14:34 -06:00
364ac40724 Merge pull request #3169 from stanmoore1/kk_reduce_mem
Reduce memory use in Kokkos package
2022-03-18 14:21:30 -04:00
8fe7b928a7 use newer APIs to get access to fixes and computes 2022-03-18 13:16:18 -04:00
cc2ba3c350 make sure parameters are stored symmetrically 2022-03-18 13:02:34 -04:00
f928cc2335 update github managers. 2022-03-18 11:37:49 -04:00
008c000bfe update LAMMPS theme for HTML pages from readthedocs theme to version 1.0.0 2022-03-18 07:44:47 -04:00
815718f33a follow conventions 2022-03-18 06:06:48 -04:00
bc8998c997 correct toycar input example 2022-03-18 06:02:38 -04:00
477d53bcdb check for sufficient number of arguments in command line 2022-03-18 06:02:38 -04:00
734d867a91 use preprocessor for conditional compilation 2022-03-18 06:02:28 -04:00
626b2c4bab use utility functions 2022-03-18 05:52:34 -04:00
43b4240503 use sizeof(double) not sizeof(MPI_DOUBLE), bigint instead of long int
also use fmt::print() for typesafe output
2022-03-18 05:51:35 -04:00
32612d3f5b enable and apply clang-format 2022-03-18 00:06:28 -04:00
6d38ce5284 enable and apply clang-format 2022-03-17 23:40:37 -04:00
e12e06198c enable long md and min runs 2022-03-17 17:58:26 -06:00
85e581eb2a enable and apply clang-format 2022-03-17 19:44:53 -04:00
58030009da new math constants: DEG2RAD and RAD2DEG 2022-03-17 19:44:34 -04:00
6e7eedf148 enable and apply clang-format 2022-03-17 18:41:17 -04:00
fb8074d294 renormalize line endings. add .gitattributes to configure them explicitly 2022-03-17 18:21:31 -04:00
fc532ae1a0 list submodules to be updated explicitly for compatibility with CMake 3.16 and later 2022-03-17 16:53:44 -04:00
1e21b8fac1 enable and apply clang-format 2022-03-17 15:37:50 -04:00
57cf2a735a add support for '-f' option to shell rm built-in command 2022-03-17 15:17:44 -04:00
8ffacb55ca enable and apply clang-format 2022-03-17 12:20:17 -04:00
982a5719c4 correct mixed up force and energy in pair style harmonic/cut 2022-03-17 12:18:36 -04:00
9dfb099197 change platform::mkdir() to create entire path like "mkdir -p"
update the documentation of the shell command to current state
and specifically explain the difference between built-in and
external commands and correct where built in commands were described
as calling external commands.
2022-03-17 11:34:50 -04:00
b7ea33332f spelling 2022-03-17 11:32:48 -04:00
1fbeba8fa7 remove dead code and silence compiler warnings 2022-03-17 10:12:00 -04:00
cf06f71514 more refactoring of MDI engine 2022-03-16 17:46:01 -06:00
9e91708e27 Merge pull request #3174 from akohlmey/collected-small-changes
Collected small changes
2022-03-16 16:20:28 -04:00
6d070c7043 more use of modernized APIs 2022-03-16 15:24:42 -04:00
396a95f7af Merge pull request #12 from weinbe2/neigh_transpose
Addition of a  "smart" transpose routine with scratch memory staging
2022-03-16 12:29:21 -06:00
7e2fef096f use accessor function to get and process list of fixes 2022-03-16 14:18:09 -04:00
d49c27e362 Added a "smart" transpose routine with scratch memory staging for neighbor table transposes between LR and LL 2022-03-16 14:12:20 -04:00
31bc7b2864 Merge pull request #3170 from akohlmey/auto-load-plugins
Automatically load LAMMPS plugins if they are in folders listed in LAMMPS_PLUGIN_PATH environment variable
2022-03-16 13:53:14 -04:00
4be3da727a include tools/python in whitespace check 2022-03-16 13:22:39 -04:00
bb4268518b make python 2 compatible 2022-03-16 12:56:19 -04:00
72425f1874 add '#' to make the list of headers a comment 2022-03-16 12:55:53 -04:00
b774464156 whitespace 2022-03-16 12:55:25 -04:00
ba19090631 Merge pull request #3173 from athomps/snap-inner
Inner cutoff switching function for SNAP descriptors and potentials
2022-03-16 12:43:23 -04:00
4894263215 Merge pull request #3167 from CDenniston/develop
Update LATBOLTZ package to new version
2022-03-16 12:22:48 -04:00
e3d4e80407 Merge branch 'develop' into collected-small-changes 2022-03-16 11:55:07 -04:00
0fd02ffd10 Merge pull request #3153 from aliehlen/log-pizza-updates
Log pizza updates
2022-03-16 11:50:31 -04:00
afc634eef2 Merge branch 'develop' of https://github.com/lammps/lammps into neigh_transpose 2022-03-16 08:44:09 -06:00
49b87f9929 enable/apply clang-format, remove redundant code, style fixes 2022-03-16 09:07:38 -04:00
edf7c274b9 Merge branch 'lj_cubic_error' of github.com:olavgal/lammps into collected-small-changes 2022-03-16 09:03:02 -04:00
92bfaeda10 fix bug where it was not possible to use an absolute path for write_coeff 2022-03-16 09:00:56 -04:00
0ac5d8223d Whitespace 2022-03-16 13:06:32 +01:00
8ac1d5bbc5 Error fixed. Epsilon and sigma must also be symmetric 2022-03-16 13:04:36 +01:00
7215939a89 Streamline documentation 2022-03-16 10:47:56 +00:00
8d341e0714 remove EVAL command 2022-03-15 17:13:15 -06:00
99fa769800 more syncing 2022-03-15 16:15:57 -06:00
2a171cf2a2 sync new and old versions with current LAMMPS 2022-03-15 16:10:54 -06:00
636f00276e sync with current Modify methods for fix lookup 2022-03-15 14:12:23 -06:00
25d8950f94 Merge branch 'develop' into neigh-request-refactor 2022-03-15 11:39:45 -04:00
8e585620c3 enable and apply clang-format 2022-03-14 17:14:40 -04:00
ec97d859b9 use tokenizer class for parsing 2022-03-14 17:14:01 -04:00
1d1dea56d8 whitespace and programming style fixes 2022-03-14 16:52:58 -04:00
43e486973f cosmetic changes. remove debug comments and commented out code. 2022-03-14 14:40:38 -04:00
87429366f8 update plugin developer guide 2022-03-14 09:54:31 -04:00
46564c1ee8 recover compilation on windows 2022-03-12 18:43:53 -05:00
0778c12f04 plug memory leaks by freeing MPI data types 2022-03-12 18:06:01 -05:00
ddb35ee455 use utils::logmesg and fmtlib. remove use of sprintf() to temporary buffers 2022-03-12 18:05:05 -05:00
484b7e6d33 must remove and respecify fix lb/fluid around reset_timestep command 2022-03-12 16:16:15 -05:00
fe9b426c7e cosmetic changes 2022-03-12 16:14:55 -05:00
9931323463 attempt to transparently download the missing data file with curl 2022-03-12 14:03:08 -05:00
293ad3fc03 move lb/fluid pointer initialization to initializer list 2022-03-12 12:03:18 -05:00
4948438265 fix small typesetting issues 2022-03-12 09:53:50 -05:00
a66228b4d2 make sure pointer is null on first use 2022-03-12 09:42:03 -05:00
aca7126cfe use newer APIs to access list of fixes in Modify class 2022-03-12 09:23:36 -05:00
7e2bb9a065 reformat and spellcheck the documentation 2022-03-12 08:43:17 -05:00
0341599390 fixes were removed from package, remove from the documentation as well 2022-03-12 08:31:00 -05:00
335e7c7bbc replace use of iostreams and stringstreams with stdio and fmtlib 2022-03-12 08:25:56 -05:00
4c090c5d8e remove debug comments 2022-03-12 08:24:51 -05:00
84a7596b7c more closely follow LAMMPS programming style conventions 2022-03-12 08:23:40 -05:00
25b4d8ade1 move static constants to its own header that is only pulled in by files that use them. 2022-03-12 08:21:52 -05:00
b27cbbd1a1 Merge branch 'develop' into CDenniston/develop 2022-03-12 07:28:30 -05:00
aaeb9fe933 Merge branch 'dielectric-updates' of github.com:ndtrung81/lammps into collected-small-changes 2022-03-12 07:26:00 -05:00
b1119d81a9 Minor tweaks 2022-03-11 21:25:44 -07:00
014345a512 Updated a citation 2022-03-11 20:55:59 -07:00
51034c00c0 Completed documentation 2022-03-11 20:40:18 -07:00
b9fd86e7ca switchinnerflag working for single-element two types SNAP potential 2022-03-11 17:23:38 -07:00
f691805062 More 2022-03-11 16:41:22 -07:00
5216a543ae More 2022-03-11 15:43:48 -07:00
4d13282120 More 2022-03-11 15:07:18 -07:00
877b764a36 More 2022-03-11 14:38:51 -07:00
8323c4fe45 More progress 2022-03-11 14:14:45 -07:00
a7a66100c6 Updated the doc page of the polarize fixes 2022-03-11 14:13:34 -06:00
3f9cc03fc0 Minor tweaks 2022-03-11 11:39:06 -07:00
9e78818637 Minor tweaks 2022-03-11 11:26:06 -07:00
1a04eabb5e merge in current develop 2022-03-11 10:01:25 -07:00
8ba4e7e897 tweaks to src files, added examples dir 2022-03-11 09:33:34 -07:00
62c59a5339 document LAMMPS_PLUGIN_PATH environment variable 2022-03-11 10:34:04 -05:00
56658e9c2c make automatic plugin loads/unloads mostly silent, count/report number of plugins loaded 2022-03-11 10:31:53 -05:00
01bd3d1da0 add functionality to auto-load plugins 2022-03-11 05:52:26 -05:00
45b1213795 silence warnings from coverity scan 2022-03-11 04:29:01 -05:00
e8a550aa22 Reduce memory use in Kokkos package 2022-03-11 00:07:47 -05:00
9b989b1860 Merge pull request #3164 from akohlmey/collected-small-changes
Collected small changes
2022-03-10 23:42:04 -05:00
3a1921b3ed correct SHAKE bond stats output and avoid division by zero 2022-03-10 23:01:23 -05:00
ca76ff360f augment cmake library search path to include the CUDA stubs library folder
this will help configuring and compiling LAMMPS with CUDA support on
machines where there is no CUDA driver installed
2022-03-10 21:17:58 -05:00
11d3b13e31 Added a lot of boilerplate for inner data, not working yet 2022-03-10 18:40:59 -07:00
ali
7343f6e5b8 writing column names is optional 2022-03-10 15:23:21 -06:00
079f7559ea Merge branch 'develop' of github.com:fujiisoup/lammps into collected-small-changes 2022-03-10 16:01:02 -05:00
fa9683e6d2 Merge remote-tracking branch 'github/develop' into collected-small-changes 2022-03-10 16:00:55 -05:00
adef6bd10c Added first draft of inner switching functions 2022-03-10 13:58:14 -07:00
0828ae66a0 Fix a typo in the doc 2022-03-11 05:48:34 +09:00
0fcf40c48e use MathConst::MY_PI more consistently and benefit from it being a constexpr 2022-03-10 14:14:32 -05:00
8e85481afa use MathConst::MY_PI instead of inferring it from acos(-1). 2022-03-10 14:00:34 -05:00
12b144fd0e change math const from M_ to MY_ using math_const.h 2022-03-10 12:36:41 -05:00
5bf1ab0e2d try moving _USE_MATH_DEFINES to cpp file from header for windows compilation 2022-03-10 11:15:25 -05:00
1e4a6dcb41 fix missing #endif in lb/fluid header 2022-03-10 10:37:08 -05:00
c6fe7ed4f4 add _USE_MATH_DEFINES for windows compilation 2022-03-10 10:18:50 -05:00
0a1fa5e040 lb/fluid code cleanup for whitespace, unused vars, windows cmath 2022-03-10 09:53:44 -05:00
c9007501a2 remove cerr iostream reference from lb/fluid 2022-03-10 08:43:54 -05:00
43319120d0 fix qeq/dynamic and qeq/fire need half neighbor list not full 2022-03-10 06:30:10 -05:00
1bba1ca2ae fix logic bug 2022-03-10 05:44:31 -05:00
61f5bbd633 update logic to avoid stall with neighbor list statistic during final summary 2022-03-10 05:21:53 -05:00
06e7bd8144 follow KOKKOS' advice about CPU binding of threads 2022-03-10 01:18:15 -05:00
abd8a6ee15 remove incorrect comment 2022-03-10 01:17:44 -05:00
10f8a597c7 use proper header for access to Kokkos class. 2022-03-10 01:11:33 -05:00
837b8fb753 bugfix 2022-03-10 01:00:34 -05:00
86b686f159 correct handling of neighflag member variable in KOKKOS styles 2022-03-10 00:52:16 -05:00
799ab965d9 make neighbor list request flags protected and add selected friends 2022-03-09 23:25:26 -05:00
26c0b9cf87 move calculation of number of neighbors to Neighbor class
this allows reusing the code in the ImbalanceNeigh class
2022-03-09 23:18:28 -05:00
3ef02edb48 adapt KOKKOS package styles to use new neighbor list request API 2022-03-09 22:43:38 -05:00
9f44221ee3 update neighborlist requests for new API in KSPACE package 2022-03-09 21:20:18 -05:00
2e2bd37883 automatically enable intel neighbor list request property for intel pair styles 2022-03-09 21:19:19 -05:00
9b26726f51 change to clang-format for LATBOLTZ routines 2022-03-09 20:41:28 -05:00
9bbd1df57b another chunk of neighbor list request updates 2022-03-09 19:49:08 -05:00
c4b23bd7e5 programming style updates use newer/simpler APIs 2022-03-09 19:21:03 -05:00
888db4b0ef update examples to standard lammps conventions 2022-03-09 18:13:45 -05:00
e8547af049 update neighbor list requests and compute style lookups in machine learning packages 2022-03-09 06:49:07 -05:00
3bb7a247ac convert some more files to use the new neighbor list request API 2022-03-08 21:29:33 -05:00
cef5076c9a no need to have a multi-threaded neighbor list in fix peri/neigh
I builds just a single neighbor list during setup.
2022-03-08 18:23:46 -05:00
1db981c784 convert a few more styles to the new neighbor request API 2022-03-08 18:20:28 -05:00
3c3912aff2 add deprecated lb/fluid integrator fixes to fix_deprecated 2022-03-08 17:10:22 -05:00
16449c3d11 fix merge conflicts for new version of lb/fluid and minor updates from develop branch on virtual functions and removed fix styles 2022-03-08 16:38:32 -05:00
1249c713f0 Add transpose to neigh list 2022-03-08 14:28:06 -07:00
55f8bf9c51 adapt some more styles to use the new neighbor list request API 2022-03-08 15:27:37 -05:00
fd73d1376a Merge branch 'develop' into neigh-request-refactor 2022-03-08 13:04:32 -05:00
dfbeedfded convert more neighbor list requests to the new API 2022-03-08 12:39:05 -05:00
deb694745b update neighbor list requests with default settings 2022-03-08 06:34:27 -05:00
028c8b5d27 add default arguments for requests with default flags 2022-03-08 06:33:27 -05:00
1296d6d938 update neighbor list request developer notes 2022-03-08 06:32:48 -05:00
3b0a6ac840 add support for requesting SSA neighbor lists and update a few more styles 2022-03-08 06:17:13 -05:00
decdcd0b55 Revert "programming style updates"
This reverts commit 5242409ebd.
2022-03-08 06:15:11 -05:00
5242409ebd programming style updates 2022-03-08 05:17:18 -05:00
795f24c3ff honor NEWTON_ON/OFF request flags 2022-03-08 05:17:18 -05:00
369b8365bf update QEQ, ASPHERE, and KIM packages to use new neighbor list request API 2022-03-08 05:16:55 -05:00
1aa8b64283 convert GPU package styles to use new neighbor list request API 2022-03-08 04:37:46 -05:00
9742817ba3 Dihedrals analytical results of compute_born_matrix are still wrong but, in some low deformations cases, they are ok. This is a progress... 2022-03-08 10:16:30 +01:00
374917fb6f tweak platform tests for CPU time to avoid bogus failures on windows 2022-03-07 21:42:02 -05:00
c6b4c418e7 Merge pull request #3161 from athomps/gcmc-relax-mol-mpi-error
Relaxed the error check on molecule moves in parallel. Molecule excha…
2022-03-07 20:24:36 -05:00
02f6b4c6e8 whitespace 2022-03-07 19:36:07 -05:00
87613bb106 rename doc file to be more generic and match the examples folder 2022-03-07 15:34:00 -05:00
07059c1362 Merge branch 'develop' into collected-small-changes 2022-03-07 15:29:47 -05:00
b0dae52e2d Merge pull request #3165 from olavgal/compute_pressure_cartesian_and_spherical
Computes for local pressure tensor in Cartesian and spherical coordinates
2022-03-07 15:05:51 -05:00
6edfb49527 update .gitignore for recent additions 2022-03-07 14:37:01 -05:00
bfb9638e6c correct issue introduced by global pattern replacement 2022-03-07 14:19:29 -05:00
5206d81742 make class name consistent with file name and add backward compatibility 2022-03-07 14:09:43 -05:00
1f3a3bb80b missing updates 2022-03-07 13:51:16 -05:00
bbcffd4b5a Merge pull request #3163 from akohlmey/test-compute
Add unit tests for computes
2022-03-07 13:49:07 -05:00
8d5a59c0fa Switched all command and class names from pressure to stress 2022-03-07 11:27:37 -07:00
6c4bc8258c Merge pull request #3162 from phankl/mesocnt_memory
Optimized memory usage for pair style mesocnt
2022-03-07 12:03:58 -05:00
c2b0347b30 Added notes on similarity between these computes 2022-03-07 09:09:29 -07:00
8f10953e92 Small comma error in citation 2022-03-07 10:27:23 +01:00
c8b7fc2144 Added cross-reference to compute pressure/cartesian 2022-03-06 20:19:38 -07:00
6da4db4d7e Merge branch 'compute_pressure_cartesian_and_spherical' of github.com:olavgal/lammps into compute_pressure_cartesian_and_spherical 2022-03-06 20:11:20 -07:00
e857b923bc Added representative output to log files 2022-03-06 20:11:10 -07:00
793db836d9 update .gitignore 2022-03-06 19:55:11 -05:00
a2bf40df0a correct mini-ToC links and add missing entry 2022-03-06 11:45:26 -05:00
aaa51d6fc6 optimizations and avoiding floating point exceptions 2022-03-06 11:04:51 -05:00
2f5f36cff8 move examples to a more appropriate folder. add logfiles 2022-03-06 11:03:57 -05:00
44e3874541 Changed citations 2022-03-06 12:50:25 +01:00
fac3ce4507 example files for pressure/cartesian/cylinder/spherical 2022-03-06 12:43:37 +01:00
005f76a9e6 clang-format 2022-03-06 05:24:29 -05:00
72cbffee7d fix bug looking up neighbor lists 2022-03-06 05:24:15 -05:00
4781a4c8c6 style update 2022-03-06 04:49:08 -05:00
440e01d243 no longer needed. done by Neighbor class directly. 2022-03-06 04:48:54 -05:00
e9bcde4b58 more openmp neighbor list function to Neighbor class 2022-03-06 04:48:37 -05:00
cc618264a0 allow only one accelerator type enabled for neighbor lists 2022-03-06 04:47:22 -05:00
3f80894857 Merge branch 'develop' into neigh-request-refactor 2022-03-06 04:23:52 -05:00
54e667e491 convert more styles to use new neighbor list request API, apply clang-format 2022-03-05 21:44:45 -05:00
ffb367663d add more accessor functions 2022-03-05 21:08:25 -05:00
f1d695299e simplify checking for intel neighbor list requests 2022-03-05 20:31:56 -05:00
8fe78e5fc4 enable and apply clang-format 2022-03-05 20:21:32 -05:00
de4b9a1d20 use new neighbor list request API 2022-03-05 20:20:55 -05:00
21fc072396 enable and apply clang-format 2022-03-05 20:19:24 -05:00
5dbad2354a use new neighbor list request API 2022-03-05 20:18:40 -05:00
c5c3c335c9 enable clang-format 2022-03-05 20:16:10 -05:00
875560b827 use new neighbor list request API 2022-03-05 20:15:48 -05:00
67a7764086 Initalizing nullptrs, fixing labels, small errors in doc, and sign errors in rot sliding damp 2022-03-05 17:07:02 -07:00
095c9ab9d1 whitespace 2022-03-05 17:08:49 -05:00
83f08ff8ef small update and correct broken link 2022-03-05 17:07:00 -05:00
8945050423 cosmetic 2022-03-05 16:47:31 -05:00
be4f5288d3 modernize potential file reader in pair style mesocnt 2022-03-05 16:47:06 -05:00
f329711384 Merge branch 'develop' into mesocnt_memory 2022-03-05 15:06:23 -05:00
a9eae51d27 print name of non-existent compute/fix/variable in error message 2022-03-05 14:31:24 -05:00
ece25a95ad stability improvements: recompute bin width for perfect match, don't test for floating point identity 2022-03-05 13:46:56 -05:00
15fa6049f2 update comments 2022-03-05 12:33:54 -05:00
43ac557a9b remove unused headers and dead code. reformat a few small items 2022-03-05 12:31:36 -05:00
c24e46c547 don't apply modulus to doubles but integers 2022-03-05 12:30:40 -05:00
9a98817567 reformat doc page and address spelling issues 2022-03-05 11:35:37 -05:00
99d29ea86a Added kinetic contribution to pressure/cylinder and clang-format on all 2022-03-05 16:30:47 +01:00
089e46a540 Fixed some gramma 2022-03-05 16:29:42 +01:00
4e125ccfc6 Combined pressure profile documentation into one page 2022-03-05 16:22:11 +01:00
f9c02b9735 clarify. improve typesetting 2022-03-05 10:18:00 -05:00
87c96aeeb1 add tests for more compute styles 2022-03-05 10:07:54 -05:00
b3bef9cd34 Merged 2022-03-05 10:30:38 +01:00
9ea0c581ac Adding kinetic contribution to prssure/cylinder 2022-03-05 10:25:28 +01:00
1ab85f5941 update citation references 2022-03-04 18:16:02 -05:00
8709e26923 Merge pull request #3166 from stanmoore1/reax_tabulate
Make it easier to enable tabulation in ReaxFF
2022-03-04 17:37:26 -05:00
c9563d0814 Fixed style changes 2022-03-04 22:30:25 +01:00
f8089bd007 fix cut-n-paste error 2022-03-04 16:08:14 -05:00
789571c4b4 Merge pull request #3158 from arghdos/split_buildlists_half_rebased
Split buildlists half kernel into "preview" and "finalize" kernels
2022-03-04 16:06:05 -05:00
5c8f506edf add unit test input 2022-03-04 16:04:04 -05:00
577eac201b add sanity check 2022-03-04 16:03:50 -05:00
401180699d Update docs 2022-03-04 13:10:25 -07:00
1e530dbd19 Changed ref name to avoid duplicate 2022-03-04 20:55:29 +01:00
23580d8ca5 Integrated pressure/cartesian and pressure/spherical 2022-03-04 20:54:33 +01:00
cdeaa83f6d Make it easier to enable tabulation in ReaxFF 2022-03-04 12:34:51 -07:00
7d8c217657 Anothr tweak of movemode logic 2022-03-04 09:23:51 -07:00
06e9c096ac Remove unused code 2022-03-04 09:13:43 -07:00
98d2dca83f Trailing whitespace 2022-03-04 16:58:31 +01:00
6d48ba1577 Trailing whitespace 2022-03-04 16:57:59 +01:00
a7112f173a Trailing whitespace 2022-03-04 16:56:39 +01:00
9f0607876a LAMMPS Homepage 2022-03-04 16:49:42 +01:00
47de1234c0 LAMMPS homepage and ø->{\o} in reference 2022-03-04 16:49:03 +01:00
2687228f09 Fixed LAMMPS homepage and changed ø to {\o} it reference 2022-03-04 16:47:16 +01:00
a396ed2b36 Fixed LAMMPS homepage 2022-03-04 16:45:31 +01:00
939171094b Whitespace 2022-03-04 08:40:22 -07:00
df9a772020 More EVFLAG cleanup 2022-03-04 08:36:27 -07:00
760d85b9c4 Two computes that computes the local mechanical pressure tensor in Cartesian and spherical coordinates 2022-03-04 16:04:18 +01:00
7288828439 defined np1 = ntypes + 1 to shorten allocation commands 2022-03-04 13:48:44 +00:00
8b9be5bf0a applied clang-format 2022-03-04 12:47:36 +00:00
98f83f9b3a fix typos and make output section more readable 2022-03-04 06:25:16 -05:00
b94995cf5b add some TALLY package compute. simplify some code with convenience functions 2022-03-04 06:24:37 -05:00
a70e895e06 updated documentation 2022-03-04 10:37:45 +00:00
550d523c9e add gyration 2022-03-04 04:41:43 -05:00
73e38014f2 Added explanation of parallel molecule support 2022-03-03 18:21:30 -07:00
91f6805821 Tweaked logic for MC move flags and addedreference output for H2O and CO2 on 4 procs 2022-03-03 18:12:43 -07:00
eaa6fb17af Relaxed the error check on molecule moves in parallel. Molecule exchange is okay. 2022-03-03 16:47:33 -07:00
f97a2d341c Clean up evflags 2022-03-03 16:44:53 -07:00
5888ba0514 QEq does not require ghosts in the neighbor list 2022-03-03 16:16:13 -07:00
3bfb03bcb8 test compute com and compute dipole 2022-03-03 17:27:11 -05:00
e4d920d582 add minimal test for testing compute styles that compute global scalars 2022-03-03 17:11:01 -05:00
e5d2555cf2 small tweaks 2022-03-03 10:01:16 -07:00
569147bf11 Revert change of default value for list/blocking 2022-03-03 09:30:16 -07:00
0fbacd4c5d Add missing optimization to CPU version 2022-03-03 09:02:47 -07:00
9083ff867e whitespace 2022-03-03 08:48:54 -07:00
ee2b9f28cb Switch to vector parallelism for half list in QEq 2022-03-03 08:09:25 -07:00
b6b7846c50 Optimization to reduce atomics on CPU 2022-03-03 07:46:35 -07:00
beee3126e0 Recover CPU performance by bifurcating code 2022-03-03 07:21:40 -07:00
22d43d8e05 Change default for list/blocking option 2022-03-03 07:20:53 -07:00
9f8362399d convert granular pair style and augment docs accordingly 2022-03-03 06:58:54 -05:00
04dbf307d0 remove obsolete TODO item 2022-03-03 06:43:52 -05:00
7120e6354d add a mini-TOC for faster access to contents as the page is getting longer 2022-03-03 06:43:20 -05:00
13bf72e61c describe new neighbor list request APIs 2022-03-03 06:42:42 -05:00
b4da01c23a reduce compiler warnings and need for private variables in OpenMP pragmas 2022-03-02 22:19:28 -05:00
a0996da644 apply new APIs to a few representative cases 2022-03-02 21:31:35 -05:00
d4272815a3 add new APIs for creating and manipulating neighbor list requests
also add a few new (delegating) constructors to simplify code
2022-03-02 21:30:16 -05:00
f7514ce358 make friends for access to instance_me member 2022-03-02 19:06:08 -05:00
0a2a252f08 cleanup 2022-03-02 10:42:41 -07:00
30517fad68 Remove unnecessary atomics/duplication 2022-03-02 10:34:49 -07:00
bac85c4c83 cleanup 2022-03-02 10:04:35 -07:00
083d166885 More cleanup 2022-03-02 09:46:25 -07:00
adefb287c5 whitespace 2022-03-02 09:29:07 -07:00
4ad27034f2 Small tweaks, cleanup 2022-03-02 09:04:13 -07:00
7fb684b802 for 2d systems, rigid bodies always have a moment of inertia and no DOFs need to be subtracted 2022-03-01 21:18:51 -05:00
2a0e66164e enable and apply clang-format 2022-03-01 21:06:19 -05:00
092720b69a correctly compute bond count for shake statistics 2022-03-01 20:52:07 -05:00
e79e4c0134 Seperate buildlists half into 'cheap' blocking-based preprocessor, and 'dense' finalizer
Change-Id: Ic205c1e6f3578c033ec4d8c3c45070fd5b3d7a18
2022-03-01 14:51:40 -05:00
4c57b8f1db Remove duplicate etypes setting 2022-03-01 19:44:17 +00:00
7cca49b14b hide pow behind conditional
Change-Id: I8bb3f7a069207dd0e5a5b980d2a7e3e1a7e22ccb
2022-03-01 12:52:55 -05:00
0edda42eee Bugfix macro inversion 2022-03-01 17:58:56 +01:00
09e544cb8c Changed label of compute_angles/dihedrals for better reading. compute_dihedrals is not working ATM. Also implemented some changes from AThompson. 2022-03-01 16:58:14 +01:00
cd9d3ae5d3 Merge branch 'Elastic_stress' of github.com:Bibobu/lammps into Elastic_stress 2022-03-01 11:04:39 +01:00
798975b809 Merge pull request #3155 from akohlmey/collected-small-changes
Collected small changes
2022-02-28 15:18:27 -05:00
9f315fc2e2 small rewording 2022-02-28 12:17:20 -05:00
763f8f432f Merge pull request #3156 from stanmoore1/kk_verlet_uvm
Fix rare bug in Kokkos with CUDA UVM
2022-02-28 12:16:28 -05:00
bd4d1b52f9 Merge branch 'develop' into collected-small-changes 2022-02-27 19:33:04 -05:00
b76a7764fd use new API to get access to intel fix 2022-02-27 15:19:34 -05:00
0ddefb3754 trigger building an intel style neighbor list so that buffers are allocated 2022-02-27 14:51:17 -05:00
bc9e45ca5a use consistent names, avoid memory leaks, fix off-by-1 error in fourier dihedral 2022-02-27 12:24:37 -05:00
7824e43339 Change Update::reset_timestep() API so that rerun can bypass the time depended fix check 2022-02-27 11:35:34 -05:00
e287ef6ff9 Merge pull request #3154 from akohlmey/use-setuptools
Refactor python/install.py and 'make install-python' to use setuptools and build a binary wheel
2022-02-27 11:32:05 -05:00
750e0435a8 add link to code design page and update/clarify a couple of things 2022-02-27 11:29:20 -05:00
94f97be6e9 link Modify overview paragraph to Code design page 2022-02-27 11:29:19 -05:00
06f4ae0f1f ignore wheel files 2022-02-27 07:03:02 -05:00
0be14d4ed8 move basename operation from setup.py to install.py 2022-02-27 07:02:39 -05:00
7c11d1675d fix bug with make install 2022-02-27 06:33:22 -05:00
7fd41bea6a add some comments to the refactored scripts to explain technical details 2022-02-25 20:10:13 -05:00
27c1ed86fa Added some self-citations for key contributors 2022-02-25 17:03:45 -07:00
014ad94479 Fix rare bug in Kokkos with CUDA UVM 2022-02-25 16:45:58 -07:00
96fbbc2b1b Merge branch 'log-pizza-updates' of github.com:aliehlen/lammps into log-pizza-updates 2022-02-25 18:35:08 -05:00
3e01fa49dd emulate using '-i' command line flag 2022-02-25 18:34:45 -05:00
d26f953a0a Made the example match the benchmark of Kluge et al. 2022-02-25 15:25:47 -07:00
11ba2adbe7 add support for plumed 2.6.6, 2.7.4, and 2.8.0 (default 2.7.4) 2022-02-25 16:34:37 -05:00
1dbff92eeb spelling 2022-02-25 16:23:48 -05:00
578a7cc54c document and handle the case of a previous distutils installation.
in this case 'make install-python' should not continue but instead
it now aborts and asks the user to do a manual uninstall
2022-02-25 16:10:46 -05:00
bb3a5b4057 update docs 2022-02-25 14:13:03 -05:00
511678017e update inline docs and add -n/--noinstall flag to skipp installation 2022-02-25 13:44:47 -05:00
033045a534 need to check if virtualenv creation failed and exit with a suitable error message 2022-02-25 13:20:34 -05:00
5ba6eb474c try to appease coverity scan 2022-02-25 12:20:08 -05:00
f0260c3395 restore exception handling with enforce --user install for older pip versions that don't do that automatically 2022-02-25 09:33:26 -05:00
257805d325 make prompt name consistent 2022-02-25 09:32:41 -05:00
6ab247e7f8 no need to create a virtualenv inside a temporal virtualenv 2022-02-25 09:12:01 -05:00
59e2b819e0 need python3-venv package for updated make install-python 2022-02-25 08:44:15 -05:00
ff4cd2a5e9 python2.7 compatibility 2022-02-25 08:43:51 -05:00
4630a5ffb8 must create virtualenv with same python we selected to run install.py 2022-02-25 08:43:38 -05:00
6e74d0a09a LAMMPS GridComm patch 2022-02-25 08:13:16 +00:00
e2092a5788 first attempt at supporting multi-config builders 2022-02-25 00:52:13 -05:00
4b7731e831 update install.py script to build a wheel and install that 2022-02-25 00:24:16 -05:00
a14a616dc2 make cythonize detection compatible with /bin/dash on ubuntu 2022-02-24 21:26:20 -05:00
0680cdcc3c spelling 2022-02-24 20:43:04 -05:00
44f884316b when updating ML-IAP due to adding/removing PYTHON we need to delete and re-add cythonize support 2022-02-24 20:42:26 -05:00
891d3c8296 update setup.py to be compatible with building "pure" and "binary" wheels 2022-02-24 17:04:16 -05:00
4dc5b93c6c spelling 2022-02-23 16:37:28 -05:00
37ce6cf5f7 Merge branch 'develop' into log-pizza-updates 2022-02-23 16:37:08 -05:00
2d7375798f more python 3 compatibility 2022-02-23 13:27:33 -05:00
18ced360d3 more python 3 compatibility 2022-02-23 12:30:03 -05:00
5594868ef2 retain compatibility with python2 2022-02-23 10:18:02 -05:00
d848e50d0d Merge pull request #3146 from lammps/programmer-comm-doc
New developer page for comm functions
2022-02-22 20:13:32 -05:00
b4e42f68b1 Merge pull request #3148 from akohlmey/rename_comm_forw_rev
Rename forward and reverse communication commands for data in classes
2022-02-22 19:19:56 -05:00
9a1c994a8e Merge branch 'develop' into rename_comm_forw_rev
# Conflicts:
#	src/KOKKOS/comm_kokkos.cpp
#	src/KOKKOS/fix_qeq_reaxff_kokkos.cpp
2022-02-22 16:45:06 -05:00
04ec741f16 Merge pull request #3142 from charlessievers/chem_snap
SNAP bik flag
2022-02-22 16:29:39 -05:00
07d456c8b2 Merge pull request #3147 from stanmoore1/amd_hip_opt
Improvements from AMD to KOKKOS Package
2022-02-22 16:06:28 -05:00
95c414e32e Merge pull request #3139 from akohlmey/collected-small-changes
Collected small changes
2022-02-22 15:30:31 -05:00
ali
035a16d6d8 remove interactive mode for log plotting
this doesn't work in linux
2022-02-22 10:51:58 -06:00
ali
7d8f7855d5 add writing column names in logfile 2022-02-22 10:51:58 -06:00
ali
5c297fa4d1 update log pizza.py files to python 3 2022-02-22 10:51:58 -06:00
7ac1bd1180 final tweaks 2022-02-22 09:20:19 -07:00
687a09b8a1 fix errors in pair style harmonic/cut docs 2022-02-22 04:27:12 -05:00
15acfde91e more updates and corrections 2022-02-21 22:26:01 -05:00
b91788bf71 no need to use default argument 2022-02-21 22:12:26 -05:00
66d7f55a20 apply clang-format 2022-02-21 22:12:13 -05:00
36ecfded81 update according to PR #3148 2022-02-21 21:57:12 -05:00
313d850dd2 Created a Born matrix example for silicon 2022-02-21 19:38:28 -07:00
a3524fc7a1 update atc lib 2022-02-21 21:33:27 -05:00
de4a9f268e rename reverse communication calls 2022-02-21 21:18:28 -05:00
4c0192cae1 rename forward communication functions for pair, fix, compute, and dump 2022-02-21 21:15:10 -05:00
0988d957f5 Update preset configurations to include release and debug versions of MSVC and Clang only. 2022-02-21 19:09:59 -05:00
7ea26161f7 Merge pull request #3145 from lammps/pair-style-doc-page
clarify how new pair style command works
2022-02-21 18:22:47 -05:00
ba2a2ddd9f integrate into manual. fix multiple formal issues. add a few select details. 2022-02-21 18:09:31 -05:00
4d9409dda9 Whitespace 2022-02-21 15:45:03 -07:00
70c149805c Fix bugs in Kokkos tersoff 2022-02-21 15:29:01 -07:00
0d68aa0c46 rework documentation section on compiling on windows 2022-02-21 17:04:31 -05:00
d1decfe15a More cleanup 2022-02-21 14:31:50 -07:00
d6664a8e9e tweak 2022-02-21 14:21:35 -07:00
afbcf5e694 Remove early exit from blocking BuildLists 2022-02-21 14:00:31 -07:00
c2cec53701 Merge branch 'develop' of github.com:lammps/lammps into amd_hip_opt 2022-02-21 13:23:51 -07:00
4a2dc4f14a Cleanup 2022-02-21 13:11:37 -07:00
e10ebf5236 Fix typos 2022-02-21 12:56:58 -07:00
1268c8c6ad Update doc page and author contributions 2022-02-21 12:44:53 -07:00
348309582a new developer page for comm functions 2022-02-21 12:43:35 -07:00
78775a82f4 Merge branch 'develop' into collected-small-changes 2022-02-21 14:26:50 -05:00
850f1a690c Tweak default 2022-02-21 11:45:07 -07:00
6d790e41fa Added bik lastcol behavior to documentation 2022-02-21 10:19:37 -08:00
c725550fff Added in explicit reference column behaviour for bik rows 2022-02-21 10:08:58 -08:00
2a94d7a9a8 Remove HIP_OPT defines in pair_reaxff_kokkos 2022-02-21 11:07:35 -07:00
ed575ee664 clarify how new pair style command works 2022-02-21 10:21:28 -07:00
a9c7d47072 Found parenthesis error in compute_angles(). Now perfect fit with numdiff. 2022-02-21 10:59:37 +01:00
1dae118419 Merged A. Thompson symmetric sheared. Added a bit more explicit comment on virial_addon computation. 2022-02-21 09:40:22 +01:00
67ffef094d Switch shear strain fields to symmetric 2022-02-20 13:51:14 -07:00
f205567fa6 add born/matrix support to hybrid pair styles 2022-02-20 07:15:11 -05:00
e4027ba98a update example input files 2022-02-20 06:35:35 -05:00
c1dfd944af turn some warnings into errors and produce better error messages 2022-02-20 06:07:39 -05:00
60a6747c0e must propagate and check born_matrix_enable flag 2022-02-20 05:51:51 -05:00
bd48c49c2b enable and apply clang-format 2022-02-20 05:51:16 -05:00
7d79a7822b Merge branch 'develop' into Elastic_stress 2022-02-20 05:28:42 -05:00
a3c6d19599 Merged comments modification in EXTRA-COMPUTE/compute_born_matrix from A. Thompson and G. Clavier. 2022-02-20 11:22:20 +01:00
6ee14bfb97 correct formatting of references 2022-02-20 04:26:18 -05:00
c04f4a913f Thomas-Fermi 2022-02-20 07:47:28 +00:00
bc8d1e0f84 Tweaked one comment 2022-02-19 20:55:37 -07:00
407df3127b Cleaned up source files 2022-02-19 20:21:02 -07:00
4ca5441cf1 Updated documentation 2022-02-19 19:25:02 -07:00
61377f41ad Replaced Si.sw with a simlink to potentials dir 2022-02-19 18:01:37 -07:00
f1f2cebf98 Rearranged the directory tree for ELASTIC_T and BORN_MATRIX 2022-02-19 17:59:27 -07:00
c8ae3c45ac Removed cij_nvt directory and updated RADME 2022-02-19 17:09:39 -07:00
335fa2e742 Addd born/matrix numdiff to example 2022-02-19 17:07:21 -07:00
63a4210391 Fix bug in history 2022-02-19 08:33:47 -07:00
6acf3c8d2a Merge pull request #3138 from wmbrownIntel/intel_skip_fix
Bug fix for Intel package skip lists with multiple runs.
2022-02-19 05:55:11 -05:00
3ddcd3308f Add documentation for bikflag 2022-02-19 00:46:56 -08:00
d619477195 Merge remote-tracking branch 'upstream/develop' into chem_snap 2022-02-19 00:23:30 -08:00
36edecd1e7 Added in ability to keep bispectrum descriptors per atom instead of summed. (Useful for non linear models) 2022-02-19 00:20:43 -08:00
7e876ada13 Merge branch 'develop' into collected-small-changes 2022-02-18 21:49:13 -05:00
86cb37f7ad Merge pull request #3141 from lammps/developer-doc-tweaks
tweaks to 2 sub-sections of Developer manual
2022-02-18 21:48:29 -05:00
d88ffcf880 correct file name 2022-02-18 21:24:02 -05:00
bfea3c4589 rename .rst file to match headline 2022-02-18 21:20:35 -05:00
4dad865aea small tweaks and spelling fixes 2022-02-18 21:19:27 -05:00
49c594be10 add factory function example 2022-02-18 21:19:06 -05:00
78f7e96a3f grammar tweaks to 2 sub-sections of Developer manual 2022-02-18 16:45:06 -07:00
39f8ccdb42 Fixing an overlooked merge conflict 2022-02-18 15:33:26 -07:00
642b1e25f6 Updating to develop 2022-02-18 13:58:38 -07:00
0ecb9addb2 Fix MPI issues 2022-02-18 10:58:03 -07:00
7087e78138 Cleanup 2022-02-18 10:23:34 -07:00
5a95b35fb3 Adding bondstyle restart and fixing a few labels 2022-02-18 10:22:08 -07:00
adbbad0c2d silence compiler warnings 2022-02-18 12:13:26 -05:00
c31d79c3a4 add missing override keywords 2022-02-18 12:06:06 -05:00
43f5de4dbf Give the compiler some help 2022-02-18 09:57:51 -07:00
8fa297e420 update comments about building LAMMPS with visual studio 2022-02-18 11:38:35 -05:00
68dc778d03 update the note based on the suggestion by @athomps 2022-02-18 11:38:05 -05:00
b9f5bb60e9 Fix layout 2022-02-18 08:08:48 -07:00
4e03589cee use symbolic constants and fix out of bound accesses 2022-02-18 05:07:18 -05:00
9151a2e820 address unititialized data warnings from coverity scan 2022-02-18 04:46:30 -05:00
2aff105124 nicer shake stats output 2022-02-18 04:24:27 -05:00
537e3f2539 silence compiler warnings 2022-02-17 23:13:13 -05:00
d14035eb6b Fix bug 2022-02-17 20:59:36 -07:00
da3c3723bd add code to print warning if qeq fix is appled to a non-neutral group. document. 2022-02-17 22:51:49 -05:00
0cb45ebd6b Kokkos QEq refactor 2022-02-17 16:25:02 -07:00
01bbb28418 Merge pull request #3135 from akohlmey/next_patch_release
Step version strings for the next patch release
2022-02-17 15:05:43 -05:00
7fe194e59e Merge pull request #3136 from rbberger/collected-small-changes
Collected small changes
2022-02-17 13:20:51 -05:00
f3e14e7b00 Mark MolPairStyle:soft unstable 2022-02-17 12:58:30 -05:00
7b948e7bb8 Bug fix for Intel package skip lists with multiple runs. 2022-02-17 09:37:01 -08:00
45b92e519d Merge pull request #3125 from oywg11/ilp-for-tmds
Anisotropic Interlayer potential for TMDs and Metal Surfaces
2022-02-17 11:42:15 -05:00
d95f0b3cd5 Adjust epsilon in force-style test 2022-02-16 17:43:16 -05:00
793d76c546 Adjust epsilon in force-style tests 2022-02-16 17:40:34 -05:00
12eeaee8a4 Correct bug in PairHybridScaled::single 2022-02-16 13:48:10 -05:00
8b627f92f0 address spelling and achor issues, and integrate into style overview tables 2022-02-16 08:10:29 -05:00
78b123fa4d apply new convention for virtual functions and disable single() functions (for now) 2022-02-16 06:50:26 -05:00
47bb5f5ccd use a local std::map with initializer to have variant specific strings 2022-02-16 06:36:17 -05:00
e541f006eb replace copies of files with symbolic links 2022-02-16 06:34:31 -05:00
08968cbdbf apply clang-format 2022-02-16 06:14:19 -05:00
32cde04000 Merge branch 'develop' into ilp-for-tmds 2022-02-16 06:04:34 -05:00
6d2f4343d9 Merge pull request #3133 from stanmoore1/kk_error
Add error if using multiple threads with Kokkos Serial backend
2022-02-15 22:25:04 -05:00
a7939b582a step version strings for the next patch release 2022-02-15 22:10:06 -05:00
2951eb32a4 Merge pull request #3134 from rbberger/collected-small-changes
Collected small changes
2022-02-15 22:05:48 -05:00
55703f9027 update class instantiation unit test for kokkos to adapt to thread availability 2022-02-15 21:54:21 -05:00
d4bbb31270 Improve error check 2022-02-15 16:04:23 -07:00
ae72356961 Removed unnecessary declarations in compute_born_matrix numdiff part. Commented virial_addon method. 2022-02-15 23:26:40 +01:00
f53fbf09a6 Fix memory leak in FixBondReact 2022-02-15 15:51:48 -05:00
f3c055e637 Undo change that forces BUILD_SHARED_LIBS=off 2022-02-15 14:53:18 -05:00
d9e06e326a Merge branch 'develop' of github.com:lammps/lammps into kk_error 2022-02-15 12:11:52 -07:00
3b359a0d81 Merge branch 'develop' of https://github.com/lammps/lammps into amd_hip_opt 2022-02-15 12:08:03 -07:00
c2d59d5d5e Add error if using multiple threads with Kokkos Serial backend 2022-02-15 11:52:59 -07:00
2f281b3184 Merge branch 'develop' of github.com:lammps/lammps into Elastic_stress 2022-02-15 16:19:03 +01:00
e3222a4bd0 Merge pull request #3126 from Bibobu/EAM_alloy_python_script
Added Python version of Zhou04_create_v2.f in eam_database
2022-02-14 19:48:51 -05:00
618b3ec94f Merge pull request #3131 from akohlmey/lammps-cxx-style
More general LAMMPS code design info for the Programmer guide section of the manual
2022-02-14 18:13:32 -05:00
9a200c9b79 small tweaks 2022-02-14 18:07:29 -05:00
c46dd3675a add Cr parameters to python database file 2022-02-14 18:06:48 -05:00
b0c0251154 delete unwanted files 2022-02-14 18:06:24 -05:00
c65dbd338b change create_eam.py so it can be called as a function from another script 2022-02-14 17:44:33 -05:00
702a2dd3f6 Merge pull request #3130 from akohlmey/iwyu-update
Update list of include statements based on the IWYU utility
2022-02-14 17:25:32 -05:00
5f47ff770c Merge pull request #3127 from akohlmey/gpu-opencl-updates
Update compiling OpenCL loader lib
2022-02-14 16:10:53 -05:00
baf443766a fix a few typos or mistyped words and explain some details better 2022-02-14 16:09:52 -05:00
f84790ba62 add a more specific example to explain how values are rejected and how atoi() fails 2022-02-14 15:52:33 -05:00
8431d72d75 Added a test directory to tools/eam_database 2022-02-14 21:29:51 +01:00
5366621947 Merge pull request #3129 from ndtrung81/sw-hybrid-gpu
Fixed a bug with sw/gpu neigh no when used with pair hybrid for systems with multiple atom types
2022-02-14 14:21:52 -05:00
f4ce0f0b1c Merge pull request #3101 from rbberger/python_use_setuptools
Use setuptools instead of distutils in setup.py
2022-02-14 13:47:46 -05:00
37cd4ba2ea spelling 2022-02-14 11:55:09 -05:00
1a436c5aa9 fix some broken links 2022-02-14 11:55:04 -05:00
fbf95c2cbc add notes about file parsing 2022-02-14 11:54:50 -05:00
1a6b627fa0 add section about memory allocations 2022-02-14 11:54:37 -05:00
12f746046f finalize {fmt} lib info 2022-02-14 08:45:55 -05:00
3bc91386a0 apply include statement updates suggested by running IWYU 2022-02-13 19:39:15 -05:00
1307371942 update/correct iwyu additional mappings 2022-02-13 18:20:12 -05:00
b42aebc197 silence compiler warnings 2022-02-13 18:19:50 -05:00
83beffbb9f whitespace 2022-02-13 17:08:18 -05:00
810717bfe5 discuss stdio vs iostreams and fmtlib 2022-02-13 16:01:27 -05:00
1ab5b9d7fd re-sort list of false poisitives alphabetically with "sort" 2022-02-13 16:01:26 -05:00
1c7e1faeff add sections on inheritance, compositing, polymorphism 2022-02-13 16:01:14 -05:00
6887a16fa1 start add general code design doc. 2022-02-13 16:00:51 -05:00
193dea6327 Updated the comment to be precise on the case 2022-02-13 14:51:00 -06:00
159f107abd Corrected the added comment 2022-02-13 11:16:01 -06:00
bae4e45978 Added a comment to the added check while looping over the neighbors of ghost atoms 2022-02-13 09:17:05 -06:00
9d518ee1e2 must ensure that BUILD_SHARED_LIBS retains its original value 2022-02-13 10:00:19 -05:00
55a500cf8a Fixed bugs with in the kernel sw_three_end kernel 2022-02-13 00:42:26 -06:00
4eedfeb774 detect if LAMMPS library initialization failed and raise an exception 2022-02-12 22:43:18 -05:00
78d149f118 update to download improved loader sources that make installing optional 2022-02-12 13:21:10 -05:00
d85788305d update manual 2022-02-12 10:37:09 -05:00
4343e8194c update README file 2022-02-12 10:20:49 -05:00
096ea21dd9 correct potential file output header (must have 3 comment lines) 2022-02-12 10:14:09 -05:00
8808b11d26 must write out 3 lines of comment in fortran code. sync output style with python 2022-02-12 10:04:24 -05:00
2fdadcfeb6 include UNITS: metadata tag 2022-02-12 10:01:20 -05:00
0113346e54 apply some pylint recommendations 2022-02-12 10:01:01 -05:00
3cca41b72e print help without arguments. clarify help message and argument names text 2022-02-12 09:38:05 -05:00
69d3b1ebf3 output files are now named .eam.alloy 2022-02-12 09:37:23 -05:00
0f5fbf1c42 update citation info format 2022-02-12 09:36:53 -05:00
06d4bb3faf set date dynamically 2022-02-12 09:33:37 -05:00
e9b11e3673 Added Python version of Zhou04_create_v2.f: create_eam.py and eamDatabase.py in tools/eam_database 2022-02-12 12:42:54 +01:00
563f98b898 Some changes in examples directory, nothing important for now 2022-02-12 12:38:58 +01:00
a77680ac7b Merge branch 'develop' into python_use_setuptools
# Conflicts:
#	cmake/CMakeLists.txt
2022-02-12 00:37:03 -05:00
99c1b935b5 convert OpenCL loader build from ExternalProject_add to ExternalCMakeProject 2022-02-11 23:49:08 -05:00
eb2fe7d982 correct inconsistent prototypes 2022-02-11 23:37:40 -05:00
75dc7125e6 Update doc of pair sw/mod 2022-02-12 06:12:12 +02:00
e5dec93a1e Update doc of pair ilp/graphene/hbn 2022-02-12 06:09:29 +02:00
922b240678 Interlayer Potential for TMDs and Metal Surfaces 2022-02-12 06:05:11 +02:00
a5fe8b0581 update OpenCL loader to latest OpenCL spec sources 2022-02-11 22:01:04 -05:00
a17bdf5652 silence compiler warnings and avoid infinite recursion in aspherical pair styles 2022-02-11 21:06:16 -05:00
81587527fe Merge pull request #3120 from rbberger/collected_small_changes
Collected small changes
2022-02-11 20:26:10 -05:00
de08307aba Merge pull request #3124 from akohlmey/hide-factory-symbols
Reduce number of visible symbols in LAMMPS library by removing factory function templates from class definition
2022-02-11 20:23:52 -05:00
54f975ff52 Merge pull request #3123 from stanmoore1/reax_error
Remove incorrect error check in ReaxFF
2022-02-11 19:34:53 -05:00
df02598fc1 convert one more factory template 2022-02-11 18:38:36 -05:00
6a0e93a18a convert more style_creators to use local static functions 2022-02-11 18:29:52 -05:00
5ab9b46b67 enable and apply clang-format 2022-02-11 18:04:46 -05:00
a4244eb7ff apply simplification suggested by @rbberger 2022-02-11 17:57:30 -05:00
04cff0b47b remove make factory function templates from class and make them static functions 2022-02-11 16:00:12 -05:00
4df5686709 Merge branch 'amd_hip_opt' of github.com:stanmoore1/lammps into amd_hip_opt 2022-02-11 13:57:19 -07:00
5ba2fc7958 Merge branch 'reax_error' of github.com:stanmoore1/lammps into amd_hip_opt 2022-02-11 13:56:52 -07:00
fbd4d4b9c3 Merge branch 'develop' of github.com:lammps/lammps into amd_hip_opt 2022-02-11 13:56:38 -07:00
a8dbb3a172 Remove incorrect error check in ReaxFF 2022-02-11 13:39:24 -07:00
ea94095bf6 Change email in docs 2022-02-11 12:51:47 -05:00
ecd072a286 address spelling issues 2022-02-11 09:03:59 -05:00
1f6c4089bd remove some more dead code in CG-DNA package 2022-02-11 07:41:09 -05:00
397889e697 Modifications to virial addon contributions 2022-02-10 19:55:23 -07:00
d750ef4890 simplify 2022-02-10 20:39:36 -05:00
c32dca2009 avoid failures with "most" presets 2022-02-10 20:11:27 -05:00
4ea4bee30c apply virtual and override keywords consistently 2022-02-10 16:55:35 -05:00
61ff5250ee add extra communication of special neighbors when using angle constraints 2022-02-10 16:17:56 -05:00
e94854d54f always initialize arrays with extra grid points for non-periodic to support switching with change_box 2022-02-10 15:57:41 -05:00
9b1a267d85 fix another memory grid deallocation bug. delete before number of levels changes 2022-02-10 15:32:07 -05:00
ab1e68eb42 fix memory access bug with changing box volume/grid 2022-02-10 14:41:25 -05:00
4d5bb08ead make searching for python interpreter and development version futureproof and more consistent 2022-02-10 14:41:25 -05:00
60d03f34cc update create.f with changes from NIST database
also add parameters for Cr and document in README file and change
the code to create output files with .eam.alloy extension
2022-02-10 14:41:25 -05:00
6366972ef4 remove dead code and reduce compiler warnings
# Conflicts:
#	src/RIGID/fix_rigid_small.cpp
2022-02-10 14:41:09 -05:00
44ded1c1fe Reorder fields init in IntelBuffer ctor 2022-02-10 14:19:51 -05:00
df00d2225a Remove unused variable 2022-02-10 14:13:55 -05:00
75f32a60a5 Add missing curly braces 2022-02-10 14:13:43 -05:00
c2ef4425c6 Update doc/utils/check-styles.py 2022-02-10 12:02:23 -05:00
08b16f1f23 Prevent GTest and GMock from being installed 2022-02-10 11:27:32 -05:00
a17a45c761 Fix large number of sign-compare warnings 2022-02-10 11:19:13 -05:00
4f36dad942 Removed the bogus loop in numdiff and manually se the factors in numdiff. 2022-02-10 11:51:03 +01:00
efa5db4c58 ELECTRODE package 2022-02-10 11:33:38 +01:00
439aabc7b1 Merge branch 'develop' of https://github.com/lammps/lammps into amd_hip_opt 2022-02-09 14:26:33 -05:00
ce83ca1efd Merge pull request #3117 from akohlmey/collected-small-changes
Collected small changes
2022-02-08 20:21:46 -05:00
861195130c incorporate suggested changes to github action from @rbberger 2022-02-08 12:08:28 -05:00
4d6fcb3a8b Merge branch 'develop' of https://github.com/lammps/lammps into Elastic_stress before comiting to pull request 2022-02-08 16:46:23 +01:00
9ed13157eb Added examples/cij_nvt/in.lj* changes to make Git happy. 2022-02-08 16:42:33 +01:00
9833e5bc66 Hopefully got compute_born_matrix numdiff method working. Also added two BORN_MATRIX examples. 2022-02-08 16:40:52 +01:00
75727ed5af comment out minimal run test outside of CMake/CTest 2022-02-07 20:52:12 -05:00
8e2581042e remove unused local variables 2022-02-07 20:30:36 -05:00
b01716472b Merge branch 'develop' into collected-small-changes 2022-02-07 19:59:10 -05:00
b75c306543 Merge pull request #3035 from rbberger/kokkos_unittests
Add force style tests for Kokkos OpenMP
2022-02-07 19:57:09 -05:00
2445f85dde Merge branch 'develop' into collected-small-changes 2022-02-07 17:08:03 -05:00
044ada9f2b update googletest library to current snapshot 2022-02-07 16:46:32 -05:00
e4b5245f4d Merge pull request #3116 from akohlmey/build-kokkos-staticlib
Build KOKKOS package updates for Python module and Windows compatibility
2022-02-07 16:36:46 -05:00
35a4c0f501 skip tests that fail with Kokkos+OpenMP 2022-02-07 16:15:32 -05:00
2dfeb96fda Merge pull request #3115 from rbberger/pylammps_update
PyLammps update
2022-02-07 15:09:10 -05:00
093c54d8ed update to use settings from upstream 2022-02-07 14:42:07 -05:00
a7084c8fdb Merge remote-tracking branch 'origin/develop' into kokkos_unittests 2022-02-07 13:04:59 -05:00
ba89ad546a Tried to make the fusion with Aidan Thomps modification of compute_born + several headers issues (essentially adding override flag to virtual methods) 2022-02-07 00:12:27 +01:00
b6822a18f7 Merge branch 'Elastic_stress' of github.com:Bibobu/lammps into Elastic_stress 2022-02-06 20:04:51 +01:00
a110b1d475 1) Added born_matrix method to bond_harmonic, angle_cosine_squared and dihedral_nharmonic
2) Changed compute_born_matrix so it can takes arguments pair bond angle dihedral to output only selected elements. Also moved flags to creator method and added error/warning messages
2022-02-06 20:00:55 +01:00
2548c49876 use fmtlib for formatted output 2022-02-05 17:01:47 -05:00
8209ae9513 fix optional argument parsing bug 2022-02-05 17:01:13 -05:00
59def25eb6 tweak test epsilon for portability 2022-02-05 16:08:43 -05:00
d91c1ff1f0 Merge pull request #3110 from stanmoore1/dump_balance
Fix issue in new dump balance command
2022-02-05 15:56:17 -05:00
4de02c7f2f Tweaked input script 2022-02-04 16:28:29 -07:00
a2ff443838 Use utils::flush_buffers() in error.cpp and thermo.cpp 2022-02-04 18:00:47 -05:00
bae6526b5f Add missing doc entry 2022-02-04 17:55:37 -05:00
50a7d4e7fc Add utils::flush_buffers() 2022-02-04 17:53:36 -05:00
ea0f31c997 Update SWIG library interface 2022-02-04 17:43:17 -05:00
f45663bfc2 Simplify loop structure to fix issues 2022-02-04 11:45:28 -08:00
0ff3ee0227 Add and use lammps_flush_buffers() in Python interface 2022-02-04 10:42:22 -05:00
293d529ee9 Add lammps_flush_buffers() library function 2022-02-04 10:40:05 -05:00
c0bae49956 simplify with new API and address coverity scan warning 2022-02-04 07:28:59 -05:00
652ff43f64 Got a good match with some Born elements with P != 0 2022-02-03 21:58:25 -07:00
ea0b4f0f33 Got a good match with some Born elements with P != 0 2022-02-03 18:16:21 -07:00
c0ee491f18 protect unconditional "#pragma GCC" with if defined(__GNUC__) 2022-02-03 19:47:52 -05:00
7cd9975e29 Fixed one obvious error in numdiff version, matching analytic quite well for P~=0, need to fix addon term 2022-02-03 17:44:47 -07:00
6edb50b405 Force Python version in GH MSVC test 2022-02-03 18:08:17 -05:00
9bfd6375eb avoid triggering bogus make file target errors 2022-02-03 18:00:34 -05:00
7d0b4cc131 make portable to cross-compiler 2022-02-03 18:00:12 -05:00
8fbaaffd3e remove incorrect scope 2022-02-03 17:16:20 -05:00
2137ad04fd remove non-portable custom (and unused) profiling support code 2022-02-03 17:13:10 -05:00
a56922edc9 include PYTHON package in windows test build 2022-02-03 16:55:26 -05:00
75f389f70c Enable PyLammps unit test, require NumPy 2022-02-03 16:24:43 -05:00
22efbaf977 Output Capture has to replace FD 1 to work properly in Jupyter 2022-02-03 16:24:43 -05:00
050ce421e9 PyLammps: alternative OutputCapture using tempfiles 2022-02-03 16:24:43 -05:00
f804ea89b9 skip force test requiring cp command 2022-02-03 16:13:07 -05:00
2a7823686d use introspection to check for Kokkos::OpenMP only when it is enabled 2022-02-03 16:08:00 -05:00
6bfb7a5521 require OpenMP 4 or later for KOKKOS with OpenMP enabled 2022-02-03 16:07:33 -05:00
f550460ecd Update CMakeSettings.json 2022-02-03 15:44:55 -05:00
36c1db820f Add command styles to PyLammps auto-completion 2022-02-03 15:44:55 -05:00
41da32d7de Use modernized LAMMPS Python interface instead of output parsing for Atom properties 2022-02-03 15:44:55 -05:00
3ba85bc68d replace VLA with explicit new/delete 2022-02-03 15:23:09 -05:00
2627e404b0 Add csforce field to numpy_wrapper detection 2022-02-03 15:14:22 -05:00
c6a17b900e just call exit() on windows instead forwarding the SEGV signal 2022-02-03 13:31:24 -05:00
b7b7a74c52 when building KOKKOS as part of the LAMMPS build, always build static libs 2022-02-03 12:23:25 -05:00
82ac7c9e12 Merge remote-tracking branch 'origin/develop' into python_use_setuptools 2022-02-02 11:47:13 -05:00
efcb402fdc Merge pull request #3111 from stanmoore1/kk_compile
Changes needed to compile LAMMPS with Kokkos upstream
2022-02-02 11:45:55 -05:00
d9c51ca124 Make sure LAMMPS and unit tests use same Python version 2022-02-02 11:44:25 -05:00
172f88a0d5 Merge pull request #3104 from ohenrich/cg-dna
CG-DNA unit test and performance enhancement
2022-02-01 18:30:13 -05:00
8f07289ed7 Changes needed to compile LAMMPS with latest Kokkos develop 2022-02-01 15:00:40 -07:00
e15ca1eeef Fix bug in dump balance 2022-02-01 10:23:25 -08:00
fa200f606b Update from upstream 2022-01-31 20:01:10 -07:00
76c57d54c1 Merge pull request #3102 from akohlmey/mpi-stubs-simplify
Porting unit tests to run natively on Windows
2022-01-31 21:37:48 -05:00
705bfc10a1 Merge pull request #3100 from rbberger/kokkos_cleanup
Refactor some declarations in KOKKOS package
2022-01-31 19:35:55 -05:00
fad47312e6 Update from upstream 2022-01-31 16:31:46 -07:00
91614b64d2 Update from upstream 2022-01-31 15:42:05 -07:00
a6a2492282 Merge pull request #3082 from stanmoore1/reax_count
Improve PairReaxFFKokkos neigh list algorithm
2022-01-31 17:26:25 -05:00
b2916339a4 Add NeedDup_v and AtomicDup_v helpers to KOKKOS 2022-01-31 13:42:03 -05:00
a124ee4f44 Merge pull request #2233 from charlessievers/OptimizedDynamicalMatrix
Dynamical_matrix and third_order features+update
2022-01-31 12:57:28 -05:00
dd416f61b5 Rename function to avoid warning 2022-01-31 10:47:56 -07:00
cfd720e1fc Remove another volatile return type to avoid warning 2022-01-31 09:58:44 -07:00
5d28d06a3c Fix compiler warning 2022-01-31 09:47:32 -07:00
f537a31c19 Unify comment style 2022-01-31 09:25:25 -07:00
5142d8e968 Merge remote-tracking branch 'origin/develop' into kokkos_cleanup 2022-01-31 11:04:41 -05:00
9a81dc58a1 Merge remote-tracking branch 'origin/develop' into kokkos_unittests 2022-01-31 11:04:18 -05:00
b7c8ab639c Dummy change 2022-01-30 16:44:35 -07:00
7a14cf765f Fixed silent error in albe[][] 2022-01-30 16:34:49 -07:00
c09e3c0890 Updated documentation 2022-01-30 16:27:33 -07:00
fb2f7f1b99 Merge branch 'Elastic_stress' of github.com:athomps/lammps into Elastic_stress 2022-01-30 16:19:20 -07:00
d79a96caae Updated documentation 2022-01-30 16:18:34 -07:00
cc9c578006 Got all the pieces in, now just need to get the right answer 2022-01-30 15:52:16 -07:00
d80ba0d57a Merge branch 'develop' into mpi-stubs-simplify 2022-01-30 17:19:26 -05:00
7ee7d0c570 apply clang-format 2022-01-30 17:18:40 -05:00
3707b327c0 improve portability of python result value string conversion 2022-01-30 16:52:38 -05:00
a8a76dbbe2 port python module and package tests to be windows compatible. refactor environment processing 2022-01-30 16:48:47 -05:00
2e39971cbc re-enable python module tests on windows 2022-01-30 16:48:11 -05:00
579ac61b5b refactor environment variable settings. make windows compatible 2022-01-30 16:47:52 -05:00
fea41d5458 make windows compatible 2022-01-30 16:47:17 -05:00
0f85809acf Created branch on athomps/lammps repo 2022-01-30 12:37:33 -07:00
af8d1bd768 fix typo 2022-01-30 09:00:39 -05:00
65b198f986 Revert "temporarily switch repo and branch to run on"
This reverts commit 213259b732.
2022-01-30 08:48:52 -05:00
4b22962ec1 roll back MPI target alias change one more time. must wait until CMake 3.11 or later is minimum 2022-01-30 08:47:46 -05:00
f8a4006da7 must promote imported target to global scope in order to be able to alias it 2022-01-30 08:32:21 -05:00
dc0e013297 create alias target MPI::ANY_CXX to be used instead of MPI::MPI_CXX
With this alias it is possible to transparently refer to either the
real imported MPI library or to the MPI stub library. this further
reduced the need for if statements related to MPI. Some uses of
MPI::MPI_CXX remain but they are all in branches of the script code
where BUILD_MPI is enabled and thus the imported target will be present.
2022-01-30 07:48:16 -05:00
99cb494594 remove automatic generated tag 2022-01-30 07:08:15 -05:00
b17d8b4494 add building and running unit tests 2022-01-30 05:54:35 -05:00
213259b732 temporarily switch repo and branch to run on 2022-01-30 05:54:21 -05:00
4bb7457d6e add option to allow skipping tests by setting a no${CMAKE_SYSTEM_NAME} tag 2022-01-30 05:14:57 -05:00
923b0cfc46 allow to override the LAMMPS dll location on windows
this is to work around the situation that windows
has no equivalent to LD_LIBRARY_PATH (short of augmenting %PATH%,
which is tricky for CMake before 3.20)
2022-01-30 05:13:17 -05:00
a8632d5cb6 always have the lib prefix on the LAMMPS library (windows may drop it on the .dll file) 2022-01-30 05:11:32 -05:00
ebeb29adf6 skip python folder tests for now on windows 2022-01-29 21:34:51 -05:00
6ff157a099 use quoting to avoid issues with blanks and special characters 2022-01-29 21:05:19 -05:00
33be5ff0b4 allow that the include command may have quoted arguments with variables 2022-01-29 21:04:59 -05:00
cc0d91b222 re-add copies of linked files 2022-01-29 21:01:49 -05:00
571821694e remove links broken on windows 2022-01-29 21:01:35 -05:00
02cadf1b71 port to windows where text file reading may gobble up carriage returns 2022-01-29 20:53:17 -05:00
6c98915a9c port to windows 2022-01-29 20:52:37 -05:00
0bfc5269dd fix mismatches causing failures on windows 2022-01-29 20:52:25 -05:00
9014664c13 really fix unit test regexes for windows 2022-01-29 19:07:35 -05:00
c420f804d9 make multi-line regex checks compatible with googletests Windows regex syntax 2022-01-29 18:52:49 -05:00
a1d186b5fa Merge pull request #3105 from athomps/numdiff-stress
Add new numdiff/virial fix style
2022-01-29 18:37:57 -05:00
cd5d1f8a30 reformat 2022-01-29 18:13:01 -05:00
9323a09b39 reduce number of reported memory leaks with google test death tests 2022-01-29 18:12:53 -05:00
c464c40d67 avoid accessing uninitialized data and triggering bogus memcheck output 2022-01-29 18:12:15 -05:00
7b3adb3f1a must always initialize jtag 2022-01-29 17:09:40 -05:00
c9de8fca1d silence compiler warnings 2022-01-29 17:07:00 -05:00
75d0a5098f use -Og for Debug config for better warnings and debug experience 2022-01-29 17:06:30 -05:00
bd4814a51e don't cache OUTPUT_DIRECTORY variable settings but set them every time 2022-01-29 16:37:40 -05:00
845ab2dd71 On Windows the Regex matcher for '.' does not match '\n'
Thus we have to use ContainsRegex instead of MatchesRegex
2022-01-29 16:35:30 -05:00
d62e25decc don't specify default working directory for tests explicitly 2022-01-29 11:10:23 -05:00
dad72a612a correct statement (PPPM **does** support triclinic for a while already) 2022-01-29 08:18:08 -05:00
481bcfcd14 spelling 2022-01-29 08:12:28 -05:00
ee98f023b6 enable and apply clang-format 2022-01-29 08:02:59 -05:00
17960c8183 use constexpr instead of const 2022-01-29 07:56:11 -05:00
9427eb800f add missing "override" 2022-01-29 07:55:58 -05:00
c1185acad7 enable and apply clang-format 2022-01-29 07:52:06 -05:00
d6fa3a08cd roll back library aliasing changes as that negatively interferes with unit tests 2022-01-28 21:54:32 -05:00
8423ecb211 small tweaks to make things work with the new settings 2022-01-28 21:28:37 -05:00
7978bf671d use canonical syntax for adding tests 2022-01-28 21:12:13 -05:00
5c0c3df035 make use of CMAKE_(RUNTIME|LIBRARY)_OUTPUT_DIRECTORY 2022-01-28 21:10:30 -05:00
fbecf0051e Merge remote-tracking branch 'upstream/develop' into numdiff-stress 2022-01-28 18:36:27 -07:00
a9481733a0 Finished debugging, testing, documenting 2022-01-28 18:34:30 -07:00
c28b7c586a Residual Merge Conflict 2022-01-28 14:59:07 -08:00
6258cf1b9d Fixed merge conflict 2022-01-28 14:49:13 -08:00
e8ce01079d whitespace 2022-01-28 17:20:32 -05:00
f6d0be1257 avoid integer overflow due to precedence 2022-01-28 17:08:16 -05:00
96502ae49d whitespace 2022-01-28 17:07:03 -05:00
1d51f2d151 must not access invalid/uninitialized data 2022-01-28 16:57:58 -05:00
2a3a7c387b Merge pull request #3103 from tc387/CR-update
fixed ewald self-energy update and updated documentation
2022-01-28 16:37:11 -05:00
e5b129fe8d Grow exponentially to resize less 2022-01-28 13:35:09 -07:00
41c1c64be9 Merged with deveop branch 2022-01-28 20:27:38 +00:00
e76c8bbaa3 spelling 2022-01-28 14:52:31 -05:00
4225c6c288 whitespace 2022-01-28 14:48:34 -05:00
9feec51590 Merge branch 'develop' of https://github.com/lammps/lammps into reax_count 2022-01-28 12:32:37 -07:00
d6a6f64576 Merge pull request #3090 from rbberger/modernize_use_override
Modernize to C++11: use override
2022-01-28 14:10:45 -05:00
17cb137f3e Merge branch 'master' into OptimizedDynamicalMatrix 2022-01-28 11:08:31 -08:00
bb89347bac Fixed kspace issue and added suggested runtime check for intel accelerator 2022-01-28 11:06:29 -08:00
7aa17fbdf7 Merge branch 'develop' of github.com:lammps/lammps into reax_count 2022-01-28 11:58:50 -07:00
d3c45d3389 Removed whitespace 2022-01-28 17:58:00 +00:00
ef96b51a25 Merge branch 'deform-rebuild-rigid' into mpi-stubs-simplify 2022-01-28 05:44:43 -05:00
db4e69bf38 further simplification by making STUBS an interface and alias to MPI::MPI_CXX 2022-01-28 01:00:37 -05:00
ac815fdfba use improved accessors for fixes 2022-01-27 22:16:43 -05:00
e4fe0a37a1 fixed ewald self-energy update and updated documentation 2022-01-27 16:48:22 -06:00
cd8b674f4b expand path to include LAMMPS shared lib 2022-01-27 17:46:18 -05:00
0bf941219f silence compiler warnings 2022-01-27 17:21:50 -05:00
d391ae845b convert static class members with git info to functions to simplify auto-export on Windows 2022-01-27 17:20:05 -05:00
265588d480 Reduce differences between original pair hybrid and kokkos variant 2022-01-27 16:14:46 -05:00
62ff23abe7 simplify building serial executables by incorporating the STUBS/mpi.o object in LAMMPS library 2022-01-27 15:59:48 -05:00
735d6926a1 Update to KK tersoff styles for consistent nofdotr
Inspired by f82096c46c
2022-01-27 14:36:45 -05:00
b3647d8e94 Add missing override keywords 2022-01-26 16:16:53 -05:00
a6ef114bfb Ensure both Python Interpreter and Development header version match 2022-01-26 15:27:36 -05:00
293f4eb0ed Add Python 3.10 to detection 2022-01-26 15:21:57 -05:00
2ed8e5cf02 Use setuptools instead of distutils in setup.py
distutils will be removed soon (Python 3.12)
2022-01-26 14:58:28 -05:00
415476983d Merge branch 'develop' into cg-dna 2022-01-26 19:31:48 +00:00
9b6bb00d07 Added unit test for atom_style oxdna 2022-01-26 19:20:34 +00:00
d51017ff50 Merge pull request #3095 from akohlmey/collect-small-changes
Collected small changes and fixes
2022-01-26 12:04:44 -05:00
d861dbe8e0 Remove unused variable 2022-01-26 11:37:53 -05:00
71a373cadb reshuffle Body struct members and add dummy for better alignment 2022-01-26 10:46:19 -05:00
8ca1004c03 cosmetic. align with clang-format 2022-01-26 10:45:46 -05:00
120662c438 correct citation info 2022-01-26 10:45:30 -05:00
cdd23ac9c2 Merge pull request #3097 from stanmoore1/dump_balance
Add option to balance dump file output
2022-01-25 15:53:38 -05:00
3297ed7c5f Refactor some declarations in KOKKOS package
Adds C++11 template helpers to shrink larger declarations.
2022-01-25 14:29:00 -05:00
75a00f4d11 minor cleanup 2022-01-25 08:52:53 -07:00
64dbce26dc Cannot shrink buf 2022-01-25 08:45:13 -07:00
35dbabd471 alternate fix for tag caching issue in INTEL package 2022-01-25 07:39:37 -05:00
0b693e729d Whitespace 2022-01-24 17:33:36 -07:00
c914fc6baf Small doc tweak 2022-01-24 16:33:11 -07:00
67af170929 Sorting is not required for balancing 2022-01-24 16:22:55 -07:00
cb9ba8c0a3 Simplify code 2022-01-24 16:05:27 -07:00
a80f7ed11f Add error message to header file 2022-01-24 15:32:20 -07:00
aeb25b5a37 Tweak docs 2022-01-24 15:28:40 -07:00
1d60e4c463 Add docs 2022-01-24 15:16:49 -07:00
16810b84eb Add option to balance dump file output 2022-01-24 14:35:27 -07:00
f9a2006d73 reorder includes 2022-01-24 08:44:29 -05:00
88dadd0fff consistently refer to INTEL package in upper case 2022-01-23 21:12:22 -05:00
cd16556256 add missing break statements.
@GenieTim this bug may have tainted your results. you would always get the energy value for any of the dx, dy, dz keywords
2022-01-22 17:13:54 -05:00
81e7583a8d initialize pointers, use provided constant, reorder include statements 2022-01-22 17:07:12 -05:00
f814dc5ff9 add checks after reading data 2022-01-22 17:06:28 -05:00
458ae4e38a initialize pointers, remove unused class member 2022-01-22 17:06:13 -05:00
d854e58d00 add sanity check 2022-01-22 16:51:07 -05:00
c93fba5e2d make certain that offset is always initialized 2022-01-22 16:45:38 -05:00
5142934a26 update to modern matrix representation 2022-01-22 16:38:58 -05:00
900ff39403 make consistent 2022-01-22 16:33:44 -05:00
78ed631877 spelling 2022-01-22 16:30:03 -05:00
fa88dacd7b integrate into manual and build/source code system. apply conventions 2022-01-22 16:29:48 -05:00
5db5322902 move compute to its designated location 2022-01-22 16:24:07 -05:00
7aed8954a5 Add paragraphs in Modify_style.rst 2022-01-22 11:03:44 -05:00
ef2969dfbf use override keyword in plugin sources 2022-01-22 10:30:58 -05:00
79a9829e92 Apply override to remaining classes 2022-01-22 09:56:01 -05:00
3e3cd4c94d Added correct units for pressure, still getting wrong answer 2022-01-21 19:46:54 -07:00
3286fcb13a Added correct units for pressure, still getting wrong answer 2022-01-21 19:29:23 -07:00
c16caea13b Fixed bounds error 2022-01-21 19:17:12 -07:00
384b715d8c First pass at fix numdiff/stress 2022-01-21 18:53:06 -07:00
12d708b97c Apply override to more classes 2022-01-21 18:24:06 -05:00
44bc766060 Apply override to more classes 2022-01-21 16:58:32 -05:00
06beb28d7d Apply override to Pair classes 2022-01-21 16:13:49 -05:00
6506be9409 update programming style 2022-01-21 15:56:58 -05:00
ff3f762499 Apply override to Fix classes 2022-01-21 14:45:53 -05:00
f83271aa40 Apply override to Compute classes 2022-01-21 13:23:36 -05:00
0d4bbf60e6 Apply override to Dihedral classes 2022-01-21 12:48:11 -05:00
3ff1902b57 Renamed born method born_matrix in all classes. Changed compute_born to compute_born_matrix. Changed the compute coding to suit the LAMMPS style rules better. 2022-01-21 18:39:16 +01:00
57def1a2d5 output reformatting and refactoring 2022-01-21 11:26:55 -05:00
75d20c40ed remove threebody tag caching altogether since it is not reliable 2022-01-21 11:26:26 -05:00
3311b1344c consolidate pair-wise vs pairwise spelling 2022-01-21 10:48:35 -05:00
3a6bd2e698 update comment about pair_write restrictions 2022-01-21 10:47:49 -05:00
67dec40afa make certain pointers are initialized 2022-01-21 06:55:20 -05:00
9c8431bf87 correct calls to memset() 2022-01-21 06:55:06 -05:00
557e25d6fb Apply override to Bond classes 2022-01-20 18:00:16 -05:00
4e89488f27 Apply override to Angle classes 2022-01-20 17:53:38 -05:00
d4ec931991 Apply override to FileReader classes 2022-01-20 17:49:23 -05:00
7387643b87 Apply override to Improper classes 2022-01-20 17:36:43 -05:00
5e37f9d5a7 Apply override to KSpace classes 2022-01-20 17:14:33 -05:00
586cf6c3bf Apply override to Dump classes 2022-01-20 16:58:23 -05:00
e73158bd7e whitespace/formatting 2022-01-20 16:56:12 -05:00
4104353d7a plug memory leak 2022-01-20 16:55:59 -05:00
49dca516ea simplify API of Force::store_style() 2022-01-20 16:48:44 -05:00
7c9b0c1e8e Apply override to more core classes 2022-01-20 16:43:04 -05:00
5c62dc0986 Apply override to Comm classes 2022-01-20 16:39:36 -05:00
c9776dad6f Apply override to Command classes 2022-01-20 16:35:59 -05:00
dbe267cb88 join lines, whitespace 2022-01-20 16:04:26 -05:00
0b24c5b498 workaround for segfaults due to NULL pointer dereference with hybrid styles 2022-01-20 16:04:07 -05:00
06cb86dfb9 Apply override to NTopo classes 2022-01-20 15:53:01 -05:00
7aaa85c3a1 Apply override to NBin classes 2022-01-20 15:44:16 -05:00
32a19d982a Apply override to NStencil classes 2022-01-20 15:37:15 -05:00
222ea31d8d Remove override = default destructor lines 2022-01-20 15:28:47 -05:00
8531622966 Merge branch 'develop' of https://www.github.com/lammps/lammps into Elastic_stress 2022-01-20 09:53:07 +01:00
f420bce07e First commit of the Elastic constant computation compute modification 2022-01-20 09:52:24 +01:00
7ee3171d16 Apply override to NPair classes 2022-01-19 21:51:21 -05:00
b45a6d7720 Apply override to AtomVec classes 2022-01-19 17:31:41 -05:00
a0e2a617e0 Merge pull request #3092 from stanmoore1/kk_makefiles
Small tweaks to Kokkos Files
2022-01-19 16:06:42 -05:00
9d8394fe63 Apply override to text_file_reader.h 2022-01-19 14:45:32 -05:00
c166549c74 Apply override to KOKKOS classes up to this point 2022-01-19 14:26:25 -05:00
b8d4030983 Update more core class destructors 2022-01-19 13:27:08 -05:00
e283bfa1fa Apply override to Minimize classes 2022-01-19 13:23:28 -05:00
b7dc1d9dd6 Merge pull request #3091 from akohlmey/more-parsing-refactor
More file parsing refactoring
2022-01-19 12:41:13 -05:00
6e8d9cb532 Port bugfix in Kokkos 2022-01-19 10:27:02 -07:00
0a8cbcef2b Add -DNDEBUG to Kokkos Makefiles 2022-01-19 10:19:50 -07:00
0a89e5bd24 Remove non-ASCII chars 2022-01-19 10:18:25 -07:00
4f0cde40fd White no longer exists 2022-01-19 10:16:53 -07:00
4cd5c40374 Merge pull request #3089 from akohlmey/collected-small-changes
Collected small changes and fixes
2022-01-19 11:44:33 -05:00
7573e60a1e Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes 2022-01-19 10:21:12 -05:00
c85cdb2732 always fall back to using the .so extension if available in the LAMMPS module folder 2022-01-19 10:11:16 -05:00
7676f66674 modernize potential file parsing 2022-01-19 06:29:27 -05:00
f5ad91f9fe minor tweaks 2022-01-19 06:28:53 -05:00
0595e4d7cd refactor parsing of pair style list parameter file 2022-01-19 00:24:01 -05:00
c4c3b545b2 modernize fix gle matrix file reading 2022-01-18 19:55:50 -05:00
e22f62f6db add some metadata for fix gle matrix files 2022-01-18 19:55:30 -05:00
b890b564ca modernize electron stopping file reader 2022-01-18 16:48:26 -05:00
ef13455d6b add some metadata tags 2022-01-18 16:48:07 -05:00
0099d2584b Apply override to Integrator classes 2022-01-18 15:17:04 -05:00
778879a0eb Apply override to Body classes 2022-01-18 14:56:44 -05:00
1792b3b0cf Apply override to Reader classes 2022-01-18 14:39:31 -05:00
d19f799585 Apply override to Region classes 2022-01-18 14:31:29 -05:00
576f2266ae Mark virtual destructors in derived as override
Following C++ Core Guideline C.128
2022-01-18 14:28:25 -05:00
be7e6d0939 Avoid std::string copies 2022-01-18 13:22:55 -05:00
38bcc493b0 simplify and modernize CMAP file parser 2022-01-18 10:28:40 -05:00
389c35a2d3 use alternate method to create triclinic box for unit test 2022-01-18 09:09:37 -05:00
1c8f427e8a detect when MSM::setup() is called before proper initialization and error out 2022-01-18 09:09:19 -05:00
29b5c2659c source code formatting 2022-01-18 09:04:04 -05:00
c1f7685c98 Revert "before changing box settings, it must be initialized at least once"
Looking for alternate solution since this change has
too many unwanted side effects.

This reverts commit 2e85233b11.
2022-01-18 08:30:54 -05:00
2e85233b11 before changing box settings, it must be initialized at least once
otherwise change_box would not really be needed,
but commands like boundary can (still) be used
2022-01-18 07:20:28 -05:00
752552e0f8 remove duplicate code 2022-01-18 06:39:20 -05:00
a02e11040d whitespace 2022-01-18 06:34:57 -05:00
f0f4a8e6dc plug some memory leaks in MSM kspace style(s) 2022-01-18 06:01:32 -05:00
241a44f1af another workaround for rerun 2022-01-18 04:56:47 -05:00
e1d028ec88 Merge pull request #3087 from akohlmey/pair-harmonic
Add new pair styles harmonic/cut for repulsive-only harmonic interaction
2022-01-17 18:53:35 -05:00
5530927bd4 Merge pull request #3088 from stanmoore1/kk_hip_fixes
Fix Kokkos HIP compile issues
2022-01-17 18:07:29 -05:00
af231d5447 Fix comments in Makefiles 2022-01-17 08:54:17 -07:00
8b89be6061 Kokkos SNAP tuning for HIP 2022-01-17 08:49:00 -07:00
a93e5baa73 Add Kokkos HIP Makefiles 2022-01-17 08:44:49 -07:00
cb796e8b60 Fix HIP compile issues 2022-01-17 08:21:52 -07:00
dc6e558191 use Tokenizer class to parse bond colors 2022-01-16 20:20:07 -05:00
0eeb3b203c add tests for molecule command 2022-01-16 16:50:23 -05:00
943fe487b5 update whitespace and argument formats for longer source lines 2022-01-16 15:36:01 -05:00
1e7969c7b9 add new pair styles harmonic/cut and harmonic/cut/omp 2022-01-15 19:34:47 -05:00
aa71ea6c40 Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes 2022-01-14 20:25:05 -05:00
e271a54802 re-enable using rerun after the changes from PR #3052 2022-01-14 20:25:00 -05:00
c17eb14739 Fixing memory leak and wrong label 2022-01-14 15:45:18 -07:00
11cc8a6a59 whitespace 2022-01-14 15:59:05 -05:00
ed702b9309 don't allow exceptions to "escape" a destructor 2022-01-14 15:58:57 -05:00
dcb1ddb282 remove redundant code 2022-01-14 14:55:13 -05:00
2213eb8d3f use enum with symbolic constants instead of numbers 2022-01-14 14:45:12 -05:00
7afa22f045 check return values for errors 2022-01-14 13:02:15 -05:00
0540b93123 fixed division by zero issue in geometry 2022-01-13 17:15:45 +00:00
524d86605a Fixing reference in documentation 2022-01-12 10:56:30 -07:00
19abc5d329 Merge branch 'develop' into BPM 2022-01-12 10:52:11 -07:00
b1ed5e5b27 memory optimised with ragged arrays, implemented 3D ragged arrays 2022-01-12 17:02:09 +00:00
698256f4fe update fedora singularity image to Fedora 35 2022-01-12 08:17:54 -05:00
e0cde6270e Merge branch 'develop' into kokkos_unittests 2022-01-11 12:59:36 -05:00
5f607fad56 optimised memory management in chain generation 2022-01-11 16:46:50 +00:00
240db21054 silence possible warnings about missing files on "make clean-all" 2022-01-11 11:46:08 -05:00
8aaae8e6ee Fix count issue 2022-01-07 15:22:53 -07:00
40c140e56e Improve PairReaxFFKokkos neigh list algorithm 2022-01-07 14:48:07 -07:00
878557dd48 Merge pull request #3079 from akohlmey/next_patch_release
Step version strings for the next patch release
2022-01-07 11:31:23 -05:00
1f81e2afad Added duplication of stdout into logfile 2022-01-07 13:45:54 +00:00
11d66f8f1d Merge branch 'lammps:develop' into cg-dna 2022-01-07 12:45:38 +00:00
e3dd2908d9 Step version strings for the next patch release 2022-01-06 19:42:45 -05:00
b300a93b67 Merge pull request #3073 from akohlmey/fmtlib-8.1-update
Update included fmtlib to version 8.1.1
2022-01-06 19:40:00 -05:00
1f924e9fc1 Merge pull request #3071 from akohlmey/collected-small-changes
Collected small changes and bug fixes
2022-01-06 19:22:30 -05:00
9c9bc4790b update to fmtlib-8.1.1 2022-01-06 18:31:15 -05:00
8e0622d523 Merge pull request #3046 from donatas-surblys/centroid-stress-constraint-rigid
Centroid atomic stress for shake, rattle and rigid/small
2022-01-05 12:36:27 -05:00
3ff2f53ead add citations to centroid/stress/atom 2022-01-05 18:45:35 +09:00
e5416a9fee update documentation for new centroid stress for shake and rigid/small 2022-01-05 19:02:25 +09:00
4aba9e9bb6 cosmetic and whitespace changes 2022-01-04 23:08:32 -05:00
40abc0886c adjust for double precision floating point 2022-01-04 23:02:17 -05:00
d0f203127d create missing de,df table elements from linear extrapolation 2022-01-04 23:01:38 -05:00
12420181e1 Merge pull request #3072 from akohlmey/refactor-data-file-parsing
Modernize parsing of topology data sections of data files
2022-01-04 13:21:14 -05:00
8ae68d71dd Merge pull request #3062 from Luthaf/netcdf-standard
Follow Amber NetCDF standard more closely
2022-01-04 13:02:50 -05:00
ede7787741 Refactor Atom::data_bodies() 2022-01-04 11:56:56 -05:00
f557bf6e20 implement suggestion by @rbberger 2022-01-04 11:37:32 -05:00
fd3884d705 disable centroid stress for non-small rigid fixes 2022-01-04 18:09:49 +09:00
1225b609d8 disable centroid stress for fix rigid/small/omp 2022-01-04 17:43:32 +09:00
6a73fc0472 refactor reading last line of potential file code to be more efficient 2022-01-03 21:35:26 -05:00
8439f87b76 make consistent with other reference 2022-01-03 18:26:56 -05:00
de404d1ed8 Merge branch 'update_doc_file' of github.com:jddietz/lammps into collected-small-changes 2022-01-03 18:26:01 -05:00
49412ce0f7 implement workaround windows from https://github.com/fmtlib/fmt/issues/2691
this also reverts commit c5a7f4c3ac
and thus results in consistent crt behavior on windows
2022-01-03 18:01:33 -05:00
a9a568aefa Updated references for pair_nm.rst 2022-01-03 11:50:04 -10:00
7e92809288 Merge pull request #3069 from Vsevak/fix-hip-ffast-math
Fix HIP Makefile under lib/gpu
2022-01-03 11:37:55 -05:00
b8ed590bde Merge pull request #3068 from ndtrung81/gpu-lib-makefiles
Updates to Makefiles under lib/gpu
2022-01-03 10:48:45 -05:00
90726ca088 explain that the computed force in python pair is force/r same as in Pair:single() 2022-01-03 10:12:51 -05:00
8c95a8db23 Incorporate bugfixes from issue #3074, a few additional cleanups 2022-01-03 10:11:03 -05:00
c5a7f4c3ac fmtlib now uses UCRT instead of MSVCRT. add library to avoid linker failure 2022-01-02 15:24:04 -05:00
bb1c12d22b import fmtlib v8.1.0 2022-01-02 13:42:27 -05:00
f3c5593c50 correct code example 2022-01-01 16:40:54 -05:00
e5c517c8d8 silence compiler warnings 2022-01-01 00:21:14 -05:00
9efa2369dd join wrapped strings 2021-12-31 14:34:24 -05:00
c17a183816 do error checking already in read_data code 2021-12-31 14:34:09 -05:00
863de683ee do not shadow "natoms" class member 2021-12-31 13:43:56 -05:00
6d9764e140 add missing advance of buffer pointer 2021-12-31 00:14:52 -05:00
ca3be99e77 correct function prototypes 2021-12-30 23:48:42 -05:00
e6e9aed385 modernize/correct parsing for Bonus and Bodies sections 2021-12-30 22:58:14 -05:00
8d53cd1e5d modernize parsing of Velocities section of data files 2021-12-30 19:14:09 -05:00
def1072f0f port data_atom() changes to KOKKOS 2021-12-30 18:42:15 -05:00
7f2b505df3 apply utils overloads 2021-12-30 11:14:48 -05:00
cf9429dc68 implement overloads so that utils::*numeric() functions can be safely used with std::string() 2021-12-30 11:03:37 -05:00
64d6a2fd1f modernize parsing of the Atoms section 2021-12-29 20:24:27 -05:00
c97483c46f modernize parsing of the Masses section in data files 2021-12-29 19:36:18 -05:00
78df5c2258 modernize parsing of Bonds/Angles/Dihedrals/Impropers section of data files 2021-12-29 19:18:42 -05:00
27a6c63aeb correct format string for Error::one() 2021-12-29 16:18:48 -05:00
88b42503f9 address segfault issue with fix nve/gpu when group is not "all" 2021-12-29 14:06:22 -05:00
14e5474174 restore obsolete compilation settings similar to parallel makefile 2021-12-27 20:31:42 -05:00
053d915fc4 drop -ffast-math for HIP also when compiling with CMake 2021-12-27 20:14:30 -05:00
b781410f92 Delete fast-math flag from Makefile.hip for AMD platforms 2021-12-28 03:11:02 +03:00
47b0c8b33e whitespace 2021-12-27 11:31:01 -05:00
5594a38bb7 replace explicit Makefile.mpi with symbolic link 2021-12-27 10:47:23 -05:00
3262140b65 more detailed unit tests. do not fail if ncdump is missing. 2021-12-27 10:35:38 -05:00
6357f19260 Added back Makefile.mpi in lib/gpu/ to be consistent with documentation; updated Makefile.*; and removed the unnecessary Makefile.turing 2021-12-27 00:14:04 -06:00
091f6164c8 add minimal unit test for netcdf dumps 2021-12-26 23:22:53 -05:00
30af0cb325 define and use LMP_MAX_VAR_DIMS instead of NC_MAX_VAR_DIMS to avoid stack overflows 2021-12-26 17:15:13 -05:00
84765f4b81 Merge branch 'develop' into netcdf-standard 2021-12-23 16:42:24 -05:00
b39d1993bb Merge pull request #3052 from lammps/time-dumps2
Time-dependent dumps for variable timestep (alternate implementation)
2021-12-23 16:34:12 -05:00
6af36075ba Merge pull request #3064 from rbberger/collected-small-changes
Collected small changes and fixes
2021-12-23 16:13:35 -05:00
a653ee6b2c recover failing unit tests and whitespace fixes 2021-12-23 15:22:58 -05:00
7018ba65be Merge branch 'time-dumps2' of github.com:lammps/lammps into time-dumps2
# Conflicts:
#	src/dump_xyz.cpp
2021-12-23 15:18:56 -05:00
d694b7cc1c recover compilation 2021-12-23 14:34:49 -05:00
b7dba37e2e Merge branch 'time-dumps2' of github.com:lammps/lammps into time-dumps2 2021-12-23 14:34:00 -05:00
23f1c9de60 Merge branch 'develop' into time-dumps2 2021-12-23 14:29:04 -05:00
1185591c76 add missing fclose() 2021-12-23 08:20:47 -05:00
b2adb4df47 have internal fix/compute ids include the fix id for fix reaxff/species
this allows using the fix multiple times
also remove code and warning that checks for multiple fix instances
2021-12-23 08:20:28 -05:00
3748a14582 warn about problems with the MPIIO package 2021-12-23 01:59:45 -05:00
93c7b6928f remove dead code, silence compiler warnings 2021-12-23 01:32:31 -05:00
3b183bafbb cosmetic changes (simplify, use constexpr, remove dead code, join wrapped lines) 2021-12-23 01:23:13 -05:00
b53cda778c Merge branch 'develop' into netcdf-standard 2021-12-22 22:54:30 -05:00
09944f5d7a Merge pull request #2996 from stanmoore1/compute_phase
Add compute ave/sphere/atom
2021-12-22 21:16:25 -05:00
3dcfc0dfc6 skip redundant KOKKOS host/device styles info/help lists 2021-12-22 20:13:30 -05:00
8f62cd79f4 add missing list entry 2021-12-22 19:55:06 -05:00
586824be1b Merge pull request #3021 from stanmoore1/big_dump_sort
Allow dump sort to work with more than 2 billion atoms
2021-12-22 19:23:39 -05:00
cde7dd34fd Doc update 2021-12-21 16:46:53 -07:00
2788bc666a Update .gitignore 2021-12-21 16:44:14 -07:00
9271323cc0 Add dependency 2021-12-21 16:33:14 -07:00
1bbf45784b Rename and relocate 2021-12-21 16:29:11 -07:00
6a442e1df4 use compute_time() func in xyz output 2021-12-21 14:05:16 -07:00
6f6b384c55 Merge branch 'time-dumps2' of github.com:lammps/lammps into time-dumps2
# Conflicts:
#	src/dump_xyz.cpp
2021-12-21 15:56:19 -05:00
cd6df24e37 Fix a couple issues 2021-12-21 13:45:29 -07:00
2fec3eee6b Add overflow check to dump_h5md 2021-12-21 13:28:36 -07:00
5932a3f6f9 Merge branch 'develop' of github.com:lammps/lammps into big_dump_sort 2021-12-21 12:58:24 -07:00
cc4d7215f1 simplify. only output absolute time during MD. 2021-12-21 14:37:34 -05:00
cad9f6bf6e Merge branch 'time-dumps2' of github.com:lammps/lammps into time-dumps2 2021-12-21 12:18:38 -07:00
576e787839 make xyz dumps print out current simulation time 2021-12-21 12:18:26 -07:00
8ed35832f4 Merge branch 'develop' into time-dumps2 2021-12-21 14:16:23 -05:00
e06222099a Small tweak to docs 2021-12-21 11:51:30 -07:00
192aa7fedb Merge pull request #3065 from lammps/angle-class2-update
Angle class2 update and bugfix
2021-12-21 13:46:37 -05:00
c98f7b3e50 Clean up error message text 2021-12-21 11:40:04 -07:00
0576d525ad simplify and avoid redundant output 2021-12-21 13:39:00 -05:00
364d0be28c apply clang-format 2021-12-21 13:21:23 -05:00
c780768e91 put contents of netcdf_units into NetCDFUnits namespace 2021-12-21 13:16:23 -05:00
a2ab59b162 Fix cutoff logic 2021-12-21 11:07:03 -07:00
ded48cc031 more optimizations and extend to other dump styles 2021-12-21 10:57:42 -07:00
2533abb266 Add doc page 2021-12-21 10:46:23 -07:00
65204e5df0 Add error checks, tweak input 2021-12-21 10:46:00 -07:00
ecc0205436 reset force test references for Class2 angle styles 2021-12-21 11:28:26 -05:00
6187431399 Fix compile error in angle_class2_kokkos 2021-12-21 08:34:02 -07:00
f72b448544 WIP: cleanup/reorganize 2021-12-21 08:32:51 -07:00
4d31e300c6 change to checking timestep for time dumps at start of each step 2021-12-20 16:39:17 -07:00
f271d2180f Remove unused variable 2021-12-20 16:05:44 -07:00
8d34fb8e1f Merge branch 'develop' of https://github.com/lammps/lammps into compute_phase 2021-12-20 14:19:39 -08:00
4bc85f07e3 same changes in OPENMP and KOKKOS versions of angle class2 2021-12-20 14:29:17 -07:00
06c45fbe68 fix compiler errors 2021-12-20 14:26:22 -07:00
6bafa11080 Fix host compile error 2021-12-20 14:08:00 -07:00
36f3c8c899 Merge branch 'develop' of github.com:lammps/lammps into amd_hip_opt 2021-12-20 13:23:51 -07:00
2ee88dab7e same change for angle class2/p6 2021-12-20 10:35:41 -07:00
97b5651633 minor correction to angle class2 2021-12-20 10:33:05 -07:00
79844a3f34 Tweaks to team_size/vector_length 2021-12-20 09:58:37 -07:00
8dd61144cb Merge branch 'develop' into kokkos_unittests 2021-12-20 10:54:27 -05:00
f1daa22cdf Merge branch 'lammps:develop' into cg-dna 2021-12-20 13:13:41 +00:00
461398bc0e join lines 2021-12-19 17:46:51 -05:00
88f8e41702 PHONON package is now only a soft dependency on KSPACE 2021-12-18 18:22:47 -05:00
3246fd62a7 size_t is unsigned, so can't be negative 2021-12-17 17:10:21 -05:00
a3a6077115 Use sfread and sfgets in reader_native.cpp 2021-12-17 17:03:58 -05:00
1c25c96aaa netcdf: deduplicate gettings units as strings 2021-12-17 17:13:29 +01:00
f8ee6dc680 netcf: define units for all variable where this is possible 2021-12-17 11:49:25 +01:00
dc9d539b6c netcdf: fix spatial, cell_spatial and cell_angular variable definitions
Dimension 0 refered to the frame dimension, but we need the spatial dimension instead
2021-12-17 11:49:25 +01:00
4bf065ed1c netcdf: use float values for scale factors instead of double 2021-12-17 10:55:54 +01:00
d04f428c1a netcdf: default to float variable for everything
The standard convention require all values to be stored as
float, users still have the ability to use double with
`dump_modify <id> double yes`
2021-12-17 10:54:43 +01:00
94aad92b44 Tweaks to optimized SPMV and fused CG solve 2021-12-16 13:55:57 -07:00
90f3b0675e Cleaned up/reorganized version of optimized Kokkos fix_qeq_reaxff 2021-12-16 13:01:58 -07:00
f7f32642ca Temporarily revert EAM changes until a more portable/general solution is available 2021-12-16 10:13:00 -07:00
1f1c778225 Remove redundant GPL license 2021-12-15 16:51:53 -07:00
f6f60660c0 Cleanup for EV_FLOAT 2021-12-15 16:42:29 -07:00
2d4f030f11 Merge pull request #3060 from rbberger/binary_dump_reader_bugfix
Bugfix for binary dump reader heap corruption
2021-12-15 17:20:12 -05:00
b8053e466b Remove unused header, whitespace 2021-12-15 15:12:55 -07:00
0d238d554c Cleaned up version of optimized Kokkos Tersoff 2021-12-15 14:45:48 -07:00
884dcbe4fa Refactor reader_native.cpp
- Use std::string instead of error-prone char buffers
- Limit reading files to known magic strings DUMPATOM and DUMPCUSTOM
2021-12-15 16:09:50 -05:00
2663087861 Merge branch 'develop' of github.com:lammps/lammps into amd_hip_opt 2021-12-15 13:56:15 -07:00
dccd74d6c4 Merge pull request #11 from arghdos/patched_ff
Patched ff
2021-12-15 13:46:12 -07:00
902f9dd1fa Move allocation to correct location 2021-12-15 15:05:59 -05:00
9fbca5111d fix runtime error from lack of comm->setup() 2021-12-15 11:52:38 -08:00
3748ddb1ae Merge branch 'lammps:develop' into cg-dna 2021-12-15 09:02:57 +00:00
40c0925cb4 Updated and added third order kokkos 2021-12-14 14:25:49 -08:00
b3fcda3214 Merge pull request #3057 from akohlmey/next_patch_release
Step version strings for the next patch release
2021-12-14 17:08:29 -05:00
676c5a3666 Merge pull request #3059 from nw13slx/rerun_bin
[BUGFIX] Wrong block reading in ReaderNative::read_atoms when binary is True and natom > 1024
2021-12-14 16:09:35 -05:00
3efddc4fb6 whitespace 2021-12-14 14:50:38 -05:00
5051055c76 Remove dead code and move nchunk read to read_header 2021-12-14 14:33:17 -05:00
fd18403b0a Merge pull request #3056 from Ruyk/dpcpp-anon-struct-workaround
DPC++ Anonymous Struct Workaround
2021-12-14 11:32:52 -05:00
80819f3793 reverse skip_buf with chunk 2021-12-14 11:09:36 -05:00
4be0e0a4e5 Merge branch 'develop' of https://github.com/lammps/lammps into big_dump_sort 2021-12-14 08:00:14 -07:00
26ebf97630 Merge branch 'develop' of https://github.com/lammps/lammps into compute_phase 2021-12-14 07:56:41 -07:00
62cdf7ab2d update docs 2021-12-14 09:13:05 -05:00
1c38b7633f generalize and simplify support for accelerated commands with suffixes 2021-12-14 09:06:04 -05:00
dee995f918 consistent author attribution 2021-12-14 09:05:28 -05:00
d6048ba576 added copyright/license header and updated author attribution 2021-12-14 08:41:49 -05:00
5b57d662c3 Merge branch 'develop' into OptimizedDynamicalMatrix 2021-12-14 08:35:58 -05:00
813f756382 Merge branch 'develop' into dpcpp-anon-struct-workaround 2021-12-14 06:59:12 -05:00
91633a4460 make workaround easier to disable and to remove 2021-12-14 06:59:03 -05:00
7c3deaa04b limit the skip buf to MAXSMALLINT 2021-12-13 23:03:10 -05:00
b1d0dd65ea simply the while loop and add correct initial m value 2021-12-13 22:57:39 -05:00
d4cec8ebe7 handle block reading in ReaderNative::read_atoms when binary is True 2021-12-13 21:38:16 -05:00
5a39efff19 Merge pull request #3055 from akohlmey/collected-small-changes
Final changes for next patch release
2021-12-13 21:24:11 -05:00
744e615dbb Revamping public methods for history, adding support for bond react 2021-12-13 17:35:53 -07:00
ccdb939a40 Merge pull request #3054 from nw13slx/rerun_bin
Support binary native dump files with read_dump and rerun
2021-12-13 19:22:00 -05:00
a887d880c6 debugged kokkos support to dynamical_matrix command 2021-12-13 14:14:14 -08:00
72420bad3a Merge pull request #3058 from jtclemm/documentation_edits
Fixing some references to MISC package in documentation
2021-12-13 16:59:10 -05:00
ff41864cd9 remove redundant deletes 2021-12-13 15:28:27 -05:00
cdc831bb89 Update src/reader_native.cpp
Co-authored-by: Richard Berger <richard.berger@temple.edu>
2021-12-13 12:23:30 -08:00
f3543a839e Update src/reader_native.cpp
Co-authored-by: Richard Berger <richard.berger@temple.edu>
2021-12-13 12:23:21 -08:00
3eae7b4200 Update src/reader_native.cpp
Co-authored-by: Richard Berger <richard.berger@temple.edu>
2021-12-13 12:23:14 -08:00
af2e295ac2 Update src/reader_native.cpp
Co-authored-by: Richard Berger <richard.berger@temple.edu>
2021-12-13 12:22:57 -08:00
bb6d581ef8 Update src/reader_native.cpp
Co-authored-by: Richard Berger <richard.berger@temple.edu>
2021-12-13 12:22:39 -08:00
1e73beca37 Merge pull request #2809 from rbberger/fmt_upgrade
Upgrades fmtlib to v8.0.1
2021-12-13 15:14:58 -05:00
2b85799729 Updating MISC to EXTRA-X in doc files 2021-12-13 12:27:00 -07:00
94ac1ad4a0 update version strings for the next patch release 2021-12-13 11:56:44 -05:00
9159b37e47 Merge branch 'develop' into fmt_upgrade 2021-12-13 10:03:38 -05:00
d33019d8e4 llvm anonymous struct workaround 2021-12-13 11:08:06 +00:00
94d5c75fdf small updates for docs and comments 2021-12-12 18:11:33 -05:00
33aea05080 adjust example for changes in when reset_timestep may be used 2021-12-12 10:01:52 -05:00
7db29112d8 replace read_buf to skip_buf in skip function 2021-12-12 00:26:55 -05:00
913b1536d4 whitespace 2021-12-11 21:18:33 -05:00
274b14618f fold match_fields() back into read_header() function 2021-12-11 21:17:41 -05:00
e23a2bfb55 Merge branch 'rerun_bin' of github.com:nw13slx/lammps into rerun_bin
# Conflicts:
#	src/reader_native_bin.cpp
2021-12-11 21:05:01 -05:00
87501347ad add minimal unit tests for reading binary dumps 2021-12-11 21:03:32 -05:00
0603dc6323 whitespace 2021-12-11 20:46:24 -05:00
86b696c78c Merge branch 'develop' into rerun_bin 2021-12-11 20:31:48 -05:00
56fd07d88e fold native binary reader class in to native reader class 2021-12-11 20:31:44 -05:00
565c8d6589 use fseek to skip bufs 2021-12-11 20:02:32 -05:00
8884acef24 Revert "add to compress read"
This reverts commit b22c409079.

# Conflicts:
#	src/platform.cpp
2021-12-11 19:40:21 -05:00
d7bb9b5f30 reverse clang-format on irrelevant lines 2021-12-11 17:49:29 -05:00
b22c409079 add to compress read 2021-12-11 17:44:41 -05:00
626889f534 move the rb mode to the overloaded open_file function 2021-12-11 17:36:29 -05:00
d59458fa37 clean up commands and documentation 2021-12-11 17:24:27 -05:00
8f99d8d1d9 fix skip bugs 2021-12-11 16:41:13 -05:00
6e05aff3bf Update CMake utility function get_lammps_version()
With the introduction of LAMMPS_UPDATE, version.h is no longer a single line
file. With this change the CMake utility will only process the LAMMPS_VERSION
line. Fixes issue #3038
2021-12-11 15:08:40 -05:00
250a5921a3 move match_field to protected method and format the docstring 2021-12-11 14:25:29 -05:00
2cdafb49a2 remove variable names from func declaration 2021-12-11 14:14:06 -05:00
e9f0351b67 reverse formatting on irrelevant files 2021-12-11 14:10:47 -05:00
eff26ba0b3 add read_buf method and fix bugs in inheritance 2021-12-11 14:02:58 -05:00
b1e7333348 remove wrong compression mode 2021-12-11 12:32:17 -05:00
7ab5d4edd4 add new ReaderNativeBin class 2021-12-11 11:54:21 -05:00
4f34c4374b Merge pull request #3053 from stanmoore1/kk_desul
Enable Kokkos Desul atomics in Makefile to match CMake settings
2021-12-11 06:12:50 -05:00
62f5f4d126 Merge remote-tracking branch 'github/develop' into fmt_upgrade 2021-12-10 23:04:58 -05:00
abd3df0c5a Merge pull request #3040 from akohlmey/collected-small-changes
Collected small changes and bugfixes
2021-12-10 15:51:13 -05:00
fc64fca3d9 Whitespace 2021-12-10 13:34:38 -07:00
6bd3ddf908 Don't use fetch variant of atomic if not needed 2021-12-10 13:27:57 -07:00
e49b7d0514 Remove atomics for error/warning flags since they are not needed 2021-12-10 13:14:12 -07:00
0ab0e2747c Update comment 2021-12-10 12:15:10 -07:00
7aeab56eb2 Enable Kokkos Desul atomics in Makefile to match CMake settings 2021-12-10 12:09:32 -07:00
fa8e2ccee8 Merge pull request #2958 from jddietz/nm_split_styles
nm split styles
2021-12-10 13:42:31 -05:00
668d7805d6 Fixes to doc 2021-12-10 11:34:12 -07:00
5ead32f886 more debugging and features 2021-12-10 11:13:06 -07:00
439853c4a8 Moving store/local to an internal fix 2021-12-10 10:33:52 -07:00
6140503158 update local/density examples to follow conventions more closely 2021-12-10 08:50:58 -05:00
14fc42833f modernize potential file reader for local/density 2021-12-10 08:45:01 -05:00
3fc0ea3e80 correct names of the pack/unpack routines for forward communication 2021-12-09 18:30:54 -05:00
a975d0506a update examples for pair style local/density 2021-12-09 18:21:32 -05:00
e1e46b5322 Merge pull request #3033 from rbberger/unittest_tags
Add tags to force-style unit tests
2021-12-09 18:11:08 -05:00
146c6fe5ff remove check that is no longer needed 2021-12-09 18:08:43 -05:00
0e4e830c79 document "slow" and "unstable" labels for unit tests 2021-12-09 17:02:20 -05:00
0d44c56ccc use comma consistently 2021-12-09 15:50:57 -05:00
7d48324f51 tweak force test settings 2021-12-09 15:48:24 -05:00
facb49fc27 disallow reset_timestep for time averaging fixes 2021-12-09 15:09:42 -05:00
878dd746db reduce warnings and improve portability 2021-12-09 13:55:53 -05:00
e2969d09e1 bug fix for fix dt/reset freq of 1 2021-12-09 11:53:47 -07:00
754610b9ee Merge pull request #3041 from oywg11/modified-sw-potential
A modified Stillinger-Weber potential for transition metal dichalcogenide
2021-12-09 09:43:49 -05:00
455cb09cf4 Adding compatability with MC fixes, set_array to property/atom, faster update/special/bonds, single methods, and misc small changes 2021-12-08 16:47:42 -07:00
d4149e9139 bug fixes to make a series of test inputs run correctly 2021-12-08 16:44:51 -07:00
8f0dea91c7 correct setting forward/reverse buffer size info 2021-12-08 13:54:47 -05:00
a5ee7ca73f make certain did_mix is initialized 2021-12-08 00:51:04 -05:00
bea273fc3a correct docs for pair style local/density 2021-12-08 00:22:37 -05:00
40c04a210b correct handling of data packing for forward and reverse communication 2021-12-08 00:22:36 -05:00
021f6832d5 adjust epsilon for -std=c++14 and add more unstable tags 2021-12-07 17:11:29 -05:00
26492b13d5 logic for dumps every steps and time delta 2021-12-07 13:46:36 -07:00
5cee58a9c8 Merge pull request #3049 from Ruyk/sycl-pinned-host
Use SYCL pinned host memory from Kokkos.
2021-12-07 14:07:58 -05:00
605d2b7ab2 Use SYCL pinned host memory from Kokkos.
Depends on this PR from Kokkos:
https://github.com/kokkos/kokkos/pull/4268/
2021-12-07 16:49:27 +00:00
1afdd3c011 new output vars for dumps 2021-12-07 09:16:19 -07:00
a323b00fef Merge branch 'develop' into unittest_tags 2021-12-07 10:24:46 -05:00
f3eac179e6 Expanding broken bonds documentation, adding support for more create/delete bond commands, misc small edits 2021-12-06 17:27:25 -07:00
ac57c44552 update unit test for renamed bond style 2021-12-06 16:35:20 -05:00
6314290558 clarify docs for bond style fene/nm/split and rename to fene/nm 2021-12-06 16:21:12 -05:00
021a59965e convert to ASCII 2021-12-06 15:54:34 -05:00
f88009c626 correct comments 2021-12-06 15:50:16 -05:00
fa913c3e5b clarify r_0 versus sigma 2021-12-06 15:50:09 -05:00
a84c0a43bd address spelling issues 2021-12-06 15:35:32 -05:00
c48810c545 whitespace 2021-12-06 15:29:23 -05:00
ef186d9628 Updated pair_nm.rst 2021-12-06 15:09:45 -05:00
1238f1b273 correct multiple math typesetting errors, typos, and inconsistencies 2021-12-06 14:10:41 -05:00
274ffe1f48 Consolidate "Jiang" citations 2021-12-06 14:07:36 -05:00
b0305a09e9 whitespace 2021-12-06 13:49:13 -05:00
3d3b153b35 add proper symlink 2021-12-06 13:45:04 -05:00
d7c8cb3e48 fix documentation issues 2021-12-06 05:57:52 +02:00
e36029293a update documentation and examples 2021-12-04 17:38:29 +02:00
40258f8b9a Adding Steve's edits in documenation + associated changes in files 2021-12-03 16:12:31 -07:00
8aee8cc427 tweak documentation 2021-12-03 17:20:07 -05:00
8bc1f8b9ea whitespace 2021-12-03 17:16:54 -05:00
085de6f857 update test and add test using maxdelcs keyword with non-default values 2021-12-03 17:16:46 -05:00
c72771ae1d align with non-OpenMP version 2021-12-03 17:16:08 -05:00
6b28816c11 must set defaults for (optional) maxdelcs keyword, add consistency check 2021-12-03 17:15:44 -05:00
71edaca36c update unit test reference 2021-12-03 14:20:23 -05:00
2d6e4d4d79 Merge branch 'develop' into nm_split_styles 2021-12-03 14:18:07 -05:00
405fea44da convert from CR-LF to consistent line endings 2021-12-03 14:17:31 -05:00
859e0348ea fixed some issues 2021-12-03 17:45:31 +02:00
1dd4a67771 add keyword for userdefined maxdelcs 2021-12-03 17:32:08 +02:00
262c103aaa replacing hard-coded values with named constants 2021-12-03 15:46:00 +02:00
9a90803b23 Merge pull request #2984 from lammps/delete-atoms-porosity-group
Add new group arg for delete_atoms porosity
2021-12-02 16:07:49 -05:00
9307a376aa Merge pull request #3044 from ellio167/kim-lib-install-py
Adjustments to lib/kim/Install.py and docs
2021-12-02 15:43:03 -05:00
ef90089d8d Merge pull request #2867 from ndtrung81/gpu-newton-pair-on
Enabled newton pair on for gpu pair styles
2021-12-02 15:42:34 -05:00
2ba5aeec31 whitespace 2021-12-02 15:30:53 -05:00
4ecb894d9d simplify by using new API 2021-12-02 15:27:06 -05:00
637c6bf28a Merge branch 'develop' into delete-atoms-porosity-group 2021-12-02 15:15:47 -05:00
fc0aa0e844 Merge pull request #3043 from rbberger/container_updates
Container updates
2021-12-02 14:43:20 -05:00
42df189abd update .gitignore 2021-12-02 13:49:26 -05:00
2527eb5914 reorganize integration of sw/mod into the sw pair style docs 2021-12-02 12:47:18 -05:00
3dff9cf2c1 update false positives 2021-12-02 12:27:54 -05:00
8847f359ba integrate sw/mod pair style into documentation 2021-12-02 12:23:01 -05:00
7651be3e02 add force style test 2021-12-02 12:20:33 -05:00
ecd51ba4fe remove obsolete/redundant files 2021-12-02 12:20:10 -05:00
718a9e2bae whitespace 2021-12-02 12:13:12 -05:00
c33e6538bb simplification by deriving pair style sw/mod/omp from sw/omp instead of sw/mod 2021-12-02 12:12:57 -05:00
3bf171d753 move pair sw/mod/omp to correct location 2021-12-02 12:01:05 -05:00
30d3b2c209 merge rst files and add omp style 2021-12-02 15:46:00 +02:00
47f578bcca Fixup typos 2021-12-01 21:15:28 -06:00
65d31dfeb1 Adjustments to lib/kim/Install.py and docs 2021-12-01 16:49:00 -06:00
ca8dddf002 upgrade of lb/fluid fix
This includes documentation files in the rst format in the doc/src directory, examples in the examples/PACKAGES/latboltz directory and source files in the src/LATBOLTZ directory.
2021-12-01 14:31:57 -05:00
c03cdfdf60 Add libyaml-cpp dev package 2021-12-01 14:00:08 -05:00
195455faa8 Update GPU and NVIDIA container definitions 2021-12-01 13:48:54 -05:00
01ddfe95f0 prepare fix plumed to be compatible with version 2.8 2021-12-01 13:44:56 -05:00
e75312ddf6 Update ROCm containers to v4.5.0 2021-12-01 13:24:07 -05:00
ff919af3ef Update container bundled PLUMED to v2.7.3 2021-12-01 11:39:05 -05:00
4d4c04dd7c include support for building with plumed 2.7.3 and 2.6.5 2021-12-01 10:56:23 -05:00
e0770a2ac0 Add Ubuntu 20.04 OneAPI container definition 2021-12-01 10:41:01 -05:00
3bc36070a9 fix the invoking issue 2021-12-01 04:56:46 +02:00
8589ecd6c1 Merge pull request #3019 from stanmoore1/kk_update_3.5.0
Update Kokkos library in LAMMPS to v3.5.0
2021-11-30 16:58:38 -05:00
b3d7904120 Update docs 2021-11-30 11:12:30 -07:00
420c1097a9 Update Kokkos CMake file 2021-11-30 11:02:11 -07:00
b2410ee70b Update Kokkos library in LAMMPS to v3.5.0 2021-11-30 10:57:43 -07:00
c0b827e006 Merge branch 'kk_update_3.5.0' of github.com:stanmoore1/lammps into kk_update_3.5.0 2021-11-30 10:52:51 -07:00
b61fc38711 Merge branch 'develop' of github.com:lammps/lammps into kk_update_3.5.0 2021-11-30 10:52:21 -07:00
4a05628938 bug fixes from Doug Spearot 2021-11-30 08:22:38 -07:00
8556b71949 derived class of sw 2021-11-30 10:14:20 +02:00
7113334f99 Fixing typos in documentation 2021-11-29 16:19:45 -07:00
5fa185bfda Fixing bug in failing to update values across runs 2021-11-29 14:04:07 -07:00
f1c52ddb5c make documentation of a few pair styles more consistent with the rest 2021-11-29 15:57:11 -05:00
597054edf3 A modification to SW potential 2021-11-29 16:08:32 +02:00
ddf97fa8fc tweak error messages 2021-11-24 15:34:43 -05:00
2a68c6edba add (global) restart support to fix charge/regulation 2021-11-24 15:34:30 -05:00
ae0f4dcfc1 generate atom tags for newly created atoms, if tags are enabled. triclinic support. 2021-11-24 15:33:32 -05:00
4d19895a88 Merge branch 'master' into delete-atoms-porosity-group 2021-11-23 16:05:02 -07:00
2c5441257e Disable tersoff with shift flag tests for kokkos_omp 2021-11-23 15:03:48 -05:00
9517467113 Add missing KOKKOS suffix in PairTersoffZBLKokkos 2021-11-23 14:56:35 -05:00
0b87039fbb Skip MolPairStyle:hybrid-scaled test for kokkos_omp 2021-11-23 14:28:59 -05:00
2f6bf29adf Fixup kokkos_omp test for dpd 2021-11-23 14:06:02 -05:00
d365cc7dfc Add missing destroy_kokkos() calls in pair_lj_gromacs_kokkos.cpp 2021-11-23 13:57:53 -05:00
b603346a0d Skip kspace-pppm_ad test for kokkos_omp 2021-11-23 13:56:19 -05:00
51c627df76 Add SCOPED_TRACE for better test error messages 2021-11-23 12:22:01 -05:00
073b586eee Add EXPECT_POSITIONS() and EXPECT_VELOCITIES() test utils 2021-11-23 12:21:27 -05:00
32a53a1ae3 Use EXPECT_FORCES() in more testers 2021-11-23 11:46:33 -05:00
615b7ceca2 Simplify EXPECT_FORCES() utility function 2021-11-23 10:59:40 -05:00
946fd6fb55 Update CMake utility function get_lammps_version()
With the introduction of LAMMPS_UPDATE, version.h is no longer a single line
file. With this change the CMake utility will only process the LAMMPS_VERSION
line. Fixes issue #3038
2021-11-23 10:46:22 -05:00
68360b9335 Add test utility method EXPECT_FORCES() 2021-11-22 16:27:18 -05:00
1a4511bb8d Merge pull request #3034 from akohlmey/mixing-info
Provide information about pair_coeff mixing and improve hybrid docs
2021-11-22 16:22:24 -05:00
62b236a7cd Use platform::path_join in unittest tree and remove redundant code 2021-11-22 15:34:23 -05:00
3d650a6bf7 Add test utility method EXPECT_STRESS() 2021-11-22 15:24:41 -05:00
ef2e51b344 whitespace fixes 2021-11-22 14:58:41 -05:00
6b605e932b Merge branch 'develop' into mixing-info 2021-11-22 14:58:19 -05:00
a83329a1a7 Merge pull request #3032 from GenieTim/compute-pair-distance-vector
Add dx, dy and dz computes to compute bond/local and property/local
2021-11-22 14:50:15 -05:00
bb127603ff Use platform::unlink in unittests 2021-11-22 14:40:51 -05:00
a6ccdd72ec Move platform::rmdir docstring to right location 2021-11-22 11:49:09 -05:00
0931da9cad Cleaned up comments in fix_gpu.cpp 2021-11-20 08:38:13 -06:00
a06c4767a0 Merge branch 'upstream' into gpu-newton-pair-on 2021-11-20 08:30:39 -06:00
f135d8bb4e Fix issue where direction correction in compute bond/local might not have been correct 2021-11-20 14:34:24 +01:00
a354a763bb Fix output capture mismatch 2021-11-19 17:14:52 -05:00
79feba1a25 try fix host fused
Change-Id: If54da165cf0488be39e9c4971bff3edf39d5b067
2021-11-19 17:09:26 -05:00
dcb32dc9f5 Fix no return warnings
Change-Id: I2ae537d5bfd5258b87bee372896e3ffd030772ab
2021-11-19 16:39:21 -05:00
9eea03aeb7 fix device fused QEQ
Change-Id: I7ed12d55ca838f9b60cc1292f127067050e8c88b
2021-11-19 16:39:17 -05:00
780cf82bb0 First version of kokkos_omp test variant 2021-11-19 16:23:05 -05:00
2c8c33fb9a add slow tag to about 60 tests that take about as much time as the 430 others 2021-11-19 15:59:19 -05:00
f8a94a4f10 Minor fixes to align w.r.t upstream
Change-Id: I4d8bbfe286c986f5bc603041b04f272b3f537476
2021-11-19 15:58:25 -05:00
00cbb633bf Implement host MPI for fused QEQ
Change-Id: I3278a72878fb7cdb64a059aaf025c039dc0d71e5
2021-11-19 15:41:37 -05:00
fb379dab15 Fused CG passes 1 & 2 for QEQ solver
Change-Id: I5fa396d8a2f2713712056a264d2bb05b7321dc1a
2021-11-19 15:41:37 -05:00
2a1823f59d add a missing CBRT
Change-Id: I5f70816a2b5ac07ba88511cf3bf14017043b5e76
2021-11-19 15:41:37 -05:00
8e140b4fcd Use tuned blocking sizes from experiment
Change-Id: I08a837d9632a45dabd3331108314d3ffc328338c
2021-11-19 15:41:37 -05:00
b2dae36eb9 discuss mixing informational message 2021-11-19 14:36:00 -05:00
3d4b0121cb improve pair hybrid documentation with respect to mixing 2021-11-19 14:18:55 -05:00
23d40a1d61 report how many pair_coeff settings parameters were generated from mixing 2021-11-19 13:43:32 -05:00
ff2751bf91 Merge pull request #10 from arghdos/fix_missing_hd
Minor fix for compilation bug
2021-11-19 10:41:26 -07:00
f5a03cb0c6 Minor fix for compilation bug
Change-Id: I79703cd20b12905855a2b8ec263665dd5be77604
2021-11-19 12:37:23 -05:00
b55ea05f3b Add some example tags for force style tests 2021-11-19 09:23:47 -05:00
4ac351eba6 Add tags to force-style tests
Adds an optional "tags" entry in the force style test YAML. This is a
comma-separated list of keywords, which are parsed by CMake and added as labels
for CTest.  This allows more fine-grained filtering of tests. Any
newly-generated YAML file automatically adds the "generated" tag.
2021-11-19 09:23:31 -05:00
74577fa584 Fix issue where direction correction in compute pair/local might not have been correct 2021-11-19 08:08:07 +01:00
7f17c55198 Merge branch 'develop' of https://github.com/lammps/lammps into compute_phase 2021-11-18 14:08:01 -08:00
4b6090a8cb Add direction consistency check to pair/local too 2021-11-18 19:28:51 +01:00
36e4e3e746 Add ddx, dy and dz computes to compute bond/local and property/local 2021-11-18 17:22:32 +01:00
15f1c2d960 Fix inaccurate error message 2021-11-18 08:50:09 -07:00
94b11964f8 Write dump header after sort to fix incorrect atom count for multiproc 2021-11-18 08:32:41 -07:00
5616336d5e Allow sorting with reorderflag for more than 2 billion atoms 2021-11-18 07:59:45 -07:00
47f3f9d44a Merge branch 'develop' of github.com:Iximiel/lammps into develop 2021-11-18 14:36:45 +01:00
c918b6fbcc removed example dump file 2021-11-18 14:36:38 +01:00
8faa750f21 Merge branch 'lammps:develop' into develop 2021-11-18 14:34:12 +01:00
4646671e70 added examples 2021-11-18 14:32:39 +01:00
a759987515 added examples 2021-11-18 14:31:21 +01:00
a5df494176 added examples 2021-11-18 14:30:26 +01:00
b06a70c33c corrected some errors in the manual 2021-11-18 12:40:10 +01:00
29471bd425 Merge branch 'develop' of github.com:lammps/lammps into big_dump_sort 2021-11-17 14:09:51 -07:00
7544f1bcf8 Fixed comm setup bug and external forces bug, still must look into if package omp needs to set external force flag to zero 2021-11-17 11:48:35 -08:00
229ce0a61b Merge pull request #3027 from yihengwuKP/fix-reorder-remd
Fix the indent and ot bugs in reorder_remd_traj.py
2021-11-17 14:11:12 -05:00
377b5b4ab3 Merge pull request #3020 from akohlmey/collected-small-changes
Collected small changes and fixes
2021-11-17 14:00:13 -05:00
d178a5ffa3 Extended test script 2021-11-17 13:12:44 +00:00
ef30e3bd35 clarifications and corrections for the discussion of the main git branches 2021-11-17 06:58:44 -05:00
2b480f87f1 fix segfault when using atom style smd as part of a hybrid style
also remove redundant for clearing
2021-11-16 21:48:33 -05:00
d576b69dbc plug memory leaks 2021-11-16 21:41:08 -05:00
d0a4c4467f replace replicated functionality with shared code in base class 2021-11-16 13:53:52 -05:00
ed8c86d248 correct uninitialized data access bug due to shadowing of a base class member 2021-11-16 10:46:09 -05:00
1c1cd60baf Fix the indent and ot bugs in reorder_remd_traj.py 2021-11-15 18:21:17 -06:00
766f975b74 Removed the newton checks in the gpu pair styles; reverted to mixed precision in Makefile.cuda 2021-11-13 07:00:12 -06:00
906e78c198 Merge branch 'gpu-newton-pair-on' of https://github.com/ndtrung81/lammps into gpu-newton-pair-on 2021-11-13 06:39:23 -06:00
65fb78b6d5 Finally updated the nm_split_styles, removed hard-coded r0=2^1/6 cutoff 2021-11-12 14:44:18 -05:00
7a914c84d7 again correction in the documentation 2021-11-12 16:25:48 +01:00
0eb227e7de working on the documentation 2021-11-12 14:55:48 +01:00
fe5f00bbea Updating the documentation, now 'make html' do not give errors 2021-11-12 14:37:16 +01:00
bfc34023b1 working on the documentation 2021-11-12 12:01:05 +01:00
cfe08ba55f working on the manual 2021-11-12 10:32:04 +01:00
c488e912e6 adding the pair_smatb to lammps documentation 2021-11-11 17:01:03 +01:00
80efc8839a fixed a grammar mistake 2021-11-11 16:36:48 +01:00
bdc4f7fb18 styled the headers 2021-11-11 16:27:09 +01:00
1c0e6578b6 changed some comments 2021-11-11 16:12:26 +01:00
4f4b18ab7e addig smatb pairs 2021-11-11 16:06:42 +01:00
feac637a2a Fix compile issues on CPU 2021-11-10 15:31:49 -07:00
7625b9707b Update to latest upstream develop 2021-11-10 15:14:24 -07:00
f733453f05 Intpos (#11)
* hbond comm added for rsq_hb

* lrefpos removed, extract scaled for oxDNA1

* Update pair_oxdna_hbond.cpp

* nxyz extract scaled across DNA2/RNA2

* oxDNA2/RNA2 updated to match oxDNA styling from upstream merge

* whitespace corrections

also removed unnecessary local unit vector from oxRNA2_xstk

* whitespace correction in oxdna_coaxstk
2021-11-10 09:25:13 +00:00
3b30fbb218 Merge branch 'lammps:develop' into intpos 2021-11-10 09:13:00 +00:00
367c9dff05 Compilable kokkos dynamical matrix command 2021-11-09 15:21:39 -08:00
acb1c8e7f2 Moving update/special/bonds into bond style to ensure correct fix ordering 2021-11-07 17:55:53 -07:00
25db8a21bc account for increased floating point errors when summing numbers to zero 2021-11-07 08:29:16 -05:00
ac6654cf0c skip MPI tests if they would be oversubscribing the available processors 2021-11-07 08:28:16 -05:00
16c50b3873 whitespace 2021-11-07 08:27:25 -05:00
7c5640c1c9 we may call ->set_molecule() only in MOLECULE mode 2021-11-05 16:27:58 -04:00
49258e9301 add missing assignment 2021-11-05 16:19:19 -04:00
03e3dfa94d Merge branch 'develop' of https://github.com/lammps/lammps into kk_update_3.5.0 2021-11-05 13:46:50 -04:00
d1403c62c8 update restrictions note for dump_modify 2021-11-05 10:56:54 -04:00
ebb3dcd9ff Remove error message 2021-11-04 20:20:07 -06:00
07a25144ee Remove error from dump.h 2021-11-04 20:06:30 -06:00
136c15a8ba Allow dump sort to work with more than 2 billion atoms 2021-11-04 19:59:48 -06:00
a4ceda9706 Merge pull request #2940 from akohlmey/multi-config-support
Support multi-config builds with CMake
2021-11-04 15:21:58 -07:00
5e7f2cf54f Changed tab spacing from 4 to 2, to be in line with lammps standards 2021-11-04 14:33:16 -07:00
18c78e1625 Merge branch 'master' into OptimizedDynamicalMatrix 2021-11-04 14:23:50 -07:00
b3c5f6a4fd whitespace 2021-11-04 16:48:29 -04:00
935c17f02e Document multi-configuration build support in CMake 2021-11-04 16:32:21 -04:00
1a940e052e add support for and apply clang-format to lammps-shell code 2021-11-04 15:55:28 -04:00
aab4f71019 Merge branch 'develop' into multi-config-support
# Conflicts:
#	unittest/force-styles/test_error_stats.cpp
2021-11-04 15:50:49 -04:00
2cd862e4a2 Update lebedeva potential file and docs based on email on mailing list
https://matsci.org/t/lammps-users-webpage-and-parameter-file-for-the-lebedeva-potential/39059
2021-11-04 15:24:41 -04:00
8e89c7c654 correct unit description of eta_n0 parameters. fixes #3016 2021-11-04 15:24:41 -04:00
825945f783 mention that dump sorting is limited to less than 2 billion atoms 2021-11-04 15:24:41 -04:00
461a7afc22 remove PYTHON from "most" cmake preset.
The PYTHON package cannot be compiled without the python development
support being installed, so it must not be in the "most" preset
2021-11-04 15:24:41 -04:00
3ec3085f39 Merge pull request #3017 from akohlmey/portability-improvements
Portability improvements
2021-11-04 12:21:11 -07:00
564098e629 Update Kokkos library in LAMMPS to v3.5.0 2021-11-04 12:45:59 -06:00
0909b4da92 Updated dynamical matrix command to work with intel potentials 2021-11-04 11:35:31 -07:00
7c80911f66 whitespace 2021-11-03 15:23:29 -04:00
439f997a10 skip test for file not readable due to permissions on windows 2021-11-03 14:54:38 -04:00
62fc7b6fa0 small tweaks to make replacing the CMakeLists.txt file work as expected 2021-11-03 14:44:16 -04:00
37dfc9e141 simplify by not trying to use fetchcontent but do all steps manually
as it turns out, fetchcontent is calling external_project internally at
some point which to avoid is why this function was started in the first place
2021-11-03 14:43:18 -04:00
b7bf60ea53 use the portable platform::unlink() instead of unlink() 2021-11-03 14:26:50 -04:00
b86a3a5d6b Added missing } 2021-11-03 10:24:22 -07:00
5241f93641 Update third order format 2021-11-03 10:12:17 -07:00
35ff47411b Merge branch 'multi-config-support' of github.com:akohlmey/lammps into multi-config-support 2021-11-03 12:35:40 -04:00
7f0b2334a5 update plugin loader test 2021-11-03 11:52:32 -04:00
b95e12bb6c add additional function argument where we can supply our own CMakeLists.txt file 2021-11-03 11:50:39 -04:00
eb3f928f31 tweak epsilon for portability with windows 2021-11-03 10:54:40 -04:00
1ad982aa85 improve portability of unit test code for windows compilers 2021-11-03 10:54:21 -04:00
50f39cd752 implement and use a platform neutral abstraction of unsetenv(3) 2021-11-03 10:53:45 -04:00
e8f6024eae Fixed more whitespace issues 2021-11-03 11:46:56 +00:00
fc4fdd09ef Fixed more whitespace issues 2021-11-03 11:44:29 +00:00
a37a113044 Merge branch 'lammps:develop' into intpos 2021-11-03 11:02:01 +00:00
b8970366e0 Fixed whitespace issues 2021-11-03 10:59:04 +00:00
7ba211a727 Update dynamical matrix format 2021-11-02 21:57:55 -07:00
a9c6f943e1 correct test comparisons 2021-11-02 23:07:44 -04:00
6479116419 Merge branch 'develop' into multi-config-support 2021-11-02 16:39:12 -04:00
515ef7bece Merge pull request #3015 from lammps/dump-image-doc
Move dump_modify options specific to image/movie to dump image doc page
2021-11-02 13:22:27 -07:00
80579593e0 Merge pull request #3014 from akohlmey/collected_small_changes
Collected small changes and bugfixes
2021-11-02 13:02:31 -07:00
b044a2f88b switch to https protocol for cloning MathJax
https://github.blog/2021-09-01-improving-git-protocol-security-github/
2021-11-02 15:26:45 -04:00
d3af16c1fd Merge branch 'develop' into collected_small_changes
# Conflicts:
#	src/fix_vector.cpp
2021-11-02 14:41:16 -04:00
71d48bc48a Merge branch 'cmake_fixes' of https://github.com/pzeiger/lammps into collected_small_changes 2021-11-02 14:36:59 -04:00
91e6586e05 reorder 2021-11-02 14:35:36 -04:00
817e38fe68 change references to git:// protocol for accessing github to https:// 2021-11-02 14:33:21 -04:00
278e531c14 fix typo 2021-11-02 14:33:00 -04:00
f5626a2b9d Few more merge conflicts 2021-11-02 12:29:49 -06:00
175f967051 change references to git:// protocol for accessing github to https:// 2021-11-02 14:25:57 -04:00
59c060cc0e switch to https protocol for cloning MathJax
https://github.blog/2021-09-01-improving-git-protocol-security-github/
2021-11-02 14:14:08 -04:00
679132b607 Replacing some needed header files 2021-11-02 12:10:20 -06:00
0439671e86 Merge pull request #3001 from akohlmey/modify-fix-compute-accessors
Add accessor functions to `Modify` and `Domain` that do not require using class internal data structures
2021-11-02 11:02:01 -07:00
628091c510 add reference instead of replicating headline 2021-11-02 13:33:08 -04:00
a58242f24b couple last tweaks to make the pages easier to navigate 2021-11-02 09:27:27 -06:00
dfc68e3c75 add header for dump_modify command summary 2021-11-02 08:49:34 -04:00
cf968ef286 Intpos (#10)
* hbond comm added for rsq_hb

* lrefpos removed, extract scaled for oxDNA1

* Update pair_oxdna_hbond.cpp
2021-11-02 09:52:56 +00:00
bb176318fe Merge branch 'lammps:develop' into intpos 2021-11-02 09:48:24 +00:00
d7f7835069 Fix merge conflicts, minor style fixes 2021-11-01 18:13:06 -06:00
7a228eedd2 move dump_modify options specific to image/movie to dump image doc page 2021-11-01 15:16:39 -06:00
9caad2be4d update security statement 2021-11-01 09:59:38 -04:00
d5bfa09faa modernize argument parsing 2021-11-01 09:19:33 -04:00
0bc9f887ec fix index error 2021-10-31 19:46:37 -04:00
6b3ddb8a72 fix logic bug 2021-10-31 19:29:12 -04:00
2e72d6b5a5 Merge branch 'develop' into modify-fix-compute-accessors 2021-10-31 18:25:42 -04:00
bbbde3cc15 fix indexing bug 2021-10-31 18:10:32 -04:00
3887b08c1d update new LAMMPS paper citation info 2021-10-31 18:10:32 -04:00
64764cc7b0 clarify the difference between C++ and Fortran versions of MEAM 2021-10-31 18:10:31 -04:00
4f0f791417 use new API, join loops, modernize 2021-10-31 17:37:43 -04:00
c5d6a310d8 Fixed cmake build script for QUIP in cases where MATH_LINKOPTS variable not set 2021-10-29 11:32:03 +02:00
4395530756 bugfix 2021-10-28 23:38:32 -04:00
ac4f2b2a32 use updated APIs 2021-10-28 23:25:04 -04:00
212d699078 implement Domain::get_region_by_id() 2021-10-28 23:24:38 -04:00
b15c02e3cd Merge pull request #3012 from akohlmey/reserved_data_section_keywords
Check for reserved data section keywords - update fix processing for data files
2021-10-28 19:52:27 -04:00
ed5c0e74d4 Merge pull request #3011 from stanmoore1/kk_bug
Revert some changes in 7960a2d
2021-10-28 19:50:27 -04:00
9ae05facb8 Updating file locations to master locations 2021-10-28 16:32:04 -07:00
440a517a5e update fix rigid + property/atom example to avoid runtime failure 2021-10-28 17:01:12 -04:00
7dbbb9a0e6 refactor fix cmap to use current style and modernized parsing 2021-10-28 16:54:53 -04:00
adf1beea74 add mechanism to check for known data file section names
using this mechanism we can reject custom section names that will
conflict with existing section names and thus avoid misleading errors.
apply this also to fix property atom, where the section name is
determined by the fix ID.
in addition, allow to specify NULL as section name, which will use
the fix ID.
2021-10-28 14:23:27 -04:00
e734eb837f Revert some changes in 7960a2d7d2 2021-10-28 08:39:17 -06:00
608ad0bca0 Merge branch 'lammps:develop' into intpos 2021-10-28 09:48:17 +01:00
c8512249b7 Merge branch 'develop' into modify-fix-compute-accessors
# Conflicts:
#	src/PLUGIN/plugin.cpp
2021-10-27 21:14:05 -04:00
4a048e3f57 Merge pull request #3008 from akohlmey/next_patch_release
Update version strings for next patch release
2021-10-27 20:19:33 -04:00
f72b532f0f Merge pull request #3009 from rbberger/collected_small_changes
Collected small changes
2021-10-27 19:31:22 -04:00
95d08c6667 update all makefiles to use DYN_LIB variable from master makefile 2021-10-27 17:41:16 -04:00
18a7c15441 forward DYN_LIB variable to Makefile.mpi 2021-10-27 17:21:38 -04:00
9424571ce2 Use correct sizeof in memset 2021-10-27 17:01:03 -04:00
153e77864d Use LAMMPS_THIRDPARTY_URL variable for EIGEN3_URL 2021-10-27 16:45:08 -04:00
4ea848b4e9 Merge pull request #3002 from akohlmey/more-clang-tidy-refactoring
Third chunk of semi-automatic refactoring with clang-tidy
2021-10-27 16:38:28 -04:00
2e9cdfa6dc Merge remote-tracking branch 'origin/develop' into collected_small_changes 2021-10-27 16:38:01 -04:00
51bd05bb77 Make update_downloads.sh detect new URLs and report error 2021-10-27 16:33:21 -04:00
addb087aac Merge branch 'lammps:develop' into intpos 2021-10-27 21:29:56 +01:00
c9da75ef85 Merge pull request #2968 from yury-lysogorskiy/feature/ml-pace-multispecies
Add multi-species support to ML-PACE package
2021-10-27 16:04:15 -04:00
a329de81bf Update source URLs for offline compilation tool 2021-10-27 15:56:28 -04:00
28d86578a3 update version strings for next patch release 2021-10-27 15:26:58 -04:00
da3115be2c Merge branch 'develop' into more-clang-tidy-refactoring
# Conflicts:
#	src/MANIFOLD/manifold_thylakoid.cpp
2021-10-27 15:23:57 -04:00
bd053d6841 Merge pull request #3004 from akohlmey/collected_small_changes
Collected small changes and bugfixes for the next patch release
2021-10-27 14:24:37 -04:00
b5e3d69c82 change downloaded archive name to more closely follow the confvention 2021-10-27 14:23:53 -04:00
c0c45be357 bugfix Fedora CMake compilation 2021-10-27 17:19:18 +02:00
9895d8436a update/clean downloading the ML-PACE/v.2021.10.25.tar.gz 2021-10-27 16:03:44 +02:00
a063209b2b update URL and filename for offline scripts 2021-10-27 08:31:36 -04:00
c911cd52bb whitespace 2021-10-27 08:24:07 -04:00
11ee3759df use consistent formatting 2021-10-27 08:22:18 -04:00
4957c8e382 Merge branch 'develop' into collected_small_changes 2021-10-27 08:20:19 -04:00
cc3349728b Merge pull request #2997 from stanmoore1/kk_omp_target
Add preliminary support for Kokkos OpenMPTarget backend
2021-10-27 08:15:45 -04:00
45359847f2 Merge pull request #3007 from masterleinad/avoid_retrict_icpx
Don't use -restrict for icpx
2021-10-27 08:10:09 -04:00
1247f4d67b add function to print information about available compressions tools 2021-10-26 20:00:55 -04:00
f0318fb874 try to make changing LMP_INC settings less confusing to inexperienced people 2021-10-26 19:16:13 -04:00
3376f3daa8 Remove unused import 2021-10-26 16:48:57 -04:00
008013ddfb Explicitly check for None 2021-10-26 15:19:46 -04:00
fe9dfc6095 follow Python style guidelines 2021-10-26 14:17:31 -04:00
3d9e4638a7 Don't use -restrict for icpx 2021-10-26 13:08:03 -04:00
3044923cbf less ambiguous tests for arguments being not None 2021-10-26 12:12:21 -04:00
f783958e39 add test for create_atoms() 2021-10-26 12:11:28 -04:00
20fec49635 Intpos (#8)
* use the term 'website' consistently (and not also 'web site')

* update for clang-format

* clarify

* split off the programming/submission style guide to a separate file

* Updates to support ROCm 4.3 in GPU package

* update and reorder the description of the process for submitting contributions

* correct and clarify Python compatibility

* refactor style guide and integrate text from issue

* update contribution guidelines for github

* mention when testing may be added

* integrate file with description of include file conventions

* update github workflow doc

* adapt section about domain decomposition from paper

* use a more compact image

* add communication section

* update man page with missing flags and correct URLs

* improve the load imbalance viz

* add section about neighbor list construction

* break large file into multiple smaller files by section and add toctree

* fix typo

* add section about parallelization in the OPENMP package

* add -skipruin to help message

* add discussion of OpenMP parallelization

* spelling

* add section on PPPM

* use larger version of FFT grid comm image

* minor tweak

* Update compute angle doc page

* Update Singularity definitions to use ROCm 4.3

* Update CUDA container definitions to CUDA 11.4

* Update container definitions to include PLUMED 2.7.2

* Update more definition files

* RHEL8/CentOS8 PowerTools is now powertools

* Add Rocky Linux 8 container definition

* Add omega field to numpy_wrapper detection

* Return None in case of null pointer

* Add more atom fields in numpy_wrapper and correct csforce size

* must not clear force array. will segfault in hybrid atom styles

* update example for dynamically loading LAMMPS with current library API

* update example to use current library interface. No need to use the namespace.

* add note to README files about age of the example

* simplify building shared libs on windows

* detect a few more compilers

* Revert "simplify building shared libs on windows"

This reverts commit fa3429ab02.

* step version strings for next patch release

* fix mingw 32-bit vs 64-bit craziness

* detect C++20 standard

* build "fat" cuda binaries only with known toolkits

* spelling

* 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

* spelling

* use nullptr

* use symbolic constant

* small optimization

* use cmath header instead of math.h

* use explicit scoping when virtual dispatch is not available.

* cosmetic changes

* simplify/optimize code

* simplify

* Bugfix from Trung for crashes in pppm/gpu without local atoms

* fix typo

* refer to "XXX Coeffs" sections consistently

* small tweaks from static code analysis

* fix small bug

* small tweaks

* simplify and modernize code a little

* use correct data type for MPI calls

* simplify/modernize

* remove dead code

* about 1.5x speedup for pair style comb3 by using MathSpecial::powint()

* small performance optimization for pair style comb

* simplify

* modernize

* simplify

* removed dead code, reformat

* modernize

* use explicit scoping when virtual dispatch is not (yet) available

* reformat for increased readability

* move misplaced #endif and make code more readable

* make sure err_flag is initialized

* modernize

* remove redundant code: all struct members are initialized to defaults in the constructor

* enforce initialization and thus silence compiler warnings

* fix typo

* provide more comprehensive suggestions for GPU neighbor list errors

* add utils::logical() function to complement the *numeric() functions

* Add stable link in docs

* revert modernization change (for now)

* remove unused variable

* include EXTRA-DUMP in "most"

* small tweaks

* simplify

* Add log file printing of KIM search directories in 'kim init'

* use clang-format on kim_init.cpp

* Improve style in response to Axel's suggestions

* initialize all members

* format changes

* simplify. use utils::strdup() more.

* small corrections

* apply fix from balance command to fix balance

* dead code removal

* reformat strings

* implement utils::current_date() convenience function to reduce replicated code

* update list and order of include files from include-what-you-use analysis

* handle changes in GAP repo

* a few remaining updates to include statements

* expand mapping to handle "style_*.h" header files correctly.

* add support for compilation of OpenCL loader on FreeBSD

* more iwyu header updates

* small correction

* fix typo

* a few more (final?) IWYU updates

* expand tests for numeric values

* return int instead of bool to minimize code changes

* fix spelling issues

* some applications of the new function

* fix typo

* Change "offsite" to "external" to correct broken URLs to lammps.org

* improve error message

* insert missing atom-ID

* convert yes/no on/off flags in the package command(s)

* update version strings

* update death tests for change in error message

* correctly specify the destructor function name.

* apply utils::logical() to more commands

* apply utils::logical() in more places

* for consistency with utils::logical()

* only accept lower case to be consistent with the rest of the input

* a few more converted commands and updates for unit tests

* modernize and fix some memory leaks

* adjust for compatibility with C++20 compilers

* do not downgrade C++ standard when adding the KOKKOS package

* undo "risky" C++20 related changes

* mention how to set the path to the fftw3_omp library

* correct paths to downloaded PACE package sources in lib

* Update CMake variable descriptions

* possible workaround for some GPU package neighbor list issue

* final chunk of changes to apply utils::logical()

* update suffix command unit tests

* update citation info with new LAMMPS paper reference and acknowledge it

* update some formulations as suggested by @sjplimp

* add check and suitable error message when fp64 is required but not available

* do not call memset on a null pointer

* fix string formatting bugs in fix npt/cauchy

* must use a soft core potential to avoid a singularity

* in floating point math a*b may be zero even if both a>0 and b>0

* use proper integer type for atom IDs

* Building voro++ lib as part of LAMMPS requires the "patch" program

* silence output from hwloc when launching LAMMPS

* detect double precision support according to OpenCL specs (1.2 and later)

* Fix bug in Kokkos pair_eam_alloy

* calling fwrite() with a null pointer causes undefined behavior. avoid it.

* cosmetic

* apply current include file conventions

* include zstd libs in windows build

* update .gitignore for recent additions

* make check more obvious

* step version strings for stable release

* Adjust for kim-api bug

* cleaner variant of version check, add directory numbering

* hbond comm added for rsq_hb

* rsq_hb removed, exyz added (no MPI comm yet)

* 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.

* add -std=c++11 to a number of machine makefiles for traditional make build

* copy request to mention lammps.org form home page instructions for citing

* be more specific about what the name of the LAMMPS executable can be

also provide a few more examples without a machine suffix

* small tweak

* 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

* make "make package-update" and "make package-overwrite" less verbose

* 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.

* 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.

* Prevent neigh list from copying "unique" stencil/bin

* compiling ML-HDNNP with downloaded n2p2 lib requires the sed command

* 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()

* portability improvement

* must have patch command available to compile ScaFaCoS

* only need Tcl not Tk to compile Tcl swig wrapper

* correctly handle Tcl stub library if available

* add missing keyword

* hbond_pos added, MPI and values ok, Pair time slow.

* make C library example work with strict C compilers

* silence compiler warnings

* make Nevery keyword per-reaction

* recover cross-compilation with mingw64

* reverted wrong approach from last commits

- now intpos flag
- hbond_pos added
- (a/b)xyz WiP

* lrefpos working in serial, MPI wrong

* attempt to merge doubles into n(xyz)[3]

* save

* Update pair_oxdna_hbond.cpp

* hbond now working for MPI, comming lrefpos

* extracting nxyz in excv/bond working

Co-authored-by: Axel Kohlmeyer <akohlmey@gmail.com>
Co-authored-by: Richard Berger <richard.berger@temple.edu>
Co-authored-by: Ryan S. Elliott <relliott@umn.edu>
Co-authored-by: Stan Gerald Moore <stamoor@sandia.gov>
Co-authored-by: Giacomo Fiorin <giacomo.fiorin@gmail.com>
Co-authored-by: Jacob Gissinger <jrgiss05@gmail.com>
Co-authored-by: Oliver Henrich <ohenrich@users.noreply.github.com>
2021-10-26 16:45:44 +01:00
2a9a8adfc0 apply clang-format 2021-10-26 06:41:00 -04:00
886d6702c4 remove dead code 2021-10-26 06:38:47 -04:00
5141a80142 remove useless logical 2021-10-26 06:38:35 -04:00
30001f2698 use preprocessor 2021-10-26 06:37:59 -04:00
4551bf4bc0 yaml-cpp-pace: bugfix in CMakeLists.txt 2021-10-26 10:19:11 +02:00
8bf016eaef use references when looping over fixes from list 2021-10-25 21:41:57 -04:00
52d99700ec Download and compile modified YAML-cpp 0.6.3 in namespace YAML_PACE 2021-10-25 17:34:08 +02:00
d0416757b7 simplify using new APIs 2021-10-24 18:00:15 -04:00
a782f8f8e0 more specific warning about atoms inability to move 2021-10-24 17:59:30 -04:00
29a44e7065 remove parser_error exception class ambiguity completely 2021-10-23 04:25:20 -04:00
71a24580b8 remove parser_error exception class ambiguity completely 2021-10-23 04:24:54 -04:00
8a9117d511 add configurations for intel compilers 2021-10-22 16:32:16 -04:00
6f14cbf167 Small adjustments for compiling within VS 2021-10-22 16:32:02 -04:00
7abcdc8c4c use anonymous namespace to manage visibility of multiple copies of parse_error class 2021-10-22 16:16:08 -04:00
47eab736bb use anonymous namespace to manage visibility of multiple copies of parse_error class 2021-10-22 16:14:06 -04:00
c08093f768 modernize, avoid static buffers, use utility functions, remove debug code 2021-10-22 16:00:01 -04:00
7960a2d7d2 Fix link error with fix_acks2_reaxff_kokkos 2021-10-22 19:13:31 +00:00
b6c610ada2 tweak epsilon for portability to MSVC compilers 2021-10-22 14:12:19 -04:00
89808266dd remove obsolete file 2021-10-22 13:46:13 -04:00
4edd5238b1 improve putenv() and unsetenv() implementation on windows by using _putenv_s() 2021-10-22 13:21:45 -04:00
0901540fda Remove deprecated Kokkos code 2021-10-22 16:41:26 +00:00
3cce6b46e2 Fix thread divergence issue when not using CUDA/HIP 2021-10-22 16:20:37 +00:00
7318aa49d8 set define for static linkage to avoid issues linking libyaml on windows 2021-10-22 12:12:20 -04:00
614b751f5f Add missing brace 2021-10-22 16:09:46 +00:00
228187978d Merge branch 'develop' of https://github.com/lammps/lammps into kk_omp_target 2021-10-22 16:08:00 +00:00
5c9a4f4be0 implement platform abstraction of unsetenv() 2021-10-22 11:05:32 -04:00
69f5e1feac Enable testing for Debug configurations in VS 2021-10-22 09:25:44 -05:00
bd9ad288b9 recover compilation of test on windows 2021-10-22 09:13:07 -05:00
d7d1c84b35 only build a custom YAML lib, if not installed 2021-10-22 08:56:00 -04:00
ced96441ef update hash after change in repo 2021-10-22 08:44:30 -04:00
ad81dd3960 recover original new style library target names through ALIAS library definitions 2021-10-22 08:23:49 -04:00
b57c8bda51 build yaml library using custom CMakeLists.txt file 2021-10-21 23:39:56 -04:00
8d6461ffcd whitespace 2021-10-21 23:39:14 -04:00
a796d6b824 fix logic bug 2021-10-21 21:04:15 -04:00
7cc5092547 make portable to MSVC++ 2021-10-21 21:01:59 -04:00
7d16078cf4 always use .so suffix for plugins 2021-10-21 19:35:48 -04:00
3869e3fce8 adjust for compiling on windows 2021-10-21 19:27:59 -04:00
6ad03498c3 make finding plugins for testing multi-config compatible 2021-10-21 19:22:01 -04:00
e75757007e always compile position independent code 2021-10-21 19:21:34 -04:00
6e3fcce9e1 move download and extract code into function 2021-10-21 17:35:49 -04:00
d8db9dd3ac Merge branch 'develop' into multi-config-support
# Conflicts:
#	cmake/Modules/GTest.cmake
2021-10-21 10:26:31 -04:00
ede188652b update a few GPU kernels so they can be compiled on GPUs without double precisions support 2021-10-21 07:33:00 -04:00
a0b25acf35 refactor loops using (auto var : container) syntax 2021-10-20 21:58:31 -04:00
85433e8bd1 use true/false instead of 1/0 detected and changed by clang-tidy 2021-10-20 12:41:02 -04:00
682f862f43 apply clang-format 2021-10-20 06:56:54 -04:00
2e362b1f3f use get_(fix|compute)_by_id() instead of find_(fix|compute)() 2021-10-20 06:56:46 -04:00
8cd4460c62 fix typo 2021-10-19 15:50:19 -04:00
89d70aeabf work around issue with skipping creation of fix RESPA for whichflag == 0 2021-10-19 15:50:09 -04:00
2857577dda replace find_region_by_style() with get_region_by_style() with same semantics as find_fix_by_style() 2021-10-19 12:38:00 -04:00
597ee207b1 remove now obsolete find_fix_by_style() and find_compute_by_style() members 2021-10-19 12:37:02 -04:00
3ae0aae018 update remaining uses of find_fix_by_style() 2021-10-19 12:36:31 -04:00
162789ad7f Merge branch 'develop' into modify-fix-compute-accessors 2021-10-19 12:00:43 -04:00
84666543d1 Merge pull request #2998 from akohlmey/collected_small_changes
Collected small changes and bugfixes
2021-10-19 10:33:51 -04:00
1cd0551197 more direct version of clearing out loaded plugins 2021-10-19 08:27:49 -04:00
81a5beb8cc must not have folders names differing only in case: "MC" versu "mc"
This is causing problems on MacOS and Windows with case preserving
but case insensitive file systems.
2021-10-18 18:13:21 -04:00
f9e99f1f4c wipe out all loaded plugins before destroying the LAMMPS instance 2021-10-18 18:04:04 -04:00
241c816ad3 adapt fix shake and pair style spin 2021-10-18 17:29:25 -04:00
0e369fb9b5 update example to represent recent style changes. 2021-10-18 13:47:29 -04:00
5e102e1bfe ML-PACE.cmake: find_package(yaml-cpp 0.6.3 EXACT QUITE) first, otherwise dowload from github/yaml-cpp tag 0.6.3 2021-10-18 18:43:38 +02:00
87b63f768f Only check for GPU double precision support if a GPU is present 2021-10-18 12:15:05 -04:00
fc0e6af7dd fix memory leaks 2021-10-18 07:11:55 -04:00
dd2ff737f1 port mdi/engine command to new fix accessor API 2021-10-18 06:50:28 -04:00
11a4920b30 refactor PERI package pair styles to use new accessors and to increase code sharing 2021-10-18 06:47:01 -04:00
f6fb392c4d convert some more styles to use the new APIs 2021-10-17 19:19:23 -04:00
26b368848b Add support for an "Update #" appendix to the version string
This is for informative output only, so that any code depending
on the LAMMPS_VERSION define will not have to be changed and no
warnings will be printed etc.
2021-10-17 18:06:29 -04:00
1e9da5a25b port dump vtk to correctly support custom per-atom arrays and fix some bugs 2021-10-17 10:58:33 -04:00
6145ef9cd2 fix bugs related to custom per-atom properties in dump style custom 2021-10-17 10:57:16 -04:00
702d861a58 update to use new accessor APIs 2021-10-16 22:31:23 -04:00
064e7fde2f must not dereference null pointer 2021-10-16 22:30:38 -04:00
f392b089a4 modernize 2021-10-16 21:40:17 -04:00
cfdf9cee5d modernize 2021-10-16 21:28:18 -04:00
e990a1cf61 remove ambiguity between "double_precision" class member variable and function 2021-10-16 21:07:04 -04:00
8cf030e476 small tweak for mixed precision GPU runs 2021-10-16 07:28:16 -04:00
59d79ce176 update googletest to version 1.11 2021-10-16 07:16:40 -04:00
5b40e4cb38 new accessor APIs for fixes and computes in Modify plus a few applications 2021-10-16 06:00:28 -04:00
ab30ed4ca9 modernize 2021-10-16 05:35:24 -04:00
83e58eadb7 correct expansion of fix/compute/variable arguments to avoid bogus thermo outpu 2021-10-15 20:23:31 -04:00
6827f71f26 pppm kspace styles also require -DFFT_SINGLE when using GPUs in single precision 2021-10-15 20:23:07 -04:00
47523da16b allow single precision FFT introspection 2021-10-15 20:03:39 -04:00
222063e5cf Add preliminary support for Kokkos OpenMPTarget backend 2021-10-15 17:32:37 -06:00
20cd742b4a whitespace & urls 2021-10-15 15:59:15 -06:00
fa412c13aa Add compute phase/atom 2021-10-15 15:43:26 -06:00
5140d26748 plug memory leaks 2021-10-15 16:59:53 -04:00
98cdfa1016 fix bug detected by coverity scan 2021-10-15 09:29:47 -04:00
ef04f6ca69 Merge pull request #2993 from akohlmey/collected_small_changes
Collected small changes and fixes
2021-10-14 15:32:42 -04:00
5a90bca49e Merge pull request #2994 from akohlmey/more-clang-tidy-refactor
Second chunk of semi-automatic refactoring with clang-tidy
2021-10-14 13:33:00 -04:00
64268de24b Merge branch 'master' into collected-small-changes 2021-10-14 13:31:30 -04:00
356dbab587 Merge pull request #2991 from mphowardlab/bugfix-brownian
Fix Brownian noise scale factor
2021-10-14 12:23:04 -04:00
cd526ad54c try to find system libyaml-cpp v.0.6.3 library, otherwise use downloaded one 2021-10-14 15:16:48 +02:00
267bc7ae2d avoid (unlikely) integer overflows with very large systems 2021-10-14 08:07:43 -04:00
d857685e74 use emplace_back() instead of push_back() 2021-10-14 01:31:48 -04:00
2106075320 use call-by-value with std::move() function 2021-10-14 01:30:18 -04:00
e56cc9be00 use initializer list instead of explicit constructor 2021-10-14 01:12:44 -04:00
27145d2789 catch up on refactoring default destructors that were missed previously 2021-10-14 01:12:04 -04:00
3ad75c40ec catch up on previous clang-tidy refactor for files that were skipped before 2021-10-13 23:59:43 -04:00
2fba6b44e4 use '= default' when default functions should be used 2021-10-13 23:59:05 -04:00
34d54247b6 Merge branch 'develop' into collected_small_changes 2021-10-13 22:55:21 -04:00
cc416b97f0 Merge pull request #2990 from akohlmey/clang-tidy-refactor
First chunk of semi-automated refactoring using clang-tidy
2021-10-13 22:51:25 -04:00
3f3d44bc25 add new files 2021-10-13 22:47:37 -04:00
a1572ce9a5 link with -ldl except on Windows for dlopen/dlclose/dlsym support 2021-10-13 22:47:25 -04:00
f4851e9103 change check for reset image flags to print messages only once per data file 2021-10-13 21:54:18 -04:00
a1fb6902d5 Merge pull request #2992 from lammps/molswap
Add a new fix mol/swap command
2021-10-13 21:33:52 -04:00
afad3f42d5 Report only compatible GPU, i.e. no GPU if mixed/double precision is requested by the hardware does not support it 2021-10-13 21:15:16 -04:00
c322064ff3 Merge pull request #2931 from stanmoore1/acks2_release
Add ACKS2 charge equilibration method to REAXFF and support for electric fields in qeq/reaxff
2021-10-13 20:27:57 -04:00
c5617dc006 fix spelling and make consistent 2021-10-13 19:25:09 -04:00
660bced187 whitespace, pointer initializer, and permission fixes 2021-10-13 19:17:42 -04:00
69a3b5b215 move common init() code into base class. warn when used with fix efield 2021-10-13 18:54:10 -04:00
a922c91c1a document restrictions to using ReaxFF charge equilibration with fix efield 2021-10-13 18:53:09 -04:00
06ef216e61 protect against using multiple fix efield instances. improve error messages. 2021-10-13 18:26:09 -04:00
c8dc6c5010 whitespace 2021-10-13 18:25:13 -04:00
547b9850b9 tiny optimization 2021-10-13 18:18:58 -04:00
56ce880b32 update force-style test data with corrected efield strength computation 2021-10-13 18:06:49 -04:00
f206eab338 mv examples/gcmc to mc, add 2 scripts for fix mol/swap 2021-10-13 15:02:33 -06:00
74219585f3 Update log files 2021-10-13 14:03:50 -06:00
5f7e56e1c2 Fix Brownian noise scale factor 2021-10-13 14:51:58 -05:00
9cfb822847 Merge branch 'master' of github.com:lammps/lammps into acks2_release 2021-10-13 13:37:04 -06:00
727a028a6f Add inputs with field 2021-10-13 13:08:08 -06:00
67673a6055 Fix negative sign in chi_field 2021-10-13 12:30:19 -06:00
552d960b39 Fix double space 2021-10-13 10:43:26 -06:00
87cc67778b Merge branch 'master' into feature/ml-pace-multispecies
# Conflicts:
#	src/ML-PACE/pair_pace.cpp
2021-10-13 17:34:29 +02:00
ac8cf33a51 Merge pull request #1 from srmnitc/master
Use only itype for scale variable in both forces and energy
2021-10-13 16:53:49 +02:00
1f9ce77c85 Use only itype for scale variable in both forces and energy 2021-10-13 16:34:33 +02:00
d207710b43 lrefpos (nx/y/z) now working in oxdna_hbond. Being comm'ed and MPI working (#7)
* use the term 'website' consistently (and not also 'web site')

* update for clang-format

* clarify

* split off the programming/submission style guide to a separate file

* Updates to support ROCm 4.3 in GPU package

* update and reorder the description of the process for submitting contributions

* correct and clarify Python compatibility

* refactor style guide and integrate text from issue

* update contribution guidelines for github

* mention when testing may be added

* integrate file with description of include file conventions

* update github workflow doc

* adapt section about domain decomposition from paper

* use a more compact image

* add communication section

* update man page with missing flags and correct URLs

* improve the load imbalance viz

* add section about neighbor list construction

* break large file into multiple smaller files by section and add toctree

* fix typo

* add section about parallelization in the OPENMP package

* add -skipruin to help message

* add discussion of OpenMP parallelization

* spelling

* add section on PPPM

* use larger version of FFT grid comm image

* minor tweak

* Update compute angle doc page

* Update Singularity definitions to use ROCm 4.3

* Update CUDA container definitions to CUDA 11.4

* Update container definitions to include PLUMED 2.7.2

* Update more definition files

* RHEL8/CentOS8 PowerTools is now powertools

* Add Rocky Linux 8 container definition

* Add omega field to numpy_wrapper detection

* Return None in case of null pointer

* Add more atom fields in numpy_wrapper and correct csforce size

* must not clear force array. will segfault in hybrid atom styles

* update example for dynamically loading LAMMPS with current library API

* update example to use current library interface. No need to use the namespace.

* add note to README files about age of the example

* simplify building shared libs on windows

* detect a few more compilers

* Revert "simplify building shared libs on windows"

This reverts commit fa3429ab02.

* step version strings for next patch release

* fix mingw 32-bit vs 64-bit craziness

* detect C++20 standard

* build "fat" cuda binaries only with known toolkits

* spelling

* 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

* spelling

* use nullptr

* use symbolic constant

* small optimization

* use cmath header instead of math.h

* use explicit scoping when virtual dispatch is not available.

* cosmetic changes

* simplify/optimize code

* simplify

* Bugfix from Trung for crashes in pppm/gpu without local atoms

* fix typo

* refer to "XXX Coeffs" sections consistently

* small tweaks from static code analysis

* fix small bug

* small tweaks

* simplify and modernize code a little

* use correct data type for MPI calls

* simplify/modernize

* remove dead code

* about 1.5x speedup for pair style comb3 by using MathSpecial::powint()

* small performance optimization for pair style comb

* simplify

* modernize

* simplify

* removed dead code, reformat

* modernize

* use explicit scoping when virtual dispatch is not (yet) available

* reformat for increased readability

* move misplaced #endif and make code more readable

* make sure err_flag is initialized

* modernize

* remove redundant code: all struct members are initialized to defaults in the constructor

* enforce initialization and thus silence compiler warnings

* fix typo

* provide more comprehensive suggestions for GPU neighbor list errors

* add utils::logical() function to complement the *numeric() functions

* Add stable link in docs

* revert modernization change (for now)

* remove unused variable

* include EXTRA-DUMP in "most"

* small tweaks

* simplify

* Add log file printing of KIM search directories in 'kim init'

* use clang-format on kim_init.cpp

* Improve style in response to Axel's suggestions

* initialize all members

* format changes

* simplify. use utils::strdup() more.

* small corrections

* apply fix from balance command to fix balance

* dead code removal

* reformat strings

* implement utils::current_date() convenience function to reduce replicated code

* update list and order of include files from include-what-you-use analysis

* handle changes in GAP repo

* a few remaining updates to include statements

* expand mapping to handle "style_*.h" header files correctly.

* add support for compilation of OpenCL loader on FreeBSD

* more iwyu header updates

* small correction

* fix typo

* a few more (final?) IWYU updates

* expand tests for numeric values

* return int instead of bool to minimize code changes

* fix spelling issues

* some applications of the new function

* fix typo

* Change "offsite" to "external" to correct broken URLs to lammps.org

* improve error message

* insert missing atom-ID

* convert yes/no on/off flags in the package command(s)

* update version strings

* update death tests for change in error message

* correctly specify the destructor function name.

* apply utils::logical() to more commands

* apply utils::logical() in more places

* for consistency with utils::logical()

* only accept lower case to be consistent with the rest of the input

* a few more converted commands and updates for unit tests

* modernize and fix some memory leaks

* adjust for compatibility with C++20 compilers

* do not downgrade C++ standard when adding the KOKKOS package

* undo "risky" C++20 related changes

* mention how to set the path to the fftw3_omp library

* correct paths to downloaded PACE package sources in lib

* Update CMake variable descriptions

* possible workaround for some GPU package neighbor list issue

* final chunk of changes to apply utils::logical()

* update suffix command unit tests

* update citation info with new LAMMPS paper reference and acknowledge it

* update some formulations as suggested by @sjplimp

* add check and suitable error message when fp64 is required but not available

* do not call memset on a null pointer

* fix string formatting bugs in fix npt/cauchy

* must use a soft core potential to avoid a singularity

* in floating point math a*b may be zero even if both a>0 and b>0

* use proper integer type for atom IDs

* Building voro++ lib as part of LAMMPS requires the "patch" program

* silence output from hwloc when launching LAMMPS

* detect double precision support according to OpenCL specs (1.2 and later)

* Fix bug in Kokkos pair_eam_alloy

* calling fwrite() with a null pointer causes undefined behavior. avoid it.

* cosmetic

* apply current include file conventions

* include zstd libs in windows build

* update .gitignore for recent additions

* make check more obvious

* step version strings for stable release

* Adjust for kim-api bug

* cleaner variant of version check, add directory numbering

* hbond comm added for rsq_hb

* rsq_hb removed, exyz added (no MPI comm yet)

* 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.

* add -std=c++11 to a number of machine makefiles for traditional make build

* copy request to mention lammps.org form home page instructions for citing

* be more specific about what the name of the LAMMPS executable can be

also provide a few more examples without a machine suffix

* small tweak

* 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

* make "make package-update" and "make package-overwrite" less verbose

* 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.

* 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.

* Prevent neigh list from copying "unique" stencil/bin

* compiling ML-HDNNP with downloaded n2p2 lib requires the sed command

* 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()

* portability improvement

* must have patch command available to compile ScaFaCoS

* only need Tcl not Tk to compile Tcl swig wrapper

* correctly handle Tcl stub library if available

* add missing keyword

* hbond_pos added, MPI and values ok, Pair time slow.

* make C library example work with strict C compilers

* silence compiler warnings

* make Nevery keyword per-reaction

* recover cross-compilation with mingw64

* reverted wrong approach from last commits

- now intpos flag
- hbond_pos added
- (a/b)xyz WiP

* lrefpos working in serial, MPI wrong

* attempt to merge doubles into n(xyz)[3]

* save

* Update pair_oxdna_hbond.cpp

* hbond now working for MPI, comming lrefpos

Co-authored-by: Axel Kohlmeyer <akohlmey@gmail.com>
Co-authored-by: Richard Berger <richard.berger@temple.edu>
Co-authored-by: Ryan S. Elliott <relliott@umn.edu>
Co-authored-by: Stan Gerald Moore <stamoor@sandia.gov>
Co-authored-by: Giacomo Fiorin <giacomo.fiorin@gmail.com>
Co-authored-by: Jacob Gissinger <jrgiss05@gmail.com>
2021-10-13 10:47:41 +01:00
165708adeb use nullptr in unittest tree 2021-10-12 22:52:50 -04:00
643a7a1acb replace std::random_shuffle() with std::shuffle() to be compatible with C++17 and beyond 2021-10-12 22:39:30 -04:00
88631372ec use nullptr instead of NULL or 0 where applicable 2021-10-12 21:47:02 -04:00
dd6f49a753 use 'noexcept' instead of the deprecated 'throw()' 2021-10-12 21:29:33 -04:00
7b6a3c4307 remove redundant void arguments 2021-10-12 21:17:46 -04:00
1002763df3 remove default class members except for the assignment copy constructor 2021-10-12 21:17:00 -04:00
1d1573c5f2 Merge branch 'develop' into multi-config-support 2021-10-12 14:42:32 -04:00
26cd988672 Merge pull request #2989 from rbberger/unittest_bugfixes
Avoid file name collisions in dump unit tests
2021-10-12 14:41:25 -04:00
a8f42bd534 tweak to atom/swap doc page 2021-10-12 11:50:04 -06:00
c22dae8d2c add a new fix 2021-10-12 11:48:26 -06:00
113c53a5da doc page for new fix mol/swap 2021-10-12 11:45:50 -06:00
0bc6373386 Merge pull request #2983 from akohlmey/collected-small-changes
Collected small changes and bugfixes
2021-10-12 13:26:50 -04:00
77d830bf3a update YAML-CPP library target name to yaml-cpp-pace 2021-10-12 18:15:31 +02:00
a1ff9e35b7 Avoid file name collisions in dump unit tests 2021-10-12 12:15:19 -04:00
0a98ff3c38 add more features to mol/swap, sync with atom/swap 2021-10-12 09:56:51 -06:00
93d6e6dec9 update for new way of using googletest 2021-10-12 11:46:37 -04:00
2651e4650f use the new name of the main branch 2021-10-11 23:23:24 -04:00
9cf6b927cb Merge branch 'master' into collected-small-changes
# Conflicts:
#	src/REAXFF/fix_reaxff_species.cpp
2021-10-11 21:24:11 -04:00
96a45224de whitespace 2021-10-11 21:10:14 -04:00
27c9ba465b avoid duplication of Accelerator package info in additional doc pages 2021-10-11 16:49:59 -06:00
eedd953258 remove debug logic 2021-10-11 16:20:19 -06:00
cb77555fa6 update title in reference to accelerator section 2021-10-11 17:26:24 -04:00
510987dc80 Merge branch 'master' into multi-config-support
# Conflicts:
#	cmake/Modules/Packages/MSCG.cmake
#	examples/plugins/CMakeLists.txt
2021-10-11 17:03:41 -04:00
7bed85ef19 add debug statements 2021-10-11 15:00:20 -06:00
e79930dfb9 add check to prohibit using fix efield component in periodic direction with reaxff 2021-10-11 16:48:38 -04:00
4faca6531a fix typo 2021-10-11 16:35:54 -04:00
a45dbb6510 no need for static string buffers anymore 2021-10-11 16:35:42 -04:00
1f4c50037b Merge branch 'master' into acks2_release 2021-10-11 16:13:20 -04:00
a6cde11896 Merge pull request #2985 from stanmoore1/kk_issues
Fix issues with Kokkos package
2021-10-11 15:27:58 -04:00
2290ade2f2 ensure that fix efield is initialized before accessing its data. 2021-10-11 15:06:24 -04:00
6d2b32f0b2 move chi field calculation to fix qeq/reaxff 2021-10-11 14:35:23 -04:00
2ea4c71125 Merge pull request #2979 from akohlmey/platform-namespace
Implement a "platform" sub-namespace with platform specific functions and wrappers
2021-10-11 13:41:15 -04:00
70cbb72e42 Merge branch 'master' into acks2_release 2021-10-11 09:58:44 -04:00
a3e59082bf small adjustments and apply clang-format 2021-10-11 08:13:44 -04:00
124f7760d8 Merge branch 'master' into feature/ml-pace-multispecies 2021-10-11 07:30:22 -04:00
0c57267a85 update branch names 2021-10-10 04:44:45 -04:00
eb6b73c752 update documentation to refer to the new branch names (develop, release) 2021-10-10 04:39:16 -04:00
54e2e58aec update fmtlib to version 8.0.1 2021-10-09 23:57:35 -04:00
cf4e671474 Merge branch 'master' into fmt_upgrade 2021-10-09 23:42:17 -04:00
64b27fa28e only run windows compilation action on master branch in lammps repo 2021-10-09 20:54:18 -04:00
1bbed2579b try alternate approach to make MSVC++ happy linking STUBS 2021-10-09 20:32:39 -04:00
c3629b5f01 MS VC++ needs to have STUBS with PUBLIC linkage 2021-10-09 20:27:47 -04:00
5ad7e5a815 correct path to preset file and do two quick runs for checking the binary 2021-10-09 19:55:30 -04:00
2e122ff62b Add GitHub action compiling LAMMPS with Visual C++ 2021-10-09 19:46:52 -04:00
f558a5c06f update LAMMPS homepage URLs 2021-10-09 11:41:54 -04:00
5739621f5c make single() function consistent with compute() function 2021-10-09 11:33:02 -04:00
c8c3e8f661 use predefined constant and apply optimization for power function with integer argument 2021-10-09 11:27:35 -04:00
3a4b68a464 modernize code 2021-10-09 11:18:33 -04:00
ed23a3aa69 correct comments 2021-10-09 11:18:16 -04:00
018e37a2e9 add unit tests for bond style fene/nm/split and pair style nm/cut/split 2021-10-09 11:06:18 -04:00
7bdf52eac5 do not shadow members of the BondFENE base class and use the corresponding allocation/deallocation 2021-10-09 11:00:19 -04:00
ba44d6aba2 must set define to "see" the lammps_open() library function 2021-10-09 10:20:47 -04:00
dd6e3c1acc avoid variable length array and signed vs. unsigned warnings 2021-10-08 20:07:20 -04:00
241e01edba whitespace 2021-10-08 19:00:30 -04:00
c5205be071 update src/.gitignore 2021-10-08 16:25:55 -04:00
a0fc74f1a9 make class names, include guards and formatting consistent. apply clang-format 2021-10-08 16:25:44 -04:00
3313d3bfa3 make documentation consistent and properly integrate it 2021-10-08 16:24:57 -04:00
fc42992cdf Merge branch 'master' into nm_split_styles 2021-10-08 15:57:17 -04:00
09bcfc2116 document visual studio support 2021-10-08 15:33:49 -04:00
ae0fa17132 make consistent with include files 2021-10-08 15:33:26 -04:00
83bc70bf05 workaround for classic intel compiler on windows 2021-10-08 15:11:16 -04:00
fb137b26bf silence compiler warnings 2021-10-08 13:59:17 -04:00
46efae5998 needed for compilation on windows. not really used because of platform::walltime() 2021-10-08 13:58:08 -04:00
6e8da80148 adjustments for intel compilers on windows 2021-10-08 13:57:09 -04:00
cc11fa37b2 whitespace 2021-10-08 11:44:09 -04:00
392ebf7db7 revise automatic seed generation 2021-10-08 11:35:55 -04:00
b5061b69be add warning to fix reaxff/species to explain the impact of large averaging 2021-10-07 20:46:01 -04:00
30c146457a improve messages 2021-10-07 20:29:01 -04:00
4b86dbd200 add cmake configuration file for visual studio 2021-10-07 17:11:33 -04:00
e12fa57794 A few more tweaks 2021-10-07 17:11:04 -04:00
4fca127ea4 copy MSVC++ compiler hacks to plugin CMakeLists.txt file 2021-10-07 15:59:12 -04:00
d5b3ea263b awpmd requires blas, mgpt is not portable 2021-10-07 15:45:14 -04:00
5d5cc0ac55 preset with packages that build natively on windows with visual c++ 2021-10-07 15:31:26 -04:00
ef8aa4de90 silence warning 2021-10-07 15:29:46 -04:00
3a3f07d91a use portable logic operators 2021-10-07 15:05:32 -04:00
2b27af1572 fix a few more MSVC issues and reduce warnings 2021-10-07 14:37:37 -04:00
2c7b67203a recover unit test compile 2021-10-07 13:44:18 -04:00
0f442fddd9 correct use of utils function 2021-10-07 12:40:29 -04:00
6a9bb577cf rename "zip" functions to "compress" functions. update related docs 2021-10-07 12:38:11 -04:00
4f17082d74 use portable logic operators 2021-10-07 12:23:17 -04:00
3661b8cd50 optimize 2021-10-07 12:22:26 -04:00
a818be585d use portable functions from platform and utils namespaces 2021-10-07 12:22:16 -04:00
7372211d90 there is no more need to keep a copy of the arguments
this also eliminates buffer overflow bugs where the terminating 0 bytes
of copied strings are overwritten causing the fix to fail.
2021-10-07 07:42:13 -04:00
c8ff66e07f correct file extension for Zstd compressed files 2021-10-07 06:49:49 -04:00
059f450f1b add uppercase string utility function (for symmetry) 2021-10-07 00:00:33 -04:00
b8d6df6461 add missing platform scope 2021-10-06 20:44:42 -05:00
98d9b675f9 Use portable logical operators 2021-10-06 20:44:27 -05:00
5c34fe4d5d Replace strcasecmp() 2021-10-06 20:43:56 -05:00
b3ca238a61 silence warning 2021-10-06 17:44:57 -04:00
ef84435b7c replace non-portable strcasecmp() with comparing two strings converted to lowercase 2021-10-06 17:44:45 -04:00
a9bccee7b2 add utility to convert a string to lowercase 2021-10-06 17:43:41 -04:00
aab3e085a2 silence compiler warning on windows 2021-10-06 16:49:48 -04:00
f643c2b98f portability changes 2021-10-06 16:34:39 -04:00
50d997526c a few more MSVC++ tweaks for improved compatibility and fewer warnings 2021-10-06 16:18:21 -04:00
69e600c404 Misc updates and style fixes 2021-10-06 14:13:48 -06:00
4260d31b85 whitespace 2021-10-06 15:57:33 -04:00
7a1cf322e5 more tweaks for Visual C++ compilation and portability 2021-10-06 15:57:26 -04:00
6c7b42a190 small tweaks and fixes for compiling with MSVC++ 2021-10-06 15:24:59 -04:00
ec1a55b35b use platform code for reading/writing of compressed text file via a pipe 2021-10-06 15:04:48 -04:00
a539c317b3 Revert changes to makefile 2021-10-06 11:43:40 -07:00
3d86a0f5f6 Fix two bugs in compute_orientorder_atom_kokkos 2021-10-06 11:15:34 -07:00
891d4c278f port dump movie to platform namespace 2021-10-06 14:08:45 -04:00
5059bfe32b add Stan to Modify class as co-codeowner 2021-10-06 12:09:20 -04:00
d9288ae7e9 whitespace 2021-10-06 08:33:02 -07:00
bbfb2d2712 Add missing code to modify_kokkos 2021-10-06 08:27:25 -07:00
4aae11f8fb port plugin loader to platform namespace 2021-10-06 08:59:56 -04:00
10a8a1b325 add dlerror() call wrapper 2021-10-06 08:59:51 -04:00
7801d112b3 enable building plugins for windows 2021-10-06 07:10:35 -04:00
9fc23a2bda make use of platform namespace functions 2021-10-06 07:10:04 -04:00
e3cb5a5e25 restore old version of MPI_Wtime(). we're not using it anyway. 2021-10-06 07:09:36 -04:00
81492533e6 recover serial compilation 2021-10-05 23:19:52 -04:00
8b36061db4 replace MPI_Wtime() with platform::walltime() 2021-10-05 22:53:39 -04:00
f17aeebbcd make compilable on windows 2021-10-05 22:31:39 -04:00
46eaa4888e simplify using platform function 2021-10-05 22:31:25 -04:00
cc2d23de21 use platform::cputtime() 2021-10-05 22:31:06 -04:00
087c1b3a65 revive skipped code to detect OS revisions 2021-10-05 22:30:45 -04:00
6f2076a9b8 update docs 2021-10-05 22:11:19 -04:00
b2c4f08bbc use C++11 functionality to determine wall time 2021-10-05 21:52:52 -04:00
fcdabe0002 implement a platform neutral usleep() using C++11 2021-10-05 17:58:27 -04:00
528050aa08 use platform namespace to delete file 2021-10-05 17:57:38 -04:00
0c6707bf0c Fix compile issue with bond_class2_kokkos and UVM-enabled 2021-10-05 14:49:30 -06:00
e3e82df995 port "embedded" shell commands to use platform functions 2021-10-05 16:36:06 -04:00
5128eb7b43 port read/write_restart to use the platform namespace 2021-10-05 16:35:37 -04:00
af070aa351 add support for seeking to the end of a file 2021-10-05 15:44:58 -04:00
fc5920812f new group arg for delete_atoms porosity 2021-10-05 13:07:34 -06:00
f0940104f5 first version of new fix mol/swap command 2021-10-05 11:06:32 -06:00
340207988c fix a couple more bugs like in 5246cedda6 2021-10-05 10:36:25 -04:00
741cf9c7d5 remove obsoleted include statements 2021-10-05 07:36:22 -04:00
9f2c5116fa make lammps and msi2lmp man pages use section 1 2021-10-05 07:35:26 -04:00
0bdc6d47e0 port molfile plugin reader to platform namespace 2021-10-04 22:56:23 -04:00
ee594a879b make use of platform::putenv() 2021-10-04 22:39:43 -04:00
40f683c1a7 use platform functions to handle piping help output to a pager when on a console 2021-10-04 18:14:21 -04:00
7cdd82dee2 use platform functions for averaging fixes 2021-10-04 18:13:46 -04:00
dd2b5b22d4 fix saed/vtk does not use the overwrite option anywhere 2021-10-04 17:22:58 -04:00
485796f387 Merge branch 'master' into platform-namespace 2021-10-04 15:19:12 -04:00
ab51c1bd3d Merge pull request #2977 from akohlmey/collected-small-changes
Collected small changes
2021-10-04 11:07:03 -07:00
c6a15064b3 Merge pull request #2976 from stanmoore1/update_gitignore
Update .gitignore file in /src
2021-10-04 10:10:23 -07:00
6e54295b38 pre-built singularity images have been removed due to lack of interest 2021-10-04 11:34:28 -04:00
9d96e10048 silence compiler warning 2021-10-04 07:32:25 -04:00
dc2453a22b silence some compiler warnings 2021-10-04 06:56:13 -04:00
5246cedda6 Fix misplaced MPI calls bug in pair style drip 2021-10-04 06:50:38 -04:00
203b779622 also update eigen download for traditional build 2021-10-02 23:17:08 -04:00
45ea2b0431 update eigen3 to the latest release and move download to our own server 2021-10-02 22:52:03 -04:00
03f7bf6649 update eigen3 to the latest release and move download to our own server 2021-10-02 22:44:29 -04:00
c341c2c6a9 correct platform call in kim query command 2021-10-02 20:00:53 -04:00
7110e1c15e small format tweaks
- brief description should not end in a dot as it becomes a title line
- add empty line to separate title from body of description
- revert order of file/path separator constants so that the Linux version shows up in doxygen
2021-10-02 18:28:33 -04:00
a6aa3fd3ee apply clang-format 2021-10-02 18:26:46 -04:00
69a8dfe4d9 whitespace 2021-10-02 18:12:32 -04:00
dcaed72b6d update embedded docs 2021-10-02 17:29:21 -04:00
c6bdab8b4c disable optimization of cputime function for MSVC++ to avoid bogus 0s reports 2021-10-02 17:29:05 -04:00
2dcaa47b0e unfreeze versions of python packages used to build the documentation 2021-10-02 16:55:19 -04:00
37bfe3d0ce integrate platform sub-namespace into source code and documentation
this updates function calls to functions that have been moved from
the utils namepsace or the Info class to platform::
2021-10-02 16:55:11 -04:00
373dbcd9ae fix typo 2021-10-02 16:40:05 -04:00
35bef7b1d3 unfreeze versions of python packages used to build the documentation 2021-10-02 16:32:58 -04:00
195fe81c60 correct test for loading shared objects and libraries 2021-10-01 23:52:02 -04:00
a8193f42b8 Merge branch 'master' into platform-namespace 2021-10-01 21:58:52 -04:00
0cbf70a385 make compatible with C 2021-10-01 15:24:59 -04:00
60c6669d68 Remove lammpsplugin.h from .gitignore 2021-10-01 13:21:42 -06:00
cf06620538 raise the C++ standard to be at least C++14 when Kokkos is enabled.
This still allows to request a later standard for as long as it is C++14 or later
2021-10-01 15:16:40 -04:00
139dfd89e2 for improved C++20 compatibility 2021-10-01 15:14:53 -04:00
cc2d08506e accelerator_*.h files should not be ignored 2021-10-01 12:55:39 -06:00
bed1ff9a95 Remove more files from .gitignore 2021-10-01 12:46:06 -06:00
61c465c6f3 simplify creation of computes in fix ipi and fix plumed 2021-10-01 14:32:19 -04:00
7e7b8acf4b Update .gitignore 2021-10-01 12:12:53 -06:00
05b368e1c6 Merge pull request #2971 from lammps/doc-thermostats
Clarify thermostat doc pages to mention applying the thermostat only to regions of atoms
2021-10-01 12:18:38 -04:00
912d55c46a Merge pull request #2975 from rbberger/external_kokkos_fix
Avoid assertions in PythonCapabilities check when using external KOKKOS
2021-10-01 11:56:43 -04:00
dcf4b75ca2 Merge pull request #2973 from akohlmey/32bit-pointer-bugfix
32-bit pointer bugfix in bond/angle style gaussian
2021-10-01 11:36:26 -04:00
211df8b7b0 Avoid assertions in PythonCapabilities check when using external KOKKOS 2021-10-01 11:08:02 -04:00
434c170097 apply clang-format 2021-10-01 00:58:38 -04:00
01fb33cb5d fix memory allocation bug causing memory corruption on 32-bit arches 2021-10-01 00:57:02 -04:00
b5b2f5c03c additional tweak 2021-09-30 17:11:49 -06:00
f20bd63edf clarify doc pages for thermostatting fixes to mention regions 2021-09-30 16:55:22 -06:00
277f7a7e51 reduce electric field strength 2021-09-30 08:29:55 -04:00
05d2002db6 add test for using fix acks2/reaxff with fix efield 2021-09-30 07:04:46 -04:00
f2755a8085 simplify 2021-09-30 00:40:30 -04:00
f6cb693d6b whitespace 2021-09-30 00:40:15 -04:00
1840c51960 fmt::format() is no longer needed for this explicitly 2021-09-30 00:32:34 -04:00
359aa1d805 Merge branch 'master' into acks2_release 2021-09-30 00:26:25 -04:00
4d84ceb822 Merge pull request #2951 from akohlmey/parse-logical-keyword
Add utility function to parse boolean parameters
2021-09-30 00:09:37 -04:00
56cd66a6c3 Merge branch 'master' into parse-logical-keyword
# Conflicts:
#	src/H5MD/dump_h5md.cpp
2021-09-29 23:05:59 -04:00
15b3e875d5 import files for platform namespace from standalone project w/o updating LAMMPS 2021-09-29 16:29:25 -04:00
32049c3484 adopt for new multispecies PACE implementation 2021-09-29 16:04:09 +02:00
be3468ae07 Trying to fix style error 2021-09-27 16:31:48 -04:00
d69cb9e847 Changed \n to n \m to m 2021-09-27 14:54:15 -04:00
1e574b3e8a updated pair_nm doc 2021-09-27 14:12:09 -04:00
6447bd822c fixed fene_nm 2021-09-27 11:23:53 -04:00
faf9c1532a issue with EVAL command 2021-09-24 16:26:57 -06:00
93cc1ae3bb Removed comments in fene_nm 2021-09-24 14:04:54 -04:00
5229a4e765 Removed comments in fene_nm 2021-09-24 13:41:18 -04:00
0f2bebdb9b Adding bpm/spring pairstyle, misc small edits 2021-09-24 10:45:46 -06:00
be17d775e0 more debugging 2021-09-23 15:12:07 -06:00
c855c6f0ab rename 2 version to regular version 2021-09-23 12:55:28 -06:00
8b69b232a8 rename old version to old in filename 2021-09-23 12:48:43 -06:00
dcfdddf83f more bug fixes for new MDI classs 2021-09-23 12:39:11 -06:00
a83797091b Finally added Pair_nm_cut_split and bond_fene_nm_cut_split 2021-09-23 14:05:54 -04:00
5b02f704cc Finally added pair_nm_cut_split fene_nm_cut_split 2021-09-23 13:23:29 -04:00
422cab8878 update suffix command unit tests 2021-09-23 07:30:50 -04:00
f641b1c659 final chunk of changes to apply utils::logical() 2021-09-23 07:30:40 -04:00
342ca7ff1d add multi-config build support for MSCG package 2021-09-21 22:02:37 -04:00
914f035475 a few more converted commands and updates for unit tests 2021-09-21 17:23:41 -04:00
cbc5a2933a tweak epsilon 2021-09-21 15:44:42 -04:00
c9a8319a93 use more relealistic element ratio 2021-09-21 15:02:45 -04:00
0ddf63acc9 update ACKS2 unit test with potential parameters from example 2021-09-21 14:41:37 -04:00
9063466c03 move ACKS2 force field file to potentials folder and add LAMMPS-style metadata 2021-09-21 14:37:37 -04:00
c3d34e8656 only accept lower case to be consistent with the rest of the input 2021-09-21 14:18:23 -04:00
6227396afd for consistency with utils::logical() 2021-09-21 14:15:23 -04:00
1ba77e1629 apply utils::logical() in more places 2021-09-21 14:15:02 -04:00
41a3eccd1c apply utils::logical() to more commands 2021-09-21 07:48:50 -04:00
fe64649e49 Merge branch 'master' into multi-config-support 2021-09-20 20:42:03 -04:00
6adac6b637 Merge branch 'master' into parse-logical-keyword 2021-09-20 20:41:48 -04:00
6e8091470c update death tests for change in error message 2021-09-20 20:31:13 -04:00
18f0d2e1b5 Adding spring bondstyle 2021-09-20 18:06:10 -06:00
100da95e3a convert yes/no on/off flags in the package command(s) 2021-09-20 16:15:24 -04:00
d79b1b3145 Tweak example and add reference logs 2021-09-20 13:01:57 -06:00
9feab449fb Add ACKS2 example 2021-09-20 12:23:19 -06:00
f80259dfae some applications of the new function 2021-09-19 19:05:40 -04:00
860a93aa8b fix spelling issues 2021-09-19 18:32:45 -04:00
61c71c6605 return int instead of bool to minimize code changes 2021-09-19 18:07:56 -04:00
bfa2ea1fba expand tests for numeric values 2021-09-19 16:38:01 -04:00
cef100991f add utils::logical() function to complement the *numeric() functions 2021-09-16 17:52:51 -04:00
1adbd5f667 Fix remaining issues 2021-09-15 14:32:00 -06:00
c858703156 Remove unused variables 2021-09-14 20:20:09 -06:00
b4acacf5cb add minimal example and a unit test input 2021-09-14 16:40:42 -04:00
19bc606a20 fix typo 2021-09-14 16:26:38 -04:00
254dcdf665 include formatting updates for the KOKKOS files as well 2021-09-14 16:23:48 -04:00
86578554bb apply latest formatting conventions (w/o clang format on the .cpp file) 2021-09-14 15:34:28 -04:00
dfe0e313d5 fully integrate acks2/reaxff fix into documentation build 2021-09-14 15:31:36 -04:00
51cfbaa2ef Remove tabs 2021-09-14 10:56:03 -06:00
3badb14b5a Whitespace 2021-09-14 10:49:04 -06:00
65a085c067 Improve docs 2021-09-14 10:45:45 -06:00
2b17796d73 Switch max 2021-09-14 10:23:57 -06:00
f9236fbb33 Remove unused variable 2021-09-14 10:06:51 -06:00
15c7792c33 Fix issues with Kokkos package when ranks have zero atoms 2021-09-14 10:02:29 -06:00
fa3c29dda6 Merge branch 'master' of github.com:lammps/lammps into acks2_release 2021-09-14 08:41:23 -06:00
0202b1169a Minor edits to the error message 2021-09-12 23:08:36 -05:00
daa39d680c simplify 2021-09-11 13:43:25 -04:00
c394df5658 simplify and remove unused command. more multi-config adjustments 2021-09-11 07:30:18 -04:00
30558c0cd6 convert plugin compilation to also use add_subdirectory() instead of external project 2021-09-11 07:01:48 -04:00
932b3cabda add missing include (since we not longer include GTest.cmake) 2021-09-11 06:05:29 -04:00
bf360ad50f explicitly specify build folder for out-of-source subdirectory 2021-09-11 05:59:50 -04:00
68ddab0341 Report multi-config and adjust paths for python unit tests 2021-09-11 05:36:43 -04:00
84c945f7fb Use multi-config compatible way to integrate googletest for unit testing 2021-09-11 04:50:04 -04:00
0029ed106b more adjustments to MDI engine code 2021-09-10 17:59:19 -06:00
1e26fe2d6f support for reset_box and create_atom commands 2021-09-09 17:16:33 -06:00
5e0c754d04 Fixing style issues 2021-09-09 14:17:39 -06:00
31214de51a Update name 2021-09-09 12:08:09 -06:00
214725d1ee Use full precision for 1/3 2021-09-09 09:20:24 -06:00
f9a972220e Fixing data compression in history, small update to model 2021-09-09 09:00:21 -06:00
70cbc5e364 Add external field contribution to OPENMP QEq 2021-09-09 08:30:57 -06:00
ccbd24352e Remove const to work around GCC 7 compiler bug 2021-09-09 08:03:06 -06:00
4f825db5ab Add external field contribution to OPENMP QEq 2021-09-08 20:54:42 -06:00
826c4e1cd7 Allow fix acks2 to be backwards compatible with old reax name style 2021-09-08 20:40:57 -06:00
0e72aae0a3 Adding examples and misc bug fixes 2021-09-08 18:39:56 -06:00
7c5a9841f7 more whitespace 2021-09-08 16:01:45 -06:00
165efcdb07 homepage 2021-09-08 15:50:53 -06:00
ede892c83f whitespace 2021-09-08 15:45:54 -06:00
8b9dd6b0c1 Add ACKS2 charge equilibration method to REAXFF and support for electric fields in QEq 2021-09-08 15:06:23 -06:00
6193ebaba7 remove earlier USER-MDI files 2021-09-03 16:01:16 -06:00
481d6128c7 Merge branch 'master' into mdi-expand 2021-09-03 15:51:34 -06:00
a8a97962d2 more changes for AIMD testing 2021-09-03 15:50:17 -06:00
75cb6fc51b added support for LAMMPS as MDI AIMD driver 2021-09-02 17:52:10 -06:00
55f20288b1 Merge branch 'master' into mdi-expand 2021-08-30 16:52:49 -06:00
328e730c8f Merge branch 'master' into mdi-expand 2021-08-30 14:31:29 -06:00
d2984d2615 Merge branch 'master' into BPM 2021-08-27 10:04:04 -06:00
bb720626e3 Adding files for BPM 2021-08-27 09:22:56 -06:00
92d9efa1af Merge branch 'master' into gpu-newton-pair-on 2021-08-19 23:25:49 -05:00
904a2ef910 Reverted the default setting of newton_pair off for FixGPU; newton_pair can be set to be on via command-line options of package gpu 2021-08-19 22:54:06 -05:00
64d7b73d7c Update region.rst
Include a few lines describing the "ellipsoid" option
2021-08-09 07:54:41 +02:00
35aeadfdd4 implementation of a "ellipsoidal" region option
Based on the code of the region_sphere and the code described in https://www.geometrictools.com/Documentation/DistancePointEllipseEllipsoid.pdf, an option for axis-aligned ellipsoidal regions has been implemented
2021-08-08 17:01:51 +02:00
0904ffa813 Enabled newton pair on for gpu pair styles 2021-08-06 01:11:31 -05:00
0867299adb Fixed format error bug in third order tensor print 2021-07-19 11:54:49 -07:00
b3fed4d1a9 update regex to match with updated fmtlib 2021-06-24 10:13:52 -04:00
f8ebcff078 changes to mdi_engine 2021-06-22 09:36:40 -06:00
79cbafd3c7 Reapply LAMMPS changes to fmtlib 2021-06-21 11:55:41 -04:00
f7752da97f Update fmtlib to 8.0.0 2021-06-21 11:50:57 -04:00
8761ae65a3 Merge branch 'master' into mdi-expand 2021-06-10 09:50:23 -06:00
41d7038c1e trial versions of new mdi_engine and fix_mdi_engine 2021-05-27 17:24:29 -06:00
3f42e97405 remove old printf workarounds
Change-Id: I46a66538c886c9961977e0433e900bc91d92c4f2
2021-05-17 13:01:33 -04:00
f44f983b3b Restore the previous atom/teamsizes for ComputeHFunctor
Change-Id: I292280efd3d5d0d6a7486c1e9798ef4f632d9df4
2021-05-17 10:11:11 -04:00
abcac33c63 cleanup rebase errors
Change-Id: Ib8e255fefcb17ff91bc0bfdfcb98e56d3387b9b2
2021-05-17 10:11:06 -04:00
ad1c1637d4 cleanup & the various vector-wise SPMVs
Change-Id: Id29ec4e1968ddfccf26335a0f41a8652db33b89b
2021-05-14 15:58:54 -04:00
fc2eff64bb remove hard coded launchbounds / teamsizes for compat. w/ Kokkos LB=256 default
Change-Id: I7dcd26eee32b3fc049549ae380ffaf85423eed2e
2021-05-14 15:58:53 -04:00
1d6f24f0df hide additional printf
Change-Id: I200c85013b9d0163847194ad4b18ac33af65a823
2021-05-14 15:58:53 -04:00
f629de84f9 cleanup printf workarounds
Change-Id: Id9960f545fa0159d6c38392711b6ac584715d3d9
2021-05-14 15:58:52 -04:00
18466fb05b legal stuff
Change-Id: I5ab375285fdea9b20d8174a582aca9e78bf0f8a3
2021-05-14 15:58:52 -04:00
844dea3e1b temporary fix for EAM
Change-Id: Ia39bf1b4c3adcbadf0b1bde39d6817f44869946b
2021-05-14 15:58:49 -04:00
dff61617fe Change LaunchBounds to 64 for TagPairTersoffComputeHalf
Change-Id: I7fb8871c30acab4fc98654df618af6e786bc6244
2021-05-14 15:56:41 -04:00
926a037cba thread group dimension adjustment for FixQEqReaxKokkosComputeHFunctor
Change-Id: I7a62632a2403cdc3491777b090a1cb48d3a7591b
2021-05-14 15:56:41 -04:00
20a4d295e5 Optimized Torsion with blocking, flag needed: HIP_OPT_TORSION_PREVIEW_BLOCKING and HIP_OPT_TORSION_PREVIEW
Change-Id: I667ded58fc2c8b8253ea655e9fdf9b5cc3f737e4
2021-05-14 15:56:40 -04:00
e3a2eb0713 merging FC_K and DFC calculation, activate with flag HIP_OPT_MERGE_FC_K_DFC
Change-Id: I68440f02c79f8cc2cc4788dac2447cfa58f0b54a
2021-05-14 15:56:40 -04:00
1856b669be Apply patch from Stan to fix race in Reax
Change-Id: I372b5951cf0f5e3343c3c6283f01cf0b8c889a56
2021-05-14 15:56:38 -04:00
56a1cd12e5 fix for multi-GPU failure for reax
Change-Id: Ia261ff2f1158de2bd6ac2d83a15080f6b6253128
2021-05-14 15:55:54 -04:00
6b568aff7a adding merged ters_gijk and ters_dgijk, flag AMD_OPT_MERGE_GIJK_DGIJK is required
Change-Id: I8d9f433ecb38f8bd3cc72d8f2bc1642f753c7270
2021-05-14 15:48:23 -04:00
bb1b269cf8 optimization for Matvec2 and Matvec3, need -DHIP_OPT_SPMV
Change-Id: Ia40d2f27c38dd0e500cb7f8f02908be8b1f52a63
2021-05-14 15:48:22 -04:00
ce96898331 Add CUDA variants for hip calls
Change-Id: I5d169ee1563c915c0768675d2ec2e7a1774bc969
2021-05-14 15:48:22 -04:00
c25ccfdb98 adding optimization in tersoff
Change-Id: I21d2bfe5181b3395430ec4b9949894c61b61587a
2021-05-14 15:48:21 -04:00
9a48ae0c06 optimized pair_eam_kokkos. need more work to avoid large shared memory allocations
Change-Id: I1c23b0e10fdfa932b17ad764cf5a1d024b43d80a
2021-05-14 15:48:19 -04:00
f732e633ec Avoid loading data twice if itype==jtype
Change-Id: I430a761555bdbd93e3ca1b298c962b75b91175aa
2021-05-14 15:36:49 -04:00
4d9c2a97d2 replacing pow(a,1/3) with the cbrt(a) call - optimization is activated using the existing HIP_OPT_USE_LESS_MATH flag
Change-Id: Ic6670c54f453127e948036e5c9a88154b5af6e68
2021-05-14 15:36:48 -04:00
33346ae961 change teamsize
Change-Id: Ie7666e8ec8192fced098fe744f318aaf25365f5a
2021-05-14 15:36:48 -04:00
117995c2fc updated PairReaxBuildListsHalf use -DPairReaxBuildListsHalf_BLOCKING to activate
Change-Id: I8d1ec5ed9ec7042e9cdc53da825c07d3bc44e2bd
2021-05-14 15:36:47 -04:00
20dc9576d9 updated PairReaxComputeLJCoulomb. use -DPairReaxComputeLJCoulomb_BLOCKING to activate
Change-Id: Idef8dafc79216368bffbf90547016afca5f32a43
2021-05-14 15:36:47 -04:00
c6efc01a7f Revised Torsion kernel with -DHIP_PRINTF_WORKAROUND
Change-Id: Iffee0dfbd507f1a0b873a86a8b1c71ffcb5b344e
2021-05-14 15:36:46 -04:00
397b098ac0 fix memory leak in counter allocs
Change-Id: Ia45e3e5d1ce92b4fd537a031181bf719a243a8b1
2021-05-14 15:36:46 -04:00
775167ecd9 apply torsion preview to all cases
Change-Id: Icc619a89fc4af98735c0fbbeb52d655dc60b10fd
2021-05-14 15:36:45 -04:00
b0f638d937 fix bug where preview counters were being used in reduce (but was iterating over inum)
Change-Id: Ic60f40d5adcc6505ced83c7d5694813e161f73ac
2021-05-14 15:36:44 -04:00
fee6d98201 Catch missing HIP_OPT_TORSION_PREVIEW parts in kernel
Change-Id: Ib0ed83940bcd870a9531d596422956741e4f735a
2021-05-14 15:36:44 -04:00
dabb120096 fix undefined nnz w/ HIP_OPT_TORSION_PREVIEW off
Change-Id: Ie11be12a98ba48b9134537b5389b2b9300dc2be8
2021-05-14 15:36:43 -04:00
e2de1c5e8f Make the torsion preview optional
- enabled with -DHIP_OPT_TORSION_PREVIEW
	- reuse hiphostmalloced' memory when possible

Change-Id: I25fbe7b06cffe1b6047048cd71f78bbf54d73774
2021-05-14 15:36:43 -04:00
de0341121f test templated workaround for reduce bug
Change-Id: I858e0446c453b1d194b8c653d388c14aec450c63
2021-05-14 15:36:42 -04:00
44d036f486 fixing a bug in Torsion preview
Change-Id: I8f119d695f5ea3d9faa27843f87e54d3e0e086e9
2021-05-14 15:35:55 -04:00
3b3ef7e9a5 Minor optimization of tersoff kernel TagPairTersoffComputeShortNeigh
Change-Id: If70e524b6bf30d3bcdacf732cf3aab897e2843d4
2021-05-14 15:35:54 -04:00
705d314879 revised version of TagPairTersoffComputeHalf; requires defining define USE_COMBINED_JJ_LLOPS_TERSOFF
Change-Id: I45717fb9af210ef8bedffc2d228b60a7ec0368ef
2021-05-14 15:35:53 -04:00
bcd4ab036c Implement forward device pack/unpack for fix/qeq/reax
Change-Id: I690a63f7ef467d3f1b39784ac97cab54ed7fb248
2021-05-14 15:35:51 -04:00
14b388aea9 Revised torsion kernel with preprocessing
- preprocess the interaction lists to reduce divergence

Change-Id: I842cc424963333308c5aaaeb202c8f41f07a55f5
2021-05-14 15:19:54 -04:00
51b3cb640f Adding support to reducing number of mat lib. calls (-DHIP_OPT_USE_LESS_MATH)
Change-Id: I44d140cf1b9421ccb3277b0592d3100b76c6eae9
2021-05-14 15:19:53 -04:00
5b8e138d0f add more missing launch bounds
Change-Id: Ifc4c94963b3c1c26455d32598f366af84c73883e
2021-05-14 15:19:53 -04:00
99db66d485 Add launch bounds patches to avoid SWDEV-252521
Change-Id: I389b5db94c14f1e5bc90c1848bfc0e038774ee19
2021-05-14 15:19:52 -04:00
0423a3e537 Merge branch 'master' into OptimizedDynamicalMatrix 2021-04-27 13:36:34 -07:00
b982542ae6 update indentation to 2 blanks. avoid "hanging else" constructs. 2021-04-21 14:56:26 -04:00
598e82d236 small cosmetic changes 2021-04-21 12:16:43 -04:00
1ee8de42d9 minor cleanups and simplifications using fmtlib 2021-04-21 12:08:37 -04:00
cd236776de Merge branch 'master' into OptimizedDynamicalMatrix 2021-04-21 11:46:36 -04:00
0fc73c9d67 support for centroid virial stress in rigid/small 2021-04-19 16:18:06 +09:00
b904d256cd implement keeping track of geometric center in rigid/small 2021-04-20 14:06:53 +09:00
ac7c5592d7 add centroid virial tally function in preparation for rigid/small support 2021-12-06 17:45:49 +09:00
0ed44e0b81 Remove leftover merge conflict string 2021-04-16 18:05:20 -07:00
535384b235 Finish updating to current master 2021-04-16 17:14:55 -07:00
a3e204a99d Simplified reset_extra_dof 2021-03-17 16:23:04 +10:00
97f90f1146 Cleaned up math for clarity 2021-03-17 15:56:48 +10:00
471cfa8ac3 Fixed inconsistent default extra_dof value 2021-03-17 14:31:17 +10:00
aad0a9a0f3 Updated documentation to reflect changes in compute_temp_profile 2021-03-17 14:14:33 +10:00
b1b7f7a248 Fixed treatment of DoF when streaming velocity not subtracted in some dimensions 2021-03-17 13:59:16 +10:00
5e4dd5321c Using local dof and tfactor for compute_array to prevent overwrite 2021-03-17 13:38:51 +10:00
c643389ec4 Treat extra_dof as system-wide in compute_array for consistency, and include fix_dof 2021-03-17 11:38:07 +10:00
ab07427339 Corrected default extra_dof 2021-03-17 09:52:05 +10:00
fed47b9ffc Merged 1/29/2021 master and fixed merge conflicts 2021-01-29 12:33:17 -08:00
3ff8d8bf41 update centroid/stress/atom compute to correctly handle fixes with CENTROID_AVAIL 2020-12-14 19:41:34 +09:00
8520a71646 centroid stress support in shake (and rattle) 2020-12-14 19:31:38 +09:00
abba1204a8 support for centroid stress in fixes 2021-12-06 17:12:39 +09:00
3a9796d9b3 add flags for centroid stress 2020-12-14 19:29:18 +09:00
e57b391d40 Add threading capability to both commands 2020-07-20 11:35:10 -07:00
5abddfe68d Fixed nitpicky details, updated output, moved mass out of folded check 2020-07-19 19:12:01 -07:00
9011cfaa96 Added neighbors of neighbors list indexed by tag and return tags. 2020-07-18 02:27:31 -07:00
dd6e5df356 Remove print statement 2020-07-16 14:16:12 -07:00
7133311d2d Change Allreduce to fit bigint 2020-07-16 14:13:45 -07:00
999dd13924 Draft of force calculation reduction through neighbor lists 2020-07-15 12:45:46 -07:00
4b656b3961 Check if atom is part of group before computing forces 2020-07-14 15:47:14 -07:00
35f3aeb15a Merge branch 'master' into OptimizedDynamicalMatrix 2020-07-13 19:48:16 -07:00
d368c46ea9 Merge remote-tracking branch 'origin' 2020-07-13 19:46:44 -07:00
57d674cc81 Merge branch 'master' into OptimizedDynamicalMatrix 2020-07-13 19:46:05 -07:00
3a4652613d Add folded option, change ballistico to eskm, add post force modifications 2020-07-13 19:43:24 -07:00
255cc85b32 Merge branch 'master' of https://github.com/charlessievers/lammps 2019-09-04 16:18:57 -07:00
65399a6193 Merge branch 'OptimizedDynamicalMatrix' of https://github.com/charlessievers/lammps 2019-02-01 20:51:08 -08:00
4932 changed files with 425582 additions and 532015 deletions

6
.gitattributes vendored
View File

@ -3,3 +3,9 @@
.github export-ignore
.lgtm.yml export-ignore
SECURITY.md export-ignore
* text=auto
*.jpg -text
*.pdf -text
*.gz -text
*.png -text
*.ps -text

2
.github/CODEOWNERS vendored
View File

@ -83,7 +83,7 @@ src/library.* @sjplimp
src/main.cpp @sjplimp
src/min_*.* @sjplimp
src/memory.* @sjplimp
src/modify.* @sjplimp
src/modify.* @sjplimp @stanmoore1
src/molecule.* @sjplimp
src/my_page.h @sjplimp
src/my_pool_chunk.h @sjplimp

View File

@ -5,8 +5,8 @@ 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 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 guide for submitting new features in the LAMMPS manual](https://www.lammps.org/doc/Modify_contribute.html)
* [The guide on programming style and requirement in the LAMMPS manual](https://www.lammps.org/doc/Modify_style.html)
* [The GitHub tutorial in the LAMMPS manual](http://lammps.sandia.gov/doc/Howto_github.html)
## Table of Contents

View File

@ -3,7 +3,7 @@ name: "CodeQL Code Analysis"
on:
push:
branches: [master]
branches: [develop]
jobs:
analyze:

47
.github/workflows/compile-msvc.yml vendored Normal file
View File

@ -0,0 +1,47 @@
# GitHub action to build LAMMPS on Windows with Visual C++
name: "Native Windows Compilation and Unit Tests"
on:
push:
branches: [develop]
jobs:
build:
name: Windows Compilation Test
if: ${{ github.repository == 'lammps/lammps' }}
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
fetch-depth: 2
- name: Select Python version
uses: actions/setup-python@v2
with:
python-version: '3.10'
- name: Building LAMMPS via CMake
shell: bash
run: |
python3 -m pip install numpy
python3 -m pip install pyyaml
cmake -C cmake/presets/windows.cmake \
-D PKG_PYTHON=on \
-S cmake -B build \
-D BUILD_SHARED_LIBS=on \
-D LAMMPS_EXCEPTIONS=on \
-D ENABLE_TESTING=on
cmake --build build --config Release
- name: Run LAMMPS executable
shell: bash
run: |
./build/Release/lmp.exe -h
./build/Release/lmp.exe -in bench/in.lj
- name: Run Unit Tests
working-directory: build
shell: bash
run: ctest -V -C Release

View File

@ -3,7 +3,7 @@ name: "Unittest for MacOS"
on:
push:
branches: [master]
branches: [develop]
jobs:
build:
@ -37,6 +37,7 @@ jobs:
working-directory: build
run: |
ccache -z
python3 -m pip install pyyaml
cmake -C ../cmake/presets/clang.cmake \
-C ../cmake/presets/most.cmake \
-D CMAKE_CXX_COMPILER_LAUNCHER=ccache \

8
.gitignore vendored
View File

@ -12,6 +12,7 @@
*.sif
*.dll
*.pyc
*.whl
a.out
__pycache__
@ -37,8 +38,8 @@ vgcore.*
.Trashes
ehthumbs.db
Thumbs.db
.clang-format
.lammps_history
.vs
#cmake
/build*
@ -49,3 +50,8 @@ Thumbs.db
/Testing
/cmake_install.cmake
/lmp
out/Debug
out/RelWithDebInfo
out/Release
out/x86
out/x64

View File

@ -23,6 +23,10 @@ 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).
To mitigate issues with using homoglyphs or bidirectional reordering in
unicode, which have been demonstrated as a vector to obfuscate and hide
malicious changes to the source code, all LAMMPS submissions are checked
for unicode characters and only all-ASCII source code is accepted.
# Version Updates

View File

@ -1,98 +1,98 @@
# COMB parameters for various elements (Si, Cu, Hf, Ti, Zr, U, O) and mixtures (their oxides and alloys)
# Edited by Tzu-Ray Shan from MSE, Univ. FL in Apr 2010
#
# Elements currently available: Si, Cu, Hf, Ti, Zr, U, O
# Oxides currently available: Si-O, Cu-O, Hf-O, Ti-O
#
# Si parameter set from (JG Yu, SB Sinnott, SR Phillpot, Phys. Rev. B 75 085311 2007)
# ,and (TR Shan, BD Devine, SR Phillpot, SB Sinnott, to be sub to Phys. Rev. B)
# O parameter set from (TR Shan, BD Devine, SB Sinnott, SR Phillpot, Phys. Rev. B 81 125328 2010)
# Cu parameter set from (BD Devine, TR Shan, SB Sinnott, SR Phillpot, to be sub to Phys. Rev. B)
# Hf parameter set from (TR Shan, BD Devine, SB Sinnott, SR Phillpot, Phys. Rev. B 81 125328 2010)
# Ti parameter set from (TR Shan, SR Phillpot, SB Sinnott, in preparation)
# U parameter set from (Y Li, TR Shan, SB Sinnott, SR Phillpot, in preparation)
# Zr parameter set from (T Iwasaki, J. Mater. Res. 20 5 1300 2005)
#
# Multiple entries can be added to this file, LAMMPS reads the ones it needs
# Only M-O are added in the potential table, using mixing rules to generate desired alloy (A-B) parameters
# 8 entries for a desired A-B type: AAA, BBB, AAB, ABA, ABB, BAA, BBA, BBA
# 27 entries for a system containing three elements A, B and C
# These entries are in LAMMPS "metal" units
#
Hf Hf Hf 1 0 1 0 1.011011 0.046511 0.959614 0.959614 55.9421 55.9421 3.90 0.10 2.069563 2.069563 707.53 707.53 0 0 0.008 0 0 0 1 1 1 1 -4 4 0.26152 -0.25918 -4 4 0.26152 -0.25918 0 3.139520d0 0 0.009410d0 0 0.679131 -3.92875 -3.92875 4.83958 4.83958 12 0.0
Ti Ti Ti 1 0 1 0 1.255016 0.089078 1.226342 1.226342 99.3916 99.3916 3.40 0.10 2.082408 2.082408 546.386 546.386 0 0 0.0084 0 0 0 1 1 1 1 -4 4 2.508854 -2.511416 -4 4 2.508854 -2.511416 0 2.46820415900968 0 0.151351003255176 0 0.873685 0.392632 0.392632 1.78349 1.78349 12 0.0
O O O 1 6.6 1 -0.229 1 2 2.68 2.68 260.893 260.893 2.8 0.2 5.36 5.36 3326.69 3326.69 0 0 0 0 0 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -1.8349 5.5046 0.00148 -0.00112 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -3.922011 0.971086 0.971086 12 0.0
Cu Cu Cu 1 0 1 0 1 0.140835 1.681711 1.681711 146.987 146.987 2.95 0.05 2.794608 2.794608 952.693 952.693 0.077 0.0095 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -6 2 0.1677645 -0.161007 0 5.946437 0 0 0 0.454784 0.72571 0.72571 0.274649 0.274649 12 -2.0
Si Si Si 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 1.7322 471.18 471.18 2.90 0.10 2.4799 2.4799 1830.8 1830.8 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -4 4 1.651725 -1.658949 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -0.499378 2.999911 2.999911 12 0.0
Zr Zr Zr 1 0 1 0 1 0 0.929 0.929 39.9454 39.9454 3.8 0.31 1.857 1.857 382.6 382.6 0 0 0 0 0 0 1 1 1 1 -4 4 1.64 -1.5 -4 4 1.64 -1.5 0 3.139520d0 0 0.009410d0 0 0.679131 -3.92875 -3.92875 4.83958 4.83958 12 0.0
U U U 1 0 1 0 4.346966 0.77617 0.832 0.832 162.6 162.6 3.9 0.15 1.835 1.835 795.6 795.6 0 0 0 0 0 0 1 1 1 1 -4 4 2 -2 -4 4 2 -2 0 3.139520d0 0 0.009410d0 0 0.679131 -3.92875 -3.92875 4.83958 4.83958 12 0.0
#
Si O O 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 2.68 471.18 260.893 2.80 0.25 2.4799 5.36 1830.8 3326.69 0 0 0 109.47 0.3122 0 1 1 1 1 -4 4 1.651725 -1.658949 -1.8349 5.5046 0.00148 -0.00112 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -3.922011 2.999911 0.971086 12 0
O Si Si 1 6.6 1 -0.229 1 2 2.68 1.7322 260.893 471.18 2.80 0.25 5.36 2.4799 3326.69 1830.8 0 0 0 143.73 2.6 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -4 4 1.651725 -1.658949 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -0.499378 0.971086 2.999911 12 0
Si O Si 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 2.68 471.18 260.893 2.80 0.25 2.4799 5.36 1830.8 3326.69 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -1.8349 5.5046 0.00148 -0.00112 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -3.922011 2.999911 0.971086 12 0
O Si O 1 6.6 1 -0.229 1 2 2.68 1.7322 260.893 471.18 3.20 0.25 5.36 2.4799 3326.69 1830.8 0 0 0 0 0 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -4 4 1.651725 -1.658949 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -0.499378 0.971086 2.999911 12 0
Si Si O 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 1.7322 471.18 471.18 2.80 0.25 2.4799 2.4799 1830.8 1830.8 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -4 4 1.651725 -1.658949 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -0.499378 2.999911 2.999911 12 0
O O Si 1 6.6 1 -0.229 1 2 2.68 2.68 260.893 260.893 2.80 0.25 5.36 5.36 3326.69 3326.69 0 0 0 0 0 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -1.8349 5.5046 0.00148 -0.00112 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -3.922011 0.971086 0.971086 12 0
#
Si Cu Cu 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 1.681711 471.18 146.987 2.70 0.10 2.4799 2.794608 1830.8 952.693 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -6 2 0.1677645 -0.161007 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 0.72571 2.999911 0.274649 12 0
Cu Si Si 1 0 1 0 1 0.140835 1.681711 1.7322 146.987 471.18 2.70 0.10 2.794608 2.4799 952.693 1830.8 0 0 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -4 4 1.651725 -1.658949 0 5.946437 0 0 0 0.454784 0.72571 -0.499378 0.274649 2.999911 12 0
Si Cu Si 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 1.681711 471.18 146.987 2.70 0.10 2.4799 2.794608 1830.8 952.693 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -6 2 0.1677645 -0.161007 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 0.72571 2.999911 0.274649 12 0
Cu Si Cu 1 0 1 0 1 0.140835 1.681711 1.7322 146.987 471.18 2.70 0.10 2.794608 2.4799 952.693 1830.8 0 0 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -4 4 1.651725 -1.658949 0 5.946437 0 0 0 0.454784 0.72571 -0.499378 0.274649 2.999911 12 0
Si Si Cu 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 1.7322 471.18 471.18 2.70 0.10 2.4799 2.4799 1830.8 1830.8 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -4 4 1.651725 -1.658949 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -0.499378 2.999911 2.999911 12 0
Cu Cu Si 1 0 1 0 1 0.140835 1.681711 1.681711 146.987 146.987 2.70 0.10 2.794608 2.794608 952.693 952.693 0 0 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -6 2 0.1677645 -0.161007 0 5.946437 0 0 0 0.454784 0.72571 0.72571 0.274649 0.274649 12 0
#
Si O Cu 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 2.68 471.18 260.893 2.80 0.10 2.4799 5.36 1830.8 3326.69 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -1.8349 5.5046 0.00148 -0.00112 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -3.922011 2.999911 0.971086 12 0
Cu O Si 1 0 1 0 1 0.140835 1.681711 2.68 146.987 260.893 2.40 0.10 2.794608 5.36 952.693 3326.69 0 0 0 0 0 0 0.15867 1.106214 0.533319 1.857837 -6 2 0.1677645 -0.161007 -1.8349 5.5046 0.00148 -0.00112 0 5.946437 0 0 0 0.454784 0.72571 -3.922011 0.274649 0.971086 12 0
Si Cu O 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 1.681711 471.18 146.987 2.70 0.10 2.4799 2.794608 1830.8 952.693 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -6 2 0.1677645 -0.161007 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 0.72571 2.999911 0.274649 12 0
Cu Si O 1 0 1 0 1 0.140835 1.681711 1.7322 146.987 471.18 2.70 0.10 2.794608 2.4799 952.693 1830.8 0 0 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -4 4 1.651725 -1.658949 0 5.946437 0 0 0 0.454784 0.72571 -0.499378 0.274649 2.999911 12 0
O Si Cu 1 6.6 1 -0.229 1 2 2.68 1.7322 260.893 471.18 2.80 0.10 5.36 2.4799 3326.69 1830.8 0 0 0 0 0 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -4 4 1.651725 -1.658949 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -0.499378 0.971086 2.999911 12 0
O Cu Si 1 6.6 1 -0.229 1 2 2.68 1.681711 260.893 146.987 2.40 0.10 5.36 2.794608 3326.69 952.693 0 0 0 0 0 0 0.15867 1.106214 0.533319 1.857837 -1.8349 5.5046 0.00148 -0.00112 -6 2 0.1677645 -0.161007 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 0.72571 0.971086 0.274649 12 0
#
Cu O O 1 0 1 0 1 0.140835 1.681711 2.68 146.987 260.893 2.40 0.110 2.794608 5.36 952.693 3326.69 0 0 0 360 3.0 0 0.15867 1.106214 0.533319 1.857837 -6 2 0.1677645 -0.161007 -1.8349 5.5046 0.00148 -0.00112 0 5.946437 0 0 0 0.454784 0.72571 -3.922011 0.274649 0.971086 12 -1.0
O Cu Cu 1 6.6 1 -0.229 1 2 2.68 1.681711 260.893 146.987 2.40 0.110 5.36 2.794608 3326.69 952.693 0 0 0 109.47 2.98 0 0.15867 1.106214 0.533319 1.857837 -1.8349 5.5046 0.00148 -0.00112 -6 2 0.1677645 -0.161007 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 0.72571 0.971086 0.274649 12 0
Cu O Cu 1 0 1 0 1 0.140835 1.681711 2.68 146.987 260.893 2.40 0.110 2.794608 5.36 952.693 3326.69 0 0 0 0 0 0 0.15867 1.106214 0.533319 1.857837 -6 2 0.1677645 -0.161007 -1.8349 5.5046 0.00148 -0.00112 0 5.946437 0 0 0 0.454784 0.72571 -3.922011 0.274649 0.971086 12 0
O Cu O 1 6.6 1 -0.229 1 2 2.68 1.681711 260.893 146.987 2.40 0.110 5.36 2.794608 3326.69 952.693 0 0 0 0 0 0 0.15867 1.106214 0.533319 1.857837 -1.8349 5.5046 0.00148 -0.00112 -6 2 0.1677645 -0.161007 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 0.72571 0.971086 0.274649 12 0
Cu Cu O 1 0 1 0 1 0.140835 1.681711 1.681711 146.987 146.987 2.90 0.05 2.794608 2.794608 952.693 952.693 0 0 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -6 2 0.1677645 -0.161007 0 5.946437 0 0 0 0.454784 0.72571 0.72571 0.274649 0.274649 12 0
O O Cu 1 6.6 1 -0.229 1 2 2.68 2.68 260.893 260.893 2.80 0.20 5.36 5.36 3326.69 3326.69 0 0 0 0 0 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -1.8349 5.5046 0.00148 -0.00112 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -3.922011 0.971086 0.971086 12 0
#
Si Hf Hf 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 0.959614 471.18 55.9421 3.26 0.15 2.4799 2.069563 1830.8 707.53 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -4 4 0.26152 -0.25918 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -3.92875 2.999911 4.83958 12 0
Hf Si Si 1 0 1 0 1.011011 0.046511 0.959614 1.7322 55.9421 471.18 3.26 0.15 2.069563 2.4799 707.53 1830.8 0 0 0 0 0 0 1 1 1 1 -4 4 0.26152 -0.25918 -4 4 1.651725 -1.658949 0 3.13952 0 0.00941 0 0.719131 -3.92875 -0.499378 4.83958 2.999911 12 0
Si Hf Si 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 0.959614 471.18 55.9421 3.26 0.15 2.4799 2.069563 1830.8 707.53 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -4 4 0.26152 -0.25918 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -3.92875 2.999911 4.83958 12 0
Hf Si Hf 1 0 1 0 1.011011 0.046511 0.959614 1.7322 55.9421 471.18 3.26 0.15 2.069563 2.4799 707.53 1830.8 0 0 0 0 0 0 1 1 1 1 -4 4 0.26152 -0.25918 -4 4 1.651725 -1.658949 0 3.13952 0 0.00941 0 0.719131 -3.92875 -0.499378 4.83958 2.999911 12 0
Si Si Hf 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 1.7322 471.18 471.18 3.26 0.15 2.4799 2.4799 1830.8 1830.8 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -4 4 1.651725 -1.658949 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -0.499378 2.999911 2.999911 12 0
Hf Hf Si 1 0 1 0 1.011011 0.046511 0.959614 0.959614 55.9421 55.9421 3.26 0.15 2.069563 2.069563 707.53 707.53 0 0 0 0 0 0 1 1 1 1 -4 4 0.26152 -0.25918 -4 4 0.26152 -0.25918 0 3.13952 0 0.00941 0 0.719131 -3.92875 -3.92875 4.83958 4.83958 12 0
#
Si O Hf 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 2.68 471.18 260.893 3.196 0.21 2.4799 5.36 1830.8 3326.69 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -1.8349 5.5046 0.00148 -0.00112 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -3.922011 2.999911 0.971086 12 0
Hf O Si 1 0 1 0 1.011011 0.046511 0.959614 2.68 55.9421 260.893 3.196 0.21 2.069563 5.36 707.53 3326.69 0 0 0 0 0 0.14 1 1 1 1 -4 4 0.26152 -0.25918 -1.8349 5.5046 0.00148 -0.00112 0 3.13952 0 0.00941 0 0.719131 -3.92875 -3.922011 4.83958 0.971086 12 0.16
Si Hf O 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 0.959614 471.18 55.9421 3.26 0.15 2.4799 2.069563 1830.8 707.53 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -4 4 0.26152 -0.25918 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -3.92875 2.999911 4.83958 12 0
Hf Si O 1 0 1 0 1.011011 0.046511 0.959614 1.7322 55.9421 471.18 3.26 0.15 2.069563 2.4799 707.53 1830.8 0 0 0 0 0 0 1 1 1 1 -4 4 0.26152 -0.25918 -4 4 1.651725 -1.658949 0 3.13952 0 0.00941 0 0.719131 -3.92875 -0.499378 4.83958 2.999911 12 0
O Si Hf 1 6.6 1 -0.229 1 2 2.68 1.7322 260.893 471.18 3.196 0.21 5.36 2.4799 3326.69 1830.8 0 0 0 0 0 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -4 4 1.651725 -1.658949 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -0.499378 0.971086 2.999911 12 0
O Hf Si 1 6.6 1 -0.229 1 2 2.68 0.959614 260.893 55.9421 3.196 0.21 5.36 2.069563 3326.69 707.53 0 0 0 0 0 0.14 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -4 4 0.26152 -0.25918 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -3.92875 0.971086 4.83958 12 0.16
#
Hf O O 1 0 1 0 1.011011 0.046511 0.959614 2.68 55.9421 260.893 3.29 0.12 2.069563 5.36 707.53 3326.69 0 0 0 0 0 0.14 1 1 1 1 -4 4 0.26152 -0.25918 -1.8349 5.5046 0.00148 -0.00112 0 3.13952 0 0.00941 0 0.679131 -3.92875 -3.922011 4.83958 0.971086 12 0.30
O Hf Hf 1 6.6 1 -0.229 1 2 2.68 0.959614 260.893 55.9421 3.29 0.12 5.36 2.069563 3326.69 707.53 0 0 0 0 0 0.14 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -4 4 0.26152 -0.25918 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -3.92875 0.971086 4.83958 12 0.30
Hf O Hf 1 0 1 0 1.011011 0.046511 0.959614 2.68 55.9421 260.893 3.29 0.12 2.069563 5.36 707.53 3326.69 0 0 0 0 0 0.14 1 1 1 1 -4 4 0.26152 -0.25918 -1.8349 5.5046 0.00148 -0.00112 0 3.13952 0 0.00941 0 0.679131 -3.92875 -3.922011 4.83958 0.971086 12 0.30
O Hf O 1 6.6 1 -0.229 1 2 2.68 0.959614 260.893 55.9421 3.29 0.12 5.36 2.069563 3326.69 707.53 0 0 0 0 0 0.14 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -4 4 0.26152 -0.25918 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -3.92875 0.971086 4.83958 12 0.30
Hf Hf O 1 0 1 0 1.011011 0.046511 0.959614 0.959614 55.9421 55.9421 3.29 0.12 2.069563 2.069563 707.53 707.53 0 0 0 0 0 0.0 1 1 1 1 -4 4 0.26152 -0.25918 -4 4 0.26152 -0.25918 0 3.13952 0 0.00941 0 0.679131 -3.92875 -3.92875 4.83958 4.83958 12 0.30
O O Hf 1 6.6 1 -0.229 1 2 2.68 2.68 260.893 260.893 3.29 0.12 5.36 5.36 3326.69 3326.69 0 0 0 0 0 0.0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -1.8349 5.5046 0.00148 -0.00112 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -3.922011 0.971086 0.971086 12 0.30
#
Ti O O 1 0 1 0 1.255016 0.089078 1.226342 2.68 99.3916 260.893 3.25 0.10 2.082408 5.36 546.386 3326.69 0 0 0 90 0.403105 8.45 0.088406 0.969934 0.296577 1.326746 -4 4 2.508854 -2.511416 -1.8349 5.5046 0.00148 -0.00112 0 1.943430774 0 0.254695274 0 0.873685 0.392632 -3.922011 1.78349 0.971086 12 0.0
O Ti Ti 1 6.6 1 -0.229 1 2 2.68 1.226342 260.893 99.3916 3.25 0.10 5.36 2.082408 3326.69 546.386 0 0 0 130.54 0.202777 8.45 0.088406 0.969934 0.296577 1.326746 -1.8349 5.5046 0.00148 -0.00112 -4 4 2.508854 -2.511416 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 0.392632 0.971086 1.78349 12 0.0
Ti O Ti 1 0 1 0 1.255016 0.089078 1.226342 2.68 99.3916 260.893 3.25 0.10 2.082408 5.36 546.386 3326.69 0 0 0 0 0 8.45 0.088406 0.969934 0.296577 1.326746 -4 4 2.508854 -2.511416 -1.8349 5.5046 0.00148 -0.00112 0 1.943430774 0 0.254695274 0 0.873685 0.392632 -3.922011 1.78349 0.971086 12 0.0
O Ti O 1 6.6 1 -0.229 1 2 2.68 1.226342 260.893 99.3916 3.25 0.10 5.36 2.082408 3326.69 546.386 0 0 0 0 0 8.45 0.088406 0.969934 0.296577 1.326746 -1.8349 5.5046 0.00148 -0.00112 -4 4 2.508854 -2.511416 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 0.392632 0.971086 1.78349 12 0.0
Ti Ti O 1 0 1 0 1.255016 0.089078 1.226342 1.226342 99.3916 99.3916 3.25 0.10 2.082408 2.082408 546.386 546.386 0 0 0 0 0 0 1 1 1 1 -4 4 2.508854 -2.511416 -4 4 2.508854 -2.511416 0 1.943430774 0 0.254695274 0 0.873685 0.392632 0.392632 1.78349 1.78349 12 0.0
O O Ti 1 6.6 1 -0.229 1 2 2.68 2.68 260.893 260.893 2.80 0.20 5.36 5.36 3326.69 3326.69 0 0 0 0 0 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -1.8349 5.5046 0.00148 -0.00112 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -3.922011 0.971086 0.971086 12 0.0
#
Ti Cu Cu 1 0 1 0 1.255016 0.089078 1.226342 1.681711 99.3916 146.987 3.40 0.15 2.082408 2.794608 546.386 952.693 0 0 0 0 0 0 1 1 1 1 -4 4 2.508854 -2.511416 -6 2 0.1677645 -0.161007 0 1.943430774 0 0.254695274 0 0.873685 0.392632 0.72571 1.78349 0.274649 12 0
Cu Ti Ti 1 0 1 0 1 0.140835 1.681711 1.226342 146.987 99.3916 3.40 0.15 2.794608 2.082408 952.693 546.386 0 0 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -4 4 2.508854 -2.511416 0 5.946437 0 0 0 0.454784 0.72571 0.392632 0.274649 1.78349 12 0
Ti Cu Ti 1 0 1 0 1.255016 0.089078 1.226342 1.681711 99.3916 146.987 3.40 0.15 2.082408 2.794608 546.386 952.693 0 0 0 0 0 0 1 1 1 1 -4 4 2.508854 -2.511416 -6 2 0.1677645 -0.161007 0 1.943430774 0 0.254695274 0 0.873685 0.392632 0.72571 1.78349 0.274649 12 0
Cu Ti Cu 1 0 1 0 1 0.140835 1.681711 1.226342 146.987 99.3916 3.40 0.15 2.794608 2.082408 952.693 546.386 0 0 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -4 4 2.508854 -2.511416 0 5.946437 0 0 0 0.454784 0.72571 0.392632 0.274649 1.78349 12 0
Ti Ti Cu 1 0 1 0 1.255016 0.089078 1.226342 1.226342 99.3916 99.3916 3.40 0.10 2.082408 2.082408 546.386 546.386 0 0 0 0 0 0 1 1 1 1 -4 4 2.508854 -2.511416 -4 4 2.508854 -2.511416 0 1.943430774 0 0.254695274 0 0.873685 0.392632 0.392632 1.78349 1.78349 12 0
Cu Cu Ti 1 0 1 0 1 0.140835 1.681711 1.681711 146.987 146.987 2.90 0.05 2.794608 2.794608 952.693 952.693 0 0 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -6 2 0.1677645 -0.161007 0 5.946437 0 0 0 0.454784 0.72571 0.72571 0.274649 0.274649 12 0
#
Ti O Cu 1 0 1 0 1.255016 0.089078 1.226342 2.68 99.3916 260.893 3.25 0.10 2.082408 5.36 546.386 3326.69 0 0 0 0 0 8.45 0.088406 0.969934 0.296577 1.326746 -4 4 2.508854 -2.511416 -1.8349 5.5046 0.00148 -0.00112 0 1.943430774 0 0.254695274 0 0.873685 0.392632 -3.922011 1.78349 0.971086 12 0
Cu O Ti 1 0 1 0 1 0.140835 1.681711 2.68 146.987 260.893 2.40 0.10 2.794608 5.36 952.693 3326.69 0 0 0 0 0 0 0.15867 1.106214 0.533319 1.857837 -6 2 0.1677645 -0.161007 -1.8349 5.5046 0.00148 -0.00112 0 5.946437 0 0 0 0.454784 0.72571 -3.922011 0.274649 0.971086 12 0
Ti Cu O 1 0 1 0 1.255016 0.089078 1.226342 1.681711 99.3916 146.987 3.40 0.15 2.082408 2.794608 546.386 952.693 0 0 0 0 0 0 1 1 1 1 -4 4 2.508854 -2.511416 -6 2 0.1677645 -0.161007 0 1.943430774 0 0.254695274 0 0.873685 0.392632 0.72571 1.78349 0.274649 12 0
Cu Ti O 1 0 1 0 1 0.140835 1.681711 1.226342 146.987 99.3916 3.40 0.15 2.794608 2.082408 952.693 546.386 0 0 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -4 4 2.508854 -2.511416 0 5.946437 0 0 0 0.454784 0.72571 0.392632 0.274649 1.78349 12 0
O Ti Cu 1 6.6 1 -0.229 1 2 2.68 1.226342 260.893 99.3916 3.25 0.10 5.36 2.082408 3326.69 546.386 0 0 0 0 0 8.45 0.088406 0.969934 0.296577 1.326746 -1.8349 5.5046 0.00148 -0.00112 -4 4 2.508854 -2.511416 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 0.392632 0.971086 1.78349 12 0
O Cu Ti 1 6.6 1 -0.229 1 2 2.68 1.681711 260.893 146.987 2.40 0.10 5.36 2.794608 3326.69 952.693 0 0 0 0 0 0 0.15867 1.106214 0.533319 1.857837 -1.8349 5.5046 0.00148 -0.00112 -6 2 0.1677645 -0.161007 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 0.72571 0.971086 0.274649 12 0
# COMB parameters for various elements (Si, Cu, Hf, Ti, Zr, U, O) and mixtures (their oxides and alloys)
# Edited by Tzu-Ray Shan from MSE, Univ. FL in Apr 2010
#
# Elements currently available: Si, Cu, Hf, Ti, Zr, U, O
# Oxides currently available: Si-O, Cu-O, Hf-O, Ti-O
#
# Si parameter set from (JG Yu, SB Sinnott, SR Phillpot, Phys. Rev. B 75 085311 2007)
# ,and (TR Shan, BD Devine, SR Phillpot, SB Sinnott, to be sub to Phys. Rev. B)
# O parameter set from (TR Shan, BD Devine, SB Sinnott, SR Phillpot, Phys. Rev. B 81 125328 2010)
# Cu parameter set from (BD Devine, TR Shan, SB Sinnott, SR Phillpot, to be sub to Phys. Rev. B)
# Hf parameter set from (TR Shan, BD Devine, SB Sinnott, SR Phillpot, Phys. Rev. B 81 125328 2010)
# Ti parameter set from (TR Shan, SR Phillpot, SB Sinnott, in preparation)
# U parameter set from (Y Li, TR Shan, SB Sinnott, SR Phillpot, in preparation)
# Zr parameter set from (T Iwasaki, J. Mater. Res. 20 5 1300 2005)
#
# Multiple entries can be added to this file, LAMMPS reads the ones it needs
# Only M-O are added in the potential table, using mixing rules to generate desired alloy (A-B) parameters
# 8 entries for a desired A-B type: AAA, BBB, AAB, ABA, ABB, BAA, BBA, BBA
# 27 entries for a system containing three elements A, B and C
# These entries are in LAMMPS "metal" units
#
Hf Hf Hf 1 0 1 0 1.011011 0.046511 0.959614 0.959614 55.9421 55.9421 3.90 0.10 2.069563 2.069563 707.53 707.53 0 0 0.008 0 0 0 1 1 1 1 -4 4 0.26152 -0.25918 -4 4 0.26152 -0.25918 0 3.139520d0 0 0.009410d0 0 0.679131 -3.92875 -3.92875 4.83958 4.83958 12 0.0
Ti Ti Ti 1 0 1 0 1.255016 0.089078 1.226342 1.226342 99.3916 99.3916 3.40 0.10 2.082408 2.082408 546.386 546.386 0 0 0.0084 0 0 0 1 1 1 1 -4 4 2.508854 -2.511416 -4 4 2.508854 -2.511416 0 2.46820415900968 0 0.151351003255176 0 0.873685 0.392632 0.392632 1.78349 1.78349 12 0.0
O O O 1 6.6 1 -0.229 1 2 2.68 2.68 260.893 260.893 2.8 0.2 5.36 5.36 3326.69 3326.69 0 0 0 0 0 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -1.8349 5.5046 0.00148 -0.00112 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -3.922011 0.971086 0.971086 12 0.0
Cu Cu Cu 1 0 1 0 1 0.140835 1.681711 1.681711 146.987 146.987 2.95 0.05 2.794608 2.794608 952.693 952.693 0.077 0.0095 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -6 2 0.1677645 -0.161007 0 5.946437 0 0 0 0.454784 0.72571 0.72571 0.274649 0.274649 12 -2.0
Si Si Si 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 1.7322 471.18 471.18 2.90 0.10 2.4799 2.4799 1830.8 1830.8 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -4 4 1.651725 -1.658949 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -0.499378 2.999911 2.999911 12 0.0
Zr Zr Zr 1 0 1 0 1 0 0.929 0.929 39.9454 39.9454 3.8 0.31 1.857 1.857 382.6 382.6 0 0 0 0 0 0 1 1 1 1 -4 4 1.64 -1.5 -4 4 1.64 -1.5 0 3.139520d0 0 0.009410d0 0 0.679131 -3.92875 -3.92875 4.83958 4.83958 12 0.0
U U U 1 0 1 0 4.346966 0.77617 0.832 0.832 162.6 162.6 3.9 0.15 1.835 1.835 795.6 795.6 0 0 0 0 0 0 1 1 1 1 -4 4 2 -2 -4 4 2 -2 0 3.139520d0 0 0.009410d0 0 0.679131 -3.92875 -3.92875 4.83958 4.83958 12 0.0
#
Si O O 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 2.68 471.18 260.893 2.80 0.25 2.4799 5.36 1830.8 3326.69 0 0 0 109.47 0.3122 0 1 1 1 1 -4 4 1.651725 -1.658949 -1.8349 5.5046 0.00148 -0.00112 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -3.922011 2.999911 0.971086 12 0
O Si Si 1 6.6 1 -0.229 1 2 2.68 1.7322 260.893 471.18 2.80 0.25 5.36 2.4799 3326.69 1830.8 0 0 0 143.73 2.6 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -4 4 1.651725 -1.658949 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -0.499378 0.971086 2.999911 12 0
Si O Si 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 2.68 471.18 260.893 2.80 0.25 2.4799 5.36 1830.8 3326.69 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -1.8349 5.5046 0.00148 -0.00112 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -3.922011 2.999911 0.971086 12 0
O Si O 1 6.6 1 -0.229 1 2 2.68 1.7322 260.893 471.18 3.20 0.25 5.36 2.4799 3326.69 1830.8 0 0 0 0 0 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -4 4 1.651725 -1.658949 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -0.499378 0.971086 2.999911 12 0
Si Si O 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 1.7322 471.18 471.18 2.80 0.25 2.4799 2.4799 1830.8 1830.8 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -4 4 1.651725 -1.658949 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -0.499378 2.999911 2.999911 12 0
O O Si 1 6.6 1 -0.229 1 2 2.68 2.68 260.893 260.893 2.80 0.25 5.36 5.36 3326.69 3326.69 0 0 0 0 0 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -1.8349 5.5046 0.00148 -0.00112 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -3.922011 0.971086 0.971086 12 0
#
Si Cu Cu 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 1.681711 471.18 146.987 2.70 0.10 2.4799 2.794608 1830.8 952.693 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -6 2 0.1677645 -0.161007 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 0.72571 2.999911 0.274649 12 0
Cu Si Si 1 0 1 0 1 0.140835 1.681711 1.7322 146.987 471.18 2.70 0.10 2.794608 2.4799 952.693 1830.8 0 0 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -4 4 1.651725 -1.658949 0 5.946437 0 0 0 0.454784 0.72571 -0.499378 0.274649 2.999911 12 0
Si Cu Si 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 1.681711 471.18 146.987 2.70 0.10 2.4799 2.794608 1830.8 952.693 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -6 2 0.1677645 -0.161007 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 0.72571 2.999911 0.274649 12 0
Cu Si Cu 1 0 1 0 1 0.140835 1.681711 1.7322 146.987 471.18 2.70 0.10 2.794608 2.4799 952.693 1830.8 0 0 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -4 4 1.651725 -1.658949 0 5.946437 0 0 0 0.454784 0.72571 -0.499378 0.274649 2.999911 12 0
Si Si Cu 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 1.7322 471.18 471.18 2.70 0.10 2.4799 2.4799 1830.8 1830.8 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -4 4 1.651725 -1.658949 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -0.499378 2.999911 2.999911 12 0
Cu Cu Si 1 0 1 0 1 0.140835 1.681711 1.681711 146.987 146.987 2.70 0.10 2.794608 2.794608 952.693 952.693 0 0 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -6 2 0.1677645 -0.161007 0 5.946437 0 0 0 0.454784 0.72571 0.72571 0.274649 0.274649 12 0
#
Si O Cu 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 2.68 471.18 260.893 2.80 0.10 2.4799 5.36 1830.8 3326.69 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -1.8349 5.5046 0.00148 -0.00112 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -3.922011 2.999911 0.971086 12 0
Cu O Si 1 0 1 0 1 0.140835 1.681711 2.68 146.987 260.893 2.40 0.10 2.794608 5.36 952.693 3326.69 0 0 0 0 0 0 0.15867 1.106214 0.533319 1.857837 -6 2 0.1677645 -0.161007 -1.8349 5.5046 0.00148 -0.00112 0 5.946437 0 0 0 0.454784 0.72571 -3.922011 0.274649 0.971086 12 0
Si Cu O 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 1.681711 471.18 146.987 2.70 0.10 2.4799 2.794608 1830.8 952.693 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -6 2 0.1677645 -0.161007 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 0.72571 2.999911 0.274649 12 0
Cu Si O 1 0 1 0 1 0.140835 1.681711 1.7322 146.987 471.18 2.70 0.10 2.794608 2.4799 952.693 1830.8 0 0 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -4 4 1.651725 -1.658949 0 5.946437 0 0 0 0.454784 0.72571 -0.499378 0.274649 2.999911 12 0
O Si Cu 1 6.6 1 -0.229 1 2 2.68 1.7322 260.893 471.18 2.80 0.10 5.36 2.4799 3326.69 1830.8 0 0 0 0 0 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -4 4 1.651725 -1.658949 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -0.499378 0.971086 2.999911 12 0
O Cu Si 1 6.6 1 -0.229 1 2 2.68 1.681711 260.893 146.987 2.40 0.10 5.36 2.794608 3326.69 952.693 0 0 0 0 0 0 0.15867 1.106214 0.533319 1.857837 -1.8349 5.5046 0.00148 -0.00112 -6 2 0.1677645 -0.161007 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 0.72571 0.971086 0.274649 12 0
#
Cu O O 1 0 1 0 1 0.140835 1.681711 2.68 146.987 260.893 2.40 0.110 2.794608 5.36 952.693 3326.69 0 0 0 360 3.0 0 0.15867 1.106214 0.533319 1.857837 -6 2 0.1677645 -0.161007 -1.8349 5.5046 0.00148 -0.00112 0 5.946437 0 0 0 0.454784 0.72571 -3.922011 0.274649 0.971086 12 -1.0
O Cu Cu 1 6.6 1 -0.229 1 2 2.68 1.681711 260.893 146.987 2.40 0.110 5.36 2.794608 3326.69 952.693 0 0 0 109.47 2.98 0 0.15867 1.106214 0.533319 1.857837 -1.8349 5.5046 0.00148 -0.00112 -6 2 0.1677645 -0.161007 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 0.72571 0.971086 0.274649 12 0
Cu O Cu 1 0 1 0 1 0.140835 1.681711 2.68 146.987 260.893 2.40 0.110 2.794608 5.36 952.693 3326.69 0 0 0 0 0 0 0.15867 1.106214 0.533319 1.857837 -6 2 0.1677645 -0.161007 -1.8349 5.5046 0.00148 -0.00112 0 5.946437 0 0 0 0.454784 0.72571 -3.922011 0.274649 0.971086 12 0
O Cu O 1 6.6 1 -0.229 1 2 2.68 1.681711 260.893 146.987 2.40 0.110 5.36 2.794608 3326.69 952.693 0 0 0 0 0 0 0.15867 1.106214 0.533319 1.857837 -1.8349 5.5046 0.00148 -0.00112 -6 2 0.1677645 -0.161007 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 0.72571 0.971086 0.274649 12 0
Cu Cu O 1 0 1 0 1 0.140835 1.681711 1.681711 146.987 146.987 2.90 0.05 2.794608 2.794608 952.693 952.693 0 0 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -6 2 0.1677645 -0.161007 0 5.946437 0 0 0 0.454784 0.72571 0.72571 0.274649 0.274649 12 0
O O Cu 1 6.6 1 -0.229 1 2 2.68 2.68 260.893 260.893 2.80 0.20 5.36 5.36 3326.69 3326.69 0 0 0 0 0 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -1.8349 5.5046 0.00148 -0.00112 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -3.922011 0.971086 0.971086 12 0
#
Si Hf Hf 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 0.959614 471.18 55.9421 3.26 0.15 2.4799 2.069563 1830.8 707.53 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -4 4 0.26152 -0.25918 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -3.92875 2.999911 4.83958 12 0
Hf Si Si 1 0 1 0 1.011011 0.046511 0.959614 1.7322 55.9421 471.18 3.26 0.15 2.069563 2.4799 707.53 1830.8 0 0 0 0 0 0 1 1 1 1 -4 4 0.26152 -0.25918 -4 4 1.651725 -1.658949 0 3.13952 0 0.00941 0 0.719131 -3.92875 -0.499378 4.83958 2.999911 12 0
Si Hf Si 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 0.959614 471.18 55.9421 3.26 0.15 2.4799 2.069563 1830.8 707.53 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -4 4 0.26152 -0.25918 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -3.92875 2.999911 4.83958 12 0
Hf Si Hf 1 0 1 0 1.011011 0.046511 0.959614 1.7322 55.9421 471.18 3.26 0.15 2.069563 2.4799 707.53 1830.8 0 0 0 0 0 0 1 1 1 1 -4 4 0.26152 -0.25918 -4 4 1.651725 -1.658949 0 3.13952 0 0.00941 0 0.719131 -3.92875 -0.499378 4.83958 2.999911 12 0
Si Si Hf 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 1.7322 471.18 471.18 3.26 0.15 2.4799 2.4799 1830.8 1830.8 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -4 4 1.651725 -1.658949 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -0.499378 2.999911 2.999911 12 0
Hf Hf Si 1 0 1 0 1.011011 0.046511 0.959614 0.959614 55.9421 55.9421 3.26 0.15 2.069563 2.069563 707.53 707.53 0 0 0 0 0 0 1 1 1 1 -4 4 0.26152 -0.25918 -4 4 0.26152 -0.25918 0 3.13952 0 0.00941 0 0.719131 -3.92875 -3.92875 4.83958 4.83958 12 0
#
Si O Hf 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 2.68 471.18 260.893 3.196 0.21 2.4799 5.36 1830.8 3326.69 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -1.8349 5.5046 0.00148 -0.00112 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -3.922011 2.999911 0.971086 12 0
Hf O Si 1 0 1 0 1.011011 0.046511 0.959614 2.68 55.9421 260.893 3.196 0.21 2.069563 5.36 707.53 3326.69 0 0 0 0 0 0.14 1 1 1 1 -4 4 0.26152 -0.25918 -1.8349 5.5046 0.00148 -0.00112 0 3.13952 0 0.00941 0 0.719131 -3.92875 -3.922011 4.83958 0.971086 12 0.16
Si Hf O 3 100390 16.218 -0.59826 0.78734 1.0999E-06 1.7322 0.959614 471.18 55.9421 3.26 0.15 2.4799 2.069563 1830.8 707.53 0 0 0 0 0 0 1 1 1 1 -4 4 1.651725 -1.658949 -4 4 0.26152 -0.25918 0 3.625144859 0 0.087067714 0 0.772871 -0.499378 -3.92875 2.999911 4.83958 12 0
Hf Si O 1 0 1 0 1.011011 0.046511 0.959614 1.7322 55.9421 471.18 3.26 0.15 2.069563 2.4799 707.53 1830.8 0 0 0 0 0 0 1 1 1 1 -4 4 0.26152 -0.25918 -4 4 1.651725 -1.658949 0 3.13952 0 0.00941 0 0.719131 -3.92875 -0.499378 4.83958 2.999911 12 0
O Si Hf 1 6.6 1 -0.229 1 2 2.68 1.7322 260.893 471.18 3.196 0.21 5.36 2.4799 3326.69 1830.8 0 0 0 0 0 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -4 4 1.651725 -1.658949 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -0.499378 0.971086 2.999911 12 0
O Hf Si 1 6.6 1 -0.229 1 2 2.68 0.959614 260.893 55.9421 3.196 0.21 5.36 2.069563 3326.69 707.53 0 0 0 0 0 0.14 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -4 4 0.26152 -0.25918 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -3.92875 0.971086 4.83958 12 0.16
#
Hf O O 1 0 1 0 1.011011 0.046511 0.959614 2.68 55.9421 260.893 3.29 0.12 2.069563 5.36 707.53 3326.69 0 0 0 0 0 0.14 1 1 1 1 -4 4 0.26152 -0.25918 -1.8349 5.5046 0.00148 -0.00112 0 3.13952 0 0.00941 0 0.679131 -3.92875 -3.922011 4.83958 0.971086 12 0.30
O Hf Hf 1 6.6 1 -0.229 1 2 2.68 0.959614 260.893 55.9421 3.29 0.12 5.36 2.069563 3326.69 707.53 0 0 0 0 0 0.14 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -4 4 0.26152 -0.25918 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -3.92875 0.971086 4.83958 12 0.30
Hf O Hf 1 0 1 0 1.011011 0.046511 0.959614 2.68 55.9421 260.893 3.29 0.12 2.069563 5.36 707.53 3326.69 0 0 0 0 0 0.14 1 1 1 1 -4 4 0.26152 -0.25918 -1.8349 5.5046 0.00148 -0.00112 0 3.13952 0 0.00941 0 0.679131 -3.92875 -3.922011 4.83958 0.971086 12 0.30
O Hf O 1 6.6 1 -0.229 1 2 2.68 0.959614 260.893 55.9421 3.29 0.12 5.36 2.069563 3326.69 707.53 0 0 0 0 0 0.14 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -4 4 0.26152 -0.25918 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -3.92875 0.971086 4.83958 12 0.30
Hf Hf O 1 0 1 0 1.011011 0.046511 0.959614 0.959614 55.9421 55.9421 3.29 0.12 2.069563 2.069563 707.53 707.53 0 0 0 0 0 0.0 1 1 1 1 -4 4 0.26152 -0.25918 -4 4 0.26152 -0.25918 0 3.13952 0 0.00941 0 0.679131 -3.92875 -3.92875 4.83958 4.83958 12 0.30
O O Hf 1 6.6 1 -0.229 1 2 2.68 2.68 260.893 260.893 3.29 0.12 5.36 5.36 3326.69 3326.69 0 0 0 0 0 0.0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -1.8349 5.5046 0.00148 -0.00112 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -3.922011 0.971086 0.971086 12 0.30
#
Ti O O 1 0 1 0 1.255016 0.089078 1.226342 2.68 99.3916 260.893 3.25 0.10 2.082408 5.36 546.386 3326.69 0 0 0 90 0.403105 8.45 0.088406 0.969934 0.296577 1.326746 -4 4 2.508854 -2.511416 -1.8349 5.5046 0.00148 -0.00112 0 1.943430774 0 0.254695274 0 0.873685 0.392632 -3.922011 1.78349 0.971086 12 0.0
O Ti Ti 1 6.6 1 -0.229 1 2 2.68 1.226342 260.893 99.3916 3.25 0.10 5.36 2.082408 3326.69 546.386 0 0 0 130.54 0.202777 8.45 0.088406 0.969934 0.296577 1.326746 -1.8349 5.5046 0.00148 -0.00112 -4 4 2.508854 -2.511416 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 0.392632 0.971086 1.78349 12 0.0
Ti O Ti 1 0 1 0 1.255016 0.089078 1.226342 2.68 99.3916 260.893 3.25 0.10 2.082408 5.36 546.386 3326.69 0 0 0 0 0 8.45 0.088406 0.969934 0.296577 1.326746 -4 4 2.508854 -2.511416 -1.8349 5.5046 0.00148 -0.00112 0 1.943430774 0 0.254695274 0 0.873685 0.392632 -3.922011 1.78349 0.971086 12 0.0
O Ti O 1 6.6 1 -0.229 1 2 2.68 1.226342 260.893 99.3916 3.25 0.10 5.36 2.082408 3326.69 546.386 0 0 0 0 0 8.45 0.088406 0.969934 0.296577 1.326746 -1.8349 5.5046 0.00148 -0.00112 -4 4 2.508854 -2.511416 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 0.392632 0.971086 1.78349 12 0.0
Ti Ti O 1 0 1 0 1.255016 0.089078 1.226342 1.226342 99.3916 99.3916 3.25 0.10 2.082408 2.082408 546.386 546.386 0 0 0 0 0 0 1 1 1 1 -4 4 2.508854 -2.511416 -4 4 2.508854 -2.511416 0 1.943430774 0 0.254695274 0 0.873685 0.392632 0.392632 1.78349 1.78349 12 0.0
O O Ti 1 6.6 1 -0.229 1 2 2.68 2.68 260.893 260.893 2.80 0.20 5.36 5.36 3326.69 3326.69 0 0 0 0 0 0 1 1 1 1 -1.8349 5.5046 0.00148 -0.00112 -1.8349 5.5046 0.00148 -0.00112 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 -3.922011 0.971086 0.971086 12 0.0
#
Ti Cu Cu 1 0 1 0 1.255016 0.089078 1.226342 1.681711 99.3916 146.987 3.40 0.15 2.082408 2.794608 546.386 952.693 0 0 0 0 0 0 1 1 1 1 -4 4 2.508854 -2.511416 -6 2 0.1677645 -0.161007 0 1.943430774 0 0.254695274 0 0.873685 0.392632 0.72571 1.78349 0.274649 12 0
Cu Ti Ti 1 0 1 0 1 0.140835 1.681711 1.226342 146.987 99.3916 3.40 0.15 2.794608 2.082408 952.693 546.386 0 0 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -4 4 2.508854 -2.511416 0 5.946437 0 0 0 0.454784 0.72571 0.392632 0.274649 1.78349 12 0
Ti Cu Ti 1 0 1 0 1.255016 0.089078 1.226342 1.681711 99.3916 146.987 3.40 0.15 2.082408 2.794608 546.386 952.693 0 0 0 0 0 0 1 1 1 1 -4 4 2.508854 -2.511416 -6 2 0.1677645 -0.161007 0 1.943430774 0 0.254695274 0 0.873685 0.392632 0.72571 1.78349 0.274649 12 0
Cu Ti Cu 1 0 1 0 1 0.140835 1.681711 1.226342 146.987 99.3916 3.40 0.15 2.794608 2.082408 952.693 546.386 0 0 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -4 4 2.508854 -2.511416 0 5.946437 0 0 0 0.454784 0.72571 0.392632 0.274649 1.78349 12 0
Ti Ti Cu 1 0 1 0 1.255016 0.089078 1.226342 1.226342 99.3916 99.3916 3.40 0.10 2.082408 2.082408 546.386 546.386 0 0 0 0 0 0 1 1 1 1 -4 4 2.508854 -2.511416 -4 4 2.508854 -2.511416 0 1.943430774 0 0.254695274 0 0.873685 0.392632 0.392632 1.78349 1.78349 12 0
Cu Cu Ti 1 0 1 0 1 0.140835 1.681711 1.681711 146.987 146.987 2.90 0.05 2.794608 2.794608 952.693 952.693 0 0 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -6 2 0.1677645 -0.161007 0 5.946437 0 0 0 0.454784 0.72571 0.72571 0.274649 0.274649 12 0
#
Ti O Cu 1 0 1 0 1.255016 0.089078 1.226342 2.68 99.3916 260.893 3.25 0.10 2.082408 5.36 546.386 3326.69 0 0 0 0 0 8.45 0.088406 0.969934 0.296577 1.326746 -4 4 2.508854 -2.511416 -1.8349 5.5046 0.00148 -0.00112 0 1.943430774 0 0.254695274 0 0.873685 0.392632 -3.922011 1.78349 0.971086 12 0
Cu O Ti 1 0 1 0 1 0.140835 1.681711 2.68 146.987 260.893 2.40 0.10 2.794608 5.36 952.693 3326.69 0 0 0 0 0 0 0.15867 1.106214 0.533319 1.857837 -6 2 0.1677645 -0.161007 -1.8349 5.5046 0.00148 -0.00112 0 5.946437 0 0 0 0.454784 0.72571 -3.922011 0.274649 0.971086 12 0
Ti Cu O 1 0 1 0 1.255016 0.089078 1.226342 1.681711 99.3916 146.987 3.40 0.15 2.082408 2.794608 546.386 952.693 0 0 0 0 0 0 1 1 1 1 -4 4 2.508854 -2.511416 -6 2 0.1677645 -0.161007 0 1.943430774 0 0.254695274 0 0.873685 0.392632 0.72571 1.78349 0.274649 12 0
Cu Ti O 1 0 1 0 1 0.140835 1.681711 1.226342 146.987 99.3916 3.40 0.15 2.794608 2.082408 952.693 546.386 0 0 0 0 0 0 1 1 1 1 -6 2 0.1677645 -0.161007 -4 4 2.508854 -2.511416 0 5.946437 0 0 0 0.454784 0.72571 0.392632 0.274649 1.78349 12 0
O Ti Cu 1 6.6 1 -0.229 1 2 2.68 1.226342 260.893 99.3916 3.25 0.10 5.36 2.082408 3326.69 546.386 0 0 0 0 0 8.45 0.088406 0.969934 0.296577 1.326746 -1.8349 5.5046 0.00148 -0.00112 -4 4 2.508854 -2.511416 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 0.392632 0.971086 1.78349 12 0
O Cu Ti 1 6.6 1 -0.229 1 2 2.68 1.681711 260.893 146.987 2.40 0.10 5.36 2.794608 3326.69 952.693 0 0 0 0 0 0 0.15867 1.106214 0.533319 1.857837 -1.8349 5.5046 0.00148 -0.00112 -6 2 0.1677645 -0.161007 5.63441383 7.689598017 4.51426991 1.330079082 0 2.243072 -3.922011 0.72571 0.971086 0.274649 12 0

View File

@ -4,10 +4,8 @@ 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 (https://www.lammps.org/bench.html).
This directory also has several sub-directories:
This directory also has one sub-directories:
FERMI benchmark scripts for desktop machine with Fermi GPUs (Tesla)
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

View File

@ -16,9 +16,13 @@ endif()
project(lammps CXX)
set(SOVERSION 0)
get_property(BUILD_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
get_filename_component(LAMMPS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/.. ABSOLUTE)
get_filename_component(LAMMPS_LIB_BINARY_DIR ${CMAKE_BINARY_DIR}/lib ABSOLUTE)
# collect all executables and shared libs in the top level build folder
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
set(LAMMPS_SOURCE_DIR ${LAMMPS_DIR}/src)
set(LAMMPS_LIB_SOURCE_DIR ${LAMMPS_DIR}/lib)
@ -81,22 +85,60 @@ 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") 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")
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Qrestrict")
endif()
if(CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.3 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.4)
set(CMAKE_TUNE_DEFAULT "/QxCOMMON-AVX512")
else()
set(CMAKE_TUNE_DEFAULT "/QxHost")
endif()
else()
set(CMAKE_TUNE_DEFAULT "-xHost")
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")
else()
set(CMAKE_TUNE_DEFAULT "-xHost")
endif()
endif()
endif()
# we require C++11 without extensions
set(CMAKE_CXX_STANDARD 11)
# silence excessive warnings for new Intel Compilers
if(CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM")
set(CMAKE_TUNE_DEFAULT "-Wno-tautological-constant-compare")
endif()
# silence excessive warnings for PGI/NVHPC compilers
if((CMAKE_CXX_COMPILER_ID STREQUAL "NVHPC") OR (CMAKE_CXX_COMPILER_ID STREQUAL "PGI"))
set(CMAKE_TUNE_DEFAULT "-Minform=severe")
endif()
# silence nvcc warnings
if((PKG_KOKKOS) AND (Kokkos_ENABLE_CUDA))
set(CMAKE_TUNE_DEFAULT "${CMAKE_TUNE_DEFAULT} -Xcudafe --diag_suppress=unrecognized_pragma")
endif()
# we require C++11 without extensions. Kokkos requires at least C++14 (currently)
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()
if(CMAKE_CXX_STANDARD LESS 11)
message(FATAL_ERROR "C++ standard must be set to at least 11")
endif()
if(PKG_KOKKOS AND (CMAKE_CXX_STANDARD LESS 14))
set(CMAKE_CXX_STANDARD 14)
endif()
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
# ugly hacks for MSVC which by default always reports an old C++ standard in the __cplusplus macro
# and prints lots of pointless warnings about "unsafe" functions
if(MSVC)
add_compile_options(/Zc:__cplusplus)
add_compile_options(/wd4244)
add_compile_options(/wd4267)
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
endif()
# export all symbols when building a .dll file on windows
@ -115,10 +157,7 @@ endif()
set(LAMMPS_BINARY lmp${LAMMPS_MACHINE})
option(BUILD_SHARED_LIBS "Build shared library" OFF)
if(BUILD_SHARED_LIBS) # for all pkg libs, mpi_stubs and linalg
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif()
option(CMAKE_POSITION_INDEPENDENT_CODE "Create object compatible with shared libraries" ON)
option(BUILD_TOOLS "Build and install LAMMPS tools (msi2lmp, binary2txt, chain)" OFF)
option(BUILD_LAMMPS_SHELL "Build and install the LAMMPS shell" OFF)
@ -153,6 +192,7 @@ set(STANDARD_PACKAGES
AWPMD
BOCS
BODY
BPM
BROWNIAN
CG-DNA
CG-SDK
@ -169,6 +209,7 @@ set(STANDARD_PACKAGES
DPD-SMOOTH
DRUDE
EFF
ELECTRODE
EXTRA-COMPUTE
EXTRA-DUMP
EXTRA-FIX
@ -189,7 +230,6 @@ set(STANDARD_PACKAGES
MDI
MEAM
MESONT
MESSAGE
MGPT
MISC
ML-HDNNP
@ -265,28 +305,19 @@ if(BUILD_MPI)
# We use a non-standard procedure to cross-compile with MPI on Windows
if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND CMAKE_CROSSCOMPILING)
include(MPI4WIN)
target_link_libraries(lammps PUBLIC MPI::MPI_CXX)
else()
find_package(MPI REQUIRED)
target_link_libraries(lammps PUBLIC MPI::MPI_CXX)
option(LAMMPS_LONGLONG_TO_LONG "Workaround if your system or MPI version does not recognize 'long long' data types" OFF)
if(LAMMPS_LONGLONG_TO_LONG)
target_compile_definitions(lammps PRIVATE -DLAMMPS_LONGLONG_TO_LONG)
endif()
endif()
target_link_libraries(lammps PUBLIC MPI::MPI_CXX)
else()
file(GLOB MPI_SOURCES ${LAMMPS_SOURCE_DIR}/STUBS/mpi.cpp)
add_library(mpi_stubs STATIC ${MPI_SOURCES})
set_target_properties(mpi_stubs PROPERTIES OUTPUT_NAME lammps_mpi_stubs${LAMMPS_MACHINE})
target_include_directories(mpi_stubs PUBLIC $<BUILD_INTERFACE:${LAMMPS_SOURCE_DIR}/STUBS>)
if(BUILD_SHARED_LIBS)
target_link_libraries(lammps PRIVATE mpi_stubs)
target_include_directories(lammps INTERFACE $<BUILD_INTERFACE:${LAMMPS_SOURCE_DIR}/STUBS>)
target_compile_definitions(lammps INTERFACE $<INSTALL_INTERFACE:LAMMPS_LIB_NO_MPI>)
else()
target_link_libraries(lammps PUBLIC mpi_stubs)
endif()
add_library(MPI::MPI_CXX ALIAS mpi_stubs)
target_sources(lammps PRIVATE ${LAMMPS_SOURCE_DIR}/STUBS/mpi.cpp)
add_library(mpi_stubs INTERFACE)
target_include_directories(mpi_stubs INTERFACE $<BUILD_INTERFACE:${LAMMPS_SOURCE_DIR}/STUBS>)
target_link_libraries(lammps PUBLIC mpi_stubs)
endif()
set(LAMMPS_SIZES "smallbig" CACHE STRING "LAMMPS integer sizes (smallsmall: all 32-bit, smallbig: 64-bit #atoms #timesteps, bigbig: also 64-bit imageint, 64-bit atom ids)")
@ -317,12 +348,12 @@ pkg_depends(ML-IAP ML-SNAP)
pkg_depends(MPIIO 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)
pkg_depends(ELECTRODE KSPACE)
# detect if we may enable OpenMP support by default
set(BUILD_OMP_DEFAULT OFF)
@ -351,14 +382,16 @@ if(BUILD_OMP)
((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.
# Intel 18.0 was tested to support both, so we switch to OpenMP 4+ from 19.x onward to be safe.
target_compile_definitions(lammps PRIVATE -DLAMMPS_OMP_COMPAT=4)
set(LAMMPS_OMP_COMPAT_LEVEL 4)
else()
target_compile_definitions(lammps PRIVATE -DLAMMPS_OMP_COMPAT=3)
set(LAMMPS_OMP_COMPAT_LEVEL 3)
endif()
target_compile_definitions(lammps PRIVATE -DLAMMPS_OMP_COMPAT=${LAMMPS_OMP_COMPAT_LEVEL})
target_link_libraries(lammps PRIVATE OpenMP::OpenMP_CXX)
target_link_libraries(lmp PRIVATE OpenMP::OpenMP_CXX)
endif()
if(PKG_MSCG OR PKG_ATC OR PKG_AWPMD OR PKG_ML-QUIP OR PKG_LATTE)
if(PKG_MSCG OR PKG_ATC OR PKG_AWPMD OR PKG_ML-QUIP OR PKG_LATTE OR PKG_ELECTRODE)
enable_language(C)
find_package(LAPACK)
find_package(BLAS)
@ -440,7 +473,7 @@ else()
endif()
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)
PLUMED QMMM ML-QUIP SCAFACOS MACHDYN VTK KIM LATTE MSCG COMPRESS ML-PACE)
if(PKG_${PKG_WITH_INCL})
include(Packages/${PKG_WITH_INCL})
endif()
@ -457,6 +490,7 @@ set(CMAKE_TUNE_FLAGS "${CMAKE_TUNE_DEFAULT}" CACHE STRING "Compiler and machine
separate_arguments(CMAKE_TUNE_FLAGS)
foreach(_FLAG ${CMAKE_TUNE_FLAGS})
target_compile_options(lammps PRIVATE ${_FLAG})
target_compile_options(lmp PRIVATE ${_FLAG})
endforeach()
########################################################################
# Basic system tests (standard libraries, headers, functions, types) #
@ -468,9 +502,12 @@ foreach(HEADER cmath)
endif(NOT FOUND_${HEADER})
endforeach(HEADER)
set(MATH_LIBRARIES "m" CACHE STRING "math library")
mark_as_advanced( MATH_LIBRARIES )
target_link_libraries(lammps PRIVATE ${MATH_LIBRARIES})
# make the standard math library overrideable and autodetected (for systems that don't have it)
find_library(STANDARD_MATH_LIB m DOC "Standard Math library")
mark_as_advanced(STANDARD_MATH_LIB)
if(STANDARD_MATH_LIB)
target_link_libraries(lammps PRIVATE ${STANDARD_MATH_LIB})
endif()
######################################
# Generate Basic Style files
@ -558,6 +595,10 @@ foreach(PKG_LIB POEMS ATC AWPMD H5MD MESONT)
endif()
endforeach()
if(PKG_ELECTRODE)
target_link_libraries(lammps PRIVATE ${LAPACK_LIBRARIES})
endif()
if(PKG_AWPMD)
target_link_libraries(awpmd PRIVATE ${LAPACK_LIBRARIES})
endif()
@ -566,11 +607,10 @@ 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)
target_link_libraries(atc PRIVATE MPI::MPI_CXX)
target_link_libraries(atc PRIVATE ${LAPACK_LIBRARIES} MPI::MPI_CXX)
else()
target_link_libraries(atc PRIVATE mpi_stubs)
target_link_libraries(atc PRIVATE ${LAPACK_LIBRARIES} mpi_stubs)
endif()
target_include_directories(atc PRIVATE ${LAMMPS_SOURCE_DIR})
target_compile_definitions(atc PRIVATE -DLAMMPS_${LAMMPS_SIZES})
@ -584,22 +624,19 @@ endif()
# packages which selectively include variants based on enabled styles
# e.g. accelerator packages
######################################################################
foreach(PKG_WITH_INCL CORESHELL QEQ OPENMP DPD-SMOOTH KOKKOS OPT INTEL GPU)
foreach(PKG_WITH_INCL CORESHELL DPD-SMOOTH PHONON QEQ OPENMP KOKKOS OPT INTEL GPU)
if(PKG_${PKG_WITH_INCL})
include(Packages/${PKG_WITH_INCL})
endif()
endforeach()
if(PKG_PLUGIN)
if(BUILD_SHARED_LIBS)
target_compile_definitions(lammps PRIVATE -DLMP_PLUGIN)
else()
message(WARNING "Plugin loading will not work unless BUILD_SHARED_LIBS is enabled")
endif()
# link with -ldl or equivalent for plugin loading; except on Windows
if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
target_link_libraries(lammps PRIVATE ${CMAKE_DL_LIBS})
endif()
target_compile_definitions(lammps PRIVATE -DLMP_PLUGIN)
endif()
# link with -ldl or equivalent for plugin loading; except on Windows
if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
target_link_libraries(lammps PRIVATE ${CMAKE_DL_LIBS})
endif()
######################################################################
@ -608,7 +645,7 @@ endif()
# and after everything else that is compiled locally
######################################################################
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
target_link_libraries(lammps PRIVATE -lwsock32 -lpsapi)
target_link_libraries(lammps PRIVATE "wsock32;psapi")
endif()
######################################################
@ -669,6 +706,7 @@ endif()
set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LAMMPS_MACHINE})
set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
set_target_properties(lammps PROPERTIES PREFIX "lib")
target_include_directories(lammps PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/lammps>)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps)
foreach(_HEADER ${LAMMPS_CXX_HEADERS})
@ -688,6 +726,9 @@ foreach(_DEF ${LAMMPS_DEFINES})
endforeach()
if(BUILD_SHARED_LIBS)
install(TARGETS lammps EXPORT LAMMPS_Targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
if(NOT BUILD_MPI)
install(TARGETS mpi_stubs EXPORT LAMMPS_Targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_MACHINE}.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_MACHINE}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
install(EXPORT LAMMPS_Targets FILE LAMMPS_Targets.cmake NAMESPACE LAMMPS:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LAMMPS)
@ -727,7 +768,7 @@ install(
if(BUILD_SHARED_LIBS)
if(CMAKE_VERSION VERSION_LESS 3.12)
# adjust so we find Python 3 versions before Python 2 on old systems with old CMake
set(Python_ADDITIONAL_VERSIONS 3.9 3.8 3.7 3.6 3.5)
set(Python_ADDITIONAL_VERSIONS 3.12 3.11 3.10 3.9 3.8 3.7 3.6)
find_package(PythonInterp) # Deprecated since version 3.12
if(PYTHONINTERP_FOUND)
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
@ -735,13 +776,15 @@ if(BUILD_SHARED_LIBS)
else()
find_package(Python COMPONENTS Interpreter)
endif()
if(BUILD_IS_MULTI_CONFIG)
set(LIBLAMMPS_SHARED_BINARY ${CMAKE_BINARY_DIR}/$<CONFIG>/liblammps${LAMMPS_MACHINE}${CMAKE_SHARED_LIBRARY_SUFFIX})
else()
set(LIBLAMMPS_SHARED_BINARY ${CMAKE_BINARY_DIR}/liblammps${LAMMPS_MACHINE}${CMAKE_SHARED_LIBRARY_SUFFIX})
endif()
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
-p ${LAMMPS_PYTHON_DIR}/lammps
-l ${CMAKE_BINARY_DIR}/liblammps${LAMMPS_MACHINE}${CMAKE_SHARED_LIBRARY_SUFFIX}
WORKING_DIRECTORY ${LAMMPS_PYTHON_DIR}
COMMAND ${Python_EXECUTABLE} ${LAMMPS_PYTHON_DIR}/install.py -p ${LAMMPS_PYTHON_DIR}/lammps -l ${LIBLAMMPS_SHARED_BINARY}
COMMENT "Installing LAMMPS Python module")
else()
add_custom_target(
@ -786,11 +829,17 @@ if(ClangFormat_FOUND)
endif()
get_target_property(DEFINES lammps COMPILE_DEFINITIONS)
if(BUILD_IS_MULTI_CONFIG)
set(LAMMPS_BUILD_TYPE "Multi-Config")
else()
set(LAMMPS_BUILD_TYPE ${CMAKE_BUILD_TYPE})
endif()
include(FeatureSummary)
feature_summary(DESCRIPTION "The following tools and libraries have been found and configured:" WHAT PACKAGES_FOUND)
message(STATUS "<<< Build configuration >>>
LAMMPS Version: ${PROJECT_VERSION}
Operating System: ${CMAKE_SYSTEM_NAME} ${CMAKE_LINUX_DISTRO} ${CMAKE_DISTRO_VERSION}
Build type: ${CMAKE_BUILD_TYPE}
Build type: ${LAMMPS_BUILD_TYPE}
Install path: ${CMAKE_INSTALL_PREFIX}
Generator: ${CMAKE_GENERATOR} using ${CMAKE_MAKE_PROGRAM}")
###############################################################################

156
cmake/CMakeSettings.json Normal file
View File

@ -0,0 +1,156 @@
{
"configurations": [
{
"name": "x64-Debug-MSVC",
"generator": "Ninja",
"configurationType": "Debug",
"buildRoot": "${workspaceRoot}\\build\\${name}",
"installRoot": "${workspaceRoot}\\install\\${name}",
"cmakeCommandArgs": "-C ${workspaceRoot}\\cmake\\presets\\windows.cmake",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "msvc_x64_x64" ],
"variables": [
{
"name": "BUILD_SHARED_LIBS",
"value": "True",
"type": "BOOL"
},
{
"name": "BUILD_TOOLS",
"value": "True",
"type": "BOOL"
},
{
"name": "LAMMPS_EXCEPTIONS",
"value": "True",
"type": "BOOL"
},
{
"name": "PKG_PYTHON",
"value": "True",
"type": "BOOL"
},
{
"name": "ENABLE_TESTING",
"value": "True",
"type": "BOOL"
}
]
},
{
"name": "x64-Release-MSVC",
"generator": "Ninja",
"configurationType": "Release",
"buildRoot": "${workspaceRoot}\\build\\${name}",
"installRoot": "${workspaceRoot}\\install\\${name}",
"cmakeCommandArgs": "-C ${workspaceRoot}\\cmake\\presets\\windows.cmake",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "msvc_x64_x64" ],
"variables": [
{
"name": "BUILD_SHARED_LIBS",
"value": "True",
"type": "BOOL"
},
{
"name": "BUILD_TOOLS",
"value": "True",
"type": "BOOL"
},
{
"name": "LAMMPS_EXCEPTIONS",
"value": "True",
"type": "BOOL"
},
{
"name": "PKG_PYTHON",
"value": "True",
"type": "BOOL"
},
{
"name": "ENABLE_TESTING",
"value": "True",
"type": "BOOL"
}
]
},
{
"name": "x64-Debug-Clang",
"generator": "Ninja",
"configurationType": "Debug",
"buildRoot": "${workspaceRoot}\\build\\${name}",
"installRoot": "${workspaceRoot}\\install\\${name}",
"cmakeCommandArgs": "-C ${workspaceRoot}\\cmake\\presets\\windows.cmake -DCMAKE_C_COMPILER=clang-cl.exe -DCMAKE_CXX_COMPILER=clang-cl.exe",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "clang_cl_x64" ],
"variables": [
{
"name": "BUILD_SHARED_LIBS",
"value": "True",
"type": "BOOL"
},
{
"name": "BUILD_TOOLS",
"value": "True",
"type": "BOOL"
},
{
"name": "LAMMPS_EXCEPTIONS",
"value": "True",
"type": "BOOL"
},
{
"name": "PKG_PYTHON",
"value": "True",
"type": "BOOL"
},
{
"name": "ENABLE_TESTING",
"value": "True",
"type": "BOOL"
}
]
},
{
"name": "x64-Release-Clang",
"generator": "Ninja",
"configurationType": "Release",
"buildRoot": "${workspaceRoot}\\build\\${name}",
"installRoot": "${workspaceRoot}\\install\\${name}",
"cmakeCommandArgs": "-C ${workspaceRoot}\\cmake\\presets\\windows.cmake -DCMAKE_C_COMPILER=clang-cl.exe -DCMAKE_CXX_COMPILER=clang-cl.exe",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "clang_cl_x64" ],
"variables": [
{
"name": "BUILD_SHARED_LIBS",
"value": "True",
"type": "BOOL"
},
{
"name": "BUILD_TOOLS",
"value": "True",
"type": "BOOL"
},
{
"name": "LAMMPS_EXCEPTIONS",
"value": "True",
"type": "BOOL"
},
{
"name": "PKG_PYTHON",
"value": "True",
"type": "BOOL"
},
{
"name": "ENABLE_TESTING",
"value": "True",
"type": "BOOL"
}
]
}
]
}

View File

@ -7,13 +7,13 @@ if(BUILD_DOC)
# Sphinx 3.x requires at least Python 3.5
if(CMAKE_VERSION VERSION_LESS 3.12)
find_package(PythonInterp 3.5 REQUIRED)
set(VIRTUALENV ${PYTHON_EXECUTABLE} -m virtualenv -p ${PYTHON_EXECUTABLE})
set(VIRTUALENV ${PYTHON_EXECUTABLE} -m venv)
else()
find_package(Python3 REQUIRED COMPONENTS Interpreter)
if(Python3_VERSION VERSION_LESS 3.5)
message(FATAL_ERROR "Python 3.5 and up is required to build the HTML documentation")
endif()
set(VIRTUALENV ${Python3_EXECUTABLE} -m virtualenv -p ${Python3_EXECUTABLE})
set(VIRTUALENV ${Python3_EXECUTABLE} -m venv)
endif()
find_package(Doxygen 1.8.10 REQUIRED)

View File

@ -0,0 +1,33 @@
# Build a CMake based external library as subdirectory.
# The sources will be unpacked to ${CMAKE_BINARY_DIR}/_deps/${target}-src
# The binaries will be built in ${CMAKE_BINARY_DIR}/_deps/${target}-build
#
function(ExternalCMakeProject target url hash basedir cmakedir cmakefile)
# change settings locally
set(BUILD_SHARED_LIBS OFF)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
get_filename_component(archive ${url} NAME)
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/_deps/src)
message(STATUS "Downloading ${url}")
file(DOWNLOAD ${url} ${CMAKE_BINARY_DIR}/_deps/${archive} EXPECTED_HASH MD5=${hash} SHOW_PROGRESS)
message(STATUS "Unpacking and configuring ${archive}")
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf ${CMAKE_BINARY_DIR}/_deps/${archive}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/_deps/src)
file(GLOB TARGET_SOURCE "${CMAKE_BINARY_DIR}/_deps/src/${basedir}*")
list(LENGTH TARGET_SOURCE _num)
if(_num GREATER 1)
message(FATAL_ERROR "Inconsistent ${target} library sources. "
"Please delete ${CMAKE_BINARY_DIR}/_deps/src and re-run cmake")
endif()
file(REMOVE_RECURSE ${CMAKE_BINARY_DIR}/_deps/${target}-src)
file(RENAME ${TARGET_SOURCE} ${CMAKE_BINARY_DIR}/_deps/${target}-src)
if(NOT (cmakefile STREQUAL ""))
file(COPY ${cmakefile} DESTINATION ${CMAKE_BINARY_DIR}/_deps/${target}-src/${cmakedir}/)
get_filename_component(_cmakefile ${cmakefile} NAME)
file(RENAME "${CMAKE_BINARY_DIR}/_deps/${target}-src/${cmakedir}/${_cmakefile}"
"${CMAKE_BINARY_DIR}/_deps/${target}-src/${cmakedir}/CMakeLists.txt")
endif()
add_subdirectory("${CMAKE_BINARY_DIR}/_deps/${target}-src/${cmakedir}"
"${CMAKE_BINARY_DIR}/_deps/${target}-build")
endfunction(ExternalCMakeProject)

View File

@ -8,18 +8,19 @@
#=============================================================================
if(CMAKE_VERSION VERSION_LESS 3.12)
set(Python_ADDITIONAL_VERSIONS 3.12 3.11 3.10 3.9 3.8 3.7 3.6)
find_package(PythonInterp 3.6 QUIET) # Deprecated since version 3.12
if(PYTHONINTERP_FOUND)
set(Python3_EXECUTABLE ${PYTHON_EXECUTABLE})
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
endif()
else()
find_package(Python3 3.6 COMPONENTS Interpreter QUIET)
find_package(Python 3.6 COMPONENTS Interpreter QUIET)
endif()
# Use the Cython executable that lives next to the Python executable
# if it is a local installation.
if(Python3_EXECUTABLE)
get_filename_component(_python_path ${Python3_EXECUTABLE} PATH)
if(Python_EXECUTABLE)
get_filename_component(_python_path ${Python_EXECUTABLE} PATH)
find_program(Cythonize_EXECUTABLE
NAMES cythonize3 cythonize cythonize.bat
HINTS ${_python_path})

View File

@ -1,81 +0,0 @@
message(STATUS "Downloading and building Google Test library")
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
set(GTEST_LIB_POSTFIX d)
else()
set(GTEST_LIB_POSTFIX)
endif()
include(ExternalProject)
set(GTEST_URL "https://github.com/google/googletest/archive/release-1.10.0.tar.gz" CACHE STRING "URL for GTest tarball")
set(GTEST_MD5 "ecd1fa65e7de707cd5c00bdac56022cd" CACHE STRING "MD5 checksum of GTest tarball")
mark_as_advanced(GTEST_URL)
mark_as_advanced(GTEST_MD5)
ExternalProject_Add(googletest
URL ${GTEST_URL}
URL_MD5 ${GTEST_MD5}
SOURCE_DIR "${CMAKE_BINARY_DIR}/gtest-src"
BINARY_DIR "${CMAKE_BINARY_DIR}/gtest-build"
CMAKE_ARGS ${CMAKE_REQUEST_PIC} ${CMAKE_EXTRA_GTEST_OPTS}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
BUILD_BYPRODUCTS <BINARY_DIR>/lib/libgtest${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
<BINARY_DIR>/lib/libgmock${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
<BINARY_DIR>/lib/libgtest_main${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
<BINARY_DIR>/lib/libgmock_main${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
LOG_DOWNLOAD ON
LOG_CONFIGURE ON
LOG_BUILD ON
INSTALL_COMMAND ""
TEST_COMMAND "")
ExternalProject_Get_Property(googletest SOURCE_DIR)
set(GTEST_INCLUDE_DIR ${SOURCE_DIR}/googletest/include)
set(GMOCK_INCLUDE_DIR ${SOURCE_DIR}/googlemock/include)
# workaround for CMake 3.10 on ubuntu 18.04
file(MAKE_DIRECTORY ${GTEST_INCLUDE_DIR})
file(MAKE_DIRECTORY ${GMOCK_INCLUDE_DIR})
ExternalProject_Get_Property(googletest BINARY_DIR)
set(GTEST_LIBRARY_PATH ${BINARY_DIR}/lib/libgtest${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
set(GMOCK_LIBRARY_PATH ${BINARY_DIR}/lib/libgmock${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
set(GTEST_MAIN_LIBRARY_PATH ${BINARY_DIR}/lib/libgtest_main${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
set(GMOCK_MAIN_LIBRARY_PATH ${BINARY_DIR}/lib/libgmock_main${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
# Prevent GoogleTest from overriding our compiler/linker options
# when building with Visual Studio
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
find_package(Threads QUIET)
add_library(GTest::GTest UNKNOWN IMPORTED)
set_target_properties(GTest::GTest PROPERTIES
IMPORTED_LOCATION ${GTEST_LIBRARY_PATH}
INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIR}
INTERFACE_LINK_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
add_dependencies(GTest::GTest googletest)
add_library(GTest::GMock UNKNOWN IMPORTED)
set_target_properties(GTest::GMock PROPERTIES
IMPORTED_LOCATION ${GMOCK_LIBRARY_PATH}
INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIR}
INTERFACE_LINK_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
add_dependencies(GTest::GMock googletest)
add_library(GTest::GTestMain UNKNOWN IMPORTED)
set_target_properties(GTest::GTestMain PROPERTIES
IMPORTED_LOCATION ${GTEST_MAIN_LIBRARY_PATH}
INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIR}
INTERFACE_LINK_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
add_dependencies(GTest::GTestMain googletest)
add_library(GTest::GMockMain UNKNOWN IMPORTED)
set_target_properties(GTest::GMockMain PROPERTIES
IMPORTED_LOCATION ${GMOCK_MAIN_LIBRARY_PATH}
INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIR}
INTERFACE_LINK_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
add_dependencies(GTest::GMockMain googletest)

View File

@ -25,7 +25,7 @@ function(validate_option name values)
endfunction(validate_option)
function(get_lammps_version version_header variable)
file(READ ${version_header} line)
file(STRINGS ${version_header} line REGEX LAMMPS_VERSION)
set(MONTHS x Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\1" day "${line}")
string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\2" month "${line}")
@ -85,7 +85,7 @@ endfunction(GenerateBinaryHeader)
# fetch missing potential files
function(FetchPotentials pkgfolder potfolder)
if (EXISTS "${pkgfolder}/potentials.txt")
if(EXISTS "${pkgfolder}/potentials.txt")
file(STRINGS "${pkgfolder}/potentials.txt" linelist REGEX "^[^#].")
foreach(line ${linelist})
string(FIND ${line} " " blank)

View File

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

View File

@ -19,6 +19,10 @@ endif()
add_library(colvars STATIC ${COLVARS_SOURCES})
target_compile_definitions(colvars PRIVATE -DCOLVARS_LAMMPS)
separate_arguments(CMAKE_TUNE_FLAGS)
foreach(_FLAG ${CMAKE_TUNE_FLAGS})
target_compile_options(colvars PRIVATE ${_FLAG})
endforeach()
set_target_properties(colvars PROPERTIES OUTPUT_NAME lammps_colvars${LAMMPS_MACHINE})
target_include_directories(colvars PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/colvars)
# The line below is needed to locate math_eigen_impl.h

View File

@ -1,10 +1,11 @@
find_package(ZLIB REQUIRED)
target_link_libraries(lammps PRIVATE ZLIB::ZLIB)
find_package(PkgConfig REQUIRED)
pkg_check_modules(Zstd IMPORTED_TARGET libzstd>=1.4)
if(Zstd_FOUND)
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(Zstd IMPORTED_TARGET libzstd>=1.4)
if(Zstd_FOUND)
target_compile_definitions(lammps PRIVATE -DLAMMPS_ZSTD)
target_link_libraries(lammps PRIVATE PkgConfig::Zstd)
endif()
endif()

View File

@ -30,7 +30,15 @@ file(GLOB GPU_LIB_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cpp)
file(MAKE_DIRECTORY ${LAMMPS_LIB_BINARY_DIR}/gpu)
if(GPU_API STREQUAL "CUDA")
find_package(CUDA REQUIRED)
find_package(CUDA QUIET)
# augment search path for CUDA toolkit libraries to include the stub versions. Needed to find libcuda.so on machines without a CUDA driver installation
if(CUDA_FOUND)
set(CMAKE_LIBRARY_PATH "${CUDA_TOOLKIT_ROOT_DIR}/lib64/stubs;${CUDA_TOOLKIT_ROOT_DIR}/lib/stubs;${CUDA_TOOLKIT_ROOT_DIR}/lib64;${CUDA_TOOLKIT_ROOT_DIR}/lib;${CMAKE_LIBRARY_PATH}")
find_package(CUDA REQUIRED)
else()
message(FATAL_ERROR "CUDA Toolkit not found")
endif()
find_program(BIN2C bin2c)
if(NOT BIN2C)
message(FATAL_ERROR "Could not find bin2c, use -DBIN2C=/path/to/bin2c to help cmake finding it.")
@ -72,14 +80,14 @@ if(GPU_API STREQUAL "CUDA")
# --arch translates directly instead of JIT, so this should be for the preferred or most common architecture
set(GPU_CUDA_GENCODE "-arch=${GPU_ARCH}")
# apply the following to build "fat" CUDA binaries only for known CUDA toolkits
if(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
message(WARNING "Untested CUDA Toolkit version. Use at your own risk")
# apply the following to build "fat" CUDA binaries only for known CUDA toolkits since version 8.0
# only the Kepler achitecture and beyond is supported
if(CUDA_VERSION VERSION_LESS 8.0)
message(FATAL_ERROR "CUDA Toolkit version 8.0 or later is required")
elseif(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
message(WARNING "Untested CUDA Toolkit version ${CUDA_VERSION}. Use at your own risk")
set(GPU_CUDA_GENCODE "-arch=all")
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] ")
@ -112,6 +120,14 @@ if(GPU_API STREQUAL "CUDA")
if(CUDA_VERSION VERSION_GREATER_EQUAL "11.1")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_86,code=[sm_86,compute_86]")
endif()
# Hopper (GPU Arch 9.0) is supported by CUDA 12.0? and later
if(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_90,code=[sm_90,compute_90]")
endif()
# # Lovelace (GPU Arch 9.x) is supported by CUDA 12.0? and later
#if(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
# string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_9x,code=[sm_9x,compute_9x]")
#endif()
endif()
cuda_compile_fatbin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS ${CUDA_REQUEST_PIC}
@ -249,43 +265,47 @@ elseif(GPU_API STREQUAL "HIP")
find_package(CUDA REQUIRED)
set(HIP_ARCH "sm_50" CACHE STRING "HIP primary CUDA architecture (e.g. sm_60)")
# 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(HIP_CUDA_GENCODE "-arch=${HIP_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 HIP_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 HIP_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.0
if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "12.0"))
string(APPEND HIP_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 HIP_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 HIP_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 HIP_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 HIP_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 HIP_CUDA_GENCODE " -gencode arch=compute_80,code=[sm_80,compute_80]")
endif()
if(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
message(WARNING "Unsupported CUDA version. Use at your own risk.")
if(CUDA_VERSION VERSION_LESS 8.0)
message(FATAL_ERROR "CUDA Toolkit version 8.0 or later is required")
elseif(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
message(WARNING "Untested CUDA Toolkit version ${CUDA_VERSION}. Use at your own risk")
set(HIP_CUDA_GENCODE "-arch=all")
else()
# 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(HIP_CUDA_GENCODE "-arch=${HIP_ARCH}")
# 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 HIP_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.0
if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "12.0"))
string(APPEND HIP_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 HIP_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 HIP_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 HIP_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 HIP_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 HIP_CUDA_GENCODE " -gencode arch=compute_80,code=[sm_80,compute_80]")
endif()
# Hopper (GPU Arch 9.0) is supported by CUDA 12.0? and later
if(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_90,code=[sm_90,compute_90]")
endif()
endif()
endif()
@ -306,12 +326,12 @@ 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} -DLAMMPS_${LAMMPS_SIZES} -I${LAMMPS_LIB_SOURCE_DIR}/gpu -o ${CUBIN_FILE} ${CU_CPP_FILE}
VERBATIM COMMAND ${HIP_HIPCC_EXECUTABLE} --genco --offload-arch=${HIP_ARCH} -O3 -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} -DLAMMPS_${LAMMPS_SIZES} -I${LAMMPS_LIB_SOURCE_DIR}/gpu\" -o ${CUBIN_FILE} ${CU_CPP_FILE}
VERBATIM COMMAND ${HIP_HIPCC_EXECUTABLE} --genco -t="${HIP_ARCH}" -f=\"-O3 -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()
@ -339,6 +359,10 @@ elseif(GPU_API STREQUAL "HIP")
target_link_libraries(gpu PRIVATE hip::host)
if(HIP_USE_DEVICE_SORT)
if(HIP_PLATFORM STREQUAL "amd")
# newer version of ROCm (5.1+) require c++14 for rocprim
set_property(TARGET gpu PROPERTY CXX_STANDARD 14)
endif()
# add hipCUB
target_include_directories(gpu PRIVATE ${HIP_ROOT_DIR}/../include)
target_compile_definitions(gpu PRIVATE -DUSE_HIP_DEVICE_SORT)
@ -422,13 +446,12 @@ RegisterStylesExt(${GPU_SOURCES_DIR} gpu GPU_SOURCES)
RegisterFixStyle(${GPU_SOURCES_DIR}/fix_gpu.h)
get_property(GPU_SOURCES GLOBAL PROPERTY GPU_SOURCES)
if(NOT BUILD_MPI)
# mpistubs is aliased to MPI::MPI_CXX, but older versions of cmake won't work forward the include path
target_link_libraries(gpu PRIVATE mpi_stubs)
else()
if(BUILD_MPI)
target_link_libraries(gpu PRIVATE MPI::MPI_CXX)
else()
target_link_libraries(gpu PRIVATE mpi_stubs)
endif()
target_compile_definitions(gpu PRIVATE -DLAMMPS_${LAMMPS_SIZES})
set_target_properties(gpu PROPERTIES OUTPUT_NAME lammps_gpu${LAMMPS_MACHINE})
target_sources(lammps PRIVATE ${GPU_SOURCES})

View File

@ -1,5 +1,14 @@
enable_language(C)
# we don't use the parallel i/o interface.
set(HDF5_PREFER_PARALLEL FALSE)
find_package(HDF5 REQUIRED)
# parallel HDF5 will import incompatible MPI headers with a serial build
if((NOT BUILD_MPI) AND HDF5_IS_PARALLEL)
message(FATAL_ERROR "Serial LAMMPS build and parallel HDF5 library are not compatible")
endif()
target_link_libraries(h5md PRIVATE ${HDF5_LIBRARIES})
target_include_directories(h5md PUBLIC ${HDF5_INCLUDE_DIRS})

View File

@ -112,5 +112,9 @@ if(PKG_KSPACE)
RegisterIntegrateStyle(${INTEL_SOURCES_DIR}/verlet_lrt_intel.h)
endif()
if(PKG_ELECTRODE)
list(APPEND INTEL_SOURCES ${INTEL_SOURCES_DIR}/electrode_accel_intel.cpp)
endif()
target_sources(lammps PRIVATE ${INTEL_SOURCES})
target_include_directories(lammps PRIVATE ${INTEL_SOURCES_DIR})

View File

@ -1,7 +1,7 @@
########################################################################
# As of version 3.3.0 Kokkos requires C++14
if(CMAKE_CXX_STANDARD LESS 14)
set(CMAKE_CXX_STANDARD 14)
message(FATAL_ERROR "The KOKKOS package requires the C++ standard to be set to at least C++14")
endif()
########################################################################
# consistency checks and Kokkos options/settings required by LAMMPS
@ -11,8 +11,14 @@ if(Kokkos_ENABLE_CUDA)
endif()
# Adding OpenMP compiler flags without the checks done for
# BUILD_OMP can result in compile failures. Enforce consistency.
if(Kokkos_ENABLE_OPENMP AND NOT BUILD_OMP)
message(FATAL_ERROR "Must enable BUILD_OMP with Kokkos_ENABLE_OPENMP")
if(Kokkos_ENABLE_OPENMP)
if(NOT BUILD_OMP)
message(FATAL_ERROR "Must enable BUILD_OMP with Kokkos_ENABLE_OPENMP")
else()
if(LAMMPS_OMP_COMPAT_LEVEL LESS 4)
message(FATAL_ERROR "Compiler must support OpenMP 4.0 or later with Kokkos_ENABLE_OPENMP")
endif()
endif()
endif()
########################################################################
@ -27,6 +33,8 @@ if(DOWNLOAD_KOKKOS)
endforeach()
message(STATUS "KOKKOS download requested - we will build our own")
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>")
# build KOKKOS downloaded libraries as static libraries but with PIC, if needed
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DBUILD_SHARED_LIBS=OFF")
if(CMAKE_REQUEST_PIC)
list(APPEND KOKKOS_LIB_BUILD_ARGS ${CMAKE_REQUEST_PIC})
endif()
@ -39,35 +47,48 @@ if(DOWNLOAD_KOKKOS)
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS}")
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}")
include(ExternalProject)
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/3.4.01.tar.gz" CACHE STRING "URL for KOKKOS tarball")
set(KOKKOS_MD5 "4c84698917c93a18985b311bb6caf84f" CACHE STRING "MD5 checksum of KOKKOS tarball")
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/3.5.00.tar.gz" CACHE STRING "URL for KOKKOS tarball")
set(KOKKOS_MD5 "079323d973ae0e1c38c0a54a150c674e" CACHE STRING "MD5 checksum of KOKKOS tarball")
mark_as_advanced(KOKKOS_URL)
mark_as_advanced(KOKKOS_MD5)
ExternalProject_Add(kokkos_build
URL ${KOKKOS_URL}
URL_MD5 ${KOKKOS_MD5}
CMAKE_ARGS ${KOKKOS_LIB_BUILD_ARGS}
BUILD_BYPRODUCTS <INSTALL_DIR>/lib/libkokkoscore.a
BUILD_BYPRODUCTS <INSTALL_DIR>/lib/libkokkoscore.a <INSTALL_DIR>/lib/libkokkoscontainers.a
)
ExternalProject_get_property(kokkos_build INSTALL_DIR)
file(MAKE_DIRECTORY ${INSTALL_DIR}/include)
add_library(LAMMPS::KOKKOS UNKNOWN IMPORTED)
set_target_properties(LAMMPS::KOKKOS PROPERTIES
add_library(LAMMPS::KOKKOSCORE UNKNOWN IMPORTED)
add_library(LAMMPS::KOKKOSCONTAINERS UNKNOWN IMPORTED)
set_target_properties(LAMMPS::KOKKOSCORE PROPERTIES
IMPORTED_LOCATION "${INSTALL_DIR}/lib/libkokkoscore.a"
INTERFACE_INCLUDE_DIRECTORIES "${INSTALL_DIR}/include"
INTERFACE_LINK_LIBRARIES ${CMAKE_DL_LIBS})
target_link_libraries(lammps PRIVATE LAMMPS::KOKKOS)
target_link_libraries(lmp PRIVATE LAMMPS::KOKKOS)
add_dependencies(LAMMPS::KOKKOS kokkos_build)
set_target_properties(LAMMPS::KOKKOSCONTAINERS PROPERTIES
IMPORTED_LOCATION "${INSTALL_DIR}/lib/libkokkoscontainers.a")
target_link_libraries(lammps PRIVATE LAMMPS::KOKKOSCORE LAMMPS::KOKKOSCONTAINERS)
target_link_libraries(lmp PRIVATE LAMMPS::KOKKOSCORE LAMMPS::KOKKOSCONTAINERS)
add_dependencies(LAMMPS::KOKKOSCORE kokkos_build)
add_dependencies(LAMMPS::KOKKOSCONTAINERS kokkos_build)
elseif(EXTERNAL_KOKKOS)
find_package(Kokkos 3.4.01 REQUIRED CONFIG)
find_package(Kokkos 3.5.00 REQUIRED CONFIG)
target_link_libraries(lammps PRIVATE Kokkos::kokkos)
target_link_libraries(lmp PRIVATE Kokkos::kokkos)
else()
set(LAMMPS_LIB_KOKKOS_SRC_DIR ${LAMMPS_LIB_SOURCE_DIR}/kokkos)
set(LAMMPS_LIB_KOKKOS_BIN_DIR ${LAMMPS_LIB_BINARY_DIR}/kokkos)
# build KOKKOS internal libraries as static libraries but with PIC, if needed
if(BUILD_SHARED_LIBS)
set(BUILD_SHARED_LIBS_WAS_ON YES)
set(BUILD_SHARED_LIBS OFF)
endif()
if(CMAKE_REQUEST_PIC)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif()
add_subdirectory(${LAMMPS_LIB_KOKKOS_SRC_DIR} ${LAMMPS_LIB_KOKKOS_BIN_DIR})
set(Kokkos_INCLUDE_DIRS ${LAMMPS_LIB_KOKKOS_SRC_DIR}/core/src
${LAMMPS_LIB_KOKKOS_SRC_DIR}/containers/src
${LAMMPS_LIB_KOKKOS_SRC_DIR}/algorithms/src
@ -75,6 +96,9 @@ else()
target_include_directories(lammps PRIVATE ${Kokkos_INCLUDE_DIRS})
target_link_libraries(lammps PRIVATE kokkos)
target_link_libraries(lmp PRIVATE kokkos)
if(BUILD_SHARED_LIBS_WAS_ON)
set(BUILD_SHARED_LIBS ON)
endif()
endif()
target_compile_definitions(lammps PUBLIC $<BUILD_INTERFACE:LMP_KOKKOS>)
@ -109,6 +133,12 @@ if(PKG_KSPACE)
endif()
endif()
if(PKG_PHONON)
list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/dynamical_matrix_kokkos.cpp)
list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/third_order_kokkos.cpp)
endif()
set_property(GLOBAL PROPERTY "KOKKOS_PKG_SOURCES" "${KOKKOS_PKG_SOURCES}")
# detects styles which have KOKKOS version

View File

@ -7,8 +7,9 @@ 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.9/eigen-3.3.9.tar.gz" CACHE STRING "URL for Eigen3 tarball")
set(EIGEN3_MD5 "609286804b0f79be622ccf7f9ff2b660" CACHE STRING "MD5 checksum of Eigen3 tarball")
set(EIGEN3_URL "${LAMMPS_THIRDPARTY_URL}/eigen-3.4.0.tar.gz" CACHE STRING "URL for Eigen3 tarball")
set(EIGEN3_MD5 "4c527a9171d71a72a9d4186e65bea559" CACHE STRING "MD5 checksum of Eigen3 tarball")
mark_as_advanced(EIGEN3_URL)
mark_as_advanced(EIGEN3_MD5)
include(ExternalProject)
@ -35,3 +36,5 @@ endif()
if((CMAKE_CXX_COMPILER_ID STREQUAL "PGI") OR (CMAKE_CXX_COMPILER_ID STREQUAL "NVHPC"))
target_compile_definitions(lammps PRIVATE -DEIGEN_DONT_VECTORIZE)
endif()
target_compile_definitions(lammps PRIVATE -DEIGEN_NO_CUDA)

View File

@ -8,8 +8,8 @@ option(DOWNLOAD_MDI "Download and compile the MDI library instead of using an al
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")
set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.3.2.tar.gz" CACHE STRING "URL for MDI tarball")
set(MDI_MD5 "836f5da400d8cff0f0e4435640f9454f" CACHE STRING "MD5 checksum for MDI tarball")
mark_as_advanced(MDI_URL)
mark_as_advanced(MDI_MD5)
enable_language(C)

View File

@ -1,31 +0,0 @@
if(LAMMPS_SIZES STREQUAL "BIGBIG")
message(FATAL_ERROR "The MESSAGE Package is not compatible with -DLAMMPS_BIGBIG")
endif()
option(MESSAGE_ZMQ "Use ZeroMQ in MESSAGE package" OFF)
file(GLOB_RECURSE cslib_SOURCES
${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.cpp)
add_library(cslib STATIC ${cslib_SOURCES})
target_compile_definitions(cslib PRIVATE -DLAMMPS_${LAMMPS_SIZES})
set_target_properties(cslib PROPERTIES OUTPUT_NAME lammps_cslib${LAMMPS_MACHINE})
if(BUILD_MPI)
target_compile_definitions(cslib PRIVATE -DMPI_YES)
set_target_properties(cslib PROPERTIES OUTPUT_NAME "csmpi")
target_link_libraries(cslib PRIVATE MPI::MPI_CXX)
else()
target_compile_definitions(cslib PRIVATE -DMPI_NO)
target_include_directories(cslib PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src/STUBS_MPI)
set_target_properties(cslib PROPERTIES OUTPUT_NAME "csnompi")
endif()
if(MESSAGE_ZMQ)
target_compile_definitions(cslib PRIVATE -DZMQ_YES)
find_package(ZMQ REQUIRED)
target_link_libraries(cslib PUBLIC ZMQ::ZMQ)
else()
target_compile_definitions(cslib PRIVATE -DZMQ_NO)
target_include_directories(cslib PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src/STUBS_ZMQ)
endif()
target_link_libraries(lammps PRIVATE cslib)
target_include_directories(lammps PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src)

View File

@ -42,17 +42,9 @@ if(DOWNLOAD_N2P2)
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()
# get path to MPI include directory
get_target_property(N2P2_MPI_INCLUDE MPI::MPI_CXX INTERFACE_INCLUDE_DIRECTORIES)
set(N2P2_PROJECT_OPTIONS "-I${N2P2_MPI_INCLUDE}")
endif()
# prefer GNU make, if available. N2P2 lib seems to need it.
@ -64,8 +56,8 @@ if(DOWNLOAD_N2P2)
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}")
"PROJECT_CC=${CMAKE_CXX_COMPILER}" "PROJECT_MPICC=${CMAKE_CXX_COMPILER}" "PROJECT_CFLAGS=${N2P2_BUILD_FLAGS}"
"PROJECT_AR=${N2P2_AR}" "APP_CORE=nnp-convert" "APP_TRAIN=nnp-train" "APP=nnp-convert")
# echo final flag for debugging
message(STATUS "N2P2 BUILD OPTIONS: ${N2P2_BUILD_OPTIONS}")

View File

@ -1,11 +1,11 @@
set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2021.10.25.tar.gz" CACHE STRING "URL for PACE evaluator library sources")
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")
set(PACELIB_MD5 "a2ac3315c41a1a4a5c912bcb1bc9c5cc" 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})
file(DOWNLOAD ${PACELIB_URL} ${CMAKE_BINARY_DIR}/libpace.tar.gz EXPECTED_HASH MD5=${PACELIB_MD5}) #SHOW_PROGRESS
# uncompress downloaded sources
execute_process(
@ -14,12 +14,19 @@ execute_process(
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)
file(GLOB lib-pace ${CMAKE_BINARY_DIR}/lammps-user-pace-*)
add_subdirectory(${lib-pace}/yaml-cpp build-yaml-cpp)
set(YAML_CPP_INCLUDE_DIR ${lib-pace}/yaml-cpp/include)
file(GLOB PACE_EVALUATOR_INCLUDE_DIR ${lib-pace}/ML-PACE)
file(GLOB PACE_EVALUATOR_SOURCES ${lib-pace}/ML-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)
target_include_directories(pace PUBLIC ${PACE_EVALUATOR_INCLUDE_DIR} ${YAML_CPP_INCLUDE_DIR})
target_link_libraries(pace PRIVATE yaml-cpp-pace)
target_link_libraries(lammps PRIVATE pace)

View File

@ -32,7 +32,8 @@ if(DOWNLOAD_QUIP)
foreach(flag ${LAPACK_LIBRARIES})
set(temp "${temp} ${flag}")
endforeach()
set(temp "${temp}\n")
# Fix cmake crashing when MATH_LINKOPTS not set, required for e.g. recent Cray Programming Environment
set(temp "${temp} -L/_DUMMY_PATH_\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")
@ -50,6 +51,7 @@ if(DOWNLOAD_QUIP)
GIT_TAG origin/public
GIT_SHALLOW YES
GIT_PROGRESS YES
GIT_SUBMODULES "src/fox;src/GAP"
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

View File

@ -12,41 +12,12 @@ 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(ExternalCMakeProject)
ExternalCMakeProject(mscg ${MSCG_URL} ${MSCG_MD5} MSCG-release src/CMake "")
include(ExternalProject)
ExternalProject_Add(mscg_build
URL ${MSCG_URL}
URL_MD5 ${MSCG_MD5}
SOURCE_SUBDIR src/CMake
CMAKE_ARGS ${CMAKE_REQUEST_PIC} ${EXTRA_MSCG_OPTS}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_Fortran_COMPILER=${CMAKE_Fortran_COMPILER}
-DBLAS_LIBRARIES=${BLAS_LIBRARIES} -DLAPACK_LIBRARIES=${LAPACK_LIBRARIES}
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
BUILD_COMMAND ${CMAKE_COMMAND} --build . --target mscg
INSTALL_COMMAND ""
BUILD_BYPRODUCTS <BINARY_DIR>/libmscg.a
)
ExternalProject_get_property(mscg_build BINARY_DIR)
ExternalProject_get_property(mscg_build SOURCE_DIR)
file(MAKE_DIRECTORY ${SOURCE_DIR}/src)
add_library(LAMMPS::MSCG UNKNOWN IMPORTED)
set_target_properties(LAMMPS::MSCG PROPERTIES
IMPORTED_LOCATION "${BINARY_DIR}/libmscg.a"
INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}/src"
INTERFACE_LINK_LIBRARIES "${LAPACK_LIBRARIES}")
target_link_libraries(lammps PRIVATE LAMMPS::MSCG)
add_dependencies(LAMMPS::MSCG mscg_build)
# set include and link library
target_include_directories(lammps PRIVATE "${CMAKE_BINARY_DIR}/_deps/mscg-src/src")
target_link_libraries(lammps PRIVATE mscg)
else()
find_package(MSCG)
if(NOT MSCG_FOUND)

View File

@ -0,0 +1,9 @@
# fix phonon may only be installed if also the FFT wrappers from KSPACE are installed
if(NOT PKG_KSPACE)
get_property(LAMMPS_FIX_HEADERS GLOBAL PROPERTY FIX)
list(REMOVE_ITEM LAMMPS_FIX_HEADERS ${LAMMPS_SOURCE_DIR}/PHONON/fix_phonon.h)
set_property(GLOBAL PROPERTY FIX "${LAMMPS_FIX_HEADERS}")
get_target_property(LAMMPS_SOURCES lammps SOURCES)
list(REMOVE_ITEM LAMMPS_SOURCES ${LAMMPS_SOURCE_DIR}/PHONON/fix_phonon.cpp)
set_property(TARGET lammps PROPERTY SOURCES "${LAMMPS_SOURCES}")
endif()

View File

@ -54,8 +54,8 @@ 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.2/plumed-src-2.7.2.tgz" CACHE STRING "URL for PLUMED tarball")
set(PLUMED_MD5 "cfa0b4dd90a81c25d3302e8d97bfeaea" CACHE STRING "MD5 checksum of PLUMED tarball")
set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.7.4/plumed-src-2.7.4.tgz" CACHE STRING "URL for PLUMED tarball")
set(PLUMED_MD5 "858e0b6aed173748fc85b6bc8a9dcb3e" CACHE STRING "MD5 checksum of PLUMED tarball")
mark_as_advanced(PLUMED_URL)
mark_as_advanced(PLUMED_MD5)

View File

@ -3,7 +3,7 @@ if(CMAKE_VERSION VERSION_LESS 3.12)
target_include_directories(lammps PRIVATE ${PYTHON_INCLUDE_DIRS})
target_link_libraries(lammps PRIVATE ${PYTHON_LIBRARIES})
else()
find_package(Python REQUIRED COMPONENTS Development)
find_package(Python REQUIRED COMPONENTS Interpreter Development)
target_link_libraries(lammps PRIVATE Python::Python)
endif()
target_compile_definitions(lammps PRIVATE -DLMP_PYTHON)

View File

@ -25,7 +25,9 @@ if(BUILD_TOOLS)
get_filename_component(MSI2LMP_SOURCE_DIR ${LAMMPS_TOOLS_DIR}/msi2lmp/src ABSOLUTE)
file(GLOB MSI2LMP_SOURCES ${MSI2LMP_SOURCE_DIR}/[^.]*.c)
add_executable(msi2lmp ${MSI2LMP_SOURCES})
target_link_libraries(msi2lmp PRIVATE ${MATH_LIBRARIES})
if(STANDARD_MATH_LIB)
target_link_libraries(msi2lmp PRIVATE ${STANDARD_MATH_LIB})
endif()
install(TARGETS msi2lmp DESTINATION ${CMAKE_INSTALL_BINDIR})
install(FILES ${LAMMPS_DOC_DIR}/msi2lmp.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
endif()

View File

@ -1,47 +0,0 @@
message(STATUS "Downloading and building YAML library")
include(ExternalProject)
set(YAML_URL "https://pyyaml.org/download/libyaml/yaml-0.2.5.tar.gz" CACHE STRING "URL for libyaml tarball")
set(YAML_MD5 "bb15429d8fb787e7d3f1c83ae129a999" CACHE STRING "MD5 checksum of libyaml tarball")
mark_as_advanced(YAML_URL)
mark_as_advanced(YAML_MD5)
# support cross-compilation to windows
if(CMAKE_CROSSCOMPILING AND (CMAKE_SYSTEM_NAME STREQUAL "Windows"))
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86")
set(YAML_CROSS_HOST --host=i686-mingw64)
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
set(YAML_CROSS_HOST --host=x86_64-mingw64)
else()
message(FATAL_ERROR "Unsupported cross-compilation "
" for ${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}"
" on ${CMAKE_HOST_SYSTEM}/${CMAKE_HOST_SYSTEM_PROCESSOR}")
endif()
endif()
ExternalProject_Add(libyaml
URL ${YAML_URL}
URL_MD5 ${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 ${YAML_CROSS_HOST}
BUILD_BYPRODUCTS <INSTALL_DIR>/lib/libyaml${CMAKE_STATIC_LIBRARY_SUFFIX}
TEST_COMMAND "")
ExternalProject_Get_Property(libyaml INSTALL_DIR)
set(YAML_INCLUDE_DIR ${INSTALL_DIR}/include)
set(YAML_LIBRARY_DIR ${INSTALL_DIR}/lib)
# workaround for CMake 3.10 on ubuntu 18.04
file(MAKE_DIRECTORY ${YAML_INCLUDE_DIR})
file(MAKE_DIRECTORY ${YAML_LIBRARY_DIR})
set(YAML_LIBRARY_PATH ${INSTALL_DIR}/lib/libyaml${CMAKE_STATIC_LIBRARY_SUFFIX})
add_library(Yaml::Yaml UNKNOWN IMPORTED)
set_target_properties(Yaml::Yaml PROPERTIES
IMPORTED_LOCATION ${YAML_LIBRARY_PATH}
INTERFACE_INCLUDE_DIRECTORIES ${YAML_INCLUDE_DIR})
add_dependencies(Yaml::Yaml libyaml)

View File

@ -24,10 +24,10 @@ if(GIT_FOUND AND EXISTS ${LAMMPS_DIR}/.git)
OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
set(temp "${temp}const bool LAMMPS_NS::LAMMPS::has_git_info = ${temp_git_info};\n")
set(temp "${temp}const char LAMMPS_NS::LAMMPS::git_commit[] = \"${temp_git_commit}\";\n")
set(temp "${temp}const char LAMMPS_NS::LAMMPS::git_branch[] = \"${temp_git_branch}\";\n")
set(temp "${temp}const char LAMMPS_NS::LAMMPS::git_descriptor[] = \"${temp_git_describe}\";\n")
set(temp "${temp}bool LAMMPS_NS::LAMMPS::has_git_info() { return ${temp_git_info}; }\n")
set(temp "${temp}const char *LAMMPS_NS::LAMMPS::git_commit() { return \"${temp_git_commit}\"; }\n")
set(temp "${temp}const char *LAMMPS_NS::LAMMPS::git_branch() { return \"${temp_git_branch}\"; }\n")
set(temp "${temp}const char *LAMMPS_NS::LAMMPS::git_descriptor() { return \"${temp_git_describe}\"; }\n")
set(temp "${temp}#endif\n\n")
message(STATUS "Generating lmpgitversion.h...")

View File

@ -20,9 +20,14 @@
{ 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: [ "@\"nstencil_.*.h\"", public, "\"style_nstencil.h\"", public ] },
{ include: [ "@\"ntopo_.*.h\"", public, "\"style_ntopo.h\"", public ] },
{ include: [ "\"fmt/core.h\"", private, "\"fmt/format.h\"", public ] },
{ include: [ "<float.h>", public, "<cfloat>", public ] },
{ include: [ "\"float.h\"", public, "<cfloat>", public ] },
{ include: [ "<limits.h>", public, "<climits>", public ] },
{ include: [ "\"limits.h\"", public, "<climits>", public ] },
{ include: [ "<stdio.h>", public, "<cstdio>", public ] },
{ include: [ "<bits/types/struct_rusage.h>", private, "<sys/types.h>", public ] },
{ include: [ "<bits/types/struct_tm.h>", private, "<ctime>", public ] },
]

View File

@ -8,6 +8,7 @@ set(ALL_PACKAGES
AWPMD
BOCS
BODY
BPM
BROWNIAN
CG-DNA
CG-SDK
@ -24,6 +25,7 @@ set(ALL_PACKAGES
DPD-REACT
DPD-SMOOTH
DRUDE
ELECTRODE
EFF
EXTRA-COMPUTE
EXTRA-DUMP
@ -48,7 +50,6 @@ set(ALL_PACKAGES
MDI
MEAM
MESONT
MESSAGE
MGPT
MISC
ML-HDNNP

View File

@ -10,6 +10,7 @@ set(ALL_PACKAGES
AWPMD
BOCS
BODY
BPM
BROWNIAN
CG-DNA
CG-SDK
@ -26,6 +27,7 @@ set(ALL_PACKAGES
DPD-REACT
DPD-SMOOTH
DRUDE
ELECTRODE
EFF
EXTRA-COMPUTE
EXTRA-DUMP
@ -50,7 +52,6 @@ set(ALL_PACKAGES
MDI
MEAM
MESONT
MESSAGE
MGPT
MISC
ML-HDNNP

View File

@ -3,19 +3,19 @@
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 -g" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Og -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_DEBUG "-Wall -Og -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_DEBUG "-Wall -Og -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)

View File

@ -5,7 +5,5 @@ set(PKG_KOKKOS ON CACHE BOOL "" FORCE)
set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "" FORCE)
set(Kokkos_ENABLE_OPENMP ON CACHE BOOL "" FORCE)
set(Kokkos_ENABLE_CUDA ON CACHE BOOL "" FORCE)
set(Kokkos_ARCH_MAXWELL50 on CACHE BOOL "" FORCE)
set(Kokkos_ARCH_PASCAL60 ON CACHE BOOL "" FORCE)
set(BUILD_OMP ON CACHE BOOL "" FORCE)
get_filename_component(NVCC_WRAPPER_CMD ${CMAKE_CURRENT_SOURCE_DIR}/../lib/kokkos/bin/nvcc_wrapper ABSOLUTE)
set(CMAKE_CXX_COMPILER ${NVCC_WRAPPER_CMD} CACHE FILEPATH "" FORCE)

View File

@ -0,0 +1,15 @@
# preset that enables KOKKOS and selects SYCL compilation with OpenMP
# enabled as well. Also sets some performance related compiler flags.
set(PKG_KOKKOS ON CACHE BOOL "" FORCE)
set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "" FORCE)
set(Kokkos_ENABLE_OPENMP ON CACHE BOOL "" FORCE)
set(Kokkos_ENABLE_CUDA OFF CACHE BOOL "" FORCE)
set(Kokkos_ENABLE_SYCL ON CACHE BOOL "" FORCE)
set(Kokkos_ARCH_MAXWELL50 on CACHE BOOL "" FORCE)
set(BUILD_OMP ON CACHE BOOL "" FORCE)
set(CMAKE_CXX_COMPILER clang++ CACHE STRING "" FORCE)
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
set(CMAKE_CXX_STANDARD 17 CACHE STRING "" FORCE)
set(CMAKE_SHARED_LINKER_FLAGS "-Xsycl-target-frontend -O3" CACHE STRING "" FORCE)
set(CMAKE_TUNE_FLAGS "-fgpu-inline-threshold=100000 -Xsycl-target-frontend -O3 -Xsycl-target-frontend -ffp-contract=on -Wno-unknown-cuda-version" CACHE STRING "" FORCE)

View File

@ -4,6 +4,7 @@ set(WIN_PACKAGES
AWPMD
BOCS
BODY
BPM
BROWNIAN
CG-DNA
CG-SDK
@ -20,6 +21,7 @@ set(WIN_PACKAGES
DPD-REACT
DPD-SMOOTH
DRUDE
ELECTRODE
EFF
EXTRA-COMPUTE
EXTRA-DUMP

View File

@ -6,6 +6,7 @@ set(ALL_PACKAGES
ASPHERE
BOCS
BODY
BPM
BROWNIAN
CG-DNA
CG-SDK
@ -22,6 +23,7 @@ set(ALL_PACKAGES
DPD-REACT
DPD-SMOOTH
DRUDE
ELECTRODE
EFF
EXTRA-COMPUTE
EXTRA-DUMP
@ -48,7 +50,6 @@ set(ALL_PACKAGES
PHONON
PLUGIN
POEMS
PYTHON
QEQ
REACTION
REAXFF

View File

@ -6,6 +6,7 @@ set(PACKAGES_WITH_LIB
ATC
AWPMD
COMPRESS
ELECTRODE
GPU
H5MD
KIM
@ -15,7 +16,6 @@ set(PACKAGES_WITH_LIB
MACHDYN
MDI
MESONT
MESSAGE
ML-HDNNP
ML-PACE
ML-QUIP

View File

@ -1,4 +1,4 @@
# preset that will enable clang/clang++ with support for MPI and OpenMP (on Linux boxes)
# preset that will enable PGI (Nvidia) compilers with support for MPI and OpenMP (on Linux boxes)
set(CMAKE_CXX_COMPILER "pgc++" CACHE STRING "" FORCE)
set(CMAKE_C_COMPILER "pgcc" CACHE STRING "" FORCE)

View File

@ -0,0 +1,65 @@
set(WIN_PACKAGES
ASPHERE
BOCS
BODY
BPM
BROWNIAN
CG-DNA
CG-SDK
CLASS2
COLLOID
COLVARS
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
MANIFOLD
MANYBODY
MC
MEAM
MISC
ML-IAP
ML-SNAP
MOFFF
MOLECULE
MOLFILE
OPENMP
ORIENT
PERI
PHONON
POEMS
PTM
QEQ
QTB
REACTION
REAXFF
REPLICA
RIGID
SHOCK
SMTBQ
SPH
SPIN
SRD
TALLY
UEF
YAFF)
foreach(PKG ${WIN_PACKAGES})
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
endforeach()

2
doc/.gitignore vendored
View File

@ -1,6 +1,6 @@
/old
/html
/html-offline
/fasthtml
/epub
/latex
/mathjax

View File

@ -14,34 +14,22 @@ ANCHORCHECK = $(VENV)/bin/rst_anchor_check
SPHINXCONFIG = $(BUILDDIR)/utils/sphinx-config
MATHJAX = $(SPHINXCONFIG)/_static/mathjax
PYTHON = $(shell which python3)
DOXYGEN = $(shell which doxygen)
VIRTUALENV = virtualenv
PYTHON = $(word 3,$(shell type python3))
DOXYGEN = $(word 3,$(shell type doxygen))
HAS_PYTHON3 = NO
HAS_VIRTUALENV = NO
HAS_DOXYGEN = NO
HAS_PDFLATEX = NO
ifeq ($(shell which python3 >/dev/null 2>&1; echo $$?), 0)
ifeq ($(shell type python3 >/dev/null 2>&1; echo $$?), 0)
HAS_PYTHON3 = YES
endif
ifeq ($(shell which doxygen >/dev/null 2>&1; echo $$?), 0)
ifeq ($(shell type doxygen >/dev/null 2>&1; echo $$?), 0)
HAS_DOXYGEN = YES
endif
ifeq ($(shell which virtualenv-3 >/dev/null 2>&1; echo $$?), 0)
VIRTUALENV = virtualenv-3
HAS_VIRTUALENV = YES
endif
ifeq ($(shell which virtualenv >/dev/null 2>&1; echo $$?), 0)
VIRTUALENV = virtualenv
HAS_VIRTUALENV = YES
endif
ifeq ($(shell which pdflatex >/dev/null 2>&1; echo $$?), 0)
ifeq ($(shell which latexmk >/dev/null 2>&1; echo $$?), 0)
ifeq ($(shell type pdflatex >/dev/null 2>&1; echo $$?), 0)
ifeq ($(shell type latexmk >/dev/null 2>&1; echo $$?), 0)
HAS_PDFLATEX = YES
endif
endif
@ -58,7 +46,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 char_check xmlgen
.PHONY: help clean-all clean clean-spelling epub mobi rst html pdf spelling anchor_check style_check char_check xmlgen fasthtml
# ------------------------------------------
@ -70,7 +58,8 @@ help:
@echo " epub create ePUB format manual for e-book readers"
@echo " mobi convert ePUB to MOBI format manual for e-book readers (e.g. Kindle)"
@echo " (requires ebook-convert tool from calibre)"
@echo " clean remove all intermediate RST files"
@echo " fasthtml approximate HTML page creation in fasthtml dir (for development)"
@echo " clean remove all intermediate files"
@echo " clean-all reset the entire build environment"
@echo " anchor_check scan for duplicate anchor labels"
@echo " style_check check for complete and consistent style lists"
@ -83,7 +72,7 @@ clean-all: clean
rm -rf $(BUILDDIR)/docenv $(MATHJAX) $(BUILDDIR)/LAMMPS.mobi $(BUILDDIR)/LAMMPS.epub $(BUILDDIR)/Manual.pdf
clean: clean-spelling
rm -rf $(BUILDDIR)/html $(BUILDDIR)/epub $(BUILDDIR)/latex $(BUILDDIR)/doctrees $(BUILDDIR)/doxygen/xml $(BUILDDIR)/doxygen-warn.log $(BUILDDIR)/doxygen/Doxyfile $(SPHINXCONFIG)/conf.py
rm -rf $(BUILDDIR)/html $(BUILDDIR)/epub $(BUILDDIR)/latex $(BUILDDIR)/doctrees $(BUILDDIR)/doxygen/xml $(BUILDDIR)/doxygen-warn.log $(BUILDDIR)/doxygen/Doxyfile $(SPHINXCONFIG)/conf.py $(BUILDDIR)/fasthtml
clean-spelling:
rm -rf $(BUILDDIR)/spelling
@ -118,6 +107,23 @@ html: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJAX)
@rm -rf html/PDF/.[sg]*
@echo "Build finished. The HTML pages are in doc/html."
fasthtml: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJAX)
@if [ "$(HAS_BASH)" == "NO" ] ; then echo "bash was not found at $(OSHELL)! Please use: $(MAKE) SHELL=/path/to/bash" 1>&2; exit 1; fi
@$(MAKE) $(MFLAGS) -C graphviz all
@mkdir -p fasthtml
@(\
. $(VENV)/bin/activate ; env PYTHONWARNINGS= \
sphinx-build -j 4 -b html -c $(SPHINXCONFIG) -d $(BUILDDIR)/fasthtml/doctrees $(RSTDIR) fasthtml ;\
deactivate ;\
)
@rm -rf fasthtml/_sources
@rm -rf fasthtml/PDF
@rm -rf fasthtml/USER
@rm -rf fasthtml/JPG
@cp -r src/PDF fasthtml/PDF
@rm -rf fasthtml/PDF/.[sg]*
@echo "Fast HTML build finished. The HTML pages are in doc/fasthtml."
spelling: xmlgen $(SPHINXCONFIG)/conf.py $(VENV) $(SPHINXCONFIG)/false_positives.txt
@if [ "$(HAS_BASH)" == "NO" ] ; then echo "bash was not found at $(OSHELL)! Please use: $(MAKE) SHELL=/path/to/bash" 1>&2; exit 1; fi
@(\
@ -220,9 +226,8 @@ $(VENV):
@if [ "$(HAS_BASH)" == "NO" ] ; then echo "bash was not found at $(OSHELL)! Please use: $(MAKE) SHELL=/path/to/bash" 1>&2; exit 1; fi
@if [ "$(HAS_PYTHON3)" == "NO" ] ; then echo "python3 was not found! Please see README for further instructions" 1>&2; exit 1; fi
@if [ "$(HAS_DOXYGEN)" == "NO" ] ; then echo "doxygen was not found! Please see README for further instructions" 1>&2; exit 1; fi
@if [ "$(HAS_VIRTUALENV)" == "NO" ] ; then echo "virtualenv was not found! Please see README for further instructions" 1>&2; exit 1; fi
@( \
$(VIRTUALENV) -p $(PYTHON) $(VENV); \
$(PYTHON) -m venv $(VENV); \
. $(VENV)/bin/activate; \
pip $(PIP_OPTIONS) install --upgrade pip; \
pip $(PIP_OPTIONS) install -r $(BUILDDIR)/utils/requirements.txt; \
@ -230,7 +235,7 @@ $(VENV):
)
$(MATHJAX):
@git clone -b 3.2.0 -c advice.detachedHead=0 --depth 1 git://github.com/mathjax/MathJax.git $@
@git clone -b 3.2.0 -c advice.detachedHead=0 --depth 1 https://github.com/mathjax/MathJax.git $@
$(ANCHORCHECK): $(VENV)
@( \

View File

@ -2,7 +2,7 @@
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "LAMMPS Programmer's Guide"
PROJECT_NUMBER = "24 August 2020"
PROJECT_NUMBER = "4 May 2022"
PROJECT_BRIEF = "Documentation of the LAMMPS library interface and Python wrapper"
PROJECT_LOGO = lammps-logo.png
CREATE_SUBDIRS = NO
@ -435,6 +435,10 @@ INPUT = @LAMMPS_SOURCE_DIR@/utils.cpp \
@LAMMPS_SOURCE_DIR@/my_pool_chunk.cpp \
@LAMMPS_SOURCE_DIR@/my_pool_chunk.h \
@LAMMPS_SOURCE_DIR@/math_eigen.h \
@LAMMPS_SOURCE_DIR@/platform.h \
@LAMMPS_SOURCE_DIR@/platform.cpp \
@LAMMPS_SOURCE_DIR@/math_special.h \
@LAMMPS_SOURCE_DIR@/math_special.cpp \
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded

View File

@ -33,9 +33,9 @@ when necessary.
## Pull Requests
ALL changes to the LAMMPS code and documentation, however trivial, MUST
be submitted as a pull request to GitHub. All changes to the "master"
be submitted as a pull request to GitHub. All changes to the "develop"
branch must be made exclusively through merging pull requests. The
"unstable" and "stable" branches, respectively are only to be updated
"release" and "stable" branches, respectively are only to be updated
upon patch or stable releases with fast-forward merges based on the
associated tags. Pull requests may also be submitted to (long-running)
feature branches created by LAMMPS developers inside the LAMMPS project,
@ -123,16 +123,16 @@ and thus were this comment should be placed.
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 easily
testing - that the code in the branch "develop" 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
performed after code is merged to the "develop" 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
marked with a `patch_<version date>` tag and the "release" branch
follows only these versions (and thus is always supposed to be of
production quality, unlike "master", which may be temporary broken, in
production quality, unlike "develop", which may be temporary broken, in
the case of larger change sets or unexpected incompatibilities or side
effects.

View File

@ -1,7 +1,7 @@
.TH LAMMPS "29 September 2021" "2021-09-29"
.TH LAMMPS "1" "4 May 2022" "2022-5-4"
.SH NAME
.B LAMMPS
\- Molecular Dynamics Simulator.
\- Molecular Dynamics Simulator. Version 24 March 2022
.SH SYNOPSIS
.B lmp
@ -297,7 +297,7 @@ the chapter on errors in the
manual gives some additional information about error messages, if possible.
.SH COPYRIGHT
© 2003--2021 Sandia Corporation
© 2003--2022 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

@ -1,4 +1,4 @@
.TH MSI2LMP "v3.9.9" "2018-11-05"
.TH MSI2LMP "1" "v3.9.9" "2018-11-05"
.SH NAME
.B MSI2LMP
\- Converter for Materials Studio files to LAMMPS
@ -98,7 +98,7 @@ msi2lmp decane -c 0 -f oplsaa
.SH COPYRIGHT
© 2003--2021 Sandia Corporation
© 2003--2022 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

@ -1123,9 +1123,12 @@ Bibliography
**(Sun)**
Sun, J. Phys. Chem. B, 102, 7338-7364 (1998).
**(Surblys)**
**(Surblys2019)**
Surblys, Matsubara, Kikugawa, Ohara, Phys Rev E, 99, 051301(R) (2019).
**(Surblys2021)**
Surblys, Matsubara, Kikugawa, Ohara, J Appl Phys 130, 215104 (2021).
**(Sutmann)**
Sutmann, Arnold, Fahrenberger, et. al., Physical review / E 88(6), 063308 (2013)

View File

@ -150,6 +150,42 @@ for IDEs like Eclipse, CodeBlocks, or Kate can be selected using the *-G*
command line flag. A list of available generator settings for your
specific CMake version is given when running ``cmake --help``.
.. _cmake_multiconfig:
Multi-configuration build systems
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Throughout this manual it is mostly assumed that LAMMPS is being built
on a Unix-like operating system with "make" as the underlying "builder",
since this is the most common case. In this case the build "configuration"
is chose using ``-D CMAKE_BUILD_TYPE=<configuration>`` with ``<configuration>``
being one of "Release", "Debug", "RelWithDebInfo", or "MinSizeRel".
Some build tools, however, can also use or even require to have a so-called
multi-configuration build system setup. For those the built type (or
configuration) is chosen at compile time using the same build files. E.g.
with:
.. code-block:: bash
cmake --build build-multi --config Release
In that case the resulting binaries are not in the build folder directly
but in sub-directories corresponding to the build type (i.e. Release in
the example from above). Similarly, for running unit tests the
configuration is selected with the *-C* flag:
.. code-block:: bash
ctest -C Debug
The CMake scripts in LAMMPS have basic support for being compiled using a
multi-config build system, but not all of it has been ported. This is in
particular applicable to compiling packages that require additional libraries
that would be downloaded and compiled by CMake. The "windows" preset file
tries to keep track of which packages can be compiled natively with the
MSVC compilers out-of-the box. Not all of those external libraries are
portable to Windows either.
Installing CMake
^^^^^^^^^^^^^^^^

View File

@ -185,6 +185,10 @@ The ``ctest`` command has many options, the most important ones are:
- run subset of tests matching the regular expression <regex>
* - -E <regex>
- exclude subset of tests matching the regular expression <regex>
* - -L <regex>
- run subset of tests with a label matching the regular expression <regex>
* - -LE <regex>
- exclude subset of tests with a label matching the regular expression <regex>
* - -N
- dry-run: display list of tests without running them
* - -T memcheck
@ -299,6 +303,12 @@ will destroy the original file, if the generation run does not complete,
so using *-g* is recommended unless the YAML file is fully tested
and working.
Some of the force style tests are rather slow to run and some are very
sensitive to small differences like CPU architecture, compiler
toolchain, compiler optimization. Those tests are flagged with a "slow"
and/or "unstable" label, and thus those tests can be selectively
excluded with the ``-LE`` flag or selected with the ``-L`` flag.
.. admonition:: Recommendations and notes for YAML files
:class: note
@ -476,14 +486,14 @@ The following options are available.
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-errordocs # search for deprecated error docs in header files
make fix-errordocs # remove error docs in header files
make check-permissions # search for files with permissions issues
make fix-permissions # correct permissions issues in files
make check # run all check targets from above
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).
These should help to make source and documentation files conforming
to some the coding style preferences of the LAMMPS developers.
Clang-format support
--------------------

View File

@ -14,7 +14,7 @@ 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``.
instead of the full project history by using ``git clone git@github.com:lammps/lammps --depth=1 --branch=develop``.
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).

View File

@ -45,7 +45,6 @@ This is the list of packages that may require additional steps.
* :ref:`MACHDYN <machdyn>`
* :ref:`MDI <mdi>`
* :ref:`MESONT <mesont>`
* :ref:`MESSAGE <message>`
* :ref:`ML-HDNNP <ml-hdnnp>`
* :ref:`ML-IAP <mliap>`
* :ref:`ML-PACE <ml-pace>`
@ -142,8 +141,6 @@ CMake build
:code:`GPU_ARCH` settings for different GPU hardware is as follows:
* sm_12 or sm_13 for GT200 (supported by CUDA 3.2 until CUDA 6.5)
* sm_20 or sm_21 for Fermi (supported by CUDA 3.2 until CUDA 7.5)
* sm_30 for Kepler (supported since CUDA 5 and until CUDA 10.x)
* sm_35 or sm_37 for Kepler (supported since CUDA 5 and until CUDA 11.x)
* sm_50 or sm_52 for Maxwell (supported since CUDA 6)
@ -161,6 +158,12 @@ Thus the GPU_ARCH setting is merely an optimization, to have code for
the preferred GPU architecture directly included rather than having to wait
for the JIT compiler of the CUDA driver to translate it.
When compiling for CUDA or HIP with CUDA, version 8.0 or later of the CUDA toolkit
is required and a GPU architecture of Kepler or later, which must *also* be
supported by the CUDA toolkit in use **and** the CUDA driver in use.
When compiling for OpenCL, OpenCL version 1.2 or later is required and the
GPU must be supported by the GPU driver and OpenCL runtime bundled with the driver.
When building with CMake, you **must NOT** build the GPU library in ``lib/gpu``
using the traditional build procedure. CMake will detect files generated by that
process and will terminate with an error and a suggestion for how to remove them.
@ -341,6 +344,18 @@ minutes to hours) to build. Of course you only need to do that once.)
$ make lib-kim args="-p /usr/local" # use an existing KIM API installation at the provided location
$ make lib-kim args="-p /usr/local -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # ditto but add one model or driver
When using the "-b " option, the KIM library is built using its native
cmake build system. The ``lib/kim/Install.py`` script supports a
``CMAKE`` environment variable if the cmake executable is named other
than ``cmake`` on your system. Additional environment variables may be
provided on the command line for use by cmake. For example, to use the
``cmake3`` executable and tell it to use the gnu version 11 compilers
to build KIM, one could use the following command line.
.. code-block:: bash
$ CMAKE=cmake3 CXX=g++-11 CC=gcc-11 FC=gfortran-11 make lib-kim args="-b " # (re-)install KIM API lib using cmake3 and gnu v11 compilers with only example models
Settings for debugging OpenKIM web queries discussed below need to
be applied by adding them to the ``LMP_INC`` variable through
editing the ``Makefile.machine`` you are using. For example:
@ -560,11 +575,26 @@ They must be specified in uppercase.
* - VEGA908
- GPU
- AMD GPU MI100 GFX908
* - INTEL_GEN
* - VEGA90A
- GPU
- Intel GPUs Gen9+
- AMD GPU
* - INTEL_DG1
- GPU
- Intel Iris XeMAX GPU
* - INTEL_GEN9
- GPU
- Intel GPU Gen9
* - INTEL_GEN11
- GPU
- Intel GPU Gen11
* - INTEL_GEN12LP
- GPU
- Intel GPU Gen12LP
* - INTEL_XEHP
- GPU
- Intel GPUs Xe-HP
This list was last updated for version 3.4.1 of the Kokkos library.
This list was last updated for version 3.5.0 of the Kokkos library.
.. tabs::
@ -611,13 +641,14 @@ This list was last updated for version 3.4.1 of the Kokkos library.
-D CMAKE_CXX_COMPILER=${HOME}/lammps/lib/kokkos/bin/nvcc_wrapper
To simplify compilation, three preset files are included in the
To simplify compilation, four preset files are included in the
``cmake/presets`` folder, ``kokkos-serial.cmake``,
``kokkos-openmp.cmake``, and ``kokkos-cuda.cmake``. They will
enable the KOKKOS package and enable some hardware choice. So to
compile with OpenMP host parallelization, CUDA device
parallelization (for GPUs with CC 5.0 and up) with some common
packages enabled, you can do the following:
``kokkos-openmp.cmake``, ``kokkos-cuda.cmake``, and
``kokkos-sycl.cmake``. They will enable the KOKKOS package and
enable some hardware choice. So to compile with OpenMP host
parallelization, CUDA device parallelization (for GPUs with CC 5.0
and up) with some common packages enabled, you can do the
following:
.. code-block:: bash
@ -769,47 +800,6 @@ library.
----------
.. _message:
MESSAGE package
-----------------------------
This package can optionally include support for messaging via sockets,
using the open-source `ZeroMQ library <http://zeromq.org>`_, which must
be installed on your system.
.. tabs::
.. tab:: CMake build
.. code-block:: bash
-D MESSAGE_ZMQ=value # build with ZeroMQ support, value = no (default) or yes
-D ZMQ_LIBRARY=path # ZMQ library file (only needed if a custom location)
-D ZMQ_INCLUDE_DIR=path # ZMQ include directory (only needed if a custom location)
.. tab:: Traditional make
Before building LAMMPS, you must build the CSlib library in
``lib/message``\ . You can build the CSlib library manually if
you prefer; follow the instructions in ``lib/message/README``\ .
You can also do it in one step from the ``lammps/src`` dir, using
a command like these, which simply invoke the
``lib/message/Install.py`` script with the specified args:
.. code-block:: bash
$ make lib-message # print help message
$ make lib-message args="-m -z" # build with MPI and socket (ZMQ) support
$ make lib-message args="-s" # build as serial lib with no ZMQ support
The build should produce two files: ``lib/message/cslib/src/libmessage.a``
and ``lib/message/Makefile.lammps``. The latter is copied from an
existing ``Makefile.lammps.*`` and has settings to link with the ZeroMQ
library if requested in the build.
----------
.. _mliap:
ML-IAP package
@ -1262,6 +1252,41 @@ be built for the most part with all major versions of the C++ language.
----------
.. _electrode:
ELECTRODE package
-----------------
This package depends on the KSPACE package.
.. tabs::
.. tab:: CMake build
No additional settings are needed besides ``-D PKG_KSPACE=yes`` and ``-D
PKG_ELECTRODE=yes``.
.. tab:: Traditional make
The package is activated with ``make yes-KSPACE`` and ``make
yes-ELECTRODE``
Note that the ``Makefile.lammps`` file has settings for the BLAS and
LAPACK linear algebra libraries. As explained in ``lib/awpmd/README``
these can either exist on your system, or you can use the files provided
in ``lib/linalg``. In the latter case you also need to build the library
in ``lib/linalg`` with a command like these:
.. code-block:: bash
$ make lib-linalg # print help message
$ make lib-linalg args="-m serial" # build with GNU Fortran compiler (settings as with "make serial")
$ make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
$ make lib-linalg args="-m gfortran" # build with GNU Fortran compiler
----------
.. _ml-pace:
ML-PACE package

View File

@ -33,12 +33,15 @@ 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://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/>`_
A current version of the manual (latest patch release, that is the state
of the *release* branch) is is available online at:
`https://docs.lammps.org/ <https://docs.lammps.org/>`_.
A version of the manual corresponding to the ongoing development (that is
the state of the *develop* branch) is available online at:
`https://docs.lammps.org/latest/ <https://docs.lammps.org/latest/>`_
A version of the manual corresponding to the latest stable LAMMPS release
(that is the state of the *stable* branch) is available online at:
`https://docs.lammps.org/stable/ <https://docs.lammps.org/stable/>`_
Build using GNU make
--------------------
@ -75,11 +78,12 @@ folder. The following ``make`` commands are available:
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 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
make fasthtml # generate approximate HTML in fasthtml dir using Sphinx
# some Sphinx extensions do not work correctly with this
make clean # remove intermediate RST files created by HTML build
make clean-all # remove entire build folder and any cached data
@ -190,8 +194,13 @@ folder need to be updated or new files added. These files are written in
`reStructuredText <rst_>`_ markup for translation with the Sphinx tool.
Before contributing any documentation, please check that both the HTML
and the PDF format documentation can translate without errors. Please also
check the output to the console for any warnings or problems. There will
and the PDF format documentation can translate without errors. During
testing the html translation, you may use the ``make fasthtml`` command
which does an approximate translation (i.e. not all Sphinx features and
extensions will work), but runs very fast because it will only translate
files that have been changed since the last ``make fasthtml`` command.
Please also check the output to the console for any warnings or problems. There will
be multiple tests run automatically:
- A test for correctness of all anchor labels and their references

View File

@ -45,7 +45,6 @@ packages:
* :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>`

View File

@ -4,15 +4,15 @@ Optional build settings
LAMMPS can be built with several optional settings. Each sub-section
explain how to do this for building both with CMake and make.
* :ref:`C++11 standard compliance <cxx11>` when building all of LAMMPS
* :ref:`FFT library <fft>` for use with the :doc:`kspace_style pppm <kspace_style>` command
* :ref:`Size of LAMMPS integer types <size>`
* :ref:`Read or write compressed files <gzip>`
* :ref:`Output of JPG and PNG files <graphics>` via the :doc:`dump image <dump_image>` command
* :ref:`Output of movie files <graphics>` via the :doc:`dump_movie <dump_image>` command
* :ref:`Memory allocation alignment <align>`
* :ref:`Workaround for long long integers <longlong>`
* :ref:`Error handling exceptions <exceptions>` when using LAMMPS as a library
* `C++11 standard compliance`_ when building all of LAMMPS
* `FFT library`_ for use with the :doc:`kspace_style pppm <kspace_style>` command
* `Size of LAMMPS integer types and size limits`_
* `Read or write compressed files`_
* `Output of JPG, PNG, and move files` via the :doc:`dump image <dump_image>` or :doc:`dump movie <dump_image>` commands
* `Memory allocation alignment`_
* `Workaround for long long integers`_
* `Exception handling when using LAMMPS as a library`_ to capture errors
* `Trigger selected floating-point exceptions`_
----------
@ -321,9 +321,7 @@ following settings:
.. code-block:: make
LMP_INC = -DLAMMPS_JPEG
LMP_INC = -DLAMMPS_PNG
LMP_INC = -DLAMMPS_FFMPEG
LMP_INC = -DLAMMPS_JPEG -DLAMMPS_PNG -DLAMMPS_FFMPEG <other LMP_INC settings>
JPG_INC = -I/usr/local/include # path to jpeglib.h, png.h, zlib.h header files if make cannot find them
JPG_PATH = -L/usr/lib # paths to libjpeg.a, libpng.a, libz.a (.so) files if make cannot find them
@ -354,8 +352,10 @@ Read or write compressed files
-----------------------------------------
If this option is enabled, large files can be read or written with
gzip compression by several LAMMPS commands, including
:doc:`read_data <read_data>`, :doc:`rerun <rerun>`, and :doc:`dump <dump>`.
compression by ``gzip`` or similar tools by several LAMMPS commands,
including :doc:`read_data <read_data>`, :doc:`rerun <rerun>`, and
:doc:`dump <dump>`. Currently supported compression tools are:
``gzip``, ``bzip2``, ``zstd``, and ``lzma``.
.. tabs::
@ -364,23 +364,23 @@ gzip compression by several LAMMPS commands, including
.. code-block:: bash
-D WITH_GZIP=value # yes or no
# default is yes if CMake can find gzip, else no
-D GZIP_EXECUTABLE=path # path to gzip executable if CMake cannot find it
# default is yes if CMake can find the gzip program, else no
.. tab:: Traditional make
.. code-block:: make
LMP_INC = -DLAMMPS_GZIP
LMP_INC = -DLAMMPS_GZIP <other LMP_INC settings>
This option requires that your operating system fully supports the "popen()"
function in the standard runtime library and that a ``gzip`` executable can be
found by LAMMPS during a run.
This option requires that your operating system fully supports the
"popen()" function in the standard runtime library and that a ``gzip``
or other executable can be found by LAMMPS in the standard search path
during a run.
.. note::
On some clusters with high-speed networks, using the "fork()" library
call (required by "popen()") can interfere with the fast communication
On clusters with high-speed networks, using the "fork()" library call
(required by "popen()") can interfere with the fast communication
library and lead to simulations using compressed output or input to
hang or crash. For selected operations, compressed file I/O is also
available using a compression library instead, which is what the
@ -452,7 +452,7 @@ those systems:
.. code-block:: make
LMP_INC = -DLAMMPS_LONGLONG_TO_LONG
LMP_INC = -DLAMMPS_LONGLONG_TO_LONG <other LMP_INC settings>
----------
@ -479,7 +479,7 @@ e.g. to Python. Of course, the calling code has to be set up to
.. code-block:: make
LMP_INC = -DLAMMPS_EXCEPTIONS
LMP_INC = -DLAMMPS_EXCEPTIONS <other LMP_INC settings>
.. note::
@ -520,7 +520,7 @@ executable, not the library.
.. code-block:: make
LMP_INC = -DLAMMPS_TRAP_FPE
LMP_INC = -DLAMMPS_TRAP_FPE <other LMP_INC settings>
After compilation with this flag set, the LAMMPS executable will stop
and produce a core dump when a division by zero, overflow, illegal math

View File

@ -4,6 +4,7 @@ Notes for building LAMMPS on Windows
* :ref:`General remarks <generic>`
* :ref:`Running Linux on Windows <linux>`
* :ref:`Using GNU GCC ported to Windows <gnu>`
* :ref:`Using Visual Studio <msvc>`
* :ref:`Using a cross-compiler <cross>`
----------
@ -15,44 +16,52 @@ General remarks
LAMMPS is developed and tested primarily on Linux machines. The vast
majority of HPC clusters and supercomputers today run on Linux as well.
While portability to other platforms is desired, it is not always achieved.
The LAMMPS developers are dependent on LAMMPS users giving feedback and
providing assistance in resolving portability issues. This is particularly
true for compiling LAMMPS on Windows, since this platform has significant
differences in some low-level functionality.
While portability to other platforms is desired, it is not always
achieved. That is sometimes due to non-portable code in LAMMPS itself,
but more often due to portability limitations of external libraries and
tools required to build a specific feature or package. The LAMMPS
developers are dependent on LAMMPS users giving feedback and providing
assistance in resolving portability issues. This is particularly true
for compiling LAMMPS on Windows, since this platform has significant
differences in some low-level functionality. As of LAMMPS version 14
December 2021, large parts of LAMMPS can be compiled natively with the
Microsoft Visual C++ Compilers. This is largely facilitated by using
the :doc:`Developer_platform` in the ``platform`` namespace.
Before trying to build LAMMPS on Windows yourself, please consider the
`pre-compiled Windows installer packages <https://packages.lammps.org/windows.html>`_
and see if they are sufficient for your needs.
.. _linux:
Running Linux on Windows
^^^^^^^^^^^^^^^^^^^^^^^^
Before trying to build LAMMPS on Windows, please consider if the
pre-compiled Windows binary packages are sufficient for your needs. If
it is necessary for you to compile LAMMPS on a Windows machine
If it is necessary for you to compile LAMMPS on a Windows machine
(e.g. because it is your main desktop), please also consider using a
virtual machine software and compile and run LAMMPS in a Linux virtual
machine, or - if you have a sufficiently up-to-date Windows 10
installation - consider using the Windows subsystem for Linux. This
optional Windows feature allows you to run the bash shell from Ubuntu
from within Windows and from there on, you can pretty much use that
shell like you are running on an Ubuntu Linux machine (e.g. installing
software via apt-get and more). For more details on that, please see
:doc:`this tutorial <Howto_wsl>`.
machine, or - if you have a sufficiently up-to-date Windows 10 or
Windows 11 installation - consider using the Windows subsystem for
Linux. This optional Windows feature allows you to run the bash shell
of a Linux system (Ubuntu by default) from within Windows and from there
on, you can pretty much use that shell like you are running on a regular
Ubuntu Linux machine (e.g. installing software via apt-get and more).
For more details on that, please see :doc:`this tutorial <Howto_wsl>`.
.. _gnu:
Using a GNU GCC ported to Windows
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
One option for compiling LAMMPS on Windows natively that has been known
to work in the past is to install a bash shell, unix shell utilities,
perl, GNU make, and a GNU compiler ported to Windows. The Cygwin
package provides a unix/linux interface to low-level Windows functions,
so LAMMPS can be compiled on Windows. The necessary (minor)
modifications to LAMMPS are included, but may not always up-to-date for
recently added functionality and the corresponding new code. A machine
makefile for using cygwin for the old build system is provided. Using
CMake for this mode of compilation is untested and not likely to work.
One option for compiling LAMMPS on Windows natively is to install a Bash
shell, Unix shell utilities, Perl, Python, GNU make, and a GNU compiler
ported to Windows. The Cygwin package provides a unix/linux interface
to low-level Windows functions, so LAMMPS can be compiled on Windows.
The necessary (minor) modifications to LAMMPS are included, but may not
always up-to-date for recently added functionality and the corresponding
new code. A machine makefile for using cygwin for the old build system
is provided. Using CMake for this mode of compilation is untested and
not likely to work.
When compiling for Windows do **not** set the ``-DLAMMPS_MEMALIGN``
define in the LMP_INC makefile variable and add ``-lwsock32 -lpsapi`` to
@ -64,8 +73,53 @@ configuration should set this up automatically, but is untested.
In case of problems, you are recommended to contact somebody with
experience in using Cygwin. If you do come across portability problems
requiring changes to the LAMMPS source code, or figure out corrections
yourself, please report them on the lammps-users mailing list, or file
them as an issue or pull request on the LAMMPS GitHub project.
yourself, please report them on the
`LAMMPS forum at MatSci <https://matsci.org/c/lammps/lammps-development/>`_,
or file them as an issue or pull request on the LAMMPS GitHub project.
.. _msvc:
Using Microsoft Visual Studio
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Following the integration of the :doc:`platform namespace
<Developer_platform>` into the LAMMPS code base, portability of LAMMPS
for native compilation on Windows using Visual Studio has been
significantly improved. This has been tested with Visual Studio 2019
(aka version 16) and Visual Studio 2022 (aka version 17). We strongly
recommend using Visual Studio 2022 version 17.1 or later. Not all
features and packages in LAMMPS are currently supported out of the box,
but a preset ``cmake/presets/windows.cmake`` is provided that contains
the packages that have been compiled successfully so far. You **must**
use the CMake based build procedure, since there is no support for GNU
make or the Unix shell utilities required for the GNU make build
procedure.
It is possible to use both the integrated CMake support of the Visual
Studio IDE or use an external CMake installation (e.g. downloaded from
cmake.org) to create build files and compile LAMMPS from the command line.
.. note::
Versions of Visual Studio before version 17.1 may scan the entire
LAMMPS source tree and likely miss the correct master
``CMakeLists.txt`` and get confused since there are multiple files
of that name in different folders but none in top level folder.
Please note, that for either approach CMake will create a so-called
:ref:`"multi-configuration" build environment <cmake_multiconfig>`, and
the command lines for building and testing LAMMPS must be adjusted
accordingly.
To support running in parallel you can compile with OpenMP enabled using
the OPENMP package or install Microsoft MPI (including the SDK) and compile
LAMMPS with MPI enabled.
.. note::
This is work in progress and you should contact the LAMMPS developers
via GitHub or the `LAMMPS forum at MatSci <https://matsci.org/c/lammps/lammps-development/>`_,
if you have questions or LAMMPS specific problems.
.. _cross:

View File

@ -47,7 +47,7 @@ An alphabetic list of all general LAMMPS commands.
* :doc:`displace_atoms <displace_atoms>`
* :doc:`dump <dump>`
* :doc:`dump_modify <dump_modify>`
* :doc:`dynamical_matrix <dynamical_matrix>`
* :doc:`dynamical_matrix (k) <dynamical_matrix>`
* :doc:`echo <echo>`
* :doc:`fix <fix>`
* :doc:`fix_modify <fix_modify>`
@ -67,8 +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:`mdi <mdi>`
* :doc:`minimize <minimize>`
* :doc:`min_modify <min_modify>`
* :doc:`min_style <min_style>`
@ -105,7 +104,6 @@ An alphabetic list of all general LAMMPS commands.
* :doc:`restart <restart>`
* :doc:`run <run>`
* :doc:`run_style <run_style>`
* :doc:`server <server>`
* :doc:`set <set>`
* :doc:`shell <shell>`
* :doc:`special_bonds <special_bonds>`
@ -117,7 +115,7 @@ An alphabetic list of all general LAMMPS commands.
* :doc:`thermo <thermo>`
* :doc:`thermo_modify <thermo_modify>`
* :doc:`thermo_style <thermo_style>`
* :doc:`third_order <third_order>`
* :doc:`third_order (k) <third_order>`
* :doc:`timer <timer>`
* :doc:`timestep <timestep>`
* :doc:`uncompute <uncompute>`

View File

@ -32,9 +32,12 @@ OPT.
*
*
*
* :doc:`bpm/rotational <bond_bpm_rotational>`
* :doc:`bpm/spring <bond_bpm_spring>`
* :doc:`class2 (ko) <bond_class2>`
* :doc:`fene (iko) <bond_fene>`
* :doc:`fene/expand (o) <bond_fene_expand>`
* :doc:`fene/nm <bond_fene>`
* :doc:`gaussian <bond_gaussian>`
* :doc:`gromos (o) <bond_gromos>`
* :doc:`harmonic (iko) <bond_harmonic>`

View File

@ -28,10 +28,12 @@ KOKKOS, o = OPENMP, t = OPT.
* :doc:`angle <compute_angle>`
* :doc:`angle/local <compute_angle_local>`
* :doc:`angmom/chunk <compute_angmom_chunk>`
* :doc:`ave/sphere/atom (k) <compute_ave_sphere_atom>`
* :doc:`basal/atom <compute_basal_atom>`
* :doc:`body/local <compute_body_local>`
* :doc:`bond <compute_bond>`
* :doc:`bond/local <compute_bond_local>`
* :doc:`born/matrix <compute_born_matrix>`
* :doc:`centro/atom <compute_centro_atom>`
* :doc:`centroid/stress/atom <compute_stress_atom>`
* :doc:`chunk/atom <compute_chunk_atom>`
@ -62,6 +64,7 @@ KOKKOS, o = OPENMP, t = OPT.
* :doc:`event/displace <compute_event_displace>`
* :doc:`fabric <compute_fabric>`
* :doc:`fep <compute_fep>`
* :doc:`fep/ta <compute_fep_ta>`
* :doc:`force/tally <compute_tally>`
* :doc:`fragment/atom <compute_cluster_atom>`
* :doc:`global/atom <compute_global_atom>`
@ -89,6 +92,7 @@ KOKKOS, o = OPENMP, t = OPT.
* :doc:`msd <compute_msd>`
* :doc:`msd/chunk <compute_msd_chunk>`
* :doc:`msd/nongauss <compute_msd_nongauss>`
* :doc:`nbond/atom <compute_nbond_atom>`
* :doc:`omega/chunk <compute_omega_chunk>`
* :doc:`orientorder/atom (k) <compute_orientorder_atom>`
* :doc:`pair <compute_pair>`
@ -99,7 +103,6 @@ KOKKOS, o = OPENMP, t = OPT.
* :doc:`pe/tally <compute_tally>`
* :doc:`plasticity/atom <compute_plasticity_atom>`
* :doc:`pressure <compute_pressure>`
* :doc:`pressure/cylinder <compute_pressure_cylinder>`
* :doc:`pressure/uef <compute_pressure_uef>`
* :doc:`property/atom <compute_property_atom>`
* :doc:`property/chunk <compute_property_chunk>`
@ -142,8 +145,11 @@ KOKKOS, o = OPENMP, t = OPT.
* :doc:`sph/t/atom <compute_sph_t_atom>`
* :doc:`spin <compute_spin>`
* :doc:`stress/atom <compute_stress_atom>`
* :doc:`stress/cartesian <compute_stress_profile>`
* :doc:`stress/cylinder <compute_stress_profile>`
* :doc:`stress/mop <compute_stress_mop>`
* :doc:`stress/mop/profile <compute_stress_mop>`
* :doc:`stress/spherical <compute_stress_profile>`
* :doc:`stress/tally <compute_tally>`
* :doc:`tdpd/cc/atom <compute_tdpd_cc_atom>`
* :doc:`temp (k) <compute_temp>`

View File

@ -23,6 +23,7 @@ OPT.
:columns: 5
* :doc:`accelerate/cos <fix_accelerate_cos>`
* :doc:`acks2/reaxff (k) <fix_acks2_reaxff>`
* :doc:`adapt <fix_adapt>`
* :doc:`adapt/fep <fix_adapt_fep>`
* :doc:`addforce <fix_addforce>`
@ -50,10 +51,10 @@ OPT.
* :doc:`bond/swap <fix_bond_swap>`
* :doc:`box/relax <fix_box_relax>`
* :doc:`charge/regulation <fix_charge_regulation>`
* :doc:`client/md <fix_client_md>`
* :doc:`cmap <fix_cmap>`
* :doc:`colvars <fix_colvars>`
* :doc:`controller <fix_controller>`
* :doc:`damping/cundall <fix_damping_cundall>`
* :doc:`deform (k) <fix_deform>`
* :doc:`deposit <fix_deposit>`
* :doc:`dpd/energy (k) <fix_dpd_energy>`
@ -65,6 +66,9 @@ OPT.
* :doc:`edpd/source <fix_dpd_source>`
* :doc:`efield <fix_efield>`
* :doc:`ehex <fix_ehex>`
* :doc:`electrode/conp (i) <fix_electrode_conp>`
* :doc:`electrode/conq (i) <fix_electrode_conp>`
* :doc:`electrode/thermo (i) <fix_electrode_conp>`
* :doc:`electron/stopping <fix_electron_stopping>`
* :doc:`electron/stopping/fit <fix_electron_stopping>`
* :doc:`enforce2d (k) <fix_enforce2d>`
@ -96,13 +100,12 @@ OPT.
* :doc:`latte <fix_latte>`
* :doc:`lb/fluid <fix_lb_fluid>`
* :doc:`lb/momentum <fix_lb_momentum>`
* :doc:`lb/pc <fix_lb_pc>`
* :doc:`lb/rigid/pc/sphere <fix_lb_rigid_pc_sphere>`
* :doc:`lb/viscous <fix_lb_viscous>`
* :doc:`lineforce <fix_lineforce>`
* :doc:`manifoldforce <fix_manifoldforce>`
* :doc:`mdi/engine <fix_mdi_engine>`
* :doc:`mdi/aimd <fix_mdi_aimd>`
* :doc:`meso/move <fix_meso_move>`
* :doc:`mol/swap <fix_mol_swap>`
* :doc:`momentum (k) <fix_momentum>`
* :doc:`momentum/chunk <fix_momentum>`
* :doc:`move <fix_move>`
@ -127,6 +130,7 @@ OPT.
* :doc:`npt/sphere (o) <fix_npt_sphere>`
* :doc:`npt/uef <fix_nh_uef>`
* :doc:`numdiff <fix_numdiff>`
* :doc:`numdiff/virial <fix_numdiff_virial>`
* :doc:`nve (giko) <fix_nve>`
* :doc:`nve/asphere (gi) <fix_nve_asphere>`
* :doc:`nve/asphere/noforce <fix_nve_asphere_noforce>`
@ -140,6 +144,7 @@ OPT.
* :doc:`nve/manifold/rattle <fix_nve_manifold_rattle>`
* :doc:`nve/noforce <fix_nve_noforce>`
* :doc:`nve/sphere (ko) <fix_nve_sphere>`
* :doc:`nve/bpm/sphere <fix_nve_bpm_sphere>`
* :doc:`nve/spin <fix_nve_spin>`
* :doc:`nve/tri <fix_nve_tri>`
* :doc:`nvk <fix_nvk>`
@ -157,7 +162,6 @@ OPT.
* :doc:`orient/fcc <fix_orient>`
* :doc:`orient/eco <fix_orient_eco>`
* :doc:`pafi <fix_pafi>`
* :doc:`pair/tracker <fix_pair_tracker>`
* :doc:`phonon <fix_phonon>`
* :doc:`pimd <fix_pimd>`
* :doc:`planeforce <fix_planeforce>`
@ -242,6 +246,7 @@ OPT.
* :doc:`vector <fix_vector>`
* :doc:`viscosity <fix_viscosity>`
* :doc:`viscous <fix_viscous>`
* :doc:`viscous/sphere <fix_viscous_sphere>`
* :doc:`wall/body/polygon <fix_wall_body_polygon>`
* :doc:`wall/body/polyhedron <fix_wall_body_polyhedron>`
* :doc:`wall/colloid <fix_wall>`

View File

@ -27,6 +27,7 @@ OPT.
* :doc:`ewald/disp/dipole <kspace_style>`
* :doc:`ewald/dipole <kspace_style>`
* :doc:`ewald/dipole/spin <kspace_style>`
* :doc:`ewald/electrode <kspace_style>`
* :doc:`msm (o) <kspace_style>`
* :doc:`msm/cg (o) <kspace_style>`
* :doc:`msm/dielectric <kspace_style>`
@ -41,4 +42,5 @@ OPT.
* :doc:`pppm/stagger <kspace_style>`
* :doc:`pppm/tip4p (o) <kspace_style>`
* :doc:`pppm/dielectric <kspace_style>`
* :doc:`pppm/electrode (i) <kspace_style>`
* :doc:`scafacos <kspace_style>`

View File

@ -34,7 +34,7 @@ OPT.
*
*
*
* :doc:`adp (o) <pair_adp>`
* :doc:`adp (ko) <pair_adp>`
* :doc:`agni (o) <pair_agni>`
* :doc:`airebo (io) <pair_airebo>`
* :doc:`airebo/morse (io) <pair_airebo>`
@ -53,6 +53,7 @@ OPT.
* :doc:`born/coul/msm (o) <pair_born>`
* :doc:`born/coul/wolf (go) <pair_born>`
* :doc:`born/coul/wolf/cs (g) <pair_cs>`
* :doc:`bpm/spring <pair_bpm_spring>`
* :doc:`brownian (o) <pair_brownian>`
* :doc:`brownian/poly (o) <pair_brownian>`
* :doc:`buck (giko) <pair_buck>`
@ -88,12 +89,12 @@ OPT.
* :doc:`coul/tt <pair_coul_tt>`
* :doc:`coul/wolf (ko) <pair_coul>`
* :doc:`coul/wolf/cs <pair_cs>`
* :doc:`dpd (gio) <pair_dpd>`
* :doc:`dpd (giko) <pair_dpd>`
* :doc:`dpd/fdt <pair_dpd_fdt>`
* :doc:`dpd/ext <pair_dpd_ext>`
* :doc:`dpd/ext/tstat <pair_dpd_ext>`
* :doc:`dpd/ext (k) <pair_dpd_ext>`
* :doc:`dpd/ext/tstat (k) <pair_dpd_ext>`
* :doc:`dpd/fdt/energy (k) <pair_dpd_fdt>`
* :doc:`dpd/tstat (go) <pair_dpd>`
* :doc:`dpd/tstat (gko) <pair_dpd>`
* :doc:`dsmc <pair_dsmc>`
* :doc:`e3b <pair_e3b>`
* :doc:`drip <pair_drip>`
@ -119,10 +120,12 @@ OPT.
* :doc:`granular <pair_granular>`
* :doc:`gw <pair_gw>`
* :doc:`gw/zbl <pair_gw>`
* :doc:`harmonic/cut (o) <pair_harmonic_cut>`
* :doc:`hbond/dreiding/lj (o) <pair_hbond_dreiding>`
* :doc:`hbond/dreiding/morse (o) <pair_hbond_dreiding>`
* :doc:`hdnnp <pair_hdnnp>`
* :doc:`ilp/graphene/hbn <pair_ilp_graphene_hbn>`
* :doc:`ilp/graphene/hbn (t) <pair_ilp_graphene_hbn>`
* :doc:`ilp/tmd (t) <pair_ilp_tmd>`
* :doc:`kolmogorov/crespi/full <pair_kolmogorov_crespi_full>`
* :doc:`kolmogorov/crespi/z <pair_kolmogorov_crespi_z>`
* :doc:`lcbop <pair_lcbop>`
@ -149,7 +152,7 @@ OPT.
* :doc:`lj/cut/coul/cut/dielectric (o) <pair_dielectric>`
* :doc:`lj/cut/coul/cut/soft (o) <pair_fep_soft>`
* :doc:`lj/cut/coul/debye (gko) <pair_lj_cut_coul>`
* :doc:`lj/cut/coul/debye/dielectric <pair_dielectric>`
* :doc:`lj/cut/coul/debye/dielectric (o) <pair_dielectric>`
* :doc:`lj/cut/coul/dsf (gko) <pair_lj_cut_coul>`
* :doc:`lj/cut/coul/long (gikot) <pair_lj_cut_coul>`
* :doc:`lj/cut/coul/long/cs <pair_cs>`
@ -210,6 +213,7 @@ OPT.
* :doc:`nm/cut (o) <pair_nm>`
* :doc:`nm/cut/coul/cut (o) <pair_nm>`
* :doc:`nm/cut/coul/long (o) <pair_nm>`
* :doc:`nm/cut/split <pair_nm>`
* :doc:`oxdna/coaxstk <pair_oxdna>`
* :doc:`oxdna/excv <pair_oxdna>`
* :doc:`oxdna/hbond <pair_oxdna>`
@ -239,7 +243,10 @@ OPT.
* :doc:`reaxff (ko) <pair_reaxff>`
* :doc:`rebo (io) <pair_airebo>`
* :doc:`resquared (go) <pair_resquared>`
* :doc:`saip/metal (t) <pair_saip_metal>`
* :doc:`sdpd/taitwater/isothermal <pair_sdpd_taitwater_isothermal>`
* :doc:`smatb <pair_smatb>`
* :doc:`smatb/single <pair_smatb>`
* :doc:`smd/hertz <pair_smd_hertz>`
* :doc:`smd/tlsph <pair_smd_tlsph>`
* :doc:`smd/tri_surface <pair_smd_triangulated_surface>`
@ -262,6 +269,7 @@ OPT.
* :doc:`spin/neel <pair_spin_neel>`
* :doc:`srp <pair_srp>`
* :doc:`sw (giko) <pair_sw>`
* :doc:`sw/mod (o) <pair_sw>`
* :doc:`table (gko) <pair_table>`
* :doc:`table/rx (k) <pair_table_rx>`
* :doc:`tdpd <pair_mesodpd>`

View File

@ -11,11 +11,14 @@ of time and requests from the LAMMPS user community.
:maxdepth: 1
Developer_org
Developer_code_design
Developer_parallel
Developer_comm_ops
Developer_flow
Developer_write
Developer_notes
Developer_plugins
Developer_unittest
Classes
Developer_platform
Developer_utils

View File

@ -0,0 +1,433 @@
Code design
-----------
This section explains some of the code design choices in LAMMPS with
the goal of helping developers write new code similar to the existing
code. Please see the section on :doc:`Requirements for contributed
code <Modify_style>` for more specific recommendations and guidelines.
While that section is organized more in the form of a checklist for
code contributors, the focus here is on overall code design strategy,
choices made between possible alternatives, and discussing some
relevant C++ programming language constructs.
Historically, the basic design philosophy of the LAMMPS C++ code was a
"C with classes" style. The motivation was to make it easy to modify
LAMMPS for people without significant training in C++ programming.
Data structures and code constructs were used that resemble the
previous implementation(s) in Fortran. A contributing factor to this
choice also was that at the time, C++ compilers were often not mature
and some of the advanced features contained bugs or did not function
as the standard required. There were also disagreements between
compiler vendors as to how to interpret the C++ standard documents.
However, C++ compilers have now advanced significantly. In 2020 we
decided to to require the C++11 standard as the minimum C++ language
standard for LAMMPS. Since then we have begun to also replace some of
the C-style constructs with equivalent C++ functionality, either from
the C++ standard library or as custom classes or functions, in order
to improve readability of the code and to increase code reuse through
abstraction of commonly used functionality.
.. note::
Please note that as of spring 2022 there is still a sizable chunk
of legacy code in LAMMPS that has not yet been refactored to
reflect these style conventions in full. LAMMPS has a large code
base and many different contributors and there also is a hierarchy
of precedence in which the code is adapted. Highest priority has
been the code in the ``src`` folder, followed by code in packages
in order of their popularity and complexity (simpler code is
adapted sooner), followed by code in the ``lib`` folder. Source
code that is downloaded from external packages or libraries during
compilation is not subject to the conventions discussed here.
Object oriented code
^^^^^^^^^^^^^^^^^^^^
LAMMPS is designed to be an object oriented code. Each simulation is
represented by an instance of the LAMMPS class. When running in
parallel each MPI process creates such an instance. This can be seen
in the ``main.cpp`` file where the core steps of running a LAMMPS
simulation are the following 3 lines of code:
.. code-block:: C++
LAMMPS *lammps = new LAMMPS(argc, argv, lammps_comm);
lammps->input->file();
delete lammps;
The first line creates a LAMMPS class instance and passes the command
line arguments and the global communicator to its constructor. The
second line triggers the LAMMPS instance to process the input (either
from standard input or a provided input file) until the simulation
ends. The third line deletes the LAMMPS instance. The remainder of
the main.cpp file has code for error handling, MPI configuration, and
other special features.
The basic LAMMPS class hierarchy which is created by the LAMMPS class
constructor is shown in :ref:`class-topology`. When input commands
are processed, additional class instances are created, or deleted, or
replaced. Likewise specific member functions of specific classes are
called to trigger actions such creating atoms, computing forces,
computing properties, time-propagating the system, or writing output.
Compositing and Inheritance
===========================
LAMMPS makes extensive use of the object oriented programming (OOP)
principles of *compositing* and *inheritance*. Classes like the
``LAMMPS`` class are a **composite** containing pointers to instances
of other classes like ``Atom``, ``Comm``, ``Force``, ``Neighbor``,
``Modify``, and so on. Each of these classes implement certain
functionality by storing and manipulating data related to the
simulation and providing member functions that trigger certain
actions. Some of those classes like ``Force`` are themselves
composites, containing instances of classes describing different force
interactions. Similarly the ``Modify`` class contains a list of
``Fix`` and ``Compute`` classes. If the input commands that
correspond to these classes include the word *style*, then LAMMPS
stores only a single instance of that class. E.g. *atom_style*,
*comm_style*, *pair_style*, *bond_style*. It the input command does
not include the word *style*, there can be many instances of that
class defined. E.g. *region*, *fix*, *compute*, *dump*.
**Inheritance** enables creation of *derived* classes that can share
common functionality in their base class while providing a consistent
interface. The derived classes replace (dummy or pure) functions in
the base class. The higher level classes can then call those methods
of the instantiated classes without having to know which specific
derived class variant was instantiated. In LAMMPS these derived
classes are often referred to as "styles", e.g. pair styles, fix
styles, atom styles and so on.
This is the origin of the flexibility of LAMMPS. For example pair
styles implement a variety of different non-bonded interatomic
potentials functions. All details for the implementation of a
potential are stored and executed in a single class.
As mentioned above, there can be multiple instances of classes derived
from the ``Fix`` or ``Compute`` base classes. They represent a
different facet of LAMMPS flexibility as they provide methods which
can be called at different points in time within a timestep, as
explained in `Developer_flow`. This allows the input script to tailor
how a specific simulation is run, what diagnostic computations are
performed, and how the output of those computations is further
processed or output.
Additional code sharing is possible by creating derived classes from the
derived classes (e.g., to implement an accelerated version of a pair
style) where only a subset of the derived class methods are replaced
with accelerated versions.
Polymorphism
============
Polymorphism and dynamic dispatch are another OOP feature that play an
important role in how LAMMPS selects what code to execute. In a
nutshell, this is a mechanism where the decision of which member
function to call from a class is determined at runtime and not when
the code is compiled. To enable it, the function has to be declared
as ``virtual`` and all corresponding functions in derived classes
should use the ``override`` property. Below is a brief example.
.. code-block:: c++
class Base {
public:
virtual ~Base() = default;
void call();
void normal();
virtual void poly();
};
void Base::call() {
normal();
poly();
}
class Derived : public Base {
public:
~Derived() override = default;
void normal();
void poly() override;
};
// [....]
Base *base1 = new Base();
Base *base2 = new Derived();
base1->call();
base2->call();
The difference in behavior of the ``normal()`` and the ``poly()`` member
functions is which of the two member functions is called when executing
`base1->call()` versus `base2->call()`. Without polymorphism, a
function within the base class can only call member functions within the
same scope, that is ``Base::call()`` will always call
``Base::normal()``. But for the `base2->call()` case the call of the
virtual member function will be dispatched to ``Derived::poly()``
instead. This mechanism means that functions are called within the
scope of the class type that was used to *create* the class instance are
invoked; even if they are assigned to a pointer using the type of a base
class. This is the desired behavior and this way LAMMPS can even use
styles that are loaded at runtime from a shared object file with the
:doc:`plugin command <plugin>`.
A special case of virtual functions are so-called pure functions. These
are virtual functions that are initialized to 0 in the class declaration
(see example below).
.. code-block:: c++
class Base {
public:
virtual void pure() = 0;
};
This has the effect that an instance of the base class cannot be
created and that derived classes **must** implement these functions.
Many of the functions listed with the various class styles in the
section :doc:`Modify` are pure functions. The motivation for this is
to define the interface or API of the functions but defer their
implementation to the derived classes.
However, there are downsides to this. For example, calls to virtual
functions from within a constructor, will not be in the scope of the
derived class and thus it is good practice to either avoid calling them
or to provide an explicit scope such as ``Base::poly()`` or
``Derived::poly()``. Furthermore, any destructors in classes containing
virtual functions should be declared virtual too, so they will be
processed in the expected order before types are removed from dynamic
dispatch.
.. admonition:: Important Notes
In order to be able to detect incompatibilities at compile time and
to avoid unexpected behavior, it is crucial that all member functions
that are intended to replace a virtual or pure function use the
``override`` property keyword. For the same reason, the use of
overloads or default arguments for virtual functions should be
avoided as they lead to confusion over which function is supposed to
override which and which arguments need to be declared.
Style Factories
===============
In order to create class instances for different styles, LAMMPS often
uses a programming pattern called `Factory`. Those are functions that
create an instance of a specific derived class, say ``PairLJCut`` and
return a pointer to the type of the common base class of that style,
``Pair`` in this case. To associate the factory function with the
style keyword, an ``std::map`` class is used with function pointers
indexed by their keyword (for example "lj/cut" for ``PairLJCut`` and
"morse" for ``PairMorse``). A couple of typedefs help keep the code
readable and a template function is used to implement the actual
factory functions for the individual classes. Below is an example
of such a factory function from the ``Force`` class as declared in
``force.h`` and implemented in ``force.cpp``. The file ``style_pair.h``
is generated during compilation and includes all main header files
(i.e. those starting with ``pair_``) of pair styles and then the
macro ``PairStyle()`` will associate the style name "lj/cut"
with a factory function creating an instance of the ``PairLJCut``
class.
.. code-block:: C++
// from force.h
typedef Pair *(*PairCreator)(LAMMPS *);
typedef std::map<std::string, PairCreator> PairCreatorMap;
PairCreatorMap *pair_map;
// from force.cpp
template <typename S, typename T> static S *style_creator(LAMMPS *lmp)
{
return new T(lmp);
}
// [...]
pair_map = new PairCreatorMap();
#define PAIR_CLASS
#define PairStyle(key, Class) (*pair_map)[#key] = &style_creator<Pair, Class>;
#include "style_pair.h"
#undef PairStyle
#undef PAIR_CLASS
// from pair_lj_cut.h
#ifdef PAIR_CLASS
PairStyle(lj/cut,PairLJCut);
#else
// [...]
Similar code constructs are present in other files like ``modify.cpp`` and
``modify.h`` or ``neighbor.cpp`` and ``neighbor.h``. Those contain
similar macros and include ``style_*.h`` files for creating class instances
of styles they manage.
I/O and output formatting
^^^^^^^^^^^^^^^^^^^^^^^^^
C-style stdio versus C++ style iostreams
========================================
LAMMPS uses the "stdio" library of the standard C library for reading
from and writing to files and console instead of C++ "iostreams".
This is mainly motivated by better performance, better control over
formatting, and less effort to achieve specific formatting.
Since mixing "stdio" and "iostreams" can lead to unexpected
behavior. use of the latter is strongly discouraged. Also output to
the screen should not use the predefined ``stdout`` FILE pointer, but
rather the ``screen`` and ``logfile`` FILE pointers managed by the
LAMMPS class. Furthermore, output should generally only be done by
MPI rank 0 (``comm->me == 0``). Output that is sent to both
``screen`` and ``logfile`` should use the :cpp:func:`utils::logmesg()
convenience function <LAMMPS_NS::utils::logmesg>`.
We also discourage the use of stringstreams because the bundled {fmt}
library and the customized tokenizer classes can provide the same
functionality in a cleaner way with better performance. This also
helps maintain a consistent programming syntax with code from many
different contributors.
Formatting with the {fmt} library
===================================
The LAMMPS source code includes a copy of the `{fmt} library
<https://fmt.dev>`_ which is preferred over formatting with the
"printf()" family of functions. The primary reason is that it allows
a typesafe default format for any type of supported data. This is
particularly useful for formatting integers of a given size (32-bit or
64-bit) which may require different format strings depending on
compile time settings or compilers/operating systems. Furthermore,
{fmt} gives better performance, has more functionality, a familiar
formatting syntax that has similarities to ``format()`` in Python, and
provides a facility that can be used to integrate format strings and a
variable number of arguments into custom functions in a much simpler
way than the varargs mechanism of the C library. Finally, {fmt} has
been included into the C++20 language standard, so changes to adopt it
are future-proof.
Formatted strings are frequently created by calling the
``fmt::format()`` function which will return a string as a
``std::string`` class instance. In contrast to the ``%`` placeholder
in ``printf()``, the {fmt} library uses ``{}`` to embed format
descriptors. In the simplest case, no additional characters are
needed as {fmt} will choose the default format based on the data type
of the argument. Otherwise the ``fmt::print()`` function may be
used instead of ``printf()`` or ``fprintf()``. In addition, several
LAMMPS output functions, that originally accepted a single string as
argument have been overloaded to accept a format string with optional
arguments as well (e.g., ``Error::all()``, ``Error::one()``,
``utils::logmesg()``).
Summary of the {fmt} format syntax
==================================
The syntax of the format string is "{[<argument id>][:<format spec>]}",
where either the argument id or the format spec (separated by a colon
':') is optional. The argument id is usually a number starting from 0
that is the index to the arguments following the format string. By
default these are assigned in order (i.e. 0, 1, 2, 3, 4 etc.). The most
common case for using argument id would be to use the same argument in
multiple places in the format string without having to provide it as an
argument multiple times. In LAMMPS the argument id is rarely used.
More common is the use of a format specifier, which starts with a colon.
This may optionally be followed by a fill character (default is ' '). If
provided, the fill character **must** be followed by an alignment
character ('<', '^', '>' for left, centered, or right alignment
(default)). The alignment character may be used without a fill
character. The next important format parameter would be the minimum
width, which may be followed by a dot '.' and a precision for floating
point numbers. The final character in the format string would be an
indicator for the "presentation", i.e. 'd' for decimal presentation of
integers, 'x' for hexadecimal, 'o' for octal, 'c' for character etc.
This mostly follows the "printf()" scheme but without requiring an
additional length parameter to distinguish between different integer
widths. The {fmt} library will detect those and adapt the formatting
accordingly. For floating point numbers there are correspondingly, 'g'
for generic presentation, 'e' for exponential presentation, and 'f' for
fixed point presentation.
Thus "{:8}" would represent *any* type argument using at least 8
characters; "{:<8}" would do this as left aligned, "{:^8}" as centered,
"{:>8}" as right aligned. If a specific presentation is selected, the
argument type must be compatible or else the {fmt} formatting code will
throw an exception. Some format string examples are given below:
.. code-block:: C
auto mesg = fmt::format(" CPU time: {:4d}:{:02d}:{:02d}\n", cpuh, cpum, cpus);
mesg = fmt::format("{:<8s}| {:<10.5g} | {:<10.5g} | {:<10.5g} |{:6.1f} |{:6.2f}\n",
label, time_min, time, time_max, time_sq, tmp);
utils::logmesg(lmp,"{:>6} = max # of 1-2 neighbors\n",maxall);
utils::logmesg(lmp,"Lattice spacing in x,y,z = {:.8} {:.8} {:.8}\n",
xlattice,ylattice,zlattice);
which will create the following output lines:
.. parsed-literal::
CPU time: 0:02:16
Pair | 2.0133 | 2.0133 | 2.0133 | 0.0 | 84.21
4 = max # of 1-2 neighbors
Lattice spacing in x,y,z = 1.6795962 1.6795962 1.6795962
Finally, a special feature of the {fmt} library is that format
parameters like the width or the precision may be also provided as
arguments. In that case a nested format is used where a pair of curly
braces (with an optional argument id) "{}" are used instead of the
value, for example "{:{}d}" will consume two integer arguments, the
first will be the value shown and the second the minimum width.
For more details and examples, please consult the `{fmt} syntax
documentation <https://fmt.dev/latest/syntax.html>`_ website.
Memory management
^^^^^^^^^^^^^^^^^
Dynamical allocation of small data and objects can be done with the
the C++ commands "new" and "delete/delete[]. Large data should use
the member functions of the ``Memory`` class, most commonly,
``Memory::create()``, ``Memory::grow()``, and ``Memory::destroy()``,
which provide variants for vectors, 2d arrays, 3d arrays, etc.
These can also be used for small data.
The use of ``malloc()``, ``calloc()``, ``realloc()`` and ``free()``
directly is strongly discouraged. To simplify adapting legacy code
into the LAMMPS code base the member functions ``Memory::smalloc()``,
``Memory::srealloc()``, and ``Memory::sfree()`` are available, which
perform additional error checks for safety.
Use of these custom memory allocation functions is motivated by the
following considerations:
- memory allocation failures on *any* MPI rank during a parallel run
will trigger an immediate abort of the entire parallel calculation
instead of stalling it
- a failing "new" will trigger an exception which is also captured by
LAMMPS and triggers a global abort
- allocation of multi-dimensional arrays will be done in a C compatible
fashion but so that the storage of the actual data is stored in one
large contiguous block. Thus when MPI communication is needed,
the data can be communicated directly (similar to Fortran arrays).
- the "destroy()" and "sfree()" functions may safely be called on NULL
pointers
- the "destroy()" functions will nullify the pointer variables making
"use after free" errors easy to detect
- it is possible to use a larger than default memory alignment (not on
all operating systems, since the allocated storage pointers must be
compatible with ``free()`` for technical reasons)
In the practical implementation of code this means that any pointer
variables that are class members should be initialized to a
``nullptr`` value in their respective constructors. That way it is
safe to call ``Memory::destroy()`` or ``delete[]`` on them before
*any* allocation outside the constructor. This helps prevent memory
leaks.

View File

@ -0,0 +1,235 @@
Communication patterns
----------------------
This page describes various inter-processor communication operations
provided by LAMMPS, mostly in the core *Comm* class. These are operations
for common tasks implemented using MPI library calls. They are used by
other classes to perform communication of different kinds. These
operations are useful to know about when writing new code for LAMMPS
that needs to communicate data between processors.
Owned and ghost atoms
^^^^^^^^^^^^^^^^^^^^^
As described on the :doc:`parallel partitioning algorithms
<Developer_par_part>` page, LAMMPS spatially decomposes the simulation
domain, either in a *brick* or *tiled* manner. Each processor (MPI
task) owns atoms within its sub-domain and additionally stores ghost
atoms within a cutoff distance of its sub-domain.
Forward and reverse communication
=================================
As described on the :doc:`parallel communication algorithms
<Developer_par_comm>` page, the most common communication operations are
first, *forward communication* which sends owned atom information from
each processor to nearby processors to store with their ghost atoms.
The need to do this communication arises when data from the owned atoms
is updated (e.g. their positions) and this updated information needs to
be **copied** to the corresponding ghost atoms.
And second, *reverse communication* which sends ghost atom information
from each processor to the owning processor to **accumulate** (sum)
the values with the corresponding owned atoms. The need for this
arises when data is computed and also stored with ghost atoms
(e.g. forces when using a "half" neighbor list) and thus those terms
need to be added to their corresponding atoms on the process where
they are "owned" atoms. Please note, that with the :doc:`newton off
<newton>` setting this does not happen and the neighbor lists are
constructed so that these interactions are computed on both MPI
processes containing one of the atoms and only the data pertaining to
the local atom is stored.
The time-integration classes in LAMMPS invoke these operations each
timestep via the *forward_comm()* and *reverse_comm()* methods in the
*Comm* class. Which per-atom data is communicated depends on the
currently used :doc:`atom style <atom_style>` and whether
:doc:`comm_modify vel <comm_modify>` setting is "no" (default) or
"yes".
Similarly, *Pair* style classes can invoke the *forward_comm(this)*
and *reverse_comm(this)* methods in the *Comm* class to perform the
same operations on per-atom data that is generated and stored within
the pair style class. Note that this function requires passing the
``this`` pointer as the first argument to enable the *Comm* class to
call the "pack" and "unpack" functions discussed below. An example of
the use of these functions are many-body pair styles like the
embedded-atom method (EAM) which compute intermediate values in the
first part of the compute() function that need to be stored by both
owned and ghost atoms for the second part of the force computation.
The *Comm* class methods perform the MPI communication for buffers of
per-atom data. They "call back" to the *Pair* class so it can *pack*
or *unpack* the buffer with data the *Pair* class owns. There are 4
such methods that the *Pair* class must define, assuming it uses both
forward and reverse communication:
* pack_forward_comm()
* unpack_forward_comm()
* pack_reverse_comm()
* unpack_reverse_comm()
The arguments to these methods include the buffer and a list of atoms
to pack or unpack. The *Pair* class also must set the *comm_forward*
and *comm_reverse* variables which store the number of values stored
in the communication buffers for each operation. This means, if
desired, it can choose to store multiple per-atom values in the
buffer, and they will be communicated together to minimize
communication overhead. The communication buffers are defined vectors
containing ``double`` values. To correctly store integers that may be
64-bit (bigint, tagint, imageint) in the buffer, you need to use the
`ubuf union <Communication buffer coding with ubuf>`_ construct.
The *Fix*, *Compute*, and *Dump* classes can also invoke the same kind
of forward and reverse communication operations using the same *Comm*
class methods. Likewise the same pack/unpack methods and
comm_forward/comm_reverse variables must be defined by the calling
*Fix*, *Compute*, or *Dump* class.
For *Fix* classes there is an optional second argument to the
*forward_comm()* and *reverse_comm()* call which can be used when the
fix performs multiple modes of communication, with different numbers
of values per atom. The fix should set the *comm_forward* and
*comm_reverse* variables to the maximum value, but can invoke the
communication for a particular mode with a smaller value. For this
to work, the *pack_forward_comm()*, etc methods typically use a class
member variable to choose which values to pack/unpack into/from the
buffer.
Finally, for reverse communications in *Fix* classes there is also the
*reverse_comm_variable()* method that allows the communication to have
a different amount of data per-atom. It invokes these corresponding
callback methods:
* pack_reverse_comm_size()
* unpack_reverse_comm_size()
which have extra arguments to specify the amount of data stored
in the buffer for each atom.
Higher level communication
^^^^^^^^^^^^^^^^^^^^^^^^^^
There are also several higher-level communication operations provided
in LAMMPS which work for either *brick* or *tiled* decompositions.
They may be useful for a new class to invoke if it requires more
sophisticated communication than the *forward* and *reverse* methods
provide. The 3 communication operations described here are
* ring
* irregular
* rendezvous
You can invoke these *grep* command in the LAMMPS src directory, to
see a list of classes that invoke the 3 operations.
* ``grep "\->ring" *.cpp */*.cpp``
* ``grep "irregular\->" *.cpp``
* ``grep "\->rendezvous" *.cpp */*.cpp``
Ring operation
==============
The *ring* operation is invoked via the *ring()* method in the *Comm*
class.
Each processor first creates a buffer with a list of values, typically
associated with a subset of the atoms it owns. Now think of the *P*
processors as connected to each other in a *ring*. Each processor *M*
sends data to the next *M+1* processor. It receives data from the
preceding *M-1* processor. The ring is periodic so that the last
processor sends to the first processor, and the first processor
receives from the last processor.
Invoking the *ring()* method passes each processor's buffer in *P*
steps around the ring. At each step a *callback* method, provided as
an argument to ring(), in the caller is invoked. This allows each
processor to examine the data buffer provided by every other
processor. It may extract values needed by its atoms from the
buffers, or it may alter placeholder values in the buffer. In the
latter case, when the *ring* operation is complete, each processor can
examine its original buffer to extract modified values.
Note that the *ring* operation is similar to an MPI_Alltoall()
operation where every processor effectively sends and receives data to
every other processor. The difference is that the *ring* operation
does it one step at a time, so the total volume of data does not need
to be stored by every processor. However, the *ring* operation is
also less efficient than MPI_Alltoall() because of the *P* stages
required. So it is typically only suitable for small data buffers and
occasional operations that are not time-critical.
Irregular operation
===================
The *irregular* operation is provided by the *Irregular* class. What
LAMMPS terms irregular communication is when each processor knows what
data it needs to send to what processor, but does not know what
processors are sending it data. An example is when load-balancing is
performed and each processor needs to send some of its atoms to new
processors.
The *Irregular* class provides 5 high-level methods useful in this
context:
* create_data()
* exchange_data()
* create_atom()
* exchange_atom()
* migrate_atoms()
For the *create_data()* method, each processor specifies a list of *N*
datums to send, each to a specified processor. Internally, the method
creates efficient data structures for performing the communication.
The *exchange_data()* method triggers the communication to be
performed. Each processor provides the vector of *N* datums to send,
and the size of each datum. All datums must be the same size.
The *create_atom()* and *exchange_atom()* methods are similar except
that the size of each datum can be different. Typically this is used
to communicate atoms, each with a variable amount of per-atom data, to
other processors.
The *migrate_atoms()* method is a convenience wrapper on the
*create_atom()* and *exchange_atom()* methods to simplify
communication of all the per-atom data associated with an atom so that
the atom can effectively migrate to a new owning processor. It is
similar to the *exchange()* method in the *Comm* class invoked when
atoms move to neighboring processors (in the regular or tiled
decomposition) during timestepping, except that it allows atoms to
have moved arbitrarily long distances and still be properly
communicated to a new owning processor.
Rendezvous operation
====================
Finally, the *rendezvous* operation is invoked via the *rendezvous()*
method in the *Comm* class. Depending on how much communication is
needed and how many processors a LAMMPS simulation is running on, it
can be a much more efficient choice than the *ring()* method. It uses
the *irregular* operation internally once or twice to do its
communication. The rendezvous algorithm is described in detail in
:ref:`(Plimpton) <Plimpton>`, including some LAMMPS use cases.
For the *rendezvous()* method, each processor specifies a list of *N*
datums to send and which processor to send each of them to.
Internally, this communication is performed as an irregular operation.
The received datums are returned to the caller via invocation of
*callback* function, provided as an argument to *rendezvous()*. The
caller can then process the received datums and (optionally) assemble
a new list of datums to communicate to a new list of specific
processors. When the callback function exits, the *rendezvous()*
method performs a second irregular communication on the new list of
datums.
Examples in LAMMPS of use of the *rendezvous* operation are the
:doc:`fix rigid/small <fix_rigid>` and :doc:`fix shake
<fix_shake>` commands (for one-time identification of the rigid body
atom clusters) and the identification of special_bond 1-2, 1-3 and 1-4
neighbors within molecules. See the :doc:`special_bonds <special_bonds>`
command for context.
----------
.. _Plimpton:
**(Plimpton)** Plimpton and Knight, JPDC, 147, 184-195 (2021).

View File

@ -7,6 +7,215 @@ typically document what a variable stores, what a small section of
code does, or what a function does and its input/outputs. The topics
on this page are intended to document code functionality at a higher level.
Available topics are:
- `Reading and parsing of text and text files`_
- `Requesting and accessing neighbor lists`_
- `Fix contributions to instantaneous energy, virial, and cumulative energy`_
- `KSpace PPPM FFT grids`_
----
Reading and parsing of text and text files
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
It is frequently required for a class in LAMMPS to read in additional
data from a file, e.g. potential parameters from a potential file for
manybody potentials. LAMMPS provides several custom classes and
convenience functions to simplify the process. They offer the
following benefits:
- better code reuse and fewer lines of code needed to implement reading
and parsing data from a file
- better detection of format errors, incompatible data, and better error messages
- exit with an error message instead of silently converting only part of the
text to a number or returning a 0 on unrecognized text and thus reading incorrect values
- re-entrant code through avoiding global static variables (as used by ``strtok()``)
- transparent support for translating unsupported UTF-8 characters to their ASCII equivalents
(the text-to-value conversion functions **only** accept ASCII characters)
In most cases (e.g. potential files) the same data is needed on all MPI
ranks. Then it is best to do the reading and parsing only on MPI rank
0, and communicate the data later with one or more ``MPI_Bcast()``
calls. For reading generic text and potential parameter files the
custom classes :cpp:class:`TextFileReader <LAMMPS_NS::TextFileReader>`
and :cpp:class:`PotentialFileReader <LAMMPS_NS::PotentialFileReader>`
are available. They allow reading the file as individual lines for which
they can return a tokenizer class (see below) for parsing the line. Or
they can return blocks of numbers as a vector directly. The
documentation on :ref:`File reader classes <file-reader-classes>`
contains an example for a typical case.
When reading per-atom data, the data on each line of the file usually
needs to include an atom ID so it can be associated with a particular
atom. In that case the data can be read in multi-line chunks and
broadcast to all MPI ranks with
:cpp:func:`utils::read_lines_from_file()
<LAMMPS_NS::utils::read_lines_from_file>`. Those chunks are then
split into lines, parsed, and applied only to atoms the MPI rank
"owns".
For splitting a string (incrementally) into words and optionally
converting those to numbers, the :cpp:class:`Tokenizer
<LAMMPS_NS::Tokenizer>` and :cpp:class:`ValueTokenizer
<LAMMPS_NS::ValueTokenizer>` can be used. Those provide a superset of
the functionality of ``strtok()`` from the C-library and the latter
also includes conversion to different types. Any errors while
processing the string in those classes will result in an exception,
which can be caught and the error processed as needed. Unlike the
C-library functions ``atoi()``, ``atof()``, ``strtol()``, or
``strtod()`` the conversion will check if the converted text is a
valid integer or floating point number and will not silently return an
unexpected or incorrect value. For example, ``atoi()`` will return 12
when converting "12.5", while the ValueTokenizer class will throw an
:cpp:class:`InvalidIntegerException
<LAMMPS_NS::InvalidIntegerException>` if
:cpp:func:`ValueTokenizer::next_int()
<LAMMPS_NS::ValueTokenizer::next_int>` is called on the same string.
Requesting and accessing neighbor lists
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
LAMMPS uses Verlet-style neighbor lists to avoid having to loop over
*all* pairs of *all* atoms when computing pairwise properties with a
cutoff (e.g. pairwise forces or radial distribution functions). There
are three main algorithms that can be selected by the :doc:`neighbor
command <neighbor>`: `bin` (the default, uses binning to achieve linear
scaling with system size), `nsq` (without binning, quadratic scaling),
`multi` (with binning, optimized for varying cutoffs or polydisperse
granular particles). In addition to how the neighbor lists are
constructed a number of different variants of neighbor lists need to be
created (e.g. "full" or "half") for different purposes and styles and
those may be required in every time step ("perpetual") or on some steps
("occasional").
The neighbor list creation is managed by the ``Neighbor`` class.
Individual classes can obtain a neighbor list by creating an instance of
a ``NeighRequest`` class which is stored in a list inside the
``Neighbor`` class. The ``Neighbor`` class will then analyze the
various requests and apply optimizations where neighbor lists that have
the same settings will be created only once and then copied, or a list
may be constructed by processing a neighbor list from a different
request that is a superset of the requested list. The neighbor list
build is then :doc:`processed in parallel <Developer_par_neigh>`.
The most commonly required neighbor list is a so-called "half" neighbor
list, where each pair of atoms is listed only once (except when the
:doc:`newton command setting <newton>` for pair is off; in that case
pairs straddling sub-domains or periodic boundaries will be listed twice).
Thus these are the default settings when a neighbor list request is created in:
.. code-block:: C++
void Pair::init_style()
{
neighbor->add_request(this);
}
void Pair::init_list(int /*id*/, NeighList *ptr)
{
list = ptr;
}
The ``this`` pointer argument is required so the neighbor list code can
access the requesting class instance to store the assembled neighbor
list with that instance by calling its ``init_list()`` member function.
The optional second argument (omitted here) contains a bitmask of flags
that determines the kind of neighbor list requested. The default value
used here asks for a perpetual "half" neighbor list.
Non-default values of the second argument need to be used to adjust a
neighbor list request to the specific needs of a style an additional
request flag is needed. The :doc:`tersoff <pair_tersoff>` pair style,
for example, needs a "full" neighbor list:
.. code-block:: C++
void PairTersoff::init_style()
{
// [...]
neighbor->add_request(this, NeighConst::REQ_FULL);
}
When a pair style supports r-RESPA time integration with different cutoff regions,
the request flag may depend on the corresponding r-RESPA settings. Here an example
from pair style lj/cut:
.. code-block:: C++
void PairLJCut::init_style()
{
int list_style = NeighConst::REQ_DEFAULT;
if (update->whichflag == 1 && utils::strmatch(update->integrate_style, "^respa")) {
auto respa = (Respa *) update->integrate;
if (respa->level_inner >= 0) list_style = NeighConst::REQ_RESPA_INOUT;
if (respa->level_middle >= 0) list_style = NeighConst::REQ_RESPA_ALL;
}
neighbor->add_request(this, list_style);
// [...]
}
Granular pair styles need neighbor lists based on particle sizes and not cutoff
and also may require to have the list of previous neighbors available ("history").
For example with:
.. code-block:: C++
if (use_history) neighbor->add_request(this, NeighConst::REQ_SIZE | NeighConst::REQ_HISTORY);
else neighbor->add_request(this, NeighConst::REQ_SIZE);
In case a class would need to make multiple neighbor list requests with different
settings each request can set an id which is then used in the corresponding
``init_list()`` function to assign it to the suitable pointer variable. This is
done for example by the :doc:`pair style meam <pair_meam>`:
.. code-block:: C++
void PairMEAM::init_style()
{
// [...]
neighbor->add_request(this, NeighConst::REQ_FULL)->set_id(1);
neighbor->add_request(this)->set_id(2);
}
void PairMEAM::init_list(int id, NeighList *ptr)
{
if (id == 1) listfull = ptr;
else if (id == 2) listhalf = ptr;
}
Fixes may require a neighbor list that is only build occasionally (or
just once) and this can also be indicated by a flag. As an example here
is the request from the ``FixPeriNeigh`` class which is created
internally by :doc:`Peridynamics pair styles <pair_peri>`:
.. code-block:: C++
neighbor->add_request(this, NeighConst::REQ_FULL | NeighConst::REQ_OCCASIONAL);
It is also possible to request a neighbor list that uses a different cutoff
than what is usually inferred from the pair style settings (largest cutoff of
all pair styles plus neighbor list skin). The following is used in the
:doc:`compute rdf <compute_rdf>` command implementation:
.. code-block:: C++
if (cutflag)
neighbor->add_request(this, NeighConst::REQ_OCCASIONAL)->set_cutoff(mycutneigh);
else
neighbor->add_request(this, NeighConst::REQ_OCCASIONAL);
The neighbor list request function has a slightly different set of arguments
when created by a command style. In this case the neighbor list is
*always* an occasional neighbor list, so that flag is not needed. However
for printing the neighbor list summary the name of the requesting command
should be set. Below is the request from the :doc:`delete atoms <delete_atoms>`
command:
.. code-block:: C++
neighbor->add_request(this, "delete_atoms", NeighConst::REQ_FULL);
Fix contributions to instantaneous energy, virial, and cumulative energy
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -225,7 +225,7 @@ follows:
commands in an input script.
- The Force class computes various forces between atoms. The Pair
parent class is for non-bonded or pair-wise forces, which in LAMMPS
parent class is for non-bonded or pairwise forces, which in LAMMPS
also includes many-body forces such as the Tersoff 3-body potential if
those are computed by walking pairwise neighbor lists. The Bond,
Angle, Dihedral, Improper parent classes are styles for bonded
@ -252,12 +252,6 @@ follows:
- The Timer class logs timing information, output at the end
of a run.
.. TODO section on "Spatial decomposition and parallel operations"
.. diagram of 3d processor grid, brick vs. tiled. local vs. ghost
.. atoms, 6-way communication with pack/unpack functions,
.. PBC as part of the communication, forward and reverse communication
.. rendezvous communication, ring communication.
.. TODO section on "Fixes, Computes, and Variables"
.. how and when data is computed and provided and how it is
.. referenced. flags in Fix/Compute/Variable classes tell

View File

@ -0,0 +1,155 @@
Platform abstraction functions
------------------------------
The ``platform`` sub-namespace inside the ``LAMMPS_NS`` namespace
provides a collection of wrapper and convenience functions and utilities
that perform common tasks for which platform specific code would be
required or for which a more high-level abstraction would be convenient
and reduce duplicated code. This reduces redundant implementations and
encourages consistent behavior and thus has some overlap with the
:doc:`"utils" sub-namespace <Developer_utils>`.
Time functions
^^^^^^^^^^^^^^
.. doxygenfunction:: cputime
:project: progguide
.. doxygenfunction:: walltime
:project: progguide
.. doxygenfunction:: usleep
:project: progguide
Platform information functions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. doxygenfunction:: os_info
:project: progguide
.. doxygenfunction:: compiler_info
:project: progguide
.. doxygenfunction:: cxx_standard
:project: progguide
.. doxygenfunction:: openmp_standard
:project: progguide
.. doxygenfunction:: mpi_vendor
:project: progguide
.. doxygenfunction:: mpi_info
:project: progguide
.. doxygenfunction:: compress_info
:project: progguide
File and path functions and global constants
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. doxygenvariable:: filepathsep
:project: progguide
.. doxygenvariable:: pathvarsep
:project: progguide
.. doxygenfunction:: guesspath
:project: progguide
.. doxygenfunction:: path_basename
:project: progguide
.. doxygenfunction:: path_join
:project: progguide
.. doxygenfunction:: file_is_readable
:project: progguide
.. doxygenfunction:: is_console
:project: progguide
.. doxygenfunction:: path_is_directory
:project: progguide
.. doxygenfunction:: current_directory
:project: progguide
.. doxygenfunction:: list_directory
:project: progguide
.. doxygenfunction:: chdir
:project: progguide
.. doxygenfunction:: mkdir
:project: progguide
.. doxygenfunction:: rmdir
:project: progguide
.. doxygenfunction:: unlink
:project: progguide
Standard I/O function wrappers
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. doxygenvariable:: END_OF_FILE
:project: progguide
.. doxygenfunction:: ftell
:project: progguide
.. doxygenfunction:: fseek
:project: progguide
.. doxygenfunction:: ftruncate
:project: progguide
.. doxygenfunction:: popen
:project: progguide
.. doxygenfunction:: pclose
:project: progguide
Environment variable functions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. doxygenfunction:: putenv
:project: progguide
.. doxygenfunction:: unsetenv
:project: progguide
.. doxygenfunction:: list_pathenv
:project: progguide
.. doxygenfunction:: find_exe_path
:project: progguide
Dynamically loaded object or library functions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. doxygenfunction:: dlopen
:project: progguide
.. doxygenfunction:: dlclose
:project: progguide
.. doxygenfunction:: dlsym
:project: progguide
.. doxygenfunction:: dlerror
:project: progguide
Compressed file I/O functions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. doxygenfunction:: has_compress_extension
:project: progguide
.. doxygenfunction:: compressed_read
:project: progguide
.. doxygenfunction:: compressed_write
:project: progguide

View File

@ -8,11 +8,20 @@ without recompiling LAMMPS. The functionality for this and the
Plugins use the operating system's capability to load dynamic shared
object (DSO) files in a way similar shared libraries and then reference
specific functions in those DSOs. Any DSO file with plugins has to include
an initialization function with a specific name, "lammpsplugin_init", that
has to follow specific rules described below. When loading the DSO with
the "plugin" command, this function is looked up and called and will then
register the contained plugin(s) with LAMMPS.
specific functions in those DSOs. Any DSO file with plugins has to
include an initialization function with a specific name,
"lammpsplugin_init", that has to follow specific rules described below.
When loading the DSO with the "plugin" command, this function is looked
up and called and will then register the contained plugin(s) with
LAMMPS.
When the environment variable ``LAMMPS_PLUGIN_PATH`` is set, then LAMMPS
will search the directory (or directories) listed in this path for files
with names that end in ``plugin.so`` (e.g. ``helloplugin.so``) and will
try to load the contained plugins automatically at start-up. For
plugins that are loaded this way, the behavior of LAMMPS should be
identical to a binary where the corresponding code was compiled in
statically as a package.
From the programmer perspective this can work because of the object
oriented design of LAMMPS where all pair style commands are derived from
@ -59,25 +68,24 @@ Members of ``lammpsplugin_t``
* - author
- String with the name and email of the author
* - creator.v1
- Pointer to factory function for pair, bond, angle, dihedral, improper or command styles
- Pointer to factory function for pair, bond, angle, dihedral, improper, kspace, or command styles
* - creator.v2
- Pointer to factory function for compute, fix, or region styles
* - handle
- Pointer to the open DSO file handle
Only one of the three alternate creator entries can be used at a time
and which of those is determined by the style of plugin. The
"creator.v1" element is for factory functions of supported styles
computing forces (i.e. command, pair, bond, angle, dihedral, or
improper styles) and the function takes as single argument the pointer
to the LAMMPS instance. The factory function is cast to the
``lammpsplugin_factory1`` type before assignment. The "creator.v2"
element is for factory functions creating an instance of a fix, compute,
or region style and takes three arguments: a pointer to the LAMMPS
instance, an integer with the length of the argument list and a ``char
**`` pointer to the list of arguments. The factory function pointer
needs to be cast to the ``lammpsplugin_factory2`` type before
assignment.
Only one of the two alternate creator entries can be used at a time and
which of those is determined by the style of plugin. The "creator.v1"
element is for factory functions of supported styles computing forces
(i.e. pair, bond, angle, dihedral, or improper styles) or command styles
and the function takes as single argument the pointer to the LAMMPS
instance. The factory function is cast to the ``lammpsplugin_factory1``
type before assignment. The "creator.v2" element is for factory
functions creating an instance of a fix, compute, or region style and
takes three arguments: a pointer to the LAMMPS instance, an integer with
the length of the argument list and a ``char **`` pointer to the list of
arguments. The factory function pointer needs to be cast to the
``lammpsplugin_factory2`` type before assignment.
Pair style example
^^^^^^^^^^^^^^^^^^
@ -249,3 +257,29 @@ by ``#ifdef PAIR_CLASS`` is not needed, since the mapping of the class
name to the style name is done by the plugin registration function with
the information from the ``lammpsplugin_t`` struct. It may be included
in case the new code is intended to be later included in LAMMPS directly.
A plugin may be registered under an existing style name. In that case
the plugin will override the existing code. This can be used to modify
the behavior of existing styles or to debug new versions of them without
having to re-compile or re-install all of LAMMPS.
Compiling plugins
^^^^^^^^^^^^^^^^^
Plugins need to be compiled with the same compilers and libraries
(e.g. MPI) and compilation settings (MPI on/off, OpenMP, integer sizes)
as the LAMMPS executable and library. Otherwise the plugin will likely
not load due to mismatches in the function signatures (LAMMPS is C++ so
scope, type, and number of arguments are encoded into the symbol names
and thus differences in them will lead to failed plugin load commands.
Compilation of the plugin can be managed via both, CMake or traditional
GNU makefiles. Some examples that can be used as a template are in the
``examples/plugins`` folder. The CMake script code has some small
adjustments to allow building the plugins for running unit tests with
them. Another example that converts the KIM package into a plugin can be
found in the ``examples/kim/plugin`` folder. No changes to the sources
of the KIM package themselves are needed; only the plugin interface and
loader code needs to be added. This example only supports building with
CMake, but is probably a more typical example. To compile you need to
run CMake with -DLAMMPS_SOURCE_DIR=<path/to/lammps/src/folder>. Other
configuration setting are identical to those for compiling LAMMPS.

View File

@ -7,7 +7,9 @@ a collection of convenience functions and utilities that perform common
tasks that are required repeatedly throughout the LAMMPS code like
reading or writing to files with error checking or translation of
strings into specific types of numbers with checking for validity. This
reduces redundant implementations and encourages consistent behavior.
reduces redundant implementations and encourages consistent behavior and
thus has some overlap with the :doc:`"platform" sub-namespace
<Developer_platform>`.
I/O with status check and similar functions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -19,18 +21,21 @@ In that case, the functions will stop with an error message, indicating
the name of the problematic file, if possible unless the *error* argument
is a NULL pointer.
The :cpp:func:`fgets_trunc` function will work similar for ``fgets()``
but it will read in a whole line (i.e. until the end of line or end
of file), but store only as many characters as will fit into the buffer
including a final newline character and the terminating NULL byte.
If the line in the file is longer it will thus be truncated in the buffer.
This function is used by :cpp:func:`read_lines_from_file` to read individual
lines but make certain they follow the size constraints.
The :cpp:func:`utils::fgets_trunc() <LAMMPS_NS::utils::fgets_trunc>`
function will work similar for ``fgets()`` but it will read in a whole
line (i.e. until the end of line or end of file), but store only as many
characters as will fit into the buffer including a final newline
character and the terminating NULL byte. If the line in the file is
longer it will thus be truncated in the buffer. This function is used
by :cpp:func:`utils::read_lines_from_file()
<LAMMPS_NS::utils::read_lines_from_file>` to read individual lines but
make certain they follow the size constraints.
The :cpp:func:`read_lines_from_file` function will read the requested
number of lines of a maximum length into a buffer and will return 0
if successful or 1 if not. It also guarantees that all lines are
terminated with a newline character and the entire buffer with a
The :cpp:func:`utils::read_lines_from_file()
<LAMMPS_NS::utils::read_lines_from_file>` function will read the
requested number of lines of a maximum length into a buffer and will
return 0 if successful or 1 if not. It also guarantees that all lines
are terminated with a newline character and the entire buffer with a
NULL character.
----------
@ -54,33 +59,54 @@ String to number conversions with validity check
These functions should be used to convert strings to numbers. They are
are strongly preferred over C library calls like ``atoi()`` or
``atof()`` since they check if the **entire** provided string is a valid
``atof()`` since they check if the **entire** string is a valid
(floating-point or integer) number, and will error out instead of
silently returning the result of a partial conversion or zero in cases
where the string is not a valid number. This behavior allows to more
easily detect typos or issues when processing input files.
where the string is not a valid number. This behavior improves
detecting typos or issues when processing input files.
Similarly the :cpp:func:`utils::logical() <LAMMPS_NS::utils::logical>` function
will convert a string into a boolean and will only accept certain words.
The *do_abort* flag should be set to ``true`` in case this function
is called only on a single MPI rank, as that will then trigger the
a call to ``Error::one()`` for errors instead of ``Error::all()``
and avoids a "hanging" calculation when run in parallel.
Please also see :cpp:func:`is_integer() <LAMMPS_NS::utils::is_integer>`
and :cpp:func:`is_double() <LAMMPS_NS::utils::is_double>` for testing
Please also see :cpp:func:`utils::is_integer() <LAMMPS_NS::utils::is_integer>`
and :cpp:func:`utils::is_double() <LAMMPS_NS::utils::is_double>` for testing
strings for compliance without conversion.
----------
.. doxygenfunction:: numeric
.. doxygenfunction:: numeric(const char *file, int line, const std::string &str, bool do_abort, LAMMPS *lmp)
:project: progguide
.. doxygenfunction:: inumeric
.. doxygenfunction:: numeric(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp)
:project: progguide
.. doxygenfunction:: bnumeric
.. doxygenfunction:: inumeric(const char *file, int line, const std::string &str, bool do_abort, LAMMPS *lmp)
:project: progguide
.. doxygenfunction:: tnumeric
.. doxygenfunction:: inumeric(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp)
:project: progguide
.. doxygenfunction:: bnumeric(const char *file, int line, const std::string &str, bool do_abort, LAMMPS *lmp)
:project: progguide
.. doxygenfunction:: bnumeric(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp)
:project: progguide
.. doxygenfunction:: tnumeric(const char *file, int line, const std::string &str, bool do_abort, LAMMPS *lmp)
:project: progguide
.. doxygenfunction:: tnumeric(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp)
:project: progguide
.. doxygenfunction:: logical(const char *file, int line, const std::string &str, bool do_abort, LAMMPS *lmp)
:project: progguide
.. doxygenfunction:: logical(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp)
:project: progguide
@ -95,12 +121,21 @@ and parsing files or arguments.
.. doxygenfunction:: strdup
:project: progguide
.. doxygenfunction:: lowercase
:project: progguide
.. doxygenfunction:: uppercase
:project: progguide
.. doxygenfunction:: trim
:project: progguide
.. doxygenfunction:: trim_comment
:project: progguide
.. doxygenfunction:: star_subst
:project: progguide
.. doxygenfunction:: has_utf8
:project: progguide
@ -137,21 +172,6 @@ and parsing files or arguments.
.. doxygenfunction:: is_double
:project: progguide
File and path functions
^^^^^^^^^^^^^^^^^^^^^^^^^
.. doxygenfunction:: guesspath
:project: progguide
.. doxygenfunction:: path_basename
:project: progguide
.. doxygenfunction:: path_join
:project: progguide
.. doxygenfunction:: file_is_readable
:project: progguide
Potential file functions
^^^^^^^^^^^^^^^^^^^^^^^^
@ -191,6 +211,15 @@ Convenience functions
.. doxygenfunction:: logmesg(LAMMPS *lmp, const std::string &mesg)
:project: progguide
.. doxygenfunction:: errorurl
:project: progguide
.. doxygenfunction:: missing_cmd_args
:project: progguide
.. doxygenfunction:: flush_buffers(LAMMPS *lmp)
:project: progguide
.. doxygenfunction:: getsyserror
:project: progguide
@ -217,6 +246,44 @@ Customized standard functions
---------------------------
Special Math functions
----------------------
The ``MathSpecial`` namespace implements a selection of custom and optimized
mathematical functions for a variety of applications.
.. doxygenfunction:: factorial
:project: progguide
.. doxygenfunction:: exp2_x86
:project: progguide
.. doxygenfunction:: fm_exp
:project: progguide
.. doxygenfunction:: my_erfcx
:project: progguide
.. doxygenfunction:: expmsq
:project: progguide
.. doxygenfunction:: square
:project: progguide
.. doxygenfunction:: cube
:project: progguide
.. doxygenfunction:: powsign
:project: progguide
.. doxygenfunction:: powint
:project: progguide
.. doxygenfunction:: powsinxx
:project: progguide
---------------------------
Tokenizer classes
-----------------
@ -323,11 +390,11 @@ This code example should produce the following output:
.. doxygenclass:: LAMMPS_NS::InvalidIntegerException
:project: progguide
:members: what
:members:
.. doxygenclass:: LAMMPS_NS::InvalidFloatException
:project: progguide
:members: what
:members:
----------
@ -376,21 +443,26 @@ A typical code segment would look like this:
----------
.. _file-reader-classes:
File reader classes
-------------------
The purpose of the file reader classes is to simplify the recurring task
of reading and parsing files. They can use the
:cpp:class:`LAMMPS_NS::ValueTokenizer` class to process the read in
text. The :cpp:class:`LAMMPS_NS::TextFileReader` is a more general
version while :cpp:class:`LAMMPS_NS::PotentialFileReader` is specialized
to implement the behavior expected for looking up and reading/parsing
files with potential parameters in LAMMPS. The potential file reader
class requires a LAMMPS instance, requires to be run on MPI rank 0 only,
will use the :cpp:func:`LAMMPS_NS::utils::get_potential_file_path`
function to look up and open the file, and will call the
:cpp:class:`LAMMPS_NS::Error` class in case of failures to read or to
convert numbers, so that LAMMPS will be aborted.
:cpp:class:`ValueTokenizer <LAMMPS_NS::ValueTokenizer>` class to process
the read in text. The :cpp:class:`TextFileReader
<LAMMPS_NS::TextFileReader>` is a more general version while
:cpp:class:`PotentialFileReader <LAMMPS_NS::PotentialFileReader>` is
specialized to implement the behavior expected for looking up and
reading/parsing files with potential parameters in LAMMPS. The
potential file reader class requires a LAMMPS instance, requires to be
run on MPI rank 0 only, will use the
:cpp:func:`utils::get_potential_file_path
<LAMMPS_NS::utils::get_potential_file_path>` function to look up and
open the file, and will call the :cpp:class:`LAMMPS_NS::Error` class in
case of failures to read or to convert numbers, so that LAMMPS will be
aborted.
.. code-block:: C++
:caption: Use of PotentialFileReader class in pair style coul/streitz
@ -465,10 +537,10 @@ provided, as that is used to determine whether a new page of memory
must be used.
The :cpp:class:`MyPage <LAMMPS_NS::MyPage>` class offers two ways to
reserve a chunk: 1) with :cpp:func:`get() <LAMMPS_NS::MyPage::get>` the
chunk size needs to be known in advance, 2) with :cpp:func:`vget()
reserve a chunk: 1) with :cpp:func:`MyPage::get() <LAMMPS_NS::MyPage::get>` the
chunk size needs to be known in advance, 2) with :cpp:func:`MyPage::vget()
<LAMMPS_NS::MyPage::vget>` a pointer to the next chunk is returned, but
its size is registered later with :cpp:func:`vgot()
its size is registered later with :cpp:func:`MyPage::vgot()
<LAMMPS_NS::MyPage::vgot>`.
.. code-block:: C++
@ -571,4 +643,3 @@ the communication buffers.
.. doxygenunion:: LAMMPS_NS::ubuf
:project: progguide

View File

@ -29,7 +29,9 @@ of code in the header before include guards:
.. code-block:: c
#ifdef FIX_CLASS
FixStyle(print/vel,FixPrintVel)
// clang-format off
FixStyle(print/vel,FixPrintVel);
// clang-format on
#else
/* the definition of the FixPrintVel class comes here */
...
@ -53,7 +55,7 @@ of each timestep. First of all, implement a constructor:
if (narg < 4)
error->all(FLERR,"Illegal fix print/vel command");
nevery = force->inumeric(FLERR,arg[3]);
nevery = utils::inumeric(FLERR,arg[3],false,lmp);
if (nevery <= 0)
error->all(FLERR,"Illegal fix print/vel command");
}

View File

@ -11,6 +11,7 @@ them.
:maxdepth: 1
Errors_common
Errors_details
Errors_bugs
Errors_debug
Errors_messages

View File

@ -17,9 +17,8 @@ the steps outlined below:
if your issue has already been reported and if it is still open.
* Check the `GitHub Pull Requests page <https://github.com/lammps/lammps/pulls>`_
to see if there is already a fix for your bug pending.
* Check the `mailing list archives <https://www.lammps.org/mail.html>`_ or
the `LAMMPS forum <https://www.lammps.org/forum.html>`_ to see if the
issue has been discussed before.
* Check the `LAMMPS forum at MatSci <https://matsci.org/lammps/>`_
to see if the issue has been discussed before.
If none of these steps yields any useful information, please file a new
bug report on the `GitHub Issue page <https://github.com/lammps/lammps/issues>`_.
@ -38,12 +37,9 @@ generate this restart from a data file or a simple additional input.
This input deck can be used with tools like a debugger or `valgrind
<https://valgrind.org>`_ to further :doc:`debug the crash <Errors_debug>`.
You may also send an email to the LAMMPS mailing list at
"lammps-users at lists.sourceforge.net" describing the problem with the
same kind of information. The mailing list can provide a faster response,
especially if the bug reported is actually expected behavior. But because
of the high volume of the mailing list, it can happen that your e-mail
is overlooked and then forgotten. Issues on GitHub have to be explicitly
closed, so that will *guarantee* that at least one LAMMPS developer will
have looked at it.
You may also post a message in the `development category of the LAMMPS
forum at MatSci <https://matsci.org/c/lammps/lammps-development/>`_
describing the problem with the same kind of information. The forum can
provide a faster response, especially if the bug reported is actually
expected behavior or other LAMMPS users have come across it before.

View File

@ -0,0 +1,27 @@
Error and warning details
=========================
Many errors or warnings are self-explanatory and thus straightforward to
resolve. However, there are also cases, where there is no single cause
and explanation, where LAMMPS can only detect symptoms of an error but
not the exact cause, or where the explanation needs to be more detailed than
what can be fit into a message printed by the program. The following are
discussions of such cases.
.. _err0001:
Unknown identifier in data file
-------------------------------
This error happens when LAMMPS encounters a line of text in an unexpected format
while reading a data file. This is most commonly cause by inconsistent header and
section data. The header section informs LAMMPS how many entries or lines are expected in the
various sections (like Atoms, Masses, Pair Coeffs, *etc.*\ ) of the data file.
If there is a mismatch, LAMMPS will either keep reading beyond the end of a section
or stop reading before the section has ended.
Such a mismatch can happen unexpectedly when the first line of the data
is *not* a comment as required by the format. That would result in
LAMMPS expecting, for instance, 0 atoms because the "atoms" header line
is treated as a comment.

View File

@ -1941,6 +1941,9 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
*Compute ID for fix numdiff does not exist*
Self-explanatory.
*Compute ID for fix numdiff/virial does not exist*
Self-explanatory.
*Compute ID for fix store/state does not exist*
Self-explanatory.
@ -3796,6 +3799,10 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
Self-explanatory. Efficient loop over all atoms for numerical
difference requires consecutive atom IDs.
*Fix numdiff/virial must use group all*
Virial contributions computed by this fix are
computed on all atoms.
*Fix nve/asphere requires extended particles*
This fix can only be used for particles with a shape setting.
@ -7772,9 +7779,6 @@ keyword to allow for additional bonds to be formed
The system size must fit in a 32-bit integer to use this dump
style.
*Too many atoms to dump sort*
Cannot sort when running with more than 2\^31 atoms.
*Too many elements extracted from MEAM library.*
Increase 'maxelt' in meam.h and recompile.

View File

@ -416,7 +416,7 @@ This will most likely cause errors in kinetic fluctuations.
not defined for the specified atom style.
*Molecule has bond topology but no special bond settings*
This means the bonded atoms will not be excluded in pair-wise
This means the bonded atoms will not be excluded in pairwise
interactions.
*Molecule template for create_atoms has multiple molecules*

View File

@ -54,6 +54,8 @@ Lowercase directories
+-------------+------------------------------------------------------------------+
| body | body particles, 2d system |
+-------------+------------------------------------------------------------------+
| bpm | BPM simulations of pouring elastic grains and plate impact |
+-------------+------------------------------------------------------------------+
| cmap | CMAP 5-body contributions to CHARMM force field |
+-------------+------------------------------------------------------------------+
| colloid | big colloid particles in a small particle solvent, 2d system |
@ -80,7 +82,7 @@ Lowercase directories
+-------------+------------------------------------------------------------------+
| friction | frictional contact of spherical asperities between 2d surfaces |
+-------------+------------------------------------------------------------------+
| gcmc | Grand Canonical Monte Carlo (GCMC) via the fix gcmc command |
| mc | Monte Carlo features via fix gcmc, widom and other commands |
+-------------+------------------------------------------------------------------+
| granregion | use of fix wall/region/gran as boundary on granular particles |
+-------------+------------------------------------------------------------------+
@ -94,12 +96,12 @@ Lowercase directories
+-------------+------------------------------------------------------------------+
| latte | examples for using fix latte for DFTB via the LATTE library |
+-------------+------------------------------------------------------------------+
| mdi | use of the MDI package and MolSSI MDI code coupling library |
+-------------+------------------------------------------------------------------+
| meam | MEAM test for SiC and shear (same as shear examples) |
+-------------+------------------------------------------------------------------+
| melt | rapid melt of 3d LJ system |
+-------------+------------------------------------------------------------------+
| message | demos for LAMMPS client/server coupling with the MESSAGE package |
+-------------+------------------------------------------------------------------+
| micelle | self-assembly of small lipid-like molecules into 2d bilayers |
+-------------+------------------------------------------------------------------+
| min | energy minimization of 2d LJ melt |
@ -205,7 +207,7 @@ Uppercase directories
+------------+--------------------------------------------------------------------------------------------------+
| KAPPA | compute thermal conductivity via several methods |
+------------+--------------------------------------------------------------------------------------------------+
| MC | using LAMMPS in a Monte Carlo mode to relax the energy of a system |
| MC-LOOP | using LAMMPS in a Monte Carlo mode to relax the energy of a system in a input script loop |
+------------+--------------------------------------------------------------------------------------------------+
| PACKAGES | examples for specific packages and contributed commands |
+------------+--------------------------------------------------------------------------------------------------+

View File

@ -22,8 +22,9 @@ General howto
Howto_replica
Howto_library
Howto_couple
Howto_client_server
Howto_mdi
Howto_bpm
Howto_broken_bonds
Settings howto
==============

119
doc/src/Howto_bpm.rst Normal file
View File

@ -0,0 +1,119 @@
Bonded particle models
======================
The BPM package implements bonded particle models which can be used to
simulate mesoscale solids. Solids are constructed as a collection of
particles which each represent a coarse-grained region of space much
larger than the atomistic scale. Particles within a solid region are
then connected by a network of bonds to provide solid elasticity.
Unlike traditional bonds in molecular dynamics, the equilibrium bond
length can vary between bonds. Bonds store the reference state. This
includes setting the equilibrium length equal to the initial distance
between the two particles but can also include data on the bond
orientation for rotational models. This produces a stress free initial
state. Furthermore, bonds are allowed to break under large strains
producing fracture. The examples/bpm directory has sample input scripts
for simulations of the fragmentation of an impacted plate and the
pouring of extended, elastic bodies.
----------
Bonds can be created using a :doc:`read data <read_data>` or
:doc:`create bonds <create_bonds>` command. Alternatively, a
:doc:`molecule <molecule>` template with bonds can be used with
:doc:`fix deposit <fix_deposit>` or :doc:`fix pour <fix_pour>` to
create solid grains.
In this implementation, bonds store their reference state when they are
first computed in the setup of the first simulation run. Data is then
preserved across run commands and is written to :doc:`binary restart
files <restart>` such that restarting the system will not reset the
reference state of a bond. Bonds that are created midway into a run,
such as those created by pouring grains using :doc:`fix pour
<fix_pour>`, are initialized on that timestep.
As bonds can be broken between neighbor list builds, the
:doc:`special_bonds <special_bonds>` command works differently for BPM
bond styles. There are two possible settings which determine how pair
interactions work between bonded particles. First, one can turn off
all pair interactions between bonded particles. Unlike :doc:`bond
quartic <bond_quartic>`, this is not done by subtracting pair forces
during the bond computation but rather by dynamically updating the
special bond list. This is the default behavior of BPM bond styles and
is done by updating the 1-2 special bond list as bonds break. To do
this, LAMMPS requires :doc:`newton <newton>` bond off such that all
processors containing an atom know when a bond breaks. Additionally,
one must do either (A) or (B).
A) Use the following special bond settings
.. code-block:: LAMMPS
special_bonds lj 0 1 1 coul 1 1 1
These settings accomplish two goals. First, they turn off 1-3 and 1-4
special bond lists, which are not currently supported for BPMs. As
BPMs often have dense bond networks, generating 1-3 and 1-4 special
bond lists is expensive. By setting the lj weight for 1-2 bonds to
zero, this turns off pairwise interactions. Even though there are no
charges in BPM models, setting a nonzero coul weight for 1-2 bonds
ensures all bonded neighbors are still included in the neighbor list
in case bonds break between neighbor list builds.
B) Alternatively, one can simply overlay pair interactions such that all
bonded particles also feel pair interactions. This can be
accomplished by using the *overlay/pair* keyword present in all bpm
bond styles and by using the following special bond settings
.. code-block:: LAMMPS
special_bonds lj/coul 1 1 1
See the :doc:`Howto <Howto_broken_bonds>` page on broken bonds for
more information.
----------
Currently there are two types of bonds included in the BPM
package. The first bond style, :doc:`bond bpm/spring
<bond_bpm_spring>`, only applies pairwise, central body forces. Point
particles must have :doc:`bond atom style <atom_style>` and may be
thought of as nodes in a spring network. Alternatively, the second
bond style, :doc:`bond bpm/rotational <bond_bpm_rotational>`, resolves
tangential forces and torques arising with the shearing, bending, and
twisting of the bond due to rotation or displacement of particles.
Particles are similar to those used in the :doc:`granular package
<Howto_granular>`, :doc:`atom style sphere <atom_style>`. However,
they must also track the current orientation of particles and store bonds
and therefore use a :doc:`bpm/sphere atom style <atom_style>`.
This also requires a unique integrator :doc:`fix nve/bpm/sphere
<fix_nve_bpm_sphere>` which numerically integrates orientation similar
to :doc:`fix nve/asphere <fix_nve_asphere>`.
To monitor the fracture of bonds in the system, all BPM bond styles
have the ability to record instances of bond breakage to output using
the :doc:`dump local <dump>` command. Additionally, one can use
:doc:`compute nbond/atom <compute_nbond_atom>` to tally the current
number of bonds per atom.
In addition to bond styles, a new pair style :doc:`pair bpm/spring
<pair_bpm_spring>` was added to accompany the bpm/spring bond
style. This pair style is simply a hookean repulsion with similar
velocity damping as its sister bond style.
----------
While LAMMPS has many utilities to create and delete bonds, *only*
the following are currently compatible with BPM bond styles:
* :doc:`create_bonds <create_bonds>`
* :doc:`delete_bonds <delete_bonds>`
* :doc:`fix bond/create <fix_bond_create>`
* :doc:`fix bond/break <fix_bond_break>`
* :doc:`fix bond/swap <fix_bond_swap>`
Note :doc:`create_bonds <create_bonds>` requires certain special_bonds settings.
To subtract pair interactions, one will need to switch between different
special_bonds settings in the input script. An example is found in
examples/bpm/impact.

View File

@ -0,0 +1,48 @@
Broken Bonds
============
Typically, bond interactions persist for the duration of a simulation
in LAMMPS. However, there are some exceptions that allow for bonds to
break including the :doc:`quartic bond style <bond_quartic>` and the
bond styles in the :doc:`BPM package <Howto_bpm>` which contains the
:doc:`bpm/spring <bond_bpm_spring>` and
:doc:`bpm/rotational <bond_bpm_rotational>` bond styles. In these cases,
a bond can be broken if it is stretched beyond a user-defined threshold.
LAMMPS accomplishes this by setting the bond type to zero such that the
bond force is no longer computed.
Users are normally able to weight the contribution of pair forces to atoms
that are bonded using the :doc:`special_bonds command <special_bonds>`.
When bonds break, this is not always the case. For the quartic bond style,
pair forces are always turned off between bonded particles. LAMMPS does
this via a computational sleight-of-hand. It subtracts the pairwise
interaction as part of the bond computation. When the bond breaks, the
subtraction stops. For this to work, the pairwise interaction must always
be computed by the :doc:`pair_style <pair_style>` command, whether the bond
is broken or not. This means that :doc:`special_bonds <special_bonds>` must
be set to 1,1,1. After the bond breaks, the pairwise interaction between the
two atoms is turned on, since they are no longer bonded.
In the BPM package, one can either turn off all pair interactions between
bonded particles or leave them on, overlaying pair forces on top of bond
forces. To remove pair forces, the special bond list is dynamically
updated. More details can be found on the :doc:`Howto BPM <Howto_bpm>`
page.
Bonds can also be broken by fixes which change bond topology, including
:doc:`fix bond/break <fix_bond_break>` and
:doc:`fix bond/react <fix_bond_react>`. These fixes will automatically
trigger a rebuild of the neighbor list and update special bond data structures
when bonds are broken.
Note that when bonds are dumped to a file via the :doc:`dump local <dump>` command, bonds with type 0 are not included. The
:doc:`delete_bonds <delete_bonds>` command can also be used to query the
status of broken bonds or permanently delete them, e.g.:
.. code-block:: LAMMPS
delete_bonds all stats
delete_bonds all bond 0 remove
The compute :doc:`nbond/atom <compute_nbond_atom>` can also be used
to tally the current number of bonds per atom, excluding broken bonds.

View File

@ -1,163 +0,0 @@
Using LAMMPS in client/server mode
==================================
Client/server coupling of two codes is where one code is the "client"
and sends request messages to a "server" code. The server responds to
each request with a reply message. This enables the two codes to work
in tandem to perform a simulation. LAMMPS can act as either a client
or server code.
Some advantages of client/server coupling are that the two codes run
as stand-alone executables; they are not linked together. Thus
neither code needs to have a library interface. This often makes it
easier to run the two codes on different numbers of processors. If a
message protocol (format and content) is defined for a particular kind
of simulation, then in principle any code that implements the
client-side protocol can be used in tandem with any code that
implements the server-side protocol, without the two codes needing to
know anything more specific about each other.
A simple example of client/server coupling is where LAMMPS is the
client code performing MD timestepping. Each timestep it sends a
message to a server quantum code containing current coords of all the
atoms. The quantum code computes energy and forces based on the
coords. It returns them as a message to LAMMPS, which completes the
timestep.
A more complex example is where LAMMPS is the client code and
processes a series of data files, sending each configuration to a
quantum code to compute energy and forces. Or LAMMPS runs dynamics
with an atomistic force field, but pauses every N steps to ask the
quantum code to compute energy and forces.
Alternate methods for code coupling with LAMMPS are described on
the :doc:`Howto couple <Howto_couple>` doc page.
The protocol for using LAMMPS as a client is to use these 3 commands
in this order (other commands may come in between):
* :doc:`message client <message>` # initiate client/server interaction
* :doc:`fix client/md <fix_client_md>` # any client fix which makes specific requests to the server
* :doc:`message quit <message>` # terminate client/server interaction
In between the two message commands, a client fix command and
:doc:`unfix <unfix>` command can be used multiple times. Similarly,
this sequence of 3 commands can be repeated multiple times, assuming
the server program operates in a similar fashion, to initiate and
terminate client/server communication.
The protocol for using LAMMPS as a server is to use these 2 commands
in this order (other commands may come in between):
* :doc:`message server <message>` # initiate client/server interaction
* :doc:`server md <server_md>` # any server command which responds to specific requests from the client
This sequence of 2 commands can be repeated multiple times, assuming
the client program operates in a similar fashion, to initiate and
terminate client/server communication.
LAMMPS support for client/server coupling is in its :ref:`MESSAGE package <PKG-MESSAGE>` which implements several
commands that enable LAMMPS to act as a client or server, as discussed
below. The MESSAGE package also wraps a client/server library called
CSlib which enables two codes to exchange messages in different ways,
either via files, sockets, or MPI. The CSlib is provided with LAMMPS
in the lib/message dir. The CSlib has its own
`website <https://cslib.sandia.gov>`_ with documentation and test
programs.
.. note::
For client/server coupling to work between LAMMPS and another
code, the other code also has to use the CSlib. This can sometimes be
done without any modifications to the other code by simply wrapping it
with a Python script that exchanges CSlib messages with LAMMPS and
prepares input for or processes output from the other code. The other
code also has to implement a matching protocol for the format and
content of messages that LAMMPS exchanges with it.
These are the commands currently in the MESSAGE package for two
protocols, MD and MC (Monte Carlo). New protocols can easily be
defined and added to this directory, where LAMMPS acts as either the
client or server.
* :doc:`message <message>`
* :doc:`fix client md <fix_client_md>` = LAMMPS is a client for running MD
* :doc:`server md <server_md>` = LAMMPS is a server for computing MD forces
* :doc:`server mc <server_mc>` = LAMMPS is a server for computing a Monte Carlo energy
The server doc files give details of the message protocols
for data that is exchanged between the client and server.
These example directories illustrate how to use LAMMPS as either a
client or server code:
* examples/message
* examples/COUPLE/README
* examples/COUPLE/lammps_mc
* examples/COUPLE/lammps_nwchem
* examples/COUPLE/lammps_vasp
The examples/message directory couples a client instance of LAMMPS to a
server instance of LAMMPS.
The files in the *lammps_mc* folder show how to couple LAMMPS as
a server to a simple Monte Carlo client code as the driver.
The files in the *lammps_nwchem* folder show how to couple LAMMPS
as a client code running MD timestepping to NWChem acting as a
server providing quantum DFT forces, through a Python wrapper script
on NWChem.
The files in the *lammps_vasp* folder show how to couple LAMMPS as
a client code running MD timestepping to VASP acting as a server
providing quantum DFT forces, through a Python wrapper script on VASP.
Here is how to launch a client and server code together for any of the
4 modes of message exchange that the :doc:`message <message>` command
and the CSlib support. Here LAMMPS is used as both the client and
server code. Another code could be substituted for either.
The examples below show launching both codes from the same window (or
batch script), using the "&" character to launch the first code in the
background. For all modes except *mpi/one*, you could also launch the
codes in separate windows on your desktop machine. It does not
matter whether you launch the client or server first.
In these examples either code can be run on one or more processors.
If running in a non-MPI mode (file or zmq) you can launch a code on a
single processor without using mpirun.
IMPORTANT: If you run in mpi/two mode, you must launch both codes via
mpirun, even if one or both of them runs on a single processor. This
is so that MPI can figure out how to connect both MPI processes
together to exchange MPI messages between them.
For message exchange in *file*, *zmq*, or *mpi/two* modes:
.. code-block:: bash
% mpirun -np 1 lmp_mpi -log log.client < in.client &
% mpirun -np 2 lmp_mpi -log log.server < in.server
% mpirun -np 4 lmp_mpi -log log.client < in.client &
% mpirun -np 1 lmp_mpi -log log.server < in.server
% mpirun -np 2 lmp_mpi -log log.client < in.client &
% mpirun -np 4 lmp_mpi -log log.server < in.server
For message exchange in *mpi/one* mode:
Launch both codes in a single mpirun command:
.. code-block:: bash
mpirun -np 2 lmp_mpi -mpicolor 0 -in in.message.client -log log.client : -np 4 lmp_mpi -mpicolor 1 -in in.message.server -log log.server
The two -np values determine how many procs the client and the server
run on.
A LAMMPS executable run in this manner must use the -mpicolor color
command-line option as their its option, where color is an integer
label that will be used to distinguish one executable from another in
the multiple executables that the mpirun command launches. In this
example the client was colored with a 0, and the server with a 1.

View File

@ -12,16 +12,16 @@ LAMMPS can be coupled to other codes in at least 4 ways. Each has
advantages and disadvantages, which you will have to think about in the
context of your application.
1. Define a new :doc:`fix <fix>` command that calls the other code. In
this scenario, LAMMPS is the driver code. During timestepping,
1. Define a new :doc:`fix <fix>` command that calls the other code.
In this scenario, LAMMPS is the driver code. During timestepping,
the fix is invoked, and can make library calls to the other code,
which has been linked to LAMMPS as a library. This is the way how the
which has been linked to LAMMPS as a library. This is the way the
:ref:`LATTE <PKG-LATTE>` package, which performs density-functional
tight-binding calculations using the `LATTE software <https://github.com/lanl/LATTE>`_
to compute forces, is hooked to LAMMPS.
See the :doc:`fix latte <fix_latte>` command for more details.
Also see the :doc:`Modify <Modify>` doc pages for info on how to
add a new fix to LAMMPS.
tight-binding calculations using the `LATTE software
<https://github.com/lanl/LATTE>`_ to compute forces, is hooked to
LAMMPS. See the :doc:`fix latte <fix_latte>` command for more
details. Also see the :doc:`Modify <Modify>` doc pages for info on
how to add a new fix to LAMMPS.
.. spacer
@ -58,6 +58,12 @@ context of your application.
.. spacer
4. Couple LAMMPS with another code in a client/server mode. This is
described on the :doc:`Howto client/server <Howto_client_server>` doc
page.
4. Couple LAMMPS with another code in a client/server fashion, using
using the `MDI Library
<https://molssi-mdi.github.io/MDI_Library/html/index.html>`_
developed by the `Molecular Sciences Software Institute (MolSSI)
<https://molssi.org>`_ to run LAMMPS as either an MDI driver
(client) or an MDI engine (server). The MDI driver issues commands
to the MDI server to exchange data between them. See the
:doc:`Howto mdi <Howto_mdi>` page for more information about how
LAMMPS can operate in either of these modes.

View File

@ -491,11 +491,6 @@ NPT ensemble using Nose-Hoover thermostat:
**(Schroeder)** Schroeder and Steinhauser, J Chem Phys, 133,
154511 (2010).
.. _Jiang2:
**(Jiang)** Jiang, Hardy, Phillips, MacKerell, Schulten, and Roux,
J Phys Chem Lett, 2, 87-92 (2011).
.. _Thole2:
**(Thole)** Chem Phys, 59, 341 (1981).

View File

@ -18,23 +18,52 @@ At zero temperature, it is easy to estimate these derivatives by
deforming the simulation box in one of the six directions using the
:doc:`change_box <change_box>` command and measuring the change in the
stress tensor. A general-purpose script that does this is given in the
examples/elastic directory described on the :doc:`Examples <Examples>`
examples/ELASTIC directory described on the :doc:`Examples <Examples>`
doc page.
Calculating elastic constants at finite temperature is more
challenging, because it is necessary to run a simulation that performs
time averages of differential properties. One way to do this is to
measure the change in average stress tensor in an NVT simulations when
time averages of differential properties. There are at least
3 ways to do this in LAMMPS. The most reliable way to do this is
by exploiting the relationship between elastic constants, stress
fluctuations, and the Born matrix, the second derivatives of energy
w.r.t. strain :ref:`(Ray) <Ray>`.
The Born matrix calculation has been enabled by
the :doc:`compute born/matrix <compute_born_matrix>` command,
which works for any bonded or non-bonded potential in LAMMPS.
The most expensive part of the calculation is the sampling of
the stress fluctuations. Several examples of this method are
provided in the examples/ELASTIC_T/BORN_MATRIX directory
described on the :doc:`Examples <Examples>` doc page.
A second way is to measure
the change in average stress tensor in an NVT simulations when
the cell volume undergoes a finite deformation. In order to balance
the systematic and statistical errors in this method, the magnitude of
the deformation must be chosen judiciously, and care must be taken to
fully equilibrate the deformed cell before sampling the stress
tensor. Another approach is to sample the triclinic cell fluctuations
tensor. An example of this method is provided in the
examples/ELASTIC_T/DEFORMATION directory
described on the :doc:`Examples <Examples>` doc page.
Another approach is to sample the triclinic cell fluctuations
that occur in an NPT simulation. This method can also be slow to
converge and requires careful post-processing :ref:`(Shinoda) <Shinoda1>`
converge and requires careful post-processing :ref:`(Shinoda) <Shinoda1>`.
We do not provide an example of this method.
A nice review of the advantages and disadvantages of all of these methods
is provided in the paper by Clavier et al. :ref:`(Clavier) <Clavier>`.
----------
.. _Ray:
**(Ray)** J. R. Ray and A. Rahman, J Chem Phys, 80, 4423 (1984).
.. _Shinoda1:
**(Shinoda)** Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004).
.. _Clavier:
**(Clavier)** G. Clavier, N. Desbiens, E. Bourasseau, V. Lachet, N. Brusselle-Dupend and B. Rousseau, Mol Sim, 43, 1413 (2017).

View File

@ -7,11 +7,11 @@ LAMMPS GitHub tutorial
This document describes the process of how to use GitHub to integrate
changes or additions you have made to LAMMPS into the official LAMMPS
distribution. It uses the process of updating this very tutorial as
an example to describe the individual steps and options. You need to
be familiar with git and you may want to have a look at the
`git book <http://git-scm.com/book/>`_ to reacquaint yourself with some
of the more advanced git features used below.
distribution. It uses the process of updating this very tutorial as an
example to describe the individual steps and options. You need to be
familiar with git and you may want to have a look at the `git book
<http://git-scm.com/book/>`_ to familiarize yourself with some of the
more advanced git features used below.
As of fall 2016, submitting contributions to LAMMPS via pull requests
on GitHub is the preferred option for integrating contributed features
@ -37,15 +37,15 @@ username or e-mail address and password.
**Forking the repository**
To get changes into LAMMPS, you need to first fork the `lammps/lammps`
repository on GitHub. At the time of writing, *master* is the preferred
repository on GitHub. At the time of writing, *develop* is the preferred
target branch. Thus go to `LAMMPS on GitHub <https://github.com/lammps/lammps>`_
and make sure branch is set to "master", as shown in the figure below.
and make sure branch is set to "develop", as shown in the figure below.
.. image:: JPG/tutorial_branch.png
:align: center
If it is not, use the button to change it to *master*\ . Once it is, use the
fork button to create a fork.
If it is not, use the button to change it to *develop*. Once it is, use
the fork button to create a fork.
.. image:: JPG/tutorial_fork.png
:align: center
@ -64,11 +64,12 @@ LAMMPS development.
**Adding changes to your own fork**
Additions to the upstream version of LAMMPS are handled using *feature
branches*\ . For every new feature, a so-called feature branch is
branches*. For every new feature, a so-called feature branch is
created, which contains only those modification relevant to one specific
feature. For example, adding a single fix would consist of creating a
branch with only the fix header and source file and nothing else. It is
explained in more detail here: `feature branch workflow <https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow>`_.
explained in more detail here: `feature branch workflow
<https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow>`_.
**Feature branches**
@ -94,8 +95,8 @@ The above command copies ("clones") the git repository to your local
machine to a directory with the name you chose. If none is given, it will
default to "lammps". Typical names are "mylammps" or something similar.
You can use this local clone to make changes and
test them without interfering with the repository on GitHub.
You can use this local clone to make changes and test them without
interfering with the repository on GitHub.
To pull changes from upstream into this copy, you can go to the directory
and use git pull:
@ -103,28 +104,46 @@ and use git pull:
.. code-block:: bash
$ cd mylammps
$ git checkout master
$ git pull https://github.com/lammps/lammps
$ git checkout develop
$ git pull https://github.com/lammps/lammps develop
You can also add this URL as a remote:
.. code-block:: bash
$ git remote add lammps_upstream https://www.github.com/lammps/lammps
$ git remote add upstream https://www.github.com/lammps/lammps
At this point, you typically make a feature branch from the updated master
From then on you can update your upstream branches with:
.. code-block:: bash
$ git fetch upstream
and then refer to the upstream repository branches with
`upstream/develop` or `upstream/release` and so on.
At this point, you typically make a feature branch from the updated
branch for the feature you want to work on. This tutorial contains the
workflow that updated this tutorial, and hence we will call the branch
"github-tutorial-update":
.. code-block:: bash
$ git checkout -b github-tutorial-update master
$ git fetch upstream
$ git checkout -b github-tutorial-update upstream/develop
Now that we have changed branches, we can make our changes to our local
repository. Just remember that if you want to start working on another,
unrelated feature, you should switch branches!
.. note::
Committing changes to the *develop*, *release*, or *stable* branches
is strongly discouraged. While it may be convenient initially, it
will create more work in the long run. Various texts and tutorials
on using git effectively discuss the motivation for using feature
branches instead.
**After changes are made**
After everything is done, add the files to the branch and commit them:
@ -287,28 +306,32 @@ After each push, the automated checks are run again.
LAMMPS developers may add labels to your pull request to assign it to
categories (mostly for bookkeeping purposes), but a few of them are
important: needs_work, work_in_progress, test-for-regression, and
full-regression-test. The first two indicate, that your pull request
is not considered to be complete. With "needs_work" the burden is on
exclusively on you; while "work_in_progress" can also mean, that a
LAMMPS developer may want to add changes. Please watch the comments
to the pull requests. The two "test" labels are used to trigger
extended tests before the code is merged. This is sometimes done by
LAMMPS developers, if they suspect that there may be some subtle
side effects from your changes. It is not done by default, because
those tests are very time consuming.
important: *needs_work*, *work_in_progress*, *run_tests*,
*test_for_regression*, and *ready_for_merge*. The first two indicate,
that your pull request is not considered to be complete. With
"needs_work" the burden is on exclusively on you; while
"work_in_progress" can also mean, that a LAMMPS developer may want to
add changes. Please watch the comments to the pull requests. The two
"test" labels are used to trigger extended tests before the code is
merged. This is sometimes done by LAMMPS developers, if they suspect
that there may be some subtle side effects from your changes. It is not
done by default, because those tests are very time consuming. The
*ready_for_merge* label is usually attached when the LAMMPS developer
assigned to the pull request considers this request complete and to
trigger a final full test evaluation.
**Reviews**
As of Summer 2018, a pull request needs at least 1 approving review
from a LAMMPS developer with write access to the repository.
In case your changes touch code that certain developers are associated
with, they are auto-requested by the GitHub software. Those associations
are set in the file
`.github/CODEOWNERS <https://github.com/lammps/lammps/blob/master/.github/CODEOWNERS>`_
Thus if you want to be automatically notified to review when anybody
changes files or packages, that you have contributed to LAMMPS, you can
add suitable patterns to that file, or a LAMMPS developer may add you.
As of Fall 2021, a pull request needs to pass all automatic tests and at
least 1 approving review from a LAMMPS developer with write access to
the repository before it is eligible for merging. In case your changes
touch code that certain developers are associated with, they are
auto-requested by the GitHub software. Those associations are set in
the file `.github/CODEOWNERS
<https://github.com/lammps/lammps/blob/develop/.github/CODEOWNERS>`_ Thus
if you want to be automatically notified to review when anybody changes
files or packages, that **you** have contributed to LAMMPS, you can add
suitable patterns to that file, or a LAMMPS developer may add you.
Otherwise, you can also manually request reviews from specific developers,
or LAMMPS developers - in their assessment of your pull request - may
@ -329,7 +352,7 @@ LAMMPS developer (including him/herself) or c) Axel Kohlmeyer (akohlmey).
After the review, the developer can choose to implement changes directly
or suggest them to you.
* Case c) means that the pull request has been assigned to the developer
overseeing the merging of pull requests into the master branch.
overseeing the merging of pull requests into the *develop* branch.
In this case, Axel assigned the tutorial to Steve:
@ -351,11 +374,11 @@ Sometimes, however, you might not feel comfortable having other people
push changes into your own branch, or maybe the maintainers are not sure
their idea was the right one. In such a case, they can make changes,
reassign you as the assignee, and file a "reverse pull request", i.e.
file a pull request in your GitHub repository to include changes in the
branch, that you have submitted as a pull request yourself. In that
case, you can choose to merge their changes back into your branch,
possibly make additional changes or corrections and proceed from there.
It looks something like this:
file a pull request in **your** forked GitHub repository to include
changes in the branch, that you have submitted as a pull request
yourself. In that case, you can choose to merge their changes back into
your branch, possibly make additional changes or corrections and proceed
from there. It looks something like this:
.. image:: JPG/tutorial_reverse_pull_request.png
:align: center
@ -419,7 +442,7 @@ This merge also shows up on the lammps GitHub page:
**After a merge**
When everything is fine, the feature branch is merged into the master branch:
When everything is fine, the feature branch is merged into the *develop* branch:
.. image:: JPG/tutorial_merged.png
:align: center
@ -433,8 +456,8 @@ branch!
.. code-block:: bash
$ git checkout master
$ git pull master
$ git checkout develop
$ git pull https://github.com/lammps/lammps develop
$ git branch -d github-tutorial-update
If you do not pull first, it is not really a problem but git will warn
@ -442,6 +465,7 @@ you at the next statement that you are deleting a local branch that
was not yet fully merged into HEAD. This is because git does not yet
know your branch just got merged into LAMMPS upstream. If you
first delete and then pull, everything should still be fine.
You can display all branches that are fully merged by:
Finally, if you delete the branch locally, you might want to push this
to your remote(s) as well:
@ -453,14 +477,14 @@ to your remote(s) as well:
**Recent changes in the workflow**
Some changes to the workflow are not captured in this tutorial. For
example, in addition to the master branch, to which all new features
should be submitted, there is now also an "unstable" and a "stable"
branch; these have the same content as "master", but are only updated
after a patch release or stable release was made.
Furthermore, the naming of the patches now follow the pattern
"patch_<Day><Month><Year>" to simplify comparisons between releases.
Finally, all patches and submissions are subject to automatic testing
and code checks to make sure they at the very least compile.
example, in addition to the *develop* branch, to which all new features
should be submitted, there is also a *release* and a *stable* branch;
these have the same content as *develop*, but are only updated after a
patch release or stable release was made. Furthermore, the naming of
the patches now follow the pattern "patch_<Day><Month><Year>" to
simplify comparisons between releases. Finally, all patches and
submissions are subject to automatic testing and code checks to make
sure they at the very least compile.
A discussion of the LAMMPS developer GitHub workflow can be found in the file
`doc/github-development-workflow.md <https://github.com/lammps/lammps/blob/master/doc/github-development-workflow.md>`_
`doc/github-development-workflow.md <https://github.com/lammps/lammps/blob/develop/doc/github-development-workflow.md>`_

View File

@ -1,132 +1,144 @@
Using LAMMPS with the MDI library for code coupling
===================================================
.. note::
This Howto page will eventually replace the
:doc:`Howto client/server <Howto_client_server>` doc page.
Client/server coupling of two codes is where one code is the "client"
and sends request messages (data) to a "server" code. The server
responds to each request with a reply message. This enables the two
codes to work in tandem to perform a simulation. LAMMPS can act as
either a client or server code; it does this by using the `MolSSI
Driver Interface (MDI) library
Client/server coupling of two (or more) codes is where one code is the
"client" and sends request messages (data) to one (or more) "server"
code(s). A server responds to each request with a reply message
(data). This enables two (or more) codes to work in tandem to perform
a simulation. LAMMPS can act as either a client or server code; it
does this by using the `MolSSI Driver Interface (MDI) library
<https://molssi-mdi.github.io/MDI_Library/html/index.html>`_,
developed by the `Molecular Sciences Software Institute (MolSSI)
<https://molssi.org>`_.
<https://molssi.org>`_, which is supported by the :ref:`MDI <PKG-MDI>`
package.
Alternate methods for code coupling with LAMMPS are described on the
:doc:`Howto couple <Howto_couple>` doc page.
Some advantages of client/server coupling are that the two codes can run
Some advantages of client/server coupling are that the codes can run
as stand-alone executables; they need not be linked together. Thus
neither code needs to have a library interface. This also makes it easy
to run the two codes on different numbers of processors. If a message
protocol (format and content) is defined for a particular kind of
simulation, then in principle any code which implements the client-side
protocol can be used in tandem with any code which implements the
server-side protocol. Neither code needs to know what specific other
code it is working with.
neither code needs to have a library interface. This also makes it
easy to run the two codes on different numbers of processors. If a
message protocol (format and content) is defined for a particular kind
of simulation, then in principle any code which implements the
client-side protocol can be used in tandem with any code which
implements the server-side protocol. Neither code needs to know what
specific other code it is working with.
In MDI nomenclature, a client code is the "driver", and a server code is
an "engine". One driver code can communicate with one or more instances
of one or more engine codes. Driver and engine codes can be written in
any language: C, C++, Fortran, Python, etc.
In addition to allowing driver and engine(s) running to run as
stand-alone executables, MDI also enables a server code to be a
"plugin" to the client code. In this scenario, server code(s) are
compiled as shared libraries, and one (or more) instances of the
server are instantiated by the driver code. If the driver code runs
in parallel, it can split its MPI communicator into multiple
sub-communicators, and launch each plugin engine instance on a
sub-communicator. Driver processors in that sub-communicator exchange
messages with that engine instance, and can also send MPI messages to
other processors in the driver. The driver code can also destroy
engine instances and re-instantiate them.
In addition to allowing driver and engine(s) to run as stand-alone
executables, MDI also enables an engine to be a *plugin* to the client
code. In this scenario, server code(s) are compiled as shared
libraries, and one (or more) instances of the server are instantiated
by the driver code. If the driver code runs in parallel, it can split
its MPI communicator into multiple sub-communicators, and launch each
plugin engine instance on a sub-communicator. Driver processors
within that sub-communicator exchange messages with the corresponding
engine instance, and can also send MPI messages to other processors in
the driver. The driver code can also destroy engine instances and
re-instantiate them. LAMMPS can operate as either a stand-alone or
plugin MDI engine. When it operates as a driver, if can use either
stand-alone or plugin MDI engines.
The way that a driver communicates with an engine is by making
MDI_Send() and MDI_Recv() calls, which are conceptually similar to
MPI_Send() and MPI_Recv() calls. Each send or receive has a string
which identifies the command name, and optionally some data, which can
be a single value or vector of values of any data type. Inside the
MDI library, data is exchanged between the driver and engine via MPI
calls or sockets. This a run-time choice by the user.
The way in which an MDI driver communicates with an MDI engine is by
making MDI_Send() and MDI_Recv() calls, which are conceptually similar
to MPI_Send() and MPI_Recv() calls. Each send or receive operation
uses a string to identify the command name, and optionally some data,
which can be a single value or vector of values of any data type.
Inside the MDI library, data is exchanged between the driver and
engine via MPI calls or sockets. This a run-time choice by the user.
----------
The :ref:`MDI <PKG-MDI>` package provides a :doc:`mdi engine <mdi>`
command which enables LAMMPS to operate as an MDI engine. Its doc
page explains the variety of standard and custom MDI commands which
the LAMMPS engine recognizes and can respond to.
The package also provides a :doc:`mdi plugin <mdi>` command which
enables LAMMPS to operate as an MDI driver and load an MDI engine as a
plugin library.
The package also has a `fix mdi/aimd <fix_mdi_aimd>` command in which
LAMMPS operates as an MDI driver to perform *ab initio* MD simulations
in conjunction with a quantum mechanics code. Its post_force() method
illustrates how a driver issues MDI commands to another code. This
command can be used to couple to an MDI engine which is either a
stand-alone code or a plugin library.
----------
The examples/mdi directory contains Python scripts and LAMMPS input
script which use LAMMPS as either an MDI driver or engine or both.
Three example use cases are provided:
* Run ab initio MD (AIMD) using 2 instances of LAMMPS, one as driver
and one as an engine. As an engine, LAMMPS is a surrogate for a
quantum code.
* A Python script driver invokes a sequence of unrelated LAMMPS
calculations. Calculations can be single-point energy/force
evaluations, MD runs, or energy minimizations.
* Run AIMD with a Python driver code and 2 LAMMPS instances as
engines. The first LAMMPS instance performs MD timestepping. The
second LAMMPS instance acts as a surrogate QM code to compute
forces.
Note that in any of these example where LAMMPS is used as an engine,
an actual QM code (which supports MDI) could be used in its place,
without modifying other code or scripts, except to specify the name of
the QM code.
The examples/mdi/README file explains how to launch both driver and
engine codes so that they communicate using the MDI library via either
MPI or sockets.
-------------
As an example, LAMMPS and the ``pw.x`` command from Quantum Espresso (a
suite of quantum DFT codes), can work together via the MDI library to
perform an ab initio MD (AIMD) simulation, where LAMMPS runs an MD
simulation and sends a message each timestep to ``pw.x`` asking it to
compute quantum forces on the current configuration of atoms. Here is
how the 2 codes are launched to communicate by MPI:
Currently there are two quantum DFT codes which have direct MDI
support, `Quantum ESPRESSO (QE) <https://www.quantum-espresso.org/>`_
and `INQ <https://qsg.llnl.gov/node/101.html>`_. There are also
several QM codes which have indirect support through QCEngine or i-PI.
The former means they require a wrapper program (QCEngine) with MDI
support which writes/read files to pass data to the quantum code
itself. The list of QCEngine-supported and i-PI-supported quantum
codes is on the `MDI webpage
<https://molssi-mdi.github.io/MDI_Library/html/index.html>`_.
Here is how to build QE as a stand-alone ``pw.x`` file which can be
used in stand-alone mode:
.. code-block:: bash
% mpirun -np 2 lmp_mpi -mdi "-role DRIVER -name d -method MPI" \
-in in.aimd : -np 16 pw.x -in qe.in -mdi "-role ENGINE -name e -method MPI"
% git clone --branch mdi_plugin https://github.com/MolSSI-MDI/q-e.git <base_path>/q-e
% build the executable pw.x, following the `QE build guide <https://gitlab.com/QEF/q-e/-/wikis/Developers/CMake-build-system>`_
In this case LAMMPS runs on 2 processors (MPI tasks), ``pw.x`` runs on 16
processors.
Here is how the 2 codes are launched to communicate by sockets:
Here is how to build QE as a shared library which can be used in plugin mode,
which results in a libqemdi.so file in <base_path>/q-e/MDI/src:
.. code-block:: bash
% mpirun -np 2 lmp_mpi -mdi "-role DRIVER -name d -method TCP -port 8021" -in in.aimd
% mpirun -np 16 pw.x -in qe.in -mdi "-role ENGINE -name e -method TCP -port 8021 -hostname localhost"
% git clone --branch mdi_plugin https://github.com/MolSSI-MDI/q-e.git <base_path>/q-e
% cd <base_path>/q-e
% ./configure --enable-parallel --enable-openmp --enable-shared FFLAGS="-fPIC" FCFLAGS="-fPIC" CFLAGS="-fPIC" foxflags="-fPIC" try_foxflags="-fPIC"
% make -j 4 mdi
These commands could be issued in different windows on a desktop
machine. Or in the same window, if the first command is ended with
"&" so as to run in the background. If "localhost" is replaced by an
IP address, ``pw.x`` could be run on another machine on the same network, or
even on another machine across the country.
INQ cannot be built as a stand-alone code; it is by design a library.
Here is how to build INQ as a shared library which can be used in
plugin mode, which results in a libinqmdi.so file in
<base_path>/inq/build/examples:
After both codes initialize themselves to model the same system, this is
what occurs each timestep:
.. code-block:: bash
* LAMMPS send a ">COORDS" message to ``pw.x`` with a 3*N vector of current atom coords
* ``pw.x`` receives the message/coords and computes quantum forces on all the atoms
* LAMMPS send a "<FORCES" message to ``pw.x`` and waits for the result
* ``pw.x`` receives the message (after its computation finishes) and sends a 3*N vector of forces
* LAMMPS receives the forces and time integrates to complete a single timestep
-------------
Examples scripts for using LAMMPS as an MDI engine are in the
examples/mdi directory. See the README file in that directory for
instructions on how to run the examples.
.. note::
Work is underway to add commands that allow LAMMPS to be used as an
MDI driver, e.g. for the AIMD example discussed above. Example
scripts for this usage mode will be added the same directory when
available.
If LAMMPS is used as a stand-alone engine it should set up the system
it will be modeling in its input script, then invoke the
:doc:`mdi/engine <mdi_engine>` command. This will put LAMMPS into
"engine mode" where it waits for messages and data from the driver.
When the driver sends an "EXIT" command, LAMMPS will exit engine mode
and the input script will continue.
If LAMMPS is used as a plugin engine it operates the same way, except
that the driver will pass LAMMPS an input script to initialize itself.
Upon receiving the "EXIT" command, LAMMPS will exit engine mode and the
input script will continue. After finishing execution of the input
script, the instance of LAMMPS will be destroyed.
LAMMPS supports the full set of MD-appropriate engine commands defined
by the MDI library. See the :doc:`mdi/engine <mdi_engine>` page for
a list of these.
If those commands are not sufficient for a user-developed driver to use
LAMMPS as an engine, then new commands can be easily added. See these
two files which implement the definition of MDI commands and the logic
for responding to them:
* src/MDI/mdi_engine.cpp
* src/MDI/fix_mdi_engine.cpp
% git clone --branch mdi --recurse-submodules https://gitlab.com/taylor-a-barnes/inq.git <base_path>/inq
% cd <base_path>/inq
% mkdir -p build
% cd build
% ../configure --prefix=<install_path>/install
% make -j 4
% make install

View File

@ -545,6 +545,6 @@ Feedback and Contributing
-------------------------
If you find this Python interface useful, please feel free to provide feedback
and ideas on how to improve it to Richard Berger (richard.berger@temple.edu). We also
and ideas on how to improve it to Richard Berger (richard.berger@outlook.com). We also
want to encourage people to write tutorial style IPython notebooks showcasing LAMMPS usage
and maybe their latest research results.

View File

@ -21,7 +21,8 @@ YAML
print """---
timestep: $(step)
pe: $(pe)
ke: $(ke)""" file current_state.yaml screen no
ke: $(ke)
...""" file current_state.yaml screen no
.. code-block:: yaml
:caption: current_state.yaml
@ -51,6 +52,194 @@ JSON
"ke": 2.4962152903997174569
}
YAML format thermo_style output
===============================
Extracting data from log file
-----------------------------
.. versionadded:: 24Mar2022
LAMMPS supports the thermo style "yaml" and for "custom" style
thermodynamic output the format can be changed to YAML with
:doc:`thermo_modify line yaml <thermo_modify>`. This will produce a
block of output in a compact YAML format - one "document" per run - of
the following style:
.. code-block:: yaml
---
keywords: ['Step', 'Temp', 'E_pair', 'E_mol', 'TotEng', 'Press', ]
data:
- [100, 0.757453103239935, -5.7585054860159, 0, -4.62236133677021, 0.207261053624721, ]
- [110, 0.759322359337036, -5.7614668389562, 0, -4.62251889318624, 0.194314975399602, ]
- [120, 0.759372342462676, -5.76149365656489, 0, -4.62247073844943, 0.191600048851267, ]
- [130, 0.756833027516501, -5.75777334823494, 0, -4.62255928350835, 0.208792327853067, ]
...
This data can be extracted and parsed from a log file using python with:
.. code-block:: python
import re, yaml
try:
from yaml import CSafeLoader as Loader
except ImportError:
from yaml import SafeLoader as Loader
docs = ""
with open("log.lammps") as f:
for line in f:
m = re.search(r"^(keywords:.*$|data:$|---$|\.\.\.$| - \[.*\]$)", line)
if m: docs += m.group(0) + '\n'
thermo = list(yaml.load_all(docs, Loader=Loader))
print("Number of runs: ", len(thermo))
print(thermo[1]['keywords'][4], ' = ', thermo[1]['data'][2][4])
After loading the YAML data, `thermo` is a list containing a dictionary
for each "run" where the tag "keywords" maps to the list of thermo
header strings and the tag "data" has a list of lists where the outer
list represents the lines of output and the inner list the values of the
columns matching the header keywords for that step. The second print()
command for example will print the header string for the fifth keyword
of the second run and the corresponding value for the third output line
of that run:
.. parsed-literal::
Number of runs: 2
TotEng = -4.62140097780047
.. versionadded:: 4May2022
YAML format output has been added to multiple commands in LAMMPS,
for example :doc:`dump yaml <dump>` or :doc:`fix ave/time <fix_ave_time>`
Depending on the kind of data being written, organization of the data
or the specific syntax used may change, but the principles are very
similar and all files should be readable with a suitable YAML parser.
Processing scalar data with Python
----------------------------------
.. figure:: JPG/thermo_bondeng.png
:figwidth: 33%
:align: right
After reading and parsing the YAML format data, it can be easily
imported for further processing and visualization with the `pandas
<https://pandas.pydata.org/>`_ and `matplotlib
<https://matplotlib.org/>`_ Python modules. Because of the organization
of the data in the YAML format thermo output, it needs to be told to
process only the 'data' part of the imported data to create a pandas
data frame, and one needs to set the column names from the 'keywords'
entry. The following Python script code example demonstrates this, and
creates the image shown on the right of a simple plot of various bonded
energy contributions versus the timestep from a run of the 'peptide'
example input after changing the :doc:`thermo style <thermo_style>` to
'yaml'. The properties to be used for x and y values can be
conveniently selected through the keywords. Please note that those
keywords can be changed to custom strings with the :doc:`thermo_modify
colname <thermo_modify>` command.
.. code-block:: python
import re, yaml
import pandas as pd
import matplotlib.pyplot as plt
try:
from yaml import CSafeLoader as Loader
except ImportError:
from yaml import SafeLoader as Loader
docs = ""
with open("log.lammps") as f:
for line in f:
m = re.search(r"^(keywords:.*$|data:$|---$|\.\.\.$| - \[.*\]$)", line)
if m: docs += m.group(0) + '\n'
thermo = list(yaml.load_all(docs, Loader=Loader))
df = pd.DataFrame(data=thermo[0]['data'], columns=thermo[0]['keywords'])
fig = df.plot(x='Step', y=['E_bond', 'E_angle', 'E_dihed', 'E_impro'], ylabel='Energy in kcal/mol')
plt.savefig('thermo_bondeng.png')
Processing vector data with Python
----------------------------------
Global *vector* data as produced by :doc:`fix ave/time <fix_ave_time>`
uses a slightly different organization of the data. You still have the
dictionary keys 'keywords' and 'data' for the column headers and the
data. But the data is a dictionary indexed by the time step and for
each step there are multiple rows of values each with a list of the
averaged properties. This requires a slightly different processing,
since the entire data cannot be directly imported into a single pandas
DataFrame class instance. The following Python script example
demonstrates how to read such data. The result will combine the data
for the different steps into one large "multi-index" table. The pandas
IndexSlice class can then be used to select data from this combined data
frame.
.. code-block:: python
import re, yaml
import pandas as pd
try:
from yaml import CSafeLoader as Loader
except ImportError:
from yaml import SafeLoader as Loader
with open("ave.yaml") as f:
ave = yaml.load(docs, Loader=Loader)
keys = ave['keywords']
df = {}
for k in ave['data'].keys():
df[k] = pd.DataFrame(data=ave['data'][k], columns=keys)
# create multi-index data frame
df = pd.concat(df)
# output only the first 3 value for steps 200 to 300 of the column Pressure
idx = pd.IndexSlice
print(df['Pressure'].loc[idx[200:300, 0:2]])
Processing scalar data with Perl
--------------------------------
The ease of processing YAML data is not limited to Python. Here is an
example for extracting and processing a LAMMPS log file with Perl instead.
.. code-block:: perl
use YAML::XS;
open(LOG, "log.lammps") or die("could not open log.lammps: $!");
my $file = "";
while(my $line = <LOG>) {
if ($line =~ /^(keywords:.*$|data:$|---$|\.\.\.$| - \[.*\]$)/) {
$file .= $line;
}
}
close(LOG);
# convert YAML to perl as nested hash and array references
my $thermo = Load $file;
# convert references to real arrays
my @keywords = @{$thermo->{'keywords'}};
my @data = @{$thermo->{'data'}};
# print first two columns
print("$keywords[0] $keywords[1]\n");
foreach (@data) {
print("${$_}[0] ${$_}[1]\n");
}
Writing continuous data during a simulation
===========================================

View File

@ -2,8 +2,8 @@ Thermostats
===========
Thermostatting means controlling the temperature of particles in an MD
simulation. :doc:`Barostatting <Howto_barostat>` means controlling the
pressure. Since the pressure includes a kinetic component due to
simulation. :doc:`Barostatting <Howto_barostat>` means controlling
the pressure. Since the pressure includes a kinetic component due to
particle velocities, both these operations require calculation of the
temperature. Typically a target temperature (T) and/or pressure (P)
is specified by the user, and the thermostat or barostat attempts to
@ -26,11 +26,13 @@ can be invoked via the *dpd/tstat* pair style:
* :doc:`pair_style dpd/tstat <pair_dpd>`
:doc:`Fix nvt <fix_nh>` only thermostats the translational velocity of
particles. :doc:`Fix nvt/sllod <fix_nvt_sllod>` also does this, except
that it subtracts out a velocity bias due to a deforming box and
integrates the SLLOD equations of motion. See the :doc:`Howto nemd <Howto_nemd>` page for further details. :doc:`Fix nvt/sphere <fix_nvt_sphere>` and :doc:`fix nvt/asphere <fix_nvt_asphere>` thermostat not only translation
velocities but also rotational velocities for spherical and aspherical
particles.
particles. :doc:`Fix nvt/sllod <fix_nvt_sllod>` also does this,
except that it subtracts out a velocity bias due to a deforming box
and integrates the SLLOD equations of motion. See the :doc:`Howto
nemd <Howto_nemd>` page for further details. :doc:`Fix nvt/sphere
<fix_nvt_sphere>` and :doc:`fix nvt/asphere <fix_nvt_asphere>`
thermostat not only translation velocities but also rotational
velocities for spherical and aspherical particles.
.. note::
@ -40,25 +42,31 @@ particles.
e.g. molecular systems. The latter can be tricky to do correctly.
DPD thermostatting alters pairwise interactions in a manner analogous
to the per-particle thermostatting of :doc:`fix langevin <fix_langevin>`.
to the per-particle thermostatting of :doc:`fix langevin
<fix_langevin>`.
Any of the thermostatting fixes can be instructed to use custom temperature
computes that remove bias which has two effects: first, the current
calculated temperature, which is compared to the requested target temperature,
is calculated with the velocity bias removed; second, the thermostat adjusts
only the thermal temperature component of the particle's velocities, which are
the velocities with the bias removed. The removed bias is then added back
to the adjusted velocities. See the doc pages for the individual
fixes and for the :doc:`fix_modify <fix_modify>` command for
instructions on how to assign a temperature compute to a
thermostatting fix. For example, you can apply a thermostat to only
the x and z components of velocity by using it in conjunction with
:doc:`compute temp/partial <compute_temp_partial>`. Of you could
thermostat only the thermal temperature of a streaming flow of
particles without affecting the streaming velocity, by using
:doc:`compute temp/profile <compute_temp_profile>`.
Any of the thermostatting fixes can be instructed to use custom
temperature computes that remove bias which has two effects: first,
the current calculated temperature, which is compared to the requested
target temperature, is calculated with the velocity bias removed;
second, the thermostat adjusts only the thermal temperature component
of the particle's velocities, which are the velocities with the bias
removed. The removed bias is then added back to the adjusted
velocities. See the doc pages for the individual fixes and for the
:doc:`fix_modify <fix_modify>` command for instructions on how to
assign a temperature compute to a thermostatting fix.
Below is a list of some custom temperature computes that can be used like that:
For example, you can apply a thermostat only to atoms in a spatial
region by using it in conjunction with :doc:`compute temp/region
<compute_temp_region>`. Or you can apply a thermostat to only the x
and z components of velocity by using it with :doc:`compute
temp/partial <compute_temp_partial>`. Of you could thermostat only
the thermal temperature of a streaming flow of particles without
affecting the streaming velocity, by using :doc:`compute temp/profile
<compute_temp_profile>`.
Below is a list of custom temperature computes that can be used like
that:
* :doc:`compute_temp_asphere`
* :doc:`compute_temp_body`
@ -72,8 +80,6 @@ Below is a list of some custom temperature computes that can be used like that:
* :doc:`compute_temp_rotate`
* :doc:`compute_temp_sphere`
.. note::
Only the nvt fixes perform time integration, meaning they update
@ -86,17 +92,17 @@ Below is a list of some custom temperature computes that can be used like that:
* :doc:`fix nve/sphere <fix_nve_sphere>`
* :doc:`fix nve/asphere <fix_nve_asphere>`
Thermodynamic output, which can be setup via the
:doc:`thermo_style <thermo_style>` command, often includes temperature
values. As explained on the page for the
:doc:`thermo_style <thermo_style>` command, the default temperature is
setup by the thermo command itself. It is NOT the temperature
associated with any thermostatting fix you have defined or with any
compute you have defined that calculates a temperature. The doc pages
for the thermostatting fixes explain the ID of the temperature compute
they create. Thus if you want to view these temperatures, you need to
specify them explicitly via the :doc:`thermo_style custom <thermo_style>` command. Or you can use the
:doc:`thermo_modify <thermo_modify>` command to re-define what
Thermodynamic output, which can be setup via the :doc:`thermo_style
<thermo_style>` command, often includes temperature values. As
explained on the page for the :doc:`thermo_style <thermo_style>`
command, the default temperature is setup by the thermo command
itself. It is NOT the temperature associated with any thermostatting
fix you have defined or with any compute you have defined that
calculates a temperature. The doc pages for the thermostatting fixes
explain the ID of the temperature compute they create. Thus if you
want to view these temperatures, you need to specify them explicitly
via the :doc:`thermo_style custom <thermo_style>` command. Or you can
use the :doc:`thermo_modify <thermo_modify>` command to re-define what
temperature compute is used for default thermodynamic output.
----------

View File

@ -9,7 +9,8 @@ has several advantages:
command.
* You can create your own development branches to add code to LAMMPS.
* You can submit your new features back to GitHub for inclusion in
LAMMPS.
LAMMPS. For that you should first create your own :doc:`fork on
GitHub <Howto_github>`.
You must have `git <git_>`_ installed on your system to use the
commands explained below to communicate with the git servers on
@ -20,35 +21,56 @@ provides `limited support for subversion clients <svn_>`_.
As of October 2016, the official home of public LAMMPS development is
on GitHub. The previously advertised LAMMPS git repositories on
git.lammps.org and bitbucket.org are now deprecated or offline.
git.lammps.org and bitbucket.org are now offline or deprecated.
.. _git: https://git-scm.com
.. _svn: https://help.github.com/en/github/importing-your-projects-to-github/working-with-subversion-on-github
You can follow LAMMPS development on 3 different git branches:
You can follow the LAMMPS development on 3 different git branches:
* **stable** : this branch is updated with every stable release
* **unstable** : this branch is updated with every patch release
* **master** : this branch continuously follows ongoing development
* **stable** : this branch is updated from the *release* branch with
every stable release version and also has selected bug fixes and updates
back-ported from the *develop* branch
* **release** : this branch is updated with every patch release;
updates are always "fast forward" merges from *develop*
* **develop** : this branch follows the ongoing development and
is updated with every merge commit of a pull request
To access the git repositories on your box, use the clone command to
create a local copy of the LAMMPS repository with a command like:
.. code-block:: bash
$ git clone -b unstable https://github.com/lammps/lammps.git mylammps
$ git clone -b release https://github.com/lammps/lammps.git mylammps
where "mylammps" is the name of the directory you wish to create on
your machine and "unstable" is one of the 3 branches listed above.
your machine and "release" is one of the 3 branches listed above.
(Note that you actually download all 3 branches; you can switch
between them at any time using "git checkout <branch name>".)
.. admonition:: Saving time and disk space when using ``git clone``
The complete git history of the LAMMPS project is quite large because
it contains the entire commit history of the project since fall 2006,
which includes the time when LAMMPS was managed with subversion.
This includes a few commits that have added and removed some large
files (mostly by accident). If you do not need access to the entire
commit history (most people don't), you can speed up the "cloning"
process and reduce local disk space requirements by using the
*--depth* git command line flag. That will create a "shallow clone"
of the repository containing only a subset of the git history. Using
a depth of 1000 is usually sufficient to include the head commits of
the *develop* and the *release* branches. To include the head commit
of the *stable* branch you may need a depth of up to 10000. If you
later need more of the git history, you can always convert the
shallow clone into a "full clone".
Once the command completes, your directory will contain the same files
as if you unpacked a current LAMMPS tarball, with the exception, that
the HTML documentation files are not included. They can be fetched
from the LAMMPS website by typing ``make fetch`` in the doc directory.
Or they can be generated from the content provided in doc/src by
typing ``make html`` from the doc directory.
Or they can be generated from the content provided in ``doc/src`` by
typing ``make html`` from the ``doc`` directory.
After initial cloning, as bug fixes and new features are added to
LAMMPS you can stay up-to-date by typing the following git commands
@ -56,9 +78,9 @@ from within the "mylammps" directory:
.. code-block:: bash
$ git checkout unstable # not needed if you always stay in this branch
$ git checkout stable # use one of these 3 checkout commands
$ git checkout master # to choose the branch to follow
$ git checkout release # not needed if you always stay in this branch
$ git checkout stable # use one of these 3 checkout commands
$ git checkout develop # to choose the branch to follow
$ git pull
Doing a "pull" will not change any files you have added to the LAMMPS
@ -81,7 +103,7 @@ Stable versions and what tagID to use for a particular stable version
are discussed on `this page <https://www.lammps.org/bug.html#version>`_.
Note that this command will print some warnings, because in order to get
back to the latest revision and to be able to update with ``git pull``
again, you will need to do ``git checkout unstable`` (or
again, you will need to do ``git checkout release`` (or
check out any other desired branch) first.
Once you have updated your local files with a ``git pull`` (or ``git
@ -137,11 +159,10 @@ changed. How to do this depends on the build system you are using.
.. admonition:: Git protocols
:class: note
The servers at github.com support the "git://" and "https://" access
protocols for anonymous, read-only access. If you have a suitably
configured GitHub account, you may also use SSH protocol with the
The servers at github.com support the "https://" access protocol for
anonymous, read-only access. If you have a suitably configured GitHub
account, you may also use SSH protocol with the
URL "git@github.com:lammps/lammps.git".
The LAMMPS GitHub project is currently managed by Axel Kohlmeyer
(Temple U, akohlmey at gmail.com) and Richard Berger (Temple U,
richard.berger at temple.edu).
(Temple U, akohlmey at gmail.com).

View File

@ -5,7 +5,7 @@ LAMMPS can be downloaded, built, and configured for OS X on a Mac with
`Homebrew <homebrew_>`_. (Alternatively, see the install instructions for
:doc:`Download an executable via Conda <Install_conda>`.) The following LAMMPS
packages are unavailable at this time because of additional needs not yet met:
GPU, KOKKOS, LATTE, MSCG, MESSAGE, MPIIO POEMS VORONOI.
GPU, KOKKOS, LATTE, MSCG, MPIIO, POEMS, VORONOI.
After installing Homebrew, you can install LAMMPS on your system with
the following commands:

View File

@ -6,7 +6,7 @@ of the `LAMMPS website <lws_>`_.
.. _download: https://www.lammps.org/download.html
.. _bug: https://www.lammps.org/bug.html
.. _older: https://www.lammps.org/tars
.. _older: https://download.lammps.org/tars/
.. _lws: https://www.lammps.org
You have two choices of tarballs, either the most recent stable

View File

@ -8,7 +8,7 @@ University:
* Aidan Thompson, athomps at sandia.gov
* Stan Moore, stamoor at sandia.gov
* Axel Kohlmeyer, akohlmey at gmail.com
* Richard Berger, richard.berger at temple.edu
* Richard Berger, richard.berger at outlook.com
.. _sjp: http://www.cs.sandia.gov/~sjplimp
.. _lws: https://www.lammps.org

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