Compare commits

...

2209 Commits

Author SHA1 Message Date
2a068b248a Merge pull request #4645 from akohlmey/improve-tests-for-set
Add or improve unit test programs to improve test coverage and specifically check recent additions
2025-07-16 20:13:37 -04:00
58948b71a9 add tests for run command 2025-07-16 17:50:15 -04:00
f80b015e27 output message of incorrect exceptions 2025-07-16 17:50:05 -04:00
d1d8a019f9 improve error messages for run command 2025-07-16 17:49:15 -04:00
ab6de4c384 test velocity command 2025-07-16 14:17:32 -04:00
13d3cfa2b6 more test coverage for utils::bounds() 2025-07-16 12:52:18 -04:00
3daa0c0726 add tests for utils::logical() and utils::*numeric() 2025-07-16 09:54:25 -04:00
b37ebc6b33 add tests for utils::check_packages_for_style() 2025-07-16 07:23:41 -04:00
d542651d60 consolidate redundant functionality into one function 2025-07-16 07:15:42 -04:00
a19cb93558 add test for utils::point_to_error() 2025-07-16 04:41:37 -04:00
88cb95f2ad add tests for utils::print() with/without file pointer and with/without format 2025-07-15 20:04:47 -04:00
8c564460e6 Merge branch 'develop' into improve-tests-for-set 2025-07-15 19:32:02 -04:00
351df5488f Merge pull request #4660 from akohlmey/remove-deprecation-warnings
Remove various deprecation and removal warnings for the stable release
2025-07-15 14:10:28 -04:00
2584db928d Merge pull request #4591 from VeeEM/fix-elstop-kokkos
Create kokkos version of fix electron stopping
2025-07-15 13:48:41 -04:00
d555b88cb1 Merge pull request #4573 from ndtrung81/kokkos-vector-size
Support setting threads per atom with neigh/thread on with the KOKKOS package
2025-07-15 12:21:30 -04:00
a1f21f9ea5 Update GNU Makefile build 2025-07-15 09:09:53 -06:00
41987dd20f Merge branch 'develop' of github.com:lammps/lammps into fix-elstop-kokkos 2025-07-15 09:07:22 -06:00
7335aa7046 Add error checks to prevent unexpected behavior 2025-07-15 09:03:28 -06:00
90e59e8484 Merge branch 'develop' of github.com:lammps/lammps into kokkos-vector-size 2025-07-15 08:54:12 -06:00
da148ac331 Remove various deprecation and removal warnings for the stable release 2025-07-15 07:12:42 -04:00
f79dd13c9b Merge pull request #4655 from jmgoff/mliap_indexing
updated indexing for mliap ace and other small fixes
2025-07-15 02:28:40 -04:00
4bc3edc94d Merge pull request #4601 from weinbe2/feature/batch-snap-ilp
SNAP/Kokkos work batching and instruction-level parallelism optimizations
2025-07-15 00:53:23 -04:00
e6ca347b5c Merge branch 'feature/batch-snap-ilp' of github.com:weinbe2/lammps into feature/batch-snap-ilp 2025-07-14 22:20:03 -06:00
151b713a60 whitespace 2025-07-14 22:19:55 -06:00
73eaa41af0 Merge pull request #4659 from stanmoore1/kk_update_4.6.2
Update Kokkos library in LAMMPS to v4.6.2
2025-07-14 23:46:54 -04:00
4995cd372d Merge pull request #4657 from yotamfe/bosonic-pimd-doc
Documentation for fix pimd/*/bosonic
2025-07-14 22:38:19 -04:00
8d5c50db1f Merge branch 'develop' into feature/batch-snap-ilp 2025-07-14 21:40:47 -04:00
929bc35133 Added various documentation about the *_batch values to pair_snap_kokkos.h 2025-07-14 21:34:13 -04:00
af1d4b7bf9 Added self to contributors list (a few years late) 2025-07-14 21:25:02 -04:00
65f8f8695f Added documentation on initializing ulist_wrapper in evaluate_ui_jbend 2025-07-14 21:24:17 -04:00
dcdd57c130 Merge pull request #4658 from evoyiatzis/patch-1
Improve text in compute stress/mop rst file
2025-07-14 21:15:22 -04:00
625811cc11 Clean up an intermediate comment in compute_sna_grid_kokkos.h 2025-07-14 21:09:22 -04:00
f8124ebe4c Merge pull request #4615 from akohlmey/roll-back-neighbor-swap
Roll back neighbor swap changes and flag items that need fixing
2025-07-14 20:43:13 -04:00
587be04ebc Tuning for AMD GPUs 2025-07-14 15:05:29 -07:00
a6653a2097 Update docs 2025-07-14 14:16:21 -06:00
e2a1e6459f Revert changes to Makefile 2025-07-14 14:11:40 -06:00
51383ede3d Update cmake 2025-07-14 13:59:57 -06:00
1a7fdf0ab2 Update Kokkos library in LAMMPS to v4.6.2 2025-07-14 13:53:42 -06:00
37253a21e3 Merge branch 'develop' of github.com:lammps/lammps into feature/batch-snap-ilp 2025-07-14 13:40:37 -06:00
b0ae7f8112 Fix warning by removing parentheses 2025-07-14 13:40:29 -06:00
4ff44d2a2f remove whitespace 2025-07-13 21:38:39 +02:00
4112954399 Improve text and use consistent symbols for the local stress 2025-07-13 21:33:37 +02:00
c6f788df01 missing whitespace 2025-07-13 20:37:11 +03:00
58b367dcdd trailing whitespace 2025-07-13 20:35:53 +03:00
6296d5bab6 typo 2025-07-13 19:56:28 +03:00
5382f9c645 integrate bosonic pimd documentation removed at fcb2eee686 2025-07-13 19:12:11 +03:00
919ef6d369 Merge branch 'develop' into mliap_indexing 2025-07-12 06:39:13 -04:00
88b56e0668 Remove statement without effect 2025-07-12 06:38:21 -04:00
d863b4c55f Merge branch 'develop' into roll-back-neighbor-swap 2025-07-11 21:03:03 -04:00
d34d6b79e3 Merge pull request #4653 from akohlmey/collected-small-changes
Collected small changes and fixes
2025-07-11 21:01:40 -04:00
e58290ee08 small doc update 2025-07-11 19:43:35 -04:00
906e3fd070 port support for per-type masses over from fix neighbor/swap 2025-07-11 19:18:28 -04:00
2a87321554 Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes 2025-07-11 18:47:53 -04:00
47a0fe90ec make Atom::set_mass() as called from pair styles compatible with per-atom masses 2025-07-11 18:47:07 -04:00
363ad54383 make fix neighbor/swap compatible with per-atom masses 2025-07-11 18:45:53 -04:00
7a739d03f6 Merge pull request #4651 from akohlmey/lammps-gui-improvements
LAMMPS-GUI Improvements
2025-07-11 17:41:12 -04:00
0e6991659f Merge branch 'develop' of github.com:lammps/lammps into feature/batch-snap-ilp 2025-07-11 13:09:16 -07:00
9d15c19387 Merge pull request #4642 from evoyiatzis/patch-1
Fix parallel execution of bonds for compute stress/mop and stress/mop/profile
2025-07-11 13:34:11 -04:00
6152906deb Revert "Handle per-atom masses"
This reverts commit 29dc28c615.
2025-07-11 13:01:08 -04:00
29dc28c615 Handle per-atom masses 2025-07-11 10:44:19 -06:00
6d335fb5a6 Fixed assignment of local i in pick_i_swap_atom. i, j should both be owned not ghost atoms on swapping procs 2025-07-11 10:26:36 -06:00
8d4615f96f Fix issues in GNU Makefile build system with KOKKOS package 2025-07-11 09:00:01 -06:00
4a1a932df6 Merge branch 'develop' into patch-1 2025-07-11 15:43:07 +02:00
9b42419446 fix logic bug 2025-07-11 07:09:28 -04:00
1b3ebcc857 account for all large memory allocations 2025-07-11 06:44:55 -04:00
3efdf22850 use memory->create() and memory->destroy() consistently
memory->smalloc() and memory->sfree() are not type-safe
2025-07-11 06:35:53 -04:00
1ff281dd3c make sure i is initialized, use comm->me instead of calling MPI_Comm_rank() 2025-07-11 06:34:47 -04:00
491f5d96b8 id_center should be of type tagint 2025-07-11 06:33:46 -04:00
bc3c85b6a4 re-add fix neighbor/swap doc page 2025-07-11 06:20:57 -04:00
efd0510873 update example outputs 2025-07-11 06:00:34 -04:00
5eb61491f0 Merge branch 'develop' into roll-back-neighbor-swap 2025-07-11 05:54:47 -04:00
192901f6d0 add sanity check to error out when the index picking fails. 2025-07-11 05:54:36 -04:00
4ed5e585c1 silence some warnings, either by changing the code or adding // NOLINT comments 2025-07-11 04:56:13 -04:00
72b5f21c57 correct implementation of restart for fix sprint/chunk 2025-07-11 04:42:38 -04:00
57d4c472a0 Updated pick_i_swap_atom for MPI_Bcast to avoid memory access leak 2025-07-11 02:39:57 -06:00
3e8807bee0 Merge branch 'develop' into collected-small-changes 2025-07-11 00:10:01 -04:00
b751add30b Merge remote-tracking branch 'github/develop' into lammps-gui-improvements 2025-07-11 00:06:52 -04:00
5fc24a8ba3 Merge pull request #4654 from akohlmey/clang-tidy-updates
Apply code modernization suggestions from clang-tidy
2025-07-11 00:06:18 -04:00
fd410779ac silence compiler warnings and apply small corrections 2025-07-11 00:02:53 -04:00
597346413e add 'make upgrade' target to doc makefile to update python packages in docenv 2025-07-10 23:00:16 -04:00
dcd073f8bd add small tweaks to the LAMMPS-GUI banner and how it is shown 2025-07-10 22:42:24 -04:00
440dae924d only restore old paths, if they exist, i.e. we are called from within LAMMPS-GUI 2025-07-10 20:26:02 -04:00
36e6469c9e fully restore original script code 2025-07-10 20:25:22 -04:00
f211c9dae0 comment and jnum variable 2025-07-10 17:48:03 -06:00
acfe419de2 updated ij indexing for mliap ace 2025-07-10 17:04:47 -06:00
74fe512c67 Merge remote-tracking branch 'github/develop' into roll-back-neighbor-swap 2025-07-10 18:29:54 -04:00
3515c5c6be try to suppres clang-tidy warnings 2025-07-10 18:29:28 -04:00
02e60884a3 disable clang-tidy on some code 2025-07-10 17:48:05 -04:00
6ced05927f use using instead of typedef 2025-07-10 17:40:05 -04:00
8807f6aafc disable clang-tidy 2025-07-10 17:32:43 -04:00
216d2b692f define lattice_t with using =, and move definition into the MEAM class scope 2025-07-10 17:25:55 -04:00
0b6444b9e5 replace #define and typedef with using = 2025-07-10 17:20:33 -04:00
8b4c6f7f98 exclude typedef struct from clang-tidy processing 2025-07-10 17:20:13 -04:00
3dba42f62e should use utils::inumeric for integer arguments 2025-07-10 17:08:34 -04:00
93efb0fcb7 disable clang-tidy checking 2025-07-10 17:03:15 -04:00
4f7777cc10 remove most standard C++ class functions, the struct is C-style. 2025-07-10 16:35:24 -04:00
445d10ae5a modernize by replacing C-style typedefs with C++ style using = 2025-07-10 15:58:45 -04:00
cde0d3dcdc another const cast to make the IBM LLVM compiler happy 2025-07-10 15:16:56 -04:00
05c044a712 whitespace 2025-07-10 13:00:45 -06:00
ff58d0319e Fix more issues with compute sna/grid/kk 2025-07-10 12:58:06 -06:00
1aabe28858 use qualified auto and using 2025-07-10 05:54:27 -04:00
90ad9e44f1 cosmetic suggestions from GitHub Copilot 2025-07-10 05:05:37 -04:00
fed5564520 add ticks to range sliders 2025-07-10 04:33:31 -04:00
d5b137c4e3 enable option to open the tutorial webpage for tutorial 8 2025-07-10 04:05:58 -04:00
1c8cf634db fix halt may only reset the timer timeout, if it trigged the timeout itself 2025-07-10 04:05:34 -04:00
61c6d32861 minor doc tweaks for readability 2025-07-10 01:01:41 -04:00
bd4c07772b update docs and screen shot 2025-07-10 00:50:19 -04:00
c70bda0cd2 add a couple horizontal separator lines 2025-07-10 00:44:05 -04:00
e517ee25d5 avoid uninitialized access to normflag 2025-07-10 00:43:39 -04:00
cfae257f8f fix typo 2025-07-10 00:12:48 -04:00
8a8a3228f3 avoid crashes when switching to a new file or a new empty document and close all windows 2025-07-10 00:10:18 -04:00
23343d5e5c add tooltips 2025-07-10 00:09:27 -04:00
2a25ce9d6e spelling a re-wrap 2025-07-10 00:09:10 -04:00
31ede566e9 intergrate the rest of simon's suggestions 2025-07-10 00:08:52 -04:00
35fcf5775c hack trying to appease macOS 2025-07-09 23:16:34 -04:00
054939bb23 Merge remote-tracking branch 'github/develop' into lammps-gui-improvements 2025-07-09 22:22:42 -04:00
a2971c5e42 Merge pull request #4650 from akohlmey/collected-small-changes
Collected small changes and fixes
2025-07-09 22:21:58 -04:00
ecfe7046e3 add rangeslider to chart window to plot subsets of data 2025-07-09 22:17:50 -04:00
9f11057b47 Revert "add stop button to chart display"
This reverts commit 1bb746aa87.
2025-07-09 21:29:31 -04:00
1bb746aa87 add stop button to chart display 2025-07-09 21:18:40 -04:00
7a98929a67 add rangeslider custom widget 2025-07-09 21:18:27 -04:00
a0b5e8ff73 refactor chart viewer title line. Now has two rows. display units and thermo norm 2025-07-09 20:08:24 -04:00
e09a87d121 remove rubberband feature since undoing the zoom doesn't work properly 2025-07-09 16:40:05 -04:00
0c8ac043e6 Merge branch 'develop' into collected-small-changes 2025-07-09 10:43:32 -04:00
6fef2326d6 Merge pull request #4649 from akohlmey/use-qualified-auto
Use qualified auto for improved readability
2025-07-09 10:42:00 -04:00
dec1fd2b92 apply and edit some changes suggested by @simongravelle 2025-07-09 10:41:08 -04:00
8f50f4fc96 Merge pull request #4638 from stanmoore1/backport_bugfixes
Backport bugfixes from #4608
2025-07-09 09:07:51 -04:00
c5c409062c Remove unused vars 2025-07-08 17:26:28 -06:00
a9c3eb5206 whitespace 2025-07-08 16:40:50 -06:00
cfe813c963 Fix bugs in Kokkos compute sna/grid 2025-07-08 16:16:47 -06:00
7ac03b6c9e fix crash on trying to free a NULL communicator 2025-07-08 16:17:48 -04:00
0cd2dac112 set LAMMPS-GUI version number to 1.7 2025-07-08 08:42:50 -04:00
711886034a to update the time stamp on the app bundle purge it during configure 2025-07-08 08:19:01 -04:00
6387689979 redesign the General settings preference tab and add defaults for tutorial buttons 2025-07-08 06:41:11 -04:00
b500c879f5 must use recursive delete on app bundle folder 2025-07-08 04:50:25 -04:00
4d9861e6a2 automatically quit the entire application when closing the editor window
avoid crashes and segfaults when simulation is still running
2025-07-08 04:40:44 -04:00
8aaf77c271 there is not much meaning in completing capture in the destructor.
the user should have already called EndCapture() if needed.
calling it in the destructor just causes memory corruption.
2025-07-08 04:34:41 -04:00
ace1b8026c must use a platform specific copy command 2025-07-08 03:01:16 -04:00
2b8b84788b fix grammar and reformat 2025-07-08 02:09:30 -04:00
7a2c051b69 delete app bundle folder. It will be recreated by macdeplotqt. 2025-07-07 21:35:54 -04:00
5ec4a6bd2e prevent using Restart LAMMPS while running and rename to Relaunch LAMMPS 2025-07-07 21:24:32 -04:00
4b2a04aab8 document Relaunch LAMMPS Instance 2025-07-07 21:21:16 -04:00
fd98ef2a59 fix typo 2025-07-07 20:22:06 -04:00
892c969ee6 save and restore PATH and LD_LIBRARY_PATH, so that xdg-open can launch a native executable 2025-07-07 20:21:54 -04:00
fd86feae7f Merge branch 'develop' into backport_bugfixes 2025-07-07 13:45:51 -06:00
a2439038c6 Fix issue with Kokkos SNAP on GPUs 2025-07-07 12:44:01 -06:00
0502d421b0 must use error->one() since only rank 0 is active at this point 2025-07-07 12:36:01 -04:00
1dc8c2d9a2 add a timeout option to the geturl command and set a default of 5 mins
the library default is to wait forever. Also the limit for connecting
was reduced to 30 seconds from 300.
2025-07-07 11:24:14 -04:00
5a158d59b4 small tweaks to error message boxes 2025-07-07 11:00:17 -04:00
25556a1bc1 add unit tests for additional conditions for splitting strings 2025-07-07 07:10:22 -04:00
adc202bd71 simplify 2025-07-07 06:39:15 -04:00
e4f9874974 simplify 2025-07-07 06:37:55 -04:00
adead22aef align with common conventions for pages documenting multiple similar styles 2025-07-07 05:46:25 -04:00
40b510c2c2 avoid crash when splitting line with incomplete quoting into words 2025-07-07 05:45:48 -04:00
ea939f6355 update changelog 2025-07-07 05:44:23 -04:00
477c3524b9 must clear variables before starting a new run since "clear" does not delete them 2025-07-07 05:38:57 -04:00
806000c9ee avoid crash from out-of-range access to string for partially quoted text 2025-07-07 05:18:01 -04:00
ddfc3f2d0b fix typo 2025-07-07 03:50:47 -04:00
9f0551104a display new LAMMPS-GUI banner image in docs and empty editor windows 2025-07-07 03:38:19 -04:00
a239e2b900 make sure these variables are always initialized 2025-07-06 14:03:50 -04:00
916655e382 use using 2025-07-06 13:57:28 -04:00
8ba1b9b122 use bool literals instead of integer constants 2025-07-06 13:57:19 -04:00
eaa3159c7f reorder initializer 2025-07-06 13:57:04 -04:00
fbf8856978 Mention LAMMPS-GUI as an example application for liblammpsplugin.h/.c 2025-07-06 13:41:16 -04:00
8e75c387ec modernize 2025-07-06 13:40:33 -04:00
72d73c4c45 remove unused class member and dead code 2025-07-06 13:05:36 -04:00
cdded2d51c improve error message 2025-07-06 05:25:03 -04:00
0d973d5a80 remove dead code and apply changes for clean compilation w/o OpenMP 2025-07-06 05:18:40 -04:00
449c59cf49 implement suggestion from GitHub CoPilot to make code consistent and simpler 2025-07-06 04:51:18 -04:00
1bf8f51664 add missing screenshot 2025-07-06 03:57:24 -04:00
50d15cded3 make precedence explicit 2025-07-06 03:18:46 -04:00
6722e55d5e should include C-math header since we use round() 2025-07-06 03:12:05 -04:00
44922cea16 show warning dialog at end of run, if I/O buffer usage was very high 2025-07-06 03:07:35 -04:00
da8ce40ffd track buffer usage and add API to query the maximum buffer use ratio 2025-07-06 03:05:46 -04:00
64080dce3e reduce overhead and avoid stalling by increasing the pipe buffer from 1k to the maximum of 64k 2025-07-06 01:25:08 -04:00
2d9f244c6c update LAMMPS-GUI documentation for most recent changes 2025-07-06 00:01:42 -04:00
01aa952968 update help index 2025-07-05 23:13:17 -04:00
7a74cad978 Merge remote-tracking branch 'github/develop' into lammps-gui-improvements 2025-07-05 23:11:32 -04:00
dd484cbde5 small improvements suggested by GitHub Copilot 2025-07-05 23:10:43 -04:00
1d377a1f26 add a CPU usage percentage indicator to the status bar 2025-07-05 19:49:32 -04:00
38d4c58115 support setting intel precision and gpu neigh and pair/only from preferences 2025-07-05 18:42:45 -04:00
ddc10064a2 set LAMMPS-GUI version to 1.6.15 2025-07-05 18:41:18 -04:00
e40d9c0eb2 resolve hotkey conflict for selecting GPU accelerator package 2025-07-05 14:08:42 -04:00
7863df8a76 update nthreads text field when accelerator is selected
the text is reset to 1 and editing disabled for None and Opt
2025-07-05 13:25:46 -04:00
2d8f3aaede document short-circuiting for ternary() variable function 2025-07-05 12:27:09 -04:00
b3eaf7e7f4 cache spcpu and tpcpu values so these thermo keywords can be used multiple times 2025-07-05 11:57:59 -04:00
7505ae3628 make handling of threads and accelerator selection more consistent, also buffer length 2025-07-05 10:49:22 -04:00
cbfedda573 only reset cached thermo data if first run or thermo style changed
this preserves last data from previous run for properties that are zero on the first step
2025-07-05 08:32:56 -04:00
8fbaf43319 make sphinx happy 2025-07-04 19:50:01 -04:00
1bf9fac5bb Merge remote-tracking branch 'github/develop' into collected-small-changes 2025-07-04 19:49:10 -04:00
276a6dcaa3 Merge remote-tracking branch 'github/develop' into patch-1 2025-07-04 19:44:25 -04:00
d20ef0d734 modify processing of ternary() so that only the first and one of the other arguments are evaluated 2025-07-04 19:09:52 -04:00
a85906236c fix typo 2025-07-04 18:14:08 -04:00
7ce7990bf9 Merge remote-tracking branch 'github/develop' into roll-back-neighbor-swap 2025-07-04 18:11:34 -04:00
b11c549dbd remove "fixed" comments, small stype updates 2025-07-04 18:09:57 -04:00
3dc92f8cc4 update handling of threads. make nthreads and LammpsGui class member 2025-07-04 17:46:51 -04:00
80b41eea9d Fixed cleanup TODO and tested functionality. MPI memory leak remains. 2025-07-04 15:39:22 -06:00
6795a2a066 Merge pull request #4019 from draneyj/develop
add hybrid monte carlo fix
2025-07-04 17:27:19 -04:00
70ba11e6bc small performance optimization by using std::move() 2025-07-04 17:12:48 -04:00
5fa2b88011 fix unlikely memory leaks 2025-07-04 17:12:27 -04:00
d34fc34e7b small optimization by using std::move() 2025-07-04 17:05:10 -04:00
553f2e0507 use move semantics 2025-07-04 17:00:28 -04:00
3218ad7c2a try to optimize by using emplace back 2025-07-04 17:00:18 -04:00
da0de5b81c guarantee that class members are not accessed uninitialized 2025-07-04 16:59:50 -04:00
a96d1f6363 tweak message to remain compatible with derived classes calling the same function 2025-07-04 16:30:13 -04:00
459bce40ad move constants from header to implementation, replace defines, and remove unused ones 2025-07-04 16:29:54 -04:00
602dd3b81b improve errors. add warning if non-nve time integration is used w/o rigid 2025-07-04 16:17:22 -04:00
479f7b9c1e spelling and add missing reference declarations to citations 2025-07-04 16:12:59 -04:00
d01478b2b1 remove one too many static added 2025-07-04 11:36:07 -04:00
d587e49403 add further guidance to documentation 2025-07-04 10:16:23 -04:00
3b6dbe6344 use qualified auto 2025-07-04 07:09:51 -04:00
ff3159cc76 use qualified auto 2025-07-04 07:02:07 -04:00
0ac62fdb28 flag statements and sections of code that we don't want to modernize 2025-07-04 06:58:37 -04:00
1462165b36 using macro instead of c++ function for nested min() 2025-07-04 06:46:05 -04:00
9b90b68e35 use using instead of typedef 2025-07-04 06:44:56 -04:00
fc6a643e53 make local functions static so their symbols are not exported 2025-07-04 06:26:12 -04:00
437e19c968 remove unused "using" statements 2025-07-04 06:08:25 -04:00
b0757e71ef Merge branch 'lammps:develop' into patch-1 2025-07-04 11:21:29 +02:00
03345a5999 improve errors 2025-07-04 05:10:45 -04:00
9a7c08c7e9 delete is safe for null pointers 2025-07-04 05:10:30 -04:00
c6c7131088 make constexpr and static 2025-07-04 05:09:44 -04:00
0e03822d59 hide global variables in anonymous namespace 2025-07-04 05:09:25 -04:00
68c2085f7a improve errors 2025-07-04 05:09:00 -04:00
281483bb25 don't truncate bigint to int 2025-07-04 05:08:44 -04:00
86731f99f6 new thermo keyword cpuuse for %CPU utilization 2025-07-04 04:40:28 -04:00
fedf0949db make some thermo settings accessible 2025-07-04 04:12:26 -04:00
d93002af6c improve error messages 2025-07-03 19:47:29 -04:00
31f1438a04 whitespace 2025-07-03 18:08:16 -04:00
d5f15d9151 Merge branch 'develop' into draneyj/develop 2025-07-03 18:07:18 -04:00
eb2600e05d clarify documentation 2025-07-03 17:23:24 -04:00
49bac65477 Merge branch 'develop' into improve-tests-for-set 2025-07-03 17:01:31 -04:00
78809d8f16 Merge pull request #4646 from akohlmey/lammps-gui-avoid-plot-slowdown
Reduce Impact of LAMMPS-GUI ChartViewer Performance Regression and Apply clang-tidy Fixes
2025-07-03 16:56:56 -04:00
acb2cbaaee update example log files 2025-07-03 14:38:46 -06:00
c69d95fd31 Merge branch 'develop' into patch-1 2025-07-03 23:07:12 +03:00
4bf7191833 whitespace 2025-07-03 15:48:01 -04:00
2cc7e0d1a4 fix handling cases with flags enabled but no potentials defined 2025-07-03 22:46:11 +03:00
df20f1f3fd update and relax epsilon ARM64 2025-07-03 15:45:04 -04:00
7ccaa18543 Merge branch 'develop' into lammps-gui-avoid-plot-slowdown 2025-07-03 15:40:28 -04:00
65f822ce72 plug memory leaks 2025-07-03 15:25:37 -04:00
a4e536e584 Merge pull request #4637 from akohlmey/collected-small-changes
Collected small changes and fixes
2025-07-03 15:12:38 -04:00
ac182284dd memory management matching comm classes 2025-07-03 14:09:07 -04:00
07567a6cc6 change defaults 2025-07-03 10:46:21 -04:00
9fd39a0657 add OpenMP parallelization to smoothing loop 2025-07-03 10:29:37 -04:00
466ffd82a3 add missing weblink 2025-07-03 09:17:39 -04:00
2c8c2bf278 rewrite based on suggestions from @simongravelle 2025-07-03 09:17:24 -04:00
04b5f042d2 Merge branch 'develop' into improve-tests-for-set 2025-07-03 05:42:23 -04:00
e999aaf4f3 Merge remote-tracking branch 'github/develop' into lammps-gui-avoid-plot-slowdown 2025-07-03 05:40:14 -04:00
c5e153ae29 update help index for recently added commands 2025-07-03 05:30:14 -04:00
c1f505f15f apply fixes suggested by GitHub Copilot 2025-07-03 05:24:02 -04:00
5118e38418 update changelog 2025-07-03 04:42:35 -04:00
6c709043b2 fix a couple bugs in processing special bonds JSON data for molecules 2025-07-03 04:27:44 -04:00
5ccbedb3c9 recover compilation when loading LAMMPS library dynamically 2025-07-03 03:46:17 -04:00
b45b6a74d1 improve and modernize using clang-tidy 2025-07-03 03:38:48 -04:00
436af21334 use qualified auto 2025-07-02 23:19:30 -04:00
b19e84541a update change log 2025-07-02 23:00:00 -04:00
4316267cc8 modernize calc_sgsmooth() and related functions and classes 2025-07-02 22:57:39 -04:00
705fc2aaf7 improve formatting of "about" text when LAMMPS is running. 2025-07-02 22:42:36 -04:00
98fd8e5f56 small performance tweak and make compatible with QT 5.12.x on Ubuntu 20.04LTS 2025-07-02 22:36:27 -04:00
a17aeca1ee discuss slowdown of simulations with too frequent thermo output and enabled smoothing 2025-07-02 22:11:24 -04:00
dfdac70dc6 speed up smoothed data series updates by avoiding append. 2025-07-02 22:10:47 -04:00
9994608532 we get better multi-thread performance without processor affinity 2025-07-02 22:05:58 -04:00
3334267265 fix example 2025-07-02 20:47:19 -04:00
875ac608a6 Only plot raw data in chartviewer by default.
Smoothing can slow down simulations with frequent thermo output or long runs.
One can always switch to smoothed or both outputs after the run (and back).
2025-07-02 20:27:48 -04:00
87a5898696 add domain calls 2025-07-02 19:54:05 -04:00
76d6117c6f add tests for fix set to tests for changing types and charges 2025-07-02 18:38:37 -04:00
f0620006f0 add explicit comm exchange 2025-07-02 18:03:02 -04:00
ba5d1b80d7 fix valgrind complaints 2025-07-02 17:51:38 -04:00
9741952ad5 ensure that flags are initialized across classes. use more C++ style variable declarations 2025-07-02 17:22:22 -04:00
a49c747519 simplify and make compatible with larger systems. 2025-07-02 17:09:05 -04:00
2f5d51e7cd cosmetic tweaks and generate log files 2025-07-02 15:02:32 -06:00
d9d5a4d8ec must use Error::one() when only on one MPI rank 2025-07-02 07:33:35 -04:00
e7a124206a add example command line for using install.py manually 2025-07-02 07:32:26 -04:00
3f92bad7f5 update description of using install.py to be more specific. mention -w flag 2025-07-01 09:29:07 -04:00
a1261a54c3 randomize solvent velocities as well when fix rigid enabled 2025-07-01 09:28:33 -04:00
74ed5134b3 no longer need to check for tags 2025-07-01 09:27:52 -04:00
004267c6ec fixed documentation 2025-07-01 09:26:52 -04:00
f7b911181e fix for parallel angle and dihedral stress calculation 2025-07-01 14:13:30 +02:00
acbdceb087 replace typedef with using 2025-06-30 23:32:58 -04:00
42e7b801d4 update code for default destructors 2025-06-30 23:32:32 -04:00
a79b945128 add explicit scope when calling virtual functions inside constructor or destructor
virtual dispatch is not available in those cases
2025-06-30 22:55:22 -04:00
b972821896 Merge branch 'develop' of github.com:lammps/lammps into backport_bugfixes 2025-06-30 20:51:38 -06:00
cb52abd965 no need for std::move on a const reference. used auto 2025-06-30 22:36:22 -04:00
d4eb800739 remove redundant static qualifiers 2025-06-30 22:32:21 -04:00
60b9fdf897 improve error messages 2025-06-30 22:17:51 -04:00
a2054657c7 determine argument offset value to be used with error pointers 2025-06-30 22:14:24 -04:00
3cf9b018a7 make certain that variables are initialized before used 2025-06-30 21:06:36 -04:00
f5c31f9df2 remove erroneous comm_forward = 12 2025-06-30 18:24:54 -04:00
5143423e92 remove old log files 2025-06-30 18:17:57 -04:00
97653e2626 fix examples 2025-06-30 18:16:30 -04:00
57fda06ecd ensure fix_rigid images are correct after false exchange 2025-06-30 17:09:34 -04:00
fff0b62aad track KE when momenta aren't resampled 2025-06-30 17:06:06 -04:00
de41dd53b2 make enum use consistent by moving it to the header 2025-06-30 16:31:53 -04:00
de97c8acdd correct function names 2025-06-30 16:09:34 -04:00
f547ddd2e9 fix a couple more cut-n-paste bugs 2025-06-30 15:55:56 -04:00
e6673ca64d remove redundant comparison 2025-06-30 15:37:19 -04:00
3e7f52ea91 fix bug detected by static code analysis 2025-06-30 15:27:33 -04:00
792d0e4d84 use anonymous namespace 2025-06-30 15:20:17 -04:00
e5374ce8e5 refactor/modernize handling of internal fixes in pair styles srp and srp/react 2025-06-30 14:42:08 -04:00
58a911c6a0 update use of const for known keywords 2025-06-30 10:07:27 -04:00
e74aeafbfb remove whitespace from compute_stress_mop_profile.cpp 2025-06-30 16:01:32 +02:00
1d3030023f use qualified auto and improve errors 2025-06-30 09:52:11 -04:00
f1215e904a replace typedef with using 2025-06-30 09:46:22 -04:00
85f1eebd73 modernize by using anonymous namespace 2025-06-30 09:45:15 -04:00
0f5d18917c Fix bond contributions to compute stress/mop/profile 2025-06-30 15:35:03 +02:00
23f941e0bb Fix parallel execution of bonds for compute stress/mop 2025-06-30 15:27:15 +02:00
22ec573638 avoid uninitialized access, remove commented out code 2025-06-30 09:00:06 -04:00
7c35e8407c avoid uninitialized access 2025-06-29 23:14:55 -04:00
4680fa669c relax epsilon to pass tests on macOS 2025-06-29 22:40:52 -04:00
3ae21e0bfb Merge remote-tracking branch 'github/develop' into collected-small-changes 2025-06-29 22:32:43 -04:00
63fcdb6e52 Merge pull request #4634 from akohlmey/static-analysis-updates
Updates for LAMMPS from static code analysis
2025-06-29 22:25:15 -04:00
cd44539429 modernize by using anonymous namespace 2025-06-29 19:56:42 -04:00
47332f8e46 no need to make member const 2025-06-29 19:28:00 -04:00
fee96bc777 make double to bool/int/tagint conversions explicit 2025-06-29 19:10:29 -04:00
b279ba9a40 follow one definition rule by moving functions into class definition 2025-06-29 18:47:40 -04:00
087b9a3b6e bugfix for improper style class2/kk taken from PR 4593
passes unit test for Kokkos/OpenMP
2025-06-29 18:18:24 -04:00
5a468fc05c Merge branch 'develop' into backport_bugfixes 2025-06-29 18:11:13 -04:00
9b378fadf4 Merge branch 'develop' into collected-small-changes 2025-06-29 02:41:19 -04:00
ed712e053f recognize a couple more Windows build numbers 2025-06-28 09:55:20 -04:00
0c68c4d493 Merge pull request #4636 from wapisani/fix_bond_create_inter_intra
Add support for inter-/intra-molecular bonding to fix bond/create
2025-06-28 09:43:54 -04:00
3e12c3f773 flag move constructor and swap operator as noexcept for performance 2025-06-28 05:21:25 -04:00
7bc86899b3 type fixes and error message updates 2025-06-28 05:20:49 -04:00
ac7013432b don't use double as boolean, use qualified auto 2025-06-28 04:48:47 -04:00
039fb94faa improve errors and apply clang-format 2025-06-28 04:45:02 -04:00
8c64b2090f process tilt parameters correctly and consistent with FixNH class 2025-06-28 04:38:10 -04:00
77417e2223 use correct type 2025-06-28 04:37:24 -04:00
2e4f29c900 use correct type and converions function 2025-06-28 04:24:46 -04:00
8dae514e03 use correct types 2025-06-28 04:06:36 -04:00
22a42446d3 tap_flag is integer and thus we should use utils::inumeric() 2025-06-28 03:58:27 -04:00
2968bfa8d9 nsvector_total should be an int 2025-06-28 03:53:34 -04:00
669f60b692 use qualified auto and avoid redundant types 2025-06-28 03:51:09 -04:00
1bdf30103f used correct type parser and make conversions explicit 2025-06-28 03:50:51 -04:00
4992caed95 more modernization of DIFFRACTION package 2025-06-28 03:37:42 -04:00
f425f2ab26 modernize 2025-06-28 03:30:10 -04:00
309e374867 use utils::inumeric() for parsing integers, using qualified auto 2025-06-28 03:19:17 -04:00
d5a344a5c8 modernize 2025-06-28 03:18:52 -04:00
481749dc35 modernize argument processing and error messages 2025-06-28 03:07:17 -04:00
14b1241db2 use utils::inumeric() for reading integer arguments 2025-06-28 03:05:03 -04:00
4d26bd5fd5 ndouble is an int 2025-06-28 03:04:44 -04:00
5fe4c9149f use qualified auto 2025-06-28 03:04:33 -04:00
a24aeb3fc6 icut, jcut should be doubles 2025-06-28 03:04:23 -04:00
0cd4ea4d04 don't use doubles as boolean 2025-06-28 02:34:58 -04:00
8726deb9b6 newton_bond is int not double 2025-06-28 02:34:39 -04:00
46561f57bd use utils::inumeric() to parse integers 2025-06-28 02:34:22 -04:00
aacc30c4d7 no benefit from declaring _tid const 2025-06-28 02:33:55 -04:00
2833b7adbd make cast to double explicit 2025-06-28 02:33:38 -04:00
11c4a8b49c use math.h function without std:: prefix 2025-06-28 02:22:25 -04:00
c28869124b don't truncate cuberoot to single precision 2025-06-28 02:22:09 -04:00
bd98354691 make cast to double precision explicit 2025-06-28 02:17:25 -04:00
109aec74ea remove one more implicit truncation of precision. update unit test again. 2025-06-28 02:06:49 -04:00
588ed11e85 avoid comparison with different signedness 2025-06-28 02:01:48 -04:00
be5602c44f apply clang-format 2025-06-28 02:01:32 -04:00
e78d85725b convert to internal linkage with anonymous namespace 2025-06-28 02:01:23 -04:00
1b36451f6a modernize. turn static inline into just inline 2025-06-27 23:58:11 -04:00
d168de00db silence compiler warnings 2025-06-27 23:57:37 -04:00
0c6ce8f23c fix typo 2025-06-27 23:27:44 -04:00
3ffe858a8b remove dead code and protect from neighbor list with special neighbors
this addresses most of issue #4639
2025-06-27 23:25:15 -04:00
c279d194dc be paranoid about invalid molecule templates 2025-06-27 22:47:50 -04:00
6b58058bca memory is accumulated in doubles not ints 2025-06-27 22:38:48 -04:00
0b73966a23 avoid unneeded copies by using const references where allowed 2025-06-27 22:36:23 -04:00
5cecfb5c4d use explicit type cast 2025-06-27 22:20:41 -04:00
d2d613c8b4 bugfix: incorrect application of abs() to doubles
@jtclemm this looks like a real bug.
Can you please check how much of an impact this change has?
2025-06-27 22:20:32 -04:00
8ddd474145 use qualified auto, make implicit type casts explicit 2025-06-27 22:13:44 -04:00
a8fe7e9252 modernize 2025-06-27 22:13:16 -04:00
3dd0971aeb update unit test reference 2025-06-27 22:06:09 -04:00
888543ce6d improve loopup accuracy 2025-06-27 22:05:40 -04:00
58e67e95f8 Merge remote-tracking branch 'github/develop' into static-analysis-updates 2025-06-27 21:48:40 -04:00
e41fb67903 update unit tests for changes to tabulated coulomb 2025-06-27 21:48:03 -04:00
a8d4666233 more accurate processing of coulomb tables through explicit type casts 2025-06-27 21:47:53 -04:00
4397a62be9 Merge remote-tracking branch 'github/develop' into collected-small-changes 2025-06-27 18:59:45 -04:00
575411c92c Merge pull request #4580 from stanmoore1/kk_update_4.6.1
Update Kokkos library in LAMMPS to v4.6.1
2025-06-27 15:05:16 -04:00
e139d935ab missed one conversion to general fix style 2025-06-27 14:26:16 -04:00
786f113d3e whitespace 2025-06-27 14:24:11 -04:00
6052744175 modernize error messages 2025-06-27 14:21:42 -04:00
d1ea7fa678 Small tweak from @cjknight for Aurora performance 2025-06-27 10:11:09 -06:00
bfb26e7ee0 Merge branch 'develop' of github.com:lammps/lammps into feature/batch-snap-ilp 2025-06-27 10:06:28 -06:00
bfd027e806 Fix compile error 2025-06-27 10:01:23 -06:00
f1d19c96cb Merge branch 'develop' of github.com:lammps/lammps into kk_update_4.6.1 2025-06-27 09:50:48 -06:00
afb427a94d Fix GPU/CPU data transfer issues 2025-06-27 09:37:31 -06:00
f090a63536 Fix more data issues 2025-06-27 09:31:18 -06:00
339c570b3e Fix Kokkos MLIAP data transfer issues on GPUs 2025-06-27 09:30:03 -06:00
07eeb6c5f9 add note about compile failure 2025-06-27 09:41:46 -04:00
a02eff6e40 document removal of Error::message() 2025-06-26 18:47:39 -04:00
77ea2b3af0 update unit tests for missing error->message() 2025-06-26 18:37:44 -04:00
7d7327e706 recommend to install the release version of gcovr 2025-06-26 18:29:17 -04:00
2bf03dbcdf apply clang-format 2025-06-26 18:28:59 -04:00
82c2bfe47c remove message() from Error class as it is superseded by utils::logmesg()
Also fix the few remaining cases to used utils::logmesg()
2025-06-26 18:27:09 -04:00
7b79382fa7 Update fix_bond_create.rst with inter/intra-molecular bonding info 2025-06-26 15:24:31 -05:00
a4121d44a2 Added molecule_keyword
Associated with the inter/intra-molecular bonding change
2025-06-26 15:12:10 -05:00
d5e938f949 Added support for inter/intra-molecular bonding
Copy over inter/intra-molecular bonding from fix bond/react
2025-06-26 15:10:19 -05:00
8095b9eec0 use qualified auto 2025-06-26 14:49:56 -04:00
bf1ad04555 don't use floating point as boolean 2025-06-26 14:49:47 -04:00
4a58be05fa simplify 2025-06-26 14:42:13 -04:00
f763420c53 use qualified auto 2025-06-26 01:06:27 -04:00
fe7bdf5941 make destructor virtual 2025-06-26 01:06:16 -04:00
ed279cb9f9 fix up more cases where floating point numbers were used as boolean 2025-06-26 00:59:02 -04:00
5ad24fc733 restore old version and add comment why it cannot be modernized 2025-06-26 00:22:59 -04:00
4309666fa2 remove exception qualifier 2025-06-26 00:11:29 -04:00
3c13eebcb2 must use override instead of virtual 2025-06-25 23:56:25 -04:00
e24b329e1b avoid unnecessary string copies as parameters 2025-06-25 23:51:22 -04:00
3e9560190c don't use floating point numbers as booleans 2025-06-25 23:48:06 -04:00
7597a227f4 modernize: replace typedef with using, use = default for default members 2025-06-25 23:39:38 -04:00
2a3afae3ff modernize: use range based loop and .data() of containers 2025-06-25 23:39:03 -04:00
ad8d722c68 use C++11 style initializer 2025-06-25 23:19:08 -04:00
1906444a1d use utils::inumeric() for integers and use qualified auto 2025-06-25 23:16:17 -04:00
de46b3b8bf modernize in colvars package 2025-06-25 23:11:26 -04:00
e9b5e55f18 used .data() to access underlying raw data of container 2025-06-25 20:22:30 -04:00
96d1704b8e need another epsilon relaxation 2025-06-25 20:21:23 -04:00
9cc2638c91 modernize code 2025-06-25 20:02:41 -04:00
b093094d5e avoid copying vectors as arguments and pass a const reference instead 2025-06-25 19:57:05 -04:00
7d86d7f89a use 'const int' instead of 'int const' to be consistent with the rest of LAMMPS 2025-06-25 19:56:59 -04:00
202aeaf1a5 remove redundant return statements at the end of functions returning void 2025-06-25 19:46:46 -04:00
fce4006fda address minor memory management issues 2025-06-25 19:46:15 -04:00
6934a31878 relax epsilon again to pass test on macOS 2025-06-25 19:30:19 -04:00
cb9b0cdaf2 update unit test and its epsilon due to removal of single precision math in pair style 2025-06-25 19:01:18 -04:00
c1665cd378 convert to double directly 2025-06-25 18:50:08 -04:00
03067d0059 promote constants to double to avoid float/double conversions 2025-06-25 18:47:23 -04:00
f6befb18ae follow LAMMPS programming style more closely 2025-06-25 18:41:26 -04:00
5711acc9ef avoid float/double conversions but convert directly to double 2025-06-25 18:41:08 -04:00
dcd521e9c6 fix static code analysis issues in Info class 2025-06-25 12:43:05 -04:00
80758cef2d make Param args const 2025-06-25 12:12:53 -04:00
4bd0258bfd add more casts to double for table lookup 2025-06-25 12:12:07 -04:00
5d3a080db7 Merge remote-tracking branch 'github/develop' into static-analysis-updates 2025-06-25 11:20:44 -04:00
b7be53f3fc Merge pull request #4633 from jtclemm/rheo
Fixes to RHEO package
2025-06-25 11:18:27 -04:00
7e3c61b831 use explicit typecase in coulomb table lookup in a few more cases 2025-06-25 07:28:05 -04:00
4e28af6219 move typecast to the proper position to avoid implicit type conversion 2025-06-25 07:14:46 -04:00
dba24555d1 fully unroll loop 2025-06-25 06:58:15 -04:00
fdc3f50298 correct API leading to undesired int/double conversions, remove dead code 2025-06-25 06:54:13 -04:00
af81f944d7 must revert changes due to broken GCC in Rocky/CentOS/RHEL 8.x 2025-06-25 06:48:16 -04:00
5b10e2f653 make exception settings consistent 2025-06-25 06:27:49 -04:00
a03d2a66c9 recover compilation of INTEL package 2025-06-25 01:00:35 -04:00
9fbb49f401 use qualified auto 2025-06-25 00:46:11 -04:00
d4ba431117 use nullptr instead of NULL 2025-06-25 00:31:44 -04:00
b0dd929b6d add missing overrides 2025-06-25 00:31:33 -04:00
3b1f639ddf add default constructor and default virtual destructor 2025-06-25 00:17:52 -04:00
a92fa56a3e formatting 2025-06-25 00:17:30 -04:00
8ca9aafff2 remove prototype of non-existing member function 2025-06-25 00:17:18 -04:00
e84c6743d9 must use utils::inumeric() for integers 2025-06-25 00:16:55 -04:00
8a04b9c498 remove redundant typecast 2025-06-25 00:16:14 -04:00
7edf4e567f remove redundant void function argument 2025-06-24 23:53:23 -04:00
656ea3569e use qualified auto 2025-06-24 23:53:09 -04:00
b672c30428 add missing overrides and format them consistently 2025-06-24 23:52:59 -04:00
337fca1305 use using instead of typedef 2025-06-24 23:51:59 -04:00
29651c4bb1 we're parsing an integer here 2025-06-24 23:29:19 -04:00
54eed8af02 .c_str() is not needed here 2025-06-24 23:28:53 -04:00
92ccbd13a5 correctly apply override 2025-06-24 23:28:32 -04:00
766a07c5d4 use explicit cast to double when promoting float lookup value from coulomb table 2025-06-24 23:24:32 -04:00
278cc0a039 replace implicit bool on floating point number with explicit comparison
also re-indent for consistency
2025-06-24 23:20:49 -04:00
33cc2117c6 use qualified auto 2025-06-24 23:19:57 -04:00
57ec008a66 use qualified auto 2025-06-24 22:52:29 -04:00
230121c2c7 make use of override consistent 2025-06-24 22:48:44 -04:00
f5d54a825f use qualified auto 2025-06-24 22:48:31 -04:00
61bfc38961 use explicit scope since virtual tables are not active yet 2025-06-24 22:48:01 -04:00
0cd6c5c3ec remove dead code 2025-06-24 22:36:51 -04:00
c242294227 use auto for redundant type specification 2025-06-24 22:36:39 -04:00
bf90e9b03e must used override 2025-06-24 22:35:43 -04:00
af9a3d933b make consistent for both branches 2025-06-24 22:15:04 -04:00
687e1ddb53 consolidate procs2grid2d implementation and initialization before call 2025-06-24 22:02:52 -04:00
03611c95ae improve error messages 2025-06-24 20:38:29 -04:00
db244166ca Merge branch 'develop' into rheo 2025-06-24 20:29:18 -04:00
8dad9a0f68 Merge pull request #4630 from akohlmey/collected-small-changes
Collected small changes and fixes
2025-06-24 20:17:41 -04:00
08d81a5ac2 Correcting simple variable type mistake 2025-06-24 12:08:54 -06:00
938f7fa0ef remove clang-tidy support from CMake since we now run this automatically 2025-06-24 07:49:57 -04:00
63c9987ec8 make scope explicit since virtual tables are not set up in constructor 2025-06-24 06:13:13 -04:00
d0c460e7f7 flag move constructor and swap function as noexcept for improved performance 2025-06-24 06:12:49 -04:00
e8780449d8 remove redundant part from logical expressions 2025-06-24 05:47:36 -04:00
df04fc943d make implicit boolean conversions explicit 2025-06-24 05:47:05 -04:00
264750e47c no need to run sphinx-build twice after updating sphinxfortran extension from upstream 2025-06-24 00:41:10 -04:00
b61410bde0 some additional explanations for neighbor boost single error 2025-06-24 00:16:00 -04:00
80fbdceff2 reformate for improved readability and make some updates due to changes in the code 2025-06-24 00:09:46 -04:00
24b15f7e46 add false positives 2025-06-24 00:09:18 -04:00
e45299f620 must load numpy into docenv to correctly process python numpy wrapper docs 2025-06-24 00:09:09 -04:00
179cce90bc use C++11 style of disabling constructors 2025-06-23 23:20:26 -04:00
8c12ab5db0 update a few more rounding cases with std::lround() 2025-06-23 23:17:14 -04:00
f7f5a3e3e4 replace static_cast<int>(val + 0.5) with C++11's std::lround() 2025-06-23 23:07:13 -04:00
7e3d6026d4 Restoring rheo options to set 2025-06-23 20:53:51 -06:00
d5d8887eb9 improve error messages 2025-06-23 22:49:17 -04:00
56f839f2e1 replace custom nint() function with C++11's std::lround() 2025-06-23 22:49:06 -04:00
a7b7be26dc improve errors 2025-06-23 22:42:48 -04:00
50ba0e577e cast to double before printing 2025-06-23 22:37:27 -04:00
727c0b251a Clarifying exception in fix deform doc 2025-06-23 20:35:53 -06:00
b94c41c05a Fixing some static code analysis issues in RHEO 2025-06-23 20:35:36 -06:00
e9a578a212 t status
Merge branch 'develop' into rheo
2025-06-23 19:50:29 -06:00
750e663be8 try to suppress false positive from static code analysis (natom is always > 0) 2025-06-23 19:21:00 -04:00
8305c97b69 address some issues flagged by static code analysis 2025-06-23 19:20:32 -04:00
8cf24edc21 improve error messages and suppress static code analysis warnings 2025-06-23 19:20:00 -04:00
249c6d6de9 add emacs local variable tweaks and add some missing docstrings 2025-06-23 16:51:33 -04:00
bfa19f678d future-proof iarray() and darray() conversions and document them 2025-06-23 16:29:12 -04:00
8401b6aee8 use utils::inumeric() instead of utils::numeric() for integers 2025-06-23 06:57:51 -04:00
9d6758f269 merge two if statements with the same condition following each other 2025-06-23 06:43:59 -04:00
70d36b1b4c when finalizing from the fortran module we should also free the external fix storage 2025-06-22 21:48:57 -04:00
4a9fa1ba87 restore compilation without -DNDEBUG 2025-06-22 18:40:58 -04:00
b3c403f464 run KOKKOS force style unit tests with serial when OpenMP is not available 2025-06-22 18:29:45 -04:00
12dcaa2d03 eliminate compiler warnings 2025-06-22 18:12:20 -04:00
1e6eeda958 remove dead code and address warnings from static code analysis 2025-06-22 17:49:47 -04:00
c6478e245a fix up emitterutils source file in bundled yaml-cpp in ML-PACE for GCC 15+ 2025-06-22 17:22:41 -04:00
cfe87f928d update email address 2025-06-22 16:36:50 -04:00
469846e73c correct broken doc line 2025-06-22 07:22:36 -04:00
9b382dac41 apply more pylint recommendations 2025-06-21 23:22:34 -04:00
679806206d detect header keywords and section titles from data files and print suitable error 2025-06-21 17:59:54 -04:00
c118af34e0 small doc update 2025-06-21 17:58:49 -04:00
46fc4b21a5 make fix deposit and fix pour compatible with body particles from molecule templates 2025-06-21 17:17:39 -04:00
2b3af7b371 silence compiler warnings 2025-06-21 17:05:36 -04:00
aecc85e3d5 avoid out-of-bounds memory access when registering fix external callbacks 2025-06-21 16:42:39 -04:00
e3b1d27e0a whitespace 2025-06-21 14:34:01 -04:00
06d47f7279 didn't count if atom-id was used 2025-06-21 14:32:18 -04:00
fc9efa1586 update documentation for the recently added sections in JSON format molecule files 2025-06-21 13:48:11 -04:00
0310959053 use consistent formatting of error messages and comments 2025-06-21 12:59:40 -04:00
9360038013 implement the processing for special bonds in JSON 2025-06-21 12:59:15 -04:00
0caaca8a05 honor atom-ids in Special Bonds section 2025-06-21 12:36:31 -04:00
9d38652033 consistently quote JSON fields with double quotes 2025-06-21 12:34:17 -04:00
c08ee92801 correctly honor atom-id in Special Bond Counts section 2025-06-20 23:05:58 -04:00
95fb6c75d2 support special:counts section for JSON data, only special:bonds missing 2025-06-20 23:05:38 -04:00
67582ebf14 some error hint updates based on recent discussions on MatSci.org 2025-06-20 17:45:37 -04:00
8dff25296b restore pylammps.py 2025-06-20 14:42:52 -04:00
b036c911e7 fix copy-n-paste bug 2025-06-20 14:23:22 -04:00
6f72a56b4c stricter matching of header items and skip comments right away 2025-06-20 14:12:25 -04:00
fb088cdc57 require .json extension for JSON format molecule files 2025-06-20 14:12:00 -04:00
c98ebb669e trigger warning on the correct fix style name 2025-06-20 10:08:14 -04:00
bb0bd289b7 update unit tests 2025-06-20 08:38:09 -04:00
b909a782b6 revert double adding of body info in create_atoms 2025-06-20 08:07:17 -04:00
6fff591c0d more checks 2025-06-20 07:51:58 -04:00
c6057f3780 support creating body particles from molecule templates in create_atoms 2025-06-20 07:31:58 -04:00
765b3ad487 need fewer checks with JSON data 2025-06-20 07:30:59 -04:00
9615cb466c support processing "bodies" sections from JSON data 2025-06-20 07:30:43 -04:00
500373d72b correct error message 2025-06-20 07:24:35 -04:00
25fecf7b7d update format 2025-06-20 07:24:21 -04:00
18455d07fe list possible pair styles with SPC Howto. Add comment about cutof vs. long-range coulomb 2025-06-20 04:24:13 -04:00
c8ce2a0390 minor tweaks and modernizations, apply clang-format 2025-06-18 20:09:44 -04:00
7601a217b7 modernize and improve error messages 2025-06-18 20:02:47 -04:00
af3b1c5423 store fix rigid/small id and check if it still exists during init() 2025-06-18 20:02:24 -04:00
fc3d971119 replace outdated inputs with new versions 2025-06-18 20:00:51 -04:00
b864116719 spelling edits 2025-06-18 15:46:58 -06:00
d022f1cf48 whitespace changes 2025-06-18 15:26:34 -06:00
4fa97ee0dd changes to doc page and cosmetic changes to src files 2025-06-18 14:47:01 -06:00
97d7e9e4a1 correct cut-n-paste errors 2025-06-18 10:16:19 -04:00
8c0894fa84 fix issues causing failed tests 2025-06-18 07:49:15 -04:00
004816a4ba update tests for changed argument names 2025-06-18 07:09:03 -04:00
6934932383 document function 2025-06-18 06:55:30 -04:00
3f6dfa27bd apply pylint and refactor accordingly 2025-06-18 06:51:17 -04:00
40d88e9bda revert incorrect additions 2025-06-18 03:35:28 -04:00
210fdb8b98 process "shake:atoms" and "shake:types" sections in JSON data 2025-06-18 00:08:28 -04:00
ad722310b1 reformatted code and doc page 2025-06-17 15:28:21 -06:00
e01640c4f5 fix out-of-bounds initialization for cvatom array 2025-06-17 17:02:00 -04:00
07c91f396e fix out-of-bounds access bug reported in issue #4632 2025-06-17 16:43:07 -04:00
c5628e5ccd Merge branch 'develop' into hmc 2025-06-17 14:27:03 -06:00
ec2ef5b14c fix more issues with reading Shake sections in native file format 2025-06-17 13:55:16 -04:00
03a418809d implement general shake flags checking and partial JSON processing 2025-06-17 10:32:36 -04:00
2f088749ad add shake entries to schema 2025-06-17 10:31:49 -04:00
635719a2ec Correct implementation to actually follow the documentation. 2025-06-17 10:31:17 -04:00
72ea12b0f9 fixed compilation error due to a typo 2025-06-17 08:42:22 -05:00
632bc8f20d Removed line apparently copied from compute displace/atom 2025-06-17 14:56:43 +02:00
9a81c95104 document unchanging group size restriction in compute msd 2025-06-17 06:02:43 -04:00
624c7a5ab8 improve errors in compute msd 2025-06-17 05:57:24 -04:00
eeaca93974 the number of atoms in the compute msd group must not change 2025-06-17 05:51:03 -04:00
515ccac51c avoid copies of C++ strings 2025-06-16 20:19:53 -04:00
53fec5563c Merge pull request #4543 from d-immel/apip
adaptive-precision interatomic potentials (APIP)
2025-06-16 15:56:12 -04:00
47fae6b786 Merge pull request #4628 from akohlmey/collected-small-changes
Collected small changes and fixes
2025-06-16 13:41:25 -04:00
0538518dbd add missing entries to .gitignore 2025-06-16 12:43:12 -04:00
a5e4123606 Merge branch 'develop' into feature/batch-snap-ilp 2025-06-16 12:31:50 -04:00
0a1ade0bce Merge branch 'develop' into roll-back-neighbor-swap 2025-06-15 17:45:13 -04:00
8f31b62e15 make flow of control more obvious 2025-06-15 17:39:06 -04:00
d640543185 fix whitespace 2025-06-15 15:29:35 -05:00
b5809aff67 updated the doc page for the new parameters 2025-06-15 15:20:56 -05:00
b3423e9b7a allow nbor build and bond block sizes to be specified from the command line 2025-06-15 15:04:42 -05:00
d38f97e465 remove dead code 2025-06-15 05:40:39 -04:00
bb1b854b47 check for empty molecule to avoid division by zero 2025-06-15 05:40:16 -04:00
d95d97db28 remove dead code, avoid uninitialized access 2025-06-15 05:25:19 -04:00
a6b30c35ac use more obvious flow of control that does not confuse static code analysis 2025-06-15 05:24:37 -04:00
7fb930daed start adding tests for JSON format molecule files 2025-06-15 00:00:59 -04:00
72538fbb84 warn about inconsistent units only during the first pass reading the file 2025-06-14 23:36:20 -04:00
d775aa1566 Update MC.cmake
add missing `set_property()` call
2025-06-14 19:23:36 -04:00
1fc6d4d3b6 Update MC.cmake
add missing `endif()`
2025-06-14 19:22:14 -04:00
97d09c2ec4 update changelog 2025-06-14 19:14:01 -04:00
4bc5bc3d18 update label only when needed 2025-06-14 19:09:53 -04:00
c5c1f47c20 move redundant code to find pointer to main widget to helper function 2025-06-14 19:04:43 -04:00
fdc199e7cc Merge branch 'develop' into develop 2025-06-14 18:15:12 -04:00
0ea4ba28bf Merge remote-tracking branch 'github/develop' into apip 2025-06-14 18:00:41 -04:00
6004a58ab4 fix spelling issues 2025-06-14 17:59:01 -04:00
90df96b16f fix bugs detected by GitHub Copilot 2025-06-14 17:33:06 -04:00
7dc4e17e0c fix compilation with MPI STUBS 2025-06-14 12:59:07 -04:00
2d5f02a398 add lammps_add_molecule API to the C-library interface and python/fortran module 2025-06-14 12:46:36 -04:00
faa1dbc19d add missing type check and setting of ntypes for json data molecules 2025-06-14 11:48:11 -04:00
ea23af48d3 only perform size check if section is present 2025-06-14 11:47:24 -04:00
e2cd2a1a17 make error handling for checking the handle and its state more consistent 2025-06-14 11:18:12 -04:00
88f5ad160a use "const std::string &" instead of "const char *" it will be converted anyway 2025-06-14 11:16:06 -04:00
81bfcb80e7 add missing prototype 2025-06-14 11:15:05 -04:00
df1d70bf99 move up re-initialization one level to avoid uninitialized access 2025-06-14 09:05:29 -04:00
ced0d350f0 handling parsing exceptions and check for error creating a backup 2025-06-14 09:02:00 -04:00
4b32e58f90 make sure that all molecule members are initialized 2025-06-14 08:48:25 -04:00
1475111f7f use different ccache storage keys for gcc and clang 2025-06-14 06:10:47 -04:00
848ef74459 download sphinx_toolbox extension and enable "collaps" directive 2025-06-14 06:04:54 -04:00
5013b80434 Merge remote-tracking branch 'github/develop' into collected-small-changes 2025-06-14 05:20:05 -04:00
08d2856558 Merge pull request #4627 from Saric-Group/bugfix/bond-react-peratom-mass
Fix segfault when masses are missing in post-reaction template in per-atom systems
2025-06-14 05:18:47 -04:00
2c9dac5505 Merge branch 'develop' into bugfix/bond-react-peratom-mass 2025-06-13 16:39:44 +02:00
4d6a085361 make include guard consistent with file name 2025-06-13 08:58:48 -04:00
88f777226e restore example 2025-06-13 08:57:37 -04:00
22082854ad restore documentation files 2025-06-13 08:55:10 -04:00
ca6558fea4 Merge branch 'develop' into roll-back-neighbor-swap 2025-06-13 08:48:50 -04:00
1ba1b7111d Merge branch 'develop' into apip 2025-06-13 08:42:29 -04:00
ee165e72de minor changes of APIP doc page 2025-06-13 12:15:03 +02:00
3a628ce4b1 simplify by returning new variable index in creator function and avoid calling finder 2025-06-13 04:37:09 -04:00
c5920eeb8d stop installing components from the downloaded pace library 2025-06-13 03:30:33 -04:00
5b8c505c2d only strip debug info 2025-06-13 02:19:01 -04:00
c79a1a6bed flag as development version 2025-06-13 02:18:35 -04:00
0d2f47ddd4 Merge pull request #4613 from akohlmey/next_release
Set version date for next feature release
2025-06-13 02:08:04 -04:00
336bb4622d add a few missing version tags 2025-06-13 00:08:05 -04:00
380ad17cf3 Merge branch 'develop' into next_release 2025-06-13 00:01:50 -04:00
949bac6b4a Merge pull request #4614 from akohlmey/collected-small-fixes
Collected small changes and fixes
2025-06-12 23:59:06 -04:00
4865235998 small doc tweaks and update for the simplified installation 2025-06-12 22:49:38 -04:00
dcf604875c cosmetic 2025-06-12 22:34:56 -04:00
3052bc7f4c make added comments consistent and consistently formatted 2025-06-12 22:31:33 -04:00
6df845a8d8 Merge remote-tracking branch 'github/develop' into apip 2025-06-12 22:27:03 -04:00
fa59b1c6f2 correct and simplify install script for legacy build system 2025-06-12 22:25:55 -04:00
66684deb9f Merge pull request #4600 from akohlmey/molecule-refactor-for-json
Refactor Molecule class to add support for JSON format molecule files
2025-06-12 22:22:39 -04:00
550048f458 Merge branch 'develop' into molecule-refactor-for-json 2025-06-12 21:21:38 -04:00
37b02a27fa improve error messages 2025-06-12 21:21:14 -04:00
f389b6676b make inconsistent units an error; special case: "real" and "metal" are compatible 2025-06-12 21:20:52 -04:00
f9de296ed1 make "coords" optional and infer natoms from "types" instead 2025-06-12 21:19:32 -04:00
a9c5d095e4 Merge pull request #4621 from akohlmey/plugin-add-run-min-style
Add support for run and minimize style plugins and refactor plugin handling to become global
2025-06-12 20:35:15 -04:00
2d10754930 Merge pull request #4624 from ethan-puyaubreau/cuda-preset-fix
Fix GPU architecture in CUDA preset for Kokkos
2025-06-12 19:41:21 -04:00
97b85d34f2 Fix GPU architecture in CUDA preset for Kokkos 2025-06-12 16:02:38 -04:00
f84bbf9326 Update logs of APIP examples. 2025-06-12 20:30:45 +02:00
9b195d2109 Merge branch 'develop' into molecule-refactor-for-json 2025-06-12 14:23:32 -04:00
db835d1ec5 add false positive 2025-06-12 14:23:25 -04:00
285fffa98e Merge pull request #4619 from lammps/python-wrapper-doc
clarify python and variable doc pages
2025-06-12 13:29:31 -04:00
00ffebc929 Remove not required variable from PairLambdaZoneAPIP. 2025-06-12 19:24:43 +02:00
ed1d49cc16 Merge branch 'python-wrapper-doc' of github.com:lammps/lammps into python-wrapper-doc 2025-06-12 11:48:45 -04:00
db22bdc7b9 rewrap doc source 2025-06-12 11:48:37 -04:00
349def92d2 remove superfluous test 2025-06-12 11:26:08 -04:00
674500781f add minimal documentation for the JSON molecule file format 2025-06-12 11:20:02 -04:00
4097733b52 small tweaks 2025-06-12 11:19:42 -04:00
dd30b5a258 add tool to regularize/reformat/reindent JSON files 2025-06-12 11:19:16 -04:00
2eed658d85 Corrected what I think is a typo
There is no way to evaluate a variable with iv_ prefix.
2025-06-12 15:57:59 +02:00
1db87d827d documentation updates for JSON format in general and molecule files in particular 2025-06-12 07:49:20 -04:00
766ef241d9 update date 2025-06-12 07:48:31 -04:00
b21ce964e1 more meaningful error message if a file is in JSON format but has a parse error 2025-06-12 07:48:02 -04:00
b15f4e5d63 add updated example using json molecule files 2025-06-12 00:34:01 -04:00
125389bf23 safer memory management for checking format 2025-06-12 00:32:53 -04:00
5868aa095d add dihedrals and impropers 2025-06-11 23:31:37 -04:00
d4be195d81 make code more consistent by always using "item" for topology data entry 2025-06-11 23:31:21 -04:00
5e948b1450 add support for bonds and angles 2025-06-11 22:32:23 -04:00
72533c8276 check that dipole z-component is zero for 2d systems 2025-06-11 22:32:06 -04:00
cac7606470 use explicit type when clearning memory 2025-06-11 22:31:29 -04:00
b0694e4e73 add support for dipoles section 2025-06-11 18:09:40 -04:00
3d7f7af8c7 parse charges, diameters, and masses 2025-06-11 17:54:41 -04:00
9df30404db try alternate initialized for Windows 2025-06-11 17:05:05 -04:00
e7cf0701a8 add support for molecule and fragments sections 2025-06-11 16:45:40 -04:00
d3691dce98 better checking 2025-06-11 16:44:17 -04:00
d7cd2795c5 add error to CreateAtoms for per-atom systems 2025-06-11 17:28:42 +02:00
768d5bb9c1 address small PDF formatting issue 2025-06-11 10:56:04 -04:00
e44e2e27cc reuse variable 2025-06-11 10:31:30 -04:00
dad1f02716 process "coords" and "types" sections in JSON format 2025-06-11 10:17:32 -04:00
c4e062f2d8 Merge branch 'develop' into molecule-refactor-for-json 2025-06-11 08:40:48 -04:00
2d8ef50e49 address output issue reported by GitHub Copilot (but properly and in both locations) 2025-06-11 04:33:25 -04:00
6ccb1b745c remove debug code, move to toplevel dir and document kspace style zero 2025-06-11 04:24:35 -04:00
75c341543a add missing comment 2025-06-11 04:05:41 -04:00
67128a00b9 Merge branch 'kspace_zero' into plugin-add-run-min-style 2025-06-11 04:05:32 -04:00
0fd7a40d92 update documentation for writing plugins 2025-06-11 03:40:33 -04:00
30cc2570ad Merge branch 'develop' into plugin-add-run-min-style 2025-06-11 03:24:04 -04:00
df08818fef refactor handling of plugin loading to make plugin a global property 2025-06-11 02:52:28 -04:00
3ab3663659 updated the doc page for the pair/team/size and nbin/atoms/per/bin keywords 2025-06-10 23:37:34 -05:00
464b9f4b03 add support for loading run and min styles 2025-06-11 00:33:44 -04:00
8d11f16e16 Insert pre-titlepage text asking about removal of PDF version. 2025-06-10 19:27:01 -04:00
91896bc444 initialized atoms_per_bin 2025-06-10 17:32:56 -05:00
8ae5b16d66 use consistent markup 2025-06-10 18:18:50 -04:00
f77be0a373 Merge branch 'python-wrapper-doc' of github.com:lammps/lammps into python-wrapper-doc 2025-06-10 15:25:22 -06:00
c8cd692bbd more doc page tweaks 2025-06-10 15:25:15 -06:00
c309d6e99e allow atoms_per_bin used for neighbor builds to be specified from the command line 2025-06-10 15:21:54 -05:00
a45561ab41 Bufix for memory leak fix from Stan. Forgot to clear the new per-atom storage 2025-06-10 15:19:50 -04:00
319037caf6 fix typo 2025-06-09 20:37:30 -04:00
1f57be8255 another tweak 2025-06-09 16:50:43 -06:00
7a7ec8083f edits of 2 doc pages 2025-06-09 16:38:42 -06:00
e9146a6467 using teamsize_max if specified from the command line 2025-06-09 11:51:05 -05:00
c7fd0817e2 Merge branch 'develop' into collected-small-fixes 2025-06-09 00:14:23 -04:00
2567a3d802 Merge pull request #4581 from lammps/atom-style-var-with-python
Enable equal- and atom-style variables to invoke Python functions more directly with args
2025-06-09 00:13:39 -04:00
962f791700 Merge pull request #4616 from jrgissing/another_reaction_count_fix
bond/react: another reaction-count bug fix
2025-06-08 23:43:15 -04:00
72080d78a7 hide repetitive code use a macro 2025-06-08 08:52:45 -04:00
1e59400ef3 update help table for new commands 2025-06-07 21:41:17 -04:00
e41d485377 record changes to LAMMPS-GUI for flatpak build 2025-06-07 21:36:41 -04:00
43dbb0c089 add special case for setting locale on macOS based on suggestion from OVITO developers 2025-06-07 21:13:21 -04:00
8305e27835 allow to set pair team size with neigh/thread on from -pk kokkos 2025-06-07 16:07:36 -05:00
3f685e9a44 fix several spelling and formatting issues in added/modified documentation 2025-06-06 12:13:02 -04:00
23b185a625 add overload to utils::print() so it can be used without FILE pointer 2025-06-06 11:29:12 -04:00
ccc078f036 Add apip to documentation of read_dump and compute property/atom. 2025-06-06 14:41:52 +02:00
9a65ab2c4d Merge branch 'develop' into apip_devel and solve merge conflict in set. 2025-06-06 13:32:00 +02:00
84f20fe516 must initialize pyindex[ivar] in equalstyle check 2025-06-06 05:59:03 -04:00
4cb936c3c6 no need to allocate since we use the space of the python style variable, which is required 2025-06-06 02:17:39 -04:00
65debaf191 resolve NOTES and add option to print return value to log with python invoke 2025-06-06 02:02:04 -04:00
001fa6a024 corrections from GitHub copilot 2025-06-06 00:28:18 -04:00
f69d28fbab Merge branch 'develop' into atom-style-var-with-python 2025-06-06 00:20:06 -04:00
1b12f3b47e improve error messages for python command 2025-06-06 00:19:56 -04:00
e1aa3cf7ec move throwing Python variable errors to PythonImpl class and change API accordingly. 2025-06-06 00:19:33 -04:00
f6f3eb1c31 bug-fix bug fix 2025-06-06 00:15:30 -04:00
1e7dc5126e Flag code that needs improving with TODO comments 2025-06-05 23:06:55 -04:00
654cd0fe00 improve argument parsing and error messages 2025-06-05 22:52:40 -04:00
e5f0e23a11 clang-format apip package. 2025-06-05 20:46:32 +02:00
6c798f1847 Update APIP naming in documentation. 2025-06-05 20:05:37 +02:00
20f123ddd1 Update notation in APIP examples. 2025-06-05 17:22:19 +02:00
bc93311309 Fix typos. 2025-06-05 17:21:03 +02:00
19a108bd21 Add apip suffix in pair_styles lambda/input and lambda/input/csp. 2025-06-05 15:38:38 +02:00
4fcbdbe3a1 pair_style lambda/zone -> pair_style lambda/zone/apip 2025-06-05 15:15:06 +02:00
1086db672c Capitalise apip in PACE class names. 2025-06-05 15:01:51 +02:00
f34284fca0 Capitalise apip in EAM class names. 2025-06-05 14:40:21 +02:00
94d39239b5 fix lambda -> fix lambda/apip 2025-06-05 14:29:43 +02:00
dd4afb16ad fix lambda_thermostat -> fix lambda_thermostat/apip 2025-06-05 14:06:17 +02:00
1d5efd05bd fix apip_atom_weight -> fix atom_weight/apip 2025-06-05 13:22:13 +02:00
964605f25a remove commented out code 2025-06-05 06:50:28 -04:00
74e8ed7a49 follow LAMMPS' conventions for initializing class members more closely 2025-06-05 06:46:43 -04:00
b6a57c2480 Add apip prefix to internal variable names. 2025-06-05 12:44:01 +02:00
21d3f68939 modernize looking up voronoi compute and check for it in init(), too 2025-06-05 06:42:08 -04:00
78e538c9fc store inv_r_0 instead of r_0 to replace division by faster multiplication 2025-06-05 06:32:50 -04:00
e31f864620 correct offset for parsing optional arguments 2025-06-05 06:25:27 -04:00
3f1944cace more accurate detection of known keywords 2025-06-05 06:23:58 -04:00
cf79cf8e72 simplify use of MathSpecial::square() 2025-06-05 06:18:29 -04:00
4b56fd4cd2 replace redundant get_distance() with sqrt(MathExtra::distsqr())
Also avoid repetitive computation of distance.
2025-06-05 06:15:48 -04:00
8abd42ed2f complete embedded citation handling 2025-06-05 06:02:03 -04:00
467cbbc188 Revert "refactor fix neighbor/swap"
This reverts commit 594953ed0b.
2025-06-05 05:54:13 -04:00
9d37f28a86 Revert "Cleaned options reading index error"
This reverts commit ef6cdbf00e.
2025-06-05 05:54:10 -04:00
7bf5d5899f Revert "update error message"
This reverts commit df3467a114.
2025-06-05 05:54:04 -04:00
61f9cb66e2 Revert "remove dead code and redundant implementation."
This reverts commit 3dadcab047.
2025-06-05 05:54:02 -04:00
99e8085cda Revert "make fix neighbor/swap valgrind clean"
This reverts commit 6a2e796538.
2025-06-05 05:53:56 -04:00
41bd3437f6 Revert "make attempt_swap valgrind clean. now fails in pair->compute()."
This reverts commit deef742897.
2025-06-05 05:53:46 -04:00
bf97cc470f Temporarily remove fix neighbor/swap until implementation issues are fixed 2025-06-05 05:19:35 -04:00
bd26d7a742 Add apip names in read_dump. 2025-06-05 11:09:35 +02:00
d3f00eeff4 Add apip names in set. 2025-06-05 10:59:32 +02:00
67d668cb62 Add apip names in compute property/atom. 2025-06-05 10:54:06 +02:00
9d4aad2588 Remove APIP from dump_custom, fix store/state and variable. 2025-06-05 10:45:36 +02:00
f5b64118cc accept denormal floating point numbers in tokenizer class and utils::numeric() 2025-06-04 21:07:18 -04:00
acf8a51b01 Merge branch 'develop' into molecule-refactor-for-json 2025-06-04 19:42:03 -04:00
b3f160c118 Merge pull request #4567 from lammps/fix-set-command
New fix set command
2025-06-04 19:40:29 -04:00
ece4939708 Merge branch 'develop' into fix-set-command 2025-06-04 16:22:45 -04:00
0fb02af020 Merge pull request #4599 from akohlmey/collected-small-fixes
Collected small fixes and updates
2025-06-04 14:42:06 -04:00
3f58927829 one more correction 2025-06-04 12:22:43 -04:00
b73f78ea88 update libvoro++ patch 2025-06-04 12:20:29 -04:00
ba8dd4d380 only build the voro++ library when downloading 2025-06-04 12:10:58 -04:00
45ba47e0d0 Set version date for next feature release 2025-06-04 10:14:07 -04:00
ddb6bb2cfb adjust to include new build of gcc/musl cross-compiler 2025-06-04 09:57:14 -04:00
b509c53003 small improvement 2025-06-04 09:56:53 -04:00
9941d9132c reformulate 2025-06-04 00:30:10 -04:00
11bf72c4aa Merge branch 'develop' into molecule-refactor-for-json 2025-06-03 22:02:48 -04:00
ba093790fc remove tabs 2025-06-03 21:57:41 -04:00
5386dce0cf Update molecule.rst 2025-06-03 20:45:02 -04:00
4da7fad87e Merge branch 'develop' into feature/batch-snap-ilp 2025-06-03 11:17:55 -04:00
87cf0f964e use common container for Linux release tasks 2025-06-03 02:35:23 -04:00
f9003e6a16 revert to single defition of LAMMPS integer sizes to be applied to GPU library 2025-06-02 23:47:08 -04:00
deef742897 make attempt_swap valgrind clean. now fails in pair->compute(). 2025-06-02 22:19:09 -04:00
6a2e796538 make fix neighbor/swap valgrind clean 2025-06-02 21:30:56 -04:00
3086e6e0ec Merge branch 'develop' into collected-small-fixes 2025-06-02 20:50:45 -04:00
117a451b15 Merge pull request #4597 from akohlmey/cmake-adjustments
Small CMake  updates
2025-06-02 20:47:40 -04:00
8a8fc2f1d8 apply -DLAMMPS_${LAMMPS_SIZES} consistently across all platforms 2025-06-02 20:29:00 -04:00
688800038a force skip MPI for C++ setting into cache 2025-06-02 20:14:11 -04:00
07f650a982 try to work around compilation issues 2025-06-02 17:02:38 -04:00
60c33bfb95 correct typos 2025-06-02 16:37:21 -04:00
23694ee4f5 Merge branch 'develop' into cmake-adjustments 2025-06-02 16:06:53 -04:00
1fc8e05642 roll back changes switching from MPI::MPI_CXX to MPI::MPI_C 2025-06-02 15:48:40 -04:00
1fae7e3f98 remove support for obsolete MPICH library binaries for Windows 2025-06-02 15:47:35 -04:00
f7ae20358c improve error message 2025-06-01 11:42:19 -04:00
07acf912c9 Merge branch 'develop' into molecule-refactor-for-json 2025-06-01 11:42:03 -04:00
52f8d1d5a1 Merge branch 'develop' into collected-small-fixes 2025-06-01 11:41:11 -04:00
b5cf8eb9ed Merge pull request #4610 from akohlmey/minimum_image_flerr
Improve minimum image error messages
2025-06-01 11:38:34 -04:00
7aac770631 consolidate checking and determining sizes. use macro to reduce redundancy 2025-06-01 03:43:34 -04:00
17ed72f99b show use of Domain::minimum_image_big() in second example block 2025-05-31 23:36:36 -04:00
ed535e5301 fix minimum image bug detected by GitHub Copilot 2025-05-31 23:34:41 -04:00
04c642905f make "format" and "data" required object sections 2025-05-31 22:28:54 -04:00
7780309fae Merge branch 'develop' into molecule-refactor-for-json 2025-05-31 22:03:07 -04:00
c663a5ac1c undo substitution in comment 2025-05-31 17:06:14 -04:00
5ea7bec083 update ATC library for minimum image API change 2025-05-31 03:18:42 -04:00
b05f5f8e3a add info about updating old source packages for minimum image API change 2025-05-31 02:56:25 -04:00
2599f9ddb0 spelling 2025-05-31 02:55:46 -04:00
2cc7c71ebc add info about updating old source packages for minimum image API change 2025-05-31 02:54:42 -04:00
d7cee3e71d remove undesired "generated" tag 2025-05-31 02:31:25 -04:00
9d81246761 add FLERR as first argument to Domain::minimum_image() and Domain::minimum_image_big() 2025-05-31 02:28:53 -04:00
290f409cf8 improve / modernize more error messages in the read_data command 2025-05-30 16:44:33 -04:00
7bed09c25a Bugfix from Trung for running EAM on GPUs with OpenCL. 2025-05-30 16:41:44 -04:00
68ce9c8a6f modify C++23 compilation workflow to test both GCC and Clang 2025-05-30 06:12:12 -04:00
e43acf24ea small optimization 2025-05-30 01:20:32 -04:00
765701b924 Merge remote-tracking branch 'github/develop' into collected-small-fixes 2025-05-30 01:15:48 -04:00
5b65c4938f avoid problems with consteval 2025-05-29 23:43:02 -04:00
8f56874d07 Merge pull request #4527 from martok/fix-gauss
Add fix ave/moments
2025-05-29 15:22:10 -04:00
06af3b8c4a Fix typo in doc/src/fix_ave_moments.rst
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-29 14:39:39 -04:00
a6d7f015a2 synchronize units checking with data file and native format molecule file 2025-05-29 09:37:04 -04:00
5e9f00f1eb fix typo 2025-05-29 09:36:25 -04:00
66c2e4f324 improve documentation of moment corrections 2025-05-29 14:27:16 +02:00
8f9806ec72 remove / comment-out unused parameters 2025-05-29 06:36:03 -04:00
13304707aa add missing override 2025-05-29 06:30:24 -04:00
cea8d22a87 remove undocumented and unused define and related unused array 2025-05-29 06:30:15 -04:00
f839532cf6 silence compiler warnings 2025-05-29 05:37:01 -04:00
f12d1d3c5b we only need the MPI C library support for loading liblammps.so dynamically 2025-05-29 05:34:51 -04:00
0af41a211d add false positive 2025-05-29 05:27:41 -04:00
26def4a3cf we only need the MPI C library support for loading liblammps.so dynamically 2025-05-29 05:25:40 -04:00
f584d7219a correct incorrect reference to command 2025-05-29 05:24:00 -04:00
129a3a83e5 Merge branch 'develop' into fix-set-command 2025-05-29 05:21:46 -04:00
3dadcab047 remove dead code and redundant implementation. 2025-05-29 05:04:20 -04:00
f5cc752648 update magic file and point to origin 2025-05-28 23:18:16 -04:00
a246619ecf whitespace 2025-05-28 21:54:17 -04:00
de98aa0fb1 Merge branch 'develop' into atom-style-var-with-python 2025-05-28 21:54:03 -04:00
be59eb6a70 fix up two more inconsistent definitions 2025-05-28 21:38:14 -04:00
8f07b44dce Merge branch 'cmake-adjustments' of github.com:akohlmey/lammps into cmake-adjustments 2025-05-28 21:35:42 -04:00
3552847957 consistent use of definitions to avoid CMake adding spurious '-D' prefixes 2025-05-28 21:35:33 -04:00
ce074d475f additional small changes to doc page and code comment 2025-05-29 01:03:28 +02:00
8254107095 remove unused variable "quoteflag" 2025-05-28 17:43:06 -04:00
1ddc64b885 eliminate warning (doesn't change results since we don't compute pair forces) 2025-05-28 16:47:55 -04:00
46b0e48ef3 clarify use of pair-wise additive pair style requirement as go-between for many-body potentials. 2025-05-28 11:22:39 -04:00
1668bcffcf fix 2 bugs caught in review 2025-05-28 08:53:55 -06:00
747ed4244f documentation updates based on review 2025-05-28 13:04:27 +02:00
ce44faddcf correct discuss FFT benchmark timing for PPPM 2025-05-27 23:40:52 -04:00
5ff0f05933 more details in serial performance summary 2025-05-27 18:07:48 -04:00
6843424dad add version tag, rewrap, minor tweaks to doc page. 2025-05-27 10:38:41 -04:00
d59f7d3381 Merge branch 'develop' into fix-gauss 2025-05-27 10:34:07 -04:00
d6a0d3bacf small update 2025-05-27 07:37:42 -04:00
df3467a114 update error message 2025-05-27 07:36:14 -04:00
f5c51af9bc demonstrate how serial and parallel performance can change 2025-05-27 01:15:18 -04:00
6a5ed2af4b add renieigbor option to fix set 2025-05-26 16:22:52 -06:00
06b06fd991 only use prototype for PIMPL struct in KOKKOS classes 2025-05-26 17:57:15 -04:00
6ea16aead1 we only need the MPI C library support for loading liblammps.so dynamically 2025-05-26 17:56:26 -04:00
2e775034f9 clarify and improve formatting 2025-05-26 03:03:37 -04:00
1f758bcf8e more discussion of items that affect LAMMPS serial and parallel performance 2025-05-26 02:35:30 -04:00
f8665fdf4e add a more explicit warning about using hybrid for many-body potentials
this summarizes advice that has to be given recurringly in the LAMMPS forum
2025-05-26 01:49:01 -04:00
8181224bca discuss in more details factors that affect performance (WIP) 2025-05-25 05:04:59 -04:00
2436bd4411 provide some more talking points for comparison of KOKKOS and GPU package 2025-05-25 05:04:37 -04:00
94f44e3644 add new header, json_fwd.h with forward declarations for using headers 2025-05-24 22:17:34 -04:00
730cf8bcf5 add false positive 2025-05-24 02:42:27 -04:00
8d09e440c5 start documentation for JSON format 2025-05-24 02:36:46 -04:00
1d8d8b6445 add title and version info to JSON schema file 2025-05-23 23:31:14 -04:00
442e50bb17 simplify 2025-05-23 23:12:07 -04:00
018342afc8 update schema with stricter checks. no need to bond-ids, angle-ids etc. 2025-05-23 23:00:50 -04:00
61d3759d6b fix typo 2025-05-23 22:59:44 -04:00
0975207ba4 Add more fields to molecule schema
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-23 22:01:31 -04:00
534373bef3 flag required properties 2025-05-23 22:00:05 -04:00
f979d503d9 fix minor issues 2025-05-23 21:59:33 -04:00
cf7011bf64 nvc++ compiler workaround 2025-05-23 13:48:42 -07:00
ae8542a020 Fixed up whitespace 2025-05-23 10:57:38 -07:00
76ef41a901 overload Atom::add_molecule() with function accepting a JSON object 2025-05-23 00:08:58 -04:00
2fe88a1e9e further refactor molecule class
- make constructor only do basis init, processing of command args to function
- add function to process json object (either directly or from command processing)
- distribute json object across processes as binary serialization
2025-05-22 23:27:10 -04:00
30b555d7dc add units keyword 2025-05-22 23:23:22 -04:00
0df77ef7ca start a tools/json folder with molecule schema and README 2025-05-22 21:42:33 -04:00
446630e3ba Added compile-time support for running the legacy codepaths on the GPU; misc cleanup and fixes 2025-05-22 14:14:13 -07:00
8c314c7bda Reduced template parameters, improved code reuse between ComputeFusedDeidrj paths 2025-05-22 14:06:26 -07:00
13500710ce Added register tiling to ComputeBi 2025-05-22 13:57:09 -07:00
c787ce60a7 Added directional fusion to ComputeFusedDeidrj 2025-05-22 13:50:41 -07:00
103c44e3c1 Added register tiling to ComputeUi 2025-05-22 13:28:33 -07:00
c1fe6c9109 Added register tiling to ComputeYi/Zi/YiWithZlist 2025-05-22 13:14:44 -07:00
c03e19d2dd Added support for extra padding to data structures to simplify extra vectorization 2025-05-22 13:01:35 -07:00
e9dc43c2da move and rename example folder for fix neighbor/swap. update inputs. add logs. 2025-05-22 14:27:37 -04:00
d70409181c Examples for accelerated diffusion using KMC-MD method 2025-05-22 14:27:23 -04:00
ef6cdbf00e Cleaned options reading index error 2025-05-22 11:49:15 -04:00
7b5b6f19b7 continued refactoring of Molecule class to include support for JSON 2025-05-21 16:24:41 -04:00
a46d32e4d4 improve error messages 2025-05-21 12:20:00 -04:00
7328dedb7b add JSON file detection by trying to parse it and catch exception
this also stores the file title and checks for compatible
application, format, and revision entries
2025-05-21 12:14:16 -04:00
30010a8929 small updates 2025-05-21 12:12:34 -04:00
6800e8bb39 step LAMMPS-GUI version number 2025-05-21 08:01:28 -04:00
594953ed0b refactor fix neighbor/swap
- plug memory leak
- modernize access to computes
- tighten checks
- modernize and improve error messages
- better check for known keywords when processing atom types
- support for typelabels
2025-05-21 07:29:34 -04:00
b92414349d update expand_args() unit tester with new error message 2025-05-20 21:49:28 -04:00
bc07696ce9 small correction for wildcard expansion 2025-05-20 21:18:07 -04:00
21394574ed stop with error, if trying to use wildcard for vector-style variable without upper bound 2025-05-20 18:11:28 -04:00
a443e6ea5e properly forward file and line number for grid ID parsing 2025-05-20 18:10:40 -04:00
37a344a2ad add example for Python with vector-style variable 2025-05-20 13:33:36 -06:00
271bdc1af7 alternate way to specify defines for MPI tests 2025-05-20 13:56:36 -04:00
2351418c94 made collapse_tree() method work correctly in Variable class for Python function wrappers, also added support for vector-style variables to use Python function wrappers 2025-05-19 21:42:08 -06:00
adce5bef84 explicitly skip MPI C++ in GPU package library 2025-05-19 22:20:50 -04:00
380c878e5f Merge remote-tracking branch 'github/develop' into cmake-adjustments 2025-05-19 22:15:51 -04:00
2744647c75 Merge pull request #4594 from akohlmey/collected-small-changes
Collected small changes
2025-05-19 22:13:37 -04:00
2cc1356384 skip MPI C++ support also for libraries 2025-05-19 22:09:38 -04:00
510563f5f3 explicitly skip MPI C++ interface in colvars 2025-05-19 21:51:53 -04:00
70e1bb50f1 add skip C++ defines for LAMMPS library instead 2025-05-19 21:40:44 -04:00
186a6431f7 directly disable C++ support when compiling main.cpp 2025-05-19 21:27:57 -04:00
09b174d129 turn off C++ support 2025-05-19 21:15:00 -04:00
5a8da735f2 explicitly use the MPI::C imported target on the main executable 2025-05-19 21:14:33 -04:00
ad63eb8bf7 Merge branch 'develop' into cmake-adjustments 2025-05-19 21:03:07 -04:00
b3402eaae8 Merge pull request #4424 from jtavenner-dev/kmc
add fix neighbor/swap
2025-05-19 20:57:00 -04:00
8fa4c0974c remove blank line 2025-05-19 16:41:00 -06:00
ac059a15b0 added a NOTE 2025-05-19 14:39:30 -06:00
c3b25c8c27 updated doc pages and code 2025-05-19 14:34:22 -06:00
b9b59bd23c small clarifications and corrections. Sync with current state of affairs 2025-05-19 11:31:42 -04:00
a821654ef5 correct error message 2025-05-19 11:30:51 -04:00
2968a62937 continue refactoring for bio force field and water moldel discussions 2025-05-17 23:30:18 -04:00
e393b9803b add information about the OPC model to the TIP4P howto 2025-05-17 22:41:42 -04:00
63ee449dc1 reformulate description of force components 2025-05-17 21:15:48 -04:00
031fab210f update unittest for change in compute pair/local 2025-05-15 23:28:46 -04:00
629ec2eabe update for consistency with docs 2025-05-15 23:16:31 -04:00
5fd4d6bb87 remove directionCorrection and update docs for compute pair/local and compute bond/local 2025-05-15 23:15:59 -04:00
ebfb94a717 fix whitespace 2025-05-15 17:04:18 -06:00
06616c5ff3 change how internal vars are defined by various commands, enable Python class to return a numeric value directly (for speed) 2025-05-15 16:37:41 -06:00
c3c0180649 correctly check for 32bit integer overflow 2025-05-15 08:15:35 -04:00
19cfd08eb8 correctly enable GPU package and make fix imd wait in background for bucky+cnt example 2025-05-15 08:15:01 -04:00
fd8fb74a88 cannot use Kokkos-OpenMP with recent hipcc 2025-05-15 07:47:19 -04:00
35f08232ba update for Fedora 41/42 2025-05-15 07:46:48 -04:00
2b7c05c057 properly select linker for modern clang compilers 2025-05-15 04:02:44 -04:00
179d4f0148 work around C++ error 2025-05-15 02:53:51 -04:00
32588f075e remove assignments of variables to themselves 2025-05-15 02:53:12 -04:00
9abb171d05 more CMake scripting updates to use C style MPI libraries not C++ 2025-05-15 02:49:02 -04:00
b3e7121535 modernize project() command and create project version string with dots 2025-05-15 02:14:35 -04:00
85f0853910 Merge branch 'develop' into cmake-adjustments 2025-05-14 20:11:01 -04:00
01bde55e9a match all argument types for powint() 2025-05-13 12:53:03 -04:00
68d2414b59 Merge branch 'fix-kokkos-log2' of https://github.com/Luthaf/lammps into collected-small-changes 2025-05-13 12:52:15 -04:00
9ba50df9d8 Select one overload of log2 for the kokkos build 2025-05-13 16:09:13 +02:00
83fa2cbc93 enable PotentialFileReader class to change line buffer size 2025-05-13 06:02:10 -04:00
fdd91e597e add a few more tests for extracted global properties 2025-05-13 02:44:05 -04:00
75907ccf91 add support to extract eflag/vflag_atom/global as global properties 2025-05-13 02:32:27 -04:00
2bcac9efba fix spelling issue 2025-05-12 12:13:05 -04:00
24149fc793 Create kokkos version of fix electron stopping 2025-05-11 09:25:15 +03:00
ef89edc4c6 Additional edits 2025-05-09 14:53:27 -06:00
bb62f46404 Merge branch 'kmc' of https://github.com/jtavenner-dev/lammps into kmc 2025-05-09 14:27:05 -06:00
17da04f07b Cleaned up language errors 2025-05-09 14:25:08 -06:00
6436cc87b7 Corrected inconsistent voro-ID compute references and examples 2025-05-09 14:23:03 -06:00
3215141d9e Merge pull request #4584 from navlalli/update-docs
Update fix qtpie/reaxff and fix qeq/rel/reaxff docs
2025-05-08 01:59:10 -04:00
3be9a40bf8 Merge branch 'develop' into update-docs 2025-05-08 01:09:17 -04:00
b69e8fff1f Merge pull request #4587 from akohlmey/collected-small-changes
Collected small changes and fixes
2025-05-08 01:07:29 -04:00
458c0844a8 fix typo 2025-05-07 17:44:38 -04:00
acd53ebd7c update flag to accommodate changes in clang 2025-05-07 17:13:36 -04:00
ac556104c1 link to MPI C interface instead of C++ 2025-05-07 17:12:57 -04:00
22cddeee78 fix spelling in comments 2025-05-07 16:49:43 -04:00
60fe08c328 clarify and rewrap 2025-05-07 15:47:35 -04:00
38dffe2283 Properly processing >1 fix set force 2025-05-07 15:42:57 -04:00
45944c4dc9 Fixing passed arg from type to index 2025-05-07 15:42:40 -04:00
6c2f11ce75 Merge branch 'develop' into update-docs 2025-05-07 13:21:39 -06:00
011f05f9ff Update docs 2025-05-07 13:06:07 -06:00
955d5da09c Update CMake 2025-05-07 12:58:33 -06:00
b5cac76937 Restore default value 2025-05-07 12:55:54 -06:00
9f0c87cf81 Merge branch 'develop' of github.com:lammps/lammps into kk_update_4.6.1 2025-05-07 12:42:07 -06:00
9c8e03c4f4 Port changes from Kokkos develop branch to Makefile.kokkos 2025-05-07 12:41:53 -06:00
7c2c9ea286 add missing versionadded tag 2025-05-07 02:00:40 -04:00
3751fe6be7 Merge branch 'atom-style-var-with-python' of github.com:lammps/lammps into atom-style-var-with-python 2025-05-06 16:28:20 -06:00
1f85dd4093 update comment in variable.cpp 2025-05-06 16:28:10 -06:00
615dd589dd replace slow pow() function with faster and more accurate alternatives 2025-05-06 15:21:06 -04:00
c0a41bd638 Merge remote-tracking branch 'github/develop' into collected-small-changes 2025-05-06 15:06:43 -04:00
c1e9adbd80 Merge pull request #4574 from talinke/develop
New Fix for GJF Langevin Dynamics
2025-05-06 13:24:06 -04:00
48df0448df spelling 2025-05-06 12:05:12 -04:00
2d22092078 additional info for pair style lj/smooth from Aidan 2025-05-06 12:00:55 -04:00
afcb97aaf2 address spelling issues 2025-05-05 20:22:00 -04:00
fbfe1e6a7c Merge remote-tracking branch 'github/develop' into collected-small-changes 2025-05-05 20:13:42 -04:00
a528b88d8a Merge branch 'update-docs' of github.com:navlalli/lammps-qtpie into collected-small-changes 2025-05-05 20:13:23 -04:00
750cfbedd3 Merge pull request #4579 from gsalkuin/bpm-fix-rigid
Update atom->quat in rigid fixes for bpm/rotational compatibility
2025-05-05 20:09:53 -04:00
a1cd18e4cf Merge pull request #4522 from willzunker/mdr-dev
MDR contact model updates: radius update and damping
2025-05-05 20:07:36 -04:00
3b17ea5363 Merge pull request #4556 from Colvars/colvars-update
Update Colvars library to version 2025-04-18
2025-05-05 20:03:27 -04:00
dc07a1471e Properly processing >1 fix set force 2025-05-05 12:45:35 -06:00
7c30111fa0 Fixing passed arg from type to index 2025-05-05 11:50:59 -06:00
0d7e07b9be export bond topology related per-atom data via library interface 2025-05-05 06:25:22 -04:00
7ec7745640 make neighbor list settings, status, and bond/angle/dihedral/improper lists available to library interface 2025-05-05 05:21:18 -04:00
8d38ec4f18 Merge branch 'mliap-torch-load-fix' of https://github.com/fglines-nv/lammps into collected-small-changes 2025-05-03 21:22:53 -04:00
228cf1e871 Correct leftover references to vector inputs in docs 2025-05-03 19:07:01 +02:00
6c8e758e2b Fix subscript range checking typo 2025-05-03 19:00:53 +02:00
f3adda8d3e clean-up code and doc page 2025-05-02 16:21:41 -06:00
af840176e7 doc page tweak 2025-05-02 16:14:55 -06:00
79f6867d7e new doc page for fix set command with example 2025-05-02 16:13:01 -06:00
3fafec9cba do not try to suppress nvcc warning with LLVM based compilers. those fail when configuring MPI. 2025-05-02 16:02:42 -04:00
10077b057c Update fix_ave_moments.rst
Emphasized the difference in behavior between this fix and other fix ave/* commands with regards to Nevery, Nrepeat and Nfreq.
2025-05-02 21:42:33 +02:00
37221c080b Add self-citation 2025-05-02 13:52:17 +01:00
55a13efad0 small update 2025-05-02 00:30:22 -04:00
a388bd38ee add LAMMPS-GUI screenshot image 2025-05-02 00:21:41 -04:00
edb060ccf5 Add examples and expected output for ave/moments 2025-05-02 01:20:37 +02:00
565e7b2c2b Add documentation for ave/moments 2025-05-02 01:20:36 +02:00
b2001e999c Implement moments calculation fix ave/moments 2025-05-02 01:20:36 +02:00
f8a0ff011b Skeleton implementation of fix ave/moments 2025-05-02 01:20:36 +02:00
1f5b64bca4 torch.load fix for torch>=2.6 in ML-IAP 2025-05-01 15:22:05 -07:00
e474bfeece Merge remote-tracking branch 'github/develop' into atom-style-var-with-python 2025-05-01 16:03:27 -04:00
9b36c58eb2 fix spelling and docbuild issues 2025-05-01 16:03:11 -04:00
1fc13c491c change PYFUNCTION to PYWRAPPER in code 2025-05-01 13:16:50 -06:00
a2a2c541b5 tweaks to code and doc page 2025-05-01 12:57:27 -06:00
76d0ead245 doc pages for new Python function wrappers 2025-05-01 12:41:48 -06:00
165f34bc12 Merge pull request #4571 from akohlmey/collected-small-fixes
Collected small fixes
2025-05-01 11:43:50 -04:00
19d25a3654 initial implementation of python functions in variable formulas, including for atom-style vars 2025-05-01 07:59:41 -06:00
597a841f40 Update Kokkos library in LAMMPS to v4.6.1 2025-04-30 17:21:22 -06:00
2ab7eda64a improve warning and explanation about too short communication cutoff 2025-04-30 16:46:22 -04:00
cba479bf6e Update Colvars library to version 2025-04-18
The following is a list of pull requests relevant to LAMMPS in the Colvars repository since 2024-08-06:

- 752 New tool poisson_integrator_conv
  https://github.com/Colvars/colvars/pull/752 (@jhenin)

- 733 Custom grids for all biases
  https://github.com/Colvars/colvars/pull/733 (@giacomofiorin, @jhenin)

- 776 Avoid error in acos and asin with fast-math
  https://github.com/Colvars/colvars/pull/776 (@jhenin)

- 773 fix: fix the clang build test failure of OPES
  https://github.com/Colvars/colvars/pull/773 (@HanatoK)

- 768 fix: clamp the input values of asin and acos in case of fast math on aarch64
  https://github.com/Colvars/colvars/pull/768 (@HanatoK)

- 761 Add debug code for the Jacobi failure
  https://github.com/Colvars/colvars/pull/761 (@HanatoK)

- 759 min_image fix; Saves long runs from crashes;
  https://github.com/Colvars/colvars/pull/759 (@PolyachenkoYA)

- 757 Fix MSVC OpenMP issue
  https://github.com/Colvars/colvars/pull/757 (@HanatoK)

- 755 Fix indentation of 'Init CVC' message in standard output
  https://github.com/Colvars/colvars/pull/755 (@jhenin)

- 750 Optimize and simplify the calculation of dihedral gradients
  https://github.com/Colvars/colvars/pull/750 (@HanatoK)

- 749 Add references to new Colvars paper
  https://github.com/Colvars/colvars/pull/749 (@jhenin, @giacomofiorin)

- 740 Report the specific C++ standard at init time, stop warning about C++97/03
  https://github.com/Colvars/colvars/pull/740 (@giacomofiorin)

- 731 Improve detection of hard/mathematical boundaries
  https://github.com/Colvars/colvars/pull/731 (@giacomofiorin)

- 729 Optimize the fit gradients
  https://github.com/Colvars/colvars/pull/729 (@HanatoK, @jhenin)

- 728 Fix undefined behavior when getting the current working directory from std::filesystem
  https://github.com/Colvars/colvars/pull/728 (@giacomofiorin)

- 727 Add patchversion scripting command
  https://github.com/Colvars/colvars/pull/727 (@giacomofiorin)

- 724 Fix gradients and metric functions of distanceDir
  https://github.com/Colvars/colvars/pull/724 (@giacomofiorin)

- 715 Add missing rotation in orientation component
  https://github.com/Colvars/colvars/pull/715 (@giacomofiorin)

- 713 fix: try to solve #87 for non-scala components
  https://github.com/Colvars/colvars/pull/713 (@HanatoK)

- 709 Implementation of OPES in Colvars
  https://github.com/Colvars/colvars/pull/709 (@HanatoK, @giacomofiorin, @jhenin)

- 706 BUGFIX for Segmentation fault in colvarbias_meta::calc_energy() with useGrids off
  https://github.com/Colvars/colvars/pull/706 (@alphataubio)

- 570 enable use of CVs defined by PyTorch neural network models
  https://github.com/Colvars/colvars/pull/570 (@zwpku, @giacomofiorin, @HanatoK, @jhenin)

Authors: @alphataubio, @EzryStIago, @giacomofiorin, @HanatoK, @jhenin, @PolyachenkoYA, @zwpku
2025-04-30 15:32:30 -04:00
f9ba063c4a add citation reminder 2025-04-30 12:17:31 -04:00
def38bf0f3 Updated fix langevin algorithm citation 2025-04-29 15:03:49 -07:00
2fa9cc7ae1 correct 2025-04-29 17:52:48 -04:00
0ce5d68455 Merge branch 'develop' into talinke/develop 2025-04-29 17:20:15 -04:00
1062a8fb3a add deprecation warning to fix langevin and document it 2025-04-29 17:20:04 -04:00
332006923d Name change: langevin/gjf to gjf 2025-04-29 12:00:06 -07:00
169f8ffd73 Merge branch 'lammps:develop' into bpm-fix-rigid 2025-04-29 13:23:36 -04:00
f9a55c0f49 update reference data in test which was updated in KIM database 2025-04-29 08:40:47 -04:00
053792ed47 fix typo detected by copilot 2025-04-28 23:14:54 -04:00
2fc7d287d4 Merge branch 'develop' into collected-small-fixes 2025-04-28 22:27:32 -04:00
440e24c60e Merge pull request #4559 from lammps/gcmc-eatom
Added atomic energy option for energy change calculation in fix sgcmc
2025-04-28 22:26:15 -04:00
d4867ab55e add false positives 2025-04-28 22:22:47 -04:00
2927b08792 correct reference 2025-04-28 22:20:57 -04:00
4a3c08576f small formal updates 2025-04-28 22:19:14 -04:00
c886fff624 Merge branch 'develop' into gcmc-eatom 2025-04-28 17:55:48 -06:00
e5854ced41 backward compatibility not needed here 2025-04-28 18:56:32 -04:00
0768aac1fd update Qt platform version for flatpak build to latest 5.15 branch 2025-04-28 18:45:57 -04:00
75d3d79fca open available error URLs with double click or from context menu 2025-04-28 18:25:40 -04:00
fc0788f61c Styling 2025-04-28 13:18:33 -07:00
b5f3660101 Merge branch 'lammps:develop' into develop 2025-04-28 13:16:24 -07:00
11f6b3483b Updated documentation, updated log files 2025-04-28 13:02:47 -07:00
db3d93210d highlight error URLs in logwindow 2025-04-28 10:56:37 -04:00
e62f45b2b5 fixed whitespace 2025-04-28 09:21:14 -05:00
7151f261a0 address sphinx formatting issue due to added paragraph 2025-04-27 10:04:41 -04:00
31b18ad24e update help index table 2025-04-27 10:03:35 -04:00
f7e53b06e4 updated doc page for threads/per/atom 2025-04-27 08:56:53 -05:00
bef695f70b fix copy-n-paste error 2025-04-27 07:39:58 -04:00
c74e7292c0 allow to set vectorsize (threads per atom) with neigh/thread from -pk kokkos 2025-04-26 17:44:24 -05:00
5169a633e5 make sure cut_respa is initialized 2025-04-26 17:04:14 -04:00
2c27ea3706 Fix spelling in comment
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-04-26 13:32:21 -04:00
f8bf6d1ad6 correct a few more issues with unit tests 2025-04-26 02:42:09 -04:00
d89ae3d15d fix 64-bit integer compilation issue 2025-04-26 02:28:43 -04:00
6030c68ba3 correct reference 2025-04-26 02:18:57 -04:00
9442218b36 spelling 2025-04-26 02:18:45 -04:00
1a1f4b1a82 correct reference 2025-04-26 02:17:54 -04:00
3221c53b14 whitespace 2025-04-26 02:14:42 -04:00
161776b2c7 recover AtomStyle and SetProperty unit tests 2025-04-26 02:14:10 -04:00
78c5e9c00b reformat according to revised programming style and partial clang-format 2025-04-26 01:33:17 -04:00
36ad6ebe52 apply clang-format 2025-04-26 01:24:23 -04:00
85bac7665a add missing override attribute 2025-04-26 01:24:06 -04:00
12c72593f7 more fixes to recover compilation 2025-04-26 01:17:45 -04:00
ad6b674798 Merge branch 'develop' into fix-set-command 2025-04-26 01:13:58 -04:00
3b2f794398 fix issue breaking compilation 2025-04-26 01:03:46 -04:00
092df8ed8f add copyright header 2025-04-26 00:56:47 -04:00
4897fbb210 Merge branch 'develop' into collected-small-fixes 2025-04-26 00:50:58 -04:00
40d8e1b95f Merge pull request #4535 from Bibobu/plot_forces_tool
Adding python tool to plot tabulated forces
2025-04-26 00:50:32 -04:00
4b2163666c Merge pull request #4545 from jtclemm/rheo
Small patches to various packages
2025-04-26 00:46:49 -04:00
7102cc2588 use bold font for column titles 2025-04-25 20:31:16 -04:00
f1edc7f222 whitespace 2025-04-25 20:15:36 -04:00
706aa19710 Use type/ratio instead of type/fraction to select charged types 2025-04-25 20:05:09 -04:00
67c6dc492b update to ScaFaCoS version 1.0.4 2025-04-25 20:03:06 -04:00
d406289a7a propagate changes from library.cpp/library.h to swig and plugin interface 2025-04-25 17:04:32 -04:00
1969c28e0c delete unused variables 2025-04-25 16:35:54 -04:00
f577dcb28b Merge pull request #4570 from akohlmey/collected-small-changes
More small changes to recover builds of "develop"
2025-04-25 16:30:16 -04:00
d416202b71 restore missing blank 2025-04-25 16:16:15 -04:00
46f4f5a3c0 move JSON class back to try recover legacy builds 2025-04-25 16:11:11 -04:00
9b258d4c82 try another variant 2025-04-25 15:51:39 -04:00
1597019419 another small tweak 2025-04-25 15:44:52 -04:00
c8b841b08e small tweak 2025-04-25 15:31:32 -04:00
3b9ddf7a1f spelling 2025-04-25 14:59:42 -04:00
cab78b2c0d correct docs related to adding explicit Coulomb interactions 2025-04-25 14:15:01 -04:00
734bc915e2 must include third_party folder with legacy build 2025-04-25 14:14:20 -04:00
3c5e85a7c0 Merge pull request #4550 from akohlmey/collected-small-fixes
Collected small changes and fixes
2025-04-25 13:46:59 -04:00
9e26d8b569 Missing derivative for RK0 2025-04-25 10:19:28 -06:00
43fcf6eccc use ioffset variable. 2025-04-25 11:44:03 -04:00
d25d0cbc7e Merge pull request #4562 from mateors6/lj/pirani
Add pair style lj/pirani
2025-04-25 11:27:58 -04:00
8e07d48518 GitHub has stopped support for subversion in 2024. Remove note from 2016. 2025-04-24 18:42:19 -04:00
d4ba5d1fe6 Fixing bug in minimum density 2025-04-24 10:53:17 -06:00
a1fc036e25 Fix typo in src/timer.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-04-24 07:53:05 -04:00
ad086f26a5 Update version added 2025-04-24 10:42:42 +01:00
20d3d47fe3 Update pair_lj_pirani.rst 2025-04-24 09:18:41 +02:00
2d70947044 two more workarounds for compilation with -DFMT_STATIC_THOUSANDS_SEPARATOR 2025-04-23 21:00:40 -04:00
130033ec75 first working version of fix set with refactored set command 2025-04-23 13:04:54 -06:00
4126c9ed75 implement workaround for compilers that require -DFMT_STATIC_THOUSANDS_SEPARATOR 2025-04-23 14:20:10 -04:00
2e8b95f0c1 Update pair_lj_pirani.rst
Documentation update
2025-04-23 19:34:06 +02:00
f9dc879033 add comment to indicate that setting the pointer to null has no effect in sfree.
You need Memory::destroy() but that can't be applied to all use cases.
2025-04-23 08:41:56 -04:00
b1159dc528 fix up to Copilot suggested code change 2025-04-23 05:58:10 -04:00
1352257cf4 Use modern C++ code pattern to build c-style argument list
This was suggested by GitHub Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-04-23 05:51:53 -04:00
6629ecff2d implement function to add request for single occasional neighbor list 2025-04-22 21:44:45 -04:00
648cd3f0c6 Temperature bias capability 2025-04-22 17:43:21 -07:00
946e885209 Merge branch 'develop' into fix-set-command 2025-04-22 14:21:02 -06:00
9e9caf7d14 dummy implementation of single neighbor list build 2025-04-22 16:02:51 -04:00
290ca2a095 Update pair_lj_pirani.rst
Corrections
2025-04-22 21:13:22 +02:00
73fe2f7915 Update extract(), document, and test 2025-04-22 11:28:17 -04:00
d10e5dded2 Add OPENMP package version of pair style lj/pirani 2025-04-22 11:27:41 -04:00
bbc025632d apply clang-format 2025-04-22 10:50:24 -04:00
dbe98e2cfb update embedded JSON class to version 3.12.0 2025-04-22 10:37:29 -04:00
25307b049c Update and rename mol-pair-lj_improved_cut.yaml to mol-pair-lj_pirani.yaml
New name
2025-04-22 14:55:38 +02:00
da903e6d44 Update and rename pair_lj_improved_cut.h to pair_lj_pirani.h
New name
2025-04-22 14:53:15 +02:00
f9ba8caf4a Update and rename pair_lj_improved_cut.cpp to pair_lj_pirani.cpp
New name
2025-04-22 14:51:27 +02:00
7221e3993a Update .gitignore
New name
2025-04-22 14:48:11 +02:00
0673ac6acf Update pair_style.rst
New name
2025-04-22 14:47:24 +02:00
fcc4092e83 Update and rename pair_lj_improved_cut.rst to pair_lj_pirani.rst
New name
2025-04-22 14:45:52 +02:00
26ab7cd20d Update Commands_pair.rst
New name
2025-04-22 14:44:05 +02:00
385f350918 Removed debug code from unrelated files in MANYBODY and MC 2025-04-21 15:50:14 -06:00
04732e2efd Removed debug code from unrelated files in MANYBODY and MC 2025-04-21 10:08:27 -06:00
7bfc15ff2c Address akohlmey comments 2025-04-21 10:06:50 -06:00
d5c4f9c158 Fixed whitespace 2025-04-20 11:01:38 -06:00
0ff17967b0 Merge branch 'fix_omp_detection' of github.com:rbberger/lammps into collected-small-fixes 2025-04-20 10:37:04 -04:00
4e69046e54 cmake: fix omp.h detection
CMAKE_REQUIRED_LINK_OPTIONS needs to be a ;-separated list.
See https://cmake.org/cmake/help/latest/module/CheckIncludeFileCXX.html.
Fixes OpenMP detection with AppleClang when libomp is manually provided.
2025-04-20 00:40:24 -06:00
75d620c0a7 Fixed doc page 2025-04-19 18:21:39 -06:00
fc0a41fb71 Added atomic/energy keyword, EAM support, correct for examples/MC/in.sgcmc.eam in serial 2025-04-19 18:15:43 -06:00
6988c2f13e Typo in rheo doc 2025-04-19 10:55:19 -06:00
c088ce2f51 fix typo 2025-04-19 11:05:52 -04:00
699e5bee07 Merge branch 'fix_cmake_list' of github.com:alinelena/lammps into collected-small-fixes 2025-04-19 11:02:45 -04:00
bd427ecf7a do not make CMAKE_CXX_FLAGS a list of springs, ends up adding ; to the flags breaking compilation 2025-04-19 08:57:54 +01:00
8adc2d3391 Update pair_lj_improved_cut.cpp
Corrected energy calculation for r-RESPA
2025-04-18 13:48:10 +02:00
95a0c0a69a add another small optimization 2025-04-18 07:31:39 -04:00
f385633f97 Update pair_lj_improved_cut.cpp 2025-04-18 12:32:57 +02:00
a59a2e4dba address multiple issues with formatting, references, non-ASCII characters, spelling 2025-04-18 00:48:28 -04:00
0895b77a93 replace slow pow(x,2.0) with square(x) and cache repeatedly used pow() calls 2025-04-18 00:36:24 -04:00
71da769b11 add force style test 2025-04-18 00:35:01 -04:00
9a08f7b23b add test for indented output 2025-04-17 16:26:03 -04:00
bd34c5f315 Update .gitignore 2025-04-17 22:14:38 +02:00
18dca0eeb1 Update pair_lj_improved_cut.rst 2025-04-17 21:58:50 +02:00
942e77d976 Update and rename pair_ilj_cut.rst to pair_lj_improved_cut.rst 2025-04-17 21:57:18 +02:00
25fd039457 Add files via upload 2025-04-17 21:52:52 +02:00
96f7dc79cc Delete src/EXTRA-PAIR/pair_ilj_cut.h 2025-04-17 21:51:48 +02:00
8ef9759856 Delete src/EXTRA-PAIR/pair_ilj_cut.cpp 2025-04-17 21:51:33 +02:00
e1e87cc9ef Fixing indexing error in fix rheo arg parsing 2025-04-17 13:49:36 -06:00
e7a8cc6646 Update .gitignore 2025-04-17 21:29:30 +02:00
80361d0bd6 Merge branch 'lammps:develop' into lj/improved/cut 2025-04-17 21:25:20 +02:00
7806244713 Update pair_style.rst 2025-04-17 21:09:43 +02:00
e15e7f699e Update Commands_pair.rst 2025-04-17 21:05:58 +02:00
6e2d7f48d7 alternate approach to include header from thirdparty dir 2025-04-17 14:10:03 -04:00
51aa87d4ce Merge remote-tracking branch 'github/develop' into collected-small-fixes 2025-04-17 13:58:14 -04:00
7ca493917a Merge pull request #4542 from akohlmey/add-json-lib
Integrate header-only JSON library
2025-04-17 13:56:16 -04:00
5938dee2d9 Delete doc/pair_ilj_cut.html 2025-04-17 18:44:31 +02:00
854e9c7a19 Merge branch 'develop' into ILJ/CUT 2025-04-17 18:31:59 +02:00
a7760e82e1 Merge pull request #4536 from akohlmey/remove-cmake-tune-flags
Remove CMAKE_TUNE_FLAGS
2025-04-17 11:02:04 -04:00
0f80a5c93d Add files via upload 2025-04-17 14:06:57 +02:00
82bb366126 Delete doc/pair_ilj_cut.rst 2025-04-17 14:06:14 +02:00
ab75943e39 Add files via upload 2025-04-17 14:02:32 +02:00
ae19abdd7a Add files via upload 2025-04-17 14:01:14 +02:00
27d8e103eb move json.hpp class to thirdparty folder and add wrapper for use with LAMMPS 2025-04-16 15:54:59 -04:00
a9fe42bea4 fix bug reported in issue #4551 2025-04-16 06:21:11 -04:00
5d9a7d154d address spelling and formatting issues 2025-04-15 22:48:25 -04:00
4553108035 add minimal unit test for JSON class 2025-04-15 22:11:44 -04:00
c4c76dd96c catch JSON library exceptions 2025-04-15 21:31:03 -04:00
b131659a43 modify include guard and namespace to avoid clashes with the original version 2025-04-15 21:31:03 -04:00
d2d7248e3a import original version 3.11.3 files 2025-04-15 21:31:03 -04:00
49d5e02c11 Variable name change, fixing some spacing/typos 2025-04-15 17:34:46 -06:00
0c29a0a0c9 changed damp_type to be a mdr damping coefficent 2025-04-15 13:55:38 -04:00
4bfdd3eb34 Remove trailing whitespace 2025-04-14 16:22:11 -06:00
51de62ce05 Reconcile version changes to documentation and polish 2025-04-14 15:58:19 -06:00
703750f4c8 Merge branch 'kmc' of https://github.com/jtavenner-dev/lammps into kmc 2025-04-14 15:57:16 -06:00
a3bc1a6c0b Merge branch 'lammps:develop' into kmc 2025-04-14 15:52:23 -06:00
ca246a50f1 Merge branch 'develop' of https://www.github.com/lammps/lammps into kmc 2025-04-14 15:37:47 -06:00
3a6ea0808d Merged changes to documentation for further user clarity 2025-04-14 15:36:33 -06:00
e4c3b0c05e New example and log files 2025-04-14 11:33:02 -07:00
689b542da6 make minimize work with KOKKOS package without -suffix or suffix command 2025-04-14 10:59:54 -04:00
b081d289c1 Merge pull request #4546 from akohlmey/lammps-gui-enhancements
LAMMPS-GUI enhancements
2025-04-14 10:49:54 -04:00
0b0383bc64 Merge pull request #4548 from jrgissing/bond/react-create+rate_limit_bugfix
bond/react: refactor reaction counting
2025-04-14 09:38:10 -04:00
7be6e95647 Rephrasing suggested by @simongravelle 2025-04-14 06:28:29 -04:00
31df721767 update documentation 2025-04-13 20:01:06 -04:00
0bab80a26e not much use for editing x axis label. better give more space to other options 2025-04-13 19:33:07 -04:00
f181ca6aec support setting graph colors in preferences 2025-04-13 16:56:21 -04:00
1eb61936ab refactor reaction counting
previously, the rate_limit keyword did not work when also creating atoms
2025-04-13 12:56:01 -04:00
00673999af Merge remote-tracking branch 'github/develop' into lammps-gui-enhancements 2025-04-13 05:41:26 -04:00
994b7b4937 Merge pull request #4540 from evoyiatzis/fix-adapt-dihedral
extend fix adapt to treat dihedrals
2025-04-13 05:39:58 -04:00
bb09088731 add new tab to preferences for charts window settings 2025-04-12 11:49:41 -04:00
1ad2df84d8 add checkbox to automatically open tutorial website, if available 2025-04-12 06:49:44 -04:00
d0c3564216 update TODO list 2025-04-12 00:53:45 -04:00
2dd53c440e Add mini ToC for HowTo only and reorganize the introduction 2025-04-12 00:47:35 -04:00
ed1f4cc381 add functionality to edit the plot title and x- and y-axis labels 2025-04-11 23:25:56 -04:00
09d3ac0a1b Updated GJ-VII, GJ-VIII 2025-04-11 20:07:25 -07:00
3aa3d45a9f Merge pull request #4532 from akohlmey/collected-small-fixes
Collected small fixes and changes
2025-04-11 21:02:02 -04:00
a30daec348 Addition of GJ-VII 2025-04-11 13:40:35 -07:00
2ca9e188c0 Prevent BPM bonds breaking during setup 2025-04-11 12:53:51 -06:00
b8e14cd0c9 correct and rephrase one more time 2025-04-11 14:04:33 -04:00
3810be6c8b correct / clarify embedded docs 2025-04-11 14:04:27 -04:00
7a40e78c7a Merge conflict 2025-04-11 11:21:56 -06:00
e79171c1de Merge branch 'develop' into rheo 2025-04-11 11:18:53 -06:00
f786707699 Cleaning up granular restitution example 2025-04-11 11:14:34 -06:00
02c627db82 Merge branch 'collected-small-fixes' of github.com:akohlmey/lammps into collected-small-fixes 2025-04-11 12:34:45 -04:00
190ecd2666 clarify 2025-04-11 12:34:31 -04:00
a5b83224e4 rephrase to be less ambiguous and provide a couple more details 2025-04-11 12:29:03 -04:00
7c0fd42ab4 Move atom_vec_apip to src/APIP. 2025-04-11 10:21:18 +02:00
2bb9454190 Correct style 2025-04-10 13:15:30 -07:00
43a7b14b7c New example structure 2025-04-10 12:01:02 -07:00
4dd8c66390 Updated documentation 2025-04-10 10:33:08 -07:00
90797c7b62 document that also molecules from the molecule command can be visualized 2025-04-10 11:51:13 -04:00
83c785740b improve phrasing 2025-04-10 10:49:27 -04:00
8c1aada9cb Support constant lambda in APIP. 2025-04-10 16:05:16 +02:00
dfc10e5b59 small improvements of molecule visualization. 2025-04-10 08:56:57 -04:00
bc031bdd7a initial attempt to allow viewing molecules. 2025-04-10 08:23:04 -04:00
f2bf0d0a8b add optional create_atoms group keyword to add new atoms to a custom group 2025-04-10 05:36:26 -04:00
980bf70310 improve error messages 2025-04-10 05:00:41 -04:00
227b4ed12d remove unused class members and plug memory leaks 2025-04-10 04:39:56 -04:00
32592e6660 add feature idea for LAMMPS-GUI 2025-04-10 01:13:44 -04:00
2f861b83d7 correct embedded documentation 2025-04-10 00:01:40 -04:00
d1f452fcb6 fix whitespace issues 2025-04-09 17:45:54 -04:00
6e7cbbeb9c add errorurl(36) message to all "boost neigh_modify one" errors 2025-04-09 17:35:42 -04:00
e9695df0e8 Provide some additional explanations for the "boost neigh_modify one" error 2025-04-09 17:29:34 -04:00
8fd1bf23c9 only compute special neighbors of a template if it has bonds 2025-04-09 16:41:46 -04:00
f16f65c8dc add missing entries 2025-04-09 10:45:51 -04:00
bd6bb3ce10 Updated integrator, streamlined variables 2025-04-08 17:35:09 -07:00
585565edb9 corrected initialization of damp_type, error checks, doc changes, example script updates 2025-04-08 20:33:28 -04:00
210cddd94e working on adding damping types to mdr damping 2025-04-08 18:32:45 -04:00
d6e9a6a44a Update atom->quat in fix_rigid_small.cpp 2025-04-08 10:03:36 -04:00
139ecd0e90 Merge branch 'lammps:develop' into develop_ap 2025-04-08 16:03:25 +02:00
813e65026e fixing whitespaces 2025-04-08 15:53:45 +02:00
535d08895a Add APIP package. 2025-04-08 15:26:45 +02:00
586d24f5ef whitespace 2025-04-07 23:02:00 -04:00
7643c901eb cleaned mdr damping and updated velocity damping for mdr use 2025-04-07 22:57:29 -04:00
a237bdc753 Merge remote-tracking branch 'github/develop' into remove-cmake-tune-flags 2025-04-07 22:50:50 -04:00
af718e8162 remove one more use to CMAKE_TUNE_FLAGS 2025-04-07 22:50:38 -04:00
c9f25a69e5 remove rarely working hack 2025-04-07 22:48:44 -04:00
b6dae216d3 no need to set build type specific flags 2025-04-07 22:48:18 -04:00
3d13227287 convert compiler workaround from augmenting compiler flags to target_compile_definition() 2025-04-07 22:17:08 -04:00
647bc7538d programming style fix 2025-04-07 21:46:09 -04:00
fc3d295560 add missing entry to OpenMP reduction clause. 2025-04-07 21:29:53 -04:00
641d496d4b Refined keyword options 2025-04-07 17:36:48 -07:00
319e14c8e3 Update atom->quat in fix_rigid.cpp 2025-04-07 18:28:33 -04:00
dcb04032fb avoid memory leak on element names 2025-04-07 18:18:16 -04:00
99b484a0cc add Kokkos/OpenMP version of mliap unified test 2025-04-07 18:06:31 -04:00
c505bfbdfe make sure OpenMP has a sufficient number of threads allocated 2025-04-07 18:06:07 -04:00
8ea6c5c395 avoid memory leak for element names 2025-04-07 18:05:35 -04:00
6c337ba655 manage cutghost array for KOKKOS, if requested by pair style command 2025-04-07 18:00:56 -04:00
52ce35adbc make sure cutghost is initialized 2025-04-07 17:59:45 -04:00
bfd496bee7 plug memory leaks in pyx files 2025-04-07 17:59:12 -04:00
9a06ac9585 Merge branch 'develop' into fix-adapt-dihedral 2025-04-07 23:15:52 +02:00
499192a1b2 restore option to request neighbor lists with neighbors of ghosts 2025-04-07 16:27:16 -04:00
809d5b5b93 Fix typo in dihedral_charmm.cpp 2025-04-07 21:08:35 +02:00
7b0c5f3e04 Fix typo indihedral_charmmfsw.cpp 2025-04-07 21:07:52 +02:00
d012d13c19 fix typo in dihedral_quadratic.cpp 2025-04-07 20:52:55 +02:00
fe9915f307 disable support for neighbors of ghosts. see also bff980b56f 2025-04-07 14:37:35 -04:00
fdbae98345 Merge remote-tracking branch 'github/develop' into collected-small-fixes 2025-04-07 14:05:27 -04:00
6372178caa Merge pull request #4538 from bathmatt/mliap-coefs-bug
Fixed invalid ref of coeffs in pair style mliap/kk
2025-04-07 13:58:55 -04:00
4ce473a649 Merge branch 'lammps:develop' into fix-adapt-dihedral 2025-04-07 19:54:18 +02:00
ef875b5973 fixed whitespace 2025-04-07 14:16:49 +02:00
239eb64cbb modifications in fix adapt.cpp 2025-04-07 11:58:24 +02:00
2b38b6d1c0 extract() implementation for dihedral class2 2025-04-07 11:35:20 +02:00
e93709d34e extract() implementation for dihedral helix 2025-04-07 11:20:53 +02:00
7655a4cb84 extract() implementation for dihedral multi/harmonic 2025-04-07 09:30:44 +02:00
e956e5ccda extract() implementation for dihedral charmm and charmmfsw 2025-04-07 09:24:44 +02:00
55964c1233 extract() implementation for dihedral cosine squared restricted 2025-04-07 09:11:42 +02:00
27ac8c0ea1 extract() implementation for dihedral opls 2025-04-07 09:05:42 +02:00
477f78b28c Fixed invalid ref 2025-04-07 08:42:57 +02:00
7034e930fd update date 2025-04-06 15:03:39 -04:00
6267389801 must force OMP_NUM_THREADS=1 for all tests to pass 2025-04-06 11:30:41 -04:00
911b3eb811 cleanup format 2025-04-06 11:16:58 -04:00
2a1fb835ad must not allocate eatom and vatom when called from KOKKOS version (which sets copymode to 1) 2025-04-06 10:33:05 -04:00
d4bcd3b7eb plug memory leak in SO3 descriptor for pair style mliap/kk 2025-04-06 10:25:56 -04:00
cf3ffb9dfc simplify fingerprint to match more suppression cases 2025-04-06 10:25:31 -04:00
c6d2812d2d Revert "match documentation to return 0 when checking for size of columns on 1d arrays"
This reverts commit 6272acd9c6.
Which isn't needed
2025-04-06 07:51:52 -04:00
ac76176dd5 must set lj cutoff to avoid uninitialized data access 2025-04-06 07:29:35 -04:00
cdea2737c7 remove CMAKE_TUNE_FLAGS 2025-04-06 07:06:20 -04:00
da2bc03ae6 do explicit loop over nlocal to avoid out-of-bounds access with implicit loop 2025-04-06 06:21:39 -04:00
6272acd9c6 match documentation to return 0 when checking for size of columns on 1d arrays 2025-04-06 06:19:34 -04:00
6ab7d7d818 Made plot_forces executable 2025-04-06 10:37:54 +02:00
ece0df7f7e Small modification of Tools.rst to include plot_forces + typo 2025-04-06 10:37:23 +02:00
94e6022210 Changed --recompute option of plot_forces to -d for consistency 2025-04-06 10:34:28 +02:00
b357540e92 Added plot_forces description to README.md 2025-04-06 10:33:30 +02:00
f8757abe92 Moved plot_forces to the tools/tabulate/ folder 2025-04-06 10:31:29 +02:00
2eaf1e52f0 add even more suppressions and generalize some 2025-04-06 03:49:11 -04:00
860a3cbbd3 add suppressions for dlopen() and friends 2025-04-06 03:02:34 -04:00
8d5459393f Added the plot_forces file from previous PR 2025-04-05 23:32:36 +02:00
2939e7d509 Merge branch 'develop' of github.com:lammps/lammps into plot_forces_tool 2025-04-05 23:28:52 +02:00
0cc6fb8e18 fix acks2/reaxff/kk should use post_constructor() like base class for order of operations 2025-04-05 16:36:20 -04:00
3fc0868db9 enable and apply clang-format 2025-04-05 15:48:10 -04:00
0bfa5b210b plug memory leak 2025-04-05 15:42:04 -04:00
25f1dac9b6 more suppressions for MPICH and Kokkos 2025-04-05 01:42:44 -04:00
7c2ca8c8e5 must not call plain ev_init() from KOKKOS without setting alloc to 0 to avoid memory leak 2025-04-05 01:42:18 -04:00
c60bff2b97 reformat source 2025-04-05 00:53:28 -04:00
e0847f2195 fix memory leak in test 2025-04-05 00:26:20 -04:00
ea76dc99e9 Adding damp coeff back in 2025-04-04 15:20:55 -06:00
b9228a854e no need to call allocate() of the base class 2025-04-04 17:17:40 -04:00
be6acff029 must not allocate eatom and vatom in base class to avoid big memory leak 2025-04-04 17:17:08 -04:00
bff980b56f cutghost is not used anyware; remove to plug memory leaks 2025-04-04 17:15:56 -04:00
3d4b57d7fd Removing old variable 2025-04-04 14:40:01 -06:00
a970f946a7 some more MPICH suppressions 2025-04-04 12:05:58 -04:00
0c71daabbe Merge pull request #4530 from akohlmey/collected-small-fixes
Collected small fixes and changes.
2025-04-04 12:04:46 -04:00
30bbbafd9d Cleaning up MDR files 2025-04-04 09:57:43 -06:00
d1dd05bf4e update unit test for quadratic dihedral 2025-04-04 17:19:54 +02:00
996faf7a94 update documentation 2025-04-04 17:11:30 +02:00
3182dc26da extract() implementation for dihedral quadratic 2025-04-04 17:06:29 +02:00
0879548737 change fix adapt header file 2025-04-04 17:03:58 +02:00
54d7f46151 modifications in dihedral & dihedral_hybrid 2025-04-04 17:00:52 +02:00
ccd6eeb8af unit test 2025-04-04 16:53:57 +02:00
5086c639e2 improve docs and use dtype as parameter name to avoid confusion with type 2025-04-04 10:41:35 -04:00
f4f0a22ee1 improve valgind suppression information and format 2025-04-04 10:19:38 -04:00
66fbc40944 add valgrind suppression for Kokkos 2025-04-04 10:09:33 -04:00
af31dd3a6b update suppressions so they work with both the library interface and the standalone executable 2025-04-04 09:16:23 -04:00
5d32a1e61a don't mix malloc() and delete 2025-04-04 06:53:12 -04:00
50f42f203d make consistent, remove ghost member map 2025-04-04 06:52:02 -04:00
e3016072ad Merge branch 'develop' of github.com:lammps/lammps into develop 2025-04-04 10:22:41 +02:00
d06bfbf180 add missing index 2025-04-04 03:41:22 -04:00
a3de234873 update valgrind suppressions for Fedora 41 2025-04-04 03:40:25 -04:00
fdf5f8dd22 avoid division by zero 2025-04-04 03:39:56 -04:00
cadac64ab6 plug memory leak detected by coverity scan 2025-04-04 03:39:39 -04:00
9d61ff4bba add support for compiling fully static LAMMPS executable with libcurl 2025-04-04 00:45:19 -04:00
daf58e72dc update for recent changes 2025-04-03 22:45:37 -04:00
91283d98cc allow to set https_proxy via preferences if not set via environment variable 2025-04-03 22:27:57 -04:00
1892189eaa looking for libcurl components fails for some installations 2025-04-03 18:46:16 -04:00
f447a0476c discuss using a proxy with geturl, e.g. on a cluster compute node 2025-04-03 18:45:14 -04:00
65992f7ba2 mention LAMMPS tutorial files download support 2025-04-03 18:44:40 -04:00
999e6d95d4 list post_constructor methods and modernize description 2025-04-03 13:47:53 -04:00
384d7f446b updated damping in mdr example sims 2025-04-03 11:56:16 -04:00
609b60c211 set LAMMPS-GUI version 2025-04-03 08:56:05 -04:00
216b9218cb flag development version 2025-04-03 08:52:54 -04:00
75e12e2004 add missing overrides 2025-04-02 17:11:17 -04:00
7b4c33630d Merge pull request #4524 from akohlmey/next_release
Step version strings for next feature release
2025-04-02 16:04:25 -04:00
0a7f55688b Merge pull request #4463 from bathmatt/lammps-kokkos-mliap-comms
Added code which provides callbacks from external ML-IAP functions to…
2025-04-02 14:28:24 -04:00
91e4cbb564 update a couple more pending version tags 2025-04-02 14:20:57 -04:00
0043bca33d Merge branch 'develop' into next_release 2025-04-02 14:11:45 -04:00
9cfcb971b9 whitespace 2025-04-02 12:04:18 -06:00
cb8550465e Merge pull request #4507 from navlalli/qeqr
Add fix qeq/rel/reaxff
2025-04-02 13:19:55 -04:00
8df9f3404b Merge pull request #4467 from evoyiatzis/patch-2
extend fix adapt to treat improper angles
2025-04-02 12:18:40 -04:00
92321f4cad Merge pull request #4521 from stanmoore1/kk_update_4.6.0
Update Kokkos library in LAMMPS to v4.6.0
2025-04-02 11:30:17 -04:00
9f7653dd37 Merge pull request #4519 from fxcoudert/extxyz2
Add extended XYZ dump style extxyz
2025-04-02 10:59:18 -04:00
38df714672 Merge branch 'develop' into lammps-kokkos-mliap-comms 2025-04-02 08:32:44 +02:00
8defe0e798 Merge pull request #4482 from rbberger/dihedral_multi_harmonic_kokkos
add dihedral multi/harmonic/kk
2025-04-01 21:37:51 -04:00
d51017c878 Set pending version tags to 2Apr2025 2025-04-01 21:30:53 -04:00
5bd3218372 update version strings 2025-04-01 21:29:59 -04:00
5933eca83f Merge pull request #4515 from akohlmey/collected-small-fixes
Collected small fixes and updates
2025-04-01 21:16:16 -04:00
5371aa8670 Merge pull request #4335 from jrgissing/bond/react-molmap_option
Bond/react: molmap option
2025-04-01 21:14:19 -04:00
144637c0a1 Merge pull request #4523 from evoyiatzis/patch-7
enable lj96/cut, lj/cubic and lj/gromacs with fix adapt
2025-04-01 21:12:09 -04:00
618c92aeee fix typos 2025-04-01 19:25:48 -04:00
b0ca9ed0d4 enable lj/cubic for fix adapt 2025-04-01 16:19:37 +02:00
76e3900128 add line in the end of pair_lj_gromacs.cpp 2025-04-01 15:38:50 +02:00
db8dae3300 enable lj/gromacs for fix adapt 2025-04-01 15:36:44 +02:00
fd77c935ab Precompute terms in overlap integral 2025-04-01 12:47:55 +01:00
c99ae613de enable lj96 for fix adapt 2025-04-01 11:34:11 +02:00
6964156b6f fix syntax error 2025-04-01 00:00:22 -04:00
e577528099 switch CWD to home if default is "/" or contains "AppData" 2025-03-31 23:47:45 -04:00
b8aaa8d60f modified doc to include mdr damping model 2025-03-31 22:55:42 -04:00
3c1ed34753 removed csv_writer.h 2025-03-31 22:16:09 -04:00
eeaf0694ad white space and comment removal 2025-03-31 22:13:29 -04:00
8ee8cb1aa3 code clean-up 2025-03-31 20:13:24 -04:00
3aafe2831b added MDR damping method 2025-03-31 20:13:24 -04:00
9d01ac2caf Stablized radius update, added WFM, added outputs 2025-03-31 20:13:24 -04:00
bba860f959 Update docs for KOKKOS update 2025-03-31 12:36:40 -06:00
a4f7c7e4c5 Update CMake for KOKKOS package 2025-03-31 12:29:08 -06:00
3b69cf6011 Merge branch 'develop' of github.com:lammps/lammps into kk_update_4.6.0 2025-03-31 11:46:30 -06:00
084ba674a5 Remove atomics units and distance function 2025-03-31 17:44:17 +01:00
9d2b5302b9 modernize some error messages 2025-03-31 01:28:25 -04:00
1c609ef3e4 cosmetic, more LAMMPS style 2025-03-30 23:37:11 -04:00
677e8dd681 documentation fixes 2025-03-30 23:35:45 -04:00
6e395424bc better align with LAMMPS' programming conventions 2025-03-30 23:30:15 -04:00
935e323d08 Merge branch 'develop' into bond/react-molmap_option 2025-03-30 23:27:50 -04:00
578b1cf936 fix typo
Co-authored-by: Shern Tee <shernren@gmail.com>
2025-03-30 01:32:02 -04:00
2da463a773 missed renames 2025-03-29 18:55:13 -04:00
367dd4635b Merge remote-tracking branch 'github/develop' into qeqr 2025-03-29 18:41:36 -04:00
fc9d7bc181 rename fix qeqr/reaxff to fix qeq/rel/reaxff 2025-03-29 18:40:47 -04:00
2396668965 Merge remote-tracking branch 'github/develop' into collected-small-fixes 2025-03-29 16:31:17 -04:00
285baf27b5 Merge pull request #4518 from akohlmey/file-formats
Add a general description of common file formats in LAMMPS
2025-03-29 16:30:31 -04:00
7ff9ee51e5 small tweaks 2025-03-29 15:56:34 -04:00
990007c87b whitespace, rewrap, and comments 2025-03-28 23:55:38 -04:00
4dbf18e2c9 small suggested changes 2025-03-28 23:15:33 -04:00
1172a8c6c8 Merge pull request #4506 from fxcoudert/mac
Update macOS info
2025-03-28 18:50:45 -04:00
aeed7a425f we only need to worry about Python3 now 2025-03-28 18:25:42 -04:00
b7b9a4a599 Update Kokkos library in LAMMPS to v4.6.0 2025-03-28 15:29:14 -06:00
9661c21052 comment out possible additional sections 2025-03-28 09:56:06 -04:00
c0321b5f00 More doc 2025-03-28 10:58:54 +01:00
9a55856758 forgot handling addstep_compute in setup() 2025-03-28 00:32:28 -04:00
09242c0b12 forgot handling addstep_compute in setup() 2025-03-28 00:31:01 -04:00
a17ec2a8d3 fix bug with addstep_compute skipping on first step 2025-03-28 00:18:32 -04:00
0263774595 must use addstep_compute() on next time based or variable step dump output 2025-03-28 00:17:59 -04:00
9ac09e839f trigger computes only if next variable step or time based dump present 2025-03-28 00:05:14 -04:00
963083b2d5 must use addstep_compute() on next variable dump output 2025-03-27 23:50:37 -04:00
8949a6262d Use "Contact the LAMMPS developers" consistently and add an errorurl() to such errors 2025-03-27 19:04:32 -04:00
c3309bc0b3 error message and programming style updates 2025-03-27 18:35:40 -04:00
c9be07df9c fix bug with addstep_compute skipping on first step 2025-03-27 18:28:06 -04:00
fc78806bc7 apply clang-format 2025-03-27 17:14:35 -04:00
f652687a3a add support for outputting the same temperature, pressure, and potential energy as the thermo output 2025-03-27 17:14:06 -04:00
738fb4a502 add info about restart files 2025-03-27 16:29:13 -04:00
d12f4b076b Dump pe, temp, press 2025-03-27 21:05:38 +01:00
032c1c39b0 Handle mass better 2025-03-27 20:14:29 +01:00
fce3246439 detect misformatted Sphinx directives 2025-03-27 13:37:13 -04:00
c9d557a9f2 add test for version related tags missing a colon 2025-03-27 13:20:08 -04:00
8eceb2b944 small updates and clarifications 2025-03-27 12:52:48 -04:00
dcb844b01b Safer printf 2025-03-27 17:27:08 +01:00
0c7c21925f Update .github/CODEOWNERS
Co-authored-by: Axel Kohlmeyer <akohlmey@gmail.com>
2025-03-27 16:55:35 +01:00
b0a8391413 Update CODEOWNERS 2025-03-27 16:23:58 +01:00
bb6470eb1a More flexibility: forces, vel, mass 2025-03-27 15:59:42 +01:00
855737cf04 implement derived extxyz dump style 2025-03-27 14:38:33 +01:00
2ad0cc1820 document extxyz dump style 2025-03-27 14:38:08 +01:00
f5dbf30965 improve error messages 2025-03-27 14:37:27 +01:00
f0b3b20653 add a write permission check before opening a pipe for compressed writes 2025-03-26 23:09:39 -04:00
dd313465e1 add support for writing one file per timestep with '*' wildcard 2025-03-26 22:44:35 -04:00
9661d020c1 Merge branch 'develop' into collected-small-fixes 2025-03-26 20:10:20 -04:00
c45558b640 some tweaks for local table of contents 2025-03-26 20:09:54 -04:00
2542b989ee small tweak 2025-03-26 19:59:52 -04:00
7f0b71f7c0 spelling 2025-03-26 17:36:27 -04:00
637b572600 Merge remote-tracking branch 'github/develop' into file-formats 2025-03-26 17:33:00 -04:00
465171d58f Merge pull request #4514 from akohlmey/library-handle-argument-errors
Improve handling argument errors with library interface functions
2025-03-26 14:35:30 -04:00
dcbc3c9dbc whitespace 2025-03-26 09:52:19 -04:00
194b3408f7 add section about molecule files 2025-03-26 09:51:09 -04:00
bc1b22a2f8 finish (for now) the summary of the data file format 2025-03-26 09:01:07 -04:00
8a373ab5d8 spelling 2025-03-26 09:00:25 -04:00
cf5d74b315 add pair style pedone to list of pair styles compatible with fix adapt 2025-03-26 05:54:21 -04:00
d515af2e2b Merge branch 'develop' into library-handle-argument-errors 2025-03-26 05:13:10 -04:00
811f79abc6 error out or ignore on displacements in z-direction with 2d system 2025-03-26 04:57:01 -04:00
c22716f5c0 error out on non-existing groups and improve error messages 2025-03-26 04:45:13 -04:00
a9f2bdf326 remove misplaced excess error call 2025-03-26 04:17:36 -04:00
c95d43f647 plug memory leaks 2025-03-26 04:16:54 -04:00
24389a55dc remove argument expansion since it would take only the first expanded argument only.
this is better made explicit.
2025-03-26 04:11:51 -04:00
16f836bef5 Merge branch 'develop' into lammps-kokkos-mliap-comms 2025-03-26 07:21:53 +01:00
d658c589f7 update formulations some more 2025-03-25 21:47:04 -04:00
a98a743f2e Fix tabs->spaces in last commit 2025-03-25 15:13:11 -07:00
bc791da69e Merge remote-tracking branch 'github/develop' into collected-small-fixes 2025-03-25 17:53:23 -04:00
faa6e806bf Merge remote-tracking branch 'github/develop' into file-formats 2025-03-25 17:53:02 -04:00
7878ec170c Merge pull request #4501 from lammps/errors-more-cleanup
[Community Project] More Error and Warning Messages Cleanup
2025-03-25 17:52:08 -04:00
3c055fe93b Clean up cupy vs. torch in exchanges 2025-03-25 15:39:20 -06:00
bb788cb1a2 Merge remote-tracking branch 'github/develop' into file-formats 2025-03-25 17:36:55 -04:00
0b43649e74 Merge pull request #4513 from akohlmey/howto-bulk-to-slab
Add a Howto showing how to convert a bulk system to a slab
2025-03-25 16:54:38 -04:00
227b7840e7 add disclaimer and improve some formulations 2025-03-25 15:42:11 -04:00
2d0c1af656 Merge remote-tracking branch 'github/develop' into howto-bulk-to-slab 2025-03-25 15:40:55 -04:00
fecd93783b spelling 2025-03-25 15:40:40 -04:00
d850d93dad Make Pytorch optional 2025-03-25 13:01:56 -06:00
678e90f669 make spellchecker happy 2025-03-25 14:55:30 -04:00
bafd2a8d6b Merge remote-tracking branch 'github/develop' into file-formats 2025-03-25 14:22:55 -04:00
2ea5cf1206 Merge remote-tracking branch 'github/develop' into collected-small-fixes 2025-03-25 14:16:04 -04:00
9e241df062 Merge pull request #4182 from akohlmey/group-bitmap-accessor
Refactor code to use group bitmap accessor
2025-03-25 14:12:27 -04:00
32e4a0d36b Merge branch 'develop' into lammps-kokkos-mliap-comms 2025-03-25 18:44:52 +01:00
5dbeacb1e8 Merge pull request #4508 from jewettaij/master
Fixed the Moltemplate HowTo docs
2025-03-25 13:02:31 -04:00
bdf1b541b1 Merge branch 'mac' of https://github.com/fxcoudert/lammps into collected-small-fixes 2025-03-25 11:38:54 -04:00
66d5fbd4bd Merge pull request #4516 from Eddy-Barraud/dpd_charged
wrong qi*qj in the cuda code
2025-03-25 11:28:21 -04:00
183486d813 implement suggestions from @ndtrung81 2025-03-25 11:27:19 -04:00
e9ac9e77db add option to return an entire column, row, or array as flat array with lammps_extract_fix() 2025-03-25 11:20:15 -04:00
3efddff01a Changed use of varient on LHS 2025-03-25 09:59:41 +01:00
3872fa16d4 small update to internal command documentation 2025-03-25 04:37:15 -04:00
7fba02f865 fix logic bug when writing coeffs to data file 2025-03-25 03:02:17 -04:00
5a62d0a129 correct data in data file and pair_coeff changes are no longer needed
also re-create reference log files
2025-03-25 03:01:38 -04:00
3ed03c4044 add post_constructor() method to computes for symmetry with fixes 2025-03-24 22:59:36 -04:00
15026cfa56 cosmetic 2025-03-24 22:59:05 -04:00
b4ff184a0a complete refactoring of handle check and error handling 2025-03-24 17:19:31 -04:00
d830412228 added boolean
the read_data is not reading slater boolean of pair_coeff
2025-03-24 16:04:40 +01:00
bbd057891a wrong qi*qj cuda code
correction of cutsq[mtype].z instead of extra[j].x !
2025-03-24 15:35:34 +01:00
b45c811fbb more argument error improvements 2025-03-24 09:15:19 -04:00
7b5c281596 when calling Error we must wrap the code in BEGIN/END capture 2025-03-24 05:52:47 -04:00
350fa4ddec more library interface argument checking and error handling 2025-03-24 05:25:11 -04:00
e0322b96ec sync new library interface function across all interfaced derived packages 2025-03-24 04:33:27 -04:00
15cdba0bf0 have Error::set_show_error() return the previous setting 2025-03-24 04:13:24 -04:00
e79fcfb4ef implement improved version of go-to-top button with javascript requiring only one click 2025-03-24 00:14:50 -04:00
3a18ca5197 updates, recover failed tests with -DLAMMPS_BIGBIG 2025-03-23 23:17:53 -04:00
9577343429 use a global constant for a common string buffer size 2025-03-23 22:21:05 -04:00
2b718d3b86 add interface to lammps_set_show_error() 2025-03-23 22:20:34 -04:00
aabfef6d0b update packaging to conform with suggested packaging changes 2025-03-23 22:20:02 -04:00
b4e4ea1069 we don't need lammps_throw_error. just call lmp->error->xxx 2025-03-23 21:23:24 -04:00
ccbf47c66d forgot exceptions in two cases 2025-03-23 19:02:10 -04:00
6fca985d5d add method that allows suppressing printing error messages immediately 2025-03-23 19:01:25 -04:00
a26ea958c6 throw suitable exception when trying to extract unknown or incompatible compute or fix data 2025-03-23 18:07:08 -04:00
a64863caa6 fix sphinx directive error in embedded docs 2025-03-23 16:37:20 -04:00
824b1b0b66 relax epsilon to pass tests on macos-arm64 2025-03-23 16:36:16 -04:00
3d5430bfe4 Merge branch 'develop' into errors-more-cleanup 2025-03-23 16:01:00 -04:00
adaa313990 Merge pull request #4502 from akohlmey/collected-small-fixes
Collected small changes and fixes
2025-03-23 15:59:38 -04:00
88cecbd11d alternate implementation of jump to top by @rbberger 2025-03-22 18:54:49 -04:00
c65c8819e3 cosmetic changes and re-wrap paragraphs 2025-03-22 16:06:17 -04:00
f4b92a23ae small clarification cherry-picked from PR #4502 2025-03-22 15:47:52 -04:00
6f24e1edd5 remove leftover pieces of obsolete warning 2025-03-22 15:42:51 -04:00
12cc12b4f4 Typos and alternate wording suggestions 2025-03-22 12:57:28 -06:00
cb5e45ff1f small tweaks 2025-03-22 11:24:53 -04:00
8a0900f0ab revert broken change to print angstrom character 2025-03-22 11:20:37 -04:00
9d0c25fbab improve wording 2025-03-22 11:15:26 -04:00
c289ad9471 forgot to include upward arrow image 2025-03-22 06:08:48 -04:00
725b34a70a add snapshot images to show the initial and final geometry and box 2025-03-22 06:08:16 -04:00
410d3e84b0 add a Howto demonstrating how to convert a bulk molecular system to a slab 2025-03-22 04:41:34 -04:00
1b58a4695b add explanations for "before/after simulation box is defined" errors 2025-03-21 20:30:47 -04:00
649fd86e11 add errorurl(11) with explanation to "Energy/Stess was not tallied by pair style" 2025-03-21 19:57:57 -04:00
3834169c92 first attempt to implement a "jump to top" anchor in the sidebar 2025-03-21 19:30:28 -04:00
3ab91e4e1a fix up uses of errorurl(21) 2025-03-20 23:12:21 -04:00
c037ec07a2 make utils::errorurl() point to generic page with error code 0 2025-03-20 22:45:41 -04:00
e9bc334a14 add some more missing errorurl() calls and error pointers 2025-03-20 22:45:01 -04:00
3b61bcf890 more error reporting updates 2025-03-20 12:31:08 -04:00
bbed85a410 Remove dead code 2025-03-20 15:08:02 +01:00
829a0868e8 fixed whitespace 2025-03-20 15:08:02 +01:00
f85a19d0b1 Added code which provides callbacks from external ML-IAP functions to exchange data
This is designed for message passing ML models.  Currently FP32/64 values can be communicated
but these are passed via doubles in MPI,
Work completed by
Forrest Glines <fglines@nvidia.com>
Matt Bettencourt <mattb@nvidia.com>
2025-03-20 15:08:01 +01:00
2e98ae9de9 Improve qtpie/reaxff docs and add qeqr/reaxff docs 2025-03-20 13:19:50 +00:00
e11245d0fd Add examples for fix qeqr/reaxff 2025-03-20 10:42:12 +00:00
e4c96459e5 flag some more compatible time and out-of-bounds errors with errorurl()s 2025-03-20 06:16:59 -04:00
ca575e395e fix spelling and duplicate references issues 2025-03-19 20:39:06 -04:00
643afe6eff fix segfault issue for optional arguments 2025-03-19 20:28:42 -04:00
04bb57f8e2 update a bunch more error messages 2025-03-19 17:17:47 -04:00
37248a011e deleted trailing whitespace in the Howto_moltemplate.rst file (for PR #4508) 2025-03-19 15:30:06 -04:00
63b8e86a4b tried to minimize the differences between my version and the existing version 2025-03-19 13:58:46 -04:00
6700a3bed1 Fixed the Moltemplate HowTo docs. (I also added a very simple polymer example.) This needed to be done because the file names and @atom types in the old version of this HowTo are no longer accurate. OPLSAA has changed. Now this HowTo is compatible with the latest version of OPLSAA. More importantly, after this update, the HowTo documentation should never need to be updated again because OPLSAA force field files are named according to the OPLSAA version/date. For example, the "oplsaa.lt" file has been renamed to "oplsaa2024.lt". Future OPLSAA updates will go in other files with different names. So the @atom types in this HowTo example should never need to be updated in the future, regardless what happens with OPLSAA. 2025-03-19 13:36:09 -04:00
db8abdb592 Update macOS info 2025-03-19 13:57:49 +01:00
bb8b6590d5 Remove unused header files and add affiliation 2025-03-19 11:22:04 +00:00
5bcfc35cd1 Reimplement warning through fix qtpie/reaxff 2025-03-19 10:23:22 +00:00
ee78e3e201 add -f option to install.py to install into externally-managed environments 2025-03-19 03:14:34 -04:00
b936673935 consolidate calls to utils::errorurl() with corresponding error class calls. 2025-03-19 02:23:10 -04:00
8a04dc036d Merge remote-tracking branch 'github/develop' into errors-more-cleanup 2025-03-19 01:39:22 -04:00
4cd3fa1e38 spelling 2025-03-18 20:24:04 -04:00
90cd786c2d document how to address "externally managed environment" errors with install-python 2025-03-18 20:20:56 -04:00
d02e26d3ba document DOWNLOAD_POTENTIALS with CMake 2025-03-18 19:49:04 -04:00
056733fb1f Add warning if fix efield is not in use
fix qeqr/reaxff leads to the same charges as fix qeq/reaxff when an
electric field is not applied, but at a slightly increased computational
cost. Therefore, fix qeq/reaxff should be used instead of fix
qeqr/reaxff when fix efield is not in use.
2025-03-18 18:14:37 +00:00
78bfa5b59b Create fix qeqr/reaxff 2025-03-18 17:51:30 +00:00
69881baa0c add false positives 2025-03-17 23:33:47 -04:00
4aece11628 add note about need to run ldconfig on Linux system after make install 2025-03-17 23:33:39 -04:00
7d6c19f51b adjust for macos_arm64 arch 2025-03-17 18:12:33 -04:00
f0b988904d add some notes about releasing a stable release update 2025-03-17 17:59:32 -04:00
e502d40491 Merge remote-tracking branch 'github/develop' into collected-small-fixes 2025-03-17 17:40:29 -04:00
6f0a59372c Merge pull request #4500 from akohlmey/remove-smallsmall
Remove support for -DLAMMPS_SMALLSMALL
2025-03-17 17:16:54 -04:00
b329d01e5e small clarification 2025-03-17 12:25:06 -04:00
aee02c7ed4 remove entries that are now covered by Errors_details.rst 2025-03-17 12:20:30 -04:00
afaf440895 expand/clarify some discussions 2025-03-17 12:20:07 -04:00
68c92f3267 add new explanation for warning about multiple time integrations 2025-03-17 12:18:32 -04:00
d42330edbd consolidate errors #6 and #7 plus handle non-numeric box. add missing entries. 2025-03-17 11:40:36 -04:00
9e8b9e55be Merge remote-tracking branch 'github/develop' into collected-small-fixes 2025-03-17 11:01:42 -04:00
0a7b528d39 don't silence format errors 2025-03-17 11:01:16 -04:00
368e0a22a0 adding WHAM dialog is postponed 2025-03-16 19:21:08 -04:00
d65b0ce666 update to WHAM version 2.1.0 2025-03-16 17:28:57 -04:00
afbae53a0a convert remaining errors to print coeff status 2025-03-16 06:03:23 -04:00
035aefcc26 address issues flagged by coverity scan 2025-03-15 21:38:18 -04:00
73585e1dcc revert broken change to print angstrom character 2025-03-15 21:17:00 -04:00
111817ce32 also print pair coeff setflag status when not all pair coeffs are set 2025-03-15 21:16:07 -04:00
b34b6b80e4 refactor info code so coeffs status can be appended to error 2025-03-15 20:11:33 -04:00
7b915b2983 error message does not exist anymore 2025-03-15 20:10:37 -04:00
96f135c294 some more small tweaks of explanation and spelling fixes 2025-03-15 16:38:12 -04:00
bca920a021 Merge remote-tracking branch 'github/develop' into errors-more-cleanup 2025-03-15 16:21:03 -04:00
589c026465 Tweaked the description of numbering order 2025-03-15 14:09:38 -06:00
2240430d5e Merge pull request #4495 from lammps/use-pandoc-for-fasthtml
Use pandoc for make fasthtml
2025-03-15 15:55:00 -04:00
6dacf5d52c Update fix_neighbor_swap.rst
I fixed some typos and shortened the text a bit.
2025-03-15 11:36:20 -06:00
067f998eac Update Build_manual.rst 2025-03-15 10:57:28 -06:00
546ea917c7 fix a few more .rst formatting issues flagged by pandoc 2025-03-15 12:35:12 -04:00
b9218528cf CSS style tweaks to make pandoc output more similar to sphinx output 2025-03-15 12:34:48 -04:00
54be0adfb8 resolve some issues in .rst files detected by pandoc 2025-03-15 12:00:53 -04:00
5b5b700318 copy image files to fasthtml folder 2025-03-15 12:00:16 -04:00
48570e01ba Merge branch 'develop' into use-pandoc-for-fasthtml 2025-03-15 11:05:12 -04:00
2c3824bdd0 update remaining places that used to support -DLAMMPS_SMALLSMALL 2025-03-15 02:11:50 -04:00
07c0c435ef Merge branch 'develop' into remove-smallsmall 2025-03-15 02:11:02 -04:00
ee930935f5 remove "self-explanatory" explanations. 2025-03-14 21:23:07 -04:00
aafdac1917 update intros to three pages with errors and warnings and cross-reference them 2025-03-14 21:06:23 -04:00
81ab0b7504 Merge pull request #4456 from akohlmey/add-error-explanations
Add short explanations and URL to them for common errors and warnings
2025-03-14 20:18:34 -04:00
3aba21f6e2 Merge pull request #4481 from akohlmey/collected-small-fixes
Collected small fixes and changes
2025-03-14 18:10:14 -04:00
361914f3f1 remove references to SMALLSMALL from GPU library 2025-03-14 16:31:30 -04:00
557d279774 remove references to SMALLSMALL from examples 2025-03-14 16:31:09 -04:00
55eeaca69c Merge pull request #4498 from evoyiatzis/patch-4
implement extract() in pair_style yukawa
2025-03-14 13:27:44 -04:00
4e0d37ecc2 ensure that df[] array is always initialized 2025-03-14 12:19:00 -04:00
4c3260a0dc fix bug missing a read_int() when reading general triclinic rotation matrix 2025-03-14 12:18:42 -04:00
cea31e463d remove references to -DLAMMPS_SMALLSMALL and trigger error when used 2025-03-14 10:20:31 -04:00
a0d1deea44 small clarification. add version tag for universe keyword 2025-03-14 09:54:55 -04:00
fcb2eee686 corrections for documentation of bosonic PIMD fix styles 2025-03-14 09:54:26 -04:00
e97807b92e clarify. mention using timer command to re-enable regular runs 2025-03-14 07:00:30 -04:00
29558a1141 key word -> keyword 2025-03-14 06:59:33 -04:00
5ab442f10b Include yukawa in the list of supported pair styles in fix_adapt.rst 2025-03-14 09:32:10 +01:00
7374d38b44 Update mol-pair-yukawa.yaml 2025-03-14 09:27:32 +01:00
419b18bd16 implement extract() in pair_yukawa.cpp 2025-03-14 09:25:28 +01:00
b11672a99f define extract() in pair_yukawa.h 2025-03-14 09:16:57 +01:00
d784706a68 small changes to appease coverity scan 2025-03-14 02:47:14 -04:00
e3de43f2b0 modernize use of \it and \sf 2025-03-13 22:25:14 -04:00
8ff5855e40 modernize boldface font selection in LaTeX sections 2025-03-13 22:14:07 -04:00
9da8a7f73a improve error pointers and out-of-range message for dump custom 2025-03-13 22:05:44 -04:00
bf1a5e05fd correctly flag out-of-range access for thermo data, where possible 2025-03-13 18:11:18 -04:00
03f71259c1 Merge pull request #4494 from lammps/example-input-fixes
fixed issues with several input scripts, added reference log files
2025-03-13 14:34:44 -04:00
34b3dd9ebd Proofreading errors doc page 2025-03-13 11:34:09 -06:00
889f91763f explain image flag related errors and warnings 2025-03-13 09:36:58 -04:00
bfdfd322df make compatible with C++20 and later 2025-03-13 05:41:32 -04:00
9d70c8b8ae provide error information for two more cases 2025-03-13 05:31:41 -04:00
0f10741f71 update tests for variable commands 2025-03-13 04:38:58 -04:00
f6394b2a61 remove obsolete line 2025-03-13 04:21:20 -04:00
c449bed814 apply clang-format 2025-03-13 04:15:49 -04:00
b53449ff10 free communicator only if not NULL 2025-03-13 04:15:41 -04:00
a1c0d93953 limit to 1 processor per partition 2025-03-13 04:15:16 -04:00
8c9e1fe6a2 update pimd/*/bosonic examples 2025-03-13 04:00:54 -04:00
009a7b1916 print detailed version string also for multi-replica runs 2025-03-13 03:58:51 -04:00
0812d3c772 must use delete[] on array allocated with new 2025-03-13 03:58:33 -04:00
71c8c2aaa2 improve error messages 2025-03-13 03:58:12 -04:00
933f618eb4 update .gitignore 2025-03-13 03:57:41 -04:00
0a4a2f6deb Merge branch 'develop' into collected-small-fixes 2025-03-13 03:06:14 -04:00
bdb661451d revert unintended commit 2025-03-13 03:00:24 -04:00
a892495575 revert unintended commit 2025-03-13 02:59:43 -04:00
24444f2f7c use minimal CSS file and explicit template 2025-03-12 23:45:48 -04:00
fd06c20a6a fix copy-n-paste error 2025-03-12 22:58:33 -04:00
f158b5195e add explanation for "did not assign all atoms" 2025-03-12 22:51:29 -04:00
33ac6c8836 address several issues related to variables and improve error messages 2025-03-12 22:33:07 -04:00
16ed78f435 Merge remote-tracking branch 'github/develop' into add-error-explanations 2025-03-12 20:36:18 -04:00
6d6fce7866 provide explanation for "variable evaluated before simulation box is defined" 2025-03-12 20:36:01 -04:00
084bdb2da6 Merge pull request #4496 from gplummer317/ctip
CTIP citation update
2025-03-12 19:59:17 -04:00
c3976a444c Merge branch 'develop' into use-pandoc-for-fasthtml 2025-03-12 19:54:58 -04:00
377c423e42 Update pair_coul.rst
Updated CTIP citation
2025-03-12 15:17:31 -07:00
063d595233 Update pair_coul.rst
Updated CTIP citation
2025-03-12 15:16:59 -07:00
9c4181e42e Update fix_qeq.rst
Updated CTIP citation
2025-03-12 15:15:35 -07:00
bd7420e496 Merge remote-tracking branch 'github/develop' into add-error-explanations 2025-03-12 18:08:53 -04:00
130b898e26 update documentation for new "make fasthtml" 2025-03-12 17:50:27 -04:00
c7f5d07a68 modernize LaTeX for formatting text in math mode 2025-03-12 17:14:11 -04:00
42219ac784 modernize LaTeX for formatting text in math mode 2025-03-12 17:08:56 -04:00
1931427a57 handle custom \AA macro for pandoc processing 2025-03-12 17:06:07 -04:00
24ce7bedcd Merge pull request #4493 from ssande7/correlate_first
Add `type first` option to correlation fixes
2025-03-12 16:33:38 -04:00
f097e8d951 Merge pull request #4479 from yotamfe/bosonic-pimd-langevin
Adding support for bosonic path integral molecular dynamics simulations
2025-03-12 15:28:51 -04:00
1b31064921 replace "fast" Sphinx build with build using pandoc for "fasthtml" target 2025-03-12 15:14:31 -04:00
38903fb7d2 replace (evil) tabs with spaces 2025-03-12 14:30:33 -04:00
9aba2c91c9 add citation reminder to fix qtpie/reaxff 2025-03-12 14:25:58 -04:00
3e62e660e5 Update fix_pimd_bosonic.rst - delete trailing whitespace 2025-03-12 18:20:30 +02:00
4a2d78fd99 Update fix_pimd.rst - delete trailing whitspace 2025-03-12 18:19:48 +02:00
d0aabe57bc better grammar 2025-03-12 11:59:34 -04:00
1cc69bd0df support referencing the general advice paragraphs 2025-03-12 11:58:30 -04:00
e3bf1a194d fix typos 2025-03-12 11:56:40 -04:00
930d3ddc17 resolve spelling and formatting issues 2025-03-12 11:53:57 -04:00
508eeddf87 Merge branch 'develop' into add-error-explanations 2025-03-12 11:39:13 -04:00
ebf6ba36bf remove leading 0 in single-digit url codes 2025-03-12 07:39:45 -06:00
90c713d065 update details on errors 6, 7, 8, 10, 13, and warning 28 2025-03-12 07:33:07 -06:00
d1671c24c4 add url for warning 28 2025-03-12 07:28:58 -06:00
fa262967e6 add url for error 10 2025-03-12 07:28:22 -06:00
6d42040b9d add url for error 13 2025-03-12 07:26:59 -06:00
70faf86040 add urls for error 08 2025-03-12 07:25:09 -06:00
ab63993226 add urls for error 07 2025-03-12 07:23:56 -06:00
2c2eaf09e6 add urls for error 06 2025-03-12 07:22:47 -06:00
1507d3511f Update fix_pimd.rst - added related commands 2025-03-12 12:45:24 +02:00
aa020c0ad3 Update fix_pimd_bosonic.rst - added related commands 2025-03-12 12:43:37 +02:00
d076b1c582 Update fix.rst - changed pimd/* to pimd/*/bosonic where needed 2025-03-12 12:38:09 +02:00
c144fc0fc6 Fix constant i for type first 2025-03-12 08:14:48 +10:00
5068406c03 fixed incorrect path to the potential file 2025-03-11 16:41:41 -05:00
0004a384fe fixed issues with several input scripts, added reference log files 2025-03-11 16:10:04 -05:00
1d3b93b042 Add type first option to fix ave/correlate 2025-03-11 20:54:38 +10:00
6fb382af3d Updated the documentation of pimd commands for distinguishable/bosonic particles. 2025-03-11 11:58:29 +02:00
b88accc50e Merge branch 'bosonic-pimd-langevin' of https://github.com/yotamfe/lammps into bosonic-pimd-langevin 2025-03-11 11:00:00 +02:00
242f77fce9 Changed the names of fix pimdb/* commands to pimd/*/bosonic; Changed file names accordingly. 2025-03-11 10:56:07 +02:00
1e819efcf8 update examples for consistency 2025-03-10 17:11:53 -04:00
01698ddc2e improve error messages for easier debugging 2025-03-10 17:06:37 -04:00
08f8be18e5 rework SPIN restart/data file examples 2025-03-10 17:04:16 -04:00
8af31ca28c fix minor memory leaks 2025-03-10 16:04:35 -04:00
9c494d0a25 include space in custom formats to show how spaces can be used to separate columns 2025-03-10 13:30:08 -04:00
5a1aed7957 properly tally the SYNC time contributions to the ALL time entry
this way its contribution is not double counted when determining
the "Other" time data.
2025-03-10 12:16:51 -04:00
6ff0f645e0 formatting 2025-03-10 06:28:45 -04:00
4cafb49c34 report which variable name was incorrect 2025-03-10 06:28:28 -04:00
312bdcbddd correct and clarify statements about the potentials and their relations to each other 2025-03-10 06:26:37 -04:00
79d2346eaa resolve spelling and formatting issues 2025-03-10 06:25:11 -04:00
4be39d6d2b fix typos 2025-03-09 22:46:03 -04:00
9ee1648af2 document removed compute atom/molecule and its equivalent using chunks 2025-03-09 22:21:51 -04:00
ca3d2de44b fix broken URL due to typo 2025-03-09 22:10:52 -04:00
ce10be7492 Merge branch 'develop' into collected-small-fixes 2025-03-08 22:28:31 -05:00
4246fab500 Merge pull request #4462 from jtclemm/BPM
Elastic-plastic bond style
2025-03-08 22:26:05 -05:00
15b7dd78f0 Revert "add some more tests for delete_atom"
This reverts commit 2ff078f973.
2025-03-08 18:00:57 -05:00
e3cf1dec27 restore original delete_atoms implementation. new version spun off as PR #4492 2025-03-08 17:52:26 -05:00
388f279633 set stores_ids flag for some fixes as suggested by @sjplimp 2025-03-07 12:43:32 -05:00
0a1e3fa26a Merge remote-tracking branch 'github/develop' into collected-small-fixes 2025-03-07 12:34:08 -05:00
976b73a2f2 fix typo 2025-03-07 12:05:38 -05:00
9af8fdc91e add MPI stub for MPI_Iprobe() 2025-03-07 11:50:53 -05:00
24fc6eb10a modernize error messages 2025-03-07 11:40:41 -05:00
6e94d83cff add option to synchronize fix halt stop requests across multi-partition runs 2025-03-07 11:40:27 -05:00
2ff078f973 add some more tests for delete_atom 2025-03-07 02:24:12 -05:00
7bd7be8f86 error out when trying unsupported pimd method with multiple processors per bead 2025-03-07 01:59:41 -05:00
22fa86a1b7 add "condense" keyword to delete_atoms what will compact the atom IDs while preserving their order 2025-03-06 20:44:05 -05:00
a61f67ceb7 Merge pull request #4490 from gsalkuin/fix-move-rotate
Add option to rotate dipoles in fix move rotate or transrot
2025-03-06 18:41:52 -05:00
9b1dca201f rewrite incorrect statement 2025-03-06 15:45:24 -05:00
46393cc930 modernize error messages 2025-03-06 13:15:24 -05:00
916ab55a31 reverse normalization between type pairs if the types were swapped on input 2025-03-06 13:15:09 -05:00
09c8dc07d8 update statements about what packages support and what not 2025-03-06 11:08:22 -05:00
3f9167be59 modernize error messages 2025-03-06 11:07:34 -05:00
1531810cc5 add versionadded tag 2025-03-06 03:59:47 -05:00
c16bbf6bb0 Merge branch 'develop' into fix-move-rotate 2025-03-06 03:08:53 -05:00
abc14c00a0 use different method to enforce the C locale in LAMMPS GUI 2025-03-05 17:40:36 -05:00
47cea8e1ba use pairwise cutoff for trimming unless a custom cutoff if given 2025-03-05 04:23:07 -05:00
b433c8cb77 only trim if neighbor list request has a custom cutoff 2025-03-05 04:16:13 -05:00
07c457221d Add checks, update flags 2025-03-05 00:19:27 -05:00
711d76531f Merge remote-tracking branch 'github/develop' into collected-small-fixes 2025-03-04 23:34:36 -05:00
505d295d16 small correction 2025-03-04 23:34:24 -05:00
6da1c6270c Merge pull request #4351 from dhairyaiitb/develop
Revised velocity verlet scheme to prevent unphysical sticking in DEM simulations.
2025-03-04 23:31:59 -05:00
cc70b5bb89 document some internal styles 2025-03-04 23:15:41 -05:00
389b07418b add false positives 2025-03-04 21:44:20 -05:00
16c3198d27 delete unused variables 2025-03-04 21:39:26 -05:00
885099cf77 Merge branch 'develop' into dhairyaiitb_develop 2025-03-04 21:29:40 -05:00
037251238b Add type first option to fix ave/correlate/long 2025-03-05 10:46:37 +10:00
a229b148d1 Update fix_move.rst 2025-03-04 18:09:19 -05:00
43f3db1867 Update fix_move.cpp
Make update dipole optional
2025-03-04 17:33:14 -05:00
61daafca62 Update fix_move.cpp 2025-03-04 15:27:16 -05:00
ac2214e5f2 Update fix_move.h 2025-03-04 15:26:41 -05:00
71b86b102d enable use of Sphinx 8.2.x 2025-03-03 21:08:45 -05:00
0f20eca322 Merge branch 'develop' into collected-small-fixes 2025-03-03 21:02:19 -05:00
16db8e1515 Merge pull request #4483 from Yuanlab-SUSTECH/mybranch
fix the bug of pair_ylz.cpp
2025-03-03 20:59:05 -05:00
700eb0c0e6 Merge pull request #4485 from akohlmey/fix-dispersion-d3-issues
Address several issues with pair style dispersion/d3
2025-03-03 20:58:29 -05:00
42923179e5 clarify which damping is documented where 2025-03-03 16:32:50 -05:00
2e3c1dfcc6 error explanations for net charge warning err_0029 2025-03-03 10:59:23 -07:00
bc3aafd324 update log files after bugfix to pair_style ylz 2025-03-03 08:06:33 -07:00
7fc4ba9628 move documentation of sign() function to logical location and add version tag 2025-03-02 12:40:32 -05:00
38f8299cfb Merge remote-tracking branch 'github/develop' into fix-dispersion-d3-issues 2025-03-01 00:44:14 -05:00
ea48161a51 update CODEOWNERS 2025-03-01 00:42:43 -05:00
e3b81ec784 cosmetic changes 2025-03-01 00:24:00 -05:00
98159e7c14 improve error detection and messages 2025-03-01 00:22:54 -05:00
169c051308 require metal units 2025-03-01 00:20:50 -05:00
9f78d5797b rename "zero" keyword for damping function to "original"
this avoids conflicts with pair style zero when used as a hybrid sub-style.
for backward compatibility the "zero" keyword is still recognized but
is undocumented.
2025-03-01 00:20:00 -05:00
3j
5d02e140d4 There is a wrong equation in the line490, MY_4PI should be MY_PI*zt 2025-02-28 17:43:54 +08:00
f4d2c518e8 make certain variable indices are initialized 2025-02-28 03:43:58 -05:00
1f4b955a34 add dihedral multi/harmonic/kk 2025-02-28 00:07:46 -07:00
c6ebb57b41 make certain that nstyle is always initialized and detect partial variable setups 2025-02-27 23:28:19 -05:00
ef5c797a84 Merge remote-tracking branch 'github/develop' into collected-small-fixes 2025-02-27 23:21:34 -05:00
94885186b8 Updated doc with description of kMC algorithm 2025-02-27 16:12:06 -07:00
4ed7d95bf9 Update bosonic_exchange.cpp
updated documentation of reduced/physical beta convention
2025-02-27 15:31:08 +02:00
4882fe8e8b Update bosonic_exchange.cpp
Typo
2025-02-27 12:46:45 +02:00
dbdc71433c Merge branch 'develop' into bosonic-pimd-langevin 2025-02-27 12:25:18 +02:00
c182fbd1c6 fix email 2025-02-27 12:24:43 +02:00
7f4d5bf0eb comment was removed at 8780cd8 but mistakenly not added somewhere else 2025-02-27 12:23:42 +02:00
aaa81b2576 Merge pull request #4475 from lasergyro/patch-1
Update fix_press_langevin.rst to include full equation 13
2025-02-27 03:02:39 -05:00
e1ba18aff9 Adding missing settings to restart files 2025-02-26 13:04:06 -07:00
f6c2f5bc74 Merge pull request #4454 from evoyiatzis/patch-4
Add support to region plane for having the normal vector read from variables
2025-02-26 13:50:07 -05:00
dc99e204d3 bugfix from Trung to avoid problems with read_dump when not all MPI ranks have atoms 2025-02-26 13:40:19 -05:00
a99a567f0c add note that dynamic groups are only supported without averaging 2025-02-26 11:12:58 -05:00
9bf19159a4 add block to list of regions with all-variable shape options 2025-02-26 10:42:52 -05:00
b89046d82f Merge branch 'develop' into patch-4 2025-02-26 10:40:41 -05:00
361f0dbe3c Update README
Corrected typo
2025-02-26 12:58:33 +02:00
d46edfed6d Added example input files for fix pimdb/nvt and fix pimdb/langevin 2025-02-26 11:37:41 +02:00
2c7e3dddbc add test to detect if a potential file was incorrectly used with lgvdw yes 2025-02-25 21:37:38 -05:00
7ceb8c461f Merge pull request #4477 from akohlmey/collected-small-changes
Collected small changes and bug fixes
2025-02-25 17:32:14 -05:00
1e2752bc5f correct indexing for static decomposition check 2025-02-24 21:31:18 -05:00
b3e75a6f84 adjust BondStyle:class2 epsilon for aarch64 and ppc64le builds 2025-02-24 12:09:51 -07:00
d79be293f5 move precomputation for factor_sqrt to individual Pair::compute() functions
the special_lj values may be changed for individual hybrid sub-styles
with pair_modify pair special. thus the factor_sqrt[] array may have
incorrect values when computed during Pair::init_style().
2025-02-24 08:19:28 -05:00
9f6f957f7c improve error messages for fix balance 2025-02-23 18:33:32 -05:00
6264a2b202 improve error messages for balance command 2025-02-23 18:22:02 -05:00
5532117417 re-order initializer and remove unused variables 2025-02-23 17:43:40 -05:00
8780cd89a5 move long comment 2025-02-23 20:26:01 +02:00
aee34a92d3 Merge pull request #2 from akohlmey/bosonic-pimd-langevin
Updates to LAMMPS pull request 4479
2025-02-23 20:15:19 +02:00
df360f0d55 fix email 2025-02-23 20:08:37 +02:00
c7e288eb8c apply clang-format 2025-02-23 12:46:34 -05:00
f4275ae44c PIMPLify access to BosonicExchange class 2025-02-23 12:45:35 -05:00
f1ef94aade apply clang-format 2025-02-23 12:33:26 -05:00
16b2988106 make filter_args() fully C++ compatible 2025-02-23 12:32:44 -05:00
35fca290fc enumerators must be defined within the scope of the class, not globally 2025-02-23 12:20:45 -05:00
f29a433fa9 apply clang-format and follow LAMMPS programming conventions more closely 2025-02-23 12:12:36 -05:00
0448651a90 reformatting and correcting doc page issues and appy spelling fixes and false positives 2025-02-23 12:05:53 -05:00
cef81881f9 homepage and developer email 2025-02-23 18:25:13 +02:00
cce060caa8 file permissions 2025-02-23 17:53:49 +02:00
e87e6dc5b0 more 2025-02-23 17:45:19 +02:00
f46d066e5b more 2025-02-23 17:43:15 +02:00
1cb47dc066 trailing whitespaces 2025-02-23 17:40:12 +02:00
63d49f50d1 Merge branch 'develop' of https://github.com/lammps/lammps into bosonic-pimd-langevin 2025-02-23 16:54:55 +02:00
c37bc484b6 added a note about filtered_args in the h file 2025-02-23 16:47:57 +02:00
d4011262f1 Made filtered_args in filter function local 2025-02-23 16:40:04 +02:00
f1e1099ac2 fix typo 2025-02-23 04:46:34 -05:00
4d453a65e6 fix bug in utils::strcompress()
calling back() on empty strings is undefined behavior.
2025-02-21 23:33:15 -07:00
3141723c24 restore more compact implementation using fmt::runtime() 2025-02-21 22:03:27 -05:00
b77c3bf8c7 make compatible with more strict consteval format requirements of C++20 2025-02-21 21:54:28 -05:00
1e078665f6 fix bug in angle style cosine/delta 2025-02-21 16:18:56 -05:00
29931c030f Added a filter of keywords instead of enable_esynch flag 2025-02-20 16:26:18 +02:00
7952281f78 Merge branch 'develop' into sync_verlet 2025-02-19 12:33:54 -07:00
a31f4f79b8 Merge branch 'develop' into sync_verlet 2025-02-19 12:32:29 -07:00
632d88912d Tweaking synchronization flag checks 2025-02-19 12:21:42 -07:00
dafbe5541a Changing default log to sync on, adding wall 2025-02-19 12:15:36 -07:00
8641486249 Swapping nx variable names 2025-02-19 11:29:40 -07:00
abc8954c5c Adding line breaks 2025-02-19 11:28:05 -07:00
11f66b4da1 fix copy and paste bug 2025-02-19 07:36:20 -05:00
fe8ebb308d Merge github.com:lammps/lammps into develop 2025-02-19 12:25:01 +01:00
90c2175056 Updated rotation and documentation 2025-02-18 20:16:31 -06:00
d772833f67 cr 2025-02-18 23:44:28 +02:00
6fb1f4466c fixed_whitespace 2025-02-18 13:10:07 -06:00
0a1b10faef updated version based on feedback 2025-02-18 12:58:09 -06:00
f0bc9ddcc9 Merge pull request #4473 from akohlmey/collected-small-changes
Collected small changes and fixes
2025-02-18 12:58:28 -05:00
f5099b7c16 Update fix_press_langevin.rst to include full equation 13
Completest equation 13 to match the [paper](https://pubs.aip.org/jcp/article/141/19/194108/152571/Constant-pressure-and-temperature-discrete-time) and the [implementation](36e739b734/src/fix_press_langevin.cpp (L485-L487)).
2025-02-18 17:15:01 +01:00
c19389a205 bug fix for pointing to the command name 2025-02-18 10:54:52 -05:00
816fb83d1a improve errors for atom_modify 2025-02-18 00:40:41 -05:00
3138f62ac8 renumber error 30 to 5 to match list of errors. Update error calls 2025-02-18 00:26:15 -05:00
0e07eab97f add some calls to utils::errorurl(22) 2025-02-18 00:05:12 -05:00
9be6b5a05b improve error handling for thermo output 2025-02-17 23:43:01 -05:00
fe5d6b154a simplify building of mini TOC at the top, renumber and reformat block 22 2025-02-17 23:42:04 -05:00
1c1749b6bf Merge branch 'add-error-explanations' of github.com:akohlmey/lammps into add-error-explanations 2025-02-17 23:06:44 -05:00
841e459b67 provide URL to explain fmt::format_error 2025-02-17 23:05:42 -05:00
25774943d5 Added advice on error 21 2025-02-17 17:25:07 -07:00
6f925e12dd Merge branch 'develop' into add-error-explanations 2025-02-17 15:39:22 -05:00
3ed6b617f0 tweaked number 11 2025-02-17 13:08:42 -07:00
5d4a277623 add versionadded tag 2025-02-16 22:51:00 -05:00
9f02f20023 add compute vacf/chunk command 2025-02-16 22:43:28 -05:00
77ab5bd624 minor rearrangement of if logic 2025-02-16 14:52:25 +02:00
52437e2152 Fixed a bug regarding keyword reading in pimdb_langevin; made sure the new esynch keyword in pimdb is not allowed in pimd 2025-02-16 11:02:15 +02:00
eaf624c0f0 Merge branch 'develop' into patch-2 2025-02-15 17:15:33 +01:00
89abf65751 python: remove unused import in core.py 2025-02-15 00:36:06 -07:00
5e61e6c0dc move update to cutneighmin from neighbor lists requests with explicit cutoff to a better location 2025-02-14 19:11:07 -05:00
33026e5fd3 correctly compute cutneighmin when multiple requests with different cutoff exist 2025-02-14 18:41:08 -05:00
79ed41837a fix some more errors 2025-02-14 17:17:04 -05:00
344bcc2304 Fix view with wrong label 2025-02-14 15:03:36 -07:00
ca5015eaea correct compute argument count check, avoid segfault 2025-02-14 16:55:09 -05:00
7f82dcd835 improve and modernize error messages 2025-02-14 15:23:16 -05:00
0fb79ae3ff Updated reference 2025-02-14 10:30:50 -06:00
c83ae0365e fix typo ncite in test_improper_style.cpp 2025-02-14 09:09:10 +02:00
2a35452c13 fix typo and add new line 2025-02-14 06:40:01 +00:00
52312fcd1d test for extract() in improper class 2025-02-14 06:22:29 +00:00
d83121878e make certain that Contact::varflag is initialized 2025-02-13 20:54:46 -05:00
b42cc2f588 make C++11 compatible 2025-02-13 20:39:18 -05:00
00b33b749b Merge remote-tracking branch 'github/develop' into collected-small-changes 2025-02-13 20:35:14 -05:00
36e739b734 Merge pull request #4470 from akohlmey/bye-bye-python-zwei
Remove support for Python 2.x and show corresponding errors.
2025-02-13 19:44:07 -05:00
53213fb6ff fix spelling issues 2025-02-13 18:27:08 -05:00
f4d2653cda add dummy section that is referenced from local TOC 2025-02-13 17:57:31 -05:00
ad51ef5aff don't use :ref: on a docpage 2025-02-13 17:56:14 -05:00
8dc7d254dc add section about segmentation faults 2025-02-13 17:55:55 -05:00
966ca42463 merge 'develop' 2025-02-13 17:13:28 -05:00
67ef0407bd must have a move constructor for some compilers 2025-02-13 17:01:44 -05:00
1c65907d72 Merge branch 'develop' into bye-bye-python-zwei 2025-02-13 17:01:39 -05:00
2a2e9919cf remove preliminary (and broken) code for creating planes and update docs, so the PR can be merged 2025-02-13 17:01:13 -05:00
f84ed6f9a4 must have a move constructor for some compilers 2025-02-13 16:54:28 -05:00
8ab8491da5 Merge branch 'develop' into collected-small-changes 2025-02-13 16:43:27 -05:00
52f068d1c5 Merge pull request #4466 from akohlmey/collected-small-changes
Collected small changes and fixes
2025-02-13 16:32:23 -05:00
bedcc59f83 remove preliminary (and broken) code for creating planes and update docs, so the PR can be merged 2025-02-13 15:32:36 -05:00
583f7b70b4 Fix rare bug in KOKKOS, manifest when load balancing on GPUs and exchange comm is on host 2025-02-13 12:41:16 -07:00
73852524dd Merge branch 'develop' into bye-bye-python-zwei 2025-02-13 03:17:53 -05:00
0f972a87fd adjust some wording for the removal of Python 2.x compatibility 2025-02-12 22:04:18 -05:00
ea2eb930c5 clarify 2025-02-12 21:47:11 -05:00
63d8915562 make use of SafeFilePtr 2025-02-12 21:47:02 -05:00
926f336962 add some note about build prerequisites 2025-02-12 21:46:37 -05:00
adfe84913f fix bogus array size bug 2025-02-12 17:58:34 -05:00
2e398bd17c improve error messages 2025-02-12 16:31:51 -05:00
1d362a7627 must call region->prematch() before creating graphics to update variables 2025-02-12 16:31:14 -05:00
98f3a0a1ba refactor cone visualization to match what LAMMPS is showing 2025-02-12 15:28:13 -05:00
66ec1ff360 make resolution of VMD graphics primitives a compile time constant. 2025-02-12 12:09:29 -05:00
7af11fe604 make more use of SafeFilePtr class. 2025-02-12 10:35:02 -05:00
944e50b06a need to define another constructor to make the SafeFilePtr class work for more cases 2025-02-12 10:34:21 -05:00
5b7bf1951e simplify logic for drawing a cylinder region 2025-02-12 05:42:51 -05:00
5479ac32d4 Adding errorurl for missing bond atom error 2025-02-11 16:06:20 -07:00
c1fb8cbf69 allowing bonds to break/create faster 2025-02-11 15:15:25 -07:00
d8893ea501 Heading to rheo citeme's 2025-02-11 14:55:52 -07:00
ac1221602b revert unnecessary renaming in improper harmonic
and sqdistharm files
2025-02-11 20:23:21 +00:00
47977a2821 Avoiding assumptions that array pointers are unchanged, misc clean ups in RHEO 2025-02-11 12:16:05 -07:00
ba14ce210c Fixing mistakes & clarifying BPM files 2025-02-11 10:42:56 -07:00
889b33df4a missed revert in improper_distharm.cpp 2025-02-11 16:26:35 +02:00
0b47e90008 revert renaming of variables in improper_distharm.cpp 2025-02-11 16:24:47 +02:00
89ceb73ec5 revert renaming in improper_distharm.h 2025-02-11 16:21:21 +02:00
7be7ffbaf1 revert renamin of cariable chi to chi0 in improper_cossq.cpp 2025-02-11 16:15:52 +02:00
c263c9a534 revert changes in improper_cossq.h 2025-02-11 16:12:34 +02:00
afaff7199b revert changes in improper_cossq_omp.cpp - they are not needed 2025-02-11 16:11:52 +02:00
b94d82d7b1 rename k anc chi in fix_adapt.rst 2025-02-11 16:04:33 +02:00
ed9b22cb0e rename k and chi in improper-distance.yaml 2025-02-11 16:03:42 +02:00
a708a50468 rename k and chi in improper_distance.cpp 2025-02-11 16:03:03 +02:00
1d974a51c0 Update fix_adapt.rst 2025-02-11 16:00:39 +02:00
fb6a1ad603 rename kw to k in improper-inversion_harmonic.yaml 2025-02-11 15:58:47 +02:00
8bba7ff10f rename kw to k in improper_inversion_harmonic.cpp 2025-02-11 15:58:07 +02:00
757eb8bf58 Update fix_adapt.rst 2025-02-11 15:53:58 +02:00
c66ca60f65 rename kw to k in improper-umbrella.yaml 2025-02-11 15:53:14 +02:00
94dd03d43c rename kw to k in improper_umbrella.cpp 2025-02-11 15:52:20 +02:00
5032436312 Update fix_adapt.rst 2025-02-11 15:49:46 +02:00
c9b4689167 rename sign and multiplicity in improper-cvff.yaml 2025-02-11 15:48:50 +02:00
bac4eec31b rename sign and multplicity in improper_cvff.cpp 2025-02-11 15:47:58 +02:00
a320a52804 Update fix_adapt.rst 2025-02-11 15:44:55 +02:00
11b95655f8 rename k0 to k in improper-class2.yaml 2025-02-11 15:42:30 +02:00
7e0f067b74 rename k0 to k in improper_class2.cpp 2025-02-11 15:41:22 +02:00
1d3ad36e85 add support for visualization plane regions 2025-02-11 07:40:42 -05:00
17797e4f74 tiny cr 2025-02-11 13:56:53 +02:00
252bd9aa9d must close "owned" file pointer if a different one is is assigned 2025-02-11 05:13:07 -05:00
08553a7272 apply safe file pointer 2025-02-10 22:48:55 -05:00
c42650257f move AutoClose class to separate header and rename to SafeFilePtr 2025-02-10 22:27:09 -05:00
f8b13b21ec Merge branch 'develop' into collected-small-changes 2025-02-10 17:57:49 -05:00
c41c4086ca Merge pull request #4468 from akohlmey/add-region2vmd-command
Add a new region2vmd command for visualizing regions with VMD
2025-02-10 16:57:44 -05:00
18cd31d811 Update fix_adapt.rst 2025-02-10 20:22:32 +02:00
e88946935c rename chi to theta0 in extract improper_ring.cpp 2025-02-10 20:19:13 +02:00
dc83bd3084 rename chi to theta0 in improper-ring.yaml 2025-02-10 20:18:13 +02:00
0b55587b1d add error 10 URL and text 2025-02-10 10:56:04 -07:00
7ae9ef75d8 Update fix_adapt.rst 2025-02-10 19:20:26 +02:00
70acd78048 change chi to d0 in improper_distharm.cpp 2025-02-10 19:18:58 +02:00
f738690cb5 change chi to d0 in improper_distharm.h 2025-02-10 19:16:47 +02:00
2b46abc31c change chi to d0 in improper-distharm.yaml 2025-02-10 19:15:58 +02:00
0c80ec5e0d change chi to chi0 in improper_harmonic_kokkos.cpp 2025-02-10 19:06:14 +02:00
3f5c54e362 change chi to chi0 in improper_harmonic_omp.cpp 2025-02-10 19:00:55 +02:00
7fe804d19d change chi to chi0 in improper_cossq_omp.cpp 2025-02-10 19:00:21 +02:00
c9bd1a7877 add url to improper_coeff messages 2025-02-10 09:59:04 -07:00
0f66e66529 add url to dihedral_coeff messages 2025-02-10 09:57:04 -07:00
8025a494d9 add url to angle_coeff messages 2025-02-10 09:49:53 -07:00
5251ba1465 change chi to chi0 in fix_adapt.rst 2025-02-10 18:45:40 +02:00
e90d5133cc change chi to chi0 in improper_cossq.cpp 2025-02-10 18:44:40 +02:00
9bce6662b4 change chi to chi0 in improper_cossq.h 2025-02-10 18:42:55 +02:00
8dfb967acc change chi to chi0 in improper-cossq.yaml 2025-02-10 18:42:07 +02:00
261cc13f99 Update fix_adapt.rst 2025-02-10 18:39:13 +02:00
f6e39d14b0 change chi to chi0 in improper_harmonic.cpp 2025-02-10 18:37:47 +02:00
0a4eea6aa0 add url to bond_coeff messages 2025-02-10 09:36:22 -07:00
ec0afc3fdf change chi to chi0 in improper_harmonic.h 2025-02-10 18:35:37 +02:00
6abdedc75b change chi to chi0 in improper-harmonic.yaml 2025-02-10 18:34:15 +02:00
75fd76aaa6 update text for MOLECULE package 2025-02-10 09:26:08 -07:00
9e249c9c57 Merge branch 'bosonic-pimd-langevin' of https://github.com/yotamfe/lammps into bosonic-pimd-langevin 2025-02-10 17:37:05 +02:00
566a14f52d Pulling 2025-02-10 17:36:49 +02:00
2c1cd2ed04 Corrected minor rst syntax errors 2025-02-10 17:36:00 +02:00
54790d6095 Added a note about mic and pbc in the documentation of pimdb. 2025-02-10 17:21:06 +02:00
63b5e46bf0 Merge branch 'bosonic-pimd-langevin' of https://github.com/yotamfe/lammps into bosonic-pimd-langevin
Conflicts:
	src/REPLICA/fix_pimdb_langevin.cpp
2025-02-10 15:07:25 +02:00
a67f67607c Added synch_energies parameters to pimdb/langevin 2025-02-10 15:05:11 +02:00
d9d24300a4 add support for ellipsoid regions 2025-02-10 00:05:42 -05:00
4cab0bfe1a implement all open face cases for cylinder regions 2025-02-09 22:19:03 -05:00
0de9da709c add support for moving regions and open faced regions 2025-02-09 18:25:14 -05:00
05521d38d9 initialization bug 2025-02-09 15:26:07 -05:00
6bd2e0e496 update error messages to use new Error class APIs 2025-02-09 10:53:03 -05:00
31697bac8d correct copy-n-modify omission 2025-02-09 10:22:55 -05:00
e00e215f99 add support to prism regions to be exported to VMD 2025-02-09 10:16:30 -05:00
7cf3ff588e include table with impropers in fix_adapt.rst 2025-02-09 16:54:15 +02:00
d11c8b3e1e Update text for improper style in fix_adapt.rst
Update text though a table with the potentials is not included
2025-02-09 15:08:02 +02:00
fe3c8487de implement check_itype in improper_hybrid.cpp 2025-02-09 14:48:10 +02:00
c0ef702af5 define chech_itype in improper_hybrid.h 2025-02-09 14:46:18 +02:00
f7a43b94a6 fix error: ‘else’ without a previous ‘if’ 2025-02-09 14:39:48 +02:00
e4a16556db implement the actual code to adapt improper parameters in fix_adapt.cpp 2025-02-09 14:26:28 +02:00
5557e03e54 add hint about setting top molecule in VMD 2025-02-08 23:26:43 -05:00
3cd028fd01 refactor command to be more flexible and capable 2025-02-08 22:52:19 -05:00
f693577262 add versionadded tag 2025-02-08 18:30:00 -05:00
0a8e2f923d add to .gitignore 2025-02-08 18:29:27 -05:00
8a87a6068c use lighter color "silver" 2025-02-08 18:23:57 -05:00
c7db4e9e19 add docs for region2vmd command 2025-02-08 18:06:32 -05:00
95858bccc6 add region2vmd command 2025-02-08 18:06:12 -05:00
8791b29aa2 give Region2VMD class access to protected members of region style classes 2025-02-08 18:05:57 -05:00
ea973e1d6c Update region.rst 2025-02-08 20:57:45 +02:00
424c694b6b update region.rst 2025-02-08 20:56:12 +02:00
49b5e89258 Update unit test in improper-fourier.yaml 2025-02-08 19:06:08 +02:00
e954bdfc14 implement extract in improper_fourier.cpp 2025-02-08 19:04:43 +02:00
2a2a7a3113 define extract in improper_fourier.h 2025-02-08 19:01:56 +02:00
66117414dd implement extract in improper_amoeba.cpp 2025-02-08 18:56:38 +02:00
38d28fb426 define extract for improper amoeba 2025-02-08 18:55:33 +02:00
098bb4b3c8 flag development version 2025-02-08 09:08:43 -05:00
314d0a0e61 only support Python version 3.6 or later. Update and correct docs and README 2025-02-08 05:54:26 -05:00
599ff11eb0 remove compatibility for compiling LAMMPS with Python 2.x and Python 3.5 and older 2025-02-08 05:05:00 -05:00
792144f12e Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes 2025-02-07 21:54:58 -05:00
86f7f6da98 Add check that Python 3 is required 2025-02-07 21:52:17 -05:00
8a1744c038 Updates to the instructions for building the manual. 2025-02-07 21:51:37 -05:00
b188cdc044 add check for Python version. Require minimum of Python 3.6 (Sphinx requires 3.8) 2025-02-07 20:51:50 -05:00
6eddb3a33f various minor tweaks and reformatting for CMake scripts 2025-02-07 20:50:14 -05:00
61a2db4715 revise and expand global README file 2025-02-07 19:47:05 -05:00
1a636acf81 simplify / optimize 2025-02-07 07:34:32 -05:00
d384de354a Update unit test in improper-class2.yaml 2025-02-07 09:31:28 +02:00
26e1b5d101 implement extract in improper_class2.cpp 2025-02-07 09:29:41 +02:00
909796b858 define extract for improper class2 2025-02-07 09:28:18 +02:00
ab6668031f explain some more about transition to C++17 2025-02-06 20:55:40 -05:00
d22533350a update copyright year 2025-02-06 20:55:23 -05:00
c9f41f9d90 explain more steps of the release process related to building packages 2025-02-06 20:55:11 -05:00
a547b9a417 do not mention rebasing 2025-02-06 15:00:54 -05:00
2440564bef Update unit test in improper-cossq.yaml 2025-02-06 21:23:36 +02:00
ced5fd3240 Update unit test in improper-umbrella.yaml 2025-02-06 21:22:05 +02:00
c918c7b547 Update unit test in improper-inversion_harmonic.yaml 2025-02-06 21:20:41 +02:00
f9b7013af3 Update unit test in improper-sqdistharm.yaml 2025-02-06 21:18:53 +02:00
33f5057488 Update unit test in improper-distance.yaml 2025-02-06 21:17:27 +02:00
22898fc8fc Update unit test in improper-distharm.yaml 2025-02-06 21:16:33 +02:00
72d2b70125 Update unit test in improper-ring.yaml 2025-02-06 21:15:28 +02:00
61f4012300 Update unit test in improper-harmonic.yaml 2025-02-06 21:14:46 +02:00
24f40c7db4 Update unit test in improper-cvff.yaml 2025-02-06 21:13:38 +02:00
ea9166d175 implement extract in improper distharm 2025-02-06 17:24:52 +02:00
676add28fe define extract in improper distharm 2025-02-06 17:24:13 +02:00
34e89bed4c implement extract in improper sqdistharm 2025-02-06 17:23:40 +02:00
ee7b0840ef define extract for improper sqdistharm 2025-02-06 17:22:50 +02:00
62e7698a44 implement extract in improper inversion_harmonic 2025-02-06 17:21:46 +02:00
3cd0871083 define extract for improper inversion_harmonic 2025-02-06 17:20:42 +02:00
52457d6c1e implement extract for improper distance 2025-02-06 17:18:13 +02:00
60181e2a8a define extract for improper distance 2025-02-06 17:17:17 +02:00
61a29f5421 implement extract for improper ring 2025-02-06 17:16:41 +02:00
01d091d8d6 define extract for improper ring 2025-02-06 17:15:36 +02:00
ca6ab28536 implement extract for improper cossq 2025-02-06 17:14:54 +02:00
de6f17c0ce define extract for improper cossq 2025-02-06 17:13:56 +02:00
7df94e179c fix error in improper_cvff.cpp 2025-02-06 17:12:22 +02:00
5233b21c21 implement extract in improper umbrella 2025-02-06 17:11:38 +02:00
59915a3b6a define extract in improper umbrella 2025-02-06 17:09:07 +02:00
a21b92f4de implement extract in improper cvff 2025-02-06 17:08:24 +02:00
36c2770383 define extract for improper cvff 2025-02-06 17:06:55 +02:00
84dbfa3e0d include files in fix_adapt.cpp 2025-02-06 15:46:29 +02:00
43d9d6af3e Update fix_adapt.h 2025-02-06 15:44:12 +02:00
a2508fef13 implement extract in improper harmonic 2025-02-06 15:41:20 +02:00
dda23a20b7 define extract for improper harmonic 2025-02-06 15:39:46 +02:00
feea204f7c implement reinit & set reinitflag flag to 1 2025-02-06 15:37:59 +02:00
95797d643b addition of extract & reinit methods in improper.h 2025-02-06 15:31:04 +02:00
04cad88b55 we can include ML-RANN package now in VLA check 2025-02-06 00:10:17 -05:00
97e7baf33f get rid of non-standard variable-length arrays in ML-RANN package 2025-02-05 23:41:36 -05:00
3ed6716b65 clarify that bad dynamics may occur in the documentation 2025-02-05 10:35:54 +02:00
fa285d9733 Merge branch 'develop' into BPM 2025-02-04 16:02:57 -07:00
e178f593be Adding BPM contribution statements 2025-02-04 15:49:01 -07:00
4a3394b300 Adding references to bpplastic bpm bond style 2025-02-04 15:42:01 -07:00
892c20cc20 fixing typo 2025-02-04 15:36:48 -07:00
acb9fdfc24 fix doc spacing for bpm/spring 2025-02-04 15:34:54 -07:00
2ae07ec1cb sync C++ standard selection with main CMakeLists.txt file 2025-02-04 17:00:12 -05:00
edaab05db6 Tweaking BPM plastic example parameters 2025-02-04 13:12:35 -07:00
262ff223c6 make clear that the vector should be all constant or all equal variables 2025-02-04 13:56:22 +02:00
3b8139d428 update formatting (reflow) 2025-02-03 15:08:12 -07:00
02f98947f9 update unique coeff messages 2025-02-03 13:12:11 -07:00
32d0bf1bee update all simple coeff messages 2025-02-03 12:13:52 -07:00
504e747f3d add initial error URL and test 2025-02-03 11:56:39 -07:00
e84b172417 Merge branch 'bosonic-pimd-langevin' of https://github.com/yotamfe/lammps into bosonic-pimd-langevin 2025-02-03 16:51:18 +02:00
842eec1e73 comment on conventions in primitive estimator in langevin 2025-02-03 16:50:41 +02:00
e6f2757385 Merge branch 'develop' into patch-4 2025-02-02 17:36:52 +01:00
150cd216ba another one whitespace 2025-02-01 09:46:06 +02:00
b2b9f2c3e9 remove whitespace in region.rst 2025-02-01 09:31:45 +02:00
418b205362 Update region.rst 2025-02-01 09:30:20 +02:00
4e582993c4 use simpler std::string concatenation instead of implicit fmt::format() processing 2025-01-31 16:07:39 -05:00
8c2bbc1608 add error URLs for molecule files 2025-01-31 15:57:53 -05:00
1d56981bb1 reassign error URL numbers to match list in pull request 2025-01-31 15:15:10 -05:00
72eb284f76 remove whitespace from region_plane.cpp 2025-01-31 17:22:15 +02:00
1057882126 Include variables in region_plane.h 2025-01-31 17:14:49 +02:00
0b1ef95562 Update methods in region_plane.cpp 2025-01-31 17:11:22 +02:00
ed627579f6 Adding bpm/plastic demo, fixing mistake in poisson example 2025-01-30 16:44:11 -07:00
33c4ce8929 Adding auxetic/incompressible bpm demo 2025-01-30 14:54:59 -07:00
dda72fee76 Drafting bpm/plastic doc page 2025-01-30 11:42:26 -07:00
080df8cf74 BPM plastic citation info 2025-01-30 11:22:06 -07:00
ec0c8cc847 Documented the primitive estimator in the rst file. 2025-01-30 16:06:21 +02:00
feafce74b3 Minor changes and documentations of the primitive estimator for bosons 2025-01-30 15:04:48 +02:00
5882ec9370 Minor cleaning of bosonic_exchange.cpp 2025-01-30 11:32:11 +02:00
7fe3da56a0 Added an assert for get_interior_bead_spring_energy if called from the first bead. 2025-01-30 10:09:10 +02:00
3e587685b6 Initial plastic BPM bond style 2025-01-29 15:25:55 -07:00
2e0bc27646 adding bpm energy proxy 2025-01-29 15:24:50 -07:00
e3dd2790f9 add KSpace style zero to KSPACE and zero2 as plugin demo 2025-01-29 15:39:53 -05:00
c4d11a7871 follow LAMMPS programming conventions more closely 2025-01-29 15:38:18 -05:00
ea6e702184 Merge branch 'develop' of https://www.github.com/lammps/lammps into kmc 2025-01-28 19:00:08 -07:00
a678a3b474 Initial update of doc file 2025-01-28 18:51:52 -07:00
e6986cbc06 Removed unused local RNG and restructured reading of command options 2025-01-28 18:51:07 -07:00
8ecd7e8629 Fixed an error in the primitive estimator 2025-01-27 18:49:30 +02:00
d91a75a9af Corrected PIMD-B after CR 2025-01-27 15:30:24 +02:00
b2def45011 Deleted a redundant file 2025-01-27 13:43:31 +02:00
c47f7d5618 cr 2025-01-27 13:36:40 +02:00
d5b82562bd Merge branch 'develop' into group-bitmap-accessor 2025-01-25 13:49:33 -05:00
6663e998d9 Merge branch 'develop' of github.com:lammps/lammps into develop 2025-01-22 17:11:31 +01:00
6f19d1fe0e molmap docs attempt
not a simple feature to describe in words
2025-01-21 21:58:51 -05:00
844f8e4e16 clarify how molecule IDs treated for 2025-01-21 20:28:21 -05:00
ee3e113339 initialize 'created atoms' mol ID to zero
can control using molmap option
2025-01-21 20:15:50 -05:00
c353c3c6c6 better treatment for 'new mol IDs'
for molecule IDs in post-reaction template, but not in pre-reaction template, adds new molecule ID onto previous max  molecule ID
2025-01-21 18:31:08 -05:00
2765f35340 It seems the problem was not with the primitive estimator but when initializing all particles at 0 0 0.
When initialized randomly it works.
2025-01-21 17:12:03 +02:00
9fd0d09b5f pimdb works with NVE and conserves energy. Fixed a little bug and now the printed total energy is also conserved.
From some reasin the primitive estimator doesn't work with Langevin :((((((
2025-01-21 11:57:37 +02:00
60e1e52ec1 add whitespace to end of file 2025-01-19 12:21:41 -05:00
cba09fc0f5 improved error handling for user specifying rigid fix 2025-01-18 17:40:07 -05:00
be7d3a5f4b moved body struct inside class 2025-01-18 17:34:07 -05:00
5436411178 Merge branch 'develop' into develop 2025-01-18 17:05:57 -05:00
fbbeba5912 removed friend class status for fixHMC 2025-01-18 14:35:10 -05:00
d34a8a4807 moved body momentum randomization into fix rigid small 2025-01-18 14:29:34 -05:00
002fc02b3d Got rid of the calc function in bosonic_exchange, the calculation is performed in the get function.
Added prepare_coordinates in pimd/nvt and pimd/langevin for that purpose
2025-01-15 16:41:19 +02:00
358e6e82a0 Removed some code review note 2025-01-15 11:53:32 +02:00
f02f6b50c4 Removed footprints of past merge 2025-01-15 11:44:57 +02:00
2a9a1aeeab Updated doc/src/fix_pimdb.rst 2025-01-15 11:43:32 +02:00
1b79f34b22 Merge branch 'bosonic-pimd-langevin' of https://github.com/yotamfe/lammps into bosonic-pimd-langevin 2025-01-15 10:59:43 +02:00
7f6cfd364d commit before pull 2025-01-15 10:55:13 +02:00
274525ca25 Merge branch 'bosonic-pimd-langevin' of https://github.com/yotamfe/lammps into bosonic-pimd-langevin 2025-01-15 10:36:55 +02:00
ec504e3324 Fixed some error with the ENUM definitions 2025-01-15 10:35:33 +02:00
a661ffdb06 Merge branch 'develop' into develop 2025-01-14 12:06:07 -06:00
1d2f42dce9 Merge branch 'develop' into develop 2025-01-13 14:24:22 -06:00
2898592bb4 Merge branch 'develop' of https://github.com/yotamfe/lammps into bosonic-pimd-langevin 2025-01-13 17:45:11 +02:00
f3b1f56fa8 Merge pull request #1 from BarakHirshberg/bosonic-pimd-langevin
Bosonic pimd langevin
2025-01-13 17:38:25 +02:00
795a5daade removed html folder which was added by accident 2025-01-13 17:37:13 +02:00
a5eb0dc105 went over text 2025-01-13 17:22:56 +02:00
edca6eb4db this is a lost cause 2025-01-13 14:55:48 +00:00
60583c5e35 Merge branch 'bosonic-pimd-langevin' of https://github.com/yotamfe/lammps into bosonic-pimd-langevin 2025-01-13 16:48:16 +02:00
a5e28252cf add referece for virial works for bosons 2025-01-13 16:47:30 +02:00
77d8942589 Merge branch 'develop' into group-bitmap-accessor 2025-01-13 01:08:47 -05:00
ac68f70e20 three more 2025-01-09 21:23:56 -05:00
5419fe0925 Merge branch 'develop' into group-bitmap-accessor 2025-01-09 21:05:42 -05:00
25c92d6399 fixed conflict 2025-01-09 19:21:55 -06:00
75dba6f39b Merge branch 'lammps:develop' into develop 2025-01-09 19:21:06 -06:00
e2f735ad29 fix whitespce 2025-01-09 19:20:21 -06:00
5bb1fe42dd resolved conflict 2025-01-09 19:08:19 -06:00
195f8a9670 a couple more updates to use the new API 2025-01-09 19:30:34 -05:00
d68287a9c7 updated documentation 2025-01-09 17:33:08 -06:00
12b6b797b8 simplify 2025-01-09 14:47:20 -05:00
b1e881d4ff Merge branch 'develop' into group-bitmap-accessor 2025-01-09 14:37:38 -05:00
f16aa8e32e PIMDB langevin now supposes to support NVE 2025-01-07 12:13:01 +02:00
f07c28a7a1 Update bosonic_exchange.cpp 2025-01-06 17:57:27 +02:00
4fa36164cf Added bibliographic details to fix_pimdb_nvt.cpp 2025-01-06 17:51:57 +02:00
fa014649e5 Filled bibliographic details in fix_pimdb_langevin.cpp 2025-01-06 17:50:19 +02:00
c9fb27686d Fixed an error in the documentation: pimd method only supports physical fmmode, not normal 2025-01-06 17:26:47 +02:00
c03d15f759 tiny cr 2025-01-06 16:17:57 +02:00
1e491dc593 Merge branch 'develop' of https://github.com/lammps/lammps into bosonic-pimd-langevin 2025-01-06 16:04:43 +02:00
42a884a14c touch docs 2025-01-06 15:44:23 +02:00
d31c040cb9 Merge branch 'develop' into bond/react-molmap_option 2025-01-04 18:05:59 -05:00
b86832e72f Added checks for non-supported parameters for pimdb/langevin, and updated the documentation accordingly. 2024-12-30 12:41:42 +02:00
53c91e67a1 Expanded the documentation of iPy/Tuckerman's convention; made spring_force const; nvt sets mic to true. 2024-12-30 11:01:37 +02:00
e94f3a53bd Update fix_pimdb_nvt.cpp 2024-12-24 16:53:08 +02:00
364843d277 Update fix_pimdb.rst 2024-12-24 16:50:45 +02:00
e253dcf2a5 Update fix_pimdb.rst 2024-12-24 11:49:29 +02:00
28dc82f3ed Started documenting pimdb 2024-12-24 11:26:03 +02:00
df44ee9504 Accepted some of Yotam's code review, there are still open discussions (search OB) 2024-12-23 15:50:27 +02:00
6905bc736b cr 2024-12-23 11:34:32 +02:00
dbc930c756 correct permissions 2024-12-20 19:44:28 -05:00
60b0ef68a6 enable and apply clang-format 2024-12-20 19:39:19 -05:00
42b6308e26 remove commented out debug code, replace pow(x,2.0) with MathSpecial::square() 2024-12-20 19:37:22 -05:00
3c0d4c8e14 add versionadded tag 2024-12-20 19:36:36 -05:00
8a89d2fcf6 no more error lists in headers 2024-12-20 19:22:02 -05:00
b05172fe96 spelling fixes and documentation formatting corrections 2024-12-20 19:21:35 -05:00
49b2b978e6 build system updates to skip fix neighbor/swap if VORONOI package is not installed 2024-12-20 19:20:51 -05:00
c847ac1fd4 Removed trailing whitespace 2024-12-19 13:37:30 -07:00
0bd65d3489 Merge branch 'kmc' of https://github.com/jtavenner-dev/lammps into kmc 2024-12-19 13:05:33 -07:00
4004d26304 Spelling check fix 2024-12-19 12:57:17 -07:00
acb107af5e Merge branch 'develop' of https://www.github.com/lammps/lammps into kmc 2024-12-19 11:29:52 -07:00
82569f4448 Added documentation files 2024-12-19 11:29:19 -07:00
92aae586d4 Merge branch 'develop' into kmc 2024-12-19 10:19:02 -07:00
f980e8babf Integrated MD-KMC code to current development branch 2024-12-19 09:52:05 -07:00
1e968d9cb0 Merge branch 'develop' of github.com:lammps/lammps into develop 2024-12-19 13:14:38 +01:00
2e57a2ee23 remove exchange and borders on restored state. Causes atoms to be lost. 2024-12-14 17:26:24 -05:00
875ad66afc add exchange and borders on restored state 2024-12-14 16:44:26 -05:00
9a4361336d update documentation 2024-12-14 16:40:54 -05:00
6cb46bc7f0 update documentation 2024-12-14 16:40:24 -05:00
b953dbd856 use a larger timestep with fix rigid example 2024-12-14 16:06:10 -05:00
ea664476d3 change ra keyword to resample 2024-12-14 15:59:09 -05:00
db2f5dc407 clean-up and test example 2024-11-18 04:42:17 -06:00
5a826c67f6 corrected cohesive flag 2024-10-25 15:50:23 -05:00
9f6a7b1249 Added rotate_rescale_vec 2024-10-25 15:36:30 -05:00
e9022af338 another reaction map validity check 2024-10-13 23:10:31 -04:00
579ce56cd7 consistent 'nofix' options for write_data
'fix bond/react' writes some extra sections that parsers don't always know how to handle
2024-10-13 22:18:49 -04:00
5bec534faf Merge pull request #3 from Bibobu/dependabot/github_actions/actions/setup-python-5
Bump actions/setup-python from 4 to 5
2024-10-13 17:48:10 +02:00
598035d577 Merge pull request #4 from Bibobu/dependabot/github_actions/github/codeql-action-3
Bump github/codeql-action from 2 to 3
2024-10-13 17:47:49 +02:00
35b0d4a921 Merge pull request #5 from Bibobu/dependabot/github_actions/actions/cache-4
Bump actions/cache from 3 to 4
2024-10-13 17:47:22 +02:00
c5c22bd56a Moved vir_estimator from bosonic_exchange to fix_pimd_nvt 2024-10-10 15:54:42 +03:00
9d85a04573 Corrected most of Yotam's comments, left some for discussion 2024-10-09 17:40:23 +03:00
1fc7cca77c cr 2024-10-09 15:15:36 +03:00
c645a6b841 more 2024-10-09 11:59:23 +03:00
85a0b668c3 remove files autogenerated upon build 2024-10-09 11:57:45 +03:00
f357e89d19 fixed whitespaces 2024-10-08 12:58:58 -05:00
54e7a8a4c7 The primitive estimator works with the new implementation of the cyclic energies! 2024-10-08 14:08:03 +03:00
e9c2a12f99 Changed the evaluation of the cyclic energies such that they don't include internal beads and communication between processors.
It produces exactly the same trajectories for the first few thousand steps, and the spring energy is consistent with the previous code.
The primitive estimator needs to be adjusted...
2024-10-08 12:06:06 +03:00
4eef02af5a updated rolling and walls 2024-10-07 10:58:30 -05:00
74d3b5de09 added normal mode to pimdb/nvt 2024-10-07 14:15:51 +03:00
6a75e64879 The primitive estimator for pimdb/nvt looks fine! The spring energy returns the value of BosonicExchange::get_potential() for the first bead and 0 for all other beads. 2024-10-06 16:21:30 +03:00
be93e0e37b The virial estimator of the pimdb/nvt gives the same value as the potential energy for harmonic potential. It seems to give the correct value for bosons!
The output vector of pimdb/nvt also returns the spring energy and the primitive estimator that are still incorrect.
2024-10-06 12:34:24 +03:00
c36e1a9c8e save current status to git 2024-09-29 21:41:54 -04:00
563525bd6b Created fix_pimdb_nvt; added virial estimator to bosonic_exchange.
Checked 3 bosons in harmonic trap: energy seems to be OK, but virial estimator != potential energy
2024-09-29 16:45:56 +03:00
adb3343a17 Start general document about file formats 2024-09-25 23:15:20 -04:00
e0253e1058 cleanup 2024-09-21 11:41:25 -04:00
02698e9d36 Merge branch 'bond/react-molmap_option' of https://github.com/jrgissing/lammps into bond/react-molmap_option 2024-09-20 23:51:01 -04:00
1fb695f354 copy/paste error in bond/react example 2024-09-20 23:50:49 -04:00
a48c6c13a2 Merge branch 'lammps:develop' into bond/react-molmap_option 2024-09-20 21:48:45 -06:00
0a95bcd2cc Merge branch 'develop' of https://github.com/dhairyaiitb/lammps into develop 2024-09-20 16:42:56 -05:00
c65ff237ee Updated verlet halfstep 2024-09-20 16:39:48 -05:00
42e6880820 Merge branch 'lammps:develop' into develop 2024-09-20 13:57:25 -05:00
14dc2fb1d8 Updated verlet halfstep 2024-09-20 13:56:35 -05:00
ee50ee2a9b working with exchange 2024-09-13 21:19:48 -04:00
1318e3590e Merge branch 'develop' into group-bitmap-accessor 2024-09-06 17:10:27 -04:00
0d151b948f remove commented code in store 2024-09-02 12:27:57 -04:00
36d6f1f95c forgot to hit save 2024-09-02 12:24:39 -04:00
0aa4118e89 implement exchange store and restore 2024-09-02 12:24:13 -04:00
37f7f62b77 add more control to mol ID updates 2024-08-31 16:48:29 -04:00
9a295d73b6 Merge branch 'develop' into group-bitmap-accessor 2024-08-31 00:07:46 -04:00
d8d3ddc140 Merge branch 'develop' into group-bitmap-accessor 2024-07-30 20:30:37 -04:00
25a4117e67 Merge branch 'develop' into group-bitmap-accessor 2024-07-24 00:08:55 -04:00
7a3dd2231b Merge branch 'develop' into group-bitmap-accessor 2024-06-21 14:31:55 -04:00
991f09905e Merge branch 'develop' into group-bitmap-accessor 2024-06-06 02:18:11 -04:00
8d1c5734c4 Merge branch 'develop' into group-bitmap-accessor 2024-06-05 10:56:54 -04:00
d415db4106 Merge branch 'develop' into group-bitmap-accessor 2024-06-04 17:15:47 -04:00
a0939c4fcc use new bitmap accessor function and simplify code 2024-06-01 17:57:31 -04:00
5f2c81804d add unit test for bitmap accessor 2024-06-01 16:45:53 -04:00
279b218af1 fix logic bug 2024-06-01 16:45:39 -04:00
7acc46475d Merge branch 'develop' into group-bitmap-accessor 2024-06-01 12:17:25 -04:00
d5fdefa40a Update fix_pimdb_langevin.cpp 2024-05-04 17:51:38 +03:00
61d6220aa6 override the primitive estimator 2024-03-25 19:38:37 +02:00
c49168bba3 correct spring energy properties. more epxlicit handling of vector outputs 2024-03-25 19:32:10 +02:00
8e099b30da Merge branch 'bosonic-pimd-langevin' of https://github.com/yotamfe/lammps into bosonic-pimd-langevin 2024-03-25 17:56:52 +02:00
623bf2dddb Merge branch 'develop' of https://github.com/lammps/lammps into bosonic-pimd-langevin 2024-03-25 17:54:56 +02:00
e2b8d999c0 Account for the fact that beta is actually beta_np in the bosonic primitive kinetic energy estimator 2024-03-14 10:23:31 +02:00
ba8d1587d4 Merge branch 'bosonic-pimd-langevin' of https://github.com/yotamfe/lammps into bosonic-pimd-langevin 2024-03-11 15:39:28 +02:00
33fb1c1e45 override total spring energy, remove ad-hoc computation of kinetic energy estimators (should be done in fix_pimd_langevin) 2024-03-11 15:37:58 +02:00
5c3c0588f1 Remove minuses in the spring energies because spring_constant is positive 2024-03-11 14:28:06 +02:00
1cc83bb1ac Pass beta_np instead of beta to the bosonic code 2024-03-11 14:26:17 +02:00
3ffa5908ca add get_bitmask_by_id() accessor to Group class 2024-02-27 10:16:34 -05:00
a6ac272e7e fix negation operator and arg starting number 2024-01-29 12:29:27 -05:00
e374b073bc pass integrator as arg for rigid, typo fix 2024-01-25 14:53:40 -05:00
846e365e94 added flags for single execution to init and setup 2024-01-25 14:25:59 -05:00
64fe4c171c added checks for seed, temp ge 0.0 2024-01-24 14:35:46 -05:00
b23f70daf7 Bump actions/cache from 3 to 4
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 17:37:35 +00:00
33c52c2a4a Merge branch 'develop' into draneyj/develop 2024-01-04 21:12:46 -05:00
aa1382b2ac Merge branch 'develop' into fix-set-command 2024-01-04 15:11:49 -07:00
e83f0d3f26 update fix hmc examples and add reference log files 2023-12-19 17:53:48 -05:00
2f692b9bff silence compiler warnings about unused variables 2023-12-19 17:28:00 -05:00
33bfc1d1ca changed vector output 2023-12-19 15:28:01 -05:00
b0205dbe07 add examples for hmc 2023-12-19 15:02:53 -05:00
8968cbf49d setup fix_rigid before saving state 2023-12-19 14:07:24 -05:00
08f78f8060 properly force reneighbor on next timestep 2023-12-19 09:57:57 -05:00
64dc621027 check for rigid flag before fix_rigid 2023-12-18 19:34:13 -05:00
acdc4244ec initialize stored_body 2023-12-18 19:32:00 -05:00
c18de5dbd8 change how check for additional virial fixes is done 2023-12-18 18:48:20 -05:00
c13455bfa3 removed redundant acc_frac calculation in compute_vector 2023-12-18 18:00:41 -05:00
19be6d5f94 remove access to internal members of modify in loops 2023-12-18 17:59:30 -05:00
c234d6e997 Bump github/codeql-action from 2 to 3
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 17:51:12 +00:00
66411317cb check for tags and compatible neighbor list settings 2023-12-17 15:37:09 -05:00
b895b52fc1 small programming style update 2023-12-17 15:36:43 -05:00
17ddf26121 plug some more memory leaks 2023-12-17 12:07:53 -05:00
a65e85a12e avoid memory leaks and uninitialized data 2023-12-17 12:01:48 -05:00
2da1800357 must move function to Fix::init() since queried info may not be current during constructor 2023-12-17 12:01:33 -05:00
d392b17ff1 some more simplification and cleanup 2023-12-17 11:49:19 -05:00
623f2c4ea0 simplify creation of internal fixes and computes, use unique ID 2023-12-17 11:38:33 -05:00
7761b6022b small doc fix 2023-12-17 11:37:12 -05:00
1b9e33a17f initialized all class member pointer to NULL 2023-12-17 11:00:32 -05:00
f67b045f02 explain dependency on RIGID package 2023-12-17 10:52:31 -05:00
e91c72a0d2 replace non-ASCII characters so that PDF builds won't fail 2023-12-15 19:41:52 -05:00
dc17dc3f84 update for coding convention compliance 2023-12-15 18:53:46 -05:00
81a4da5da3 build system integration and handling of dependency on fix rigid/small 2023-12-15 18:50:42 -05:00
5506f42005 documentation intergration and fixes 2023-12-15 18:48:27 -05:00
51b38c5b24 make the Body struct standalone so we can use a forward declaration 2023-12-15 18:14:28 -05:00
06a445fd4c revert protection settings and add FixHMC as friend class instead 2023-12-15 17:46:51 -05:00
4a7f543036 change my email 2023-12-15 13:49:09 -05:00
f4e9523152 exclude .git-blame-ignore 2023-12-15 13:44:12 -05:00
c37ba54d27 rename git blame ignore file 2023-12-15 13:30:44 -05:00
a307d5ca7e add set_v back to public 2023-12-15 13:27:33 -05:00
e9ed0ec9cb add line at eof 2023-12-15 13:06:16 -05:00
a8df05939c merge upstream 2023-12-15 13:04:33 -05:00
d9ed0c2288 Added kinetic energy estimators. 2023-12-15 12:21:28 +02:00
5bd14e1b0f Added MC pkg to CI files 2023-12-14 14:49:39 -05:00
c8756f7f55 fixing merge issues 2023-12-14 13:34:55 -05:00
8f338f785e fixing merge issues 2023-12-14 13:33:28 -05:00
1033e727b8 reallocation conflict resolved 2023-12-14 13:26:48 -05:00
063e966ec3 Merge branch 'norealloc' into develop 2023-12-14 13:19:56 -05:00
473ccd98dc only copying ntotal in save peratom 2023-12-14 13:19:32 -05:00
52e14995fc removed realloc to test 2023-12-14 13:12:30 -05:00
c9a14ad8fb faster by not reallocating peratom vector 2023-12-14 12:38:45 -05:00
bd69063088 trying to increase speed by minimizing reallocations 2023-12-14 12:08:24 -05:00
c78e2a5dd3 touch up docs 2023-12-14 11:47:08 -05:00
8d252d75cf Added ra (resampling upon acceptance) to hmc doc). 2023-12-14 11:30:51 -05:00
dbf716edd0 moving hmc to MC package 2023-12-14 11:08:01 -05:00
19235f072f add contributing authors 2023-12-14 11:03:23 -05:00
940778b2ec more formatting 2023-12-14 10:55:09 -05:00
8115785673 formatting 2023-12-14 10:53:37 -05:00
129b63ac54 added memory usage calculation 2023-12-14 10:46:53 -05:00
c6417581bc minor edit to reset atom_map 2023-12-14 09:13:27 -05:00
31f753c7d0 current_peratom updated every time 2023-12-14 09:09:52 -05:00
95c6a9c25b make resample on accept default no 2023-12-13 12:07:34 -05:00
0461caf23e make resample on accept an option 2023-12-13 12:05:54 -05:00
57554c48b9 check for nullptr at source before copying or allocating 2023-12-13 12:03:48 -05:00
24e408b463 uncomment reverse_comm 2023-12-13 11:59:17 -05:00
539385afff remove unnecessary code and comments 2023-12-13 11:53:10 -05:00
63d6f1a1e2 removed random p when move accepted 2023-12-13 11:11:50 -05:00
37ba666309 remove tuning 2023-12-13 10:56:28 -05:00
1fc6a0e6dd Clarified the hmc algorithm in the doc file fix_hmc.rst 2023-12-12 15:18:11 -05:00
be22c63659 Added the default to the docs file fix_hmc.rst 2023-12-12 15:11:59 -05:00
3be9cc0a4f Touched up the docs file fix_hmc.rst 2023-12-12 14:56:05 -05:00
57ce8ee6ab Bump actions/setup-python from 4 to 5
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 17:50:00 +00:00
7d8ec9f8be temporarily removing parameter tuning 2023-12-10 17:18:57 -05:00
31869a5d6b adding more stored vectors just in case 2023-12-10 16:34:11 -05:00
1a908b2edd Merge branch 'develop' of github.com:draneyj/lammps_hmc into develop 2023-12-10 15:14:31 -05:00
c3fe7d4b58 added xcmimage to restoration, fixed lost atoms 2023-12-10 15:11:49 -05:00
f42f861328 Updated GA CI files to work on draneyj/lammps_hmc repo. 2023-12-10 14:58:53 -05:00
d4c0b24eac added atom tag storage 2023-12-10 10:57:55 -05:00
d155ac70f1 comment out rot keyword 2023-12-09 18:47:28 -05:00
83bbdd71f3 initialize map flag 2023-12-09 18:46:43 -05:00
cf68591184 remove erroneous line 2023-12-09 18:38:09 -05:00
8171741ccb trying to accept chaning number of atoms 2023-12-09 18:24:13 -05:00
5120af1aba added more keywords to the documentation 2023-12-01 16:26:23 -05:00
1356cb54a9 Documentation description modified, related commands, default and references added. 2023-12-01 14:17:58 -05:00
fa71278070 Syntax, Examples and Description added to fix_hmc.rst 2023-12-01 13:51:06 -05:00
5a91f3d51a Added fix_hmc.rst 2023-12-01 12:13:21 -05:00
d56868c675 Remove redundant broadcasting in evaluate_cycle_energies. 2023-12-01 16:52:56 +02:00
1fe2891e74 Correct indices for temp_nbosons_array. 2023-12-01 16:46:43 +02:00
1d64be30d9 finished initial refactoring Set class 2023-11-30 10:42:59 -07:00
b0550648bf Added group filter to body random velocities 2023-11-29 16:00:57 -05:00
8339cdc76a properly weight vcm for rigid bodies 2023-11-29 15:33:00 -05:00
6c9c537ab1 more refactoring 2023-11-29 10:29:40 -07:00
04a7c6e920 modernize arg parse syntax 2023-11-29 00:35:59 -05:00
e1c1cc34bb random velocities for bodies and mom arg for zero vcm 2023-11-29 00:31:33 -05:00
c583a52402 more refactoring 2023-11-28 16:44:07 -07:00
d1290dc6cc add body copy for rigid bodies 2023-11-27 14:22:40 -05:00
bbed056c73 Merge branch 'develop' into fix-set-command 2023-11-27 10:26:40 -07:00
a1fc55b479 more refactoring 2023-11-27 10:23:50 -07:00
ee0a050f65 alphabetize methods 2023-11-25 15:46:15 -07:00
36afc91dfa draft version of refactored set command as set2 2023-11-25 15:20:28 -07:00
84b1ecff6f change sign of forces (difference in spring constant's sign_, remove separate virial calculation 2023-11-21 16:40:04 +02:00
a80406347c pimdb works only in method pimd 2023-11-20 17:39:38 +02:00
f4a133c47a translate between orders from bosonic exchange force to atom force 2023-11-20 17:36:30 +02:00
148c23e24d fix fix 2023-11-20 17:13:28 +02:00
12ef219da6 pass correct positions to exchange 2023-11-20 17:11:25 +02:00
966398d470 missed a line I needed to remove 2023-11-20 09:15:12 -05:00
3588fddef2 Merge pull request #1 from draneyj/pr_practice
added templates to class, allowing error
2023-11-20 07:40:48 -05:00
4907a530c2 fix beta passing to bosonic exchange, mic optional 2023-11-20 14:27:52 +02:00
eb8070b7c3 start work on integrating bosonic exchange to fix_pimd/langevin 2023-11-19 23:47:30 +02:00
e7313515c1 added templates to class, allowing error 2023-11-19 16:35:45 -05:00
040b23ab27 removed warning aboout rigid support 2023-11-19 16:20:11 -05:00
496802c908 remove comments in restore_saved_state 2023-11-19 16:18:17 -05:00
920b49d5a8 peratom copy working (for x at least) 2023-11-18 18:56:30 -05:00
7692824bcf runs with new atom copy 2023-11-17 15:52:51 -05:00
aab3773a90 restored accidentally deleted code 2023-11-17 14:16:47 -05:00
e5f4d60888 re-added restoration function 2023-11-17 12:46:58 -05:00
d20b4c4c94 added restoration function 2023-11-17 12:19:49 -05:00
ebe287555c trying to store peratom data 2023-11-16 11:06:51 -05:00
645541bcc7 properly initialize vector output 2023-11-14 15:37:17 -05:00
e865df16a8 now runs without error 2023-11-14 14:33:44 -05:00
18583434b1 hacked away at the outdated code until it compiled 2023-11-11 18:03:48 -05:00
2413da64a4 adding source files from original implementation 2023-11-08 14:24:44 -05:00
2421 changed files with 215556 additions and 45445 deletions

3
.github/CODEOWNERS vendored
View File

@ -71,7 +71,10 @@ src/EXTRA-COMMAND/group_ndx.* @akohlmey
src/EXTRA-COMMAND/ndx_group.* @akohlmey
src/EXTRA-COMPUTE/compute_stress_mop*.* @RomainVermorel
src/EXTRA-COMPUTE/compute_born_matrix.* @Bibobu @athomps
src/EXTRA-DUMP/dump_extxyz.* @fxcoudert
src/EXTRA-FIX/fix_deform_pressure.* @jtclemm
src/EXTRA-PAIR/pair_dispersion_d3.* @soniasolomoni @arthurfl
src/EXTRA-PAIR/d3_parameters.h @soniasolomoni @arthurfl
src/MISC/*_tracker.* @jtclemm
src/MC/fix_gcmc.* @athomps
src/MC/fix_sgcmc.* @athomps

View File

@ -28,14 +28,14 @@ Create a 'next\_release' branch off 'develop' and make the following changes:
..versionadded:: or ..versionchanged:: are missing and need to be
added
Submit this pull request, rebase if needed. This is the last pull
request merged for the release and should not contain any other
changes. (Exceptions: this document, last minute trivial(!) changes).
Submit this pull request. This is the last pull request merged for the
release and should not contain any other changes. (Exceptions: this
document, last minute trivial(!) changes).
This PR shall not be merged before **all** pending tests have completed
and cleared. We currently use a mix of automated tests running on
either Temple's Jenkins cluster or GitHub workflows. Those include time
consuming tests not run on pull requests. If needed, a bugfix pull
consuming tests not run on pull requests. If needed, a bug-fix pull
request should be created and merged to clear all tests.
### Create release on GitHub
@ -56,7 +56,7 @@ git pull
git checkout release
git pull
git merge --ff-only develop
git tag -s -m "LAMMPS feature release 19 November 2024" patch_19Nov2024
git tag -s -m "LAMMPS feature release 4 February 2025" patch_4Feb2025
git push git@github.com:lammps/lammps.git --tags develop release
```
@ -77,7 +77,7 @@ release page with a summary of all the changes included and references
to the pull requests they were merged from or check the existing draft
for any necessary changes from pull requests that were merged but are
not listed. Then select the applied tag for the release in the "Choose
a tag" dropdown list. Go to the bottom of the list and select the "Set
a tag" drop-down list. Go to the bottom of the list and select the "Set
as pre-release" checkbox. The "Set as the latest release" button is
reserved for stable releases and updates to them.
@ -87,67 +87,197 @@ you can return to edit the release page and publish it.
### Prepare pre-compiled packages, update packages to GitHub
Build a fully static LAMMPS installation using a musl-libc
cross-compiler, install into a lammps-static folder, and create a
tarball called lammps-linux-x86_64-19Nov2024.tar.gz (or using a
corresponding date with a future release) from the lammps-static folder.
A suitable build environment is provided with the
https://download.lammps.org/static/fedora37_musl.sif container image.
https://download.lammps.org/static/fedora41_musl_mingw.sif container
image. The corresponding container build definition file is maintained
in the tools/singularity folder of the LAMMPS source distribution.
#### Fully portable static Linux x86_64 non-MPI binaries
The following commands use the Fedora container to build a fully static
LAMMPS installation using a musl-libc cross-compiler, install it into a
`lammps-static` folder, and create a tarball called
`lammps-linux-x86_64-4Feb2025.tar.gz` (or using a corresponding date
with a future release) from the `lammps-static` folder.
``` sh
rm -rf release-packages
mkdir release-packages
cd release-packages
wget https://download.lammps.org/static/fedora41_musl.sif
apptainer shell fedora41_musl.sif
wget https://download.lammps.org/static/fedora41_musl_mingw.sif
apptainer shell fedora41_musl_mingw.sif
git clone -b release --depth 10 https://github.com/lammps/lammps.git lammps-release
cmake -S lammps-release/cmake -B build-release -G Ninja -D CMAKE_INSTALL_PREFIX=$PWD/lammps-static -D CMAKE_TOOLCHAIN_FILE=/usr/musl/share/cmake/linux-musl.cmake -C lammps-release/cmake/presets/most.cmake -C lammps-release/cmake/presets/kokkos-openmp.cmake -D DOWNLOAD_POTENTIALS=OFF -D BUILD_MPI=OFF -D BUILD_TESTING=OFF -D CMAKE_BUILD_TYPE=Release -D PKG_ATC=ON -D PKG_AWPMD=ON -D PKG_MANIFOLD=ON -D PKG_MESONT=ON -D PKG_MGPT=ON -D PKG_ML-PACE=ON -D PKG_ML-RANN=ON -D PKG_MOLFILE=ON -D PKG_PTM=ON -D PKG_QTB=ON -D PKG_SMTBQ=ON
cmake --build build-release --target all
cmake --build build-release --target install
/usr/musl/bin/x86_64-linux-musl-strip lammps-static/bin/*
tar -czvvf lammps-linux-x86_64-19Nov2024.tar.gz lammps-static
/usr/musl/bin/x86_64-linux-musl-strip -g lammps-static/bin/*
tar -czvvf ../lammps-linux-x86_64-4Feb2025.tar.gz lammps-static
exit # fedora 41 container
cd ..
```
The resulting tar archive can be uploaded to the GitHub release page with:
```
gh release upload patch_19Nov2024 lammps-linux-x86_64-19Nov2024.tar.gz
``` sh
gh release upload patch_4Feb2025 lammps-linux-x86_64-4Feb2025.tar.gz
```
#### Linux x86_64 Flatpak bundle with GUI included
Make sure you have the `flatpak` and `flatpak-builder` packages
installed locally (they cannot be used from the container) and build a
installed locally (they require binaries that run with elevated
privileges and thus cannot be used from the container) and build a
LAMMPS and LAMMPS-GUI flatpak bundle in the `release-packages` folder
with:
``` sh
cd release-packages
flatpak --user remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak-builder --force-clean --verbose --repo=$PWD/flatpak-repo --install-deps-from=flathub --state-dir=$PWD --user --ccache --default-branch=release flatpak-build lammps-release/tools/lammps-gui/org.lammps.lammps-gui.yml
flatpak build-bundle --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo --verbose $PWD/flatpak-repo LAMMPS-Linux-x86_64-GUI-19Nov2024.flatpak org.lammps.lammps-gui release
flatpak build-bundle --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo --verbose $PWD/flatpak-repo ../LAMMPS-Linux-x86_64-GUI-4Feb2025.flatpak org.lammps.lammps-gui release
cd ..
```
The resulting flatpak bundle file can be uploaded to the GitHub release page with:
```
gh release upload patch_19Nov2024 LAMMPS-Linux-x86_64-GUI-19Nov2024.flatpak
``` sh
gh release upload patch_4Feb2025 LAMMPS-Linux-x86_64-GUI-4Feb2025.flatpak
```
Also build serial executable packages that also include LAMMPS-GUI for
Linux, macOS, and Windows, and upload them to the GitHub release.
#### LAMMPS Source tarball
Clean up:
The container for the static binary can also be used to prepare the source
tarball including the HTML and PDF manual (this is currently done automatically
when the releases is created and the tarball uploaded to https://download.lammps.org/tars/).
The steps are as follows:
``` sh
cd release-packages
apptainer shell fedora41_musl_mingw.sif
cd lammps-release
rm -f ../release.tar*
git archive --output=../release.tar --prefix=lammps-4Feb2025/ HEAD
cd doc
make clean-all
make html pdf
tar -rf ../../release.tar --transform 's,^,lammps-4Feb2025/doc/,' html Manual.pdf
gzip -9v ../../release.tar
mv ../../release.tar.gz ../../lammps-src-4Feb2025.tar.gz
exit # fedora41 container
cd ..
```
The resulting source tarball can be uploaded to the GitHub release page with:
``` sh
gh release upload patch_4Feb2025 lammps-src-4Feb2025.tar.gz
```
#### Build Windows Installer Packages with MinGW Linux-to-Windows Cross-compiler
The various Windows installer packages can also be built with
apptainer container image.
``` sh
cd release-packages
apptainer shell fedora41_musl_mingw.sif
git clone --depth 10 https://github.com/lammps/lammps-packages.git lammps-packages
cd lammps-packages/mingw-cross
ln -sf ../../lammps-release lammps
./buildall.sh release >& mk.log & less +F mk.log
```
The installer with the GUI included can be uploaded to the GitHub release page with:
``` sh
ln -sf LAMMPS-64bit-GUI-4Feb2025.exe LAMMPS-Win10-64bit-GUI-4Feb2025.exe
gh release upload patch_4Feb2025 LAMMPS-Win10-64bit-GUI-4Feb2025.exe
```
The symbolic link is used to have a consistent naming scheme for the packages
attached to the GitHub release page.
#### Clean up:
``` sh
cd ..
rm -r release-packages
```
TODO:
- add detailed commands for building GUI packages on Ubuntu 20.04LTS (move to 22.04LTS?),
macOS, and Windows cross-compiler and upload to GitHub
- build all Windows cross-compiled installer packages using lammps-packages repo
#### Build Multi-arch App-bundle with GUI for macOS
### Update download website
Building app-bundles for macOS is not as easily automated and portable
as some of the other steps. It requires a machine actually running
macOS. In that machine the Xcode compiler package needs to be
installed. This also includes tools for building and manipulating disk
images. This compiler supports building executables for both, the
x86_64 and the arm64 architectures. This requires building with CMake
and using the CMake settings:
``` sh
-D CMAKE_OSX_ARCHITECTURES=arm64;x86_64
-D CMAKE_OSX_DEPLOYMENT_TARGET=11.0
```
This will add the compiler flags `-arch arm64 -arch x86_64
-mmacosx-version-min=11.0` and thus produce object for both
architectures and support for macOS versions back to version 11 (aka Big
Sur). With these settings the following libraries should be compiled
and installed (e.g. to `$HOME/.local`) as static libraries only:
- libomp taken from the LLVM/Clang source distribution (to support OpenMP)
- jpeg
- zlib
- png
- Qt (for LAMMPS-GUI)
When configuring LAMMPS the `cmake/presets/clang.cmake` should be used
and as many packages as possible enabled. For LAMMPS-GUI, MPI should be
disabled with `-D BUILD_MPI=OFF` and LAMMPS-GUI enabled with
`-D BUILD_LAMMPS_GUI=ON`. If the CMake configuration is successful,
settings for building a macOS app-bundle are enabled and with `cmake
--build build --target dmg` extra steps will be executed that will build
a macOS application installer image under the name
`LAMMPS_GUI-macOS-multiarch-4Feb2025.dmg`
The application image can be uploaded to the GitHub release page with:
``` sh
ln -sf LAMMPS_GUI-macOS-multiarch-4Feb2025.dmg LAMMPS-macOS-multiarch-GUI-4Feb2025.dmg
gh release upload patch_4Feb2025 LAMMPS-macOS-multiarch-GUI-4Feb2025.dmg
```
The symbolic link is used to have a consistent naming scheme for the packages
attached to the GitHub release page.
We are currently building the application images on macOS 12 (aka Monterey).
#### Build Linux x86_64 binary tarball with GUI on Ubuntu 20.04LTS
While the flatpak Linux version uses portable runtime libraries provided
by the flatpak environment, we also build regular Linux executables that
use a wrapper script and matching shared libraries in a tarball. To be
compatible with many Linux distributions, one has to build this on a
very old Linux distribution, since most Linux system libraries are
usually backward compatible but not forward compatible. This is
currently done on an Ubuntu 20.04LTS system. Once LAMMPS moves to
require CMake 3.20 and C++17, we will have to move to Ubuntu 22.04LTS.
This installation (either on a real or a virtual machine) should have
the packages installed that are indicated in
`tools/singularity/ubuntu20.04.def` plus Qt version 5.x with development
headers, so that LAMMPS-GUI can be compiled.
Also the building of the binary tarball and setup of the bundled
libraries and wrapper scripts is automated and can executed with `cmake
--build build --target tgz`. This should produce a file
`LAMMPS_GUI-Linux-amd64-4Feb2025.tar.gz` which can be uploaded to the
GitHub release page with:
``` sh
ln -sf LAMMPS_GUI-Linux-amd64-4Feb2025.tar.gz LAMMPS-Linux-x86_64-GUI-4Feb2025.tar.gz
gh release upload patch_4Feb2025 LAMMPS-Linux-x86_64-GUI-4Feb2025.tar.gz
```
### Update download page on LAMMPS website
Check out the LAMMPS website repo
https://github.com/lammps/lammps-website.git and edit the file
@ -156,7 +286,7 @@ html` and review `html/download.html` Then add and commit to git and
push the changes to GitHub. The Temple Jenkis cluster will
automatically update https://www.lammps.org/download.html accordingly.
Notify Steve of the release so he can update `src/bug.txt` on the
Also notify Steve of the release so he can update `src/bug.txt` on the
website from the available release notes.
## LAMMPS Stable Release
@ -194,6 +324,47 @@ At this point it should be possible to do a fast-forward merge of
### Push branches and tags
## LAMMPS Stable Update Release
After making a stable release, bugfixes from the 'develop' branch
are selectively backported to the 'maintenance' branch. This is
done with "git cherry-pick \<commit hash\>' wherever possible.
The LAMMPS\_UPDATE define in "src/version.h" is set to "Maintenance".
### Prerequesites
When a sufficient number of bugfixes has accumulated or an urgent
or important bugfix needs to be distributed a new stable update
release is made. To make this publicly visible a pull request
is submitted that will merge 'maintenance' into 'stable'. Before
merging, set LAMMPS\_UPDATE in "src/version.h" to "Update #" with
"#" indicating the update count (1, 2, and so on).
Also draft suitable release notes under https://github.com/lammps/lammps/releases
### Fast-forward merge of 'maintenance' into 'stable', apply tag, and publish
Do a fast-forward merge of 'maintenance' to 'stable' and then
apply the stable\_DMmmYYYY\_update# tag and push branch and tag
to GitHub. The corresponding pull request will be automatically
closed. Example:
```
git checkout maintenance
git pull
git checkout stable
git pull
git merge --ff-only maintenance
git tag -s -m 'Update 2 for Stable LAMMPS version 29 August 2024' stable_29Aug2024_update2
git push git@github.com:lammps/lammps.git --tags maintenance stable
```
Associate draft release notes with new tag and publish as "latest release".
On https://ci.lammps.org/ go to "dev", "stable" and manually execute
the "update\_release" task. This will update https://docs.lammps.org/stable
and prepare a stable tarball.
### Build and upload binary packages and source tarball to GitHub
The build procedure is the same as for the feature releases, only
that packages are built from the 'stable' branch.

View File

@ -1,4 +1,4 @@
# GitHub action to build LAMMPS on Linux with gcc and C++23
# GitHub action to build LAMMPS on Linux with gcc or clang and C++23
name: "Check for C++23 Compatibility"
on:
@ -11,11 +11,19 @@ on:
workflow_dispatch:
concurrency:
group: ${{ github.event_name }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{github.event_name == 'pull_request'}}
jobs:
build:
name: Build with C++23 support enabled
if: ${{ github.repository == 'lammps/lammps' }}
runs-on: ubuntu-latest
strategy:
max-parallel: 2
matrix:
idx: [ gcc, clang ]
env:
CCACHE_DIR: ${{ github.workspace }}/.ccache
@ -29,8 +37,11 @@ jobs:
run: |
sudo apt-get update
sudo apt-get install -y ccache \
libeigen3-dev \
clang \
libcurl4-openssl-dev \
libeigen3-dev \
libfftw3-dev \
libomp-dev \
mold \
mpi-default-bin \
mpi-default-dev \
@ -44,8 +55,8 @@ jobs:
uses: actions/cache@v4
with:
path: ${{ env.CCACHE_DIR }}
key: linux-cpp23-ccache-${{ github.sha }}
restore-keys: linux-cpp23-ccache-
key: linux-cpp23-ccache-${{ matrix.idx }}-${{ github.sha }}
restore-keys: linux-cpp23-ccache-${{ matrix.idx }}
- name: Building LAMMPS via CMake
shell: bash
@ -58,14 +69,14 @@ jobs:
cmake -S cmake -B build \
-C cmake/presets/most.cmake \
-C cmake/presets/kokkos-openmp.cmake \
-C cmake/presets/${{ matrix.idx }}.cmake \
-D CMAKE_CXX_STANDARD=23 \
-D CMAKE_CXX_COMPILER=g++ \
-D CMAKE_C_COMPILER=gcc \
-D CMAKE_CXX_COMPILER_LAUNCHER=ccache \
-D CMAKE_C_COMPILER_LAUNCHER=ccache \
-D CMAKE_BUILD_TYPE=Debug \
-D CMAKE_CXX_FLAGS_DEBUG="-Og -g" \
-D DOWNLOAD_POTENTIALS=off \
-D FFT=KISS \
-D BUILD_MPI=on \
-D BUILD_SHARED_LIBS=on \
-D BUILD_TOOLS=off \

View File

@ -77,7 +77,7 @@ jobs:
-D PKG_MDI=on \
-D PKG_MANIFOLD=on \
-D PKG_ML-PACE=on \
-D PKG_ML-RANN=off \
-D PKG_ML-RANN=on \
-D PKG_MOLFILE=on \
-D PKG_RHEO=on \
-D PKG_PTM=on \

16
README
View File

@ -23,17 +23,21 @@ more information about the code and its uses.
The LAMMPS distribution includes the following files and directories:
README this file
LICENSE the GNU General Public License (GPL)
bench benchmark problems
LICENSE the GNU General Public License (GPLv2)
CITATION.cff Citation information for LAMMPS in CFF format
bench benchmark inputs
cmake CMake build files
doc documentation
examples simple test problems
fortran Fortran wrapper for LAMMPS
examples example inputs for many LAMMPS commands
fortran Fortran 2003 module for LAMMPS
lib additional provided or external libraries
potentials interatomic potential files
python Python wrappers for LAMMPS
python Python module for LAMMPS
src source files
third_party Copies of thirdparty software bundled with LAMMPS
tools pre- and post-processing tools
unittest test programs for use with CTest
.github Git and GitHub related files and tools
Point your browser at any of these files to get started:
@ -42,6 +46,8 @@ https://docs.lammps.org/Intro.html hi-level introduction
https://docs.lammps.org/Build.html how to build LAMMPS
https://docs.lammps.org/Run_head.html how to run LAMMPS
https://docs.lammps.org/Commands_all.html Table of available commands
https://docs.lammps.org/Howto.html Short tutorials and HowTo discussions
https://docs.lammps.org/Errors.html How to interpret and debug errors
https://docs.lammps.org/Library.html LAMMPS library interfaces
https://docs.lammps.org/Modify.html how to modify and extend LAMMPS
https://docs.lammps.org/Developer.html LAMMPS developer info

View File

@ -3,10 +3,11 @@
# CMake build system
# This file is part of LAMMPS
cmake_minimum_required(VERSION 3.16)
if(CMAKE_VERSION VERSION_LESS 3.20)
message(WARNING "LAMMPS is planning to require at least CMake version 3.20 by Summer 2025. Please upgrade!")
endif()
########################################
# initialize version variables with project command
if(POLICY CMP0048)
cmake_policy(SET CMP0048 NEW)
endif()
# set policy to silence warnings about ignoring <PackageName>_ROOT but use it
if(POLICY CMP0074)
cmake_policy(SET CMP0074 NEW)
@ -27,7 +28,10 @@ endif()
########################################
project(lammps CXX)
project(lammps
DESCRIPTION "The LAMMPS Molecular Dynamics Simulator"
HOMEPAGE_URL "https://www.lammps.org"
LANGUAGES CXX C)
set(SOVERSION 0)
get_property(BUILD_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
@ -44,6 +48,7 @@ set(LAMMPS_DOC_DIR ${LAMMPS_DIR}/doc)
set(LAMMPS_TOOLS_DIR ${LAMMPS_DIR}/tools)
set(LAMMPS_PYTHON_DIR ${LAMMPS_DIR}/python)
set(LAMMPS_POTENTIALS_DIR ${LAMMPS_DIR}/potentials)
set(LAMMPS_THIRDPARTY_DIR ${LAMMPS_DIR}/third_party)
set(LAMMPS_DOWNLOADS_URL "https://download.lammps.org" CACHE STRING "Base URL for LAMMPS downloads")
set(LAMMPS_POTENTIALS_URL "${LAMMPS_DOWNLOADS_URL}/potentials")
@ -105,46 +110,35 @@ 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")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /QxCOMMON-AVX512")
else()
set(CMAKE_TUNE_DEFAULT "/QxHost")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /QxHost")
endif()
else()
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")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -xCOMMON-AVX512")
else()
set(CMAKE_TUNE_DEFAULT "-xHost -fp-model fast=2 -no-prec-div -qoverride-limits -diag-disable=10441 -diag-disable=11074 -diag-disable=11076 -diag-disable=2196")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -xHost -fp-model fast=2 -no-prec-div -qoverride-limits -diag-disable=10441 -diag-disable=11074 -diag-disable=11076 -diag-disable=2196")
endif()
endif()
endif()
# silence excessive warnings for new Intel Compilers
if(CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM")
set(CMAKE_TUNE_DEFAULT "-fp-model precise -Wno-tautological-constant-compare -Wno-unused-command-line-argument")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fp-model precise -Wno-tautological-constant-compare -Wno-unused-command-line-argument")
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()
# this hack is required to compile fmt lib with CrayClang version 15.0.2
# CrayClang is only directly recognized by version 3.28 and later
if(CMAKE_VERSION VERSION_LESS 3.28)
get_filename_component(_exe "${CMAKE_CXX_COMPILER}" NAME)
if((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (_exe STREQUAL "crayCC"))
set(CMAKE_TUNE_DEFAULT "-DFMT_STATIC_THOUSANDS_SEPARATOR")
endif()
else()
if(CMAKE_CXX_COMPILER_ID STREQUAL "CrayClang")
set(CMAKE_TUNE_DEFAULT "-DFMT_STATIC_THOUSANDS_SEPARATOR")
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Minform=severe")
endif()
# silence nvcc warnings
if((PKG_KOKKOS) AND (Kokkos_ENABLE_CUDA) AND NOT (CMAKE_CXX_COMPILER_ID STREQUAL "Clang"))
set(CMAKE_TUNE_DEFAULT "${CMAKE_TUNE_DEFAULT}" "-Xcudafe --diag_suppress=unrecognized_pragma,--diag_suppress=128")
if((PKG_KOKKOS) AND (Kokkos_ENABLE_CUDA) AND NOT
((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM")
OR (CMAKE_CXX_COMPILER_ID STREQUAL "XLClang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "CrayClang")))
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Xcudafe --diag_suppress=unrecognized_pragma,--diag_suppress=128")
endif()
# we *require* C++11 without extensions but prefer C++17.
@ -159,9 +153,6 @@ endif()
if(CMAKE_CXX_STANDARD LESS 11)
message(FATAL_ERROR "C++ standard must be set to at least 11")
endif()
if(CMAKE_CXX_STANDARD LESS 17)
message(WARNING "Selecting C++17 standard is preferred over C++${CMAKE_CXX_STANDARD}")
endif()
if(PKG_KOKKOS AND (CMAKE_CXX_STANDARD LESS 17))
set(CMAKE_CXX_STANDARD 17)
endif()
@ -206,10 +197,14 @@ if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND BUILD_SHARED_LIBS)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
endif()
# do not include the (obsolete) MPI C++ bindings which makes for leaner object files
# and avoids namespace conflicts. Put this early to increase its visbility.
set(MPI_CXX_SKIP_MPICXX TRUE CACHE BOOL "Skip MPI C++ Bindings" FORCE)
########################################################################
# User input options #
########################################################################
# backward compatibility with CMake before 3.12 and older LAMMPS documentation
# backward compatibility with older LAMMPS documentation
if (PYTHON_EXECUTABLE)
set(Python_EXECUTABLE "${PYTHON_EXECUTABLE}")
endif()
@ -225,6 +220,12 @@ if(DEFINED ENV{VIRTUAL_ENV} AND NOT Python_EXECUTABLE)
" Setting Python interpreter to: ${Python_EXECUTABLE}")
endif()
find_package(Python COMPONENTS Interpreter QUIET)
# NOTE: RHEL 8.0 and Ubuntu 18.04LTS ship with Python 3.6, Python 3.8 was EOL in 2024
if(Python_VERSION VERSION_LESS 3.6)
message(FATAL_ERROR "LAMMPS requires Python 3.6 or later")
endif()
set(LAMMPS_MACHINE "" CACHE STRING "Suffix to append to lmp binary (WON'T enable any features automatically")
mark_as_advanced(LAMMPS_MACHINE)
if(LAMMPS_MACHINE)
@ -237,15 +238,6 @@ option(CMAKE_POSITION_INDEPENDENT_CODE "Create object compatible with shared lib
option(BUILD_TOOLS "Build and install LAMMPS tools (msi2lmp, binary2txt, chain)" OFF)
option(BUILD_LAMMPS_GUI "Build and install the LAMMPS GUI" OFF)
# Support using clang-tidy for C++ files with selected options
set(ENABLE_CLANG_TIDY OFF CACHE BOOL "Include clang-tidy processing when compiling")
if(ENABLE_CLANG_TIDY)
set(CMAKE_CXX_CLANG_TIDY "clang-tidy;-checks=-*,performance-trivially-destructible,performance-unnecessary-copy-initialization,performance-unnecessary-value-param,readability-redundant-control-flow,readability-redundant-declaration,readability-redundant-function-ptr-dereference,readability-redundant-member-init,readability-redundant-string-cstr,readability-redundant-string-init,readability-simplify-boolean-expr,readability-static-accessed-through-instance,readability-static-definition-in-anonymous-namespace,readability-qualified-auto,misc-unused-parameters,modernize-deprecated-ios-base-aliases,modernize-loop-convert,modernize-shrink-to-fit,modernize-use-auto,modernize-use-using,modernize-use-override,modernize-use-bool-literals,modernize-use-emplace,modernize-return-braced-init-list,modernize-use-equals-default,modernize-use-equals-delete,modernize-replace-random-shuffle,modernize-deprecated-headers,modernize-use-nullptr,modernize-use-noexcept,modernize-redundant-void-arg;-fix;-header-filter=.*,header-filter=library.h,header-filter=fmt/*.h" CACHE STRING "clang-tidy settings")
else()
unset(CMAKE_CXX_CLANG_TIDY CACHE)
endif()
file(GLOB ALL_SOURCES CONFIGURE_DEPENDS ${LAMMPS_SOURCE_DIR}/[^.]*.cpp)
file(GLOB MAIN_SOURCES CONFIGURE_DEPENDS ${LAMMPS_SOURCE_DIR}/main.cpp)
list(REMOVE_ITEM ALL_SOURCES ${MAIN_SOURCES})
@ -270,6 +262,7 @@ option(CMAKE_VERBOSE_MAKEFILE "Generate verbose Makefiles" OFF)
set(STANDARD_PACKAGES
ADIOS
AMOEBA
APIP
ASPHERE
ATC
AWPMD
@ -362,27 +355,16 @@ foreach(PKG ${STANDARD_PACKAGES} ${SUFFIX_PACKAGES})
option(PKG_${PKG} "Build ${PKG} Package" OFF)
endforeach()
set(DEPRECATED_PACKAGES AWPMD ATC POEMS)
foreach(PKG ${DEPRECATED_PACKAGES})
if(PKG_${PKG})
message(WARNING
"The ${PKG} package will be removed from LAMMPS in Summer 2025 due to lack of "
"maintenance and use of code constructs that conflict with modern C++ compilers "
"and standards. Please contact developers@lammps.org if you have any concerns "
"about this step.")
endif()
endforeach()
######################################################
# packages with special compiler needs or external libs
######################################################
target_include_directories(lammps PUBLIC $<BUILD_INTERFACE:${LAMMPS_SOURCE_DIR}>)
target_include_directories(lammps PUBLIC $<BUILD_INTERFACE:${LAMMPS_THIRDPARTY_DIR}>)
if(PKG_ADIOS)
# The search for ADIOS2 must come before MPI because
# it includes its own MPI search with the latest FindMPI.cmake
# script that defines the MPI::MPI_C target
enable_language(C)
find_package(ADIOS2 REQUIRED)
if(BUILD_MPI)
if(NOT ADIOS2_HAVE_MPI)
@ -397,21 +379,18 @@ if(PKG_ADIOS)
endif()
if(NOT CMAKE_CROSSCOMPILING)
find_package(MPI QUIET)
find_package(MPI QUIET COMPONENTS CXX)
option(BUILD_MPI "Build MPI version" ${MPI_FOUND})
else()
option(BUILD_MPI "Build MPI version" OFF)
endif()
if(BUILD_MPI)
# do not include the (obsolete) MPI C++ bindings which makes
# for leaner object files and avoids namespace conflicts
set(MPI_CXX_SKIP_MPICXX TRUE)
# We use a non-standard procedure to cross-compile with MPI on Windows
if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND CMAKE_CROSSCOMPILING)
include(MPI4WIN)
else()
find_package(MPI REQUIRED)
find_package(MPI REQUIRED COMPONENTS 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)
@ -425,8 +404,8 @@ else()
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)")
set(LAMMPS_SIZES_VALUES smallbig bigbig smallsmall)
set(LAMMPS_SIZES "smallbig" CACHE STRING "LAMMPS integer sizes (smallbig: 64-bit #atoms #timesteps, bigbig: also 64-bit imageint, 64-bit atom ids)")
set(LAMMPS_SIZES_VALUES smallbig bigbig)
set_property(CACHE LAMMPS_SIZES PROPERTY STRINGS ${LAMMPS_SIZES_VALUES})
validate_option(LAMMPS_SIZES LAMMPS_SIZES_VALUES)
string(TOUPPER ${LAMMPS_SIZES} LAMMPS_SIZES)
@ -444,6 +423,19 @@ if(NOT ${LAMMPS_MEMALIGN} STREQUAL "0")
target_compile_definitions(lammps PRIVATE -DLAMMPS_MEMALIGN=${LAMMPS_MEMALIGN})
endif()
# this hack is required to compile fmt lib with CrayClang version 15.0.2
# CrayClang is only directly recognized by CMake version 3.28 and later
if(CMAKE_VERSION VERSION_LESS 3.28)
get_filename_component(_exe "${CMAKE_CXX_COMPILER}" NAME)
if((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (_exe STREQUAL "crayCC"))
target_compile_definitions(lammps PRIVATE -DFMT_STATIC_THOUSANDS_SEPARATOR)
endif()
else()
if(CMAKE_CXX_COMPILER_ID STREQUAL "CrayClang")
target_compile_definitions(lammps PRIVATE -DFMT_STATIC_THOUSANDS_SEPARATOR)
endif()
endif()
# "hard" dependencies between packages resulting
# in an error instead of skipping over files
pkg_depends(ML-IAP ML-SNAP)
@ -459,6 +451,7 @@ pkg_depends(ELECTRODE KSPACE)
pkg_depends(EXTRA-MOLECULE MOLECULE)
pkg_depends(MESONT MOLECULE)
pkg_depends(RHEO BPM)
pkg_depends(APIP ML-PACE)
# detect if we may enable OpenMP support by default
set(BUILD_OMP_DEFAULT OFF)
@ -501,13 +494,13 @@ if(BUILD_OMP)
if(CMAKE_VERSION VERSION_LESS 3.28)
get_filename_component(_exe "${CMAKE_CXX_COMPILER}" NAME)
if((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (_exe STREQUAL "crayCC"))
set(CMAKE_SHARED_LINKER_FLAGS_${BTYPE} "${CMAKE_SHARED_LINKER_FLAGS_${BTYPE}} -fopenmp")
set(CMAKE_STATIC_LINKER_FLAGS_${BTYPE} "${CMAKE_STATIC_LINKER_FLAGS_${BTYPE}} -fopenmp")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fopenmp")
set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} -fopenmp")
endif()
else()
if(CMAKE_CXX_COMPILER_ID STREQUAL "CrayClang")
set(CMAKE_SHARED_LINKER_FLAGS_${BTYPE} "${CMAKE_SHARED_LINKER_FLAGS_${BTYPE}} -fopenmp")
set(CMAKE_STATIC_LINKER_FLAGS_${BTYPE} "${CMAKE_STATIC_LINKER_FLAGS_${BTYPE}} -fopenmp")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fopenmp")
set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} -fopenmp")
endif()
endif()
endif()
@ -525,7 +518,6 @@ if((CMAKE_CXX_COMPILER_ID STREQUAL "Intel") AND (CMAKE_CXX_STANDARD GREATER_EQUA
endif()
if(PKG_ATC OR PKG_AWPMD OR PKG_ML-QUIP OR PKG_ML-POD OR PKG_ELECTRODE OR PKG_RHEO OR BUILD_TOOLS)
enable_language(C)
if (NOT USE_INTERNAL_LINALG)
find_package(LAPACK)
find_package(BLAS)
@ -622,10 +614,6 @@ if(WITH_SWIG)
add_subdirectory(${LAMMPS_SWIG_DIR} swig)
endif()
set(CMAKE_TUNE_FLAGS "${CMAKE_TUNE_DEFAULT}" CACHE STRING "Compiler and machine specific optimization flags (compilation only)")
separate_arguments(CMAKE_TUNE_FLAGS)
target_compile_options(lammps PRIVATE ${CMAKE_TUNE_FLAGS})
target_compile_options(lmp PRIVATE ${CMAKE_TUNE_FLAGS})
########################################################################
# Basic system tests (standard libraries, headers, functions, types) #
########################################################################
@ -930,7 +918,7 @@ endif()
include(Testing)
include(CodeCoverage)
include(CodingStandard)
find_package(ClangFormat 11.0)
find_package(ClangFormat 11.0 QUIET)
if(ClangFormat_FOUND)
add_custom_target(format-src

View File

@ -1,11 +1,11 @@
# use default (or custom) Python executable, if version is sufficient
if(Python_VERSION VERSION_GREATER_EQUAL 3.6)
# use default (or custom) Python executable.
# Python version check is in main CMakeLists.txt file
if(Python_EXECUTABLE)
set(Python3_EXECUTABLE ${Python_EXECUTABLE})
endif()
find_package(Python3 COMPONENTS Interpreter)
if(Python3_EXECUTABLE)
if(Python3_VERSION VERSION_GREATER_EQUAL 3.6)
add_custom_target(
check-whitespace
${Python3_EXECUTABLE} ${LAMMPS_TOOLS_DIR}/coding_standard/whitespace.py .
@ -36,5 +36,4 @@ if(Python3_EXECUTABLE)
${Python3_EXECUTABLE} ${LAMMPS_TOOLS_DIR}/coding_standard/permissions.py -f .
WORKING_DIRECTORY ${LAMMPS_DIR}
COMMENT "Fix permission errors")
endif()
endif()

View File

@ -13,7 +13,7 @@ if(BUILD_DOC)
endif()
find_package(Python3 REQUIRED COMPONENTS Interpreter)
if(Python3_VERSION VERSION_LESS 3.8)
message(FATAL_ERROR "Python 3.8 and up is required to build the HTML documentation")
message(FATAL_ERROR "Python 3.8 and up is required to build the LAMMPS HTML documentation")
endif()
set(VIRTUALENV ${Python3_EXECUTABLE} -m venv)
@ -65,8 +65,8 @@ if(BUILD_DOC)
find_package(Sphinx)
endif()
set(MATHJAX_URL "https://github.com/mathjax/MathJax/archive/3.1.3.tar.gz" CACHE STRING "URL for MathJax tarball")
set(MATHJAX_MD5 "b81661c6e6ba06278e6ae37b30b0c492" CACHE STRING "MD5 checksum of MathJax tarball")
set(MATHJAX_URL "https://github.com/mathjax/MathJax/archive/3.2.2.tar.gz" CACHE STRING "URL for MathJax tarball")
set(MATHJAX_MD5 "08dd6ef33ca08870220d9aade2a62845" CACHE STRING "MD5 checksum of MathJax tarball")
mark_as_advanced(MATHJAX_URL)
GetFallbackURL(MATHJAX_URL MATHJAX_FALLBACK)

View File

@ -34,8 +34,26 @@ if(MSVC)
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
endif()
# C++11 is required
set(CMAKE_CXX_STANDARD 11)
if(NOT CMAKE_CXX_STANDARD)
if(cxx_std_17 IN_LIST CMAKE_CXX_COMPILE_FEATURES)
set(CMAKE_CXX_STANDARD 17)
else()
set(CMAKE_CXX_STANDARD 11)
endif()
endif()
if(CMAKE_CXX_STANDARD LESS 11)
message(FATAL_ERROR "C++ standard must be set to at least 11")
endif()
if(CMAKE_CXX_STANDARD LESS 17)
message(WARNING "Selecting C++17 standard is preferred over C++${CMAKE_CXX_STANDARD}")
endif()
if(PKG_KOKKOS AND (CMAKE_CXX_STANDARD LESS 17))
set(CMAKE_CXX_STANDARD 17)
endif()
# turn off C++17 check in lmptype.h
if(LAMMPS_CXX11)
add_compile_definitions(LAMMPS_CXX11)
endif()
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Need -restrict with Intel compilers
@ -44,6 +62,9 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
endif()
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
# skip over obsolete MPI-2 C++ bindings
set(MPI_CXX_SKIP_MPICXX TRUE)
#######
# helper functions from LAMMPSUtils.cmake
function(validate_option name values)
@ -110,8 +131,7 @@ endif()
################################################################################
# MPI configuration
if(NOT CMAKE_CROSSCOMPILING)
set(MPI_CXX_SKIP_MPICXX TRUE)
find_package(MPI QUIET)
find_package(MPI QUIET COMPONENTS CXX)
option(BUILD_MPI "Build MPI version" ${MPI_FOUND})
else()
option(BUILD_MPI "Build MPI version" OFF)
@ -123,9 +143,6 @@ if(BUILD_MPI)
set(MPI_CXX_SKIP_MPICXX TRUE)
# We use a non-standard procedure to cross-compile with MPI on Windows
if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND CMAKE_CROSSCOMPILING)
# Download and configure MinGW compatible MPICH development files for Windows
option(USE_MSMPI "Use Microsoft's MS-MPI SDK instead of MPICH2-1.4.1" OFF)
if(USE_MSMPI)
message(STATUS "Downloading and configuring MS-MPI 10.1 for Windows cross-compilation")
set(MPICH2_WIN64_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/msmpi-win64-devel.tar.gz" CACHE STRING "URL for MS-MPI (win64) tarball")
set(MPICH2_WIN64_DEVEL_MD5 "86314daf1bffb809f1fcbefb8a547490" CACHE STRING "MD5 checksum of MS-MPI (win64) tarball")
@ -149,52 +166,15 @@ if(BUILD_MPI)
set_target_properties(MPI::MPI_CXX PROPERTIES
IMPORTED_LOCATION "${SOURCE_DIR}/lib/libmsmpi.a"
INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}/include"
INTERFACE_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX")
INTERFACE_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX=1")
add_dependencies(MPI::MPI_CXX mpi4win_build)
# set variables for status reporting at the end of CMake run
set(MPI_CXX_INCLUDE_PATH "${SOURCE_DIR}/include")
set(MPI_CXX_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX")
set(MPI_CXX_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX=1")
set(MPI_CXX_LIBRARIES "${SOURCE_DIR}/lib/libmsmpi.a")
else()
# Download and configure custom MPICH files for Windows
message(STATUS "Downloading and configuring MPICH-1.4.1 for Windows")
set(MPICH2_WIN64_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/mpich2-win64-devel.tar.gz" CACHE STRING "URL for MPICH2 (win64) tarball")
set(MPICH2_WIN64_DEVEL_MD5 "4939fdb59d13182fd5dd65211e469f14" CACHE STRING "MD5 checksum of MPICH2 (win64) tarball")
mark_as_advanced(MPICH2_WIN64_DEVEL_URL)
mark_as_advanced(MPICH2_WIN64_DEVEL_MD5)
include(ExternalProject)
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
ExternalProject_Add(mpi4win_build
URL ${MPICH2_WIN64_DEVEL_URL}
URL_MD5 ${MPICH2_WIN64_DEVEL_MD5}
CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ""
BUILD_BYPRODUCTS <SOURCE_DIR>/lib/libmpi.a)
else()
ExternalProject_Add(mpi4win_build
URL ${MPICH2_WIN32_DEVEL_URL}
URL_MD5 ${MPICH2_WIN32_DEVEL_MD5}
CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ""
BUILD_BYPRODUCTS <SOURCE_DIR>/lib/libmpi.a)
endif()
ExternalProject_get_property(mpi4win_build SOURCE_DIR)
file(MAKE_DIRECTORY "${SOURCE_DIR}/include")
add_library(MPI::MPI_CXX UNKNOWN IMPORTED)
set_target_properties(MPI::MPI_CXX PROPERTIES
IMPORTED_LOCATION "${SOURCE_DIR}/lib/libmpi.a"
INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}/include"
INTERFACE_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX")
add_dependencies(MPI::MPI_CXX mpi4win_build)
# set variables for status reporting at the end of CMake run
set(MPI_CXX_INCLUDE_PATH "${SOURCE_DIR}/include")
set(MPI_CXX_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX")
set(MPI_CXX_LIBRARIES "${SOURCE_DIR}/lib/libmpi.a")
endif()
else()
find_package(MPI REQUIRED)
find_package(MPI REQUIRED COMPONENTS 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 INTERFACE -DLAMMPS_LONGLONG_TO_LONG)
@ -242,8 +222,8 @@ endif()
################
# integer size selection
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)")
set(LAMMPS_SIZES_VALUES smallbig bigbig smallsmall)
set(LAMMPS_SIZES "smallbig" CACHE STRING "LAMMPS integer sizes (smallbig: 64-bit #atoms #timesteps, bigbig: also 64-bit imageint, 64-bit atom ids)")
set(LAMMPS_SIZES_VALUES smallbig bigbig)
set_property(CACHE LAMMPS_SIZES PROPERTY STRINGS ${LAMMPS_SIZES_VALUES})
validate_option(LAMMPS_SIZES LAMMPS_SIZES_VALUES)
string(TOUPPER ${LAMMPS_SIZES} LAMMPS_SIZES)

View File

@ -30,7 +30,7 @@ function(check_omp_h_include)
if(OpenMP_CXX_FOUND)
set(CMAKE_REQUIRED_FLAGS ${OpenMP_CXX_FLAGS})
set(CMAKE_REQUIRED_INCLUDES ${OpenMP_CXX_INCLUDE_DIRS})
set(CMAKE_REQUIRED_LINK_OPTIONS ${OpenMP_CXX_FLAGS})
separate_arguments(CMAKE_REQUIRED_LINK_OPTIONS NATIVE_COMMAND ${OpenMP_CXX_FLAGS}) # needs to be a list
set(CMAKE_REQUIRED_LIBRARIES ${OpenMP_CXX_LIBRARIES})
# there are all kinds of problems with finding omp.h
# for Clang and derived compilers so we pretend it is there.
@ -75,13 +75,25 @@ function(get_lammps_version version_header variable)
list(FIND MONTHS "${month}" month)
string(LENGTH ${day} day_length)
string(LENGTH ${month} month_length)
if(day_length EQUAL 1)
set(day "0${day}")
# no leading zero needed for new version string with dots
# if(day_length EQUAL 1)
# set(day "0${day}")
# endif()
# if(month_length EQUAL 1)
# set(month "0${month}")
#endif()
file(STRINGS ${version_header} line REGEX LAMMPS_UPDATE)
string(REGEX REPLACE "#define LAMMPS_UPDATE \"Update ([0-9]+)\"" "\\1" tweak "${line}")
if (line MATCHES "#define LAMMPS_UPDATE \"(Maintenance|Development)\"")
set(tweak "99")
endif()
if(month_length EQUAL 1)
set(month "0${month}")
if(NOT tweak)
set(tweak "0")
endif()
set(${variable} "${year}${month}${day}" PARENT_SCOPE)
# new version string with dots
set(${variable} "${year}.${month}.${day}.${tweak}" PARENT_SCOPE)
# old version string without dots
# set(${variable} "${year}${month}${day}" PARENT_SCOPE)
endfunction()
function(check_for_autogen_files source_dir)

View File

@ -1,74 +1,31 @@
# Download and configure MinGW compatible MPICH development files for Windows
option(USE_MSMPI "Use Microsoft's MS-MPI SDK instead of MPICH2-1.4.1" OFF)
# set-up MS-MPI library for Windows with MinGW compatibility
message(STATUS "Downloading and configuring MS-MPI 10.1 for Windows cross-compilation")
set(MPICH2_WIN64_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/msmpi-win64-devel.tar.gz" CACHE STRING "URL for MS-MPI (win64) tarball")
set(MPICH2_WIN64_DEVEL_MD5 "86314daf1bffb809f1fcbefb8a547490" CACHE STRING "MD5 checksum of MS-MPI (win64) tarball")
mark_as_advanced(MPICH2_WIN64_DEVEL_URL)
mark_as_advanced(MPICH2_WIN64_DEVEL_MD5)
if(USE_MSMPI)
message(STATUS "Downloading and configuring MS-MPI 10.1 for Windows cross-compilation")
set(MPICH2_WIN64_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/msmpi-win64-devel.tar.gz" CACHE STRING "URL for MS-MPI (win64) tarball")
set(MPICH2_WIN64_DEVEL_MD5 "86314daf1bffb809f1fcbefb8a547490" CACHE STRING "MD5 checksum of MS-MPI (win64) tarball")
mark_as_advanced(MPICH2_WIN64_DEVEL_URL)
mark_as_advanced(MPICH2_WIN64_DEVEL_MD5)
include(ExternalProject)
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(ExternalProject)
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
ExternalProject_Add(mpi4win_build
URL ${MPICH2_WIN64_DEVEL_URL}
URL_MD5 ${MPICH2_WIN64_DEVEL_MD5}
CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ""
BUILD_BYPRODUCTS <SOURCE_DIR>/lib/libmsmpi.a)
else()
else()
message(FATAL_ERROR "Only x86 64-bit builds are supported with MS-MPI")
endif()
endif()
ExternalProject_get_property(mpi4win_build SOURCE_DIR)
file(MAKE_DIRECTORY "${SOURCE_DIR}/include")
add_library(MPI::MPI_CXX UNKNOWN IMPORTED)
set_target_properties(MPI::MPI_CXX PROPERTIES
ExternalProject_get_property(mpi4win_build SOURCE_DIR)
file(MAKE_DIRECTORY "${SOURCE_DIR}/include")
add_library(MPI::MPI_CXX UNKNOWN IMPORTED)
set_target_properties(MPI::MPI_CXX PROPERTIES
IMPORTED_LOCATION "${SOURCE_DIR}/lib/libmsmpi.a"
INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}/include"
INTERFACE_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX")
add_dependencies(MPI::MPI_CXX mpi4win_build)
INTERFACE_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX=1")
add_dependencies(MPI::MPI_CXX mpi4win_build)
# set variables for status reporting at the end of CMake run
set(MPI_CXX_INCLUDE_PATH "${SOURCE_DIR}/include")
set(MPI_CXX_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX")
set(MPI_CXX_LIBRARIES "${SOURCE_DIR}/lib/libmsmpi.a")
else()
message(STATUS "Downloading and configuring MPICH2-1.4.1 for Windows cross-compilation")
set(MPICH2_WIN64_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/mpich2-win64-devel.tar.gz" CACHE STRING "URL for MPICH2 (win64) tarball")
set(MPICH2_WIN32_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/mpich2-win32-devel.tar.gz" CACHE STRING "URL for MPICH2 (win32) tarball")
set(MPICH2_WIN64_DEVEL_MD5 "4939fdb59d13182fd5dd65211e469f14" CACHE STRING "MD5 checksum of MPICH2 (win64) tarball")
set(MPICH2_WIN32_DEVEL_MD5 "a61d153500dce44e21b755ee7257e031" CACHE STRING "MD5 checksum of MPICH2 (win32) tarball")
mark_as_advanced(MPICH2_WIN64_DEVEL_URL)
mark_as_advanced(MPICH2_WIN32_DEVEL_URL)
mark_as_advanced(MPICH2_WIN64_DEVEL_MD5)
mark_as_advanced(MPICH2_WIN32_DEVEL_MD5)
include(ExternalProject)
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
ExternalProject_Add(mpi4win_build
URL ${MPICH2_WIN64_DEVEL_URL}
URL_MD5 ${MPICH2_WIN64_DEVEL_MD5}
CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ""
BUILD_BYPRODUCTS <SOURCE_DIR>/lib/libmpi.a)
else()
ExternalProject_Add(mpi4win_build
URL ${MPICH2_WIN32_DEVEL_URL}
URL_MD5 ${MPICH2_WIN32_DEVEL_MD5}
CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ""
BUILD_BYPRODUCTS <SOURCE_DIR>/lib/libmpi.a)
endif()
ExternalProject_get_property(mpi4win_build SOURCE_DIR)
file(MAKE_DIRECTORY "${SOURCE_DIR}/include")
add_library(MPI::MPI_CXX UNKNOWN IMPORTED)
set_target_properties(MPI::MPI_CXX PROPERTIES
IMPORTED_LOCATION "${SOURCE_DIR}/lib/libmpi.a"
INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}/include"
INTERFACE_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX")
add_dependencies(MPI::MPI_CXX mpi4win_build)
# set variables for status reporting at the end of CMake run
set(MPI_CXX_INCLUDE_PATH "${SOURCE_DIR}/include")
set(MPI_CXX_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX")
set(MPI_CXX_LIBRARIES "${SOURCE_DIR}/lib/libmpi.a")
endif()
# set variables for status reporting at the end of CMake run
set(MPI_CXX_INCLUDE_PATH "${SOURCE_DIR}/include")
set(MPI_CXX_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX=1")
set(MPI_CXX_LIBRARIES "${SOURCE_DIR}/lib/libmsmpi.a")

View File

@ -14,10 +14,6 @@ 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
@ -30,6 +26,10 @@ if(BUILD_OMP)
target_link_libraries(colvars PRIVATE OpenMP::OpenMP_CXX)
endif()
if(BUILD_MPI)
target_link_libraries(colvars PUBLIC MPI::MPI_CXX)
endif()
if(COLVARS_DEBUG)
# Need to export the define publicly to be valid in interface code
target_compile_definitions(colvars PUBLIC -DCOLVARS_DEBUG)

View File

@ -1,10 +1,18 @@
# the geturl command needs libcurl
find_package(CURL QUIET COMPONENTS HTTP HTTPS)
find_package(CURL QUIET)
option(WITH_CURL "Enable libcurl support" ${CURL_FOUND})
if(WITH_CURL)
find_package(CURL REQUIRED COMPONENTS HTTP HTTPS)
target_compile_definitions(lammps PRIVATE -DLAMMPS_CURL)
# need to use pkgconfig for fully static bins to find custom static libs
if (CMAKE_SYSTEM_NAME STREQUAL "LinuxMUSL")
include(FindPkgConfig)
pkg_check_modules(CURL IMPORTED_TARGET libcurl libssl libcrypto)
target_link_libraries(lammps PUBLIC PkgConfig::CURL)
else()
find_package(CURL REQUIRED)
target_link_libraries(lammps PRIVATE CURL::libcurl)
endif()
endif()

View File

@ -189,7 +189,7 @@ if(GPU_API STREQUAL "CUDA")
endif()
add_executable(nvc_get_devices ${LAMMPS_LIB_SOURCE_DIR}/gpu/geryon/ucl_get_devices.cpp)
target_compile_definitions(nvc_get_devices PRIVATE -DUCL_CUDADR)
target_compile_definitions(nvc_get_devices PRIVATE -DUCL_CUDADR -DLAMMPS_${LAMMPS_SIZES})
target_link_libraries(nvc_get_devices PRIVATE ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY})
target_include_directories(nvc_get_devices PRIVATE ${CUDA_INCLUDE_DIRS})
@ -489,7 +489,7 @@ 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_compile_definitions(gpu PRIVATE -DLAMMPS_${LAMMPS_SIZES})
target_sources(lammps PRIVATE ${GPU_SOURCES})
target_include_directories(lammps PRIVATE ${GPU_SOURCES_DIR})

View File

@ -57,8 +57,8 @@ if(DOWNLOAD_KOKKOS)
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS}")
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}")
include(ExternalProject)
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/4.5.01.tar.gz" CACHE STRING "URL for KOKKOS tarball")
set(KOKKOS_MD5 "4d832aa0284169d9e3fbae3165286bc6" CACHE STRING "MD5 checksum of KOKKOS tarball")
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/4.6.02.tar.gz" CACHE STRING "URL for KOKKOS tarball")
set(KOKKOS_MD5 "14c02fac07bfcec48a1654f88ddee9c6" CACHE STRING "MD5 checksum of KOKKOS tarball")
mark_as_advanced(KOKKOS_URL)
mark_as_advanced(KOKKOS_MD5)
GetFallbackURL(KOKKOS_URL KOKKOS_FALLBACK)
@ -83,7 +83,7 @@ if(DOWNLOAD_KOKKOS)
add_dependencies(LAMMPS::KOKKOSCORE kokkos_build)
add_dependencies(LAMMPS::KOKKOSCONTAINERS kokkos_build)
elseif(EXTERNAL_KOKKOS)
find_package(Kokkos 4.5.01 REQUIRED CONFIG)
find_package(Kokkos 4.6.02 REQUIRED CONFIG)
target_link_libraries(lammps PRIVATE Kokkos::kokkos)
else()
set(LAMMPS_LIB_KOKKOS_SRC_DIR ${LAMMPS_LIB_SOURCE_DIR}/kokkos)

View File

@ -7,3 +7,23 @@ if(NOT PKG_MANYBODY)
list(REMOVE_ITEM LAMMPS_SOURCES ${LAMMPS_SOURCE_DIR}/MC/fix_sgcmc.cpp)
set_property(TARGET lammps PROPERTY SOURCES "${LAMMPS_SOURCES}")
endif()
# fix hmc may only be installed if also fix rigid/small from RIGID is installed
if(NOT PKG_RIGID)
get_property(LAMMPS_FIX_HEADERS GLOBAL PROPERTY FIX)
list(REMOVE_ITEM LAMMPS_FIX_HEADERS ${LAMMPS_SOURCE_DIR}/MC/fix_hmc.h)
set_property(GLOBAL PROPERTY FIX "${LAMMPS_FIX_HEADERS}")
get_target_property(LAMMPS_SOURCES lammps SOURCES)
list(REMOVE_ITEM LAMMPS_SOURCES ${LAMMPS_SOURCE_DIR}/MC/fix_hmc.cpp)
set_property(TARGET lammps PROPERTY SOURCES "${LAMMPS_SOURCES}")
endif()
# fix neighbor/swap may only be installed if also the VORONOI package is installed
if(NOT PKG_VORONOI)
get_property(LAMMPS_FIX_HEADERS GLOBAL PROPERTY FIX)
list(REMOVE_ITEM LAMMPS_FIX_HEADERS ${LAMMPS_SOURCE_DIR}/MC/fix_neighbor_swap.h)
set_property(GLOBAL PROPERTY FIX "${LAMMPS_FIX_HEADERS}")
get_target_property(LAMMPS_SOURCES lammps SOURCES)
list(REMOVE_ITEM LAMMPS_SOURCES ${LAMMPS_SOURCE_DIR}/MC/fix_neighbor_swap.cpp)
set_property(TARGET lammps PROPERTY SOURCES "${LAMMPS_SOURCES}")
endif()

View File

@ -24,9 +24,7 @@ if(MLIAP_ENABLE_PYTHON)
if(NOT PKG_PYTHON)
message(FATAL_ERROR "Must enable PYTHON package for including Python support in ML-IAP")
endif()
if(Python_VERSION VERSION_LESS 3.6)
message(FATAL_ERROR "Python support in ML-IAP requires Python 3.6 or later")
endif()
# Python version check is in main CMakeLists.txt file
set(MLIAP_BINARY_DIR ${CMAKE_BINARY_DIR}/cython)
file(GLOB MLIAP_CYTHON_SRC CONFIGURE_DEPENDS ${LAMMPS_SOURCE_DIR}/ML-IAP/*.pyx)

View File

@ -53,7 +53,13 @@ else()
add_library(yaml-cpp::yaml-cpp ALIAS yaml-cpp)
endif()
add_subdirectory(${lib-pace} build-pace)
# fixup yaml-cpp/emitterutils.cpp for GCC 15+ until patch is applied
file(READ ${lib-pace}/yaml-cpp/src/emitterutils.cpp yaml_emitterutils)
string(REPLACE "#include <sstream>" "#include <sstream>\n#include <cinttypes>" yaml_tmp_emitterutils "${yaml_emitterutils}")
string(REPLACE "#include <cinttypes>\n#include <cinttypes>" "#include <cinttypes>" yaml_emitterutils "${yaml_tmp_emitterutils}")
file(WRITE ${lib-pace}/yaml-cpp/src/emitterutils.cpp "${yaml_emitterutils}")
add_subdirectory(${lib-pace} build-pace EXCLUDE_FROM_ALL)
set_target_properties(pace PROPERTIES CXX_EXTENSIONS ON OUTPUT_NAME lammps_pace${LAMMPS_MACHINE})
if(CMAKE_PROJECT_NAME STREQUAL "lammps")

View File

@ -37,7 +37,7 @@ if(DOWNLOAD_QUIP)
endforeach()
# 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}PYTHON=${Python_EXECUTABLE}\nPIP=pip\nEXTRA_LINKOPTS=\n")
set(temp "${temp}HAVE_CP2K=0\nHAVE_VASP=0\nHAVE_TB=0\nHAVE_PRECON=1\nHAVE_LOTF=0\nHAVE_ONIOM=0\n")
set(temp "${temp}HAVE_LOCAL_E_MIX=0\nHAVE_QC=0\nHAVE_GAP=1\nHAVE_DESCRIPTORS_NONCOMMERCIAL=1\n")
set(temp "${temp}HAVE_TURBOGAP=0\nHAVE_QR=1\nHAVE_THIRDPARTY=0\nHAVE_FX=0\nHAVE_SCME=0\nHAVE_MTP=0\n")

View File

@ -40,6 +40,13 @@ mark_as_advanced(PLUMED_URL)
mark_as_advanced(PLUMED_MD5)
GetFallbackURL(PLUMED_URL PLUMED_FALLBACK)
# adjust C++ standard support for self-compiled Plumed2
if(CMAKE_CXX_STANDARD GREATER 11)
set(PLUMED_CXX_STANDARD 14)
else()
set(PLUMED_CXX_STANDARD 11)
endif()
if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND (CMAKE_CROSSCOMPILING))
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
set(CROSS_CONFIGURE mingw64-configure)
@ -55,7 +62,7 @@ if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND (CMAKE_CROSSCOMPILING))
URL_MD5 ${PLUMED_MD5}
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND ${CROSS_CONFIGURE} --disable-shared --disable-bsymbolic
--disable-python --enable-cxx=11
--disable-python --enable-cxx=${PLUMED_CXX_STANDARD}
--enable-modules=-adjmat:+crystallization:-dimred:+drr:+eds:-fisst:+funnel:+logmfd:+manyrestraints:+maze:+opes:+multicolvar:-pamm:-piv:+s2cm:-sasa:-ves
${PLUMED_CONFIG_OMP}
${PLUMED_CONFIG_MPI}
@ -142,7 +149,7 @@ else()
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR>
${CONFIGURE_REQUEST_PIC}
--enable-modules=all
--enable-cxx=11
--enable-cxx=${PLUMED_CXX_STANDARD}
--disable-python
${PLUMED_CONFIG_MPI}
${PLUMED_CONFIG_OMP}

View File

@ -1,6 +1,6 @@
if(NOT Python_INTERPRETER)
# backward compatibility with CMake before 3.12 and older LAMMPS documentation
# backward compatibility with older LAMMPS documentation
if(PYTHON_EXECUTABLE)
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
endif()

View File

@ -14,27 +14,16 @@ endif()
option(DOWNLOAD_SCAFACOS "Download ScaFaCoS library instead of using an already installed one" ${DOWNLOAD_SCAFACOS_DEFAULT})
if(DOWNLOAD_SCAFACOS)
message(STATUS "ScaFaCoS download requested - we will build our own")
set(SCAFACOS_URL "https://github.com/scafacos/scafacos/releases/download/v1.0.1/scafacos-1.0.1.tar.gz" CACHE STRING "URL for SCAFACOS tarball")
set(SCAFACOS_MD5 "bd46d74e3296bd8a444d731bb10c1738" CACHE STRING "MD5 checksum of SCAFACOS tarball")
set(SCAFACOS_URL "https://github.com/scafacos/scafacos/releases/download/v1.0.4/scafacos-1.0.4.tar.gz" CACHE STRING "URL for SCAFACOS tarball")
set(SCAFACOS_MD5 "23867540ec32e63ce71d6ecc105278d2" CACHE STRING "MD5 checksum of SCAFACOS tarball")
mark_as_advanced(SCAFACOS_URL)
mark_as_advanced(SCAFACOS_MD5)
GetFallbackURL(SCAFACOS_URL SCAFACOS_FALLBACK)
# version 1.0.1 needs a patch to compile and linke cleanly with GCC 10 and later.
file(DOWNLOAD ${LAMMPS_THIRDPARTY_URL}/scafacos-1.0.1-fix.diff ${CMAKE_CURRENT_BINARY_DIR}/scafacos-1.0.1.fix.diff
EXPECTED_HASH MD5=4baa1333bb28fcce102d505e1992d032)
find_program(HAVE_PATCH patch)
if(NOT HAVE_PATCH)
message(FATAL_ERROR "The 'patch' program is required to build the ScaFaCoS library")
endif()
include(ExternalProject)
ExternalProject_Add(scafacos_build
URL ${SCAFACOS_URL} ${SCAFACOS_FALLBACK}
URL_MD5 ${SCAFACOS_MD5}
PATCH_COMMAND patch -p1 < ${CMAKE_CURRENT_BINARY_DIR}/scafacos-1.0.1.fix.diff
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR> --disable-doc
--enable-fcs-solvers=fmm,p2nfft,direct,ewald,p3m
--with-internal-fftw --with-internal-pfft

View File

@ -21,11 +21,11 @@ if(ENABLE_TESTING)
# also only verified with Fedora Linux > 30 and Ubuntu 18.04 or 22.04+(Ubuntu 20.04 fails)
if((CMAKE_SYSTEM_NAME STREQUAL "Linux")
AND ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")))
if(((CMAKE_LINUX_DISTRO STREQUAL "Ubuntu") AND
((CMAKE_DISTRO_VERSION VERSION_LESS_EQUAL 18.04) OR (CMAKE_DISTRO_VERSION VERSION_GREATER_EQUAL 22.04)))
if(((CMAKE_LINUX_DISTRO STREQUAL "Ubuntu") AND (CMAKE_DISTRO_VERSION VERSION_GREATER_EQUAL 22.04))
OR ((CMAKE_LINUX_DISTRO STREQUAL "Fedora") AND (CMAKE_DISTRO_VERSION VERSION_GREATER 30)))
include(CheckCXXCompilerFlag)
set(CMAKE_CUSTOM_LINKER_DEFAULT default)
check_cxx_compiler_flag(--ld-path=${CMAKE_LINKER} HAVE_LD_PATH_FLAG)
check_cxx_compiler_flag(-fuse-ld=mold HAVE_MOLD_LINKER_FLAG)
check_cxx_compiler_flag(-fuse-ld=lld HAVE_LLD_LINKER_FLAG)
check_cxx_compiler_flag(-fuse-ld=gold HAVE_GOLD_LINKER_FLAG)
@ -50,6 +50,17 @@ if(ENABLE_TESTING)
if(NOT "${CMAKE_CUSTOM_LINKER}" STREQUAL "default")
target_link_options(lammps PUBLIC -fuse-ld=${CMAKE_CUSTOM_LINKER})
endif()
if(HAVE_LD_PATH_FLAG)
if("${CMAKE_CUSTOM_LINKER}" STREQUAL "mold")
target_link_options(lammps PUBLIC --ld-path=${HAVE_MOLD_LINKER_BIN})
elseif("${CMAKE_CUSTOM_LINKER}" STREQUAL "lld")
target_link_options(lammps PUBLIC --ld-path=${HAVE_LLD_LINKER_BIN})
elseif("${CMAKE_CUSTOM_LINKER}" STREQUAL "gold")
target_link_options(lammps PUBLIC --ld-path=${HAVE_GOLD_LINKER_BIN})
elseif("${CMAKE_CUSTOM_LINKER}" STREQUAL "bfd")
target_link_options(lammps PUBLIC --ld-path=${HAVE_BFD_LINKER_BIN})
endif()
endif()
endif()
endif()

View File

@ -6,6 +6,10 @@ if(BUILD_TOOLS)
add_executable(stl_bin2txt ${LAMMPS_TOOLS_DIR}/stl_bin2txt.cpp)
install(TARGETS stl_bin2txt DESTINATION ${CMAKE_INSTALL_BINDIR})
add_executable(reformat-json ${LAMMPS_TOOLS_DIR}/json/reformat-json.cpp)
target_include_directories(reformat-json PRIVATE ${LAMMPS_SOURCE_DIR})
install(TARGETS reformat-json DESTINATION ${CMAKE_INSTALL_BINDIR})
include(CheckGeneratorSupport)
if(CMAKE_GENERATOR_SUPPORT_FORTRAN)
include(CheckLanguage)

View File

@ -7,6 +7,11 @@ export LC_ALL=C
BASEDIR="$(dirname "$0")"
EXENAME="$(basename "$0")"
# save old settings (for restoring them later)
OLDPATH="${PATH}"
OLDLDLIB="${LD_LIBRARY_PATH}"
# prepend path to find our custom executables
PATH="${BASEDIR}/bin:${PATH}"
# append to LD_LIBRARY_PATH to prefer local (newer) libs
@ -15,6 +20,8 @@ LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${BASEDIR}/lib"
# set some environment variables for LAMMPS etc.
LAMMPS_POTENTIALS="${BASEDIR}/share/lammps/potentials"
MSI2LMP_LIBRARY="${BASEDIR}/share/lammps/frc_files"
export LD_LIBRARY_PATH LAMMPS_POTENTIALS MSI2LMP_LIBRARY PATH
# export everything
export LD_LIBRARY_PATH LAMMPS_POTENTIALS MSI2LMP_LIBRARY PATH OLDPATH OLDLDLIB
exec "${BASEDIR}/bin/${EXENAME}" "$@"

View File

@ -33,6 +33,14 @@
#
#---------------------------------------------
# restore previously saved environment variables, if available
if [ -n "${OLDPATH}" ]
then
PATH="${OLDPATH}"
LD_LIBRARY_PATH="${OLDLDLIB}"
export PATH LD_LIBRARY_PATH
fi
NEW_LIBRARY_PATH="/usr/local/lib64"
for s in $(echo $LD_LIBRARY_PATH | sed -e 's/:/ /g')
do \

View File

@ -4,6 +4,7 @@
set(ALL_PACKAGES
ADIOS
AMOEBA
APIP
ASPHERE
ATC
AWPMD

View File

@ -6,6 +6,7 @@
set(ALL_PACKAGES
ADIOS
AMOEBA
APIP
ASPHERE
ATC
AWPMD

View File

@ -19,12 +19,19 @@ set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
set(MPI_CXX "hipcc" CACHE STRING "" FORCE)
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
set(MPI_C "hipcc" CACHE STRING "" FORCE)
set(MPI_C_COMPILER "mpicc" CACHE STRING "" FORCE)
# change as needed. This is for Fedora Linux 41 and 42
set(_libomp_root "/usr/lib/clang/18")
# we need to explicitly specify the include dir, since hipcc will
# compile each file twice and doesn't find omp.h the second time
unset(HAVE_OMP_H_INCLUDE CACHE)
set(OpenMP_C "hipcc" CACHE STRING "" FORCE)
set(OpenMP_C_FLAGS "-fopenmp" CACHE STRING "" FORCE)
set(OpenMP_C_FLAGS "-fopenmp=libomp -I${_libomp_root}/include" CACHE STRING "" FORCE)
set(OpenMP_C_LIB_NAMES "omp" CACHE STRING "" FORCE)
set(OpenMP_CXX "hipcc" CACHE STRING "" FORCE)
set(OpenMP_CXX_FLAGS "-fopenmp" CACHE STRING "" FORCE)
set(OpenMP_CXX_FLAGS "-fopenmp=libomp -I${_libomp_root}/include" CACHE STRING "" FORCE)
set(OpenMP_CXX_LIB_NAMES "omp" CACHE STRING "" FORCE)
set(OpenMP_omp_LIBRARY "libomp.so" CACHE PATH "" FORCE)

View File

@ -1,10 +1,8 @@
# preset that enables KOKKOS and selects CUDA compilation with OpenMP
# enabled as well. This preselects CC 5.0 as default GPU arch, since
# that is compatible with all higher CC, but not the default CC 3.5
# enabled as well. The GPU architecture *must* match your hardware (If not manually set, Kokkos will try to autodetect it).
set(PKG_KOKKOS ON CACHE BOOL "" FORCE)
set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "" FORCE)
set(Kokkos_ENABLE_CUDA 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

@ -1,22 +1,21 @@
# preset that enables KOKKOS and selects HIP compilation with OpenMP
# enabled as well. Also sets some performance related compiler flags.
# preset that enables KOKKOS and selects HIP compilation withOUT OpenMP.
# Kokkos OpenMP is not compatible with the second pass of hipcc.
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_OPENMP OFF CACHE BOOL "" FORCE)
set(Kokkos_ENABLE_CUDA OFF CACHE BOOL "" FORCE)
set(Kokkos_ENABLE_HIP ON CACHE BOOL "" FORCE)
set(Kokkos_ARCH_VEGA90A on CACHE BOOL "" FORCE)
set(Kokkos_ENABLE_HIP_MULTIPLE_KERNEL_INSTANTIATIONS ON CACHE BOOL "" FORCE)
set(BUILD_OMP ON CACHE BOOL "" FORCE)
set(CMAKE_CXX_COMPILER hipcc CACHE STRING "" FORCE)
set(CMAKE_TUNE_FLAGS "-munsafe-fp-atomics" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -munsafe-fp-atomics" CACHE STRING "" FORCE)
# If KSPACE is also enabled, use CUFFT for FFTs
# If KSPACE is also enabled, use HIPFFT for FFTs
set(FFT_KOKKOS "HIPFFT" CACHE STRING "" FORCE)
# hide deprecation warnings temporarily for stable release
set(Kokkos_ENABLE_DEPRECATION_WARNINGS OFF CACHE BOOL "" FORCE)
#set(Kokkos_ENABLE_DEPRECATION_WARNINGS OFF CACHE BOOL "" FORCE)
# these flags are needed to build with Cray MPICH on OLCF Crusher
#-D CMAKE_CXX_FLAGS="-I/${MPICH_DIR}/include"

View File

@ -21,9 +21,10 @@ set(CMAKE_C_COMPILER icx CACHE STRING "" FORCE)
set(CMAKE_Fortran_COMPILER "" CACHE STRING "" FORCE)
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
set(CMAKE_CXX_STANDARD 17 CACHE STRING "" FORCE)
# Silence everything
set(CMAKE_CXX_FLAGS "-w" CACHE STRING "" FORCE)
# set(_intel_sycl_flags " -w -fsycl -flink-huge-device-code -fsycl-targets=spir64_gen "
set(_intel_sycl_flags " -w -fsycl -fsycl-device-code-split=per_kernel -fsycl-targets=spir64_gen ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_intel_sycl_flags}" CACHE STRING "" FORCE)
#set(CMAKE_EXE_LINKER_FLAGS "-fsycl -flink-huge-device-code -fsycl-targets=spir64_gen " CACHE STRING "" FORCE)
#set(CMAKE_TUNE_FLAGS "-O3 -fsycl -fsycl-device-code-split=per_kernel -fsycl-targets=spir64_gen" CACHE STRING "" FORCE)
set(CMAKE_EXE_LINKER_FLAGS "-fsycl -flink-huge-device-code " CACHE STRING "" FORCE)
set(CMAKE_TUNE_FLAGS "-O3 -fsycl -fsycl-device-code-split=per_kernel " CACHE STRING "" FORCE)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsycl -flink-huge-device-code " CACHE STRING "" FORCE)

View File

@ -14,5 +14,7 @@ set(Kokkos_ENABLE_DEPRECATION_WARNINGS OFF 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)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Xsycl-target-frontend -O3 " CACHE STRING "" FORCE)
set(_intel_sycl_flags "-fgpu-inline-threshold=100000 -Xsycl-target-frontend -O3 -Xsycl-target-frontend -ffp-contract=on -Wno-unknown-cuda-version")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_intel_sycl_flags}" CACHE STRING "" FORCE)

View File

@ -91,7 +91,7 @@ endif()
set(DOWNLOAD_VORO ON CACHE BOOL "" FORCE)
set(DOWNLOAD_EIGEN3 ON CACHE BOOL "" FORCE)
set(LAMMPS_MEMALIGN "0" CACHE STRING "" FORCE)
set(CMAKE_TUNE_FLAGS "-Wno-missing-include-dirs" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-missing-include-dirs" CACHE STRING "" FORCE)
set(CMAKE_EXE_LINKER_FLAGS "-Wl,--enable-stdcall-fixup,--as-needed,-lssp" CACHE STRING "" FORCE)
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--enable-stdcall-fixup,--as-needed,-lssp" CACHE STRING "" FORCE)
set(BUILD_TOOLS ON CACHE BOOL "" FORCE)

View File

@ -3,6 +3,7 @@
set(PACKAGES_WITH_LIB
ADIOS
APIP
ATC
AWPMD
COMPRESS

View File

@ -5,4 +5,4 @@ set(CMAKE_C_COMPILER "icx" CACHE STRING "" FORCE)
set(CMAKE_Fortran_COMPILER "ifx" CACHE STRING "" FORCE)
set(INTEL_LRT_MODE "C++11" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)
set(CMAKE_TUNE_FLAGS -Wno-unused-command-line-argument)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-command-line-argument" CACHE STRING "" FORCE)

View File

@ -17,9 +17,11 @@ MATHJAXTAG = 3.2.2
PYTHON = $(word 3,$(shell type python3))
DOXYGEN = $(word 3,$(shell type doxygen))
PANDOC = $(word 3,$(shell type pandoc))
HAS_PYTHON3 = NO
HAS_DOXYGEN = NO
HAS_PDFLATEX = NO
HAS_PANDOC = NO
ifeq ($(shell type python3 >/dev/null 2>&1; echo $$?), 0)
HAS_PYTHON3 = YES
@ -35,6 +37,10 @@ HAS_PDFLATEX = YES
endif
endif
ifeq ($(shell type pandoc >/dev/null 2>&1; echo $$?), 0)
HAS_PANDOC = YES
endif
# override settings for PIP commands
# PIP_OPTIONS = --cert /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt --proxy http://proxy.mydomain.org
@ -45,8 +51,9 @@ SPHINXEXTRA = -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocess
# 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 html pdf spelling anchor_check style_check char_check role_check xmlgen fasthtml
.PHONY: help clean-all clean clean-spelling epub mobi html pdf spelling anchor_check style_check char_check role_check xmlgen fasthtml fasthtml-init
FASTHTMLFILES = $(patsubst $(RSTDIR)/%.rst,fasthtml/%.html,$(wildcard $(RSTDIR)/*rst))
# ------------------------------------------
help:
@ -92,8 +99,6 @@ html: xmlgen globbed-tocs $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJ
@(\
. $(VENV)/bin/activate ; env PYTHONWARNINGS= PYTHONDONTWRITEBYTECODE=1 \
sphinx-build -E $(SPHINXEXTRA) -b html -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\
touch $(RSTDIR)/Fortran.rst ; env PYTHONWARNINGS= PYTHONDONTWRITEBYTECODE=1 \
sphinx-build $(SPHINXEXTRA) -b html -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\
ln -sf Manual.html html/index.html;\
rm -f $(BUILDDIR)/doxygen/xml/run.stamp;\
echo "############################################" ; env PYTHONWARNINGS= PYTHONDONTWRITEBYTECODE=1 \
@ -105,6 +110,8 @@ html: xmlgen globbed-tocs $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJ
env LC_ALL=C grep -n ':\(ref\|doc\):[^`]' $(RSTDIR)/*.rst ;\
env LC_ALL=C grep -n '\(ref\|doc\)`[^`]' $(RSTDIR)/*.rst ;\
$(PYTHON) $(BUILDDIR)/utils/check-styles.py -s ../src -d src ;\
env LC_ALL=C grep -n -E '^ *\.\. [a-z0-9]+:(\s+.*|)$$' \
$(RSTDIR)/*.rst ../src/*.{cpp,h} ../src/*/*.{cpp,h} ;\
echo "############################################" ;\
deactivate ;\
)
@ -116,25 +123,23 @@ html: xmlgen globbed-tocs $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJ
@rm -rf html/PDF/.[sg]*
@echo "Build finished. The HTML pages are in doc/html."
fasthtml: xmlgen globbed-tocs $(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= PYTHONDONTWRITEBYTECODE=1 \
sphinx-build $(SPHINXEXTRA) -b html -c $(SPHINXCONFIG) -d $(BUILDDIR)/fasthtml/doctrees $(RSTDIR) fasthtml ;\
touch $(RSTDIR)/Fortran.rst ; env PYTHONWARNINGS= PYTHONDONTWRITEBYTECODE=1 \
sphinx-build $(SPHINXEXTRA) -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]*
fasthtml: fasthtml-init $(FASTHTMLFILES)
@echo "Fast HTML build finished. The HTML pages are in doc/fasthtml."
fasthtml-init:
@mkdir -p fasthtml/JPG
@cp src/JPG/*.* fasthtml/JPG
@cp $(RSTDIR)/accel_styles.rst $(RSTDIR)/lepton_expression.rst fasthtml/
@cp $(BUILDDIR)/utils/pandoc.css fasthtml/
fasthtml/%.html: $(RSTDIR)/%.rst
@if [ "$(HAS_PANDOC)" == "NO" ] ; then echo "Make 'fasthtml' requires the 'pandoc' software" 1>&2; exit 1; fi
@mkdir -p fasthtml
@echo converting $< to $@
@sed -e 's/\\AA/\\mathring{\\mathrm{A}}/g' $< > fasthtml/$*.temp.rst
@pandoc -s --mathml --css="pandoc.css" --template=$(BUILDDIR)/utils/pandoc.html --metadata title="$@" -o $@ fasthtml/$*.temp.rst
@rm -f fasthtml/$*.temp.rst
spelling: xmlgen globbed-tocs $(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
@(\
@ -155,8 +160,6 @@ epub: xmlgen globbed-tocs $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK)
@(\
. $(VENV)/bin/activate ; env PYTHONWARNINGS= PYTHONDONTWRITEBYTECODE=1 \
sphinx-build -E $(SPHINXEXTRA) -b epub -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) epub ;\
touch $(RSTDIR)/Fortran.rst ; env PYTHONWARNINGS= PYTHONDONTWRITEBYTECODE=1 \
sphinx-build $(SPHINXEXTRA) -b epub -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) epub ;\
rm -f $(BUILDDIR)/doxygen/xml/run.stamp;\
deactivate ;\
)
@ -176,8 +179,6 @@ pdf: xmlgen globbed-tocs $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK)
@(\
. $(VENV)/bin/activate ; env PYTHONWARNINGS= PYTHONDONTWRITEBYTECODE=1 \
sphinx-build -E $(SPHINXEXTRA) -b latex -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) latex ;\
touch $(RSTDIR)/Fortran.rst ; env PYTHONWARNINGS= PYTHONDONTWRITEBYTECODE=1 \
sphinx-build $(SPHINXEXTRA) -b latex -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) latex ;\
rm -f $(BUILDDIR)/doxygen/xml/run.stamp;\
echo "############################################" ; env PYTHONWARNINGS= PYTHONDONTWRITEBYTECODE=1 \
rst_anchor_check src/*.rst ;\
@ -188,6 +189,8 @@ pdf: xmlgen globbed-tocs $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK)
env LC_ALL=C grep -n ':\(ref\|doc\):[^`]' $(RSTDIR)/*.rst ;\
env LC_ALL=C grep -n '\(ref\|doc\)`[^`]' $(RSTDIR)/*.rst ;\
$(PYTHON) utils/check-styles.py -s ../src -d src ;\
env LC_ALL=C grep -n -E '^ *\.\. [a-z0-9]+:(\s+.*|)$$' \
$(RSTDIR)/*.rst ../src/*.{cpp,h} ../src/*/*.{cpp,h} ;\
echo "############################################" ;\
deactivate ;\
)
@ -237,6 +240,8 @@ role_check :
@( env LC_ALL=C grep -n ' `[^`]\+<[a-z][^`]\+`[^_]' $(RSTDIR)/*.rst && exit 1 || : )
@( env LC_ALL=C grep -n ':\(ref\|doc\):[^`]' $(RSTDIR)/*.rst && exit 1 || : )
@( env LC_ALL=C grep -n '\(ref\|doc\)`[^`]' $(RSTDIR)/*.rst && exit 1 || : )
@( env LC_ALL=C grep -n -E '^ *\.\. [a-z0-9]+:(\s+.*|)$$' \
$(RSTDIR)/*.rst ../src/*.{cpp,h} ../src/*/*.{cpp,h} && exit 1 || : )
link_check : $(VENV) html
@(\
@ -245,6 +250,15 @@ link_check : $(VENV) html
deactivate ;\
)
upgrade: $(VENV)
@(\
. $(VENV)/bin/activate; \
pip $(PIP_OPTIONS) install --upgrade pip; \
pip $(PIP_OPTIONS) install --upgrade wheel; \
pip $(PIP_OPTIONS) install --upgrade -r $(BUILDDIR)/utils/requirements.txt; \
deactivate;\
)
xmlgen : doxygen/xml/index.xml
doxygen/Doxyfile: doxygen/Doxyfile.in

View File

@ -22,12 +22,12 @@ doxygen-warn.log logfile with warnings from running doxygen
and:
github-development-workflow.md notes on the LAMMPS development workflow
include-file-conventions.md notes on LAMMPS' include file conventions
documentation_conventions.md notes on writing documentation for LAMMPS
If you downloaded a LAMMPS tarball from www.lammps.org, then the html
folder and the PDF manual should be included. If you downloaded LAMMPS
from GitHub then you either need to build them.
using GitHub then you either need to build them yourself or read the
online version at https://docs.lammps.org/
You can build the HTML and PDF files yourself, by typing "make html"
or by "make pdf", respectively. This requires various tools and files.
@ -39,10 +39,10 @@ environment and local folders.
Installing prerequisites for the documentation build
To run the HTML documention build toolchain, python 3.x, doxygen, git,
and the venv python module have to be installed if not already available.
Also internet access is initially required to download external files
and tools.
To run the HTML documention build toolchain, python 3.8 or later,
doxygen 1.8.10 or later, git, and the venv python module have to be
installed if not already available. Also internet access is initially
required to download external files and tools.
Building the PDF format manual requires in addition a compatible LaTeX
installation with support for PDFLaTeX and several add-on LaTeX packages
@ -52,16 +52,24 @@ installed. This includes:
- babel
- capt-of
- cmap
- dvipng
- ellipse
- fncychap
- fontawesom
- framed
- geometry
- gyre
- hyperref
- hypcap
- needspace
- pict2e
- times
- tabulary
- titlesec
- upquote
- wrapfig
- xindy
Also the latexmk script is required to run PDFLaTeX and related tools.
the required number of times to have self-consistent output and include
updated bibliography and indices.

View File

@ -5,13 +5,13 @@ digraph releases {
github -> develop [label="Merge commits"];
{
rank = "same";
work [shape="none" label="Development branches:"]
work [shape="none" label="Development branches:" fontname="bold"]
develop [label="'develop' branch" height=0.75];
maintenance [label="'maintenance' branch" height=0.75];
};
{
rank = "same";
upload [shape="none" label="Release branches:"]
upload [shape="none" label="Release branches:" fontname="bold"]
release [label="'release' branch" height=0.75];
stable [label="'stable' branch" height=0.75];
};
@ -22,7 +22,7 @@ digraph releases {
maintenance -> stable [label="Updates to stable release"];
{
rank = "same";
tag [shape="none" label="Applied tags:"];
tag [shape="none" label="Applied tags:" fontname="bold"];
patchtag [shape="box" label="patch_<date>"];
stabletag [shape="box" label="stable_<date>"];
updatetag [shape="box" label="stable_<date>_update<num>"];

View File

@ -1,7 +1,7 @@
.TH LAMMPS "1" "4 February 2025" "2025-02-04"
.TH LAMMPS "1" "12 June 2025" "2025-06-12"
.SH NAME
.B LAMMPS
\- Molecular Dynamics Simulator. Version 4 February 2025
\- Molecular Dynamics Simulator. Version 12 June 2025
.SH SYNOPSIS
.B lmp

View File

@ -17,6 +17,7 @@ section of the manual.
.. toctree::
:maxdepth: 1
Build_prerequisites
Build_cmake
Build_make
Build_link

View File

@ -212,11 +212,7 @@ LAMMPS.
You can tell CMake to look for a specific compiler with setting
CMake variables (listed below) during configuration. For a few
common choices, there are also presets in the ``cmake/presets``
folder. For convenience, there is a ``CMAKE_TUNE_FLAGS`` variable
that can be set to apply global compiler options (applied to
compilation only), to be used for adding compiler or host specific
optimization flags in addition to the "flags" variables listed
below. You may also specify the corresponding ``CMAKE_*_FLAGS``
folder. You may also specify the corresponding ``CMAKE_*_FLAGS``
variables individually, if you want to experiment with alternate
optimization flags. You should specify all 3 compilers, so that
the (few) LAMMPS source files written in C or Fortran are built
@ -266,10 +262,6 @@ LAMMPS.
``-C ../cmake/presets/pgi.cmake`` will switch the compiler to the PGI compilers,
and ``-C ../cmake/presets/nvhpc.cmake`` will switch to the NVHPC compilers.
Furthermore, you can set ``CMAKE_TUNE_FLAGS`` to specifically add
compiler flags to tune for optimal performance on given hosts.
This variable is empty by default.
.. note::
When the cmake command completes, it prints a summary to the

View File

@ -52,9 +52,9 @@ software or for people that want to modify or extend LAMMPS.
compilers can be configured and built concurrently from the same
source tree.
- Simplified packaging of LAMMPS for Linux distributions, environment
modules, or automated build tools like `Homebrew <https://brew.sh/>`_.
- Integration of automated unit and regression testing (the LAMMPS side
of this is still under active development).
modules, or automated build tools like `Spack <https://spack.io>`_
or `Homebrew <https://brew.sh/>`_.
- Integration of automated unit and regression testing.
.. _cmake_build:
@ -119,6 +119,13 @@ configured) and additional files like LAMMPS API headers, manpages,
potential and force field files. The location of the installation tree
defaults to ``${HOME}/.local``.
.. note::
If you have set `-D CMAKE_INSTALL_PREFIX` to install LAMMPS into a
system location on a Linux machine , you may also have to run (as
root) the `ldconfig` program to update the cache file for fast lookup
of system shared libraries.
.. _cmake_options:
Configuration and build options

View File

@ -28,28 +28,6 @@ variable VERBOSE set to 1:
----------
.. _clang-tidy:
Enable static code analysis with clang-tidy (CMake only)
--------------------------------------------------------
The `clang-tidy tool <https://clang.llvm.org/extra/clang-tidy/>`_ is a
static code analysis tool to diagnose (and potentially fix) typical
programming errors or coding style violations. It has a modular framework
of tests that can be adjusted to help identifying problems before they
become bugs and also assist in modernizing large code bases (like LAMMPS).
It can be enabled for all C++ code with the following CMake flag
.. code-block:: bash
-D ENABLE_CLANG_TIDY=value # value = no (default) or yes
With this flag enabled all source files will be processed twice, first to
be compiled and then to be analyzed. Please note that the analysis can be
significantly more time-consuming than the compilation itself.
----------
.. _iwyu_processing:
Report missing and unneeded '#include' statements (CMake only)
@ -523,7 +501,7 @@ to do this to install it via pip:
.. code-block:: bash
pip install git+https://github.com/gcovr/gcovr.git
python3 -m pip install gcovr
After post-processing with ``gen_coverage_html`` the results are in
a folder ``coverage_html`` and can be viewed with a web browser.

View File

@ -35,6 +35,7 @@ This is the list of packages that may require additional steps.
:columns: 6
* :ref:`ADIOS <adios>`
* :ref:`APIP <apip>`
* :ref:`ATC <atc>`
* :ref:`AWPMD <awpmd>`
* :ref:`COLVARS <colvar>`
@ -255,11 +256,10 @@ Traditional make
Before building LAMMPS, you must build the GPU library in ``lib/gpu``\ .
You can do this manually if you prefer; follow the instructions in
``lib/gpu/README``. Note that the GPU library uses MPI calls, so you must
use the same MPI library (or the STUBS library) settings as the main
LAMMPS code. This also applies to the ``-DLAMMPS_BIGBIG``\ ,
``-DLAMMPS_SMALLBIG``\ , or ``-DLAMMPS_SMALLSMALL`` settings in whichever
Makefile you use.
``lib/gpu/README``. Note that the GPU library uses MPI calls, so you
must use the same MPI library (or the STUBS library) settings as the
main LAMMPS code. This also applies to the ``-DLAMMPS_BIGBIG`` or
``-DLAMMPS_SMALLBIG`` settings in whichever Makefile you use.
You can also build the library in one step from the ``lammps/src`` dir,
using a command like these, which simply invokes the ``lib/gpu/Install.py``
@ -612,6 +612,12 @@ They must be specified in uppercase.
* - ZEN3
- HOST
- AMD Zen3 architecture
* - ZEN4
- HOST
- AMD Zen4 architecture
* - ZEN5
- HOST
- AMD Zen5 architecture
* - RISCV_SG2042
- HOST
- SG2042 (RISC-V) CPUs
@ -666,6 +672,12 @@ They must be specified in uppercase.
* - HOPPER90
- GPU
- NVIDIA Hopper generation CC 9.0
* - BLACKWELL100
- GPU
- NVIDIA Blackwell generation CC 10.0
* - BLACKWELL120
- GPU
- NVIDIA Blackwell generation CC 12.0
* - AMD_GFX906
- GPU
- AMD GPU MI50/60
@ -714,8 +726,11 @@ They must be specified in uppercase.
* - INTEL_PVC
- GPU
- Intel GPU Ponte Vecchio
* - INTEL_DG2
- GPU
- Intel GPU DG2
This list was last updated for version 4.5.1 of the Kokkos library.
This list was last updated for version 4.6.2 of the Kokkos library.
.. tabs::
@ -1139,11 +1154,10 @@ POEMS package
PYTHON package
---------------------------
Building with the PYTHON package requires you have a the Python development
headers and library available on your system, which needs to be a Python 2.7
version or a Python 3.x version. Since support for Python 2.x has ended,
using Python 3.x is strongly recommended. See ``lib/python/README`` for
additional details.
Building with the PYTHON package requires you have a the Python
development headers and library available on your system, which
needs to be Python version 3.6 or later. See ``lib/python/README``
for additional details.
.. tabs::
@ -1159,7 +1173,7 @@ additional details.
set the Python_EXECUTABLE variable to specify which Python
interpreter should be used. Note note that you will also need to
have the development headers installed for this version,
e.g. python2-devel.
e.g. python3-devel.
.. tab:: Traditional make
@ -1271,6 +1285,34 @@ systems.
----------
.. _apip:
APIP package
-----------------------------
The APIP package depends on the library of the
:ref:`ML-PACE <ml-pace>` package.
The code for the library can be found
at: `https://github.com/ICAMS/lammps-user-pace/ <https://github.com/ICAMS/lammps-user-pace/>`_
.. tabs::
.. tab:: CMake build
No additional settings are needed besides ``-D PKG_APIP=yes``
and ``-D PKG_ML-PACE=yes``.
One can use a local version of the ML-PACE library instead of
automatically downloading the library as described :ref:`here <ml-pace>`.
.. tab:: Traditional make
You need to install the ML-PACE package *first* and follow
the instructions :ref:`here <ml-pace>` before installing
the APIP package.
----------
.. _atc:
ATC package

View File

@ -30,9 +30,9 @@ additional tools to be available and functioning.
* A Bourne shell compatible "Unix" shell program (frequently this is ``bash``)
* A few shell utilities: ``ls``, ``mv``, ``ln``, ``rm``, ``grep``, ``sed``, ``tr``, ``cat``, ``touch``, ``diff``, ``dirname``
* Python (optional, required for ``make lib-<pkg>`` in the ``src``
folder). Python scripts are currently tested with python 2.7 and
3.6 to 3.11. The procedure for :doc:`building the documentation
<Build_manual>` *requires* Python 3.5 or later.
folder). Python scripts are currently tested with 3.6 to 3.11.
The procedure for :doc:`building the documentation <Build_manual>`
*requires* Python 3.8 or later.
Getting started
^^^^^^^^^^^^^^^

View File

@ -57,6 +57,8 @@ Python interpreter version 3.8 or later, the ``doxygen`` tools and
internet access to download additional files and tools are required.
This download is usually only required once or after the documentation
folder is returned to a pristine state with ``make clean-all``.
You can also upgrade those packages to their latest available versions
with ``make upgrade``.
For the documentation build a python virtual environment is set up in
the folder ``doc/docenv`` and various python packages are installed into
@ -78,11 +80,11 @@ folder. The following ``make`` commands are available:
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 fasthtml # generate approximate HTML in fasthtml dir using pandoc
make clean # remove intermediate RST files created by HTML build
make clean-all # remove entire build folder and any cached data
make upgrade # upgrade the python packages in the virtual environment
make anchor_check # check for duplicate anchor labels
make style_check # check for complete and consistent style lists
@ -116,9 +118,9 @@ environment variable.
Prerequisites for HTML
----------------------
To run the HTML documentation build toolchain, python 3, git, doxygen,
and virtualenv have to be installed locally. Here are instructions for
common setups:
To run the HTML documentation build toolchain, Python 3.8 or later, git,
doxygen, and virtualenv have to be installed locally. Here are
instructions for common setups:
.. tabs::
@ -128,13 +130,7 @@ common setups:
sudo apt-get install git doxygen
.. tab:: RHEL or CentOS (Version 7.x)
.. code-block:: bash
sudo yum install git doxygen
.. tab:: Fedora or RHEL/CentOS (8.x or later)
.. tab:: Fedora or RHEL/AlmaLinux/RockyLinux (8.x or later)
.. code-block:: bash
@ -154,7 +150,36 @@ Prerequisites for PDF
In addition to the tools needed for building the HTML format manual,
a working LaTeX installation with support for PDFLaTeX and a selection
of LaTeX styles/packages are required. To run the PDFLaTeX translation
of LaTeX styles/packages are required. Apart from LaTeX packages that
are usually installed by default, the following packages are required:
.. table_from_list::
:columns: 11
- amsmath
- anysize
- babel
- capt-of
- cmap
- dvipng
- ellipse
- fncychap
- fontawesome
- framed
- geometry
- gyre
- hyperref
- hypcap
- needspace
- pict2e
- times
- tabulary
- titlesec
- upquote
- wrapfig
- xindy
To run the PDFLaTeX translation
the ``latexmk`` script needs to be installed as well.
Prerequisites for ePUB and MOBI
@ -182,12 +207,42 @@ documentation is required and either existing files in the ``src``
folder need to be updated or new files added. These files are written in
`reStructuredText <rst_>`_ markup for translation with the Sphinx tool.
Testing your contribution
^^^^^^^^^^^^^^^^^^^^^^^^^
Before contributing any documentation, please check that both the HTML
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.
and the PDF format documentation can translate without errors and that
there are no spelling issues. This is done with ``make html``, ``make pdf``,
and ``make spelling``, respectively.
Fast and approximate translation to HTML
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Translating the full manual to HTML or PDF can take a long time. Thus
there is a fast and approximate way to translate the reStructuredText to
HTML as a quick-n-dirty way of checking your manual page.
This translation uses `Pandoc <https://pandoc.org>`_ instead of Sphinx
and thus all special Sphinx features (cross-references, advanced tables,
embedding of Python docstrings or doxygen documentation, and so on) will
not render correctly. Most embedded math should render correctly. This
is a **very fast** way to check the syntax and layout of a documentation
file translated to HTML while writing or updating it.
To translate **all** manual pages, you can type ``make fasthtml`` at the
command line. The translated HTML files are then in the ``fasthtml``
folder. All subsequent ``make fasthtml`` commands will only translate
``.rst`` files that have been changed. The ``make fasthtml`` command
can be parallelized with make using the `-j` flag. You can also
directly translate only individual pages: e.g. to translate only the
``doc/src/pair_lj.rst`` page type ``make fasthtml/pair_lj.html``
After writing the documentation is completed, you will still need
to verify with ``make html`` and ``make pdf`` that it translates
correctly in both formats.
Tests for consistency, completeness, and other known issues
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Please also check the output to the console for any warnings or problems. There will
be multiple tests run automatically:

View File

@ -0,0 +1,22 @@
Prerequisites
-------------
Which software you need to compile and use LAMMPS strongly depends on
which :doc:`features and settings <Build_settings>` and which
:doc:`optional packages <Packages_list>` you are trying to include.
Common to all is that you need a C++ and C compiler, where the C++
compiler has to support at least the C++11 standard (note that some
compilers require command-line flag to activate C++11 support).
Furthermore, if you are building with CMake, you need at least CMake
version 3.20 and a compatible build tool (make or ninja-build); if you
are building the the legacy GNU make based build system you need GNU
make (other make variants are not going to work since the build system
uses features unique to GNU make) and a Unix-like build environment with
a Bourne shell, and shell tools like "sed", "grep", "touch", "test",
"tr", "cp", "mv", "rm", "ln", "diff" and so on. Parts of LAMMPS
interface with or use Python version 3.6 or later.
The LAMMPS developers aim to keep LAMMPS very portable and usable -
at least in parts - on most operating systems commonly used for
running MD simulations. Please see the :doc:`section on portablility
<Intro_portability>` for more details.

View File

@ -8,29 +8,30 @@ Optional build settings
LAMMPS can be built with several optional settings. Each subsection
explains how to do this for building both with CMake and make.
* `C++11 standard compliance`_ when building all of LAMMPS
* `C++11 and C++17 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 JPEG, PNG, and movie files`_ via the :doc:`dump image <dump_image>` or :doc:`dump movie <dump_image>` commands
* `Support for downloading files`_
* `Support for downloading files from the input`_
* `Prevent download of large potential files`_
* `Memory allocation alignment`_
* `Workaround for long long integers`_
* `Exception handling when using LAMMPS as a library`_ to capture errors
* `Trigger selected floating-point exceptions`_
----------
.. _cxx11:
C++11 standard compliance
-------------------------
C++11 and C++17 standard compliance
-----------------------------------
A C++11 standard compatible compiler is a requirement for compiling LAMMPS.
LAMMPS version 3 March 2020 is the last version compatible with the previous
C++98 standard for the core code and most packages. Most currently used
C++ compilers are compatible with C++11, but some older ones may need extra
flags to enable C++11 compliance. Example for GNU c++ 4.8.x:
A C++11 standard compatible compiler is currently the minimum
requirement for compiling LAMMPS. LAMMPS version 3 March 2020 is the
last version compatible with the previous C++98 standard for the core
code and most packages. Most currently used C++ compilers are compatible
with C++11, but some older ones may need extra flags to enable C++11
compliance. Example for GNU c++ 4.8.x:
.. code-block:: make
@ -40,6 +41,17 @@ Individual packages may require compliance with a later C++ standard
like C++14 or C++17. These requirements will be documented with the
:doc:`individual packages <Packages_details>`.
.. versionchanged:: 4Feb2025
Starting with LAMMPS version 4 February 2025 we are starting a
transition to require the C++17 standard. Most current compilers are
compatible and if the C++17 standard is available by default, LAMMPS
will enable C++17 and will compile normally. If the chosen compiler is
not compatible with C++17, but only supports C++11, then the define
-DLAMMPS_CXX11 is required to fall back to compiling with a C++11
compiler. After the next stable release of LAMMPS in summer 2025, the
LAMMPS development branch and future releases will require C++17.
----------
.. _fft:
@ -303,7 +315,7 @@ large counters can become before "rolling over". The default setting of
.. code-block:: bash
-D LAMMPS_SIZES=value # smallbig (default) or bigbig or smallsmall
-D LAMMPS_SIZES=value # smallbig (default) or bigbig
If the variable is not set explicitly, "smallbig" is used.
@ -314,7 +326,7 @@ large counters can become before "rolling over". The default setting of
.. code-block:: make
LMP_INC = -DLAMMPS_SMALLBIG # or -DLAMMPS_BIGBIG or -DLAMMPS_SMALLSMALL
LMP_INC = -DLAMMPS_SMALLBIG # or -DLAMMPS_BIGBIG
The default setting is ``-DLAMMPS_SMALLBIG`` if nothing is specified
@ -323,34 +335,27 @@ LAMMPS system size restrictions
.. list-table::
:header-rows: 1
:widths: 18 27 28 27
:widths: 27 36 37
:align: center
* -
- smallbig
- bigbig
- smallsmall
* - Total atom count
- :math:`2^{63}` atoms (= :math:`9.223 \cdot 10^{18}`)
- :math:`2^{63}` atoms (= :math:`9.223 \cdot 10^{18}`)
- :math:`2^{31}` atoms (= :math:`2.147 \cdot 10^9`)
* - Total timesteps
- :math:`2^{63}` steps (= :math:`9.223 \cdot 10^{18}`)
- :math:`2^{63}` steps (= :math:`9.223 \cdot 10^{18}`)
- :math:`2^{31}` steps (= :math:`2.147 \cdot 10^9`)
* - Atom ID values
- :math:`1 \le i \le 2^{31} (= 2.147 \cdot 10^9)`
- :math:`1 \le i \le 2^{63} (= 9.223 \cdot 10^{18})`
- :math:`1 \le i \le 2^{31} (= 2.147 \cdot 10^9)`
* - Image flag values
- :math:`-512 \le i \le 511`
- :math:`- 1\,048\,576 \le i \le 1\,048\,575`
- :math:`-512 \le i \le 511`
The "bigbig" setting increases the size of image flags and atom IDs over
"smallbig" and the "smallsmall" setting is only needed if your machine
does not support 64-bit integers or incurs performance penalties when
using them.
the default "smallbig" setting.
These are limits for the core of the LAMMPS code, specific features or
some styles may impose additional limits. The :ref:`ATC
@ -504,8 +509,8 @@ during a run.
.. _libcurl:
Support for downloading files
-----------------------------
Support for downloading files from the input
--------------------------------------------
.. versionadded:: 29Aug2024
@ -548,6 +553,25 @@ LAMMPS is compiled accordingly which needs the following settings:
----------
.. _download_pot:
Prevent download of large potential files
-----------------------------------------
.. versionadded:: 8Feb2023
LAMMPS bundles a selection of potential files in the ``potentials``
folder as examples of how those kinds of potential files look like and
for use with the provided input examples in the ``examples`` tree. To
keep the size of the distributed LAMMPS source package small, very large
potential files (> 5 MBytes) are not bundled, but only downloaded on
demand when the :doc:`corresponding package <Packages_list>` is
installed. This automatic download can be prevented when :doc:`building
LAMMPS with CMake <Build_cmake>` by adding the setting `-D
DOWNLOAD_POTENTIALS=off` when configuring.
----------
.. _align:
Memory allocation alignment
@ -634,40 +658,3 @@ code has to be set up to *catch* exceptions thrown from within LAMMPS.
throw an exception and thus other MPI ranks may get stuck waiting for
messages from the ones with errors.
----------
.. _trap_fpe:
Trigger selected floating-point exceptions
------------------------------------------
Many kinds of CPUs have the capability to detect when a calculation
results in an invalid math operation, like a division by zero or calling
the square root with a negative argument. The default behavior on
most operating systems is to continue and have values for ``NaN`` (= not
a number) or ``Inf`` (= infinity). This allows software to detect and
recover from such conditions. This behavior can be changed, however,
often through use of compiler flags. On Linux systems (or more general
on systems using the GNU C library), these so-called floating-point traps
can also be selectively enabled through library calls. LAMMPS supports
that by setting the ``-DLAMMPS_TRAP_FPE`` pre-processor define. As it is
done in the ``main()`` function, this applies only to the standalone
executable, not the library.
.. tabs::
.. tab:: CMake build
.. code-block:: bash
-D CMAKE_TUNE_FLAGS=-DLAMMPS_TRAP_FPE
.. tab:: Traditional make
.. code-block:: make
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
function argument or other invalid floating point operation is encountered.

View File

@ -140,6 +140,7 @@ additional letter in parenthesis: k = KOKKOS.
* :doc:`plugin <plugin>`
* :doc:`prd <prd>`
* :doc:`python <python>`
* :doc:`region2vmd <region2vmd>`
* :doc:`tad <tad>`
* :doc:`temper <temper>`
* :doc:`temper/grem <temper_grem>`

View File

@ -23,6 +23,7 @@ OPT.
*
* :doc:`bpm/rotational <bond_bpm_rotational>`
* :doc:`bpm/spring <bond_bpm_spring>`
* :doc:`bpm/spring/plastic <bond_bpm_spring_plastic>`
* :doc:`class2 (ko) <bond_class2>`
* :doc:`fene (iko) <bond_fene>`
* :doc:`fene/expand (o) <bond_fene_expand>`
@ -127,7 +128,7 @@ OPT.
* :doc:`harmonic (iko) <dihedral_harmonic>`
* :doc:`helix (o) <dihedral_helix>`
* :doc:`lepton (o) <dihedral_lepton>`
* :doc:`multi/harmonic (o) <dihedral_multi_harmonic>`
* :doc:`multi/harmonic (ko) <dihedral_multi_harmonic>`
* :doc:`nharmonic (o) <dihedral_nharmonic>`
* :doc:`opls (iko) <dihedral_opls>`
* :doc:`quadratic (o) <dihedral_quadratic>`

View File

@ -178,6 +178,7 @@ KOKKOS, o = OPENMP, t = OPT.
* :doc:`ti <compute_ti>`
* :doc:`torque/chunk <compute_torque_chunk>`
* :doc:`vacf <compute_vacf>`
* :doc:`vacf/chunk <compute_vacf_chunk>`
* :doc:`vcm/chunk <compute_vcm_chunk>`
* :doc:`viscosity/cos <compute_viscosity_cos>`
* :doc:`voronoi/atom <compute_voronoi_atom>`

View File

@ -19,6 +19,7 @@ An alphabetic list of all LAMMPS :doc:`dump <dump>` commands.
* :doc:`custom/gz <dump>`
* :doc:`custom/zstd <dump>`
* :doc:`dcd <dump>`
* :doc:`extxyz <dump>`
* :doc:`grid <dump>`
* :doc:`grid/vtk <dump>`
* :doc:`h5md <dump_h5md>`

View File

@ -22,6 +22,7 @@ OPT.
* :doc:`append/atoms <fix_append_atoms>`
* :doc:`atc <fix_atc>`
* :doc:`atom/swap <fix_atom_swap>`
* :doc:`atom_weight/apip <fix_atom_weight_apip>`
* :doc:`ave/atom <fix_ave_atom>`
* :doc:`ave/chunk <fix_ave_chunk>`
* :doc:`ave/correlate <fix_ave_correlate>`
@ -29,6 +30,7 @@ OPT.
* :doc:`ave/grid <fix_ave_grid>`
* :doc:`ave/histo <fix_ave_histo>`
* :doc:`ave/histo/weight <fix_ave_histo>`
* :doc:`ave/moments <fix_ave_moments>`
* :doc:`ave/time <fix_ave_time>`
* :doc:`aveforce <fix_aveforce>`
* :doc:`balance <fix_balance>`
@ -64,7 +66,7 @@ OPT.
* :doc:`electrode/conp (i) <fix_electrode>`
* :doc:`electrode/conq (i) <fix_electrode>`
* :doc:`electrode/thermo (i) <fix_electrode>`
* :doc:`electron/stopping <fix_electron_stopping>`
* :doc:`electron/stopping (k) <fix_electron_stopping>`
* :doc:`electron/stopping/fit <fix_electron_stopping>`
* :doc:`enforce2d (k) <fix_enforce2d>`
* :doc:`eos/cv <fix_eos_cv>`
@ -77,6 +79,7 @@ OPT.
* :doc:`flow/gauss <fix_flow_gauss>`
* :doc:`freeze (k) <fix_freeze>`
* :doc:`gcmc <fix_gcmc>`
* :doc:`gjf <fix_gjf>`
* :doc:`gld <fix_gld>`
* :doc:`gle <fix_gle>`
* :doc:`gravity (ko) <fix_gravity>`
@ -84,11 +87,14 @@ OPT.
* :doc:`halt <fix_halt>`
* :doc:`heat <fix_heat>`
* :doc:`heat/flow <fix_heat_flow>`
* :doc:`hmc <fix_hmc>`
* :doc:`hyper/global <fix_hyper_global>`
* :doc:`hyper/local <fix_hyper_local>`
* :doc:`imd <fix_imd>`
* :doc:`indent <fix_indent>`
* :doc:`ipi <fix_ipi>`
* :doc:`lambda/apip <fix_lambda_apip>`
* :doc:`lambda_thermostat/apip <fix_lambda_thermostat_apip>`
* :doc:`langevin (k) <fix_langevin>`
* :doc:`langevin/drude <fix_langevin_drude>`
* :doc:`langevin/eff <fix_langevin_eff>`
@ -111,6 +117,7 @@ OPT.
* :doc:`mvv/tdpd <fix_mvv_dpd>`
* :doc:`neb <fix_neb>`
* :doc:`neb/spin <fix_neb_spin>`
* :doc:`neighbor/swap <fix_neighbor_swap>`
* :doc:`nonaffine/displacement <fix_nonaffine_displacement>`
* :doc:`nph (ko) <fix_nh>`
* :doc:`nph/asphere (o) <fix_nph_asphere>`
@ -162,6 +169,8 @@ OPT.
* :doc:`phonon <fix_phonon>`
* :doc:`pimd/langevin <fix_pimd>`
* :doc:`pimd/nvt <fix_pimd>`
* :doc:`pimd/langevin/bosonic <fix_pimd>`
* :doc:`pimd/nvt/bosonic <fix_pimd>`
* :doc:`planeforce <fix_planeforce>`
* :doc:`plumed <fix_plumed>`
* :doc:`poems <fix_poems>`
@ -184,6 +193,7 @@ OPT.
* :doc:`qeq/fire <fix_qeq>`
* :doc:`qeq/point <fix_qeq>`
* :doc:`qeq/reaxff (ko) <fix_qeq_reaxff>`
* :doc:`qeq/rel/reaxff <fix_qeq_rel_reaxff>`
* :doc:`qeq/shielded <fix_qeq>`
* :doc:`qeq/slater <fix_qeq>`
* :doc:`qmmm <fix_qmmm>`
@ -213,6 +223,7 @@ OPT.
* :doc:`rigid/small (o) <fix_rigid>`
* :doc:`rx (k) <fix_rx>`
* :doc:`saed/vtk <fix_saed_vtk>`
* :doc:`set <fix_set>`
* :doc:`setforce (k) <fix_setforce>`
* :doc:`setforce/spin <fix_setforce>`
* :doc:`sgcmc <fix_sgcmc>`

View File

@ -31,3 +31,5 @@ OPT.
* :doc:`pppm/dielectric <kspace_style>`
* :doc:`pppm/electrode (i) <kspace_style>`
* :doc:`scafacos <kspace_style>`
* :doc:`zero <kspace_style>`

View File

@ -96,7 +96,9 @@ OPT.
* :doc:`eam/cd <pair_eam>`
* :doc:`eam/cd/old <pair_eam>`
* :doc:`eam/fs (gikot) <pair_eam>`
* :doc:`eam/fs/apip <pair_eam_apip>`
* :doc:`eam/he <pair_eam>`
* :doc:`eam/apip <pair_eam_apip>`
* :doc:`edip (o) <pair_edip>`
* :doc:`edip/multi <pair_edip>`
* :doc:`edpd (g) <pair_mesodpd>`
@ -124,6 +126,9 @@ OPT.
* :doc:`ilp/tmd (t) <pair_ilp_tmd>`
* :doc:`kolmogorov/crespi/full <pair_kolmogorov_crespi_full>`
* :doc:`kolmogorov/crespi/z <pair_kolmogorov_crespi_z>`
* :doc:`lambda/input/apip <pair_lambda_input_apip>`
* :doc:`lambda/input/csp/apip <pair_lambda_input_apip>`
* :doc:`lambda/zone/apip <pair_lambda_zone_apip>`
* :doc:`lcbop <pair_lcbop>`
* :doc:`lebedeva/z <pair_lebedeva_z>`
* :doc:`lennard/mdf <pair_mdf>`
@ -179,6 +184,7 @@ OPT.
* :doc:`lj/long/dipole/long <pair_dipole>`
* :doc:`lj/long/tip4p/long (o) <pair_lj_long>`
* :doc:`lj/mdf <pair_mdf>`
* :doc:`lj/pirani (o) <pair_lj_pirani>`
* :doc:`lj/relres (o) <pair_lj_relres>`
* :doc:`lj/spica (gko) <pair_spica>`
* :doc:`lj/spica/coul/long (gko) <pair_spica>`
@ -236,6 +242,9 @@ OPT.
* :doc:`oxrna2/coaxstk <pair_oxrna2>`
* :doc:`pace (k) <pair_pace>`
* :doc:`pace/extrapolation (k) <pair_pace>`
* :doc:`pace/apip <pair_pace_apip>`
* :doc:`pace/fast/apip <pair_pace_apip>`
* :doc:`pace/precise/apip <pair_pace_apip>`
* :doc:`pedone (o) <pair_pedone>`
* :doc:`pod (k) <pair_pod>`
* :doc:`peri/eps <pair_peri>`

View File

@ -12,10 +12,21 @@ stop LAMMPS and print a suitable error message in most cases, when a
style/command is used that has been removed or will replace the command
with the direct alternative (if available) and print a warning.
GJF formulation in fix langevin
-------------------------------
.. deprecated:: 12Jun2025
The *gjf* keyword in fix langevin is deprecated and will be removed
soon. The GJF functionality has been moved to its own fix style
:doc:`fix gjf <fix_gjf>` and it is strongly recommended to use that
fix instead.
LAMMPS shell
------------
.. versionchanged:: 29Aug2024
.. deprecated:: 29Aug2024
The LAMMPS shell has been removed from the LAMMPS distribution. Users
are encouraged to use the :ref:`LAMMPS-GUI <lammps_gui>` tool instead.
@ -23,7 +34,7 @@ are encouraged to use the :ref:`LAMMPS-GUI <lammps_gui>` tool instead.
i-PI tool
---------
.. versionchanged:: 27Jun2024
.. deprecated:: 27Jun2024
The i-PI tool has been removed from the LAMMPS distribution. Instead,
instructions to install i-PI from PyPI via pip are provided.
@ -170,6 +181,18 @@ performance characteristics on NVIDIA GPUs. Both, the KOKKOS
and the :ref:`GPU package <PKG-GPU>` are maintained
and allow running LAMMPS with GPU acceleration.
Compute atom/molecule
---------------------
.. deprecated:: 11 Dec2015
The atom/molecule command has been removed from LAMMPS since it was superseded
by the more general and extensible "chunk infrastructure". Here the system is
partitioned in one of many possible ways - including using molecule IDs -
through the :doc:`compute chunk/atom <compute_chunk_atom>` command and then
summing is done using :doc:`compute reduce/chunk <compute_reduce_chunk>` Please
refer to the :doc:`chunk HOWTO <Howto_chunk>` section for an overview.
Fix ave/spatial and fix ave/spatial/sphere
------------------------------------------

View File

@ -24,4 +24,5 @@ of time and requests from the LAMMPS user community.
Classes
Developer_platform
Developer_utils
Developer_internal
Developer_grid

View File

@ -0,0 +1,120 @@
Internal Styles
---------------
LAMMPS has a number of styles that are not meant to be used in an input
file and thus are not documented in the :doc:`LAMMPS command
documentation <Commands_all>`. The differentiation between user
commands and internal commands is through the case of the command name:
user commands and styles are all lower case, internal styles are all
upper case. Internal styles are not called from the input file, but
their classes are instantiated by other styles. Often they are
created by other styles to store internal data or to perform actions
regularly at specific steps of the simulation.
The paragraphs below document some of those styles that have general
utility and may be used to avoid redundant implementation.
DEPRECATED Styles
^^^^^^^^^^^^^^^^^
The styles called DEPRECATED (e.g. pair, bond, fix, compute, region, etc.)
have the purpose to inform users that a specific style has been removed
or renamed. This is achieved by creating an alias for the deprecated
style to the corresponding class. For example, the fix style DEPRECATED
is aliased to fix style ave/spatial and fix style ave/spatial/sphere with
the following code:
.. code-block:: c++
FixStyle(DEPRECATED,FixDeprecated);
FixStyle(ave/spatial,FixDeprecated);
FixStyle(ave/spatial/sphere,FixDeprecated);
The individual class will then determine based on the style name
what action to perform:
- inform that the style has been removed and what style replaces it, if any, and then error out
- inform that the style has been renamed and then either execute the replacement or error out
- inform that the style is no longer required, and it is thus ignored and continue
There is also a section in the user's guide for :doc:`removed commands
and packages <Commands_removed>` with additional explanations.
Internal fix styles
^^^^^^^^^^^^^^^^^^^
These provide an implementation of features that would otherwise have
been replicated across multiple styles. The used fix ID is generally
derived from the compute or fix ID creating the fix with some string
appended. When needed, the fix can be looked up with
``Modify::get_fix_by_id()``, which returns a pointer to the fix
instance. The data managed by the fix can be accessed just as for other
fixes that can be used in input files.
fix DUMMY
"""""""""
Most fix classes cannot be instantiated before the simulation box has
been created since they access data that is only available then.
However, in some cases it is required that a fix must be at or close to
the top of the list of all fixes. In those cases an instance of the
DUMMY fix style may be created by calling ``Modify::add_fix()`` and then
later replaced by the intended fix through calling ``Modify::replace_fix()``.
fix STORE/ATOM
""""""""""""""
Fix STORE/ATOM can be used as persistent storage of per-atom data.
**Syntax**
.. code-block:: LAMMPS
fix ID group-ID STORE/ATOM N1 N2 gflag rflag
* ID, group-ID are documented in :doc:`fix <fix>` command
* STORE/ATOM = style name of this fix command
* N1 = 1, N2 = 0 : data is per-atom vector = single value per atom
* N1 > 1, N2 = 0 : data is per-atom array = N1 values per atom
* N1 > 0, N2 > 0 : data is per-atom tensor = N1xN2 values per atom
* gflag = 1 communicate per-atom values with ghost atoms, 0 do not update ghost atom data
* rflag = 1 store per-atom value in restart file, 0 do not store data in restart
Similar functionality is also available through using custom per-atom
properties with :doc:`fix property/atom <fix_property_atom>`. The
choice between the two fixes should be based on whether the user should
be able to access this per-atom data: if yes, then fix property/atom is
preferred, otherwise fix STORE/ATOM.
fix STORE/GLOBAL
""""""""""""""""
Fix STORE/GLOBAL can be used as persistent storage of global data with support for restarts
**Syntax**
.. code-block:: LAMMPS
fix ID group-ID STORE/GLOBAL N1 N2
* ID, group-ID are documented in :doc:`fix <fix>` command
* STORE/GLOBAL = style name of this fix command
* N1 >=1 : number of global items to store
* N2 = 1 : data is global vector of length N1
* N2 > 1 : data is global N1xN2 array
fix STORE/LOCAL
"""""""""""""""
Fix STORE/LOCAL can be used as persistent storage for local data
**Syntax**
.. code-block:: LAMMPS
fix ID group-ID STORE/LOCAL Nreset Nvalues
* ID, group-ID are documented in :doc:`fix <fix>` command
* STORE/LOCAL = style name of this fix command
* Nreset = frequency at which local data is available
* Nvalues = number of values per local item, that is the number of columns

View File

@ -7,7 +7,7 @@ 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.
.. contents::
.. contents:: Available notes
----

View File

@ -68,24 +68,25 @@ 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, kspace, or command styles
- Pointer to factory function for pair, bond, angle, dihedral, improper, kspace, command, or minimize styles
* - creator.v2
- Pointer to factory function for compute, fix, or region styles
- Pointer to factory function for compute, fix, region, or run styles
* - handle
- Pointer to the open DSO file handle
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.
(i.e. pair, bond, angle, dihedral, or improper styles), command styles,
or minimize 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,
region, or run 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
^^^^^^^^^^^^^^^^^^
@ -247,8 +248,8 @@ DSO handle. The registration function is called with a pointer to the address
of this struct and the pointer of the LAMMPS class. The registration function
will then add the factory function of the plugin style to the respective
style map under the provided name. It will also make a copy of the struct
in a list of all loaded plugins and update the reference counter for loaded
plugins from this specific DSO file.
in a global list of all loaded plugins and update the reference counter for
loaded plugins from this specific DSO file.
The pair style itself (i.e. the PairMorse2 class in this example) can be
written just like any other pair style that is included in LAMMPS. For
@ -263,6 +264,21 @@ 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.
.. versionchanged:: 12Jun2025
When using the :doc:`clear <clear>` command, plugins are not unloaded
but restored to their respective style maps. This also applies when
multiple LAMMPS instances are created and deleted through the library
interface. The :doc:`plugin load <plugin>` load command may be issued
again, but for existing plugins they will be skipped. To replace
plugins they must be explicitly unloaded with :doc:`plugin unload
<plugin>`. When multiple LAMMPS instances are created concurrently, any
loaded plugins will be added to the global list of plugins, but are not
immediately available to any LAMMPS instance that was created before
loading the plugin. To "import" such plugins, the :doc:`plugin restore
<plugin>` may be used. Plugins are only removed when they are explicitly
unloaded or the LAMMPS interface is "finalized".
Compiling plugins
^^^^^^^^^^^^^^^^^

View File

@ -29,6 +29,8 @@ Available topics in mostly chronological order are:
- `Rename of fix STORE/PERATOM to fix STORE/ATOM and change of arguments`_
- `Use Output::get_dump_by_id() instead of Output::find_dump()`_
- `Refactored grid communication using Grid3d/Grid2d classes instead of GridComm`_
- `FLERR as first argument to minimum image functions in Domain class`_
- `Use utils::logmesg() instead of error->warning()`_
----
@ -610,3 +612,71 @@ KSpace solvers which use distributed FFT grids:
- ``src/KSPACE/pppm.cpp``
This change is **required** or else the code will not compile.
FLERR as first argument to minimum image functions in Domain class
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. versionchanged:: 12Jun2025
The ``Domain::minimum_image()`` and ``Domain::minimum_image_big()``
functions were changed to take the ``FLERR`` macros as first argument.
This way the error message indicates *where* the function was called
instead of pointing to the implementation of the function. Example:
Old:
.. code-block:: c++
double delx1 = x[i1][0] - x[i2][0];
double dely1 = x[i1][1] - x[i2][1];
double delz1 = x[i1][2] - x[i2][2];
domain->minimum_image(delx1, dely1, delz1);
double r1 = sqrt(delx1 * delx1 + dely1 * dely1 + delz1 * delz1);
double delx2 = x[i3][0] - x[i2][0];
double dely2 = x[i3][1] - x[i2][1];
double delz2 = x[i3][2] - x[i2][2];
domain->minimum_image_big(delx2, dely2, delz2);
double r2 = sqrt(delx2 * delx2 + dely2 * dely2 + delz2 * delz2);
New:
.. code-block:: c++
double delx1 = x[i1][0] - x[i2][0];
double dely1 = x[i1][1] - x[i2][1];
double delz1 = x[i1][2] - x[i2][2];
domain->minimum_image(FLERR, delx1, dely1, delz1);
double r1 = sqrt(delx1 * delx1 + dely1 * dely1 + delz1 * delz1);
double delx2 = x[i3][0] - x[i2][0];
double dely2 = x[i3][1] - x[i2][1];
double delz2 = x[i3][2] - x[i2][2];
domain->minimum_image_big(FLERR, delx2, dely2, delz2);
double r2 = sqrt(delx2 * delx2 + dely2 * dely2 + delz2 * delz2);
This change is **required** or else the code will not compile.
Use utils::logmesg() instead of error->warning()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. versionchanged:: TBD
The ``Error::message()`` method has been removed since its functionality
has been superseded by the :cpp:func:`utils::logmesg` function.
Old:
.. code-block:: c++
if (comm->me == 0) {
error->message(FLERR, "INFO: About to read data file: {}", filename);
}
New:
.. code-block:: c++
if (comm->me == 0) utils::logmesg(lmp, "INFO: About to read data file: {}\n", filename);
This change is **required** or else the code will not compile.

View File

@ -1,124 +1,149 @@
Common problems
===============
Common issues that are often regarded as bugs
=============================================
If two LAMMPS runs do not produce the exact same answer on different
machines or different numbers of processors, this is typically not a
bug. In theory you should get identical answers on any number of
processors and on any machine. In practice, numerical round-off can
cause slight differences and eventual divergence of molecular dynamics
phase space trajectories within a few 100s or few 1000s of timesteps.
However, the statistical properties of the two runs (e.g. average
energy or temperature) should still be the same.
The list below are some random notes on behavior of LAMMPS that is
sometimes unexpected or even considered a bug. Most of the time, these
are just issues of understanding how LAMMPS is implemented and
parallelized. Please also have a look at the :doc:`Error details
discussions page <Errors_details>` that contains recommendations for
tracking down issues and explanations for error messages that may
sometimes be confusing or need additional explanations.
If the :doc:`velocity <velocity>` command is used to set initial atom
velocities, a particular atom can be assigned a different velocity
when the problem is run on a different number of processors or on
different machines. If this happens, the phase space trajectories of
the two simulations will rapidly diverge. See the discussion of the
*loop* option in the :doc:`velocity <velocity>` command for details and
options that avoid this issue.
- A LAMMPS simulation typically has two stages, 1) issuing commands
and 2) run or minimize. Most LAMMPS errors are detected in stage 1),
others at the beginning of stage 2), and finally others like a bond
stretching too far may or lost atoms or bonds may not occur until the
middle of a run.
Similarly, the :doc:`create_atoms <create_atoms>` command generates a
lattice of atoms. For the same physical system, the ordering and
numbering of atoms by atom ID may be different depending on the number
of processors.
- If two LAMMPS runs do not produce the exact same answer on different
machines or different numbers of processors, this is typically not a
bug. In theory you should get identical answers on any number of
processors and on any machine. In practice, numerical round-off can
cause slight differences and eventual divergence of molecular dynamics
phase space trajectories within a few 100s or few 1000s of timesteps.
This can be triggered by different ordering of atoms due to different
domain decompositions, but also through different CPU architectures,
different operating systems, different compilers or compiler versions,
different compiler optimization levels, different FFT libraries.
However, the statistical properties of the two runs (e.g. average
energy or temperature) should still be the same.
Some commands use random number generators which may be setup to
produce different random number streams on each processor and hence
will produce different effects when run on different numbers of
processors. A commonly-used example is the :doc:`fix langevin <fix_langevin>` command for thermostatting.
- If the :doc:`velocity <velocity>` command is used to set initial atom
velocities, a particular atom can be assigned a different velocity
when the problem is run on a different number of processors or on
different machines. If this happens, the phase space trajectories of
the two simulations will rapidly diverge. See the discussion of the
*loop* option in the :doc:`velocity <velocity>` command for details
and options that avoid this issue.
A LAMMPS simulation typically has two stages, setup and run. Most
LAMMPS errors are detected at setup time; others like a bond
stretching too far may not occur until the middle of a run.
- Similarly, the :doc:`create_atoms <create_atoms>` command generates a
lattice of atoms. For the same physical system, the ordering and
numbering of atoms by atom ID may be different depending on the number
of processors.
LAMMPS tries to flag errors and print informative error messages so
you can fix the problem. For most errors it will also print the last
input script command that it was processing. Of course, LAMMPS cannot
figure out your physics or numerical mistakes, like choosing too big a
timestep, specifying erroneous force field coefficients, or putting 2
atoms on top of each other! If you run into errors that LAMMPS
does not catch that you think it should flag, please send an email to
the `developers <https://www.lammps.org/authors.html>`_ or create an new
topic on the dedicated `MatSci forum section <https://matsci.org/lammps/>`_.
- Some commands use random number generators which may be setup to
produce different random number streams on each processor and hence
will produce different effects when run on different numbers of
processors. A commonly-used example is the :doc:`fix langevin
<fix_langevin>` command for thermostatting.
If you get an error message about an invalid command in your input
script, you can determine what command is causing the problem by
looking in the log.lammps file or using the :doc:`echo command <echo>`
to see it on the screen. If you get an error like "Invalid ...
style", with ... being fix, compute, pair, etc, it means that you
mistyped the style name or that the command is part of an optional
package which was not compiled into your executable. The list of
available styles in your executable can be listed by using
:doc:`the -h command-line switch <Run_options>`. The installation and
compilation of optional packages is explained on the
:doc:`Build packages <Build_package>` doc page.
- LAMMPS tries to flag errors and print informative error messages so
you can fix the problem. For most errors it will also print the last
input script command that it was processing or even point to the
keyword that is causing troubles. Of course, LAMMPS cannot figure out
your physics or numerical mistakes, like choosing too big a timestep,
specifying erroneous force field coefficients, or putting 2 atoms on
top of each other! Also, LAMMPS does not know what you *intend* to
do, but very strictly applies the syntax as described in the
documentation. If you run into errors that LAMMPS does not catch that
you think it should flag, please send an email to the `developers
<https://www.lammps.org/authors.html>`_ or create an new topic on the
dedicated `MatSci forum section <https://matsci.org/lammps/>`_.
For a given command, LAMMPS expects certain arguments in a specified
order. If you mess this up, LAMMPS will often flag the error, but it
may also simply read a bogus argument and assign a value that is
valid, but not what you wanted. E.g. trying to read the string "abc"
as an integer value of 0. Careful reading of the associated doc page
for the command should allow you to fix these problems. In most cases,
where LAMMPS expects to read a number, either integer or floating point,
it performs a stringent test on whether the provided input actually
is an integer or floating-point number, respectively, and reject the
input with an error message (for instance, when an integer is required,
but a floating-point number 1.0 is provided):
- If you get an error message about an invalid command in your input
script, you can determine what command is causing the problem by
looking in the log.lammps file or using the :doc:`echo command <echo>`
to see it on the screen. If you get an error like "Invalid ...
style", with ... being fix, compute, pair, etc, it means that you
mistyped the style name or that the command is part of an optional
package which was not compiled into your executable. The list of
available styles in your executable can be listed by using
:doc:`the -h command-line switch <Run_options>`. The installation and
compilation of optional packages is explained on the :doc:`Build
packages <Build_package>` doc page.
.. parsed-literal::
- For a given command, LAMMPS expects certain arguments in a specified
order. If you mess this up, LAMMPS will often flag the error, but it
may also simply read a bogus argument and assign a value that is
valid, but not what you wanted. E.g. trying to read the string "abc"
as an integer value of 0. Careful reading of the associated doc page
for the command should allow you to fix these problems. In most cases,
where LAMMPS expects to read a number, either integer or floating
point, it performs a stringent test on whether the provided input
actually is an integer or floating-point number, respectively, and
reject the input with an error message (for instance, when an integer
is required, but a floating-point number 1.0 is provided):
.. parsed-literal::
ERROR: Expected integer parameter instead of '1.0' in input script or data file
Some commands allow for using variable references in place of numeric
constants so that the value can be evaluated and may change over the
course of a run. This is typically done with the syntax *v_name* for a
parameter, where name is the name of the variable. On the other hand,
immediate variable expansion with the syntax ${name} is performed while
reading the input and before parsing commands,
- Some commands allow for using variable references in place of numeric
constants so that the value can be evaluated and may change over the
course of a run. This is typically done with the syntax *v_name* for
a parameter, where name is the name of the variable. On the other
hand, immediate variable expansion with the syntax ${name} is
performed while reading the input and before parsing commands,
.. note::
.. note::
Using a variable reference (i.e. *v_name*) is only allowed if
the documentation of the corresponding command explicitly says it is.
Otherwise, you will receive an error message of this kind:
.. parsed-literal::
.. parsed-literal::
ERROR: Expected floating point parameter instead of 'v_name' in input script or data file
Generally, LAMMPS will print a message to the screen and logfile and
exit gracefully when it encounters a fatal error. Sometimes it will
print a WARNING to the screen and logfile and continue on; you can
decide if the WARNING is important or not. A WARNING message that is
generated in the middle of a run is only printed to the screen, not to
the logfile, to avoid cluttering up thermodynamic output. If LAMMPS
crashes or hangs without spitting out an error message first then it
could be a bug (see :doc:`this section <Errors_bugs>`) or one of the following
cases:
- Generally, LAMMPS will print a message to the screen and logfile and
exit gracefully when it encounters a fatal error. When running in
parallel this message may be stuck in an I/O buffer and LAMMPS will be
terminated before that buffer is printed. In that case you can try
adding the ``-nonblock`` or ``-nb`` command-line flag to turn off that
buffering. Please note that this should not be used for production
runs, since turning off buffering usually has a significant negative
impact on performance (even worse than :doc:`thermo_modify flush yes
<thermo_modify>`). Sometimes LAMMPS will print a WARNING to the
screen and logfile and continue on; you can decide if the WARNING is
important or not, but as a general rule do not ignore warnings that
you not understand. A WARNING message that is generated in the middle
of a run is only printed to the screen, not to the logfile, to avoid
cluttering up thermodynamic output. If LAMMPS crashes or hangs
without generating an error message first then it could be a bug
(see :doc:`this section <Errors_bugs>`).
LAMMPS runs in the available memory a processor allows to be
allocated. Most reasonable MD runs are compute limited, not memory
limited, so this should not be a bottleneck on most platforms. Almost
all large memory allocations in the code are done via C-style malloc's
which will generate an error message if you run out of memory.
Smaller chunks of memory are allocated via C++ "new" statements. If
you are unlucky you could run out of memory just when one of these
small requests is made, in which case the code will crash or hang (in
parallel), since LAMMPS does not trap on those errors.
- LAMMPS runs in the available memory a processor allows to be
allocated. Most reasonable MD runs are compute limited, not memory
limited, so this should not be a bottleneck on most platforms. Almost
all large memory allocations in the code are done via C-style malloc's
which will generate an error message if you run out of memory.
Smaller chunks of memory are allocated via C++ "new" statements. If
you are unlucky you could run out of memory just when one of these
small requests is made, in which case the code will crash or hang (in
parallel).
Illegal arithmetic can cause LAMMPS to run slow or crash. This is
typically due to invalid physics and numerics that your simulation is
computing. If you see wild thermodynamic values or NaN values in your
LAMMPS output, something is wrong with your simulation. If you
suspect this is happening, it is a good idea to print out
thermodynamic info frequently (e.g. every timestep) via the
:doc:`thermo <thermo>` so you can monitor what is happening.
Visualizing the atom movement is also a good idea to ensure your model
is behaving as you expect.
- Illegal arithmetic can cause LAMMPS to run slow or crash. This is
typically due to invalid physics and numerics that your simulation is
computing. If you see wild thermodynamic values or NaN values in your
LAMMPS output, something is wrong with your simulation. If you
suspect this is happening, it is a good idea to print out
thermodynamic info frequently (e.g. every timestep) via the
:doc:`thermo <thermo>` so you can monitor what is happening.
Visualizing the atom movement is also a good idea to ensure your model
is behaving as you expect.
In parallel, one way LAMMPS can hang is due to how different MPI
implementations handle buffering of messages. If the code hangs
without an error message, it may be that you need to specify an MPI
setting or two (usually via an environment variable) to enable
buffering or boost the sizes of messages that can be buffered.
- When running in parallel with MPI, one way LAMMPS can hang is because
LAMMPS has come across an error condition, but only on one or a few
MPI processes and not all of them. LAMMPS has two different "stop
with an error message" functions and the correct one has to be called
or else it will hang.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +1,15 @@
Warning messages
================
This is an alphabetic list of the WARNING messages LAMMPS prints out
and the reason why. If the explanation here is not sufficient, the
documentation for the offending command may help. Warning messages
also list the source file and line number where the warning was
generated. For example, a message like this:
This is an alphabetic list of some of the WARNING messages LAMMPS prints
out and the reason why. If the explanation here is not sufficient, the
documentation for the offending command may help. This is a historic
list and no longer updated. Instead the LAMMPS developers are trying
to provide more details right with the error message or link to a
paragraph with :doc:`detailed explanations <Errors_details>`.
Warning messages also list the source file and line number where the
warning was generated. For example, a message like this:
.. parsed-literal::
@ -14,7 +18,7 @@ generated. For example, a message like this:
means that line #187 in the file src/domain.cpp generated the error.
Looking in the source code may help you figure out what went wrong.
Doc page with :doc:`ERROR messages <Errors_messages>`
Please also see the page with :doc:`Error messages <Errors_messages>`
----------
@ -28,16 +32,10 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
cutoff is set too short or the angle has blown apart and an atom is
too far away.
*Angle style in data file differs from currently defined angle style*
Self-explanatory.
*Angles are defined but no angle style is set*
The topology contains angles, but there are no angle forces computed
since there was no angle_style command.
*Atom style in data file differs from currently defined atom style*
Self-explanatory.
*Bond atom missing in box size check*
The second atom needed to compute a particular bond is missing on this
processor. Typically this is because the pairwise cutoff is set too
@ -53,9 +51,6 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
processor. Typically this is because the pairwise cutoff is set too
short or the bond has blown apart and an atom is too far away.
*Bond style in data file differs from currently defined bond style*
Self-explanatory.
*Bonds are defined but no bond style is set*
The topology contains bonds, but there are no bond forces computed
since there was no bond_style command.
@ -68,9 +63,6 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
length, multiplying by the number of bonds in the interaction (e.g. 3
for a dihedral) and adding a small amount of stretch.
*Both groups in compute group/group have a net charge; the Kspace boundary correction to energy will be non-zero*
Self-explanatory.
*Calling write_dump before a full system init.*
The write_dump command is used before the system has been fully
initialized as part of a 'run' or 'minimize' command. Not all dump
@ -86,18 +78,6 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
This means the temperature associated with the rigid bodies may be
incorrect on this timestep.
*Cannot include log terms without 1/r terms; setting flagHI to 1*
Self-explanatory.
*Cannot include log terms without 1/r terms; setting flagHI to 1.*
Self-explanatory.
*Charges are set, but coulombic solver is not used*
Self-explanatory.
*Charges did not converge at step %ld: %lg*
Self-explanatory.
*Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost*
The communication cutoff defaults to the maximum of what is inferred from
pair and bond styles (will be zero, if none are defined) and what is specified
@ -123,9 +103,6 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
is not changed automatically and the warning may be ignored depending
on the specific system being simulated.
*Communication cutoff is too small for SNAP micro load balancing, increased to %lf*
Self-explanatory.
*Compute cna/atom cutoff may be too large to find ghost atom neighbors*
The neighbor cutoff used may not encompass enough ghost atoms
to perform this operation correctly.
@ -158,9 +135,6 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
Conformation of the 4 listed dihedral atoms is extreme; you may want
to check your simulation geometry.
*Dihedral style in data file differs from currently defined dihedral style*
Self-explanatory.
*Dihedrals are defined but no dihedral style is set*
The topology contains dihedrals, but there are no dihedral forces computed
since there was no dihedral_style command.
@ -177,9 +151,6 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
*Estimated error in splitting of dispersion coeffs is %g*
Error is greater than 0.0001 percent.
*Ewald/disp Newton solver failed, using old method to estimate g_ewald*
Self-explanatory. Choosing a different cutoff value may help.
*FENE bond too long*
A FENE bond has stretched dangerously far. It's interaction strength
will be truncated to attempt to prevent the bond from blowing up.
@ -192,9 +163,6 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
A FENE bond has stretched dangerously far. It's interaction strength
will be truncated to attempt to prevent the bond from blowing up.
*Fix halt condition for fix-id %s met on step %ld with value %g*
Self explanatory.
*Fix SRD walls overlap but fix srd overlap not set*
You likely want to set this in your input script.
@ -238,21 +206,12 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
*Fix property/atom mol or charge w/out ghost communication*
A model typically needs these properties defined for ghost atoms.
*Fix qeq CG convergence failed (%g) after %d iterations at %ld step*
Self-explanatory.
*Fix qeq has non-zero lower Taper radius cutoff*
Absolute value must be <= 0.01.
*Fix qeq has very low Taper radius cutoff*
Value should typically be >= 5.0.
*Fix qeq/dynamic tolerance may be too small for damped dynamics*
Self-explanatory.
*Fix qeq/fire tolerance may be too small for damped fires*
Self-explanatory.
*Fix rattle should come after all other integration fixes*
This fix is designed to work after all other integration fixes change
atom positions. Thus it should be the last integration fix specified.
@ -285,9 +244,6 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
The user-specified force accuracy cannot be achieved unless the table
feature is disabled by using 'pair_modify table 0'.
*Geometric mixing assumed for 1/r\^6 coefficients*
Self-explanatory.
*Group for fix_modify temp != fix group*
The fix_modify command is specifying a temperature computation that
computes a temperature on a different group of atoms than the fix
@ -310,46 +266,14 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
Conformation of the 4 listed improper atoms is extreme; you may want
to check your simulation geometry.
*Improper style in data file differs from currently defined improper style*
Self-explanatory.
*Impropers are defined but no improper style is set*
The topology contains impropers, but there are no improper forces computed
since there was no improper_style command.
*Inconsistent image flags*
The image flags for a pair on bonded atoms appear to be inconsistent.
Inconsistent means that when the coordinates of the two atoms are
unwrapped using the image flags, the two atoms are far apart.
Specifically they are further apart than half a periodic box length.
Or they are more than a box length apart in a non-periodic dimension.
This is usually due to the initial data file not having correct image
flags for the two atoms in a bond that straddles a periodic boundary.
They should be different by 1 in that case. This is a warning because
inconsistent image flags will not cause problems for dynamics or most
LAMMPS simulations. However they can cause problems when such atoms
are used with the fix rigid or replicate commands. Note that if you
have an infinite periodic crystal with bonds then it is impossible to
have fully consistent image flags, since some bonds will cross
periodic boundaries and connect two atoms with the same image
flag.
*Increasing communication cutoff for GPU style*
The pair style has increased the communication cutoff to be consistent with
the communication cutoff requirements for this pair style when run on the GPU.
*KIM Model does not provide 'energy'; Potential energy will be zero*
Self-explanatory.
*KIM Model does not provide 'forces'; Forces will be zero*
Self-explanatory.
*KIM Model does not provide 'particleEnergy'; energy per atom will be zero*
Self-explanatory.
*KIM Model does not provide 'particleVirial'; virial per atom will be zero*
Self-explanatory.
*Kspace_modify slab param < 2.0 may cause unphysical behavior*
The kspace_modify slab parameter should be larger to ensure periodic
grids padded with empty space do not overlap.
@ -401,20 +325,10 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
box, or moved further than one processor's subdomain away before
reneighboring.
*MSM mesh too small, increasing to 2 points in each direction*
Self-explanatory.
*Mismatch between velocity and compute groups*
The temperature computation used by the velocity command will not be
on the same group of atoms that velocities are being set for.
*Mixing forced for lj coefficients*
Self-explanatory.
*Molecule attributes do not match system attributes*
An attribute is specified (e.g. diameter, charge) that is
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 pairwise
interactions.
@ -449,9 +363,6 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
*More than one compute damage/atom*
It is not efficient to use compute ke/atom more than once.
*More than one compute dilatation/atom*
Self-explanatory.
*More than one compute erotate/sphere/atom*
It is not efficient to use compute erorate/sphere/atom more than once.
@ -464,24 +375,6 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
*More than one compute orientorder/atom*
It is not efficient to use compute orientorder/atom more than once.
*More than one compute plasticity/atom*
Self-explanatory.
*More than one compute sna/atom*
Self-explanatory.
*More than one compute sna/grid*
Self-explanatory.
*More than one compute sna/grid/local*
Self-explanatory.
*More than one compute snad/atom*
Self-explanatory.
*More than one compute snav/atom*
Self-explanatory.
*More than one fix poems*
It is not efficient to use fix poems more than once.
@ -557,21 +450,12 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
*Pair COMB charge %.10f with force %.10f hit min barrier*
Something is possibly wrong with your model.
*Pair brownian needs newton pair on for momentum conservation*
Self-explanatory.
*Pair dpd needs newton pair on for momentum conservation*
Self-explanatory.
*Pair dsmc: num_of_collisions > number_of_A*
Collision model in DSMC is breaking down.
*Pair dsmc: num_of_collisions > number_of_B*
Collision model in DSMC is breaking down.
*Pair style in data file differs from currently defined pair style*
Self-explanatory.
*Pair style restartinfo set but has no restart support*
This pair style has a bug, where it does not support reading and
writing information to a restart file, but does not set the member
@ -681,9 +565,6 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
cluster specified by the fix shake command is numerically suspect. LAMMPS
will set it to 0.0 and continue.
*Shell command '%s' failed with error '%s'*
Self-explanatory.
*Shell command returned with non-zero status*
This may indicate the shell command did not operate as expected.
@ -694,15 +575,9 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
This will lead to invalid constraint forces in the SHAKE/RATTLE
computation.
*Simulations might be very slow because of large number of structure factors*
Self-explanatory.
*Slab correction not needed for MSM*
Slab correction is intended to be used with Ewald or PPPM and is not needed by MSM.
*Specifying an 'subset' value of '0' is equivalent to no 'subset' keyword*
Self-explanatory.
*System is not charge neutral, net charge = %g*
The total charge on all atoms on the system is not 0.0.
For some KSpace solvers this is only a warning.
@ -734,9 +609,6 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
assumed to also be for all atoms. Thus the pressure printed by thermo
could be inaccurate.
*The fix ave/spatial command has been replaced by the more flexible fix ave/chunk and compute chunk/atom commands -- fix ave/spatial will be removed in the summer of 2015*
Self-explanatory.
*The minimizer does not re-orient dipoles when using fix efield*
This means that only the atom coordinates will be minimized,
not the orientation of the dipoles.
@ -745,9 +617,6 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
More than the maximum # of neighbors was found multiple times. This
was unexpected.
*Too many inner timesteps in fix ttm*
Self-explanatory.
*Too many neighbors in CNA for %d atoms*
More than the maximum # of neighbors was found multiple times. This
was unexpected.
@ -775,24 +644,6 @@ Doc page with :doc:`ERROR messages <Errors_messages>`
The deformation will heat the SRD particles so this can
be dangerous.
*Using kspace solver on system with no charge*
Self-explanatory.
*Using largest cut-off for lj/long/dipole/long long long*
Self-explanatory.
*Using largest cutoff for buck/long/coul/long*
Self-explanatory.
*Using largest cutoff for lj/long/coul/long*
Self-explanatory.
*Using largest cutoff for pair_style lj/long/tip4p/long*
Self-explanatory.
*Using package gpu without any pair style defined*
Self-explanatory.
*Using pair potential shift with pair_modify compute no*
The shift effects will thus not be computed.

View File

@ -54,7 +54,7 @@ Lowercase directories
+-------------+------------------------------------------------------------------+
| body | body particles, 2d system |
+-------------+------------------------------------------------------------------+
| bpm | BPM simulations of pouring elastic grains and plate impact |
| bpm | simulations of solid elastic/plastic deformation and fracture |
+-------------+------------------------------------------------------------------+
| cmap | CMAP 5-body contributions to CHARMM force field |
+-------------+------------------------------------------------------------------+

View File

@ -69,10 +69,11 @@ statement. Internally, it will call either
:cpp:func:`lammps_open_fortran` or :cpp:func:`lammps_open_no_mpi` from
the C library API to create the class instance. All arguments are
optional and :cpp:func:`lammps_mpi_init` will be called automatically
if it is needed. Similarly, a possible call to
:cpp:func:`lammps_mpi_finalize` is integrated into the :f:func:`close`
function and triggered with the optional logical argument set to
``.TRUE.``. Here is a simple example:
if it is needed. Similarly, optional calls to
:cpp:func:`lammps_mpi_finalize`, :cpp:func:`lammps_kokkos_finalize`,
:cpp:func:`lammps_python_finalize`, and :cpp:func:`lammps_plugin_finalize`
are integrated into the :f:func:`close` function and triggered with the
optional logical argument set to ``.TRUE.``. Here is a simple example:
.. code-block:: fortran
@ -521,8 +522,8 @@ Procedures Bound to the :f:type:`lammps` Derived Type
This method will close down the LAMMPS instance through calling
:cpp:func:`lammps_close`. If the *finalize* argument is present and
has a value of ``.TRUE.``, then this subroutine also calls
:cpp:func:`lammps_kokkos_finalize` and
:cpp:func:`lammps_mpi_finalize`.
:cpp:func:`lammps_kokkos_finalize`, :cpp:func:`lammps_mpi_finalize`,
:cpp:func:`lammps_python_finalize`, and :cpp:func:`lammps_plugin_finalize`.
:o finalize: shut down the MPI environment of the LAMMPS
library if ``.TRUE.``.
@ -530,6 +531,8 @@ Procedures Bound to the :f:type:`lammps` Derived Type
:to: :cpp:func:`lammps_close`
:to: :cpp:func:`lammps_mpi_finalize`
:to: :cpp:func:`lammps_kokkos_finalize`
:to: :cpp:func:`lammps_python_finalize`
:to: :cpp:func:`lammps_plugin_finalize`
--------
@ -2096,7 +2099,7 @@ Procedures Bound to the :f:type:`lammps` Derived Type
--------
.. f:subroutine:: create_atoms([id,] type, x, [v,] [image,] [bexpand])
.. f:function:: create_atoms([id,] type, x, [v,] [image,] [bexpand])
This method calls :cpp:func:`lammps_create_atoms` to create additional atoms
from a given list of coordinates and a list of atom types. Additionally,
@ -2125,6 +2128,8 @@ Procedures Bound to the :f:type:`lammps` Derived Type
will be created, not dropped, and the box dimensions will be extended.
Default is ``.FALSE.``
:otype bexpand: logical,optional
:r atoms: number of created atoms
:rtype atoms: integer(c_int)
:to: :cpp:func:`lammps_create_atoms`
.. note::
@ -2149,6 +2154,18 @@ Procedures Bound to the :f:type:`lammps` Derived Type
--------
.. f:subroutine:: create_molecule(id, jsonstr)
Add molecule template from string with JSON data
.. versionadded:: TBD
:p character(len=\*) id: desired molecule-ID
:p character(len=\*) jsonstr: string with JSON data defining the molecule template
:to: :cpp:func:`lammps_create_molecule`
--------
.. f:function:: find_pair_neighlist(style[, exact][, nsub][, reqid])
Find index of a neighbor list requested by a pair style.
@ -2773,8 +2790,7 @@ Procedures Bound to the :f:type:`lammps` Derived Type
END SUBROUTINE external_callback
END INTERFACE
where ``c_bigint`` is ``c_int`` if ``-DLAMMPS_SMALLSMALL`` was used and
``c_int64_t`` otherwise; and ``c_tagint`` is ``c_int64_t`` if
where ``c_bigint`` is ``c_int64_t`` and ``c_tagint`` is ``c_int64_t`` if
``-DLAMMPS_BIGBIG`` was used and ``c_int`` otherwise.
The argument *caller* to :f:subr:`set_fix_external_callback` is unlimited

View File

@ -40,6 +40,7 @@ Settings howto
Howto_walls
Howto_nemd
Howto_dispersion
Howto_bulk2slab
Analysis howto
==============
@ -65,6 +66,7 @@ Force fields howto
:name: force_howto
:maxdepth: 1
Howto_FFgeneral
Howto_bioFF
Howto_amoeba
Howto_tip3p
@ -91,6 +93,7 @@ Packages howto
Howto_manifold
Howto_rheo
Howto_spins
Howto_apip
Tutorials howto
===============

View File

@ -0,0 +1,55 @@
Some general force field considerations
=======================================
A compact summary of the concepts, definitions, and properties of force
fields with explicit bonded interactions (like the ones discussed in
this HowTo) is given in :ref:`(Gissinger) <Typelabel2>`.
A force field has 2 parts: the formulas that define its potential
functions and the coefficients used for a particular system. To assign
parameters it is first required to assign atom types. Those are not
only based on the elements, but also on the chemical environment due to
the atoms bound to them. This often follows the chemical concept of
*functional groups*. Example: a carbon atom bound with a single bond to
a single OH-group (alcohol) would be a different atom type than a carbon
atom bound to a methyl CH3 group (aliphatic carbon). The atom types
usually then determine the non-bonded Lennard-Jones parameters and the
parameters for bonds, angles, dihedrals, and impropers. On top of that,
partial charges have to be applied. Those are usually independent of
the atom types and are determined either for groups of atoms called
residues with some fitting procedure based on quantum mechanical
calculations, or based on some increment system that add or subtract
increments from the partial charge of an atom based on the types of
the neighboring atoms.
Force fields differ in the strategies they employ to determine the
parameters and charge distribution in how generic or specific they are
which in turn has an impact on the accuracy (compare for example
CGenFF to CHARMM and GAFF to Amber). Because of the different
strategies, it is not a good idea to use a mix of parameters from
different force field *families* (like CHARMM, Amber, or GROMOS)
and that extends to the parameters for the solvent, especially
water. The publication describing the parameterization of a force
field will describe which water model to use. Changing the water
model usually leads to overall worse results (even if it may improve
on the water itself).
In addition, one has to consider that *families* of force fields like
CHARMM, Amber, OPLS, or GROMOS have evolved over time and thus provide
different *revisions* of the force field parameters. These often
corresponds to changes in the functional form or the parameterization
strategies. This may also result in changes required for simulation
settings like the preferred cutoff or how Coulomb interactions are
computed (cutoff, smoothed/shifted cutoff, or long-range with Ewald
summation or equivalent). Unless explicitly stated in the publication
describing the force field, the Coulomb interaction cannot be chosen at
will but must match the revision of the force field. That said,
liberties may be taken during the initial equilibration of a system to
speed up the process, but not for production simulations.
----------
.. _Typelabel2:
**(Gissinger)** J. R. Gissinger, I. Nikiforov, Y. Afshar, B. Waters, M. Choi, D. S. Karls, A. Stukowski, W. Im, H. Heinz, A. Kohlmeyer, and E. B. Tadmor, J Phys Chem B, 128, 3282-3297 (2024).

225
doc/src/Howto_apip.rst Normal file
View File

@ -0,0 +1,225 @@
Adaptive-precision interatomic potentials (APIP)
================================================
The :ref:`PKG-APIP <PKG-APIP>` enables use of adaptive-precision potentials
as described in :ref:`(Immel) <Immel2025_1>`.
In the context of this package, precision refers to the accuracy of an interatomic
potential.
Modern machine-learning (ML) potentials translate the accuracy of DFT
simulations into MD simulations, i.e., ML potentials are more accurate
compared to traditional empirical potentials.
However, this accuracy comes at a cost: there is a considerable performance
gap between the evaluation of classical and ML potentials, e.g., the force
calculation of a classical EAM potential is 100-1000 times faster compared
to the ML-based ACE method.
The evaluation time difference results in a conflict between large time and
length scales on the one hand and accuracy on the other.
This conflict is resolved by an APIP model for simulations, in which the highest precision
is required only locally but not globally.
An APIP model uses a precise but
expensive ML potential only for a subset of atoms, while a fast
potential is used for the remaining atoms.
Whether the precise or the fast potential is used is determined
by a continuous switching parameter :math:`\lambda_i` that can be defined for each
atom :math:`i`.
The switching parameter can be adjusted dynamically during a simulation or
kept constant as explained below.
The potential energy :math:`E_i` of an atom :math:`i` described by an
adaptive-precision
interatomic potential is given by :ref:`(Immel) <Immel2025_1>`
.. math::
E_i = \lambda_i E_i^\text{(fast)} + (1-\lambda_i) E_i^\text{(precise)},
whereas :math:`E_i^\text{(fast)}` is the potential energy of atom :math:`i`
according to a fast interatomic potential,
:math:`E_i^\text{(precise)}` is the potential energy according to a precise
interatomic potential and :math:`\lambda_i\in[0,1]` is the
switching parameter that decides how the potential energies are weighted.
Adaptive-precision saves computation time when the computation of the
precise potential is not required for many atoms, i.e., when
:math:`\lambda_i=1` applies for many atoms.
The currently implemented potentials are:
.. list-table::
:header-rows: 1
* - Fast potential
- Precise potential
* - :doc:`ACE <pair_pace_apip>`
- :doc:`ACE <pair_pace_apip>`
* - :doc:`EAM <pair_eam_apip>`
-
In theory, any short-range potential can be used for an adaptive-precision
interatomic potential. How to implement a new (fast or precise)
adaptive-precision
potential is explained in :ref:`here <implementing_new_apip_styles>`.
The switching parameter :math:`\lambda_i` that combines the two potentials
can be dynamically calculated during a
simulation.
Alternatively, one can set a constant switching parameter before the start
of a simulation.
To run a simulation with an adaptive-precision potential, one needs the
following components:
.. tabs::
.. tab:: dynamic switching parameter
#. :doc:`atom_style apip <atom_style>` so that the switching parameter :math:`\lambda_i` can be stored.
#. A fast potential: :doc:`eam/apip <pair_eam_apip>` or :doc:`pace/fast/apip <pair_pace_apip>`.
#. A precise potential: :doc:`pace/precise/apip <pair_pace_apip>`.
#. :doc:`pair_style lambda/input/apip <pair_lambda_input_apip>` to calculate :math:`\lambda_i^\text{input}`, from which :math:`\lambda_i` is calculated.
#. :doc:`fix lambda/apip <fix_lambda_apip>` to calculate the switching parameter :math:`\lambda_i`.
#. :doc:`pair_style lambda/zone/apip <pair_lambda_zone_apip>` to calculate the spatial transition zone of the switching parameter.
#. :doc:`pair_style hybrid/overlay <pair_hybrid>` to combine the previously mentioned pair_styles.
#. :doc:`fix lambda_thermostat/apip <fix_lambda_thermostat_apip>` to conserve the energy when switching parameters change.
#. :doc:`fix atom_weight/apip <fix_atom_weight_apip>` to approximate the load caused by every atom, as the computations of the pair_styles are only required for a subset of atoms.
#. :doc:`fix balance <fix_balance>` to perform dynamic load balancing with the calculated load.
.. tab:: constant switching parameter
#. :doc:`atom_style apip <atom_style>` so that the switching parameter :math:`\lambda_i` can be stored.
#. A fast potential: :doc:`eam/apip <pair_eam_apip>` or :doc:`pace/fast/apip <pair_pace_apip>`.
#. A precise potential: :doc:`pace/precise/apip <pair_pace_apip>`.
#. :doc:`set <set>` command to set the switching parameter :math:`\lambda_i`.
#. :doc:`pair_style hybrid/overlay <pair_hybrid>` to combine the previously mentioned pair_styles.
#. :doc:`fix atom_weight/apip <fix_atom_weight_apip>` to approximate the load caused by every atom, as the computations of the pair_styles are only required for a subset of atoms.
#. :doc:`fix balance <fix_balance>` to perform dynamic load balancing with the calculated load.
----------
Example
"""""""
.. note::
How to select the values of the parameters of an adaptive-precision
interatomic potential is discussed in detail in :ref:`(Immel) <Immel2025_1>`.
.. tabs::
.. tab:: dynamic switching parameter
Lines like these would appear in the input script:
.. code-block:: LAMMPS
atom_style apip
comm_style tiled
pair_style hybrid/overlay eam/fs/apip pace/precise/apip lambda/input/csp/apip fcc cutoff 5.0 lambda/zone/apip 12.0
pair_coeff * * eam/fs/apip Cu.eam.fs Cu
pair_coeff * * pace/precise/apip Cu.yace Cu
pair_coeff * * lambda/input/csp/apip
pair_coeff * * lambda/zone/apip
fix 2 all lambda/apip 2.5 3.0 time_averaged_zone 4.0 12.0 110 110 min_delta_lambda 0.01
fix 3 all lambda_thermostat/apip N_rescaling 200
fix 4 all atom_weight/apip 100 eam ace lambda/input lambda/zone all
variable myweight atom f_4
fix 5 all balance 100 1.1 rcb weight var myweight
First, the :doc:`atom_style apip <atom_style>` and the communication style are set.
.. note::
Note, that :doc:`comm_style <comm_style>` *tiled* is required for the style *rcb* of
:doc:`fix balance <fix_balance>`, but not for APIP.
However, the flexibility offered by the balancing style *rcb*, compared to the
balancing style *shift*, is advantageous for APIP.
An adaptive-precision EAM-ACE potential, for which the switching parameter
:math:`\lambda` is calculated from the CSP, is defined via
:doc:`pair_style hybrid/overlay <pair_hybrid>`.
The fixes ensure that the switching parameter is calculated, the energy conserved,
the weight for the load balancing calculated and the load-balancing itself is done.
.. tab:: constant switching parameter
Lines like these would appear in the input script:
.. code-block:: LAMMPS
atom_style apip
comm_style tiled
pair_style hybrid/overlay eam/fs/apip pace/precise/apip
pair_coeff * * eam/fs/apip Cu.eam.fs Cu
pair_coeff * * pace/precise/apip Cu.yace Cu
# calculate lambda somehow
variable lambda atom ...
set group all apip/lambda v_lambda
fix 4 all atom_weight/apip 100 eam ace lambda/input lambda/zone all
variable myweight atom f_4
fix 5 all balance 100 1.1 rcb weight var myweight
First, the :doc:`atom_style apip <atom_style>` and the communication style are set.
.. note::
Note, that :doc:`comm_style <comm_style>` *tiled* is required for the style *rcb* of
:doc:`fix balance <fix_balance>`, but not for APIP.
However, the flexibility offered by the balancing style *rcb*, compared to the
balancing style *shift*, is advantageous for APIP.
An adaptive-precision EAM-ACE potential is defined via
:doc:`pair_style hybrid/overlay <pair_hybrid>`.
The switching parameter :math:`\lambda_i` of the adaptive-precision
EAM-ACE potential is set via the :doc:`set command <set>`.
The parameter is not updated during the simulation.
Therefore, the potential is conservative.
The fixes ensure that the weight for the load balancing is calculated
and the load-balancing itself is done.
----------
.. _implementing_new_apip_styles:
Implementing new APIP pair styles
"""""""""""""""""""""""""""""""""
One can introduce adaptive-precision to an existing pair style by modifying
the original pair style.
One should calculate the force
:math:`F_i = - \nabla_i \sum_j E_j^\text{original}` for a fast potential or
:math:`F_i = - (1-\nabla_i) \sum_j E_j^\text{original}` for a precise
potential from the original potential
energy :math:`E_j^\text{original}` to see where the switching parameter
:math:`\lambda_i` needs to be introduced in the force calculation.
The switching parameter :math:`\lambda_i` is known for all atoms :math:`i`
in force calculation routine.
One needs to introduce an abortion criterion based on :math:`\lambda_i` to
ensure that all not required calculations are skipped and compute time can
be saved.
Furthermore, one needs to provide the number of calculations and measure the
computation time.
Communication within the force calculation needs to be prevented to allow
effective load-balancing.
With communication, the load balancer cannot balance few calculations of the
precise potential on one processor with many computations of the fast
potential on another processor.
All changes in the pair_style pace/apip compared to the pair_style pace
are annotated and commented.
Thus, the pair_style pace/apip can serve as an example for the implementation
of new adaptive-precision potentials.
----------
.. _Immel2025_1:
**(Immel)** Immel, Drautz and Sutmann, J Chem Phys, 162, 114119 (2025)

View File

@ -1,22 +1,16 @@
CHARMM, AMBER, COMPASS, DREIDING, and OPLS force fields
=======================================================
A compact summary of the concepts, definitions, and properties of
force fields with explicit bonded interactions (like the ones discussed
in this HowTo) is given in :ref:`(Gissinger) <Typelabel2>`.
A force field has 2 parts: the formulas that define it and the
coefficients used for a particular system. Here we only discuss
formulas implemented in LAMMPS that correspond to formulas commonly used
in the CHARMM, AMBER, COMPASS, and DREIDING force fields. Setting
coefficients is done either from special sections in an input data file
via the :doc:`read_data <read_data>` command or in the input script with
commands like :doc:`pair_coeff <pair_coeff>` or :doc:`bond_coeff
<bond_coeff>` and so on. See the :doc:`Tools <Tools>` doc page for
additional tools that can use CHARMM, AMBER, or Materials Studio
generated files to assign force field coefficients and convert their
output into LAMMPS input. LAMMPS input scripts can also be generated by
`charmm-gui.org <https://charmm-gui.org/>`_.
Here we only discuss formulas implemented in LAMMPS that correspond to
formulas commonly used in the CHARMM, AMBER, COMPASS, and DREIDING force
fields. Setting coefficients is done either from special sections in an
input data file via the :doc:`read_data <read_data>` command or in the
input script with commands like :doc:`pair_coeff <pair_coeff>` or
:doc:`bond_coeff <bond_coeff>` and so on. See the :doc:`Tools <Tools>`
doc page for additional tools that can use CHARMM, AMBER, or Materials
Studio generated files to assign force field coefficients and convert
their output into LAMMPS input. LAMMPS input scripts can also be
generated by `charmm-gui.org <https://charmm-gui.org/>`_.
CHARMM and AMBER
----------------
@ -203,9 +197,11 @@ rather than individual force constants and geometric parameters that
depend on the particular combinations of atoms involved in the bond,
angle, or torsion terms. DREIDING has an :doc:`explicit hydrogen bond
term <pair_hbond_dreiding>` to describe interactions involving a
hydrogen atom on very electronegative atoms (N, O, F). Unlike CHARMM
or AMBER, the DREIDING force field has not been parameterized for
considering solvents (like water).
hydrogen atom on very electronegative atoms (N, O, F). Unlike CHARMM or
AMBER, the DREIDING force field has not been parameterized for
considering solvents (like water) and has no rules for assigning
(partial) charges. That will seriously limit its accuracy when used for
simulating systems where those matter.
See :ref:`(Mayo) <howto-Mayo>` for a description of the DREIDING force field
@ -272,10 +268,6 @@ compatible with a subset of OPLS interactions.
----------
.. _Typelabel2:
**(Gissinger)** J. R. Gissinger, I. Nikiforov, Y. Afshar, B. Waters, M. Choi, D. S. Karls, A. Stukowski, W. Im, H. Heinz, A. Kohlmeyer, and E. B. Tadmor, J Phys Chem B, 128, 3282-3297 (2024).
.. _howto-MacKerell:
**(MacKerell)** MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field, Fischer, Gao, Guo, Ha, et al (1998). J Phys Chem, 102, 3586 . https://doi.org/10.1021/jp973084f

View File

@ -42,12 +42,14 @@ such as those created by pouring grains using :doc:`fix pour
----------
Currently, there are two types of bonds included in the BPM package. The
Currently, there are three 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. An optional multibody term can be used to adjust the network's
Poisson's ratio. Alternatively, the second bond style, :doc:`bond bpm/rotational
Poisson's ratio. The :doc:`bpm/spring/plastic <bond_bpm_spring_plastic>`
bond style is similar except it adds a plastic yield strain.
Alternatively, the third 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

160
doc/src/Howto_bulk2slab.rst Normal file
View File

@ -0,0 +1,160 @@
===========================
Convert bulk system to slab
===========================
A regularly encountered simulation problem is how to convert a bulk
system that has been run for a while to equilibrate into a slab system
with some vacuum space and free surfaces. The challenge here is that
one cannot just change the box dimensions with the :doc:`change_box
command <change_box>` or edit the box boundaries in a data file because
some atoms will have non-zero image flags from diffusing around.
Changing the box dimensions results in an undesired displacement of
those atoms, since the image flags indicate how many times the box
length in x-, y-, or z-direction needs to be added or subtracted to get
the "unwrapped" coordinates. By changing the box dimension this
distance is changed and thus those atoms move unphysically relative to
their neighbors with zero image flags. Setting image flags forcibly to
zero creates problems because that could break apart molecules by having
one atom of a bond on the top of the system and the other at the bottom.
.. _bulk2slab:
.. figure:: JPG/rhodo-both.jpg
:figwidth: 80%
:figclass: align-center
Snapshots of the bulk Rhodopsin in lipid layer and water system (right)
and the generated slab geometry (left)
.. admonition:: Disclaimer
:class: note
The following workflow will work for many bulk systems, but not all.
Some systems cannot be converted (e.g. polymers with bonds to the
same molecule across periodic boundaries, sometimes called "infinite
polymers"). The amount of vacuum that needs to be added depends on
the length of the molecules where the system is split (the example
here splits where there is water with short molecules). In some
cases, the system may need to be re-centered in the box first using
the :doc:`displace_atoms command <displace_atoms>`. Also, the time
spent on strong thermalization and equilibration will depend on the
specific system and its thermodynamic conditions.
Below is a suggested workflow using the :doc:`Rhodopsin benchmark input
<Speed_bench>` for demonstration. The figure shows the state *before*
the procedure on the left (with unwrapped atoms that have diffused out
of the box) and *after* on the right (with the vacuum added above and
below). The procedure is implemented by modifying a copy of the
``in.rhodo`` input file. The first lines up to and including the
:doc:`read_data command <read_data>` remain unchanged. Then we insert
the following lines to add vacuum to the z direction above and below the
system:
.. code-block:: LAMMPS
variable delta index 10.0
reset_atoms image all
write_dump all custom rhodo-unwrap.lammpstrj id xu yu zu
change_box all z final $(zlo-2.0*v_delta) $(zhi+2.0*v_delta) &
boundary p p f
read_dump rhodo-unwrap.lammpstrj 0 x y z box no replace yes
kspace_modify slab 3.0
Specifically, the :doc:`variable delta <variable>` (set to 10.0)
represents a distance that determines the amount of vacuum added: we add
twice its value in each direction to the z-dimension; thus in total
:math:`40 \AA` get added. The :doc:`reset_atoms image all
<reset_atoms>` command shall reset any image flags to become either 0 or
:math:`\pm 1` and thus have the minimum distance from the center of the
simulation box, but the correct relative distance for bonded atoms.
The :doc:`write_dump command <write_dump>` then writes out the resulting
*unwrapped* coordinates of the system. After expanding the box,
coordinates that were outside the box should now be inside and the
unwrapped coordinates will become "wrapped", while atoms outside the
periodic boundaries will be wrapped back into the box and their image
flags in those directions restored.
The :doc:`change_box command <change_box>` adds the desired
distance to the low and high box boundary in z-direction and then changes
the :doc:`boundary to "p p f" <boundary>` which will force the image
flags in z-direction to zero and create an undesired displacement for
the atoms with non-zero image flags.
With the :doc:`read_dump command <read_dump>` we read back and replace
partially incorrect coordinates with the previously saved, unwrapped
coordinates. It is important to ignore the box dimensions stored in the
dump file. We want to preserve the expanded box. Finally, we turn on
the slab correction for the PPPM long-range solver with the
:doc:`kspace_modify command <kspace_modify>` as required when using a
long range Coulomb solver for non-periodic z-dimension.
Next we replace the :doc:`fix npt command <fix_nh>` with:
.. code-block:: LAMMPS
fix 2 nvt temp 300.0 300.0 10.0
We now have an open system and thus the adjustment of the cell in
z-direction is no longer required. Since splitting the bulk water
region where the vacuum is inserted, creates surface atoms with high
potential energy, we reduce the thermostat time constant from 100.0 to
10.0 to remove excess kinetic energy resulting from that change faster.
Also the high potential energy of the surface atoms can cause that some
of them are ejected from the slab. In order to suppress that, we add
soft harmonic walls to push back any atoms that want to leave the slab.
To determine the position of the wall, we first need to to determine the
extent of the atoms in z-direction and then place the harmonic walls
based on that information:
.. code-block:: LAMMPS
compute zmin all reduce min z
compute zmax all reduce max z
thermo_style custom zlo c_zmin zhi c_zmax
run 0 post no
fix 3 all wall/harmonic zhi $(c_zmax+v_delta) 10.0 0.0 ${delta} &
zlo $(c_zmin-v_delta) 10.0 0.0 ${delta}
The two :doc:`compute reduce <compute_reduce>` command determine the
minimum and maximum z-coordinate across all atoms. In order to trigger
the execution of the compute commands we need to "consume" them. This
is done with the :doc:`thermo_style custom <thermo_style>` command
followed by the :doc:`run 0 <run>` command. This avoids and error
accessing the min/max values determined by the compute commands to
compute the location of the wall in lower and upper direction. This
uses the previously defined *delta* variable to determine the distance
of the wall from the extent of the system and the cutoff for the wall
interaction. This way only atoms that move beyond the min/max values in
z-direction will experience a restoring force, nudging them back to the
slab. The force constant of :math:`10.0 \frac{\mathrm{kcal/mol}}{\AA}`
was determined empirically.
Adding these "restoring" soft walls assist in making the free surfaces
above and below the slab flat, instead of having rugged or ondulated
surfaces. The impact of the walls can be changed by adjusting the force
constant, cutoff, and position of the wall.
Finally, we replace the :doc:`run 100 <run>` of the original input with:
.. code-block:: LAMMPS
run 1000 post no
unfix 3
fix 2 all nvt temp 300.0 300.0 100.0
run 1000 post no
write_data data.rhodo-slab
This runs the system converted to a slab first for 1000 MD steps using
the walls and stronger Nose-Hoover thermostat. Then the walls are
removed with :doc:`unfix 3 <unfix>` and the thermostat time constant
reset to 100.0 and the system run for another 1000 steps. Finally the
resulting slab geometry is written to a new data file
``data.rhodo-slab`` with a :doc:`write_data command <write_data>`. The
number of MD steps required to reach a proper equilibrium state is very
likely larger. The number of 1000 steps (corresponding to 2
picoseconds) was chosen for demonstration purposes, so that the
procedure can be easily and quickly tested.

View File

@ -285,7 +285,7 @@ when used before the CMake directory, there may be a space between the
can have boolean values (on/off, yes/no, or 1/0 are all valid) or are
strings representing a choice, or a path, or are free format. If the
string would contain whitespace, it must be put in quotes, for example
``-D CMAKE_TUNE_FLAGS="-ftree-vectorize -ffast-math"``.
``-D CMAKE_CXX_FLAGS="-O3 -Wall -ftree-vectorize -ffast-math"``.
CMake variables fall into two categories: 1) common CMake variables that
are used by default for any CMake configuration setup and 2) project
@ -341,8 +341,6 @@ Some common LAMMPS specific variables
- compile some additional executables from the ``tools`` folder (default: ``off``)
* - ``BUILD_DOC``
- include building the HTML format documentation for packaging/installing (default: ``off``)
* - ``CMAKE_TUNE_FLAGS``
- common compiler flags, for optimization or instrumentation (default:)
* - ``LAMMPS_MACHINE``
- when set to ``name`` the LAMMPS executable and library will be called ``lmp_name`` and ``liblammps_name.a``
* - ``FFT``

View File

@ -487,10 +487,10 @@ updates are back-ported from the *develop* branch to the *maintenance*
branch and occasionally merged to *stable* as an update release.
Furthermore, the naming of the release tags now follow the pattern
"patch_<Day><Month><Year>" to simplify comparisons between releases.
For stable releases additional "stable_<Day><Month><Year>" tags are
"patch\_<Day><Month><Year>" to simplify comparisons between releases.
For stable releases additional "stable\_<Day><Month><Year>" tags are
applied and update releases are tagged with
"stable_<Day><Month><Year>_update<Number>", Finally, all releases and
"stable\_<Day><Month><Year>\_update<Number>", Finally, all releases and
submissions are subject to automatic testing and code checks to make
sure they compile with a variety of compilers and popular operating
systems. Some unit and regression testing is applied as well.
@ -498,3 +498,7 @@ systems. Some unit and regression testing is applied as well.
A detailed discussion of the LAMMPS developer GitHub workflow can be
found in the file `doc/github-development-workflow.md
<https://github.com/lammps/lammps/blob/develop/doc/github-development-workflow.md>`_
.. raw:: latex
\clearpage

View File

@ -1,47 +1,45 @@
Using LAMMPS-GUI
================
This document describes **LAMMPS-GUI version 1.6**.
.. image:: JPG/lammps-gui-banner.png
:align: center
:scale: 75%
LAMMPS-GUI is a graphical text editor programmed using the `Qt Framework
<https://www.qt.io/>`_ and customized for editing and running LAMMPS
input files. It is linked to the :ref:`LAMMPS library <lammps_c_api>`
and thus can run LAMMPS directly using the contents of the editor's text
buffer as input and without having to launch the LAMMPS executable.
It *differs* from other known interfaces to LAMMPS in that it can
retrieve and display information from LAMMPS *while it is running*,
display visualizations created with the :doc:`dump image command
<dump_image>`, can launch the online LAMMPS documentation for known
LAMMPS commands and styles, and directly integrates with a collection
of LAMMPS tutorials (:ref:`Gravelle1 <Gravelle1>`).
This document describes **LAMMPS-GUI version 1.7**.
-----
LAMMPS-GUI is a graphical text editor customized for editing LAMMPS
input files that is linked to the :ref:`LAMMPS library <lammps_c_api>`
and thus can run LAMMPS directly using the contents of the editor's text
buffer as input. It can retrieve and display information from LAMMPS
while it is running, display visualizations created with the :doc:`dump
image command <dump_image>`, and is adapted specifically for editing
LAMMPS input files through text completion and reformatting, and linking
to the online LAMMPS documentation for known LAMMPS commands and styles.
.. contents::
.. note::
----
Pre-compiled, ready-to-use LAMMPS-GUI executables for Linux x86\_64
(Ubuntu 20.04LTS or later and compatible), macOS (version 11 aka Big
Sur or later), and Windows (version 10 or later) :ref:`are available
<lammps_gui_install>` for download. Non-MPI LAMMPS executables (as
``lmp``) for running LAMMPS from the command-line and :doc:`some
LAMMPS tools <Tools>` compiled executables are also included.
Also, the pre-compiled LAMMPS-GUI packages include the WHAM executables
from http://membrane.urmc.rochester.edu/content/wham/ for use with
LAMMPS tutorials.
LAMMPS-GUI aims to provide the traditional experience of running LAMMPS
using a text editor, a command-line window, and launching the LAMMPS
text-mode executable printing output to the screen, but just integrated
into a single application:
The source code for LAMMPS-GUI is included in the LAMMPS source code
distribution and can be found in the ``tools/lammps-gui`` folder. It
can be compiled alongside LAMMPS when :doc:`compiling with CMake
<Build_cmake>`.
- Write and edit LAMMPS input files using the built-in text editor.
- Run LAMMPS on those input file with command-line flags to enable a
specific accelerator package (or none).
- Extract data from the created files (like trajectory files, log files
with thermodynamic data, or images) and visualize it using external
software.
LAMMPS-GUI tries to provide an experience similar to what people
traditionally would have running LAMMPS using a command-line window and
the console LAMMPS executable but just rolled into a single executable:
- writing & editing LAMMPS input files with a text editor
- run LAMMPS on those input file with selected command-line flags
- extract data from the created files and visualize it with and
external software
That procedure is quite effective for people proficient in using the
command-line, as that allows them to use tools for the individual steps
That traditional procedure is effective for people proficient in using the
command-line, as it allows them to use the tools for the individual steps
that they are most comfortable with. In fact, it is often *required* to
adopt this workflow when running LAMMPS simulations on high-performance
computing facilities.
@ -52,37 +50,69 @@ window or using external programs, let alone writing scripts to extract
data from the generated output. It also integrates well with graphical
desktop environments where the `.lmp` filename extension can be
registered with LAMMPS-GUI as the executable to launch when double
clicking on such files. Also, LAMMPS-GUI has support for drag-n-drop,
i.e. an input file can be selected and then moved and dropped on the
LAMMPS-GUI executable, and LAMMPS-GUI will launch and read the file into
its buffer. In many cases LAMMPS-GUI will be integrated into the
graphical desktop environment and can be launched like other
applications.
clicking on such files using a file manager. LAMMPS-GUI also has
support for 'drag and drop' for opening inputs: an input file can
be selected and then moved and dropped on the LAMMPS-GUI executable;
LAMMPS-GUI will launch and read the file into its buffer. Input files
also can be dropped into the editor window of the running LAMMPS-GUI
application, which will close the current file and open the new file.
In many cases LAMMPS-GUI will be integrated into the graphical desktop
environment and can be launched just like any other applications from
the graphical interface.
LAMMPS-GUI thus makes it easier for beginners to get started running
simple LAMMPS simulations. It is very suitable for tutorials on LAMMPS
since you only need to learn how to use a single program for most tasks
and thus time can be saved and people can focus on learning LAMMPS.
The tutorials at https://lammpstutorials.github.io/ are specifically
updated for use with LAMMPS-GUI and can their tutorial materials can
be downloaded and loaded directly from the GUI.
LAMMPS and is well-suited for LAMMPS tutorials, since you only need to
work with a single, ready-to-use program for most of the tasks. Plus it
is available for download as pre-compiled package for popular operating
systems (Linux, macOS, Windows). This saves time and allows users to
focus on learning LAMMPS itself, without the need to learn how to
compile LAMMPS, learn how to use the command line, or learn how to use a
separate text editor.
Another design goal is to keep the barrier low when replacing part of
the functionality of LAMMPS-GUI with external tools. That said, LAMMPS-GUI
has some unique functionality that is not found elsewhere:
The tutorials at https://lammpstutorials.github.io/ are specifically
updated for use with LAMMPS-GUI and their tutorial materials can be
downloaded and edited directly from within the GUI while automatically
loading the matching tutorial instructions into a webbrowser.
Yet the basic control flow remains similar to running LAMMPS from the
command line, so the barrier for replacing parts of the functionality of
LAMMPS-GUI with external tools is low. That said, LAMMPS-GUI offer some
unique features that are not easily found elsewhere:
- auto-adapting to features available in the integrated LAMMPS library
- auto-completion for LAMMPS commands and options
- context-sensitive online help
- auto-completion for available LAMMPS commands and options only
- context-sensitive online help for known LAMMPS commands
- start and stop of simulations via mouse or keyboard
- monitoring of simulation progress
- interactive visualization using the :doc:`dump image <dump_image>`
- monitoring of simulation progress and CPU use
- interactive visualization using the LAMMPS :doc:`dump image feature <dump_image>`
command with the option to copy-paste the resulting settings
- automatic slide show generation from dump image out at runtime
- automatic plotting of thermodynamics data at runtime
- automatic slide show generation from dump image output at runtime
- automatic plotting of thermodynamic data at runtime
- inspection of binary restart files
- integration will a set of LAMMPS tutorials
The following text provides a detailed tour of the features and
.. admonition:: Download LAMMPS-GUI for your platform
:class: Hint
Pre-compiled, ready-to-use LAMMPS-GUI executables for Linux x86\_64
(Ubuntu 20.04LTS or later and compatible), macOS (version 11 aka Big
Sur or later), and Windows (version 10 or later) :ref:`are available
<lammps_gui_install>` for download. Non-MPI LAMMPS executables (as
``lmp``) for running LAMMPS from the command-line and :doc:`some
LAMMPS tools <Tools>` compiled executables are also included. Also,
the pre-compiled LAMMPS-GUI packages include the WHAM executables
from http://membrane.urmc.rochester.edu/content/wham/ for use with
LAMMPS tutorials documented in this paper (:ref:`Gravelle1
<Gravelle1>`).
The source code for LAMMPS-GUI is included in the LAMMPS source code
distribution and can be found in the ``tools/lammps-gui`` folder. It
can be compiled alongside LAMMPS when :doc:`compiling with CMake
<Build_cmake>`.
-----
The following text provides a documentation of the features and
functionality of LAMMPS-GUI. Suggestions for new features and
reports of bugs are always welcome. You can use the :doc:`the same
channels as for LAMMPS itself <Errors_bugs>` for that purpose.
@ -92,9 +122,12 @@ channels as for LAMMPS itself <Errors_bugs>` for that purpose.
Installing Pre-compiled LAMMPS-GUI Packages
-------------------------------------------
LAMMPS-GUI is available as pre-compiled binary packages for Linux
x86\_64, macOS 11 and later, and Windows 10 and later. Alternately, it
can be compiled from source.
LAMMPS-GUI is available for download as pre-compiled binary packages for
Linux x86\_64 (Ubuntu 20.04LTS or later and compatible), macOS (version
11 aka Big Sur or later), and Windows (version 10 or later) from the
`LAMMPS release pages on GitHub <https://github.com/lammps/lammps/releases/>`_.
A backup download location is at https://download.lammps.org/static/
Alternately, LAMMPS-GUI can be compiled from source when building LAMMPS.
Windows 10 and later
^^^^^^^^^^^^^^^^^^^^
@ -216,8 +249,8 @@ editor buffer, which may contain multiple :doc:`run <run>` or
LAMMPS runs in a separate thread, so the GUI stays responsive and is
able to interact with the running calculation and access data it
produces. It is important to note that running LAMMPS this way is
using the contents of the input buffer for the run (via the
produces. It is important to note that running LAMMPS this way is using
the contents of the input buffer for the run (via the
:cpp:func:`lammps_commands_string()` function of the LAMMPS C-library
interface), and **not** the original file it was read from. Thus, if
there are unsaved changes in the buffer, they *will* be used. As an
@ -226,28 +259,55 @@ of a file from the *Run LAMMPS from File* menu entry or with
`Ctrl-Shift-Enter`. This option may be required in some rare cases
where the input uses some functionality that is not compatible with
running LAMMPS from a string buffer. For consistency, any unsaved
changes in the buffer must be either saved to the file or undone
before LAMMPS can be run from a file.
changes in the buffer must be either saved to the file or undone before
LAMMPS can be run from a file.
The line number of the currently executed command is highlighted in
green in the line number display for the *Editor* Window.
.. image:: JPG/lammps-gui-running.png
:align: center
:scale: 75%
While LAMMPS is running, the contents of the status bar change. On
the left side there is a text indicating that LAMMPS is running, which
also indicates the number of active threads, when thread-parallel
acceleration was selected in the *Preferences* dialog. On the right
While LAMMPS is running, the contents of the status bar change. The
text fields that normally show "Ready." and the current working
directory, change into an area showing the CPU utilization in percent.
Nest to it is a text indicating that LAMMPS is running, which also
indicates the number of active threads (in case thread-parallel
acceleration was selected in the *Preferences* dialog). On the right
side, a progress bar is shown that displays the estimated progress for
the current :doc:`run <run>` or :doc:`minimize <minimize>` command.
Also, the line number of the currently executed command is highlighted
in green.
.. admonition:: CPU Utilization
:class: note
The CPU Utilization should ideally be close to 100% times the number
of threads like in the screenshot image above. Since the GUI is
running as a separate thread, the CPU utilization can be higher, for
example when the GUI needs to work hard to keep up with the
simulation. This can be caused by having frequent thermo output or
running a simulation of a small system. In the *Preferences* dialog,
the polling interval for updating the the *Output* and *Charts*
windows can be set. The intervals may need to be lowered to not miss
data between *Charts* data updates or to avoid stalling when the
thermo output is not transferred to the *Output* window fast enough.
It is also possible to reduce the amount of data by increasing the
:doc:`thermo interval <thermo>`. LAMMPS-GUI detects, if the
associated I/O buffer is by a significant percentage and will print a
warning after the run with suggested adjustments. The utilization
can also be lower, e.g. when the simulation is slowed down by the
GUI or other processes also running on the host computer and
competing with LAMMPS-GUI for GPU resources.
.. image:: JPG/lammps-gui-buffer-warn.png
:align: center
:scale: 75%
If an error occurs (in the example below the command :doc:`label
<label>` was incorrectly capitalized as "Label"), an error message
dialog is shown and the line of the input which triggered the error is
highlighted. The state of LAMMPS in the status bar is set to "Failed."
instead of "Ready."
highlighted in red. The state of LAMMPS in the status bar is set to
"Failed." instead of "Ready."
.. image:: JPG/lammps-gui-run-error.png
:align: center
@ -294,7 +354,10 @@ of the *Output* window showing how many warnings and errors were
detected and how many lines the entire output has. By clicking on the
button on the right with the warning symbol or by using the keyboard
shortcut `Ctrl-N` (`Command-N` on macOS), you can jump to the next
line with a warning or error.
line with a warning or error. If there is a URL pointing to additional
explanations in the online manual, that URL will be highlighted and
double-clicking on it shall open the corresponding manual page in
the web browser. The option is also available from the context menu.
By default, the *Output* window is replaced each time a run is started.
The runs are counted and the run number for the current run is displayed
@ -334,27 +397,28 @@ plot of thermodynamic output of the LAMMPS calculation as shown below.
:align: center
:scale: 33%
The drop down menu on the top right allows selection of different
properties that are computed and written to thermo output. Only one
property can be shown at a time. The plots are updated regularly with
new data as the run progresses, so they can be used to visually monitor
the evolution of available properties. The update interval can be set
in the *Preferences* dialog. By default, the raw data for the selected
property is plotted as a blue graph. As soon as there are a sufficient
number of data points, there will be a second graph shown in red with a
smoothed version of the data. From the drop down menu on the top left,
you can select whether to plot only the raw data, only the smoothed
data or both. The smoothing uses a `Savitzky-Golay convolution filter
<https://en.wikipedia.org/wiki/Savitzky%E2%80%93Golay_filter>`_ The
window width (left) and order (right) parameters can be set in the boxes
next to the drop down menu. Default settings are 10 and 4 which means
that the smoothing window includes 10 points each to the left and the
right of the current data point and a fourth order polynomial is fit to
the data in the window.
The "Data:" drop down menu on the top right allows selection of
different properties that are computed and written as thermodynamic
output to the output window. Only one property can be shown at a time.
The plots are updated regularly with new data as the run progresses, so
they can be used to visually monitor the evolution of available
properties. The update interval can be set in the *Preferences* dialog.
By default, the raw data for the selected property is plotted as a blue
graph. From the "Plot:" drop menu on the second row and on the left,
you can select whether to plot only raw data graph, only a smoothed data
graph, or both graphs on top of each other. The smoothing process uses
a `Savitzky-Golay convolution filter
<https://en.wikipedia.org/wiki/Savitzky%E2%80%93Golay_filter>`_. The
convolution window width (left) and order (right) parameters can be set
in the boxes next to the drop down menu. Default settings are 10 and 4
which means that the smoothing window includes 10 points each to the
left and the right of the current data point for a total of 21 points
and a fourth order polynomial is fitted to the data in the window.
You can use the mouse to zoom into the graph (hold the left button and
drag to mark an area) or zoom out (right click) and you can reset the
view with a click to the "lens" button next to the data drop down menu.
The "Title:" and "Y:" input boxes allow to edit the text shown as the
plot title and the y-axis label, respectively. The text entered in the
"Title:" box is applied to *all* charts, while the "Y:" text changes
only the y-axis label of the currently *selected* plot.
The window title shows the current run number that this chart window
corresponds to. Same as for the *Output* window, the chart window is
@ -382,6 +446,40 @@ here you get the compounded data set starting with the last change of
output fields or timestep setting, while the export from the log will
contain *all* YAML output but *segmented* into individual runs.
The *Preferences* dialog has a *Charts* tab, where you can configure
multiple chart-related settings, like the default title, colors for the
graphs, default choice of the raw / smooth graph selection, and the
default chart graph size.
.. admonition:: Slowdown of Simulations from Charts Data Processing
:class: warning
Using frequent thermo output during long simulations can result in a
significant slowdown of that simulation since it is accumulating many
data points for each of the thermo properties in the chart window to
be redrawn with every update. The updates are consuming additional
CPU time when smoothing enabled. This slowdown can be confirmed when
an increasing percentage of the total run time is spent in the
"Output" or "Other" sections of the :doc:`MPI task timing breakdown
<Run_output>`. It is thus recommended to use a large enough value as
argument `N` for the :doc:`thermo command <thermo>` and to select
plotting only the "Raw" data in the *Charts Window* during such
simulations. It is always possible to switch between the different
display styles for charts during the simulation and after it has
finished.
.. versionchanged:: 1.7
As of LAMMPS-GUI version 1.7 the chart data processing is
significantly optimized compared to older versions of LAMMPS-GUI.
The general problem of accumulating excessive amounts of data
and the overhead of too frequently polling LAMMPS for new data
cannot be optimized away, though. If necessary, the command
line LAMMPS executable needs to be used and the output accumulated
of a very fast disk (e.g. a high-performance SSD).
Image Slide Show
----------------
@ -461,11 +559,11 @@ correspond to (via their mass) and then colorize them in the image and
set their atom diameters accordingly. If this is not possible, for
instance when using reduced (= 'lj') :doc:`units <units>`, then
LAMMPS-GUI will check the current pair style and if it is a
Lennard-Jones type potential, it will extract the *sigma* parameter
for each atom type and assign atom diameters from those numbers.
For cases where atom diameters are not auto-detected, the *Atom size* field
can be edited and a suitable value set manually. The default value
is inferred from the x-direction lattice spacing.
Lennard-Jones type potential, it will extract the *sigma* parameter for
each atom type and assign atom diameters from those numbers. For cases
where atom diameters are not auto-detected, the *Atom size* field can be
edited and a suitable value set manually. The default value is inferred
from the x-direction lattice spacing.
If elements cannot be detected the default sequence of colors of the
:doc:`dump image <dump_image>` command is assigned to the different atom
@ -480,22 +578,31 @@ types.
|gui-image1| |gui-image2|
The default image size, some default image quality settings, the view
style and some colors can be changed in the *Preferences* dialog
window. From the image viewer window further adjustments can be made:
actual image size, high-quality (SSAO) rendering, anti-aliasing, view
style, display of box or axes, zoom factor. The view of the system can
be rotated horizontally and vertically. It is also possible to only
display the atoms within a group defined in the input script (default is
"all"). The image can also be re-centered on the center of mass of the
selected group. After each change, the image is rendered again and the
display updated. The small palette icon on the top left is colored
while LAMMPS is running to render the new image; it is grayed out when
LAMMPS is finished. When there are many atoms to render and high
quality images with anti-aliasing are requested, re-rendering may take
several seconds. From the *File* menu of the image window, the
current image can be saved to a file (keyboard shortcut `Ctrl-S`) or
copied to the clipboard (keyboard shortcut `Ctrl-C`) for pasting the
image into another application.
style and some colors can be changed in the *Preferences* dialog window.
From the image viewer window further adjustments can be made: actual
image size, high-quality (SSAO) rendering, anti-aliasing, view style,
display of box or axes, zoom factor. The view of the system can be
rotated horizontally and vertically.
It is also possible to display only the atoms within a :doc:`group
defined in the input script <group>` (default is "all"). The available
groups can be selected from the drop down list next to the "Group:"
label. Similarly, if there are :doc:`molecules defined in the input
<molecule>`, it is possible to select one of them (default is "none")
and visualize it (it will be shown at the center of the simulation box).
While a molecule is selected, the group selection is disabled. It can
be restored by selecting the molecule "none".
The image can also be re-centered on the center of mass of the selected
group. After each change, the image is rendered again and the display
updated. The small palette icon on the top left is colored while LAMMPS
is running to render the new image; it is grayed out when LAMMPS is
finished. When there are many atoms to render and high quality images
with anti-aliasing are requested, re-rendering may take several seconds.
From the *File* menu of the image window, the current image can be saved
to a file (keyboard shortcut `Ctrl-S`) or copied to the clipboard
(keyboard shortcut `Ctrl-C`) for pasting the image into another
application.
From the *File* menu it is also possible to copy the current
:doc:`dump image <dump_image>` and :doc:`dump_modify <dump_image>`
@ -604,13 +711,27 @@ generated with a :doc:`write_data command <write_data>`. The third
window is a :ref:`Snapshot Image Viewer <snapshot_viewer>` containing a
visualization of the system in the restart.
If the restart file is larger than 250 MBytes, a dialog will ask
for confirmation before continuing, since large restart files
may require large amounts of RAM since the entire system must
be read into RAM. Thus restart file for large simulations that
have been run on an HPC cluster may overload a laptop or local
workstation. The *Show Details...* button will display a rough
estimate of the additional memory required.
.. |inspect1| image:: JPG/lammps-gui-inspect-data.png
:width: 32%
.. |inspect2| image:: JPG/lammps-gui-inspect-info.png
:width: 32%
.. |inspect3| image:: JPG/lammps-gui-inspect-image.png
:width: 32%
|inspect1| |inspect2| |inspect3|
.. admonition:: Large Restart Files
:class: warning
If the restart file is larger than 250 MBytes, a dialog will ask for
confirmation before continuing, since large restart files may require
large amounts of RAM since the entire system must be read into RAM.
Thus restart file for large simulations that have been run on an HPC
cluster may overload a laptop or local workstation. The *Show
Details...* button will display a rough estimate of the additional
memory required.
Menu
----
@ -682,6 +803,12 @@ timestep. The *Stop LAMMPS* entry will do this by calling the
:cpp:func:`lammps_force_timeout` library function, which is equivalent
to a :doc:`timer timeout 0 <timer>` command.
The *Relaunch LAMMPS Instance* will destroy the current LAMMPS thread
and free its data and then create a new thread with a new LAMMPS
instance. This is usually not needed, since LAMMPS-GUI tries to detect
when this is needed and does it automatically. This is available
in case it missed something and LAMMPS behaves in unexpected ways.
The *Set Variables...* entry opens a dialog box where
:doc:`index style variables <variable>` can be set. Those variables
are passed to the LAMMPS instance when it is created and are thus
@ -720,6 +847,26 @@ output, charts, slide show, variables, or snapshot images. The
default settings for their visibility can be changed in the
*Preferences* dialog.
Tutorials
^^^^^^^^^
The *Tutorials* menu is to support the set of LAMMPS tutorials for
beginners and intermediate LAMMPS users documented in (:ref:`Gravelle1
<Gravelle1>`). From the drop down menu you can select which of the
eight currently available tutorial sessions you want to begin. This
opens a 'wizard' dialog where you can choose in which folder you want to
work, whether you want that folder to be wiped from *any* files, whether
you want to download the solutions files (which can be large) to a
``solution`` sub-folder, and whether you want the corresponding
tutorial's online version opened in your web browser. The dialog will
then start downloading the files requested (download progress is
reported in the status line) and load the first input file for the
selected session into LAMMPS-GUI.
.. image:: JPG/lammps-gui-tutorials.png
:align: center
:scale: 50%
About
^^^^^
@ -783,18 +930,21 @@ look of LAMMPS-GUI. The settings are grouped and each group is
displayed within a tab.
.. |guiprefs1| image:: JPG/lammps-gui-prefs-general.png
:width: 24%
:width: 19%
.. |guiprefs2| image:: JPG/lammps-gui-prefs-accel.png
:width: 24%
:width: 19%
.. |guiprefs3| image:: JPG/lammps-gui-prefs-image.png
:width: 24%
:width: 19%
.. |guiprefs4| image:: JPG/lammps-gui-prefs-editor.png
:width: 24%
:width: 19%
|guiprefs1| |guiprefs2| |guiprefs3| |guiprefs4|
.. |guiprefs5| image:: JPG/lammps-gui-prefs-charts.png
:width: 19%
|guiprefs1| |guiprefs2| |guiprefs3| |guiprefs4| |guiprefs5|
General Settings:
^^^^^^^^^^^^^^^^^
@ -823,13 +973,12 @@ General Settings:
- *Replace image window on new render:* when checked, an existing
chart window will be replaced when a new snapshot image is requested,
otherwise each command will create a new image window.
- *Path to LAMMPS Shared Library File:* this option is only visible
when LAMMPS-GUI was compiled to load the LAMMPS library at run time
instead of being linked to it directly. With the *Browse..* button
or by changing the text, a different shared library file with a
different compilation of LAMMPS with different settings or from a
different version can be loaded. After this setting was changed,
LAMMPS-GUI needs to be re-launched.
- *Download tutorial solutions enabled* this controls whether the
"Download solutions" option is enabled by default when setting up
a tutorial.
- *Open tutorial webpage enabled* this controls whether the "Open
tutorial webpage in web browser" option is enabled by default when
setting up a tutorial.
- *Select Default Font:* Opens a font selection dialog where the type
and size for the default font (used for everything but the editor and
log) of the application can be set.
@ -848,16 +997,36 @@ General Settings:
the plots in the *Charts* window in milliseconds. The default is to
redraw the plots every 500 milliseconds. This is just for the drawing,
data collection is managed with the previous setting.
- *HTTPS proxy setting:* Allows to enter a URL for an HTTPS proxy. This
may be needed when the LAMMPS input contains :doc:`geturl commands <geturl>`
or for downloading tutorial files from the *Tutorials* menu. If the
``https_proxy`` environment variable was set externally, its value is
displayed but cannot be changed.
- *Path to LAMMPS Shared Library File:* this option is only visible
when LAMMPS-GUI was compiled to load the LAMMPS library at run time
instead of being linked to it directly. With the *Browse..* button
or by changing the text, a different shared library file with a
different compilation of LAMMPS with different settings or from a
different version can be loaded. After this setting was changed,
LAMMPS-GUI needs to be re-launched.
Accelerators:
^^^^^^^^^^^^^
This tab enables selection of an accelerator package for LAMMPS to use
and is equivalent to using the `-suffix` and `-package` flags on the
command-line. Only settings supported by the LAMMPS library and local
hardware are available. The `Number of threads` field allows setting
the maximum number of threads for the accelerator packages that use
threads.
This tab enables selection of an accelerator package and modify some of
its settings to use for running LAMMPS and is equivalent to using the
:doc:`-sf <suffix>` and :doc:`-pk <package>` flags :doc:`on the
command-line <Run_options>`. Only settings supported by the LAMMPS
library and local hardware are available. The `Number of threads` field
allows setting the number of threads for the accelerator packages that
support using threads (OPENMP, INTEL, KOKKOS, and GPU). Furthermore,
the choice of precision mode (double, mixed, or single) for the INTEL
package can be selected and for the GPU package, whether the neighbor
lists are built on the GPU or the host (required for :doc:`pair style
hybrid <pair_hybrid>`) and whether only pair styles should be
accelerated (i.e. run PPPM entirely on the CPU, which sometimes leads
to better overall performance). Whether settings can be changed depends
on which accelerator package is chosen (or "None").
Snapshot Image:
^^^^^^^^^^^^^^^
@ -884,7 +1053,7 @@ lists to select the background and box colors.
Editor Settings:
^^^^^^^^^^^^^^^^
This tab allows tweaking settings of the editor window. Specifically
This tab allows tweaking settings of the editor window. Specifically,
the amount of padding to be added to LAMMPS commands, types or type
ranges, IDs (e.g. for fixes), and names (e.g. for groups). The value
set is the minimum width for the text element and it can be chosen in
@ -896,6 +1065,16 @@ the completion pop-up window, and whether auto-save mode is enabled.
In auto-save mode the editor buffer is saved before a run or before
exiting LAMMPS-GUI.
Charts Settings:
----------------
This tab allows tweaking settings of the *Charts* window. Specifically,
one can set the default chart title (if the title contains '%f' it will
be replaced with the name of the current input file), one can select
whether by default the raw data, the smoothed data or both will be
plotted, one can set the colors for the two lines, the default smoothing
parameters, and the default size of the chart graph in pixels.
-----------
Keyboard Shortcuts
@ -976,10 +1155,25 @@ available (On macOS use the Command key instead of Ctrl/Control).
- Ctrl+Shift+T
- LAMMPS Tutorial
Further editing keybindings `are documented with the Qt documentation
Further keybindings of the editor window `are documented with the Qt
documentation
<https://doc.qt.io/qt-5/qplaintextedit.html#editing-key-bindings>`_. In
case of conflicts the list above takes precedence.
All other windows only support a subset of keyboard shortcuts listed
above. Typically, the shortcuts `Ctrl-/` (Stop Run), `Ctrl-W` (Close
Window), and `Ctrl-Q` (Quit Application) are supported.
-------------
.. _Gravelle1:
**(Gravelle1)** Gravelle, Gissinger, Kohlmeyer, `arXiv:2503.14020 \[physics.comp-ph\] <https://doi.org/10.48550/arXiv.2503.14020>`_ (2025)
.. _Gravelle2:
**(Gravelle2)** Gravelle https://lammpstutorials.github.io/
.. raw:: latex
\clearpage

View File

@ -2,14 +2,18 @@ Moltemplate Tutorial
====================
In this tutorial, we are going to use the tool :ref:`Moltemplate
<moltemplate>` to set up a classical molecular dynamic simulation using
the :ref:`OPLS-AA force field <OPLSAA96>`. The first
task is to describe an organic compound and create a complete input deck
for LAMMPS. The second task is to map the OPLS-AA force field to a
molecular sample created with an external tool, e.g. PACKMOL, and
exported as a PDB file. The files used in this tutorial can be found
in the ``tools/moltemplate/tutorial-files`` folder of the LAMMPS
source code distribution.
<Moltemplate1>` from https://moltemplate.org/ to set up a classical
molecular dynamic simulation using the :ref:`OPLS-AA force field
<oplsaa2024>`. The first task is to describe an organic compound and
create a complete input deck for LAMMPS. The second task is to use
moltemplate to build a polymer. The third task is to map the OPLS-AA
force field to a molecular sample created with an external tool,
e.g. PACKMOL, and exported as a PDB file. The files used in this
tutorial can be found in the ``tools/moltemplate/tutorial-files`` folder
of the LAMMPS source code distribution.
Many more examples can be found here: https://moltemplate.org/examples.html
Simulating an organic solvent
"""""""""""""""""""""""""""""
@ -17,14 +21,13 @@ Simulating an organic solvent
This example aims to create a cubic box of the organic solvent
formamide.
The first step is to create a molecular topology in the
LAMMPS-template (LT) file format representing a single molecule, which
will be stored in a Moltemplate object called ``_FAM inherits OPLSAA {}``.
The first step is to create a molecular topology in the LAMMPS-template
(LT) file format representing a single molecule, which will be
stored in a Moltemplate object called ``_FAM inherits OPLSAA {}``.
This command states that the object ``_FAM`` is based on an existing
object called ``OPLSAA``, which contains OPLS-AA parameters, atom type
definitions, partial charges, masses and bond-angle rules for many organic
and biological compounds.
The atomic structure is the starting point to populate the command
``write('Data Atoms') {}``, which will write the ``Atoms`` section in the
LAMMPS data file. The OPLS-AA force field uses the ``atom_style full``,
@ -36,21 +39,23 @@ to the ``molID``, except that the same variable is used for the whole
molecule. The atom types are assigned using ``@``-type variables. The
assignment of atom types (e.g. ``@atom:177``, ``@atom:178``) is done using
the OPLS-AA atom types defined in the "In Charges" section of the file
``oplsaa.lt``, looking for a reasonable match with the description of the atom.
``oplsaa2024.lt``, looking for a reasonable match with the description of the atom.
The resulting file (``formamide.lt``) follows:
.. code-block:: bash
import /usr/local/moltemplate/moltemplate/force_fields/oplsaa2024.lt # defines OPLSAA
_FAM inherits OPLSAA {
# atomID molID atomType charge coordX coordY coordZ
write('Data Atoms') {
$atom:C00 $mol @atom:177 0.00 0.100 0.490 0.0
$atom:O01 $mol @atom:178 0.00 1.091 -0.250 0.0
$atom:N02 $mol @atom:179 0.00 -1.121 -0.181 0.0
$atom:H03 $mol @atom:182 0.00 -2.013 0.272 0.0
$atom:H04 $mol @atom:182 0.00 -1.056 -1.190 0.0
$atom:H05 $mol @atom:221 0.00 0.144 1.570 0.0
$atom:C00 $mol @atom:235 0.00 0.100 0.490 0.0
$atom:O01 $mol @atom:236 0.00 1.091 -0.250 0.0
$atom:N02 $mol @atom:237 0.00 -1.121 -0.181 0.0
$atom:H03 $mol @atom:240 0.00 -2.013 0.272 0.0
$atom:H04 $mol @atom:240 0.00 -1.056 -1.190 0.0
$atom:H05 $mol @atom:279 0.00 0.144 1.570 0.0
}
# A list of the bonds in the molecule:
@ -64,16 +69,17 @@ The resulting file (``formamide.lt``) follows:
}
}
You don't have to specify the charge in this example because they will
be assigned according to the atom type. Analogously, only a
"Data Bond List" section is needed as the atom type will determine the
bond type. The other bonded interactions (e.g. angles,
dihedrals, and impropers) will be automatically generated by
You don't have to specify the charge in this example because the OPLSAA
force-field assigns charge according to the atom type. (This is not true
when using other force fields.) A "Data Bond List" section is needed as
the atom type will determine the bond type. The other bonded interactions
(e.g. angles, dihedrals, and impropers) will be automatically generated by
Moltemplate.
If the simulation is non-neutral, or Moltemplate complains that you have
missing bond, angle, or dihedral types, this means at least one of your
atom types is incorrect.
If the simulation is not charge-neutral, or Moltemplate complains that
you have missing bond, angle, or dihedral types, this probably means that
at least one of your atom types is incorrect (or that perhaps there is no
suitable atom type currently defined in the ``oplsaa2024.lt`` file).
The second step is to create a master file with instructions to build a
starting structure and the LAMMPS commands to run an NPT simulation. The
@ -81,11 +87,9 @@ master file (``solv_01.lt``) follows:
.. code-block:: bash
# Import the force field.
import /usr/local/moltemplate/moltemplate/force_fields/oplsaa.lt
import formamide.lt # after oplsaa.lt, as it depends on it.
import formamide.lt # Defines "_FAM" and OPLSAA
# Create the input sample.
# Distribute the molecules on a 5x5x5 cubic grid with spacing 4.6
solv = new _FAM [5].move( 4.6, 0, 0)
[5].move( 0, 4.6, 0)
[5].move( 0, 0, 4.6)
@ -98,8 +102,11 @@ master file (``solv_01.lt``) follows:
-11.5 11.5 zlo zhi
}
# Note: The lines below in the "In Run" section are often omitted.
write_once("In Run"){
# Create an input deck for LAMMPS.
write_once("In Init"){
# Run an NPT simulation.
# Input variables.
variable run string solv_01 # output name
variable ts equal 1 # timestep
@ -109,12 +116,6 @@ master file (``solv_01.lt``) follows:
variable equi equal 5000 # Equilibration steps
variable prod equal 30000 # Production steps
# PBC (set them before the creation of the box).
boundary p p p
}
# Run an NPT simulation.
write_once("In Run"){
# Derived variables.
variable tcouple equal \$\{ts\}*100
variable pcouple equal \$\{ts\}*1000
@ -143,7 +144,7 @@ master file (``solv_01.lt``) follows:
unfix NPT
}
The first two commands insert the content of files ``oplsaa.lt`` and
The first two commands insert the content of files ``oplsaa2024.lt`` and
``formamide.lt`` into the master file. At this point, we can use the
command ``solv = new _FAM [N]`` to create N copies of a molecule of type
``_FAM``. In this case, we create an array of 5*5*5 molecules on a cubic
@ -153,21 +154,37 @@ the sample was created from scratch, we also specify the simulation box
size in the "Data Boundary" section.
The LAMMPS setting for the force field are specified in the file
``oplsaa.lt`` and are written automatically in the input deck. We also
``oplsaa2024.lt`` and are written automatically in the input deck. We also
specify the boundary conditions and a set of variables in
the "In Init" section. The remaining commands to run an NPT simulation
the "In Init" section.
The remaining commands to run an NPT simulation
are written in the "In Run" section. Note that in this script, LAMMPS
variables are protected with the escape character ``\`` to distinguish
them from Moltemplate variables, e.g. ``\$\{run\}`` is a LAMMPS
variable that is written in the input deck as ``${run}``.
(Note: Moltemplate can be slow to run, so you need to change you run
settings frequently, I recommended moving those commands (from "In Run")
out of your .lt files and into a separate file. Moltemplate creates a
file named ``run.in.EXAMPLE`` for this purpose. You can put your run
settings and fixes that file and then invoke LAMMPS using
``mpirun -np 4 lmp -in run.in.EXAMPLE`` instead.)
Compile the master file with:
.. code-block:: bash
moltemplate.sh -overlay-all solv_01.lt
moltemplate.sh solv_01.lt
cleanup_moltemplate.sh # <-- optional: see below
And execute the simulation with the following:
(Note: The optional "cleanup_moltemplate.sh" command deletes
unused atom types, which sometimes makes LAMMPS run faster.
But it does not work with many-body pair styles or dreiding-style h-bonds.
Fortunately most force fields, including OPLSAA, don't use those features.)
Then execute the simulation with the following:
.. code-block:: bash
@ -180,15 +197,116 @@ And execute the simulation with the following:
Snapshot of the sample at the beginning and end of the simulation.
Rendered with Ovito.
Building a simple polymer
"""""""""""""""""""""""""
Moltemplate is particularly useful for building polymers (and other molecules
with sub-units). As an simple example, consider butane:
.. figure:: JPG/butane.jpg
The ``butane.lt`` file below defines Butane as a polymer containing
4 monomers (of type ``CH3``, ``CH2``, ``CH2``, ``CH3``).
.. code-block:: bash
import /usr/local/moltemplate/moltemplate/force_fields/oplsaa2024.lt # defines OPLSAA
CH3 inherits OPLSAA {
# atomID molID atomType charge coordX coordY coordZ
write("Data Atoms") {
$atom:c $mol:... @atom:54 0.0 0.000000 0.4431163 0.000000
$atom:h1 $mol:... @atom:60 0.0 0.000000 1.0741603 0.892431
$atom:h2 $mol:... @atom:60 0.0 0.000000 1.0741603 -0.892431
$atom:h3 $mol:... @atom:60 0.0 -0.892431 -0.1879277 0.000000
}
# (Using "$mol:..." indicates this object ("CH3") is part of a larger
# molecule. Moltemplate will share the molecule-ID with that molecule.)
# A list of the bonds within the "CH3" molecular sub-unit:
# BondID AtomID1 AtomID2
write('Data Bond List') {
$bond:ch1 $atom:c $atom:h1
$bond:ch2 $atom:c $atom:h2
$bond:ch3 $atom:c $atom:h3
}
}
CH2 inherits OPLSAA {
# atomID molID atomType charge coordX coordY coordZ
write("Data Atoms") {
$atom:c $mol:... @atom:57 0.0 0.000000 0.4431163 0.000000
$atom:h1 $mol:... @atom:60 0.0 0.000000 1.0741603 0.892431
$atom:h2 $mol:... @atom:60 0.0 0.000000 1.0741603 -0.892431
}
# A list of the bonds within the "CH2" molecular sub-unit:
# BondID AtomID1 AtomID2
write('Data Bond List') {
$bond:ch1 $atom:c $atom:h1
$bond:ch2 $atom:c $atom:h2
}
}
Butane inherits OPLSAA {
create_var {$mol} # optional:force all monomers to share the same molecule-ID
# - Create 4 monomers
# - Move them along the X axis using ".move()",
# - Rotate them 180 degrees with respect to the previous monomer
monomer1 = new CH3
monomer2 = new CH2.rot(180,1,0,0).move(1.2533223,0,0)
monomer3 = new CH2.move(2.5066446,0,0)
monomer4 = new CH3.rot(180,0,0,1).move(3.7599669,0,0)
# A list of the bonds connecting different monomers together:
write('Data Bond List') {
$bond:b1 $atom:monomer1/c $atom:monomer2/c
$bond:b2 $atom:monomer2/c $atom:monomer3/c
$bond:b3 $atom:monomer3/c $atom:monomer4/c
}
}
Again, you don't have to specify the charge in this example because OPLSAA
assigns charges according to the atom type.
This ``Butane`` object is a molecule which can be used anywhere other molecules
can be used. (You can arrange ``Butane`` molecules on a lattice, as we did previously.
You can also modify individual butane molecules by adding or deleting atoms or bonds.
You can add bonds between specific butane molecules or use ``Butane`` as a
sub-unit to define even larger molecules. See the moltemplate manual for details.)
How to build a complex polymer
""""""""""""""""""""""""""""""""""""""""""
A similar procedure can be used to create more complicated polymers,
such as the NIPAM polymer example shown below. For details, see:
https://github.com/jewettaij/moltemplate/tree/master/examples/all_atom/force_field_OPLSAA/NIPAM_polymer+water+ions
Mapping an existing structure
"""""""""""""""""""""""""""""
Another helpful way to use Moltemplate is mapping an existing molecular
sample to a force field. This is useful when a complex sample is
assembled from different simulations or created with specialized
software (e.g. PACKMOL). As in the previous example, all molecular
species in the sample must be defined using single-molecule Moltemplate
objects. For this example, we use a short polymer in a box containing
sample to a force field. This is useful when a complex sample is assembled
from different simulations or created with specialized software (e.g. PACKMOL).
(Note: The previous link shows how to build this entire system from scratch
using only moltemplate. However here we will assume instead that we obtained
a PDB file for this system using PACKMOL.)
As in the previous examples, all molecular species in the sample
are defined using single-molecule Moltemplate objects.
For this example, we use a short polymer in a box containing
water molecules and ions in the PDB file ``model.pdb``.
It is essential to understand that the order of atoms in the PDB file
@ -246,25 +364,25 @@ The resulting master LT file defining short annealing at a fixed volume
.. code-block:: bash
# Use the OPLS-AA force field for all species.
import /usr/local/moltemplate/moltemplate/force_fields/oplsaa.lt
import /usr/local/moltemplate/moltemplate/force_fields/oplsaa2024.lt
import PolyNIPAM.lt
# Define the SPC water and ions as in the OPLS-AA
Ca inherits OPLSAA {
write("Data Atoms"){
$atom:a1 $mol:. @atom:354 0.0 0.00000 0.00000 0.000000
$atom:a1 $mol:. @atom:412 0.0 0.00000 0.00000 0.000000
}
}
Cl inherits OPLSAA {
write("Data Atoms"){
$atom:a1 $mol:. @atom:344 0.0 0.00000 0.00000 0.000000
$atom:a1 $mol:. @atom:401 0.0 0.00000 0.00000 0.000000
}
}
SPC inherits OPLSAA {
write("Data Atoms"){
$atom:O $mol:. @atom:76 0. 0.0000000 0.00000 0.000000
$atom:H1 $mol:. @atom:77 0. 0.8164904 0.00000 0.5773590
$atom:H2 $mol:. @atom:77 0. -0.8164904 0.00000 0.5773590
$atom:O $mol:. @atom:9991 0. 0.0000000 0.00000 0.0000000
$atom:H1 $mol:. @atom:9990 0. 0.8164904 0.00000 0.5773590
$atom:H2 $mol:. @atom:9990 0. -0.8164904 0.00000 0.5773590
}
write("Data Bond List") {
$bond:OH1 $atom:O $atom:H1
@ -285,8 +403,15 @@ The resulting master LT file defining short annealing at a fixed volume
0 26 zlo zhi
}
# Define the input variables.
write_once("In Init"){
boundary p p p # "p p p" is the default. This line is optional.
neighbor 3 bin # (This line is also optional in this example.)
}
# Note: The lines below in the "In Run" section are often omitted.
# Run an NVT simulation.
write_once("In Run"){
# Input variables.
variable run string sample01 # output name
variable ts equal 2 # timestep
@ -294,13 +419,6 @@ The resulting master LT file defining short annealing at a fixed volume
variable p equal 1. # equilibrium pressure
variable equi equal 30000 # equilibration steps
# PBC (set them before the creation of the box).
boundary p p p
neighbor 3 bin
}
# Run an NVT simulation.
write_once("In Run"){
# Set the output.
thermo 1000
thermo_style custom step etotal evdwl ecoul elong ebond eangle &
@ -314,8 +432,8 @@ The resulting master LT file defining short annealing at a fixed volume
write_data \$\{run\}.min
# Set the constrains.
group watergroup type @atom:76 @atom:77
fix 0 watergroup shake 0.0001 10 0 b @bond:042_043 a @angle:043_042_043
group watergroup type @atom:9991 @atom:9990
fix 0 watergroup shake 0.0001 10 0 b @bond:spcO_spcH a @angle:spcH_spcO_spcH
# Short annealing.
timestep \$\{ts\}
@ -327,7 +445,7 @@ The resulting master LT file defining short annealing at a fixed volume
In this example, the water model is SPC and it is defined in the
``oplsaa.lt`` file with atom types ``@atom:76`` and ``@atom:77``. For
``oplsaa2024.lt`` file with atom types ``@atom:9991`` and ``@atom:9990``. For
water we also use the ``group`` and ``fix shake`` commands with
Moltemplate ``@``-type variables, to ensure consistency with the
numerical values assigned during compilation. To identify the bond and
@ -336,19 +454,20 @@ are:
.. code-block:: bash
replace{ @atom:76 @atom:76_b042_a042_d042_i042 }
replace{ @atom:77 @atom:77_b043_a043_d043_i043 }
replace{ @atom:9991 @atom:9991_bspcO_aspcO_dspcO_ispcO }
replace{ @atom:9990 @atom:9990_bspcH_aspcH_dspcH_ispcH }
From which we can identify the following "Data Bonds By Type":
``@bond:042_043 @atom:*_b042*_a*_d*_i* @atom:*_b043*_a*_d*_i*`` and
"Data Angles By Type": ``@angle:043_042_043 @atom:*_b*_a043*_d*_i*
@atom:*_b*_a042*_d*_i* @atom:*_b*_a043*_d*_i*``
``@bond:spcO_spcH @atom:*_bspcO*_a*_d*_i* @atom:*_bspcH*_a*_d*_i*``
and "Data Angles By Type":
``@angle:spcH_spcO_spcH @atom:*_b*_aspcH*_d*_i* @atom:*_b*_aspcO*_d*_i* @atom:*_b*_aspcH*_d*_i*``
Compile the master file with:
.. code-block:: bash
moltemplate.sh -overlay-all -pdb model.pdb sample01.lt
moltemplate.sh -pdb model.pdb sample01.lt
cleanup_moltemplate.sh
And execute the simulation with the following:
@ -363,8 +482,13 @@ And execute the simulation with the following:
Sample visualized with Ovito loading the trajectory into the DATA
file written after minimization.
------------
.. _OPLSAA96:
.. _oplsaa2024:
**(OPLS-AA)** Jorgensen, Maxwell, Tirado-Rives, J Am Chem Soc, 118(45), 11225-11236 (1996).
**(OPLS-AA)** Jorgensen, W.L., Ghahremanpour, M.M., Saar, A., Tirado-Rives, J., J. Phys. Chem. B, 128(1), 250-262 (2024).
.. _Moltemplate1:
**(Moltemplate)** Jewett et al., J. Mol. Biol., 433(11), 166841 (2021)

View File

@ -197,7 +197,7 @@ The LPS model has a force scalar state
.. math::
\underline{t} = \frac{3K\theta}{m}\underline{\omega}\,\underline{x} +
\alpha \underline{\omega}\,\underline{e}^{\rm d}, \qquad\qquad\textrm{(3)}
\alpha \underline{\omega}\,\underline{e}^\mathrm{d}, \qquad\qquad\textrm{(3)}
with :math:`K` the bulk modulus and :math:`\alpha` related to the shear
modulus :math:`G` as
@ -242,14 +242,14 @@ scalar state are defined, respectively, as
.. math::
\underline{e}^{\rm i}=\frac{\theta \underline{x}}{3}, \qquad
\underline{e}^{\rm d} = \underline{e}- \underline{e}^{\rm i},
\underline{e}^\mathrm{i}=\frac{\theta \underline{x}}{3}, \qquad
\underline{e}^\mathrm{d} = \underline{e}- \underline{e}^\mathrm{i},
where the arguments of the state functions and the vectors on which they
operate are omitted for simplicity. We note that the LPS model is linear
in the dilatation :math:`\theta`, and in the deviatoric part of the
extension :math:`\underline{e}^{\rm d}`.
extension :math:`\underline{e}^\mathrm{d}`.
.. note::

View File

@ -62,17 +62,17 @@ with :ref:`PNG, JPEG and FFMPEG output support <graphics>` enabled.
cd $LAMMPS_DIR/src
# add packages if necessary
# add LAMMPS packages if necessary
make yes-MOLECULE
make yes-PYTHON
# compile shared library using Makefile
make mpi mode=shlib LMP_INC="-DLAMMPS_PNG -DLAMMPS_JPEG -DLAMMPS_FFMPEG" JPG_LIB="-lpng -ljpeg"
Step 2: Installing the LAMMPS Python package
""""""""""""""""""""""""""""""""""""""""""""
Step 2: Installing the LAMMPS Python module
"""""""""""""""""""""""""""""""""""""""""""
Next install the LAMMPS Python package into your current Python installation with:
Next install the LAMMPS Python module into your current Python installation with:
.. code-block:: bash
@ -89,6 +89,29 @@ privileges) or into your personal Python module folder.
Recompiling the shared library requires re-installing the Python
package.
.. _externally_managed:
.. admonition:: Handling an "externally-managed-environment" Error
:class: Hint
Some Python installations made through Linux distributions
(e.g. Ubuntu 24.04LTS or later) will prevent installing the LAMMPS
Python module into a system folder or a corresponding folder of the
individual user as attempted by ``make install-python`` with an error
stating that an *externally managed* python installation must be only
managed by the same package package management tool. This is an
optional setting, so not all Linux distributions follow it currently
(Spring 2025). The reasoning and explanations for this error can be
found in the `Python Packaging User Guide
<https://packaging.python.org/en/latest/specifications/externally-managed-environments/>`_
These guidelines suggest to create a virtual environment and install
the LAMMPS Python module there (see below). This is generally a good
idea and the LAMMPS developers recommend this, too. If, however, you
want to proceed and install the LAMMPS Python module regardless, you
can install the "wheel" file (see above) manually with the ``pip``
command by adding the ``--break-system-packages`` flag.
Installation inside of a virtual environment
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -1,5 +1,5 @@
SPC water model
===============
SPC and SPC/E water model
=========================
The SPC water model specifies a 3-site rigid water molecule with
charges and Lennard-Jones parameters assigned to each of the three atoms.
@ -8,6 +8,18 @@ the two O-H bonds and the H-O-H angle rigid. A bond style of
*harmonic* and an angle style of *harmonic* or *charmm* should also be
used.
One suitable pair style with cutoff Coulomb would for instance be:
* :doc:`pair_style lj/cut/coul/cut <pair_lj_cut_coul>`
These commands are examples for a long-range Coulomb model:
* :doc:`pair_style lj/cut/coul/long <pair_lj_cut_coul>`
* :doc:`pair_style lj/cut/coul/long/soft <pair_fep_soft>`
* :doc:`kspace_style pppm <kspace_style>`
* :doc:`pair_style lj/long/coul/long <pair_lj_long>`
* :doc:`kspace_style pppm/disp <kspace_style>`
These are the additional parameters (in real units) to set for O and H
atoms and the water molecule to run a rigid SPC model.
@ -39,7 +51,9 @@ the SPC and SPC/E models.
Below is the code for a LAMMPS input file and a molecule file
(``spce.mol``) of SPC/E water for use with the :doc:`molecule command
<molecule>` demonstrating how to set up a small bulk water system for
SPC/E with rigid bonds.
SPC/E with rigid bonds. For simplicity and speed the example uses a
cutoff Coulomb. Most production simulations require long-range Coulomb
instead.
.. code-block:: LAMMPS

View File

@ -21,9 +21,14 @@ can be invoked via the *dpd/tstat* pair style:
* :doc:`fix nvt/sllod <fix_nvt_sllod>`
* :doc:`fix temp/berendsen <fix_temp_berendsen>`
* :doc:`fix temp/csvr <fix_temp_csvr>`
* :doc:`fix ffl <fix_ffl>`
* :doc:`fix gjf <fix_gjf>`
* :doc:`fix gld <fix_gld>`
* :doc:`fix gle <fix_gle>`
* :doc:`fix langevin <fix_langevin>`
* :doc:`fix temp/rescale <fix_temp_rescale>`
* :doc:`pair_style dpd/tstat <pair_dpd>`
* :doc:`pair_style dpd/ext/tstat <pair_dpd_ext>`
:doc:`Fix nvt <fix_nh>` only thermostats the translational velocity of
particles. :doc:`Fix nvt/sllod <fix_nvt_sllod>` also does this,
@ -82,10 +87,10 @@ that:
.. note::
Only the nvt fixes perform time integration, meaning they update
Not all thermostat fixes perform time integration, meaning they update
the velocities and positions of particles due to forces and velocities
respectively. The other thermostat fixes only adjust velocities; they
do NOT perform time integration updates. Thus they should be used in
do NOT perform time integration updates. Thus, they should be used in
conjunction with a constant NVE integration fix such as these:
* :doc:`fix nve <fix_nve>`

View File

@ -5,17 +5,24 @@ The TIP3P water model as implemented in CHARMM :ref:`(MacKerell)
<howto-tip3p>` specifies a 3-site rigid water molecule with charges and
Lennard-Jones parameters assigned to each of the three atoms.
A suitable pair style with cutoff Coulomb would be:
One suitable pair style with cutoff Coulomb would for instance be:
* :doc:`pair_style lj/cut/coul/cut <pair_lj_cut_coul>`
or these commands for a long-range Coulomb model:
These commands are examples for a long-range Coulomb model:
* :doc:`pair_style lj/cut/coul/long <pair_lj_cut_coul>`
* :doc:`pair_style lj/cut/coul/long/soft <pair_fep_soft>`
* :doc:`kspace_style pppm <kspace_style>`
* :doc:`pair_style lj/long/coul/long <pair_lj_long>`
* :doc:`kspace_style pppm/disp <kspace_style>`
And these pair styles are compatible with the CHARMM force field:
* :doc:`pair_style lj/charmm/coul/charmm <pair_charmm>`
* :doc:`pair_style lj/charmm/coul/long <pair_charmm>`
* :doc:`pair_style lj/charmmfsw/coul/long <pair_charmm>`
In LAMMPS the :doc:`fix shake or fix rattle <fix_shake>` command can be
used to hold the two O-H bonds and the H-O-H angle rigid. A bond style
of :doc:`harmonic <bond_harmonic>` and an angle style of :doc:`harmonic
@ -100,7 +107,9 @@ ignored.
Below is the code for a LAMMPS input file and a molecule file
(``tip3p.mol``) of TIP3P water for use with the :doc:`molecule command
<molecule>` demonstrating how to set up a small bulk water system for
TIP3P with rigid bonds.
TIP3P with rigid bonds. For simplicity and speed the example uses a
cutoff Coulomb. Most production simulations require long-range Coulomb
instead.
.. code-block:: LAMMPS

View File

@ -1,5 +1,5 @@
TIP4P water model
=================
TIP4P and OPC water models
==========================
The four-point TIP4P rigid water model extends the traditional
:doc:`three-point TIP3P <Howto_tip3p>` model by adding an additional
@ -9,9 +9,11 @@ the oxygen along the bisector of the HOH bond angle. A bond style of
:doc:`harmonic <bond_harmonic>` and an angle style of :doc:`harmonic
<angle_harmonic>` or :doc:`charmm <angle_charmm>` should also be used.
In case of rigid bonds also bond style :doc:`zero <bond_zero>` and angle
style :doc:`zero <angle_zero>` can be used.
style :doc:`zero <angle_zero>` can be used. Very similar to the TIP4P
model is the OPC water model. It can be realized the same way as TIP4P
but has different geometry and force field parameters.
There are two ways to implement TIP4P water in LAMMPS:
There are two ways to implement TIP4P-like water in LAMMPS:
#. Use a specially written pair style that uses the :ref:`TIP3P geometry
<tip3p_molecule>` without the point M. The point M location is then
@ -21,7 +23,10 @@ There are two ways to implement TIP4P water in LAMMPS:
computationally very efficient, but the charge distribution in space
is only correct within the tip4p labeled styles. So all other
computations using charges will "see" the negative charge incorrectly
on the oxygen atom.
located on the oxygen atom unless they are specially written for using
the TIP4P geometry internally as well, e.g. :doc:`compute dipole/tip4p
<compute_dipole>`, :doc:`fix efield/tip4p <fix_efield>`, or
:doc:`kspace_style pppm/tip4p <kspace_style>`.
This can be done with the following pair styles for Coulomb with a cutoff:
@ -68,77 +73,90 @@ TIP4P/2005 model :ref:`(Abascal2) <Abascal2>` and a version of TIP4P
parameters adjusted for use with a long-range Coulombic solver
(e.g. Ewald or PPPM in LAMMPS). Note that for implicit TIP4P models the
OM distance is specified in the :doc:`pair_style <pair_style>` command,
not as part of the pair coefficients.
not as part of the pair coefficients. Also parameters for the OPC
model (:ref:`Izadi <Izadi>`) are provided.
.. list-table::
:header-rows: 1
:widths: 36 19 13 15 17
:widths: 40 12 12 14 11 11
* - Parameter
- TIP4P (original)
- TIP4P/Ice
- TIP4P/2005
- TIP4P (Ewald)
- OPC
* - O mass (amu)
- 15.9994
- 15.9994
- 15.9994
- 15.9994
- 15.9994
* - H mass (amu)
- 1.008
- 1.008
- 1.008
- 1.008
- 1.008
* - O or M charge (:math:`e`)
- -1.040
- -1.1794
- -1.1128
- -1.04844
- -1.3582
* - H charge (:math:`e`)
- 0.520
- 0.5897
- 0.5564
- 0.52422
- 0.6791
* - LJ :math:`\epsilon` of OO (kcal/mole)
- 0.1550
- 0.21084
- 0.1852
- 0.16275
- 0.21280
* - LJ :math:`\sigma` of OO (:math:`\AA`)
- 3.1536
- 3.1668
- 3.1589
- 3.16435
- 3.1660
* - LJ :math:`\epsilon` of HH, MM, OH, OM, HM (kcal/mole)
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
* - LJ :math:`\sigma` of HH, MM, OH, OM, HM (:math:`\AA`)
- 1.0
- 1.0
- 1.0
- 1.0
- 1.0
* - :math:`r_0` of OH bond (:math:`\AA`)
- 0.9572
- 0.9572
- 0.9572
- 0.9572
- 0.8724
* - :math:`\theta_0` of HOH angle
- 104.52\ :math:`^{\circ}`
- 104.52\ :math:`^{\circ}`
- 104.52\ :math:`^{\circ}`
- 104.52\ :math:`^{\circ}`
- 103.60\ :math:`^{\circ}`
* - OM distance (:math:`\AA`)
- 0.15
- 0.1577
- 0.1546
- 0.1250
- 0.1594
Note that the when using the TIP4P pair style, the neighbor list cutoff
Note that the when using a TIP4P pair style, the neighbor list cutoff
for Coulomb interactions is effectively extended by a distance 2 \* (OM
distance), to account for the offset distance of the fictitious charges
on O atoms in water molecules. Thus it is typically best in an
on O atoms in water molecules. Thus, it is typically best in an
efficiency sense to use a LJ cutoff >= Coulomb cutoff + 2\*(OM
distance), to shrink the size of the neighbor list. This leads to
slightly larger cost for the long-range calculation, so you can test the
@ -149,7 +167,9 @@ cutoffs are set in the :doc:`pair_style lj/cut/tip4p/long
Below is the code for a LAMMPS input file using the implicit method and
the :ref:`TIP3P molecule file <tip3p_molecule>`. Because the TIP4P
charges are different from TIP3P they need to be reset (or the molecule
file changed):
file changed). For simplicity and speed the example uses a cutoff
Coulomb. Most production simulations require long-range Coulomb
instead.
.. code-block:: LAMMPS
@ -192,6 +212,94 @@ file changed):
run 20000
write_data tip4p-implicit.data nocoeff
When constructing an OPC model, we cannot use the ``tip3p.mol`` file due
to the different geometry. Below is a molecule file providing the 3
sites of an implicit OPC geometry for use with TIP4P styles. Note, that
the "Shake" and "Special" sections are missing here. Those will be
auto-generated by LAMMPS when the molecule file is loaded *after* the
simulation box has been created. These sections are required only when
the molecule file is loaded *before*.
.. _opc3p_molecule:
.. code-block::
# Water molecule. 3 point geometry for OPC model
3 atoms
2 bonds
1 angles
Coords
1 0.00000 -0.06037 0.00000
2 0.68558 0.50250 0.00000
3 -0.68558 0.50250 0.00000
Types
1 1 # O
2 2 # H
3 2 # H
Charges
1 -1.3582
2 0.6791
3 0.6791
Bonds
1 1 1 2
2 1 1 3
Angles
1 1 2 1 3
Below is a LAMMPS input file using the implicit method to implement
the OPC model using the molecule file from above and including the
PPPM long-range Coulomb solver.
.. code-block:: LAMMPS
units real
atom_style full
region box block -5 5 -5 5 -5 5
create_box 2 box bond/types 1 angle/types 1 &
extra/bond/per/atom 2 extra/angle/per/atom 1 extra/special/per/atom 2
mass 1 15.9994
mass 2 1.008
pair_style lj/cut/tip4p/long 1 2 1 1 0.1594 12.0
pair_coeff 1 1 0.2128 3.166
pair_coeff 2 2 0.0 1.0
bond_style zero
bond_coeff 1 0.8724
angle_style zero
angle_coeff 1 103.6
kspace_style pppm/tip4p 1.0e-5
molecule water opc3p.mol # this file has the OPC geometry but is without M
create_atoms 0 random 33 34564 NULL mol water 25367 overlap 1.33
fix rigid all shake 0.001 10 10000 b 1 a 1
minimize 0.0 0.0 1000 10000
reset_timestep 0
timestep 1.0
velocity all create 300.0 5463576
fix integrate all nvt temp 300 300 100.0
thermo_style custom step temp press etotal pe
thermo 1000
run 20000
write_data opc-implicit.data nocoeff
Below is the code for a LAMMPS input file using the explicit method and
a TIP4P molecule file. Because of using :doc:`fix rigid/small
<fix_rigid>` no bonds need to be defined and thus no extra storage needs
@ -279,3 +387,8 @@ Phys, 79, 926 (1983).
**(Abascal2)** Abascal, J Chem Phys, 123, 234505 (2005)
https://doi.org/10.1063/1.2121687
.. _Izadi:
**(Izadi)** Izadi, Anandakrishnan, Onufriev, J. Phys. Chem. Lett., 5, 21, 3863 (2014)
https://doi.org/10.1021/jz501780a

View File

@ -87,7 +87,9 @@ atom style full or use :doc:`fix property/atom mol <fix_property_atom>`
so that fix rigid/small can identify rigid bodies by their molecule ID.
Also a :doc:`neigh_modify exclude <neigh_modify>` command is added to
exclude computing intramolecular non-bonded interactions, since those
are removed by the rigid fix anyway:
are removed by the rigid fix anyway. For simplicity and speed the
example uses a cutoff Coulomb. Most production simulations require
long-range Coulomb instead.
.. code-block:: LAMMPS

View File

@ -249,23 +249,23 @@ as follows:
.. math::
a = & {\rm lx} \\
b^2 = & {\rm ly}^2 + {\rm xy}^2 \\
c^2 = & {\rm lz}^2 + {\rm xz}^2 + {\rm yz}^2 \\
\cos{\alpha} = & \frac{{\rm xy}*{\rm xz} + {\rm ly}*{\rm yz}}{b*c} \\
\cos{\beta} = & \frac{\rm xz}{c} \\
\cos{\gamma} = & \frac{\rm xy}{b} \\
a = & \mathrm{lx} \\
b^2 = & \mathrm{ly}^2 + \mathrm{xy}^2 \\
c^2 = & \mathrm{lz}^2 + \mathrm{xz}^2 + \mathrm{yz}^2 \\
\cos{\alpha} = & \frac{\mathrm{xy}*\mathrm{xz} + \mathrm{ly}*\mathrm{yz}}{b*c} \\
\cos{\beta} = & \frac{\mathrm{xz}}{c} \\
\cos{\gamma} = & \frac{\mathrm{xy}}{b} \\
The inverse relationship can be written as follows:
.. math::
{\rm lx} = & a \\
{\rm xy} = & b \cos{\gamma} \\
{\rm xz} = & c \cos{\beta}\\
{\rm ly}^2 = & b^2 - {\rm xy}^2 \\
{\rm yz} = & \frac{b*c \cos{\alpha} - {\rm xy}*{\rm xz}}{\rm ly} \\
{\rm lz}^2 = & c^2 - {\rm xz}^2 - {\rm yz}^2 \\
\mathrm{lx} = & a \\
\mathrm{xy} = & b \cos{\gamma} \\
\mathrm{xz} = & c \cos{\beta}\\
\mathrm{ly}^2 = & b^2 - \mathrm{xy}^2 \\
\mathrm{yz} = & \frac{b*c \cos{\alpha} - \mathrm{xy}*\mathrm{xz}}{\mathrm{ly}} \\
\mathrm{lz}^2 = & c^2 - \mathrm{xz}^2 - \mathrm{yz}^2 \\
The values of *a*, *b*, *c*, :math:`\alpha` , :math:`\beta`, and
:math:`\gamma` can be printed out or accessed by computes using the

View File

@ -12,26 +12,17 @@ several advantages:
LAMMPS. For that, you should first create your own :doc:`fork on
GitHub <Howto_github>`, though.
You must have `git <git_>`_ installed on your system to use the
commands explained below to communicate with the git servers on
GitHub. For people still using subversion (svn), GitHub also
provides `limited support for subversion clients <svn_>`_.
.. note::
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 offline or deprecated.
You must have `git <git_>`_ installed on your system to use the commands
explained below to communicate with the git servers on GitHub.
.. _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 the LAMMPS development on 4 different git branches:
* **develop** : this branch follows the ongoing development and is
updated with every merge commit of a pull request
* **release** : this branch is updated with every "feature release";
updates are always "fast-forward" merges from *develop*
* **release** : this branch is updated with every "feature release"
and updates are always "fast-forward" merges from *develop*
* **maintenance** : this branch collects back-ported bug fixes from the
*develop* branch to the *stable* branch. It is used to update the
*stable* branch for "stable update releases".

View File

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

View File

@ -84,8 +84,9 @@ lammps.org". General questions about LAMMPS should be posted in the
\normalsize
Past developers include Paul Crozier and Mark Stevens, both at SNL,
and Ray Shan, now at Materials Design.
Past core developers include Paul Crozier and Mark Stevens, both at SNL,
and Ray Shan while at SNL and later at Materials Design, now at Thermo
Fisher Scientific.
----------

View File

@ -20,13 +20,21 @@ acceleration.
.. _lws: https://www.lammps.org
.. _omp: https://www.openmp.org
LAMMPS is written in C++ and requires a compiler that is at least
compatible with the C++-11 standard. Earlier versions were written in
F77, F90, and C++-98. See the `History page
LAMMPS is written in C++ and currently requires a compiler that is at
least compatible with the C++-11 standard. Earlier versions were
written in F77, F90, and C++-98. See the `History page
<https://www.lammps.org/history.html>`_ of the website for details. All
versions can be downloaded as source code from the `LAMMPS website
<lws_>`_.
Through a :ref:`C language API <lammps_c_api>` LAMMPS functionality can
be accessed and managed from other programming languages rather than
running the LAMMPS executable. Ready to use modules for :ref:`Python
<lammps_python_api>` and :ref:`Fortran <lammps_fortran_api>` exist, and
an example :ref:`SWIG interface file <swig>` as well as example C files
for dynamically loading LAMMPS as a shared library into other
executables are provided.
LAMMPS is designed to be easy to modify or extend with new capabilities,
such as new force fields, atom types, boundary conditions, or
diagnostics. See the :doc:`Modify` section of for more details.

View File

@ -13,10 +13,14 @@ Programming language standards
Most of the C++ code currently requires a compiler compatible with the
C++11 standard, the KOKKOS package currently requires C++17. Most of
the Python code is written to be compatible with Python 3.5 or later or
Python 2.7. Some Python scripts *require* Python 3 and a few others
still need to be ported from Python 2 to Python 3.
the Python code is written to be compatible with Python 3.6 or later.
.. deprecated:: 2Apr2025
Python 2.x is no longer supported and trying to use it, e.g. for the
LAMMPS Python module should result in an error. If you come across
some part of the LAMMPS distribution that is not (yet) compatible with
Python 3, please notify the LAMMPS developers.
Build systems
^^^^^^^^^^^^^
@ -24,8 +28,9 @@ Build systems
LAMMPS can be compiled from source code using a (traditional) build
system based on shell scripts, a few shell utilities (grep, sed, cat,
tr) and the GNU make program. This requires running within a Bourne
shell (``/bin/sh``). Alternatively, a build system with different back ends
can be created using CMake. CMake must be at least version 3.16.
shell (``/bin/sh`` or ``/bin/bash``). Alternatively, a build system
with different back ends can be created using CMake. CMake must be
at least version 3.16.
Operating systems
^^^^^^^^^^^^^^^^^
@ -36,11 +41,18 @@ Also, compilation and correct execution on macOS and Windows (using
Microsoft Visual C++) is checked automatically for the largest part of
the source code. Some (optional) features are not compatible with all
operating systems, either through limitations of the corresponding
LAMMPS source code or through incompatibilities of source code or
build system of required external libraries or packages.
LAMMPS source code or through incompatibilities or build system
limitations of required external libraries or packages.
Executables for Windows may be created natively using either Cygwin or
Visual Studio or with a Linux to Windows MinGW cross-compiler.
Executables for Windows may be created either natively using Cygwin,
MinGW, Intel, Clang, or Microsoft Visual C++ compilers, or with a Linux
to Windows MinGW cross-compiler. Native compilation is supported using
Microsoft Visual Studio or a terminal window (using the CMake build
system).
Executables for macOS may be created either using Xcode or GNU compilers
installed with Homebrew. In the latter case, building of LAMMPS through
Homebrew instead of a manual compile is also possible.
Additionally, FreeBSD and Solaris have been tested successfully to
run LAMMPS and produce results consistent with those on Linux.
@ -57,8 +69,9 @@ CPU architectures
^^^^^^^^^^^^^^^^^
The primary CPU architecture for running LAMMPS is 64-bit x86, but also
32-bit x86, and 64-bit ARM and PowerPC (64-bit, Little Endian) are
regularly tested.
64-bit ARM and PowerPC (64-bit, Little Endian) are currently regularly
tested. Further architectures are tested by Linux distributions that
bundle LAMMPS.
Portability compliance
^^^^^^^^^^^^^^^^^^^^^^

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 94 KiB

BIN
doc/src/JPG/butane.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 703 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 44 KiB

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