Compare commits

...

1954 Commits

Author SHA1 Message Date
a74500f416 Merge pull request #4205 from akohlmey/next-release
Update version tags for next feature release
2024-06-26 23:26:04 -04:00
d47b9c6571 cosmetic 2024-06-26 21:49:02 -04:00
e72a786a44 fix typo 2024-06-26 19:58:09 -04:00
9d94345f09 Merge branch 'develop' into next-release 2024-06-26 19:50:27 -04:00
7b70ad928f Merge pull request #4203 from akohlmey/collected-small-changes
Collected small changes and bugfixes
2024-06-26 19:46:21 -04:00
14086cc9ad add warning about memory consumption 2024-06-26 10:50:38 -04:00
25985abfc0 add version tag 2024-06-26 09:50:52 -04:00
b1d1213dfd reformate, make small corrections, align with other doc files and use sphinx-design to make html more compact 2024-06-26 07:30:50 -04:00
252f48b2c1 Mention bonded force field primer from typelabel paper in bioFF howto 2024-06-26 07:27:11 -04:00
44b66cb56b various documentation fixups, dedup references, wrap paragraphs, adjust underlines, add missing index 2024-06-26 07:26:03 -04:00
8173142950 Merge branch 'develop' into collected-small-changes 2024-06-26 06:16:21 -04:00
9ac821b3cb protect against 32-bit integer overflow 2024-06-26 05:07:53 -04:00
acc28e01c3 Merge pull request #4050 from akohlmey/bioff-doc-updates
Bio force field documentation updates
2024-06-26 04:27:33 -04:00
da2dc9a154 handle case of no LAMMPS instance or no simulation box 2024-06-26 01:30:14 -04:00
89193c8a66 expand scope of files to ignore that are created by cmake/ctest 2024-06-25 22:32:51 -04:00
ee85249ad6 update codeowners 2024-06-25 20:26:06 -04:00
8d280a73ac small programming style updates 2024-06-25 20:21:51 -04:00
baaa9dbedd move initializers for structs from header file to implementation, add constructors 2024-06-25 20:18:37 -04:00
e5250a76ac apply clang-format 2024-06-25 20:07:34 -04:00
e3fb1f24bd Merge branch 'develop' into collected-small-changes 2024-06-25 19:41:45 -04:00
0b0ec155ca whitespace 2024-06-25 19:40:07 -04:00
03695ac9b1 remove temporary files 2024-06-25 19:39:48 -04:00
3323e45372 Merge pull request #4168 from cesmix-mit/kokkospod
New features for the ML-POD package
2024-06-25 19:35:08 -04:00
b69e7e03fd small fix 2024-06-25 19:07:59 -04:00
116ac85a34 use consistent method to silence compiler warnings about unused parameters 2024-06-25 19:07:50 -04:00
b62a05a147 fix up garbled references to other doc pages 2024-06-25 19:06:23 -04:00
8e4ffdc84e update docs for fully integrating utils::bounds_typlabel() function 2024-06-25 18:23:07 -04:00
5cbe85ecf1 remove redundant error argument (accessible through lmp) 2024-06-25 18:19:41 -04:00
fcba5ee3c9 silence compiler warnings and apply clang-format 2024-06-25 15:01:17 -04:00
fd2eab9924 Remove commented out code 2024-06-25 14:53:05 -04:00
94742c043c Merge branch 'kokkospod' of https://github.com/cesmix-mit/lammps into kokkospod 2024-06-25 14:43:02 -04:00
1892ee35d4 remove printf or replace it with utils:logmsg 2024-06-25 14:42:57 -04:00
3453f13c2d correct capitalization 2024-06-25 13:33:29 -04:00
125da5723b whitespace 2024-06-25 13:31:33 -04:00
e6e89ec54a Merge branch 'develop' into collected-small-changes 2024-06-25 13:31:15 -04:00
b84c09d30e update version tags for next feature release 2024-06-25 13:30:38 -04:00
8fa0064dc2 Merge pull request #4204 from lammps/dpd-coul-slater-doc-page
Minor edits to new pair dpd/coul/slater/long doc page
2024-06-25 13:21:04 -04:00
e830dd9761 Merge pull request #14 from akohlmey/kokkospod
Update kokkospod branch to upstream and minor cleanups and corrections
2024-06-25 00:01:25 -04:00
6ef8472481 Merge commit 'refs/pull/4168/head' of github.com:lammps/lammps into kokkospod 2024-06-24 23:52:39 -04:00
6b659a6e56 Remove commented out code and turn off timing 2024-06-24 22:48:34 -04:00
ebbb2673f1 Merge branch 'kokkospod' of https://github.com/cesmix-mit/lammps into kokkospod 2024-06-24 22:34:52 -04:00
e195f1759f Remove unused parameters, change command name, and update documentation and examples.. 2024-06-24 22:32:35 -04:00
eb7c6e47ae Merge pull request #15 from stanmoore1/kokkospod
Small changes for https://github.com/lammps/lammps/pull/4168
2024-06-24 21:26:59 -04:00
a2fcec6aaa fix typos, spelling, incorrect markup, and correct and add more details for speedup note 2024-06-24 20:01:41 -04:00
667c673855 Update docs 2024-06-24 17:55:28 -06:00
a88a22c36e Small cleanup 2024-06-24 17:52:58 -06:00
d5e5630cc5 Comment out unused var 2024-06-24 17:42:17 -06:00
63f61a41dc Update .gitignore for POD 2024-06-24 17:41:21 -06:00
b9a850d93f Add logic for GNU Make 2024-06-24 17:40:47 -06:00
bf6e0d59c9 fix bug in general triclinic dump refactor reported by @stanmoore1 2024-06-24 19:18:49 -04:00
da095a1d79 minor edits to new pair dpd/coul/slater/long doc page 2024-06-24 16:36:38 -06:00
9a41f6aedf spelling updates 2024-06-23 04:21:01 -04:00
01a85639f9 Merge branch 'develop' into kokkospod 2024-06-23 03:56:39 -04:00
0d1759d4a4 small programming style updates 2024-06-23 03:56:23 -04:00
e17dc38087 use utils::numeric to convert text to numbers 2024-06-23 03:56:10 -04:00
21685136be add braces to group commands according to indentation 2024-06-23 03:55:50 -04:00
79cc64766b initialize all pointers to null, reorder to match definition 2024-06-23 03:55:10 -04:00
3c81badc5c avoid namespace pollutions from defines in eapot.h 2024-06-23 03:40:04 -04:00
487a9ae73e return to alphabetical order 2024-06-23 03:09:54 -04:00
0e28eb0348 Make sure CMAKE_INSTALL_FULL_LIBDIR is defined when using it 2024-06-22 23:28:05 -04:00
fb529bb9e8 trigger calling Fix::reset_dt() which may cause segfaults with respa 2024-06-22 20:04:40 -04:00
9dc85dec54 apply clang-format 2024-06-22 20:04:09 -04:00
5693c8ac33 modernize fix instance lookup 2024-06-22 20:03:14 -04:00
b8cbd1bfc3 use proper technical term 2024-06-22 14:26:24 -04:00
090ed81e77 avoid segfault in fix shake/rattle when timestep is changed before run 2024-06-22 14:20:23 -04:00
f1c5b4b68d avoid access to uninitialized step_respa pointer in Nose-Hoover fixes 2024-06-22 04:16:46 -04:00
353121c942 update compute descriptors 2024-06-21 22:08:20 -04:00
cfcd2b2068 Merge pull request #4202 from lammps/dump-triclinic-bug-fix
Dump triclinic bug fix
2024-06-21 14:29:31 -04:00
cf2dede47f whitespace 2024-06-21 12:20:59 -04:00
13f0e37a57 Merge pull request #4201 from lammps/amoeba-doc-page
Fix errors in fix amoeba/pitorsion doc page
2024-06-21 12:17:26 -04:00
eba1599f9c typo comment change 2024-06-21 09:35:10 -06:00
de684a15b6 typo code change 2024-06-21 09:33:12 -06:00
fc539b46ea change all function ptrs and 2 example dump files 2024-06-21 09:23:04 -06:00
7dae9c05ba changes for triclinic function ptr init 2024-06-21 08:59:09 -06:00
d0da16070b one more change 2024-06-21 08:00:50 -06:00
6b42545044 fix errors in fix amoeba/pitorsion doc page 2024-06-21 07:51:49 -06:00
241a8dda63 Merge pull request #4200 from akohlmey/collected-small-changes
Collected small fixes for development version
2024-06-21 09:42:57 -04:00
fe13768fa4 remove unused class member 2024-06-21 01:16:50 -04:00
c7f386ce9f fix missing arguments and cut-n-paste error reported by coverity scan 2024-06-21 01:13:36 -04:00
a6d51b7cc8 follow LAMMPS programming style more closely 2024-06-21 01:04:55 -04:00
41d24f5d57 apply clang-format 2024-06-21 01:02:02 -04:00
6d1fb9eb62 fix typo 2024-06-20 20:31:24 -04:00
fc98f626b4 Merge branch 'develop' into collected-small-changes 2024-06-20 20:13:22 -04:00
7e8f956e05 remove accidental commit 2024-06-20 20:09:28 -04:00
8ce284f125 Merge pull request #4145 from jrgissing/improve_type_label_support
Improve type label support
2024-06-20 16:30:22 -04:00
dfabe5d333 Merge remote-tracking branch 'github/develop' into collected-small-changes 2024-06-20 16:25:43 -04:00
65f2767d9d Merge pull request #4169 from ohenrich/cg-dna
CG-DNA: Real units and potential reader
2024-06-20 16:25:16 -04:00
734fdf4a46 rename CG-DNA potential files 2024-06-20 14:33:26 -04:00
00d7aa935f follow LAMMPS programming style more closely, silence compiler warnings 2024-06-20 09:39:21 -04:00
001ac67b3b apply clang-format 2024-06-20 09:23:32 -04:00
c8dc135b8f update according to "include-what-you-use" principles 2024-06-20 09:22:32 -04:00
2dc7de417a Merge branch 'develop' into improve_type_label_support 2024-06-20 08:56:02 -04:00
9c8c04a7b4 Merge branch 'develop' into cg-dna 2024-06-20 02:44:29 -04:00
8d69bd77ef don't throw an error when reading QEq parameters from file 2024-06-19 18:28:04 -04:00
71c5e04121 Merge pull request #4179 from akohlmey/collected-small-changes
Collected small changes and fixes
2024-06-19 17:39:57 -04:00
cb0af02748 Merge pull request #4193 from akohlmey/extra-command-package
Create new EXTRA-COMMAND package
2024-06-19 15:06:20 -04:00
ddec24308c small docs and spelling corrections and updates 2024-06-19 15:04:14 -04:00
778d11c79e Merge remote-tracking branch 'github/develop' into collected-small-changes 2024-06-19 14:46:04 -04:00
80556214e4 remove unused class member 2024-06-19 13:57:10 -04:00
629a9cbe3d Merge pull request #4188 from Eddy-Barraud/dpd_charged
add pair styles dpd/coul/slater/long and dpd/coul/slater/long/gpu
2024-06-19 13:50:46 -04:00
c4f5605518 Merge pull request #4197 from rbberger/library_interface_update
library: add comm->procgrid to extract_global
2024-06-19 12:04:07 -04:00
9b419b669d Merge pull request #4192 from gtribello/fix-plumed-cmake
Update to Plumed interface
2024-06-19 12:03:43 -04:00
ef902b03f9 Merge branch 'develop' into collected-small-changes 2024-06-19 12:02:56 -04:00
4e0bf6137d Merge pull request #4110 from uf3/ml-uf3
Implementation of pair_style uf3 and uf3/kk
2024-06-19 11:43:32 -04:00
45508baee5 major refactor for restart, data file handling. removal of dead code. 2024-06-19 11:09:56 -04:00
6ada6b7bf2 update example for dpd/coul/slater/long 2024-06-19 11:00:21 -04:00
0aff26705c correct force style input 2024-06-19 10:40:19 -04:00
37572225f4 Merge pull request #4191 from akohlmey/pair-hybrid-molecule
Add new pair style hybrid/molecular
2024-06-19 00:49:37 -04:00
83a024b26b add force style test 2024-06-18 21:41:34 -04:00
71b38521c5 reformat and remove duplicate NP_MULTI_OLD flags 2024-06-18 21:21:20 -04:00
2a132dfe8f add tests for PyLammps to check new exports 2024-06-18 21:13:33 -04:00
19a8313578 switch proc_grid to procgrid with backward compatibility for PyLammps 2024-06-18 21:13:14 -04:00
b9f8a5b811 Merge pull request #4184 from stanmoore1/pair_soft_kk
Add Kokkos version of `pair_style` soft
2024-06-18 20:52:34 -04:00
d54f38ff62 whitespace 2024-06-18 20:46:32 -04:00
740b206e7f Tightened up the definitions of deltamu's and conc's 2024-06-18 11:04:47 -06:00
43cc8696dd mention that verlet/split is not available for TIP4P 2024-06-18 08:46:18 -04:00
41227e0e93 apply param per type check only on atom types in fix group 2024-06-18 08:35:18 -04:00
3d1f933e21 port QEq parameter check from fix qeq/reaxff to fix qeq/shielded 2024-06-18 07:05:29 -04:00
5e72dc0d6b error out when extracting non-existent QEq paramters from ReaxFF, e.g. when using pair style hybrid 2024-06-18 06:59:12 -04:00
88ccaeddc1 always return initialized data when extracting per-type info 2024-06-18 06:58:26 -04:00
ab800b4e26 skip over groups with whitepsace in their name so we don't create illegal index files 2024-06-17 17:23:05 -04:00
c867bb3e28 enable and apply clang-format 2024-06-17 17:00:00 -04:00
9856ef7d81 better error handling when processing index files with illegal group names 2024-06-17 16:57:22 -04:00
318b43f358 update group2ndx/ndx2group docs 2024-06-17 15:02:43 -04:00
f4005e350a update fix plumed API version check and add reminder comments to build files 2024-06-17 07:11:56 -04:00
4be1b41aef class n func rename 2024-06-17 10:03:06 +02:00
d8c88c70ea Merge pull request #4189 from evoyiatzis/patch-2
Update fep.py
2024-06-16 01:27:42 -04:00
7704227bfb Merge pull request #4195 from jtclemm/small-patches
Various small patches for GRANULAR and BPM packages
2024-06-16 01:26:01 -04:00
59fb8a6835 avoid segfault trying to delete non-copied style 2024-06-15 14:08:14 -04:00
d2ea3b1ac5 add some tests for new features 2024-06-15 08:28:52 -04:00
ee0dd80cbe fix another typo 2024-06-15 06:17:13 -04:00
9b52f66a5a fix typos 2024-06-15 05:55:45 -04:00
cb3aa07287 update PyLammps to use added properties directly instead of parsing them. 2024-06-14 20:21:19 -04:00
1ce94e47d8 also make "comm->ghost_velocity" accessible 2024-06-14 20:20:53 -04:00
77b610a2bd also make comm->style, comm->layout, and comm->mode accessible through the library interface 2024-06-14 20:04:21 -04:00
514039ed62 library: add comm->procgrid to extract_global 2024-06-14 08:10:24 -06:00
a4ac48addf add example file and author contrib 2024-06-14 10:13:48 +02:00
11ef510a93 Merge branch 'lammps:develop' into improve_type_label_support 2024-06-13 19:26:42 -04:00
03251e823f add terminal newline 2024-06-13 15:20:12 -04:00
fb23df7bf7 example input file 2024-06-13 17:35:45 +02:00
575853b27a correct headers' author 2024-06-13 17:11:54 +02:00
8eec17d409 add missing file for CMake build 2024-06-13 09:26:23 -04:00
e95598a716 doc fixes 2024-06-13 09:17:09 -04:00
397dc9a7f6 build system and maintenance updates 2024-06-13 09:13:55 -04:00
4b0adcc66a avoid segfaults when updating charts in simulations with fast thermo output 2024-06-13 08:34:25 -04:00
3865dda5a2 integrate new doc file into manual 2024-06-13 08:33:40 -04:00
1b040d7108 white space fix 2024-06-13 13:49:18 +02:00
8bbbe2dd6b Update pair_dpd_coul_slater_long.rst 2024-06-13 11:43:57 +02:00
35cbc84329 Update lal_dpd_coul_slater_long.cpp 2024-06-13 10:25:56 +02:00
ce7ba21b8b clarify potentially misleading comment 2024-06-12 17:02:25 -04:00
67d86b559e Clarifying BPM logic and removing spelling errors in doc 2024-06-12 14:44:13 -06:00
53db2af179 Adding ndata accessor to bond history 2024-06-12 12:27:34 -06:00
610172b9dc Merge branch 'lammps:develop' into cg-dna 2024-06-12 17:38:20 +01:00
2434ad6574 doc page 2024-06-12 17:29:16 +02:00
99263ed7d7 init_atomic with new pair name 2024-06-12 15:41:38 +02:00
2470d621c8 wrong header name... 2024-06-12 15:31:28 +02:00
3686a7fcf3 wrong cl / cubin header file names 2024-06-12 15:25:28 +02:00
84ed769ca3 changing the fix name and file names for coherence 2024-06-12 15:12:55 +02:00
7f1fbca66f update lal_base_dpd for optional charged 2024-06-12 14:30:54 +02:00
1a310f5729 Limit CoeffRest gran damping to non-cohesive, prevent potential nans 2024-06-11 17:03:15 -06:00
5ff853ce67 Merge branch 'develop' into small-patches 2024-06-11 16:56:28 -06:00
c190318649 Small doc page clarifications 2024-06-11 16:53:10 -06:00
7bb0da5255 Increased checks for broken bonds in bond BPM 2024-06-11 16:11:24 -06:00
2d9aad67d0 Consistent newton checks compute nbond/atom 2024-06-11 15:24:34 -06:00
e0228d1f15 Bond history compatability delete atoms 2024-06-11 13:16:34 -06:00
09bea938c5 fix copy-n-paste error 2024-06-10 14:26:32 -04:00
d61c94c0f3 move group2ndx and ndx2group to new EXTRA-COMMAND package. update docs. 2024-06-10 14:14:36 -04:00
567ba1f437 improve R value for SI units 2024-06-10 19:37:35 +02:00
77c04d3827 cosmetic changes 2024-06-10 09:15:14 -04:00
12b26eb0a5 Merge branch 'lammps:develop' into fix-plumed-cmake 2024-06-10 13:17:02 +01:00
fa8f73689e add /omp aliases to hybrid pair styles for consistency and added tests
without the aliases, the introspection check lead to skipping suitable tests
2024-06-10 07:33:17 -04:00
2a7f0fb863 update intel pair list support for molskip flag 2024-06-10 07:16:24 -04:00
5f85112102 fix hybrid sub-style detection for OPENMP package 2024-06-10 07:16:02 -04:00
1ec24db123 remove redundant and problem causing NP_INTRA flag 2024-06-10 06:46:22 -04:00
e0c2009525 update conditions, comments, better eflag handle 2024-06-10 11:33:58 +02:00
325350dce4 small tweaks 2024-06-09 12:03:40 -04:00
f442cb4f65 add unit tests for pair style hybrid/molecular 2024-06-09 11:44:35 -04:00
1f0cd8be2a fix neighbor list request bug 2024-06-09 11:40:34 -04:00
5fb1776fa1 add implementation of pair style hybrid/molecular 2024-06-09 10:31:37 -04:00
117786aa7b support molskip for r-RESPA neighbor lists 2024-06-09 10:31:16 -04:00
3f901f2d8e reset manybody_flag if threebody terms are turned on or off in sw pair style 2024-06-09 07:03:31 -04:00
91b9308d4f initial version of pair style hybrid/molecular 2024-06-09 07:02:18 -04:00
69a31b7da7 dependent python packages have caught up with changes in sphinx 7.3.7 2024-06-09 04:12:51 -04:00
5be5a53801 correct documentation for added bond hybrid/kk 2024-06-09 04:10:52 -04:00
43ce6b018a update Plumed support for version 2.8.4 and 2.9.1 2024-06-09 01:30:35 -04:00
85c345cf2d duplicate calc of r 2024-06-07 16:51:32 +02:00
f5b2eb3a80 Update lal_dpd_charged.cu 2024-06-07 15:16:54 +02:00
aadeb1149d double host write, wrong dpd cond 2024-06-07 15:14:05 +02:00
575047c278 Update fep.py 2024-06-07 14:40:21 +02:00
afc8c752fd wrong kernel params 2024-06-07 11:31:33 +02:00
14f0a14c82 Merge branch 'dpd_charged' of https://github.com/Eddy-Barraud/lammps-custom into dpd_charged 2024-06-07 09:05:13 +02:00
001063250e allocate extra_fields 2024-06-07 09:05:11 +02:00
fd373957cc Merge branch 'lammps:develop' into dpd_charged 2024-06-06 18:37:40 +02:00
7cb73ca1a1 maybe wrong scale 2024-06-06 11:23:38 +02:00
0da8be7525 Update lal_dpd_charged.cu 2024-06-06 11:20:21 +02:00
ce9f99e9c1 store_answersq for ecoul 2024-06-06 11:19:06 +02:00
5c9ac8e569 Update pair_dpd_charged_gpu.cpp 2024-06-06 11:14:28 +02:00
71d8fe564f wrong init var and still force... 2024-06-06 10:55:26 +02:00
06f1b1bffa wrong names, old var del 2024-06-06 10:50:30 +02:00
7d2764da27 only dpd coef update 2024-06-06 10:42:09 +02:00
be298634b7 readdress force sp_cl 2024-06-06 10:40:13 +02:00
69309cab0c header fix missing var 2024-06-06 10:36:31 +02:00
0e9fef01e7 class fix and header 2024-06-06 10:32:45 +02:00
2da4f23743 debug 2024-06-06 10:23:32 +02:00
c1db6a50ec move eflag 2024-06-06 10:10:36 +02:00
8eefc0d305 debug scale_in ; n_stride 2024-06-06 09:58:11 +02:00
aaf5200316 Merge branch 'develop' into collected-small-changes 2024-06-06 02:17:50 -04:00
eb7f947a0c cuda forces + init var 2024-06-05 17:49:27 +02:00
7ef9a93a75 Merge pull request #4167 from stanmoore1/kk_hybrid_topo
Port hybrid bond topology styles to Kokkos
2024-06-05 09:44:54 -06:00
c1c3f21b36 Need to update index as well 2024-06-05 09:05:13 -06:00
777577b05e Update docs 2024-06-05 09:00:01 -06:00
0cf67a09ff Merge branch 'develop' into collected-small-changes 2024-06-05 10:56:35 -04:00
ecdc1bc336 Update docs 2024-06-05 08:29:33 -06:00
c6f32b8cb3 Merge pull request #4185 from lab-cosmo/ipi-example
Updated i-pi example
2024-06-05 08:14:42 -06:00
9ea57acf54 pack4 cutoffs 2024-06-05 11:40:24 +02:00
d1978dd136 support writing data files with PairIJ sections for all generic testers 2024-06-04 21:57:18 -04:00
8a94faee58 Updated i-pi example 2024-06-04 23:48:17 +02:00
de988b271b Merge branch 'develop' into collected-small-changes 2024-06-04 17:16:16 -04:00
d512326f06 Fix uninitialized variable 2024-06-04 15:06:34 -06:00
984d39366e Add Kokkos version of pair_style soft 2024-06-04 13:57:51 -06:00
f5253eb926 Merge pull request #4174 from akohlmey/atom-map-library-interface
Add support for extracting a few more properties and the Atom::map() function to the library interface
2024-06-04 13:23:31 -06:00
c1a71b3488 Merge pull request #4176 from akohlmey/remove-i-pi
Remove i-PI distribution from tools folder
2024-06-04 13:12:42 -06:00
b187001f38 atom charge and dpd/slater cutoff passing 2024-06-04 19:13:56 +02:00
118fa8e209 must reset "eval_in_progress[]" flags to avoid bogus circular dependency errors 2024-06-03 07:47:59 -04:00
34a037ccfb workaround for xdg-open and incompatible shared libs 2024-06-02 09:41:58 -04:00
7258b2972a small LAMMPS-gui build documentation updates 2024-06-02 04:39:08 -04:00
7df21a0e79 remove unused variables 2024-05-31 12:11:20 -04:00
c69e905cd6 Merge branch 'dpd_charged' of https://github.com/Eddy-Barraud/lammps-custom into dpd_charged 2024-05-31 17:07:25 +02:00
9b14a880dc charge pointer and corrections 2024-05-31 17:07:22 +02:00
154280899d Merge branch 'lammps:develop' into dpd_charged 2024-05-31 15:24:08 +02:00
fcdcf65995 creation + working CPU
new pair style dpd/charged which is the combination of dpd and coul/slater/long
Working on CPU, GPU in progress
2024-05-31 15:12:37 +02:00
1d7fa4f1a8 register build number for Windows 11 24H2 2024-05-30 19:41:28 -04:00
61b8619f07 let dump_modify types numeric revert labels 2024-05-30 11:34:41 -04:00
788428ebf9 more corrections 2024-05-29 09:00:54 -04:00
10d09aca74 apply corrections to i-PI package on PyPi 2024-05-29 08:51:53 -04:00
1a83fefc70 add false positive 2024-05-29 08:38:54 -04:00
1697f2a465 Merge branch 'develop' into remove-i-pi 2024-05-29 08:36:01 -04:00
1cf1f0daab update false positives 2024-05-28 20:04:12 -04:00
e6a3462018 replace non-ASCII character 2024-05-28 19:59:42 -04:00
2d7515218c improve wording 2024-05-28 19:55:59 -04:00
e8ee0d9e71 Merge pull request #4171 from akohlmey/sort-vector
Add special variable functions sort() and rsort() for sorting vectors by value
2024-05-28 16:22:08 -06:00
05ba777c0a Merge branch 'develop' into remove-i-pi
# Conflicts:
#	doc/src/fix_ipi.rst
2024-05-28 18:03:03 -04:00
dedcfa157c Merge pull request #4157 from lab-cosmo/bugfix/ipi-neigh
Performance improvements for fix_ipi
2024-05-28 15:06:15 -06:00
b7f86f6e34 Removed more whitespace 2024-05-28 11:31:42 +01:00
017d69f0e1 Removed whitespace 2024-05-28 11:19:32 +01:00
09a57c01da Corrected email address 2024-05-28 11:02:57 +01:00
33351704a5 Invisible mais penible 2024-05-28 08:40:19 +02:00
bd5c600608 dump custom, 'typelabel' attribute
writing strings to dump files previously was not implemented in general way.
did not refactor to make more general.
NOTE: added value to middle of enum
2024-05-27 23:58:58 -04:00
2afbf229ff mention the i-PI removal 2024-05-27 19:00:38 -04:00
8f4cf55ada update docs for i-PI removal 2024-05-27 18:58:18 -04:00
475cddfa36 remore i-PI distribution from tools folder 2024-05-27 18:49:40 -04:00
aa8cd7a4b9 Updated the documentation for i-PI 2024-05-28 00:07:07 +02:00
5685c5c74b Fixed list of supported version of plumed 2024-05-26 19:17:00 +01:00
ed675cb306 Added setting of extscalar in fix_plumed 2024-05-26 19:13:28 +01:00
345d559a37 Merge branch 'master' into fix-plumed-cmake 2024-05-26 11:51:35 +01:00
c2ce733d5d whitespace 2024-05-25 07:11:02 -04:00
75a325751e implement support for lammps_map_atom() to plugin loader, Fortran module, swig 2024-05-25 07:01:28 -04:00
8ea31bb5c8 add some unit tests for python wrapper of lammps_map_atom() 2024-05-25 05:59:25 -04:00
3bc367e0b0 implement suggestions made by @rbberger 2024-05-25 05:00:08 -04:00
694faf3235 register lammps_map_atom() with the documentation 2024-05-25 00:31:01 -04:00
fdbaf6feff spelling fix and update false positives 2024-05-25 00:22:38 -04:00
9f0816c3ba add support for lammps_map_atom() in python module 2024-05-24 23:50:11 -04:00
0ec86181f2 add support for 'sametag' array 2024-05-24 23:49:25 -04:00
3701d330c4 add unit test for new library function and settings 2024-05-24 23:03:53 -04:00
e53cc86622 support extracting few more global properties and add interface to Atom::map() 2024-05-24 19:54:26 -04:00
dad0d2651b Merge pull request #4172 from stanmoore1/deallocate_topo
Fix issue with virtual inheritance in Kokkos deallocate_topo function
2024-05-23 15:56:51 -06:00
29e64748c0 Fix issue with virtual inheritance in Kokkos deallocate_topo function 2024-05-23 12:18:18 -06:00
f8d5a898bf Merge pull request #4166 from jrgissing/minor-doc-updates
Minor doc updates
2024-05-23 12:17:00 -06:00
371ec2036f support trailing brackets for sort() and rsort() 2024-05-23 01:24:41 -04:00
e18395cf6e add versionadded marker 2024-05-23 00:16:47 -04:00
4b81337b6a add documentation for new special variable functions 2024-05-23 00:09:54 -04:00
c95389d58c add unit tests for sort() and rsort() special function 2024-05-22 23:57:13 -04:00
2fbfa623cd fix fdotr and update the force-styles unittest 2024-05-22 23:56:16 -04:00
272ce64272 add special function for sorting vectors 2024-05-22 23:46:36 -04:00
5ffff255ea simplify with STL classes 2024-05-22 23:46:13 -04:00
c1538c2f78 move varstyle array definition to Variable class so it can be used in a more general way 2024-05-22 23:42:56 -04:00
86abf4f680 Fix input file bug and update examples 2024-05-22 21:25:31 -04:00
fafecd0584 Merge branch 'cg-dna' of https://github.com/ohenrich/lammps into cg-dna 2024-05-22 16:01:46 +01:00
c8a4951cdf Merge branch 'lammps:develop' into cg-dna 2024-05-22 16:01:16 +01:00
ad81558fe0 Included values in real units 2024-05-22 16:00:58 +01:00
938d117890 Updated tests to contain full stdout 2024-05-22 15:53:09 +01:00
749e259294 Moved test script 2024-05-22 14:15:48 +01:00
8f61bc57d2 move xhold checks caller-side
this also allows it to fall-back on do-nothing rather than crash
2024-05-22 10:02:52 +02:00
c2e4ad220f Update Ta example 2024-05-22 00:37:47 -04:00
f64193dfa4 fix whitespace 2024-05-21 23:42:52 -04:00
1d38550763 replace malloc with memory->create 2024-05-21 23:39:49 -04:00
b010d9cd8c Initialize sum to zero 2024-05-21 22:52:11 -04:00
5d6db7e434 allocate memory for work 2024-05-21 22:39:27 -04:00
ac561095b1 Change int* to tagint* 2024-05-21 21:51:26 -04:00
d42b8ebb6c make use of new dump_modify in examples 2024-05-21 19:40:28 -04:00
3b091c0bd4 type label support for dump xyz 2024-05-21 19:35:04 -04:00
8314254245 Merge branch 'lammps:develop' into kokkospod 2024-05-21 10:12:37 -04:00
4104e73bcd Delete InP training data 2024-05-21 09:45:29 -04:00
44ef81e900 documentation and examples 2024-05-21 09:39:36 -04:00
a8687b5372 Merge pull request #4164 from akohlmey/collected-small-changes
Collected small changes and fixes
2024-05-20 14:46:30 -06:00
ea3bd6043f whitespace 2024-05-20 14:36:01 -06:00
c55901f8ce Port hybrid topology (bond/angle/dihedral/improper) styles to Kokkos 2024-05-20 14:28:31 -06:00
30704d095d support that cmdargs is used multiple times and may be bytearrays directly 2024-05-20 16:00:19 -04:00
58653e0a87 Merge branch 'lammps:develop' into cg-dna 2024-05-20 15:10:52 +01:00
00cb38e823 real unit and potential file examples (#16) 2024-05-20 15:08:06 +01:00
658dcef145 fix bug with newton_bond off 2024-05-20 06:21:23 -04:00
0577e1ff77 install runtime dlls for LAMMPS library only with -DBUILD_SHARED_LIBS=yes 2024-05-20 06:08:43 -04:00
669819405b Merge branch 'develop' into collected-small-changes 2024-05-20 02:55:52 -04:00
77239a75dc Merge pull request #4162 from stanmoore1/kk_update_4.3.1
Update Kokkos library in LAMMPS to v4.3.1
2024-05-18 09:11:50 -06:00
83d5edb032 Merge branch 'kokkospod' of https://github.com/cesmix-mit/lammps into kokkospod 2024-05-18 08:17:51 -04:00
b5fe3d5b06 update kokkospod 2024-05-18 08:17:48 -04:00
b434c4d119 Merge branch 'lammps:develop' into kokkospod 2024-05-17 17:07:09 -04:00
feae228329 New force calculation 2024-05-17 17:05:50 -04:00
51f009c273 incorrect pair-coul package listings 2024-05-16 15:21:45 -04:00
f2d236eca1 improper styles moved to EXTRA-MOLECULE 2024-05-16 15:08:02 -04:00
9c5d9686f5 deform/pressure is in EXTRA-FIX 2024-05-16 15:03:03 -04:00
febf7c38d3 add reaxff/species delete citation 2024-05-16 14:49:33 -04:00
410cda27e0 keyword was changed at some point 2024-05-16 14:38:04 -04:00
6aec49619f remove redundant initializers from headers 2024-05-16 09:42:00 -04:00
c99e582658 Need to manually enable rocthrust in Makefile build 2024-05-15 16:33:49 -07:00
83cfa0bfdd Set rlogarg to intermediate value, force capped at 35 LJU 2024-05-15 22:50:37 +01:00
5f6f6ba0d6 Reset rlogarg to original value 2024-05-15 22:19:31 +01:00
b31071e18f Removed exit status bug 2024-05-15 22:03:56 +01:00
852becb32a Update Makefile comment 2024-05-15 14:44:50 -06:00
3805a01448 Update CMake 2024-05-15 14:42:01 -06:00
8fbb959ab3 Add support for MI300A with unified memory 2024-05-15 14:40:41 -06:00
5d98c073a4 Capped force debugging completed 2024-05-15 21:25:08 +01:00
a495aff480 Update Kokkos library in LAMMPS to v4.3.1 2024-05-15 14:14:08 -06:00
16b2ed5cc9 initialize pointers to null in constructor 2024-05-15 13:49:54 -04:00
69b8a8c7b3 remove dead code 2024-05-15 13:49:07 -04:00
c0daa9550a Reformatting 2024-05-15 16:47:44 +01:00
17e0e785ab Corrected typo 2024-05-15 16:45:52 +01:00
a7fe12cd7b Reformatting 2024-05-15 16:07:59 +01:00
0e9c3fb768 Updated test script 2024-05-15 15:26:58 +01:00
59ce8c966c Corrected energy for capped force potential 2024-05-15 15:24:36 +01:00
008a8fcb11 Merge pull request #4159 from evoyiatzis/patch-1
Make compute stress/mop and stress/mop/profile compatible with 2D systems
2024-05-14 13:05:41 -06:00
991f4ed4fb Merge pull request #7 from akohlmey/ml-uf3
Update example with new syntax
2024-05-14 11:09:10 -04:00
83a4ff06bd fix segfault 2024-05-14 08:14:38 -04:00
c8821606fb Merge branch 'develop' into patch-1 2024-05-14 07:25:34 -04:00
b5ecea502a Changed folding logic to use minimum_image rather than pbc 2024-05-14 08:51:40 +02:00
1f52d1769d update ML-UF3 example 2024-05-13 20:29:20 -04:00
17c099488a remove unused variables 2024-05-13 20:20:03 -04:00
4302d65811 fix spelling 2024-05-13 20:19:50 -04:00
49f20229ad Merge branch 'develop' into ml-uf3 2024-05-13 20:16:24 -04:00
2dc5931829 Fix whitespace 2024-05-13 22:34:21 +02:00
bc38b55941 Removed iostream import
Leftover from debugging output
2024-05-13 22:33:48 +02:00
7b728cd434 No need to go through the whole list if one atom has moved enough to trigger re-compute of the NL 2024-05-13 22:33:48 +02:00
ad90c9836f Just some additional comments, and removed debug output 2024-05-13 22:33:48 +02:00
fe19a7efb5 disable Nagle's algorithm for internet socket 2024-05-13 22:33:48 +02:00
bb471b1c86 Minimally-invasive implementation of the ipi-side modification 2024-05-13 22:33:48 +02:00
b3fc34f240 Try a (dirty) fix to the i-pi neighbor list update problem 2024-05-13 22:33:48 +02:00
f05a551ffe Update compute_stress_mop.cpp 2024-05-13 21:32:17 +02:00
ada53dc879 Merge pull request #4161 from lammps/doc-write-data
Incomplete info on write_data command syntax
2024-05-13 13:26:15 -06:00
47c86cdf65 Update compute_stress_mop.rst 2024-05-13 21:26:01 +02:00
86103fa89b revert changes for triclinic boxes in compute_stress_mop.cpp 2024-05-13 21:23:50 +02:00
ed507dc676 revert changes in compute_stress_mop.h 2024-05-13 21:20:32 +02:00
9e755cd0af Merge branch 'lammps:develop' into ml-uf3 2024-05-13 15:10:58 -04:00
4330530237 Merge pull request #4068 from dhairyaiitb/develop
Coefficient of restitution based damping in granular models
2024-05-13 12:43:19 -06:00
0a389bf673 Merge branch 'develop' of github.com:lammps/lammps into patch-1 2024-05-13 12:24:02 -06:00
74f29ba2f3 update example 2024-05-13 14:07:24 -04:00
4e7bddaa0b remove unused variables 2024-05-13 13:55:09 -04:00
af540bec8b Merge pull request #4142 from jrgissing/count/types-return_integer_for_lj_units
flag output for compute count/type as intensive vs extensive
2024-05-13 11:48:35 -06:00
d0f8d9eeb1 Merge branch 'develop' into dhairyaiitb/develop 2024-05-13 13:47:21 -04:00
67b6c36941 Merge pull request #4150 from Bibobu/cg_stuck_bug
Avoiding forcezero infinite loop with zero energy.
2024-05-13 11:46:16 -06:00
d4d4c48574 spelling fixes 2024-05-13 13:43:50 -04:00
84f06aa7a8 Merge branch 'develop' into doc-write-data 2024-05-13 13:38:21 -04:00
f747bb975f Merge pull request #3824 from jrgissing/fix_reaxff/species-fixes
Fix reaxff/species fixes
2024-05-13 11:25:40 -06:00
00d8c6623d Merge pull request #3810 from jrgissing/create_atoms-overlap_w_mol
Create atoms: overlap keyword for atomic molecule
2024-05-13 11:08:34 -06:00
fd1aa7356d Merge pull request #3118 from jrgissing/replicate_periodic_box
Replicate periodic box
2024-05-13 11:06:47 -06:00
cd82af6885 Merge pull request #4148 from jtclemm/small-patches
Small patches for various commands
2024-05-13 11:01:11 -06:00
20a2df0b41 Merge pull request #4152 from nnn911/modify_triclinic
Fix Inconsistent syntax for dump_modify triclinic/general
2024-05-13 11:00:52 -06:00
eb0640fbb5 Merge pull request #4146 from akohlmey/collected-small-changes
Collected small changes
2024-05-13 11:00:18 -06:00
b65e41e509 Update version to development 2024-05-13 10:45:34 -06:00
85a2f4bbfa Merge branch 'lammps:develop' into improve_type_label_support 2024-05-12 23:15:34 -04:00
def7c40ece add citeme 2024-05-12 18:40:48 -04:00
d1fe92c658 charge/regulation: direct type label support 2024-05-12 17:32:03 -04:00
fc32826cd7 more uses of bounds_typelabel 2024-05-12 16:44:24 -04:00
f007be620a compute_rdf: direct type label support
type label that is the same as the keyword ('cutoff') will break things. if syntax is otherwise 'correct', then will throw a syntax error. perhaps could run through typelabels to check first?
2024-05-12 16:11:36 -04:00
c324afeaf1 fix/adapt/fep: use bounds_typelabel 2024-05-12 15:50:41 -04:00
44b99b6b76 bounds() wrapper for type labels 2024-05-12 14:30:55 -04:00
61b9469fd1 Revert "example with augmented utils::bounds"
This reverts commit 25d4b3484d.
2024-05-12 02:00:48 -04:00
25d4b3484d example with augmented utils::bounds
option to check for type label
2024-05-12 01:00:09 -04:00
2492c57c8e typos 2024-05-11 20:14:18 -04:00
5d35392cca finish adapt docs 2024-05-11 19:49:19 -04:00
ff05d45c74 adapt/fep: direct type label support 2024-05-11 19:37:42 -04:00
4d1e4814b7 fix adapt: direct type label support
make utils::bound type aware?
i.e., Atom:BOND argument instead of atom->nbondtypes
2024-05-11 19:13:29 -04:00
c5c7e6fb74 bond/break: direct type label support 2024-05-11 16:40:40 -04:00
8fc1a8ec7f start off with simpler labelmap example 2024-05-11 16:34:17 -04:00
d121d5a503 bond/create: direct type label support 2024-05-11 16:30:21 -04:00
aa9628facf fix_widom: direct type label support 2024-05-11 15:29:43 -04:00
9d7e449767 fix_gcmc: direct type label support
apparently changed text in doc description is just reflowing
2024-05-11 15:20:53 -04:00
c19db76eae delete_bonds: direct type label support 2024-05-11 14:05:48 -04:00
74b3d15c3b improve fix_modify error messages 2024-05-10 08:21:56 -04:00
46b4c09083 simplify xmol comm 2024-05-10 00:15:21 -04:00
ac0513b5c4 whitespace in compute_stress_mop.rst 2024-05-09 15:25:57 +02:00
9aefa047cb Update compute_stress_mop.rst 2024-05-09 15:17:30 +02:00
e2984c9724 Delete pos1 variable from compute_stress_mop.h 2024-05-09 15:13:26 +02:00
7b007d82a0 Make compute stress/mop compatible with triclinic boxes 2024-05-09 15:12:28 +02:00
a2616630b5 update OpenCL ICD loader source to latest release 2024-05-09 07:18:50 -04:00
b4f18700dc Update fix_reaxff_species.h 2024-05-09 00:06:10 -04:00
8e6a232dff Update fix_reaxff_species.rst 2024-05-08 23:31:36 -04:00
ada61d96fe Update fix_reaxff_species.rst 2024-05-08 19:46:07 -04:00
05438d2357 Update create_atoms.rst 2024-05-08 18:50:02 -04:00
887ffa57d5 Merge branch 'develop' into create_atoms-overlap_w_mol 2024-05-08 18:44:23 -04:00
33525de598 fix incomplete header info on command syntax 2024-05-08 16:39:25 -06:00
3028b6f34c clean up of docs and code 2024-05-06 19:16:06 -06:00
1c11de8a64 comment tweak 2024-05-06 16:47:38 -06:00
a4449fb6ff modified doc page, added examples 2024-05-06 16:44:45 -06:00
3d4bb44911 Minor rearrangements to CoR, fix bug in granular single 2024-05-06 16:39:29 -06:00
daedaaccdc add missing false positive 2024-05-05 12:50:30 -04:00
46a441451d Update compute_stress_mop.rst 2024-05-04 20:11:08 +02:00
e42aff54f9 Make compute stress/mop/profile compatible with 2D systems
Issue an error if the stress is requested in the Z direction for 2D systems
The normalizing 'area' is the length of the opposite cartesian direction
2024-05-04 20:07:08 +02:00
541680c798 Make compute stress/mop compatible with 2D systems
Issue an error if the stress should be computed in the Z direction in 2D systems
The normalizing 'area' in 2D systems is the length of the simulation box in the other cartesian direction
2024-05-04 20:02:05 +02:00
2f488cc594 Merge pull request #6 from monk-04/ml-uf3
Bug Fixes- uniform knot spacing, memory leaks, array initialization
2024-05-03 20:02:01 -04:00
fe24ddebcd Removed trailing whitespace 2024-05-03 18:31:12 -04:00
1cfbc04586 Initialize setflag, n2b_coeff_array_size, n2b_knots_array_size, n3b_coeff_array_size, n3b_knots_array_size arrays to 0; fixed memory leaks; removed some dead code 2024-05-03 18:28:33 -04:00
a7f4fc1815 Fixed bug with uniform knot spacing 2024-05-03 12:58:59 -04:00
99b3233564 Added names of new source code files 2024-05-03 16:20:57 +01:00
775a73b67c cgDNA 'real' units and potential file reading for non-modifiable potential parameters (#15)
* oxDNA potential file reading and real units

This allows for pair and bond coefficients to be read from an appropriately formatted potential file, and also allows for the use of 'real' units within oxDNA1. The correct backend coefficients for pair and bonded interactions are set when the atom vector is initialised through the "ConstantsOxdna" class, based on the units specified within the input file.

* Extract seqav/seqdep and temp from potential files

Also includes miscellaneous string consistency changes and removes unnecessary parameter from reader.next_line instances.

* oxDNA2 potential file reading and real units

This extends previous changes to oxDNA2 specific potentials, being FENE, excluded volume, coaxial stacking and Debye-Hückel. Units now default to LJ values rather than 0.

* oxDNA potential files

* LJ <-> real units conversion tool

Converts standard oxDNA data and input file to real units, with inverse flag available for real -> LJ.

* oxRNA2 potential file reading and real units

For RNA, d_cs_x is treated as d_cs within ConstantsOxdna in order to reduce code duplication and complexity.

* Reparameterise real units

* Generalise PotentialFileReader logs

* Extract stk xi and kappa from potential files

This allows users to edit these values from the input script, as is documented, rather than them being within the potential files.

* Real unit and potential file documentation

This adds examples for real unit parameters and specific potential file documentation for each bond and pair style.
2024-05-03 15:00:29 +01:00
ca675b557f Minor edits for python2/3 support, improved comments 2024-05-03 11:23:42 +01:00
759ce70af7 Merge branch 'lammps:develop' into ml-uf3 2024-05-02 19:31:21 -04:00
94ab3c2a01 Merge pull request #5 from monk-04/ml-uf3
Remove std::vector completely
2024-05-02 19:29:57 -04:00
4a8ed1bc78 Removed dead code, fixed trailing whitespace 2024-05-02 19:28:58 -04:00
ab8e4b7676 Fixed trailing whitespace 2024-05-02 19:28:27 -04:00
3340dd5f54 Removed unused variables and reordered the code 2024-05-02 19:03:25 -04:00
5f2cae0e08 Commented out the uniform knot spacing logic as for more than 1 processors was getting some weird errors.
Deleted commented (dead) code.
Updated the memory_usage function.
Reordered some functions to refelect the calling order
2024-05-02 19:01:26 -04:00
f02c65e12e Removed uf3_pair_bspline and uf3_triplet_bspline 2024-05-02 18:59:49 -04:00
49181bfe8d constants was changed from std::vector to fixed length array 2024-05-02 18:58:26 -04:00
e55d77470b Removed trailing whitespace 2024-05-02 15:23:48 -04:00
9915f86f63 Removed UFBS2b and UFBS3b std::vector objects.
These objects held the bspline basis set object (uf3_pair_bspline and uf3_triplet_bspline) for 2- and 3-body interaction at UFBS2b[itype][jtype] and UFBS3b[itype][jtype][ktype].
These std:vectors were removed. New arrays (cached_constants_2b, cached_constants_2b_deri, cached_constants_3b, cached_constants_3b_deri) were added that holds the cached coefficients of the bspline basis set. The UF3Impl PIMPLE was also removed as it is not longer needed. The memory_usage function needs to updated
2024-05-02 14:35:45 -04:00
dbca2b087d Made 'constants' variable public 2024-05-02 14:27:11 -04:00
39f039719d QEq requires charges 2024-05-02 11:53:41 -04:00
149ffbb2b6 Clarify error message 2024-04-30 09:20:19 +02:00
e9d22ec7f9 Clarify error message 2024-04-30 09:19:03 +02:00
b1e1b05e0b Match dump_modify syntax for atom and custom dump styles 2024-04-29 13:51:26 +02:00
e34aa0d02b meam/c is no longer an alias for meam 2024-04-28 08:43:24 -04:00
e881bb307c downgrade macOS to version 13 2024-04-27 02:50:28 -04:00
bfd5e6bbc5 make pip install packages in virtual environment 2024-04-27 02:50:28 -04:00
a394fcb5f3 downgrade macOS to version 13 2024-04-27 02:48:40 -04:00
74b49b48cb make pip install packages in virtual environment 2024-04-27 02:48:40 -04:00
69e9483bf7 downgrade macOS to version 13 2024-04-27 02:47:36 -04:00
1f9c33e65d make pip install packages in virtual environment 2024-04-27 02:47:24 -04:00
3906eb8148 Merge branch 'lammps:develop' into cg-dna 2024-04-26 14:49:49 +01:00
99ff5b2779 Changed alpha_init initialization to avoid infinite loop with 0 starting
value.
2024-04-26 14:46:30 +02:00
da7de9c75c Merge branch 'develop' of github.com:lammps/lammps into develop 2024-04-26 09:31:21 +02:00
0f3a8d6af8 Adding warning for singular matrix 2024-04-25 14:10:21 -06:00
cfc811a1b3 downgrade macOS to version 13 2024-04-24 03:50:48 -04:00
a85b0603a2 downgrade macOS to version 13 2024-04-24 02:45:36 -04:00
4437891c30 catch command errors 2024-04-24 02:26:27 -04:00
83643ded91 flag development 2024-04-24 02:25:52 -04:00
fc20b8c546 make pip install packages in virtual environment 2024-04-24 02:24:47 -04:00
b993dadcdc try virtual environment instead of user installation 2024-04-24 01:58:54 -04:00
8073cec0e4 make pip install packages in user area 2024-04-24 01:55:13 -04:00
b2aed19c88 Update doc/src/compute_count_type.rst
Co-authored-by: Axel Kohlmeyer <akohlmey@gmail.com>
2024-04-23 23:32:27 -04:00
6de19ec109 Tweaking doc text 2024-04-23 21:02:02 -06:00
3dbfe26b6d Extra D2min options/checks for undercoord particles 2024-04-23 20:58:20 -06:00
80a0c5899e Fix coeff parsing classic gran model 2024-04-23 20:47:01 -06:00
f6eeaaef6f Update compute_count_type.rst 2024-04-23 19:45:14 -04:00
6e45a71de3 restore numerical types example
(duplicated with type labels)
2024-04-23 10:16:46 -04:00
b227663b3b restore numerical examples
(duplicated in type label versions)
2024-04-23 10:13:50 -04:00
f815ded1b8 add a few more intensive vs. externsive settings 2024-04-22 22:04:42 -04:00
400070d038 catch command errors 2024-04-22 21:28:56 -04:00
f66ae5c285 output verbose info 2024-04-22 21:23:42 -04:00
dc04a2ec5a for vectors we have to check for either extvector or extlist 2024-04-22 21:22:24 -04:00
44bfcff550 Fixing variable pmean in deform/press 2024-04-22 19:08:29 -06:00
3ce628cf07 fix extscalar bugs in fix shake and fix sprint/rg 2024-04-22 20:30:28 -04:00
a88e8757e3 guard against not setting extscalar, extvector, or extarray when required 2024-04-22 19:55:52 -04:00
25a9bf1ff6 Merge branch 'develop' into jake_replicate 2024-04-22 16:10:42 -06:00
21eeb231ae remove bogus example 2024-04-22 15:27:53 -04:00
d896f307ba Update fix_hyper_local.rst 2024-04-22 14:00:38 -04:00
628531dadb Merge pull request #4144 from Bibobu/ave_histo_vector_bug
Fix for fix_ave_histo bug with vector style variables
2024-04-22 09:42:24 -06:00
3ab6997a5b fix broken link 2024-04-22 07:28:53 -04:00
761cfdaabf switch markdown formatting to restructured text 2024-04-22 07:26:02 -04:00
44ec209796 direct type label for group 2024-04-22 00:29:23 -04:00
e15f7a1e96 clarify that sgcmc output is intensive 2024-04-21 23:38:15 -04:00
a50192a7d1 mol/swap also flags output as intensive value! 2024-04-21 23:29:27 -04:00
26c8a3a639 fix gcmc and widom also report 'intensively' 2024-04-21 23:25:33 -04:00
6bd57cd90a fix atom/swap reports value as intensive 2024-04-21 23:20:20 -04:00
48600cd153 Merge branch 'develop' of github.com:lammps/lammps into develop 2024-04-20 17:45:06 +02:00
baaea8271b Merge branch 'develop' of github.com:lammps/lammps into ave_histo_vector_bug 2024-04-20 17:38:38 +02:00
38c7d7aa1c Added a vectorstyle variable check for fix_ave_histo.cpp 2024-04-20 17:31:34 +02:00
14dc82a2bf Adding periodicity check 2024-04-19 15:40:27 -06:00
97d8ecbac1 Improvements & bug fixes to fix def/press 2024-04-19 15:14:42 -06:00
52ab29798a Merge branch 'lammps:develop' into cg-dna 2024-04-19 22:07:32 +01:00
cf6522eebb type label support for atom/swap 2024-04-18 14:32:23 -04:00
267e75133a generalize passthrough args 2024-04-18 14:30:27 -04:00
1815a00fd0 cleanup 2024-04-18 14:12:23 -04:00
eec037ac5e make use of refactored expand_type elsewhere 2024-04-18 13:41:51 -04:00
931417da0a always return integers for counts
previously, atom, bond, angles, dihedral and improper counts were normalized by natoms when using LJ units
2024-04-18 11:00:02 -04:00
c5ecef82c1 Updating BPM reference information 2024-04-18 08:49:18 -06:00
b3e03d5188 refactor expand_types to return int 2024-04-17 18:56:28 -04:00
42a4e63061 Merge branch 'lammps:develop' into ml-uf3 2024-04-17 16:45:33 -04:00
3310180a9f Fixed trailing whitespaces 2024-04-17 16:45:05 -04:00
6836bca5f8 Merge pull request #4139 from akohlmey/eam-warning-bugfix
Later than last minute bugfix in EAM density warning for OPENMP package
2024-04-17 15:43:23 -04:00
1b88adf73e move communication for eam/omp warning outside the threaded region. undo for INTEL 2024-04-17 14:37:51 -04:00
e84540c626 fix/mol/swap: direct type label support 2024-04-17 14:35:00 -04:00
8ceb6f096b Merge pull request #4 from monk-04/ml-uf3
Updates to pair_uf3- Reading potential from single file, arrays from memory class, MPI to communicate the arrays
2024-04-17 10:51:59 -04:00
18ae98201b Updated the documentation about UF3 LAMMPS potential file 2024-04-17 10:51:21 -04:00
cf0dc2ac21 Merge pull request #4138 from akohlmey/next_release
Update version tags and strings for the next feature release
2024-04-17 10:37:35 -04:00
09680a3857 use MPI_SUM instead of MPI_MAX to work around OpenMPI bug on macOS with Apple CPU 2024-04-17 01:03:39 -04:00
db9e8aa43c last minute fix for https://matsci.org/t/errors-encountered-in-the-pyrolysis-of-organic-polymers-under-reaxff-force-field/54818 2024-04-17 00:57:07 -04:00
d45a00031b update a couple more pending version strings 2024-04-17 00:41:45 -04:00
e80954a288 Merge branch 'develop' into next_release 2024-04-17 00:38:48 -04:00
3a555c81b6 Merge pull request #4134 from akohlmey/collected-small-changes
Collected small changes and bugfixes
2024-04-17 00:35:57 -04:00
a1826b1364 fix_deposit: direct type label support 2024-04-17 00:16:00 -04:00
101a937870 rephrase warning about EAM deansity exceeding tabulated embedding term 2024-04-16 23:02:29 -04:00
7f269c461e Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes 2024-04-16 22:49:26 -04:00
94a95b56e6 Merge remote-tracking branch 'github/develop' into collected-small-changes 2024-04-16 22:42:48 -04:00
329d546eea Merge pull request #4078 from jmgoff/pace-mliap
Update ML-IAP for ACE support
2024-04-16 22:42:17 -04:00
27266e72c4 Merge pull request #3984 from lammps/general-triclinic
Add suppport for general triclinic simulation boxes and systems
2024-04-16 21:04:59 -04:00
98eb345615 small tweak 2024-04-16 20:07:30 -04:00
95e4364400 breathe is currently not compatible with sphinx 7.3 2024-04-16 19:59:30 -04:00
e590e27faa create_atoms: direct type label support 2024-04-16 19:56:37 -04:00
fe57f880f0 breathe is currently not compatible with sphinx 7.3 2024-04-16 19:53:49 -04:00
124516097c breathe is currently not compatible with sphinx 7.3 2024-04-16 19:53:00 -04:00
9aceecdfa4 breathe is currently not compatible with sphinx 7.3 2024-04-16 19:51:01 -04:00
88f2ca643b update version tags for feature release 2024-04-16 19:47:12 -04:00
89d98786ec small doc formatting and spelling fixes 2024-04-16 19:33:14 -04:00
c855e44d0e small doc fixes 2024-04-16 19:26:51 -04:00
49b5361088 Update labelmap.rst 2024-04-16 00:24:25 -04:00
a810f1eca8 Update Howto_type_labels.rst 2024-04-16 00:20:18 -04:00
28620a6631 propagate changes to other EAM implementations 2024-04-15 21:04:57 -04:00
8dd1d12a73 apply clang-format and whitespace cleanup 2024-04-15 21:04:22 -04:00
16e5fce31e adjust error messaging for rho[i] > rhomax in EAM 2024-04-15 17:24:47 -06:00
1924a06466 Merge branch 'develop' into collected-small-changes
# Conflicts:
#	python/lammps/pylammps.py
2024-04-15 17:21:38 -04:00
4c1be999fa Removed reference to std::vector knots and coefficients; commented out getter functions 2024-04-15 15:31:42 -04:00
d468ee8f7d Updated the code as we are no longer using std::vector for knots and coefficients 2024-04-15 15:22:22 -04:00
de8b1b49a6 Merge pull request #4135 from yuhldr/develop
pylammps small changes and bugfixes
2024-04-15 14:13:20 -04:00
d34a9bd33e Merge pull request #4113 from evoyiatzis/restricted-angle
Restricted squared cosine angle and dihedral potentials
2024-04-15 13:13:11 -04:00
b2fded3933 restore missing line 2024-04-15 11:24:54 -04:00
f6c8bd1178 Updated pair_coeff in unittest to read only one potential file; added Nb.uf3 unified potential file 2024-04-15 10:51:39 -04:00
cf729fc358 Added new constructor functions in uf3_pair_bspline and uf3_triplet_bspline to construct std::vectors of knots and coefficients rom memory block 2024-04-15 10:38:00 -04:00
fcf8500887 Added uf3_read_unified_pot_file() to read single potential file on rank 0 and communicate() to broadcast the data to other ranks
Added one_ceoff
2024-04-15 10:37:21 -04:00
3a94e4df2d print single warning when some rho[i] exceeded rhomax of the current EAM potential 2024-04-15 02:50:16 -04:00
a9b9f7f2c7 correct fix ttm/mod example input 2024-04-15 01:45:05 -04:00
e4a7b193aa whitespace 2024-04-14 21:11:03 -04:00
yuh
f6992c0d34 doc: 3 py:meth:PyLammps.append_cmd_history()
Co-authored-by: Axel Kohlmeyer <akohlmey@gmail.com>
2024-04-15 09:00:24 +08:00
yuh
bad5fcc9c4 doc: 2 py:meth:PyLammps.append_cmd_history()
Co-authored-by: Axel Kohlmeyer <akohlmey@gmail.com>
2024-04-15 09:00:05 +08:00
yuh
90c8c3c551 doc: py:meth:PyLammps.append_cmd_history()
Co-authored-by: Axel Kohlmeyer <akohlmey@gmail.com>
2024-04-15 08:59:02 +08:00
962219a446 make PyLammps mass property compatible with per-atom masses. 2024-04-14 18:27:17 -04:00
18d45d1ff0 pylammps: fix get atom.mass by atom.type 2024-04-14 18:17:36 -04:00
cc721816df pylammps: append_cmd_history 2024-04-14 17:17:36 +08:00
db1598fb08 pylammps: fix get atom.mass by atom.type 2024-04-14 17:02:23 +08:00
01b1d047a2 Merge branch 'lammps:develop' into ml-uf3 2024-04-13 18:56:07 -04:00
1346be4168 Merge pull request #4126 from lammps/global-vector-access
Relax error check on accessing fixes that produce variable size vectors/arrays
2024-04-13 16:58:50 -04:00
5af3626cf7 adjust test coeffs to be numerically stable 2024-04-13 11:43:30 -04:00
b5c5b8ea8d remove dead code and related comment 2024-04-13 11:43:00 -04:00
23ce978702 cosmetic 2024-04-13 11:07:46 -04:00
17d04ce41a Merge remote-tracking branch 'github/develop' into restricted-angle 2024-04-13 02:45:53 -04:00
95779b3504 add versionadded tags 2024-04-13 02:39:54 -04:00
a40b97d417 Merge remote-tracking branch 'github/develop' into collected-small-changes 2024-04-13 01:45:29 -04:00
5fbd21e324 Merge pull request #4127 from stanmoore1/kk_sort_by_key
Improve Kokkos sorting
2024-04-13 01:44:50 -04:00
7f68620fa9 add example with more compact initialization for scatter 2024-04-12 23:46:35 -04:00
4bd983ce6a make warnings in scatter/gather into errors 2024-04-12 23:11:56 -04:00
441a521d8b initialize all class pointers to null 2024-04-11 23:52:34 -04:00
f557dfdebb mention typelabel paper 2024-04-11 23:36:11 -04:00
9f2cc1e38b Add two-level sort to simplify algorithm 2024-04-10 17:24:08 -06:00
9ca47a36d2 Merge pull request #4129 from akohlmey/pedone-potentials
Add pair style for analytic form of Pedone potential non-Coulomb
2024-04-10 18:51:19 -04:00
b36f49c34c adjust epsilon for arm64 platform 2024-04-10 18:05:21 -04:00
9d3e9c6146 whitespace 2024-04-10 18:03:01 -04:00
dbb23b6006 Merge branch 'develop' into pedone-potentials 2024-04-10 18:02:31 -04:00
c3be4fa399 Merge pull request #4130 from akohlmey/update-file-variable-parsing
Modernize parsing of files for file and atomfile variables
2024-04-10 17:54:29 -04:00
3bfe8b88f6 Merge branch 'general-triclinic' of github.com:lammps/lammps into general-triclinic 2024-04-10 12:56:52 -06:00
120b861f80 correct typos and remove duplicate text 2024-04-10 12:56:43 -06:00
7a80a74791 Merge branch 'develop' into jake_replicate 2024-04-10 11:32:43 -06:00
e180527f08 fix typo 2024-04-10 12:35:09 -04:00
7ca4bf05cf change radthresh initialization 2024-04-10 09:52:58 -04:00
83cd20dfeb Merge branch 'develop' into general-triclinic 2024-04-10 08:42:25 -04:00
06d579eb51 improve atomfile variable docs 2024-04-10 06:29:10 -04:00
9f88867b37 update parsing of file and atomfile variable files
this allows to handle comments and empty lines everywhere for atomfile
and file variables and in a consistent manner since it used utils functions.
also error messages are improved and more specific.
2024-04-10 03:08:08 -04:00
e979e8dc01 spelling add false positives 2024-04-09 22:36:49 -04:00
b4fa1b07e9 add version tag 2024-04-09 22:21:34 -04:00
01917cd117 add example for Ca-O with Pedone 2024-04-09 22:08:30 -04:00
7ac84e18dd remove references to non-existing pedone/coul/long, complete description 2024-04-09 21:35:45 -04:00
41591826fb update 2 doc pages for DIELECTRIC package 2024-04-09 09:25:21 -06:00
aeec608be6 partial docs also for future pedone/coul/long implementation 2024-04-09 09:13:23 -04:00
a2ee2d57be add OPENMP version and apply clang-format 2024-04-09 07:55:26 -04:00
67faeb0130 correct sign for repulsive term 2024-04-09 07:45:44 -04:00
0021042dab add test 2024-04-09 00:57:26 -04:00
41f518ede7 repulsive is r^12 not r^6 2024-04-09 00:57:15 -04:00
21512df264 update doc for dump_modify triclinic/general keyword 2024-04-08 17:59:44 -06:00
81ce8ecdd0 tweak README 2024-04-08 17:30:18 -06:00
e6f4c49b70 add simple general triclinic example files 2024-04-08 17:29:23 -06:00
f1c2a22e2d more tweaks 2024-04-08 16:25:17 -06:00
74a0d22ec2 first stab at non-coulomb pedone potential 2024-04-08 17:48:50 -04:00
e40a1527d3 one more doc page 2024-04-08 10:53:14 -06:00
877d6e7f86 remove whitespace 2024-04-08 10:49:53 -06:00
d1b571c8ed spell check 2024-04-08 10:48:38 -06:00
c2b91ccc8a better documention and error checking for 2d general triclinic 2024-04-08 10:43:20 -06:00
069919ddcd Merge pull request #4125 from taylor-a-barnes/mdi
Fix bug in MDI time integration logic
2024-04-05 18:59:23 -04:00
1a019889f2 more doc page and thermo edge vector modifications 2024-04-05 16:22:54 -06:00
0f5221a485 Improve Kokkos sorting 2024-04-05 15:55:13 -06:00
4a36053bbb Merge branch 'develop' into general-triclinic 2024-04-05 15:50:55 -06:00
7122a85c0b remove some debug info 2024-04-05 15:43:54 -06:00
af88cec22d relax error check on fixes that produce variable size vectors/arrays 2024-04-05 15:12:46 -06:00
7e8be88fa8 Merge pull request #4124 from stanmoore1/kk_update_4.3.0
Update Kokkos library in LAMMPS to v4.3.0
2024-04-05 16:45:14 -04:00
d615d8053b support for general tri edge vectors in thermo output 2024-04-05 14:31:53 -06:00
6a8354f80c Fix bug in MDI time integration logic 2024-04-05 19:10:43 +00:00
f0c1ebec2f Merge pull request #4123 from akohlmey/rigid-image-fix
Address minimum image issue when restarting fix rigid/small
2024-04-05 15:00:30 -04:00
5b47038b14 Set default trimflag to zero 2024-04-05 17:52:44 +01:00
905ceb98f1 merge in current develop 2024-04-05 09:36:29 -06:00
0344b6af70 updated the associated example file 2024-04-05 10:14:07 -05:00
1b71576b6f Update CMake and docs 2024-04-05 09:09:44 -06:00
84b6c6a088 Added prefactors and errors for incorrect combinations. 2024-04-05 09:58:33 -05:00
f382eac5c2 Update Kokkos library in LAMMPS to v4.3.0 2024-04-05 08:20:57 -06:00
dc1bc8a8cf Merge branch 'lammps:develop' into cg-dna 2024-04-05 11:40:16 +01:00
2927471892 Merge pull request #4121 from lammps/test-rigid
Fix issue with nearly linear 2d rigid bodies
2024-04-05 00:50:04 -04:00
f5a595dadb Merge branch 'develop' into test-rigid 2024-04-04 23:52:06 -04:00
4401179688 Merge pull request #4122 from lammps/variable-length-vectors-arrays
More consistent checking on lengths of variable-length vectors and arrays
2024-04-04 21:52:34 -04:00
a51174f6c3 update unit test reference data for rigid fixes 2024-04-04 21:30:42 -04:00
72d7ba85ad call alternate minimum image code from @stanmoore1 from fix rigid/small 2024-04-04 20:49:20 -04:00
ec7b76454a fix spelling error 2024-04-04 14:37:03 -06:00
c45f2666ad clean-up whitespace 2024-04-04 14:21:55 -06:00
66d042a0ee make checks for exceeding length of variable-length vectors more consistent 2024-04-04 14:11:13 -06:00
2c26586b1a clean up 2024-04-04 13:50:43 -06:00
6a2bcc7258 merge in current develop 2024-04-04 13:30:14 -06:00
99e82f9f07 Merge pull request #4120 from maitane-muba/develop
Explicit symmetrization of cutoff in pair_ylz
2024-04-04 15:16:47 -04:00
03711c13da clean up 2024-04-04 13:11:59 -06:00
65cdc76c99 final changes for 2d rigid bodies with jacobi 2024-04-04 13:07:35 -06:00
506bf886ee merge in develop branch 2024-04-04 12:56:12 -06:00
58d6f9ba2e Removing hrate from fix deform/pressure restart 2024-04-04 11:29:28 -06:00
8254d20b44 Removing unnecessary comm calls fix heat/flow 2024-04-04 11:29:02 -06:00
f637299ac5 Added symmetrization of cutoff in init_one() and fixed a print 2024-04-04 18:18:10 +02:00
972d412186 flag false positives 2024-04-03 20:53:44 -04:00
ef3d255a4b Merge branch 'develop' into pace-mliap 2024-04-03 20:49:29 -04:00
3db1e5f0f6 mliap kk snap unittest back on only disable mliap kk for ACE 2024-04-03 16:58:16 -06:00
1529a61901 Merge pull request #4111 from akohlmey/collected-small-fixes
Collected small fixes
2024-04-03 16:56:25 -04:00
4c9924984d modify access to fixes 2024-04-03 15:58:24 -04:00
ecd8fe71a1 cosmetic 2024-04-03 15:05:09 -04:00
39d12e48d6 must always return nfaces=0 for less than 3 vertices 2024-04-03 15:04:39 -04:00
4329c4c37f changes to rigid and rigid/small 2024-04-03 11:11:52 -06:00
d06b86916a more debugging 2024-04-03 11:11:16 -06:00
c0abefeacb update links in manual to jacobi3() docs 2024-04-02 23:53:25 -04:00
78a3a7b9c2 add optional argument to enable overriding sort order or eigenvalues/vectors 2024-04-02 23:28:14 -04:00
21745538a7 Revert "change ordering of eigenvalues in jacobi3() function. update tests."
This reverts commit c4eadd3a59.
2024-04-02 23:02:04 -04:00
c502dd4033 Fixed trailing whitespace 2024-04-02 13:20:29 -04:00
0809d8b722 Updated documentation about METADATA in the uf3 lammps pot files 2024-04-02 13:17:13 -04:00
887ce4948a Removed old pot files 2024-04-02 13:16:38 -04:00
1ef7b8132c Updated A_A.uf3 to Nb_Nb.uf3 and A_A_A.uf3 to Nb_Nb_Nb.uf3 2024-04-02 13:16:00 -04:00
3734252ed8 Replaced the A_A.uf3 and A_A_A.uf3 with uf3 lammps pot files for Nb 2024-04-02 13:15:05 -04:00
7281f9327b Added code to check if 'UNITS:' metadata is present in the pot file or not 2024-04-02 13:14:28 -04:00
d3bc4c7eb8 Removed commented out code 2024-04-02 11:18:01 -04:00
ed0cff92de Merge remote-tracking branch 'github/develop' into general-triclinic 2024-04-02 09:41:21 -04:00
dfc68fb338 Merge remote-tracking branch 'github/develop' into collected-small-fixes 2024-04-02 09:40:25 -04:00
05562ad5e9 testing 2d rigid changes 2024-04-01 21:35:35 -06:00
72772c136f Merge branch 'lammps:develop' into ml-uf3 2024-04-01 18:34:50 -04:00
801ceea90a Pimplifying the code Attempt-1 2024-04-01 18:33:02 -04:00
42dcc76a70 Merge pull request #2 from akohlmey/ml-uf3
More updates to PR 4110
2024-04-01 12:03:42 -04:00
2ddd940a3e minor cosmetic changes 2024-03-31 20:31:25 -04:00
4eaf257e52 small cleanups 2024-03-31 19:49:01 -04:00
051c818596 enable and apply clang-format 2024-03-31 19:39:21 -04:00
3da6a7bdb0 eliminate compatibility typedefs 2024-03-31 19:29:09 -04:00
0296ca75fb remove tabs 2024-03-31 18:20:11 -04:00
ff91728587 reduce XDR compatibility code to only those routines that are used by dump xtc 2024-03-31 18:09:40 -04:00
0cdbcc801e switch to BSD 3-clause licensed XDR version, use c++11 portability, cleanups 2024-03-31 17:42:41 -04:00
ae6247d3be remove xdr_compat.h include and pimplify XDR struct, silence compiler warnings 2024-03-31 17:41:35 -04:00
f6bdc05c24 alternate fix to PR #4116 2024-03-30 19:19:47 -04:00
a017a775bd Merge pull request #4108 from MightyHelper/develop
Allow compute spin for groups other than `all`
2024-03-30 09:12:43 -04:00
dcc7916210 reorder header 2024-03-29 21:32:08 -04:00
d73aec6c21 add OpenMP version of angle style cosine/squared/restricted 2024-03-29 21:31:40 -04:00
428e22666d add unit test inputs for new styles 2024-03-29 21:15:25 -04:00
66a1e0103f gitignore 2024-03-29 21:00:59 -04:00
b712e46497 doc fixes 2024-03-29 21:00:51 -04:00
f48677c5e9 Merge branch 'develop' into restricted-angle 2024-03-29 20:39:23 -04:00
b79bccec6c Merge pull request #4098 from GenieTim/patch-1
Fix variables compatibility with chunk arrays
2024-03-29 20:34:03 -04:00
30f330718a more consistent error checks on variable length global vecs and arrays 2024-03-29 16:53:18 -06:00
7137290682 Follow requested changes to patch 2024-03-29 21:52:57 +01:00
c684fa0920 Merge branch 'lammps:develop' into patch-1 2024-03-29 21:48:43 +01:00
9c85e5a99b fix bug in option arg parsing of fix ave/correlate, also update doc page for fix ave/correlate/long 2024-03-29 14:27:43 -06:00
b8fc8e5e63 Update dihedral_style.rst 2024-03-29 11:18:11 +01:00
a9deb029e3 Add files via upload 2024-03-29 11:15:36 +01:00
42af73655c Add files via upload 2024-03-29 11:05:29 +01:00
996f5b9d52 fix ttm doc formatting fixes 2024-03-29 02:50:30 -04:00
a6230ba147 replace pow(x,2) and pow(x,3) with square() and cube() 2024-03-28 23:53:06 -04:00
1fff0a33fc drop log messages 2024-03-28 23:38:03 -04:00
c5262873b0 initialize all class pointers to null, delete all allocated storage 2024-03-28 23:36:57 -04:00
584137f104 remove num_of_elements class variable, just use local copy of atom->ntypes 2024-03-28 23:36:13 -04:00
6bdf981942 don't use pow() function for simple square 2024-03-28 23:08:51 -04:00
2219e764ce call utils::logmesg() only on rank 0, use c++ string comparisons, remove debug comments 2024-03-28 22:26:50 -04:00
3aae2d0c4b apply clang-format 2024-03-28 22:09:22 -04:00
379e212135 add system error message with failure to open potential 2024-03-28 22:05:27 -04:00
7c3ac31507 remove dead code 2024-03-28 21:50:40 -04:00
34f88843fa update example logs 2024-03-28 21:50:30 -04:00
a26c281a63 Merge pull request #1 from akohlmey/ml-uf3
Updates for ml-uf3 pull request
2024-03-28 19:23:08 -04:00
ecb5704f25 some formatting and logic cleanup. 2024-03-28 17:32:26 -04:00
a6e5c8b981 update more files and docs for .uf3 potential file extension
also remove redundant files
2024-03-28 17:32:07 -04:00
392c3b6d65 manybody and single flag need to be changed from the default when 2-body/3-body is selected 2024-03-28 17:02:07 -04:00
eb89c7a392 examples folder was moved 2024-03-28 17:01:37 -04:00
a13d53dd65 disable references to cuFFT (which is not yet used) 2024-03-28 16:14:44 -04:00
2a8a7f6365 Update angle_style.rst
Include link to rst file of the restricted angle potential
2024-03-28 15:47:37 +01:00
720705b7d2 Add files via upload 2024-03-28 15:44:15 +01:00
0893a2d0a0 Add files via upload 2024-03-28 15:43:01 +01:00
f8d8ed0946 use correct character class escapes 2024-03-27 17:52:13 -04:00
3c8ba3d376 Update codeowners so changes to domain can be ported to KOKKOS package 2024-03-27 13:14:52 -06:00
edcbd2e761 Fix bug in Kokkos when shrink-wrapping with no atoms 2024-03-27 13:04:23 -06:00
fca23dac72 some style cleanup and simplified pair_style and pair_coeff input 2024-03-27 07:29:31 -04:00
713b308a99 update ML-UF3 examples 2024-03-27 07:25:36 -04:00
fda433a7ee reformat and fix spelling and related issues 2024-03-27 06:53:03 -04:00
7323364d1d move examples 2024-03-27 06:35:19 -04:00
0d7c41b1c3 update code owners list 2024-03-27 06:30:20 -04:00
f9a0ec83b4 update .gitignore 2024-03-27 06:28:35 -04:00
7e09353e7c add ML-UF3 to compatible CMake preset files 2024-03-27 06:28:23 -04:00
e5ea8c2670 silence compiler warnings 2024-03-27 06:04:56 -04:00
cd154abe73 add "Incorrect format in ... section of data file" to Error_details and url 2024-03-26 23:56:38 -04:00
b01efd96a5 add missing link and expand docs for Unknown identifier in data file error 2024-03-26 23:27:44 -04:00
dc0b0d8be8 Added example potential files for W 2024-03-26 13:18:26 -04:00
ff39a03e83 Removed trailing whitespaces 2024-03-26 13:14:32 -04:00
3a34b3eeaf Added uf3 examples to the examples directory 2024-03-26 12:35:30 -04:00
4e95db1bb7 Added uf3 details to Commands_pair, Packages_details and Packages_list 2024-03-26 12:34:29 -04:00
c4eadd3a59 change ordering of eigenvalues in jacobi3() function. update tests. 2024-03-26 01:52:07 -04:00
45fbe73f2b Simplify output of windows version. If unknown build number just output "Windows Build #####" 2024-03-25 22:48:01 -04:00
b2809996b8 fixed trailing whitespaces 2024-03-25 17:45:06 -04:00
06c4fc6590 Removed LAMMPS errordocs 2024-03-25 17:23:47 -04:00
de43263e28 Fixed lammps developer email-id and contributing authors section. Removed some old comments 2024-03-25 17:18:11 -04:00
d55f750dc6 Fixed typos in the UF3 equation 2024-03-25 15:17:43 -04:00
f3391199e7 correct formatting of tables 2024-03-25 14:26:39 -04:00
5c536c8290 Added ml-uf3 unittest 2024-03-25 12:11:05 -04:00
a720d0dc67 Added ml-uf3 potential files 2024-03-25 12:10:31 -04:00
923e251540 Added documentation for ml-uf3 2024-03-25 12:10:01 -04:00
9a23ddf88a Added ml-uf3 to cmake and make files 2024-03-25 12:08:51 -04:00
53c6959e52 Added src files for uf3/kk 2024-03-25 12:08:07 -04:00
6dded43b2c Added ml-uf3 src files 2024-03-25 12:07:18 -04:00
857298b639 fix typo 2024-03-23 03:38:38 -04:00
3be5008aa8 must skip KOKKOS tests for any ML-IAP inputs using snap descriptors 2024-03-22 23:54:18 -04:00
000c8f510d apply clang-format 2024-03-22 23:38:02 -04:00
7bd7396b6a correct and complete conventional build package logic 2024-03-22 23:29:42 -04:00
e4035dd9d5 correct CMake script logic 2024-03-22 23:19:38 -04:00
7d94880ecd silence compiler warnings and apply clang-format 2024-03-22 22:57:44 -04:00
f2cd41bb1c cleanup 2024-03-22 16:57:39 -06:00
20cfebd6f8 Merge branch 'pace-mliap' of github.com:jmgoff/lammps_compute_PACE into pace-mliap 2024-03-22 16:51:59 -06:00
414d9608f8 fixed whitespace in docs 2024-03-22 16:51:27 -06:00
cb1e18256e Merge branch 'lammps:develop' into pace-mliap 2024-03-22 16:35:31 -06:00
176414b8e7 kokkos error and standard make 2024-03-22 16:33:49 -06:00
0b5722adc0 Allow compute spin for groups other than all 2024-03-22 18:44:12 -03:00
810ae3cc45 Merge pull request #4107 from Yi-FanLi/method_pimd
fix pimd/langevin: improve support for method==pimd
2024-03-22 02:45:57 -04:00
b22205493a Merge pull request #6 from akohlmey/method_pimd
Apply clang-format to your branch
2024-03-21 22:53:15 -04:00
cdab18f31f Merge pull request #4103 from akohlmey/collected-small-changes
Collected small changes and fixes
2024-03-21 19:43:30 -04:00
73eb12a204 apply clang-format 2024-03-21 12:17:06 -04:00
b7def392fb correct p_cv computation for method=PIMD 2024-03-21 11:55:13 -04:00
36358d5b14 Merge branch 'lammps:develop' into pace-mliap 2024-03-21 09:32:33 -06:00
8e3aa79a9e correct remove_com_motion for method=PIMD 2024-03-21 11:32:30 -04:00
5f6d3ad154 allow t_vir and t_cv computation for method=PIMD 2024-03-21 10:58:25 -04:00
a8d07744c0 split compute_cvir into 2 functions 2024-03-21 10:55:48 -04:00
417598498c fix compute pod 2024-03-20 20:01:22 -04:00
0f31a825a5 fix compute 2024-03-20 16:08:13 -04:00
2eb1ce98d9 add compute_t_prim for method=PIMD 2024-03-20 14:06:44 -04:00
b5d769bbbf Revert "Began CGDNA Howto"
This reverts commit c4b96704b27743c4e6b01166ea6d7e7a16480692.
2024-03-20 16:23:17 +00:00
bc436dad3a Added example directory 2024-03-20 16:23:17 +00:00
a3e4788221 Minor edits 2024-03-20 16:23:17 +00:00
add5fc07fd Changed user permissions 2024-03-20 16:23:17 +00:00
eee23b45c9 Began CGDNA Howto 2024-03-20 16:23:17 +00:00
c5fc65433a Updated and added utility scripts 2024-03-20 16:23:17 +00:00
e8606a51da Changed permissions to non-executable 2024-03-20 16:23:17 +00:00
7fa0e7b730 Added script for 2-particle visualisation 2024-03-20 16:23:17 +00:00
d123cd5440 fix typo 2024-03-20 04:57:03 -04:00
2dd9560439 add notes to python versions of lammps_extract_fix() that for global data one can only retrieve scalars 2024-03-19 22:39:05 -04:00
b021543140 fix zero neighbor in compute classes 2024-03-19 19:25:29 -04:00
a37b7754a7 fix a bug due to zero neighbor 2024-03-19 19:17:08 -04:00
d0e2a846b2 cosmetic 2024-03-19 12:04:06 -04:00
f8da51828a fix memory leaks in lammps_gather*concat() functions of the library interface 2024-03-19 12:03:56 -04:00
ee58003800 update electron radius velocities and radii in EFF NH fixes analog to fix nve/eff 2024-03-18 23:37:00 -04:00
a824828ea0 Merge branch 'develop' into collected-small-changes 2024-03-18 22:00:33 -04:00
b620c52b58 Merge pull request #4105 from ndtrung81/gpu-sph-bugfix
Fixed bugs with sph gpu pair styles
2024-03-18 21:59:33 -04:00
e7075163f1 update coding style 2024-03-18 21:51:31 -04:00
8f589ed536 simplify using modern API 2024-03-18 21:51:19 -04:00
6a28e8d5f6 Fixed bugs with sph gpu pair styles 2024-03-18 13:27:21 -05:00
0714c6fb67 Merge pull request #4102 from stanmoore1/teamsize_fix
Fix Kokkos "team size too large" issue
2024-03-18 12:34:45 -04:00
8d4a384f34 Improve cuFFT detection in CMake, similar to HIP 2024-03-18 09:28:53 -06:00
03bbc562ad improve error messages for invalid hybrid sub-styles 2024-03-18 10:46:43 -04:00
41ee1efa13 fix bug in f2c string conversion detected by bound checking 2024-03-18 10:27:38 -04:00
1bdcf7e42e Merge branch 'develop' into general-triclinic 2024-03-17 15:56:38 -04:00
505f7b3cb4 add 'append' keyword for appending to output file 2024-03-17 15:34:32 -04:00
d97c7fffac spelling 2024-03-17 15:13:13 -04:00
1bbe87d9d2 add 'append' keyword for appending to output file 2024-03-17 15:13:04 -04:00
7e163d451e uodate 2024-03-17 10:49:59 -04:00
866c059d2d improve error messages 2024-03-17 01:17:11 -04:00
fce15bf66f add support for appending to files to fix ave/time 2024-03-17 01:17:01 -04:00
2fe23b98f5 modernize and enable clang-format 2024-03-17 00:04:06 -04:00
1211af65a1 Fix Kokkos teamsize too large issue 2024-03-15 12:54:33 -06:00
207a14f351 Merge pull request #4101 from jtclemm/small-patches
Small patches to multi neighbor and fix deform/pressure
2024-03-15 01:39:04 -04:00
252e7070e3 Merge pull request #4099 from akohlmey/collected-small-fixes
Collected small fixes and changes
2024-03-14 19:57:51 -04:00
aa7e2da33d Misc small patches 2024-03-13 15:04:19 -06:00
af5c8bcd22 Merge branch 'develop' into pace-mliap
# Conflicts:
#	src/ML-IAP/compute_mliap.cpp
2024-03-12 09:05:46 -04:00
d0d4cf9ad0 add DOIs for recent stable releases 2024-03-11 22:40:21 -04:00
c3c61a368d Bugfix: both pair hybrid and hybrid/overlay cannot fuse force zeroing 2024-03-11 15:20:42 -06:00
b23c586236 mliap ace docs and example logs 2024-03-11 13:34:29 -06:00
5b16cf9773 use std::move() to avoid extra copy of temporaries 2024-03-10 16:19:22 -04:00
1b7bc36505 Fix variables compatibility with chunk arrays
When using variables with chunk computes that produce arrays (such as `compute chunk/atom`) the compute will not have set `size_array_rows` to the appropriate value before it has ever been called and will therefore incorrectly have thrown the error "Variable formula compute array is zero length".
2024-03-10 12:56:33 +01:00
01d412bdbf Merge branch 'develop' into general-triclinic 2024-03-08 21:32:01 -05:00
e7d77b6244 enable and apply clang-format, revert to some older code constructs where equivalent 2024-03-08 12:23:02 -05:00
bd0eb1ec84 silence compiler warning, cosmetic 2024-03-08 12:13:43 -05:00
94e9fe5df3 flag error with explanation when removed keyword "reax/c" is used instead of a file not found 2024-03-08 12:13:42 -05:00
8819275824 Merge pull request #3989 from evoyiatzis/patch-8
Addition of conical geometry in fix indent
2024-03-08 12:10:52 -05:00
01628dfc61 removing whitespaces in fix_indent.h 2024-03-08 15:46:27 +01:00
ebe57ce9eb removing whitespaces - fix_indent.cpp 2024-03-08 15:45:46 +01:00
ba5c1a4ac3 minor modifications in fix_indent.rst 2024-03-08 15:35:48 +01:00
bd99c2d661 Merge pull request #4097 from wmbrownIntel/numa_tune
Changes for processors grid numa style
2024-03-07 14:19:12 -05:00
4cab391f2a Merge pull request #4096 from stanmoore1/kk_update_4.2.1
Update Kokkos library in LAMMPS to v4.2.1
2024-03-07 13:42:24 -05:00
8ab2544f5b Add option to specify # of numa domains for processors grid numa style, simplify numa mapping with more agressive optimization to reduce comm between numa domains. 2024-03-07 07:07:16 -08:00
6dcfcc1a83 Update CMake 2024-03-06 17:57:10 -07:00
6cc9a4c7b7 Update Kokkos library in LAMMPS to v4.2.1 2024-03-06 14:58:06 -07:00
9d9dbc1fa8 Merge pull request #4094 from akohlmey/collected-small-fixes
Collected small changes and fixes
2024-03-06 15:03:17 -05:00
c984d5c94a improved revision of write_dump output frequency setting for 64-bit timesteps 2024-03-06 11:13:50 -05:00
ea52699893 collapse the two /report styles into a single "report" style 2024-03-05 19:02:11 -05:00
20d95cd17f whitespace 2024-03-05 18:30:07 -05:00
c6f90b2ae3 Merge branch 'develop' into collected-small-fixes 2024-03-05 18:27:20 -05:00
7e8b243891 make use of ..versionadded/..versionchanged consistent with the rest of LAMMPS 2024-03-05 18:26:41 -05:00
0dc6e156c1 add balance styles shift/report and rcb/report for reporting imbalances only 2024-03-05 18:24:38 -05:00
e0c0b2fe7e fix cmake syntax error 2024-03-05 15:28:21 -05:00
1909233c69 Merge pull request #4095 from robeme/electrode
Update for the ELECTRODE package
2024-03-05 10:25:39 -05:00
ad55bb4b8f Mention CMake in electrode README 2024-03-05 09:58:27 +01:00
1949953c0c Clarifying more variables, enabling offset option with integration style 2024-03-04 23:38:55 -05:00
a4a171a55e Clarifying ambiguous variables 2024-03-04 23:38:47 -05:00
5177b50fda Updating multi+narg errors for fix nonaffine 2024-03-04 23:38:40 -05:00
c7b622699d regenerate test reference data 2024-03-04 09:46:34 -05:00
393fd164db small conding style updates 2024-03-04 09:46:14 -05:00
0a32cd6c7f avoid redundant constant definition 2024-03-04 09:45:54 -05:00
3f91ee142b Merge branch 'develop' into electrode 2024-03-04 09:31:07 -05:00
6a1f1f7dbc add missing symlink 2024-03-04 09:25:07 -05:00
8e6ce1d0b9 Remove nonneut examples 2024-03-04 08:52:05 +01:00
6e91123910 try a different workaround for "fix not computed at compatible time" with write_dump 2024-03-03 23:58:33 -05:00
3c8bb5a1be programming style update 2024-03-03 18:39:28 -05:00
e19ad38c14 fix missing thread initialization exposed by LAMMPS-GUI 2024-03-03 18:36:15 -05:00
d33519e882 correct and clarify 2024-03-03 16:47:44 -05:00
9628ad6caf recover compilation 2024-03-03 12:59:17 -05:00
60e5124ac2 compute composition/atom doesn't seem to be compatible with multi neighbor lists 2024-03-03 12:51:48 -05:00
372260ec77 error out in compute ave/sphere/atom and efield/wolf/atom with multi-cutoff neighborlists 2024-03-03 12:46:20 -05:00
2809428fe2 make computes rdf and adf error out multi cutoff neighbor lists if needed 2024-03-03 12:27:39 -05:00
a776d8425f initialize pointers to null 2024-03-03 11:28:49 -05:00
4a993483fc remove dead code 2024-03-03 11:25:01 -05:00
e51e2733cb add note for porting code containing the removed Atoms::count_words() functions 2024-03-03 07:47:14 -05:00
ccdf55151d modernize 2024-03-02 15:59:37 -05:00
45e8ee1c08 disallow using custom cutoff with multi cutoff neighbor lists 2024-03-02 15:53:21 -05:00
133ec34bf5 update 2024-03-01 19:01:48 -05:00
00b0c439ed improve error messages 2024-03-01 18:54:43 -05:00
2c9dfa3ea7 update MS-MEAM examples 2024-03-01 18:54:35 -05:00
93942f2013 Added override for ialloy default with MS-MEAM
# Conflicts:
#	doc/src/pair_meam.rst
2024-03-01 18:32:16 -05:00
554f53decb Merge pull request #4092 from stanmoore1/comm_tiled
Add better Kokkos support for comm_style tiled
2024-03-01 08:58:39 -05:00
7064e1e2b6 make searches for drude fix more specific to avoid false positives 2024-03-01 07:33:48 -05:00
6f03b22b43 Merge branch 'develop' into comm_tiled 2024-03-01 03:03:47 -05:00
b0ca503173 Merge pull request #4090 from akohlmey/collected-small-changes
Collected small changes and fixes
2024-03-01 03:01:49 -05:00
259bcfba1f remove one more unused class member 2024-02-29 22:45:32 -05:00
b15956c13c remove unused class members 2024-02-29 22:26:40 -05:00
f5b1813f14 silence compiler warnings 2024-02-29 18:38:31 -05:00
efcee365c1 Fix issue 2024-02-29 14:06:21 -07:00
4f0d30b8d6 Fix data transfer issue 2024-02-29 11:01:18 -07:00
2130ffaa11 Fix compiler warning 2024-02-28 16:02:52 -07:00
a261a6c34c whitespace fixes 2024-02-28 17:45:41 -05:00
1bba2c9e06 third and final round of include-what-you-use updates 2024-02-28 17:40:17 -05:00
0d37dddc9e restore correct formatting to meam_force.cpp and port changes to KOKKOS 2024-02-28 17:19:52 -05:00
37c0795691 Fixed additional errors with multicomponent systems, making msmeamflag independent of ialloy 2024-02-28 17:02:09 -05:00
81a684f572 assign ownership for compute reaxff/atom and reaxff/atom/kk 2024-02-28 15:59:31 -05:00
0ce25755cd second round of include-what-you-use updates 2024-02-28 15:37:13 -05:00
1359c52f30 include-what-you-use updates 2024-02-27 23:42:24 -05:00
5967865af9 remove unused class member 2024-02-27 22:42:13 -05:00
9a0ce2d5c7 Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes 2024-02-27 20:57:03 -05:00
73e42481f7 modernize and consolidate ML compute styles 2024-02-27 20:55:52 -05:00
eb9b1e163d modernize and coding style/formatting improvements 2024-02-27 20:55:28 -05:00
4dbfa5483b Fix memory leak 2024-02-27 14:50:20 -07:00
7593f0df22 Merge branch 'develop' of github.com:lammps/lammps into comm_tiled 2024-02-27 14:15:58 -07:00
86b7560740 Init pointers, etc. 2024-02-27 14:13:27 -07:00
6972758783 whitespace 2024-02-27 09:38:22 -07:00
369aae91d3 Remove unnecessary destroys 2024-02-27 09:31:53 -07:00
f1ed2f20a1 Add back in legacy functions needed for mliap 2024-02-27 09:31:39 -07:00
e1a3ed6602 modernize and coding style/formatting improvements 2024-02-27 10:38:39 -05:00
1baa6cc166 remove dead code from fix bocs 2024-02-27 10:29:35 -05:00
0096c06def Merge branch 'develop' into collected-small-changes 2024-02-26 20:02:29 -05:00
4d89741d8c Merge pull request #4091 from jtclemm/BPM
Small fixes to GRANULAR/BPM packages
2024-02-26 20:01:57 -05:00
53219b299b Unused var 2024-02-26 17:16:28 -07:00
14066e018f Fix indexing issue 2024-02-26 17:15:04 -07:00
07731d8112 Whitespace 2024-02-26 16:34:49 -07:00
214ea5209e Missed changes 2024-02-26 16:34:42 -07:00
5ad4545273 fix where initialization of options is done 2024-02-26 16:07:14 -07:00
363db81be1 tweak a comment 2024-02-26 16:05:19 -07:00
4e77556610 minor changes to source and doc files 2024-02-26 15:59:03 -07:00
82762937a8 Add better Kokkos support for comm_style tiled 2024-02-26 15:37:22 -07:00
bd9f6993e3 whitespace 2024-02-26 17:14:44 -05:00
3d55fc4ec2 Merge branch 'develop' into collected-small-changes 2024-02-26 17:14:18 -05:00
e9deaa83d1 Merge pull request #4088 from sakibmatin/debug
Fix for force calculation and memory bug (atom name definition) in mliap.
2024-02-26 16:46:36 -05:00
719b7a96f1 silence compiler warnings 2024-02-26 16:45:01 -05:00
73ae3200d0 incorporating feedback 2024-02-26 12:09:19 -07:00
35db949e77 Merge pull request #4069 from vladgl/fix_wall_flow
New fix implementing flow boundary conditions
2024-02-26 12:46:20 -05:00
8501c3de6c Merge pull request #4087 from akohlmey/add-rebomos-pair-style
Add rebomos pair style with examples and unit test
2024-02-26 11:38:10 -05:00
f532a513da only import used constant 2024-02-26 07:58:53 -05:00
2bc5a04214 fix conversion bug when input is in radians 2024-02-26 07:54:25 -05:00
5aae41a08c remove obsolete comment 2024-02-26 06:50:36 -05:00
b22ce0f4be use platform neutral CMake property to export symbols 2024-02-25 21:58:35 -05:00
725156753a remove superfluous warning 2024-02-25 21:51:34 -05:00
86ea5271d6 portability 2024-02-25 21:19:13 -05:00
b8c8b4d19b use -rdynamic for re-exporting symbols when using plugins 2024-02-25 21:11:31 -05:00
e7b0c8b3c5 synchronize LAMMPS C++ interface CMake modules 2024-02-24 17:29:25 -05:00
aaba736967 Fixed error in forces that only affects non-zero t1m MS-MEAM models 2024-02-24 17:03:06 -05:00
98b3d19c40 link with static liblammps.a when available to avoid dynamic linker error when loading plugins 2024-02-24 17:01:53 -05:00
01d9f78e69 correct citation 2024-02-24 14:34:40 -05:00
c869783e72 warn about building LAMMPS with shared lib support for plugins 2024-02-24 09:21:20 -05:00
d39158ca08 modernize 2024-02-24 03:38:48 -05:00
9c7ec8bb6c must update docs for code changes 2024-02-23 21:55:09 -05:00
6c3c724f9c Merge pull request #4086 from akohlmey/collected-small-fixes
Collected small fixes and updates
2024-02-23 21:51:49 -05:00
04bccd0a9f whitespace 2024-02-23 19:08:46 -05:00
b7153eebee simplify and check for triclinic again, since somebody may have used change_box 2024-02-23 19:04:14 -05:00
66701ef1e2 complete rebomos docs 2024-02-23 17:29:31 -05:00
c401dc31d6 bump maxelt to 8 (for folks simulating high-entropy alloys) and make it uppercase 2024-02-23 17:05:20 -05:00
dda2bc7ac7 Mirroring changes in doc 2024-02-23 14:50:28 -07:00
a3f2c5b884 no longer need to boost neighbor one in rebomos unit test 2024-02-23 16:48:03 -05:00
6ea1bcf9d9 Clarifying trace notation in fabric 2024-02-23 14:45:21 -07:00
74abb18e69 improve error messages for pair style airebo and variants 2024-02-23 16:44:15 -05:00
dd4cd240df Moving temp/heat keywords out of dump to compute prop/atom 2024-02-23 14:31:40 -07:00
f9ecdb5b54 Updated documentation 2024-02-23 15:21:56 -06:00
5de6853684 fix typo 2024-02-23 16:05:30 -05:00
c36650fc88 auto-assign @jtclemm when fix deform/pressure is edited 2024-02-23 15:55:44 -05:00
3e089496b3 modernize and address issues flagged by static code analysis 2024-02-23 15:52:54 -05:00
fef2150bfb Fixing rare precision error in Tsuji damping 2024-02-23 13:29:18 -07:00
f864963ab9 removed old comments. 2024-02-22 22:03:29 -07:00
b016eaa1cf cosmetic 2024-02-22 15:20:51 -05:00
49886caaf1 add OPENMP package version of pair style rebomos 2024-02-22 15:17:46 -05:00
3e512834c7 cosmetic 2024-02-22 14:09:50 -05:00
22d0b202c4 update example logs for change in cutoff setting 2024-02-22 13:37:59 -05:00
36fa601fe0 cutoff calculation inherited from but only required for AIREBO. up to 2x speedup 2024-02-22 13:33:04 -05:00
bed84841ad update comment header to point to the LAMMPS developers email address 2024-02-22 09:57:42 -05:00
3a82e76607 small corrections 2024-02-22 09:15:18 -05:00
d6d9a91126 add rebomos potential with examples and unit test 2024-02-22 09:13:21 -05:00
325a7d99d6 error out when cuFFT is not found 2024-02-22 07:47:37 -05:00
3ff2b1b43b silence compiler warnings 2024-02-22 05:07:08 -05:00
00615d94ad Merge branch 'develop' into collected-small-fixes 2024-02-22 04:56:43 -05:00
71e0d506e7 spelling 2024-02-22 04:56:27 -05:00
f15acfffaf Merge branch 'develop' into fix_wall_flow 2024-02-22 04:51:43 -05:00
5cadcbfd68 silence compiler warnings 2024-02-22 04:51:35 -05:00
6af4dac2e5 Error::all() must be called by all MPI ranks 2024-02-22 04:41:16 -05:00
86d306b502 avoid excessive copies 2024-02-22 04:40:55 -05:00
a466d74f31 document requirement of per-type masses 2024-02-22 04:34:22 -05:00
f1a5dd0479 Change warnings to errors 2024-02-22 12:28:23 +03:00
6ac24c297a Add check for varying box size 2024-02-22 11:50:05 +03:00
e51a65696d Merge pull request #4017 from jtclemm/stress_deform
Expanding deformation controls
2024-02-21 21:04:50 -05:00
14348a599c monte carlo insertions and pair style dsmc require per-type masses 2024-02-21 20:59:48 -05:00
71385add8b integrate into documentation system. correct links/references. 2024-02-21 17:50:55 -05:00
b9685e79ea Merge branch 'develop' into stress_deform 2024-02-21 17:35:39 -05:00
06b69f2d40 whitespace 2024-02-21 17:35:28 -05:00
835b65b644 Merge branch 'develop' into general-triclinic 2024-02-21 14:53:32 -07:00
11675587df tweak to underlining 2024-02-21 14:28:53 -07:00
cd4c97f8d8 doc adjust and code comments 2024-02-21 14:18:26 -07:00
0f34c1ec6e Add check for triclinic and periodic boundary 2024-02-21 21:16:21 +03:00
e20ea968b9 Add some clarifications to the doc 2024-02-21 20:49:19 +03:00
81609d04e3 Merge pull request #4080 from rbberger/compute_reaxff_atom_overflow_fix
Fix buffer overflow in compute reaxff/atom
2024-02-21 10:51:37 -05:00
e143bbb4dd use a more "CMake" way to link to cuFFT with check in CMake config run 2024-02-21 10:49:31 -05:00
16b631858f fix typo 2024-02-21 10:02:01 -05:00
4c0952dc70 Doc file updates, reverting h_rate initialization 2024-02-20 21:02:55 -07:00
e64f82a2bd Merge branch 'develop' into collected-small-fixes 2024-02-20 20:45:15 -05:00
08498637aa Merge pull request #4079 from stanmoore1/atom_map_host
Add Kokkos package option to build atom map in serial on CPU
2024-02-20 20:35:34 -05:00
ad9a107530 Merge pull request #4084 from S-Lykles/create_atoms_template_fix
Create atoms template check
2024-02-20 20:20:40 -05:00
9cf4f688d9 improve some explanations for KOKKOS package usage. 2024-02-20 11:38:32 -05:00
d38b3ffd82 remove dead code 2024-02-20 05:14:58 -05:00
00c263cd7b Merge pull request #4085 from lammps/varbug
Fix a bug with removing variables when a vector variable is defined
2024-02-20 05:00:45 -05:00
62968ebcd4 improve readability 2024-02-19 23:17:37 -05:00
46cacf089e whitespace 2024-02-19 21:41:29 -05:00
7a5fa7ca54 not a bug but change variable evaluate local ivar to jvar to avoid code confusion 2024-02-19 17:34:43 -07:00
d70a98561f fix bug in removing a variable 2024-02-19 17:33:51 -07:00
c115cdb18d Move check to be with other checks 2024-02-20 00:55:15 +01:00
aafe28da4d change wording 2024-02-19 23:41:12 +01:00
6b6afe3034 change error to be similar to fix pour and fix deposit 2024-02-19 23:28:22 +01:00
0fed131e52 Update docs of create_atoms 2024-02-19 22:39:28 +01:00
1f0194a218 Add template compatibility check to create_atoms mol 2024-02-19 22:39:08 +01:00
afc82b5fd6 include versionadded tag for new keyword 2024-02-19 13:52:35 -05:00
ec0535172c whitespace 2024-02-19 12:54:59 -05:00
e299e4967d Merge pull request #4074 from bathmatt/bounds-mliap
fixed bounds of loops in ML-IAP
2024-02-19 12:45:30 -05:00
fb1e6610ed edits of doc page for clarity 2024-02-19 10:36:15 -07:00
49ece2af25 Merge pull request #4082 from akohlmey/collected-small-changes
Collected small changes and fixes
2024-02-19 12:12:42 -05:00
1edec590bb Logs for eta mix example 2024-02-19 15:01:51 +01:00
81c6e5c51b add examples using the inputs keyword 2024-02-17 12:14:09 -05:00
7a836c7e69 Update docs 2024-02-16 13:15:40 -07:00
e5bb507d3d add clarifications 2024-02-16 14:31:35 -05:00
f38f2ef4f2 Fix bug 2024-02-16 12:02:06 -07:00
703ea412cb Need to clear atom map in exchange 2024-02-16 10:32:05 -07:00
1ad608c7cf Merge pull request #1 from bathmatt/bounds-mliap
Bounds mliap
2024-02-16 10:15:20 -07:00
e03534196a Remove duplicated code 2024-02-15 17:15:18 -07:00
8c242e7ee8 Fix some issues 2024-02-15 16:45:10 -07:00
90ebca63f3 Fix buffer overflow in compute reaxff/atom 2024-02-15 14:27:52 -07:00
a452ddc667 Tweaks 2024-02-15 13:01:43 -07:00
804ad0aec2 Merge remote-tracking branch 'matt-github-lammps/bounds-mliap' into bounds-mliap 2024-02-15 18:08:32 +01:00
2625d946e3 Fixed typo 2024-02-15 18:06:45 +01:00
e94d89ee3c added mliap_enable_ace to opt in/out of ace functionality in mliap 2024-02-14 17:02:07 -07:00
072b0374e7 do not check for cmath with Intel compilers but assume it is there 2024-02-14 18:55:19 -05:00
ae39eb6569 include missing source file when compiling INTEL package 2024-02-14 18:54:59 -05:00
6ebc32fa29 Update docs 2024-02-14 16:50:52 -07:00
52aefdd117 Add Kokkos package option to build atom map in serial on CPU 2024-02-14 16:42:45 -07:00
f19d9a9f4e ACE mliap examples 2024-02-14 16:18:56 -07:00
414fdeb3ee cleanup and whitespace 2024-02-14 15:42:04 -07:00
e5fbd15b9d ACE mliap examples and virial support 2024-02-14 15:06:01 -07:00
57321b308f OpenMP library is not (yet) properly detected for CrayClang. Work around it. 2024-02-14 13:40:57 -05:00
0591e4a6d4 flag as development branch 2024-02-14 12:36:34 -05:00
4f07f74f52 clean up redundant variables 2024-02-13 19:00:19 -05:00
0951e28a08 Merge branch 'develop' into replicate_periodic_box 2024-02-13 18:52:43 -05:00
254a849a29 Merge pull request #4077 from akohlmey/fix_ewald_const_issue
Fix compilation issue for some pair styles using ewald_const.h
2024-02-13 18:51:38 -05:00
be237f88f6 update kokkospod 2024-02-13 18:49:11 -05:00
443c40b98d Merge branch 'lammps:develop' into create_atoms-overlap_w_mol 2024-02-13 18:47:15 -05:00
382a449f58 Merge branch 'lammps:develop' into fix_reaxff/species-fixes 2024-02-13 18:46:04 -05:00
4188e12522 whitespace 2024-02-13 10:27:57 -07:00
5b645b631b add detection for CrayClang to the OpenMP compatibility check 2024-02-13 11:09:25 -05:00
0273fb4ad4 flag as update 1 version 2024-02-13 08:22:05 -05:00
a48da5b1e4 move ewald_const.h to src and apply it to a few more files 2024-02-13 08:02:32 -05:00
3454e1fce5 update pod 2024-02-13 00:45:08 -05:00
c6a8f1fe58 Merge pull request #4073 from akohlmey/collected-small-changes
Collected small changes and fixes
2024-02-12 14:14:04 -05:00
adea2fc7f3 fixed bounds 2024-02-12 11:49:43 +01:00
8f848d9a81 update to use modernized APIs without directly accessing internal data of Modify 2024-02-09 15:36:15 -05:00
17ea598613 update API access to fixes and computes. improve error messages. 2024-02-09 15:30:57 -05:00
5aca8099e6 avoid installing libraries and headers for downloaded add-on libraries 2024-02-09 13:38:12 -05:00
1421d53b8c fix bug with assigning molecule IDs in parallel 2024-02-09 11:04:07 -05:00
524470f9fc document restriction for molecule sets. improve warning message. 2024-02-09 11:03:44 -05:00
245f8c2fad silence compiler warnings 2024-02-09 10:43:38 -05:00
69a999e565 remove dead code 2024-02-09 08:19:58 -05:00
a2ae9dce64 apply clang-tidy fixes 2024-02-09 06:29:08 -05:00
f8885cb266 implement clang-tidy fixes 2024-02-09 06:22:10 -05:00
c7831b29c0 Fix formatting issues 2024-02-09 13:28:35 +03:00
9c6e88f575 use plumed version 2.8.3 by default 2024-02-09 05:09:47 -05:00
be742253e2 Fix bug with the masses of the atoms 2024-02-09 13:05:45 +03:00
6aad6177b0 Remove accessing internal data of the Modify class 2024-02-09 12:31:19 +03:00
cba3c91b51 Remove lambda 2024-02-09 12:29:10 +03:00
5839b67d27 Simplify the code and remove redundant include 2024-02-09 12:26:40 +03:00
801c62dbde updated library for better Windows portability 2024-02-09 04:14:14 -05:00
022cedeff0 Remove debug output 2024-02-09 12:08:36 +03:00
953e01d2c4 Linux to Windows cross-compilation is only supported by CMake 2024-02-09 03:44:01 -05:00
11580aea57 update OpenCL loader library to latest upstream version 2024-02-09 03:39:44 -05:00
3358fe36d1 Fixing bugs in child arg parsing 2024-02-08 21:27:58 -07:00
dd6df6edb2 Merge branch 'develop' into fix_wall_flow 2024-02-08 17:52:16 -05:00
c967a5e6cc flag development version 2024-02-08 12:47:52 -05:00
ae666de3f7 small optimization and portability to Solaris/OpenIndiana 2024-02-07 22:57:12 -05:00
77ec384620 include kk suffix 2024-02-07 19:58:05 -05:00
843fe4f9e8 remove dead code 2024-02-07 19:57:51 -05:00
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
93fcf3cc75 move fix to EXTRA-FIX package, update docs, add reference logs to example 2024-02-07 15:07:11 -05: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
194b45b729 Example file 2024-02-07 09:52:02 -06:00
26cff47386 Removed whitespace 2024-02-07 09:45:29 -06:00
e33590b2fc Whitespace 2024-02-07 16:03:32 +03:00
df7662162e Add example 2024-02-07 13:55:27 +03:00
5bab14d31e Sync unpack_exchange_kokkos with develop 2024-02-07 13:55:27 +03:00
a3a054cc15 Another spell fix 2024-02-07 13:55:27 +03:00
0f5436de99 Fix spelling 2024-02-07 13:55:27 +03:00
4ad5a9d3eb Fix doc 2024-02-07 13:55:27 +03:00
90105fd58a Add wall_flow documentation 2024-02-07 13:55:27 +03:00
c53847ad88 Update citation 2024-02-07 13:55:27 +03:00
381330c3c2 Fix typo 2024-02-07 13:55:27 +03:00
249f3b0af4 Add units command 2024-02-07 13:55:27 +03:00
d7f7306b7d Fix character 2024-02-07 13:55:27 +03:00
19e45187f8 Add cite string 2024-02-07 13:55:27 +03:00
70cc1039fd Some cleaning 2024-02-07 13:55:27 +03:00
b775085189 Add licensing info 2024-02-07 13:55:27 +03:00
ec29117409 Add new fix wall/flow 2024-02-07 13:55:27 +03: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
fc1132b083 fix bug that by chance has no unwanted side effects 2024-02-06 19:37:15 -05:00
49dcefa83b add missing override keywords 2024-02-06 19:36:35 -05:00
dbdcfc5c97 Merge branch 'develop' into general-triclinic
# Conflicts:
#	src/atom.cpp
2024-02-06 19:21:50 -05:00
febb3671d8 removed whitespace 2024-02-06 18:03:17 -06: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
5137e86972 en models incorporated 2024-02-05 16:30:44 -06: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
63f33aa3a4 first 2024-02-04 16:29:19 -06:00
e5abfda823 cosmetic 2024-02-03 17:47:00 -05:00
1afb9e9dcb Revamping arg parsing in child class, updates to doc pages 2024-02-02 17:10:35 -07: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
5b6c0c6b56 Check eta property for fix electrode uses ghost on 2024-01-31 15:42:10 +01:00
35215606e8 Merge remote-tracking branch 'lammps/develop' into merge-develop 2024-01-31 14:41:36 +01:00
e649c0e070 consistent error messages for parent and child class 2024-01-30 20:04:07 -05:00
bff789aac9 silence compiler warnings and update format 2024-01-30 20:03:26 -05:00
840577114e force enumerators to be consistent by moving them to base class declaration 2024-01-30 19:38:58 -05:00
9d46408fa4 delete unused variables 2024-01-30 19:23:40 -05:00
103dc9ef66 fix missing "else" bug 2024-01-30 19:21:48 -05:00
cbf56bd7f8 Merge branch 'develop' into stress_deform 2024-01-30 18:56:19 -05:00
a835c5f3d9 Restoring some error message locations, minor edits 2024-01-30 15:50:40 -07:00
7f152de062 Rewiring arg parsing and data ownership 2024-01-30 15:29:02 -07: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
7905e5d146 Merge branch 'develop' into general-triclinic
# Conflicts:
#	src/atom.cpp
2024-01-29 21:05:21 -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
9cae812c51 Merge branch 'develop' into general-triclinic 2024-01-25 09:04:46 -05:00
2a95c09d77 Merge branch 'develop' into patch-8 2024-01-25 09:04:29 -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
7c7f07e28d Misc patches and missed changes 2024-01-22 22:13:29 -07:00
6dc676247f Merge branch 'stress_deform' of github.com:jtclemm/lammps into stress_deform 2024-01-22 21:25:46 -07:00
87b2662ee9 Moving pressure options to subclass 2024-01-22 21:21:20 -07: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
3b4291c750 remove undesired example 2024-01-18 18:15:42 -05:00
fcc85fb223 Revert "revert more general doc changes. those are moved to a separate branch for further edits."
This reverts commit fb9ae23516.
2024-01-18 18:14:41 -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
8cf2705d68 Merge branch 'develop' into general-triclinic 2024-01-18 15:01:09 -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
7453697316 Merge branch 'lammps:develop' into pace-mliap 2024-01-18 09:18:05 -07: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
8a53542dd1 updated examples 2024-01-16 11:59:25 -07:00
deb8416630 update tests for echoing the title line of molecule files 2024-01-16 13:53:07 -05:00
68f770dee9 ACE mliap initial commit 2024-01-16 11:31:53 -07: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
921ddffda2 small code simplification for the cylinder indenter 2024-01-14 17:18:33 +01: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
ad7b5e38ab Merge branch 'develop' into replicate_periodic_box 2024-01-10 20:01:42 -05:00
60f1233b07 Merge branch 'lammps:develop' into create_atoms-overlap_w_mol 2024-01-10 19:55:18 -05:00
768163865e avoid 32-bit integer overflow for PPPM grid 2024-01-10 19:54:29 -05:00
63332eb1b2 Merge branch 'lammps:develop' into fix_reaxff/species-fixes 2024-01-10 19:52:55 -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
2252706931 Merge branch 'develop' of github.com:lammps/lammps into develop 2024-01-09 10:59:51 +01: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
8e3b5bf327 Fixed memory bug in ML-IAP unified with atom name definitions
Added explict memory allocation for type string in ML-IAP unified. Corrected bug where atom types were not properly alligned with the potential.
2024-01-05 13:05:27 -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
c6d1cbef5a Merge branch 'develop' into general-triclinic 2024-01-04 21:10:50 -05:00
094128dd4d Merge branch 'develop' into patch-8 2024-01-04 21:10:19 -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
ac9afb26dd aesthetic optimization for xscale, yscale and zscale 2024-01-04 17:38:14 +02: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
d61c379b0c Error formatting 2023-12-21 14:28:54 +01:00
de066bcde0 Merge remote-tracking branch 'lammps/develop' into electrode 2023-12-21 14:13:16 +01: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
b0f3f88b49 Merge branch 'stress_deform' of github.com:jtclemm/lammps into stress_deform 2023-12-20 10:51:37 -07:00
e69a079545 Fixing invalid variable deform kokkos 2023-12-20 10:50:54 -07: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
b94b9a311d Merge branch 'develop' into stress_deform 2023-12-14 10:02:46 -07: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
e1be6c09f7 merge with GHub version 2023-12-13 09:05:27 -07:00
665785f41e adjust 2d box bounds 2023-12-13 09:04:23 -07: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
8eaaae1e99 recenter 2d boxes around 0.0 2023-12-06 08:31:41 -05:00
e05751f487 Update fix_nh_uef.rst
Fixing typo
2023-12-06 08:14:12 -05:00
58787ddecd make 2d system box center on 0.0 2023-12-06 07:36:29 -05:00
9edf553332 flag development branch 2023-12-06 07:22:23 -05:00
dd6b77d570 Merge branch 'develop' into general-triclinic 2023-12-06 07:01:55 -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
c172dceb9f white space update 2023-12-05 16:05:07 -07:00
2cbb6a634e merge with upstream version 2023-12-05 16:00:32 -07:00
ae4b65430a clarify rules for reading multiple data files with read_data 2023-12-05 15:58:40 -07: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
82868cd583 Simplify Madelung examples with mixed eta 2023-12-04 13:59:07 +01:00
8035521fe4 Merge branch 'develop' of github.com:lammps/lammps into develop 2023-12-04 11:18:13 +01:00
9571d5a0ea Merge branch 'develop' of github.com:Bibobu/lammps into develop 2023-12-04 11:17:37 +01: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
28c547a3cf Merge branch 'develop' into general-triclinic 2023-12-02 12:40:23 -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
dab47d518d apply clang-format 2023-12-01 16:23:59 -05:00
fbb9c69771 fix initialization bug 2023-12-01 16:23:49 -05:00
acdb0481f0 loads of spelling fixes 2023-12-01 15:54:54 -05:00
ef400cc13f fix broken links 2023-12-01 15:31:33 -05: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
45372937db loads of whitespace fixes 2023-12-01 14:52:47 -05:00
fb243eba9b update lattice death tests for changed error messages 2023-12-01 14:41:12 -05:00
767b50e718 Merge branch 'develop' into general-triclinic 2023-12-01 14:13:05 -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
e1c028c785 Update documentation
Describe the arguments for cone indenter style
2023-11-23 16:02:22 +02:00
a90c7b42f9 Include code for conical indenter in fix_indent.cpp 2023-11-23 15:40:34 +02:00
c57ed87e9a Addition of conical indenter 2023-11-23 15:36:27 +02: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
469358cbf4 UPDATE KOKKOS 2023-11-22 14:38:13 -07:00
61993d1643 MLIAP Unified fix for multi layer models
CPU only
2023-11-22 14:36:59 -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
9fae8a2c2d Merge branch 'develop' into general-triclinic 2023-11-21 15:21:16 -07:00
6b822c1d0e Update CMake 2023-11-21 15:13:56 -07:00
18c5cdb327 doc page for thermo output difference with triclinic/general 2023-11-21 15:03:32 -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
fd83ed4004 compute reaxff/atom: add support for pair hybrid 2023-11-21 13:42:51 -07:00
16f0806da0 Rename compute to reaxff/atom 2023-11-21 11:19:47 -07:00
f25075db6c adding the scale feature of quip calculator, allows fix adapt functionallity 2023-11-21 13:57:34 +00:00
dfafdff209 finalized dump command support for general triclinic 2023-11-20 12:06:58 -07: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
92b02041cb more edits on create_atoms doc page 2023-11-18 17:16:29 -07:00
56b2c7ed46 alter how lattice interacts with create_box and create_atoms for general triclinic 2023-11-17 17:10:45 -07:00
4ccd59af80 another doc tweak for 2d 2023-11-16 16:37:43 -07:00
4057ee3d62 more doc page updates for general tri 2023-11-16 16:35:16 -07:00
fc5803188f doc page for write_data 2023-11-15 09:29:04 -07: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
a0a21fab64 changes for body particles in general triclinic 2023-11-14 17:03:56 -07:00
4da49c6d85 more updates to doc page and read_data functionality 2023-11-13 15:22:17 -07:00
a651697d2e Mix eta in Electrode package 2023-11-13 14:41:13 +01:00
ae3c332667 Tested a coarser PME mesh with a lower accuracy (2e-4) 2023-11-10 16:16:49 -06:00
e57079768f update some doc pages 2023-11-09 17:58:12 -07:00
64fa32cf1e Removed commented lines 2023-11-09 10:13:23 -06:00
db5ed64045 Merge pull request #2 from Bibobu/dependabot/github_actions/actions/checkout-4
Bump actions/checkout from 3 to 4
2023-11-09 09:52:58 +01:00
612a919e93 more work on read_data and doc pages 2023-11-06 16:56:33 -07:00
de037f5bd8 Merge branch 'develop' into general-triclinic 2023-11-03 14:53:17 -06:00
6fe6395ab2 reset quats for ellipsoids for general <-> restriced triclinic 2023-11-03 14:52:41 -06:00
745f2e6c54 Changing logic for self-bin check, newton+ortho 2023-11-01 12:22:30 -06:00
7a148688d5 Merge branch 'develop' into general-triclinic 2023-10-31 16:19:58 -06: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
8f14cdcb34 Cleaning up ghost stencils 2023-10-24 13:55:43 -06:00
0f94e6030f Adding separate ghost stencil for intel 2023-10-24 12:26:37 -06: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
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
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
a4a7b9c500 formatting 2023-10-20 14:01:24 -06:00
1c4ab13f01 merge with current develop 2023-10-20 13:31:32 -06:00
5ed10f9127 doc fix 2023-10-19 18:19:55 -06:00
83186a50b0 Update compute_pace.rst
typo fix
2023-10-19 16:37:45 -06: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
201f8cda9a more updates 2023-10-12 06:49:59 -06:00
fc12f86ea9 Update compute_pace.h
Header style fix
2023-10-11 16:47:35 -06:00
aff10deeb7 Merge branch 'lammps:develop' into compute-pace-update 2023-10-11 14:19:49 -06:00
f5f8df55b8 Merge branch 'lammps:develop' into compute-pace-update 2023-10-04 10:16:17 -06:00
857cc53923 README file for the ELECTRODE package 2023-10-04 10:32:50 +02: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
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
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
5ff16da272 Adding rate cap on vol link pressure 2023-09-21 12:17:47 +02:00
94a0d85b33 doc page updates 2023-09-20 15:20:02 -06: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
77a5fd16dd Fixing bug in link pressure 2023-09-19 13:37:47 +02:00
21d3f3240e more work on restart support 2023-09-16 10:09:26 -06:00
c5b2d66283 upgrades to read/write data commands 2023-09-15 16:49:56 -06:00
30f7328841 more dump custom fields rotated 2023-09-14 16:00:25 -06:00
e5f3fcbbf4 more work on read_data and write_data 2023-09-13 13:29:37 -06:00
c7e794146f initial support for write_data 2023-09-13 10:03:05 -06:00
dec245c67b support for other vector fields in read_data 2023-09-13 09:29:56 -06:00
6e539da050 Merge branch 'lammps:develop' into compute-pace-update 2023-09-12 13:01:10 -06:00
e20e3972d2 doc page updates 2023-09-07 17:21:15 -06:00
ceed2e723e more general tri support in dump atom and dump custom 2023-09-06 10:11:28 -06:00
1ab26e083a more general tri support in dump atom and dump custom 2023-09-06 10:11:04 -06:00
4735534139 enforce atom z coords = 0.0 for 2d simulations 2023-09-06 09:05:02 -06:00
d6d65f001a enforce atom z coords = 0.0 for 2d simulations 2023-09-06 09:04:10 -06:00
6f01b27e7e add general triclinic pressure tensor to thermo_style 2023-09-05 16:50:38 -06:00
1ed8dd6906 add general triclinic options to dump custom 2023-09-04 15:26:55 -06:00
fb890fcdfe 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 17:09:21 +00:00
78fbdad59e code cleanup 2023-09-02 18:46:58 -06:00
57f6526e53 code cleanup 2023-09-02 18:45:37 -06:00
8c3ab47fd6 more debugging for fcc example 2023-09-01 22:58:10 -06:00
40def67942 debugging 2023-09-01 17:46:52 -06:00
7918f14499 remove unneeded method 2023-09-01 14:45:00 -06:00
817a16b48c work on create_atoms command 2023-09-01 14:38:22 -06:00
7462439b5d mods to change_box 2023-09-01 12:15:51 -06:00
932a080246 tweak comments 2023-08-31 14:45:24 -06:00
db72d4b73a add general tri options to read and write data commands and Domain class 2023-08-31 14:34:37 -06:00
7a1466671b Merge branch 'develop' into BPM 2023-08-31 10:28:47 -06:00
a206072520 Merge branch 'develop' into master 2023-08-29 19:04:58 +03: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
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
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
2c897df841 Merge branch 'develop' into new-computes 2023-08-24 09:38:05 -04: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
3a10888a6d merge electrode changes 2023-08-04 17:03:44 +10:00
e5bcbd4213 Bugfix electrode/conq after changes for qtotal 2023-08-02 13:03:45 +02:00
e3792616ad Moving line break in BPM doc pages for link, fixing prop/atom syntax 2023-08-01 12:54:23 -06:00
0a5aa5b1d2 Merge branch 'lammps:develop' into compute-pace-update 2023-07-24 10:05:05 -06:00
3c2ba879ef Merge branch 'lammps:develop' into compute-pace-update 2023-07-20 08:55:35 -06:00
ec65fc48ad Cleaning up files, fixing bug in berendsen 2023-07-18 09:25:22 -06: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
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
2ef326273d Fixing bug in max rate threshold 2023-07-15 16:09:53 -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
4eba3791f3 enforce order for printing CHON 2023-07-09 15:30:56 -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
6318b09a07 report unique species when duplicate elements
previously, duplicate species were reported when there were duplicate elements in the element-to-type mapping. for example, H2 and HH and multiple other H2s and HHs could appear in the 'species' and 'delete species' files
2023-07-04 20:29:31 -04: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
d6532d3550 Adding h_ratelo calculation 2023-06-23 14:13:32 -06:00
33d82c30ca fix to allow reaxff/species before pair_coeff 2023-06-22 18:40:50 -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
32e4aac9f7 Update fix_reaxff_species.rst 2023-06-16 21:34:06 -04:00
d18d7edad9 reaxff/species: default elements from pair reaxff 2023-06-16 21:23:46 -04:00
492b0641f2 record element list from pair_coeff 2023-06-16 20:50:22 -04: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
60173c477d Creating persistent h_rate variable 2023-06-14 15:14:19 -06:00
f75eda4bf4 Updating size of set in restart 2023-06-14 14:16:46 -06:00
6de50fbd33 Adding iso options to fix deform 2023-06-14 13:39:24 -06: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
3e2d5098c0 Update create_atoms.rst 2023-06-07 22:07:57 -04:00
0e07089de6 create_atoms:overlap_keyword_w_atomic_molecules 2023-06-07 22:04:28 -04:00
59bdb136dc added qtotal keyword 2023-05-31 14:50:55 +00:00
74cf149aef Merge branch 'lammps:develop' into main 2023-04-24 09:00:00 -06:00
93ecbbdcff Modified CMAKE file so we can hopefully use the PLUMED_SUFFIX 2023-04-13 15:42:26 +01:00
3b01845f11 Updated API versions that are allowed for PLUMED 2023-04-08 19:45:50 +01: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
cc7c4bed76 Merge branch 'develop' into consolidate_neigh_classes 2023-03-16 20:30:38 -06:00
7d8866891a Call particle_map in compute of pppm/electrode 2023-02-01 11:35:03 +01:00
7160594902 Warning for mobile electrode atoms 2023-01-31 07:39:31 +00: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
63618d2490 Adding scalar pressure compute 2022-10-24 10:59:22 -06:00
173e2382b3 Adding documentation, various updates 2022-10-22 19:03:52 -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
66471c1465 Adding pressure controls and fixing misc errors 2022-10-11 16:52:02 -06:00
b8728884fc Drafting stress controls in fix deform 2022-10-10 10:33:47 -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
f024abfe34 make simpler, faster, more self-contained
(and fix bugs)
2022-06-07 11:10:36 -04:00
5bc1fb1580 revert unneeded changes to atom_vec 2022-06-07 10:47:18 -04:00
2f003e86b9 Merge branch 'lammps:develop' into replicate_periodic_box 2022-06-07 10:39:55 -04:00
e8e2a0fd40 Merge branch 'develop' into replicate_periodic_box 2022-05-29 13:29:56 -04:00
b4c58c9828 actually reset image flags 2022-04-22 21:19:53 -04:00
78458a2143 add mention of example in docs 2022-02-23 01:04:04 -05:00
be6c41a85a delete now-unused variable 2022-02-23 00:44:39 -05:00
200ea62fd3 simplify things 2022-02-13 15:22:13 -05:00
793cfe05f9 spacing 2022-02-13 15:09:32 -05:00
2c0a9cf572 better contain bondlist code 2022-02-13 15:06:10 -05:00
5c1486661c revert now unnecessary edits 2022-02-13 14:53:16 -05:00
44c3f4e562 fix for breaking kokkos 2022-02-13 14:51:23 -05:00
437e7829cc Update replicate.rst 2022-02-13 14:11:15 -05:00
7288d78331 reset image flag for bondlist option 2022-02-13 14:06:19 -05:00
2a4dbe5bbc bondlist_flag correction 2022-02-13 13:51:20 -05:00
22cca33966 typo 2022-02-07 18:02:17 -05:00
ac7db5041f add example for bondlist option validation 2022-02-06 16:14:30 -05:00
caafe2ff26 bondlist option docs 2022-02-06 15:31:02 -05:00
e384dfa424 'bondlist' option for replicate command
generalizes the command to work for periodic systems
2022-02-06 14:44:49 -05:00
3219 changed files with 250039 additions and 130931 deletions

13
.github/CODEOWNERS vendored
View File

@ -37,7 +37,8 @@ src/MESONT/* @iafoss
src/ML-HDNNP/* @singraber
src/ML-IAP/* @athomps
src/ML-PACE/* @yury-lysogorskiy
src/ML-POD/* @exapde @rohskopf
src/ML-POD/* @exapde
src/ML-UF3/* @monk-04
src/MOFFF/* @hheenen
src/MOLFILE/* @akohlmey
src/NETCDF/* @pastewka
@ -58,17 +59,23 @@ src/VTK/* @rbberger
# individual files in packages
src/GPU/pair_vashishta_gpu.* @andeplane
src/KOKKOS/pair_vashishta_kokkos.* @andeplane
src/KOKKOS/pair_vashishta_kokkos.* @andeplane @stanmoore1
src/KOSSOS/pair_pod_kokkos.* @exapde @stanmoore1
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
src/EXTRA-FIX/fix_deform_pressure.* @jtclemm
src/MISC/*_tracker.* @jtclemm
src/MC/fix_gcmc.* @athomps
src/MC/fix_sgcmc.* @athomps
src/REAXFF/compute_reaxff_atom.* @rbberger
src/KOKKOS/compute_reaxff_atom_kokkos.* @rbberger
src/REPLICA/fix_pimd_langevin.* @Yi-FanLi
src/DPD-BASIC/pair_dpd_coul_slater_long.* @Eddy-Barraud
src/GPU/pair_dpd_coul_slater_long.* @Eddy-Barraud
# core LAMMPS classes
src/lammps.* @sjplimp
@ -80,7 +87,7 @@ src/bond.* @sjplimp
src/comm*.* @sjplimp
src/compute.* @sjplimp
src/dihedral.* @sjplimp
src/domain.* @sjplimp
src/domain.* @sjplimp @stanmoore1
src/dump*.* @sjplimp
src/error.* @sjplimp
src/finish.* @sjplimp

View File

@ -30,12 +30,12 @@ jobs:
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

@ -24,7 +24,7 @@ jobs:
fetch-depth: 2
- name: Select Python version
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.11'

View File

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

@ -15,7 +15,7 @@ jobs:
build:
name: MacOS Unit Test
if: ${{ github.repository == 'lammps/lammps' }}
runs-on: macos-latest
runs-on: macos-13
env:
CCACHE_DIR: ${{ github.workspace }}/.ccache
@ -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 }}
@ -43,6 +43,8 @@ jobs:
working-directory: build
run: |
ccache -z
python3 -m venv macosenv
source macosenv/bin/activate
python3 -m pip install numpy
python3 -m pip install pyyaml
cmake -C ../cmake/presets/clang.cmake \

11
.gitignore vendored
View File

@ -43,12 +43,12 @@ Thumbs.db
#cmake
/build*
/CMakeCache.txt
/CMakeFiles/
/Testing
CMakeCache.txt
CMakeFiles
/Makefile
/Testing
/cmake_install.cmake
Testing
Temporary
cmake_install.cmake
/lmp
out/Debug
out/RelWithDebInfo
@ -60,3 +60,4 @@ src/Makefile.package.settings-e
/cmake/build/x64-Debug-Clang
/install/x64-GUI-MSVC
/install
.Rhistory

View File

@ -23,6 +23,7 @@ project(lammps CXX)
set(SOVERSION 0)
get_property(BUILD_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
include(GNUInstallDirs)
get_filename_component(LAMMPS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/.. ABSOLUTE)
get_filename_component(LAMMPS_LIB_BINARY_DIR ${CMAKE_BINARY_DIR}/lib ABSOLUTE)
# collect all executables and shared libs in the top level build folder
@ -120,6 +121,19 @@ 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")
@ -195,7 +209,7 @@ else()
unset(CMAKE_CXX_CLANG_TIDY CACHE)
endif()
include(GNUInstallDirs)
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})
@ -209,6 +223,10 @@ endif()
add_executable(lmp ${MAIN_SOURCES})
target_link_libraries(lmp PRIVATE lammps)
set_target_properties(lmp PROPERTIES OUTPUT_NAME ${LAMMPS_BINARY})
# re-export all symbols for plugins
if(PKG_PLUGIN AND (NOT ((CMAKE_SYSTEM_NAME STREQUAL "Windows"))))
set_target_properties(lmp PROPERTIES ENABLE_EXPORTS TRUE)
endif()
install(TARGETS lmp EXPORT LAMMPS_Targets DESTINATION ${CMAKE_INSTALL_BINDIR})
option(CMAKE_VERBOSE_MAKEFILE "Generate verbose Makefiles" OFF)
@ -239,6 +257,7 @@ set(STANDARD_PACKAGES
DRUDE
EFF
ELECTRODE
EXTRA-COMMAND
EXTRA-COMPUTE
EXTRA-DUMP
EXTRA-FIX
@ -264,10 +283,11 @@ set(STANDARD_PACKAGES
ML-HDNNP
ML-IAP
ML-PACE
ML-POD
ML-QUIP
ML-RANN
ML-SNAP
ML-POD
ML-UF3
MOFFF
MOLECULE
MOLFILE
@ -415,6 +435,7 @@ if(BUILD_OMP)
(CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM") OR (CMAKE_CXX_COMPILER_ID STREQUAL "XLClang") OR
((CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0)) OR
((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0)) OR
((CMAKE_CXX_COMPILER_ID STREQUAL "CrayClang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0)) OR
((CMAKE_CXX_COMPILER_ID STREQUAL "Intel") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.0)))
# GCC 9.x and later plus Clang 10.x and later implement strict OpenMP 4.0 semantics for consts.
# Intel 18.0 was tested to support both, so we switch to OpenMP 4+ from 19.x onward to be safe.
@ -425,6 +446,21 @@ if(BUILD_OMP)
target_compile_definitions(lammps PRIVATE -DLAMMPS_OMP_COMPAT=${LAMMPS_OMP_COMPAT_LEVEL})
target_link_libraries(lammps PRIVATE OpenMP::OpenMP_CXX)
target_link_libraries(lmp PRIVATE OpenMP::OpenMP_CXX)
# this hack is required to correctly link with OpenMP support when using 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_SHARED_LINKER_FLAGS_${BTYPE} "${CMAKE_SHARED_LINKER_FLAGS_${BTYPE} -fopenmp")
set(CMAKE_STATIC_LINKER_FLAGS_${BTYPE} "${CMAKE_STATIC_LINKER_FLAGS_${BTYPE} -fopenmp")
endif()
else()
if(CMAKE_CXX_COMPILER_ID STREQUAL "CrayClang")
set(CMAKE_SHARED_LINKER_FLAGS_${BTYPE} "${CMAKE_SHARED_LINKER_FLAGS_${BTYPE} -fopenmp")
set(CMAKE_STATIC_LINKER_FLAGS_${BTYPE} "${CMAKE_STATIC_LINKER_FLAGS_${BTYPE} -fopenmp")
endif()
endif()
endif()
# lower C++ standard for fmtlib sources when using Intel classic compiler
@ -539,12 +575,12 @@ endforeach()
########################################################################
# Basic system tests (standard libraries, headers, functions, types) #
########################################################################
foreach(HEADER cmath)
check_include_file_cxx(${HEADER} FOUND_${HEADER})
if(NOT FOUND_${HEADER})
message(FATAL_ERROR "Could not find needed header - ${HEADER}")
endif(NOT FOUND_${HEADER})
endforeach(HEADER)
if (NOT ((CMAKE_CXX_COMPILER_ID STREQUAL "Intel") OR (CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM")))
check_include_file_cxx(cmath FOUND_CMATH)
if(NOT FOUND_CMATH)
message(FATAL_ERROR "Could not find the required 'cmath' header")
endif(NOT FOUND_CMATH)
endif()
# make the standard math library overrideable and autodetected (for systems that don't have it)
find_library(STANDARD_MATH_LIB m DOC "Standard Math library")
@ -656,7 +692,7 @@ endif()
# packages which selectively include variants based on enabled styles
# e.g. accelerator packages
######################################################################
foreach(PKG_WITH_INCL CORESHELL DPD-SMOOTH MC MISC PHONON QEQ OPENMP KOKKOS OPT INTEL GPU)
foreach(PKG_WITH_INCL CORESHELL DPD-BASIC DPD-SMOOTH MC MISC PHONON QEQ OPENMP KOKKOS OPT INTEL GPU)
if(PKG_${PKG_WITH_INCL})
include(Packages/${PKG_WITH_INCL})
endif()
@ -971,34 +1007,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)

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

@ -43,5 +43,5 @@ function(ExternalCMakeProject target url hash basedir cmakedir cmakefile)
"${CMAKE_BINARY_DIR}/_deps/${target}-src/${cmakedir}/CMakeLists.txt")
endif()
add_subdirectory("${CMAKE_BINARY_DIR}/_deps/${target}-src/${cmakedir}"
"${CMAKE_BINARY_DIR}/_deps/${target}-build")
"${CMAKE_BINARY_DIR}/_deps/${target}-build" EXCLUDE_FROM_ALL)
endfunction(ExternalCMakeProject)

View File

@ -1,6 +1,6 @@
message(STATUS "Downloading and building OpenCL loader library")
set(OPENCL_LOADER_URL "${LAMMPS_THIRDPARTY_URL}/opencl-loader-2022.01.04.tar.gz" CACHE STRING "URL for OpenCL loader tarball")
set(OPENCL_LOADER_MD5 "8d3a801e87a2c6653bf0e27707063914" CACHE STRING "MD5 checksum of OpenCL loader tarball")
set(OPENCL_LOADER_URL "${LAMMPS_THIRDPARTY_URL}/opencl-loader-2024.05.09.tar.gz" CACHE STRING "URL for OpenCL loader tarball")
set(OPENCL_LOADER_MD5 "e7796826b21c059224fabe997e0f2075" CACHE STRING "MD5 checksum of OpenCL loader tarball")
mark_as_advanced(OPENCL_LOADER_URL)
mark_as_advanced(OPENCL_LOADER_MD5)
@ -8,4 +8,3 @@ set(INSTALL_LIBOPENCL OFF CACHE BOOL "" FORCE)
include(ExternalCMakeProject)
ExternalCMakeProject(opencl_loader ${OPENCL_LOADER_URL} ${OPENCL_LOADER_MD5} opencl-loader . "")
add_library(OpenCL::OpenCL ALIAS OpenCL)

View File

@ -0,0 +1,9 @@
# pair style dpd/coul/slater/long may only be installed if also KSPACE is installed
if(NOT PKG_KSPACE)
get_property(LAMMPS_PAIR_HEADERS GLOBAL PROPERTY PAIR)
list(REMOVE_ITEM LAMMPS_PAIR_HEADERS ${LAMMPS_SOURCE_DIR}/DPD-BASIC/pair_dpd_coul_slater_long.h)
set_property(GLOBAL PROPERTY PAIR "${LAMMPS_PAIR_HEADERS}")
get_target_property(LAMMPS_SOURCES lammps SOURCES)
list(REMOVE_ITEM LAMMPS_SOURCES ${LAMMPS_SOURCE_DIR}/DPD-BASIC/pair_dpd_coul_slater_long.cpp)
set_property(TARGET lammps PROPERTY SOURCES "${LAMMPS_SOURCES}")
endif()

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

View File

@ -111,6 +111,9 @@ if(PKG_KSPACE)
list(APPEND INTEL_SOURCES ${INTEL_SOURCES_DIR}/verlet_lrt_intel.cpp)
RegisterIntegrateStyle(${INTEL_SOURCES_DIR}/verlet_lrt_intel.h)
endif()
if(PKG_ML-SNAP)
list(APPEND INTEL_SOURCES ${INTEL_SOURCES_DIR}/sna_intel.cpp)
endif()
target_sources(lammps PRIVATE ${INTEL_SOURCES})
target_include_directories(lammps PRIVATE ${INTEL_SOURCES_DIR})

View File

@ -16,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()
########################################################################
@ -50,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/4.1.00.tar.gz" CACHE STRING "URL for KOKKOS tarball")
set(KOKKOS_MD5 "a5f096bd8ad01b97fdc7a32583b17a33" CACHE STRING "MD5 checksum of KOKKOS tarball")
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/4.3.01.tar.gz" CACHE STRING "URL for KOKKOS tarball")
set(KOKKOS_MD5 "243de871b3dc2cf3990c1c404032df83" CACHE STRING "MD5 checksum of KOKKOS tarball")
mark_as_advanced(KOKKOS_URL)
mark_as_advanced(KOKKOS_MD5)
GetFallbackURL(KOKKOS_URL KOKKOS_FALLBACK)
@ -76,7 +71,7 @@ if(DOWNLOAD_KOKKOS)
add_dependencies(LAMMPS::KOKKOSCORE kokkos_build)
add_dependencies(LAMMPS::KOKKOSCONTAINERS kokkos_build)
elseif(EXTERNAL_KOKKOS)
find_package(Kokkos 4.1.00 REQUIRED CONFIG)
find_package(Kokkos 4.3.01 REQUIRED CONFIG)
target_link_libraries(lammps PRIVATE Kokkos::kokkos)
else()
set(LAMMPS_LIB_KOKKOS_SRC_DIR ${LAMMPS_LIB_SOURCE_DIR}/kokkos)
@ -131,16 +126,33 @@ 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)
target_link_libraries(lammps PRIVATE 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")
find_package(CUDAToolkit REQUIRED)
target_compile_definitions(lammps PRIVATE -DFFT_KOKKOS_CUFFT)
target_link_libraries(lammps PRIVATE CUDA::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()

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} EXCLUDE_FROM_ALL)
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

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

View File

@ -10,6 +10,14 @@ endif()
option(MLIAP_ENABLE_PYTHON "Build ML-IAP package with Python support" ${MLIAP_ENABLE_PYTHON_DEFAULT})
# if ML-PACE package *and* MLIAP with Python is enabled is included we may also include ML-PACE support in ML-IAP
set(MLIAP_ENABLE_ACE_DEFAULT OFF)
if(PKG_ML-PACE)
set(MLIAP_ENABLE_ACE_DEFAULT ON)
endif()
option(MLIAP_ENABLE_ACE "Build ML-IAP package with ACE support" ${MLIAP_ENABLE_ACE_DEFAULT})
if(MLIAP_ENABLE_PYTHON)
find_package(Cythonize REQUIRED)
find_package(Python COMPONENTS NumPy REQUIRED)
@ -36,3 +44,10 @@ if(MLIAP_ENABLE_PYTHON)
target_compile_definitions(lammps PRIVATE -DMLIAP_PYTHON)
target_include_directories(lammps PRIVATE ${MLIAP_BINARY_DIR})
endif()
if(MLIAP_ENABLE_ACE)
if(NOT PKG_ML-PACE)
message(FATAL_ERROR "Must enable ML-PACE package for including ACE support in ML-IAP")
endif()
target_compile_definitions(lammps PRIVATE -DMLIAP_ACE)
endif()

View File

@ -1,33 +1,40 @@
set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2023.10.04.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 "70ff79f4e59af175e55d24f3243ad1ff" 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,5 +1,9 @@
# Plumed2 support for PLUMED package
# for supporting multiple concurrent plumed2 installations for debugging and testing
set(PLUMED_SUFFIX "" CACHE STRING "Suffix for Plumed2 library")
mark_as_advanced(PLUMED_SUFFIX)
if(BUILD_MPI)
set(PLUMED_CONFIG_MPI "--enable-mpi")
set(PLUMED_CONFIG_CC ${CMAKE_MPI_C_COMPILER})
@ -21,9 +25,11 @@ else()
set(PLUMED_CONFIG_OMP "--disable-openmp")
endif()
set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.8.2/plumed-src-2.8.2.tgz"
# Note: must also adjust check for supported API versions in
# fix_plumed.cpp when version changes from v2.n.x to v2.n+1.y
set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.9.1/plumed-src-2.9.1.tgz"
CACHE STRING "URL for PLUMED tarball")
set(PLUMED_MD5 "599092b6a0aa6fff992612537ad98994" CACHE STRING "MD5 checksum of PLUMED tarball")
set(PLUMED_MD5 "c3b2d31479c1e9ce211719d40e9efbd7" CACHE STRING "MD5 checksum of PLUMED tarball")
mark_as_advanced(PLUMED_URL)
mark_as_advanced(PLUMED_MD5)
@ -151,15 +157,15 @@ else()
file(MAKE_DIRECTORY ${INSTALL_DIR}/include)
else()
find_package(PkgConfig REQUIRED)
pkg_check_modules(PLUMED REQUIRED plumed)
pkg_check_modules(PLUMED REQUIRED plumed${PLUMED_SUFFIX})
add_library(LAMMPS::PLUMED INTERFACE IMPORTED)
if(PLUMED_MODE STREQUAL "STATIC")
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.static)
include(${PLUMED_LIBDIR}/plumed${PLUMED_SUFFIX}/src/lib/Plumed.cmake.static)
elseif(PLUMED_MODE STREQUAL "SHARED")
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.shared)
include(${PLUMED_LIBDIR}/plumed${PLUMED_SUFFIX}/src/lib/Plumed.cmake.shared)
elseif(PLUMED_MODE STREQUAL "RUNTIME")
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_DEFAULT_KERNEL=${PLUMED_LIBDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}plumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.runtime)
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_DEFAULT_KERNEL=${PLUMED_LIBDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}plumed${PLUMED_SUFFIX}Kernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
include(${PLUMED_LIBDIR}/plumed${PLUMED_SUFFIX}/src/lib/Plumed.cmake.runtime)
endif()
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_LINK_LIBRARIES "${PLUMED_LOAD}")
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${PLUMED_INCLUDE_DIRS}")

View File

@ -59,12 +59,14 @@ done
echo "Set up wrapper script"
MYDIR=$(dirname "$0")
cp ${MYDIR}/xdg-open ${DESTDIR}/bin
cp ${MYDIR}/linux_wrapper.sh ${DESTDIR}/bin
for s in ${DESTDIR}/bin/*
do \
EXE=$(basename $s)
test ${EXE} = linux_wrapper.sh && continue
test ${EXE} = qt.conf && continue
test ${EXE} = xdg-open && continue
ln -s bin/linux_wrapper.sh ${DESTDIR}/${EXE}
done

View File

@ -4,15 +4,17 @@
# reset locale to avoid problems with decimal numbers
export LC_ALL=C
BASEDIR=$(dirname "$0")
EXENAME=$(basename "$0")
BASEDIR="$(dirname "$0")"
EXENAME="$(basename "$0")"
PATH="${BASEDIR}/bin:${PATH}"
# append to LD_LIBRARY_PATH to prefer local (newer) libs
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${BASEDIR}/lib
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${BASEDIR}/lib"
# set some environment variables for LAMMPS etc.
LAMMPS_POTENTIALS=${BASEDIR}/share/lammps/potentials
MSI2LMP_LIBRARY=${BASEDIR}/share/lammps/frc_files
export LD_LIBRARY_PATH LAMMPS_POTENTIALS MSI2LMP_LIBRARY
LAMMPS_POTENTIALS="${BASEDIR}/share/lammps/potentials"
MSI2LMP_LIBRARY="${BASEDIR}/share/lammps/frc_files"
export LD_LIBRARY_PATH LAMMPS_POTENTIALS MSI2LMP_LIBRARY PATH
exec "${BASEDIR}/bin/${EXENAME}" "$@"

1074
cmake/packaging/xdg-open Executable file

File diff suppressed because it is too large Load Diff

View File

@ -26,8 +26,9 @@ set(ALL_PACKAGES
DPD-REACT
DPD-SMOOTH
DRUDE
ELECTRODE
EFF
ELECTRODE
EXTRA-COMMAND
EXTRA-COMPUTE
EXTRA-DUMP
EXTRA-FIX
@ -60,6 +61,7 @@ set(ALL_PACKAGES
ML-QUIP
ML-RANN
ML-SNAP
ML-UF3
MOFFF
MOLECULE
MOLFILE

View File

@ -28,8 +28,9 @@ set(ALL_PACKAGES
DPD-REACT
DPD-SMOOTH
DRUDE
ELECTRODE
EFF
ELECTRODE
EXTRA-COMMAND
EXTRA-COMPUTE
EXTRA-DUMP
EXTRA-FIX
@ -62,6 +63,7 @@ set(ALL_PACKAGES
ML-QUIP
ML-RANN
ML-SNAP
ML-UF3
MOFFF
MOLECULE
MOLFILE

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

@ -22,8 +22,9 @@ set(WIN_PACKAGES
DPD-REACT
DPD-SMOOTH
DRUDE
ELECTRODE
EFF
ELECTRODE
EXTRA-COMMAND
EXTRA-COMPUTE
EXTRA-DUMP
EXTRA-FIX
@ -50,6 +51,7 @@ set(WIN_PACKAGES
ML-POD
ML-RANN
ML-SNAP
ML-UF3
MOFFF
MOLECULE
MOLFILE

View File

@ -26,6 +26,7 @@ set(ALL_PACKAGES
DRUDE
EFF
ELECTRODE
EXTRA-COMMAND
EXTRA-COMPUTE
EXTRA-DUMP
EXTRA-FIX
@ -45,6 +46,7 @@ set(ALL_PACKAGES
ML-IAP
ML-POD
ML-SNAP
ML-UF3
MOFFF
MOLECULE
OPENMP

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

@ -22,6 +22,7 @@ set(WIN_PACKAGES
DRUDE
EFF
ELECTRODE
EXTRA-COMMAND
EXTRA-COMPUTE
EXTRA-DUMP
EXTRA-FIX
@ -42,6 +43,7 @@ set(WIN_PACKAGES
ML-IAP
ML-POD
ML-SNAP
ML-UF3
MOFFF
MOLECULE
MOLFILE
@ -50,8 +52,8 @@ set(WIN_PACKAGES
ORIENT
PERI
PHONON
POEMS
PLUGIN
POEMS
PTM
QEQ
QTB

View File

@ -100,6 +100,7 @@ html: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJAX)
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 ;\
@ -182,6 +183,7 @@ pdf: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK)
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 ;\
@ -231,6 +233,7 @@ 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" "21 November 2023" "2023-11-21"
.TH LAMMPS "1" "27 June 2024" "2024-06-27"
.SH NAME
.B LAMMPS
\- Molecular Dynamics Simulator. Version 21 November 2023
\- Molecular Dynamics Simulator. Version 27 June 2024
.SH SYNOPSIS
.B lmp
@ -297,7 +297,7 @@ the chapter on errors in the
manual gives some additional information about error messages, if possible.
.SH COPYRIGHT
© 2003--2022 Sandia Corporation
© 2003--2024 Sandia Corporation
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2 as

View File

@ -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)
@ -874,6 +877,9 @@ Bibliography
**(PLUMED)**
G.A. Tribello, M. Bonomi, D. Branduardi, C. Camilloni and G. Bussi, Comp. Phys. Comm 185, 604 (2014)
**(Pavlov)**
D Pavlov, V Galigerov, D Kolotinskii, V Nikolskiy, V Stegailov, International Journal of High Performance Computing Applications, 38, 34-49 (2024).
**(Paquay)**
Paquay and Kusters, Biophys. J., 110, 6, (2016). preprint available at `arXiv:1411.3019 <https://arxiv.org/abs/1411.3019/>`_.

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

@ -533,9 +533,6 @@ They must be specified in uppercase.
* - A64FX
- HOST
- ARMv8.2 with SVE Support
* - WSM
- HOST
- Intel Westmere CPU (SSE 4.2)
* - SNB
- HOST
- Intel Sandy/Ivy Bridge CPU (AVX 1)
@ -566,18 +563,15 @@ They must be specified in uppercase.
* - KNL
- HOST
- Intel Knights Landing Xeon Phi
* - BGQ
- HOST
- IBM Blue Gene/Q CPU
* - POWER7
- HOST
- IBM POWER7 CPU
* - POWER8
- HOST
- IBM POWER8 CPU
* - POWER9
- HOST
- IBM POWER9 CPU
* - RISCV_SG2042
- HOST
- SG2042 (RISC-V) CPU
* - KEPLER30
- GPU
- NVIDIA Kepler generation CC 3.0 GPU
@ -626,22 +620,22 @@ 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
* - NAVI1030
- AMD GPU MI300
* - AMD_GFX1030
- GPU
- AMD GPU V620/W6800
* - NAVI1100
* - AMD_GFX1100
- GPU
- AMD GPU RX7900XTX
* - INTEL_GEN
@ -666,7 +660,7 @@ They must be specified in uppercase.
- GPU
- Intel GPU Ponte Vecchio
This list was last updated for version 4.0.1 of the Kokkos library.
This list was last updated for version 4.3.0 of the Kokkos library.
.. tabs::

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:
@ -463,8 +523,8 @@ Exception handling when using LAMMPS as a library
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 and
the error status can be queried. When using C++ directly, the calling
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

@ -27,7 +27,7 @@ OPT.
* :doc:`none <bond_none>`
* :doc:`zero <bond_zero>`
* :doc:`hybrid <bond_hybrid>`
* :doc:`hybrid (k) <bond_hybrid>`
*
*
*
@ -89,6 +89,7 @@ OPT.
* :doc:`cosine/shift (o) <angle_cosine_shift>`
* :doc:`cosine/shift/exp (o) <angle_cosine_shift_exp>`
* :doc:`cosine/squared (o) <angle_cosine_squared>`
* :doc:`cosine/squared/restricted (o) <angle_cosine_squared_restricted>`
* :doc:`cross <angle_cross>`
* :doc:`dipole (o) <angle_dipole>`
* :doc:`fourier (o) <angle_fourier>`
@ -124,9 +125,10 @@ 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:`cosine/squared/restricted <dihedral_cosine_squared_restricted>`
* :doc:`fourier (io) <dihedral_fourier>`
* :doc:`harmonic (iko) <dihedral_harmonic>`
* :doc:`helix (o) <dihedral_helix>`

View File

@ -100,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>`
@ -107,6 +108,10 @@ KOKKOS, o = OPENMP, t = OPT.
* :doc:`pe/mol/tally <compute_tally>`
* :doc:`pe/tally <compute_tally>`
* :doc:`plasticity/atom <compute_plasticity_atom>`
* :doc:`pod/atom <compute_pod_atom>`
* :doc:`podd/atom <compute_pod_atom>`
* :doc:`pod/local <compute_pod_atom>`
* :doc:`pod/global <compute_pod_atom>`
* :doc:`pressure <compute_pressure>`
* :doc:`pressure/alchemy <compute_pressure_alchemy>`
* :doc:`pressure/uef <compute_pressure_uef>`
@ -115,12 +120,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

@ -61,6 +61,7 @@ OPT.
* :doc:`controller <fix_controller>`
* :doc:`damping/cundall <fix_damping_cundall>`
* :doc:`deform (k) <fix_deform>`
* :doc:`deform/pressure <fix_deform_pressure>`
* :doc:`deposit <fix_deposit>`
* :doc:`dpd/energy (k) <fix_dpd_energy>`
* :doc:`drag <fix_drag>`
@ -122,6 +123,7 @@ OPT.
* :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>`
@ -238,10 +240,10 @@ OPT.
* :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>`
@ -261,6 +263,7 @@ OPT.
* :doc:`wall/body/polyhedron <fix_wall_body_polyhedron>`
* :doc:`wall/colloid <fix_wall>`
* :doc:`wall/ees <fix_wall_ees>`
* :doc:`wall/flow (k) <fix_wall_flow>`
* :doc:`wall/gran (k) <fix_wall_gran>`
* :doc:`wall/gran/region <fix_wall_gran_region>`
* :doc:`wall/harmonic <fix_wall>`

View File

@ -25,16 +25,16 @@ OPT.
* :doc:`none <pair_none>`
* :doc:`zero <pair_zero>`
* :doc:`hybrid (k) <pair_hybrid>`
* :doc:`hybrid/overlay (k) <pair_hybrid>`
* :doc:`hybrid/scaled <pair_hybrid>`
* :doc:`hybrid (ko) <pair_hybrid>`
* :doc:`hybrid/molecular (o) <pair_hybrid>`
* :doc:`hybrid/overlay (ko) <pair_hybrid>`
* :doc:`hybrid/scaled (o) <pair_hybrid>`
* :doc:`kim <pair_kim>`
* :doc:`list <pair_list>`
* :doc:`tracker <pair_tracker>`
*
*
*
*
* :doc:`adp (ko) <pair_adp>`
* :doc:`agni (o) <pair_agni>`
* :doc:`aip/water/2dm (t) <pair_aip_water_2dm>`
@ -87,16 +87,17 @@ 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>`
* :doc:`coul/wolf (ko) <pair_coul>`
* :doc:`coul/wolf/cs <pair_cs>`
* :doc:`dpd (giko) <pair_dpd>`
* :doc:`dpd/fdt <pair_dpd_fdt>`
* :doc:`dpd/coul/slater/long (g) <pair_dpd_coul_slater_long>`
* :doc:`dpd/ext (ko) <pair_dpd_ext>`
* :doc:`dpd/ext/tstat (ko) <pair_dpd_ext>`
* :doc:`dpd/fdt <pair_dpd_fdt>`
* :doc:`dpd/fdt/energy (k) <pair_dpd_fdt>`
* :doc:`dpd/tstat (gko) <pair_dpd>`
* :doc:`dsmc <pair_dsmc>`
@ -110,7 +111,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 +147,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 +159,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 +203,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>`
@ -245,7 +246,8 @@ OPT.
* :doc:`oxrna2/coaxstk <pair_oxrna2>`
* :doc:`pace (k) <pair_pace>`
* :doc:`pace/extrapolation (k) <pair_pace>`
* :doc:`pod <pair_pod>`
* :doc:`pedone (o) <pair_pedone>`
* :doc:`pod (k) <pair_pod>`
* :doc:`peri/eps <pair_peri>`
* :doc:`peri/lps (o) <pair_peri>`
* :doc:`peri/pmb (o) <pair_peri>`
@ -256,6 +258,7 @@ OPT.
* :doc:`rann <pair_rann>`
* :doc:`reaxff (ko) <pair_reaxff>`
* :doc:`rebo (io) <pair_airebo>`
* :doc:`rebomos (o) <pair_rebomos>`
* :doc:`resquared (go) <pair_resquared>`
* :doc:`saip/metal (t) <pair_saip_metal>`
* :doc:`sdpd/taitwater/isothermal <pair_sdpd_taitwater_isothermal>`
@ -267,12 +270,12 @@ OPT.
* :doc:`smd/ulsph <pair_smd_ulsph>`
* :doc:`smtbq <pair_smtbq>`
* :doc:`snap (ik) <pair_snap>`
* :doc:`soft (go) <pair_soft>`
* :doc:`sph/heatconduction <pair_sph_heatconduction>`
* :doc:`soft (gko) <pair_soft>`
* :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>`
@ -301,6 +304,7 @@ OPT.
* :doc:`tip4p/long/soft (o) <pair_fep_soft>`
* :doc:`tri/lj <pair_tri_lj>`
* :doc:`ufm (got) <pair_ufm>`
* :doc:`uf3 (k) <pair_uf3>`
* :doc:`vashishta (gko) <pair_vashishta>`
* :doc:`vashishta/table (o) <pair_vashishta>`
* :doc:`wf/cut <pair_wf_cut>`

View File

@ -126,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
-----------------
@ -137,6 +148,14 @@ performance characteristics on NVIDIA GPUs. Both, the KOKKOS
and the :ref:`GPU package <PKG-GPU>` are maintained
and allow running LAMMPS with GPU acceleration.
i-PI tool
---------
.. versionchanged:: 27June2024
The i-PI tool has been removed from the LAMMPS distribution. Instead,
instructions to install i-PI from PyPI via pip are provided.
restart2data tool
-----------------

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

@ -18,8 +18,10 @@ Available topics in mostly chronological order are:
- `Setting flags in the constructor`_
- `Rename of pack/unpack_comm() to pack/unpack_forward_comm()`_
- `Use ev_init() to initialize variables derived from eflag and vflag`_
- `Use utils::count_words() functions instead of atom->count_words()`_
- `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`_
@ -129,6 +131,41 @@ Not applying this change will not cause a compilation error, but
can lead to inconsistent behavior and incorrect tallying of
energy or virial.
Use utils::count_words() functions instead of atom->count_words()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. versionchanged:: 2Jun2020
The "count_words()" functions for parsing text have been moved from the
Atom class to the :doc:`utils namespace <Developer_utils>`. The
"count_words()" function in "utils" uses the Tokenizer class internally
to split a line into words and count them, thus it will not modify the
argument string as the function in the Atoms class did and thus had a
variant using a copy buffer. Unlike the old version, the new version
does not remove comments. For that you can use the
:cpp:func:`utils::trim_comment() function
<LAMMPS_NS::utils::trim_comment>` as shown in the example below.
Old:
.. code-block:: c++
nwords = atom->count_words(line);
int nwords = atom->count_words(buf);
New:
.. code-block:: c++
nwords = utils::count_words(line);
int nwords = utils::count_words(utils::trim_comment(buf));
.. seealso::
:cpp:func:`utils::count_words() <LAMMPS_NS::utils::count_words>`,
:cpp:func:`utils::trim_comments() <LAMMPS_NS::utils::trim_comments>`
Use utils::numeric() functions instead of force->numeric()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -136,11 +173,12 @@ Use utils::numeric() functions instead of force->numeric()
The "numeric()" conversion functions (including "inumeric()",
"bnumeric()", and "tnumeric()") have been moved from the Force class to
the utils namespace. Also they take an additional argument that selects
whether the ``Error::all()`` or ``Error::one()`` function should be
called in case of an error. The former should be used when *all* MPI
processes call the conversion function and the latter *must* be used
when they are called from only one or a subset of the MPI processes.
the :doc:`utils namespace <Developer_utils>`. Also they take an
additional argument that selects whether the ``Error::all()`` or
``Error::one()`` function should be called in case of an error. The
former should be used when *all* MPI processes call the conversion
function and the latter *must* be used when they are called from only
one or a subset of the MPI processes.
Old:
@ -196,6 +234,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

@ -211,6 +211,9 @@ Argument processing
.. doxygenfunction:: bounds
:project: progguide
.. doxygenfunction:: bounds_typelabel
:project: progguide
.. doxygenfunction:: expand_args
:project: progguide
@ -635,10 +638,10 @@ Tohoku University (under MIT license)
----------
.. doxygenfunction:: MathEigen::jacobi3(double const *const *mat, double *eval, double **evec)
.. doxygenfunction:: MathEigen::jacobi3(double const *const *mat, double *eval, double **evec, int sort)
:project: progguide
.. doxygenfunction:: MathEigen::jacobi3(double const mat[3][3], double *eval, double evec[3][3])
.. doxygenfunction:: MathEigen::jacobi3(double const mat[3][3], double *eval, double evec[3][3], int sort)
:project: progguide
---------------------------

View File

@ -13,15 +13,44 @@ discussions of such cases.
Unknown identifier in data file
-------------------------------
This error happens when LAMMPS encounters a line of text in an unexpected format
while reading a data file. This is most commonly cause by inconsistent header and
section data. The header section informs LAMMPS how many entries or lines are expected in the
various sections (like Atoms, Masses, Pair Coeffs, *etc.*\ ) of the data file.
If there is a mismatch, LAMMPS will either keep reading beyond the end of a section
or stop reading before the section has ended.
This error happens when LAMMPS encounters a line of text with an
unexpected keyword while :doc:`reading a data file <read_data>`. This
would be either header keywords or section header keywords. This is
most commonly due to a mistyped keyword or due to a keyword that is
inconsistent with the :doc:`atom style <atom_style>` used.
Such a mismatch can happen unexpectedly when the first line of the data
is *not* a comment as required by the format. That would result in
LAMMPS expecting, for instance, 0 atoms because the "atoms" header line
is treated as a comment.
The header section informs LAMMPS how many entries or lines are expected
in the various sections (like Atoms, Masses, Pair Coeffs, *etc.*\ ) of
the data file. If there is a mismatch, LAMMPS will either keep reading
beyond the end of a section or stop reading before the section has
ended. In that case the next line will not contain a recognized keyword.
Such a mismatch can also happen when the first line of the data
is *not* a comment as required by the format, but a line with a valid
header keyword. That would result in LAMMPS expecting, for instance,
0 atoms because the "atoms" header line is the first line and thus
treated as a comment.
Another possibility to trigger this error is to have a keyword in the
data file that corresponds to a fix (e.g. :doc:`fix cmap <fix_cmap>`)
but the :doc:`read_data <read_data>` command is missing the (optional)
arguments that identify the fix and the header keyword and section
keyword or those arguments are inconsistent with the keywords in the
data file.
.. _err0002:
Incorrect format in ... section of data file
--------------------------------------------
This error happens when LAMMPS reads the contents of a section of a
:doc:`data file <read_data>` and the number of parameters in the line
differs from what is expected. This most commonly happens, when the
atom style is different from what is expected for a specific data file
since changing the atom style usually changes the format of the line.
This error can also happen when the number of entries indicated in the
header of a data file (e.g. the number of atoms) is larger than the
number of lines provided (e.g. in the corresponding Atoms section)
and then LAMMPS will continue reading into the next section and that
would have a completely different format.

View File

@ -7883,12 +7883,6 @@ keyword to allow for additional bonds to be formed
Fix poems cannot (yet) work with coupled bodies whose joints connect
the bodies in a tree structure.
*Triclinic box skew is too large*
The displacement in a skewed direction must be less than half the box
length in that dimension. E.g. the xy tilt must be between -half and
+half of the x box length. This constraint can be relaxed by using
the box tilt command.
*Tried to convert a double to int, but input_double > INT_MAX*
Self-explanatory.

View File

@ -752,13 +752,6 @@ This will most likely cause errors in kinetic fluctuations.
More than the maximum # of neighbors was found multiple times. This
was unexpected.
*Triclinic box skew is large*
The displacement in a skewed direction is normally required to be less
than half the box length in that dimension. E.g. the xy tilt must be
between -half and +half of the x box length. You have relaxed the
constraint using the box tilt command, but the warning means that a
LAMMPS simulation may be inefficient as a result.
*Use special bonds = 0,1,1 with bond style fene*
Most FENE models need this setting for the special_bonds command.

View File

@ -305,6 +305,8 @@ of the contents of the :f:mod:`LIBLAMMPS` Fortran interface to LAMMPS.
:ftype extract_setting: function
:f extract_global: :f:func:`extract_global`
:ftype extract_global: function
:f map_atom: :f:func:`map_atom`
:ftype map_atom: function
:f extract_atom: :f:func:`extract_atom`
:ftype extract_atom: function
:f extract_compute: :f:func:`extract_compute`
@ -315,6 +317,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`
@ -1251,8 +1257,8 @@ Procedures Bound to the :f:type:`lammps` Derived Type
three elements of the global vector calculated by fix recenter into the
variables *dx*, *dy*, and *dz*, respectively.
If asked for per-atom or local data, :f:func:`extract_compute` returns a
pointer to actual LAMMPS data. The pointer so returned will have the
If asked for per-atom or local data, :f:func:`extract_fix` returns a
pointer to actual LAMMPS data. The pointer returned will have the
appropriate size to match the internal data, and will be
type/kind/rank-checked at the time of the assignment. For example,
@ -1398,7 +1404,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 +1433,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`
--------
@ -3038,14 +3081,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
@ -3068,13 +3103,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

@ -101,6 +101,7 @@ Tutorials howto
Howto_cmake
Howto_github
Howto_lammps_gui
Howto_moltemplate
Howto_pylammps
Howto_wsl

View File

@ -1,42 +1,112 @@
2d simulations
==============
================
2d simulations
================
Use the :doc:`dimension <dimension>` command to specify a 2d simulation.
You must use the :doc:`dimension <dimension>` command to specify a 2d
simulation. The default is 3d.
Make the simulation box periodic in z via the :doc:`boundary <boundary>`
command. This is the default.
A 2d simulation box must be periodic in z as set by the :doc:`boundary
<boundary>` command. This is the default.
If using the :doc:`create_box <create_box>` command to define a
simulation box, set the z dimensions narrow, but finite, so that the
:doc:`create_atoms <create_atoms>` command will fill the 3d simulation
box with a single z plane of atoms - e.g.
Simulation boxes in LAMMPS can be either orthogonal or triclinic in
shape. Orthogonal boxes in 2d are a rectangle with 4 edges that are
each perpendicular to either the x or y coordinate axes. Triclinic
boxes in 2d are a parallelogram with opposite pairs of faces parallel
to each other. LAMMPS supports two forms of triclinic boxes,
restricted and general, which for 2d differ in how the box is oriented
with respect to the xy coordinate axes. See the :doc:`Howto triclinic
<Howto_triclinic>` for a detailed description of all 3 kinds of
simulation boxes.
Here are examples of using the :doc:`create_box <create_box>` command
to define the simulation box for a 2d system.
.. code-block:: LAMMPS
create_box 1 -10 10 -10 10 -0.25 0.25
# 2d orthogonal box using a block-style region
region mybox block -10 10 0 10 -0.5 0.5
create_box 1 mybox
If using the :doc:`read_data <read_data>` command to read in a file of
atom coordinates, set the "zlo zhi" values to be finite but narrow,
similar to the create_box command settings just described. For each
atom in the file, assign a z coordinate so it falls inside the
z-boundaries of the box - e.g. 0.0.
# 2d restricted triclinic box using a prism-style region with only xy tilt
region mybox prism 0 10 0 10 -0.5 0.5 2.0 0.0 0.0
create_box 1 mybox
Use the :doc:`fix enforce2d <fix_enforce2d>` command as the last
defined fix to ensure that the z-components of velocities and forces
are zeroed out every timestep. The reason to make it the last fix is
so that any forces induced by other fixes will be zeroed out.
# 2d general triclinic box using a primitive cell for a 2d hex lattice
lattice custom 1.0 a1 1.0 0.0 0.0 a2 0.5 0.86602540378 0.0 &
a3 0.0 0.0 1.0 basis 0.0 0.0 0.0 triclinic/general
create_box 1 NULL 0 5 0 5 -0.5 0.5
Many of the example input scripts included in the LAMMPS distribution
Note that for 2d orthogonal or restricted triclinic boxes, the box has
a 3rd dimension which must straddle z = 0.0 in the z dimension.
Typically the width of box in the z dimension should be narrow,
e.g. -0.5 to 0.5, but that is not required. For a 2d general
triclinic box, the *a3* vector defined by the :doc:`lattice <lattice>`
command must be (0.0,0.0,1.0), which is its default value. Also the
*clo* and *chi* arguments of the :doc:`create_box <create_box>`
command must be -0.5 and 0.5.
Here are examples of using the :doc:`read_data <read_data>` command
to define the simulation box for a 2d system via keywords in the
header section of the data file. These are the same boxes as the examples
for the :doc:`create_box <create_box>` command
.. code-block:: LAMMPS
# 2d orthogonal box
-10 10 xlo xhi
0 10 ylo yhi
-0.5 0.5 zlo zhi # this is the default, so no need to specify
# 2d restricted triclinic box with only xy tilt
-10 10 xlo xhi
0 10 ylo yhi
-0.5 0.5 zlo zhi # this is the default, so no need to specify
2.0 0.0 0.0 xy xz yz
# 3d general triclinic box using a primitive cell for a 2d hex lattice
5 0 0 avec
2.5 4.3301270189 0 bvec
0 0 1 cvec # this is the default, so no need to specify
0 0 -0.5 abc origin # this is the default for 2d, so no need to specify
Note that for 2d orthogonal or restricted triclinic boxes, the box has
a 3rd dimension specified by the *zlo zhi* values, which must straddle
z = 0.0. Typically the width of box in the z dimension should be
narrow, e.g. -0.5 to 0.5, but that is not required. For a 2d general
triclinic box, the z component of *avec* and *bvec* must be zero, and
*cvec* must be (0,0,1), which is the default. The z component of *abc
origin* must also be -0.5, which is the default.
If using the :doc:`create_atoms <create_atoms>` command to create
atoms in the 2d simulation box, all the z coordinates of created atoms
will be zero.
If using the :doc:`read_data <read_data>` command to read in a data
file of atom coordinates for a 2d system, the z coordinates of all
atoms should be zero. A value within epsilon of zero is also allowed
in case the data file was generated by another program with finite
numeric precision, in which case the z coord for the atom will be set
to zero.
Use the :doc:`fix enforce2d <fix_enforce2d>` command as the last fix
defined in the input script. It ensures that the z-components of
velocities and forces are zeroed out every timestep. The reason to
make it the last fix is so that any forces added by other fixes will
also be zeroed out.
Many of the example input scripts included in the examples directory
are for 2d models.
.. note::
Some models in LAMMPS treat particles as finite-size spheres, as
opposed to point particles. See the :doc:`atom_style sphere <atom_style>` and :doc:`fix nve/sphere <fix_nve_sphere>`
commands for details. By default, for 2d simulations, such particles
will still be modeled as 3d spheres, not 2d discs (circles), meaning
opposed to point particles. See the :doc:`atom_style sphere
<atom_style>` and :doc:`fix nve/sphere <fix_nve_sphere>` commands
for details. By default, for 2d simulations, such particles will
still be modeled as 3d spheres, not 2d discs (circles), meaning
their moment of inertia will be that of a sphere. If you wish to
model them as 2d discs, see the :doc:`set density/disc <set>` command
and the *disc* option for the :doc:`fix nve/sphere <fix_nve_sphere>`,
:doc:`fix nvt/sphere <fix_nvt_sphere>`, :doc:`fix nph/sphere <fix_nph_sphere>`, :doc:`fix npt/sphere <fix_npt_sphere>`
commands.
model them as 2d discs, see the :doc:`set density/disc <set>`
command and the *disc* option for the :doc:`fix nve/sphere
<fix_nve_sphere>`, :doc:`fix nvt/sphere <fix_nvt_sphere>`,
:doc:`fix nph/sphere <fix_nph_sphere>`, :doc:`fix npt/sphere
<fix_npt_sphere>` commands.

View File

@ -1,6 +1,10 @@
CHARMM, AMBER, COMPASS, and DREIDING force fields
=================================================
A compact summary of the concepts, definitions, and properties of
force fields with explicit bonded interactions (like the ones discussed
in this HowTo) is given in :ref:`(Gissinger) <Typelabel2>`.
A force field has 2 parts: the formulas that define it and the
coefficients used for a particular system. Here we only discuss
formulas implemented in LAMMPS that correspond to formulas commonly used
@ -11,12 +15,42 @@ commands like :doc:`pair_coeff <pair_coeff>` or :doc:`bond_coeff
<bond_coeff>` and so on. See the :doc:`Tools <Tools>` doc page for
additional tools that can use CHARMM, AMBER, or Materials Studio
generated files to assign force field coefficients and convert their
output into LAMMPS input.
output into LAMMPS input. LAMMPS input scripts can also be generated by
`charmm-gui.org <https://charmm-gui.org/>`_.
See :ref:`(MacKerell) <howto-MacKerell>` for a description of the CHARMM
force field. See :ref:`(Cornell) <howto-Cornell>` for a description of
the AMBER force field. See :ref:`(Sun) <howto-Sun>` for a description
of the COMPASS force field.
CHARMM and AMBER
----------------
The `CHARMM force field
<https://mackerell.umaryland.edu/charmm_ff.shtml>`_ :ref:`(MacKerell)
<howto-MacKerell>` and `AMBER force field
<https://ambermd.org/AmberModels.php>`_ :ref:`(Cornell) <howto-Cornell>`
have potential energy function of the form
.. math::
V & = \sum_{bonds} E_b + \sum_{angles} \!E_a + \!\overbrace{\sum_{dihedral} \!\!E_d}^{\substack{
\text{charmm} \\
\text{charmmfsw}
}} +\!\!\! \sum_{impropers} \!\!\!E_i \\[.6em]
& \quad + \!\!\!\!\!\!\!\!\!\!\underbrace{~\sum_{pairs} \left(E_{LJ}+E_{coul}\right)}_{\substack{
\text{lj/charmm/coul/charmm} \\
\text{lj/charmm/coul/charmm/implicit} \\
\text{lj/charmm/coul/long} \\
\text{lj/charmm/coul/msm} \\
\text{lj/charmmfsw/coul/charmmfsh} \\
\text{lj/charmmfsw/coul/long}
}} \!\!\!\!\!\!\!\!+ \!\!\sum_{special}\! E_s + \!\!\!\!\sum_{residues} \!\!\!{\scriptstyle\mathrm{CMAP}(\phi,\psi)}
The terms are computed by bond styles (relationship between 2 atoms),
angle styles (between 3 atoms) , dihedral/improper styles (between 4
atoms), pair styles (non-covalently bonded pair interactions) and
special bonds. The CMAP term (see :doc:`fix cmap <fix_cmap>` command for
details) corrects for pairs of dihedral angles ("Correction MAP") to
significantly improve the structural and dynamic properties of proteins
in crystalline and solution environments :ref:`(Brooks)
<howto-Brooks>`. The AMBER force field does not include the CMAP term.
The interaction styles listed below compute force field formulas that
are consistent with common options in CHARMM or AMBER. See each
@ -31,10 +65,81 @@ command's documentation for the formula it computes.
* :doc:`pair_style <pair_charmm>` lj/charmm/coul/charmm
* :doc:`pair_style <pair_charmm>` lj/charmm/coul/charmm/implicit
* :doc:`pair_style <pair_charmm>` lj/charmm/coul/long
* :doc:`special_bonds <special_bonds>` charmm
* :doc:`special_bonds <special_bonds>` amber
The pair styles compute Lennard Jones (LJ) and Coulombic interactions
with additional switching or shifting functions that ramp the energy
and/or force smoothly to zero between an inner :math:`(a)` and outer
:math:`(b)` cutoff. The older styles with *charmm* (not *charmmfsw* or
*charmmfsh*\ ) in their name compute the LJ and Coulombic interactions
with an energy switching function (esw) S(r) which ramps the energy
smoothly to zero between the inner and outer cutoff. This can cause
irregularities in pairwise forces (due to the discontinuous second
derivative of energy at the boundaries of the switching region), which
in some cases can result in complications in energy minimization and
detectable artifacts in MD simulations.
.. grid:: 1 1 2 2
.. grid-item::
.. math::
LJ(r) &= 4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} -
\left(\frac{\sigma}{r}\right)^6 \right]\\[.6em]
C(r) &= \frac{C q_i q_j}{ \epsilon r}\\[.6em]
S(r) &= \frac{ \left(b^2 - r^2\right)^2 \left(b^2 + 2r^2 - 3{a^2}\right)}
{ \left(b^2 - a^2\right)^3 }\\[.6em]
E_{LJ}(r) &= \begin{cases}
LJ(r), & r \leq a \\
LJ(r) S(r), & a < r \leq b \\
0, &r > b
\end{cases} \\[.6em]
E_{coul}(r) &= \begin{cases}
C(r), & r \leq a \\
C(r) S(r), & a < r \leq b \\
0, & r > b
\end{cases}
.. grid-item::
.. image:: img/howto_charmm_ELJ.png
:align: center
The newer styles with *charmmfsw* or *charmmfsh* in their name replace
energy switching with force switching (fsw) for LJ interactions and
force shifting (fsh) functions for Coulombic interactions
:ref:`(Steinbach) <howto-Steinbach>`
.. grid:: 1 1 2 2
.. grid-item::
.. math::
E_{LJ}(r) = & \begin{cases}
4 \epsilon \sigma^6 \left(\frac{\displaystyle\sigma
^6-r^6}{\displaystyle r^{12}}-\frac{\displaystyle\sigma ^6}{\displaystyle a^6
b^6}+\frac{\displaystyle 1}{\displaystyle a^3 b^3}\right) & r\leq a \\
\frac{\displaystyle 4 \epsilon \sigma^6 \left(\sigma ^6
\left(b^6-r^6\right)^2-b^3 r^6 \left(a^3+b^3\right)
\left(b^3-r^3\right)^2\right)}{\displaystyle b^6 r^{12}
\left(b^6-a^6\right)} & a<r \leq b\\
0, & r>b
\end{cases}\\[.6em]
E_{coul}(r) & = \begin{cases}
C(r) \frac{\displaystyle (b-r)^2}{\displaystyle r b^2}, & r \leq b \\
0, & r > b
\end{cases}
.. grid-item::
.. image:: img/howto_charmmfsw_ELJ.png
:align: center
These styles are used by LAMMPS input scripts generated by
https://charmm-gui.org/ :ref:`(Brooks) <howto-Brooks>`.
.. note::
For CHARMM, newer *charmmfsw* or *charmmfsh* styles were released in
@ -43,17 +148,33 @@ command's documentation for the formula it computes.
<pair_charmm>` and :doc:`dihedral charmm <dihedral_charmm>` doc
pages.
.. note::
The TIP3P water model is strongly recommended for use with the CHARMM
force field. In fact, `"using the SPC model with CHARMM parameters is
a bad idea"
<https://matsci.org/t/using-spc-water-with-charmm-ff/24715>`_ and `"to
enable TIP4P style water in CHARMM, you would have to write a new pair
style"
<https://matsci.org/t/hybrid-pair-styles-for-charmm-and-tip4p-ew/32609>`_
. LAMMPS input scripts generated by Solution Builder on https://charmm-gui.org
use TIP3P molecules for solvation. Any other water model can and
probably will lead to false conclusions.
COMPASS
-------
COMPASS is a general force field for atomistic simulation of common
organic molecules, inorganic small molecules, and polymers which was
developed using ab initio and empirical parameterization techniques.
See the :doc:`Tools <Tools>` page for the msi2lmp tool for creating
LAMMPS template input and data files from BIOVIA's Materials Studio
files. Please note that the msi2lmp tool is very old and largely
unmaintained, so it does not support all features of Materials Studio
provided force field files, especially additions during the last decade.
You should watch the output carefully and compare results, where
possible. See :ref:`(Sun) <howto-Sun>` for a description of the COMPASS force
field.
developed using ab initio and empirical parameterization techniques
:ref:`(Sun) <howto-Sun>`. See the :doc:`Tools <Tools>` page for the
msi2lmp tool for creating LAMMPS template input and data files from
BIOVIA's Materials Studio files. Please note that the msi2lmp tool is
very old and largely unmaintained, so it does not support all features
of Materials Studio provided force field files, especially additions
during the last decade. You should watch the output carefully and
compare results, where possible. See :ref:`(Sun) <howto-Sun>` for a
description of the COMPASS force field.
These interaction styles listed below compute force field formulas that
are consistent with the COMPASS force field. See each command's
@ -70,14 +191,21 @@ documentation for the formula it computes.
* :doc:`special_bonds <special_bonds>` lj/coul 0 0 1
DREIDING is a generic force field developed by the `Goddard group <http://www.wag.caltech.edu>`_ at Caltech and is useful for
predicting structures and dynamics of organic, biological and main-group
inorganic molecules. The philosophy in DREIDING is to use general force
constants and geometry parameters based on simple hybridization
considerations, rather than individual force constants and geometric
parameters that depend on the particular combinations of atoms involved
in the bond, angle, or torsion terms. DREIDING has an :doc:`explicit hydrogen bond term <pair_hbond_dreiding>` to describe interactions involving a
hydrogen atom on very electronegative atoms (N, O, F).
DREIDING
--------
DREIDING is a generic force field developed by the `Goddard group
<http://www.wag.caltech.edu>`_ at Caltech and is useful for predicting
structures and dynamics of organic, biological and main-group inorganic
molecules. The philosophy in DREIDING is to use general force constants
and geometry parameters based on simple hybridization considerations,
rather than individual force constants and geometric parameters that
depend on the particular combinations of atoms involved in the bond,
angle, or torsion terms. DREIDING has an :doc:`explicit hydrogen bond
term <pair_hbond_dreiding>` to describe interactions involving a
hydrogen atom on very electronegative atoms (N, O, F). Unlike CHARMM
or AMBER, the DREIDING force field has not been parameterized for
considering solvents (like water).
See :ref:`(Mayo) <howto-Mayo>` for a description of the DREIDING force field
@ -110,21 +238,31 @@ documentation for the formula it computes.
----------
.. _Typelabel2:
**(Gissinger)** J. R. Gissinger, I. Nikiforov, Y. Afshar, B. Waters, M. Choi, D. S. Karls, A. Stukowski, W. Im, H. Heinz, A. Kohlmeyer, and E. B. Tadmor, J Phys Chem B, 128, 3282-3297 (2024).
.. _howto-MacKerell:
**(MacKerell)** MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field,
Fischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998).
**(MacKerell)** MacKerell, Bashford, Bellott, Dunbrack, Evanseck, Field, Fischer, Gao, Guo, Ha, et al (1998). J Phys Chem, 102, 3586 . https://doi.org/10.1021/jp973084f
.. _howto-Cornell:
**(Cornell)** Cornell, Cieplak, Bayly, Gould, Merz, Ferguson,
Spellmeyer, Fox, Caldwell, Kollman, JACS 117, 5179-5197 (1995).
**(Cornell)** Cornell, Cieplak, Bayly, Gould, Merz, Ferguson, Spellmeyer, Fox, Caldwell, Kollman (1995). JACS 117, 5179-5197. https://doi.org/10.1021/ja00124a002
.. _howto-Steinbach:
**(Steinbach)** Steinbach, Brooks (1994). J Comput Chem, 15, 667. https://doi.org/10.1002/jcc.540150702
.. _howto-Brooks:
**(Brooks)** Brooks, et al (2009). J Comput Chem, 30, 1545. https://onlinelibrary.wiley.com/doi/10.1002/jcc.21287
.. _howto-Sun:
**(Sun)** Sun, J. Phys. Chem. B, 102, 7338-7364 (1998).
**(Sun)** Sun (1998). J. Phys. Chem. B, 102, 7338-7364. https://doi.org/10.1021/jp980939v
.. _howto-Mayo:
**(Mayo)** Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909
(1990).
**(Mayo)** Mayo, Olfason, Goddard III (1990). J Phys Chem, 94, 8897-8909. https://doi.org/10.1021/j100389a010

View File

@ -102,8 +102,19 @@ particles of different styles
| :doc:`dump image <dump_image>` | output body particle attributes as an image |
+------------------------------------------------+-----------------------------------------------------+
The pair styles defined for use with specific body styles are listed
in the sections below.
The pair styles currently defined for use with specific body styles
are listed in the sections below.
Note that for all the body styles, if the data file defines a general
triclinic box, then the orientation of the body particle and its
corresponding 6 moments of inertia and other orientation-dependent
values should reflect the fact the body is defined withing a general
triclinic box with edge vectors **A**,**B**,**C**. LAMMPS will rotate
the box to convert it to a restricted triclinic box. This operation
will also rotate the orientation of the body particles. See the
:doc:`Howto triclinic <Howto_triclinic>` doc page for more details.
The sections below highlight the orientation-dependent values specific
to each body style.
----------
@ -154,12 +165,18 @@ values consistent with the current orientation of the rigid body
around its center of mass. The values are with respect to the
simulation box XYZ axes, not with respect to the principal axes of the
rigid body itself. LAMMPS performs the latter calculation internally.
The coordinates of each sub-particle are specified as its x,y,z
displacement from the center-of-mass of the body particle. The
center-of-mass position of the particle is specified by the x,y,z
values in the *Atoms* section of the data file, as is the total mass
of the body particle.
Note that if the data file defines a general triclinic simulation box,
these sub-particle displacements are orientation-dependent and, as
mentioned above, should reflect the body particle's orientation within
the general triclinic box.
The :doc:`pair_style body/nparticle <pair_body_nparticle>` command can be used
with this body style to compute body/body and body/non-body interactions.
@ -226,6 +243,7 @@ values consistent with the current orientation of the rigid body
around its center of mass. The values are with respect to the
simulation box XYZ axes, not with respect to the principal axes of the
rigid body itself. LAMMPS performs the latter calculation internally.
The coordinates of each vertex are specified as its x,y,z displacement
from the center-of-mass of the body particle. The center-of-mass
position of the particle is specified by the x,y,z values in the
@ -270,6 +288,11 @@ A disk, whose diameter is 3.0, mass 1.0, is specified as follows:
0 0 0
3.0
Note that if the data file defines a general triclinic simulation box,
these polygon vertex displacements are orientation-dependent and, as
mentioned above, should reflect the body particle's orientation within
the general triclinic box.
The :doc:`pair_style body/rounded/polygon <pair_body_rounded_polygon>`
command can be used with this body style to compute body/body
interactions. The :doc:`fix wall/body/polygon <fix_wall_body_polygon>`
@ -335,7 +358,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
@ -366,6 +389,7 @@ values consistent with the current orientation of the rigid body
around its center of mass. The values are with respect to the
simulation box XYZ axes, not with respect to the principal axes of the
rigid body itself. LAMMPS performs the latter calculation internally.
The coordinates of each vertex are specified as its x,y,z displacement
from the center-of-mass of the body particle. The center-of-mass
position of the particle is specified by the x,y,z values in the
@ -435,6 +459,11 @@ A sphere whose diameter is 3.0 and mass 1.0, is specified as follows:
The number of edges and faces for a rod or sphere must be listed,
but is ignored.
Note that if the data file defines a general triclinic simulation box,
these polyhedron vertex displacements are orientation-dependent and,
as mentioned above, should reflect the body particle's orientation
within the general triclinic box.
The :doc:`pair_style body/rounded/polhedron
<pair_body_rounded_polyhedron>` command can be used with this body
style to compute body/body interactions. The :doc:`fix

View File

@ -15,7 +15,8 @@ orientation for rotational models. This produces a stress-free initial
state. Furthermore, bonds are allowed to break under large strains,
producing fracture. The examples/bpm directory has sample input scripts
for simulations of the fragmentation of an impacted plate and the
pouring of extended, elastic bodies.
pouring of extended, elastic bodies. See :ref:`(Clemmer) <howto-Clemmer>`
for more general information on the approach and the LAMMPS implementation.
----------
@ -150,3 +151,9 @@ the following are currently compatible with BPM bond styles:
interactions, one will need to switch between different *special_bonds*
settings in the input script. An example is found in
``examples/bpm/impact``.
----------
.. _howto-Clemmer:
**(Clemmer)** Clemmer, Monti, Lechman, Soft Matter, 20, 1702 (2024).

View File

@ -349,6 +349,8 @@ Some common LAMMPS specific variables
- when set to ``name`` the LAMMPS executable and library will be called ``lmp_name`` and ``liblammps_name.a``
* - ``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``

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

@ -45,10 +45,15 @@ atoms, and should be used for granular system instead of the fix style
To model heat conduction, one must add the temperature and heatflow
atom variables with:
* :doc:`fix property/atom <fix_property_atom>`
a temperature integration fix
* :doc:`fix heat/flow <fix_heat_flow>`
and a heat conduction option defined in both
* :doc:`pair_style granular <pair_granular>`
* :doc:`fix wall/gran <fix_wall_gran>`

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

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

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

@ -2,43 +2,195 @@ Triclinic (non-orthogonal) simulation boxes
===========================================
By default, LAMMPS uses an orthogonal simulation box to encompass the
particles. The :doc:`boundary <boundary>` command sets the boundary
conditions of the box (periodic, non-periodic, etc). The orthogonal
box has its "origin" at (xlo,ylo,zlo) and is defined by 3 edge vectors
starting from the origin given by **a** = (xhi-xlo,0,0); **b** =
(0,yhi-ylo,0); **c** = (0,0,zhi-zlo). The 6 parameters
particles. The orthogonal box has its "origin" at (xlo,ylo,zlo) and
extends to (xhi,yhi,zhi). Conceptually it is defined by 3 edge
vectors starting from the origin given by **A** = (xhi-xlo,0,0); **B**
= (0,yhi-ylo,0); **C** = (0,0,zhi-zlo). The :doc:`boundary
<boundary>` command sets the boundary conditions for the 6 faces of
the box (periodic, non-periodic, etc). The 6 parameters
(xlo,xhi,ylo,yhi,zlo,zhi) are defined at the time the simulation box
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.
is created by one of these commands:
LAMMPS also allows simulations to be performed in triclinic
(non-orthogonal) simulation boxes shaped as a parallelepiped with
triclinic symmetry. The parallelepiped has its "origin" at
(xlo,ylo,zlo) and is defined by 3 edge vectors starting from the
origin given by **a** = (xhi-xlo,0,0); **b** = (xy,yhi-ylo,0); **c** =
(xz,yz,zhi-zlo). *xy,xz,yz* can be 0.0 or positive or negative values
and are called "tilt factors" because they are the amount of
displacement applied to faces of an originally orthogonal box to
transform it into the parallelepiped. In LAMMPS the triclinic
simulation box edge vectors **a**, **b**, and **c** cannot be arbitrary
vectors. As indicated, **a** must lie on the positive x axis. **b** must
lie in the xy plane, with strictly positive y component. **c** may have
any orientation with strictly positive z component. The requirement
that **a**, **b**, and **c** have strictly positive x, y, and z components,
respectively, ensures that **a**, **b**, and **c** form a complete
right-handed basis. These restrictions impose no loss of generality,
since it is possible to rotate/invert any set of 3 crystal basis
vectors so that they conform to the restrictions.
* :doc:`create_box <create_box>`
* :doc:`read_data <read_data>`
* :doc:`read_restart <read_restart>`
* :doc:`read_dump <read_dump>`
For example, assume that the 3 vectors **A**,\ **B**,\ **C** are the edge
vectors of a general parallelepiped, where there is no restriction on
**A**,\ **B**,\ **C** other than they form a complete right-handed basis i.e.
**A** x **B** . **C** > 0. The equivalent LAMMPS **a**,\ **b**,\ **c** are a linear
rotation of **A**, **B**, and **C** and can be computed as follows:
Internally, 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. See the :doc:`Howto 2d <Howto_2d>` doc page
for info on how zlo and zhi are defined for 2d simulations.
----------
Triclinic simulation boxes
""""""""""""""""""""""""""
LAMMPS also allows simulations to be performed using triclinic
(non-orthogonal) simulation boxes shaped as a 3d parallelepiped with
triclinic symmetry. For 2d simulations a triclinic simulation box is
effectively a parallelogram; see the :doc:`Howto 2d <Howto_2d>` doc
page for details.
One use of triclinic simulation boxes is to model solid-state crystals
with triclinic symmetry. The :doc:`lattice <lattice>` command can be
used with non-orthogonal basis vectors to define a lattice that will
tile a triclinic simulation box via the :doc:`create_atoms
<create_atoms>` command.
A second use is to run Parrinello-Rahman dynamics via the :doc:`fix
npt <fix_nh>` command, which will adjust the xy, xz, yz tilt factors
to compensate for off-diagonal components of the pressure tensor. The
analog for an :doc:`energy minimization <minimize>` is the :doc:`fix
box/relax <fix_box_relax>` command.
A third use is to shear a bulk solid to study the response of the
material. The :doc:`fix deform <fix_deform>` command can be used for
this purpose. It allows dynamic control of the xy, xz, yz tilt
factors as a simulation runs. This is discussed in the :doc:`Howto
NEMD <Howto_nemd>` doc page on non-equilibrium MD (NEMD) simulations.
Conceptually, a triclinic parallelepiped is defined with an "origin"
at (xlo,ylo,zhi) and 3 edge vectors **A** = (ax,ay,az), **B** =
(bx,by,bz), **C** = (cx,cy,cz) which can be arbitrary vectors, so long
as they are non-zero, distinct, and not co-planar. In addition, they
must define a right-handed system, such that (**A** cross **B**)
points in the direction of **C**. Note that a left-handed system can
be converted to a right-handed system by simply swapping the order of
any pair of the **A**, **B**, **C** vectors.
The 4 commands listed above for defining orthogonal simulation boxes
have triclinic options which allow for specification of the origin and
edge vectors **A**, **B**, **C**. For each command, this can be done
in one of two ways, for what LAMMPS calls a *general* triclinic box or
a *restricted* triclinic box.
A *general* triclinic box is specified by an origin (xlo, ylo, zlo)
and arbitrary edge vectors **A** = (ax,ay,az), **B** = (bx,by,bz), and
**C** = (cx,cy,cz). So there are 12 parameters in total.
A *restricted* triclinic box also has an origin (xlo,ylo,zlo), but its
edge vectors are of the following restricted form: **A** =
(xhi-xlo,0,0), **B** = (xy,yhi-ylo,0), **C** = (xz,yz,zhi-zlo). So
there are 9 parameters in total. Note that the restricted form
requires **A** to be along the x-axis, **B** to be in the xy plane
with a y-component in the +y direction, and **C** to have its
z-component in the +z direction. Note that a restricted triclinic box
is *right-handed* by construction since (**A** cross **B**) points in
the direction of **C**.
The *xy,xz,yz* values can be zero or positive or negative. They are
called "tilt factors" because they are the amount of displacement
applied to edges of faces of an orthogonal box to change it into a
restricted triclinic parallelepiped.
.. note::
Any right-handed general triclinic box (i.e. solid-state crystal
basis vectors) can be rotated in 3d around its origin in order to
conform to the LAMMPS definition of a restricted triclinic box.
See the discussion in the next sub-section about general triclinic
simulation boxes in LAMMPS.
Note that the :doc:`thermo_style custom <thermo_style>` command has
keywords for outputting the various parameters that define the size
and shape of orthogonal, restricted triclinic, and general triclinic
simulation boxes.
For orthogonal boxes there 6 thermo keywords (xlo,ylo,zlo) and
(xhi,yhi,zhi).
For restricted triclinic boxes there are 9 thermo keywords for
(xlo,ylo,zlo), (xhi,yhi,zhi), and the (xy,xz,yz) tilt factors.
For general triclinic boxes there are 12 thermo keywords for
(xlo,ylo,zhi) and the components of the **A**, **B**, **C** edge
vectors, namely (avecx,avecy,avecz), (bvecx,bvecy,bvecz), and
(cvecx,cvecy,cvecz),
The remainder of this doc page explains (a) how LAMMPS operates with
general triclinic simulation boxes, (b) mathematical transformations
between general and restricted triclinic boxes which may be useful
when creating LAMMPS inputs or interpreting outputs for triclinic
simulations, and (c) how LAMMPS uses tilt factors for restricted
triclinic simulation boxes.
----------
General triclinic simulation boxes in LAMMPS
""""""""""""""""""""""""""""""""""""""""""""
LAMMPS allows specification of general triclinic simulation boxes with
their atoms as a convenience for users who may be converting data from
solid-state crystallographic representations or from DFT codes for
input to LAMMPS. Likewise it allows output of dump files, data files,
and thermodynamic data (e.g. pressure tensor) in a general triclinic
format.
However internally, LAMMPS only uses restricted triclinic simulation
boxes. This is for parallel efficiency and to formulate partitioning
of the simulation box across processors, neighbor list building, and
inter-processor communication of per-atom data with methods similar to
those used for orthogonal boxes.
This means 4 things which are important to understand:
* Input of a general triclinic system is immediately converted to a
restricted triclinic system.
* If output of per-atom data for a general triclinic system is
requested (e.g. for atom coordinates in a dump file),
conversion from a restricted to general triclinic system is done at
the time of output.
* The conversion of the simulation box and per-atom data from general
triclinic to restricted triclinic (and vice versa) is a 3d rotation
operation around an origin, which is the lower left corner of the
simulation box. This means an input data file for a general
triclinic system should specify all per-atom quantities consistent
with the general triclinic box and its orientation relative to the
standard x,y,z coordinate axes. For example, atom coordinates
should be inside the general triclinic simulation box defined by the
edge vectors **A**, **B**, **C** and its origin. Likewise per-atom
velocities should be in directions consistent with the general
triclinic box orientation. E.g. a velocity vector which will be in
the +x direction once LAMMPS converts from a general to restricted
triclinic box, should be specified in the data file in the direction
of the **A** edge vector. See the :doc:`read_data <read_data>` doc
page for info on all the per-atom vector quantities to which this
rule applies when a data file for a general triclinic box is input.
* If commands such as :doc:`write_data <write_data>` or :doc:`dump
custom <dump>` are used to output general triclinic information, it
is effectively the inverse of the operation described in the
preceding bullet.
* Other LAMMPS commands such as :doc:`region <region>` or
:doc:`velocity <velocity>` or :doc:`set <set>`, operate on a
restricted triclinic system even if a general triclinic system was
defined initially.
This is the list of commands which have general triclinic options:
* :doc:`create_box <create_box>` - define a general triclinic box
* :doc:`create_atoms <create_atoms>` - add atoms to a general triclinic box
* :doc:`lattice <lattice>` - define a custom lattice consistent with the **A**, **B**, **C** edge vectors of a general triclinic box
* :doc:`read_data <read_data>` - read a data file for a general triclinic system
* :doc:`write_data <write_data>` - write a data file for a general triclinic system
* :doc:`dump atom, dump custom <dump>` - output dump snapshots in general triclinic format
* :doc:`dump_modify triclinic/general <dump_modify>` - select general triclinic format for dump output
* :doc:`thermo_style <thermo_style>` - output the pressure tensor in
general triclinic format
* :doc:`thermo_modify triclinic/general <thermo_modify>` - select general triclinic format for thermo output
* :doc:`read_restart <read_restart>` - read a restart file for a general triclinic system
* :doc:`write_restart <read_restart>` - write a restart file for a general triclinic system
----------
Transformation from general to restricted triclinic boxes
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Let **A**,\ **B**,\ **C** be the right-handed edge vectors of a
general triclinic simulation box. The equivalent LAMMPS **a**,\
**b**,\ **c** for a restricted triclinic box are a 3d rotation of
**A**, **B**, and **C** and can be computed as follows:
.. math::
@ -55,23 +207,17 @@ rotation of **A**, **B**, and **C** and can be computed as follows:
c_y = & \mathbf{C} \cdot \widehat{(\mathbf{A} \times \mathbf{B})} \times \mathbf{\hat{A}} \quad = \quad \frac{\mathbf{B} \cdot \mathbf{C} - b_x c_x}{b_y} \\
c_z = & |\mathbf{C} \cdot \widehat{(\mathbf{A} \times \mathbf{B})}|\quad = \quad \sqrt{C^2 - {c_x}^2 - {c_y}^2}
where A = \| **A** \| indicates the scalar length of **A**\ . The hat symbol (\^)
indicates the corresponding unit vector. :math:`\beta` and :math:`\gamma` are angles
between the vectors described below. Note that by construction,
**a**, **b**, and **c** have strictly positive x, y, and z components, respectively.
If it should happen that
**A**, **B**, and **C** form a left-handed basis, then the above equations
are not valid for **c**\ . In this case, it is necessary
to first apply an inversion. This can be achieved
by interchanging two basis vectors or by changing the sign of one of them.
where A = \| **A** \| indicates the scalar length of **A**\ . The hat
symbol (\^) indicates the corresponding unit vector. :math:`\beta` and
:math:`\gamma` are angles between the **A**, **B**, **C** vectors
as described below.
For consistency, the same rotation/inversion applied to the basis vectors
must also be applied to atom positions, velocities,
and any other vector quantities.
This can be conveniently achieved by first converting to
fractional coordinates in the
old basis and then converting to distance coordinates in the new basis.
The transformation is given by the following equation:
For consistency, the same rotation applied to the triclinic box edge
vectors can also be applied to atom positions, velocities, and other
vector quantities. This can be conveniently achieved by first
converting to fractional coordinates in the general triclinic
coordinates and then converting to coordinates in the restricted
triclinic basis. The transformation is given by the following equation:
.. math::
@ -82,87 +228,24 @@ The transformation is given by the following equation:
\mathbf{A \times B}
\end{pmatrix} \cdot \mathbf{X}
where *V* is the volume of the box, **X** is the original vector quantity and
**x** is the vector in the LAMMPS basis.
where *V* is the volume of the box (same in either basis), **X** is
the fractional vector in the general triclinic basis and **x** is the
resulting vector in the restricted triclinic basis.
There is no requirement that a triclinic box be periodic in any
dimension, though it typically should be in at least the second dimension
of the tilt (y in xy) if you want to enforce a shift in periodic
boundary conditions across that boundary. Some commands that work
with triclinic boxes, e.g. the :doc:`fix deform <fix_deform>` and :doc:`fix npt <fix_nh>` commands, require periodicity or non-shrink-wrap
boundary conditions in specific dimensions. See the command doc pages
for details.
----------
The 9 parameters (xlo,xhi,ylo,yhi,zlo,zhi,xy,xz,yz) are defined at the
time the simulation box is created. This happens in one of 3 ways.
If the :doc:`create_box <create_box>` command is used with a region of
style *prism*, then a triclinic box is setup. See the
:doc:`region <region>` command for details. If the
:doc:`read_data <read_data>` command is used to define the simulation
box, and the header of the data file contains a line with the "xy xz
yz" keyword, then a triclinic box is setup. See the
:doc:`read_data <read_data>` command for details. Finally, if the
:doc:`read_restart <read_restart>` command reads a restart file which
was written from a simulation using a triclinic box, then a triclinic
box will be setup for the restarted simulation.
Crystallographic general triclinic representation of a simulation box
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Note that you can define a triclinic box with all 3 tilt factors =
0.0, so that it is initially orthogonal. This is necessary if the box
will become non-orthogonal, e.g. due to the :doc:`fix npt <fix_nh>` or
:doc:`fix deform <fix_deform>` commands. Alternatively, you can use the
:doc:`change_box <change_box>` command to convert a simulation box from
orthogonal to triclinic and vice versa.
As with orthogonal boxes, LAMMPS defines triclinic box size parameters
lx,ly,lz where lx = xhi-xlo, and similarly in the y and z dimensions.
The 9 parameters, as well as lx,ly,lz, can be output via the
:doc:`thermo_style custom <thermo_style>` command.
To avoid extremely tilted boxes (which would be computationally
inefficient), LAMMPS normally requires that no tilt factor can skew
the box more than half the distance of the parallel box length, which
is the first dimension in the tilt factor (x for xz). This is required
both when the simulation box is created, e.g. via the
:doc:`create_box <create_box>` or :doc:`read_data <read_data>` commands,
as well as when the box shape changes dynamically during a simulation,
e.g. via the :doc:`fix deform <fix_deform>` or :doc:`fix npt <fix_nh>`
commands.
For example, if xlo = 2 and xhi = 12, then the x box length is 10 and
the xy tilt factor must be between -5 and 5. Similarly, both xz and
yz must be between -(xhi-xlo)/2 and +(yhi-ylo)/2. Note that this is
not a limitation, since if the maximum tilt factor is 5 (as in this
example), then configurations with tilt = ..., -15, -5, 5, 15, 25,
... are geometrically all equivalent. If the box tilt exceeds this
limit during a dynamics run (e.g. via the :doc:`fix deform <fix_deform>`
command), then the box is "flipped" to an equivalent shape with a tilt
factor within the bounds, so the run can continue. See the :doc:`fix deform <fix_deform>` page for further details.
One exception to this rule is if the first dimension in the tilt
factor (x for xy) is non-periodic. In that case, the limits on the
tilt factor are not enforced, since flipping the box in that dimension
does not change the atom positions due to non-periodicity. In this
mode, if you tilt the system to extreme angles, the simulation will
simply become inefficient, due to the highly skewed simulation box.
Box flips that may occur using the :doc:`fix deform <fix_deform>` or
:doc:`fix npt <fix_nh>` commands can be turned off using the *flip no*
option with either of the commands.
Note that if a simulation box has a large tilt factor, LAMMPS will run
less efficiently, due to the large volume of communication needed to
acquire ghost atoms around a processor's irregular-shaped subdomain.
For extreme values of tilt, LAMMPS may also lose atoms and generate an
error.
Triclinic crystal structures are often defined using three lattice
constants *a*, *b*, and *c*, and three angles :math:`\alpha`,
:math:`\beta`, and :math:`\gamma`. Note that in this nomenclature,
the a, b, and c lattice constants are the scalar lengths of the edge
General triclinic crystal structures are often defined using three
lattice constants *a*, *b*, and *c*, and three angles :math:`\alpha`,
:math:`\beta`, and :math:`\gamma`. Note that in this nomenclature, the
a, b, and c lattice constants are the scalar lengths of the edge
vectors **a**, **b**, and **c** defined above. The relationship
between these 6 quantities (a, b, c, :math:`\alpha`, :math:`\beta`,
:math:`\gamma`) and the LAMMPS box sizes (lx,ly,lz) =
(xhi-xlo,yhi-ylo,zhi-zlo) and tilt factors (xy,xz,yz) is as follows:
:math:`\gamma`) and the LAMMPS restricted triclinic box sizes
(lx,ly,lz) = (xhi-xlo,yhi-ylo,zhi-zlo) and tilt factors (xy,xz,yz) is
as follows:
.. math::
@ -186,15 +269,19 @@ The inverse relationship can be written as follows:
The values of *a*, *b*, *c*, :math:`\alpha` , :math:`\beta`, and
:math:`\gamma` can be printed out or accessed by computes using the
:doc:`thermo_style custom <thermo_style>` keywords
*cella*, *cellb*, *cellc*, *cellalpha*, *cellbeta*, *cellgamma*,
respectively.
:doc:`thermo_style custom <thermo_style>` keywords *cella*, *cellb*,
*cellc*, *cellalpha*, *cellbeta*, *cellgamma*, respectively.
----------
Output of restricted and general triclinic boxes in a dump file
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
As discussed on the :doc:`dump <dump>` command doc page, when the BOX
BOUNDS for a snapshot is written to a dump file for a triclinic box,
an orthogonal bounding box which encloses the triclinic simulation box
is output, along with the 3 tilt factors (xy, xz, yz) of the triclinic
box, formatted as follows:
BOUNDS for a snapshot is written to a dump file for a restricted
triclinic box, an orthogonal bounding box which encloses the triclinic
simulation box is output, along with the 3 tilt factors (xy, xz, yz) of
the restricted triclinic box, formatted as follows:
.. parsed-literal::
@ -204,7 +291,7 @@ box, formatted as follows:
zlo_bound zhi_bound yz
This bounding box is convenient for many visualization programs and is
calculated from the 9 triclinic box parameters
calculated from the 9 restricted triclinic box parameters
(xlo,xhi,ylo,yhi,zlo,zhi,xy,xz,yz) as follows:
.. parsed-literal::
@ -217,22 +304,66 @@ calculated from the 9 triclinic box parameters
zhi_bound = zhi
These formulas can be inverted if you need to convert the bounding box
back into the triclinic box parameters, e.g. xlo = xlo_bound -
MIN(0.0,xy,xz,xy+xz).
back into the restricted triclinic box parameters, e.g. xlo =
xlo_bound - MIN(0.0,xy,xz,xy+xz).
One use of triclinic simulation boxes is to model solid-state crystals
with triclinic symmetry. The :doc:`lattice <lattice>` command can be
used with non-orthogonal basis vectors to define a lattice that will
tile a triclinic simulation box via the
:doc:`create_atoms <create_atoms>` command.
----------
A second use is to run Parrinello-Rahman dynamics via the :doc:`fix npt <fix_nh>` command, which will adjust the xy, xz, yz tilt
factors to compensate for off-diagonal components of the pressure
tensor. The analog for an :doc:`energy minimization <minimize>` is
the :doc:`fix box/relax <fix_box_relax>` command.
Periodicity and tilt factors for triclinic simulation boxes
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
A third use is to shear a bulk solid to study the response of the
material. The :doc:`fix deform <fix_deform>` command can be used for
this purpose. It allows dynamic control of the xy, xz, yz tilt
factors as a simulation runs. This is discussed in the next section
on non-equilibrium MD (NEMD) simulations.
There is no requirement that a triclinic box be periodic in any
dimension, though it typically should be in y or z if you wish to
enforce a shift in coordinates due to periodic boundary conditions
across the y or z boundaries. See the doc page for the :doc:`boundary
<boundary>` command for an explanation of shifted coordinates for
restricted triclinic boxes which are periodic.
Some commands that work with triclinic boxes, e.g. the :doc:`fix
deform <fix_deform>` and :doc:`fix npt <fix_nh>` commands, require
periodicity or non-shrink-wrap boundary conditions in specific
dimensions. See the command doc pages for details.
A restricted triclinic box can be defined with all 3 tilt factors =
0.0, so that it is initially orthogonal. This is necessary if the box
will become non-orthogonal, e.g. due to use of the :doc:`fix npt
<fix_nh>` or :doc:`fix deform <fix_deform>` commands. Alternatively,
you can use the :doc:`change_box <change_box>` command to convert a
simulation box from orthogonal to restricted triclinic and vice versa.
.. note::
Highly tilted restricted triclinic simulation boxes can be
computationally inefficient. This is due to the large volume of
communication needed to acquire ghost atoms around a processor's
irregular-shaped subdomain. For extreme values of tilt, LAMMPS may
also lose atoms and generate an error.
LAMMPS will issue a warning if you define a restricted triclinic box
with a tilt factor which skews the box more than half the distance of
the parallel box length, which is the first dimension in the tilt
factor (e.g. x for xz).
For example, if xlo = 2 and xhi = 12, then the x box length is 10 and
the xy tilt factor should be between -5 and 5 to avoid the warning.
Similarly, both xz and yz should be between -(xhi-xlo)/2 and
+(yhi-ylo)/2. Note that these are not limitations, since if the
maximum tilt factor is 5 (as in this example), then simulations boxes
and atom configurations with tilt = ..., -15, -5, 5, 15, 25, ... are
all geometrically equivalent.
If the box tilt exceeds this limit during a dynamics run (e.g. due to
the :doc:`fix deform <fix_deform>` command), then by default the box
is "flipped" to an equivalent shape with a tilt factor within the
warning bounds, and the run continues. See the :doc:`fix deform
<fix_deform>` page for further details. Box flips that would normally
occur using the :doc:`fix deform <fix_deform>` or :doc:`fix npt
<fix_nh>` commands can be suppressed using the *flip no* option with
either of the commands.
One exception to box flipping is if the first dimension in the tilt
factor (e.g. x for xy) is non-periodic. In that case, the limits on
the tilt factor are not enforced, since flipping the box in that
dimension would not change the atom positions due to non-periodicity.
In this mode, if the system tilts to large angles, the simulation will
simply become inefficient, due to the highly skewed simulation box.

View File

@ -14,16 +14,17 @@ wherever they appear in LAMMPS input or output files. The total number
Ntypes for each interaction is "locked in" when the simulation box
is created.
A recent addition to LAMMPS is the option to use strings - referred
to as type labels - as an alternative. Using type labels instead of
A recent addition to LAMMPS is the option to use strings - referred to
as type labels - as an alternative. Using type labels instead of
numeric types can be advantageous in various scenarios. For example,
type labels can make inputs more readable and generic (i.e. usable through
the :doc:`include command <include>` for different systems with different
numerical values assigned to types. This generality also applies to
other inputs like data files read by :doc:`read_data <read_data>` or
molecule template files read by the :doc:`molecule <molecule>`
command. See below for a list of other commands that can use
type labels in different ways.
type labels can make inputs more readable and generic (i.e. usable
through the :doc:`include command <include>` for different systems with
different numerical values assigned to types. This generality also
applies to other inputs like data files read by :doc:`read_data
<read_data>` or molecule template files read by the :doc:`molecule
<molecule>` command. A discussion of the current type label support can
be found in :ref:`(Gissinger) <Typelabel24>`. See below for a list of
other commands that can use type labels in different ways.
LAMMPS will *internally* continue to use numeric types, which means
that many previous restrictions still apply. For example, the total
@ -124,3 +125,9 @@ between the files. The creation of simulation-ready reaction templates
for :doc:`fix bond/react <fix_bond_react>` is much simpler when using
type labels, and results in templates that can be used without
modification in multiple simulations or different systems.
-----------
.. _Typelabel24:
**(Gissinger)** J. R. Gissinger, I. Nikiforov, Y. Afshar, B. Waters, M. Choi, D. S. Karls, A. Stukowski, W. Im, H. Heinz, A. Kohlmeyer, and E. B. Tadmor, J Phys Chem B, 128, 3282-3297 (2024).

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

@ -47,6 +47,8 @@ In addition there are DOIs generated for individual stable releases:
- 3 March 2020 version: `DOI:10.5281/zenodo.3726417 <https://dx.doi.org/10.5281/zenodo.3726417>`_
- 29 October 2020 version: `DOI:10.5281/zenodo.4157471 <https://dx.doi.org/10.5281/zenodo.4157471>`_
- 29 September 2021 version: `DOI:10.5281/zenodo.6386596 <https://dx.doi.org/10.5281/zenodo.6386596>`_
- 23 June 2022 version: `DOI:10.5281/zenodo.10806836 <https://doi.org/10.5281/zenodo.10806836>`_
- 2 August 2023 version: `DOI:10.5281/zenodo.10806852 <https://doi.org/10.5281/zenodo.10806852>`_
Home page
^^^^^^^^^

View File

@ -29,7 +29,7 @@ General features
* spatial decomposition of simulation domain for MPI parallelism
* particle decomposition inside spatial decomposition for OpenMP and GPU parallelism
* GPLv2 licensed open-source distribution
* highly portable C++-11
* highly portable C++-11 (optional packages may require C++17)
* modular code with most functionality in optional packages
* only depends on MPI library for basic parallel functionality, MPI stub for serial compilation
* other libraries are optional and only required for specific packages
@ -81,7 +81,7 @@ commands)
* pairwise potentials: Lennard-Jones, Buckingham, Morse, Born-Mayer-Huggins, Yukawa, soft, Class II (COMPASS), hydrogen bond, harmonic, gaussian, tabulated, scripted
* charged pairwise potentials: Coulombic, point-dipole
* many-body potentials: EAM, Finnis/Sinclair, MEAM, MEAM+SW, EIM, EDIP, ADP, Stillinger-Weber, Tersoff, REBO, AIREBO, ReaxFF, COMB, Streitz-Mintmire, 3-body polymorphic, BOP, Vashishta
* machine learning potentials: ACE, AGNI, GAP, Behler-Parrinello (N2P2), POD, RANN
* machine learning potentials: ACE, AGNI, GAP, Behler-Parrinello (N2P2), POD, RANN, SNAP
* interfaces to ML potentials distributed by external groups: ANI, ChIMES, DeepPot, HIPNN, MTP
* long-range interactions for charge, point-dipoles, and LJ dispersion: Ewald, Wolf, PPPM (similar to particle-mesh Ewald), MSM, ScaFaCoS
* polarization models: :doc:`QEq <fix_qeq>`, :doc:`core/shell model <Howto_coreshell>`, :doc:`Drude dipole model <Howto_drude>`

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 KiB

After

Width:  |  Height:  |  Size: 304 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

BIN
doc/src/JPG/sample01.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 808 KiB

BIN
doc/src/JPG/solv_01.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

View File

@ -80,13 +80,15 @@ run LAMMPS in serial mode.
:class: note
If the LAMMPS executable encounters an error condition, it will abort
after printing an error message. For a library interface this is
usually not desirable. Thus LAMMPS can be compiled to to :ref:`throw
a C++ exception <exceptions>` instead. If enabled, the library
functions will catch those exceptions and return. The error status
:cpp:func:`can be queried <lammps_has_error>` and an :cpp:func:`error
message retrieved <lammps_get_last_error_message>`. We thus
recommend enabling C++ exceptions when using the library interface,
after printing an error message. It does so by catching the
exceptions that LAMMPS could throw. For a C library interface this
is usually not desirable since the calling code might lack the
ability to catch such exceptions. Thus, the library functions will
catch those exceptions and return from the affected functions. The
error status :cpp:func:`can be queried <lammps_has_error>` and an
:cpp:func:`error message retrieved <lammps_get_last_error_message>`.
This is, for example used by the :doc:`LAMMPS python module
<Python_module>` and then a suitable Python exception is thrown.
.. admonition:: Using the C library interface as a plugin
:class: note

View File

@ -9,6 +9,8 @@ fixes, or variables in LAMMPS using the following functions:
- :cpp:func:`lammps_extract_variable_datatype`
- :cpp:func:`lammps_extract_variable`
- :cpp:func:`lammps_set_variable`
- :cpp:func:`lammps_set_string_variable`
- :cpp:func:`lammps_set_internal_variable`
- :cpp:func:`lammps_variable_info`
-----------------------
@ -38,6 +40,16 @@ fixes, or variables in LAMMPS using the following functions:
-----------------------
.. doxygenfunction:: lammps_set_string_variable
:project: progguide
-----------------------
.. doxygenfunction:: lammps_set_internal_variable
:project: progguide
-----------------------
.. doxygenfunction:: lammps_variable_info
:project: progguide

View File

@ -13,6 +13,7 @@ This section documents the following functions:
- :cpp:func:`lammps_extract_setting`
- :cpp:func:`lammps_extract_global_datatype`
- :cpp:func:`lammps_extract_global`
- :cpp:func:`lammps_map_atom`
--------------------
@ -120,3 +121,8 @@ subdomains and processors.
.. doxygenfunction:: lammps_extract_global
:project: progguide
-----------------------
.. doxygenfunction:: lammps_map_atom
:project: progguide

View File

@ -3,45 +3,25 @@ What does a LAMMPS version mean
The LAMMPS "version" is the date when it was released, such as 1 May
2014. LAMMPS is updated continuously, and we aim to keep it working
correctly and reliably at all times. You can follow its development
in a public `git repository on GitHub <https://github.com/lammps/lammps>`_.
Modifications of the LAMMPS source code (like bug fixes, code refactors,
updates to existing features, or addition of new features) are organized
into pull requests. Pull requests will be merged into the *develop*
branch of the git repository after they pass automated testing and code
review by the LAMMPS developers. When a sufficient number of changes
have accumulated *and* the *develop* branch version passes an extended
set of automated tests, we release it as a *feature release*, which are
currently made every 4 to 8 weeks. The *release* branch of the git
repository is updated with every such release. A summary of the most
important changes of the patch releases are on `this website page
<https://www.lammps.org/bug.html>`_. More detailed release notes are
`available on GitHub <https://github.com/lammps/lammps/releases/>`_.
Once or twice a year, we have a "stabilization period" where we apply
only bug fixes and small, non-intrusive changes to the *develop*
branch. At the same time, the code is subjected to more detailed and
thorough manual testing than the default automated testing. Also,
several variants of static code analysis are run to improve the overall
code quality, consistency, and compliance with programming standards,
best practices and style conventions.
The release after such a stabilization period is called a *stable*
version and both, the *release* and the *stable* branches are updated
with it. Between stable releases, we collect back-ported bug fixes and
updates from the *develop* branch in the *maintenance* branch. From the
*maintenance* branch we make occasional update releases and update the
*stable* branch accordingly.
correctly and reliably at all times. Also, several variants of static
code analysis are run regularly to maintain or improve the overall code
quality, consistency, and compliance with programming standards, best
practices and style conventions. You can follow its development in a
public `git repository on GitHub <https://github.com/lammps/lammps>`_.
Each version of LAMMPS contains all the documented *features* up to and
including its version date. For recently added features, we add markers
to the documentation at which specific LAMMPS version a feature or
keyword was added or significantly changed.
The version date is printed to the screen and log file every time you run
LAMMPS. It is also in the file src/version.h and in the LAMMPS
directory name created when you unpack a tarball. And it is on the
Identifying the Version
^^^^^^^^^^^^^^^^^^^^^^^
The version date is printed to the screen and log file every time you
run LAMMPS. There also is an indication, if a LAMMPS binary was
compiled from version with modifications **after** a release.
It is also visible in the file src/version.h and in the LAMMPS directory
name created when you unpack a downloaded tarball. And it is on the
first page of the :doc:`manual <Manual>`.
* If you browse the HTML pages of the online version of the LAMMPS
@ -53,3 +33,56 @@ first page of the :doc:`manual <Manual>`.
* If you browse the HTML pages included in your downloaded tarball, they
describe the version you have, which may be older than the online
version.
LAMMPS releases, branches, and tags
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. figure:: JPG/lammps-releases.png
:figclass: align-center
Relations between releases, main branches, and tags in the LAMMPS git repository
Development
"""""""""""
Modifications of the LAMMPS source code (like bug fixes, code
refactoring, updates to existing features, or addition of new features)
are organized into pull requests. Pull requests will be merged into the
*develop* branch of the git repository after they pass automated testing
and code review by the LAMMPS developers.
Feature Releases
""""""""""""""""
When a sufficient number of new features and updates have accumulated
*and* the LAMMPS version on the *develop* branch passes an extended set
of automated tests, we release it as a *feature release*, which are
currently made every 4 to 8 weeks. The *release* branch of the git
repository is updated with every such *feature release* and a tag in the
format ``patch_1May2014`` is added. A summary of the most important
changes of these releases for the current year are posted on `this
website page <https://www.lammps.org/bug.html>`_. More detailed release
notes are `available on GitHub
<https://github.com/lammps/lammps/releases/>`_.
Stable Releases
"""""""""""""""
About once a year, we release a *stable release* version of LAMMPS.
This is done after a "stabilization period" where we apply only bug
fixes and small, non-intrusive changes to the *develop* branch but no
new features. At the same time, the code is subjected to more detailed
and thorough manual testing than the default automated testing.
After such a *stable release*, both the *release* and the *stable*
branches are updated and two tags are applied, a ``patch_1May2014`` format
and a ``stable_1May2014`` format tag.
Stable Release Updates
""""""""""""""""""""""
Between *stable releases*, we collect bug fixes and updates back-ported
from the *develop* branch in a branch called *maintenance*. From the
*maintenance* branch we make occasional *stable update releases* and
update the *stable* branch accordingly. The first update to the
``stable_1May2014`` release would be tagged as
``stable_1May2014_update1``. These updates contain no new features.

View File

@ -96,6 +96,39 @@ list all non-conforming lines. By adding the `-f` flag to the command
line, they will modify the flagged files to try to remove the detected
issues.
Constants (strongly preferred)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Global or per-file constants should be declared as `static constexpr`
variables rather than via the pre-processor with `#define`. The name of
constants should be all uppercase. This has multiple advantages:
- constants are easily identified as such by their all upper case name
- rather than a pure text substitution during pre-processing, `constexpr
variables` have a type associated with them and are processed later in
the parsing process where the syntax checks and type specific
processing (e.g. via overloads) can be applied to them.
- compilers can emit a warning if the constant is not used and thus can
be removed (we regularly check for and remove dead code like this)
- there are no unexpected substitutions and thus confusing syntax errors
when compiling leading to, for instance, conflicts so that LAMMPS
cannot be compiled with certain combinations of packages (this *has*
happened multiple times in the past).
Pre-processor defines should be limited to macros (but consider C++
templates) and conditional compilation. If a per-processor define must
be used, it should be defined at the top of the .cpp file after the
include statements and at all cost it should be avoided to put them into
header files.
Some sets of commonly used constants are provided in the ``MathConst``
and ``EwaldConst`` namespaces and implemented in the files
``math_const.h`` and ``ewald_const.h``, respectively.
There are always exceptions, special cases, and legacy code in LAMMPS,
so please contact the LAMMPS developers if you are not sure.
Placement of braces (strongly preferred)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -52,6 +52,7 @@ page gives those details.
* :ref:`DRUDE <PKG-DRUDE>`
* :ref:`EFF <PKG-EFF>`
* :ref:`ELECTRODE <PKG-ELECTRODE>`
* :ref:`EXTRA-COMMAND <PKG-EXTRA-COMMAND>`
* :ref:`EXTRA-COMPUTE <PKG-EXTRA-COMPUTE>`
* :ref:`EXTRA-DUMP <PKG-EXTRA-DUMP>`
* :ref:`EXTRA-FIX <PKG-EXTRA-FIX>`
@ -84,6 +85,7 @@ page gives those details.
* :ref:`ML-QUIP <PKG-ML-QUIP>`
* :ref:`ML-RANN <PKG-ML-RANN>`
* :ref:`ML-SNAP <PKG-ML-SNAP>`
* :ref:`ML-UF3 <PKG-ML-UF3>`
* :ref:`MOFFF <PKG-MOFFF>`
* :ref:`MOLECULE <PKG-MOLECULE>`
* :ref:`MOLFILE <PKG-MOLFILE>`
@ -403,6 +405,7 @@ and :ref:`ASPHERE <PKG-ASPHERE>` packages are installed.
* :doc:`bond_style oxdna2/\* <bond_oxdna>`
* :doc:`bond_style oxrna2/\* <bond_oxdna>`
* :doc:`fix nve/dotc/langevin <fix_nve_dotc_langevin>`
* examples/PACKAGES/cgdna
----------
@ -676,7 +679,12 @@ DPD-BASIC package
Pair styles for the basic dissipative particle dynamics (DPD) method
and DPD thermostatting.
**Author:** Kurt Smith (U Pittsburgh), Martin Svoboda, Martin Lisal (ICPF and UJEP)
Pair style :doc:`dpd/coul/slater/long <pair_dpd_coul_slater_long>` also
includes smeared charges for coulomb interactions and thus requires the
:ref:`KSPACE <PKG-KSPACE>` package to be installed to handle the long-range
Coulomb part of the interactions.
**Authors:** Kurt Smith (U Pittsburgh), Martin Svoboda, Martin Lisal (ICPF and UJEP), Eddy Barraud (IFPEN)
**Supporting info:**
@ -685,6 +693,7 @@ and DPD thermostatting.
* :doc:`pair_style dpd/tstat <pair_dpd>`
* :doc:`pair_style dpd/ext <pair_dpd_ext>`
* :doc:`pair_style dpd/ext/tstat <pair_dpd_ext>`
* :doc:`pair_style dpd/coul/slater/long <pair_dpd_coul_slater_long>`
* examples/PACKAGES/dpd-basic
----------
@ -886,6 +895,22 @@ This package has :ref:`specific installation instructions <electrode>` on the
----------
.. _PKG-EXTRA-COMMAND:
EXTRA-COMMAND package
---------------------
**Contents:**
Additional command styles that are less commonly used.
**Supporting info:**
* src/EXTRA-COMMAND: filenames -> commands
* :doc:`general commands <Commands_all>`
----------
.. _PKG-EXTRA-COMPUTE:
EXTRA-COMPUTE package
@ -1925,6 +1950,31 @@ computes which analyze attributes of the potential.
----------
.. _PKG-ML-UF3:
ML-UF3 package
--------------
**Contents:**
A pair style for the ultra-fast force field potentials (UF3). UF3 is a
methodology for deriving a highly accurate classical potential which is
fast to evaluate and is fitted to a large archives of quantum mechanical
(DFT) data. The use of b-spline basis set in UF3 enables the rapid
evaluation of 2-body and 3-body interactions.
**Authors:** Ajinkya C Hire (University of Florida),
Hendrik Krass (University of Constance),
Matthias Rupp (Luxembourg Institute of Science and Technology),
Richard Hennig (University of Florida)
**Supporting info:**
* src/ML-UF3: filenames -> commands
* :doc:`pair_style uf3 <pair_uf3>`
* examples/uf3
* https://github.com/uf3/uf3
.. _PKG-MOFFF:
MOFFF package
@ -2226,7 +2276,7 @@ and third order tensor from finite differences.
**Install:**
The PHONON package requires that also the :ref:`KSPACE <PKG-KSPACE>`
The fix phonon command also requires that the :ref:`KSPACE <PKG-KSPACE>`
package is installed.

View File

@ -158,6 +158,11 @@ whether an extra library is needed to build and use the package:
- :doc:`fix electrode/conp <fix_electrode>`
- PACKAGES/electrode
- no
* - :ref:`EXTRA-COMMAND <PKG-EXTRA-COMMAND>`
- additional command styles
- :doc:`general commands <Commands_all>`
- n/a
- no
* - :ref:`EXTRA-COMPUTE <PKG-EXTRA-COMPUTE>`
- additional compute styles
- :doc:`compute <compute>`
@ -318,6 +323,11 @@ whether an extra library is needed to build and use the package:
- :doc:`pair_style snap <pair_snap>`
- snap
- no
* - :ref:`ML-UF3 <PKG-ML-UF3>`
- quantum-fitted ultra fast potentials
- :doc:`pair_style uf3 <pair_uf3>`
- PACKAGES/uf3
- no
* - :ref:`MOFFF <PKG-MOFFF>`
- styles for `MOF-FF <MOFplus_>`_ force field
- :doc:`pair_style buck6d/coul/gauss <pair_buck6d_coul_gauss>`

View File

@ -1,11 +1,11 @@
Handling LAMMPS errors
**********************
The shared library is compiled with :ref:`C++ exception support
<exceptions>` to provide a better error handling experience. C++
exceptions allow capturing errors on the C++ side and rethrowing them on
the Python side. This way LAMMPS errors can be handled through the
Python exception handling mechanism.
LAMMPS and the LAMMPS library are compiled with :ref:`C++ exception support
<exceptions>` to provide a better error handling experience. LAMMPS errors
trigger throwing a C++ exception. These exceptions allow capturing errors on
the C++ side and rethrowing them on the Python side. This way LAMMPS errors
can be handled through the Python exception handling mechanism.
.. code-block:: python
@ -15,9 +15,7 @@ Python exception handling mechanism.
try:
# LAMMPS will normally terminate itself and the running process if an error
# occurs. This would kill the Python interpreter. To avoid this, make sure to
# compile with LAMMPS_EXCEPTIONS enabled. This ensures the library API calls
# will not terminate the parent process. Instead, the library wrapper will
# occurs. This would kill the Python interpreter. The library wrapper will
# detect that an error has occured and throw a Python exception
lmp.command('unknown')

View File

@ -5,8 +5,7 @@ The LAMMPS Python module enables calling the :ref:`LAMMPS C library API
<lammps_c_api>` from Python by dynamically loading functions in the
LAMMPS shared library through the Python `ctypes <ctypes_>`_
module. Because of the dynamic loading, it is required that LAMMPS is
compiled in :ref:`"shared" mode <exe>`. It is also recommended to
compile LAMMPS with :ref:`C++ exceptions <exceptions>` enabled.
compiled in :ref:`"shared" mode <exe>`.
Two components are necessary for Python to be able to invoke LAMMPS code:

View File

@ -54,8 +54,21 @@ like this:
x[3] = x coord of atom with ID 2
...
x[n3-1] = z coord of atom with ID natoms
lmp.scatter_atoms("x",1,3,x)
lmp.scatter_atoms("x", 1, 3, x)
The coordinates can also be provided as arguments to the initializer of x:
.. code-block:: python
from ctypes import c_double
natoms = 2
n3 = 3*natoms
# init in constructor
x = (n3*c_double)(0.0, 0.0, 0.0, 1.0, 1.0, 1.0)
lmp.scatter_atoms("x", 1, 3, x)
# or using a list
coords = [1.0, 2.0, 3.0, -3.0, -2.0, -1.0]
x = (c_double*len(coords))(*coords)
Alternatively, you can just change values in the vector returned by
the gather methods, since they are also ctypes vectors.

View File

@ -49,14 +49,17 @@ simulation. An example set of statistics is shown here:
----------
The first section provides a global loop timing summary. The *loop time*
is the total wall-clock time for the simulation to run. The
*Performance* line is provided for convenience to help predict how long
it will take to run a desired physical simulation and to have numbers
useful for performance comparison between different simulation settings
or system sizes. The *CPU use* line provides the CPU utilization per
MPI task; it should be close to 100% times the number of OpenMP threads
(or 1 of not using OpenMP). Lower numbers correspond to delays due to
file I/O or insufficient thread utilization.
is the total wall-clock time for the MD steps of the simulation run,
excluding the time for initialization and setup (i.e. the parts that may
be skipped with :doc:`run N pre no <run>`). The *Performance* line is
provided for convenience to help predict how long it will take to run a
desired physical simulation and to have numbers useful for performance
comparison between different simulation settings or system sizes. The
*CPU use* line provides the CPU utilization per MPI task; it should be
close to 100% times the number of OpenMP threads (or 1 if not using
OpenMP). Lower numbers correspond to delays due to file I/O or
insufficient thread utilization from parts of the code that have not
been multi-threaded.
----------

View File

@ -20,11 +20,28 @@ including Sikandar Mashayak (UIUC), Ray Shan (Sandia), and Dan Ibanez
(Sandia). For more information on developing using Kokkos abstractions
see the `Kokkos Wiki <https://github.com/kokkos/kokkos/wiki>`_.
Kokkos currently provides support for 4 modes of execution (per MPI
.. note::
The Kokkos library is under active development and tracking the
availability of accelerator hardware, so is the KOKKOS package in
LAMMPS. This means that only a certain range of versions of the
Kokkos library are compatible with the KOKKOS package of a certain
range of LAMMPS versions. For that reason LAMMPS comes with a
bundled version of the Kokkos library that has been validated on
multiple platforms and may contain selected back-ported bug fixes
from upstream Kokkos versions. While it is possible to build LAMMPS
with an external version of Kokkos, it is untested and may result in
incorrect execution or crashes.
Kokkos currently provides full support for 4 modes of execution (per MPI
task). These are Serial (MPI-only for CPUs and Intel Phi), OpenMP
(threading for many-core CPUs and Intel Phi), CUDA (for NVIDIA
GPUs) and HIP (for AMD GPUs). You choose the mode at build time to
produce an executable compatible with a specific hardware.
(threading for many-core CPUs and Intel Phi), CUDA (for NVIDIA GPUs) and
HIP (for AMD GPUs). Additional modes (e.g. OpenMP target, Intel data
center GPUs) are under development. You choose the mode at build time
to produce an executable compatible with a specific hardware.
The following compatibility notes have been last updated for LAMMPS
version 23 November 2023 and Kokkos version 4.2.
.. admonition:: C++17 support
:class: note
@ -54,22 +71,22 @@ produce an executable compatible with a specific hardware.
:class: note
Kokkos with CUDA currently implicitly assumes that the MPI library is
GPU-aware. This is not always the case, especially when using
GPU-aware. This is not always the case, especially when using
pre-compiled MPI libraries provided by a Linux distribution. This is
not a problem when using only a single GPU with a single MPI
rank. When running with multiple MPI ranks, you may see segmentation
rank. When running with multiple MPI ranks, you may see segmentation
faults without GPU-aware MPI support. These can be avoided by adding
the flags :doc:`-pk kokkos gpu/aware off <Run_options>` to the
LAMMPS command line or by using the command :doc:`package kokkos
gpu/aware off <package>` in the input file.
.. admonition:: AMD GPU support
.. admonition:: Intel Data Center GPU support
:class: note
To build with Kokkos the HIPCC compiler from the AMD ROCm software
version 3.5 or later is required. Supporting this Kokkos mode in
LAMMPS is still work in progress. Please contact the LAMMPS developers
if you run into problems.
Support for Kokkos with Intel Data Center GPU accelerators (formerly
known under the code name "Ponte Vecchio") in LAMMPS is still a work
in progress. Only a subset of the functionality works correctly.
Please contact the LAMMPS developers if you run into problems.
Building LAMMPS with the KOKKOS package
"""""""""""""""""""""""""""""""""""""""
@ -292,6 +309,10 @@ one or more nodes, each with two GPUs:
settings. Experimenting with its options can provide a speed-up for
specific calculations. For example:
.. code-block:: bash
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighbor list, set binsize = neighbor ghost cutoff
.. note::
The default binsize for :doc:`atom sorting <atom_modify>` on GPUs
@ -302,9 +323,15 @@ one or more nodes, each with two GPUs:
frequent sorting than default (e.g. sorting every 100 time steps
instead of 1000) may improve performance.
.. code-block:: bash
.. note::
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighbor list, set binsize = neighbor ghost cutoff
When running on GPUs with many MPI ranks (tens of thousands and
more), the creation of the atom map (required for molecular systems)
on the GPU can slow down significantly or run out of GPU memory and
thus slow down the whole calculation or cause a crash. You can use
the "-pk kokkos atom/map no" :doc:`command-line switch <Run_options>`
of the :doc:`package kokkos atom/map no <package>` command to create
the atom map on the CPU instead.
.. note::
@ -416,15 +443,22 @@ Generally speaking, the following rules of thumb apply:
performance of a KOKKOS style is a bit slower than the OPENMP
package.
* When running large number of atoms per GPU, KOKKOS is typically faster
than the GPU package when compiled for double precision. The benefit
than the GPU package when compiled for double precision. The benefit
of using single or mixed precision with the GPU package depends
significantly on the hardware in use and the simulated system and pair
style.
* When running on Intel hardware, KOKKOS is not as fast as
* When running on Intel Phi hardware, KOKKOS is not as fast as
the INTEL package, which is optimized for x86 hardware (not just
from Intel) and compilation with the Intel compilers. The INTEL
package also can increase the vector length of vector instructions
by switching to single or mixed precision mode.
* The KOKKOS package by default assumes that you are using exactly one
MPI rank per GPU. When trying to use multiple MPI ranks per GPU it is
mandatory to enable `CUDA Multi-Process Service (MPS)
<https://docs.nvidia.com/deploy/mps/index.html>`_ to get good
performance. In this case it is better to not use all available
MPI ranks in order to avoid competing with the MPS daemon for
CPU resources.
See the `Benchmark page <https://www.lammps.org/bench.html>`_ of the
LAMMPS website for performance of the KOKKOS package on different

View File

@ -90,7 +90,7 @@ Miscellaneous tools
* :ref:`LAMMPS coding standards <coding_standard>`
* :ref:`emacs <emacs>`
* :ref:`i-pi <ipi>`
* :ref:`i-PI <ipi>`
* :ref:`kate <kate>`
* :ref:`LAMMPS shell <lammps_shell>`
* :ref:`LAMMPS GUI <lammps_gui>`
@ -376,21 +376,40 @@ See README file in the tools/fep directory.
.. _ipi:
i-pi tool
i-PI tool
-------------------
The tools/i-pi directory contains a version of the i-PI package, with
all the LAMMPS-unrelated files removed. It is provided so that it can
be used with the :doc:`fix ipi <fix_ipi>` command to perform
path-integral molecular dynamics (PIMD).
.. versionchanged:: 27June2024
The tools/i-pi directory used to contain a bundled version of the i-PI
software package for use with LAMMPS. This version, however, was
removed in 06/2024.
The i-PI package was created and is maintained by Michele Ceriotti,
michele.ceriotti at gmail.com, to interface to a variety of molecular
dynamics codes.
See the tools/i-pi/manual.pdf file for an overview of i-PI, and the
:doc:`fix ipi <fix_ipi>` page for further details on running PIMD
calculations with LAMMPS.
i-PI is now available via PyPI using the pip package manager at:
https://pypi.org/project/ipi/
Here are the commands to set up a virtual environment and install
i-PI into it with all its dependencies.
.. code-block:: sh
python -m venv ipienv
source ipienv/bin/activate
pip install --upgrade pip
pip install ipi
To install the development version from GitHub, please use:
.. code-block:: sh
pip install git+https://github.com/i-pi/i-pi.git
For further information, please consult the [i-PI home
page](https://ipi-code.org).
----------
@ -709,8 +728,8 @@ CMake is required.
The LAMMPS GUI has been successfully compiled and tested on:
- Ubuntu Linux 20.04LTS x86_64 using GCC 9, Qt version 5.12
- Fedora Linux 38 x86\_64 using GCC 13 and Clang 16, Qt version 5.15LTS
- Fedora Linux 38 x86\_64 using GCC 13, Qt version 6.5LTS
- Fedora Linux 40 x86\_64 using GCC 14 and Clang 17, Qt version 5.15LTS
- Fedora Linux 40 x86\_64 using GCC 14, Qt version 6.5LTS
- Apple macOS 12 (Monterey) and macOS 13 (Ventura) with Xcode on arm64 and x86\_64, Qt version 5.15LTS
- Windows 10 and 11 x86_64 with Visual Studio 2022 and Visual C++ 14.36, Qt version 5.15LTS
- Windows 10 and 11 x86_64 with MinGW / GCC 10.0 cross-compiler on Fedora 38, Qt version 5.15LTS
@ -752,22 +771,23 @@ if necessary. When both, Qt5 and Qt6 are available, Qt6 will be preferred
unless ``-D LAMMPS_GUI_USE_QT5=yes`` is set.
It should be possible to build the LAMMPS GUI as a standalone
compilation (e.g. when LAMMPS has been compiled with traditional make),
then the CMake configuration needs to be told where to find the LAMMPS
compilation (e.g. when LAMMPS has been compiled with traditional make).
Then the CMake configuration needs to be told where to find the LAMMPS
headers and the LAMMPS library, via ``-D
LAMMPS_SOURCE_DIR=/path/to/lammps/src``. CMake will try to guess a
build folder with the LAMMPS library from that path, but it can also be
set with ``-D LAMMPS_LIB_DIR=/path/to/lammps/lib``.
Rather than linking to the LAMMPS library during compilation, it is also
possible to compile the GUI with a plugin loader library that will load
possible to compile the GUI with a plugin loader that will load
the LAMMPS library dynamically at runtime during the start of the GUI
from a shared library; e.g. ``liblammps.so`` or ``liblammps.dylib`` or
``liblammps.dll`` (depending on the operating system). This has the
advantage that the LAMMPS library can be updated LAMMPS without having
to recompile the GUI. The ABI of the LAMMPS C-library interface is very
stable and generally backward compatible. This feature is enabled by
setting ``-D LAMMPS_GUI_USE_PLUGIN=on`` and then ``-D
advantage that the LAMMPS library can be built from updated or modified
LAMMPS source without having to recompile the GUI. The ABI of the
LAMMPS C-library interface is very stable and generally backward
compatible. This feature is enabled by setting
``-D LAMMPS_GUI_USE_PLUGIN=on`` and then ``-D
LAMMPS_PLUGINLIB_DIR=/path/to/lammps/plugin/loader``. Typically, this
would be the ``examples/COUPLE/plugin`` folder of the LAMMPS
distribution.
@ -779,8 +799,8 @@ macOS
"""""
When building on macOS, the build procedure will try to manufacture a
drag-n-drop installer, LAMMPS-macOS-multiarch.dmg, when using the 'dmg'
target (i.e. ``cmake --build <build dir> --target dmg`` or ``make dmg``.
drag-n-drop installer, ``LAMMPS-macOS-multiarch.dmg``, when using the
'dmg' target (i.e. ``cmake --build <build dir> --target dmg`` or ``make dmg``.
To build multi-arch executables that will run on both, arm64 and x86_64
architectures natively, it is necessary to set the CMake variable ``-D
@ -819,12 +839,12 @@ and LAMMPS GUI can be launched from anywhere from the command line.
The standard CMake build procedure can be applied and the
``mingw-cross.cmake`` preset used. By using ``mingw64-cmake`` the CMake
command will automatically include a suitable CMake toolset file (the
regular cmake command can be used after that). After building the
libraries and executables, you can build the target 'zip'
(i.e. ``cmake --build <build dir> --target zip`` or ``make zip``
to stage all installed files into a LAMMPS_GUI folder and then
run a script to copy all required dependencies, some other files,
command will automatically include a suitable CMake toolchain file (the
regular cmake command can be used after that to modify the configuration
settings, if needed). After building the libraries and executables,
you can build the target 'zip' (i.e. ``cmake --build <build dir> --target zip``
or ``make zip`` to stage all installed files into a LAMMPS_GUI folder
and then run a script to copy all required dependencies, some other files,
and create a zip file from it.
Linux

View File

@ -70,7 +70,9 @@ for more info.
Related commands
""""""""""""""""
:doc:`angle_coeff <angle_coeff>`
:doc:`angle_coeff <angle_coeff>`, :doc:`pair_style lj/charmm variants <pair_charmm>`,
:doc:`dihedral_style charmm <dihedral_charmm>`,
:doc:`dihedral_style charmmfsw <dihedral_charmm>`, :doc:`fix cmap <fix_cmap>`
Default
"""""""

View File

@ -0,0 +1,80 @@
.. index:: angle_style cosine/squared/restricted
.. index:: angle_style cosine/squared/restricted/omp
angle_style cosine/squared/restricted command
=============================================
Accelerator Variants: *cosine/squared/restricted/omp*
Syntax
""""""
.. code-block:: LAMMPS
angle_style cosine/squared/restricted
Examples
""""""""
.. code-block:: LAMMPS
angle_style cosine/squared/restricted
angle_coeff 2*4 75.0 100.0
Description
"""""""""""
.. versionadded:: 17Apr2024
The *cosine/squared/restricted* angle style uses the potential
.. math::
E = K [\cos(\theta) - \cos(\theta_0)]^2 / \sin^2(\theta)
, which is commonly used in the MARTINI force field,
where :math:`\theta_0` is the equilibrium value of the angle, and :math:`K`
is a prefactor. Note that the usual 1/2 factor is included in :math:`K`.
See :ref:`(Bulacu) <restricted-Bulacu>` for a description of the restricted angle for the MARTINI force field.
The following coefficients must be defined for each angle type via the
:doc:`angle_coeff <angle_coeff>` command as in the example above, or in
the data file or restart files read by the :doc:`read_data <read_data>`
or :doc:`read_restart <read_restart>` commands:
* :math:`K` (energy)
* :math:`\theta_0` (degrees)
:math:`\theta_0` is specified in degrees, but LAMMPS converts it to radians
internally.
----------
.. include:: accel_styles.rst
----------
Restrictions
""""""""""""
This angle style can only be used if LAMMPS was built with the
EXTRA-MOLECULE package. See the :doc:`Build package <Build_package>` doc page
for more info.
Related commands
""""""""""""""""
:doc:`angle_coeff <angle_coeff>`
Default
"""""""
none
----------
.. _restricted-Bulacu:
**(Bulacu)** Bulacu, Goga, Zhao, Rossi, Monticelli, Periole, Tieleman, Marrink, J Chem Theory Comput, 9, 3282-3292
(2013).

View File

@ -11,7 +11,16 @@ Syntax
.. code-block:: LAMMPS
angle_style lepton
angle_style style args
* style = *lepton*
* args = optional arguments
.. parsed-literal::
args = *auto_offset* or *no_offset*
*auto_offset* = offset the potential energy so that the value at theta0 is 0.0 (default)
*no_offset* = do not offset the potential energy
Examples
""""""""
@ -19,6 +28,7 @@ Examples
.. code-block:: LAMMPS
angle_style lepton
angle_style lepton no_offset
angle_coeff 1 120.0 "k*theta^2; k=250.0"
angle_coeff 2 90.0 "k2*theta^2 + k3*theta^3 + k4*theta^4; k2=300.0; k3=-100.0; k4=50.0"
@ -41,6 +51,13 @@ angle coefficient. For example `"200.0*theta^2"` represents a
U_{angle,i} = K (\theta_i - \theta_0)^2 = K \theta^2 \qquad \theta = \theta_i - \theta_0
.. versionchanged:: 7Feb2024
By default the potential energy U is shifted so that the value U is 0.0
for $theta = theta_0$. This is equivalent to using the optional keyword
*auto_offset*. When using the keyword *no_offset* instead, the
potential energy is not shifted.
The `Lepton library <https://simtk.org/projects/lepton>`_, that the
*lepton* angle style interfaces with, evaluates this expression string
at run time to compute the pairwise energy. It also creates an

View File

@ -10,7 +10,7 @@ Syntax
angle_style style
* style = *none* or *zero* or *hybrid* or *amoeba* or *charmm* or *class2* or *class2/p6* or *cosine* or *cosine/buck6d* or *cosine/delta* or *cosine/periodic* or *cosine/shift* or *cosine/shift/exp* or *cosine/squared* or *cross* or *dipole* or *fourier* or *fourier/simple* or *gaussian* or *harmonic* or *lepton* or *mm3* or *quartic* or *spica* or *table*
* style = *none* or *zero* or *hybrid* or *amoeba* or *charmm* or *class2* or *class2/p6* or *cosine* or *cosine/buck6d* or *cosine/delta* or *cosine/periodic* or *cosine/shift* or *cosine/shift/exp* or *cosine/squared* or *cosine/squared/restricted* or *cross* or *dipole* or *fourier* or *fourier/simple* or *gaussian* or *harmonic* or *lepton* or *mm3* or *quartic* or *spica* or *table*
Examples
""""""""
@ -84,6 +84,7 @@ of (g,i,k,o,t) to indicate which accelerated styles exist.
* :doc:`cosine/shift <angle_cosine_shift>` - angle cosine with a shift
* :doc:`cosine/shift/exp <angle_cosine_shift_exp>` - cosine with shift and exponential term in spring constant
* :doc:`cosine/squared <angle_cosine_squared>` - angle with cosine squared term
* :doc:`cosine/squared/restricted <angle_cosine_squared_restricted>` - angle with restricted cosine squared term
* :doc:`cross <angle_cross>` - cross term coupling angle and bond lengths
* :doc:`dipole <angle_dipole>` - angle that controls orientation of a point dipole
* :doc:`fourier <angle_fourier>` - angle with multiple cosine terms

View File

@ -49,248 +49,221 @@ Examples
Description
"""""""""""
Define what style of atoms to use in a simulation. This determines
what attributes are associated with the atoms. This command must be
used before a simulation is setup via a :doc:`read_data <read_data>`,
:doc:`read_restart <read_restart>`, or :doc:`create_box <create_box>`
command.
The *atom_style* command selects which per-atom attributes are
associated with atoms in a LAMMPS simulation and thus stored and
communicated with those atoms as well as read from and stored in data
and restart files. Different models (e.g. :doc:`pair styles
<pair_style>`) require access to specific per-atom attributes and thus
require a specific atom style. For example, to compute Coulomb
interactions, the atom must have a "charge" (aka "q") attribute.
A number of distinct atom styles exist that combine attributes. Some
atom styles are a superset of other atom styles. Further attributes
may be added to atoms either via using a hybrid style which provides a
union of the attributes of the sub-styles, or via the :doc:`fix
property/atom <fix_property_atom>` command. The *atom_style* command
must be used before a simulation is setup via a :doc:`read_data
<read_data>`, :doc:`read_restart <read_restart>`, or :doc:`create_box
<create_box>` command.
.. note::
Many of the atom styles discussed here are only enabled if
LAMMPS was built with a specific package, as listed below in the
Restrictions section.
Many of the atom styles discussed here are only enabled if LAMMPS was
built with a specific package, as listed below in the Restrictions
section.
Once a style is assigned, it cannot be changed, so use a style general
enough to encompass all attributes. E.g. with style *bond*, angular
terms cannot be used or added later to the model. It is OK to use a
style more general than needed, though it may be slightly inefficient.
Once a style is selected and the simulation box defined, it cannot be
changed but only augmented with the :doc:`fix property/atom
<fix_property_atom>` command. So one should select an atom style
general enough to encompass all attributes required. E.g. with atom
style *bond*, it is not possible to define angles and use angle styles.
The choice of style affects what quantities are stored by each atom,
what quantities are communicated between processors to enable forces
to be computed, and what quantities are listed in the data file read
by the :doc:`read_data <read_data>` command.
It is OK to use a style more general than needed, though it may be
slightly inefficient because it will allocate and communicate
additional unused data.
These are the additional attributes of each style and the typical
kinds of physical systems they are used to model. All styles store
coordinates, velocities, atom IDs and types. See the
Atom style attributes
"""""""""""""""""""""
The atom style *atomic* has the minimum subset of per-atom attributes
and is also the default setting. It encompasses the following per-atom
attributes (name of the vector or array in the :doc:`Atom class
<Classes_atom>` is given in parenthesis): atom-ID (tag), type (type),
position (x), velocities (v), forces (f), image flags (image), group
membership (mask). Since all atom styles are a superset of atom style
*atomic*\ , they all include these attributes.
This table lists all the available atom styles, which attributes they
provide, which :doc:`package <Packages>` is required to use them, and
what the typical applications are that use them. See the
:doc:`read_data <read_data>`, :doc:`create_atoms <create_atoms>`, and
:doc:`set <set>` commands for info on how to set these various
quantities.
:doc:`set <set>` commands for details on how to set these various
quantities. More information about many of the styles is provided in
the Additional Information section below.
+--------------+-----------------------------------------------------+--------------------------------------+
| *amoeba* | molecular + charge + 1/5 neighbors | AMOEBA/HIPPO polarized force fields |
+--------------+-----------------------------------------------------+--------------------------------------+
| *angle* | bonds and angles | bead-spring polymers with stiffness |
+--------------+-----------------------------------------------------+--------------------------------------+
| *atomic* | only the default values | coarse-grain liquids, solids, metals |
+--------------+-----------------------------------------------------+--------------------------------------+
| *body* | mass, inertia moments, quaternion, angular momentum | arbitrary bodies |
+--------------+-----------------------------------------------------+--------------------------------------+
| *bond* | bonds | bead-spring polymers |
+--------------+-----------------------------------------------------+--------------------------------------+
| *charge* | charge | atomic system with charges |
+--------------+-----------------------------------------------------+--------------------------------------+
| *dielectric* | normx normy normz area/patch ed em epsilon curv | system with surface polarization |
+--------------+-----------------------------------------------------+--------------------------------------+
| *dipole* | charge and dipole moment | system with dipolar particles |
+--------------+-----------------------------------------------------+--------------------------------------+
| *dpd* | internal temperature and internal energies | DPD particles |
+--------------+-----------------------------------------------------+--------------------------------------+
| *edpd* | temperature and heat capacity | eDPD particles |
+--------------+-----------------------------------------------------+--------------------------------------+
| *electron* | charge and spin and eradius | electronic force field |
+--------------+-----------------------------------------------------+--------------------------------------+
| *ellipsoid* | shape, quaternion, angular momentum | aspherical particles |
+--------------+-----------------------------------------------------+--------------------------------------+
| *full* | molecular + charge | bio-molecules |
+--------------+-----------------------------------------------------+--------------------------------------+
| *line* | end points, angular velocity | rigid bodies |
+--------------+-----------------------------------------------------+--------------------------------------+
| *mdpd* | density | mDPD particles |
+--------------+-----------------------------------------------------+--------------------------------------+
| *molecular* | bonds, angles, dihedrals, impropers | uncharged molecules |
+--------------+-----------------------------------------------------+--------------------------------------+
| *oxdna* | nucleotide polarity | coarse-grained DNA and RNA models |
+--------------+-----------------------------------------------------+--------------------------------------+
| *peri* | mass, volume | mesoscopic Peridynamic models |
+--------------+-----------------------------------------------------+--------------------------------------+
| *smd* | volume, kernel diameter, contact radius, mass | solid and fluid SPH particles |
+--------------+-----------------------------------------------------+--------------------------------------+
| *sph* | rho, esph, cv | SPH particles |
+--------------+-----------------------------------------------------+--------------------------------------+
| *sphere* | diameter, mass, angular velocity | granular models |
+--------------+-----------------------------------------------------+--------------------------------------+
| *bpm/sphere* | diameter, mass, angular velocity, quaternion | granular bonded particle models (BPM)|
+--------------+-----------------------------------------------------+--------------------------------------+
| *spin* | magnetic moment | system with magnetic particles |
+--------------+-----------------------------------------------------+--------------------------------------+
| *tdpd* | chemical concentration | tDPD particles |
+--------------+-----------------------------------------------------+--------------------------------------+
| *template* | template index, template atom | small molecules with fixed topology |
+--------------+-----------------------------------------------------+--------------------------------------+
| *tri* | corner points, angular momentum | rigid bodies |
+--------------+-----------------------------------------------------+--------------------------------------+
| *wavepacket* | charge, spin, eradius, etag, cs_re, cs_im | AWPMD |
+--------------+-----------------------------------------------------+--------------------------------------+
.. list-table::
:header-rows: 1
:widths: auto
* - Atom style
- Attributes
- Required package
- Applications
* - *amoeba*
- *full* + "1-5 special neighbor data"
- :ref:`AMOEBA <PKG-AMOEBA>`
- AMOEBA/HIPPO force fields
* - *angle*
- *bond* + "angle data"
- :ref:`MOLECULE <PKG-MOLECULE>`
- bead-spring polymers with stiffness
* - *atomic*
- tag, type, x, v, f, image, mask
-
- atomic liquids, solids, metals
* - *body*
- *atomic* + radius, rmass, angmom, torque, body
- :ref:`BODY <PKG-BODY>`
- arbitrary bodies, see :doc:`body howto <Howto_body>`
* - *bond*
- *atomic* + molecule, nspecial, special + "bond data"
- :ref:`MOLECULE <PKG-MOLECULE>`
- bead-spring polymers
* - *bpm/sphere*
- *bond* + radius, rmass, omega, torque, quat
- :ref:`BPM <PKG-BPM>`
- granular bonded particle models, see :doc:`BPM howto <Howto_bpm>`
* - *charge*
- *atomic* + q
-
- atomic systems with charges
* - *dielectric*
- *full* + mu, area, ed, em, epsilon, curvature, q_scaled
- :ref:`DIELECTRIC <PKG-DIELECTRIC>`
- systems with surface polarization
* - *dipole*
- *charge* + mu
- :ref:`DIPOLE <PKG-DIPOLE>`
- atomic systems with charges and point dipoles
* - *dpd*
- *atomic* + rho + "reactive DPD data"
- :ref:`DPD-REACT <PKG-DPD-REACT>`
- reactive DPD
* - *edpd*
- *atomic* + "eDPD data"
- :ref:`DPD-MESO <PKG-DPD-MESO>`
- Energy conservative DPD (eDPD)
* - *electron*
- *charge* + espin, eradius, ervel, erforce
- :ref:`EFF <PKG-EFF>`
- Electron force field systems
* - *ellipsoid*
- *atomic* + rmass, angmom, torque, ellipsoid
-
- aspherical particles
* - *full*
- *molecular* + q
- :ref:`MOLECULE <PKG-MOLECULE>`
- molecular force fields
* - *line*
- *atomic* + molecule, radius, rmass, omega, torque, line
-
- 2-d rigid body particles
* - *mdpd*
- *atomic* + rho, drho, vest
- :ref:`DPD-MESO <PKG-DPD-MESO>`
- Many-body DPD (mDPD)
* - *molecular*
- *angle* + "dihedral and improper data"
- :ref:`MOLECULE <PKG-MOLECULE>`
- apolar and uncharged molecules
* - *oxdna*
- *atomic* + id5p
- :ref:`CG-DNA <PKG-CG-DNA>`
- coarse-grained DNA and RNA models
* - *peri*
- *atomic* + rmass, vfrac, s0, x0
- :ref:`PERI <PKG-PERI>`
- mesoscopic Peridynamics models
* - *smd*
- *atomic* + molecule, radius, rmass + "smd data"
- :ref:`MACHDYN <PKG-MACHDYN>`
- Smooth Mach Dynamics models
* - *sph*
- *atomic* + "sph data"
- :ref:`SPH <PKG-SPH>`
- Smoothed particle hydrodynamics models
* - *sphere*
- *atomic* + radius, rmass, omega, torque
-
- finite size spherical particles, e.g. granular models
* - *spin*
- *atomic* + "magnetic moment data"
- :ref:`SPIN <PKG-SPIN>`
- magnetic particles
* - *tdpd*
- *atomic* + cc, cc_flux, vest
- :ref:`DPD-MESO <PKG-DPD-MESO>`
- Transport DPD (tDPD)
* - *template*
- *atomic* + molecule, molindex, molatom
- :ref:`MOLECULE <PKG-MOLECULE>`
- molecular systems where attributes are taken from :doc:`molecule files <molecule>`
* - *tri*
- *sphere* + molecule, angmom, tri
-
- 3-d triangulated rigid body LJ particles
* - *wavepacket*
- *charge* + "wavepacket data"
- :ref:`AWPMD <PKG-AWPMD>`
- Antisymmetrized wave packet MD
.. note::
It is possible to add some attributes, such as a molecule ID, to
atom styles that do not have them via the :doc:`fix property/atom
<fix_property_atom>` command. This command also allows new custom
attributes consisting of extra integer or floating-point values to
be added to atoms. See the :doc:`fix property/atom
<fix_property_atom>` page for examples of cases where this is
useful and details on how to initialize, access, and output the
custom values.
It is possible to add some attributes, such as a molecule ID and
charge, to atom styles that do not have them built in using the
:doc:`fix property/atom <fix_property_atom>` command. This command
also allows new custom-named attributes consisting of extra integer
or floating-point values or vectors to be added to atoms. See the
:doc:`fix property/atom <fix_property_atom>` page for examples of
cases where this is useful and details on how to initialize,
access, and output these custom values.
All of the above styles define point particles, except the *sphere*,
*bpm/sphere*, *ellipsoid*, *electron*, *peri*, *wavepacket*, *line*,
*tri*, and *body* styles, which define finite-size particles. See the
:doc:`Howto spherical <Howto_spherical>` page for an overview of using
finite-size particle models with LAMMPS.
----------
All of the point-particle styles assign mass to particles on a
per-type basis, using the :doc:`mass <mass>` command, The finite-size
particle styles assign mass to individual particles on a per-particle
basis.
Particle size and mass
""""""""""""""""""""""
For the *sphere* and *bpm/sphere* styles, the particles are spheres
and each stores a per-particle diameter and mass. If the diameter >
0.0, the particle is a finite-size sphere. If the diameter = 0.0, it
is a point particle. Note that by use of the *disc* keyword with the
:doc:`fix nve/sphere <fix_nve_sphere>`, :doc:`fix nvt/sphere
<fix_nvt_sphere>`, :doc:`fix nph/sphere <fix_nph_sphere>`,
:doc:`fix npt/sphere <fix_npt_sphere>` commands for the *sphere* style,
spheres can be effectively treated as 2d discs for a 2d simulation if
desired. See also the :doc:`set density/disc <set>` command. These
styles take an optional 0 or 1 argument. A value of 0 means the
radius of each sphere is constant for the duration of the simulation.
A value of 1 means the radii may vary dynamically during the simulation,
e.g. due to use of the :doc:`fix adapt <fix_adapt>` command.
All of the atom styles define point particles unless they (1) define
finite-size spherical particles via the *radius* attribute, or (2)
define finite-size aspherical particles (e.g. the *body*, *ellipsoid*,
*line*, and *tri* styles). Most of these styles can also be used with
mixtures of point and finite-size particles.
For the *ellipsoid* style, the particles are ellipsoids and each
stores a flag which indicates whether it is a finite-size ellipsoid or
a point particle. If it is an ellipsoid, it also stores a shape
vector with the 3 diameters of the ellipsoid and a quaternion 4-vector
with its orientation.
Note that the *radius* property may need to be provided as a
*diameter* (e.g. in :doc:`molecule files <molecule>` or :doc:`data
files <read_data>`). See the :doc:`Howto spherical <Howto_spherical>`
page for an overview of using finite-size spherical and aspherical
particle models with LAMMPS.
For the *dielectric* style, each particle can be either a physical
particle (e.g. an ion), or an interface particle representing a boundary
element between two regions of different dielectric constant. For
interface particles, in addition to the properties associated with
atom_style full, each particle also should be assigned a normal unit
vector (defined by normx, normy, normz), an area (area/patch), the
difference and mean of the dielectric constants of two sides of the
interface along the direction of the normal vector (ed and em), the
local dielectric constant at the boundary element (epsilon), and a mean
local curvature (curv). Physical particles must be assigned these
values, as well, but only their local dielectric constants will be used;
see documentation for associated :doc:`pair styles <pair_dielectric>`
and :doc:`fixes <fix_polarize>`. The distinction between the physical
and interface particles is only meaningful when :doc:`fix polarize
<fix_polarize>` commands are applied to the interface particles. This
style is part of the DIELECTRIC package.
Unless an atom style defines the per-atom *rmass* attribute, particle
masses are defined on a per-type basis, using the :doc:`mass <mass>`
command. This means each particle's mass is indexed by its atom
*type*.
For the *dipole* style, a point dipole is defined for each point
particle. Note that if you wish the particles to be finite-size
spheres as in a Stockmayer potential for a dipolar fluid, so that the
particles can rotate due to dipole-dipole interactions, then you need
to use atom_style hybrid sphere dipole, which will assign both a
diameter and dipole moment to each particle.
A few styles define the per-atom *rmass* attribute which can also be
added using the :doc:`fix property/atom <fix_property_atom>` command.
In this case each particle stores its own mass. Atom styles that have
a per-atom rmass may define it indirectly through setting particle
diameter and density on a per-particle basis. If both per-type mass
and per-atom *rmass* are defined (e.g. in a hybrid style), the
per-atom mass will take precedence in any operation which which works
with both flavors of mass.
For the *electron* style, the particles representing electrons are 3d
Gaussians with a specified position and bandwidth or uncertainty in
position, which is represented by the eradius = electron size.
----------
For the *peri* style, the particles are spherical and each stores a
per-particle mass and volume.
The *bpm/sphere* style is part of the BPM package.
The *oxdna* style is for coarse-grained nucleotides and stores the
3'-to-5' polarity of the nucleotide strand, which is set through
the bond topology in the data file. The first (second) atom in a
bond definition is understood to point towards the 3'-end (5'-end)
of the strand. Note that this style is part of the CG-DNA package.
The *dpd* style is for dissipative particle dynamics (DPD) particles.
Note that it is part of the DPD-REACT package, and is not for use with
the :doc:`pair_style dpd or dpd/stat <pair_dpd>` commands, which can
simply use atom_style atomic. Atom_style dpd extends DPD particle
properties with internal temperature (dpdTheta), internal conductive
energy (uCond), internal mechanical energy (uMech), and internal
chemical energy (uChem).
The *edpd* style is for energy-conserving dissipative particle
dynamics (eDPD) particles which store a temperature (edpd_temp), and
heat capacity(edpd_cv).
The *mdpd* style is for many-body dissipative particle dynamics (mDPD)
particles which store a density (rho) for considering
density-dependent many-body interactions.
The *tdpd* style is for transport dissipative particle dynamics (tDPD)
particles which store a set of chemical concentration. An integer
"cc_species" is required to specify the number of chemical species
involved in a tDPD system.
The *sph* style is for smoothed particle hydrodynamics (SPH)
particles which store a density (rho), energy (esph), and heat capacity
(cv).
The *smd* style is for a general formulation of Smooth Particle
Hydrodynamics. Both fluids and solids can be modeled. Particles
store the mass and volume of an integration point, a kernel diameter
used for calculating the field variables (e.g. stress and deformation)
and a contact radius for calculating repulsive forces which prevent
individual physical bodies from penetrating each other.
For the *spin* style, a magnetic spin is associated to each atom.
Those spins have a norm (their magnetic moment) and a direction.
The *wavepacket* style is similar to *electron*, but the electrons may
consist of several Gaussian wave packets, summed up with coefficients
cs= (cs_re,cs_im). Each of the wave packets is treated as a separate
particle in LAMMPS, wave packets belonging to the same electron must
have identical *etag* values.
For the *line* style, the particles are idealized line segments and
each stores a per-particle mass and length and orientation (i.e. the
end points of the line segment).
For the *tri* style, the particles are planar triangles and each
stores a per-particle mass and size and orientation (i.e. the corner
points of the triangle).
The *template* style allows molecular topology (bonds,angles,etc) to be
defined via a molecule template using the :doc:`molecule <molecule>`
command. The template stores one or more molecules with a single copy
of the topology info (bonds,angles,etc) of each. Individual atoms
only store a template index and template atom to identify which
molecule and which atom-within-the-molecule they represent. Using the
*template* style instead of the *bond*, *angle*, *molecular* styles
can save memory for systems comprised of a large number of small
molecules, all of a single type (or small number of types). See the
paper by Grime and Voth, in :ref:`(Grime) <Grime>`, for examples of how this
can be advantageous for large-scale coarse-grained systems.
The ``examples/template`` directory has a few demo inputs and examples
showing the use of the *template* atom style versus *molecular*.
.. note::
When using the *template* style with a :doc:`molecule template
<molecule>` that contains multiple molecules, you should ensure the
atom types, bond types, angle_types, etc in all the molecules are
consistent. E.g. if one molecule represents H2O and another CO2,
then you probably do not want each molecule file to define 2 atom
types and a single bond type, because they will conflict with each
other when a mixture system of H2O and CO2 molecules is defined,
e.g. by the :doc:`read_data <read_data>` command. Rather the H2O
molecule should define atom types 1 and 2, and bond type 1. And
the CO2 molecule should define atom types 3 and 4 (or atom types 3
and 2 if a single oxygen type is desired), and bond type 2.
Additional information about specific atom styles
"""""""""""""""""""""""""""""""""""""""""""""""""
For the *body* style, the particles are arbitrary bodies with internal
attributes defined by the "style" of the bodies, which is specified by
@ -309,6 +282,149 @@ Note that there may be additional arguments required along with the
*bstyle* specification, in the atom_style body command. These
arguments are described on the :doc:`Howto body <Howto_body>` doc page.
For the *dielectric* style, each particle can be either a physical
particle (e.g. an ion), or an interface particle representing a
boundary element between two regions of different dielectric
constant. For interface particles, in addition to the properties
associated with atom_style full, each particle also should be assigned
a unit dipole vector (mu) representing the direction of the induced
dipole moment at each interface particle, an area (area/patch), the
difference and mean of the dielectric constants of two sides of the
interface along the direction of the normal vector (ed and em), the
local dielectric constant at the boundary element (epsilon), and a
mean local curvature (curv). Physical particles must be assigned
these values, as well, but only their local dielectric constants will
be used; see documentation for associated :doc:`pair styles
<pair_dielectric>` and :doc:`fixes <fix_polarize>`. The distinction
between the physical and interface particles is only meaningful when
:doc:`fix polarize <fix_polarize>` commands are applied to the
interface particles. This style is part of the DIELECTRIC package.
For the *dipole* style, a point dipole vector mu is defined for each
point particle. Note that if you wish the particles to be finite-size
spheres as in a Stockmayer potential for a dipolar fluid, so that the
particles can rotate due to dipole-dipole interactions, then you need
to use the command `atom_style hybrid sphere dipole`, which will
assign both a diameter and dipole moment to each particle. This also
requires using an integrator with a "/sphere" suffix like :doc:`fix
nve/sphere <fix_nve_sphere>` or :doc:`fix nvt/sphere <fix_nvt_sphere>`
and the "update dipole" or "update dlm" parameters to the fix
commands.
The *dpd* style is for reactive dissipative particle dynamics (DPD)
particles. Note that it is part of the DPD-REACT package, and is not
required for use with the :doc:`pair_style dpd or dpd/stat <pair_dpd>`
commands, which only require the attributes from atom_style *atomic*.
Atom_style *dpd* extends DPD particle properties with internal
temperature (dpdTheta), internal conductive energy (uCond), internal
mechanical energy (uMech), and internal chemical energy (uChem).
The *edpd* style is for energy-conserving dissipative particle
dynamics (eDPD) particles which store a temperature (edpd_temp), and
heat capacity (edpd_cv).
For the *electron* style, the particles representing electrons are 3d
Gaussians with a specified position and bandwidth or uncertainty in
position, which is represented by the eradius = electron size.
For the *ellipsoid* style, particles can be ellipsoids which each
stores a shape vector with the 3 diameters of the ellipsoid and a
quaternion 4-vector with its orientation. Each particle stores a flag
in the ellipsoid vector which indicates whether it is an ellipsoid (1)
or a point particle (0).
For the *line* style, particles can be are idealized line segments
which store a per-particle mass and length and orientation (i.e. the
end points of the line segment). Each particle stores a flag in the
line vector which indicates whether it is a line segment (1) or a
point particle (0).
The *mdpd* style is for many-body dissipative particle dynamics (mDPD)
particles which store a density (rho) for considering density-dependent
many-body interactions.
The *oxdna* style is for coarse-grained nucleotides and stores the
3'-to-5' polarity of the nucleotide strand, which is set through
the bond topology in the data file. The first (second) atom in a
bond definition is understood to point towards the 3'-end (5'-end)
of the strand.
For the *peri* style, the particles are spherical and each stores a
per-particle mass and volume.
The *smd* style is for Smooth Particle Mach dynamics. Both fluids and
solids can be modeled. Particles store the mass and volume of an
integration point, a kernel diameter used for calculating the field
variables (e.g. stress and deformation) and a contact radius for
calculating repulsive forces which prevent individual physical bodies
from penetrating each other.
The *sph* style is for smoothed particle hydrodynamics (SPH) particles
which store a density (rho), energy (esph), and heat capacity (cv).
For the *spin* style, a magnetic spin is associated with each atom.
Those spins have a norm (their magnetic moment) and a direction.
The *tdpd* style is for transport dissipative particle dynamics (tDPD)
particles which store a set of chemical concentration. An integer
"cc_species" is required to specify the number of chemical species
involved in a tDPD system.
The *wavepacket* style is similar to the *electron* style, but the
electrons may consist of several Gaussian wave packets, summed up with
coefficients cs= (cs_re,cs_im). Each of the wave packets is treated
as a separate particle in LAMMPS, wave packets belonging to the same
electron must have identical *etag* values.
The *sphere* and *bpm/sphere* styles allow particles to be either point
particles or finite-size particles. If the *radius* attribute is >
0.0, the particle is a finite-size sphere. If the diameter = 0.0, it
is a point particle. Note that by using the *disc* keyword with the
:doc:`fix nve/sphere <fix_nve_sphere>`, :doc:`fix nvt/sphere
<fix_nvt_sphere>`, :doc:`fix nph/sphere <fix_nph_sphere>`, :doc:`fix
npt/sphere <fix_npt_sphere>` commands for the *sphere* style, spheres
can be effectively treated as 2d discs for a 2d simulation if desired.
See also the :doc:`set density/disc <set>` command. These styles also
take an optional 0 or 1 argument. A value of 0 means the radius of
each sphere is constant for the duration of the simulation (this is
the default). A value of 1 means the radii may vary dynamically
during the simulation, e.g. due to use of the :doc:`fix adapt
<fix_adapt>` command.
The *template* style allows molecular topology (bonds,angles,etc) to be
defined via a molecule template using the :doc:`molecule <molecule>`
command. The template stores one or more molecules with a single copy
of the topology info (bonds,angles,etc) of each. Individual atoms only
store a template index and template atom to identify which molecule and
which atom-within-the-molecule they represent. Using the *template*
style instead of the *bond*, *angle*, *molecular* styles can save memory
for systems comprised of a large number of small molecules, all of a
single type (or small number of types). See the paper by Grime and
Voth, in :ref:`(Grime) <Grime>`, for examples of how this can be
advantageous for large-scale coarse-grained systems. The
``examples/template`` directory has a few demo inputs and examples
showing the use of the *template* atom style versus *molecular*.
.. note::
When using the *template* style with a :doc:`molecule template
<molecule>` that contains multiple molecules, you should ensure the
atom types, bond types, angle_types, etc in all the molecules are
consistent. E.g. if one molecule represents H2O and another CO2,
then you probably do not want each molecule file to define 2 atom
types and a single bond type, because they will conflict with each
other when a mixture system of H2O and CO2 molecules is defined,
e.g. by the :doc:`read_data <read_data>` command. Rather the H2O
molecule should define atom types 1 and 2, and bond type 1. And
the CO2 molecule should define atom types 3 and 4 (or atom types 3
and 2 if a single oxygen type is desired), and bond type 2.
For the *tri* style, particles can be planar triangles which each
stores a per-particle mass and size and orientation (i.e. the corner
points of the triangle). Each particle stores a flag in the tri
vector which indicates whether it is a triangle (1) or a point
particle (0).
----------
Typically, simulations require only a single (non-hybrid) atom style.
@ -326,11 +442,12 @@ dipole". When a hybrid style is used, atoms store and communicate the
union of all quantities implied by the individual styles.
When using the *hybrid* style, you cannot combine the *template* style
with another molecular style that stores bond,angle,etc info on a
with another molecular style that stores bond, angle, etc info on a
per-atom basis.
LAMMPS can be extended with new atom styles as well as new body
styles; see the :doc:`Modify <Modify>` doc page.
LAMMPS can be extended with new atom styles as well as new body styles;
see the corresponding manual page on :doc:`modifying & extending LAMMPS
<Modify_atom>`.
----------
@ -346,54 +463,20 @@ This command cannot be used after the simulation box is defined by a
Many of the styles listed above are only enabled if LAMMPS was built
with a specific package, as listed below. See the :doc:`Build package
<Build_package>` page for more info.
The *amoeba* style is part of the AMOEBA package.
The *angle*, *bond*, *full*, *molecular*, and *template* styles are
part of the MOLECULE package.
The *line* and *tri* styles are part of the ASPHERE package.
The *body* style is part of the BODY package.
The *dipole* style is part of the DIPOLE package.
The *peri* style is part of the PERI package for Peridynamics.
The *oxdna* style is part of the CG-DNA package for coarse-grained
simulation of DNA and RNA.
The *electron* style is part of the EFF package for :doc:`electronic
force fields <pair_eff>`.
The *dpd* style is part of the DPD-REACT package for dissipative
particle dynamics (DPD).
The *edpd*, *mdpd*, and *tdpd* styles are part of the DPD-MESO package
for energy-conserving dissipative particle dynamics (eDPD), many-body
dissipative particle dynamics (mDPD), and transport dissipative particle
dynamics (tDPD), respectively.
The *sph* style is part of the SPH package for smoothed particle
hydrodynamics (SPH). See `this PDF guide
<PDF/SPH_LAMMPS_userguide.pdf>`_ to using SPH in LAMMPS.
The *spin* style is part of the SPIN package.
The *wavepacket* style is part of the AWPMD package for the
:doc:`antisymmetrized wave packet MD method <pair_awpmd>`.
<Build_package>` page for more info. The table above lists which package
is required for individual atom styles.
Related commands
""""""""""""""""
:doc:`read_data <read_data>`, :doc:`pair_style <pair_style>`
:doc:`read_data <read_data>`, :doc:`pair_style <pair_style>`,
:doc:`fix property/atom <fix_property_atom>`, :doc:`set <set>`
Default
"""""""
The default atom style is atomic. If atom_style sphere is used its
default argument is 0.
The default atom style is *atomic*. If atom_style *sphere* or
*bpm/sphere* is used, its default argument is 0.
----------

View File

@ -147,8 +147,8 @@ By default, pair forces are not calculated between bonded particles.
Pair forces can alternatively be overlaid on top of bond forces by setting
the *overlay/pair* keyword to *yes*. These settings require specific
:doc:`special_bonds <special_bonds>` settings described in the
restrictions. Further details can be found in the :doc:`how to
<Howto_bpm>` page on BPMs.
restrictions. Further details can be found in the :doc:`how to <Howto_bpm>`
page on BPMs.
.. versionadded:: 28Mar2023

View File

@ -113,8 +113,8 @@ By default, pair forces are not calculated between bonded particles.
Pair forces can alternatively be overlaid on top of bond forces by setting
the *overlay/pair* keyword to *yes*. These settings require specific
:doc:`special_bonds <special_bonds>` settings described in the
restrictions. Further details can be found in the :doc:`how to
<Howto_bpm>` page on BPMs.
restrictions. Further details can be found in the :doc:`how to <Howto_bpm>`
page on BPMs.
.. versionadded:: 28Mar2023

View File

@ -1,8 +1,11 @@
.. index:: bond_style hybrid
.. index:: bond_style hybrid/kk
bond_style hybrid command
=========================
Accelerator Variants: *hybrid/kk*
Syntax
""""""
@ -15,7 +18,7 @@ Syntax
Examples
""""""""
.. code-block: LAMMPS
.. code-block:: LAMMPS
bond_style hybrid harmonic fene
bond_coeff 1 harmonic 80.0 1.2
@ -60,6 +63,10 @@ bond types.
----------
.. include:: accel_styles.rst
----------
Restrictions
""""""""""""

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