Compare commits

...

1661 Commits

Author SHA1 Message Date
b5a1c1abba Merge pull request #4071 from akohlmey/next_release
Update version tags and strings for the next feature release
2024-02-07 18:49:29 -05:00
c81d3ecb06 Merge pull request #4072 from stanmoore1/fft_issue
Fix issue from #4007
2024-02-07 17:32:49 -05:00
420498edbc Remove duplicated code; MIN/MAX defined in pointers.h 2024-02-07 14:51:05 -07:00
700011f19f Merge branch 'develop' into fft_issue 2024-02-07 14:49:32 -05:00
9f8d7d2956 replace random_external_state.h include from fix_shardlow.h with type declaration 2024-02-07 14:49:05 -05:00
72e3dc50ac Merge pull request #4070 from akohlmey/silence-warnings
Silence some compiler warnings and remove dead code
2024-02-07 14:22:48 -05:00
35fe562bdf Fix issue from #4007 2024-02-07 11:47:44 -07:00
1eeb7ab19e update version tags for feature release 2024-02-07 05:03:20 -05:00
ff5aa34f5a remove some dead code 2024-02-07 04:39:42 -05:00
6ecc348a66 final changes so MGPT compiles without warnings with and without timings enabled 2024-02-07 04:22:09 -05:00
9921338ee1 update log files for MGPT package 2024-02-07 03:57:12 -05:00
7886327243 reduce warnings in MGPT package 2024-02-06 20:45:49 -05:00
031cef558e silence unused parameter warnings in the gpu lib tree 2024-02-06 20:18:43 -05:00
b9ec85427d Merge pull request #4007 from hagertnl/issue3775_fft_kokkos
KSPACE: decouple KOKKOS and non-KOKKOS FFT
2024-02-06 19:01:15 -05:00
c1024c811f Fix name issue 2024-02-06 14:05:04 -07:00
2f4dbdceb6 Remove redundant checks 2024-02-06 13:28:33 -07:00
19a5de1be6 silence compiler warning 2024-02-06 15:11:31 -05:00
5adbc09b71 Move warning to avoid multiple instances 2024-02-06 12:33:01 -07:00
d3784154bf Merge pull request #4041 from akohlmey/test-fix-numdiff
Add fix numdiff based tests for bonded interactions
2024-02-06 14:15:28 -05:00
4b0c1f2605 Merge branch 'develop' of github.com:lammps/lammps into issue3775_fft_kokkos 2024-02-06 12:09:55 -07:00
beaab56826 Move define checks 2024-02-06 12:08:00 -07:00
46b39d2ca4 Add warning 2024-02-06 12:07:48 -07:00
98876e0e2f Merge pull request #4067 from akohlmey/remove_unused_const
Remove unused constants
2024-02-06 13:38:24 -05:00
431788db49 Need bifactor duplicated code 2024-02-06 11:31:16 -07:00
34cd8ad3bc Small cleanup 2024-02-06 11:01:42 -07:00
7fdc09608b add notes about using static constexpr to programming style guide 2024-02-06 12:16:57 -05:00
e95d52780c fix grammar error 2024-02-06 11:47:58 -05:00
0bb6be5dd9 provide a more detailed description of the bundled tests 2024-02-06 11:37:41 -05:00
5773e35892 recover compilation of MPI stubs on older systems that don't default to C++11 2024-02-06 09:36:35 -05:00
def362ffa4 a few final updates 2024-02-06 05:45:58 -05:00
d2def08778 a few more define to constexpr translations 2024-02-06 05:38:14 -05:00
2059b85e22 avoid uninitialized data access 2024-02-06 05:13:32 -05:00
f6ce3ae45e some more constant cleanups 2024-02-06 05:13:12 -05:00
eb9412f507 even more constant cleanup 2024-02-06 00:57:46 -05:00
2760480630 more constant cleanups 2024-02-06 00:28:58 -05:00
187a35d7b2 convert a few more defines to static constexpr 2024-02-05 23:57:41 -05:00
d1f1cf4012 silence compiler warnings 2024-02-05 23:22:07 -05:00
ad855ad7ea remove unused constants 2024-02-05 20:26:23 -05:00
de39bcc1fd update documentation 2024-02-05 17:37:53 -05:00
11b2538cdb print fft info also with -help flag, using single function to create string 2024-02-05 17:32:45 -05:00
efbc0e0579 whitespace 2024-02-05 17:22:53 -05:00
3c184aac84 add fft support to info command 2024-02-05 16:45:01 -05:00
960b22763d Merge branch 'develop' into issue3775_fft_kokkos 2024-02-05 16:05:59 -05:00
8d673bdfcf Merge pull request #4063 from akohlmey/collected-small-changes
Collected small changes and fixes
2024-02-05 11:00:17 -05:00
094d099699 update author credits 2024-02-05 10:11:01 -05:00
e5abfda823 cosmetic 2024-02-03 17:47:00 -05:00
ac8f02ec5a correct comment 2024-02-02 12:17:58 -05:00
82f106c12a ensure that the "timeremain" thermo keyword never reports a negative remaining time 2024-02-02 11:53:40 -05:00
33e57e50e8 cosmetic 2024-02-01 20:15:15 -05:00
2c9e652772 fix uninitialized data bug when using a child class 2024-02-01 20:15:04 -05:00
8a9dfe8d11 silence compiler warning 2024-02-01 12:30:43 -05:00
ccd50a8958 add workaround for Cray's Clang based compiler to compile fmtlib 2024-02-01 12:12:03 -05:00
d490d24bba update CMake script code to automatically chose heFFTe backed based on FFT choice 2024-02-01 12:10:53 -05:00
06521d9d0d Merge pull request #4062 from rbberger/update_hip_detection
Remove HIP_PATH requirement from CMake build
2024-02-01 08:34:15 -05:00
adc79272c9 update log files for current code 2024-02-01 00:12:04 -05:00
17f869bf5e fix issues with reading and writing data files for systems without atom IDs 2024-01-31 20:20:35 -05:00
5599d1843a update syntax 2024-01-31 19:56:36 -05:00
677c8258e2 fix cmake issues: always build static heFFTe libs, fixup git hash, cmake output 2024-01-31 16:19:55 -05:00
de7c459b2f consolidate FFT settings in headers 2024-01-31 13:28:41 -05:00
e319555f64 merge lmpfftsettings_kokkos.h into lmpfftsettings.h 2024-01-31 12:54:03 -05:00
23ed9a0980 Merge branch 'develop' into issue3775_fft_kokkos 2024-01-31 12:39:02 -05:00
1cecfb9df1 Merge branch 'develop' into test-fix-numdiff 2024-01-30 04:30:48 -05:00
c0b16acb7e Merge branch 'develop' into collected-small-changes 2024-01-30 00:23:01 -05:00
52de76d97b Merge pull request #4015 from srtee/develop
add border information to Atom::add_custom and Atom::find_custom
2024-01-29 22:46:05 -05:00
6927934243 make estimated accuracy output more readable 2024-01-29 21:12:41 -05:00
c43b10f952 Merge branch 'develop' into srtee_develop 2024-01-29 17:37:54 -05:00
87fd1c63df whitespace 2024-01-29 15:52:04 -05:00
ef1857d50d programming style updates 2024-01-29 15:48:30 -05:00
a83a5165ee simplify 2024-01-28 11:30:11 -05:00
75c20aa5a5 Merge branch 'develop' into test-fix-numdiff 2024-01-26 23:21:44 -05:00
84f86c2c15 improve error message 2024-01-26 23:18:15 -05:00
a2b7a49c90 Remove HIP_PATH requirement from CMake build
It is not recommended to set the HIP_PATH environment variable anymore as it
may break hipcc in some cases.

We only used it for adding the necessary CMAKE_PREFIX_PATH, which after the
folder structure reorganization in 5.x was pointing to the same location
anyway.

Closes issue #3986
2024-01-26 15:19:41 -07:00
5c43b56699 silence compiler warning 2024-01-26 16:47:22 -05:00
2ea200dc01 add ghost check to redID in pair_amoeba.cpp 2024-01-27 07:26:47 +10:00
0a1362654b make compiling QUIP library more reliable
- replace any -std=f* flags when using GNU fortran with -std=gnu
- cancel parallel make and require serial compile to avoid race condition accessing modules
- increase maximum allowed size for arrays on the stack 100 times
2024-01-26 16:23:14 -05:00
14bf502abe correct headings 2024-01-26 15:51:17 -05:00
28de91a2cc avoid uninitialized pointers 2024-01-26 15:51:16 -05:00
7d53f8d1c5 Merge pull request #4054 from akohlmey/consolidate-sphere-omega-flag
Remove sphere_flag and replace with radius_flag and omega_flag as needed
2024-01-26 15:50:32 -05:00
40782fec09 fix spelling issues 2024-01-26 14:55:09 -05:00
6bfe0ca573 remove accidentally included file 2024-01-26 14:46:55 -05:00
e84adc630b adjustements to atom_style doc page 2024-01-26 10:11:35 -07:00
4082ca077e Merge branch 'develop' into consolidate-sphere-omega-flag
# Conflicts:
#	src/compute_temp_sphere.cpp
2024-01-25 17:57:53 -05:00
3941baeda1 Merge pull request #4051 from akohlmey/collected-small-changes
Collected small changes and fixes
2024-01-25 17:55:13 -05:00
d7e8530503 Merge pull request #4058 from akohlmey/internal_variable_interface
Add function to library interfaces to set internal style variable values
2024-01-25 16:15:56 -05:00
1016e28f98 avoid redundant checks and accessing uninitialized data 2024-01-25 14:02:03 -05:00
9813abe428 whitespace 2024-01-25 12:49:01 -05:00
4134c82117 say more explicitly what the added function calls do 2024-01-25 12:47:06 -05:00
9d68b0ecc5 Merge branch 'develop' into issue3775_fft_kokkos 2024-01-25 09:03:52 -05:00
104af8bba4 simplify 2024-01-25 04:25:48 -05:00
6442e05988 even more define to static constexpr conversions 2024-01-25 02:17:28 -05:00
7cb907da58 remove unused variables 2024-01-24 21:19:25 -05:00
d2170cedec rename functions to avoid overloading polymorph functions 2024-01-24 21:15:02 -05:00
a6261d75b9 some more define to static constexpr conversions 2024-01-24 21:14:19 -05:00
ebd493ea77 update atom_style command documentation 2024-01-24 16:11:29 -05:00
77e7a71ded Fixed typo in NEB documentation (energy units --> dimensionless) 2024-01-24 14:52:42 -05:00
4a13fe68e0 add tests for new library APIs 2024-01-24 04:47:59 -05:00
7b210dd97e add documentation for new library APIs to set variables and changes to the old API 2024-01-24 04:14:03 -05:00
c7a3571974 add library interface to Variable::internal_set() 2024-01-24 03:59:29 -05:00
7023723e05 remove accidentally added files 2024-01-23 21:23:36 -05:00
f7fdad8bc5 update external MDI library to version 1.4.26 2024-01-23 21:21:04 -05:00
039ad4f4ae change Atom_KOKKOS::add_custom to match Atom, and tidy headers in atom.h 2024-01-22 15:11:52 +10:00
de35784c93 update cache action to v4 2024-01-21 21:16:33 -05:00
1f863cd4a3 simplify since constexpr should conver to FFT_SCALAR at compile time 2024-01-21 15:59:09 -05:00
12422ff510 replace defines with static constexpr declarations 2024-01-21 15:53:35 -05:00
a473d6f347 refactor dump code to no longer need access to internal Modify class data 2024-01-21 14:42:57 -05:00
fd0507bded fix refactoring bug 2024-01-21 14:22:41 -05:00
6339dfad09 replace references to fix ave/spatial with correct equivalents 2024-01-21 12:24:38 -05:00
722452657c avoid direct access to internal data of Modify class instance 2024-01-21 12:19:28 -05:00
35124fdef3 simplify and avoid direct access to the list of fixes in Modify 2024-01-21 11:50:29 -05:00
5b80899fa4 simplify and avoid direct access to the list of computes in Modify 2024-01-21 11:50:17 -05:00
5ece2139e8 remove tabs and trailing whitespace 2024-01-21 10:02:41 -05:00
aedc061c45 change skip inflag check logic to avoid error opening non-existant file 2024-01-21 09:42:24 -05:00
795d6e4420 silence some more compiler warnings in CUDA code 2024-01-21 09:36:10 -05:00
2760452c68 suppress warnings about reading from stdin for flags that do not process an input 2024-01-21 09:26:42 -05:00
b8ba3da4e2 silence a few more compiler warnings 2024-01-21 00:35:36 -05:00
80ef8656e8 remove some more dead code to silence compiler warnings 2024-01-20 23:11:20 -05:00
35a6bf0cac silence compiler warning 2024-01-20 22:59:23 -05:00
930a717f5e silence CMake warning about FindCUDA.cmake being obsolete 2024-01-20 22:59:13 -05:00
88e384037f make sure both NEB class constructors are consistently initialized 2024-01-20 14:49:57 -05:00
5a67c4d704 add check for another kind of broken references in ReST files 2024-01-20 10:53:41 -05:00
52e76502f4 formatting update, correct references 2024-01-20 10:53:04 -05:00
d6d8a2cd8a correctly determine when to create "rootworld" communicator 2024-01-20 10:52:20 -05:00
0d1234e63a modernize by replacing Modify::find_compute() with Modify::get_compute_by_id() 2024-01-19 15:16:23 -05:00
ae2c17d3ad remove unused code 2024-01-19 15:01:53 -05:00
300b75fbff remove references to sphere_flag 2024-01-19 15:01:19 -05:00
0efff49bdf capitalize constants 2024-01-19 13:00:41 -05:00
39d21473a0 various coding style updates 2024-01-19 13:00:29 -05:00
e0967af6e8 move fix wall style enumerator to header and import from there for consistency 2024-01-19 12:58:48 -05:00
0d8f549e33 remove sphere_flag and replace with radius_flag and omega_flag as needed 2024-01-19 12:50:31 -05:00
3b4b7eb919 there is no support for dipoles in fix npt/cauchy 2024-01-19 09:48:27 -05:00
f73cb28ed4 modernize and apply clang-format 2024-01-19 05:54:54 -05:00
e28f93dca4 programming style updates 2024-01-19 00:03:13 -05:00
4015d1bb39 initialize static string buffers to empty strings 2024-01-19 00:02:50 -05:00
3ae4779c7f convert defines into static constexpr 2024-01-18 23:59:33 -05:00
48e83b2298 remove unused parameter and silence compiler warnings 2024-01-18 22:55:02 -05:00
991663feff Avoid (harmless) errors when shutting down the GPU. 2024-01-18 22:42:32 -05:00
54794a45de Merge pull request #4030 from alphataubio/alphataubio-charmmfsw-kk
Kokkos charmmfsw pair and dihedral styles
2024-01-18 18:10:12 -05:00
4b561d5f8e fix typo 2024-01-18 17:06:58 -05:00
fb9ae23516 revert more general doc changes. those are moved to a separate branch for further edits. 2024-01-18 16:46:47 -05:00
01973ddf23 Merge branch 'develop' into alphataubio-charmmfsw-kk 2024-01-18 16:37:27 -05:00
af60285a3f Merge pull request #4048 from akohlmey/lepton_updates
Update LEPTON styles for more flexibility
2024-01-18 16:34:38 -05:00
0ad1d29c4d Merge pull request #4047 from stanmoore1/kk_fix_exchange_bug
Fix bug in some Kokkos fixes' unpack exchange on device
2024-01-18 14:58:09 -05:00
fe1b568241 Merge pull request #4046 from akohlmey/molecule-dipole
Add support for Dipoles section to molecule files
2024-01-18 14:57:01 -05:00
14abc184f8 Merge pull request #4040 from alphataubio/cgdna
[CG-DNA examples/util] fixed indentations and ported python 2 code to python 3
2024-01-18 14:55:41 -05:00
bf9b8606ef Merge pull request #3905 from jrgissing/bond_react_fixes_aug23
Assorted bond/react fixes
2024-01-18 14:41:01 -05:00
3b3ab4207b Merge pull request #4042 from akohlmey/fmtlib-10.2.1
Update embedded fmtlib code to version 10.2.1
2024-01-18 14:33:28 -05:00
425421c1ca fix typo, cut-n-paste error, and add clarification 2024-01-18 14:32:40 -05:00
90a79d9a4b change unit test to include expressions with constant force or potential 2024-01-18 11:06:52 -05:00
73194764e9 add optional keywords "auto_offset" and "no_offset" to bond/angle style lepton 2024-01-18 11:05:52 -05:00
f3c5002634 Merge branch 'lammps:develop' into bond_react_fixes_aug23 2024-01-18 10:00:00 -05:00
57db9be64f add support for Lepton expressions with constant force or constant potential 2024-01-18 09:46:23 -05:00
5304c43fef add test for exceptions and evaluation of compiled expressions 2024-01-18 04:32:20 -05:00
2d8f622c6a Merge pull request #4039 from akohlmey/collected-small-changes
Collected small changes and fixes
2024-01-17 19:28:48 -05:00
189b08b4a5 Fix bug in some Kokkos fixes' unpack exchange on device 2024-01-17 14:47:59 -07:00
9c4597b5e9 more GPU package cleanup from Trung 2024-01-17 16:12:36 -05:00
6e2df52c8f remove dead code and align better with LAMMPS programming style 2024-01-17 16:09:16 -05:00
16d4811592 move fix bond/history back to src folder 2024-01-17 15:48:03 -05:00
d5da47cf33 Revert "adjust a few more fix styles for fix bond/history being optional"
This reverts commit 497c48bd80.
2024-01-17 15:47:11 -05:00
b47ad7acf4 Revert "make delete_bonds command code compatible with BPM package not being installed"
This reverts commit 715b030bd6.
2024-01-17 15:46:03 -05:00
f78f596d9d document using enumerator constants in Atom and AtomVec classes 2024-01-17 14:58:09 -05:00
ff0d18114e silence compiler warnings 2024-01-17 13:25:46 -05:00
d30483fa67 fix MPI issue with PairAmoeba::print_settings() 2024-01-17 12:31:58 -05:00
6f6a08c251 add ghost checking for custom peratom quantities amgroup and pval 2024-01-17 15:54:47 +10:00
f23ba8fbad make certain temporary test files are deleted 2024-01-16 17:54:08 -05:00
f5cbef8b12 fix typo 2024-01-16 15:57:42 -05:00
deb8416630 update tests for echoing the title line of molecule files 2024-01-16 13:53:07 -05:00
b6d27dfb96 add versionadded tag 2024-01-16 13:06:00 -05:00
103d8cadb9 add unit tests for dipoles in molecule files 2024-01-16 13:05:49 -05:00
9312ce0beb store and print title line of molecule 2024-01-16 12:20:02 -05:00
f6f7392595 make more user friendly 2024-01-16 12:04:13 -05:00
87297902a3 Add support for "Dipoles" section in molecule file 2024-01-16 12:04:00 -05:00
99e38ba55a fix whitespace 2024-01-16 23:44:00 +10:00
90b682834f Merge branch 'develop' of https://github.com/lammps/lammps into develop 2024-01-16 23:36:24 +10:00
b95706ca64 make separate find_custom_ghost() and use four separate ghost info arrays 2024-01-16 23:35:40 +10:00
89fd9ec531 improve ghost keyword comments in fix_property_atom.cpp 2024-01-16 23:04:59 +10:00
e3f81a2513 correct typo 2024-01-16 04:11:56 -05:00
e82ba61183 loop over all neighbor lists for created bonds same as for broken bonds 2024-01-16 04:02:38 -05:00
6f0fab8b08 bugfix for pair style coul/slater/long/gpu from Trung 2024-01-15 12:29:05 -05:00
74656f4e04 silence compiler warnings 2024-01-15 12:27:05 -05:00
4d830f1450 Merge branch 'develop' into collected-small-changes 2024-01-15 09:23:35 -05:00
8076d89422 Merge pull request #4037 from akohlmey/bigint_dof_computation
Make computation of PPPM grid counts and DOFs removed by fixes compatible with large systems
2024-01-15 09:22:43 -05:00
07876b5d1a this limitation no longer applies 2024-01-14 07:53:33 -05:00
b6b2c029b6 improve description of testing 2024-01-14 07:33:31 -05:00
9587e92a3c increase numdiff fudge factor so that individual epsilons need to be changed less 2024-01-13 10:33:13 -05:00
3c40f9fda2 remove obsolete machine makefiles 2024-01-13 10:23:58 -05:00
3668c0fc1b Merge branch 'develop' into fmtlib-10.2.1 2024-01-13 05:06:52 -05:00
a3682e1bd5 retain compatibility with python 2.x 2024-01-13 04:56:16 -05:00
497c48bd80 adjust a few more fix styles for fix bond/history being optional 2024-01-13 04:50:28 -05:00
f93032b903 skip failing numdiff tests for now 2024-01-13 04:26:08 -05:00
0d64aa375d tweak epsilon to pass numdiff tests 2024-01-13 04:05:34 -05:00
c340accb0a skip numdiff tests for linear tables (for now?) 2024-01-12 19:00:07 -05:00
e51a44862c add fix numdiff test to check consistency between energy and force for bonded interactions 2024-01-12 18:59:43 -05:00
a6b0c349d8 update unit test data for corrected angle style cosine/periodic 2024-01-12 18:45:10 -05:00
39579d21c8 correct factor 2 force error for m=1 in angle style cosine/periodic 2024-01-12 18:45:10 -05:00
2b04d23504 update unit test data for corrected angle style cosine/periodic 2024-01-12 18:43:19 -05:00
7a7492b757 cosmetic 2024-01-12 18:42:16 -05:00
6329d491dc correct factor 2 force error for m=1 in angle style cosine/periodic 2024-01-12 18:40:30 -05:00
f9eadacf6d correct factor 2 force error for m=1 in angle style cosine/periodic 2024-01-12 18:37:45 -05:00
5b05112aab fixed indentations and ported python 2 code to python 3 2024-01-12 18:19:50 -05:00
715b030bd6 make delete_bonds command code compatible with BPM package not being installed 2024-01-12 16:26:43 -05:00
a131b90962 make delete_bonds command code compatible with BPM package not being installed 2024-01-12 16:19:11 -05:00
01a3656eaf correct factor 2 force error for m=1 in angle style cosine/periodic 2024-01-12 15:25:42 -05:00
72ba7f6535 whitespace/clang-format 2024-01-12 15:25:42 -05:00
7c744f170e improve error message 2024-01-12 15:25:41 -05:00
02d2509e68 Merge branch 'develop' into bigint_dof_computation 2024-01-12 15:25:09 -05:00
df5461c27e Merge pull request #4021 from jtclemm/BPM
Bug fixes for BPM package
2024-01-12 15:24:24 -05:00
92481b546e Merge pull request #4036 from akohlmey/collected-kokkos-changes
Collected small KOKKOS changes
2024-01-12 15:12:56 -05:00
dd7ce5fbaa remove one more source of 32-bit integer overflow 2024-01-12 14:57:26 -05:00
b041ac7454 backport bugfix for Kokkos with SYCL from upstream 2024-01-12 13:30:16 -05:00
5ef8e8cf9a remove variables that are set but not used 2024-01-11 18:53:14 -05:00
d4bd385f5e remove unused function parameters and corresponding variables 2024-01-11 18:52:47 -05:00
b5aa04c36a remove unused variable 2024-01-11 18:52:23 -05:00
4cb82408c3 Merge branch 'develop' into fmtlib-10.2.1 2024-01-11 18:04:41 -05:00
18d140a96e Small tweak 2024-01-11 15:51:50 -07:00
22d50b32e7 Fix more warnings and remove deprecated Kokkos code 2024-01-11 15:40:45 -07:00
b5dbc4ebf6 Add missing dependency 2024-01-11 09:29:54 -07:00
4bda4621bb check whether total number of replica is too large for 32-bit int 2024-01-11 11:12:27 -05:00
22c7f0f150 redid plots to not be misleading with y axis not at 0 2024-01-11 10:57:00 -05:00
4d74c62325 silence some more warnings 2024-01-10 20:17:17 -05:00
62cf534de0 whitespace 2024-01-10 20:07:01 -05:00
c088681bf0 more large system shake stats fixes 2024-01-10 20:04:47 -05:00
768163865e avoid 32-bit integer overflow for PPPM grid 2024-01-10 19:54:29 -05:00
0b0b35856c remove unnecessary newton_bond considerations
related issue: fix bond/react may need modifications to work as expected when certain special_bond settings are used or when specials are defined explicitly in molecule templates and do not include all neighbors
2024-01-10 19:49:15 -05:00
f6649762e2 Moving files to BPM dir, skipping copy lists 2024-01-10 16:58:29 -07:00
c60217123a Merge branch 'lammps:develop' into bond_react_fixes_aug23 2024-01-10 18:45:29 -05:00
4bc77bc4ab Fix potential integer overflow in PPPM 2024-01-10 16:23:58 -07:00
0cfb6a058c make SHAKE stats output 64-bit compatible 2024-01-10 16:42:21 -05:00
8b89c330e6 make removed DOF computation large system compatible 2024-01-10 15:32:02 -05:00
93b7c6e380 Fix warnings 2024-01-10 12:21:22 -07:00
db45c23d69 silence compiler warnings 2024-01-10 11:52:09 -05:00
bd0c4f3979 remove dead code and silence compiler warning 2024-01-10 11:52:08 -05:00
7ca2dcac62 Merge pull request #4034 from jorge-ramirez-upm/correct-fix-ave-correlate-long
Small correction to fix/ave/correlate/long to show the right output after a restart
2024-01-08 17:01:22 -05:00
e280a2660f removed files generated bycharmmgui but not needed by example 2024-01-08 15:22:57 -05:00
cc957c6713 Fix another bug 2024-01-08 10:56:32 -07:00
7b4334695d Fix another bug from #4003 2024-01-08 10:29:48 -07:00
547024a0b1 Fix bug from #4003 2024-01-08 09:52:05 -07:00
1b6dc1fe8c Small correction to fix/ave/correlate/long to show the right output after a restart 2024-01-07 18:38:47 +01:00
2643a94f79 minor math formatting changes after phone readability testing, and added note box to use tip3 with charmm 2024-01-06 19:49:43 -05:00
9a97906fe5 fixed Trailing whitespaces in rst 2024-01-06 17:29:37 -05:00
0d431f74d2 fixed latex missing $ error and added little bit of negative spaces 2024-01-06 17:22:28 -05:00
b784d4aadd added 1HVN example into new examples/charmm directory
checked in as a separate commit, if maintainer doesnt approve, then easy to revert atomically.

if maintainer approves, then ill add mentions to examples/README and Examples.rst, and anywhere else needed
2024-01-06 09:04:15 -05:00
8f0c8592a9 updated charmm docs as requested by @akohlmey
- gathered all  tutorial like discussion, equations, and plot for old charmm and new charmmfsw into howto

- added equations and another plot for charmmfsw

- charmmgui 1HVN and 2CV5 examples
2024-01-06 09:01:22 -05:00
bd27903e8c Remove debug comments, small tweaks 2024-01-05 16:32:46 -07:00
404b579396 integrate into manual and add cross-references for CHARMM styles 2024-01-05 18:17:36 -05:00
aa5a4f5f64 Merge branch 'alphataubio-charmmfsw-kk' of https://github.com/alphataubio/lammps-alphataubio into alphataubio-charmmfsw-kk 2024-01-05 17:25:00 -05:00
c7521c44ef Revert "updated pair_charmm.rst"
This reverts commit f113ec84be.
2024-01-05 17:23:57 -05:00
cc3eb56c13 Fix FIXME 2024-01-05 13:12:35 -07:00
ac2c852121 integration into documentation 2024-01-05 13:45:40 -05:00
fc2d78fc0a Update Makefiles 2024-01-05 09:25:32 -07:00
10c0922588 Add author attribution 2024-01-05 09:24:34 -07:00
f113ec84be updated pair_charmm.rst 2024-01-05 11:17:26 -05:00
ec84580d41 fix whitespace styling 2024-01-05 05:11:33 -05:00
624bab71c6 Merge branch 'lammps:develop' into alphataubio-charmmfsw-kk 2024-01-05 04:41:31 -05:00
43642a6040 Kokkos 4 checks for compatible compilers so this is no longer needed. 2024-01-05 02:51:41 -05:00
45e0d5be0e Merge branch 'fmtlib-10.2.1' of github.com:akohlmey/lammps into fmtlib-10.2.1 2024-01-05 02:50:58 -05:00
0e148174ae update fmtlib to version 10.2.1 2024-01-05 02:49:57 -05:00
8ae9151b30 must include fmt/ranges.h for fmt::join() 2024-01-05 02:49:56 -05:00
1e9eb933be Merge pull request #4031 from stanmoore1/kk_pace_opt
Optimize Kokkos PACE pair style for GPUs
2024-01-05 02:48:45 -05:00
01482e7a2e update fmtlib to version 10.2.1 2024-01-04 22:46:40 -05:00
f9aafff992 must include fmt/ranges.h for fmt::join() 2024-01-04 22:45:53 -05:00
8090af5649 Merge branch 'develop' into issue3775_fft_kokkos 2024-01-04 21:11:54 -05:00
9d95c51b0b Merge branch 'develop' into kk_pace_opt
# Conflicts:
#	src/ML-PACE/compute_pace.cpp
2024-01-04 21:08:50 -05:00
0e2a065f6b Merge pull request #4003 from stanmoore1/kk_half_thread
Thread over neighbors in addition to atoms when using a half neighlist
2024-01-04 21:04:31 -05:00
3076f1c5f8 Merge pull request #4018 from akohlmey/collected-small-fixes
Collected small fixes and updates
2024-01-04 17:47:23 -05:00
4b4e796c19 Revert " // FIXME:"
This reverts commit de1f6eefd7.

my first idea to reset back force->qqr2e = force->qqr2e_charmm_real didnt work because class destructor gets called first THEN superclass destructor gets called
2024-01-04 16:09:04 -05:00
e26a762f88 improve compatibility of oneapi.cmake preset 2024-01-04 11:21:38 -05:00
c065d4bac6 // FIXME: destructor from this class resets
//
    // force->qqr2e = force->qqr2e_lammps_real
    //
    // at end of timestep 0 causing ~E-6 errors for steps 1,2,...
    // everywhere in pair_lj_charmmfsw_coul_long_kokkos when
    // running kokkos with openmp (and probably with GPUs also).
    //
    // WORKAROUND: for now until guidance from lammps devs is to
    // comment out this line here (commit to be reversed later).

    //force->qqr2e = force->qqr2e_lammps_real;
2024-01-04 00:50:06 -05:00
de1f6eefd7 // FIXME:
// superclass destructor from KSPACE/pair_lj_charmmfsw_coul_long.cpp:81
  // resets force->qqr2e = force->qqr2e_lammps_real at end of timestep 0
  // causing ~E-6 errors for steps 1,2,... everywhere in this class when
  // running kokkos with openmp (and probably with GPUs also).
  //
  // WORKAROUND: for now until guidance from lammps devs is to
  // reset it back force->qqr2e = force->qqr2e_charmm_real here.
2024-01-03 23:00:07 -05:00
13b6d40062 tiny_epoxy example correction
not sure why this issue showed up in recent LAMMPS versions
2024-01-03 20:38:10 -05:00
a6b00a60b2 additional check/warning for valid templates 2024-01-03 20:31:22 -05:00
fd846d539d Merge branch 'develop' of github.com:lammps/lammps into issue3775_fft_kokkos 2024-01-03 17:57:41 -07:00
9d7582ec1b Small tweak for readability 2024-01-03 16:59:11 -07:00
55784019f7 Fix CPU issue 2024-01-03 16:46:06 -07:00
e00fc992fc skip python tests using numpy that fail randomly on macOS 2024-01-03 15:10:37 -07:00
4fbb913425 skip python tests using numpy that fail randomly on macOS 2024-01-03 15:07:41 -07:00
600eaf837b update preferred contact info 2024-01-03 16:20:04 -05:00
66a5f56682 whitespace 2024-01-03 14:13:11 -07:00
377450882e Port changes to pair_pace_extrapolation_kokkos, unify code 2024-01-03 14:10:29 -07:00
5020861cbc Fix compiler warnings 2024-01-03 13:22:52 -07:00
163805bc33 removed scaffolding comments and fixed "(STACKPARAMS?m_params[itype][jtype].lj3:params(itype,jtype).lj3)" in compute_evdwl 2024-01-03 15:18:34 -05:00
d9ea10ca24 Merge branch 'lammps:develop' into bond_react_fixes_aug23 2024-01-03 14:59:26 -05:00
817c7bac18 Optimize Kokkos PACE pair style for GPUs 2024-01-03 10:11:30 -07:00
3a1d3bb64d second draft... applied changes to compute methods 2024-01-03 03:00:10 -05:00
c1446ddd92 improve error messages 2024-01-02 11:02:59 -05:00
94a124eb23 Merge branch 'lammps:develop' into alphataubio-charmmfsw-kk 2024-01-02 04:52:25 -05:00
0562c31138 added pair/lj/charmmfsw/coul/long/kk and dihedral/charmmfsw/kk so that lammps scripts generated by charmm-gui.org can be run without tweaks 2024-01-02 04:51:10 -05:00
ded160cd41 Generalizing fix update/special/bonds for pair hybrid 2023-12-31 10:49:59 -07:00
9546fd89e5 adjust heading levels 2023-12-23 12:16:53 -05:00
05bbb94345 add graph to show relation between branches and versions of LAMMPS 2023-12-23 12:06:38 -05:00
5d9f384338 recreate graphvis images with graphviz 8.1 2023-12-23 11:58:40 -05:00
b01065b398 use "neato" layout only for lammps-classes.dot to avoid issues with recent graphviz versions 2023-12-23 11:57:58 -05:00
bdb0fc6b7a replace non-ASCII character 2023-12-23 11:35:39 -05:00
0515f07172 whitespace 2023-12-23 03:00:11 -05:00
d080a1c218 Merge branch 'aip-water-update' of github.com:oywg11/lammps into collected-small-fixes 2023-12-23 02:46:55 -05:00
0822a49cfc Merge branch 'develop' into collected-small-fixes 2023-12-23 02:45:37 -05:00
35214120ad Merge pull request #4025 from oywg11/ilp-tmd-update
Add a new potential file for ilp/tmd
2023-12-22 21:06:27 -05:00
6a636d5491 Merge pull request #4023 from ndtrung81/unittest-debug
Updated the Developer unittest section for debugging failed unit tests individually
2023-12-22 19:59:14 -05:00
f147df8b44 add full list of atom pairs 2023-12-23 08:29:15 +08:00
6489e475b9 Merge pull request #4022 from akohlmey/cmap-fixes-for-charmm-gui
Corrections for fix cmap to be compatible with CMAP files created by CHARMM-GUI
2023-12-22 19:19:52 -05:00
4ea40ed2fd Merge branch 'ilp-tmd-update' of github.com:oywg11/lammps into collected-small-fixes 2023-12-22 14:45:43 -05:00
8cf958e241 Merge branch 'aip-water-update' of github.com:oywg11/lammps into collected-small-fixes 2023-12-22 14:44:27 -05:00
7cfbe77532 report incompatibility of verlet/split with INTEL package kspace styles 2023-12-22 13:42:56 -05:00
5b00ad8f71 flag error if using INTEL package kspace styles with run style verlet/split 2023-12-22 13:37:20 -05:00
c964d8cda8 skip python tests using numpy that fail randomly on macOS 2023-12-22 11:35:35 -05:00
efa37fff7f remove cached copy of "layout" since this was not always initialized when used 2023-12-22 11:31:31 -05:00
c4124c0995 correct statement about Xeon Phi support 2023-12-22 10:28:45 -05:00
a16a1a768c fix cut-n-paste bug and avoid uninitialized data access 2023-12-22 00:04:16 -05:00
f8495eaf75 make certain nbonds is initialized 2023-12-21 23:59:35 -05:00
2b31a2bed5 gracefully handle reaxff parameter files without hydrogen bond parameters 2023-12-21 16:07:58 -05:00
3b15594707 update citation comment 2023-12-21 15:58:29 -05:00
dedbd8f6db improvements from clang-tidy 2023-12-21 14:25:31 -05:00
b857cd9e39 update the doc file 2023-12-21 11:31:26 +08:00
b58203fc52 update the doc file 2023-12-21 10:44:03 +08:00
aa221e2f2b add new potential file for aip/water/2dm 2023-12-21 10:28:53 +08:00
e72f186123 check ghost vel in pair bpm/spring 2023-12-19 22:01:18 -07:00
86f87e0f7b Update docs 2023-12-19 10:46:41 -07:00
ab29200c60 More tuning 2023-12-19 10:26:52 -07:00
e98df7018b update the example files 2023-12-19 08:17:43 +08:00
6c798412b4 fix typo and remove unnecessary quotes 2023-12-18 18:52:42 -05:00
8e4871c5e1 Tune team params 2023-12-18 16:37:31 -07:00
af222711ae Added text to explain the output of ctest -V a bit more 2023-12-18 15:52:30 -06:00
3237c30117 reorganize the LAMMPS version and development description 2023-12-18 15:48:03 -05:00
c0c64e812f Enable default threading over neighbors for half list 2023-12-18 11:29:42 -07:00
dd1ac640ae Added declaration for FFT_KOKKOS variable 2023-12-18 12:56:30 -05:00
cddce67931 Merge branch 'develop' into issue3775_fft_kokkos 2023-12-18 12:14:15 -05:00
bc7050ab50 Added LMP_HEFFTE to CMakeLists.txt to attempt to fix a merge conflict 2023-12-18 12:11:31 -05:00
d02ffb0e70 Updated Summit & Frontier template Makefiles 2023-12-18 12:06:41 -05:00
bc47f4f3a3 Updated CMake preset files for kokkos-cuda and kokkos-hip 2023-12-18 11:56:23 -05:00
a6addbc907 Updated documentation for FFT_KOKKOS_ flags and CMake variable selection 2023-12-18 11:30:56 -05:00
4d2aed8937 bug fix
for when reaction site has angles, but post-reaction template has none (same for dihedrals, impropers)
2023-12-18 11:15:56 -05:00
7414fdaa47 Merge branch 'develop' of github.com:lammps/lammps into kk_half_thread 2023-12-18 09:03:39 -07:00
40f27eb7cf update doc file for ilp/tmd 2023-12-18 17:36:04 +08:00
20183ac9cc update potential file for ilp/tmd 2023-12-18 16:56:24 +08:00
8dcf980d0a update doc of ilp/tmd 2023-12-18 16:55:10 +08:00
ba4ac991b6 small fix for ilp/tmd and KC/full 2023-12-18 16:06:36 +08:00
94b62fa98b tweak epsilon 2023-12-17 21:22:33 -05:00
4c34bc2b9b upgrade CodeQL GitHub action scripts to latest version 2023-12-17 20:25:39 -05:00
188e1090e9 add some corrections and clarifications 2023-12-17 20:01:47 -05:00
e6a510ddc5 Merge branch 'lammps:develop' into bond_react_fixes_aug23 2023-12-17 17:02:18 -05:00
58ed034d7a Updated Developer unittest for debugging failed unit tests individually 2023-12-17 15:42:10 -06:00
d2ca1fe354 avoid that mliappy is initialized multiple times 2023-12-16 23:15:56 -05:00
4ae4c8103d step LAMMPS-GUI patch level 2023-12-16 22:46:02 -05:00
695a81ef70 avoid uninitialized data access 2023-12-16 21:50:38 -05:00
15a7b93361 relax epsilon to be compatible with most recent GCC compilers on Fedora 39 2023-12-16 17:40:31 -05:00
1ab406ee1a read CMAP data blocks one at a time and catch EOF exception to stop reading 2023-12-16 17:16:06 -05:00
4bf1b1d9c0 some refactoring and modernization 2023-12-16 17:15:31 -05:00
fb6a5843b9 handle comments in CMAP coeff assignments 2023-12-16 17:14:47 -05:00
96ef731f06 remove unused items 2023-12-16 17:14:19 -05:00
e100a42087 (re)throw EOF exception when next_dvector() has not yet read any items 2023-12-16 17:07:37 -05:00
41495579a6 update list 2023-12-16 00:18:05 -05:00
1f540772af Merge branch 'develop' into BPM 2023-12-15 15:25:35 -07:00
95d1a41ee4 Fixing bpm/sphere error in fix move, displace atoms 2023-12-15 13:33:45 -07:00
84af9e3476 remove hack 2023-12-14 22:02:39 -05:00
e36a764db2 add array and vector STL headers 2023-12-15 12:44:55 +10:00
abe6356716 update help index table for recently added or changed styles 2023-12-14 21:34:11 -05:00
a873106790 improve AMOEBA fix property/atom checks 2023-12-15 12:27:24 +10:00
09c87040b5 add border arguments to FixPropertyAtom add_custom functions 2023-12-15 11:54:15 +10:00
61ca9b79db add custom_border to Atom and AtomKokkos 2023-12-15 11:48:46 +10:00
5358a1b3b1 Merge remote-tracking branch 'github/develop' into collected-small-fixes 2023-12-14 20:16:11 -05:00
df7f3b8dea Merge pull request #3938 from rbberger/compute_reaxff_bonds_local
new compute: reaxff/atom
2023-12-14 20:10:52 -05:00
01ab951ff3 Merge pull request #3833 from evoyiatzis/master
Implementation of analytical expressions for Born matrix of some potentials & inclusion of angle contribution to stress/mop/profile
2023-12-14 20:08:12 -05:00
44fbcf7bfe reorder "ghost" processing in fix property/atom 2023-12-15 11:01:50 +10:00
54089fb5ab Revert "add extract function to fix_property_atom"
This reverts commit b199368c19.
2023-12-15 10:58:06 +10:00
1df91f21a1 workaround hack for macOS 2023-12-14 18:07:32 -05:00
172238f4ca workaround hack for macOS 2023-12-14 17:59:18 -05:00
c4626e982f revert bogus change 2023-12-14 17:19:45 -05:00
5f0bdca3f2 add missing override 2023-12-14 17:09:37 -05:00
ff0553e859 fix typos 2023-12-14 16:50:30 -05:00
7dab2b7eee add new package files to .gitignore 2023-12-14 16:21:17 -05:00
603837c96c add versionadded tag 2023-12-14 16:21:04 -05:00
5a9c9981e7 replace include file with forward declaration 2023-12-14 16:18:41 -05:00
a98ea8c3b2 Merge branch 'develop' into compute_reaxff_bonds_local 2023-12-14 16:16:34 -05:00
c45183d45c Updated CMake build system to allow for FFT_KOKKOS parameter. Updated CMakeLists.txt to print the correct value when summarizing. 2023-12-14 15:38:45 -05:00
ae58fe2732 silence compiler warning 2023-12-14 15:30:13 -05:00
4d6e70600e some more small changes for portability and clarity 2023-12-14 15:03:13 -05:00
eb4c85566e fix up port of platform::disk_free() to Windows 2023-12-14 13:06:20 -05:00
45ca21da3b fix typo 2023-12-14 11:21:16 -05:00
54ff3cf78f include new platform call in docs 2023-12-14 11:21:09 -05:00
298ce1863c coding style updates 2023-12-14 11:15:28 -05:00
727c3c9572 move call to determine free disk space to platform namespace 2023-12-14 11:15:11 -05:00
757f28f8bf correct info about fix halt default setting 2023-12-14 10:59:30 -05:00
9c01d64804 avoid accessing uninitialized data 2023-12-13 22:39:14 -05:00
48b5e16f5d remove unused class members, initialize pointers, adjust programming style 2023-12-13 22:39:14 -05:00
61fd4d643b correct logic for "cannot happen" case 2023-12-13 22:39:13 -05:00
00c3f14a63 Merge pull request #3430 from jtclemm/consolidate_neigh_classes
Reducing the number of npair and nstencil classes
2023-12-13 22:37:45 -05:00
b199368c19 add extract function to fix_property_atom 2023-12-14 11:10:33 +10:00
1420cd6879 Merge branch 'develop' of github.com:lammps/lammps into kk_half_thread 2023-12-13 15:42:49 -07:00
6d1d515f3a Fix compile issue 2023-12-13 15:32:32 -07:00
68c53886b8 Revert some name changes 2023-12-13 15:09:02 -07:00
1e0d0e327c Merge pull request #4004 from akohlmey/collected-small-changes
Collected small changes and updates
2023-12-13 16:25:16 -05:00
89c5ee7079 Merge pull request #3996 from lafourcadep/snann_slcsa
Compute sna/atom on fixed number of neighbors and compute slcsa/atom (Supervised Learning Crystal Structure Analysis tool)
2023-12-13 14:36:49 -05:00
37cb1ce30f Merge branch 'develop' of github.com:lammps/lammps into compute_reaxff_bonds_local 2023-12-13 11:14:45 -07:00
0cf4c9e7a3 Whitespace 2023-12-13 11:07:42 -07:00
0c4a1cb21d Merge pull request #4009 from ndtrung81/gpu-updates-Dec23
GPU package updates Dec 2023
2023-12-13 11:59:10 -05:00
754041ee36 minor fix 2023-12-13 11:57:03 -05:00
304e141f24 add missing define to GNU make based build of pace library as well 2023-12-13 11:46:01 -05:00
0b35b98722 add missing define to fix building ML-PACE with conventional build 2023-12-13 11:30:17 -05:00
f53e2c3398 update details about unittests 2023-12-13 00:49:41 -05:00
1cff1deedc add valgrind suppressions for MPICH on Fedora 39 2023-12-13 00:24:49 -05:00
5543912a12 add missing potential file 2023-12-12 23:58:43 -05:00
c2dbd7dc9d plug one more memory leak 2023-12-12 23:56:36 -05:00
569c23a1e6 Fixed typo with the kernel names in lj/cut/coul/cut/soft 2023-12-12 22:54:50 -06:00
29cf012061 re-use existing potential file, fix screen/log output, plug memory leaks 2023-12-12 23:28:09 -05:00
e7c330db9d Merge branch 'develop' into snann_slcsa 2023-12-12 22:30:20 -05:00
26d0671337 update compute slcsa example to better align with LAMMPS conventions and move to more appropriate folder 2023-12-12 22:30:15 -05:00
3a89af4469 silence preprocessor warning from leaking internal define in cython generated code 2023-12-12 21:52:45 -05:00
8f7d7f9178 Fixed typo in the pair style lj/cut/coul/cut/soft/gpu header 2023-12-12 20:15:05 -06:00
6923c04e47 spelling and formatting fixes. small clarifications 2023-12-12 21:01:20 -05:00
710776d4e8 Merge branch 'develop' into collected-small-changes 2023-12-12 20:35:55 -05:00
98feaa00cb Merge pull request #4012 from stanmoore1/kk_fix_temp
Port Fix temp berendsen and rescale to use Kokkos
2023-12-12 20:34:48 -05:00
ecc460b358 Added the new pair styles to Command_pairs.rst and pair_style.rst 2023-12-12 17:17:32 -06:00
9100f486cb Clarify and fix logic in multi, simplify skip 2023-12-12 15:51:02 -07:00
2a152eb078 Merge pull request #4011 from rbberger/python3.12_update
Use PyConfig to initialize Python
2023-12-12 17:27:24 -05:00
8104f68bc1 Merge pull request #3963 from mkstoyanov/heffte_integration
Heffte integration
2023-12-12 17:27:02 -05:00
75c3959cea Merge pull request #4006 from Birfy/develop
Fixing typos in fix_nh_uef.rst
2023-12-12 16:26:16 -05:00
c33d950ac3 Merge pull request #3869 from jmgoff/compute-pace-update
Compute pace update
2023-12-12 16:19:41 -05:00
e80c3d3215 Revert FFT_AT name change 2023-12-12 12:20:24 -07:00
d3eed12071 include documentation integration checks into "make check" in the src folder 2023-12-12 13:43:10 -05:00
7ed8779d28 tweak another epsilon for new GPU pair style 2023-12-11 23:18:08 -05:00
7881eeaa1c silence warnings about unused variables 2023-12-11 23:15:13 -05:00
669782cd5f Saved some exp operations 2023-12-11 21:26:12 -06:00
93f8ada8dc Fixed ecoul issue with the coul/slater/long kernels 2023-12-11 21:21:31 -06:00
1651a7741a relax epsilon for coul/slater long test a little for GPU forces 2023-12-11 18:51:09 -05:00
6e0e1dc44f Fixed atom force issues with the coul/long/slater kernels 2023-12-11 17:10:43 -06:00
354db72a10 update github action script for setting up python 2023-12-11 17:42:06 -05:00
930fbe8c5d reaxff/atom: First attempt of filtering by group 2023-12-11 14:07:48 -07:00
e241f08cfe Finish first version of compute reaxff/atom docs 2023-12-11 14:05:42 -07:00
e147d131fb Fix issue with temp compute 2023-12-11 12:58:15 -07:00
9d51d9c0e9 Update docs 2023-12-11 12:55:06 -07:00
48c85f7718 Port Fix temp berendsen and rescale to use Kokkos 2023-12-11 12:42:45 -07:00
1a3d36fdbf Use PyConfig to initialize Python 2023-12-11 12:39:31 -07:00
15f8488fc4 update developer contact email 2023-12-11 13:43:13 -05:00
af74afdf62 Editing intel files (to be templated) 2023-12-11 09:02:55 -07:00
25bb1633c3 fix typo and be more precise in describing what "Loop" time means 2023-12-11 09:48:07 -05:00
7c40170182 Fixing errors in headers 2023-12-10 21:37:13 -07:00
76bf35fa4d Added -allow-unsupported-compiler to nvcc for both CMake and traditional CUDA builds 2023-12-10 14:42:27 -06:00
37535267da clarify docs about fix phonon dependency on KSPACE 2023-12-10 15:27:50 -05:00
9a625b715a use Langevin thermostat with fix rigid/small instead of fix rigid/nvt/small
also intra-molecular non-bonded interactions are excluded now
2023-12-10 09:50:51 -05:00
bab9fc5533 Consolidating some skip npair classes 2023-12-09 22:00:22 -07:00
e727ec1eac Fixed compiling bugs revealed by CUDA builds, removed unused variables 2023-12-09 16:46:10 -06:00
267e360bac Fixed bugs with acquiring depsh from lib/gpu, updated the doc page 2023-12-09 15:39:54 -06:00
a365cb15b0 Updating class names in Intel 2023-12-09 14:18:20 -07:00
3830711dec Added the GPU version of sph/heatconduction 2023-12-09 15:15:13 -06:00
7679043793 Merge conflicts 2023-12-08 22:45:17 -07:00
010a7a4d44 check for out-of-range or invalid numbers more thoroughly 2023-12-08 21:07:38 -05:00
54a6143e9e Updated the doc pages for sph/lj/gpu and sph/taitwater/gpu 2023-12-08 14:27:00 -06:00
46a670889d Added BaseSPH for sph pair styles, fixed bugs with per-type arrays 2023-12-08 14:09:39 -06:00
0f78afc66f Added atom tag for dpd to work with tag and v 2023-12-08 00:20:53 -06:00
7fad795141 Added pair sph/taitwater/gpu in src/GPU 2023-12-08 00:10:01 -06:00
cad4c25750 Adding sph/taitwater in lib/gpu 2023-12-07 17:22:45 -06:00
6fe16c7606 Added pair style sph/lj/gpu in src/GPU, removed commented codes 2023-12-07 14:33:47 -06:00
e51a8ccfbf Removed the unnecessary line since CUDA_BUILD_MULTIARCH is ON by default 2023-12-07 12:00:24 -06:00
fef28c9daa Updated sph_lj kernels 2023-12-07 11:41:37 -06:00
379d3c8e20 Updated host_esph to extra data and cut to coeff 2023-12-07 11:06:17 -06:00
26c7358a84 Working on sph_lj kernels 2023-12-07 10:24:25 -06:00
1849df15e0 Removed unused member functions in edpd 2023-12-07 10:16:40 -06:00
0940793537 Updated the coul_soft and coul_long_soft kernels with forces as acctyp3 2023-12-07 09:23:49 -06:00
52f576fd1c update fix adapt/fep from fix adapt. only supports 2-d parameters for pair styles 2023-12-06 13:54:44 -05:00
884af7e88c update list of supported pair styles and parameters 2023-12-06 13:53:45 -05:00
51eebf311f Added fft settings to Install.sh, fixed typo in HIPFFT_C2C and HIPFFT_Z2Z 2023-12-06 12:40:11 -05:00
48ef968dd2 Decoupled all variable typenames from the non-kokkos FFT 2023-12-06 12:01:06 -05:00
0e98e706c6 Added LMPFFT settings for Kokkos-specific FFTs 2023-12-06 11:49:54 -05:00
fc897512a0 Initial conversion of all FFT_ settings in the KOKKOS subdirectory to FFT_KOKKOS_ 2023-12-06 11:13:34 -05:00
e05751f487 Update fix_nh_uef.rst
Fixing typo
2023-12-06 08:14:12 -05:00
9edf553332 flag development branch 2023-12-06 07:22:23 -05:00
9c103ff6e2 fix some accumulated formatting and spelling issues in the manual 2023-12-06 02:59:47 -05:00
b94642ccf8 Merge branch 'develop' into collected-small-changes 2023-12-06 02:51:51 -05:00
30051ec260 Merge pull request #3858 from jtclemm/new-computes
Adding tools to identify rattlers and measure nonaffine displacement
2023-12-06 02:51:21 -05:00
c092de9bc3 Merge pull request #3985 from yury-lysogorskiy/feature/zbl
ACE/ZBL core repulsion (+Kokkos implementation)
2023-12-06 01:22:06 -05:00
131f3cee20 fix typo 2023-12-05 22:09:06 -05:00
c90999a083 cosmetic 2023-12-05 21:56:29 -05:00
3e3454e3e1 Merge pull request #4005 from jibril-b-coulibaly/small_changes
Add doc to partially or undocumented features
2023-12-05 16:59:44 -05:00
21027d660d Clarify exception handling some more. 2023-12-05 16:35:07 -05:00
e53b3c76f5 Updated doc pages for the added pair styles, added a cmake preset for gpu-cuda, added "comm_modify vel yes" to in.mdpd 2023-12-05 15:32:57 -06:00
fe96d9f836 Added the GPU version of pair edpd and mdpd 2023-12-05 13:34:37 -06:00
086cf49a8c Added the GPU version of coul/slater/long 2023-12-05 13:32:33 -06:00
9588ddabf6 Added the GPU versions of lj/cut/coul/cut/soft and lj/cut/coul/long/soft 2023-12-05 13:30:26 -06:00
17ffd5c228 remove misplaced file 2023-12-05 06:16:48 -05:00
e5ae46a01a update compute pace example to follow usual conventions 2023-12-05 06:15:40 -05:00
73f1bac827 remove commented out code. print warnings only on mpi rank 0 2023-12-05 06:09:34 -05:00
7d8de8301f Merge branch 'develop' into compute-pace-update 2023-12-05 06:05:34 -05:00
a5894d8ab3 clarify 2023-12-05 03:18:56 -05:00
250307f7c6 add description for undocumented Body entries in molecule command 2023-12-04 21:29:37 -07:00
69fb814b33 Remove duplicated code, small whitespace tweaks 2023-12-04 17:31:38 -07:00
1f7d262bd7 add mol keyword to fix rigid doc 2023-12-04 16:01:39 -07:00
e0862c6618 must do region check only when region is active 2023-12-03 11:22:03 -05:00
2a245f780a initialize class members 2023-12-03 04:45:53 -05:00
47edf5effa use memory class for memory allocation consistently 2023-12-03 04:33:00 -05:00
c0cab665e4 complete printf format 2023-12-03 04:18:44 -05:00
21701a5eac correct dpi to get proper image scaling in PDF output 2023-12-02 16:34:32 -05:00
8389e2eb80 Merge pull request #4000 from akohlmey/collected-small-changes
Collected small changes
2023-12-02 12:15:36 -05:00
d77ba37128 Merge pull request #3962 from ndtrung81/amoeba-pppm-accuracy
AMOEBA/HIPPO RMS force accuracy estimate
2023-12-02 10:39:54 -05:00
7f3af781fa remove superflous class member. 2023-12-02 09:37:36 -05:00
318556497f refactor balance and fix balance to std::string to avoid buffer overflows 2023-12-02 09:32:53 -05:00
2970d73d22 cosmetic 2023-12-02 08:53:20 -05:00
cace83e30d improve error handling to make coverity scan happy 2023-12-02 08:53:05 -05:00
4035291a48 Merge branch 'develop' into collected-small-changes 2023-12-02 08:17:11 -05:00
f0d8a70757 Merge pull request #4002 from akohlmey/moltemplate-howto
Add moltemplate tutorial to HowTo section
2023-12-02 07:58:09 -05:00
95c2ad5150 Merge pull request #3998 from Bibobu/replicate_labelmap
Adding copy of label maps while using replicate command
2023-12-02 06:06:54 -05:00
a3d44e0048 make map types to merge explicit 2023-12-02 05:13:44 -05:00
1b282ad3fd Merge pull request #4001 from akohlmey/remove-reaxc
Remove "reax/c" alias for sources and examples and require to use "reaxff"
2023-12-02 02:32:12 -05:00
41a5fbc025 ensure must_check is initialized 2023-12-01 20:14:22 -05:00
ef2a420aeb modernize 2023-12-01 17:16:25 -05:00
782ca9e0ff Thread over neighbors in addition to atoms when using a half neighbor list 2023-12-01 14:46:30 -07:00
e41d9cb746 added explanations about the stock backend to the cmake 2023-12-01 15:21:23 -05:00
3c331321b3 update the naming convention 2023-12-01 15:12:23 -05:00
bc7d0f5d50 renamed cmake option 2023-12-01 15:12:23 -05:00
d0ae489dda addressed some pr comments 2023-12-01 15:12:23 -05:00
f75648030f document traditional make 2023-12-01 15:12:23 -05:00
a6e629f4e4 update variable names 2023-12-01 15:12:23 -05:00
77ad067458 added documentation 2023-12-01 15:12:23 -05:00
03b6b2d030 enable automatically downlowding of heffte 2023-12-01 15:12:23 -05:00
5bbdfe5b4f enabled the use of heffte for the cpu backend 2023-12-01 15:12:23 -05:00
303f365435 Added reference to the related enum in the Atom class. 2023-12-01 17:12:15 +01:00
1f86706710 make more cases specifying cutoff Rc/r_c consistent 2023-12-01 05:49:20 -05:00
0d3f111627 use r_c consistently 2023-12-01 05:43:42 -05:00
42ac8a9e9b use r_c consistently 2023-12-01 05:36:25 -05:00
e3574e84ec correct spelling of r_c 2023-12-01 04:31:06 -05:00
14d08f0284 recreate compute xrd mesh image with reasonable dpi setting and used PNG format 2023-12-01 00:37:42 -05:00
97a0885145 Merge pull request #3997 from ConnorSA/mlquip
adding the scale feature of quip calculator, allows fix adapt functio…
2023-11-30 17:10:25 -05:00
28e22862c8 reformat 2023-11-30 16:57:43 -05:00
9aaa38d912 mention tutorial files location 2023-11-30 16:48:19 -05:00
f6b644388c add moltemplate tutorial to HowTo section 2023-11-30 16:41:19 -05:00
6c992ee511 rearrange and rewformulate content of the tip4p pair style docs to make it more obvious 2023-11-30 14:53:24 -05:00
605dc08e73 whitespace 2023-11-30 11:35:44 -07:00
049fd06bdf handle thermo_modify energy yes correctly 2023-11-30 10:31:30 -05:00
00be75e084 update example inputs and logs for change in ReaxFF required name 2023-11-30 10:31:08 -05:00
6ff87f5c39 remove reax/c aliases and related code checking for them 2023-11-30 05:41:05 -05:00
a377f2a271 document removal of "reax/c" aliases for ReaxFF pair styles and fixes 2023-11-30 05:39:50 -05:00
368ea39816 fully integrate additions into distribution 2023-11-29 02:12:23 -05:00
fe418bbe77 spelling 2023-11-29 02:11:54 -05:00
918cddfb90 reformat to conform to LAMMPS writing style 2023-11-29 02:11:44 -05:00
d39cd265ae make citations consistent 2023-11-29 02:11:18 -05:00
a38fade483 whitespace fixes 2023-11-29 01:35:49 -05:00
28a89100e8 Merge branch 'develop' into snann_slcsa 2023-11-29 01:34:17 -05:00
f36f846e19 Merge branch 'develop' into mlquip 2023-11-28 09:23:53 -05:00
f83a3dd989 whitespace one more time 2023-11-28 09:23:31 -05:00
7631f2baa2 follow LAMMPS programming style more closely 2023-11-28 09:22:31 -05:00
34e373d114 removed tabs and unsused itype variable 2023-11-28 13:33:03 +00:00
8c34f7f7b8 switched 2D array out for scalar, and updated documentation 2023-11-28 11:37:59 +00:00
d57979eede Merge branch 'develop' of github.com:lammps/lammps into replicate_labelmap 2023-11-28 12:09:57 +01:00
dcb4127631 Added label map copy to replicate.cpp 2023-11-28 12:05:51 +01:00
2825aeff48 apply changes suggested by coverity scan 2023-11-28 05:26:45 -05:00
87c9891c07 Merge remote-tracking branch 'public-lammps/develop' into feature/zbl 2023-11-28 09:13:37 +01:00
4fd63612f8 correct misformatted tables 2023-11-27 23:21:13 -05:00
92220140ab indicate if Intel package SIMD directives are enabled 2023-11-27 22:20:50 -05:00
664ffbedac fixed a missed scale of vdw via quip_energy 2023-11-28 03:16:37 +00:00
bbef545675 Merge pull request #3988 from akohlmey/collected-small-changes
Collected small changes and fixes
2023-11-27 21:41:03 -05:00
631dcc36de BUGFIX: TagPairPACEComputeNeigh - explicitly check if atom has neighbours (ncount>0), only them run parallel_reduce, otherwise set d_d_min and d_jj_min to default values 2023-11-27 23:51:51 +01:00
99f0a7aa8e upd version string in ML-PACE package 2023-11-27 22:38:35 +01:00
d76230c490 Merge pull request #3993 from alphataubio/patch-1
Update atom_map_kokkos.cpp to fix overflow warning
2023-11-27 15:09:39 -05:00
b03bee49b3 Small tweak to fix warning 2023-11-27 11:48:42 -07:00
7249aea5e5 error out when no per-type masses are set. warn if both per-type and per-atom masses are used. 2023-11-27 07:47:08 -05:00
7dbd649683 fix cut-n-paste bug 2023-11-27 05:31:30 -05:00
9e1f85518c avoid segfault with immediate variables 2023-11-27 05:31:12 -05:00
a1d2256e60 Added example for use of compute sna/atom on a fixed number of neighbors + use of compute slcsa/atom for crystal structure classification on a case of HCP to BCC phase transition in Zr 2023-11-27 09:22:03 +01:00
1d25862146 update documentation for the fact that exceptions in LAMMPS are always used 2023-11-26 13:11:18 -05:00
b90d63a192 add versionaddded tag for new feature 2023-11-26 11:00:02 -05:00
088c5d72a8 correct fix mvv/* compatibility checks in DPD-MESO package 2023-11-26 10:31:24 -05:00
7ac5f590ee Merge branch 'develop' into collected-small-changes 2023-11-25 22:36:39 -05:00
d4fe21f34d update pair_pace.rst documentation page 2023-11-25 23:37:01 +01:00
c0631c9bd2 add per-atom array corerep_factor to all four pair styles: pace, pace/extrapolation, pace/kk, pace/extrapolation/kk
upd PACELIB_URL to v.2023.11.25 (+md5sum) in ML-PACE.cmake and Install.py
2023-11-25 23:04:18 +01:00
b7376e3459 Merge pull request #3990 from lammps/variable-custom-atom-properties
Enable direct custom atom property references in variable formulas
2023-11-25 10:03:17 -05:00
e3ba19c145 Merge branch 'develop' into variable-custom-atom-properties 2023-11-25 06:42:38 -05:00
e4149035fa restore using nvcc_wrapper with kokkos-cude.cmake preset 2023-11-25 05:58:43 -05:00
e15aef290d Update atom_map_kokkos.cpp to fix overflow warning
fix overflow compile warning while building KOKKOS package with -D LAMMPS_SIZES=bigbig:

/home/XXXX/lammps-2Aug2023/src/KOKKOS/atom_map_kokkos.cpp: In lambda function:
/home/XXXX/lammps-2Aug2023/src/KOKKOS/atom_map_kokkos.cpp:218:21: warning: overflow in conversion from ‘long int’ to ‘int’ changes value from ‘9223372036854775807’ to ‘-1’ [-Woverflow]
  218 |     int i_closest = MAXTAGINT;
      |                     ^~~~~~~~~
2023-11-25 03:06:10 -05:00
b4c09a3d65 Merge branch 'develop' into collected-small-changes 2023-11-25 02:57:03 -05:00
4380806a30 Merge pull request #3987 from lammps/variable-ternary-function
Add a ternary math function to equal- and vector- and atom-style variables
2023-11-25 02:56:27 -05:00
10f207b986 Merge pull request #3992 from akohlmey/linalg-lapack-3.12
Update internal linear algebra library to LAPACK 3.12
2023-11-24 19:16:02 -05:00
239407c4eb Merge pull request #3983 from stanmoore1/kk_update_4.2
Update Kokkos library bundled in LAMMPS to v4.2
2023-11-24 18:51:39 -05:00
2a1af662d4 update to LAPACK 3.12 2023-11-24 15:29:14 -05:00
ea7f0deb42 some compilers require a code block to follow OpenMP pragmas, even if empty. 2023-11-24 14:46:49 -05:00
ab31a532e2 Possibility to compute bispectrum on a fixed target number of neighbors using compute_sna_atom for crystal structure classification purpose. Add of a compute_slcsa_atom compute style that takes the newly computed bispectrum as an input and performs dimension reduction + logistic regression classification. Documentation has been modified/added and code cleaned. 2023-11-24 19:09:30 +01:00
351fc63f27 use const reference instead of copy 2023-11-24 01:20:10 -05:00
cea1528765 update list of packages included in coverity runs 2023-11-24 01:08:34 -05:00
1f6f612bb6 remove redundant code and fix memory leaks 2023-11-24 01:02:00 -05:00
09acf1b409 add versionadded tag 2023-11-23 19:56:51 -05:00
a76b02dd57 correct broken link 2023-11-23 19:53:12 -05:00
0f5d24cd1a fix table format 2023-11-23 16:21:41 -05:00
dc32efe9be whitespace 2023-11-23 16:19:43 -05:00
35103df86b make compatible with Kokkos 3.7 2023-11-23 14:25:30 -05:00
4cf8045f81 add check and document that "scale yes" is not supported for scaling atomic parameters with fix adapt/fep 2023-11-23 12:37:49 -05:00
961cbfbe10 add custom atom property refs to variable syntax 2023-11-22 22:40:58 -07:00
9c19495392 detect newer OpenMP standard versions 2023-11-23 00:37:26 -05:00
742a772767 report Kokkos library version and OpenMP standard version 2023-11-23 00:24:34 -05:00
85ac2dc5fd correct formatting of table 2023-11-22 19:52:44 -05:00
64573b7b32 add unit tests for new variable function 2023-11-22 19:47:51 -05:00
0db826ae77 whitespace 2023-11-22 19:39:29 -05:00
0dd19b2cbf doc page update 2023-11-22 15:25:19 -07:00
eb6c101d94 add ternary math function 2023-11-22 09:49:11 -07:00
bf498022cc use inum instead of list->inum 2023-11-22 14:44:49 +01:00
2e421b2eac fix ML_PACE.cmake 2023-11-22 10:36:39 +01:00
77549414ae - implementation of ZBL-core repulsion with smooth transition from ACE to ZBL + Kokkos implementation
- automatic BBasis(.yaml) to CTildeBasis(.yace) conversion for pair_pace
2023-11-22 10:19:18 +01:00
83f91d4ac7 Update docs 2023-11-21 18:50:13 -07:00
6b822c1d0e Update CMake 2023-11-21 15:13:56 -07:00
3306b95589 Update Kokkos library in LAMMPS to v4.2 2023-11-21 15:02:12 -07:00
b72c34d497 compute reaxff/atom: return tag[i] instead of i 2023-11-21 14:20:17 -07:00
a5cc181358 Start with compute reaxff/atom documentation 2023-11-21 14:03:10 -07:00
33dcfb5390 Merge pull request #3978 from akohlmey/next_patch_release
Update version strings for 21 Nov 2023 feature release
2023-11-21 15:51:35 -05:00
fd83ed4004 compute reaxff/atom: add support for pair hybrid 2023-11-21 13:42:51 -07:00
fef0e0762b Merge pull request #3981 from rbberger/update_cmake_codeowner
Update CODEOWNERS, part 2
2023-11-21 14:27:07 -05:00
16f0806da0 Rename compute to reaxff/atom 2023-11-21 11:19:47 -07:00
fc28fc318b Update CODEOWNERS for cmake 2023-11-21 10:57:33 -07:00
92c5150034 Merge pull request #3979 from akohlmey/intel-fmtlib-workarounds
Workaround for bug in C++17 support in Intel Classic compilers with fmtlib
2023-11-21 09:35:34 -05:00
f25075db6c adding the scale feature of quip calculator, allows fix adapt functionallity 2023-11-21 13:57:34 +00:00
afd0107f01 Add new files to makefile build system 2023-11-20 11:14:05 -07:00
9bffeb9512 Next iteration 2023-11-20 11:14:05 -07:00
717e7b0649 Address comments 2023-11-20 11:14:05 -07:00
ca143e6ba8 undo minor change 2023-11-20 11:14:05 -07:00
a72a3ed50d Kokkos version of compute reaxff/bonds 2023-11-20 11:14:05 -07:00
fea5f5a243 First serial version of Steve's suggestion 2023-11-20 11:14:05 -07:00
bbc2794df2 add reaxff/bonds/local/kk 2023-11-20 11:14:05 -07:00
5830dec742 new compute: reaxff/bonds/local 2023-11-20 11:14:05 -07:00
ac90a4ac9c reorder for cleaner dependency handling 2023-11-19 09:19:03 -05:00
6cd2055084 delete obsolete dependencies 2023-11-19 09:18:40 -05:00
bc692dce79 add missing entries 2023-11-19 09:18:17 -05:00
3c73882a68 update Purge.list and avoid redundant checks 2023-11-19 08:59:27 -05:00
de7f87621a Merge pull request #3974 from stanmoore1/skip_trim
Add trim option to skip neighbor list build styles
2023-11-19 07:02:40 -05:00
11305107d9 update release date to 21 November 2023 2023-11-19 05:40:05 -05:00
d60fb7067a Merge branch 'develop' into next_patch_release 2023-11-19 05:31:41 -05:00
0487dc5331 copy intel C++17 compiler hack to Kokkos makefiles 2023-11-18 11:15:53 -05:00
2d4527d59a tweak intel compiler makefile for traditional build 2023-11-18 07:14:38 -05:00
baa00d22e9 simplify 2023-11-18 06:22:25 -05:00
c66710934d reduce warnings when compiling with intel classic compilers 2023-11-18 06:22:16 -05:00
be286d2c7d lower the C++ standard to 14 for some files when compiling with intel classic compiler 2023-11-18 06:21:28 -05:00
6ae0715650 Merge pull request #3976 from akohlmey/collected-small-fixes
Collected small fixes and updates
2023-11-18 00:03:37 -05:00
d1f3411db9 Merge branch 'develop' of github.com:lammps/lammps into skip_trim 2023-11-17 17:49:27 -07:00
be19b5c210 Make naming consistent 2023-11-17 12:46:45 -07:00
6fc7f5689b Port changes to OPENMP package 2023-11-17 10:04:11 -07:00
06b962fc33 Bugfix: port missed changes from #3846 2023-11-17 09:50:03 -07:00
0083cc9e26 Port changes to OPENMP and INTEL packages 2023-11-17 09:12:43 -07:00
2c670e8d44 update version strings to 17 Nov 2023 2023-11-17 08:25:44 -05:00
5223f2dfb4 Merge remote-tracking branch 'akohlmey/numerial_propagation' into collected-small-fixes 2023-11-17 08:10:13 -05:00
ab183eb6e6 Merge remote-tracking branch 'github/develop' into collected-small-fixes 2023-11-17 08:09:58 -05:00
9a432341f9 Merge pull request #3970 from Yi-FanLi/numerial_propagation
fix pimd/langevin: add support for plain integrators without normal mode transformation
2023-11-17 08:08:33 -05:00
a4da55942a check if creating unix domain socket failed 2023-11-17 03:16:27 -05:00
e59a665943 add tests for immediate variables 2023-11-17 03:00:16 -05:00
ea8234a875 treat immediate variables like equal style also for evaluating references to computes and fixes 2023-11-16 22:08:00 -05:00
752088c410 Merge pull request #3975 from jibril-b-coulibaly/small_changes
correct typo and link in body particles doc
2023-11-16 21:16:22 -05:00
d739faf971 disable if constexpr for all Intel compilers 2023-11-16 21:14:55 -05:00
98ba8706a5 Merge branch 'develop' of github.com:lammps/lammps into skip_trim 2023-11-16 16:28:47 -07:00
4608444ada Add trim option to skip neighbor list build styles 2023-11-16 16:23:09 -07:00
6f366b8c74 Fix issues with sorting neigh list by cutoff distance 2023-11-16 16:21:59 -07:00
718cfc4562 Fix indexing bug 2023-11-16 16:19:44 -07:00
ddd5cc1a73 avoid segfault on command errors in force style unit tests and print error mesage instead 2023-11-16 17:53:12 -05:00
ac5f28719b explicitly include if constexpr only when C++17 or later is selected 2023-11-16 17:52:58 -05:00
44b126a87d correct typo and link in body particles doc 2023-11-16 10:35:02 -07:00
ba1c848f43 Merge branch 'develop' into numerial_propagation 2023-11-16 12:01:11 -05:00
7f2a6b1a85 update h2 fix pimd/langevin example 2023-11-16 12:00:29 -05:00
1f509d900e make output more consistent with other LAMMPS code 2023-11-16 11:57:33 -05:00
3664eaf12f Merge pull request #3973 from stanmoore1/kk_min
Bugfixes for Kokkos minimize
2023-11-16 08:46:22 -05:00
d31c3abbd4 Merge pull request #3971 from akohlmey/collected-small-fixes
Collected small fixes and updates
2023-11-15 17:08:30 -05:00
f512a37173 add versionadded tag 2023-11-15 10:45:37 -05:00
e39a52879c update .gitignore 2023-11-15 10:44:05 -05:00
4760c02182 Merge branch 'develop' into compute-pace-update 2023-11-15 10:29:19 -05:00
b326572916 flag input errors 2023-11-15 09:49:58 -05:00
aec2266064 fix typo 2023-11-15 09:43:02 -05:00
aa8f9e956f Merge branch 'develop' into collected-small-fixes 2023-11-15 08:32:06 -05:00
bcfbea9903 throw error for illegal replication values 2023-11-15 08:03:15 -05:00
5e4761d631 Merge pull request #3724 from lammps/fix-rigid-enforce2d
Enable fix rigid to support 2d enforcement internally
2023-11-15 07:08:38 -05:00
e6485002ad Avoid integer division 2023-11-13 15:08:49 -07:00
d88ffeea3f Need force_clear for atom_vec_spin_kokkos 2023-11-13 14:58:48 -07:00
bc6031cd24 Fix bug in Kokkos minimize + fix deform 2023-11-13 14:53:45 -07:00
443f0666b7 refactor some more temperature/pressure/pe compute lookups 2023-11-12 16:12:16 -05:00
3390a11312 improve error detection and messages 2023-11-12 10:04:04 -05:00
be6fcaa77f modernize 2023-11-12 04:58:24 -05:00
e6524b59fa only check significant chunk of the words 2023-11-12 04:43:17 -05:00
be02ef3a53 fix broken link 2023-11-12 04:43:17 -05:00
0f375715db modernize 2023-11-11 13:27:44 -05:00
649aad3877 modernize 2023-11-11 11:28:40 -05:00
7a425475e0 get rid of redundant class members 2023-11-11 10:27:28 -05:00
27d0d98e80 Merge pull request #4 from akohlmey/numerial_propagation 2023-11-11 06:21:59 -05:00
9ef1b2d64d apply clang-format 2023-11-11 06:20:55 -05:00
6850aacc55 doc tweaks 2023-11-11 06:09:15 -05:00
ca7242bf41 Merge branch 'develop' into numerial_propagation 2023-11-11 06:05:22 -05:00
3d14e2e0e2 whitespace 2023-11-11 06:05:07 -05:00
2e43bb0865 correct usage of virtual and override for rigid fixes and OpenMP versions 2023-11-11 05:56:06 -05:00
9a65bd4e3b update document for method=pimd 2023-11-11 04:10:31 -05:00
4ef27552c4 fix spring_force()'s position 2023-11-11 03:10:00 -05:00
ae05e35017 Merge branch 'develop' into fix-rigid-enforce2d 2023-11-11 02:21:25 -05:00
781eadc9c3 Merge pull request #3950 from akohlmey/collected-small-fixes
Collected small fixes and updates
2023-11-11 02:06:54 -05:00
ba32afc06e fix spring_energy 2023-11-11 01:45:36 -05:00
98a0f43c9b add spring_force function 2023-11-11 01:04:13 -05:00
ae3c332667 Tested a coarser PME mesh with a lower accuracy (2e-4) 2023-11-10 16:16:49 -06:00
6393519419 q_step function 2023-11-10 16:07:00 -05:00
beea2a6ee1 Merge branch 'develop' into collected-small-fixes 2023-11-10 10:57:08 -05:00
23ae4a34b3 Merge pull request #3958 from jrgissing/fix_deposit-var-keyword
Fix deposit var keyword
2023-11-10 10:56:21 -05:00
41a3115801 Merge pull request #3966 from yury-lysogorskiy/patch-2
[BUGFIX] Update pair_pace_extrapolation.cpp
2023-11-10 10:49:40 -05:00
6dca6471a3 Merge pull request #3968 from rbberger/fix_wrong_argv_bugs
Bugfix: Correctly build argv with nullptr at the end
2023-11-10 10:48:18 -05:00
f413d395a5 add support for method=PIMD; add q_step function 2023-11-10 00:20:51 -05:00
e6d3148533 add method=pimd support for Langevin thermostat 2023-11-09 23:34:01 -05:00
eff65ad3f3 bugfix: correctly build argv when using Python interface 2023-11-09 20:29:14 -07:00
64fa32cf1e Removed commented lines 2023-11-09 10:13:23 -06:00
053a904d08 bugfix: make copy of exename 2023-11-08 09:18:58 -07:00
46768d0ff3 Correctly build argv with nullptr at the end 2023-11-08 09:18:58 -07:00
6fef7871e8 Update pair_pace_extrapolation.cpp
BUGFIX: pair_pace_extrapolation: setup flag aceimpl->ace->compute_projections = true before computing  extrapolation grade
2023-11-07 16:46:47 +01:00
17640f54d2 reset warnflag for each run 2023-11-04 17:53:19 -04:00
3d3b07f0d4 consolidate nb3b pair style docs 2023-11-03 22:39:42 -04:00
9b88ba595d reduce timestep to get correct runs and no crashes. update logs. 2023-11-03 16:52:35 -04:00
0fbe388cbd undo "boxgeom" changes 2023-11-03 16:40:18 -04:00
a0f7612f13 encode system box geometry into a class member 2023-11-03 03:25:08 -04:00
f288efe823 Merge branch 'collected-small-fixes' of https://github.com/akohlmey/lammps into collected-small-fixes 2023-11-02 17:45:31 -04:00
6102c2a460 Forces are not modified 2023-11-02 13:10:27 -06:00
8c3cda0aea Fix bug in fix_dt_reset_kokkos 2023-11-02 13:05:18 -06:00
925d006d19 join wrapped strings 2023-11-02 13:43:37 -04:00
e655cda066 Merge pull request #3828 from vladgl/kk-ompi-rocm
Dynamic check for CUDA and ROCm-aware OpenMPI support in KOKKOS package
2023-11-01 18:10:59 -04:00
bee1b66365 Merge branch 'develop' into collected-small-fixes 2023-11-01 17:57:56 -04:00
45582fee07 Merge pull request #3960 from akohlmey/nb3b-screened
New pair_style nb3b/screened
2023-11-01 14:57:00 -04:00
745f2e6c54 Changing logic for self-bin check, newton+ortho 2023-11-01 12:22:30 -06:00
da597880a5 add code to avoid deadlock 2023-11-01 05:11:43 -04:00
7fbde12e6a Merge branch 'develop' into collected-small-fixes 2023-11-01 05:01:03 -04:00
b8a0622be1 Merge pull request #3964 from lammps/compute-cluster-atom-bugfix
Fix bug with compute cluster/atom and aggregate/atom when used with fix deform
2023-11-01 04:59:15 -04:00
74efe0a00c add comm of ghost atom coords to compute cluster/atom and aggregate/atom 2023-10-31 16:02:49 -06:00
4f3162888b remove debug code 2023-10-31 12:55:49 -04:00
9807316e7c Cleaned up and added comments 2023-10-31 11:15:24 -05:00
288629bd13 Added an RMS accuracy estimate for AMOEBA/HIPPO 2023-10-31 11:03:37 -05:00
ac527e3d3f store invrho instead of rho 2023-10-31 10:07:53 -04:00
a4064e5202 update code owners for new pair style 2023-10-31 09:37:38 -04:00
41fb0a5700 make README consistent with potential file and implementation 2023-10-31 09:34:32 -04:00
e04dfc55bd replace UTF-8 characters with their ASCII counterparts 2023-10-30 23:24:54 -04:00
14f8d99894 update ReaxFF force field info and remove references to reax and reax/c pair styles 2023-10-30 23:21:46 -04:00
5674786acd add feature to comment out and uncomment lines and selections from context menu 2023-10-30 15:25:06 -04:00
afa149ba1a Merge remote-tracking branch 'github/develop' into collected-small-fixes 2023-10-30 12:25:18 -04:00
6056941688 add pair_style nb3b/screened by Federica Lodesani 2023-10-30 11:28:45 -04:00
2e1ee3ff7a Merge branch 'lammps:develop' into fix_deposit-var-keyword 2023-10-30 10:57:50 -04:00
f0a15036cd Merge pull request #3957 from jrgissing/record_particle_insertions
Record particle insertions
2023-10-30 10:07:52 -04:00
f3a7ec8c55 copy/paste issues 2023-10-29 16:19:11 -04:00
d4ee6f476c var/set docs for fix_deposit 2023-10-29 16:13:12 -04:00
549ea506d4 add var keyword to fix_deposit
borrowed from create_atoms
2023-10-29 15:46:55 -04:00
c5c816e360 Add another check 2023-10-28 20:14:53 -06:00
56d2a791af whitespace 2023-10-28 14:01:39 -04:00
902c43e8c6 formatting 2023-10-28 13:45:55 -04:00
db91f9413d docs 2023-10-28 13:41:42 -04:00
c5463e13f1 output ninserted for fixes: deposit+pour 2023-10-28 13:22:10 -04:00
ef2b3a7d70 remove accidentally committed file 2023-10-28 05:25:05 -04:00
d35c271677 limit the maximum number of iterations so the LAMMPS simulation will not stall 2023-10-27 19:10:55 -04:00
6c3206f2f6 Tweaks 2023-10-27 15:41:21 -06:00
588be47b18 remove dead code 2023-10-27 17:02:21 -04:00
e7fc2923a5 whitespace 2023-10-27 14:59:51 -06:00
36690a861d correct and simplify 2023-10-27 16:33:24 -04:00
784ae460a1 only offer completion in context menu, if there is something to complete 2023-10-27 13:18:19 -04:00
0ab6870402 Need to include MPI header 2023-10-27 10:31:24 -06:00
16dd61ca5f Remove redundant compile-time checks 2023-10-27 09:48:26 -06:00
d79aca6015 fix bug in not listing all not compiled-in styles 2023-10-27 11:08:02 -04:00
e431a972ad Stop processing commands when "quit" is found instead of crashing.
When using the library interface for processing commands, the "quit"
command will terminate the application. Instead we intercept and just
stop processing the command buffer and print a suitable message.

Long-term, we perhaps may want to add a "QuitException" and throw that.
2023-10-27 11:06:59 -04:00
6b4a190820 must skip quit command death test with MPICH version 4.1 and later due to using threads 2023-10-27 03:51:19 -04:00
dc9140dfa8 modernize 2023-10-27 03:19:11 -04:00
5a665c31f6 use better heuristics to avoid zero plot ranges 2023-10-27 00:20:34 -04:00
b9283cfcf6 modernize 2023-10-27 00:20:05 -04:00
717e1d4319 Merge branch 'collected-small-fixes' of github.com:akohlmey/lammps into collected-small-fixes 2023-10-26 20:48:47 -04:00
d33a8ea0c2 whitespace 2023-10-26 20:48:20 -04:00
c02782413f Merge remote-tracking branch 'github/develop' into collected-small-fixes 2023-10-26 20:35:36 -04:00
ed6c603488 Merge pull request #3954 from bnebgen-LANL/mliap_null_fix
Mliap null fix
2023-10-26 20:18:32 -04:00
7051852f8f Merge pull request #3947 from evoyiatzis/patch-7
Enable definition of cone region using equal variables
2023-10-26 20:07:09 -04:00
b1ffb70f7d Logic tweak 2023-10-26 17:20:33 -06:00
eea3b1a757 Whitespace 2023-10-26 13:59:36 -06:00
b6b8884bc6 clear data buffer when querying LAMMPS for info, check return values, use symbolic constant 2023-10-26 13:58:17 -04:00
22c47a4e1b expand x or y range for charts if too small 2023-10-26 12:21:48 -04:00
1e533d6496 simplify 2023-10-26 12:20:47 -04:00
ed4ae0a26c find more misformatted references in ReST sources 2023-10-26 04:46:33 -04:00
5e402c76c2 Merge remote-tracking branch 'github/develop' into collected-small-fixes 2023-10-26 04:42:24 -04:00
226786969a Merge pull request #3953 from jibril-b-coulibaly/fix_wall_region_eflag
Fix wall region eflag
2023-10-26 04:41:51 -04:00
47dd98dd34 whitespace 2023-10-25 20:38:20 -04:00
8aa28e40b7 Merge branch 'mliap_null_fix' of github.com:bnebgen-LANL/lammps-kokkos-mliap into mliap_null_fix 2023-10-25 14:40:06 -06:00
bb9f468247 Added fix to setting pair energies in kokkos 2023-10-25 14:38:28 -06:00
ea744ac8f9 fix typos 2023-10-25 11:17:24 -06:00
23d4bfe198 reset eflag=0 in fix wall/region 2023-10-25 11:08:58 -06:00
20b386fc1a update CONTRIBUTING guidelines posted on GitHub 2023-10-25 06:12:44 -04:00
020ef70300 avoid double free on B array 2023-10-24 23:18:24 -04:00
e5160b279a avoid static code analysis warnings 2023-10-24 23:12:17 -04:00
c123c7058b remove dead code 2023-10-24 19:08:00 -04:00
975cc9a052 simplify, avoid division by zero 2023-10-24 19:05:48 -04:00
8abe52c613 simplify/modernize access to computes and fixes and check dynamics casts 2023-10-24 18:59:39 -04:00
63e674cc3e simplify and remove redundant or dead code 2023-10-24 18:37:29 -04:00
8f14cdcb34 Cleaning up ghost stencils 2023-10-24 13:55:43 -06:00
c6c174469c Replace deprecated Kokkos code 2023-10-24 12:32:02 -06:00
0f94e6030f Adding separate ghost stencil for intel 2023-10-24 12:26:37 -06:00
bd0c1795b4 Fix harmless compiler warnings 2023-10-24 10:33:55 -06:00
5f2f120b4b improve help and error messages 2023-10-24 10:39:49 -04:00
88644306cd add sanity check on path to LAMMPS python package folder 2023-10-24 10:39:30 -04:00
9052f67319 Merge branch 'collected-small-fixes' of github.com:akohlmey/lammps into collected-small-fixes 2023-10-24 07:52:28 -04:00
ceed4c7db8 for consistency with CMake 3.12+ we should set Python_EXECUTABLE instead of PYTHON_EXECUTABLE 2023-10-24 07:51:54 -04:00
8054d2807a Adding full atomonly bin npair style 2023-10-23 16:54:56 -06:00
51577eff2c Merging atomonly npair styles, minor fixes 2023-10-23 16:14:56 -06:00
1e2416dfcc make sure liblinalg is built before linking phana 2023-10-23 15:00:59 -04:00
3536cf9db9 Adding triclinic patch to intel stencil 2023-10-23 12:59:13 -06:00
14f0045567 Fixing missing variable in multi 2023-10-23 10:27:18 -06:00
358ee6eb1b Merge branch 'lammps:develop' into mliap_null_fix 2023-10-23 05:29:07 -06:00
9ba20864ca Merge conflicts + intel 2023-10-22 22:34:33 -06:00
1571c96480 Adding triclinic patch (except for intel) 2023-10-22 21:52:43 -06:00
22cc6bf0b3 provide example python code for reading a YAML dump file 2023-10-22 20:01:23 -04:00
e518637d63 avoid invalid escape warnings for regexp expressions with python 3.12 2023-10-22 20:00:33 -04:00
731400e004 improve error messages for read_dump 2023-10-22 18:29:07 -04:00
1782008b28 programming style updates 2023-10-22 18:13:17 -04:00
b5a01e84e1 consolidate dump file field enumerators into reader.h header for consistency 2023-10-22 18:09:11 -04:00
08edd193e2 programming style updates 2023-10-21 14:57:26 -04:00
a7fb81c68e must initialize deleted pointers to null since the following commands may fail 2023-10-21 14:57:26 -04:00
1db5643d6e Merge pull request #3949 from Yi-FanLi/pimd_langevin_fix_t_prim
fix pimd/langevin: fix a small bug in the output of t_prim
2023-10-21 11:58:50 -04:00
710cd1c001 Merge branch 'lammps:develop' into mliap_null_fix 2023-10-21 04:08:19 -06:00
80f72e7a1d use times inverse_np instead 2023-10-21 00:28:33 -04:00
3d480a01a5 add the missing dividing by np in compute t_prim 2023-10-20 23:41:06 -04:00
58d299d08e Merge pull request #3948 from lammps/fix-srd-doc-page
Update citations on fix srd doc page
2023-10-20 22:14:19 -04:00
1064c82c00 Cleaned of print statements 2023-10-20 18:56:20 -06:00
fd05acec2f fix spelling 2023-10-20 20:54:05 -04:00
4aedba058c Merge branch 'develop' into fix-srd-doc-page 2023-10-20 20:47:17 -04:00
6f9310d32e Merge pull request #3943 from akohlmey/collected-small-fixes
Collected small fixes and updates
2023-10-20 20:45:11 -04:00
e1d876b7fe kokkos working 2023-10-20 18:41:46 -06:00
654a410b8c update refs on fix srd doc page 2023-10-20 12:59:36 -06:00
291defb453 update refs on fix srd doc page 2023-10-20 12:57:19 -06:00
ccbe907def avoid memory leak 2023-10-20 14:24:45 +03:00
61371bba5e remove whitespace from region_cone.cpp 2023-10-20 13:44:35 +03:00
b22d0afd97 Update region.rst 2023-10-20 13:41:00 +03:00
c180f3d825 Include method & variable definitions in region_cone.h 2023-10-20 13:31:48 +03:00
1300999c22 Enable definition of cone region using equal variables 2023-10-20 13:24:08 +03:00
0f11a9dd70 require version newer than 2 Aug 2023 for LAMMPS GUI 1.5.9 2023-10-19 23:21:18 -04:00
5ed10f9127 doc fix 2023-10-19 18:19:55 -06:00
d93d4f8b5c normal complete, kokkos in development 2023-10-19 17:32:21 -06:00
83186a50b0 Update compute_pace.rst
typo fix
2023-10-19 16:37:45 -06:00
1de15c38bf whitespace 2023-10-19 12:16:26 -07:00
2401cba84a Fix bug in Kokkos SNAP on GPUs 2023-10-19 12:15:01 -07:00
decb47cc15 Merge branch 'compute-pace-update' of github.com:jmgoff/lammps_compute_PACE into compute-pace-update 2023-10-19 12:25:21 -06:00
ac59f47ea0 Merge remote-tracking branch 'upstream/develop' into compute-pace-update 2023-10-19 12:22:10 -06:00
e0ef4f15ee Merge branch 'lammps:develop' into compute-pace-update 2023-10-19 12:18:32 -06:00
2ac32872e2 compute pace docs 2023-10-19 12:18:07 -06:00
ea6bfa5948 Merge branch 'develop' into collected-small-fixes 2023-10-19 12:24:16 -04:00
f641d88f86 Merge pull request #3944 from Maria-Lesniewski/fix_bocs_bugfix
Propagate Barostat fixes to BOCS user package - see Lammps PR 1259
2023-10-19 12:22:55 -04:00
62ea874d9d Add more error checks to Kokkos minimize 2023-10-19 08:02:11 -06:00
0fc9b194dc quote strings with special characters in keyword lists 2023-10-19 10:01:10 -04:00
27e0a71849 whitespace 2023-10-19 07:44:44 -06:00
bcc93c2dc5 Initial working Null atom fix 2023-10-19 00:19:02 -06:00
4602c8c849 First null atom fix pass 2023-10-18 23:22:16 -06:00
e188407566 Cleaned fix 2023-10-18 23:17:25 -06:00
0501674724 Commit before cleaning changes 2023-10-18 23:07:21 -06:00
791f7d1d88 Add dynamic check for CUDA 2023-10-18 22:14:42 +03:00
45d2a91c62 Barostat fix - see lammps PR 879 and 942 2023-10-18 13:13:37 -04:00
54ff01d86d assign code owner to fix press/langevin 2023-10-18 08:01:41 -04:00
a5f61c5d44 address bugs and issues flagged by static code analysis with coverity scan 2023-10-18 07:59:22 -04:00
5cfd8b3c63 silence coverity scan warning 2023-10-18 07:56:50 -04:00
302e3be669 make sure itag is initialized 2023-10-18 07:51:25 -04:00
0f10269357 cleaning 2023-10-17 23:45:52 -06:00
87fdff5874 No variable transfer 2023-10-17 23:41:52 -06:00
4c980eec91 correct table formatting 2023-10-17 20:52:13 -04:00
ea69d77b79 fix issues with Qt library detection 2023-10-17 20:02:01 -04:00
dbd5f93ed4 whitespace 2023-10-17 19:41:00 -04:00
6b184e8079 copy-and-paste bugfix from @stanmoore1 2023-10-17 19:39:31 -04:00
f0801338f3 Merge pull request #3846 from lammps/triclinic-neighbor-bug
Fix occasional bug in neighbor list build for triclinic geometries due to round off
2023-10-17 19:36:43 -04:00
c051a4cf2d Fix perf regression 2023-10-17 14:18:16 -06:00
bd1794f142 Remove debug output 2023-10-17 12:59:10 -06:00
672905bbf0 Merge branch 'develop' of github.com:lammps/lammps into kk-ompi-rocm 2023-10-17 12:57:11 -06:00
750957d585 Remove unused var 2023-10-17 12:27:35 -06:00
3b4fff4164 Need to sync tag, add template param 2023-10-17 12:01:01 -06:00
0fe621886e Merge pull request #3896 from lammps/compute-fix-variable-outputs
Standardize how computes and fixes can produce multiple kinds of output
2023-10-16 18:12:20 -04:00
4ae0fc8312 Fix GPU compile 2023-10-16 15:47:42 -06:00
dc67f25270 Another tweak 2023-10-16 15:17:46 -06:00
8c7493d02a Fix more broken examples 2023-10-16 15:11:37 -06:00
462a3935fe Port bugfix to Kokkos 2023-10-16 14:07:42 -06:00
558c1307fd Merge pull request #3941 from stanmoore1/trim_fix
Fix issues with trim lists
2023-10-16 15:49:47 -04:00
ad1400ac71 Fix broken example 2023-10-16 12:33:21 -06:00
51f0c9eac4 Merge branch 'develop' of github.com:lammps/lammps into triclinic-neighbor-bug 2023-10-16 12:18:04 -06:00
5d0dc79403 Merge branch 'develop' of github.com:lammps/lammps into compute-fix-variable-outputs 2023-10-16 12:01:59 -06:00
53d123caa5 Merge pull request #3930 from stanmoore1/kk_flux
Small Kokkos changes
2023-10-16 14:00:04 -04:00
902e996f2a restore neighbor list trimming support to REBO family of pair styles 2023-10-16 13:51:16 -04:00
f93ff98728 Fix issues with trim lists 2023-10-16 11:20:06 -06:00
00b5eb57c9 Merge branch 'kk_flux' of https://github.com/stanmoore1/lammps into kk_flux 2023-10-13 14:52:24 -04:00
65bd04260b bugfix for modernization 2023-10-13 14:50:03 -04:00
69d82b9bc6 Remove unused variable 2023-10-13 12:47:46 -06:00
6c6f35dd69 modernize loops over fixes 2023-10-13 14:39:20 -04:00
41a7f64847 Update dependency 2023-10-13 10:58:14 -06:00
d8e6b432fa Port recent changes 2023-10-13 10:48:37 -06:00
34c94fccd2 Merge branch 'develop' of github.com:lammps/lammps into kk_flux 2023-10-13 09:36:42 -06:00
14af16e4a6 Merge pull request #3937 from akohlmey/collected-small-changes
Collected small changes and fixes
2023-10-13 11:20:33 -04:00
02d66ea4ca Merge pull request #3939 from yury-lysogorskiy/feature/ml-pace-bgrad
upd ML-PACE.cmake and Install.py (new version v.2023.10.04 and checks…
2023-10-13 11:18:44 -04:00
ae8791c682 avoid out of bounds access to string under cursor 2023-10-13 08:17:10 -04:00
2f67826363 indicate whether multi-thread is available in preferences 2023-10-13 06:59:06 -04:00
50d2ebc27d auto-detect OpenMP support also when compiling a standalone binary 2023-10-13 06:50:52 -04:00
3db7e1f9cf avoid invalid data accesses 2023-10-13 06:50:06 -04:00
926de1575c avoid completion on empty lines 2023-10-13 06:20:19 -04:00
2629136958 avoid uninitialized data access and segfaults when calling main widget functions 2023-10-13 06:20:12 -04:00
d29ae7af92 upd ML-PACE.cmake and Install.py (new version v.2023.10.04 and checksum) that should fix build issues with KOKOKOS 2023-10-13 12:05:28 +02:00
3ebcb0f6f1 store settings to different locations for different Qt versions 2023-10-13 06:00:29 -04:00
6195be5af7 make keyboard shortcut handling consistent across the entire app 2023-10-13 05:59:20 -04:00
506de7015d document support for building LAMMPS GUI with Qt6 2023-10-13 05:13:30 -04:00
c67ca1bfd9 Merge branch 'develop' into collected-small-changes 2023-10-13 04:59:18 -04:00
1150f1ab07 Merge pull request #3909 from ndtrung81/kk-updates
Adding KOKKOS support for pair yukawa/colloid, fix efield and fix spring/self
2023-10-13 04:58:33 -04:00
6ad5c0eced port LAMMPS GUI to Qt6 while still supporting Qt5 2023-10-12 23:24:11 -04:00
1a9dac83d7 update fix srd docs 2023-10-12 21:52:32 -04:00
26133bd26a Revert "restore GNU make build capability for ML-PACE"
This reverts commit 2b1985f755.
2023-10-12 16:29:01 -04:00
4910401f6c Add accelerator package text 2023-10-12 12:52:57 -06:00
8bc3965583 More robust refactor of Kokkos fix property/atom 2023-10-12 12:06:55 -06:00
fc12f86ea9 Update compute_pace.h
Header style fix
2023-10-11 16:47:35 -06:00
9b108a631b Do not zero forces in pair if using hybrid/overlay 2023-10-11 16:36:15 -06:00
fbdd61e28c enable spacefilling sphere option also for systems with per-atom radius 2023-10-11 18:15:13 -04:00
aff10deeb7 Merge branch 'lammps:develop' into compute-pace-update 2023-10-11 14:19:49 -06:00
6f38fa090a Merge remote-tracking branch 'github/develop' into collected-small-changes 2023-10-11 15:37:40 -04:00
71ebb60a33 Merge pull request #3931 from evoyiatzis/patch-6
Fixes #3925 in region_ellipsoid.cpp
2023-10-11 15:37:01 -04:00
45172d33a9 use potential file name distributed with LAMMPS in examples 2023-10-11 09:20:05 -04:00
bb7e8c66ed clarify 2023-10-11 08:26:50 -04:00
eff74405c1 don't replace end of line character from completion 2023-10-11 02:16:23 -04:00
cc5c5bbd49 block waiting for end of stdout data not more than a second 2023-10-11 02:12:03 -04:00
86a5d6bb15 must re-initialized threads also for neigbor lists 2023-10-11 02:05:23 -04:00
84eab70fb4 must select entire non-blank string under cursor for completion insertions 2023-10-10 22:18:41 -04:00
07a0333670 prevent potential memory leak 2023-10-10 13:53:56 -04:00
2b1985f755 restore GNU make build capability for ML-PACE 2023-10-10 11:36:49 -04:00
c0ace4aa4b Merge pull request #3921 from wmbrownIntel/snap-intel
Adding intel variant of snap pair style.
2023-10-10 11:02:43 -04:00
d97d14745e Merge pull request #3791 from Bibobu/NPTLangevin
Adding fix press/langevin
2023-10-10 06:28:41 -04:00
4b5c0043ba Merge pull request #3923 from akohlmey/lammps-gui-ubuntu20-backport
LAMMPS GUI improvements, fixes, refactoring, and backports for Ubuntu 20.04LTS
2023-10-10 00:24:08 -04:00
b816029d70 pop down completion list when all characters have been deleted 2023-10-09 23:32:22 -04:00
b24e1e10a0 reposition the cursor for the context menu, but only if there is no selection 2023-10-09 22:59:14 -04:00
a4eaf1e6bd Merge branch 'develop' into lammps-gui-ubuntu20-backport 2023-10-09 21:32:35 -04:00
4ff226b00f Fix issues in Kokkos fix property/atom 2023-10-09 16:12:27 -06:00
ea4ce05633 Merge pull request #3932 from yury-lysogorskiy/feature/ml-pace-bgrad
add support of computing B-grads (and C-tilde grads)
2023-10-09 13:00:28 -04:00
1db12d7df5 update LAMMPS GUI help summary text 2023-10-09 00:09:18 -04:00
4eef20e808 make consistent 2023-10-08 19:26:08 -04:00
b2c52c5032 use FSAA implementation of dump image instead of emulating it 2023-10-08 19:23:07 -04:00
e5190a0ff9 more specific preferences label 2023-10-08 19:14:04 -04:00
1390a92a5b correct indexing bug with FSAA 2023-10-08 19:12:37 -04:00
2d597f61b8 adjust default size of image area 2023-10-07 13:35:32 -04:00
d1f910af2c remove redundant close button 2023-10-07 13:33:59 -04:00
3e6997e98b restore saved text cursor when initializing system before creating an image 2023-10-07 13:33:43 -04:00
60ffcf74dc enable and apply clang-format to fix press/berendsen 2023-10-07 12:17:05 -04:00
8d305cb44f modernize access to list of fixes and fix properties also for fix press/berendsen 2023-10-07 12:15:57 -04:00
6442763b70 indicate that fix press/langevin changes box dimensions 2023-10-07 12:08:02 -04:00
5649381f01 enable and apply clang-format 2023-10-07 12:03:18 -04:00
3b02979645 improve error messages 2023-10-07 12:01:33 -04:00
578c95fb42 modernize access to list of fixes and their properties 2023-10-07 12:01:13 -04:00
090f12e029 Minor edits, mainly affecting friction keyword 2023-10-06 17:03:41 -06:00
dc3b6aa697 Minor edits, mainly affecting friction keyword 2023-10-06 16:47:38 -06:00
f688a28d7f update help index table 2023-10-06 13:01:12 -04:00
d388ef762d Implement more conventional behavior when opening non-existing file.
Instead of only printing a warning we now create a *named* and
empty buffer and change to the directory of the filename, so that
the file will be created in the desired location as soon as it is saved.
2023-10-06 06:42:40 -04:00
fcc92b50db add support for a help flag and print text mode error message for nonexisting file 2023-10-06 02:46:15 -04:00
b38e828c49 Prevent segfault with unsupported radial basis 2023-10-05 22:51:48 -06:00
3999b3e557 enforce newline before adding run 0 command to avoid syntax errors. 2023-10-05 13:22:15 -04:00
127dcd5613 fix cut-n-paste error 2023-10-05 13:16:03 -04:00
1c3f659844 Merge branch 'develop' of github.com:lammps/lammps into NPTLangevin 2023-10-05 16:01:57 +02:00
ea8d6aaa52 Version of the code with Pdamp similar to NH barostat and friction input
as Langevin caracteristic time.
2023-10-05 16:01:03 +02:00
7d1c5b4106 Updated the manual to explain the new parameter and the physics of the
barostat.
2023-10-05 15:56:51 +02:00
b0deb87188 include Qt version in About dialog 2023-10-04 15:13:22 -04:00
f5f8df55b8 Merge branch 'lammps:develop' into compute-pace-update 2023-10-04 10:16:17 -06:00
92a6200c55 no need to converge root finding beyond when g reaches 2*epsilon 2023-10-04 10:39:19 -04:00
c0f1fe4d31 make utility functions local and static. remove from class. 2023-10-04 10:33:27 -04:00
ac53cbb779 update LAMMPS GUI docs and some images 2023-10-04 07:45:25 -04:00
0536e0e7b3 upd Install.py (new version v.2023.10.04.pre and checksum) 2023-10-04 12:38:25 +02:00
63aa467959 add support of computing B-grads (and C-tilde grads) 2023-10-04 12:32:24 +02:00
35640dd72e use event filter to bypass default shortcuts that conflict with our custom ones 2023-10-04 06:29:39 -04:00
8af3aef734 Fixes #3925 in region_ellipsoid.cpp 2023-10-04 10:04:45 +03:00
ed631ecd44 add button to reset zoom/pan of chart viewer 2023-10-03 22:36:00 -04:00
a3c843f590 add support for shortcuts CTRL-/ (stop run) and CTRL-Q (quit) to most windows 2023-10-03 21:14:11 -04:00
6ff7050d2d enforce that the number of threads is properly reset for /omp styles 2023-10-03 19:47:34 -04:00
02b9bdd639 fix uninitialized data access 2023-10-03 17:49:55 -04:00
b3008e3329 fix delete / delete[] mismatch 2023-10-03 17:49:44 -04:00
f9f33ce1b6 Fix issues with Kokkos fix property/atom 2023-10-03 15:41:35 -06:00
6a43ca8410 reset number of threads to 1 when using no accelerator or opt 2023-10-03 16:13:59 -04:00
75050b8920 get upper thread limit from Qt so we can raise the number of threads 2023-10-03 15:40:06 -04:00
6da8fff08c Fix bug with dynamic groups 2023-10-03 13:35:50 -06:00
18a69873f8 add keyboard shortcut for saving log to file 2023-10-03 15:23:52 -04:00
5302e39f69 avoid segfaults when accessing lammps_last_thermo() 2023-10-03 14:35:48 -04:00
bb01afc498 provide default file name when writing log window text to file 2023-10-03 14:18:17 -04:00
4bbaebda16 Revert ineffectual change 2023-10-03 12:09:23 -06:00
9f612e6ef3 Merge branch 'kk_flux' of github.com:stanmoore1/lammps into kk_flux 2023-10-03 12:07:46 -06:00
f57e5d975c Fix harmless compiler warnings 2023-10-03 12:07:28 -06:00
c521d54f85 Fix compile error 2023-10-03 10:58:22 -06:00
ff23da1c97 Switch order 2023-10-03 10:28:08 -06:00
918705ce2f refactor CSV format output 2023-10-03 12:10:44 -04:00
367d0ac905 Add support for FLUX 2023-10-03 10:07:52 -06:00
e840d422ef Use a_f to be consistent 2023-10-03 10:07:41 -06:00
b5dae4024a tweak output format for gnuplot data export 2023-10-03 12:02:56 -04:00
37c1bfafa3 remove unused class member 2023-10-02 18:30:47 -04:00
5db01aa989 BUGFIX: correctly render the currently selected chart when exporting to image files 2023-10-02 18:19:27 -04:00
77d0475fb7 update TODO file 2023-10-01 11:46:16 -04:00
e7b9bc2d4f update docs 2023-09-29 18:53:18 -04:00
1689c306b6 add "Save to File" option to the context dialog for the log window 2023-09-29 18:00:31 -04:00
5a750c8633 automatically define variable "gui_run" to contain the run number 2023-09-29 17:42:30 -04:00
ef575d5944 change default for replacing log/chart/image windows to true 2023-09-29 16:47:52 -04:00
c24ddfed29 add a run counter to log, chart, and slideshow window titles
this counter is reset on loading a new file
2023-09-29 16:45:13 -04:00
b03e8e376a make references consistent 2023-09-28 14:31:32 -04:00
6613af05dc fix spelling issue 2023-09-28 14:31:19 -04:00
54517726cd Merge remote-tracking branch 'github/develop' into lammps-gui-ubuntu20-backport 2023-09-28 14:19:15 -04:00
49f08e6231 Merge pull request #3924 from akohlmey/collected-small-changes
Collected small changes and fixes
2023-09-28 14:18:40 -04:00
d84ee0c4f1 Update compute_stress_mop_profile.cpp 2023-09-28 17:48:17 +03:00
dc84ab5e5f Update compute_stress_mop.rst 2023-09-28 17:06:11 +03:00
bbd6b2846f implementation of compute_dihedral() in compute_stress_mop.cpp 2023-09-28 16:59:03 +03:00
d062541177 remove whitespace from compute_stress_mop.cpp 2023-09-28 16:29:15 +03:00
ca449f1ea8 Prepare for inclusion of dihedral contribution in compute_stress_mop.cpp 2023-09-28 16:25:52 +03:00
ac435319fd Definition of compute_dihedral and related variables in compute_stress_mop.h 2023-09-28 16:15:03 +03:00
3445330cf1 remove whitespace from compute_stress_mop.cpp 2023-09-28 16:13:13 +03:00
18f48a5e7c Recognize Windows 11 23H2 2023-09-27 18:00:19 -04:00
5a455c5e3a remove redundant calls to fmt::format() from calls to error->one/all() and utils::logmesg() 2023-09-26 23:56:51 -04:00
6115edefcb remove redundant use of fmt::format() 2023-09-26 23:34:56 -04:00
6141d8d08c gracefully handle some older ReaxFF force field files without overcorrection parameter 2023-09-26 23:29:59 -04:00
7c3a95240e print more specific error messages when parsing ReaxFF force field files 2023-09-26 23:29:22 -04:00
1591b21617 remove whitespaces from compute_stress_mop_profile.cpp 2023-09-26 16:53:16 +03:00
b86d1f6553 Update compute_stress_mop.rst for dihedral interactions 2023-09-26 16:48:45 +03:00
d40fb4a337 method implementation for dihedral contribution to compute_stress_mop_profile.cpp 2023-09-26 16:45:46 +03:00
ec458e2861 method and member variables definition for dihedrals in compute_stress_mop_profile.h 2023-09-26 16:32:26 +03:00
381d8de017 initialization of angleflag in constructor compute_stress_mop_profile.cpp 2023-09-26 16:22:09 +03:00
e819b38a18 undo dihedral changes in compute_stress_mop_profile.h 2023-09-26 16:15:12 +03:00
b81df7c21b Include methods and variables for dihedral contribution to compute_stress_mop_profile.h 2023-09-26 16:12:09 +03:00
25e9c2a35b file completion only in current folder. hide popup when changing completer 2023-09-25 09:23:49 -04:00
053f6fa03d must also update CWD when *saving* a file, not only when loading 2023-09-25 08:54:56 -04:00
a128089ab1 apply clang-format 2023-09-25 08:35:32 -04:00
2c636c83f5 check for compatible LAMMPS version when creating LAMMPS instance
This check must be done at runtime, since the LAMMPS shared library
may have been loaded dynamically and thus required library functions
may not be present or missing features with too only a LAMMPS version.
2023-09-25 08:35:23 -04:00
082d2bec9f merge used parts of periodic_table.h into imageviewer.cpp 2023-09-25 07:46:55 -04:00
29989f102a remove unused class members and silence compiler warnings 2023-09-24 23:08:59 -04:00
b2f62bbd1a include FFMpeg and gzip into windows zip archive for LAMMPS GUI 2023-09-24 17:52:43 -04:00
11608abf34 update docs 2023-09-24 16:45:59 -04:00
5201e6b2f1 add support for completion on file names 2023-09-24 16:31:28 -04:00
934269e456 move all icon files to the icons folder 2023-09-24 15:55:14 -04:00
5588c121f4 add support to export slide show animation to movie file via ffmpeg 2023-09-24 15:09:14 -04:00
c50dcf6129 move helper functions to separate file. add overloads to mystrdup() 2023-09-24 12:53:14 -04:00
35bf3e05ca Merge branch 'develop' into fix-rigid-enforce2d 2023-09-22 12:01:57 -04:00
afa8501d20 recognize STL files starting with "solid binary" as binary files 2023-09-22 07:51:58 -04:00
12acd346b7 plug memory leak 2023-09-22 07:51:16 -04:00
fb55fc3277 we don't need a lattice for creating atoms from a STL mesh 2023-09-22 07:51:07 -04:00
6f79918bab copy FFMpeg binary into app bundle 2023-09-21 19:43:53 -04:00
8b40e16ebd Revert "link gui to jpeg and png libs"
This reverts commit 57b3b74bcd.
2023-09-21 19:16:54 -04:00
70d6518eac minor updates for using presets. mention macos multi-arch preset 2023-09-21 19:10:36 -04:00
a9f15f6a29 update preset 2023-09-21 19:09:57 -04:00
57b3b74bcd link gui to jpeg and png libs 2023-09-21 19:09:26 -04:00
a463995646 add dependencies for building dmg bundle 2023-09-21 19:09:04 -04:00
c22d6a9e4e update to doc pages 2023-09-21 22:13:16 +02:00
c5deb581c2 Updates to address PR comments 2023-09-21 22:12:58 +02:00
c3cc4974d1 silence uninitialized access valgrind warning 2023-09-21 07:33:03 -04:00
db4f55b76f compatibility with new lammps-user-pace library and cleanup 2023-09-19 17:24:15 -06:00
f9cc60cfd5 Merge branch 'lammps:develop' into compute-pace-update 2023-09-19 11:14:14 -06:00
75682ffbca Merge pull request #3922 from arghdos/fix_for_rocm_60
Apply fix for hipfft paths in ROCm >= 6.0
2023-09-19 10:43:19 -04:00
d371550f5f step lammps-gui version patch number 2023-09-18 19:19:37 -04:00
934055601b change insertion function to always replace partial word with completion
Also change popup mode to always display all possible completions
and only highlight the current selection. This seems more beginner friendly.
2023-09-18 18:03:27 -04:00
e52eb81839 make use of std::swap() 2023-09-18 16:51:19 -04:00
7467a058ee Apply fix for hipfft paths in ROCm >= 6.0 2023-09-18 11:21:02 -05:00
70a8aff561 update todo list 2023-09-17 20:45:02 -04:00
7f4de6b8b9 more use of QRegExp instead of QRegularExpression for QT version < 5.15 2023-09-17 19:52:00 -04:00
20be9e64cf use split_line convenience function for better consistency and backward compatibility 2023-09-17 19:44:15 -04:00
cf8b157702 use QtRegExp for QT 5.12 on Ubuntu 20.04LTS 2023-09-17 19:38:53 -04:00
3e9f1c8af2 Merge pull request #3919 from akohlmey/collected-small-fixes
Collected small fixes and updates
2023-09-16 07:19:25 -04:00
508dbb74c5 print warning when using threads that snap/intel will not use them 2023-09-15 08:37:32 -04:00
d1e405e83f ML-SNAP now also has INTEL as dependent package 2023-09-14 19:08:38 -04:00
7b4ca086a8 documentation updates, clarifications, and corrections 2023-09-14 19:08:15 -04:00
5e657e5adb Intel Package: Adding documentation changes for snap variant. 2023-09-14 18:01:55 -04:00
1c10d0d495 Intel Package: Adding snap variant. 2023-09-14 17:11:51 -04:00
6d12800a0d make the GUI update interval a configurable option in the preferences 2023-09-14 10:39:57 -04:00
232e57a949 fix cut-n-paste issue 2023-09-14 00:27:35 -04:00
88b9aa62b7 forgot to rename files in KOKKOS/Install.sh 2023-09-13 17:27:30 -04:00
ae7945bd99 add missing newline 2023-09-13 15:56:49 -04:00
d198a9314f reorder to have sections in alphabetical order again 2023-09-13 15:55:23 -04:00
822ad5b866 change refereces to lib/smd and smd to lib/machdyn and machdyn 2023-09-13 15:51:41 -04:00
5d0bbeb257 Merge branch 'develop' into collected-small-fixes 2023-09-13 08:57:32 -04:00
c82e7b16bd Merge pull request #3915 from Architect0rr/develop
Initialize ADIOS dumps only the first time when used in multiple runs (for custom/adios dump style)
2023-09-13 08:54:40 -04:00
6e539da050 Merge branch 'lammps:develop' into compute-pace-update 2023-09-12 13:01:10 -06:00
e230220c13 remove dead code 2023-09-12 02:44:58 -04:00
d0f0bdd695 remove deprecated register storage class 2023-09-11 17:37:32 -04:00
2839ce334e disable neighbor list trimming by default for REBO pair styles for now 2023-09-10 10:25:03 -04:00
3c1586878a reorder include files 2023-09-08 15:36:30 -04:00
2319f98987 update docs with settings for building tools with CMake 2023-09-08 11:42:35 -04:00
5235d7e434 there is no "thermo_extract" tool (anymore) 2023-09-08 11:42:35 -04:00
da1db776b6 update some tables and comments for the current state of LAMMPS 2023-09-08 11:42:35 -04:00
8bde9ffd53 silence compiler warning 2023-09-08 11:42:34 -04:00
400bb426b8 Merge pull request #3912 from akohlmey/tab-reformat-completion
Add reformatting of line and command completion to LAMMPS GUI
2023-09-08 11:40:47 -04:00
f8e65b19a2 add completion for compute and fix ID references 2023-09-08 10:43:31 -04:00
778263673c add completion for variables and variable references 2023-09-08 08:57:17 -04:00
f293c5dd87 don't add the same group name twice 2023-09-08 08:38:54 -04:00
f726a54f27 detect and highlight strings in more places 2023-09-08 08:37:48 -04:00
ecc68c2f0c fix typo 2023-09-08 00:26:22 -04:00
1d851a6cff fix some spelling issue. Start auto-complete after 2 characters 2023-09-07 23:53:21 -04:00
2d76f9e4ac add completion for group id 2023-09-07 18:02:02 -04:00
fea91c0583 edits to LAMMPS GUI howto page 2023-09-07 12:16:07 -06:00
a1ddf68e5c also delete log and chart window when loading a new file 2023-09-07 10:06:11 -04:00
71a6f5b827 some small clarifications 2023-09-06 23:51:35 -04:00
34179d2cf9 Merge branch 'develop' into tab-reformat-completion 2023-09-06 23:40:10 -04:00
595f2db72f Merge pull request #3914 from lammps/dependabot/github_actions/actions/checkout-4
Bump actions/checkout from 3 to 4
2023-09-06 12:01:49 -04:00
17aa458c26 delete image viewer window when loading new file 2023-09-06 00:28:05 -04:00
2c0ff19528 allow calling lammps_last_error_message() with a NULL buffer to clear the error 2023-09-06 00:27:46 -04:00
0b5ce04638 initialize system with commands up to first run/minimize to have initial snapshot 2023-09-05 22:18:25 -04:00
aaad6cffba must close LAMMPS instance after loading new file. 2023-09-05 18:03:05 -04:00
788ce89751 fix typo in query 2023-09-05 18:02:42 -04:00
1fe5c59674 Initialize ADIOS dumps only the first time when
used in multiple runs (for custom/adios dump style)
2023-09-05 12:44:56 +03:00
e1088ed6f9 add "none" to completions of force styles 2023-09-05 04:59:50 -04:00
9036717f1e add completions for unit styles 2023-09-04 20:56:55 -04:00
68d88de785 Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-04 19:30:21 +00:00
cf23022921 highlighting tweaks for numbers and special terms 2023-09-02 23:49:57 -04:00
7f5124e11a tweak highlighting for "setup" commands 2023-09-02 23:39:29 -04:00
c7973ccc9b initialize all pointers in initializer list to null 2023-09-02 19:36:49 -04:00
6f3b74b53e plug memory leak 2023-09-02 18:49:35 -04:00
2bda147ff5 since dump image calls functions in thermo, thermo must be delete *after* the dumps 2023-09-02 18:48:06 -04:00
2b90e1143a add missing %1 for arg() method 2023-09-02 18:36:05 -04:00
2d17894430 Update LAMMPS GUI documentation for Version 1.5 2023-09-02 11:50:20 -04:00
cf9ce0ebed support displaying completions from editor context menu 2023-09-02 10:48:36 -04:00
98b803eba9 implement workaround for broken word under cursor selection in QTextCursor class 2023-09-02 09:44:13 -04:00
4d409906fe implement more completions, skip suffixed styles, support variable styles 2023-09-01 23:02:51 -04:00
cb446f5e7f simplify auto-completion 2023-09-01 20:04:47 -04:00
8383da5e74 create individual completer classes for different styles, use macros 2023-09-01 19:57:42 -04:00
c1bf3f7d4e must step up ABI version for plugin loader 2023-09-01 11:55:19 -04:00
0a5e97e768 add LAMMPS version check, to be uncommented after PR #3896 is merged 2023-09-01 11:00:35 -04:00
b2ba1bbe70 implement automatic completion popup and reformat on return 2023-09-01 07:27:52 -04:00
65866156dd make handling of boolean settings consistent 2023-09-01 07:27:10 -04:00
1514d98c35 swap matching isSetup and isRun to avoid funny coloring of run_style and similar 2023-09-01 07:25:50 -04:00
0043e4ccc8 macOS drops us into "/" when opening the app bundle without a file. use $HOME instead. 2023-09-01 03:29:45 -04:00
2e0bc524cc update TODO list 2023-09-01 02:53:48 -04:00
b478888ede move processing of completion to separate function 2023-09-01 02:52:26 -04:00
9690d2dc02 update formatting with clang-format 2023-09-01 02:45:20 -04:00
b6d10d1e20 implement command completion popup 2023-09-01 02:43:32 -04:00
156ab0b338 add reformat to context menu, formatting width may be changed in preferences 2023-08-31 23:25:30 -04:00
7a9aa7950c add special case formatting for *_coeff commands 2023-08-31 21:58:39 -04:00
8ac45a8a02 reformat line when Tab key is pressed 2023-08-31 21:39:43 -04:00
7b5dfa2a3b Merge pull request #3910 from akohlmey/add-slideshow
Add slideshow feature to LAMMPS GUI
2023-08-31 21:35:45 -04:00
9796317269 Merge pull request #3911 from taylor-a-barnes/mdi_fix
Fix bug in MDI energy
2023-08-31 18:09:21 -04:00
ca8722d14c Fix bug in MDI energy 2023-08-31 16:27:23 -04:00
5d23d5d317 remove duplicates, move misplaced, and add missing keywords for syntax highlighting 2023-08-31 15:59:46 -04:00
7a1466671b Merge branch 'develop' into BPM 2023-08-31 10:28:47 -06:00
c96d793fb6 update unit tests for change in read_restart 2023-08-31 04:45:23 -04:00
43d1d8c86b make atom_modify map settings in restart file overridable 2023-08-30 23:51:25 -04:00
f77fec1e61 handle immediate variables and atom_modify keyword 2023-08-30 22:10:53 -04:00
0e9a402c5a update TODO list 2023-08-30 16:19:28 -04:00
4b910d7812 complete rewrite of syntax highlighting with more consistency 2023-08-30 16:01:14 -04:00
2c92de2690 update preference dialog images 2023-08-30 09:07:23 -04:00
d474a511b6 update 2023-08-30 07:38:00 -04:00
b75b0ff3d5 sync naming of resulting archives with macOS 2023-08-30 07:37:53 -04:00
bfca91bbf0 layout tweak for macOS 2023-08-30 07:18:50 -04:00
34b26ffb74 final tweaks for macOS packaging 2023-08-30 07:04:15 -04:00
207cb5bb51 update LAMMPS GUI bundling for macOS 2023-08-30 06:42:56 -04:00
4f52a5e791 need to implement the same workaround for macOS as for ImageViewer class 2023-08-30 06:04:58 -04:00
8aee65b25c update TODO list 2023-08-30 05:40:13 -04:00
3fd8e1dd7d change table of hotkeys to use 6 columns instead of 8 for better reability 2023-08-30 04:53:55 -04:00
c2eafb874d update docs for LAMMPS GUI v1.4 2023-08-30 04:38:11 -04:00
9fe266d4cd make consistent 2023-08-30 04:30:33 -04:00
c432df0f91 set window icon consistently where possible 2023-08-30 04:15:13 -04:00
4ca5d7eec5 fix logic error 2023-08-30 03:58:56 -04:00
2aa8e10ae2 do not allow to zoom in beyond 80% of screen height or width 2023-08-30 03:54:13 -04:00
07efb5b015 don't add button to toggle slideshow window 2023-08-30 02:46:56 -04:00
9b065c0ac4 remove redundant "View" menu 2023-08-30 02:46:39 -04:00
9aa68442b6 complete implementation of slideshow window 2023-08-30 01:07:27 -04:00
ceadb04cf3 store the actual file name *after* it is written 2023-08-29 23:31:24 -04:00
a176ef4768 make consistent with write_dump 2023-08-29 20:07:35 -04:00
26ef4065da add image_fname string for caching the last active dump image filename pattern 2023-08-29 19:22:56 -04:00
d0c1cfd292 simplify 2023-08-29 19:21:41 -04:00
8531e8138c Use "Create Image" instead of "View Image" for launching the image viewer 2023-08-29 19:07:07 -04:00
514fec1b11 add non-functional slide show window to GUI
# Conflicts:
#	tools/lammps-gui/CMakeLists.txt
#	tools/lammps-gui/lammpsgui.cpp
#	tools/lammps-gui/lammpsgui.qrc
#	tools/lammps-gui/lammpsgui.ui
2023-08-29 18:45:04 -04:00
e83e9ab78b Merge pull request #3904 from akohlmey/highlight-line
Add highlighting of current line in lammps-gui and tracking of line numbers in LAMMPS
2023-08-29 17:43:15 -04:00
432380c468 update 2023-08-29 16:54:51 -04:00
c8a611098e add pointer to installation/download of LAMMPS GUI 2023-08-29 16:54:45 -04:00
21c0ec7e2c Merge remote-tracking branch 'github/develop' into highlight-line 2023-08-29 16:28:15 -04:00
6bdf86056c Merge pull request #3903 from akohlmey/collected_small_changes
Collected small changes and fixes
2023-08-29 16:26:41 -04:00
a206072520 Merge branch 'develop' into master 2023-08-29 19:04:58 +03:00
67bcf75b74 Updated the corresponding doc pages with ".. index::" and added (k) to the commands in the overview pages 2023-08-28 23:18:05 -05:00
0cf0d11b03 whitespace 2023-08-28 21:30:55 -04:00
c71c4d0fcd must have a verbatim block to include .. versionadded:: 2023-08-28 21:19:04 -04:00
2c363043e3 update LAMMPS GUI Howto for version 1.3 2023-08-28 21:18:39 -04:00
976080ecf0 tweak layout of chart window by adding a spacer and a label 2023-08-28 20:50:06 -04:00
6c8e782289 Merge branch 'develop' into highlight-line 2023-08-28 17:46:06 -04:00
bed5d65e1b Merge branch 'develop' into collected_small_changes 2023-08-28 17:45:13 -04:00
afabb279a3 Merge pull request #3908 from lammps/doc-page-tweak
Add info for on-line manual versions to Manaul home page
2023-08-28 15:33:37 -04:00
e2daed05ad fix typo 2023-08-28 13:12:01 -04:00
b5756e25d2 Merge pull request #3906 from akohlmey/fmtlib-10.1.1
Update fmtlib to version 10.1.1
2023-08-28 12:29:48 -04:00
b55be3eb7e list manual versions on Manual home page 2023-08-28 10:22:52 -06:00
b08abd4a80 Updated Install.sh and cleaned up 2023-08-28 11:06:07 -05:00
4ef9f70bfe Fixed whitespaces, added author info 2023-08-28 09:43:00 -05:00
09e94cc1ff update fmtlib to version 10.1.1 2023-08-28 09:53:00 -04:00
64750c8a21 allow sphinx 7.2 again after incompatibility with breathe has been fixed 2023-08-28 05:20:47 -04:00
58d60dfea0 Fixed bugs with device sync for xoriginal 2023-08-26 16:08:59 -05:00
1039f86037 remove unnecessary restriction
do not check for comm cutoff when initiator atoms are directly bonded
2023-08-26 14:29:07 -04:00
92f173f7c3 update TODO list and step patch version for next set of features 2023-08-26 12:40:59 -04:00
821cbf1a22 add window to monitor current variables 2023-08-25 23:56:27 -04:00
d864b4789f refactor variable info in Info class, make info accessible from library interface 2023-08-25 23:55:42 -04:00
999c364b83 better way to list rxn counts 2023-08-25 21:44:42 -04:00
cd5ebb86c8 inserting atoms: correct logic for per-atom mass 2023-08-25 21:37:57 -04:00
5b5210130c improve highlighting settings to also show errors with different color 2023-08-25 21:19:05 -04:00
401133acec count lines during scanning for triple quotes 2023-08-25 21:17:41 -04:00
568199e50d must initialize force style pointers to null 2023-08-25 21:17:11 -04:00
0461fe8a13 delete carriage returns instead of turning them into blanks, add final newline 2023-08-25 18:55:14 -04:00
9c91ec9050 remove dead code 2023-08-25 17:51:22 -04:00
74d76f988d update docs 2023-08-25 17:48:28 -04:00
6cc021bcaf when updating the highlight also update cursor position 2023-08-25 17:35:38 -04:00
6759a20cfc remove dead code 2023-08-25 17:35:05 -04:00
8f41ac1272 support loops in lammps_commands_string() 2023-08-25 17:34:32 -04:00
c5da0581e6 add support for input file line numbers 2023-08-25 16:11:46 -04:00
c61aaa81d2 add support to run LAMMPS on the file instead of the edit buffer 2023-08-25 15:12:48 -04:00
f94d00d435 step version number 2023-08-25 15:11:59 -04:00
149a820510 sync prototype with library.h 2023-08-25 15:11:46 -04:00
079d6c2341 LAMMPS class destructor may throw execption via utils::logmesg() 2023-08-25 11:55:58 -04:00
7b6c78bc06 explicitly flag ForceConst class destructor as noexcept(false) since call to set_ntypes() may throw exception 2023-08-25 10:47:37 -04:00
fee9a77fb4 must use array delete and not scalar delete on char array 2023-08-25 10:05:11 -04:00
76c0632363 remove dead code, class members that should be local, initialize others 2023-08-25 09:15:31 -04:00
6fcad323ab must initialize typefirst now after recent changes from @dsbolin 2023-08-25 06:15:33 -04:00
541a5be1dd update more frequently 2023-08-25 06:08:18 -04:00
8a7c1f3d0d add support for add a highlight for the currently active input line to the line number display 2023-08-24 21:25:57 -04:00
3a7efdfb8c implement setFont() method that sets the font for the entire editor window 2023-08-24 21:25:14 -04:00
c7a0e5f0e1 use line splitting method that keeps empty lines and set line numbers 2023-08-24 21:23:35 -04:00
48de679a58 add support for accessing line number from cached thermo data 2023-08-24 21:22:51 -04:00
23bc3abe18 add option to cache the current line number of the input file or buffer 2023-08-24 21:20:49 -04:00
1b86d647de cleaned up headers and used PIMPL namespace instead, fixed whitespace, fixed homepage 2023-08-24 17:08:31 -06:00
d54fb3eb47 Merge branch 'lammps:develop' into compute-pace-update 2023-08-24 16:47:28 -06:00
187bebb515 Working on fix spring/self/kk, something with missing host-device sync that causes force blowup 2023-08-24 12:17:37 -05:00
dc3c8da52b Merge pull request #3900 from dsbolin/fix_srd_bugfixes
Bug fixes for fix srd
2023-08-24 11:52:46 -04:00
afc4e1d476 Merge pull request #3893 from akohlmey/lammps-gui-fixes
Some more lammps-gui fixes and updates
2023-08-24 11:04:52 -04:00
2c897df841 Merge branch 'develop' into new-computes 2023-08-24 09:38:05 -04:00
6ccccb5d13 add versionadded tag to new inputs keyword docs 2023-08-24 09:27:17 -04:00
f7656101a2 Merge pull request #3892 from akohlmey/collected-small-changes
Collected small changes and fixes
2023-08-23 21:19:37 -04:00
b4e7d5f0b9 fix whitespace (again) 2023-08-23 20:11:32 -04:00
949f93b588 clarify the documentation for the extract_atom numpy wrapper 2023-08-23 20:02:23 -04:00
df1e2a64d2 the MESONT package depends on the MOLECULE package since the last upgrade 2023-08-23 19:03:34 -04:00
70dab54e79 A few bug fixes for fix srd 2023-08-23 13:03:51 -06:00
c417288df9 add missing :doc: 2023-08-23 14:14:26 -04:00
00345ce8c3 rename compute local/comp/atom to composition/atom 2023-08-23 14:06:44 -04:00
95c792c559 Merge branch 'compute-fix-variable-outputs' of github.com:lammps/lammps into compute-fix-variable-outputs 2023-08-23 09:47:44 -06:00
e6b98f5942 fix logic issue in compute reduce 2023-08-23 09:47:36 -06:00
476446d93c add reference log outputs for ML-HDNNP and add input demoing use with hybrid 2023-08-23 08:58:20 -04:00
174825fe8c fix element mapping bug in pair style hdnnp when used as a hybrid sub-style 2023-08-23 07:21:16 -04:00
2e79beb368 signal that destructors may throw exceptions 2023-08-23 03:37:54 -04:00
aec1f46291 initialize all class members 2023-08-23 03:28:06 -04:00
9999f775cc address CodeQL issue 2023-08-23 03:03:19 -04:00
351a9dd11f Merge remote-tracking branch 'github/develop' into collected-small-changes 2023-08-23 03:02:29 -04:00
154c98cd7d Merge remote-tracking branch 'github/develop' into compute-fix-variable-outputs 2023-08-22 21:37:19 -04:00
c072719a44 Merge pull request #3898 from stanmoore1/reax_kk_bug
Fix bug in Kokkos ReaxFF on GPUs when border comm is on host
2023-08-22 18:57:43 -04:00
3e22eb8355 adjust version date 2023-08-22 16:40:25 -06:00
17dd04b4de tweak variable doc page 2023-08-22 16:22:57 -06:00
71ca6ee47c fix one more example input script 2023-08-22 16:02:28 -06:00
ad33a018f4 update variable syntax in several example input scripts 2023-08-22 15:52:47 -06:00
17b78d86a6 Merge pull request #3885 from bathmatt/pt_without_device
Made check incase PyTorch didn't define the device
2023-08-22 17:38:54 -04:00
dd6b847a5c mention that "peratom" is no longer required and was removed 2023-08-22 16:29:14 -04:00
ffe291b793 Fixed bugs with the memory allocation for xoriginal 2023-08-22 15:28:28 -05:00
dc5619667f Fix bug in Kokkos ReaxFF on GPUs when border comm is on host 2023-08-22 11:26:12 -06:00
7d9c068da0 whitespace 2023-08-22 11:50:54 -04:00
aad232ffc6 fix typo 2023-08-22 11:46:57 -04:00
eaedc60396 more fixes for file and pathnames with blanks 2023-08-21 15:55:47 -04:00
532e365331 enable/disable VDW mode pushbutton depending on whether valid element info is present 2023-08-21 13:24:12 -04:00
331adc09c0 Merge branch 'develop' into compute-fix-variable-outputs 2023-08-21 10:56:54 -06:00
ab2b83f654 clarify doc for fix ave/histo command 2023-08-21 10:54:42 -06:00
1d749594cb avoid write_dump image failing when not all elements can be recognized 2023-08-21 12:26:08 -04:00
c6233547a5 update compute and fix doc pages for new generality 2023-08-21 09:39:00 -06:00
20748b877e Merge pull request #3894 from akohlmey/remove-mpiio
Remove MPIIO package
2023-08-21 11:02:28 -04:00
3192b11cb8 fix write_dump command string so it can handle paths with blanks 2023-08-21 09:06:19 -04:00
603d7d28fd make constants and functions static so there are no namespace conflicts with multiple files including it 2023-08-21 05:23:42 -04:00
d230ae49c4 update documentation for removal of MPIIO package 2023-08-20 22:17:03 -04:00
4de7694bbe add removed MPIIO dump styles to deprecated dump styles 2023-08-20 22:03:34 -04:00
a81412f015 remove MPIIO sources and references to them. update Purge.list and build systems 2023-08-20 21:51:33 -04:00
46f28e1fb8 workaround for imageviewer GUI glitch on macOS 2023-08-20 19:11:11 -04:00
e50d950a86 fix copy-n-paste bug 2023-08-20 00:24:11 -04:00
a94c45eb0c speed up SSAO with OpenMP multi-threading, if available 2023-08-20 00:11:33 -04:00
93f011ad7c make vdwfactor consistent and speed up rendering for VDW mode by skipping bonds 2023-08-20 00:10:42 -04:00
b592542a5b use more consistent way to update checkboxes and labels by assigning names 2023-08-20 00:01:42 -04:00
80144c9970 speed up SSAO with OpenMP multi-threading, if available 2023-08-19 20:06:31 -04:00
a86c0ed671 suppress pointless warning by MSVC++ compilers 2023-08-19 17:48:03 -04:00
c1b5fe4e84 reimplement lammps_commands_string() library function with C++ and support for heredocs 2023-08-19 17:48:03 -04:00
89fc0ad68a correctly extract local file name from dropped URI 2023-08-19 17:46:41 -04:00
fb0712b66f consistently use bool for echo and cite flags 2023-08-19 13:38:53 -04:00
a4390529ab automatically copy "About LAMMPS" dialog text to clipboard 2023-08-19 09:28:11 -04:00
b904534ac2 Merge pull request #3889 from akohlmey/image-anti-alias
Implement anti-aliasing for dump image (and dump movie)
2023-08-18 15:52:01 -04:00
6e1529ddff finish changes to variables 2023-08-18 13:18:50 -06:00
283c928aac add note and images to showcase the effect of fsaa and ssao 2023-08-18 14:08:43 -04:00
7febd8c918 Merge branch 'develop' into image-anti-alias 2023-08-18 13:32:23 -04:00
d35cd8625e Merge pull request #3890 from akohlmey/lammps-gui-improvements
More lammps gui improvements
2023-08-18 11:37:19 -04:00
91d826a5d6 changed compute section of variable formulas 2023-08-18 09:34:46 -06:00
95e9e6549f simply variable.cpp 2023-08-18 09:28:58 -06:00
9ab79c745b no executable permissions on source code 2023-08-18 07:03:02 -04:00
f5361b49be Merge branch 'develop' into new-computes 2023-08-18 06:58:14 -04:00
9702a7a9d4 don't need to list utils.h as include as it is always included for styles 2023-08-18 06:58:06 -04:00
67f42fa84f add version tags, sort out spelling issues 2023-08-18 06:58:00 -04:00
bb2c286f27 fix whitespace 2023-08-18 06:46:10 -04:00
2af8842877 whitespace 2023-08-18 06:40:51 -04:00
0624aa56b9 remove unused file 2023-08-18 01:50:13 -04:00
422b989c1c may only set bond diameter, if there are actual bonds in the system allowed 2023-08-17 22:33:12 -04:00
5528cefe0f move fsaa keyword next to ssao and away from dump_modify
we don't need to reallocate the buffers this way
2023-08-17 19:57:46 -04:00
f2901827e6 updates to variable doc page to clarify compute/fix options 2023-08-17 17:25:27 -06:00
299eda8ca3 have compute_reduce require either peratom or local inputs 2023-08-17 16:12:14 -06:00
988b121a96 silence compiler warnings 2023-08-17 16:55:57 -04:00
f4fe28d8d0 change PNG compression from best compression to best speed 2023-08-17 16:42:22 -04:00
0d739439c7 changes to compute voronoi/atom 2023-08-17 12:47:48 -06:00
aedda9513e document cost of FSAA 2023-08-17 13:11:41 -04:00
a0414f2fc9 update TODO list 2023-08-17 05:38:51 -04:00
6e2a65c4c5 update docs for LAMMPS GUI 2023-08-17 05:26:48 -04:00
4ec5b5776c fix permissions 2023-08-17 02:25:13 -04:00
b7126f523c use counter so that widgets are properly assigned to their grid slots 2023-08-17 02:23:00 -04:00
18aa897430 fix whitespace and include missing icon 2023-08-17 01:38:34 -04:00
b2a8bc07a0 add option to toggle between VDW style representation and licorice style 2023-08-17 01:20:07 -04:00
23f9615ef2 color by element when units setting allows it 2023-08-17 00:41:30 -04:00
37b0ba1d51 import periodic table functions from VMD/molfile plugin 2023-08-17 00:40:00 -04:00
3ac856cc92 add extract_global() and extract_atom() 2023-08-17 00:39:10 -04:00
43347b87ce also recognize integer ranges with : or * as integer 2023-08-17 00:38:46 -04:00
f91dc3e68a implement anti-aliasing for dump image (and dump movie) 2023-08-16 20:24:57 -04:00
4628199041 update todo 2023-08-16 19:10:14 -04:00
3eb8fd219a update of a Howto_output doc page 2023-08-16 16:19:11 -06:00
2c8a3d87a0 must stop running LAMMPS simulation before we can close the lammps object 2023-08-16 13:06:09 -04:00
ebbce58da6 fix typo 2023-08-16 12:07:43 -04:00
561f682afd support setting image dimensions, have render activity indicator 2023-08-16 08:48:31 -04:00
44f725f61f add tooltips, add run/stop/image buttons to status bar, replace run/stop icons 2023-08-16 07:11:07 -04:00
7c9eda658f fix typo 2023-08-16 03:38:05 -04:00
06e2d5d306 Merge pull request #3883 from akohlmey/lammps-gui-improvements
LAMMPS GUI improvements
2023-08-16 02:17:57 -04:00
cd4642dfb4 Merge pull request #3887 from lammps/compute-prop-grid-proc
Add proc option to compute property/grid
2023-08-15 23:49:33 -04:00
b57f6d9b30 dynamic loaded library crashes currently on macOS 2023-08-15 23:44:14 -04:00
a7f84ef645 Merge pull request #3888 from lammps/example-asphere-tri
Changes to make example script in ASPHERE/tri run smoothly
2023-08-15 23:25:04 -04:00
2cdb9c5c69 must make copies on Linux 2023-08-15 23:22:17 -04:00
653f0c4d8a correct re-launch implementation for windows 2023-08-15 23:13:31 -04:00
65cd6a3f2a we cannot cleanly restart with a new plugin through loading. must relaunch. 2023-08-15 22:46:50 -04:00
51cb6da4ca must dynamically load liblammps.so before any library function calls 2023-08-15 21:33:35 -04:00
d8541e1318 Merge branch 'develop' into lammps-gui-improvements 2023-08-15 21:23:58 -04:00
cbf463898d add versionadded tag 2023-08-15 20:58:57 -04:00
9b45b80844 Merge branch 'develop' into example-asphere-tri 2023-08-15 20:56:09 -04:00
db9bb9e390 Merge branch 'develop' into compute-prop-grid-proc 2023-08-15 20:54:33 -04:00
1e2db10252 whitespace 2023-08-15 20:54:28 -04:00
e3167fb83d Merge pull request #3881 from akohlmey/collected-small-changes
Collected small changes and fixes
2023-08-15 20:40:30 -04:00
b3f045f5ae changes to make example script in ASPHERE/tri run 2023-08-15 17:09:17 -06:00
185fa1bcdb small documentation and spelling updates 2023-08-15 12:01:07 -04:00
e886d01190 add View in OVITO and View in VMD entries to Run menu 2023-08-15 08:04:01 -04:00
cd9a5f8d8c make darkgray *really* dark gray, i.e. darker than gray 2023-08-15 06:09:34 -04:00
a5b2461e36 update docs 2023-08-15 06:08:57 -04:00
afd5f6a818 some more image settings tweaks 2023-08-15 06:08:39 -04:00
62547ccde5 update quick help and TODO list 2023-08-15 05:35:34 -04:00
263db3d13c avoid lengthy accelerator details with Nvidia GPUs 2023-08-15 02:26:54 -04:00
0c7f56e881 imageviewer updates
- new zoom icons
- resetview option
- properly track pushbutton checked state
- add preferences options for selecting background and box color
2023-08-15 02:21:05 -04:00
dedddee70a no point in removing a null pointer item 2023-08-15 01:06:15 -04:00
3bf70c1b97 various chart window updates and improvements
- charts are reset if the thermo style changes
- charts are reset if the timestep is reset (to a lower value)
- charts are not updated if thermo data is not valid (e.g. during setup)
- use integer format for Steps on the x-axis
2023-08-15 01:05:54 -04:00
8bfa0b2b04 add option to query Update::setupflag to see if thermo data is valid 2023-08-15 01:03:25 -04:00
4e604c2ccd remove OpenMPI hack. We have disabled MPIIO testing altogether. 2023-08-14 22:05:32 -04:00
f0962f36f6 make consistent and avoid segfaults 2023-08-14 21:53:45 -04:00
e51845776d make box, axes, ssao, antialias checkable buttons in image viewer
this reduces the antialias option to just 2x
2023-08-14 21:37:46 -04:00
2728f6763e updated output and cross-check 2023-08-14 18:47:27 -04:00
c11c51ba3c complete lammps gui howto 2023-08-14 16:56:22 -04:00
b53c564190 update clang-format detection for compatibility with Debian 2023-08-14 15:13:43 -04:00
9fc54865cf improve desktop integration for Linux 2023-08-14 14:31:30 -04:00
dad8081d55 Merge pull request #3884 from akohlmey/fmtlib-10.1
Update fmtlib to version 10.1
2023-08-14 11:35:29 -04:00
e297800102 get rid of tr() macros 2023-08-14 10:11:58 -04:00
a10b1de511 complete bundling and assigning icons to actions 2023-08-14 04:01:33 -04:00
cdbbe33933 Made check incase PyTorch didn't define the device 2023-08-14 09:36:56 +02:00
ea965d3b26 Working on exchange comm on device, and grow arrays for xoriginal 2023-08-13 23:40:53 -05:00
619623f0f6 more icons 2023-08-13 21:38:18 -04:00
f53991c107 include more icons link to Howto doc 2023-08-13 17:46:00 -04:00
a07f02c135 more howto documentation updates 2023-08-13 17:13:19 -04:00
d650bc61c5 include images of the preferences dialog tabs and discuss preferences 2023-08-13 15:36:05 -04:00
7e3c04aa51 add a small LAMMPS icon to the status bar indicating whether an active LAMMPS instance exists 2023-08-13 02:57:47 -04:00
9f407cae1e more documentation and tutorial updates 2023-08-13 02:57:02 -04:00
c1f9f9d1c6 we have accumulated enough changes to call this version 1.2 2023-08-13 00:15:09 -04:00
8076f77e1e add missing connect() macro 2023-08-13 00:14:46 -04:00
d4b6302b31 more doc improvements 2023-08-12 23:33:06 -04:00
1991d74623 desktop integration for Linux, embedded icons on Windows 2023-08-12 23:30:37 -04:00
929ca8f0f1 small clarification 2023-08-12 21:07:35 -04:00
c11d58f7b1 Start working on a LAMMPS GUI howto
Docs are now organized as follows:
- README is minimal and points to other docs
- The section in Tools.rst mostly explains compilation and installation
- The Howto contains a tour of the GUI and explains intended functionality
2023-08-12 21:07:12 -04:00
e7b02e89fa also linke the principal command when linking styles 2023-08-12 20:13:40 -04:00
bbcfbe957b implement context specific help either via right-click or CTRL-? 2023-08-12 17:46:10 -04:00
3957b4b194 avoid legacy compilation failures on recent ubuntu machines that only have python3-config 2023-08-12 12:45:13 -04:00
5115df7a38 avoid legacy compilation failures on recent ubuntu machines that only have python3-config 2023-08-12 12:45:01 -04:00
dd18de164a avoid legacy compilation failures on recent ubuntu machines that only have python3-config 2023-08-12 12:41:44 -04:00
45290b5296 update fmtlib to version 10.1 2023-08-12 11:52:22 -04:00
f104d75626 add missing icon 2023-08-12 10:17:10 -04:00
62b4318801 complete implementation of variable setting dialog 2023-08-12 10:08:02 -04:00
ca9924035b Working on pack/unpack exchange for xoriginal 2023-08-12 01:19:43 -05:00
9110c23fcb add set variables dialog 2023-08-12 00:09:30 -04:00
45b9801941 add parser that collects info about possible variables to be set from the command line 2023-08-11 21:59:51 -04:00
a24eccf95d Removed maxatom from fix spring/self, need to work on exchange for xoriginal on spring/self/kk 2023-08-11 09:43:28 -05:00
2cf73ff427 use platform abstractions from Qt library 2023-08-11 06:44:52 -04:00
035620d252 more image window tweaks
- add image windows to View menu
- add setting to replace old image view instead of creating a new one
- add setting to turn on/off box
- add setting to turn on/off axes
2023-08-11 03:36:40 -04:00
93e67c9388 add pixmaps to image viewer buttons 2023-08-11 02:40:08 -04:00
2e0e3d9204 add support for near-interactive image processing 2023-08-10 23:27:04 -04:00
4afd5f9661 update status message while rendering snapshot image 2023-08-10 21:46:05 -04:00
7c03921669 only close LAMMPS instance if preferences for command line flags have changed 2023-08-10 21:36:09 -04:00
55d0b84428 add support for Image rendering with up to 4x4 antialiasing and SSAO mode 2023-08-10 21:16:17 -04:00
4fb5135887 remove scrollwheel support, add prototype buttons 2023-08-10 19:58:03 -04:00
cb2627220e add a few more ideas 2023-08-10 13:29:27 -04:00
506383ab7e more ideas 2023-08-10 06:35:34 -04:00
bf6e021335 Merge branch 'develop' into lammps-gui-improvements 2023-08-10 06:28:05 -04:00
eda6a39e6a Merge branch 'develop' into collected-small-changes 2023-08-10 06:27:44 -04:00
3ae89fed8b Merge pull request #3867 from akohlmey/fix-vector-nmax
Add  nmax keyword to fix vector to restrict vector length
2023-08-10 06:27:11 -04:00
54edfd1604 update TODO, remove useless file 2023-08-10 06:14:41 -04:00
4bb3ecd09c Added the fix spring/self/kk source files 2023-08-10 00:36:33 -05:00
6ff85cab7f Adding fix spring/self/kk, needed to add maxatom to fix spring/self, may need resize xoriginal as well 2023-08-10 00:34:52 -05:00
2b7873a5bd fix typos 2023-08-09 22:55:31 -04:00
cb4eee809d add support to store the 5 most recent files and add them to the file menu 2023-08-09 22:22:17 -04:00
f1ba4227dc update TODO list 2023-08-09 20:26:26 -04:00
27d4a8afcf small tweak 2023-08-09 20:26:18 -04:00
2f415c8b62 bugfix for pair style dpd/gpu from Trung 2023-08-09 09:42:01 -04:00
b9afbf40a0 Merge branch 'develop' into collected-small-changes 2023-08-09 00:43:29 -04:00
bddb19fda1 disable *all* MPI-IO related testing 2023-08-09 00:41:40 -04:00
5d1c75e660 disable MPI-IO based restart writing (for now) 2023-08-09 00:41:39 -04:00
a56ac77132 indexing bugfix for compute global/atom 2023-08-09 00:41:39 -04:00
2f6dbfd239 possible workaround for unit test failure
taken from: https://github.com/open-mpi/ompi/issues/9656
2023-08-09 00:41:39 -04:00
ab4ae4f177 recover lost "reset to defaults" action 2023-08-09 00:36:42 -04:00
a4ab3935b4 more "About" dialog box tweaks 2023-08-09 00:36:33 -04:00
a3f742a405 add info about accelerator support and communication 2023-08-09 00:36:26 -04:00
46dd9c8546 make font size in "About" dialog 3/4 the default size. 2023-08-09 00:36:17 -04:00
b7fad288c7 fix ability to select a temporary directory (for image files) 2023-08-09 00:36:05 -04:00
7b1c00137a add preference option to select default and text font 2023-08-09 00:35:47 -04:00
4397e13aaf simplify font selection and prepare for making it a preference 2023-08-09 00:35:36 -04:00
54c62c86a7 fall back to "none" accelerator, if one was selected, but is no longer available 2023-08-09 00:35:23 -04:00
407bcf30a0 step patch level for lammps-gui 2023-08-09 00:35:13 -04:00
65d5d6508a force C locale from within the LAMMPS GUI app 2023-08-09 00:34:58 -04:00
77808cd178 add option to set visibility of log and chart windows from menu and in preferences 2023-08-09 00:34:43 -04:00
d7b5387712 enforce C locale, so that numbers are created and parsed correctly in the GUI text editor 2023-08-09 00:34:35 -04:00
f345146103 Simplify QtCreator file, update TODO once more, tag patch level 2023-08-09 00:34:19 -04:00
6dcfe130a4 tweaks to syntax highlighting 2023-08-09 00:34:05 -04:00
b81aaebd87 update TODO list 2023-08-09 00:33:54 -04:00
d33d59ec41 update docs 2023-08-09 00:33:43 -04:00
1b0967477b add support to export collected Thermo data to gnuplot .dat and excel .csv 2023-08-09 00:33:31 -04:00
bf79b91db0 update TODO list 2023-08-09 00:33:17 -04:00
890765f2e6 add preference option to replace chart window 2023-08-09 00:33:00 -04:00
53eaca030b complete chart view window with option to select chart from thermo columns 2023-08-09 00:32:46 -04:00
fe7681d0b3 add chart viewer window to show graphs of ongoing runs from thermo data 2023-08-09 00:32:34 -04:00
d414dd52d5 subclass QPlainTextEdit for logwindows, so we can store its size on close
also some more settings tweaks (e.g. do not store window size when maximized)
and add setting to replace log windows instead or creating new ones.
2023-08-09 00:32:22 -04:00
ea15cec4bf remember the size of the main window 2023-08-09 00:31:53 -04:00
9b0fe3eeda improve LAMMPS GUI docs, add info about using the Linux-2-Windows cross-compiler 2023-08-09 00:31:11 -04:00
4ca32f0cec Added comments to the use of operators overloaded when accessing unwrap on the GPU (serial works fine) 2023-08-07 15:24:16 -05:00
7c17ea632c Reverted changes to tau as a time constant. To be checked. 2023-08-07 12:09:44 +02:00
4a82754464 Fixed an obvious bug with x 2023-08-07 00:30:32 -05:00
5a6b2ec59c disable *all* MPI-IO related testing 2023-08-06 22:06:28 -04:00
a1bfbf4872 disable MPI-IO based restart writing (for now) 2023-08-06 22:06:14 -04:00
2987f38257 possible workaround for unit test failure
taken from: https://github.com/open-mpi/ompi/issues/9656
2023-08-06 22:05:53 -04:00
dc8f17e8e6 Fixed bugs with missing x array, removed the () operator overloads because they require access to domain within the kernels 2023-08-06 00:04:46 -05:00
b6f7a27b09 Merge pull request #3871 from megmcca/local-composition
Per-atom compute to calculate local composition of atom types
2023-08-05 00:53:57 -04:00
dbab5b6931 possible workaround for unit test failure
taken from: https://github.com/open-mpi/ompi/issues/9656
2023-08-04 22:32:28 -04:00
e10e1190e2 Merge branch 'develop' into triclinic-neighbor-bug 2023-08-04 22:32:19 -04:00
003a207038 possible workaround for unit test failure
taken from: https://github.com/open-mpi/ompi/issues/9656
2023-08-04 22:30:28 -04:00
7d359403ac clarify docs 2023-08-04 21:37:20 -04:00
db0c892d24 correct parsing of arguments with nmax appended at the end 2023-08-04 21:37:12 -04:00
5e9658aff6 fix whitespace and minor documentation integration issues 2023-08-04 21:06:47 -04:00
7adb2d7bcf fix syntax issues 2023-08-04 17:16:00 -04:00
b248211eb5 Merge branch 'develop' into fix-vector-nmax 2023-08-04 16:44:20 -04:00
41e71f2e41 update fix vector docs 2023-08-04 16:44:10 -04:00
95bc422424 fix duplicate implicit reference 2023-08-04 16:38:18 -04:00
bc02a7cc62 Merge pull request #3836 from akohlmey/cmake-3.16
Make CMake 3.16 the minimum required version
2023-08-04 15:36:32 -04:00
4c68e3f5f3 Small tweaks 2023-08-04 13:29:22 -06:00
376b83df52 Merge branch 'develop' of github.com:lammps/lammps into local-composition 2023-08-04 13:23:53 -06:00
5d3839db9f clean up all created files 2023-08-04 13:27:01 -04:00
cf5cd9f977 update docs 2023-08-04 13:21:59 -04:00
907673c4d7 Merge branch 'develop' into fix-vector-nmax 2023-08-04 13:07:03 -04:00
951b344a07 Merge branch 'develop' into cmake-3.16 2023-08-04 13:05:08 -04:00
4851f30634 Merge pull request #3877 from akohlmey/collected_small_fixes
Collected small fixes
2023-08-04 13:04:39 -04:00
a6767c85b0 apply clang-format 2023-08-04 12:11:59 -04:00
bc6fcdc61a Applying triclinic neighbor fixes to intel package. 2023-08-04 08:49:27 -07:00
1a5b947593 flag if we are cross-compiling 2023-08-04 08:02:06 -04:00
e958cc0ef1 silence warning about a setting that was added to silence warnings 2023-08-04 08:01:57 -04:00
ecb28e8e2e Merge branch 'develop' into cmake-3.16 2023-08-04 04:26:30 -04:00
8eb7f56491 be more thorough and complete about including all required dll files 2023-08-04 04:17:01 -04:00
2ea1c78376 cosmetic 2023-08-04 02:24:52 -04:00
cf6866d5e6 improve message in about LAMMPS dialog 2023-08-03 22:42:50 -04:00
6280876825 Merge remote-tracking branch 'github/develop' into collected_small_fixes 2023-08-03 22:09:45 -04:00
a10aab440f report LAMMPS GUI build choices in CMake config summary 2023-08-03 22:09:36 -04:00
e87bbf4edb Merge pull request #3832 from akohlmey/fmtlib-update
Update fmtlib copy to version 10
2023-08-03 22:03:32 -04:00
4e08e6cb4c add support to build LAMMPS GUI zip package with cross compiler 2023-08-03 21:57:33 -04:00
7498739f98 work around build issue with cross-compiler 2023-08-03 21:56:35 -04:00
0446bdfc00 work around C++17 issue in AWPMD package 2023-08-03 21:56:04 -04:00
7d84eb86f7 Merge remote-tracking branch 'github/develop' into collected_small_fixes 2023-08-03 21:01:08 -04:00
e467461cac Merge pull request #3736 from lammps/always-exceptions
Always throw exceptions for errors
2023-08-03 21:00:19 -04:00
2305c4cb30 Merge branch 'develop' into cmake-3.16 2023-08-03 17:39:15 -04:00
794e3d11df Merge pull request #3670 from stanmoore1/kk_update_4.0
Update Kokkos library in LAMMPS to v4.1.0
2023-08-03 17:36:22 -04:00
e3fa10ee88 add deprecation note to lammps_config_has_exceptions() function 2023-08-03 17:35:05 -04:00
6e9a6e6b0b Merge pull request #3856 from akohlmey/remove-mscg-package
Remove MSCG package from LAMMPS distribution
2023-08-03 17:29:56 -04:00
24ea5fe7e3 hack to avoid compile failure with intel 2023-08-03 17:21:09 -04:00
397f3e4786 exceptions are always enabled and thus the check is no longer required 2023-08-03 16:52:24 -04:00
4ed98083e0 Merge branch 'develop' into always-exceptions
# Conflicts:
#	src/library.cpp
2023-08-03 16:50:50 -04:00
a57f2a996f sync with fmtlib upstream 2023-08-03 16:34:07 -04:00
6049f2985d Merge branch 'develop' into fmtlib-update 2023-08-03 16:22:57 -04:00
e0055ea929 Merge branch 'develop' of github.com:lammps/lammps into kk_update_4.0 2023-08-03 13:42:48 -06:00
fbf0bad3b5 correct sort order 2023-08-03 14:30:32 -04:00
cefb38a000 update package list for Windows with MSVC 2023-08-03 14:30:21 -04:00
3f5898a241 flag development branch 2023-08-03 14:28:23 -04:00
cc9dee5ecd use references instead of copies when looping over list of selected fixes 2023-08-03 11:00:05 -04:00
a6d178194e use consistent names and capitalization in comments 2023-08-03 10:59:31 -04:00
9617c8e3d2 also update doc page 2023-08-02 16:30:26 -06:00
3e7f1ac83a add proc option to compute property/grid 2023-08-02 16:27:19 -06:00
34c398dd37 Tried two ways of doing parallel reduce for fsum 2023-08-02 06:59:24 -05:00
e3792616ad Moving line break in BPM doc pages for link, fixing prop/atom syntax 2023-08-01 12:54:23 -06:00
6a991ff0a0 Updated fix efield/kk, needs work on unwrap 2023-08-01 10:53:20 -05:00
6c38c4de50 must update Purge.list when removing package from distribution 2023-07-27 10:46:34 -04:00
1fa4ab22ab Merge branch 'develop' into remove-mscg-package 2023-07-27 10:45:23 -04:00
3657ed6beb clean up comments 2023-07-27 03:35:46 -06:00
2273c5c475 fix memory and output bugs 2023-07-27 03:28:46 -06:00
f533d4ff66 Merge branch 'lammps:develop' into local-composition 2023-07-27 03:13:51 -06:00
0a5aa5b1d2 Merge branch 'lammps:develop' into compute-pace-update 2023-07-24 10:05:05 -06:00
a48f4597a2 add optional nmax keyword to fix vector to allow using it as a sliding window 2023-07-22 00:08:17 -04:00
b9aa71cbc5 Merge branch 'develop' of github.com:lammps/lammps into kk_update_4.0 2023-07-20 13:03:17 -06:00
3c2ba879ef Merge branch 'lammps:develop' into compute-pace-update 2023-07-20 08:55:35 -06:00
f62a4c5372 Working on fix efield/kk 2023-07-17 16:49:26 -05:00
e9223fc5af Fixing LAMMPS headers 2023-07-17 14:34:46 -06:00
2d897ac8f3 Fixing doc build errors 2023-07-17 14:22:22 -06:00
1ffb2289be explicitly zeroing arrays 2023-07-17 11:59:50 -06:00
f4000efd8a Adding reference section to doc pages, update misc error messages 2023-07-17 11:52:06 -06:00
9b7bd71ab6 remove MSCG package from LAMMPS distribution 2023-07-16 21:04:58 -04:00
b1a39d0b4d Merge branch 'upstream' into kk-updates 2023-07-16 00:04:32 -05:00
a80739c537 Doc and gitignore updates 2023-07-15 22:12:10 -06:00
7fa1f4b3b4 Various clean ups, moving files 2023-07-15 22:10:19 -06:00
78470febbd Merge branch 'develop' of github.com:lammps/lammps into kk_update_4.0 2023-07-14 17:59:15 -06:00
63be267a94 Merge branch 'lammps:develop' into compute-pace-update 2023-07-13 08:38:20 -06:00
7b40576b2b Merge branch 'lammps:develop' into compute-pace-update 2023-07-12 18:12:31 -06:00
c936e98d5c Merge branch 'triclinic-neighbor-bug' of github.com:lammps/lammps into triclinic-neighbor-bug 2023-07-11 18:50:32 -07:00
a91b3dab96 doc atom ID requirement for triclinic 2023-07-11 18:50:23 -07:00
3fc809a1b9 add check for atom IDs when triclinic 2023-07-11 18:45:45 -07:00
89fb236144 port bugfix for colloid test failure 2023-07-11 18:35:16 -04:00
2a7ac115d8 fix whitespace (one more time) 2023-07-11 18:25:29 -04:00
fe1aab69e0 merge from ORIGIN 2023-07-11 14:39:44 -07:00
bb6e4d8440 add forgotten line to multi and mutli/old 2023-07-11 14:30:14 -07:00
2eeea43320 port neighbor list changes to OPENMP package 2023-07-11 10:11:39 -04:00
1427e0adbc Merge remote-tracking branch 'github/develop' into triclinic-neighbor-bug 2023-07-10 22:36:08 -04:00
6bd965f0df fix whitespace (again) 2023-07-10 22:35:36 -04:00
fbbf44fb8e same changes to other NPair and NStencil methods 2023-07-10 18:25:29 -07:00
4ab95611db merge with ORIGIN 2023-07-10 12:57:57 -07:00
07f42930ff clean up code and comments 2023-07-10 12:53:02 -07:00
9db5d45232 port neighbor list build changes to corresponding OPENMP package files 2023-07-09 15:29:18 -04:00
e3349581c7 fix whitespace and remove debug code 2023-07-09 15:14:36 -04:00
ce1a084a0e expand stencil for triclinic neighbor build 2023-07-08 18:31:55 -07:00
abadf9412a check old results 2023-07-08 10:26:34 -07:00
42f2a4b5b0 exclude self interactions and double counting of own/own 2023-07-07 08:58:14 -07:00
129264aa14 debugging 2023-07-07 08:42:46 -07:00
bacfcd2050 change triclinic logic to not depend on exact I,J atom coords 2023-07-07 07:36:05 -07:00
f6d4fd74e3 Merge branch 'develop' into fix-rigid-enforce2d 2023-07-06 13:23:21 -04:00
108c5fc416 improve error messages 2023-07-05 14:59:35 -04:00
200b428039 Merge branch 'develop' into fix-rigid-enforce2d 2023-07-05 14:22:02 -04:00
9fde61fc4e Update compute_stress_mop_profile.cpp 2023-07-05 16:59:02 +03:00
78f4e4f1a1 Update compute_stress_mop.rst 2023-07-05 16:51:41 +03:00
9aa9bdd3ba Implementation of compute_angles in compute_stress_mop_profile.cpp and related adjustments to flags/memory allocations 2023-07-05 16:45:53 +03:00
79ed2d9e8b Definition of compute_angle and related variables in compute_stress_mop_profile.h 2023-07-05 16:35:25 +03:00
94fa2f51c9 compute kinetic contribution without assuming orthogonal geometry 2023-07-05 13:38:56 +03:00
005c15c07b compute kinetic contribution without assuming orthogonal geometry 2023-07-05 13:26:47 +03:00
3c09aa26f9 Merge branch 'develop' of github.com:lammps/lammps into kk_update_4.0 2023-07-03 16:35:57 -06:00
ef40448df6 update docs for CMake 3.16 requirement 2023-07-01 03:01:37 -04:00
4a46083e88 add git commit descriptor to LAMMPS version output 2023-06-30 23:29:17 -04:00
b50fc0be78 remove obsolete CONFIGURE_DEPENDS backward compatibility hack 2023-06-30 23:19:53 -04:00
71b48253e8 remove special case CMake code for versions before 3.16 2023-06-30 23:15:37 -04:00
378ef4b23e require CMake version 3.16 2023-06-30 22:59:41 -04:00
7c9b7eecf3 Update CMake 2023-06-29 10:48:35 -06:00
330107b77b Update Kokkos library in LAMMPS to v4.1.0 2023-06-29 10:42:42 -06:00
484e7ad0e3 clean up of originflag from compute_stress_mop_profile.h 2023-06-29 08:54:30 +03:00
6e32d29322 clean up of originflag variable in compute_stress_mop_profile.cpp 2023-06-29 08:53:50 +03:00
1743f0b338 update fmtlib to current master branch 2023-06-25 06:30:42 -04:00
fc365d3d5f Merge branch 'develop' into always-exceptions 2023-06-22 10:53:36 -04:00
8e1711c803 Implement born_matrix in dihedral_quadratic.cpp 2023-06-22 17:00:10 +03:00
ae96c9bd47 Define born_matrix() in dihedral_quadratic.h 2023-06-22 16:58:00 +03:00
7ab9da0212 Implementation of born_matrix in dihedral_helix.cpp 2023-06-21 10:59:13 +03:00
fb31ffe17c Definition of born_matrix() in dihedral_helix.h 2023-06-21 10:56:53 +03:00
7f3a930d89 Implement born_matrix() in angle_cosine_periodic.cpp 2023-06-20 16:21:57 +03:00
345a834c7e Include definition of born_matrix() in angle_cosine_periodic.h 2023-06-20 16:20:57 +03:00
bb2d691e78 implement born_matrix in angle_mm3.cpp 2023-06-20 15:42:47 +03:00
2631a159af define born_matrix in angle_mm3.h 2023-06-20 15:41:09 +03:00
24fbff2c03 Merge branch 'lammps:develop' into master 2023-06-20 11:50:30 +03:00
dc1eb43cf2 Cleaning coord and coordp vectors in compute_stress_mop_profile.cpp 2023-06-19 19:47:34 +03:00
ad3752431f Regular pointer for coord and coordp in compute_stress_mop_profile.h 2023-06-19 19:42:01 +03:00
f6b259b186 Implementing born_matrix in bond_harmonic_shift_cut.cpp 2023-06-19 19:40:11 +03:00
6c9d42b7c3 Include born_matrix() definition in bond_harmonic_shift_cut.h 2023-06-19 19:38:50 +03:00
bfc969d5c5 implementation of born_matrix in bond_mm3.cpp 2023-06-19 16:39:49 +03:00
2f22761461 born_matrix() method in bond_mm3.h 2023-06-19 16:38:34 +03:00
365f4bc559 non-zero born_matrix_enable flag in angle_fourier.cpp 2023-06-18 18:44:28 +03:00
eb8512ba2a implementation of born_matrix() for angle_quartic.cpp 2023-06-18 18:26:48 +03:00
4e17cc551e inlcude born_matrix() definition in in angle_quartic.h 2023-06-18 18:25:35 +03:00
42c843ff4f remove iostream from bond_gaussian.cpp 2023-06-18 18:24:24 +03:00
c7ac1c1d5a Merge branch 'lammps:develop' into master 2023-06-18 18:22:24 +03:00
af76ffdfda ROCM aware OpenMPI support 2023-06-18 17:08:49 +03:00
2a432bdaf1 Clarifying output as sqrt 2023-06-16 16:32:15 -06:00
ca636ffa7d Adding d2min doc 2023-06-16 16:28:48 -06:00
a1513a7d3b rattler documentation 2023-06-15 23:06:50 -06:00
7012e6ddd4 Debugging and cleaning up D2min calculation 2023-06-15 19:06:14 -06:00
2fbaeb4fc7 Fixing merge conflict 2023-06-15 16:03:30 -06:00
2905016f9a Updating to develop 2023-06-15 16:00:48 -06:00
25f5e74e9a updating args and D2min calculation in nonaffine fix 2023-06-15 15:51:59 -06:00
227c4f2f1a Merge branch 'develop' into fix-rigid-enforce2d 2023-06-15 10:04:48 -04:00
a05fcc326e Implement born_matrix() in bond_gaussian.cpp 2023-06-12 12:47:21 +03:00
85765a2bf3 Include born_matrix() definition in bond_gaussian.h 2023-06-12 12:45:52 +03:00
38fd78b867 factor out variable lcomp 2023-06-10 09:11:09 -06:00
9eb32fc6b0 fix memory allocation runtime error 2023-06-10 07:54:40 -06:00
bb1ff49af6 Corrected bug from f_piston not initialised. Removed superfluous
temp compute id variable name
2023-06-07 14:03:40 +02:00
170173a213 Merge branch 'develop' of github.com:lammps/lammps into kk_update_4.0 2023-06-06 08:48:41 -06:00
0d7a411123 Merge branch 'NPTLangevin' of github.com:Bibobu/lammps into NPTLangevin 2023-06-06 09:54:16 +02:00
0c2cd80028 Edited the documentation of fix_press_langevin to take changes into
account.
2023-06-06 09:37:34 +02:00
9a585f8204 Change variables names in header for consistency with GJF paper. 2023-06-06 09:14:23 +02:00
a4e7966da5 Fixed some error messages for consistency.
Seed did not need comm->me addition.
2023-06-06 09:11:27 +02:00
aeab026d66 Update Kokkos arch list 2023-06-05 15:32:26 -06:00
e1573a11a6 Update CMake 2023-06-05 15:07:07 -06:00
8ddd965127 Update Kokkos library in LAMMPS to v4.0.1 2023-06-05 15:03:28 -06:00
39eaab5278 Merge branch 'kk_update_3.7.2' of github.com:stanmoore1/lammps into kk_update_4.0 2023-06-05 11:05:26 -06:00
741db3da28 Merge branch 'develop' of github.com:lammps/lammps into kk_update_4.0 2023-06-05 10:55:24 -06:00
0d875d4f8f Fixed up kokkos version 2023-06-01 18:51:31 -06:00
710597a353 Made some coding style changes 2023-06-01 17:43:51 -06:00
2c22bb49b4 Added some comments to data members 2023-06-01 12:32:02 -06:00
0e4d5f03a1 Merge branch 'lammps:develop' into local-composition 2023-06-01 07:46:15 -06:00
9a389fbac6 fix typo 2023-06-01 03:25:17 -06:00
4ebc8afd1e update documentation 2023-06-01 03:20:43 -06:00
90e84a6ff8 set up basic KOKKOS file (untested) 2023-05-31 13:32:52 -06:00
1124f7eb93 adjust to one-liner 2023-05-31 13:32:37 -06:00
40056e29a4 move reset of lcomp array to correct scope 2023-05-25 11:58:02 -06:00
a0a0812ebf Added link to fix press/berendsen and fixed minor typos 2023-05-24 14:33:34 -06:00
d9937fc2c6 add base tested code 2023-05-24 13:16:08 -06:00
74d89c4c9b init 2023-05-24 11:07:03 -06:00
68ec36b006 Added the flip keyword to the documentation of fix_press_langevin. 2023-05-20 09:16:30 +02:00
9440f26355 Merge branch 'develop' of github.com:lammps/lammps into NPTLangevin 2023-05-20 08:59:29 +02:00
93402f61d8 Updated the documentation to include triclinic commands and other info. 2023-05-20 08:58:52 +02:00
ab925000fe Added triclinic and relative remap functions to press/langevin files 2023-05-19 16:34:42 +02:00
1c33aec5dc Wrote the documentation for fix_press_langevin 2023-05-17 18:28:49 +02:00
b1c4fc8948 Merge branch 'develop' of github.com:lammps/lammps into NPTLangevin 2023-05-17 17:14:25 +02:00
859012b192 Initial commit of an early version of anisotropic Langevin barostat. 2023-05-17 17:13:07 +02:00
308bea4557 Merge branch 'upstream' into kk-updates 2023-04-26 23:14:54 -05:00
e1df51969d Merge branch 'develop' into always-exceptions 2023-04-25 09:08:21 -04:00
0be9206c08 Merge branch 'develop' into kk_update_4.0 2023-04-24 09:05:29 -06:00
8a118b6f17 Merge pull request #16 from rbberger/kk_cpp17_update
Cleanups and HIP bugfix
2023-04-24 09:01:59 -06:00
74cf149aef Merge branch 'lammps:develop' into main 2023-04-24 09:00:00 -06:00
65a42d3921 kokkos: make use of NeedDup_v 2023-04-22 17:05:05 -06:00
f954edc791 kokkos: remove duplicated define 2023-04-22 16:45:38 -06:00
0fee9ce956 kokkos: HIP is no longer in Experimental namespace 2023-04-22 16:42:10 -06:00
88909114a4 kokkos: make use of AtomicDup_v 2023-04-22 16:33:25 -06:00
d3b48a9346 kokkos: use std::enable_if_t and std::is_same_v 2023-04-22 16:20:04 -06:00
bee5afcd08 Added yukawa/colloid/kk 2023-04-21 00:22:36 -05:00
f138117ecf Merge branch 'develop' of github.com:lammps/lammps into kk_update_4.0 2023-04-18 12:36:08 -06:00
f2e1bf5116 Merge branch 'kk_update_4.0' of github.com:stanmoore1/lammps into kk_update_4.0 2023-04-18 12:35:51 -06:00
5a25d5310b Fix bug in Makefile.kokkos 2023-04-18 12:35:30 -06:00
5f4a80d41f remove obsolete unittest code specific to handling the case of lammps exceptions disabled 2023-04-16 12:34:47 -04:00
98efb19e79 simplify and modernize. apply clang-format. 2023-04-16 12:23:42 -04:00
8086228976 make communicator protected and use accessor instead. simplify 2023-04-15 21:54:13 -04:00
baeed85468 update CMake files 2023-04-15 18:03:09 -04:00
0cd5ae5f2e remove -DLAMMPS_EXCEPTIONS and always enable the corresponding code paths 2023-04-15 17:49:08 -04:00
3ed6612f08 correct comment 2023-04-14 23:20:22 -04:00
e1e82e6715 Merge branch 'develop' into fix-rigid-enforce2d 2023-04-14 14:38:21 -04:00
fed3c02d01 improve error messages and partially apply clang-format 2023-04-04 08:56:30 -04:00
777ba98764 cosmetic 2023-04-04 08:56:07 -04:00
6e09037aa3 incremental improvements 2023-04-04 05:20:53 -04:00
3f636cbad1 Merge branch 'develop' into fix-rigid-enforce2d 2023-04-04 01:49:52 -04:00
56f760d0d8 whitespace 2023-04-03 22:30:39 -04:00
d2565bb1e2 port changes to OPENMP 2023-04-03 22:30:30 -04:00
ac465baf80 fix compilation issue with KOKKOS 2023-04-03 22:29:50 -04:00
8d523c0604 enable fix rigid to support 2d enforcement internally 2023-04-03 17:21:11 -06:00
b456beb62f Reorganizing intel npair to work with cmake, adding intel stencil 2023-03-28 13:55:12 -06:00
781eb934c1 Adding mass to python numpy unittest of KE 2023-03-27 16:37:11 -06:00
c319231395 Merge branch 'develop' into consolidate_neigh_classes 2023-03-27 10:33:04 -06:00
1991332887 Merge branch 'develop' of github.com:lammps/lammps into kk_update_4.0 2023-03-24 09:17:32 -06:00
cc7c4bed76 Merge branch 'develop' into consolidate_neigh_classes 2023-03-16 20:30:38 -06:00
aab4750231 Update docs 2023-03-03 10:50:12 -07:00
10a3fc9508 Remove unused volatile overloads 2023-03-03 10:06:58 -07:00
35a45eaa36 Remove deprecated code 2023-03-03 09:56:01 -07:00
d18c1fdad1 Update C++ standard for Kokkos 2023-03-03 09:36:29 -07:00
03916a3c28 Update Kokkos CMake 2023-03-03 09:32:53 -07:00
14cb8576f4 Update Kokkos library in LAMMPS to v4.0 2023-03-03 09:22:33 -07:00
c4676aabfd Adding missing variables from omp npair halffull 2022-11-23 09:58:46 -07:00
58f9553bf1 Copying fixes to omp 2022-11-23 08:52:21 -07:00
8f81cd80b6 Fixing a few errors in npair/stencil classes 2022-11-22 21:31:31 -07:00
f3d5941301 Updating logic for multi 2022-11-14 20:48:02 -07:00
b3e6a0bfa3 Fixing mistake in multi stencil 2022-11-12 20:44:45 -07:00
b0dcaa3823 Updating OPENMP package 2022-11-12 16:18:11 -07:00
213df2e2d5 Merge branch 'develop' into consolidate_neigh_classes 2022-11-11 20:41:19 -07:00
11f3195b0c Fixing more oversights in npair classes 2022-11-11 20:35:52 -07:00
c5181bb7c8 Fixing various oversights in npair classes 2022-11-11 16:56:21 -07:00
48a957f333 Remove screen print 2022-11-03 09:04:50 -06:00
02370fa25e Include headers in ace-evaluator directory 2022-11-02 14:51:00 -06:00
301877c6db Merge branch 'compute-pace' of https://github.com/jmgoff/lammps_compute_PACE into compute-pace 2022-11-02 14:11:15 -06:00
f8b29e09cd Merge branch 'lammps:develop' into compute-pace 2022-11-02 14:10:53 -06:00
6544fbd248 Fixing compilation mistake, updating dev reference 2022-10-30 21:04:31 -06:00
33c84963e9 Merging with develop 2022-10-30 12:45:33 -06:00
fcc47158b3 Adding other npair classes 2022-10-29 20:35:04 -06:00
9cff8b4ae6 Merge branch 'compute-pace' of github.com:jmgoff/lammps_compute_PACE into compute-pace
Updated with new PRs from Yuri
2022-10-28 14:18:42 -06:00
5c6dedae52 fixed bug for bikflag 1 dgradflag 0 2022-10-28 14:17:24 -06:00
e74b6769a9 No need to populate map in constructor 2022-10-28 14:17:24 -06:00
9130f0a327 Working multi-element example 2022-10-28 14:17:24 -06:00
0159810cc8 add examples 2022-10-28 14:17:24 -06:00
3a57f5185d add examples 2022-10-28 14:17:24 -06:00
40b76b24a0 Merge branch 'develop' of https://github.com/lammps/lammps into develop 2022-10-28 14:16:42 -06:00
e8cd992891 fixed bug for bikflag 1 dgradflag 0 2022-10-18 17:29:56 -06:00
614fb3cbdd Adding other nstencil classes 2022-10-16 21:02:02 -06:00
079ab1946f No need to populate map in constructor 2022-10-06 10:38:43 -06:00
a7d16f486f Working multi-element example 2022-10-06 10:38:43 -06:00
bc6a419dd4 add examples 2022-10-06 10:38:43 -06:00
ca98afea7a add examples 2022-10-06 10:38:43 -06:00
39f0051de6 Merge branch 'develop' of github.com:lammps/lammps into develop
Update the ML-PACE code to include recent updates from lammps-user-pace
including gamma pair fix.
2022-10-06 10:36:29 -06:00
80da41efc9 No need to populate map in constructor 2022-09-29 10:53:28 -06:00
85da521642 Working multi-element example 2022-09-29 10:07:22 -06:00
b4eab5e9b0 add examples 2022-09-28 13:08:56 -06:00
43698824f1 add examples 2022-09-28 13:07:50 -06:00
a03a6a9692 compute pace for ACE descriptor calculations 2022-09-28 10:12:00 -06:00
25b89473b2 changing order of central bin 2022-09-03 16:46:55 -06:00
fb2cf0c32a Prototyping new nstencil/npair classes 2022-08-04 14:05:18 -06:00
3481 changed files with 201070 additions and 148142 deletions

8
.github/CODEOWNERS vendored
View File

@ -61,6 +61,7 @@ src/GPU/pair_vashishta_gpu.* @andeplane
src/KOKKOS/pair_vashishta_kokkos.* @andeplane
src/MANYBODY/pair_vashishta_table.* @andeplane
src/MANYBODY/pair_atm.* @sergeylishchuk
src/MANYBODY/pair_nb3b_screened.* @flodesani
src/REPLICA/*_grem.* @dstelter92
src/EXTRA-COMPUTE/compute_stress_mop*.* @RomainVermorel
src/EXTRA-COMPUTE/compute_born_matrix.* @Bibobu @athomps
@ -135,6 +136,7 @@ src/timer.* @akohlmey
src/utils.* @akohlmey @rbberger
src/verlet.* @sjplimp @stanmoore1
src/math_eigen_impl.h @jewettaij
src/fix_press_langevin.* @Bibobu
# tools
tools/coding_standard/* @akohlmey @rbberger
@ -151,12 +153,12 @@ tools/vim/* @hammondkd
unittest/* @akohlmey
# cmake
cmake/* @rbberger
cmake/* @akohlmey
cmake/Modules/LAMMPSInterfacePlugin.cmake @akohlmey
cmake/Modules/MPI4WIN.cmake @akohlmey
cmake/Modules/OpenCLLoader.cmake @akohlmey
cmake/Modules/Packages/COLVARS.cmake @rbberger @giacomofiorin
cmake/Modules/Packages/KIM.cmake @rbberger @ellio167
cmake/Modules/Packages/COLVARS.cmake @giacomofiorin
cmake/Modules/Packages/KIM.cmake @ellio167
cmake/presets/*.cmake @akohlmey
# python

View File

@ -5,9 +5,9 @@ Thank you for considering to contribute to the LAMMPS software project.
The following is a set of guidelines as well as explanations of policies and work flows for contributing to the LAMMPS molecular dynamics software project. These guidelines focus on submitting issues or pull requests on the LAMMPS GitHub project.
Thus please also have a look at:
* [The guide for submitting new features in the LAMMPS manual](https://www.lammps.org/doc/Modify_contribute.html)
* [The guide on programming style and requirement in the LAMMPS manual](https://www.lammps.org/doc/Modify_style.html)
* [The GitHub tutorial in the LAMMPS manual](http://lammps.sandia.gov/doc/Howto_github.html)
* [The guide for submitting new features in the LAMMPS manual](https://docs.lammps.org/Modify_contribute.html)
* [The guide on programming style and requirement in the LAMMPS manual](https://docs.lammps.org/Modify_requirements.html)
* [The GitHub tutorial in the LAMMPS manual](http://docs.lammps.org/Howto_github.html)
## Table of Contents
@ -27,17 +27,17 @@ __
## I don't want to read this whole thing I just have a question!
> **Note:** Please do not file an issue to ask a general question about LAMMPS, its features, how to use specific commands, or how perform simulations or analysis in LAMMPS. Instead post your question to either the ['lammps-users' mailing list](https://lammps.sandia.gov/mail.html) or the [LAMMPS Material Science Discourse forum](https://matsci.org/lammps). You do not need to be subscribed to post to the list (but a mailing list subscription avoids having your post delayed until it is approved by a mailing list moderator). Most posts to the mailing list receive a response within less than 24 hours. Before posting to the mailing list, please read the [mailing list guidelines](https://lammps.sandia.gov/guidelines.html). Following those guidelines will help greatly to get a helpful response. Always mention which LAMMPS version you are using. The LAMMPS forum was recently created as part of a larger effort to build a materials science community and have discussions not just about using LAMMPS. Thus the forum may be also used for discussions that would be off-topic for the mailing list. Those will just have to be posted to a more general category.
> **Note:** Please do not file an issue to ask a general question about LAMMPS, its features, how to use specific commands, or how perform simulations or analysis in LAMMPS. Instead post your question to the [LAMMPS Material Science Discourse forum](https://matsci.org/lammps). Before posting to the forum, please read the general [guidelines](https://www.lammps.org/guidelines.html) and the forum specific [suggestions](https://matsci.org/t/please-read-this-first-guidelines-and-suggestions-for-posting-lammps-questions/49913). Following those guidelines and suggestions will help greatly to get a helpful response. *Always* mention which LAMMPS version you are using. The MatSci website may be also used for discussions that would be off-topic for the LAMMPS categories. Those will just have to be posted to a different category.
## How Can I Contribute?
There are several ways how you can actively contribute to the LAMMPS project: you can discuss compiling and using LAMMPS, and solving LAMMPS related problems with other LAMMPS users on the lammps-users mailing list or the forum, you can report bugs or suggest enhancements by creating issues on GitHub (or posting them to the lammps-users mailing list or posting in the LAMMPS Materials Science Discourse forum), and you can contribute by submitting pull requests on GitHub or e-mail your code
to one of the [LAMMPS core developers](https://lammps.sandia.gov/authors.html). As you may see from the aforementioned developer page, the LAMMPS software package includes the efforts of a very large number of contributors beyond the principal authors and maintainers.
to one of the [LAMMPS core developers](https://www.lammps.org/authors.html). As you may see from the aforementioned developer page, the LAMMPS software package includes the efforts of a very large number of contributors beyond the principal authors and maintainers.
### Discussing How To Use LAMMPS
The LAMMPS mailing list is hosted at SourceForge. The mailing list began in 2005, and now includes tens of thousands of messages in thousands of threads. LAMMPS developers try to respond to posted questions in a timely manner, but there are no guarantees. Please consider that people live in different timezone and may not have time to answer e-mails outside of their work hours.
You can post to list by sending your email to lammps-users at lists.sourceforge.net (no subscription required), but before posting, please read the [mailing list guidelines](https://lammps.sandia.gov/guidelines.html) to maximize your chances to receive a helpful response.
You can post to list by sending your email to lammps-users at lists.sourceforge.net (no subscription required), but before posting, please read the [mailing list guidelines](https://www.lammps.org/guidelines.html) to maximize your chances to receive a helpful response.
Anyone can browse/search previous questions/answers in the archives. You do not have to subscribe to the list to post questions, receive answers (to your questions), or browse/search the archives. You **do** need to subscribe to the list if you want emails for **all** the posts (as individual messages or in digest form), or to answer questions yourself. Feel free to sign up and help us out! Answering questions from fellow LAMMPS users is a great way to pay back the community for providing you a useful tool for free, and to pass on the advice you have received yourself to others. It improves your karma and helps you understand your own research better.
@ -47,7 +47,7 @@ The LAMMPS Materials Science Discourse forum was created recently to facilitate
### Reporting Bugs
While developers writing code for LAMMPS are careful to test their code, LAMMPS is such a large and complex software, that it is impossible to test for all combinations of features under all normal and not so normal circumstances. Thus bugs do happen, and if you suspect, that you have encountered one, please try to document it and report it as an [Issue](https://github.com/lammps/lammps/issues) on the LAMMPS GitHub project web page. However, before reporting a bug, you need to check whether this is something that may have already been corrected. The [Latest Features and Bug Fixes in LAMMPS](https://lammps.sandia.gov/bug.html) web page lists all significant changes to LAMMPS over the years. It also tells you what the current latest development version of LAMMPS is, and you should test whether your issue still applies to that version.
While developers writing code for LAMMPS are careful to test their code, LAMMPS is such a large and complex software, that it is impossible to test for all combinations of features under all normal and not so normal circumstances. Thus bugs do happen, and if you suspect, that you have encountered one, please try to document it and report it as an [Issue](https://github.com/lammps/lammps/issues) on the LAMMPS GitHub project web page. However, before reporting a bug, you need to check whether this is something that may have already been corrected. The [Latest Features and Bug Fixes in LAMMPS](https://www.lammps.org/bug.html) web page lists all significant changes to LAMMPS over the years. It also tells you what the current latest development version of LAMMPS is, and you should test whether your issue still applies to that version.
When you click on the green "New Issue" button, you will be provided with a text field, where you can enter your message. That text field with contain a template with several headlines and some descriptions. Keep the headlines that are relevant to your reported potential bug and replace the descriptions with the information as suggested by the descriptions.
You can also attach small text files (please add the file name extension `.txt` or it will be rejected), images, or small compressed text files (using gzip, do not use RAR or 7-ZIP or similar tools that are uncommon outside of Windows machines). In many cases, bugs are best illustrated by providing a small input deck (do **not** attach your entire production input, but remove everything that is not required to reproduce the issue, and scale down your system size, that the resulting calculation runs fast and can be run on small desktop quickly).
@ -65,9 +65,9 @@ To be able to submit an issue on GitHub, you have to register for an account (fo
We encourage users to submit new features or modifications for LAMMPS. Instructions, guidelines, requirements,
and recommendations are in the following sections of the LAMMPS manual:
* [The guide for submitting new features in the LAMMPS manual](https://lammps.sandia.gov/doc/Modify_contribute.html)
* [The guide on programming style and requirement in the LAMMPS manual](https://lammps.sandia.gov/doc/Modify_contribute.html)
* [The GitHub tutorial in the LAMMPS manual](http://lammps.sandia.gov/doc/Howto_github.html)
* [The guide for submitting new features in the LAMMPS manual](https://docs.lammps.org/Modify_contribute.html)
* [The guide on programming style and requirement in the LAMMPS manual](https://docs.lammps.org/Modify_requirements.html)
* [The GitHub tutorial in the LAMMPS manual](http://docs.lammps.org/Howto_github.html)
## GitHub Workflows
@ -85,7 +85,7 @@ For bug reports, the next step is that one of the core LAMMPS developers will se
### Pull Requests
Pull requests are the **only** way that changes get made to the LAMMPS distribution. So also the LAMMPS core developers will submit pull requests for their own changes and discuss them on GitHub. Thus if you submit a pull request it will be treated in a similar fashion. When you submit a pull request you may opt to submit a "Draft" pull request. That means your changes are visible and will be subject to testing, but reviewers will not be (auto-)assigned and comments will take into account that this is not complete. On the other hand, this is a perfect way to ask the LAMMPS developers for comments on non-obvious changes and get feedback and possible suggestions for improvements or recommendations about what to avoid.
Immediately after the submission, the LAMMPS continuing integration server at ci.lammps.org will download your submitted branch and perform a number of tests: it will tests whether it compiles cleanly under various conditions, it will also do a check on whether your included documentation translates cleanly and run some unit tests and other checks. Whether these tests are successful or fail will be recorded. If a test fails, please inspect the corresponding output on the CI server and take the necessary steps, if needed, so that the code can compile cleanly again. The test will be re-run each time the pull request is updated with a push to the remote branch on GitHub. If you are unsure about what you need to change, ask a question in the discussion area of the pull request.
Immediately after the submission, the LAMMPS continuing integration server at https://ci.lammps.org will download your submitted branch and perform a number of tests: it will tests whether it compiles cleanly under various conditions, it will also do a check on whether your included documentation translates cleanly and run some unit tests and other checks. Whether these tests are successful or fail will be recorded. If a test fails, please inspect the corresponding output on the CI server and take the necessary steps, if needed, so that the code can compile cleanly again. The test will be re-run each time the pull request is updated with a push to the remote branch on GitHub. If you are unsure about what you need to change, ask a question in the discussion area of the pull request.
Next a LAMMPS core developer will self-assign and do an overall technical assessment of the submission. If you submitted a draft pull request, this will not happen unless you mark it "ready for review". If you are not yet invited as a LAMMPS collaborator, and your contribution seems significant, you may also receive an invitation for collaboration on the LAMMPS repository. As part of the assessment, the pull request will be categorized with labels. There are two special labels: `needs_work` (indicates that work from the submitter of the pull request is needed) and `work_in_progress` (indicates, that the assigned LAMMPS developer will make changes, if not done by the contributor who made the submit).
You may also receive comments and suggestions on the overall submission or specific details and on occasion specific requests for changes as part of the review. If permitted, also additional changes may be pushed into your pull request branch or a pull request may be filed in your LAMMPS fork on GitHub to include those changes.
The LAMMPS developer may then decide to assign the pull request to another developer (e.g. when that developer is more knowledgeable about the submitted feature or enhancement or has written the modified code). It may also happen, that additional developers are requested to provide a review and approve the changes. For submissions, that may change the general behavior of LAMMPS, or where a possibility of unwanted side effects exists, additional tests may be requested by the assigned developer.

View File

@ -25,17 +25,17 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Setup Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
config-file: ./.github/codeql/${{ matrix.language }}.yml
@ -55,4 +55,4 @@ jobs:
cmake --build . --parallel 2
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v3

View File

@ -19,12 +19,12 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Select Python version
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.11'

View File

@ -16,7 +16,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 2
@ -25,7 +25,7 @@ jobs:
- name: Cache Coverity
id: cache-coverity
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ./download/
key: ${{ runner.os }}-download-${{ hashFiles('**/coverity_tool.*') }}
@ -59,16 +59,13 @@ jobs:
-D BUILD_SHARED_LIBS=on \
-D LAMMPS_SIZES=SMALLBIG \
-D LAMMPS_EXCEPTIONS=off \
-D PKG_MESSAGE=on \
-D PKG_MPIIO=on \
-D PKG_ATC=on \
-D PKG_AWPMD=on \
-D PKG_BOCS=on \
-D PKG_EFF=on \
-D PKG_H5MD=on \
-D PKG_INTEL=on \
-D PKG_LATBOLTZ=on \
-D PKG_MANIFOLD=on \
-D PKG_MDI=on \
-D PKG_MGPT=on \
-D PKG_ML-PACE=on \
-D PKG_ML-RANN=on \
@ -77,7 +74,6 @@ jobs:
-D PKG_PTM=on \
-D PKG_QTB=on \
-D PKG_SMTBQ=on \
-D PKG_TALLY=on \
../cmake
- name: Run Coverity Scan

View File

@ -21,7 +21,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 2
@ -32,7 +32,7 @@ jobs:
run: mkdir build
- name: Set up ccache
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ${{ env.CCACHE_DIR }}
key: macos-ccache-${{ github.sha }}

View File

@ -1,8 +1,8 @@
# -*- CMake -*- master configuration file for building LAMMPS
########################################
# CMake build system
# This file is part of LAMMPS
# Created by Christoph Junghans and Richard Berger
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 3.16)
########################################
# set policy to silence warnings about ignoring <PackageName>_ROOT but use it
if(POLICY CMP0074)
@ -12,22 +12,11 @@ endif()
if(POLICY CMP0075)
cmake_policy(SET CMP0075 NEW)
endif()
# set policy to silence warnings about missing executable permissions in
# pythonx.y-config when cross-compiling. review occasionally if it may be set to NEW
if(POLICY CMP0109)
cmake_policy(SET CMP0109 OLD)
endif()
# set policy to silence warnings about timestamps of downloaded files. review occasionally if it may be set to NEW
if(POLICY CMP0135)
cmake_policy(SET CMP0135 OLD)
endif()
########################################
# Use CONFIGURE_DEPENDS as option for file(GLOB...) when available
if(CMAKE_VERSION VERSION_LESS 3.12)
unset(CONFIGURE_DEPENDS)
else()
set(CONFIGURE_DEPENDS CONFIGURE_DEPENDS)
endif()
########################################
project(lammps CXX)
@ -116,7 +105,7 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
if(CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.3 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.4)
set(CMAKE_TUNE_DEFAULT "-xCOMMON-AVX512")
else()
set(CMAKE_TUNE_DEFAULT "-xHost -fp-model fast=2 -no-prec-div -qoverride-limits -diag-disable=10441 -diag-disable=2196")
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")
endif()
endif()
endif()
@ -131,20 +120,33 @@ if((CMAKE_CXX_COMPILER_ID STREQUAL "NVHPC") OR (CMAKE_CXX_COMPILER_ID STREQUAL "
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()
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")
endif()
# we require C++11 without extensions. Kokkos requires at least C++14 (currently)
# we require C++11 without extensions. Kokkos requires at least C++17 (currently)
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()
if(CMAKE_CXX_STANDARD LESS 11)
message(FATAL_ERROR "C++ standard must be set to at least 11")
endif()
if(PKG_KOKKOS AND (CMAKE_CXX_STANDARD LESS 14))
set(CMAKE_CXX_STANDARD 14)
if(PKG_KOKKOS AND (CMAKE_CXX_STANDARD LESS 17))
set(CMAKE_CXX_STANDARD 17)
endif()
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF CACHE BOOL "Use compiler extensions")
@ -155,6 +157,7 @@ if(MSVC)
add_compile_options(/Zc:__cplusplus)
add_compile_options(/wd4244)
add_compile_options(/wd4267)
add_compile_options(/wd4250)
add_compile_options(/EHsc)
endif()
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
@ -168,17 +171,20 @@ endif()
########################################################################
# User input options #
########################################################################
# set path to python interpreter and thus enforcing python version when
# in a virtual environment and PYTHON_EXECUTABLE is not set on command line
if(DEFINED ENV{VIRTUAL_ENV} AND NOT PYTHON_EXECUTABLE)
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
set(PYTHON_EXECUTABLE "$ENV{VIRTUAL_ENV}/Scripts/python.exe")
else()
set(PYTHON_EXECUTABLE "$ENV{VIRTUAL_ENV}/bin/python")
endif()
# backward compatibility with CMake before 3.12 and older LAMMPS documentation
if (PYTHON_EXECUTABLE)
set(Python_EXECUTABLE "${PYTHON_EXECUTABLE}")
endif()
# set path to python interpreter and thus enforcing python version when
# in a virtual environment and Python_EXECUTABLE is not set on command line
if(DEFINED ENV{VIRTUAL_ENV} AND NOT Python_EXECUTABLE)
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
set(Python_EXECUTABLE "$ENV{VIRTUAL_ENV}/Scripts/python.exe")
else()
set(Python_EXECUTABLE "$ENV{VIRTUAL_ENV}/bin/python")
endif()
message(STATUS "Running in virtual environment: $ENV{VIRTUAL_ENV}\n"
" Setting Python interpreter to: ${PYTHON_EXECUTABLE}")
" Setting Python interpreter to: ${Python_EXECUTABLE}")
endif()
set(LAMMPS_MACHINE "" CACHE STRING "Suffix to append to lmp binary (WON'T enable any features automatically")
@ -203,8 +209,8 @@ else()
endif()
include(GNUInstallDirs)
file(GLOB ALL_SOURCES ${CONFIGURE_DEPENDS} ${LAMMPS_SOURCE_DIR}/[^.]*.cpp)
file(GLOB MAIN_SOURCES ${CONFIGURE_DEPENDS} ${LAMMPS_SOURCE_DIR}/main.cpp)
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})
add_library(lammps ${ALL_SOURCES})
@ -278,8 +284,6 @@ set(STANDARD_PACKAGES
MOFFF
MOLECULE
MOLFILE
MPIIO
MSCG
NETCDF
ORIENT
PERI
@ -385,15 +389,9 @@ if(NOT ${LAMMPS_MEMALIGN} STREQUAL "0")
target_compile_definitions(lammps PRIVATE -DLAMMPS_MEMALIGN=${LAMMPS_MEMALIGN})
endif()
option(LAMMPS_EXCEPTIONS "enable the use of C++ exceptions for error messages (useful for library interface)" ${ENABLE_TESTING})
if(LAMMPS_EXCEPTIONS)
target_compile_definitions(lammps PUBLIC -DLAMMPS_EXCEPTIONS)
endif()
# "hard" dependencies between packages resulting
# in an error instead of skipping over files
pkg_depends(ML-IAP ML-SNAP)
pkg_depends(MPIIO MPI)
pkg_depends(ATC MANYBODY)
pkg_depends(LATBOLTZ MPI)
pkg_depends(SCAFACOS MPI)
@ -404,6 +402,7 @@ pkg_depends(CG-DNA MOLECULE)
pkg_depends(CG-DNA ASPHERE)
pkg_depends(ELECTRODE KSPACE)
pkg_depends(EXTRA-MOLECULE MOLECULE)
pkg_depends(MESONT MOLECULE)
# detect if we may enable OpenMP support by default
set(BUILD_OMP_DEFAULT OFF)
@ -441,14 +440,26 @@ if(BUILD_OMP)
target_link_libraries(lmp PRIVATE OpenMP::OpenMP_CXX)
endif()
if(PKG_MSCG OR PKG_ATC OR PKG_AWPMD OR PKG_ML-QUIP OR PKG_ML-POD OR PKG_ELECTRODE OR BUILD_TOOLS)
# lower C++ standard for fmtlib sources when using Intel classic compiler
if((CMAKE_CXX_COMPILER_ID STREQUAL "Intel") AND (CMAKE_CXX_STANDARD GREATER_EQUAL 17)
AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 2021.10))
message(STATUS "Lowering C++ standard for compiling fmtlib sources with Intel Classic compiler")
get_filename_component(LMP_UTILS_SRC "${LAMMPS_SOURCE_DIR}/utils.cpp" ABSOLUTE)
get_filename_component(LMP_VARIABLE_SRC "${LAMMPS_SOURCE_DIR}/variable.cpp" ABSOLUTE)
get_filename_component(FMT_FORMAT_SRC "${LAMMPS_SOURCE_DIR}/fmtlib_format.cpp" ABSOLUTE)
get_filename_component(FMT_OS_SRC "${LAMMPS_SOURCE_DIR}/fmtlib_os.cpp" ABSOLUTE)
set_source_files_properties("${FMT_FORMAT_SRC}" "${FMT_OS_SRC}" "${LMP_VARIABLE_SRC}" "${LMP_UTILS_SRC}"
PROPERTIES COMPILE_OPTIONS "-std=c++14")
endif()
if(PKG_ATC OR PKG_AWPMD OR PKG_ML-QUIP OR PKG_ML-POD OR PKG_ELECTRODE OR BUILD_TOOLS)
enable_language(C)
if (NOT USE_INTERNAL_LINALG)
find_package(LAPACK)
find_package(BLAS)
endif()
if(NOT LAPACK_FOUND OR NOT BLAS_FOUND OR USE_INTERNAL_LINALG)
file(GLOB LINALG_SOURCES ${CONFIGURE_DEPENDS} ${LAMMPS_LIB_SOURCE_DIR}/linalg/[^.]*.cpp)
file(GLOB LINALG_SOURCES CONFIGURE_DEPENDS ${LAMMPS_LIB_SOURCE_DIR}/linalg/[^.]*.cpp)
add_library(linalg STATIC ${LINALG_SOURCES})
set_target_properties(linalg PROPERTIES OUTPUT_NAME lammps_linalg${LAMMPS_MACHINE})
set(BLAS_LIBRARIES "$<TARGET_FILE:linalg>")
@ -466,12 +477,7 @@ option(WITH_JPEG "Enable JPEG support" ${JPEG_FOUND})
if(WITH_JPEG)
find_package(JPEG REQUIRED)
target_compile_definitions(lammps PRIVATE -DLAMMPS_JPEG)
if(CMAKE_VERSION VERSION_LESS 3.12)
target_include_directories(lammps PRIVATE ${JPEG_INCLUDE_DIRS})
target_link_libraries(lammps PRIVATE ${JPEG_LIBRARIES})
else()
target_link_libraries(lammps PRIVATE JPEG::JPEG)
endif()
target_link_libraries(lammps PRIVATE JPEG::JPEG)
endif()
find_package(PNG QUIET)
@ -521,7 +527,7 @@ else()
endif()
foreach(PKG_WITH_INCL KSPACE PYTHON ML-IAP VORONOI COLVARS ML-HDNNP MDI MOLFILE NETCDF
PLUMED QMMM ML-QUIP SCAFACOS MACHDYN VTK KIM MSCG COMPRESS ML-PACE LEPTON)
PLUMED QMMM ML-QUIP SCAFACOS MACHDYN VTK KIM COMPRESS ML-PACE LEPTON)
if(PKG_${PKG_WITH_INCL})
include(Packages/${PKG_WITH_INCL})
endif()
@ -583,8 +589,8 @@ endforeach()
foreach(PKG ${STANDARD_PACKAGES})
set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG})
file(GLOB ${PKG}_SOURCES ${CONFIGURE_DEPENDS} ${${PKG}_SOURCES_DIR}/[^.]*.cpp)
file(GLOB ${PKG}_HEADERS ${CONFIGURE_DEPENDS} ${${PKG}_SOURCES_DIR}/[^.]*.h)
file(GLOB ${PKG}_SOURCES CONFIGURE_DEPENDS ${${PKG}_SOURCES_DIR}/[^.]*.cpp)
file(GLOB ${PKG}_HEADERS CONFIGURE_DEPENDS ${${PKG}_SOURCES_DIR}/[^.]*.h)
# check for package files in src directory due to old make system
DetectBuildSystemConflict(${LAMMPS_SOURCE_DIR} ${${PKG}_SOURCES} ${${PKG}_HEADERS})
@ -600,19 +606,12 @@ foreach(PKG ${STANDARD_PACKAGES})
RegisterPackages(${${PKG}_SOURCES_DIR})
endforeach()
# packages that need defines set
foreach(PKG MPIIO)
if(PKG_${PKG})
target_compile_definitions(lammps PRIVATE -DLMP_${PKG})
endif()
endforeach()
# dedicated check for entire contents of accelerator packages
foreach(PKG ${SUFFIX_PACKAGES})
set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG})
file(GLOB ${PKG}_SOURCES ${CONFIGURE_DEPENDS} ${${PKG}_SOURCES_DIR}/[^.]*.cpp)
file(GLOB ${PKG}_HEADERS ${CONFIGURE_DEPENDS} ${${PKG}_SOURCES_DIR}/[^.]*.h)
file(GLOB ${PKG}_SOURCES CONFIGURE_DEPENDS ${${PKG}_SOURCES_DIR}/[^.]*.cpp)
file(GLOB ${PKG}_HEADERS CONFIGURE_DEPENDS ${${PKG}_SOURCES_DIR}/[^.]*.h)
# check for package files in src directory due to old make system
DetectBuildSystemConflict(${LAMMPS_SOURCE_DIR} ${${PKG}_SOURCES} ${${PKG}_HEADERS})
@ -626,7 +625,7 @@ endforeach()
foreach(PKG_LIB POEMS ATC AWPMD H5MD)
if(PKG_${PKG_LIB})
string(TOLOWER "${PKG_LIB}" PKG_LIB)
file(GLOB_RECURSE ${PKG_LIB}_SOURCES ${CONFIGURE_DEPENDS}
file(GLOB_RECURSE ${PKG_LIB}_SOURCES CONFIGURE_DEPENDS
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.c ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.cpp)
add_library(${PKG_LIB} STATIC ${${PKG_LIB}_SOURCES})
set_target_properties(${PKG_LIB} PROPERTIES OUTPUT_NAME lammps_${PKG_LIB}${LAMMPS_MACHINE})
@ -821,20 +820,8 @@ install(
# This is primarily for people that only want to use the Python wrapper.
###############################################################################
if(BUILD_SHARED_LIBS)
if(CMAKE_VERSION VERSION_LESS 3.12)
# adjust so we find Python 3 versions before Python 2 on old systems with old CMake
set(Python_ADDITIONAL_VERSIONS 3.12 3.11 3.10 3.9 3.8 3.7 3.6)
find_package(PythonInterp) # Deprecated since version 3.12
if(PYTHONINTERP_FOUND)
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
endif()
else()
# backward compatibility
if(PYTHON_EXECUTABLE)
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
endif()
find_package(Python COMPONENTS Interpreter)
endif()
# backward compatibility
find_package(Python COMPONENTS Interpreter)
if(BUILD_IS_MULTI_CONFIG)
set(MY_BUILD_DIR ${CMAKE_BINARY_DIR}/$<CONFIG>)
else()
@ -893,13 +880,23 @@ else()
endif()
include(FeatureSummary)
feature_summary(DESCRIPTION "The following tools and libraries have been found and configured:" WHAT PACKAGES_FOUND)
if(GIT_FOUND AND EXISTS ${LAMMPS_DIR}/.git)
execute_process(COMMAND ${GIT_EXECUTABLE} describe --dirty=-modified --always
OUTPUT_VARIABLE GIT_DESCRIBE
ERROR_QUIET
WORKING_DIRECTORY ${LAMMPS_DIR}
OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
message(STATUS "<<< Build configuration >>>
LAMMPS Version: ${PROJECT_VERSION}
LAMMPS Version: ${PROJECT_VERSION} ${GIT_DESCRIBE}
Operating System: ${CMAKE_SYSTEM_NAME} ${CMAKE_LINUX_DISTRO} ${CMAKE_DISTRO_VERSION}
CMake Version: ${CMAKE_VERSION}
Build type: ${LAMMPS_BUILD_TYPE}
Install path: ${CMAKE_INSTALL_PREFIX}
Generator: ${CMAKE_GENERATOR} using ${CMAKE_MAKE_PROGRAM}")
if(CMAKE_CROSSCOMPILING)
message(STATUS "Cross compiling on ${CMAKE_HOST_SYSTEM}")
endif()
###############################################################################
# Print package summary
###############################################################################
@ -943,11 +940,9 @@ if(_index GREATER -1)
endif()
message(STATUS "<<< Linker flags: >>>")
message(STATUS "Executable name: ${LAMMPS_BINARY}")
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.13)
get_target_property(OPTIONS lammps LINK_OPTIONS)
if(OPTIONS)
message(STATUS "Linker options: ${OPTIONS}")
endif()
get_target_property(OPTIONS lammps LINK_OPTIONS)
if(OPTIONS)
message(STATUS "Linker options: ${OPTIONS}")
endif()
if(CMAKE_EXE_LINKER_FLAGS)
message(STATUS "Executable linker flags: ${CMAKE_EXE_LINKER_FLAGS}")
@ -989,34 +984,37 @@ if(PKG_KOKKOS)
endif()
endif()
if(PKG_KSPACE)
message(STATUS "<<< FFT settings >>>
if (FFT_USE_HEFFTE)
message(STATUS "<<< FFT settings >>>
-- Primary FFT lib: heFFTe")
if (FFT_HEFFTE_BACKEND)
message(STATUS "heFFTe backend: ${FFT_HEFFTE_BACKEND}")
else()
message(STATUS "heFFTe backend: stock (builtin FFT implementation, tested for corrected but not optimized for production)")
endif()
message(STATUS "Using distributed FFT algorithms from heFTTe")
if(FFT_SINGLE)
message(STATUS "Using single precision FFTs")
else()
message(STATUS "Using double precision FFTs")
endif()
else()
message(STATUS "<<< FFT settings >>>
-- Primary FFT lib: ${FFT}")
if(FFT_SINGLE)
message(STATUS "Using single precision FFTs")
else()
message(STATUS "Using double precision FFTs")
endif()
if(FFT_FFTW_THREADS OR FFT_MKL_THREADS)
message(STATUS "Using threaded FFTs")
else()
message(STATUS "Using non-threaded FFTs")
if(FFT_SINGLE)
message(STATUS "Using single precision FFTs")
else()
message(STATUS "Using double precision FFTs")
endif()
if(FFT_FFTW_THREADS OR FFT_MKL_THREADS)
message(STATUS "Using threaded FFTs")
else()
message(STATUS "Using non-threaded FFTs")
endif()
message(STATUS "Using builtin distributed FFT algorithms")
endif()
if(PKG_KOKKOS)
if(Kokkos_ENABLE_CUDA)
if(FFT STREQUAL "KISS")
message(STATUS "Kokkos FFT: KISS")
else()
message(STATUS "Kokkos FFT: cuFFT")
endif()
elseif(Kokkos_ENABLE_HIP)
if(FFT STREQUAL "KISS")
message(STATUS "Kokkos FFT: KISS")
else()
message(STATUS "Kokkos FFT: hipFFT")
endif()
else()
message(STATUS "Kokkos FFT: ${FFT}")
endif()
message(STATUS "Kokkos FFT: ${FFT_KOKKOS}")
endif()
endif()
if(BUILD_DOC)
@ -1028,6 +1026,14 @@ endif()
if(BUILD_LAMMPS_SHELL)
message(STATUS "<<< Building LAMMPS Shell >>>")
endif()
if(BUILD_LAMMPS_GUI)
message(STATUS "<<< Building LAMMPS GUI >>>")
if(LAMMPS_GUI_USE_PLUGIN)
message(STATUS "Loading LAMMPS library as plugin at run time")
else()
message(STATUS "Linking LAMMPS library at compile time")
endif()
endif()
if(ENABLE_TESTING)
message(STATUS "<<< Building Unit Tests >>>")
if(ENABLE_COVERAGE)

View File

@ -1,19 +1,11 @@
if(CMAKE_VERSION VERSION_LESS 3.12)
find_package(PythonInterp 3.5 QUIET) # Deprecated since version 3.12
if(PYTHONINTERP_FOUND)
set(Python3_EXECUTABLE ${PYTHON_EXECUTABLE})
set(Python3_VERSION ${PYTHON_VERSION_STRING})
endif()
else()
# use default (or custom) Python executable, if version is sufficient
if(Python_VERSION VERSION_GREATER_EQUAL 3.5)
set(Python3_EXECUTABLE ${Python_EXECUTABLE})
endif()
find_package(Python3 COMPONENTS Interpreter QUIET)
# use default (or custom) Python executable, if version is sufficient
if(Python_VERSION VERSION_GREATER_EQUAL 3.6)
set(Python3_EXECUTABLE ${Python_EXECUTABLE})
endif()
find_package(Python3 COMPONENTS Interpreter)
if(Python3_EXECUTABLE)
if(Python3_VERSION VERSION_GREATER_EQUAL 3.5)
if(Python3_VERSION VERSION_GREATER_EQUAL 3.6)
add_custom_target(
check-whitespace
${Python3_EXECUTABLE} ${LAMMPS_TOOLS_DIR}/coding_standard/whitespace.py .

View File

@ -1,11 +1,3 @@
if(NOT DEFINED HIP_PATH)
if(NOT DEFINED ENV{HIP_PATH})
message(FATAL_ERROR "HIP support requires HIP_PATH to be defined.\n"
"Either pass the HIP_PATH as a CMake option via -DHIP_PATH=... or set the HIP_PATH environment variable.")
else()
set(HIP_PATH $ENV{HIP_PATH} CACHE PATH "Path to HIP installation")
endif()
endif()
if(NOT DEFINED ROCM_PATH)
if(NOT DEFINED ENV{ROCM_PATH})
set(ROCM_PATH "/opt/rocm" CACHE PATH "Path to ROCm installation")
@ -13,4 +5,4 @@ if(NOT DEFINED ROCM_PATH)
set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "Path to ROCm installation")
endif()
endif()
list(APPEND CMAKE_PREFIX_PATH ${HIP_PATH} ${ROCM_PATH})
list(APPEND CMAKE_PREFIX_PATH ${ROCM_PATH})

View File

@ -5,24 +5,18 @@ option(BUILD_DOC "Build LAMMPS HTML documentation" OFF)
if(BUILD_DOC)
# Current Sphinx versions require at least Python 3.8
if(CMAKE_VERSION VERSION_LESS 3.12)
find_package(PythonInterp 3.8 REQUIRED)
set(VIRTUALENV ${PYTHON_EXECUTABLE} -m venv)
else()
# use default (or custom) Python executable, if version is sufficient
if(Python_VERSION VERSION_GREATER_EQUAL 3.8)
set(Python3_EXECUTABLE ${Python_EXECUTABLE})
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")
endif()
set(VIRTUALENV ${Python3_EXECUTABLE} -m venv)
# use default (or custom) Python executable, if version is sufficient
if(Python_VERSION VERSION_GREATER_EQUAL 3.8)
set(Python3_EXECUTABLE ${Python_EXECUTABLE})
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")
endif()
set(VIRTUALENV ${Python3_EXECUTABLE} -m venv)
find_package(Doxygen 1.8.10 REQUIRED)
file(GLOB DOC_SOURCES ${CONFIGURE_DEPENDS} ${LAMMPS_DOC_DIR}/src/[^.]*.rst)
file(GLOB DOC_SOURCES CONFIGURE_DEPENDS ${LAMMPS_DOC_DIR}/src/[^.]*.rst)
add_custom_command(
OUTPUT docenv
@ -80,7 +74,7 @@ if(BUILD_DOC)
message(STATUS "Using already downloaded archive ${CMAKE_BINARY_DIR}/libpace.tar.gz")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf mathjax.tar.gz WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
file(GLOB MATHJAX_VERSION_DIR ${CONFIGURE_DEPENDS} ${CMAKE_CURRENT_BINARY_DIR}/MathJax-*)
file(GLOB MATHJAX_VERSION_DIR CONFIGURE_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/MathJax-*)
execute_process(COMMAND ${CMAKE_COMMAND} -E rename ${MATHJAX_VERSION_DIR} ${DOC_BUILD_STATIC_DIR}/mathjax)
endif()

View File

@ -1,5 +1,7 @@
# Find clang-format
find_program(ClangFormat_EXECUTABLE NAMES clang-format
clang-format-17.0
clang-format-16.0
clang-format-15.0
clang-format-14.0
clang-format-13.0
@ -19,7 +21,7 @@ if(ClangFormat_EXECUTABLE)
OUTPUT_VARIABLE clang_format_version
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
if(clang_format_version MATCHES "^(Ubuntu |)clang-format version .*")
if(clang_format_version MATCHES "^(Ubuntu |Debian |)clang-format version .*")
# Arch Linux output:
# clang-format version 10.0.0
#
@ -32,9 +34,15 @@ if(ClangFormat_EXECUTABLE)
# Ubuntu 22.04 LTS output:
# Ubuntu clang-format version 14.0.0-1ubuntu1
#
# Debian 11 output:
# Debian clang-format version 11.0.1-2
#
# Debian 12 output:
# Debian clang-format version 14.0.6
#
# Fedora 36 output:
# clang-format version 14.0.5 (Fedora 14.0.5-1.fc36)
string(REGEX REPLACE "^(Ubuntu |)clang-format version ([0-9.]+).*"
string(REGEX REPLACE "^(Ubuntu |Debian |)clang-format version ([0-9.]+).*"
"\\2"
ClangFormat_VERSION
"${clang_format_version}")

View File

@ -7,15 +7,7 @@
# adapted from https://github.com/cmarshall108/cython-cmake-example/blob/master/cmake/FindCython.cmake
#=============================================================================
if(CMAKE_VERSION VERSION_LESS 3.12)
set(Python_ADDITIONAL_VERSIONS 3.12 3.11 3.10 3.9 3.8 3.7 3.6)
find_package(PythonInterp 3.6 QUIET) # Deprecated since version 3.12
if(PYTHONINTERP_FOUND)
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
endif()
else()
find_package(Python 3.6 COMPONENTS Interpreter QUIET)
endif()
find_package(Python 3.6 COMPONENTS Interpreter QUIET)
# Use the Cython executable that lives next to the Python executable
# if it is a local installation.

View File

@ -28,9 +28,8 @@ if(MSVC)
add_compile_options(/Zc:__cplusplus)
add_compile_options(/wd4244)
add_compile_options(/wd4267)
if(LAMMPS_EXCEPTIONS)
add_compile_options(/EHsc)
endif()
add_compile_options(/wd4250)
add_compile_options(/EHsc)
endif()
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
endif()
@ -65,7 +64,7 @@ endfunction(validate_option)
# helper function for getting the most recently modified file or folder from a glob pattern
function(get_newest_file path variable)
file(GLOB _dirs ${CONFIGURE_DEPENDS} ${path})
file(GLOB _dirs CONFIGURE_DEPENDS ${path})
set(_besttime 2000-01-01T00:00:00)
set(_bestfile "<unknown>")
foreach(_dir ${_dirs})

View File

@ -41,7 +41,7 @@ endfunction()
# helper function for getting the most recently modified file or folder from a glob pattern
function(get_newest_file path variable)
file(GLOB _dirs ${CONFIGURE_DEPENDS} ${path})
file(GLOB _dirs CONFIGURE_DEPENDS ${path})
set(_besttime 2000-01-01T00:00:00)
set(_bestfile "<unknown>")
foreach(_dir ${_dirs})
@ -80,20 +80,20 @@ endfunction()
function(check_for_autogen_files source_dir)
message(STATUS "Running check for auto-generated files from make-based build system")
file(GLOB SRC_AUTOGEN_FILES ${CONFIGURE_DEPENDS} ${source_dir}/style_*.h)
file(GLOB SRC_AUTOGEN_PACKAGES ${CONFIGURE_DEPENDS} ${source_dir}/packages_*.h)
file(GLOB SRC_AUTOGEN_FILES CONFIGURE_DEPENDS ${source_dir}/style_*.h)
file(GLOB SRC_AUTOGEN_PACKAGES CONFIGURE_DEPENDS ${source_dir}/packages_*.h)
list(APPEND SRC_AUTOGEN_FILES ${SRC_AUTOGEN_PACKAGES} ${source_dir}/lmpinstalledpkgs.h ${source_dir}/lmpgitversion.h)
list(APPEND SRC_AUTOGEN_FILES ${SRC_AUTOGEN_PACKAGES} ${source_dir}/mliap_model_python_couple.h ${source_dir}/mliap_model_python_couple.cpp)
list(APPEND SRC_AUTOGEN_FILES ${source_dir}/mliap_model_python_couple.h ${source_dir}/mliap_model_python_couple.cpp)
foreach(_SRC ${SRC_AUTOGEN_FILES})
get_filename_component(FILENAME "${_SRC}" NAME)
if(EXISTS ${source_dir}/${FILENAME})
message(FATAL_ERROR "\n########################################################################\n"
"Found header file(s) generated by the make-based build system\n"
"\n"
"Please run\n"
"make -C ${source_dir} purge\n"
"to remove\n"
"########################################################################")
"Found header file ${source_dir}/${FILENAME} generated by the make-based build system\n"
"\n"
"Please run\n"
"make -C ${source_dir} purge\n"
"to remove\n"
"########################################################################")
endif()
endforeach()
endfunction()

View File

@ -1,6 +1,6 @@
set(COLVARS_SOURCE_DIR ${LAMMPS_LIB_SOURCE_DIR}/colvars)
file(GLOB COLVARS_SOURCES ${CONFIGURE_DEPENDS} ${COLVARS_SOURCE_DIR}/[^.]*.cpp)
file(GLOB COLVARS_SOURCES CONFIGURE_DEPENDS ${COLVARS_SOURCE_DIR}/[^.]*.cpp)
option(COLVARS_DEBUG "Enable debugging messages for Colvars (quite verbose)" OFF)

View File

@ -1,3 +1,10 @@
# Silence CMake warnings about FindCUDA being obsolete.
# We may need to eventually rewrite this section to use enable_language(CUDA)
if(POLICY CMP0146)
cmake_policy(SET CMP0146 OLD)
endif()
set(GPU_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/GPU)
set(GPU_SOURCES ${GPU_SOURCES_DIR}/gpu_extra.h
${GPU_SOURCES_DIR}/fix_gpu.h
@ -39,7 +46,7 @@ if (PKG_AMOEBA)
${GPU_SOURCES_DIR}/amoeba_convolution_gpu.cpp)
endif()
file(GLOB GPU_LIB_SOURCES ${CONFIGURE_DEPENDS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cpp)
file(GLOB GPU_LIB_SOURCES CONFIGURE_DEPENDS ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cpp)
file(MAKE_DIRECTORY ${LAMMPS_LIB_BINARY_DIR}/gpu)
if(GPU_API STREQUAL "CUDA")
@ -70,7 +77,7 @@ if(GPU_API STREQUAL "CUDA")
set(GPU_ARCH "sm_50" CACHE STRING "LAMMPS GPU CUDA SM primary architecture (e.g. sm_60)")
# ensure that no *cubin.h files exist from a compile in the lib/gpu folder
file(GLOB GPU_LIB_OLD_CUBIN_HEADERS ${CONFIGURE_DEPENDS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/*_cubin.h)
file(GLOB GPU_LIB_OLD_CUBIN_HEADERS CONFIGURE_DEPENDS ${LAMMPS_LIB_SOURCE_DIR}/gpu/*_cubin.h)
if(GPU_LIB_OLD_CUBIN_HEADERS)
message(FATAL_ERROR "########################################################################\n"
"Found file(s) generated by the make-based build system in lib/gpu\n"
@ -80,15 +87,15 @@ if(GPU_API STREQUAL "CUDA")
"########################################################################")
endif()
file(GLOB GPU_LIB_CU ${CONFIGURE_DEPENDS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/[^.]*.cu)
file(GLOB GPU_LIB_CU CONFIGURE_DEPENDS ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/[^.]*.cu)
list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_pppm.cu)
cuda_include_directories(${LAMMPS_LIB_SOURCE_DIR}/gpu ${LAMMPS_LIB_BINARY_DIR}/gpu)
if(CUDPP_OPT)
cuda_include_directories(${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini)
file(GLOB GPU_LIB_CUDPP_SOURCES ${CONFIGURE_DEPENDS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/[^.]*.cpp)
file(GLOB GPU_LIB_CUDPP_CU ${CONFIGURE_DEPENDS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/[^.]*.cu)
file(GLOB GPU_LIB_CUDPP_SOURCES CONFIGURE_DEPENDS ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/[^.]*.cpp)
file(GLOB GPU_LIB_CUDPP_CU CONFIGURE_DEPENDS ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/[^.]*.cu)
endif()
# build arch/gencode commands for nvcc based on CUDA toolkit version and use choice
@ -151,10 +158,10 @@ if(GPU_API STREQUAL "CUDA")
endif()
cuda_compile_fatbin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS ${CUDA_REQUEST_PIC}
-DUNIX -O3 --use_fast_math -Wno-deprecated-gpu-targets -DNV_KERNEL -DUCL_CUDADR ${GPU_CUDA_GENCODE} -D_${GPU_PREC_SETTING} -DLAMMPS_${LAMMPS_SIZES})
-DUNIX -O3 --use_fast_math -Wno-deprecated-gpu-targets -allow-unsupported-compiler -DNV_KERNEL -DUCL_CUDADR ${GPU_CUDA_GENCODE} -D_${GPU_PREC_SETTING} -DLAMMPS_${LAMMPS_SIZES})
cuda_compile(GPU_OBJS ${GPU_LIB_CUDPP_CU} OPTIONS ${CUDA_REQUEST_PIC}
-DUNIX -O3 --use_fast_math -Wno-deprecated-gpu-targets -DUCL_CUDADR ${GPU_CUDA_GENCODE} -D_${GPU_PREC_SETTING} -DLAMMPS_${LAMMPS_SIZES})
-DUNIX -O3 --use_fast_math -Wno-deprecated-gpu-targets -allow-unsupported-compiler -DUCL_CUDADR ${GPU_CUDA_GENCODE} -D_${GPU_PREC_SETTING} -DLAMMPS_${LAMMPS_SIZES})
foreach(CU_OBJ ${GPU_GEN_OBJS})
get_filename_component(CU_NAME ${CU_OBJ} NAME_WE)
@ -205,7 +212,7 @@ elseif(GPU_API STREQUAL "OPENCL")
include(OpenCLUtils)
set(OCL_COMMON_HEADERS ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_preprocessor.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_aux_fun1.h)
file(GLOB GPU_LIB_CU ${CONFIGURE_DEPENDS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu)
file(GLOB GPU_LIB_CU CONFIGURE_DEPENDS ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu)
list(REMOVE_ITEM GPU_LIB_CU
${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne.cu
${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne_lj.cu
@ -335,7 +342,7 @@ elseif(GPU_API STREQUAL "HIP")
endif()
endif()
file(GLOB GPU_LIB_CU ${CONFIGURE_DEPENDS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/[^.]*.cu)
file(GLOB GPU_LIB_CU CONFIGURE_DEPENDS ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/[^.]*.cu)
list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_pppm.cu)
set(GPU_LIB_CU_HIP "")

View File

@ -1,12 +1,7 @@
set(KIM-API_MIN_VERSION 2.1.3)
find_package(CURL)
if(CURL_FOUND)
if(CMAKE_VERSION VERSION_LESS 3.12)
target_include_directories(lammps PRIVATE ${CURL_INCLUDE_DIRS})
target_link_libraries(lammps PRIVATE ${CURL_LIBRARIES})
else()
target_link_libraries(lammps PRIVATE CURL::libcurl)
endif()
target_link_libraries(lammps PRIVATE CURL::libcurl)
target_compile_definitions(lammps PRIVATE -DLMP_KIM_CURL)
set(LMP_DEBUG_CURL OFF CACHE STRING "Set libcurl verbose mode on/off. If on, it displays a lot of verbose information about its operations.")
mark_as_advanced(LMP_DEBUG_CURL)

View File

@ -1,7 +1,8 @@
########################################################################
# As of version 3.3.0 Kokkos requires C++14
if(CMAKE_CXX_STANDARD LESS 14)
message(FATAL_ERROR "The KOKKOS package requires the C++ standard to be set to at least C++14")
# As of version 4.0.0 Kokkos requires C++17
if(CMAKE_CXX_STANDARD LESS 17)
message(FATAL_ERROR "The KOKKOS package requires the C++ standard to
be set to at least C++17")
endif()
########################################################################
@ -15,11 +16,6 @@ endif()
if(Kokkos_ENABLE_OPENMP)
if(NOT BUILD_OMP)
message(FATAL_ERROR "Must enable BUILD_OMP with Kokkos_ENABLE_OPENMP")
else()
# NVHPC/(AMD)Clang does not seem to provide a detectable OpenMP version, but is far beyond version 3.1
if((OpenMP_CXX_VERSION VERSION_LESS 3.1) AND NOT ((CMAKE_CXX_COMPILER_ID STREQUAL "NVHPC") OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")))
message(FATAL_ERROR "Compiler must support OpenMP 3.1 or later with Kokkos_ENABLE_OPENMP")
endif()
endif()
endif()
########################################################################
@ -49,8 +45,8 @@ if(DOWNLOAD_KOKKOS)
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS}")
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}")
include(ExternalProject)
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/3.7.02.tar.gz" CACHE STRING "URL for KOKKOS tarball")
set(KOKKOS_MD5 "34d7860d548c06a4040236d959c9f99a" CACHE STRING "MD5 checksum of KOKKOS tarball")
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/4.2.00.tar.gz" CACHE STRING "URL for KOKKOS tarball")
set(KOKKOS_MD5 "731647b61a4233f568d583702e9cd6d1" CACHE STRING "MD5 checksum of KOKKOS tarball")
mark_as_advanced(KOKKOS_URL)
mark_as_advanced(KOKKOS_MD5)
GetFallbackURL(KOKKOS_URL KOKKOS_FALLBACK)
@ -75,7 +71,7 @@ if(DOWNLOAD_KOKKOS)
add_dependencies(LAMMPS::KOKKOSCORE kokkos_build)
add_dependencies(LAMMPS::KOKKOSCONTAINERS kokkos_build)
elseif(EXTERNAL_KOKKOS)
find_package(Kokkos 3.7.02 REQUIRED CONFIG)
find_package(Kokkos 4.2.00 REQUIRED CONFIG)
target_link_libraries(lammps PRIVATE Kokkos::kokkos)
else()
set(LAMMPS_LIB_KOKKOS_SRC_DIR ${LAMMPS_LIB_SOURCE_DIR}/kokkos)
@ -130,16 +126,32 @@ if(PKG_KSPACE)
list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/fft3d_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/grid3d_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/remap_kokkos.cpp)
set(FFT_KOKKOS "KISS" CACHE STRING "FFT library for Kokkos-enabled KSPACE package")
set(FFT_KOKKOS_VALUES KISS FFTW3 MKL HIPFFT CUFFT)
set_property(CACHE FFT_KOKKOS PROPERTY STRINGS ${FFT_KOKKOS_VALUES})
validate_option(FFT_KOKKOS FFT_KOKKOS_VALUES)
string(TOUPPER ${FFT_KOKKOS} FFT_KOKKOS)
if(Kokkos_ENABLE_CUDA)
if(NOT (FFT STREQUAL "KISS"))
target_compile_definitions(lammps PRIVATE -DFFT_CUFFT)
if(NOT ((FFT_KOKKOS STREQUAL "KISS") OR (FFT_KOKKOS STREQUAL "CUFFT")))
message(FATAL_ERROR "The CUDA backend of Kokkos requires either KISS FFT or CUFFT.")
elseif(FFT_KOKKOS STREQUAL "KISS")
message(WARNING "Using KISS FFT with the CUDA backend of Kokkos may be sub-optimal.")
target_compile_definitions(lammps PRIVATE -DFFT_KOKKOS_KISS)
elseif(FFT_KOKKOS STREQUAL "CUFFT")
target_compile_definitions(lammps PRIVATE -DFFT_KOKKOS_CUFFT)
target_link_libraries(lammps PRIVATE cufft)
endif()
elseif(Kokkos_ENABLE_HIP)
if(NOT (FFT STREQUAL "KISS"))
if(NOT ((FFT_KOKKOS STREQUAL "KISS") OR (FFT_KOKKOS STREQUAL "HIPFFT")))
message(FATAL_ERROR "The HIP backend of Kokkos requires either KISS FFT or HIPFFT.")
elseif(FFT_KOKKOS STREQUAL "KISS")
message(WARNING "Using KISS FFT with the HIP backend of Kokkos may be sub-optimal.")
target_compile_definitions(lammps PRIVATE -DFFT_KOKKOS_KISS)
elseif(FFT_KOKKOS STREQUAL "HIPFFT")
include(DetectHIPInstallation)
find_package(hipfft REQUIRED)
target_compile_definitions(lammps PRIVATE -DFFT_HIPFFT)
target_compile_definitions(lammps PRIVATE -DFFT_KOKKOS_HIPFFT)
target_link_libraries(lammps PRIVATE hip::hipfft)
endif()
endif()
@ -155,7 +167,7 @@ if(PKG_ML-IAP)
# Add KOKKOS version of ML-IAP Python coupling if non-KOKKOS version is included
if(MLIAP_ENABLE_PYTHON AND Cythonize_EXECUTABLE)
file(GLOB MLIAP_KOKKOS_CYTHON_SRC ${CONFIGURE_DEPENDS} ${LAMMPS_SOURCE_DIR}/KOKKOS/*.pyx)
file(GLOB MLIAP_KOKKOS_CYTHON_SRC CONFIGURE_DEPENDS ${LAMMPS_SOURCE_DIR}/KOKKOS/*.pyx)
foreach(MLIAP_CYTHON_FILE ${MLIAP_KOKKOS_CYTHON_SRC})
get_filename_component(MLIAP_CYTHON_BASE ${MLIAP_CYTHON_FILE} NAME_WE)
add_custom_command(OUTPUT ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.h

View File

@ -46,6 +46,61 @@ else()
target_compile_definitions(lammps PRIVATE -DFFT_KISS)
endif()
option(FFT_USE_HEFFTE "Use heFFTe as the distributed FFT engine, overrides the FFT option." OFF)
if(FFT_USE_HEFFTE)
# if FFT_HEFFTE is enabled, use the heFFTe parallel engine instead of the builtin fftMPI engine
# map standard FFT choices to available heFFTe backends: FFTW3 -> FFTW, KISS -> BUILTIN
set(FFT_HEFFTE_BACKEND_VALUES FFTW MKL BUILTIN)
string(REPLACE FFTW3 FFTW FFT_HEFFTE_BACKEND_DEFAULT ${FFT})
string(REPLACE KISS BUILTIN FFT_HEFFTE_BACKEND_DEFAULT ${FFT_HEFFTE_BACKEND_DEFAULT})
set(FFT_HEFFTE_BACKEND "${FFT_HEFFTE_BACKEND_DEFAULT}" CACHE STRING "Select heFFTe backend, e.g., FFTW or MKL")
set_property(CACHE FFT_HEFFTE_BACKEND PROPERTY STRINGS ${FFT_HEFFTE_BACKEND_VALUES})
validate_option(FFT_HEFFTE_BACKEND FFT_HEFFTE_BACKEND_VALUES)
if(FFT_HEFFTE_BACKEND STREQUAL "FFTW") # respect the backend choice, FFTW or MKL
set(HEFFTE_COMPONENTS "FFTW")
set(Heffte_ENABLE_FFTW "ON" CACHE BOOL "Enables FFTW backend for heFFTe")
elseif(FFT_HEFFTE_BACKEND STREQUAL "MKL")
set(HEFFTE_COMPONENTS "MKL")
set(Heffte_ENABLE_MKL "ON" CACHE BOOL "Enables MKL backend for heFFTe")
else()
set(HEFFTE_COMPONENTS "BUILTIN")
message(WARNING "FFT_HEFFTE_BACKEND not selected, defaulting to the builtin 'stock' backend, which is intended for testing and is not optimized for production runs")
endif()
find_package(Heffte 2.4.0 QUIET COMPONENTS ${HEFFTE_COMPONENTS})
if (NOT Heffte_FOUND) # download and build
if(BUILD_SHARED_LIBS)
set(BUILD_SHARED_LIBS_WAS_ON YES)
set(BUILD_SHARED_LIBS OFF)
endif()
if(CMAKE_REQUEST_PIC)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif()
set(Heffte_ENABLE_${FFT_HEFFTE_BACKEND} ON)
include(FetchContent)
FetchContent_Declare(HEFFTE_PROJECT # using v2.4.0
URL "https://github.com/icl-utk-edu/heffte/archive/refs/tags/v2.4.0.tar.gz"
URL_HASH SHA256=02310fb4f9688df02f7181667e61c3adb7e38baf79611d80919d47452ff7881d
)
FetchContent_Populate(HEFFTE_PROJECT)
# fixup git hash to show "(unknown)" to avoid compilation failures.
file(READ ${heffte_project_SOURCE_DIR}/include/heffte_config.cmake.h HEFFTE_CFG_FILE_TEXT)
string(REPLACE "@Heffte_GIT_HASH@" "(unknown)" HEFFTE_CFG_FILE_TEXT "${HEFFTE_CFG_FILE_TEXT}")
file(WRITE ${heffte_project_SOURCE_DIR}/include/heffte_config.cmake.h "${HEFFTE_CFG_FILE_TEXT}")
add_subdirectory(${heffte_project_SOURCE_DIR} ${heffte_project_BINARY_DIR})
add_library(Heffte::Heffte ALIAS Heffte)
if(BUILD_SHARED_LIBS_WAS_ON)
set(BUILD_SHARED_LIBS ON)
endif()
endif()
target_compile_definitions(lammps PRIVATE -DFFT_HEFFTE "-DFFT_HEFFTE_${FFT_HEFFTE_BACKEND}")
target_link_libraries(lammps PRIVATE Heffte::Heffte)
endif()
set(FFT_PACK "array" CACHE STRING "Optimization for FFT")
set(FFT_PACK_VALUES array pointer memcpy)
set_property(CACHE FFT_PACK PROPERTY STRINGS ${FFT_PACK_VALUES})

View File

@ -4,7 +4,7 @@ if(LEPTON_SOURCE_DIR)
endif()
set(LEPTON_SOURCE_DIR ${LAMMPS_LIB_SOURCE_DIR}/lepton)
file(GLOB LEPTON_SOURCES ${CONFIGURE_DEPENDS} ${LEPTON_SOURCE_DIR}/src/[^.]*.cpp)
file(GLOB LEPTON_SOURCES CONFIGURE_DEPENDS ${LEPTON_SOURCE_DIR}/src/[^.]*.cpp)
if((CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "amd64") OR
(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "AMD64") OR
@ -15,7 +15,7 @@ else()
endif()
if(LEPTON_ENABLE_JIT)
file(GLOB ASMJIT_SOURCES ${CONFIGURE_DEPENDS} ${LEPTON_SOURCE_DIR}/asmjit/*/[^.]*.cpp)
file(GLOB ASMJIT_SOURCES CONFIGURE_DEPENDS ${LEPTON_SOURCE_DIR}/asmjit/*/[^.]*.cpp)
endif()
add_library(lepton STATIC ${LEPTON_SOURCES} ${ASMJIT_SOURCES})

View File

@ -8,8 +8,8 @@ option(DOWNLOAD_MDI "Download and compile the MDI library instead of using an al
if(DOWNLOAD_MDI)
message(STATUS "MDI download requested - we will build our own")
set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.16.tar.gz" CACHE STRING "URL for MDI tarball")
set(MDI_MD5 "407db44e2d79447ab5c1233af1965f65" CACHE STRING "MD5 checksum for MDI tarball")
set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.26.tar.gz" CACHE STRING "URL for MDI tarball")
set(MDI_MD5 "3124bb85259471e2a53a891f04bf697a" CACHE STRING "MD5 checksum for MDI tarball")
mark_as_advanced(MDI_URL)
mark_as_advanced(MDI_MD5)
GetFallbackURL(MDI_URL MDI_FALLBACK)
@ -26,29 +26,9 @@ if(DOWNLOAD_MDI)
# detect if we have python development support and thus can enable python plugins
set(MDI_USE_PYTHON_PLUGINS OFF)
if(CMAKE_VERSION VERSION_LESS 3.12)
if(NOT PYTHON_VERSION_STRING)
set(Python_ADDITIONAL_VERSIONS 3.12 3.11 3.10 3.9 3.8 3.7 3.6)
# search for interpreter first, so we have a consistent library
find_package(PythonInterp) # Deprecated since version 3.12
if(PYTHONINTERP_FOUND)
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
endif()
endif()
# search for the library matching the selected interpreter
set(Python_ADDITIONAL_VERSIONS ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR})
find_package(PythonLibs QUIET) # Deprecated since version 3.12
if(PYTHONLIBS_FOUND)
if(NOT (PYTHON_VERSION_STRING STREQUAL PYTHONLIBS_VERSION_STRING))
message(FATAL_ERROR "Python Library version ${PYTHONLIBS_VERSION_STRING} does not match Interpreter version ${PYTHON_VERSION_STRING}")
endif()
set(MDI_USE_PYTHON_PLUGINS ON)
endif()
else()
find_package(Python QUIET COMPONENTS Development)
if(Python_Development_FOUND)
set(MDI_USE_PYTHON_PLUGINS ON)
endif()
find_package(Python QUIET COMPONENTS Development)
if(Python_Development_FOUND)
set(MDI_USE_PYTHON_PLUGINS ON)
endif()
# python plugins are not supported and thus must be always off on Windows
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
@ -102,13 +82,9 @@ if(DOWNLOAD_MDI)
# if compiling with python plugins we need
# to add python libraries as dependency.
if(MDI_USE_PYTHON_PLUGINS)
if(CMAKE_VERSION VERSION_LESS 3.12)
list(APPEND MDI_DEP_LIBS ${PYTHON_LIBRARIES})
else()
list(APPEND MDI_DEP_LIBS Python::Python)
endif()
list(APPEND MDI_DEP_LIBS Python::Python)
endif()
# need to add support for dlopen/dlsym, except when compiling for Windows.
if(NOT (CMAKE_SYSTEM_NAME STREQUAL "Windows"))
list(APPEND MDI_DEP_LIBS "${CMAKE_DL_LIBS}")

View File

@ -2,12 +2,7 @@
set(MLIAP_ENABLE_PYTHON_DEFAULT OFF)
if(PKG_PYTHON)
find_package(Cythonize QUIET)
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.14)
find_package(Python COMPONENTS NumPy QUIET)
else()
# assume we have NumPy
set(Python_NumPy_FOUND ON)
endif()
find_package(Python COMPONENTS NumPy QUIET)
if(Cythonize_FOUND AND Python_NumPy_FOUND)
set(MLIAP_ENABLE_PYTHON_DEFAULT ON)
endif()
@ -17,24 +12,16 @@ option(MLIAP_ENABLE_PYTHON "Build ML-IAP package with Python support" ${MLIAP_EN
if(MLIAP_ENABLE_PYTHON)
find_package(Cythonize REQUIRED)
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.14)
find_package(Python COMPONENTS NumPy REQUIRED)
endif()
find_package(Python COMPONENTS NumPy REQUIRED)
if(NOT PKG_PYTHON)
message(FATAL_ERROR "Must enable PYTHON package for including Python support in ML-IAP")
endif()
if(CMAKE_VERSION VERSION_LESS 3.12)
if(PYTHONLIBS_VERSION_STRING VERSION_LESS 3.6)
message(FATAL_ERROR "Python support in ML-IAP requires Python 3.6 or later")
endif()
else()
if(Python_VERSION VERSION_LESS 3.6)
message(FATAL_ERROR "Python support in ML-IAP requires Python 3.6 or later")
endif()
if(Python_VERSION VERSION_LESS 3.6)
message(FATAL_ERROR "Python support in ML-IAP requires Python 3.6 or later")
endif()
set(MLIAP_BINARY_DIR ${CMAKE_BINARY_DIR}/cython)
file(GLOB MLIAP_CYTHON_SRC ${CONFIGURE_DEPENDS} ${LAMMPS_SOURCE_DIR}/ML-IAP/*.pyx)
file(GLOB MLIAP_CYTHON_SRC CONFIGURE_DEPENDS ${LAMMPS_SOURCE_DIR}/ML-IAP/*.pyx)
file(MAKE_DIRECTORY ${MLIAP_BINARY_DIR})
foreach(MLIAP_CYTHON_FILE ${MLIAP_CYTHON_SRC})
get_filename_component(MLIAP_CYTHON_BASE ${MLIAP_CYTHON_FILE} NAME_WE)

View File

@ -1,33 +1,40 @@
set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2023.01.3.fix.tar.gz" CACHE STRING "URL for PACE evaluator library sources")
set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2023.11.25.fix.tar.gz" CACHE STRING "URL for PACE evaluator library sources")
set(PACELIB_MD5 "4f0b3b5b14456fe9a73b447de3765caa" CACHE STRING "MD5 checksum of PACE evaluator library tarball")
set(PACELIB_MD5 "b45de9a633f42ed65422567e3ce56f9f" CACHE STRING "MD5 checksum of PACE evaluator library tarball")
mark_as_advanced(PACELIB_URL)
mark_as_advanced(PACELIB_MD5)
GetFallbackURL(PACELIB_URL PACELIB_FALLBACK)
# download library sources to build folder
if(EXISTS ${CMAKE_BINARY_DIR}/libpace.tar.gz)
file(MD5 ${CMAKE_BINARY_DIR}/libpace.tar.gz DL_MD5)
endif()
if(NOT "${DL_MD5}" STREQUAL "${PACELIB_MD5}")
message(STATUS "Downloading ${PACELIB_URL}")
file(DOWNLOAD ${PACELIB_URL} ${CMAKE_BINARY_DIR}/libpace.tar.gz STATUS DL_STATUS SHOW_PROGRESS)
file(MD5 ${CMAKE_BINARY_DIR}/libpace.tar.gz DL_MD5)
if((NOT DL_STATUS EQUAL 0) OR (NOT "${DL_MD5}" STREQUAL "${PACELIB_MD5}"))
message(WARNING "Download from primary URL ${PACELIB_URL} failed\nTrying fallback URL ${PACELIB_FALLBACK}")
file(DOWNLOAD ${PACELIB_FALLBACK} ${CMAKE_BINARY_DIR}/libpace.tar.gz EXPECTED_HASH MD5=${PACELIB_MD5} SHOW_PROGRESS)
endif()
# LOCAL_ML-PACE points to top-level dir with local lammps-user-pace repo,
# to make it easier to check local build without going through the public github releases
if(LOCAL_ML-PACE)
set(lib-pace "${LOCAL_ML-PACE}")
else()
message(STATUS "Using already downloaded archive ${CMAKE_BINARY_DIR}/libpace.tar.gz")
endif()
# download library sources to build folder
if(EXISTS ${CMAKE_BINARY_DIR}/libpace.tar.gz)
file(MD5 ${CMAKE_BINARY_DIR}/libpace.tar.gz DL_MD5)
endif()
if(NOT "${DL_MD5}" STREQUAL "${PACELIB_MD5}")
message(STATUS "Downloading ${PACELIB_URL}")
file(DOWNLOAD ${PACELIB_URL} ${CMAKE_BINARY_DIR}/libpace.tar.gz STATUS DL_STATUS SHOW_PROGRESS)
file(MD5 ${CMAKE_BINARY_DIR}/libpace.tar.gz DL_MD5)
if((NOT DL_STATUS EQUAL 0) OR (NOT "${DL_MD5}" STREQUAL "${PACELIB_MD5}"))
message(WARNING "Download from primary URL ${PACELIB_URL} failed\nTrying fallback URL ${PACELIB_FALLBACK}")
file(DOWNLOAD ${PACELIB_FALLBACK} ${CMAKE_BINARY_DIR}/libpace.tar.gz EXPECTED_HASH MD5=${PACELIB_MD5} SHOW_PROGRESS)
endif()
else()
message(STATUS "Using already downloaded archive ${CMAKE_BINARY_DIR}/libpace.tar.gz")
endif()
# uncompress downloaded sources
execute_process(
COMMAND ${CMAKE_COMMAND} -E remove_directory lammps-user-pace*
COMMAND ${CMAKE_COMMAND} -E tar xzf libpace.tar.gz
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
get_newest_file(${CMAKE_BINARY_DIR}/lammps-user-pace-* lib-pace)
# uncompress downloaded sources
execute_process(
COMMAND ${CMAKE_COMMAND} -E remove_directory lammps-user-pace*
COMMAND ${CMAKE_COMMAND} -E tar xzf libpace.tar.gz
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
get_newest_file(${CMAKE_BINARY_DIR}/lammps-user-pace-* lib-pace)
endif()
add_subdirectory(${lib-pace} build-pace)
set_target_properties(pace PROPERTIES CXX_EXTENSIONS ON OUTPUT_NAME lammps_pace${LAMMPS_MACHINE})

View File

@ -18,7 +18,9 @@ if(DOWNLOAD_QUIP)
set(temp "${temp}F77FLAGS += -fpp -fixed -fPIC\n")
set(temp "${temp}F95_PRE_FILENAME_FLAG = -Tf\n")
elseif(CMAKE_Fortran_COMPILER_ID STREQUAL GNU)
set(temp "${temp}FPP=${CMAKE_Fortran_COMPILER} -E -x f95-cpp-input\nOPTIM=${CMAKE_Fortran_FLAGS_${BTYPE}}\n")
# quip library uses GNU fortran extensions. If any more restrictive standards are set, reset them
string(REGEX REPLACE -std=f[0-9]+ -std=gnu _fopt "${CMAKE_Fortran_FLAGS_${BTYPE}}")
set(temp "${temp}FPP=${CMAKE_Fortran_COMPILER} -E -x f95-cpp-input\nOPTIM=${_fopt} -fmax-stack-var-size=6553600\n")
set(temp "${temp}DEFINES += -DGETARG_F2003 -DGETENV_F2003 -DGFORTRAN -DFORTRAN_UNDERSCORE\n")
set(temp "${temp}F95FLAGS += -x f95-cpp-input -ffree-line-length-none -ffree-form -fno-second-underscore -fPIC\n")
set(temp "${temp}F77FLAGS += -x f77-cpp-input -fno-second-underscore -fPIC\n")
@ -56,7 +58,7 @@ if(DOWNLOAD_QUIP)
GIT_SUBMODULES "src/fox;src/GAP"
PATCH_COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/quip.config <SOURCE_DIR>/arch/Makefile.lammps
CONFIGURE_COMMAND env QUIP_ARCH=lammps make config
BUILD_COMMAND env QUIP_ARCH=lammps make libquip
BUILD_COMMAND env QUIP_ARCH=lammps make -j1 libquip
INSTALL_COMMAND ""
BUILD_IN_SOURCE YES
BUILD_BYPRODUCTS <SOURCE_DIR>/build/lammps/${CMAKE_STATIC_LIBRARY_PREFIX}quip${CMAKE_STATIC_LIBRARY_SUFFIX}

View File

@ -1,28 +0,0 @@
find_package(GSL REQUIRED)
find_package(MSCG QUIET)
if(MSGC_FOUND)
set(DOWNLOAD_MSCG_DEFAULT OFF)
else()
set(DOWNLOAD_MSCG_DEFAULT ON)
endif()
option(DOWNLOAD_MSCG "Download MSCG library instead of using an already installed one)" ${DOWNLOAD_MSCG_DEFAULT})
if(DOWNLOAD_MSCG)
set(MSCG_URL "https://github.com/uchicago-voth/MSCG-release/archive/491270a73539e3f6951e76f7dbe84e258b3ebb45.tar.gz" CACHE STRING "URL for MSCG tarball")
set(MSCG_MD5 "7ea50748fba5c3a372e0266bd31d2f11" CACHE STRING "MD5 checksum of MSCG tarball")
mark_as_advanced(MSCG_URL)
mark_as_advanced(MSCG_MD5)
include(ExternalCMakeProject)
ExternalCMakeProject(mscg ${MSCG_URL} ${MSCG_MD5} MSCG-release src/CMake "")
# set include and link library
target_include_directories(lammps PRIVATE "${CMAKE_BINARY_DIR}/_deps/mscg-src/src")
target_link_libraries(lammps PRIVATE mscg)
else()
find_package(MSCG)
if(NOT MSCG_FOUND)
message(FATAL_ERROR "MSCG not found, help CMake to find it by setting MSCG_LIBRARY and MSCG_INCLUDE_DIR, or set DOWNLOAD_MSCG=ON to download it")
endif()
target_link_libraries(lammps PRIVATE MSCG::MSCG)
endif()
target_link_libraries(lammps PRIVATE GSL::gsl ${LAPACK_LIBRARIES})

View File

@ -1,29 +1,11 @@
if(CMAKE_VERSION VERSION_LESS 3.12)
if(NOT PYTHON_VERSION_STRING)
set(Python_ADDITIONAL_VERSIONS 3.12 3.11 3.10 3.9 3.8 3.7 3.6)
# search for interpreter first, so we have a consistent library
find_package(PythonInterp) # Deprecated since version 3.12
if(PYTHONINTERP_FOUND)
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
endif()
if(NOT Python_INTERPRETER)
# backward compatibility with CMake before 3.12 and older LAMMPS documentation
if(PYTHON_EXECUTABLE)
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
endif()
# search for the library matching the selected interpreter
set(Python_ADDITIONAL_VERSIONS ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR})
find_package(PythonLibs REQUIRED) # Deprecated since version 3.12
if(NOT (PYTHON_VERSION_STRING STREQUAL PYTHONLIBS_VERSION_STRING))
message(FATAL_ERROR "Python Library version ${PYTHONLIBS_VERSION_STRING} does not match Interpreter version ${PYTHON_VERSION_STRING}")
endif()
target_include_directories(lammps PRIVATE ${PYTHON_INCLUDE_DIRS})
target_link_libraries(lammps PRIVATE ${PYTHON_LIBRARIES})
else()
if(NOT Python_INTERPRETER)
# backward compatibility
if(PYTHON_EXECUTABLE)
set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
endif()
find_package(Python COMPONENTS Interpreter)
endif()
find_package(Python REQUIRED COMPONENTS Interpreter Development)
target_link_libraries(lammps PRIVATE Python::Python)
find_package(Python COMPONENTS Interpreter)
endif()
find_package(Python REQUIRED COMPONENTS Interpreter Development)
target_link_libraries(lammps PRIVATE Python::Python)
target_compile_definitions(lammps PRIVATE -DLMP_PYTHON)

View File

@ -1,5 +1,5 @@
function(FindStyleHeaders path style_class file_pattern headers)
file(GLOB files ${CONFIGURE_DEPENDS} "${path}/${file_pattern}*.h")
file(GLOB files CONFIGURE_DEPENDS "${path}/${file_pattern}*.h")
get_property(hlist GLOBAL PROPERTY ${headers})
foreach(file_name ${files})
@ -187,7 +187,7 @@ endfunction(DetectBuildSystemConflict)
function(FindPackagesHeaders path style_class file_pattern headers)
file(GLOB files ${CONFIGURE_DEPENDS} "${path}/${file_pattern}*.h")
file(GLOB files CONFIGURE_DEPENDS "${path}/${file_pattern}*.h")
get_property(plist GLOBAL PROPERTY ${headers})
foreach(file_name ${files})

View File

@ -6,7 +6,7 @@ if(ENABLE_TESTING)
find_program(VALGRIND_BINARY NAMES valgrind)
# generate custom suppression file
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/lammps.supp "\n")
file(GLOB VALGRIND_SUPPRESSION_FILES ${CONFIGURE_DEPENDS} ${LAMMPS_TOOLS_DIR}/valgrind/[^.]*.supp)
file(GLOB VALGRIND_SUPPRESSION_FILES CONFIGURE_DEPENDS ${LAMMPS_TOOLS_DIR}/valgrind/[^.]*.supp)
foreach(SUPP ${VALGRIND_SUPPRESSION_FILES})
file(READ ${SUPP} SUPPRESSIONS)
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/lammps.supp "${SUPPRESSIONS}")
@ -19,7 +19,7 @@ if(ENABLE_TESTING)
# we need to build and link a LOT of tester executables, so it is worth checking if
# a faster linker is available. requires GNU or Clang compiler, newer CMake.
# also only verified with Fedora Linux > 30 and Ubuntu 18.04 or 22.04+(Ubuntu 20.04 fails)
if((CMAKE_SYSTEM_NAME STREQUAL "Linux") AND (CMAKE_VERSION VERSION_GREATER_EQUAL 3.13)
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)))
@ -66,16 +66,8 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
option(ENABLE_COVERAGE "Enable collecting code coverage data" OFF)
mark_as_advanced(ENABLE_COVERAGE)
if(ENABLE_COVERAGE)
if(CMAKE_VERSION VERSION_LESS 3.13)
if(CMAKE_CXX_FLAGS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_${CMAKE_BUILD_TYPE}_FLAGS} --coverage")
endif()
else()
target_compile_options(lammps PUBLIC --coverage)
target_link_options(lammps PUBLIC --coverage)
endif()
target_compile_options(lammps PUBLIC --coverage)
target_link_options(lammps PUBLIC --coverage)
endif()
endif()
@ -118,16 +110,8 @@ validate_option(ENABLE_SANITIZER ENABLE_SANITIZER_VALUES)
string(TOLOWER ${ENABLE_SANITIZER} ENABLE_SANITIZER)
if(NOT ENABLE_SANITIZER STREQUAL "none")
if((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") OR (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang"))
if(CMAKE_VERSION VERSION_LESS 3.13)
if(CMAKE_CXX_FLAGS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=${ENABLE_SANITIZER}")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_${CMAKE_BUILD_TYPE}_FLAGS} -fsanitize=${ENABLE_SANITIZER}")
endif()
else()
target_compile_options(lammps PUBLIC -fsanitize=${ENABLE_SANITIZER})
target_link_options(lammps PUBLIC -fsanitize=${ENABLE_SANITIZER})
endif()
target_compile_options(lammps PUBLIC -fsanitize=${ENABLE_SANITIZER})
target_link_options(lammps PUBLIC -fsanitize=${ENABLE_SANITIZER})
else()
message(WARNING "ENABLE_SANITIZER option not supported by ${CMAKE_CXX_COMPILER_ID} compilers. Ignoring.")
set(ENABLE_SANITIZER "none")

View File

@ -26,7 +26,7 @@ if(BUILD_TOOLS)
enable_language(C)
get_filename_component(MSI2LMP_SOURCE_DIR ${LAMMPS_TOOLS_DIR}/msi2lmp/src ABSOLUTE)
file(GLOB MSI2LMP_SOURCES ${CONFIGURE_DEPENDS} ${MSI2LMP_SOURCE_DIR}/[^.]*.c)
file(GLOB MSI2LMP_SOURCES CONFIGURE_DEPENDS ${MSI2LMP_SOURCE_DIR}/[^.]*.c)
add_executable(msi2lmp ${MSI2LMP_SOURCES})
if(STANDARD_MATH_LIB)
target_link_libraries(msi2lmp PRIVATE ${STANDARD_MATH_LIB})
@ -44,9 +44,6 @@ if(BUILD_LAMMPS_SHELL)
endif()
find_package(PkgConfig REQUIRED)
pkg_check_modules(READLINE IMPORTED_TARGET REQUIRED readline)
if(NOT LAMMPS_EXCEPTIONS)
message(WARNING "The LAMMPS shell needs LAMMPS_EXCEPTIONS enabled for full functionality")
endif()
# include resource compiler to embed icons into the executable on Windows
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 86 KiB

View File

@ -17,7 +17,7 @@
<key>CFBundleLongVersionString</key>
<string>${MACOSX_BUNDLE_LONG_VERSION_STRING}</string>
<key>CFBundleName</key>
<string>LAMMPS</string>
<string>LAMMPS_GUI</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>

View File

@ -9,7 +9,7 @@ of the available packages.
The following individual commands are included:
binary2txt lammps-gui lmp msi2lmp phana stl_bin2txt
After copying the lammps-gui folder into your Applications folder, please follow
After copying the LAMMPS_GUI folder into your Applications folder, please follow
these steps:
1. Open the Terminal app
@ -23,7 +23,7 @@ these steps:
3. Add the following lines to the end of the file, save it, and close the editor
LAMMPS_INSTALL_DIR=/Applications/LAMMPS.app/Contents
LAMMPS_INSTALL_DIR=/Applications/LAMMPS_GUI.app/Contents
LAMMPS_POTENTIALS=${LAMMPS_INSTALL_DIR}/share/lammps/potentials
LAMMPS_BENCH_DIR=${LAMMPS_INSTALL_DIR}/share/lammps/bench
MSI2LMP_LIBRARY=${LAMMPS_INSTALL_DIR}/share/lammps/frc_files
@ -38,9 +38,9 @@ these steps:
the changes from .zprofile automatically.
Note: the above assumes you use the default shell (zsh) that comes with
MacOS. If you customized MacOS to use a different shell, you'll need to modify
that shell's init file (.cshrc, .bashrc, etc.) instead with appropiate commands
to modify the same environment variables.
MacOS. If you customized MacOS to use a different shell, you'll need to
modify that shell's init file (.cshrc, .bashrc, etc.) instead with
appropiate commands to modify the same environment variables.
5. Try running LAMMPS (which might fail, see step 7)
@ -50,10 +50,10 @@ these steps:
lammps-gui ${LAMMPS_BENCH_DIR}/in.rhodo
Depending on the size and resolution of your screen, the fonts may
be too small to read. This can be adjusted by setting the environment
variable QT_FONT_DPI. The default value would be 72, so to increase
the fonts by a third one can add to the .zprofile file the line
Depending on the size and resolution of your screen, the fonts may be too
small to read. This can be adjusted by setting the environment variable
QT_FONT_DPI. The default value would be 72, so to increase the fonts by a
third, one can add to the .zprofile file the line
export QT_FONT_DPI=96
@ -61,9 +61,9 @@ these steps:
7. Give permission to execute the commands (lmp, lammps-gui, msi2lmp, binary2txt, phana, stl_bin2txt)
MacOS will likely block the initial run of the executables, since they
were downloaded from the internet and are missing a known signature from an
identified developer. Go to "Settings" and search for "Security settings". It
should display a message that an executable like "lmp" was blocked. Press
MacOS will likely block the initial run of the executables, since they were
downloaded from the internet and are missing a known signature from an
identified developer. Go to "Settings" and search for "Security settings".
It should display a message that an executable like "lmp" was blocked. Press
"Open anyway", which might prompt you for your admin credentials. Afterwards
"lmp" and the other executables should work as expected.

View File

@ -4,7 +4,7 @@ APP_NAME=lammps-gui
DESTDIR=${PWD}/../LAMMPS_GUI
echo "Delete old files, if they exist"
rm -rf ${DESTDIR} ../LAMMPS-Linux-amd64.tar.gz
rm -rf ${DESTDIR} ../LAMMPS_GUI-Linux-amd64.tar.gz
echo "Create staging area for deployment and populate"
DESTDIR=${DESTDIR} cmake --install . --prefix "/"
@ -69,7 +69,7 @@ do \
done
pushd ..
tar -czvvf LAMMPS-Linux-amd64.tar.gz LAMMPS_GUI
tar -czvvf LAMMPS_GUI-Linux-amd64.tar.gz LAMMPS_GUI
popd
echo "Cleanup dir"

View File

@ -3,7 +3,7 @@
APP_NAME=lammps-gui
echo "Delete old files, if they exist"
rm -f ${APP_NAME}.dmg ${APP_NAME}-rw.dmg LAMMPS-macOS-multiarch.dmg
rm -f ${APP_NAME}.dmg ${APP_NAME}-rw.dmg LAMMPS_GUI-macOS-multiarch.dmg
echo "Create initial dmg file with macdeployqt"
macdeployqt lammps-gui.app -dmg
@ -22,8 +22,8 @@ ln -s /Applications .
mv ${APP_NAME}.app/Contents/Resources/README.txt .
mkdir .background
mv ${APP_NAME}.app/Contents/Resources/LAMMPS_DMG_Background.png .background/background.png
mv ${APP_NAME}.app LAMMPS.app
cd LAMMPS.app/Contents
mv ${APP_NAME}.app LAMMPS_GUI.app
cd LAMMPS_GUI.app/Contents
echo "Attach icons to LAMMPS console and GUI executables"
echo "read 'icns' (-16455) \"Resources/lammps.icns\";" > icon.rsrc
@ -75,7 +75,7 @@ echo '
set statusbar visible to false
set toolbar visible to false
set the bounds to { 100, 40, 868, 640 }
set position of item "'LAMMPS'.app" to { 190, 216 }
set position of item "'LAMMPS_GUI'.app" to { 190, 216 }
set position of item "Applications" to { 576, 216 }
set position of item "README.txt" to { 190, 400 }
end tell
@ -96,12 +96,12 @@ sync
echo "Unmount modified disk image and convert to compressed read-only image"
hdiutil detach "${DEVICE}"
hdiutil convert "${APP_NAME}-rw.dmg" -format UDZO -o "LAMMPS-macOS-multiarch.dmg"
hdiutil convert "${APP_NAME}-rw.dmg" -format UDZO -o "LAMMPS_GUI-macOS-multiarch.dmg"
echo "Attach icon to .dmg file"
echo "read 'icns' (-16455) \"lammps-gui.app/Contents/Resources/lammps.icns\";" > icon.rsrc
Rez -a icon.rsrc -o LAMMPS-macOS-multiarch.dmg
SetFile -a C LAMMPS-macOS-multiarch.dmg
Rez -a icon.rsrc -o LAMMPS_GUI-macOS-multiarch.dmg
SetFile -a C LAMMPS_GUI-macOS-multiarch.dmg
rm icon.rsrc
echo "Delete temporary disk images"

View File

@ -1,26 +1,64 @@
#!/bin/bash -vx
#!/bin/bash
APP_NAME=lammps-gui
DESTDIR=${PWD}/../LAMMPS_GUI
DESTDIR=${PWD}/LAMMPS_GUI
SYSROOT="$1"
echo "Delete old files, if they exist"
rm -rvf ${DESTDIR} LAMMPS-Win10-amd64.zip
rm -rvf ${DESTDIR}/LAMMPS_GUI ${DESTDIR}/LAMMPS-Win10-amd64.zip
echo "Create staging area for deployment and populate"
DESTDIR=${DESTDIR} cmake --install . --prefix "/"
echo "Add required dependencies for Qt"
for dll in Qt5Core.dll Qt5Gui.dll Qt5Widgets.dll
# no static libs needed
rm -rvf ${DESTDIR}/lib
# but the LAMMPS lib
echo "Copying required DLL files"
for dll in $(objdump -p *.exe *.dll | sed -n -e '/DLL Name:/s/^.*DLL Name: *//p' | sort | uniq)
do \
cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/${dll} ${DESTDIR}/bin/
done
for dir in styles platforms imageformats
do \
mkdir -p ${DESTDIR}/${dir}
cp -r /usr/x86_64-w64-mingw32/sys-root/mingw/lib/qt5/plugins/${dir}/*.dll ${DESTDIR}/${dir}
doskip=0
for skip in ADVAPI32 CFGMGR32 GDI32 KERNEL32 MPR NETAPI32 PSAPI SHELL32 USER32 USERENV UxTheme VERSION WS2_32 WSOCK32 d3d11 dwmapi liblammps msvcrt_ole32
do \
test ${dll} = ${skip}.dll && doskip=1
done
test ${doskip} -eq 1 && continue
test -f ${DESTDIR}/bin/${dll} || cp -v ${SYSROOT}/bin/${dll} ${DESTDIR}/bin
done
pushd ..
zip -9rv LAMMPS-Win10-amd64.zip LAMMPS_GUI
popd
exit 0
echo "Copy required Qt plugins"
mkdir -p ${DESTDIR}/qt5plugins
for plugin in imageformats platforms styles
do \
cp -r ${SYSROOT}/lib/qt5/plugins/${plugin} ${DESTDIR}/qt5plugins/
done
echo "Check dependencies of DLL files"
for dll in $(objdump -p ${DESTDIR}/bin/*.dll ${DESTDIR}/qt5plugins/*/*.dll | sed -n -e '/DLL Name:/s/^.*DLL Name: *//p' | sort | uniq)
do \
doskip=0
for skip in ADVAPI32 CFGMGR32 GDI32 KERNEL32 MPR NETAPI32 PSAPI SHELL32 USER32 USERENV UxTheme VERSION WS2_32 WSOCK32 d3d11 dwmapi liblammps msvcrt_ole32
do \
test ${dll} = ${skip}.dll && doskip=1
done
test ${doskip} -eq 1 && continue
test -f ${DESTDIR}/bin/${dll} || cp -v ${SYSROOT}/bin/${dll} ${DESTDIR}/bin
done
for dll in $(objdump -p ${DESTDIR}/bin/*.dll ${DESTDIR}/qt5plugins/*/*.dll | sed -n -e '/DLL Name:/s/^.*DLL Name: *//p' | sort | uniq)
do \
doskip=0
for skip in ADVAPI32 CFGMGR32 GDI32 KERNEL32 MPR NETAPI32 PSAPI SHELL32 USER32 USERENV UxTheme VERSION WS2_32 WSOCK32 d3d11 dwmapi liblammps msvcrt_ole32
do \
test ${dll} = ${skip}.dll && doskip=1
done
test ${doskip} -eq 1 && continue
test -f ${DESTDIR}/bin/${dll} || cp -v ${SYSROOT}/bin/${dll} ${DESTDIR}/bin
done
cat > ${DESTDIR}/bin/qt.conf <<EOF
[Paths]
Plugins = ../qt5plugins
EOF
zip -9rvD LAMMPS-Win10-amd64.zip LAMMPS_GUI

View File

@ -1,7 +1,7 @@
# CMake script to be run post installation to build zipped package
# clean up old zipfile and deployment tree
file(REMOVE LAMMPS-Win10-amd64.zip)
file(REMOVE LAMMPS_GUI-Win10-amd64.zip)
file(REMOVE_RECURSE LAMMPS_GUI)
file(RENAME ${INSTNAME} LAMMPS_GUI)
@ -21,8 +21,15 @@ file(WRITE qtdeploy.bat "@ECHO OFF\r\nset VSCMD_DEBUG=0\r\nCALL ${VC_INIT} x64\r
execute_process(COMMAND cmd.exe /c qtdeploy.bat COMMAND_ECHO STDERR)
file(REMOVE qtdeploy.bat)
# download and uncompress static FFMpeg and gzip binaries
file(DOWNLOAD "https://download.lammps.org/thirdparty/ffmpeg-gzip.zip" ffmpeg-gzip.zip)
file(WRITE unpackzip.ps1 "Expand-Archive -Path ffmpeg-gzip.zip -DestinationPath LAMMPS_GUI")
execute_process(COMMAND powershell -ExecutionPolicy Bypass -File unpackzip.ps1)
file(REMOVE unpackzip.ps1)
file(REMOVE ffmpeg-gzip.zip)
# create zip archive
file(WRITE makearchive.ps1 "Compress-Archive -Path LAMMPS_GUI -CompressionLevel Optimal -DestinationPath LAMMPS-Win10-amd64.zip")
file(WRITE makearchive.ps1 "Compress-Archive -Path LAMMPS_GUI -CompressionLevel Optimal -DestinationPath LAMMPS_GUI-Win10-amd64.zip")
execute_process(COMMAND powershell -ExecutionPolicy Bypass -File makearchive.ps1)
file(REMOVE makearchive.ps1)
file(REMOVE_RECURSE LAMMPS_GUI)

View File

@ -1,6 +1,9 @@
#!/bin/sh
# wrapper for bundled executables
# reset locale to avoid problems with decimal numbers
export LC_ALL=C
BASEDIR=$(dirname "$0")
EXENAME=$(basename "$0")

View File

@ -63,8 +63,6 @@ set(ALL_PACKAGES
MOFFF
MOLECULE
MOLFILE
MPIIO
MSCG
NETCDF
OPENMP
OPT

View File

@ -65,8 +65,6 @@ set(ALL_PACKAGES
MOFFF
MOLECULE
MOLFILE
MPIIO
MSCG
NETCDF
OPENMP
OPT

View File

@ -9,7 +9,6 @@ endforeach()
set(DOWNLOAD_KIM ON CACHE BOOL "" FORCE)
set(DOWNLOAD_MDI ON CACHE BOOL "" FORCE)
set(DOWNLOAD_MSCG ON CACHE BOOL "" FORCE)
set(DOWNLOAD_VORO ON CACHE BOOL "" FORCE)
set(DOWNLOAD_EIGEN3 ON CACHE BOOL "" FORCE)
set(DOWNLOAD_PACE ON CACHE BOOL "" FORCE)

View File

@ -0,0 +1,11 @@
# preset that enables GPU and selects CUDA API
set(PKG_GPU ON CACHE BOOL "Build GPU package" FORCE)
set(GPU_API "cuda" CACHE STRING "APU used by GPU package" FORCE)
set(GPU_PREC "mixed" CACHE STRING "" FORCE)
set(CUDA_NVCC_FLAGS "-allow-unsupported-compiler" CACHE STRING "" FORCE)
set(CUDA_NVCC_FLAGS_DEBUG "-allow-unsupported-compiler" CACHE STRING "" FORCE)
set(CUDA_NVCC_FLAGS_MINSIZEREL "-allow-unsupported-compiler" CACHE STRING "" FORCE)
set(CUDA_NVCC_FLAGS_RELWITHDEBINFO "-allow-unsupported-compiler" CACHE STRING "" FORCE)
set(CUDA_NVCC_FLAGS_RELEASE "-allow-unsupported-compiler" CACHE STRING "" FORCE)

View File

@ -6,6 +6,11 @@ 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)
# If KSPACE is also enabled, use CUFFT for FFTs
set(FFT_KOKKOS "CUFFT" CACHE STRING FORCE)
# hide deprecation warnings temporarily for stable release
set(Kokkos_ENABLE_DEPRECATION_WARNINGS OFF CACHE BOOL "" FORCE)

View File

@ -12,6 +12,9 @@ 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)
# If KSPACE is also enabled, use CUFFT 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)

View File

@ -10,5 +10,3 @@ set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
set(BUILD_MPI FALSE CACHE BOOL "" FORCE)
set(BUILD_SHARED_LIBS FALSE CACHE BOOL "" FORCE)
set(LAMMPS_EXCEPTIONS TRUE CACHE BOOL "" FORCE)

View File

@ -83,7 +83,6 @@ endforeach()
# these two packages require a full MPI implementation
if(BUILD_MPI)
set(PKG_MPIIO ON CACHE BOOL "" FORCE)
set(PKG_LATBOLTZ ON CACHE BOOL "" FORCE)
endif()

View File

@ -24,8 +24,8 @@ set(ALL_PACKAGES
DPD-REACT
DPD-SMOOTH
DRUDE
ELECTRODE
EFF
ELECTRODE
EXTRA-COMPUTE
EXTRA-DUMP
EXTRA-FIX

View File

@ -19,8 +19,6 @@ set(PACKAGES_WITH_LIB
ML-PACE
ML-QUIP
MOLFILE
MPIIO
MSCG
NETCDF
PLUMED
PYTHON

View File

@ -18,11 +18,11 @@ set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)
set(OpenMP_C "icx" CACHE STRING "" FORCE)
set(OpenMP_C_FLAGS "-qopenmp -qopenmp-simd" CACHE STRING "" FORCE)
set(OpenMP_C_FLAGS "-qopenmp;-qopenmp-simd" CACHE STRING "" FORCE)
set(OpenMP_C_LIB_NAMES "omp" CACHE STRING "" FORCE)
set(OpenMP_CXX "icpx" CACHE STRING "" FORCE)
set(OpenMP_CXX_FLAGS "-qopenmp -qopenmp-simd" CACHE STRING "" FORCE)
set(OpenMP_CXX_FLAGS "-qopenmp;-qopenmp-simd" CACHE STRING "" FORCE)
set(OpenMP_CXX_LIB_NAMES "omp" CACHE STRING "" FORCE)
set(OpenMP_Fortran_FLAGS "-qopenmp -qopenmp-simd" CACHE STRING "" FORCE)
set(OpenMP_Fortran_FLAGS "-qopenmp;-qopenmp-simd" CACHE STRING "" FORCE)
set(OpenMP_omp_LIBRARY "libiomp5.so" CACHE PATH "" FORCE)

View File

@ -32,6 +32,7 @@ set(WIN_PACKAGES
INTERLAYER
KSPACE
LEPTON
MACHDYN
MANIFOLD
MANYBODY
MC
@ -45,6 +46,7 @@ set(WIN_PACKAGES
MOLECULE
MOLFILE
OPENMP
OPT
ORIENT
PERI
PHONON

View File

@ -63,6 +63,7 @@ help:
@echo " anchor_check scan for duplicate anchor labels"
@echo " style_check check for complete and consistent style lists"
@echo " package_check check for complete and consistent package lists"
@echo " role_check check for misformatted role keywords"
@echo " spelling spell-check the manual"
# ------------------------------------------
@ -98,6 +99,8 @@ html: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJAX)
env LC_ALL=C grep -n '[^ -~]' $(RSTDIR)/*.rst ;\
env LC_ALL=C grep -n ' :[a-z]\+`' $(RSTDIR)/*.rst ;\
env LC_ALL=C grep -n ' `[^`]\+<[a-z][^`]\+`[^_]' $(RSTDIR)/*.rst ;\
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 ;\
echo "############################################" ;\
deactivate ;\
@ -179,6 +182,8 @@ pdf: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK)
env LC_ALL=C grep -n '[^ -~]' $(RSTDIR)/*.rst ;\
env LC_ALL=C grep -n ' :[a-z]\+`' $(RSTDIR)/*.rst ;\
env LC_ALL=C grep -n ' `[^`]\+<[a-z][^`]\+`[^_]' $(RSTDIR)/*.rst ;\
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 ;\
echo "############################################" ;\
deactivate ;\
@ -227,6 +232,8 @@ char_check :
role_check :
@( env LC_ALL=C grep -n ' :[a-z]\+`' $(RSTDIR)/*.rst && exit 1 || : )
@( 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 || : )
link_check : $(VENV) html
@(\

View File

@ -36,10 +36,10 @@ requests.
MUST be submitted as a pull request to GitHub. All changes to the
"develop" branch must be made exclusively through merging pull requests.
The "release" and "stable" branches, respectively, are only to be
updated upon feature or stable releases based on the associated
tags. Updates to the stable release in between stable releases
updated upon "feature releases" or "stable releases" based on the
associated tags. Updates to the stable release in between stable releases
(for example, back-ported bug fixes) are first merged into the "maintenance"
branch and then into the "stable" branch as update releases.
branch and then into the "stable" branch as "stable update releases".
Pull requests may also be submitted to (long-running) feature branches
created by LAMMPS developers inside the LAMMPS project, if needed. Those
@ -131,7 +131,7 @@ testing -- that the code in the branch "develop" does not get easily
broken. These tests are run after every update to a pull request. More
extensive and time-consuming tests (including regression testing) are
performed after code is merged to the "develop" branch. There are feature
releases of LAMMPS made about every 4-6 weeks at a point, when the LAMMPS
releases of LAMMPS made about every 4-8 weeks at a point, when the LAMMPS
developers feel, that a sufficient number of changes have been included
and all post-merge testing has been successful. These feature releases are
marked with a `patch_<version date>` tag and the "release" branch

View File

@ -16,8 +16,11 @@ clean:
rm -f $(IMGSVG) $(IMGPDF) $(IMGPNG) *~
ifeq ($(HAS_DOT),YES)
$(IMGDIR)/%.png: %.dot
$(IMGDIR)/lammps-classes.png : lammps-classes.dot
dot -Tpng -Kneato -o $@ $<
$(IMGDIR)/%.png: %.dot
dot -Tpng -Kdot -o $@ $<
endif
ifeq ($(HAS_DOT),NO)

View File

@ -0,0 +1,34 @@
// LAMMPS branches and releases
digraph releases {
rankdir="LR";
github [shape="box" label="Pull Requests\non GitHub" height=0.75];
github -> develop [label="Merge commits"];
{
rank = "same";
work [shape="none" label="Development branches:"]
develop [label="'develop' branch" height=0.75];
maintenance [label="'maintenance' branch" height=0.75];
};
{
rank = "same";
upload [shape="none" label="Release branches:"]
release [label="'release' branch" height=0.75];
stable [label="'stable' branch" height=0.75];
};
develop -> release [label="Feature release\n(every 4-8 weeks)"];
release -> stable [label="Stable release\n(once per year)"];
stable -> maintenance [label="Reset on stable release" style="setlinewidth(2)"];
develop -> maintenance [label="Backports of bugfixes" style="dashed"];
maintenance -> stable [label="Updates to stable release"];
{
rank = "same";
tag [shape="none" label="Applied tags:"];
patchtag [shape="box" label="patch_<date>"];
stabletag [shape="box" label="stable_<date>"];
updatetag [shape="box" label="stable_<date>_update<num>"];
};
release -> patchtag [label="feature release" style="dotted"];
stable -> stabletag [label="stable release" style="dotted"];
stable -> updatetag [label="update release" style="dotted"];
}

View File

@ -1,7 +1,7 @@
.TH LAMMPS "1" "2 August 2023" "2023-08-2"
.TH LAMMPS "1" "7 February 2024" "2024-02-07"
.SH NAME
.B LAMMPS
\- Molecular Dynamics Simulator. Version 2 August 2023
\- Molecular Dynamics Simulator. Version 7 February 2024
.SH SYNOPSIS
.B lmp

View File

@ -562,6 +562,9 @@ Bibliography
**(Kumar)**
Kumar and Skinner, J. Phys. Chem. B, 112, 8311 (2008)
**(Lafourcade)**
Lafourcade, Maillet, Denoual, Duval, Allera, Goryaeva, and Marinica, `Comp. Mat. Science, 230, 112534 (2023) <https://doi.org/10.1016/j.commatsci.2023.112534>`_
**(Lamoureux and Roux)**
G.\ Lamoureux, B. Roux, J. Chem. Phys 119, 3025 (2003)

View File

@ -90,7 +90,7 @@ standard. A more detailed discussion of that is below.
directory, or ``make`` from the ``src/STUBS`` dir. If the build
fails, you may need to edit the ``STUBS/Makefile`` for your
platform. The stubs library does not provide MPI/IO functions
required by some LAMMPS packages, e.g. ``MPIIO`` or ``LATBOLTZ``,
required by some LAMMPS packages, e.g. ``LATBOLTZ``,
and thus is not compatible with those packages.
.. note::
@ -128,14 +128,13 @@ and adds vectorization support when compiled with compatible compilers,
in particular the Intel compilers on top of OpenMP. Also, the ``KOKKOS``
package can be compiled to include OpenMP threading.
In addition, there are a few commands in LAMMPS that have native
OpenMP support included as well. These are commands in the ``MPIIO``,
``ML-SNAP``, ``DIFFRACTION``, and ``DPD-REACT`` packages.
Furthermore, some packages support OpenMP threading indirectly through
the libraries they interface to: e.g. ``KSPACE``, and ``COLVARS``.
See the :doc:`Packages details <Packages_details>` page for more info
on these packages, and the pages for their respective commands for
OpenMP threading info.
In addition, there are a few commands in LAMMPS that have native OpenMP
support included as well. These are commands in the ``ML-SNAP``,
``DIFFRACTION``, and ``DPD-REACT`` packages. Furthermore, some packages
support OpenMP threading indirectly through the libraries they interface
to: e.g. ``KSPACE``, and ``COLVARS``. See the :doc:`Packages details
<Packages_details>` page for more info on these packages, and the pages
for their respective commands for OpenMP threading info.
For CMake, if you use ``BUILD_OMP=yes``, you can use these packages
and turn on their native OpenMP support and turn on their native OpenMP
@ -489,8 +488,9 @@ using CMake or Make.
.. code-block:: bash
-D BUILD_TOOLS=value # yes or no (default)
-D BUILD_LAMMPS_SHELL=value # yes or no (default)
-D BUILD_TOOLS=value # yes or no (default). Build binary2txt, chain.x, micelle2d.x, msi2lmp, phana, stl_bin2txt
-D BUILD_LAMMPS_SHELL=value # yes or no (default). Build lammps-shell
-D BUILD_LAMMPS_GUI=value # yes or no (default). Build lammps-gui
The generated binaries will also become part of the LAMMPS installation
(see below).
@ -504,7 +504,6 @@ using CMake or Make.
make binary2txt # build only binary2txt tool
make chain # build only chain tool
make micelle2d # build only micelle2d tool
make thermo_extract # build only thermo_extract tool
cd lammps/tools/lammps-shell
make # build LAMMPS shell

View File

@ -16,8 +16,7 @@ environments is on a :doc:`separate page <Howto_cmake>`.
.. note::
LAMMPS currently requires that CMake version 3.10 or later is available;
version 3.12 or later is preferred.
LAMMPS currently requires that CMake version 3.16 or later is available.
.. warning::
@ -34,19 +33,18 @@ Advantages of using CMake
^^^^^^^^^^^^^^^^^^^^^^^^^
CMake is an alternative to compiling LAMMPS in the traditional way
through :doc:`(manually customized) makefiles <Build_make>` and a recent
addition to LAMMPS thanks to the efforts of Christoph Junghans (LANL)
and Richard Berger (Temple U). Using CMake has multiple advantages that
are specifically helpful for people with limited experience in compiling
software or for people that want to modify or extend LAMMPS.
through :doc:`(manually customized) makefiles <Build_make>`. Using
CMake has multiple advantages that are specifically helpful for
people with limited experience in compiling software or for people
that want to modify or extend LAMMPS.
- CMake can detect available hardware, tools, features, and libraries
and adapt the LAMMPS default build configuration accordingly.
- CMake can generate files for different build tools and integrated
development environments (IDE).
- CMake supports customization of settings with a command line, text
mode, or graphical user interface. No knowledge of file formats or
complex command line syntax is required.
mode, or graphical user interface. No manual editing of files,
knowledge of file formats or complex command line syntax is required.
- All enabled components are compiled in a single build operation.
- Automated dependency tracking for all files and configuration options.
- Support for true out-of-source compilation. Multiple configurations
@ -179,13 +177,13 @@ configuration is selected with the *-C* flag:
ctest -C Debug
The CMake scripts in LAMMPS have basic support for being compiled using a
multi-config build system, but not all of it has been ported. This is in
particular applicable to compiling packages that require additional libraries
that would be downloaded and compiled by CMake. The "windows" preset file
tries to keep track of which packages can be compiled natively with the
MSVC compilers out-of-the box. Not all of those external libraries are
portable to Windows, either.
The CMake scripts in LAMMPS have basic support for being compiled using
a multi-config build system, but not all of it has been ported. This is
in particular applicable to compiling packages that require additional
libraries that would be downloaded and compiled by CMake. The
``windows.cmake`` preset file tries to keep track of which packages can
be compiled natively with the MSVC compilers out-of-the box. Not all of
the external libraries are portable to Windows, either.
Installing CMake

View File

@ -122,32 +122,39 @@ Code Coverage and Unit Testing (CMake only)
-------------------------------------------
The LAMMPS code is subject to multiple levels of automated testing
during development: integration testing (i.e. whether the code compiles
on various platforms and with a variety of settings), unit testing
(i.e. whether certain individual parts of the code produce the expected
results for given inputs), run testing (whether selected complete input
decks run without crashing for multiple configurations), and regression
testing (i.e. whether selected input examples reproduce the same
results over a given number of steps and operations within a given
error margin). The status of this automated testing can be viewed on
`https://ci.lammps.org <https://ci.lammps.org>`_.
during development:
- Integration testing (i.e. whether the code compiles
on various platforms and with a variety of compilers and settings),
- Unit testing (i.e. whether certain functions or classes of the code
produce the expected results for given inputs),
- Run testing (i.e. whether selected input decks can run to completion
without crashing for multiple configurations),
- Regression testing (i.e. whether selected input examples reproduce the
same results over a given number of steps and operations within a
given error margin).
The status of this automated testing can be viewed on `https://ci.lammps.org
<https://ci.lammps.org>`_.
The scripts and inputs for integration, run, and regression testing
are maintained in a
`separate repository <https://github.com/lammps/lammps-testing>`_
of the LAMMPS project on GitHub.
of the LAMMPS project on GitHub. A few tests are also run as GitHub
Actions and their configuration files are in the ``.github/workflows/``
folder of the LAMMPS git tree.
The unit testing facility is integrated into the CMake build process
of the LAMMPS source code distribution itself. It can be enabled by
The unit testing facility is integrated into the CMake build process of
the LAMMPS source code distribution itself. It can be enabled by
setting ``-D ENABLE_TESTING=on`` during the CMake configuration step.
It requires the `YAML <https://pyyaml.org/>`_ library and development
headers (if those are not found locally a recent version will be
downloaded and compiled along with LAMMPS and the test program) to
compile and will download and compile a specific recent version of the
`Googletest <https://github.com/google/googletest/>`_ C++ test framework
for implementing the tests.
It requires the `YAML <https://pyyaml.org/>`_ library and matching
development headers to compile (if those are not found locally a recent
version of that library will be downloaded and compiled along with
LAMMPS and the test programs) and will download and compile a specific
version of the `GoogleTest <https://github.com/google/googletest/>`_ C++
test framework that is used to implement the tests.
.. admonition:: Software version requirements for testing
.. admonition:: Software version and LAMMPS configuration requirements
:class: note
The compiler and library version requirements for the testing
@ -155,7 +162,7 @@ for implementing the tests.
example the default GNU C++ and Fortran compilers of RHEL/CentOS 7.x
(version 4.8.x) are not sufficient. The CMake configuration will try
to detect incompatible versions and either skip incompatible tests or
stop with an error. Also the number of tests will depend on
stop with an error. Also the number of available tests will depend on
installed LAMMPS packages, development environment, operating system,
and configuration settings.
@ -234,12 +241,31 @@ will be skipped if prerequisite features are not available in LAMMPS.
time. Preference is given to parts of the code base that are easy to
test or commonly used.
Tests for styles of the same kind of style (e.g. pair styles or bond
styles) are performed with the same test executable using different
input files in YAML format. So to add a test for another style of the
same kind it may be sufficient to add a suitable YAML file.
:doc:`Detailed instructions for adding tests <Developer_unittest>` are
provided in the Programmer Guide part of the manual.
Tests as shown by the ``ctest`` program are command lines defined in the
``CMakeLists.txt`` files in the ``unittest`` directory tree. A few
tests simply execute LAMMPS with specific command line flags and check
the output to the screen for expected content. A large number of unit
tests are special tests programs using the `GoogleTest framework
<https://github.com/google/googletest/>`_ and linked to the LAMMPS
library that test individual functions or create a LAMMPS class
instance, execute one or more commands and check data inside the LAMMPS
class hierarchy. There are also tests for the C-library, Fortran, and
Python module interfaces to LAMMPS. The Python tests use the Python
"unittest" module in a similar fashion than the others use `GoogleTest`.
These special test programs are structured to perform multiple
individual tests internally and each of those contains several checks
(aka assertions) for internal data being changed as expected.
Tests for force computing or modifying styles (e.g. styles for non-bonded
and bonded interactions and selected fixes) are run by using a more generic
test program that reads its input from files in YAML format. The YAML file
provides the information on how to customized the test program to test
a specific style and - if needed - with specific settings.
To add a test for another, similar style (e.g. a new pair style) it is
usually sufficient to add a suitable YAML file. :doc:`Detailed
instructions for adding tests <Developer_unittest>` are provided in the
Programmer Guide part of the manual. A description of what happens
during the tests is given below.
Unit tests for force styles
^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -255,16 +281,18 @@ A test run is then a a collection multiple individual test runs each
with many comparisons to reference results based on template input
files, individual command settings, relative error margins, and
reference data stored in a YAML format file with ``.yaml``
suffix. Currently the programs ``test_pair_style``, ``test_bond_style``, and
``test_angle_style`` are implemented. They will compare forces, energies and
(global) stress for all atoms after a ``run 0`` calculation and after a
few steps of MD with :doc:`fix nve <fix_nve>`, each in multiple variants
with different settings and also for multiple accelerated styles. If a
prerequisite style or package is missing, the individual tests are
skipped. All tests will be executed on a single MPI process, so using
the CMake option ``-D BUILD_MPI=off`` can significantly speed up testing,
since this will skip the MPI initialization for each test run.
Below is an example command and output:
suffix. Currently the programs ``test_pair_style``, ``test_bond_style``,
``test_angle_style``, ``test_dihedral_style``, and
``test_improper_style`` are implemented. They will compare forces,
energies and (global) stress for all atoms after a ``run 0`` calculation
and after a few steps of MD with :doc:`fix nve <fix_nve>`, each in
multiple variants with different settings and also for multiple
accelerated styles. If a prerequisite style or package is missing, the
individual tests are skipped. All force style tests will be executed on
a single MPI process, so using the CMake option ``-D BUILD_MPI=off`` can
significantly speed up testing, since this will skip the MPI
initialization for each test run. Below is an example command and
output:
.. code-block:: console
@ -416,15 +444,16 @@ When compiling LAMMPS with enabled tests, most test executables will
need to be linked against the LAMMPS library. Since this can be a very
large library with many C++ objects when many packages are enabled, link
times can become very long on machines that use the GNU BFD linker (e.g.
Linux systems). Alternatives like the ``lld`` linker of the LLVM project
or the ``gold`` linker available with GNU binutils can speed up this step
substantially. CMake will by default test if any of the two can be
enabled and use it when ``ENABLE_TESTING`` is active. It can also be
selected manually through the ``CMAKE_CUSTOM_LINKER`` CMake variable.
Allowed values are ``lld``, ``gold``, ``bfd``, or ``default``. The
``default`` option will use the system default linker otherwise, the
linker is chosen explicitly. This option is only available for the
GNU or Clang C++ compiler.
Linux systems). Alternatives like the ``mold`` linker, the ``lld``
linker of the LLVM project, or the ``gold`` linker available with GNU
binutils can speed up this step substantially (in this order). CMake
will by default test if any of the three can be enabled and use it when
``ENABLE_TESTING`` is active. It can also be selected manually through
the ``CMAKE_CUSTOM_LINKER`` CMake variable. Allowed values are
``mold``, ``lld``, ``gold``, ``bfd``, or ``default``. The ``default``
option will use the system default linker otherwise, the linker is
chosen explicitly. This option is only available for the GNU or Clang
C++ compilers.
Tests for other components and utility functions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -518,6 +547,8 @@ The following options are available.
make fix-errordocs # remove error docs in header files
make check-permissions # search for files with permissions issues
make fix-permissions # correct permissions issues in files
make check-docs # search for several issues in the manual
make check-version # list files with pending release version tags
make check # run all check targets from above
These should help to make source and documentation files conforming

View File

@ -52,7 +52,6 @@ This is the list of packages that may require additional steps.
* :ref:`ML-POD <ml-pod>`
* :ref:`ML-QUIP <ml-quip>`
* :ref:`MOLFILE <molfile>`
* :ref:`MSCG <mscg>`
* :ref:`NETCDF <netcdf>`
* :ref:`OPENMP <openmp>`
* :ref:`OPT <opt>`
@ -627,18 +626,24 @@ They must be specified in uppercase.
* - HOPPER90
- GPU
- NVIDIA Hopper generation CC 9.0 GPU
* - VEGA900
* - AMD_GFX906
- GPU
- AMD GPU MI25 GFX900
* - VEGA906
- AMD GPU MI50/MI60
* - AMD_GFX908
- GPU
- AMD GPU MI50/MI60 GFX906
* - VEGA908
- AMD GPU MI100
* - AMD_GFX90A
- GPU
- AMD GPU MI100 GFX908
* - VEGA90A
- AMD GPU MI200
* - AMD_GFX942
- GPU
- AMD GPU MI200 GFX90A
- AMD GPU MI300
* - AMD_GFX1030
- GPU
- AMD GPU V620/W6800
* - AMD_GFX1100
- GPU
- AMD GPU RX7900XTX
* - INTEL_GEN
- GPU
- SPIR64-based devices, e.g. Intel GPUs, using JIT
@ -661,7 +666,7 @@ They must be specified in uppercase.
- GPU
- Intel GPU Ponte Vecchio
This list was last updated for version 3.7.1 of the Kokkos library.
This list was last updated for version 4.2 of the Kokkos library.
.. tabs::
@ -717,9 +722,10 @@ This list was last updated for version 3.7.1 of the Kokkos library.
``cmake/presets`` folder, ``kokkos-serial.cmake``,
``kokkos-openmp.cmake``, ``kokkos-cuda.cmake``,
``kokkos-hip.cmake``, and ``kokkos-sycl.cmake``. They will enable
the KOKKOS package and enable some hardware choice. So to compile
with CUDA device parallelization (for GPUs with CC 5.0 and up)
with some common packages enabled, you can do the following:
the KOKKOS package and enable some hardware choices. For GPU
support those preset files must be customized to match the
hardware used. So to compile with CUDA device parallelization with
some common packages enabled, you can do the following:
.. code-block:: bash
@ -881,6 +887,50 @@ included in the LAMMPS source distribution in the ``lib/lepton`` folder.
----------
.. _machdyn:
MACHDYN package
-------------------------------
To build with this package, you must download the Eigen3 library.
Eigen3 is a template library, so you do not need to build it.
.. tabs::
.. tab:: CMake build
.. code-block:: bash
-D DOWNLOAD_EIGEN3 # download Eigen3, value = no (default) or yes
-D EIGEN3_INCLUDE_DIR=path # path to Eigen library (only needed if a custom location)
If ``DOWNLOAD_EIGEN3`` is set, the Eigen3 library will be
downloaded and inside the CMake build directory. If the Eigen3
library is already on your system (in a location where CMake
cannot find it), set ``EIGEN3_INCLUDE_DIR`` to the directory the
``Eigen3`` include file is in.
.. tab:: Traditional make
You can download the Eigen3 library manually if you prefer; follow
the instructions in ``lib/machdyn/README``. You can also do it in one
step from the ``lammps/src`` dir, using a command like these,
which simply invokes the ``lib/machdyn/Install.py`` script with the
specified args:
.. code-block:: bash
make lib-machdyn # print help message
make lib-machdyn args="-b" # download to lib/machdyn/eigen3
make lib-machdyn args="-p /usr/include/eigen3" # use existing Eigen installation in /usr/include/eigen3
Note that a symbolic (soft) link named ``includelink`` is created
in ``lib/machdyn`` to point to the Eigen dir. When LAMMPS builds it
will use this link. You should not need to edit the
``lib/machdyn/Makefile.lammps`` file.
----------
.. _mliap:
ML-IAP package
@ -931,59 +981,6 @@ Python version 3.6 or later.
----------
.. _mscg:
MSCG package
-----------------------
To build with this package, you must download and build the MS-CG
library. Building the MS-CG library requires that the GSL
(GNU Scientific Library) headers and libraries are installed on your
machine. See the ``lib/mscg/README`` and ``MSCG/Install`` files for
more details.
.. tabs::
.. tab:: CMake build
.. code-block:: bash
-D DOWNLOAD_MSCG=value # download MSCG for build, value = no (default) or yes
-D MSCG_LIBRARY=path # MSCG library file (only needed if a custom location)
-D MSCG_INCLUDE_DIR=path # MSCG include directory (only needed if a custom location)
If ``DOWNLOAD_MSCG`` is set, the MSCG library will be downloaded
and built inside the CMake build directory. If the MSCG library
is already on your system (in a location CMake cannot find it),
``MSCG_LIBRARY`` is the filename (plus path) of the MSCG library
file, not the directory the library file is in.
``MSCG_INCLUDE_DIR`` is the directory the MSCG include file is in.
.. tab:: Traditional make
You can download and build the MS-CG library manually if you
prefer; follow the instructions in ``lib/mscg/README``\ . You can
also do it in one step from the ``lammps/src`` dir, using a
command like these, which simply invokes the
``lib/mscg/Install.py`` script with the specified args:
.. code-block:: bash
make lib-mscg # print help message
make lib-mscg args="-b -m serial" # download and build in lib/mscg/MSCG-release-master
# with the settings compatible with "make serial"
make lib-mscg args="-b -m mpi" # download and build in lib/mscg/MSCG-release-master
# with the settings compatible with "make mpi"
make lib-mscg args="-p /usr/local/mscg-release" # use the existing MS-CG installation in /usr/local/mscg-release
Note that 2 symbolic (soft) links, ``includelink`` and ``liblink``,
will be created in ``lib/mscg`` to point to the MS-CG
``src/installation`` dir. When LAMMPS is built in src it will use
these links. You should not need to edit the
``lib/mscg/Makefile.lammps`` file.
----------
.. _opt:
OPT package
@ -1059,12 +1056,12 @@ additional details.
.. code-block:: bash
-D PYTHON_EXECUTABLE=path # path to Python executable to use
-D Python_EXECUTABLE=path # path to Python executable to use
Without this setting, CMake will guess the default Python version
on your system. To use a different Python version, you can either
create a virtualenv, activate it and then run cmake. Or you can
set the PYTHON_EXECUTABLE variable to specify which Python
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.
@ -1479,6 +1476,55 @@ ML-POD package
----------
.. _ml-quip:
ML-QUIP package
---------------------------------
To build with this package, you must download and build the QUIP
library. It can be obtained from GitHub. For support of GAP
potentials, additional files with specific licensing conditions need
to be downloaded and configured. The automatic download will from
within CMake will download the non-commercial use version.
.. tabs::
.. tab:: CMake build
.. code-block:: bash
-D DOWNLOAD_QUIP=value # download QUIP library for build, value = no (default) or yes
-D QUIP_LIBRARY=path # path to libquip.a (only needed if a custom location)
-D USE_INTERNAL_LINALG=value # Use the internal linear algebra library instead of LAPACK
# value = no (default) or yes
CMake will try to download and build the QUIP library from GitHub,
if it is not found on the local machine. This requires to have git
installed. It will use the same compilers and flags as used for
compiling LAMMPS. Currently this is only supported for the GNU
and the Intel compilers. Set the ``QUIP_LIBRARY`` variable if you
want to use a previously compiled and installed QUIP library and
CMake cannot find it.
The QUIP library requires LAPACK (and BLAS) and CMake can identify
their locations and pass that info to the QUIP build script. But
on some systems this triggers a (current) limitation of CMake and
the configuration will fail. Try enabling ``USE_INTERNAL_LINALG`` in
those cases to use the bundled linear algebra library and work around
the limitation.
.. tab:: Traditional make
The download/build procedure for the QUIP library, described in
``lib/quip/README`` file requires setting two environment
variables, ``QUIP_ROOT`` and ``QUIP_ARCH``. These are accessed by
the ``lib/quip/Makefile.lammps`` file which is used when you
compile and link LAMMPS with this package. You should only need
to edit ``Makefile.lammps`` if the LAMMPS build can not use its
settings to successfully build on your system.
----------
.. _plumed:
PLUMED package
@ -2000,55 +2046,6 @@ verified to work in February 2020 with Quantum Espresso versions 6.3 to
----------
.. _ml-quip:
ML-QUIP package
---------------------------------
To build with this package, you must download and build the QUIP
library. It can be obtained from GitHub. For support of GAP
potentials, additional files with specific licensing conditions need
to be downloaded and configured. The automatic download will from
within CMake will download the non-commercial use version.
.. tabs::
.. tab:: CMake build
.. code-block:: bash
-D DOWNLOAD_QUIP=value # download QUIP library for build, value = no (default) or yes
-D QUIP_LIBRARY=path # path to libquip.a (only needed if a custom location)
-D USE_INTERNAL_LINALG=value # Use the internal linear algebra library instead of LAPACK
# value = no (default) or yes
CMake will try to download and build the QUIP library from GitHub,
if it is not found on the local machine. This requires to have git
installed. It will use the same compilers and flags as used for
compiling LAMMPS. Currently this is only supported for the GNU
and the Intel compilers. Set the ``QUIP_LIBRARY`` variable if you
want to use a previously compiled and installed QUIP library and
CMake cannot find it.
The QUIP library requires LAPACK (and BLAS) and CMake can identify
their locations and pass that info to the QUIP build script. But
on some systems this triggers a (current) limitation of CMake and
the configuration will fail. Try enabling ``USE_INTERNAL_LINALG`` in
those cases to use the bundled linear algebra library and work around
the limitation.
.. tab:: Traditional make
The download/build procedure for the QUIP library, described in
``lib/quip/README`` file requires setting two environment
variables, ``QUIP_ROOT`` and ``QUIP_ARCH``. These are accessed by
the ``lib/quip/Makefile.lammps`` file which is used when you
compile and link LAMMPS with this package. You should only need
to edit ``Makefile.lammps`` if the LAMMPS build can not use its
settings to successfully build on your system.
----------
.. _scafacos:
SCAFACOS package
@ -2096,50 +2093,6 @@ To build with this package, you must download and build the
----------
.. _machdyn:
MACHDYN package
-------------------------------
To build with this package, you must download the Eigen3 library.
Eigen3 is a template library, so you do not need to build it.
.. tabs::
.. tab:: CMake build
.. code-block:: bash
-D DOWNLOAD_EIGEN3 # download Eigen3, value = no (default) or yes
-D EIGEN3_INCLUDE_DIR=path # path to Eigen library (only needed if a custom location)
If ``DOWNLOAD_EIGEN3`` is set, the Eigen3 library will be
downloaded and inside the CMake build directory. If the Eigen3
library is already on your system (in a location where CMake
cannot find it), set ``EIGEN3_INCLUDE_DIR`` to the directory the
``Eigen3`` include file is in.
.. tab:: Traditional make
You can download the Eigen3 library manually if you prefer; follow
the instructions in ``lib/smd/README``. You can also do it in one
step from the ``lammps/src`` dir, using a command like these,
which simply invokes the ``lib/smd/Install.py`` script with the
specified args:
.. code-block:: bash
make lib-smd # print help message
make lib-smd args="-b" # download to lib/smd/eigen3
make lib-smd args="-p /usr/include/eigen3" # use existing Eigen installation in /usr/include/eigen3
Note that a symbolic (soft) link named ``includelink`` is created
in ``lib/smd`` to point to the Eigen dir. When LAMMPS builds it
will use this link. You should not need to edit the
``lib/smd/Makefile.lammps`` file.
----------
.. _vtk:
VTK package

View File

@ -55,7 +55,6 @@ packages:
* :ref:`ML-POD <ml-pod>`
* :ref:`ML-QUIP <ml-quip>`
* :ref:`MOLFILE <molfile>`
* :ref:`MSCG <mscg>`
* :ref:`NETCDF <netcdf>`
* :ref:`OPENMP <openmp>`
* :ref:`OPT <opt>`
@ -183,6 +182,7 @@ make a copy of one of them and modify it to suit your needs.
cmake -C ../cmake/presets/all_on.cmake [OPTIONS] ../cmake # enable all packages
cmake -C ../cmake/presets/all_off.cmake [OPTIONS] ../cmake # disable all packages
mingw64-cmake -C ../cmake/presets/mingw-cross.cmake [OPTIONS] ../cmake # compile with MinGW cross-compilers
cmake -C ../cmake/presets/macos-multiarch.cmake [OPTIONS] ../cmake # compile serial multi-arch binaries on macOS
Presets that have names starting with "windows" are specifically for
compiling LAMMPS :doc:`natively on Windows <Build_windows>` and

View File

@ -44,6 +44,14 @@ require use of an FFT library to compute 1d FFTs. The KISS FFT
library is included with LAMMPS, but other libraries can be faster.
LAMMPS can use them if they are available on your system.
.. versionadded:: 7Feb2024
Alternatively, LAMMPS can use the `heFFTe
<https://icl-utk-edu.github.io/heffte/>`_ library for the MPI
communication algorithms, which comes with many optimizations for
special cases, e.g. leveraging available 2D and 3D FFTs in the back end
libraries and better pipelining for packing and communication.
.. tabs::
.. tab:: CMake build
@ -51,14 +59,19 @@ LAMMPS can use them if they are available on your system.
.. code-block:: bash
-D FFT=value # FFTW3 or MKL or KISS, default is FFTW3 if found, else KISS
-D FFT_KOKKOS=value # FFTW3 or MKL or KISS or CUFFT or HIPFFT, default is KISS
-D FFT_SINGLE=value # yes or no (default), no = double precision
-D FFT_PACK=value # array (default) or pointer or memcpy
-D FFT_USE_HEFFTE=value # yes or no (default), yes links to heFFTe
.. note::
The values for the FFT variable must be in upper-case. This is
an exception to the rule that all CMake variables can be specified
with lower-case values.
When the Kokkos variant of a package is compiled and selected at run time,
the FFT library selected by the FFT_KOKKOS variable applies. Otherwise,
the FFT library selected by the FFT variable applies.
The same FFT settings apply to both. FFT_KOKKOS must be compatible with the
Kokkos back end - for example, when using the CUDA back end of Kokkos,
you must use either CUFFT or KISS.
Usually these settings are all that is needed. If FFTW3 is
selected, then CMake will try to detect, if threaded FFTW
@ -76,6 +89,16 @@ LAMMPS can use them if they are available on your system.
-D MKL_INCLUDE_DIR=path # ditto for Intel MKL library
-D FFT_MKL_THREADS=on # enable using threaded FFTs with MKL libraries
-D MKL_LIBRARY=path # path to MKL libraries
-D FFT_HEFFTE_BACKEND=value # FFTW or MKL or empty/undefined for the stock heFFTe back end
-D Heffte_ROOT=path # path to an existing heFFTe installation
.. note::
heFFTe comes with a builtin (= stock) back end for FFTs, i.e. a
default internal FFT implementation; however, this stock back
end is intended for testing purposes only and is not optimized
for production runs.
.. tab:: Traditional make
@ -87,6 +110,8 @@ LAMMPS can use them if they are available on your system.
FFT_INC = -DFFT_FFTW3 # -DFFT_FFTW3, -DFFT_FFTW (same as -DFFT_FFTW3), -DFFT_MKL, or -DFFT_KISS
# default is KISS if not specified
FFT_INC = -DFFT_KOKKOS_CUFFT # -DFFT_KOKKOS_{FFTW,FFTW3,MKL,CUFFT,HIPFFT,KISS}
# default is KISS if not specified
FFT_INC = -DFFT_SINGLE # do not specify for double precision
FFT_INC = -DFFT_FFTW_THREADS # enable using threaded FFTW3 libraries
FFT_INC = -DFFT_MKL_THREADS # enable using threaded FFTs with MKL libraries
@ -97,6 +122,8 @@ LAMMPS can use them if they are available on your system.
FFT_INC = -I/usr/local/include
FFT_PATH = -L/usr/local/lib
FFT_LIB = -lhipfft # hipFFT either precision
FFT_LIB = -lcufft # cuFFT either precision
FFT_LIB = -lfftw3 # FFTW3 double precision
FFT_LIB = -lfftw3 -lfftw3_omp # FFTW3 double precision with threads (needs -DFFT_FFTW_THREADS)
FFT_LIB = -lfftw3 -lfftw3f # FFTW3 single precision
@ -111,6 +138,24 @@ LAMMPS can use them if they are available on your system.
files in its default search path. You must specify ``FFT_LIB``
with the appropriate FFT libraries to include in the link.
Traditional make can also link to heFFTe using an existing installation
.. code-block:: make
include <path-to-heffte-installation>/share/heffte/HeffteMakefile.in
FFT_INC = -DFFT_HEFFTE -DFFT_HEFFTE_FFTW $(heffte_include)
FFT_PATH =
FFT_LIB = $(heffte_link) $(heffte_libs)
The heFFTe install path will contain `HeffteMakefile.in`.
which will define the `heffte_` include variables needed to link to heFFTe from
an external project using traditional make.
The `-DFFT_HEFFTE` is required to switch to using heFFTe, while the optional `-DFFT_HEFFTE_FFTW`
selects the desired heFFTe back end, e.g., `-DFFT_HEFFTE_FFTW` or `-DFFT_HEFFTE_MKL`,
omitting the variable will default to the `stock` back end.
The heFFTe `stock` back end is intended to be used for testing and debugging,
but is not performance optimized for large scale production runs.
The `KISS FFT library <https://github.com/mborgerding/kissfft>`_ is
included in the LAMMPS distribution. It is portable across all
platforms. Depending on the size of the FFTs and the number of
@ -141,6 +186,11 @@ The Intel MKL math library is part of the Intel compiler suite. It
can be used with the Intel or GNU compiler (see the ``FFT_LIB`` setting
above).
The cuFFT and hipFFT FFT libraries are packaged with NVIDIA's CUDA and
AMD's HIP installations, respectively. These FFT libraries require the
Kokkos acceleration package to be enabled and the Kokkos back end to be
GPU-resident (i.e., HIP or CUDA).
Performing 3d FFTs in parallel can be time-consuming due to data access
and required communication. This cost can be reduced by performing
single-precision FFTs instead of double precision. Single precision
@ -152,11 +202,11 @@ generally less than the difference in precision. Using the
``-DFFT_SINGLE`` setting trades off a little accuracy for reduced memory
use and parallel communication costs for transposing 3d FFT data.
When using ``-DFFT_SINGLE`` with FFTW3, you may need to build the FFTW
library a second time with support for single-precision.
When using ``-DFFT_SINGLE`` with FFTW3, you may need to ensure that
the FFTW3 installation includes support for single-precision.
For FFTW3, do the following, which should produce the additional
library ``libfftw3f.a`` or ``libfftw3f.so``\ .
When compiler FFTW3 from source, you can do the following, which should
produce the additional libraries ``libfftw3f.a`` and/or ``libfftw3f.so``\ .
.. code-block:: bash
@ -170,6 +220,16 @@ Depending on the machine, the size of the FFT grid, the number of
processors used, one option may be slightly faster. The default is
ARRAY mode.
When using ``-DFFT_HEFFTE`` CMake will first look for an existing
install with hints provided by ``-DHeffte_ROOT``, as recommended by the
CMake standard and note that the name is case sensitive. If CMake cannot
find a heFFTe installation with the correct back end (e.g., FFTW or
MKL), it will attempt to download and build the library automatically.
In this case, LAMMPS CMake will also accept all heFFTe specific
variables listed in the `heFFTe documentation
<https://mkstoyanov.bitbucket.io/heffte/md_doxygen_installation.html>`_
and those variables will be passed into the heFFTe build.
----------
.. _size:
@ -459,27 +519,13 @@ those systems:
.. _exceptions:
Exception handling when using LAMMPS as a library
------------------------------------------------------------------
-------------------------------------------------
This setting is useful when external codes drive LAMMPS as a library.
With this option enabled, LAMMPS errors do not kill the calling code.
Instead, the call stack is unwound and control returns to the caller,
e.g. to Python. Of course, the calling code has to be set up to
*catch* exceptions thrown from within LAMMPS.
.. tabs::
.. tab:: CMake build
.. code-block:: bash
-D LAMMPS_EXCEPTIONS=value # yes or no (default)
.. tab:: Traditional make
.. code-block:: make
LMP_INC = -DLAMMPS_EXCEPTIONS <other LMP_INC settings>
LAMMPS errors do not kill the calling code, but throw an exception. In
the C-library interface, the call stack is unwound and control returns
to the caller, e.g. to Python or a code that is coupled to LAMMPS. The
error status can then be queried. When using C++ directly, the calling
code has to be set up to *catch* exceptions thrown from within LAMMPS.
.. note::

View File

@ -124,7 +124,7 @@ OPT.
*
*
* :doc:`charmm (iko) <dihedral_charmm>`
* :doc:`charmmfsw <dihedral_charmm>`
* :doc:`charmmfsw (k) <dihedral_charmm>`
* :doc:`class2 (ko) <dihedral_class2>`
* :doc:`cosine/shift/exp (o) <dihedral_cosine_shift_exp>`
* :doc:`fourier (io) <dihedral_fourier>`

View File

@ -91,6 +91,7 @@ KOKKOS, o = OPENMP, t = OPT.
* :doc:`ke/atom/eff <compute_ke_atom_eff>`
* :doc:`ke/eff <compute_ke_eff>`
* :doc:`ke/rigid <compute_ke_rigid>`
* :doc:`composition/atom (k) <compute_composition_atom>`
* :doc:`mliap <compute_mliap>`
* :doc:`momentum <compute_momentum>`
* :doc:`msd <compute_msd>`
@ -99,6 +100,7 @@ KOKKOS, o = OPENMP, t = OPT.
* :doc:`nbond/atom <compute_nbond_atom>`
* :doc:`omega/chunk <compute_omega_chunk>`
* :doc:`orientorder/atom (k) <compute_orientorder_atom>`
* :doc:`pace <compute_pace>`
* :doc:`pair <compute_pair>`
* :doc:`pair/local <compute_pair_local>`
* :doc:`pe <compute_pe>`
@ -114,12 +116,15 @@ KOKKOS, o = OPENMP, t = OPT.
* :doc:`property/grid <compute_property_grid>`
* :doc:`property/local <compute_property_local>`
* :doc:`ptm/atom <compute_ptm_atom>`
* :doc:`rattlers/atom <compute_rattlers_atom>`
* :doc:`rdf <compute_rdf>`
* :doc:`reaxff/atom (k) <compute_reaxff_atom>`
* :doc:`reduce <compute_reduce>`
* :doc:`reduce/chunk <compute_reduce_chunk>`
* :doc:`reduce/region <compute_reduce>`
* :doc:`rigid/local <compute_rigid_local>`
* :doc:`saed <compute_saed>`
* :doc:`slcsa/atom <compute_slcsa_atom>`
* :doc:`slice <compute_slice>`
* :doc:`smd/contact/radius <compute_smd_contact_radius>`
* :doc:`smd/damage <compute_smd_damage>`

View File

@ -23,17 +23,14 @@ An alphabetic list of all LAMMPS :doc:`dump <dump>` commands.
* :doc:`atom <dump>`
* :doc:`atom/adios <dump_adios>`
* :doc:`atom/gz <dump>`
* :doc:`atom/mpiio <dump>`
* :doc:`atom/zstd <dump>`
* :doc:`cfg <dump>`
* :doc:`cfg/gz <dump>`
* :doc:`cfg/mpiio <dump>`
* :doc:`cfg/uef <dump_cfg_uef>`
* :doc:`cfg/zstd <dump>`
* :doc:`custom <dump>`
* :doc:`custom/adios <dump_adios>`
* :doc:`custom/gz <dump>`
* :doc:`custom/mpiio <dump>`
* :doc:`custom/zstd <dump>`
* :doc:`dcd <dump>`
* :doc:`grid <dump>`
@ -51,7 +48,6 @@ An alphabetic list of all LAMMPS :doc:`dump <dump>` commands.
* :doc:`xtc <dump>`
* :doc:`xyz <dump>`
* :doc:`xyz/gz <dump>`
* :doc:`xyz/mpiio <dump>`
* :doc:`xyz/zstd <dump>`
* :doc:`yaml <dump>`

View File

@ -69,7 +69,7 @@ OPT.
* :doc:`drude/transform/inverse <fix_drude_transform>`
* :doc:`dt/reset (k) <fix_dt_reset>`
* :doc:`edpd/source <fix_dpd_source>`
* :doc:`efield <fix_efield>`
* :doc:`efield (k) <fix_efield>`
* :doc:`efield/tip4p <fix_efield>`
* :doc:`ehex <fix_ehex>`
* :doc:`electrode/conp (i) <fix_electrode>`
@ -116,13 +116,13 @@ OPT.
* :doc:`momentum (k) <fix_momentum>`
* :doc:`momentum/chunk <fix_momentum>`
* :doc:`move <fix_move>`
* :doc:`mscg <fix_mscg>`
* :doc:`msst <fix_msst>`
* :doc:`mvv/dpd <fix_mvv_dpd>`
* :doc:`mvv/edpd <fix_mvv_dpd>`
* :doc:`mvv/tdpd <fix_mvv_dpd>`
* :doc:`neb <fix_neb>`
* :doc:`neb/spin <fix_neb_spin>`
* :doc:`nonaffine/displacement <fix_nonaffine_displacement>`
* :doc:`nph (ko) <fix_nh>`
* :doc:`nph/asphere (o) <fix_nph_asphere>`
* :doc:`nph/body <fix_nph_body>`
@ -182,6 +182,7 @@ OPT.
* :doc:`pour <fix_pour>`
* :doc:`precession/spin <fix_precession_spin>`
* :doc:`press/berendsen <fix_press_berendsen>`
* :doc:`press/langevin <fix_press_langevin>`
* :doc:`print <fix_print>`
* :doc:`propel/self <fix_propel_self>`
* :doc:`property/atom (k) <fix_property_atom>`
@ -233,15 +234,15 @@ OPT.
* :doc:`spring <fix_spring>`
* :doc:`spring/chunk <fix_spring_chunk>`
* :doc:`spring/rg <fix_spring_rg>`
* :doc:`spring/self <fix_spring_self>`
* :doc:`spring/self (k) <fix_spring_self>`
* :doc:`srd <fix_srd>`
* :doc:`store/force <fix_store_force>`
* :doc:`store/state <fix_store_state>`
* :doc:`tdpd/source <fix_dpd_source>`
* :doc:`temp/berendsen <fix_temp_berendsen>`
* :doc:`temp/berendsen (k) <fix_temp_berendsen>`
* :doc:`temp/csld <fix_temp_csvr>`
* :doc:`temp/csvr <fix_temp_csvr>`
* :doc:`temp/rescale <fix_temp_rescale>`
* :doc:`temp/rescale (k) <fix_temp_rescale>`
* :doc:`temp/rescale/eff <fix_temp_rescale_eff>`
* :doc:`tfmc <fix_tfmc>`
* :doc:`tgnpt/drude <fix_tgnh_drude>`

View File

@ -87,7 +87,7 @@ OPT.
* :doc:`coul/long/soft (o) <pair_fep_soft>`
* :doc:`coul/msm (o) <pair_coul>`
* :doc:`coul/slater/cut <pair_coul_slater>`
* :doc:`coul/slater/long <pair_coul_slater>`
* :doc:`coul/slater/long (g) <pair_coul_slater>`
* :doc:`coul/shield <pair_coul_shield>`
* :doc:`coul/streitz <pair_coul>`
* :doc:`coul/tt <pair_coul_tt>`
@ -110,7 +110,7 @@ OPT.
* :doc:`eam/he <pair_eam>`
* :doc:`edip (o) <pair_edip>`
* :doc:`edip/multi <pair_edip>`
* :doc:`edpd <pair_mesodpd>`
* :doc:`edpd (g) <pair_mesodpd>`
* :doc:`eff/cut <pair_eff>`
* :doc:`eim (o) <pair_eim>`
* :doc:`exp6/rx (k) <pair_exp6_rx>`
@ -146,7 +146,7 @@ OPT.
* :doc:`lj/charmm/coul/long/soft (o) <pair_fep_soft>`
* :doc:`lj/charmm/coul/msm (o) <pair_charmm>`
* :doc:`lj/charmmfsw/coul/charmmfsh <pair_charmm>`
* :doc:`lj/charmmfsw/coul/long <pair_charmm>`
* :doc:`lj/charmmfsw/coul/long (k) <pair_charmm>`
* :doc:`lj/class2 (gko) <pair_class2>`
* :doc:`lj/class2/coul/cut (ko) <pair_class2>`
* :doc:`lj/class2/coul/cut/soft <pair_fep_soft>`
@ -158,14 +158,14 @@ OPT.
* :doc:`lj/cut (gikot) <pair_lj>`
* :doc:`lj/cut/coul/cut (gko) <pair_lj_cut_coul>`
* :doc:`lj/cut/coul/cut/dielectric (o) <pair_dielectric>`
* :doc:`lj/cut/coul/cut/soft (o) <pair_fep_soft>`
* :doc:`lj/cut/coul/cut/soft (go) <pair_fep_soft>`
* :doc:`lj/cut/coul/debye (gko) <pair_lj_cut_coul>`
* :doc:`lj/cut/coul/debye/dielectric (o) <pair_dielectric>`
* :doc:`lj/cut/coul/dsf (gko) <pair_lj_cut_coul>`
* :doc:`lj/cut/coul/long (gikot) <pair_lj_cut_coul>`
* :doc:`lj/cut/coul/long/cs <pair_cs>`
* :doc:`lj/cut/coul/long/dielectric (o) <pair_dielectric>`
* :doc:`lj/cut/coul/long/soft (o) <pair_fep_soft>`
* :doc:`lj/cut/coul/long/soft (go) <pair_fep_soft>`
* :doc:`lj/cut/coul/msm (go) <pair_lj_cut_coul>`
* :doc:`lj/cut/coul/msm/dielectric <pair_dielectric>`
* :doc:`lj/cut/coul/wolf (o) <pair_lj_cut_coul>`
@ -202,7 +202,7 @@ OPT.
* :doc:`lubricate/poly (o) <pair_lubricate>`
* :doc:`lubricateU <pair_lubricateU>`
* :doc:`lubricateU/poly <pair_lubricateU>`
* :doc:`mdpd <pair_mesodpd>`
* :doc:`mdpd (g) <pair_mesodpd>`
* :doc:`mdpd/rhosum <pair_mesodpd>`
* :doc:`meam (k) <pair_meam>`
* :doc:`meam/ms (k) <pair_meam>`
@ -220,7 +220,8 @@ OPT.
* :doc:`morse/soft <pair_fep_soft>`
* :doc:`multi/lucy <pair_multi_lucy>`
* :doc:`multi/lucy/rx (k) <pair_multi_lucy_rx>`
* :doc:`nb3b/harmonic <pair_nb3b_harmonic>`
* :doc:`nb3b/harmonic <pair_nb3b>`
* :doc:`nb3b/screened <pair_nb3b>`
* :doc:`nm/cut (o) <pair_nm>`
* :doc:`nm/cut/coul/cut (o) <pair_nm>`
* :doc:`nm/cut/coul/long (o) <pair_nm>`
@ -265,13 +266,13 @@ OPT.
* :doc:`smd/tri_surface <pair_smd_triangulated_surface>`
* :doc:`smd/ulsph <pair_smd_ulsph>`
* :doc:`smtbq <pair_smtbq>`
* :doc:`snap (k) <pair_snap>`
* :doc:`snap (ik) <pair_snap>`
* :doc:`soft (go) <pair_soft>`
* :doc:`sph/heatconduction <pair_sph_heatconduction>`
* :doc:`sph/heatconduction (g) <pair_sph_heatconduction>`
* :doc:`sph/idealgas <pair_sph_idealgas>`
* :doc:`sph/lj <pair_sph_lj>`
* :doc:`sph/lj (g) <pair_sph_lj>`
* :doc:`sph/rhosum <pair_sph_rhosum>`
* :doc:`sph/taitwater <pair_sph_taitwater>`
* :doc:`sph/taitwater (g) <pair_sph_taitwater>`
* :doc:`sph/taitwater/morris <pair_sph_taitwater_morris>`
* :doc:`spin/dipole/cut <pair_spin_dipole>`
* :doc:`spin/dipole/long <pair_spin_dipole>`
@ -305,5 +306,5 @@ OPT.
* :doc:`wf/cut <pair_wf_cut>`
* :doc:`ylz <pair_ylz>`
* :doc:`yukawa (gko) <pair_yukawa>`
* :doc:`yukawa/colloid (go) <pair_yukawa_colloid>`
* :doc:`yukawa/colloid (gko) <pair_yukawa_colloid>`
* :doc:`zbl (gko) <pair_zbl>`

View File

@ -85,6 +85,35 @@ The same functionality is available through
:doc:`bond style mesocnt <bond_mesocnt>` and
:doc:`angle style mesocnt <angle_mesocnt>`.
MPIIO package
-------------
.. deprecated:: 21Nov2023
The MPIIO package has been removed from LAMMPS since it was unmaintained
for many years and thus not updated to incorporate required changes that
had been applied to the corresponding non-MPIIO commands. As a
consequence the MPIIO commands had become unreliable and sometimes
crashing LAMMPS or corrupting data. Similar functionality is available
through the :ref:`ADIOS package <PKG-ADIOS>` and the :ref:`NETCDF
package <PKG-NETCDF>`. Also, the :doc:`dump_modify nfile or dump_modify
fileper <dump_modify>` keywords may be used for an efficient way of
writing out dump files when running on large numbers of processors.
Similarly, the "nfile" and "fileper" keywords exist for restarts:
see :doc:`restart <restart>`, :doc:`read_restart <read_restart>`,
:doc:`write_restart <write_restart>`.
MSCG package
------------
.. deprecated:: 21Nov2023
The MSCG package has been removed from LAMMPS since it was unmaintained
for many years and instead superseded by the `OpenMSCG software
<https://software.rcc.uchicago.edu/mscg/>`_ of the Voth group at the
University of Chicago, which can be used independent from LAMMPS.
REAX package
------------
@ -97,6 +126,17 @@ syntax compatible with the removed reax pair style, so input files will
have to be adapted. The REAXFF package was originally called
USER-REAXC.
USER-REAXC package
------------------
.. deprecated:: 7Feb2024
The USER-REAXC package has been renamed to :ref:`REAXFF <PKG-REAXFF>`.
In the process also the pair style and related fixes were renamed to use
the "reaxff" string instead of "reax/c". For a while LAMMPS was maintaining
backward compatibility by providing aliases for the styles. These have
been removed, so using "reaxff" is now *required*.
USER-CUDA package
-----------------

View File

@ -70,6 +70,9 @@ File and path functions and global constants
.. doxygenfunction:: is_console
:project: progguide
.. doxygenfunction:: disk_free
:project: progguide
.. doxygenfunction:: path_is_directory
:project: progguide

View File

@ -121,7 +121,7 @@ will be suppressed and only a summary printed, but adding
the '-V' option will then produce output from the tests
above like the following:
.. code-block::
.. code-block:: console
[...]
1: [ RUN ] Tokenizer.empty_string
@ -180,19 +180,11 @@ discarded but by setting the verbose flag (via setting the ``TEST_ARGS``
environment variable, ``TEST_ARGS=-v``) it can be printed and used to
understand why tests fail unexpectedly.
Another complexity of these tests stems from the need to capture
situations where LAMMPS will stop with an error, i.e. handle so-called
"death tests". Here the LAMMPS code will operate differently depending
on whether it was configured to throw C++ exceptions on errors or call
either ``exit()`` or ``MPI_Abort()``. In the latter case, the test code
also needs to detect whether LAMMPS was compiled with the OpenMPI
library, as OpenMPI is **only** compatible the death test options of the
GoogleTest library when C++ exceptions are enabled; otherwise those
"death tests" must be skipped to avoid reporting bogus failures. The
specifics of this step are implemented in the ``TEST_FAILURE()``
macro. These tests operate by capturing the screen output when executing
the failing command and then comparing that with a provided regular
expression string pattern. Example:
The specifics of so-called "death tests", i.e. conditions where LAMMPS
should fail and throw an exception, are implemented in the
``TEST_FAILURE()`` macro. These tests operate by capturing the screen
output when executing the failing command and then comparing that with a
provided regular expression string pattern. Example:
.. code-block:: c++
@ -282,9 +274,7 @@ Tests for using the Fortran module are in the ``unittest/fortran``
folder. Since they are also using the GoogleTest library, they require
to also implement test wrappers in C++ that will call fortran functions
which provide a C function interface through ISO_C_BINDINGS that will in
turn call the functions in the LAMMPS Fortran module. This part of the
unit tests is incomplete since the Fortran module it is based on is
incomplete as well.
turn call the functions in the LAMMPS Fortran module.
Tests for the C++-style library interface
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -405,10 +395,10 @@ compare with the reference and also start from the data file. A final
check will use multi-cutoff r-RESPA (if supported by the pair style) at
a 1:1 split and compare to the Verlet results. These sets of tests are
run with multiple test fixtures for accelerated styles (OPT, OPENMP,
INTEL) and for the latter two with 4 OpenMP threads enabled. For
these tests the relative error (epsilon) is lowered by a common factor
due to the additional numerical noise, but the tests are still comparing
to the same reference data.
INTEL, KOKKOS (OpenMP only)) and for the latter three with 4 OpenMP
threads enabled. For these tests the relative error (epsilon) is lowered
by a common factor due to the additional numerical noise, but the tests
are still comparing to the same reference data.
Additional tests will check whether all listed extract keywords are
supported and have the correct dimensionality and the final set of tests
@ -442,17 +432,19 @@ The ``test_pair_style`` tester is used with 4 categories of test inputs:
pair style is defined, but the computation of the pair style contributions
is disabled.
The ``test_bond_style`` and ``test_angle_style`` are set up in a similar
fashion and share support functions with the pair style tester. The final
group of tests in this section is for fix styles that add/manipulate forces
and velocities, e.g. for time integration, thermostats and more.
The ``test_bond_style``, ``test_angle_style``, ``test_dihedral_style``, and
``test_improper_style`` tester programs are set up in a similar fashion and
share support functions with the pair style tester. The final group of
tests in this section is for fix styles that add/manipulate forces and
velocities, e.g. for time integration, thermostats and more.
Adding a new test is easiest done by copying and modifying an existing test
for a style that is similar to one to be tested. The file name should follow
the naming conventions described above and after copying the file, the first
step is to replace the style names where needed. The coefficient values
do not have to be meaningful, just in a reasonable range for the given system.
It does not matter if some forces are large, for as long as they do not diverge.
Adding a new test is easiest done by copying and modifying an existing YAML
file for a style that is similar to one to be tested. The file name should
follow the naming conventions described above and after copying the file,
the first step is to replace the style names where needed. The coefficient
values do not have to be meaningful, just in a reasonable range for the
given system. It does not matter if some forces are large, for as long as
they do not diverge.
The template input files define a large number of index variables at the top
that can be modified inside the YAML file to control the behavior. For example,
@ -480,7 +472,7 @@ Note that this disables computing the kspace contribution, but still will run
the setup. The "gewald" parameter should be set explicitly to speed up the run.
For styles with long-range electrostatics, typically two tests are added one using
the (slower) analytic approximation of the erfc() function and the other using
the tabulated coulomb, to test both code paths. The reference results in the YAML
the tabulated coulomb, to test both code paths. The reference results in the YAML
files then should be compared manually, if they agree well enough within the limits
of those two approximations.
@ -534,3 +526,102 @@ The ``unittest/tools`` folder contains tests for programs in the
shell, which are implemented as a python scripts using the ``unittest``
Python module and launching the tool commands through the ``subprocess``
Python module.
Troubleshooting failed unit tests
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The are by default no unit tests for newly added features (e.g. pair, fix,
or compute styles) unless your pull request also includes tests for the
added features. If you are modifying some features, you may see failures
for existing tests, if your modifications have some unexpected side effects
or your changes render the existing text invalid. If you are adding an
accelerated version of an existing style, then only tests for INTEL,
KOKKOS (with OpenMP only), OPENMP, and OPT will be run automatically.
Tests for the GPU package are time consuming and thus are only run
*after* a merge, or when a special label, ``gpu_unit_tests`` is added
to the pull request. After the test has started, it is often best to
remove the label since every PR activity will re-trigger the test (that
is a limitation of triggering a test with a label). Support for unit
tests with using KOKKOS with GPU acceleration is currently not supported.
When you see a failed build on GitHub, click on ``Details`` to be taken
to the corresponding LAMMPS Jenkins CI web page. Click on the "Exit"
symbol near the ``Logout`` button on the top right of that page to go to
the "classic view". In the classic view, there is a list of the
individual runs that make up this test run (they are shown but cannot be
inspected in the default view). You can click on any of those.
Clicking on ``Test Result`` will display the list of failed tests. Click
on the "Status" column to sort the tests based on their Failed or Passed
status. Then click on the failed test to expand its output.
For example, the following output snippet shows the failed unit test
.. code-block:: console
[ RUN ] PairStyle.gpu
/home/builder/workspace/dev/pull_requests/ubuntu_gpu/unit_tests/cmake_gpu_opencl_mixed_smallbig_clang_static/unittest/force-styles/test_main.cpp:63: Failure
Expected: (err) <= (epsilon)
Actual: 0.00018957912910606503 vs 0.0001
Google Test trace:
/home/builder/workspace/dev/pull_requests/ubuntu_gpu/unit_tests/cmake_gpu_opencl_mixed_smallbig_clang_static/unittest/force-styles/test_main.cpp:56: EXPECT_FORCES: init_forces (newton off)
/home/builder/workspace/dev/pull_requests/ubuntu_gpu/unit_tests/cmake_gpu_opencl_mixed_smallbig_clang_static/unittest/force-styles/test_main.cpp:64: Failure
Expected: (err) <= (epsilon)
Actual: 0.00022892713393549854 vs 0.0001
The failed assertions provide line numbers in the test source
(e.g. ``test_main.cpp:56``), from which one can understand what
specific assertion failed.
Note that the force style engine runs one of a small number of systems
in a rather off-equilibrium configuration with a few atoms for a few
steps, writes data and restart files, uses :doc:`the clear command
<clear>` to reset LAMMPS, and then runs from those files with different
settings (e.g. newton on/off) and integrators (e.g. verlet vs. respa).
Beyond potential issues/bugs in the source code, the mismatch between
the expected and actual values could be that force arrays are not
properly cleared between multiple run commands or that class members are
not correctly initialized or written to or read from a data or restart
file.
While the epsilon (relative precision) for a single, `IEEE 754 compliant
<https://en.wikipedia.org/wiki/IEEE_754>`_, double precision floating
point operation is at about 2.2e-16, the achievable precision for the
tests is lower due to most numbers being sums over intermediate results
and the non-associativity of floating point math leading to larger
errors. In some cases specific properties of the tested style. As a
rule of thumb, the test epsilon can often be in the range 5.0e-14 to
1.0e-13. But for "noisy" force kernels, e.g. those a larger amount of
arithmetic operations involving `exp()`, `log()` or `sin()` functions,
and also due to the effect of compiler optimization or differences
between compilers or platforms, epsilon may need to be further relaxed,
sometimes epsilon can be relaxed to 1.0e-12. If interpolation or lookup
tables are used, epsilon may need to be set to 1.0e-10 or even higher.
For tests of accelerated styles, the per-test epsilon is multiplied
by empirical factors that take into account the differences in the order
of floating point operations or that some or most intermediate operations
may be done using approximations or with single precision floating point
math.
To rerun the failed unit test individually, change to the ``build`` directory
and run the test with verbose output. For example,
.. code-block:: bash
env TEST_ARGS=-v ctest -R ^MolPairStyle:lj_cut_coul_long -V
``ctest`` with the ``-V`` flag also shows the exact command line
of the test. One can then use ``gdb --args`` to further debug and
catch exceptions with the test command, for example,
.. code-block:: bash
gdb --args /path/to/lammps/build/test_pair_style /path/to/lammps/unittest/force-styles/tests/mol-pair-lj_cut_coul_long.yaml
It is recommended to configure the build with ``-D
BUILD_SHARED_LIBS=on`` and use a custom linker to shorten the build time
during recompilation. Installing `ccache` in your development
environment helps speed up recompilation by caching previous
compilations and detecting when the same compilation is being done
again. Please see :doc:`Build_development` for further details.

View File

@ -20,6 +20,7 @@ Available topics in mostly chronological order are:
- `Use ev_init() to initialize variables derived from eflag and vflag`_
- `Use utils::numeric() functions instead of force->numeric()`_
- `Use utils::open_potential() function to open potential files`_
- `Use symbolic Atom and AtomVec constants instead of numerical values`_
- `Simplify customized error messages`_
- `Use of "override" instead of "virtual"`_
- `Simplified and more compact neighbor list requests`_
@ -196,6 +197,71 @@ New:
fp = utils::open_potential(filename, lmp);
Use symbolic Atom and AtomVec constants instead of numerical values
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. versionchanged:: 18Sep2020
Properties in LAMMPS that were represented by integer values (0, 1,
2, 3) to indicate settings in the ``Atom`` and ``AtomVec`` classes (or
classes derived from it) (and its derived classes) have been converted
to use scoped enumerators instead.
.. list-table::
:header-rows: 1
:widths: auto
* - Symbolic Constant
- Value
- Symbolic Constant
- Value
* - Atom::GROW
- 0
- Atom::MAP_NONE
- 0
* - Atom::RESTART
- 1
- Atom::MAP_ARRAY
- 1
* - Atom::BORDER
- 2
- Atom::MAP_HASH
- 2
* - Atom::ATOMIC
- 0
- Atom::MAP_YES
- 3
* - Atom::MOLECULAR
- 1
- AtomVec::PER_ATOM
- 0
* - Atom::TEMPLATE
- 2
- AtomVec::PER_TYPE
- 1
Old:
.. code-block:: c++
molecular = 0;
mass_type = 1;
if (atom->molecular == 2)
if (atom->map_style == 2)
atom->add_callback(0);
atom->delete_callback(id,1);
New:
.. code-block:: c++
molecular = Atom::ATOMIC;
mass_type = AtomVec::PER_TYPE;
if (atom->molecular == Atom::TEMPLATE)
if (atom->map_style == Atom::MAP_HASH)
atom->add_callback(Atom::GROW);
atom->delete_callback(id,Atom::RESTART);
Simplify customized error messages
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -7148,9 +7148,6 @@ keyword to allow for additional bonds to be formed
*Read_dump xyz fields do not have consistent scaling/wrapping*
Self-explanatory.
*Reading from MPI-IO filename when MPIIO package is not installed*
Self-explanatory.
*Reax_defs.h setting for NATDEF is too small*
Edit the setting in the ReaxFF library and re-compile the
library and re-build LAMMPS.
@ -8489,9 +8486,6 @@ keyword to allow for additional bonds to be formed
The write_restart command cannot be used before a read_data,
read_restart, or create_box command.
*Writing to MPI-IO filename when MPIIO package is not installed*
Self-explanatory.
*Zero length rotation vector with displace_atoms*
Self-explanatory.

View File

@ -104,8 +104,6 @@ Lowercase directories
+-------------+------------------------------------------------------------------+
| min | energy minimization of 2d LJ melt |
+-------------+------------------------------------------------------------------+
| mscg | parameterize a multi-scale coarse-graining (MSCG) model |
+-------------+------------------------------------------------------------------+
| msst | MSST shock dynamics |
+-------------+------------------------------------------------------------------+
| multi | multi neighboring for systems with large interaction disparities |

View File

@ -315,6 +315,10 @@ of the contents of the :f:mod:`LIBLAMMPS` Fortran interface to LAMMPS.
:ftype extract_variable: function
:f set_variable: :f:subr:`set_variable`
:ftype set_variable: subroutine
:f set_string_variable: :f:subr:`set_set_string_variable`
:ftype set_string_variable: subroutine
:f set_internal_variable: :f:subr:`set_internal_variable`
:ftype set_internal_variable: subroutine
:f gather_atoms: :f:subr:`gather_atoms`
:ftype gather_atoms: subroutine
:f gather_atoms_concat: :f:subr:`gather_atoms_concat`
@ -1398,7 +1402,28 @@ Procedures Bound to the :f:type:`lammps` Derived Type
Set the value of a string-style variable.
.. versionadded:: 3Nov2022
.. deprecated:: 7Feb2024
This function assigns a new value from the string *str* to the string-style
variable *name*\ . If *name* does not exist or is not a string-style
variable, an error is generated.
.. warning::
This subroutine is deprecated and :f:subr:`set_string_variable`
should be used instead.
:p character(len=*) name: name of the variable
:p character(len=*) str: new value to assign to the variable
:to: :cpp:func:`lammps_set_variable`
--------
.. f:subroutine:: set_string_variable(name, str)
Set the value of a string-style variable.
.. versionadded:: 7Feb2024
This function assigns a new value from the string *str* to the string-style
variable *name*\ . If *name* does not exist or is not a string-style
@ -1406,7 +1431,23 @@ Procedures Bound to the :f:type:`lammps` Derived Type
:p character(len=*) name: name of the variable
:p character(len=*) str: new value to assign to the variable
:to: :cpp:func:`lammps_set_variable`
:to: :cpp:func:`lammps_set_string_variable`
--------
.. f:subroutine:: set_internal_variable(name, val)
Set the value of a internal-style variable.
.. versionadded:: 7Feb2024
This function assigns a new value from the floating-point number *val* to
the internal-style variable *name*\ . If *name* does not exist or is not
an internal-style variable, an error is generated.
:p character(len=*) name: name of the variable
:p read(c_double) val: new value to assign to the variable
:to: :cpp:func:`lammps_set_internal_variable`
--------
@ -2278,19 +2319,13 @@ Procedures Bound to the :f:type:`lammps` Derived Type
.. versionadded:: 3Nov2022
In case of an error, LAMMPS will either abort or throw a C++ exception.
The latter has to be :ref:`enabled at compile time <exceptions>`.
This function checks if exceptions were enabled.
When using the library interface with C++ exceptions enabled, the library
interface functions will "catch" them, and the error status can then be
checked by calling :f:func:`has_error`. The most recent error message can be
retrieved via :f:func:`get_last_error_message`.
This can allow one to restart a calculation or delete and recreate
the LAMMPS instance when a C++ exception occurs. One application
of using exceptions this way is the :ref:`lammps_shell`. If C++
exceptions are disabled and an error happens during a call to
LAMMPS or the Fortran API, the application will terminate.
When using the library interface, the library interface functions
will "catch" exceptions, and then the error status can be checked by
calling :f:func:`has_error`. The most recent error message can be
retrieved via :f:func:`get_last_error_message`. This allows to
restart a calculation or delete and recreate the LAMMPS instance when
a C++ exception occurs. One application of using exceptions this way
is the :ref:`lammps_shell`.
:to: :cpp:func:`lammps_config_has_exceptions`
:r has_exceptions:
@ -3044,14 +3079,6 @@ Procedures Bound to the :f:type:`lammps` Derived Type
This function can be used to query if an error inside of LAMMPS
has thrown a :ref:`C++ exception <exceptions>`.
.. note::
This function will always report "no error" when the LAMMPS library
has been compiled without ``-DLAMMPS_EXCEPTIONS``, which turns fatal
errors aborting LAMMPS into C++ exceptions. You can use the library
function :cpp:func:`lammps_config_has_exceptions` to check if this is
the case.
:to: :cpp:func:`lammps_has_error`
:r has_error: ``.TRUE.`` if there is an error.
:rtype has_error: logical
@ -3074,13 +3101,6 @@ Procedures Bound to the :f:type:`lammps` Derived Type
would happen only in a single MPI rank and thus may not be recoverable, as
other MPI ranks may be waiting on the failing MPI rank(s) to send messages.
.. note::
This function will do nothing when the LAMMPS library has been
compiled without ``-DLAMMPS_EXCEPTIONS``, which turns errors aborting
LAMMPS into C++ exceptions. You can use the function
:f:func:`config_has_exceptions` to check whether this is the case.
:p character(len=\*) buffer: string buffer to copy the error message into
:o integer(c_int) status [optional]: 1 when all ranks had the error,
2 on a single-rank error.

View File

@ -100,6 +100,8 @@ Tutorials howto
Howto_cmake
Howto_github
Howto_lammps_gui
Howto_moltemplate
Howto_pylammps
Howto_wsl

View File

@ -170,9 +170,9 @@ with this body style to compute body/body and body/non-body interactions.
The *rounded/polygon* body style represents body particles as a 2d
polygon with a variable number of N vertices. This style can only be
used for 2d models; see the :doc:`boundary <boundary>` command. See the
"pair_style body/rounded/polygon" page for a diagram of two
squares with rounded circles at the vertices. Special cases for N = 1
(circle) and N = 2 (rod with rounded ends) can also be specified.
:doc:`pair_style body/rounded/polygon <pair_body_rounded_polygon>` page for
a diagram of two squares with rounded circles at the vertices. Special cases
for N = 1 (circle) and N = 2 (rod with rounded ends) can also be specified.
One use of this body style is for 2d discrete element models, as
described in :ref:`Fraige <body-Fraige>`.
@ -335,7 +335,7 @@ faces are listed, so that M = 6 + 3\*N + 1.
The integer line has three values: number of vertices (N), number of
edges (E) and number of faces (F). The floating point line(s) list 6
moments of inertia followed by the coordinates of the N vertices (x1
to zN) as 3N values, followed by 2N vertex indices corresponding to
to zN) as 3N values, followed by 2E vertex indices corresponding to
the end points of the E edges, then 4\*F vertex indices defining F
faces. The last value is the diameter value = the rounded diameter of
the sphere that surrounds each vertex. The diameter value can be

View File

@ -1,11 +1,11 @@
Using CMake with LAMMPS tutorial
================================
Using CMake with LAMMPS
=======================
The support for building LAMMPS with CMake is a recent addition to
LAMMPS thanks to the efforts of Christoph Junghans (LANL) and Richard
Berger (Temple U). One of the key strengths of CMake is that it is not
tied to a specific platform or build system and thus generate the files
necessary to build and develop for different build systems and on
Berger (LANL). One of the key strengths of CMake is that it is not
tied to a specific platform or build system. Instead it generates the
files necessary to build and develop for different build systems and on
different platforms. Note, that this applies to the build system itself
not the LAMMPS code. In other words, without additional porting effort,
it is not possible - for example - to compile LAMMPS with Visual C++ on
@ -14,7 +14,7 @@ necessary to program LAMMPS as a project in integrated development
environments (IDE) like Eclipse, Visual Studio, QtCreator, Xcode,
CodeBlocks, Kate and others.
A second important feature of CMake is, that it can detect and validate
A second important feature of CMake is that it can detect and validate
available libraries, optimal settings, available support tools and so
on, so that by default LAMMPS will take advantage of available tools
without requiring to provide the details about how to enable/integrate
@ -32,8 +32,8 @@ program ``cmake`` (or ``cmake3``), a text mode interactive user
interface (TUI) program ``ccmake`` (or ``ccmake3``), or a graphical user
interface (GUI) program ``cmake-gui``. All of them are portable
software available on all supported platforms and can be used
interchangeably. The minimum supported CMake version is 3.10 (3.12 or
later is recommended).
interchangeably. As of LAMMPS version 2 August 2023, the minimum
required CMake version is 3.16.
All details about features and settings for CMake are in the `CMake
online documentation <https://cmake.org/documentation/>`_. We focus
@ -43,11 +43,20 @@ Prerequisites
-------------
This tutorial assumes that you are operating in a command-line environment
using a shell like Bash.
using a shell like Bash or Zsh.
- Linux: any Terminal window will work
- macOS: launch the Terminal application.
- Windows 10: install and run the :doc:`Windows Subsystem for Linux <Howto_wsl>`
- Linux: any Terminal window will work or text console
- macOS: launch the Terminal application
- Windows 10 or 11: install and run the :doc:`Windows Subsystem for Linux <Howto_wsl>`
- other Unix-like operating systems like FreeBSD
.. note::
It is also possible to use CMake on Windows 10 or 11 through either the Microsoft
Visual Studio IDE with the bundled CMake or from the Windows command prompt using
a separately installed CMake package, both using the native Microsoft Visual C++
compilers and (optionally) the Microsoft MPI SDK. This tutorial, however, only
covers unix-like command line interfaces.
We also assume that you have downloaded and unpacked a recent LAMMPS source code package
or used Git to create a clone of the LAMMPS sources on your compilation machine.
@ -338,10 +347,10 @@ Some common LAMMPS specific variables
- 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``
* - ``LAMMPS_EXCEPTIONS``
- when set to ``on`` errors will throw a C++ exception instead of aborting (default: ``off``)
* - ``FFT``
- select which FFT library to use: ``FFTW3``, ``MKL``, ``KISS`` (default, unless FFTW3 is found)
* - ``FFT_KOKKOS``
- select which FFT library to use in Kokkos-enabled styles: ``FFTW3``, ``MKL``, ``HIPFFT``, ``CUFFT``, ``KISS`` (default)
* - ``FFT_SINGLE``
- select whether to use single precision FFTs (default: ``off``)
* - ``WITH_JPEG``
@ -412,9 +421,9 @@ interface (``ccmake`` or ``cmake-gui``).
Using a preset to select a compiler package (``clang.cmake``,
``gcc.cmake``, ``intel.cmake``, ``oneapi.cmake``, or ``pgi.cmake``)
are an exception to the mechanism of updating the configuration incrementally,
as they will trigger a reset of cached internal CMake settings and thus
reset settings to their default values.
are an exception to the mechanism of updating the configuration
incrementally, as they will trigger a reset of cached internal CMake
settings and thus reset settings to their default values.
Compilation and build targets
-----------------------------

View File

@ -480,11 +480,11 @@ Some recent changes to the workflow are not captured in this tutorial.
For example, in addition to the *develop* branch, to which all new
features should be submitted, there is also a *release*, a *stable*, and
a *maintenance* branch; the *release* branch is updated from the
*develop* as part of a feature release, and *stable* (together with
*release*) are updated from *develop* when a stable release is made. In
between stable releases, selected bug fixes and infrastructure updates
are back-ported from the *develop* branch to the *maintenance* branch
and occasionally merged to *stable* as an update release.
*develop* branch as part of a "feature release", and *stable* (together
with *release*) are updated from *develop* when a "stable release" is
made. In between stable releases, selected bug fixes and infrastructure
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.

View File

@ -0,0 +1,700 @@
Using the LAMMPS GUI
====================
This document describes **LAMMPS GUI version 1.5**.
-----
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.
.. note::
Pre-compiled, ready-to-use LAMMPS GUI executables for Linux (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. They may be linked to a
development version of LAMMPS in case they need features not yet
available in a released version. Serial LAMMPS executables of the
same LAMMPS version are included as well. The source code for the
LAMMPS GUI is included in the LAMMPS source code and can be found in
the ``tools/lammps-gui`` folder. It can be compiled alongside LAMMPS
when :doc:`compiling with CMake <Build_cmake>`.
LAMMPS GUI tries to provide an experience similar to what people
traditionally would do to run LAMMPS using a command line window:
- editing inputs with a text editor
- run LAMMPS on the input with selected command line flags
- and then use or extract data from the created files and visualize it
That procedure is quite effective for people proficient in using the
command line, as that allows them to use tools for the individual steps
which they are most comfortable with. It is often required when running
LAMMPS on high-performance computing facilities.
The main benefit of using the LAMMPS GUI application instead is that
many basic tasks can be done directly from the GUI without switching to
a text console window or using external programs, let alone writing
scripts to extract data from the generated output. It also integrates
well with graphical desktop environments.
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. It
is also designed to keep the barrier low when you decide to switch to a
full featured, standalone programming editor and more sophisticated
visualization and analysis tools and run LAMMPS from a command line.
The following text provides a detailed tour of the features and
functionality of the 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.
-----
Main window
-----------
When LAMMPS GUI starts, it will show a main window with either an
empty buffer or the contents of a loaded file. In the latter case it
may look like the following:
.. image:: JPG/lammps-gui-main.png
:align: center
:scale: 50%
There is the typical menu bar at the top, then the main editor buffer,
and a status bar at the bottom. The input file contents are shown
with line numbers on the left and the input is colored according to
the LAMMPS input file syntax. The status bar shows the status of
LAMMPS execution on the left (e.g. "Ready." when idle) and the current
working directory on the right. The name of the current file in the
buffer is shown in the window title; the word `*modified*` is added if
the buffer edits have not yet saved to a file. The size of the main
window will be stored when exiting and restored when starting again.
Opening Files
^^^^^^^^^^^^^
The LAMMPS GUI application will try to open the first command line
argument as a LAMMPS input script, further arguments are ignored.
When no argument is given, LAMMPS GUI will start with an empty buffer.
Files can also be opened via the ``File`` menu or by drag-and-drop of
a file from a graphical file manager into the editor window. Only one
file can be open at a time, so opening a new file with a filled buffer
will close the buffer. If the buffer has unsaved modifications, you
will be asked to either cancel the operation, discard the changes, or
save them.
Running LAMMPS
^^^^^^^^^^^^^^
From within the LAMMPS GUI main window LAMMPS can be started either from
the ``Run`` menu using the ``Run LAMMPS from Editor Buffer`` entry, by
the keyboard shortcut `Ctrl-Enter` (`Command-Enter` on macOS), or by
clicking on the green "Run" button in the status bar. All of these
operations will cause LAMMPS to process the entire input script, which
may contain multiple :doc:`run <run>` or :doc:`minimize <minimize>`
commands.
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
: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
alternative, it is also possible to run LAMMPS by reading the contents
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.
.. 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
will also show the number of active threads, if 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 command <run>`.
Also, the line number of the currently executed command will be
highlighted in green.
.. image:: JPG/lammps-gui-run-highlight.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 will be shown and the line of the input which triggered the
error will be highlighted. The state of LAMMPS in the status bar will
be set to "Failed." instead of "Ready."
.. image:: JPG/lammps-gui-run-error.png
:align: center
:scale: 75%
Up to three additional windows will open during a run:
- a log window with the captured screen output
- a chart window with a line graph created from the thermodynamic output of the run
- a slide show window with images created by a :doc:`dump image command <dump_image>`
More information on those windows and how to adjust their behavior and
contents is given below.
An active LAMMPS run can be stopped cleanly by using either the ``Stop
LAMMPS`` entry in the ``Run`` menu, the keyboard shortcut `Ctrl-/`
(`Command-/` on macOS), or by clicking on the red button in the status
bar. This will cause the running LAMMPS process to complete the current
timestep (or iteration for energy minimization) and then complete the
processing of the buffer while skipping all run or minimize commands.
This is equivalent to the input script command :doc:`timer timeout 0
<timer>` and is implemented by calling the
:cpp:func:`lammps_force_timeout()` function of the LAMMPS C-library
interface. Please see the corresponding documentation pages to
understand the implications of this operation.
Log Window
----------
By default, when starting a run, a "Log Window" will open that displays
the current screen output of the LAMMPS calculation, that would normally
be seen in the command line window, as shown below.
.. image:: JPG/lammps-gui-log.png
:align: center
:scale: 50%
LAMMPS GUI captures the screen output as it is generated and updates
the log window regularly during a run.
By default, the log window will be replaced each time a run is started.
The runs are counted and the run number for the current run is displayed
in the window title. It is possible to change the behavior of LAMMPS
GUI in the preferences dialog to create a *new* log window for every run
or to not show the current log window. It is also possible to show or
hide the *current* log window from the ``View`` menu.
The text in the log window is read-only and cannot be modified, but
keyboard shortcuts to select and copy all or parts of the text can be
used to transfer text to another program. Also, the keyboard shortcut
`Ctrl-S` (`Command-S` on macOS) is available to save the log buffer to a
file. The "Select All" and "Copy" functions, as well as a "Save Log to
File" option are also available from a context menu by clicking with the
right mouse button into the log window text area.
Chart Window
------------
By default, when starting a run, a "Chart Window" will open that
displays a plot of thermodynamic output of the LAMMPS calculation as
shown below.
.. image:: JPG/lammps-gui-chart.png
:align: center
:scale: 50%
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 will be updated with new
data as the run progresses, so they can be used to visually monitor the
evolution of available properties. The window title will show the
current run number that this chart window corresponds to. Same as
explained for the log window above, by default, the chart window will
be replaced on each new run, but the behavior can be changed in the
preferences dialog.
From the ``File`` menu on the top left, it is possible to save an image
of the currently displayed plot or export the data in either plain text
columns (for use by plotting tools like `gnuplot
<http://www.gnuplot.info/>`_ or `grace
<https://plasma-gate.weizmann.ac.il/Grace/>`_), or as CSV data which can
be imported for further processing with Microsoft Excel or `pandas
<https://pandas.pydata.org/>`_
Thermo output data from successive run commands in the input script will
be combined into a single data set unless the format, number, or names
of output columns are changed with a :doc:`thermo_style <thermo_style>`
or a :doc:`thermo_modify <thermo_modify>` command, or the current time
step is reset with :doc:`reset_timestep <reset_timestep>`, or if a
:doc:`clear <clear>` command is issued.
Image Slide Show
----------------
By default, if the LAMMPS input contains a :doc:`dump image
<dump_image>` command, a "Slide Show" window will open which loads and
displays the images created by LAMMPS as they are written.
.. image:: JPG/lammps-gui-slideshow.png
:align: center
:scale: 50%
The various buttons at the bottom right of the window allow single
stepping through the sequence of images or playing an animation (as a
continuous loop or once from first to last). It is also possible to
zoom in or zoom out of the displayed images, and to export the slide
show animation to a movie file, if `ffmpeg <https://ffmpeg.org/>`_ is
installed.
Variable Info
-------------
During a run, it may be of interest to monitor the value of input script
variables, for example to monitor the progress of loops. This can be
done by enabling the "Variables Window" in the ``View`` menu or by using
the `Ctrl-Shift-W` keyboard shortcut. This will show info similar to
the :doc:`info variables <info>` command in a separate window as shown
below.
.. image:: JPG/lammps-gui-variable-info.png
:align: center
:scale: 75%
Like the log and chart windows, its content is continuously updated
during a run. It will show "(none)" if there are no variables
defined. Note that it is also possible to *set* :doc:`index style
variables <variable>`, that would normally be set via command line
flags, via the "Set Variables..." dialog from the ``Run`` menu.
LAMMPS GUI will automatically set the variable "gui_run" to the
current value of the run counter. That way it would be possible
to automatically record a log for each run attempt by using the
command
.. code-block:: LAMMPS
log logfile-${gui_run}.txt
at the beginning of an input file. That would record logs to files
``logfile-1.txt``, ``logfile-2.txt``, and so on for successive runs.
Viewing Snapshot Images
-----------------------
By selecting the ``Create Image`` entry in the ``Run`` menu, or by
hitting the `Ctrl-I` (`Command-I` on macOS) keyboard shortcut, or by
clicking on the "palette" button in the status bar, LAMMPS GUI will send
a custom :doc:`write_dump image <dump_image>` command to LAMMPS and read
the resulting snapshot image with the current state of the system into
an image viewer window. This functionality is not available *during* an
ongoing run. When LAMMPS is not yet initialized, LAMMPS GUI will try to
identify the line with the first run or minimize command and execute all
command up to that line from the input buffer and then add a "run 0"
command. This will initialize the system so an image of the initial
state of the system can be rendered. If there was an error, the
snapshot image viewer will not appear.
When possible, LAMMPS GUI will try to detect which elements the atoms
correspond to (via their mass) and then colorize them in the image
accordingly. Otherwise the default predefined sequence of colors is
assigned to the different atom types.
.. image:: JPG/lammps-gui-image.png
:align: center
:scale: 50%
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"). After each change, the image is rendered again
and the display updated. The small palette icon on the top left will
be colored while LAMMPS is running to render the new image; it will be
grayed out when it 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 or copied into the
cut-n-paste buffer for pasting into another application.
Editor Functions
----------------
The editor has most of the usual functionality that similar programs
have: text selection via mouse or with cursor moves while holding the
Shift key, Cut (`Ctrl-X`), Copy (`Ctrl-C`), Paste (`Ctrl-V`), Undo
(`Ctrl-Z`), Redo (`Ctrl-Shift-Z`), Select All (`Ctrl-A`). When trying
to exit the editor with a modified buffer, a dialog will pop up asking
whether to cancel the exit operation, or to save or not save the buffer
contents to a file.
Context Specific Word Completion
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
By default, LAMMPS GUI will display a small pop-up frame with possible
choices for LAMMPS input script commands or styles after 2 characters of
a word have been typed.
.. image:: JPG/lammps-gui-complete.png
:align: center
:scale: 75%
The word can then be completed through selecting an entry by scrolling
up and down with the cursor keys and selecting with the 'Enter' key or
by clicking on the entry with the mouse. The automatic completion
pop-up can be disabled in the ``Preferences`` dialog, but the completion
can still be requested manually by either hitting the 'Shift-TAB' key or
by right-clicking with the mouse and selecting the option from the
context menu. Most of the completion information is taken from the
LAMMPS instance and thus it will be adjusted to only show available
options that have been enabled while compiling LAMMPS. That, however,
excludes accelerated styles and commands; for improved clarity, only the
non-suffix version of styles are shown.
Line Reformatting
^^^^^^^^^^^^^^^^^
The editor supports reformatting lines according to the syntax in order
to have consistently aligned lines. This primarily means adding
whitespace padding to commands, type specifiers, IDs and names. This
reformatting is performed by default when hitting the 'Enter' key to
start a new line. This feature can be turned on or off in the
``Preferences`` dialog, but it can still be manually performed by
hitting the 'TAB' key. The amount of padding can also be changed in the
``Preferences`` dialog.
Internally this functionality is achieved by splitting the line into
"words" and then putting it back together with padding added where the
context can be detected; otherwise a single space is used between words.
Context Specific Help
^^^^^^^^^^^^^^^^^^^^^
.. image:: JPG/lammps-gui-popup-help.png
:align: center
:scale: 50%
A unique feature of the LAMMPS GUI is the option to look up the
documentation for the command in the current line. This can be done by
either clicking the right mouse button or by using the `Ctrl-?` keyboard
shortcut. When clicking the mouse there are additional entries in the
context menu that will open the corresponding documentation page in the
online LAMMPS documentation. When using the keyboard, the first of
those entries will be chosen directly.
Menu
----
The menu bar has entries ``File``, ``Edit``, ``Run``, ``View``, and
``About``. Instead of using the mouse to click on them, the individual
menus can also be activated by hitting the `Alt` key together with the
corresponding underlined letter, that is `Alt-F` will activate the
``File`` menu. For the corresponding activated sub-menus, the key
corresponding the underlined letters can again be used to select entries
instead of using the mouse.
File
^^^^
The ``File`` menu offers the usual options:
- ``New`` will clear the current buffer and reset the file name to ``*unknown*``
- ``Open`` will open a dialog to select a new file
- ``Save`` will save the current file; if the file name is ``*unknown*``
a dialog will open to select a new file name
- ``Save As`` will open a dialog to select and new file name and save
the buffer to it
- ``Quit`` will exit LAMMPS GUI. If there are unsaved changes, a dialog
will appear to either cancel the operation, or to save or not save the
edited file.
In addition, up to 5 recent file names will be listed after the
``Open`` entry that allows re-opening recent files. This list is
stored when quitting and recovered when starting again.
Edit
^^^^
The ``Edit`` menu offers the usual editor functions like ``Undo``,
``Redo``, ``Cut``, ``Copy``, ``Paste``. It can also open a
``Preferences`` dialog (keyboard shortcut `Ctrl-P`) and allows deletion
of all stored preferences so they will be reset to default values.
Run
^^^
The ``Run`` menu has options to start and stop a LAMMPS process.
Rather than calling the LAMMPS executable as a separate executable,
the LAMMPS GUI is linked to the LAMMPS library and thus can run LAMMPS
internally through the :ref:`LAMMPS C-library interface
<lammps_c_api>`.
Specifically, a LAMMPS instance will be created by calling
:cpp:func:`lammps_open_no_mpi`. The buffer contents then executed by
calling :cpp:func:`lammps_commands_string`. Certain commands and
features are only available after a LAMMPS instance is created. Its
presence is indicated by a small LAMMPS ``L`` logo in the status bar
at the bottom left of the main window. As an alternative, it is also
possible to run LAMMPS using the contents of the edited file by
reading the file. This is mainly provided as a fallback option in
case the input uses some feature that is not available when running
from a string buffer.
The LAMMPS calculation will be run in a concurrent thread so that the
GUI can stay responsive and be updated during the run. This can be
used to tell the running LAMMPS instance to stop at the next timestep.
The ``Stop LAMMPS`` entry will do this by calling
:cpp:func:`lammps_force_timeout`, which is equivalent to a :doc:`timer
timeout 0 <timer>` command.
The ``Set Variables...`` entry will open a dialog box where
:doc:`index style variables <variable>` can be set. Those variables
will be passed to the LAMMPS instance when it is created and are thus
set *before* a run is started.
.. image:: JPG/lammps-gui-variables.png
:align: center
:scale: 75%
The ``Set Variables`` dialog will be pre-populated with entries that
are set as index variables in the input and any variables that are
used but not defined, if the built-in parser can detect them. New
rows for additional variables can be added through the ``Add Row``
button and existing rows can be deleted by clicking on the ``X`` icons
on the right.
The ``Create Image`` entry will send a :doc:`dump image <dump_image>`
command to the LAMMPS instance, read the resulting file, and show it
in an ``Image Viewer`` window.
The ``View in OVITO`` entry will launch `OVITO <https://ovito.org>`_
with a :doc:`data file <write_data>` containing the current state of
the system. This option is only available if the LAMMPS GUI can find
the OVITO executable in the system path.
The ``View in VMD`` entry will launch VMD with a :doc:`data file
<write_data>` containing the current state of the system. This option
is only available if the LAMMPS GUI can find the VMD executable in the
system path.
View
^^^^
The ``View`` menu offers to show or hide additional windows with log
output, charts, slide show, variables, or snapshot images. The
default settings for their visibility can be changed in the
``Preferences dialog``.
About
^^^^^
The ``About`` menu finally offers a couple of dialog windows and an
option to launch the LAMMPS online documentation in a web browser.
The ``About LAMMPS`` entry displays a dialog with a summary of the
configuration settings of the LAMMPS library in use and the version
number of LAMMPS GUI itself. The ``Quick Help`` displays a dialog
with a minimal description of LAMMPS GUI. The ``LAMMPS GUI Howto``
entry will open this documentation page from the online documentation
in a web browser window. The ``LAMMPS Manual`` entry will open the
main page of the LAMMPS documentation in the web browser.
-----
Preferences
-----------
The ``Preferences`` dialog allows customization of the behavior and
look of the LAMMPS GUI application. The settings are grouped and each
group is displayed within a tab.
.. |guiprefs1| image:: JPG/lammps-gui-prefs-general.png
:width: 24%
.. |guiprefs2| image:: JPG/lammps-gui-prefs-accel.png
:width: 24%
.. |guiprefs3| image:: JPG/lammps-gui-prefs-image.png
:width: 24%
.. |guiprefs4| image:: JPG/lammps-gui-prefs-editor.png
:width: 24%
|guiprefs1| |guiprefs2| |guiprefs3| |guiprefs4|
General Settings:
^^^^^^^^^^^^^^^^^
- *Echo input to log:* when checked, all input commands, including
variable expansions, will be echoed to the log window. This is
equivalent to using `-echo screen` at the command line. There is no
log *file* produced by default, since LAMMPS GUI uses `-log none`.
- *Include citation details:* when checked full citation info will be
included to the log window. This is equivalent to using `-cite
screen` on the command line.
- *Show log window by default:* when checked, the screen output of a
LAMMPS run will be collected in a log window during the run
- *Show chart window by default:* when checked, the thermodynamic
output of a LAMMPS run will be collected and displayed in a chart
window as line graphs.
- *Show slide show window by default:* when checked, a slide show
window will be shown with images from a dump image command, if
present, in the LAMMPS input.
- *Replace log window on new run:* when checked, an existing log
window will be replaced on a new LAMMPS run, otherwise each run will
create a new log window.
- *Replace chart window on new run:* when checked, an existing chart
window will be replaced on a new LAMMPS run, otherwise each run will
create a new chart window.
- *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.
- *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.
- *Select Text Font:* Opens a font selection dialog where the type and
size for the text editor and log font of the application can be set.
- *GUI update interval:* Allows to set the time interval between GUI
and data updates during a LAMMPS run in milliseconds. The default is
to update the GUI every 100 milliseconds. This is good for most cases.
For LAMMPS runs that run very fast, however, data may be missed and
through lowering this interval, this can be corrected. However, this
will make the GUI use more resources, which may be a problem on some
computers with slower CPUs. The default value is 100 milliseconds.
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.
Snapshot Image:
^^^^^^^^^^^^^^^
This tab allows setting defaults for the snapshot images displayed in
the ``Image Viewer`` window, such as its dimensions and the zoom
factor applied. The *Antialias* switch will render images with twice
the number of pixels for width and height and then smoothly scale the
image back to the requested size. This produces higher quality images
with smoother edges at the expense of requiring more CPU time to
render the image. The *HQ Image mode* option turns on screen space
ambient occlusion (SSAO) mode when rendering images. This is also
more time consuming, but produces a more 'spatial' representation of
the system shading of atoms by their depth. The *VDW Style* checkbox
selects whether atoms are represented by space filling spheres when
checked or by smaller spheres and sticks. Finally there are a couple
of drop down lists to select the background and box colors.
Editor Settings:
^^^^^^^^^^^^^^^^
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
the range between 1 and 32.
The two settings which follow enable or disable the automatic
reformatting when hitting the 'Enter' key and the automatic display of
the completion pop-up window.
-----------
Keyboard Shortcuts
------------------
Almost all functionality is accessible from the menu of the editor
window or through keyboard shortcuts. The following shortcuts are
available (On macOS use the Command key instead of Ctrl/Control).
.. list-table::
:header-rows: 1
:widths: auto
* - Shortcut
- Function
- Shortcut
- Function
- Shortcut
- Function
* - Ctrl+N
- New File
- Ctrl+Z
- Undo edit
- Ctrl+Enter
- Run Input
* - Ctrl+O
- Open File
- Ctrl+Shift+Z
- Redo edit
- Ctrl+/
- Stop Active Run
* - Ctrl+S
- Save File
- Ctrl+C
- Copy text
- Ctrl+Shift+V
- Set Variables
* - Ctrl+Shift+S
- Save File As
- Ctrl+X
- Cut text
- Ctrl+I
- Snapshot Image
* - Ctrl+Q
- Quit Application
- Ctrl+V
- Paste text
- Ctrl+L
- Slide Show
* - Ctrl+W
- Close Window
- Ctrl+A
- Select All
- Ctrl+P
- Preferences
* - Ctrl+Shift+A
- About LAMMPS
- Ctrl+Shift+H
- Quick Help
- Ctrl+Shift+G
- LAMMPS GUI Howto
* - Ctrl+Shift+M
- LAMMPS Manual
- Ctrl+?
- Context Help
- Ctrl+Shift+W
- Show Variables
* - Ctrl+Shift+Enter
- Run File
- TAB
- Reformat line
- Shift+TAB
- Show Completions
Further editing keybindings `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.

View File

@ -0,0 +1,371 @@
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.
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 {}``.
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``,
therefore, this column format is used:
``# atomID molID atomType charge coordX coordY coordZ``.
The ``atomID``\ s are replaced with Moltemplate ``$``-type variables, which
are then substituted with unique numerical IDs. The same logic is applied
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.
The resulting file (``formamide.lt``) follows:
.. code-block:: bash
_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
}
# A list of the bonds in the molecule:
# BondID AtomID1 AtomID2
write('Data Bond List') {
$bond:C1 $atom:C00 $atom:O01
$bond:C2 $atom:C00 $atom:H05
$bond:C3 $atom:C00 $atom:N02
$bond:C4 $atom:N02 $atom:H03
$bond:C5 $atom:N02 $atom:H04
}
}
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
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.
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
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.
# Create the input sample.
solv = new _FAM [5].move( 4.6, 0, 0)
[5].move( 0, 4.6, 0)
[5].move( 0, 0, 4.6)
solv[*][*][*].move(-11.5, -11.5, -11.5)
# Set the simulation box.
write_once("Data Boundary") {
-11.5 11.5 xlo xhi
-11.5 11.5 ylo yhi
-11.5 11.5 zlo zhi
}
# Create an input deck for LAMMPS.
write_once("In Init"){
# Input variables.
variable run string solv_01 # output name
variable ts equal 1 # timestep
variable temp equal 300 # equilibrium temperature
variable p equal 1. # equilibrium pressure
variable d equal 1000 # output frequency
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
# Output.
thermo \$d
thermo_style custom step etotal evdwl ecoul elong ebond eangle &
edihed eimp ke pe temp press vol density cpu
thermo_modify flush yes
# Trajectory.
dump TRJ all dcd \$d \$\{run\}.dcd
dump_modify TRJ unwrap yes
# Thermalisation and relaxation, NPT ensemble.
timestep \$\{ts\}
fix NPT all npt temp \$\{temp\} \$\{temp\} \$\{tcouple\} iso \$p \$p \$\{pcouple\}
velocity all create \$\{temp\} 858096 dist gaussian
# Short runs to update the PPPM settings as the box shinks.
run \$\{equi\} post no
run \$\{equi\} post no
run \$\{equi\} post no
run \$\{equi\}
# From now on, the density shouldn't change too much.
run \$\{prod\}
unfix NPT
}
The first two commands insert the content of files ``oplsaa.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
grid using the coordinate transformation command ``.move( 4.6, 0, 0)``.
See the Moltemplate documentation to learn more about the syntax. As
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
specify the boundary conditions and a set of variables in
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}``.
Compile the master file with:
.. code-block:: bash
moltemplate.sh -overlay-all solv_01.lt
And execute the simulation with the following:
.. code-block:: bash
mpirun -np 4 lmp -in solv_01.in -l solv_01.log
.. figure:: JPG/solv_01.png
:figwidth: 80%
:figclass: align-center
Snapshot of the sample at the beginning and end of the simulation.
Rendered with Ovito.
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
water molecules and ions in the PDB file ``model.pdb``.
It is essential to understand that the order of atoms in the PDB file
and in the Moltemplate master script must match, as we are using the
coordinates from the PDB file in the order they appear. The order of
atoms and molecules in the PDB file provided is as follows:
- 500 water molecules, with atoms ordered in this sequence:
.. parsed-literal::
ATOM 1 O MOL D 1 5.901 7.384 1.103 0.00 0.00 DUM
ATOM 2 H MOL D 1 6.047 8.238 0.581 0.00 0.00 DUM
ATOM 3 H MOL D 1 6.188 7.533 2.057 0.00 0.00 DUM
- 1 polymer molecule.
- 1 Ca\ :sup:`2+` ion.
- 2 Cl\ :sup:`-` ions.
In the master LT file, this sequence of molecules is matched with the
following commands:
.. code-block:: bash
# Create the sample.
wat=new SPC[500]
pol=new PolyNIPAM[1]
cat=new Ca[1]
ani=new Cl[2]
Note that the first command would create 500 water molecules in the
same position in space, and the other commands will use the coordinates
specified in the corresponding molecular topology block. However, the
coordinates will be overwritten by rendering an external atomic
structure file. Note that if the same molecule species are scattered in
the input structure, it is recommended to reorder and group together
for molecule types to facilitate the creation of the input sample.
The molecular topology for the polymer is created as in the previous
example, with the atom types assigned as in the following schema:
.. figure:: JPG/PolyNIPAM.jpg
:scale: 30%
:align: center
Atom types assigned to the polymer's repeating unit.
The molecular topology of the water and ions is stated directly into
the master file for the sake of space, but they could also be written
in a separate file(s) and imported before the sample is created.
The resulting master LT file defining short annealing at a fixed volume
(NVT) follows:
.. code-block:: bash
# Use the OPLS-AA force field for all species.
import /usr/local/moltemplate/moltemplate/force_fields/oplsaa.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
}
}
Cl inherits OPLSAA {
write("Data Atoms"){
$atom:a1 $mol:. @atom:344 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
}
write("Data Bond List") {
$bond:OH1 $atom:O $atom:H1
$bond:OH2 $atom:O $atom:H2
}
}
# Create the sample.
wat=new SPC[500]
pol=new PolyNIPAM[1]
cat=new Ca[1]
ani=new Cl[2]
# Periodic boundary conditions:
write_once("Data Boundary"){
0 26 xlo xhi
0 26 ylo yhi
0 26 zlo zhi
}
# Define the input variables.
write_once("In Init"){
# Input variables.
variable run string sample01 # output name
variable ts equal 2 # timestep
variable temp equal 298.15 # equilibrium temperature
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 &
edihed eimp pe ke temp press atoms vol density cpu
thermo_modify flush yes
compute pe1 all pe/atom pair
dump TRJ all custom 100 \$\{run\}.dump id xu yu zu c_pe1
# Minimise the input structure, just in case.
minimize .01 .001 1000 100000
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
# Short annealing.
timestep \$\{ts\}
fix 1 all nvt temp \$\{temp\} \$\{temp\} \$(100*dt)
velocity all create \$\{temp\} 315443
run \$\{equi\}
unfix 1
}
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
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
angle types, look for the extended ``@atom`` IDs, which in this case
are:
.. code-block:: bash
replace{ @atom:76 @atom:76_b042_a042_d042_i042 }
replace{ @atom:77 @atom:77_b043_a043_d043_i043 }
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*``
Compile the master file with:
.. code-block:: bash
moltemplate.sh -overlay-all -pdb model.pdb sample01.lt
And execute the simulation with the following:
.. code-block:: bash
mpirun -np 4 lmp -in sample01.in -l sample01.log
.. figure:: JPG/sample01.png
:figwidth: 50%
:figclass: align-center
Sample visualized with Ovito loading the trajectory into the DATA
file written after minimization.
------------
.. _OPLSAA96:
**(OPLS-AA)** Jorgensen, Maxwell, Tirado-Rives, J Am Chem Soc,
118(45), 11225-11236 (1996).

View File

@ -1,7 +1,7 @@
Output from LAMMPS (thermo, dumps, computes, fixes, variables)
==============================================================
There are four basic kinds of LAMMPS output:
There are four basic forms of LAMMPS output:
* :doc:`Thermodynamic output <thermo_style>`, which is a list of
quantities printed every few timesteps to the screen and logfile.
@ -20,18 +20,17 @@ output files, depending on what :doc:`dump <dump>` and :doc:`fix <fix>`
commands you specify.
As discussed below, LAMMPS gives you a variety of ways to determine
what quantities are computed and printed when the thermodynamics,
what quantities are calculated and printed when the thermodynamics,
dump, or fix commands listed above perform output. Throughout this
discussion, note that users can also :doc:`add their own computes and
fixes to LAMMPS <Modify>` which can then generate values that can then
be output with these commands.
fixes to LAMMPS <Modify>` which can generate values that can then be
output with these commands.
The following subsections discuss different LAMMPS commands related
to output and the kind of data they operate on and produce:
* :ref:`Global/per-atom/local/per-grid data <global>`
* :ref:`Scalar/vector/array data <scalar>`
* :ref:`Per-grid data <grid>`
* :ref:`Disambiguation <disambiguation>`
* :ref:`Thermodynamic output <thermo>`
* :ref:`Dump file output <dump>`
@ -48,34 +47,65 @@ to output and the kind of data they operate on and produce:
Global/per-atom/local/per-grid data
-----------------------------------
Various output-related commands work with four different styles of
Various output-related commands work with four different "styles" of
data: global, per-atom, local, and per-grid. A global datum is one or
more system-wide values, e.g. the temperature of the system. A
per-atom datum is one or more values per atom, e.g. the kinetic energy
of each atom. Local datums are calculated by each processor based on
the atoms it owns, but there may be zero or more per atom, e.g. a list
the atoms it owns, and there may be zero or more per atom, e.g. a list
of bond distances.
A per-grid datum is one or more values per grid cell, for a grid which
overlays the simulation domain. The grid cells and the data they
store are distributed across processors; each processor owns the grid
cells whose center point falls within its subdomain.
overlays the simulation domain. Similar to atoms and per-atom data,
the grid cells and the data they store are distributed across
processors; each processor owns the grid cells whose center points
fall within its subdomain.
.. _scalar:
Scalar/vector/array data
------------------------
Global, per-atom, and local datums can come in three kinds: a single
scalar value, a vector of values, or a 2d array of values. The doc
page for a "compute" or "fix" or "variable" that generates data will
specify both the style and kind of data it produces, e.g. a per-atom
vector.
Global, per-atom, local, and per-grid datums can come in three
"kinds": a single scalar value, a vector of values, or a 2d array of
values. More specifically these are the valid kinds for each style:
When a quantity is accessed, as in many of the output commands
discussed below, it can be referenced via the following bracket
notation, where ID in this case is the ID of a compute. The leading
"c\_" would be replaced by "f\_" for a fix, or "v\_" for a variable:
* global scalar
* global vector
* global array
* per-atom vector
* per-atom array
* local vector
* local array
* per-grid vector
* per-grid array
A per-atom vector means a single value per atom; the "vector" is the
length of the number of atoms. A per-atom array means multiple values
per atom. Similarly a local vector or array means one or multiple
values per entity (e.g. per bond in the system). And a per-grid
vector or array means one or multiple values per grid cell.
The doc page for a compute or fix or variable that generates data will
specify both the styles and kinds of data it produces, e.g. a per-atom
vector. Note that a compute or fix may generate multiple styles and
kinds of output. However, for per-atom data only a vector or array is
output, never both. Likewise for per-local and per-grid data. An
example of a fix which generates multiple styles and kinds of data is
the :doc:`fix mdi/qm <fix_mdi_qm>` command. It outputs a global
scalar, global vector, and per-atom array for the quantum mechanical
energy and virial of the system and forces on each atom.
By contrast, different variable styles generate only a single kind of
data: a global scalar for an equal-style variable, global vector for a
vector-style variable, and a per-atom vector for an atom-style
variable.
When data is accessed by another command, as in many of the output
commands discussed below, it can be referenced via the following
bracket notation, where ID in this case is the ID of a compute. The
leading "c\_" would be replaced by "f\_" for a fix, or "v\_" for a
variable (and ID would be the name of the variable):
+-------------+--------------------------------------------+
| c_ID | entire scalar, vector, or array |
@ -85,40 +115,56 @@ notation, where ID in this case is the ID of a compute. The leading
| c_ID[I][J] | one element of array |
+-------------+--------------------------------------------+
In other words, using one bracket reduces the dimension of the data
once (vector -> scalar, array -> vector). Using two brackets reduces
the dimension twice (array -> scalar). Thus a command that uses
scalar values as input can typically also process elements of a vector
or array.
Note that using one bracket reduces the dimension of the data once
(vector -> scalar, array -> vector). Using two brackets reduces the
dimension twice (array -> scalar). Thus a command that uses scalar
values as input can also conceptually operate on an element of a
vector or array.
.. _grid:
Per-grid data
------------------------
Per-grid data can come in two kinds: a vector of values (one per grid
cekk), or a 2d array of values (multiple values per grid ckk). The
doc page for a "compute" or "fix" that generates data will specify
names for both the grid(s) and datum(s) it produces, e.g. per-grid
vectors or arrays, which can be referenced by other commands. See the
:doc:`Howto grid <Howto_grid>` doc page for more details.
Per-grid vectors or arrays are accessed similarly, except that the ID
for the compute or fix includes a grid name and a data name. This is
because a fix or compute can create multiple grids (of different
sizes) and multiple sets of data (for each grid). The fix or compute
defines names for each grid and for each data set, so that all of them
can be accessed by other commands. See the :doc:`Howto grid
<Howto_grid>` doc page for more details.
.. _disambiguation:
Disambiguation
--------------
Some computes and fixes produce data in multiple styles, e.g. a global
scalar and a per-atom vector. Usually the context in which the input
script references the data determines which style is meant. Example:
if a compute provides both a global scalar and a per-atom vector, the
former will be accessed by using ``c_ID`` in an equal-style variable,
while the latter will be accessed by using ``c_ID`` in an atom-style
variable. Note that atom-style variable formulas can also access
global scalars, but in this case it is not possible to do this
directly because of the ambiguity. Instead, an equal-style variable
can be defined which accesses the global scalar, and that variable can
be used in the atom-style variable formula in place of ``c_ID``.
When a compute or fix produces data in multiple styles, e.g. global
and per-atom, a reference to the data can sometimes be ambiguous.
Usually the context in which the input script references the data
determines which style is meant.
For example, if a compute outputs a global vector and a per-atom
array, an element of the global vector will be accessed by using
``c_ID[I]`` in :doc:`thermodynamic output <thermo_style>`, while a
column of the per-atom array will be accessed by using ``c_ID[I]`` in
a :doc:`dump custom <dump>` command.
However, if a :doc:`atom-style variable <variable>` references
``c_ID[I]``, then it could be intended to refer to a single element of
the global vector or a column of the per-atom array. The doc page for
any command that has a potential ambiguity (variables are the most
common) will explain how to resolve the ambiguity.
In this case, an atom-style variables references per-atom data if it
exists. If access to an element of a global vector is needed (as in
this example), an equal-style variable which references the value can
be defined and used in the atom-style variable formula instead.
Similarly, :doc:`thermodynamic output <thermo_style>` can only
reference global data from a compute or fix. But you can indirectly
access per-atom data as follows. The reference ``c_ID[245][2]`` for
the ID of a :doc:`compute displace/atom <compute_displace_atom>`
command, refers to the y-component of displacement for the atom with
ID 245. While you cannot use that reference directly in the
:doc:`thermo_style <thermo_style>` command, you can use it an
equal-style variable formula, and then reference the variable in
thermodynamic output.
.. _thermo:
@ -389,7 +435,7 @@ output and input data types must match, e.g. global/per-atom/local
data and scalar/vector/array data.
Also note that, as described above, when a command takes a scalar as
input, that could be an element of a vector or array. Likewise a
input, that could also be an element of a vector or array. Likewise a
vector input could be a column of an array.
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+

View File

@ -53,10 +53,10 @@ System-wide Installation
Step 1: Building LAMMPS as a shared library
"""""""""""""""""""""""""""""""""""""""""""
To use LAMMPS inside of Python it has to be compiled as shared library. This
library is then loaded by the Python interface. In this example we enable the
MOLECULE package and compile LAMMPS with C++ exceptions, PNG, JPEG and FFMPEG
output support enabled.
To use LAMMPS inside of Python it has to be compiled as shared
library. This library is then loaded by the Python interface. In this
example we enable the MOLECULE package and compile LAMMPS with PNG, JPEG
and FFMPEG output support enabled.
Step 1a: For the CMake based build system, the steps are:
@ -66,7 +66,7 @@ Step 1a: For the CMake based build system, the steps are:
cd $LAMMPS_DIR/build-shared
# MPI, PNG, Jpeg, FFMPEG are auto-detected
cmake ../cmake -DPKG_MOLECULE=yes -DLAMMPS_EXCEPTIONS=yes -DBUILD_LIB=yes -DBUILD_SHARED_LIBS=yes
cmake ../cmake -DPKG_MOLECULE=yes -DBUILD_LIB=yes -DBUILD_SHARED_LIBS=yes
make
Step 1b: For the legacy, make based build system, the steps are:
@ -79,7 +79,7 @@ Step 1b: For the legacy, make based build system, the steps are:
make yes-MOLECULE
# compile shared library using Makefile
make mpi mode=shlib LMP_INC="-DLAMMPS_PNG -DLAMMPS_JPEG -DLAMMPS_FFMPEG -DLAMMPS_EXCEPTIONS" JPG_LIB="-lpng -ljpeg"
make mpi mode=shlib LMP_INC="-DLAMMPS_PNG -DLAMMPS_JPEG -DLAMMPS_FFMPEG" JPG_LIB="-lpng -ljpeg"
Step 2: Installing the LAMMPS Python package
""""""""""""""""""""""""""""""""""""""""""""
@ -133,7 +133,7 @@ to the location in the virtual environment with:
.. code-block:: bash
cmake . -DPYTHON_EXECUTABLE=$(which python)
cmake . -DPython_EXECUTABLE=$(which python)
# install LAMMPS package in virtualenv
(testing) make install-python
@ -356,18 +356,16 @@ Together with matplotlib plotting data out of LAMMPS becomes simple:
Error handling with PyLammps
----------------------------
Compiling the shared library with C++ exception support provides a better error
handling experience. Without exceptions the LAMMPS code will terminate the
current Python process with an error message. C++ exceptions allow capturing
them on the C++ side and rethrowing them on the Python side. This way you
can handle LAMMPS errors through the Python exception handling mechanism.
Using C++ exceptions in LAMMPS for errors allows capturing them on the
C++ side and rethrowing them on the Python side. This way you can handle
LAMMPS errors through the Python exception handling mechanism.
.. warning::
Capturing a LAMMPS exception in Python can still mean that the
current LAMMPS process is in an illegal state and must be terminated. It is
advised to save your data and terminate the Python instance as quickly as
possible.
current LAMMPS process is in an illegal state and must be
terminated. It is advised to save your data and terminate the Python
instance as quickly as possible.
Using PyLammps in IPython notebooks and Jupyter
-----------------------------------------------

View File

@ -52,8 +52,8 @@ JSON
"ke": 2.4962152903997174569
}
YAML format thermo_style output
===============================
YAML format thermo_style or dump_style output
=============================================
Extracting data from log file
-----------------------------
@ -112,6 +112,9 @@ of that run:
Number of runs: 2
TotEng = -4.62140097780047
Extracting data from dump file
------------------------------
.. versionadded:: 4May2022
YAML format output has been added to multiple commands in LAMMPS,
@ -119,6 +122,45 @@ for example :doc:`dump yaml <dump>` or :doc:`fix ave/time <fix_ave_time>`
Depending on the kind of data being written, organization of the data
or the specific syntax used may change, but the principles are very
similar and all files should be readable with a suitable YAML parser.
A simple example for this is given below:
.. code-block:: python
import yaml
try:
from yaml import CSafeLoader as YamlLoader
except ImportError:
from yaml import SafeLoader as YamlLoader
timesteps = []
with open("dump.yaml", "r") as f:
data = yaml.load_all(f, Loader=YamlLoader)
for d in data:
print('Processing timestep %d' % d['timestep'])
timesteps.append(d)
print('Read %d timesteps from yaml dump' % len(timesteps))
print('Second timestep: ', timesteps[1]['timestep'])
print('Box info: x: ' , timesteps[1]['box'][0], ' y:', timesteps[1]['box'][1], ' z:',timesteps[1]['box'][2])
print('First 5 per-atom columns: ', timesteps[1]['keywords'][0:5])
print('Corresponding 10th atom data: ', timesteps[1]['data'][9][0:5])
The corresponding output for a YAML dump command added to the "melt" example is:
.. parsed-literal::
Processing timestep 0
Processing timestep 50
Processing timestep 100
Processing timestep 150
Processing timestep 200
Processing timestep 250
Read 6 timesteps from yaml dump
Second timestep: 50
Box info: x: [0, 16.795961913825074] y: [0, 16.795961913825074] z: [0, 16.795961913825074]
First 5 per-atom columns: ['id', 'type', 'x', 'y', 'z']
Corresponding 10th atom data: [10, 1, 4.43828, 0.968481, 0.108555]
Processing scalar data with Python
----------------------------------

View File

@ -193,11 +193,14 @@ file changed):
write_data tip4p-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/nvt/small
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
to be reserved for them, but we need to switch to atom style full or use
:doc:`fix property/atom mol <fix_property_atom>` so that fix
rigid/nvt/small can identify rigid bodies by their molecule ID:
to be reserved for them, but we need to either switch to 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:
.. code-block:: LAMMPS
@ -216,17 +219,17 @@ rigid/nvt/small can identify rigid bodies by their molecule ID:
pair_coeff 2 2 0.0 1.0
pair_coeff 3 3 0.0 1.0
fix mol all property/atom mol
fix mol all property/atom mol ghost yes
molecule water tip4p.mol
create_atoms 0 random 33 34564 NULL mol water 25367 overlap 1.33
neigh_modify exclude molecule/intra all
timestep 0.5
fix integrate all rigid/nvt/small molecule temp 300.0 300.0 100.0
velocity all create 300.0 5463576
fix integrate all rigid/small molecule langevin 300.0 300.0 100.0 2345634
thermo_style custom step temp press etotal density pe ke
thermo 1000
run 20000
thermo 2000
run 40000
write_data tip4p-explicit.data nocoeff
.. _tip4p_molecule:

View File

@ -81,11 +81,13 @@ long-range Coulombic solver (e.g. Ewald or PPPM in LAMMPS).
Below is the code for a LAMMPS input file for setting up a simulation of
TIP5P water with a molecule file. Because of using :doc:`fix
rigid/nvt/small <fix_rigid>` no bonds need to be defined and thus no
extra storage needs to be reserved for them, but we need to switch to
rigid/small <fix_rigid>` no bonds need to be defined and thus no extra
storage needs to be reserved for them, but we need to either switch to
atom style full or use :doc:`fix property/atom mol <fix_property_atom>`
so that fix rigid/nvt/small can identify rigid bodies by their molecule
ID:
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:
.. code-block:: LAMMPS
@ -107,11 +109,11 @@ ID:
fix mol all property/atom mol
molecule water tip5p.mol
create_atoms 0 random 33 34564 NULL mol water 25367 overlap 1.33
neigh_modify exclude molecule/intra all
timestep 0.5
fix integrate all rigid/nvt/small molecule temp 300.0 300.0 100.0
fix integrate all rigid/small molecule langevin 300.0 300.0 50.0 235664
reset_timestep 0
velocity all create 300.0 5463576
thermo_style custom step temp press etotal density pe ke
thermo 1000

View File

@ -12,7 +12,8 @@ is created, e.g. by the :doc:`create_box <create_box>` or
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
commands. Additionally, LAMMPS defines box size parameters lx,ly,lz
where lx = xhi-xlo, and similarly in the y and z dimensions. The 6
parameters, as well as lx,ly,lz, can be output via the :doc:`thermo_style custom <thermo_style>` command.
parameters, as well as lx,ly,lz, can be output via the
:doc:`thermo_style custom <thermo_style>` command.
LAMMPS also allows simulations to be performed in triclinic
(non-orthogonal) simulation boxes shaped as a parallelepiped with

View File

@ -28,16 +28,16 @@ provides `limited support for subversion clients <svn_>`_.
You can follow the LAMMPS development on 4 different git branches:
* **release** : this branch is updated with every patch or feature release;
updates are always "fast-forward" merges from *develop*
* **develop** : this branch follows the ongoing development and
is updated with every merge commit of a pull request
* **stable** : this branch is updated from the *release* branch with
every stable release version and also has selected bug fixes with every
update release when the *maintenance* branch is merged into it
* **maintenance** : this branch collects back-ported bug fixes from the
*develop* branch to the *stable* branch. It is used to update *stable*
for update releases and it synchronized with *stable* at each stable release.
* **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*
* **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".
* **stable** : this branch is updated from the *release* branch with
every "stable release" version and also has selected bug fixes with
every "update release" when the *maintenance* branch is merged into it
To access the git repositories on your box, use the clone command to
create a local copy of the LAMMPS repository with a command like:

View File

@ -5,7 +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, MPIIO, POEMS,
additional requirements not yet met: GPU, KOKKOS, MSCG, POEMS,
VORONOI.
After installing Homebrew, you can install LAMMPS on your system with

View File

@ -18,11 +18,10 @@ needed to run in parallel with MPI.
The LAMMPS binaries contain *all* :doc:`optional packages <Packages>`
included in the source distribution except: ADIOS, H5MD, KIM, ML-PACE,
ML-QUIP, MSCG, NETCDF, PLUMED, QMMM, SCAFACOS, and VTK. The serial
version also does not include the MPIIO and LATBOLTZ packages. The
PYTHON package is only available in the Python installers that bundle a
Python runtime. The GPU package is compiled for OpenCL with mixed
precision kernels.
ML-QUIP, MSCG, NETCDF, QMMM, SCAFACOS, and VTK. The serial version also
does not include the LATBOLTZ package. The PYTHON package is only
available in the Python installers that bundle a Python runtime. The
GPU package is compiled for OpenCL with mixed precision kernels.
The LAMMPS library is compiled as a shared library and the
:doc:`LAMMPS Python module <Python_module>` is installed, so that

View File

@ -5,7 +5,7 @@ LAMMPS is designed to be a fast, parallel engine for molecular
dynamics (MD) simulations. It provides only a modest amount of
functionality for setting up simulations and analyzing their output.
Specifically, LAMMPS was not conceived and designed for:
Originally, LAMMPS was not conceived and designed for:
* being run through a GUI
* building molecular systems, or building molecular topologies
@ -14,9 +14,10 @@ Specifically, LAMMPS was not conceived and designed for:
* visualize your MD simulation interactively
* plot your output data
Over the years some of these limitations have been reduced or
removed, through features added to LAMMPS or external tools
that either closely interface with LAMMPS or extend LAMMPS.
Over the years many of these limitations have been reduced or
removed. In part through features added to LAMMPS and in part
through external tools that either closely interface with LAMMPS
or extend LAMMPS.
Here are suggestions on how to perform these tasks:
@ -24,8 +25,9 @@ Here are suggestions on how to perform these tasks:
wraps the library interface is provided. Thus, GUI interfaces can be
written in Python or C/C++ that run LAMMPS and visualize or plot its
output. Examples of this are provided in the python directory and
described on the :doc:`Python <Python_head>` doc page. Also, there
are several external wrappers or GUI front ends.
described on the :doc:`Python <Python_head>` doc page. As of version
2 August 2023 :ref:`a GUI tool <lammps_gui>` is included in LAMMPS.
Also, there are several external wrappers or GUI front ends.
* **Builder:** Several pre-processing tools are packaged with LAMMPS.
Some of them convert input files in formats produced by other MD codes
such as CHARMM, AMBER, or Insight into LAMMPS input formats. Some of

View File

@ -12,7 +12,7 @@ Programming language standards
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Most of the C++ code currently requires a compiler compatible with the
C++11 standard, the KOKKOS package currently requires C++14. Most of
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.
@ -25,7 +25,7 @@ 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.10.
can be created using CMake. CMake must be at least version 3.16.
Operating systems
^^^^^^^^^^^^^^^^^
@ -62,9 +62,9 @@ regularly tested.
Portability compliance
^^^^^^^^^^^^^^^^^^^^^^
Only a subset of the LAMMPS source code is fully compliant to all of the
above mentioned standards. This is rather typical for projects like
LAMMPS that largely depend on contributions from the user community.
Only a subset of the LAMMPS source code is *fully* compliant to *all*
of the above mentioned standards. This is rather typical for projects
like LAMMPS that largely depend on contributions from the user community.
Not all contributors are trained as programmers and not all of them have
access to multiple platforms for testing. As part of the continuous
integration process, however, all contributions are automatically tested

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
doc/src/JPG/image.both.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
doc/src/JPG/image.fsaa.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
doc/src/JPG/image.ssao.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 KiB

After

Width:  |  Height:  |  Size: 304 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

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