Compare commits

...

701 Commits

Author SHA1 Message Date
9cbc77f41c Merge pull request #3511 from akohlmey/next_patch_release
Step version strings for the next patch release
2022-11-03 11:53:08 -04:00
10d3b1a875 Merge pull request #3510 from akohlmey/collected-small-changes
Collected small changes for the next patch release
2022-11-02 19:52:06 -04:00
292cf5ff09 Merge pull request #3487 from bathmatt/kokkos-mliap-so3
Created a Kokkos version of the ML-IAP routines.  Completed one model…
2022-11-02 17:13:16 -04:00
3da2a2f358 silence compiler warnings 2022-11-02 15:23:54 -04:00
390c68f967 use override keyword. remove virtual from function without override. 2022-11-02 15:23:41 -04:00
d39d272b28 Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes 2022-11-02 10:52:20 -04:00
017e94302b add missing initialization 2022-11-02 06:24:26 -04:00
1db5c4b89b silence compiler warnings 2022-11-02 06:17:07 -04:00
383178c927 silence compiler warnings 2022-11-02 06:16:04 -04:00
902a07a83a update for portability 2022-11-01 21:23:45 -04:00
edaefd4870 Merge branch 'develop' into collected-small-changes 2022-11-01 12:16:05 -04:00
a001707b22 Merge pull request #3503 from akohlmey/refactor-pair-only
Refactor handling of pair/only flag for GPU and KOKKOS
2022-11-01 12:14:59 -04:00
c6157b51ef Update docs 2022-11-01 07:26:18 -07:00
35bbab15da Small cleanup 2022-11-01 07:20:17 -07:00
f9a004c752 synchronize comments and update formatting 2022-11-01 06:29:58 -04:00
2d3e5e9930 set pending version info in docs to 3Nov2022 2022-11-01 06:00:05 -04:00
6d7a1e0635 step version strings for the next patch release 2022-11-01 05:59:32 -04:00
05aca2bced Merge pull request #3507 from hammondkd/thermo_mod_range
Support thermo_modify format column index ranges
2022-11-01 05:46:04 -04:00
e5a808fb8d apply correct platform selection for OpenCL context 2022-11-01 04:05:57 -04:00
80a141d9c8 silence compiler warnings 2022-11-01 03:38:08 -04:00
658220c69d replace variable length array 2022-11-01 03:37:02 -04:00
d3d83b45cb adjust floating point error thresholds 2022-10-31 22:46:45 -04:00
b12c3b3587 must compare C vs. Fortran strings with trailing whitespace removed 2022-10-31 22:46:19 -04:00
239e40360f Merge branch 'refactor-pair-only' of github.com:akohlmey/lammps into refactor-pair-only 2022-10-31 21:59:40 -04:00
3dcf5d70a8 must compare C vs. Fortran strings with trailing whitespace removed 2022-10-31 21:56:38 -04:00
37adaa7409 Merge branch 'develop' into refactor-pair-only 2022-10-31 21:48:10 -04:00
ccea984c4c expand pair_only_flag processing to also apply to other suffix handlers 2022-10-31 21:47:40 -04:00
8c5d100968 Merge pull request #3508 from hammondkd/fortran-expansion
Fortran interface expansion
2022-10-31 20:31:47 -04:00
ed46cfab89 Remove unused variable 2022-10-31 16:07:13 -07:00
3252424dea Merge branch 'develop' of https://github.com/lammps/lammps into kokkos-mliap-so3 2022-10-31 15:20:38 -07:00
131522f241 silence some more compiler warnings 2022-10-31 18:02:58 -04:00
135c6f24ad Merge branch 'develop' into fortran-expansion 2022-10-31 17:57:33 -04:00
58c2f25b45 Merge pull request #3504 from akohlmey/library-plugin-update
Update example for coupling LAMMPS as a dynamically loaded library
2022-10-31 17:52:34 -04:00
d582d303ff make compatible with g++ -ansi 2022-10-31 16:15:28 -04:00
6068e9df5a make fully compatible with gcc -ansi 2022-10-31 16:13:25 -04:00
5d115fec90 check that wrapper for lammps_open() was compiled with -DLAMMPS_LIB_MPI=1 2022-10-31 16:12:56 -04:00
3ae2f9966b work around warnings when compiling with C++ and gcc -pedantic 2022-10-31 16:12:02 -04:00
5ed7df248c a real MPI library is required for the test example 2022-10-31 16:11:19 -04:00
27a93f12d5 simplify and make test more specific 2022-10-31 15:00:37 -04:00
8e6c7fa416 add note about the plugin version of the C library interface 2022-10-31 14:42:12 -04:00
23c22b4f4f silence compiler warnings 2022-10-31 13:06:03 -04:00
c214a81526 increase portability and standard conformance 2022-10-31 13:05:53 -04:00
5195a7385c Merge pull request #3501 from yury-lysogorskiy/bugfix/empty-spatial-domain
BUGFIX:  fix pair  and empty spatial domains
2022-10-31 12:23:35 -04:00
4c0b415487 Implied shape arrays for constants are not allowed in Fortran 2008 and later 2022-10-31 12:05:16 -04:00
eb8139aacd Fix compile error with KOKKOS package 2022-10-31 09:47:28 -06:00
7a171ded10 document preference to not use "alternative tokens" 2022-10-30 22:07:43 -04:00
39a6a27066 Replaced "not" with "!" and "and" with "&&" (Windows builds?) 2022-10-30 18:25:16 -05:00
00ec3575c4 Fixed typos 2022-10-30 17:04:06 -05:00
f088fcd949 whitespace 2022-10-30 17:00:16 -05:00
0aa20872ca Eliminate gfortran -Wall warnings 2022-10-30 16:42:10 -05:00
87590ad339 Merge branch 'lammps:develop' into fortran-expansion 2022-10-30 15:30:59 -05:00
745f90cb71 merged conflicts in thermo.cpp 2022-10-30 14:34:43 -05:00
513d081717 reference the forum instead of the mailing list, which is disabled now 2022-10-29 06:25:55 -04:00
c157b2dea2 add tests whether simple examples for coupling to the LAMMPS library can run 2022-10-29 03:46:52 -04:00
d3ed99c7f8 Optional arguments for find_*_neighlist 2022-10-28 21:01:12 -05:00
73bf0334e4 Fixed optional parameters in find_pair_neighlist 2022-10-28 20:53:46 -05:00
83dcf24092 update README 2022-10-28 21:14:24 -04:00
00c80adf59 add CMake build system 2022-10-28 21:14:14 -04:00
82d77e7ae1 update example 2022-10-28 21:14:01 -04:00
78910eb0e1 add comment that this file needs to be updated when APIs are added 2022-10-28 21:13:50 -04:00
38335a4d47 update prototypes and struct entries for liblammpsplugin. port to windows. 2022-10-28 21:13:17 -04:00
55dafc110d Unit tests and some off-by-one errors 2022-10-28 19:09:31 -05:00
e0181e8c46 refactor handling of pair/only flag for GPU and KOKKOS 2022-10-28 16:38:11 -04:00
e68b0b442e Merge pull request #3502 from akohlmey/collected-small-changes
Collected small changes and fixes
2022-10-28 14:33:34 -04:00
e70ccf454d fix cut-n-paste bug 2022-10-28 10:11:50 -04:00
dc2b0f1def Merge branch 'develop' into collected-small-changes 2022-10-28 09:30:17 -04:00
7a10cf2b53 Missing colon in gather_atoms_subset doc 2022-10-28 07:57:33 -05:00
624e230f4d several bugs fixed; unit tests updated 2022-10-28 00:51:04 -05:00
dfef232ccb Fixed omission in gather_bonds example (docs) 2022-10-27 19:09:53 -05:00
0b83b8c533 Changed case of intrinsics to match style elsewhere 2022-10-27 18:26:22 -05:00
67c165afb2 Fixed typo in gather_bonds example 2022-10-27 18:23:20 -05:00
1de74508c3 Merge pull request #3475 from akohlmey/refactor-testing
Refactor computes and fixes to use array of structs instead of many index arrays
2022-10-27 17:07:52 -04:00
3bfdc0aae9 initialize pointer to null 2022-10-27 17:05:55 -04:00
e2f263b827 protect against division by zero 2022-10-27 17:04:10 -04:00
ca091b2e75 update ELECTRODE package instructions for traditional make. fix plural/singular. 2022-10-27 16:23:55 -04:00
3545b491ee Merge branch 'lammps:develop' into fortran-expansion 2022-10-27 14:15:47 -05:00
1e29c83be3 Merge branch 'fortran-expansion' of github.com:hammondkd/lammps into fortran-expansion 2022-10-27 14:12:38 -05:00
4216ca604c Refactored copying of strings from C to Fortran to avoid duplication 2022-10-27 14:12:26 -05:00
a66f411edc add support to detect the BuildID of Windows 10 22H2 2022-10-27 12:43:14 -04:00
560dd9c358 Fixed up for Stan's comments 2022-10-27 17:17:09 +02:00
12fb7ac4a5 Removed old comment 2022-10-27 16:55:50 +02:00
ad080187af Resolved last set of bugs in the mliap framework unit tests and examples match 2022-10-27 16:48:28 +02:00
5824534ac6 use symbolic constants Comm::BRICK / Comm::TILED for Comm::style 2022-10-27 07:03:25 -04:00
e6b67683aa update TIP4P howto 2022-10-27 07:02:16 -04:00
8bb5042a57 small upd to pair/extrapolation docs example 2022-10-27 11:56:12 +02:00
850a303f34 Merge pull request #3500 from akohlmey/cmake-openmp-modernize
Modernize OpenMP detection and checks in CMake
2022-10-27 00:09:13 -04:00
336ec056de use googletest aliased targets consistently 2022-10-26 22:37:24 -04:00
0d47dc250a drop special OpenMP flags from presets. Will be detected by FindOpenMP. 2022-10-26 22:37:04 -04:00
6afa1d14d2 downgrade KOKKOS OpenMP check to version 3.1
need to apply special exception for NVHPC/PGI compilers
2022-10-26 22:36:15 -04:00
ca6aba52bb modernize OpenMP detection and check for omp.h in CMake 2022-10-26 22:35:41 -04:00
a714a60ed3 we need to use Error::one() since not all MPI ranks might trigger 2022-10-26 16:14:48 -04:00
cdbf475c00 Merge pull request #3491 from mehdibghk/new-pair_style-ylz
New pair style ylz
2022-10-26 15:40:41 -04:00
e4ca652648 BUGFIX: raise error only if some atoms in current spatial domain but extracted per-atom array is still nullptr 2022-10-26 18:50:08 +02:00
71c8806764 reformat, spelling, whitespace fixes. address minor grammar and content issues 2022-10-26 05:18:06 -04:00
d487d8af37 Update in.flat_membrane
shape updated to 1 0.99 0.99
2022-10-26 05:01:17 -04:00
371c2d7cbb Pair ylz docs enhancements 2022-10-26 05:00:25 -04:00
b8781aca15 Implemented plugin_name and plugin_count and their docs 2022-10-26 00:02:54 -05:00
19f93009c1 Implemented and documented has_id, id_count, and id_name 2022-10-25 19:51:08 -05:00
e68efc039f Resolved merging conflicts in three files 2022-10-25 14:37:33 -05:00
8c5ebb3942 Edit to make auto-merging easier 2022-10-25 08:34:48 -05:00
dfaff2dc9a Pre-emptive edits to ease auto-merging 2022-10-25 08:30:21 -05:00
d96bfcdf06 Merge branch 'develop' into refactor-testing 2022-10-24 20:07:58 -04:00
4c176e5afc whitespace 2022-10-24 19:54:43 -04:00
6c31dabcd6 some coding style and clang-format updates 2022-10-24 19:53:55 -04:00
f3a6038f51 update developer contact info 2022-10-24 19:08:44 -04:00
511e1bb7b9 Merge branch 'develop' into kokkos-mliap-so3 2022-10-24 19:03:42 -04:00
fc59d7d3ca update LAMMPS developer contact info 2022-10-24 18:28:12 -04:00
34d70dd753 Merge branch 'develop' into new-pair_style-ylz 2022-10-24 18:27:24 -04:00
2b8d6fc4d9 Merge pull request #3485 from akohlmey/collected-small-changes
Collected small changes and fixes
2022-10-24 18:23:52 -04:00
d313179917 add compatibility to VTK version 9.0 and above 2022-10-24 16:25:10 -04:00
fb17f4f5e3 Remove unused var 2022-10-24 14:17:07 -06:00
248b7383c7 Merge remote-tracking branch 'github/develop' into collected-small-changes
# Conflicts:
#	src/DIPOLE/pair_lj_cut_dipole_long.h
#	src/OPENMP/fix_nvt_sllod_omp.h
#	src/PHONON/fix_phonon.h
#	src/SPIN/pair_spin_dipole_cut.h
#	src/SPIN/pair_spin_dipole_long.h
#	src/STUBS/mpi.h
#	src/UEF/fix_nh_uef.h
#	src/fix_nvt_sllod.h
#	tools/coding_standard/homepage.py
2022-10-24 15:50:50 -04:00
17fe4fe2b3 Merge branch 'develop' of https://github.com/lammps/lammps into kokkos-mliap-so3 2022-10-24 13:45:14 -06:00
0146a19ed3 silence unrecognized pragma warnings 2022-10-24 15:42:17 -04:00
b08608d6af more cleanup 2022-10-24 13:42:07 -06:00
248011ed0e small cleanup 2022-10-24 12:57:06 -06:00
27e1442ecd Fix Makefile build issue 2022-10-24 12:30:50 -06:00
fda0557ea5 cleanup 2022-10-24 12:09:25 -06:00
27b37ebad0 Merge pull request #3495 from akohlmey/update-email
Update contact email address in LAMMPS sources
2022-10-24 13:49:31 -04:00
3fe18c70ad Merge pull request #3497 from jrgissing/bond/react-create_atoms_error_check
Bond/react: create atoms error check
2022-10-24 13:17:28 -04:00
25f4c7f8fb Use MathSpecialKokkos 2022-10-24 11:04:58 -06:00
ffa0460ca0 Merge branch 'lammps:develop' into fortran-expansion 2022-10-24 11:53:19 -05:00
463ff1499c Added reminder to fortran/lammps.f90 in sync with tools/swig/lammps.i 2022-10-24 11:52:51 -05:00
2a81a7a3de Small cleanup 2022-10-24 10:43:38 -06:00
2132b1d904 update developer reference text 2022-10-24 11:08:26 -04:00
a7d55526e8 update developer info 2022-10-24 11:06:32 -04:00
3c4b0a0c04 expand homepage checker tool to check a few more folders and apply updates 2022-10-24 10:58:39 -04:00
43bd7cfaf4 Merge pull request #3498 from schererc/develop
Update pair_threebody_table.cpp
2022-10-24 10:24:45 -04:00
b939ea55f6 allow -kokkos on g 0 without GPU support, report GPUs only if ngpu > 0 2022-10-24 05:05:49 -04:00
005d72bf76 Merge branch 'develop' into kokkos-mliap-so3 2022-10-24 04:26:37 -04:00
2c4aa42c31 conditional compilation of ML-IAP package KOKKOS components with CMake 2022-10-24 04:22:48 -04:00
2e7ebb56a3 whitespace 2022-10-24 04:21:36 -04:00
785b46e57b Implemented lmp_gather_bonds, lmp_find_*_neighlist, lmp_neighlist_num_elements, and their unit tests and documentation 2022-10-24 01:00:48 -05:00
1e2ffe6cb7 must bootstrap centos 7 from dockerhub now 2022-10-22 22:58:16 -04:00
7aea2b8840 update Plumed download to version 2.8.1 2022-10-22 22:57:53 -04:00
2aa1dfa6d6 replace one more suffix 2022-10-22 22:28:12 -04:00
cd621e74f5 it is safer to do a >= comparison instead of == for floating point numbers 2022-10-22 15:03:37 -04:00
94627b3ef7 remove redundant curly braces 2022-10-22 14:54:53 -04:00
b96028eaf2 Update pair_threebody_table.cpp
Correcting for hard coded ntheta = 79 in the extreme case that theta is exactly equal to 180.0 degrees.
2022-10-22 16:38:37 +02:00
01a0cb35a3 modernize calls to access the list of fixes in the Modify class 2022-10-22 08:20:16 -04:00
43e3dc7a9e use inline insertion sort for short array 2022-10-22 08:10:00 -04:00
d038b049c9 avoid superfluous calls to utils::strdup and improve error messages 2022-10-22 08:09:23 -04:00
5725e3cb1d silence compiler warning about not copying the final null byte 2022-10-22 08:08:16 -04:00
4f507b36da Update fix_bond_react.rst 2022-10-22 00:25:00 -04:00
007e6ffd95 bond/react: create atoms error check
check that post-reaction template has 'Coords' section if it has 'CreateIDs' section
2022-10-22 00:16:22 -04:00
165b6b4ba3 add workaround for missing links to fortran functions in sphinx output 2022-10-21 18:55:16 -04:00
b5cd834c8f small sphinx tweaks. require sphinx 5.2 or later. 2022-10-21 18:37:16 -04:00
2275281c2e Fixed double-colon "feature" in sphinx documetnation (theme.css) 2022-10-21 15:52:39 -05:00
6d8539e74f tweak for portability 2022-10-21 15:42:11 -04:00
1d69e93330 make Linux behavior default for loading Python shared lib
This adds portability to platforms like FreeBSD
2022-10-21 15:32:55 -04:00
caeaeb5d33 Python support in ML-IAP requires NumPy. Check for it if CMake supports it. 2022-10-21 15:31:41 -04:00
a8670f1ce9 Fixed potential inconsistency in lmp_error 2022-10-21 13:44:39 -05:00
fe09f1209e Fixed spacing 2022-10-21 12:41:07 -05:00
3c936d5a2b Fixed extract_atom doc 2022-10-21 12:16:57 -05:00
3cef658789 Added ":to:" fields to Fortran.rst; edits to :r's for consistency 2022-10-21 12:10:00 -05:00
6bb3ae83fd Fixed typo in Manual.rst 2022-10-21 10:59:48 -05:00
337d3f0760 Made module references more uniform 2022-10-21 10:58:05 -05:00
5c4bb611d1 find cythonize executable on recent FreeBSD versions 2022-10-21 11:25:13 -04:00
ed7d608919 Fixed hyperlinks to LIBLAMMPS in Fortran.rst 2022-10-21 09:53:07 -05:00
4d2661433f try to make more portable (in case this ever gets ported to windows) 2022-10-21 09:28:46 -04:00
ef83f78e1e add md5sums for plumed 2.7.5 and 2.8.1, update default version to 2.8.1 2022-10-21 09:28:15 -04:00
75d8e0bdfe Fixed unit test failures. Tests passing now 2022-10-21 09:45:18 +02:00
ce50300534 Created a Kokkos version of the ML-IAP routines. Completed one model and
one descriptor along with the pair style and data member.  To test the stack
one can run

lmp -k on g 1 -sf kk -pk kokkos neigh full newton on -in in.mliap.so3.Ni_Mo -echo both

and compare it to the non-kokkos results.
Results are identical for cuda/openmp/serial and non-kokkos
2022-10-21 09:45:18 +02:00
12baf65d7a correct implementation of quartic potential in pair style list 2022-10-21 02:25:40 -04:00
b6287a0fe6 Tweaks to Fortran docs 2022-10-21 00:34:24 -05:00
7ce04c8fe1 Fixed spacing on type lammps fields 2022-10-21 00:09:17 -05:00
112d616e57 unit tests for has_style, style_count, and style_name; added them to docs 2022-10-20 23:22:43 -05:00
b26716c44c a few more updates 2022-10-20 23:11:45 -04:00
df92e5f228 add one more folder to check 2022-10-20 23:11:18 -04:00
60318a5a26 Refactor Fortran properties test into configuration; implemented several configuration functions and wrote unit tests for them; implemented missing unit tests 2022-10-20 20:24:59 -05:00
92f5c5efa1 check and convert a few more folders and files 2022-10-20 21:04:07 -04:00
146fb30d9d fix up a non-standard location 2022-10-20 20:51:19 -04:00
cccf3f6f78 change email for contacting LAMMPS developers, add to homepage checker 2022-10-20 20:36:03 -04:00
0af2f153de check for and replace *really* old LAMMPS home page URL. apply fixes. 2022-10-20 20:07:12 -04:00
9685689ca6 check for and replace *really* old LAMMPS home page URL. apply fixes. 2022-10-20 18:05:55 -04:00
260db06f3e cosmetic 2022-10-20 17:36:54 -04:00
34121e5545 Implemented decode_image_flags and its unit test; updated documentation 2022-10-20 00:27:57 -05:00
b51c50294e implemented create_atoms and encode_image_flags and unit tests for them; added IMGMASK and friends to extract_setting and unit tests for them; wrote documentation for them 2022-10-19 18:40:12 -05:00
676dfe0e64 add -nonbuf flag to help output 2022-10-19 14:44:57 -04:00
c898eae40a simplify 2022-10-19 14:31:42 -04:00
ad54268544 silence compiler warning 2022-10-19 14:31:21 -04:00
0382b33c73 preserve suffixp during clear command 2022-10-19 12:08:05 -04:00
761a75329d silence compiler warning 2022-10-19 11:20:34 -04:00
9a732ba513 Fortran implementation of create_atoms + unittests 2022-10-19 09:56:54 -05:00
9d081a5916 more adjustments for bogus timer results on Intel OpenCL 2022-10-19 07:39:56 -04:00
2590f9eea4 Update pair_ylz.rst
Corrected some typo in formulations
2022-10-19 18:52:31 +08:00
fc5379206f add versionadded tag 2022-10-19 06:37:45 -04:00
cbec6cdc6c more detailed log message with replicate 2022-10-19 02:44:41 -04:00
f867adc541 GPU Package fix where timing disable could result in event/marker destruction before completion on accelerator during initialization. 2022-10-19 02:16:29 -04:00
51c6eddd0d Fix to make the property list empty for command queues when timing disabled. 2022-10-19 02:15:39 -04:00
d50bb3bffb minor tweak 2022-10-18 15:45:56 -04:00
d3dd394cc5 Merge branch 'develop' into new-pair_style-ylz 2022-10-18 15:43:47 -04:00
450841ca5a spelling and more whitespace 2022-10-18 15:06:53 -04:00
38c24b68ad update examples to match others 2022-10-18 14:48:37 -04:00
b4a65a1932 Merge branch 'develop' into new-pair_style-ylz 2022-10-18 14:42:02 -04:00
53c56fdc82 integrate into manual and source distribution 2022-10-18 14:41:46 -04:00
87f316ee72 reformat, remove accelerator info, correct restrictions 2022-10-18 14:35:22 -04:00
45713e97d4 require that all atoms are ellipsoids. will segfault or worse without 2022-10-18 14:34:46 -04:00
d7b436f833 enable and apply clang-format, 2022-10-18 14:34:23 -04:00
3520584109 add constant for 2^(1/6) 2022-10-18 14:33:10 -04:00
39020379da fix permissions, error docs, URLs, whitespace 2022-10-18 11:53:38 -04:00
78305edf71 delete atomfile style variables with clear command 2022-10-18 07:34:06 -04:00
643865221c Merge branch 'lammps:develop' into thermo_mod_range 2022-10-17 23:05:28 -05:00
c10b5b02c0 Merge branch 'develop' into collected-small-changes 2022-10-17 22:40:01 -04:00
b44e353d4a Merge pull request #3489 from hammondkd/doc-fixes
Doc fixes (round 4)
2022-10-17 22:36:55 -04:00
7ac70cedd9 Merge pull request #3488 from weinbe2/feature/tersoff-tune
Improving stability of the performance of Tersoff/Kokkos across compiler and Kokkos versions
2022-10-17 21:26:55 -04:00
a746e4f2c0 update dipole pair style examples and docs 2022-10-17 19:05:17 -04:00
61c649fccb more strictly follow the Fortran 2003 standard requirements 2022-10-17 18:49:04 -04:00
74d19b2b6c update/clarify and make more consistent 2022-10-17 18:45:19 -04:00
d8ab00ea78 add CMake check that will refuse compilation of unit tests or skip tests
This is mainly because the default compilers on RHEL/CentOS 7.x are
not sufficient to compile googletest. Also some Fortran module test
requires a working F90 module and others are more recent Fortran compiler.
2022-10-17 18:11:30 -04:00
598e8cc488 Port changes to other Tersoff styles 2022-10-17 15:31:34 -06:00
ad048a20d7 Remove unused variables 2022-10-17 14:42:09 -06:00
637810515a make compute rigid/local consistent with other "possible attributes" docs 2022-10-17 14:51:10 -05:00
c03f5a42e6 Merge pull request #3490 from yury-lysogorskiy/upd/refactor-includes
ML-PACE: upd/refactor includes
2022-10-17 14:12:46 -04:00
57dad8dc39 Host path needs RangePolicy 2022-10-17 11:25:01 -06:00
fc8d9207c6 update Makefile.lammps, too. 2022-10-17 12:22:28 -04:00
a981843686 forgot updated Makefile 2022-10-17 11:51:50 -04:00
3a8abecd68 fix typo 2022-10-16 16:56:29 -04:00
bf8a9d07a7 simplify 2022-10-16 16:37:39 -04:00
299281b0e2 whitespace 2022-10-16 11:53:55 -04:00
46a72f685c address portability issues to the flang LLVM Fortran 2018 compiler 2022-10-16 11:48:18 -04:00
ec121ab812 convert fix ave/correlate and fix ave/correlate/long 2022-10-16 11:47:11 -04:00
26468eccca silence compiler warnings 2022-10-16 11:46:38 -04:00
677997699d more consistency 2022-10-15 15:35:29 -04:00
9f20347375 update PACE library for conventional build 2022-10-15 15:10:01 -04:00
ed59ee6cad Merge branch 'ml-pace-include-refactor' into upd/refactor-includes 2022-10-15 15:07:55 -04:00
c8aea98b20 Merge branch 'develop' into ml-pace-include-refactor 2022-10-15 15:05:16 -04:00
4bf1339950 update pair_pace.cpp / pair_pace_extrapolation.cpp 2022-10-15 18:23:59 +02:00
2f60db4aba Merge remote-tracking branch 'upstream/develop' into upd/refactor-includes
# Conflicts:
#	cmake/Modules/Packages/ML-PACE.cmake
2022-10-15 18:07:07 +02:00
33681b5d84 WIP: update ML-PACE.cmake 2022-10-15 18:06:07 +02:00
9e43e9792c Fixed a couple more mathbf->boldsymbol errors in fix brownian doc 2022-10-15 10:47:33 -05:00
8ebad9ecd8 convert fix ave/atom and fix ave/chunk 2022-10-15 09:34:47 -04:00
09a14d558d explicitly select Times New Roman for \textrm, Helvetica for \textsf and Times New Roman for math as well 2022-10-14 21:27:55 -04:00
2b18f6a3d3 replace tab 2022-10-14 21:27:00 -04:00
b586b72ddd removed an extra space 2022-10-14 18:27:21 -05:00
77958b5ef1 Missed one I->i edit 2022-10-14 18:04:49 -05:00
e346151271 Updated docs for fixes bond/break, bond/create, and bond/react for math/etc. 2022-10-14 17:40:22 -05:00
b3557b81c1 convert fix ave/histo and fix ave/histo/weight 2022-10-14 17:49:56 -04:00
3d0a7d774a Updated docs for fix bocs to match source code and include math 2022-10-14 16:04:07 -05:00
7550fdc862 Sphinx conf edit so PDF ToC entries w/ subsections >= 100 work 2022-10-14 15:28:55 -05:00
c206cbf6d1 KOKKOS_ARCH output is always empty, so no need to print it 2022-10-14 16:16:08 -04:00
adb93d92ec Merge branch 'lammps:develop' into feature/tersoff-tune 2022-10-14 10:47:08 -04:00
e37672e7de Abstracted Tersoff potential calculation into a stand-alone function; used it to create MDRangePolicy and TeamPolicy versions of Tersoff with more tunable -> higher performance 2022-10-14 10:45:59 -04:00
6087217bd9 update wording and fix typo 2022-10-14 10:21:48 -04:00
aa0bd180d1 apply clang-format 2022-10-14 09:24:49 -04:00
9a52019b69 update remarks on neighbor list settings 2022-10-14 09:08:16 -04:00
7d9076de4d Merge remote-tracking branch 'github/develop' into refactor-testing 2022-10-14 07:29:38 -04:00
c312bf97ae convert fix store/state 2022-10-14 07:29:04 -04:00
68482ffe14 convert compute slice 2022-10-14 07:29:04 -04:00
0fc8475383 refactor compute reduce and compute reduce/region 2022-10-14 07:29:04 -04:00
0124cc4194 fix bug in thermo_modify format column check 2022-10-14 07:29:04 -04:00
cf4e133a2c refactor compute reduce/chunk 2022-10-14 07:29:04 -04:00
2bc0825e4a refactor compute global/atom to use array of struct 2022-10-14 07:29:04 -04:00
874e1522e7 add test for compute reduce/chunk 2022-10-14 07:29:03 -04:00
72e859acf8 New pair-style ylz added to ASPHERE package 2022-10-14 18:52:34 +08:00
c47b16c358 cosmetic 2022-10-14 05:08:24 -04:00
7c5128881e fix bug in thermo_modify format column check 2022-10-14 04:49:08 -04:00
fbc0e02cb2 cosmetic 2022-10-14 04:48:54 -04:00
453bd97ecd improve error messages 2022-10-14 04:48:39 -04:00
24379d009c flag lammps.has_package() python method as new 2022-10-14 04:48:08 -04:00
2d236b07ce need to skip tests if MOLECULE package is missing 2022-10-14 04:47:41 -04:00
ec1c6eba11 we cannot test the Pizza.py dump class without the MOLECULE package 2022-10-14 04:46:49 -04:00
0a8dfb73da make lammps_config_has_package() accessible in Python module 2022-10-14 04:46:32 -04:00
8b6c93cb11 silence compiler warning 2022-10-14 04:46:05 -04:00
e83aa698fe use for scoped loop variables consistently 2022-10-14 04:45:24 -04:00
c2e47378b5 fix typo 2022-10-14 04:44:49 -04:00
082defa862 change neighbor list defaults to delay=0, every=1, check=yes 2022-10-14 04:38:30 -04:00
e3c78b70ed Fixed remaining discrepancies between lists of keywords and doc of them 2022-10-13 23:00:13 -05:00
edcdedc574 made keyword lists and descriptions consistent for all fix styles 2022-10-13 19:20:08 -05:00
13b7c41971 support Gatom-step/s as well 2022-10-13 17:33:27 -04:00
3f215087d2 also print atom-step/s performance metric 2022-10-13 16:32:41 -04:00
70fd789b4c missing format keyword in fix ave/time doc 2022-10-13 14:51:30 -05:00
3703af9887 Missing keyword in fix_ave_histo doc 2022-10-13 14:48:26 -05:00
3607fd766b Missing key word in fix/ave/chunk docs, edits to bond_coeff docs 2022-10-13 14:42:10 -05:00
40d409a8d4 put a few more details on restrictions when parsing types early on. 2022-10-13 15:15:37 -04:00
41c0b39365 Merge branch 'lammps:develop' into thermo_mod_range 2022-10-13 09:01:06 -05:00
8027e02cbb Merge branch 'lammps:develop' into doc-fixes 2022-10-13 09:00:07 -05:00
6b35251ca2 fix typo and remove correspondign false positive 2022-10-13 05:47:08 -04:00
0b17654bee New pair-style ylz added to ASPHERE package 2022-10-13 13:45:09 +08:00
efdd29817b update install targets for main folder headers for "make install" 2022-10-12 21:39:12 -04:00
2eb125d893 change warning message and get the comm cutoff properly 2022-10-12 16:18:56 -04:00
3bf0595078 Increase communication cutoff for TIP4P pair styles, if needed
This avoids error of H atom not found when the O atom is a ghost.
2022-10-12 16:16:09 -04:00
05cf15b766 include clang-format 2022-10-12 12:31:43 -04:00
c741eca953 detect clang-format version on Ubuntu 22.04LTS 2022-10-12 12:31:33 -04:00
78c2626e4b improve warning messages 2022-10-12 10:43:06 -04:00
7115b890b8 more false positives 2022-10-12 10:27:23 -04:00
77740c4f07 Merge pull request #3482 from stanmoore1/slabcorr
Fix issue with KSpace slab correction energy with non-neutral systems
2022-10-11 21:12:38 -04:00
d499c2f61b Merge pull request #3474 from stanmoore1/kk_update_3.7
Update Kokkos library in LAMMPS to v3.7.0
2022-10-11 16:30:19 -04:00
1e6321a1e9 Update INTEL package 2022-10-11 11:17:03 -06:00
955b615e1e Fix undef var 2022-10-11 10:36:22 -06:00
01c022f83d Fix variable definition 2022-10-11 10:10:27 -06:00
877f4e7e29 Fix issue with KSpace slab correction energy with non-neutral systems 2022-10-11 09:43:18 -06:00
18f91bc565 Merge pull request #3480 from aliehlen/dielectic-doc-updates
Documentation updates for DIELECTRIC package
2022-10-10 19:38:16 -04:00
3e1acfc500 Update Kokkos Arch in docs 2022-10-10 16:29:55 -06:00
11111d1b88 Merge branch 'develop' of github.com:lammps/lammps into kk_update_3.7 2022-10-10 15:41:43 -06:00
26f05b336f Merge pull request #3477 from stanmoore1/kk_bugfixes
Fix several minor issues
2022-10-10 17:27:47 -04:00
1bc16d8a78 fix spelling and table format issues. re-wrap paragraphs in doc sources. 2022-10-10 17:26:13 -04:00
ali
a38054cf32 change area_per_patch to area/patch 2022-10-10 16:03:09 -05:00
c113253e2d Merge branch 'develop' of https://github.com/lammps/lammps into kk_update_3.7 2022-10-10 13:44:02 -07:00
5c82c8a8a3 improve error messages 2022-10-10 16:37:20 -04:00
185639f077 must use utils::inumeric() for parsing integers 2022-10-10 16:37:04 -04:00
aea3421311 whitespace fixes 2022-10-10 15:26:40 -04:00
e8b3558086 Merge branch 'develop' into ml-pace-include-refactor 2022-10-10 15:19:14 -04:00
281a05277b use updated pace library and update include statements accordingly 2022-10-10 15:04:35 -04:00
1fb07387b9 Merge pull request #3479 from yury-lysogorskiy/feature/pace-al
BUGFIX: address issue with  compilation KOKKOS + pace/extrapolation
2022-10-10 14:57:13 -04:00
0f33ff1fc1 Avoid using a host pointer in device code 2022-10-10 12:08:31 -06:00
ali
ba45678528 DIELECTRIC package doc and example updates 2022-10-10 11:04:04 -05:00
ali
d834d5cc15 make sure gmres and icc have same kspace flag behavior 2022-10-10 11:04:04 -05:00
ali
b56df94b34 first attempt at adding a default kspaceflag to gmres 2022-10-10 11:04:04 -05:00
ali
be208f037d quick doc updates 2022-10-10 11:04:04 -05:00
ali
b3fa2b7c4f update of DIELECTRIC package documentation and examples 2022-10-10 11:03:52 -05:00
341bb57555 Update Install.py 2022-10-10 08:45:33 -07:00
c7560a63e3 BUGFIX: address issue with compilation KOKKOS + pace/extrapolation (in wigner_3j.hpp) by moving #include "wigner_3j.hpp" from ace_clebsch_gordan.h to .cpp 2022-10-10 14:14:09 +02:00
1e1311cf40 Merge pull request #3478 from wmbrownIntel/gpu_init_fix
GPU Package Initialization Fixes
2022-10-09 17:57:12 -04:00
0998888947 Merge pull request #3456 from akohlmey/fix-cmake-python-install
Update "make install" for CMake to use pip for building/installing the LAMMPS python module
2022-10-08 17:21:24 -04:00
50263021b6 must check for DESTDIR environment variable during "make install" NOT during configuring 2022-10-08 16:17:57 -04:00
878c56da69 revert to using --prefix, but only use --root when DESTDIR is set 2022-10-08 15:39:03 -04:00
e661297838 move pointer initialization to initializer list. modernize error messages. 2022-10-08 11:33:38 -04:00
90b590dd3b synchronize intel compiler flag tweaks with cmake, turn off one more warning 2022-10-08 10:54:33 -04:00
5582dbc3d3 handle the case of using -pk pair/only on 2022-10-08 10:33:08 -04:00
7c9666798e whitespace 2022-10-08 09:34:20 -04:00
7551c0a3ca GPU Package: Documenting some additional preprocessor flags, updating oneapi Makefile. 2022-10-07 22:44:21 -07:00
4ce966e500 Prevent segfault from wild pointer 2022-10-07 15:50:31 -07:00
f70ac64c5d Fix obscure bug in Kokkos neigh list build 2022-10-07 16:25:38 -06:00
60c12540db Merge branch 'develop' into fix-cmake-python-install 2022-10-07 17:04:29 -04:00
5a98a38e24 GPU Package: Switching to parallel GPU initialization / JIT compilation. 2022-10-07 13:25:14 -07:00
f715f174bb GPU Package: Print OCL platform name to screen when multiple platforms 2022-10-06 21:40:42 -07:00
079351e081 Don't unnecessarily reissue package command in post_create() via suffix 2022-10-06 21:30:54 -07:00
a6a39d47e1 Fixing potential issues with automatic splitting of accelerators for NUMA. 2022-10-06 20:48:02 -07:00
2fed3fa003 Minor documentation edits 2022-10-06 22:12:33 -05:00
e9f39f85d2 Fixing issue where shared main memory property only set for NVIDIA devices. 2022-10-06 20:05:33 -07:00
d5757a976e Made bug fix for format consistent with colname 2022-10-06 21:54:59 -05:00
3b292cd50a Fixed bug in thermo_modify and made 2*4 and such work for format fields 2022-10-06 18:08:06 -05:00
eca8b77c84 Merge branch 'lammps:develop' into doc-fixes 2022-10-05 22:47:48 -05:00
967c84cb69 Merge pull request #3470 from hammondkd/fortran-further-tinkering
Further extending the Fortran interface
2022-10-05 21:20:06 -04:00
7157643fdd Merge pull request #3315 from yury-lysogorskiy/feature/pace-al
ML_PACE with extrapolation grade / active learning
2022-10-05 20:16:13 -04:00
3a4d4b0756 Merge branch 'fortran-further-tinkering' of github.com:hammondkd/lammps into fortran-further-tinkering 2022-10-05 14:30:30 -05:00
e3b5514b62 I just learned that FORALL is obsolescent in Fortran 2018; removed 2022-10-05 14:30:02 -05:00
9abc0b6c11 Merge branch 'lammps:develop' into doc-fixes 2022-10-05 14:13:08 -05:00
723255bf7e Merge remote-tracking branch 'github/develop' into fortran-further-tinkering 2022-10-05 10:52:36 -04:00
80da4c307c silence compiler warnings, avoid integer or buffer overflows 2022-10-05 10:52:17 -04:00
f279b5d042 Math fixes and other edits for fix_brownian.rst 2022-10-04 22:36:30 -05:00
93841b939e add test for compute chunk/spread/atom and compute global/atom 2022-10-04 21:24:59 -04:00
3c11fa39b6 Doc edits for mdi.rst 2022-10-04 18:49:35 -05:00
e51be5d6e0 Need desul library 2022-10-04 15:00:14 -06:00
6ebd520b4f Merge branch 'develop' of github.com:lammps/lammps into kk_update_3.7 2022-10-04 14:59:48 -06:00
3b3deb3a6a Merge pull request #3471 from rohskopf/pair-zero-full
Optional full neighbor list with pair zero
2022-10-04 16:49:45 -04:00
923caf6281 Update CMake 2022-10-04 14:14:45 -06:00
f9f9e44f2d Update Kokkos library in LAMMPS to v3.7.0 2022-10-04 14:04:40 -06:00
82d6c1de99 recover MDI library build with windows cross-compilation 2022-10-04 15:48:01 -04:00
7fa020e574 Merge branch 'fortran-further-tinkering' of github.com:hammondkd/lammps into fortran-further-tinkering 2022-10-04 14:35:35 -05:00
8fd19fe7fe Fixed a typo in library.cpp (documentation) and adjusted spacing to be consistent 2022-10-04 14:35:24 -05:00
8be7634b5f Merge branch 'collected-small-changes' into pair-zero-full 2022-10-04 14:36:02 -04:00
7f90e43d0a must skip test for pair style list, if MISC package is not available 2022-10-04 14:34:52 -04:00
017ea1ace9 Merge branch 'develop' into collected-small-changes 2022-10-04 14:34:24 -04:00
dd072f7e08 Merge pull request #3473 from TerrySuun/develop
Added quartic function for explicit pair interaction in pair_style list.
2022-10-04 13:27:36 -04:00
74705c8111 port error check test from fortran wrapper to c-library interface test 2022-10-04 09:27:52 -04:00
b0e3c2a440 retrieving the error message clears the error status 2022-10-04 09:16:15 -04:00
90e820e8ec format mpirun/mpiexec consistently 2022-10-04 08:55:53 -04:00
3ff203b705 add unit test for pair style list comparing it to pair lj/cut + harmonic/morse bonds 2022-10-04 07:03:13 -04:00
f2b3d8e8c3 use morse interaction energy from bond style morse not pair style morse 2022-10-04 07:02:44 -04:00
4a06559da5 update docs 2022-10-04 05:18:42 -04:00
74d5893dd9 enable and apply clang-format 2022-10-04 05:06:31 -04:00
6a97ca2468 better error checking and reporting 2022-10-04 05:02:46 -04:00
a3c676015b store squared cutoff as documented 2022-10-04 04:13:42 -04:00
bc6e42a610 add more extensive whitespace checking for fortran and unittests 2022-10-04 04:11:39 -04:00
5508c7f25e Bug fix for pair_style list quartic. 2022-10-04 13:27:32 +08:00
bca8e6b85a store squared cutoff as documented 2022-10-04 00:14:06 -04:00
d7d2802061 remove intentional false positive 2022-10-03 23:51:21 -04:00
4e9b97d5cb make capitalization and whitespace fortran coding style more consistent 2022-10-03 23:49:17 -04:00
647c5e3572 apply clang-format 2022-10-03 23:19:59 -04:00
3374435281 add note that integer sizes can be queried without a LAMMPS handle 2022-10-03 23:19:05 -04:00
af3d618f47 complete implementation of looking up last error message and include test 2022-10-03 23:18:44 -04:00
ed8e317ef6 Added quartic function for explicit pair interaction in pair_style list. 2022-10-04 10:40:32 +08:00
fcf415d0b1 Skipped scatter/gather tests when sizeof(tagint) is 8 2022-10-03 18:01:33 -05:00
a9ba96252a Added warning message if we ever assign to a too-short string; fixed array-reference typo that -f2003 helped catch 2022-10-03 17:44:09 -05:00
ef3b01f340 add neighbor list access tests. now we can always test for a full list. 2022-10-03 18:14:08 -04:00
02158516f2 use large string buffers to avoid truncation 2022-10-03 17:58:14 -04:00
bb6a118006 refactor for simpler flow of control. apply clang-format. 2022-10-03 16:31:23 -04:00
aff58465f2 Reimplemented absolute_path using platform::path_join for portability 2022-10-03 15:15:15 -05:00
2d3e4fdd9a make MDI package cmake config compatible with multi-config builders 2022-10-03 16:07:00 -04:00
840e3398b8 silence warning with CMake 3.24 and later 2022-10-03 16:06:59 -04:00
21aded5e4e silence compiler warning 2022-10-03 15:14:54 -04:00
82bf23401f Fix whitespace 2022-10-03 12:45:18 -06:00
981f75d92f Example in docs 2022-10-03 12:40:05 -06:00
c82fdd4898 Add docs 2022-10-03 11:57:47 -06:00
ba27ecf610 Add optional full flag to pair_zero 2022-10-03 11:53:41 -06:00
ccdcae0a99 fix_pair.h/cpp: remove modify_param(int, char **) 2022-10-03 19:47:02 +02:00
94ff9cea4c Revert "update documentation: explain fix_modify pair every N"
This reverts commit 2f231bcd50.
2022-10-03 19:43:37 +02:00
6a2023e7df spelling 2022-10-03 09:55:20 -04:00
d711a51657 Merge remote-tracking branch 'github/develop' into fortran-further-tinkering 2022-10-03 09:37:52 -04:00
2970a2140f Merge pull request #3468 from akohlmey/collected-small-changes
Collected small changes
2022-10-03 09:37:29 -04:00
658df50e97 make getenv style variable test fully portable 2022-10-03 09:37:05 -04:00
ea512ce2bb update comments about which files to keep synchronized for consistency 2022-10-03 09:22:28 -04:00
f474b67c7c update swig interface file for recent changes to the library interface 2022-10-03 09:22:02 -04:00
dc5324c1db Updated unit tests to use keepstuff; whitespace fixes 2022-10-02 21:26:42 -05:00
db9b59c269 Implemented scatter_atoms and scatter_atoms_subset + unit tests + documentation + typos/edits 2022-10-02 20:32:42 -05:00
c5c21bb36c Implemented, tested, and documented gather_atoms and variants; added RST docs for lammps_scatter_atoms and lammps_gather_atoms and variants (library.cpp); checked for missing atom map in lammps_gather_atoms_subset; fixed bug in keepstuff.f90; fixed docs for extract_variable 2022-10-02 15:28:10 -05:00
d7ff6337ed refactor fix ave/time to use array of struct 2022-10-02 14:48:53 -04:00
39ff5c5722 remove unused enums 2022-10-02 14:48:17 -04:00
c777434b72 use kcal consistently 2022-10-01 21:05:16 -04:00
39ea6ef30e make \AA macro available in :math: for HTML and PDF
use the (newly redefined) \AA macro for Angstrom symbol throughout
instead of either \mathring{A} or AA
2022-10-01 20:58:48 -04:00
69ca7105ef provide some more details about typesetting special characters and math 2022-10-01 20:41:48 -04:00
aac61cbabb test more /chunk computes 2022-10-01 18:01:17 -04:00
1eedec11df Merge branch 'test-compute-chunk' into collected-small-changes 2022-10-01 15:05:59 -04:00
3980344b67 add tests for compute property/chunk angmom/chunk ,com/chunk, dipole/chunk 2022-10-01 15:05:33 -04:00
eeff6aa06c make sure to always look up the region to avoid null pointer dereference 2022-10-01 13:35:02 -04:00
b9cc150f44 add unit test for chunks 2022-10-01 10:39:23 -04:00
2f5e0646d9 Fixed typo in test_fortran_properties 2022-09-30 21:55:50 -05:00
27d9e313f5 convert compute chunk/spread/atom 2022-09-30 21:42:04 -04:00
da2f7f6fad Forgot to put LMP_VAR_VECTOR in the documentation 2022-09-30 20:14:40 -05:00
9183c0e1c8 Removed commented-out line now that I know it works 2022-09-30 20:02:23 -05:00
9c314966ae More spacing 2022-09-30 19:58:56 -05:00
eac855343f Spacing 2022-09-30 19:54:58 -05:00
6dea4d50d6 Fixed oversight in edits to example in Fortran doc page 2022-09-30 19:51:56 -05:00
a323e09822 Merge branch 'lammps:develop' into fortran-further-tinkering 2022-09-30 19:40:32 -05:00
bbc08bbf1f make capitalization consistent 2022-09-30 19:53:11 -04:00
953c3d0cad spell check; updated false positives; whitespace 2022-09-30 18:50:16 -05:00
c61b356a71 clarify LJ energy function component of the quartic bond style 2022-09-30 19:48:56 -04:00
d301ff9961 Added set_variable and a test for it 2022-09-30 18:31:18 -05:00
f136bcbef7 Merge pull request #3465 from weinbe2/feature/snap-packed-idx
Packed Clebsch-Gordon look-up tables for SNAP/Kokkos
2022-09-30 17:35:10 -04:00
756d24ff9e Implemented vector-style variables in C, Python, and Fortran APIs; unit test and more for Fortran/extract_variable 2022-09-30 16:02:26 -05:00
2538929d76 update tests for recent changes and with more death tests. 2022-09-30 15:06:46 -04:00
cbe83701c1 better checking for valid data for format style variables 2022-09-30 15:06:25 -04:00
b48868d70b better document format style variable behavior 2022-09-30 15:05:56 -04:00
172106717d must match the entire string 2022-09-30 15:05:41 -04:00
a9701f54cb HIP tuning 2022-09-30 14:53:37 -04:00
6669b493a4 Merge branch 'develop' of https://github.com/lammps/lammps into feature/snap-packed-idx 2022-09-30 13:18:27 -04:00
08acd321f1 add more dedicated tests for format style variables 2022-09-30 09:58:05 -04:00
ec0bc5aa5e improve detection of invalid format strings. allow to replace format style variables 2022-09-30 09:57:42 -04:00
fce0877cac update and remove obsolete parts 2022-09-30 09:49:57 -04:00
038ad3a038 portability improvement 2022-09-30 09:02:14 -04:00
8ee17edcab Implemented more unit tests; stuck on atomfile 2022-09-29 23:39:39 -05:00
a7071fea78 Wrote docs for extract_fix,extract_variable; fixed python so it knows about string variables; doc typo fixes; part of extract_variable unit test 2022-09-29 19:28:15 -05:00
afc35aa7b0 Merge pull request #3462 from akohlmey/pdlammps-howto
Add peridynamics howto document
2022-09-29 14:33:46 -04:00
09948f11be make equation references explicit since .. math:: + 🏷️ does not work with latex 2022-09-29 13:54:09 -04:00
6962b43e70 Pack idxcg_block in with idxz 2022-09-29 09:56:20 -07:00
60f73b33bf Merge branch 'develop' into feature/snap-packed-idx 2022-09-29 09:50:33 -07:00
c6eb6d858b implement numbered equations and equation references 2022-09-29 12:04:43 -04:00
96c0d39be2 Merge branch 'develop' into pdlammps-howto 2022-09-29 10:42:34 -04:00
f78c350fa8 Merge pull request #3459 from akohlmey/collected-small-changes
Collected small changes and updates
2022-09-29 10:39:17 -04:00
3ab8f6ea16 Finished docs for everything currently implemented 2022-09-29 09:14:49 -05:00
c068c226cc consolidate fortran test keeper modules into a single module 2022-09-29 09:47:40 -04:00
494821725e Merge pull request #3463 from wmbrownIntel/gpu_timer_hostview_fix
GPU Package - OpenCL Timer Fix and Unnecessary Device Allocation Fix
2022-09-29 08:56:48 -04:00
8e073c3335 reference the Howto from the rest of the manual. Spelling fixes. 2022-09-29 07:43:01 -04:00
777a074744 Convert PDLAMMPS user doc from latex to sphinx 2022-09-29 06:57:52 -04:00
fb675028b9 whitespace 2022-09-29 02:42:11 -04:00
6c0da8cbaf Wrote documentation for extract_fix, extract_variable 2022-09-29 01:07:46 -05:00
71464d8314 GPU Package: Fixing logic in OpenCL backend that could result in unnecessary device allocations. 2022-09-28 22:30:09 -07:00
6e34d21b24 GPU Package: Switching back to timer disabling with multiple MPI tasks per GPU. Logic added to prevent mem leak. 2022-09-28 21:02:16 -07:00
1d4297e2dd Implemented extract_fix, extract_variable, flush_buffers; unit test for extract_fix 2022-09-28 22:09:26 -05:00
e22699197d Added flush_buffers 2022-09-28 07:40:06 -05:00
6109090d40 Merge branch 'lammps:develop' into fortran-further-tinkering 2022-09-27 20:02:06 -05:00
77fb3e8af8 improve error messages 2022-09-27 20:55:55 -04:00
90384371c0 this is redundant, since we set one_coeff and thus * * is required 2022-09-27 20:55:45 -04:00
de28c9b19c propagate new pace lib version tage and hash to lib/pace/Install.py 2022-09-27 15:27:43 -04:00
5da63b1e1d Merge branch 'develop' into feature/pace-al 2022-09-27 14:01:58 -04:00
7fe9d087db move reusable fortran modules to keep data to a separate file 2022-09-27 14:01:01 -04:00
256f385be4 avoid race condition 2022-09-27 13:20:39 -04:00
36d22b9d00 silence compiler warnings 2022-09-27 13:20:25 -04:00
2f231bcd50 update documentation: explain fix_modify pair every N 2022-09-27 17:15:20 +02:00
502fd0eff8 ML-PACE.cmake: update tag and MD5 hashsum
pair_pace_extrapolation.cpp: add log message about type of active set (LINEAR or FULL)
2022-09-27 17:04:16 +02:00
2072e08624 added get_last_error_message; still working on its unit test 2022-09-26 21:56:03 -05:00
3e9dca3017 Implement alternate and recommended way to set properties of abstract base class
See: https://github.com/lammps/lammps/security/code-scanning/476
2022-09-26 21:01:22 -04:00
7238a29cb7 improve version tag regexp to match cases with leading blanks 2022-09-26 20:39:46 -04:00
0fe739eb35 Merge branch 'develop' into collected-small-changes
# Conflicts:
#	doc/utils/sphinx-config/false_positives.txt
2022-09-26 20:34:37 -04:00
be98b5a168 Merge pull request #3458 from Boogie3D/mliappy_unified
MLIAP Unified Interface
2022-09-26 20:33:17 -04:00
1dc3c8fc26 remove hippynn examples 2022-09-26 19:56:00 -04:00
10068a0fde Merge pull request #3461 from julient31/llg-correction
Correction of some LL features in the SPIN package
2022-09-26 14:56:36 -04:00
1eb3d50c22 simplify/modernize 2022-09-26 13:38:35 -04:00
5ea37448b6 whitespace 2022-09-26 13:12:04 -04:00
a4796dd872 Merge pull request #3396 from hammondkd/fortran-tinkering
Expanding the Fortran interface
2022-09-26 13:02:30 -04:00
a4e92ed4a9 update broken URLs 2022-09-26 12:09:45 -04:00
543e7b8b56 format DOI tags consistently 2022-09-26 11:41:22 -04:00
6262f3c537 improve error message 2022-09-26 10:23:15 -04:00
1072a5bda2 Added unit test for has_error 2022-09-26 09:21:41 -05:00
28d84b4fcb Missed wrap_extract_compute.cpp in prior commit 2022-09-26 08:57:32 -05:00
7cd5d7b357 Added lammps_has_error 2022-09-26 08:57:03 -05:00
30ddb2d4b4 Merge branch 'clean-master2' of github.com:julient31/lammps into llg-correction 2022-09-26 07:53:09 +02:00
e24b4bec01 Adding a new test problem for large damping in the LL equation. 2022-09-26 07:49:51 +02:00
ac6cb062e6 Completing the correction in fix langevin/spin. 2022-09-26 07:44:32 +02:00
90f26f05fc Correcting some aspects of the SPIN package documentation. 2022-09-26 07:43:19 +02:00
bada1fb348 Finished extract_compute and its unit tests and documentation 2022-09-25 23:54:18 -05:00
d34d5139cb use CMakeLists.txt file that ships with PACE library
this sets the necessary define so that the compilation hack is no longer needed
2022-09-25 17:55:11 -04:00
cb92a1553c improve error messages 2022-09-25 17:45:18 -04:00
ccafdf54fd Merge branch 'feature/pace-al' of https://github.com/yury-lysogorskiy/lammps into feature_pace-al 2022-09-25 17:13:37 -04:00
a6f8ea32a7 reformat docs and fix spelling issues 2022-09-25 17:10:50 -04:00
d205d4a6df remove docs for unexisting command compute pace/extrapolation 2022-09-25 17:10:49 -04:00
fc830d1397 restore original ML-PACE CMake code and update for new dependencies 2022-09-25 17:10:49 -04:00
ca6733c345 remove unused lines 2022-09-25 17:10:49 -04:00
23b15ac4ca temporarily comment out code that breaks compilation 2022-09-25 17:10:44 -04:00
e1bc3a4ade apply clang-format 2022-09-25 16:02:56 -04:00
2e3fc4c054 Merge branch 'develop' into feature/pace-al 2022-09-25 16:01:48 -04:00
e38d7cf192 update explanations for version updates in security policy file 2022-09-25 10:43:59 -04:00
af3da50bda add some more versionadded tags, now mostly complete for 2022 2022-09-25 09:41:55 -04:00
971f5672c9 add missing sllod initialization fixes 2022-09-25 07:11:25 -04:00
67a210e6d8 no need to include pair.h 2022-09-25 06:41:51 -04:00
084024cdc3 format 2022-09-25 06:41:37 -04:00
51624fa78d whitespace 2022-09-25 03:55:45 -04:00
3a95a7b973 add utility to detect pending version tags in .. versionadded/changed:: 2022-09-25 03:51:54 -04:00
64b88f2e13 add versionadded/versionchanged markers for features from 15Sep2022 and 3Aug2022 2022-09-25 03:20:29 -04:00
7b7237bdaf try to suppress creating __pycache__ folders in the python source dirs 2022-09-24 22:27:22 -04:00
19a0747aeb add unit test for MLIAP unified 2022-09-24 22:15:29 -04:00
ebf69f2e79 avoid incorrect results with ghostneigh_flag on by skipping contributions from non-local i atoms 2022-09-24 21:09:27 -04:00
0ed0d757ec refactor unified LJ example input to embed the python code into the input 2022-09-24 21:08:43 -04:00
59ca352e48 whitespace 2022-09-24 15:34:41 -04:00
a02ab6eaa1 avoid memory corruption when using mliap unified with ghostneigh_flag == 1 2022-09-24 15:32:25 -04:00
ef8090fdd1 flag *unified* keyword as newly added in the next patch release 2022-09-24 15:31:47 -04:00
bab115e993 apply C++11 virtual/override conventions 2022-09-24 14:48:31 -04:00
1885f7e42d delete redundant memory deallocation 2022-09-24 14:48:13 -04:00
1ad782c050 initialize and (conditionally) free cutghost pointer in base class 2022-09-24 14:47:41 -04:00
058e49696a Added "New in version TBD" to new functions 2022-09-24 12:12:24 -05:00
26e269aacd continued ork on extract_compute unit tests 2022-09-24 12:04:27 -05:00
b37c145352 convert URLs to https where possible, check URLs for bit rot and update or remove 2022-09-24 08:02:18 -04:00
a0caf34d71 update sjplimp's email and homepage 2022-09-24 05:02:53 -04:00
e469c98e9d apply clang-format 2022-09-24 04:39:02 -04:00
a31977ca4c fix typo 2022-09-24 04:24:43 -04:00
46820a90c5 modernize and improve error message handling 2022-09-24 04:12:54 -04:00
caa80ef344 use upper case LAMMPS as the name of the package consistently 2022-09-24 03:45:23 -04:00
5ddb0aeb16 cosmetic changes 2022-09-24 03:44:19 -04:00
f1756eeeee update unified LJ Ar example to include creating the pickle in the input 2022-09-24 03:33:19 -04:00
c7b24cb1e3 always accept "mliappy" and "unified" keywords, but print suitable error if not supported 2022-09-24 03:32:35 -04:00
c581fca39a Merge branch 'develop' into mliappy_unified 2022-09-24 03:07:31 -04:00
49a3be17cb c-library functions should be always present, documented, and lowercase 2022-09-24 03:07:24 -04:00
69627eee8d Merged with fortran-tinkering 2022-09-23 22:11:24 -05:00
8ad478697e Remove trailing whitespace 2022-09-23 17:20:27 -06:00
a3326841ad Add MLIAP NumPy Ta06A example 2022-09-23 17:01:59 -06:00
a94cfe175b add c/python unit tests for lammps_error() 2022-09-23 18:59:29 -04:00
597540dfb4 Merge branch 'mliappy_unified' of github.com:Boogie3D/lammps into mliappy_unified 2022-09-23 16:51:29 -06:00
5aad045686 Improve incompatible python interpreter warning 2022-09-23 16:51:20 -06:00
9eee1bbb5f Fix MLIAP Unified LJ example logs 2022-09-23 16:04:15 -06:00
cc0fc01d1c Implemented extract_compute and started writing unit test for it 2022-09-23 16:23:51 -05:00
86d1aacf7e add function to dispatch LAMMPS errors to library interfaces 2022-09-23 16:28:15 -04:00
0f2a7d3f33 Merge branch 'develop' into fortran-tinkering 2022-09-23 12:41:39 -04:00
d9e2be4b75 updates to the fortran module docs to make it more consistent, fix links, add example similar to C library docs 2022-09-23 12:41:31 -04:00
2a14397318 fix broken link 2022-09-23 11:10:06 -04:00
71c48762fb correct inconsistent spelling of name 2022-09-23 10:33:44 -04:00
6532640362 spelling 2022-09-23 10:23:32 -04:00
ac0080f2df Reintroduced some stashed doc edits 2022-09-23 07:20:49 -05:00
8183a4dfbb change logic to make coverity scan happy 2022-09-23 06:12:56 -04:00
c3e7f8f25a remove unused NEWTON_PAIR template argument 2022-09-23 06:01:25 -04:00
820fab454b style changes 2022-09-23 05:47:41 -04:00
5f5397f61b Added unit tests for x and v 2022-09-22 22:23:31 -05:00
ea8f08c295 update "make install" for cmake to correctly install LAMMPS python module. 2022-09-22 22:44:45 -04:00
ae4404201f Forgot to add the unit test files to the commit.... 2022-09-22 19:55:10 -05:00
43aabc7985 Update comments and documentation 2022-09-22 18:29:45 -06:00
aff5200ded Implemented extract_atom, updated docs, added some unit tests 2022-09-22 19:16:15 -05:00
e230a3bb5b Merge pull request #3450 from akohlmey/collected-small-changes
Collected small changes and fixes
2022-09-22 17:24:08 -04:00
3c5e446165 avoid null pointer dereference 2022-09-22 13:21:54 -04:00
24fd02725c make operator precedence explicit 2022-09-22 13:21:33 -04:00
96f04237c1 fix memory leak and avoid uninitialized data access 2022-09-22 13:16:38 -04:00
4f0caca9d8 make sure data is initialized 2022-09-22 13:05:32 -04:00
659ac90537 Merge branch 'develop' into collected-small-changes 2022-09-22 12:25:30 -04:00
422042bf66 Merge pull request #3455 from lammps/fix-pair-min-tweak
Adjust fix pair to work better with minimization
2022-09-22 12:25:04 -04:00
4a072d10db make sure array is initialized 2022-09-22 12:24:09 -04:00
e3729e51e8 remove unused method, modernize errors and access to molecule class, reformat 2022-09-22 12:23:52 -04:00
6fac8f1688 remove unused NeighRequest member variable index 2022-09-22 11:32:14 -04:00
7a27718d87 Merge remote-tracking branch 'LAMMPS-official/develop' into feature/pace-al 2022-09-22 17:06:28 +02:00
e99bdeefb8 remove docs for unexisting command compute pace/extrapolation 2022-09-22 17:05:13 +02:00
6c9c61e763 remove debug output 2022-09-22 10:45:53 -04:00
2b27fd8acb address possible initialization issues reported by coverity scan 2022-09-22 10:34:23 -04:00
4f0cdcbe37 Merge branch 'develop' into collected-small-changes 2022-09-22 10:25:20 -04:00
4afa603bcb fix_pair.cpp: FixPair::modify_param - change args format (now incl. keyword 'every') 2022-09-22 12:42:57 +02:00
f149d14abc remove debug print statements in fix_pair.cpp 2022-09-22 12:32:06 +02:00
f132f98d1a Merge remote-tracking branch 'LAMMPS-official/fix-pair-min-tweak' into feature/pace-al 2022-09-22 11:31:56 +02:00
b4bc780c76 Merge branch 'lammps:develop' into mliappy_unified 2022-09-22 02:14:54 -06:00
13b34a9d69 Merge pull request #3448 from jtclemm/BPM
Updates to BPM package
2022-09-21 20:02:40 -04:00
90212a6c35 Merge branch 'BPM' of github.com:jtclemm/lammps into BPM 2022-09-21 15:28:35 -06:00
fc969bc99b Adding parentheses to logic statement in fix update/special/bonds 2022-09-21 15:28:23 -06:00
39763444c5 add lasttime check to fix pair 2022-09-21 14:03:04 -06:00
0343ad09ea additional formatting updates 2022-09-21 15:58:12 -04:00
ad76bb2997 Merge branch 'patch-2' into collected-small-changes 2022-09-21 15:52:29 -04:00
51b323fc76 Fixing typo in pair_gayberne.rst
Fixing typo in the documentation
2022-09-21 20:01:38 +02:00
7c2013d862 silence compiler warnings 2022-09-21 10:01:53 -04:00
83b36f7e4b fix some minor documentation issues 2022-09-21 09:41:55 -04:00
1ef2c8c5dc improving the energy computation model in SPIN/compute_spin.cpp 2022-09-21 10:06:41 +02:00
7e8e40fefa correcting memory issue in SPIN/compute_spin.cpp
removing incorrect line in compute_property_atom.cpp
2022-09-21 09:34:30 +02:00
62b0024425 removing small bug in compute_atom_property.cpp 2022-09-20 19:07:38 +02:00
293a70b719 JT190922, C1:
- correction of a memory issue in compute_spin.cpp
- correction of the Langevin calculation in fix_langevin_spin.cpp
2022-09-19 09:02:00 +02:00
72fab8d5f5 must depend on libflammps so that there is no race condition 2022-09-18 16:35:28 -04:00
8d6629cb80 update MDI library to version 1.4.12 which plugs memory leaks on initialization 2022-09-18 11:04:57 -04:00
43998570d1 Remove optional toggle from pair style commands 2022-09-16 14:10:58 -06:00
1655aba5f3 Add masses back and change pickle paths 2022-09-16 14:08:19 -06:00
35c4b791f8 Add MLIAP Unified LJ example logs 2022-09-16 02:53:42 -06:00
2d81980de1 Merge branch 'lammps:develop' into fortran-tinkering 2022-09-15 21:33:51 -05:00
fc7e39be05 Fixing overlooked merge conflict in dump_modify.rst 2022-09-15 16:13:53 -06:00
85bbc4ae47 Clarifying documentation on use of store/local BPM option 2022-09-15 16:08:33 -06:00
f764260c53 Removing BPM bond coefficients from data files 2022-09-15 15:47:31 -06:00
211d5c468e fixing merge conflicts 2022-09-15 14:49:21 -06:00
3989aa4dab BUGFIX: use triggername[ifield] instead of triggername[nfield] 2022-09-15 11:50:38 +02:00
797a45232c Merge branch 'fix-pair-dump-skip' into feature/pace-al
# Conflicts:
#	src/fix_pair.cpp
2022-09-15 11:07:24 +02:00
e89899955b Merge branch 'lammps:develop' into mliappy_unified 2022-09-15 03:01:03 -06:00
e4575aec3c One fix after running fix-whitespace 2022-09-14 21:14:13 -05:00
72573987fa I wrote unit tests for all the Fortran interface commands in this pull request 2022-09-14 21:07:32 -05:00
9a44d708e9 Merge branch 'lammps:develop' into fortran-tinkering 2022-09-13 23:49:17 -05:00
99c76b84aa Merge branch 'lammps:develop' into fortran-tinkering 2022-09-09 21:23:26 -05:00
3d7a31a59f Merge branch 'lammps:develop' into mliappy_unified 2022-09-09 14:03:43 -06:00
1216188d48 Implementation of an int4-packed Clebsch-Gordon look-up table for SNAP 2022-09-09 09:34:22 -07:00
079975fa03 Add mliap_unified_couple.pyx to cythonize 2022-09-09 01:05:20 -06:00
09a1c6f043 Fix import path for make 2022-09-09 01:04:19 -06:00
19604575a4 Update mliap docs for unified 2022-09-09 00:53:18 -06:00
0214c35c23 Merge branch 'lammps:develop' into fortran-tinkering 2022-09-08 20:50:27 -05:00
8b3c1a20a8 Removing unneeded feature 2022-09-06 10:13:59 -06:00
35dfffdaf9 Merge branch 'fix-pair-dump-skip' into feature/pace-al 2022-09-05 18:12:14 +02:00
71970858cf Updating error messages, small changes to doc 2022-09-03 16:44:21 -06:00
edfac129a1 Fixing estimated r0 on restart, other small edits 2022-09-03 15:33:29 -06:00
1d0db98403 Fixing merge conflicts 2022-09-03 12:35:32 -06:00
11a4fcec72 Merge branch 'lammps:develop' into fortran-tinkering 2022-09-02 23:57:16 -05:00
0783a0564f pair_pace_extrapolation.cpp:
- remove unused variables (gamma lo/up bounds)
fix_pair.h/cpp: add modify_param method for "fix_modify pair Nevery" that updates "nevery" variable
2022-09-02 14:49:04 +02:00
b5e1e58d22 Merge branch 'mliappy_unified' of github.com:Boogie3D/lammps into mliappy_unified 2022-09-01 15:13:58 -06:00
93ade04269 pair_pace_extrapolation.cpp:
- bugfix with extracting "gamma_flag"
- ACEALImpl: delete all pointers (both Ctilde and B-basis)
2022-09-01 12:58:15 +02:00
e12e008d55 bugfix in fix_pair.cpp: usage of triggername[ifield] instead of triggername[nfield] 2022-09-01 12:52:58 +02:00
8e5da55ff5 Check for multiple model/descriptor definitions 2022-09-01 03:42:52 -06:00
bfa562b5b0 Merge remote-tracking branch 'official/fix-pair-dump-skip' into feature/pace-al 2022-09-01 11:02:27 +02:00
4616715e77 bugfix in fix_pair.cpp: usage of fmt::format("{}") 2022-09-01 11:01:13 +02:00
c63df4ac87 PairPACEExtrapolation: rely on usage "fix pair" 2022-09-01 11:00:20 +02:00
d5ae116a89 Rename mliap_unifiedpy.pyx to mliap_unified_couple.pyx, fix references 2022-09-01 02:57:48 -06:00
a17e3e2350 Add init parameters to Unified LJ example 2022-09-01 02:43:16 -06:00
44f97c916e Change ghostneigh pairstyle to toggle 2022-09-01 02:42:35 -06:00
7867c5b3d3 Remove pickle file 2022-09-01 02:42:06 -06:00
8fafd4d8fb Restarting additional BPM settings, adding virial contributions from tangential bonds 2022-08-30 13:25:36 -06:00
80257099de Adding methods needed to efficiently create bonds 2022-08-30 10:58:55 -06:00
4e5604daef Merge remote-tracking branch 'official/fix-pair-dump-skip' into feature/pace-al 2022-08-30 16:07:10 +02:00
b631a3c553 Merge branch 'lammps:develop' into fortran-tinkering 2022-08-27 20:10:59 -05:00
39acae7737 Merge branch 'lammps:develop' into mliappy_unified 2022-08-25 11:07:17 -06:00
0fbc54a352 Merge branch 'lammps:develop' into fortran-tinkering 2022-08-23 10:15:28 -05:00
7a35ec3527 Merge branch 'lammps:develop' into fortran-tinkering 2022-08-19 08:52:30 -05:00
7104d1bfca Change hippynn examples to load from .pt files 2022-08-16 02:56:53 -06:00
0ba0a382c3 Merge branch 'mliappy_unified' of github.com:Boogie3D/lammps into mliappy_unified 2022-08-16 02:36:23 -06:00
7a76a6ee36 Implement python-side unified support, add example 2022-08-16 02:35:31 -06:00
06285556c9 Move unified L-J initialization to definition 2022-08-16 02:34:15 -06:00
9109ab17c4 Merge branch 'lammps:develop' into fortran-tinkering 2022-08-15 21:12:47 -05:00
8b181ed58a Minor tweaks to docs; fixed typo and capitalization to be consistent 2022-08-15 21:11:58 -05:00
7d35757438 Merge branch 'fortran-tinkering' of github.com:hammondkd/lammps into fortran-tinkering 2022-08-13 19:09:59 -05:00
196d52fdb3 Missing comma 2022-08-13 19:09:40 -05:00
7e8704ecaf Merge branch 'lammps:develop' into fortran-tinkering 2022-08-13 19:08:04 -05:00
16e4740362 Merge branch 'lammps:develop' into mliappy_unified 2022-08-12 13:25:04 -06:00
4c975c34c1 Deleted the parenthesis instead of the space... 2022-08-12 11:55:30 -05:00
d1429d1b11 Merge branch 'lammps:develop' into fortran-tinkering 2022-08-12 11:47:27 -05:00
257b551c92 Missed lammps_version implicit none 2022-08-12 11:44:55 -05:00
c6972d483f Made spacing consistent; added IMPLICIT NONE where it was not implied already and removed it where it was redundant 2022-08-12 11:43:21 -05:00
c2ded124a5 fixed spacing 2022-08-12 11:34:29 -05:00
05be7fe8ca Possibly-read-for-inclusion version of extract_global and associated documentation 2022-08-12 11:33:28 -05:00
9d89bc8f82 Typo fixes/etc. in documentation 2022-08-12 09:40:29 -05:00
9b0c2d82c3 Missing comma 2022-08-12 08:23:20 -05:00
88a3a38640 I think I finally fixed extract_global; we'll check it in the morning 2022-08-12 00:04:25 -05:00
4151a1af02 Lots of tinkering with extract_global; back to square 1 2022-08-11 17:46:21 -05:00
af5eacfe8c Merge branch 'lammps:develop' into mliappy_unified 2022-08-10 21:58:37 -06:00
b191e29561 Work in progress for extract_global; committing but will probably undo later 2022-08-10 17:56:28 -05:00
d178a00ff6 Merge branch 'fortran-tinkering' of github.com:hammondkd/lammps into fortran-tinkering
Finishing the edits
2022-08-10 11:39:31 -05:00
756074c073 Merge edits from two computers 2022-08-10 11:39:23 -05:00
36167ab81e Merge branch 'fortran-tinkering' of github.com:hammondkd/lammps into fortran-tinkering
made edits on two computers / fixing
2022-08-10 11:37:37 -05:00
89b9967f2c Added part of lmp_extract_global 2022-08-10 11:37:15 -05:00
8c57989042 Merge fix 2022-08-10 11:05:33 -05:00
6c49937ad7 Re-ordered type-bound procedures to correspond with the order in library.h 2022-08-10 11:03:49 -05:00
f442fc8540 Added reset_box, memory_usage, get_mpi_comm, extract_setting and associated documentation 2022-08-10 00:55:17 -05:00
7125682375 Added get_thermo and extract_box; added get_natoms to documentation; added a "TODO" for all other functions to implement 2022-08-09 21:18:33 -05:00
f7b19a3d47 Merge branch 'lammps:develop' into mliappy_unified 2022-08-01 01:12:14 -06:00
f966b53bd2 Merge branch 'lammps:develop' into mliappy_unified 2022-07-14 02:11:45 -06:00
6e34856c77 Merge branch 'develop' into feature_pace-al 2022-07-09 15:14:20 -04:00
81e5560682 rename confusing "natoms" variable. align with pair style pace. 2022-07-09 02:01:09 -04:00
70d8146b69 use correct evflag versions 2022-07-09 02:00:39 -04:00
a5a2b4023e simplify and apply clang-format 2022-07-08 22:17:19 -04:00
dcf9082591 Makefile.lammps: add empty line
Install.py: remove older versions
2022-07-07 23:35:58 +02:00
d21c933ae0 - rename pair_style pace/al to pace/extrapolation
- PairPACEExtrapolation do not instantiate special compute and dump pace/extrapolation classes. This is user responsibility now.
- add is_set_energies_forces option to control updating Pair::evdwl and Pair::f
- add dump_pace_extrapolation.h/cpp
- DumpPACEExtrapolation::write()   dump only if
 1) extrapolation grades were computed on current timestep AND
 2) max extrapolation grade > gamma_lower_bound
 - ComputePACEExtrapolation::invoke_compute_extrapolation_grades: does not update energies/forces/stresses, called when compute and pair_style pace/extrapolation not syncronize
2022-07-07 23:35:27 +02:00
3b41ec7d9b uniformly rename pair_style, compute and dump to pace/extrapolation
add doc
2022-07-07 23:28:12 +02:00
530e5d5c14 Remove NEWTON_OFF 2022-06-30 12:56:08 -06:00
6a37a75bcf add compute_pace_atom.rst 2022-06-29 15:18:39 +02:00
f8ddeb033c change default is_dump_extrapolative_structures=false
add pair_pace.rst
2022-06-29 14:38:37 +02:00
80e1020648 update ML-PACE.cmake and lib/pace for v.2022.06.27 2022-06-27 18:47:09 +02:00
23959d4330 pair_pace_al.cpp: use comm->me, throw more detailed error when extrapolate
compute_pace.cpp: comment out logmessage
2022-06-27 13:03:59 +02:00
afd8e1d060 ML-PACE.cmake: move library pace build configuration (CMakeLists.txt) to lammps-user-pace repo
compute_pace.cpp: comment out logmessage
2022-06-27 12:37:33 +02:00
c6e12dc6d3 WIP: bevaluator_timestep_shift 2022-06-24 15:04:19 +02:00
79c7a50ffc PairPACEActiveLearning: add flag is_dump_extrapolative_structures
compute_pace: add compute_scalar
2022-06-24 14:53:38 +02:00
edf40edfd9 compute_pace.cpp: add scalar max gamma per structure (extracted from MPI-managed pair pace)
pair_pace_al.h/cpp:
- add Compute *computePaceAtom
-add max_gamma_grade_per_structure
- use nlocal for size of per-atom extrapolation_grade_gamma[]
- bugfix with using current_atom_gamma_grade
2022-06-24 12:51:51 +02:00
3e4c6580ec (WIP) add compute_pace.cpp/h
pair_pace_al.cpp: allocate map
2022-06-23 18:47:16 +02:00
bd10d17be9 (WIP)
lib/pace/Install.py: add --local flag to be able to use local PACE codebase
lib/pace/Makefile and Makefile.lammps: update, include wigner-cpp and cnpy
2022-06-23 16:55:56 +02:00
6d6346feef pair_pace_al.cpp: remove memory create pair:map 2022-06-23 15:19:02 +02:00
ab1913f240 - add pair_pace_al.cpp/h
- upgrade ML-PACE.cmake: reuse local PACE codebase or download and unarchive (default behaviour)
- pair_pace.cpp: remove unused variable, change pACE->PACE
2022-06-23 15:12:30 +02:00
474e6a03d0 WIP: configuring ML-PACE.cmake to work with pace/al 2022-06-23 10:43:08 +02:00
b97140a7f0 Use skin variable in neighbor command 2022-06-20 10:26:42 -06:00
f33a4087c5 Add v_tally to force calculation 2022-06-20 10:05:35 -06:00
d6c1517f0e Implement cutghost for ghostneighs 2022-06-20 10:05:12 -06:00
2084e18ad2 Removing junk copied during write_data 2022-06-13 12:46:29 -06:00
2638213a5c Fixing documentation and adding colname to local 2022-06-13 11:04:28 -06:00
081aa2629f Minor changes 2022-06-09 00:50:03 -06:00
7aec2e10bf Remove nlistghosts, store inum+gnum in natomneigh 2022-06-07 16:18:27 -06:00
c07d61d392 Progress towards supporting ghosts in neighbor list 2022-06-07 02:16:06 -06:00
43a01b4fe4 Adding option to forward nbond, useful for fixes that need bondcounts 2022-06-06 11:18:11 -06:00
49e04d5643 Removing unnecessary variables in compute nbond 2022-06-06 10:33:22 -06:00
b05d96078a Adding extra property vector to bonds 2022-06-06 10:10:43 -06:00
a43b24781c Merge branch 'develop' into mliappy_unified 2022-05-20 11:26:54 -06:00
9a322b5a2a Update Al example script, add ghostneigh example 2022-05-20 11:09:59 -06:00
2044a9ef97 Change neigh_modify every to 20 2022-05-20 11:09:01 -06:00
ac3fc35482 Update InP example scripts 2022-05-20 11:08:32 -06:00
0b3c7514fa Implement second interaction layer (ghost neighs) 2022-05-20 11:07:06 -06:00
0382fc00c8 Update unified LJ pickle script 2022-05-13 15:33:50 -06:00
99cd9d026b Fix thermo, run of unified LJ script 2022-05-13 14:49:30 -06:00
3045f1d3cb Add pickle method to base class 2022-05-13 14:45:44 -06:00
f909d7760d Remove deprecated LJ Aluminum example 2022-04-15 14:29:58 -06:00
ebbace403a Initial commit of mliap unified work 2022-04-15 14:22:46 -06:00
4702 changed files with 83803 additions and 43475 deletions

View File

@ -1,6 +1,6 @@
---
name: Request for Help
about: "Don't post help requests here, email the lammps-users mailing list"
about: "Don't post help requests here, post in the LAMMPS forum"
title: ""
labels: invalid
assignees: ''
@ -8,8 +8,9 @@ assignees: ''
---
Please **do not** post requests for help (e.g. with installing or using LAMMPS) here.
Instead send an e-mail to the lammps-users mailing list.
Instead, you can post to the LAMMPS category in the Materials Science Community
Discourse forum at: https://matsci.org/lammps/
This issue tracker is for tracking LAMMPS development related issues only.
Thanks for your cooperation.
Thank you in advance for your cooperation.

4
README
View File

@ -16,8 +16,8 @@ National Laboratories, a US Department of Energy facility, with
funding from the DOE. It is an open-source code, distributed freely
under the terms of the GNU Public License (GPL) version 2.
The primary author of the code is Steve Plimpton, who can be emailed
at sjplimp@sandia.gov. The LAMMPS WWW Site at www.lammps.org has
The code is maintained by the LAMMPS development team who can be emailed
at developers@lammps.org. The LAMMPS WWW Site at www.lammps.org has
more information about the code and its uses.
The LAMMPS distribution includes the following files and directories:

View File

@ -14,14 +14,14 @@ and tested by the LAMMPS developers, so it is easy to import bad
behavior from calling functions in one of those libraries.
Thus is is quite easy to crash LAMMPS through malicious input and do all
kinds of filesystem manipulations. And because of that LAMMPS should
kinds of file system manipulations. And because of that LAMMPS should
**NEVER** be compiled or **run** as superuser, either from a "root" or
"administrator" account directly or indirectly via "sudo" or "su".
Therefore what could be seen as a security vulnerability is usually
either a user mistake or a bug in the code. Bugs can be reported in
the LAMMPS project
[issue tracker on GitHub](https://github.com/lammps/lammps/issues).
either a user mistake or a bug in the code. Bugs can be reported in the
LAMMPS project [issue tracker on
GitHub](https://github.com/lammps/lammps/issues).
To mitigate issues with using homoglyphs or bidirectional reordering in
unicode, which have been demonstrated as a vector to obfuscate and hide
@ -30,10 +30,18 @@ for unicode characters and only all-ASCII source code is accepted.
# Version Updates
LAMMPS follows continuous release development model. We aim to keep all
release versions (stable or patch) fully functional and employ a variety
of automatic testing procedures to detect failures of existing
functionality from adding new features before releases are made. Thus
bugfixes and updates are only integrated into the current development
branch and thus the next (patch) release and users are recommended to
update regularly.
LAMMPS follows continuous release development model. We aim to keep to
keep the development version (develop branch) always fully functional
and employ a variety of automatic testing procedures to detect failures
of existing functionality from adding or modifying features. Most of
those tests are run on pull requests *before* merging to the development
branch. The develop branch is protected, so all changes *must* be
submitted as a pull request and thus cannot avoid the automated tests.
Additional tests are run *after* merging. Before releases are made
*all* tests must have cleared. Then a release tag is applied and the
release branch fast-forwarded to that tag. Bug fixes and updates are
applied to the current development branch and thus will be available in
the next (patch) release. For stable releases, selected bug fixes are
back-ported and occasionally published as update releases. There are
only updates to the latest stable release.

View File

@ -7,11 +7,20 @@ cmake_minimum_required(VERSION 3.10)
if(POLICY CMP0074)
cmake_policy(SET CMP0074 NEW)
endif()
# set policy to silence warnings about ignoring ${CMAKE_REQUIRED_LIBRARIES} but use it
if(POLICY CMP0075)
cmake_policy(SET CMP0075 NEW)
endif()
# set policy to silence warnings about missing executable permissions in
# pythonx.y-config when cross-compiling. review occasionally if it may be set to NEW
if(POLICY CMP0109)
cmake_policy(SET CMP0109 OLD)
endif()
# set policy to silence warnings about timestamps of downloaded files. review occasionally if it may be set to NEW
if(POLICY CMP0135)
cmake_policy(SET CMP0135 OLD)
endif()
########################################
project(lammps CXX)
@ -100,7 +109,7 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
if(CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.3 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.4)
set(CMAKE_TUNE_DEFAULT "-xCOMMON-AVX512")
else()
set(CMAKE_TUNE_DEFAULT "-xHost")
set(CMAKE_TUNE_DEFAULT "-xHost -fp-model fast=2 -no-prec-div -qoverride-limits -diag-disable=10441 -diag-disable=2196")
endif()
endif()
endif()
@ -380,9 +389,9 @@ pkg_depends(EXTRA-MOLECULE MOLECULE)
# detect if we may enable OpenMP support by default
set(BUILD_OMP_DEFAULT OFF)
find_package(OpenMP QUIET)
if(OpenMP_FOUND)
check_include_file_cxx(omp.h HAVE_OMP_H_INCLUDE)
find_package(OpenMP COMPONENTS CXX QUIET)
if(OpenMP_CXX_FOUND)
check_omp_h_include()
if(HAVE_OMP_H_INCLUDE)
set(BUILD_OMP_DEFAULT ON)
endif()
@ -391,8 +400,8 @@ endif()
option(BUILD_OMP "Build with OpenMP support" ${BUILD_OMP_DEFAULT})
if(BUILD_OMP)
find_package(OpenMP REQUIRED)
check_include_file_cxx(omp.h HAVE_OMP_H_INCLUDE)
find_package(OpenMP COMPONENTS CXX REQUIRED)
check_omp_h_include()
if(NOT HAVE_OMP_H_INCLUDE)
message(FATAL_ERROR "Cannot find the 'omp.h' header file required for full OpenMP support")
endif()
@ -722,18 +731,17 @@ list(FIND LANGUAGES "Fortran" _index)
if(_index GREATER -1)
target_link_libraries(lammps PRIVATE ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
endif()
set(LAMMPS_CXX_HEADERS angle.h atom.h bond.h citeme.h comm.h compute.h dihedral.h domain.h error.h fix.h force.h group.h improper.h
input.h info.h kspace.h lammps.h lattice.h library.h lmppython.h lmptype.h memory.h modify.h neighbor.h neigh_list.h output.h
pair.h pointers.h region.h timer.h universe.h update.h utils.h variable.h)
if(LAMMPS_EXCEPTIONS)
list(APPEND LAMMPS_CXX_HEADERS exceptions.h)
endif()
set(LAMMPS_CXX_HEADERS angle.h atom.h bond.h citeme.h comm.h command.h compute.h dihedral.h domain.h
error.h exceptions.h fix.h force.h group.h improper.h input.h info.h kspace.h lammps.h lattice.h
library.h lmppython.h lmptype.h memory.h modify.h neighbor.h neigh_list.h output.h pair.h
platform.h pointers.h region.h timer.h universe.h update.h utils.h variable.h)
set(LAMMPS_FMT_HEADERS core.h format.h)
set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LAMMPS_MACHINE})
set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
set_target_properties(lammps PROPERTIES PREFIX "lib")
target_include_directories(lammps PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/lammps>)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/fmt)
foreach(_HEADER ${LAMMPS_CXX_HEADERS})
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/${_HEADER} COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LAMMPS_SOURCE_DIR}/${_HEADER} ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/${_HEADER} DEPENDS ${LAMMPS_SOURCE_DIR}/${_HEADER})
add_custom_target(${_HEADER} DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/${_HEADER})
@ -742,6 +750,14 @@ foreach(_HEADER ${LAMMPS_CXX_HEADERS})
install(FILES ${LAMMPS_SOURCE_DIR}/${_HEADER} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps)
endif()
endforeach()
foreach(_HEADER ${LAMMPS_FMT_HEADERS})
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/fmt/${_HEADER} COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LAMMPS_SOURCE_DIR}/fmt/${_HEADER} ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/fmt/${_HEADER} DEPENDS ${LAMMPS_SOURCE_DIR}/fmt/${_HEADER})
add_custom_target(fmt_${_HEADER} DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/includes/lammps/fmt/${_HEADER})
add_dependencies(lammps fmt_${_HEADER})
if(BUILD_SHARED_LIBS)
install(FILES ${LAMMPS_SOURCE_DIR}/fmt/${_HEADER} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps/fmt)
endif()
endforeach()
target_include_directories(lammps INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/includes>)
add_library(LAMMPS::lammps ALIAS lammps)
get_target_property(LAMMPS_DEFINES lammps INTERFACE_COMPILE_DEFINITIONS)
@ -849,8 +865,11 @@ if(BUILD_SHARED_LIBS OR PKG_PYTHON)
find_package(Python COMPONENTS Interpreter)
endif()
if(Python_EXECUTABLE)
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/python)
install(CODE "execute_process(COMMAND ${Python_EXECUTABLE} setup.py build -b ${CMAKE_BINARY_DIR}/python install --prefix=${CMAKE_INSTALL_PREFIX} --root=\$ENV{DESTDIR}/ WORKING_DIRECTORY ${LAMMPS_PYTHON_DIR})")
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/python/lib)
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/python/src)
file(COPY ${LAMMPS_SOURCE_DIR}/version.h DESTINATION ${CMAKE_BINARY_DIR}/python/src)
file(COPY ${LAMMPS_PYTHON_DIR}/README ${LAMMPS_PYTHON_DIR}/pyproject.toml ${LAMMPS_PYTHON_DIR}/setup.py ${LAMMPS_PYTHON_DIR}/lammps DESTINATION ${CMAKE_BINARY_DIR}/python/lib)
install(CODE "if(\"\$ENV{DESTDIR}\" STREQUAL \"\")\n execute_process(COMMAND ${Python_EXECUTABLE} -m pip install -v ${CMAKE_BINARY_DIR}/python/lib --prefix=${CMAKE_INSTALL_PREFIX})\n else()\n execute_process(COMMAND ${Python_EXECUTABLE} -m pip install -v ${CMAKE_BINARY_DIR}/python/lib --prefix=${CMAKE_INSTALL_PREFIX} --root=\$ENV{DESTDIR})\n endif()")
endif()
endif()
@ -961,9 +980,6 @@ if(PKG_GPU)
endif()
message(STATUS "GPU precision: ${GPU_PREC}")
endif()
if(PKG_KOKKOS)
message(STATUS "Kokkos Arch: ${KOKKOS_ARCH}")
endif()
if(PKG_KSPACE)
message(STATUS "<<< FFT settings >>>
-- Primary FFT lib: ${FFT}")

View File

@ -1,5 +1,10 @@
# Find clang-format
find_program(ClangFormat_EXECUTABLE NAMES clang-format
clang-format-15.0
clang-format-14.0
clang-format-13.0
clang-format-12.0
clang-format-11.0
clang-format-10.0
clang-format-9.0
clang-format-8.0
@ -14,19 +19,27 @@ if(ClangFormat_EXECUTABLE)
OUTPUT_VARIABLE clang_format_version
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
if(clang_format_version MATCHES "^clang-format version .*")
# Arch Linux
if(clang_format_version MATCHES "^(Ubuntu |)clang-format version .*")
# Arch Linux output:
# clang-format version 10.0.0
# Ubuntu 18.04 LTS Output
#
# Ubuntu 18.04 LTS output:
# clang-format version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
string(REGEX REPLACE "clang-format version ([0-9.]+).*"
"\\1"
#
# Ubuntu 20.04 LTS output:
# clang-format version 10.0.0-4ubuntu1
#
# Ubuntu 22.04 LTS output:
# Ubuntu clang-format version 14.0.0-1ubuntu1
#
# Fedora 36 output:
# clang-format version 14.0.5 (Fedora 14.0.5-1.fc36)
string(REGEX REPLACE "^(Ubuntu |)clang-format version ([0-9.]+).*"
"\\2"
ClangFormat_VERSION
"${clang_format_version}")
elseif(clang_format_version MATCHES ".*LLVM version .*")
# CentOS 7 Output
# CentOS 7 output:
# LLVM (http://llvm.org/):
# LLVM version 3.4.2
# Optimized build.

View File

@ -22,7 +22,7 @@ endif()
if(Python_EXECUTABLE)
get_filename_component(_python_path ${Python_EXECUTABLE} PATH)
find_program(Cythonize_EXECUTABLE
NAMES cythonize3 cythonize cythonize.bat
NAMES cythonize-${Python_VERSION_MAJOR}.${Python_VERSION_MINOR} cythonize3 cythonize cythonize.bat
HINTS ${_python_path})
endif()

View File

@ -24,6 +24,21 @@ function(validate_option name values)
endif()
endfunction(validate_option)
# helper function to check for usable omp.h header
function(check_omp_h_include)
find_package(OpenMP COMPONENTS CXX QUIET)
if(OpenMP_CXX_FOUND)
set(CMAKE_REQUIRED_FLAGS ${OpenMP_CXX_FLAGS})
set(CMAKE_REQUIRED_INCLUDES ${OpenMP_CXX_INCLUDE_DIRS})
set(CMAKE_REQUIRED_LINK_OPTIONS ${OpenMP_CXX_FLAGS})
set(CMAKE_REQUIRED_LIBRARIES ${OpenMP_CXX_LIBRARIES})
check_include_file_cxx(omp.h _have_omp_h)
else()
set(_have_omp_h FALSE)
endif()
set(HAVE_OMP_H_INCLUDE ${_have_omp_h} PARENT_SCOPE)
endfunction()
# helper function for getting the most recently modified file or folder from a glob pattern
function(get_newest_file path variable)
file(GLOB _dirs ${path})

View File

@ -15,8 +15,9 @@ if(Kokkos_ENABLE_OPENMP)
if(NOT BUILD_OMP)
message(FATAL_ERROR "Must enable BUILD_OMP with Kokkos_ENABLE_OPENMP")
else()
if(LAMMPS_OMP_COMPAT_LEVEL LESS 4)
message(FATAL_ERROR "Compiler must support OpenMP 4.0 or later with Kokkos_ENABLE_OPENMP")
# NVHPC 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"))
message(FATAL_ERROR "Compiler must support OpenMP 3.1 or later with Kokkos_ENABLE_OPENMP")
endif()
endif()
endif()
@ -47,8 +48,8 @@ if(DOWNLOAD_KOKKOS)
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS}")
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}")
include(ExternalProject)
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/3.6.01.tar.gz" CACHE STRING "URL for KOKKOS tarball")
set(KOKKOS_MD5 "0ec97fc0c356dd65bd2487defe81a7bf" CACHE STRING "MD5 checksum of KOKKOS tarball")
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/3.7.00.tar.gz" CACHE STRING "URL for KOKKOS tarball")
set(KOKKOS_MD5 "84991eca9f066383abe119a5bc7a11c4" CACHE STRING "MD5 checksum of KOKKOS tarball")
mark_as_advanced(KOKKOS_URL)
mark_as_advanced(KOKKOS_MD5)
ExternalProject_Add(kokkos_build
@ -72,7 +73,7 @@ if(DOWNLOAD_KOKKOS)
add_dependencies(LAMMPS::KOKKOSCORE kokkos_build)
add_dependencies(LAMMPS::KOKKOSCONTAINERS kokkos_build)
elseif(EXTERNAL_KOKKOS)
find_package(Kokkos 3.6.01 REQUIRED CONFIG)
find_package(Kokkos 3.7.00 REQUIRED CONFIG)
target_link_libraries(lammps PRIVATE Kokkos::kokkos)
target_link_libraries(lmp PRIVATE Kokkos::kokkos)
else()
@ -138,6 +139,12 @@ if(PKG_KSPACE)
endif()
endif()
if(PKG_ML-IAP)
list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/mliap_data_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/mliap_descriptor_so3_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/mliap_model_linear_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/mliap_so3_kokkos.cpp)
endif()
if(PKG_PHONON)
list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/dynamical_matrix_kokkos.cpp)

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.11.tar.gz" CACHE STRING "URL for MDI tarball")
set(MDI_MD5 "3791fe5081405c14aac07d4687f1cc58" CACHE STRING "MD5 checksum for MDI tarball")
set(MDI_URL "https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.12.tar.gz" CACHE STRING "URL for MDI tarball")
set(MDI_MD5 "7a222353ae8e03961d5365e6cd48baee" CACHE STRING "MD5 checksum for MDI tarball")
mark_as_advanced(MDI_URL)
mark_as_advanced(MDI_MD5)
enable_language(C)
@ -49,6 +49,14 @@ if(DOWNLOAD_MDI)
set(MDI_USE_PYTHON_PLUGINS ON)
endif()
endif()
# python plugins are not supported and thus must be always off on Windows
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
unset(Python_Development_FOUND)
set(MDI_USE_PYTHON_PLUGINS OFF)
if(CMAKE_CROSSCOMPILING)
set(CMAKE_INSTALL_LIBDIR lib)
endif()
endif()
# download/ build MDI library
# always build static library with -fpic
@ -57,8 +65,9 @@ if(DOWNLOAD_MDI)
ExternalProject_Add(mdi_build
URL ${MDI_URL}
URL_MD5 ${MDI_MD5}
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/mdi_build_ext
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/mdi_build_ext
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
@ -70,23 +79,23 @@ if(DOWNLOAD_MDI)
-Dplugins=ON
-Dpython_plugins=${MDI_USE_PYTHON_PLUGINS}
UPDATE_COMMAND ""
INSTALL_COMMAND ""
BUILD_BYPRODUCTS "<BINARY_DIR>/MDI_Library/libmdi.a"
INSTALL_COMMAND ${CMAKE_COMMAND} --build ${CMAKE_CURRENT_BINARY_DIR}/mdi_build_ext/src/mdi_build-build --target install
BUILD_BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/mdi_build_ext/${CMAKE_INSTALL_LIBDIR}/mdi/${CMAKE_STATIC_LIBRARY_PREFIX}mdi${CMAKE_STATIC_LIBRARY_SUFFIX}"
)
# where is the compiled library?
ExternalProject_get_property(mdi_build BINARY_DIR)
set(MDI_BINARY_DIR "${BINARY_DIR}/MDI_Library")
ExternalProject_get_property(mdi_build PREFIX)
# workaround for older CMake versions
file(MAKE_DIRECTORY ${MDI_BINARY_DIR})
file(MAKE_DIRECTORY ${PREFIX}/${CMAKE_INSTALL_LIBDIR}/mdi)
file(MAKE_DIRECTORY ${PREFIX}/include/mdi)
# create imported target for the MDI library
add_library(LAMMPS::MDI UNKNOWN IMPORTED)
add_dependencies(LAMMPS::MDI mdi_build)
set_target_properties(LAMMPS::MDI PROPERTIES
IMPORTED_LOCATION "${MDI_BINARY_DIR}/libmdi.a"
INTERFACE_INCLUDE_DIRECTORIES ${MDI_BINARY_DIR}
)
IMPORTED_LOCATION "${PREFIX}/${CMAKE_INSTALL_LIBDIR}/mdi/${CMAKE_STATIC_LIBRARY_PREFIX}mdi${CMAKE_STATIC_LIBRARY_SUFFIX}"
INTERFACE_INCLUDE_DIRECTORIES ${PREFIX}/include/mdi
)
set(MDI_DEP_LIBS "")
# if compiling with python plugins we need

View File

@ -2,7 +2,13 @@
set(MLIAP_ENABLE_PYTHON_DEFAULT OFF)
if(PKG_PYTHON)
find_package(Cythonize QUIET)
if(Cythonize_FOUND)
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.14)
find_package(Python COMPONENTS NumPy QUIET)
else()
# assume we have NumPy
set(Python_NumPy_FOUND ON)
endif()
if(Cythonize_FOUND AND Python_NumPy_FOUND)
set(MLIAP_ENABLE_PYTHON_DEFAULT ON)
endif()
endif()
@ -11,6 +17,9 @@ option(MLIAP_ENABLE_PYTHON "Build ML-IAP package with Python support" ${MLIAP_EN
if(MLIAP_ENABLE_PYTHON)
find_package(Cythonize REQUIRED)
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.14)
find_package(Python COMPONENTS NumPy REQUIRED)
endif()
if(NOT PKG_PYTHON)
message(FATAL_ERROR "Must enable PYTHON package for including Python support in ML-IAP")
endif()
@ -25,16 +34,18 @@ if(MLIAP_ENABLE_PYTHON)
endif()
set(MLIAP_BINARY_DIR ${CMAKE_BINARY_DIR}/cython)
set(MLIAP_CYTHON_SRC ${LAMMPS_SOURCE_DIR}/ML-IAP/mliap_model_python_couple.pyx)
get_filename_component(MLIAP_CYTHON_BASE ${MLIAP_CYTHON_SRC} NAME_WE)
file(GLOB MLIAP_CYTHON_SRC ${LAMMPS_SOURCE_DIR}/ML-IAP/*.pyx)
file(MAKE_DIRECTORY ${MLIAP_BINARY_DIR})
add_custom_command(OUTPUT ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.h
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MLIAP_CYTHON_SRC} ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.pyx
COMMAND ${Cythonize_EXECUTABLE} -3 ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.pyx
WORKING_DIRECTORY ${MLIAP_BINARY_DIR}
MAIN_DEPENDENCY ${MLIAP_CYTHON_SRC}
COMMENT "Generating C++ sources with cythonize...")
foreach(MLIAP_CYTHON_FILE ${MLIAP_CYTHON_SRC})
get_filename_component(MLIAP_CYTHON_BASE ${MLIAP_CYTHON_FILE} NAME_WE)
add_custom_command(OUTPUT ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.h
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MLIAP_CYTHON_FILE} ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.pyx
COMMAND ${Cythonize_EXECUTABLE} -3 ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.pyx
WORKING_DIRECTORY ${MLIAP_BINARY_DIR}
MAIN_DEPENDENCY ${MLIAP_CYTHON_FILE}
COMMENT "Generating C++ sources with cythonize...")
target_sources(lammps PRIVATE ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp)
endforeach()
target_compile_definitions(lammps PRIVATE -DMLIAP_PYTHON)
target_sources(lammps PRIVATE ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp)
target_include_directories(lammps PRIVATE ${MLIAP_BINARY_DIR})
endif()

View File

@ -1,6 +1,6 @@
set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2021.10.25.fix2.tar.gz" CACHE STRING "URL for PACE evaluator library sources")
set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2022.10.15.tar.gz" CACHE STRING "URL for PACE evaluator library sources")
set(PACELIB_MD5 "32394d799bc282bb57696c78c456e64f" CACHE STRING "MD5 checksum of PACE evaluator library tarball")
set(PACELIB_MD5 "848ad6a6cc79fa82745927001fb1c9b5" CACHE STRING "MD5 checksum of PACE evaluator library tarball")
mark_as_advanced(PACELIB_URL)
mark_as_advanced(PACELIB_MD5)
@ -15,23 +15,9 @@ execute_process(
)
get_newest_file(${CMAKE_BINARY_DIR}/lammps-user-pace-* lib-pace)
# enforce building libyaml-cpp as static library and turn off optional features
set(YAML_BUILD_SHARED_LIBS OFF)
set(YAML_CPP_BUILD_CONTRIB OFF)
set(YAML_CPP_BUILD_TOOLS OFF)
add_subdirectory(${lib-pace}/yaml-cpp build-yaml-cpp)
set(YAML_CPP_INCLUDE_DIR ${lib-pace}/yaml-cpp/include)
file(GLOB PACE_EVALUATOR_INCLUDE_DIR ${lib-pace}/ML-PACE)
file(GLOB PACE_EVALUATOR_SOURCES ${lib-pace}/ML-PACE/*.cpp)
list(FILTER PACE_EVALUATOR_SOURCES EXCLUDE REGEX pair_pace.cpp)
add_library(pace STATIC ${PACE_EVALUATOR_SOURCES})
add_subdirectory(${lib-pace} build-pace)
set_target_properties(pace PROPERTIES CXX_EXTENSIONS ON OUTPUT_NAME lammps_pace${LAMMPS_MACHINE})
target_include_directories(pace PUBLIC ${PACE_EVALUATOR_INCLUDE_DIR} ${YAML_CPP_INCLUDE_DIR})
target_link_libraries(pace PRIVATE yaml-cpp-pace)
if(CMAKE_PROJECT_NAME STREQUAL "lammps")
target_link_libraries(lammps PRIVATE pace)
endif()

View File

@ -58,12 +58,12 @@ if(DOWNLOAD_QUIP)
BUILD_COMMAND env QUIP_ARCH=lammps make libquip
INSTALL_COMMAND ""
BUILD_IN_SOURCE YES
BUILD_BYPRODUCTS <SOURCE_DIR>/build/lammps/libquip.a
BUILD_BYPRODUCTS <SOURCE_DIR>/build/lammps/${CMAKE_STATIC_LIBRARY_PREFIX}quip${CMAKE_STATIC_LIBRARY_SUFFIX}
)
ExternalProject_get_property(quip_build SOURCE_DIR)
add_library(LAMMPS::QUIP UNKNOWN IMPORTED)
set_target_properties(LAMMPS::QUIP PROPERTIES
IMPORTED_LOCATION "${SOURCE_DIR}/build/lammps/libquip.a"
IMPORTED_LOCATION "${SOURCE_DIR}/build/lammps/${CMAKE_STATIC_LIBRARY_PREFIX}quip${CMAKE_STATIC_LIBRARY_SUFFIX}"
INTERFACE_LINK_LIBRARIES "${LAPACK_LIBRARIES}")
target_link_libraries(lammps PRIVATE LAMMPS::QUIP)
add_dependencies(LAMMPS::QUIP quip_build)

View File

@ -47,15 +47,15 @@ if(DOWNLOAD_PLUMED)
endif()
message(STATUS "PLUMED download requested - we will build our own")
if(PLUMED_MODE STREQUAL "STATIC")
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/libplumed.a")
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/${CMAKE_STATIC_LIBRARY_PREFIX}plumed${CMAKE_STATIC_LIBRARY_SUFFIX}")
elseif(PLUMED_MODE STREQUAL "SHARED")
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/libplumed${CMAKE_SHARED_LIBRARY_SUFFIX};<INSTALL_DIR>/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/${CMAKE_SHARED_LIBRARY_PREFIX}plumed${CMAKE_SHARED_LIBRARY_SUFFIX};<INSTALL_DIR>/lib/${CMAKE_SHARED_LIBRARY_PREFIX}plumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
elseif(PLUMED_MODE STREQUAL "RUNTIME")
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/libplumedWrapper.a")
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/${CMAKE_STATIC_LIBRARY_PREFIX}plumedWrapper${CMAKE_STATIC_LIBRARY_PREFIX}")
endif()
set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.7.4/plumed-src-2.7.4.tgz" CACHE STRING "URL for PLUMED tarball")
set(PLUMED_MD5 "858e0b6aed173748fc85b6bc8a9dcb3e" CACHE STRING "MD5 checksum of PLUMED tarball")
set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.8.1/plumed-src-2.8.1.tgz" CACHE STRING "URL for PLUMED tarball")
set(PLUMED_MD5 "6bfe72ebdae63dc38a9ca27d9b0e08f8" CACHE STRING "MD5 checksum of PLUMED tarball")
mark_as_advanced(PLUMED_URL)
mark_as_advanced(PLUMED_MD5)
@ -78,12 +78,12 @@ if(DOWNLOAD_PLUMED)
add_library(LAMMPS::PLUMED UNKNOWN IMPORTED)
add_dependencies(LAMMPS::PLUMED plumed_build)
if(PLUMED_MODE STREQUAL "STATIC")
set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libplumed.a INTERFACE_LINK_LIBRARIES "${PLUMED_LINK_LIBS};${CMAKE_DL_LIBS}")
set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}plumed${CMAKE_STATIC_LIBRARY_SUFFIX} INTERFACE_LINK_LIBRARIES "${PLUMED_LINK_LIBS};${CMAKE_DL_LIBS}")
elseif(PLUMED_MODE STREQUAL "SHARED")
set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libplumed${CMAKE_SHARED_LIBRARY_SUFFIX} INTERFACE_LINK_LIBRARIES "${INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX};${CMAKE_DL_LIBS}")
set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}plumed${CMAKE_SHARED_LIBRARY_SUFFIX} INTERFACE_LINK_LIBRARIES "${INSTALL_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}plumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX};${CMAKE_DL_LIBS}")
elseif(PLUMED_MODE STREQUAL "RUNTIME")
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_DEFAULT_KERNEL=${INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/libplumedWrapper.a INTERFACE_LINK_LIBRARIES "${CMAKE_DL_LIBS}")
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_DEFAULT_KERNEL=${INSTALL_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}plumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
set_target_properties(LAMMPS::PLUMED PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}plumedWrapper${CMAKE_STATIC_LIBRARY_SUFFIX} INTERFACE_LINK_LIBRARIES "${CMAKE_DL_LIBS}")
endif()
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
file(MAKE_DIRECTORY ${INSTALL_DIR}/include)
@ -96,7 +96,7 @@ else()
elseif(PLUMED_MODE STREQUAL "SHARED")
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.shared)
elseif(PLUMED_MODE STREQUAL "RUNTIME")
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_DEFAULT_KERNEL=${PLUMED_LIBDIR}/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}")
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)
endif()
set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_LINK_LIBRARIES "${PLUMED_LOAD}")

View File

@ -1,4 +1,9 @@
find_package(VTK REQUIRED NO_MODULE)
include(${VTK_USE_FILE})
target_compile_definitions(lammps PRIVATE -DLAMMPS_VTK)
target_link_libraries(lammps PRIVATE ${VTK_LIBRARIES})
if (VTK_MAJOR_VERSION VERSION_LESS 9.0)
include(${VTK_USE_FILE})
target_link_libraries(lammps PRIVATE ${VTK_LIBRARIES})
else()
target_link_libraries(lammps PRIVATE VTK::CommonCore VTK::IOCore VTK::CommonDataModel VTK::IOXML VTK::IOLegacy VTK::IOParallelXML)
vtk_module_autoinit(TARGETS lammps MODULES VTK::CommonCore VTK::IOCore VTK::CommonDataModel VTK::IOXML VTK::IOLegacy VTK::IOParallelXML)
endif()

View File

@ -28,10 +28,3 @@ set(MPI_CXX "clang++" CACHE STRING "" FORCE)
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)
set(OpenMP_C "clang" CACHE STRING "" FORCE)
set(OpenMP_C_FLAGS "-fopenmp" CACHE STRING "" FORCE)
set(OpenMP_C_LIB_NAMES "omp" CACHE STRING "" FORCE)
set(OpenMP_CXX "clang++" CACHE STRING "" FORCE)
set(OpenMP_CXX_FLAGS "-fopenmp" CACHE STRING "" FORCE)
set(OpenMP_CXX_LIB_NAMES "omp" CACHE STRING "" FORCE)
set(OpenMP_omp_LIBRARY "libomp.so" CACHE PATH "" FORCE)

View File

@ -19,11 +19,3 @@ set(CMAKE_Fortran_FLAGS_DEBUG "-Wall -Og -g -std=f2003" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-g -O2 -DNDEBUG -std=f2003" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG -std=f2003" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)
set(OpenMP_C "gcc" CACHE STRING "" FORCE)
set(OpenMP_C_FLAGS "-fopenmp" CACHE STRING "" FORCE)
set(OpenMP_C_LIB_NAMES "gomp" CACHE STRING "" FORCE)
set(OpenMP_CXX "g++" CACHE STRING "" FORCE)
set(OpenMP_CXX_FLAGS "-fopenmp" CACHE STRING "" FORCE)
set(OpenMP_CXX_LIB_NAMES "gomp" CACHE STRING "" FORCE)
set(OpenMP_omp_LIBRARY "libgomp.so" CACHE PATH "" FORCE)

View File

@ -1,4 +1,4 @@
# preset that will enable Intel compilers with support for MPI and OpenMP (on Linux boxes)
# preset that will enable the classic Intel compilers with support for MPI and OpenMP (on Linux boxes)
set(CMAKE_CXX_COMPILER "icpc" CACHE STRING "" FORCE)
set(CMAKE_C_COMPILER "icc" CACHE STRING "" FORCE)
@ -18,11 +18,11 @@ set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)
set(OpenMP_C "icc" CACHE STRING "" FORCE)
set(OpenMP_C_FLAGS "-qopenmp" 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 "icpc" CACHE STRING "" FORCE)
set(OpenMP_CXX_FLAGS "-qopenmp" 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" CACHE STRING "" FORCE)
set(OpenMP_Fortran_FLAGS "-qopenmp -qopenmp-simd" CACHE STRING "" FORCE)
set(OpenMP_omp_LIBRARY "libiomp5.so" CACHE PATH "" FORCE)

View File

@ -0,0 +1,9 @@
# preset that will enable Nvidia HPC SDK compilers with support for MPI and OpenMP (on Linux boxes)
set(CMAKE_CXX_COMPILER "nvc++" CACHE STRING "" FORCE)
set(CMAKE_C_COMPILER "nvc" CACHE STRING "" FORCE)
set(CMAKE_Fortran_COMPILER "nvfortran" CACHE STRING "" FORCE)
set(MPI_CXX "nvc++" CACHE STRING "" FORCE)
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)

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" 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" 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" CACHE STRING "" FORCE)
set(OpenMP_Fortran_FLAGS "-qopenmp -qopenmp-simd" CACHE STRING "" FORCE)
set(OpenMP_omp_LIBRARY "libiomp5.so" CACHE PATH "" FORCE)

View File

@ -1,4 +1,4 @@
# preset that will restore gcc/g++ with support for MPI and OpenMP (on Linux boxes)
# preset that will set gcc/g++ with extra warnings enabled and support for MPI and OpenMP (on Linux boxes)
set(CMAKE_CXX_COMPILER "g++" CACHE STRING "" FORCE)
set(CMAKE_C_COMPILER "gcc" CACHE STRING "" FORCE)
@ -17,10 +17,3 @@ set(MPI_Fortran "gfortran" CACHE STRING "" FORCE)
set(MPI_Fortran_COMPILER "mpifort" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)
set(OpenMP_C "gcc" CACHE STRING "" FORCE)
set(OpenMP_C_FLAGS "-fopenmp" CACHE STRING "" FORCE)
set(OpenMP_C_LIB_NAMES "gomp" CACHE STRING "" FORCE)
set(OpenMP_CXX "g++" CACHE STRING "" FORCE)
set(OpenMP_CXX_FLAGS "-fopenmp" CACHE STRING "" FORCE)
set(OpenMP_CXX_LIB_NAMES "gomp" CACHE STRING "" FORCE)
set(OpenMP_omp_LIBRARY "libgomp.so" CACHE PATH "" FORCE)

View File

@ -7,10 +7,3 @@ set(MPI_CXX "pgc++" CACHE STRING "" FORCE)
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)
set(OpenMP_C "pgcc" CACHE STRING "" FORCE)
set(OpenMP_C_FLAGS "-mp" CACHE STRING "" FORCE)
set(OpenMP_C_LIB_NAMES "omp" CACHE STRING "" FORCE)
set(OpenMP_CXX "pgc++" CACHE STRING "" FORCE)
set(OpenMP_CXX_FLAGS "-mp" CACHE STRING "" FORCE)
set(OpenMP_CXX_LIB_NAMES "omp" CACHE STRING "" FORCE)
set(OpenMP_omp_LIBRARY "libomp.so" CACHE PATH "" FORCE)

View File

@ -38,16 +38,14 @@ endif
# override settings for PIP commands
# PIP_OPTIONS = --cert /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt --proxy http://proxy.mydomain.org
#SPHINXEXTRA = -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocessing.cpu_count())') $(shell test -f $(BUILDDIR)/doxygen/xml/run.stamp && printf -- "-E")
# temporarily disable caching so that the hack for the sphinx-tabs extensions to get proper non-html output works
SPHINXEXTRA = -E -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocessing.cpu_count())')
SPHINXEXTRA = -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocessing.cpu_count())')
# grab list of sources from doxygen config file.
# we only want to use explicitly listed files.
DOXYFILES = $(shell sed -n -e 's/\#.*$$//' -e '/^ *INPUT \+=/,/^[A-Z_]\+ \+=/p' doxygen/Doxyfile.in | sed -e 's/@LAMMPS_SOURCE_DIR@/..\/src/g' -e 's/\\//g' -e 's/ \+/ /' -e 's/[A-Z_]\+ \+= *\(YES\|NO\|\)//')
.PHONY: help clean-all clean clean-spelling epub mobi rst html pdf spelling anchor_check style_check char_check xmlgen fasthtml
.PHONY: help clean-all clean clean-spelling epub mobi html pdf spelling anchor_check style_check char_check xmlgen fasthtml
# ------------------------------------------
@ -89,6 +87,8 @@ html: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJAX)
@$(MAKE) $(MFLAGS) -C graphviz all
@(\
. $(VENV)/bin/activate ; env PYTHONWARNINGS= \
sphinx-build -E $(SPHINXEXTRA) -b html -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\
touch $(RSTDIR)/Fortran.rst ;\
sphinx-build $(SPHINXEXTRA) -b html -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\
ln -sf Manual.html html/index.html;\
rm -f $(BUILDDIR)/doxygen/xml/run.stamp;\
@ -114,7 +114,9 @@ fasthtml: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJAX)
@mkdir -p fasthtml
@(\
. $(VENV)/bin/activate ; env PYTHONWARNINGS= \
sphinx-build -j 4 -b html -c $(SPHINXCONFIG) -d $(BUILDDIR)/fasthtml/doctrees $(RSTDIR) fasthtml ;\
sphinx-build $(SPHINXEXTRA) -b html -c $(SPHINXCONFIG) -d $(BUILDDIR)/fasthtml/doctrees $(RSTDIR) fasthtml ;\
touch $(RSTDIR)/Fortran.rst ;\
sphinx-build $(SPHINXEXTRA) -b html -c $(SPHINXCONFIG) -d $(BUILDDIR)/fasthtml/doctrees $(RSTDIR) fasthtml ;\
deactivate ;\
)
@rm -rf fasthtml/_sources
@ -144,6 +146,8 @@ epub: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK)
@cp src/JPG/*.* epub/JPG
@(\
. $(VENV)/bin/activate ;\
sphinx-build -E $(SPHINXEXTRA) -b epub -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) epub ;\
touch $(RSTDIR)/Fortran.rst ;\
sphinx-build $(SPHINXEXTRA) -b epub -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) epub ;\
rm -f $(BUILDDIR)/doxygen/xml/run.stamp;\
deactivate ;\
@ -163,7 +167,9 @@ pdf: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK)
@if [ "$(HAS_PDFLATEX)" == "NO" ] ; then echo "PDFLaTeX or latexmk were not found! Please check README for further instructions" 1>&2; exit 1; fi
@(\
. $(VENV)/bin/activate ; env PYTHONWARNINGS= \
sphinx-build $(SPHINXEXTRA) -b latex -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) latex ;\
sphinx-build -E $(SPHINXEXTRA) -b latex -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) latex ;\
touch $(RSTDIR)/Fortran.rst ;\
sphinx-build $(SPHINXEXTRA) -b latex -c $(SPHINXCONFIG) -d $(BUILDDIR)/doctrees $(RSTDIR) latex ;\
rm -f $(BUILDDIR)/doxygen/xml/run.stamp;\
echo "############################################" ;\
rst_anchor_check src/*.rst ;\

View File

@ -1,7 +1,7 @@
.TH LAMMPS "1" "15 September 2022" "2022-9-15"
.TH LAMMPS "1" "3 November 2022" "2022-11-3"
.SH NAME
.B LAMMPS
\- Molecular Dynamics Simulator. Version 15 September 2022
\- Molecular Dynamics Simulator. Version 3 November 2022
.SH SYNOPSIS
.B lmp

View File

@ -314,7 +314,7 @@ Bibliography
Espanol, Revenga, Physical Review E, 67, 026705 (2003).
**(Espanol1997)**
Espanol, Europhys Lett, 40(6): 631-636 (1997). DOI: 10.1209/epl/i1997-00515-8
Espanol, Europhys Lett, 40(6): 631-636 (1997). DOI:10.1209/epl/i1997-00515-8
**(Evans and Morriss)**
Evans and Morriss, Phys Rev A, 30, 1528 (1984).
@ -368,7 +368,7 @@ Bibliography
Frenkel and Smit, Understanding Molecular Simulation, Academic Press, London, 2002.
**(GLE4MD)**
`http://gle4md.org/ <http://gle4md.org/>`_
`https://gle4md.org/ <https://gle4md.org/>`_
**(Gao)**
Gao and Weber, Nuclear Instruments and Methods in Physics Research B 191 (2012) 504.
@ -401,13 +401,13 @@ Bibliography
Hayre, and Farago, Comp Phys Comm, 185, 524 (2014)
**(Groot)**
Groot and Warren, J Chem Phys, 107: 4423-4435 (1997). DOI: 10.1063/1.474784
Groot and Warren, J Chem Phys, 107: 4423-4435 (1997). DOI:10.1063/1.474784
**(Guenole)**
Guenole, Noehring, Vaid, Houlle, Xie, Prakash, Bitzek, Comput Mater Sci, 175, 109584 (2020).
**(Gullet)**
Gullet, Wagner, Slepoy, SANDIA Report 2003-8782 (2003).
Gullet, Wagner, Slepoy, SANDIA Report 2003-8782 (2003). DOI:10.2172/918395
**(Guo)**
Guo and Thirumalai, Journal of Molecular Biology, 263, 323-43 (1996).
@ -461,7 +461,7 @@ Bibliography
Hunt, Mol Simul, 42, 347 (2016).
**(IPI)**
`http://epfl-cosmo.github.io/gle4md/index.html?page=ipi <http://epfl-cosmo.github.io/gle4md/index.html?page=ipi>`_
`https://ipi-code.org/ <https://ipi-code.org/>`
**(IPI-CPC)**
Ceriotti, More and Manolopoulos, Comp Phys Comm, 185, 1019-1026 (2014).
@ -605,16 +605,16 @@ Bibliography
I.\ Leven et al, J. Chem.Theory Comput. 12, 2896-905 (2016).
**(Li2013_POF)**
Li, Hu, Wang, Ma, Zhou, Phys Fluids, 25: 072103 (2013). DOI: 10.1063/1.4812366.
Li, Hu, Wang, Ma, Zhou, Phys Fluids, 25: 072103 (2013). DOI:10.1063/1.4812366.
**(Li2014_JCP)**
Li, Tang, Lei, Caswell, Karniadakis, J Comput Phys, 265: 113-127 (2014). DOI: 10.1016/j.jcp.2014.02.003.
Li, Tang, Lei, Caswell, Karniadakis, J Comput Phys, 265: 113-127 (2014). DOI:10.1016/j.jcp.2014.02.003.
**(Li2015_CC)**
Li, Tang, Li, Karniadakis, Chem Commun, 51: 11038-11040 (2015). DOI: 10.1039/C5CC01684C.
Li, Tang, Li, Karniadakis, Chem Commun, 51: 11038-11040 (2015). DOI:10.1039/C5CC01684C.
**(Li2015_JCP)**
Li, Yazdani, Tartakovsky, Karniadakis, J Chem Phys, 143: 014101 (2015). DOI: 10.1063/1.4923254.
Li, Yazdani, Tartakovsky, Karniadakis, J Chem Phys, 143: 014101 (2015). DOI:10.1063/1.4923254.
**(Lisal)**
M.\ Lisal, J.K. Brennan, J. Bonet Avalos, "Dissipative particle dynamics at isothermal, isobaric, isoenergetic, and isoenthalpic conditions using Shardlow-like splitting algorithms.",
@ -733,8 +733,8 @@ Bibliography
**(Mishin)**
Mishin, Mehl, and Papaconstantopoulos, Acta Mater, 53, 4029 (2005).
**(Mitchell and Finchham)**
Mitchell, Finchham, J Phys Condensed Matter, 5, 1031-1038 (1993).
**(Mitchell and Fincham)**
Mitchell, Fincham, J Phys Condensed Matter, 5, 1031-1038 (1993).
**(Mitchell2011)**
Mitchell. A non-local, ordinary-state-based viscoelasticity model for peridynamics. Sandia National Lab Report, 8064:1-28 (2011).
@ -875,7 +875,7 @@ Bibliography
G.A. Tribello, M. Bonomi, D. Branduardi, C. Camilloni and G. Bussi, Comp. Phys. Comm 185, 604 (2014)
**(Paquay)**
Paquay and Kusters, Biophys. J., 110, 6, (2016). preprint available at `arXiv:1411.3019 <http://arxiv.org/abs/1411.3019/>`_.
Paquay and Kusters, Biophys. J., 110, 6, (2016). preprint available at `arXiv:1411.3019 <https://arxiv.org/abs/1411.3019/>`_.
**(Park)**
Park, Schulten, J. Chem. Phys. 120 (13), 5946 (2004)

View File

@ -140,13 +140,23 @@ of the LAMMPS project on GitHub.
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 <http://pyyaml.org/>`_ library and development
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.
.. admonition:: Software version requirements for testing
:class: note
The compiler and library version requirements for the testing
framework are more strict than for the main part of LAMMPS. For
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 compatible versions and either skip incompatible tests or
stop with an error.
After compilation is complete, the unit testing is started in the build
folder using the ``ctest`` command, which is part of the CMake software.
The output of this command will be looking something like this::

View File

@ -234,7 +234,7 @@ LAMMPS code. This also applies to the ``-DLAMMPS_BIGBIG``\ ,
Makefile you use.
You can also build the library in one step from the ``lammps/src`` dir,
using a command like these, which simply invoke the ``lib/gpu/Install.py``
using a command like these, which simply invokes the ``lib/gpu/Install.py``
script with the specified args:
.. code-block:: bash
@ -314,7 +314,7 @@ detailed information is available at:
In addition to installing the KIM API, it is also necessary to install the
library of KIM models (interatomic potentials).
See `Obtaining KIM Models <http://openkim.org/doc/usage/obtaining-models>`_ to
See `Obtaining KIM Models <https://openkim.org/doc/usage/obtaining-models>`_ to
learn how to install a pre-build binary of the OpenKIM Repository of Models.
See the list of all KIM models here: https://openkim.org/browse/models
@ -350,7 +350,7 @@ minutes to hours) to build. Of course you only need to do that once.)
You can download and build the KIM library manually if you prefer;
follow the instructions in ``lib/kim/README``. You can also do
this in one step from the lammps/src directory, using a command like
these, which simply invoke the ``lib/kim/Install.py`` script with
these, which simply invokes the ``lib/kim/Install.py`` script with
the specified args.
.. code-block:: bash
@ -432,7 +432,7 @@ Enabling the extra unit tests have some requirements,
``EAM_Dynamo_MendelevAckland_2007v3_Zr__MO_004835508849_000``,
``EAM_Dynamo_ErcolessiAdams_1994_Al__MO_123629422045_005``, and
``LennardJones612_UniversalShifted__MO_959249795837_003`` KIM models.
See `Obtaining KIM Models <http://openkim.org/doc/usage/obtaining-models>`_
See `Obtaining KIM Models <https://openkim.org/doc/usage/obtaining-models>`_
to learn how to install a pre-built binary of the OpenKIM Repository of
Models or see
`Installing KIM Models <https://openkim.org/doc/usage/obtaining-models/#installing_models>`_
@ -483,6 +483,9 @@ They must be specified in uppercase.
* - **Arch-ID**
- **HOST or GPU**
- **Description**
* - NATIVE
- HOST
- Local machine
* - AMDAVX
- HOST
- AMD 64-bit x86 CPU (AVX 1)
@ -522,9 +525,21 @@ They must be specified in uppercase.
* - BDW
- HOST
- Intel Broadwell Xeon E-class CPU (AVX 2 + transactional mem)
* - SKL
- HOST
- Intel Skylake Client CPU
* - SKX
- HOST
- Intel Sky Lake Xeon E-class HPC CPU (AVX512 + transactional mem)
- Intel Skylake Xeon Server CPU (AVX512)
* - ICL
- HOST
- Intel Ice Lake Client CPU (AVX512)
* - ICX
- HOST
- Intel Ice Lake Xeon Server CPU (AVX512)
* - SPR
- HOST
- Intel Sapphire Rapids Xeon Server CPU (AVX512)
* - KNC
- HOST
- Intel Knights Corner Xeon Phi
@ -596,7 +611,10 @@ They must be specified in uppercase.
- AMD GPU MI100 GFX908
* - VEGA90A
- GPU
- AMD GPU
- AMD GPU MI200 GFX90A
* - INTEL_GEN
- GPU
- SPIR64-based devices, e.g. Intel GPUs, using JIT
* - INTEL_DG1
- GPU
- Intel Iris XeMAX GPU
@ -611,9 +629,12 @@ They must be specified in uppercase.
- Intel GPU Gen12LP
* - INTEL_XEHP
- GPU
- Intel GPUs Xe-HP
- Intel GPU Xe-HP
* - INTEL_PVC
- GPU
- Intel GPU Ponte Vecchio
This list was last updated for version 3.5.0 of the Kokkos library.
This list was last updated for version 3.7.0 of the Kokkos library.
.. tabs::
@ -933,7 +954,7 @@ more details.
You can download and build the MS-CG library manually if you
prefer; follow the instructions in ``lib/mscg/README``\ . You can
also do it in one step from the ``lammps/src`` dir, using a
command like these, which simply invoke the
command like these, which simply invokes the
``lib/mscg/Install.py`` script with the specified args:
.. code-block:: bash
@ -990,7 +1011,7 @@ POEMS package
``lib/poems``\ . You can do this manually if you prefer; follow
the instructions in ``lib/poems/README``\ . You can also do it in
one step from the ``lammps/src`` dir, using a command like these,
which simply invoke the ``lib/poems/Install.py`` script with the
which simply invokes the ``lib/poems/Install.py`` script with the
specified args:
.. code-block:: bash
@ -1053,7 +1074,7 @@ VORONOI package
-----------------------------
To build with this package, you must download and build the
`Voro++ library <http://math.lbl.gov/voro++>`_ or install a
`Voro++ library <https://math.lbl.gov/voro++>`_ or install a
binary package provided by your operating system.
.. tabs::
@ -1079,7 +1100,7 @@ binary package provided by your operating system.
You can download and build the Voro++ library manually if you
prefer; follow the instructions in ``lib/voronoi/README``. You
can also do it in one step from the ``lammps/src`` dir, using a
command like these, which simply invoke the
command like these, which simply invokes the
``lib/voronoi/Install.py`` script with the specified args:
.. code-block:: bash
@ -1158,7 +1179,7 @@ The ATC package requires the MANYBODY package also be installed.
``lib/atc``. You can do this manually if you prefer; follow the
instructions in ``lib/atc/README``. You can also do it in one
step from the ``lammps/src`` dir, using a command like these,
which simply invoke the ``lib/atc/Install.py`` script with the
which simply invokes the ``lib/atc/Install.py`` script with the
specified args:
.. code-block:: bash
@ -1209,7 +1230,7 @@ AWPMD package
``lib/awpmd``. You can do this manually if you prefer; follow the
instructions in ``lib/awpmd/README``. You can also do it in one
step from the ``lammps/src`` dir, using a command like these,
which simply invoke the ``lib/awpmd/Install.py`` script with the
which simply invokes the ``lib/awpmd/Install.py`` script with the
specified args:
.. code-block:: bash
@ -1272,7 +1293,7 @@ be built for the most part with all major versions of the C++ language.
In general, it is safer to use build setting consistent with the
rest of LAMMPS. This is best carried out from the LAMMPS src
directory using a command like these, which simply invoke the
directory using a command like these, which simply invokes the
``lib/colvars/Install.py`` script with the specified args:
.. code-block:: bash
@ -1313,20 +1334,30 @@ This package depends on the KSPACE package.
.. tab:: CMake build
No additional settings are needed besides ``-D PKG_KSPACE=yes`` and ``-D
PKG_ELECTRODE=yes``.
No additional settings are needed besides ``-D PKG_KSPACE=yes`` and
``-D PKG_ELECTRODE=yes``.
.. tab:: Traditional make
The package is activated with ``make yes-KSPACE`` and ``make
yes-ELECTRODE``
Before building LAMMPS, you must configure the ELECTRODE support
libraries and settings in ``lib/electrode``. You can do this
manually, if you prefer, or do it in one step from the
``lammps/src`` dir, using a command like these, which simply
invokes the ``lib/electrode/Install.py`` script with the specified
args:
.. code-block:: bash
$ make lib-electrode # print help message
$ make lib-electrode args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
$ make lib-electrode args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
Note that the ``Makefile.lammps`` file has settings for the BLAS and
LAPACK linear algebra libraries. As explained in ``lib/awpmd/README``
these can either exist on your system, or you can use the files provided
in ``lib/linalg``. In the latter case you also need to build the library
in ``lib/linalg`` with a command like these:
Note that the ``Makefile.lammps`` file has settings for the BLAS
and LAPACK linear algebra libraries. These can either exist on
your system, or you can use the files provided in ``lib/linalg``.
In the latter case you also need to build the library in
``lib/linalg`` with a command like these:
.. code-block:: bash
@ -1335,6 +1366,9 @@ This package depends on the KSPACE package.
$ make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
$ make lib-linalg args="-m gfortran" # build with GNU Fortran compiler
The package itself is activated with ``make yes-KSPACE`` and
``make yes-ELECTRODE``
----------
.. _ml-pace:
@ -1534,7 +1568,7 @@ the HDF5 library.
``lib/h5md``. You can do this manually if you prefer; follow the
instructions in ``lib/h5md/README``. You can also do it in one
step from the ``lammps/src`` dir, using a command like these,
which simply invoke the ``lib/h5md/Install.py`` script with the
which simply invokes the ``lib/h5md/Install.py`` script with the
specified args:
.. code-block:: bash
@ -1590,7 +1624,7 @@ details please see ``lib/hdnnp/README`` and the `n2p2 build documentation
You can download and build the *n2p2* library manually if you prefer;
follow the instructions in ``lib/hdnnp/README``\ . You can also do it in
one step from the ``lammps/src`` dir, using a command like these, which
simply invoke the ``lib/hdnnp/Install.py`` script with the specified args:
simply invokes the ``lib/hdnnp/Install.py`` script with the specified args:
.. code-block:: bash
@ -1727,7 +1761,7 @@ they will be downloaded the first time this package is installed.
Before building LAMMPS, you must build the *mesont* library in
``lib/mesont``\ . You can also do it in one step from the
``lammps/src`` dir, using a command like these, which simply
invoke the ``lib/mesont/Install.py`` script with the specified
invokes the ``lib/mesont/Install.py`` script with the specified
args:
.. code-block:: bash
@ -1896,7 +1930,7 @@ verified to work in February 2020 with Quantum Espresso versions 6.3 to
``lib/qmmm``. You can do this manually if you prefer; follow the
first two steps explained in ``lib/qmmm/README``. You can also do
it in one step from the ``lammps/src`` dir, using a command like
these, which simply invoke the ``lib/qmmm/Install.py`` script with
these, which simply invokes the ``lib/qmmm/Install.py`` script with
the specified args:
.. code-block:: bash
@ -2004,7 +2038,7 @@ To build with this package, you must download and build the
You can download and build the ScaFaCoS library manually if you
prefer; follow the instructions in ``lib/scafacos/README``. You
can also do it in one step from the ``lammps/src`` dir, using a
command like these, which simply invoke the
command like these, which simply invokes the
``lib/scafacos/Install.py`` script with the specified args:
.. code-block:: bash
@ -2048,7 +2082,7 @@ Eigen3 is a template library, so you do not need to build it.
You can download the Eigen3 library manually if you prefer; follow
the instructions in ``lib/smd/README``. You can also do it in one
step from the ``lammps/src`` dir, using a command like these,
which simply invoke the ``lib/smd/Install.py`` script with the
which simply invokes the ``lib/smd/Install.py`` script with the
specified args:
.. code-block:: bash

View File

@ -176,7 +176,7 @@ math expressions transparently into embedded images.
For converting the generated ePUB file to a MOBI format file (for e-book
readers, like Kindle, that cannot read ePUB), you also need to have the
``ebook-convert`` tool from the "calibre" software
installed. `http://calibre-ebook.com/ <http://calibre-ebook.com/>`_
installed. `https://calibre-ebook.com/ <https://calibre-ebook.com/>`_
Typing ``make mobi`` will first create the ePUB file and then convert
it. On the Kindle readers in particular, you also have support for PDF
files, so you could download and view the PDF version as an alternative.
@ -216,9 +216,20 @@ be multiple tests run automatically:
- A test that only standard, printable ASCII text characters are used.
This runs the command ``env LC_ALL=C grep -n '[^ -~]' src/*.rst`` and
thus prints all offending lines with filename and line number
prepended to the screen. Special characters like the Angstrom
:math:`\mathrm{\mathring{A}}` should be typeset with embedded math
(like this ``:math:`\mathrm{\mathring{A}}```\ ).
prepended to the screen. Special characters like Greek letters
(:math:`\alpha~~\sigma~~\epsilon`), super- or subscripts
(:math:`x^2~~\mathrm{U}_{LJ}`), mathematical expressions
(:math:`\frac{1}{2}\mathrm{N}~~x\to\infty`), or the Angstrom symbol
(:math:`\AA`) should be typeset with embedded LaTeX (like this
``:math:`\alpha \sigma \epsilon```, ``:math:`x^2 \mathrm{E}_{LJ}```,
``:math:`\frac{1}{2}\mathrm{N} x\to\infty```, or ``:math:`\AA```\ ).
- Embedded LaTeX is rendered in HTML output with `MathJax
<https://www.mathjax.org/>`_ and in PDF output by passing the embedded
text to LaTeX. Some care has to be taken, though, since there are
limitations which macros and features can be used in either mode, so
it is recommended to always check whether any new or changed
documentation does translate and render correctly with either output.
- A test whether all styles are documented and listed in their
respective overview pages. A typical output with warnings looks like this:

View File

@ -111,26 +111,25 @@ 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.
The `KISS FFT library <http://kissfft.sf.net>`_ is included in the LAMMPS
distribution. It is portable across all platforms. Depending on the size
of the FFTs and the number of processors used, the other libraries listed
here can be faster.
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
processors used, the other libraries listed here can be faster.
However, note that long-range Coulombics are only a portion of the
per-timestep CPU cost, FFTs are only a portion of long-range
Coulombics, and 1d FFTs are only a portion of the FFT cost (parallel
communication can be costly). A breakdown of these timings is printed
to the screen at the end of a run when using the
:doc:`kspace_style pppm <kspace_style>` command. The
:doc:`Screen and logfile output <Run_output>`
page gives more details. A more detailed (and time consuming)
report of the FFT performance is generated with the
per-timestep CPU cost, FFTs are only a portion of long-range Coulombics,
and 1d FFTs are only a portion of the FFT cost (parallel communication
can be costly). A breakdown of these timings is printed to the screen
at the end of a run when using the :doc:`kspace_style pppm
<kspace_style>` command. The :doc:`Screen and logfile output
<Run_output>` page gives more details. A more detailed (and time
consuming) report of the FFT performance is generated with the
:doc:`kspace_modify fftbench yes <kspace_modify>` command.
FFTW is a fast, portable FFT library that should also work on any
platform and can be faster than the KISS FFT library. You can
download it from `www.fftw.org <http://www.fftw.org>`_. LAMMPS requires
version 3.X; the legacy version 2.1.X is no longer supported.
platform and can be faster than the KISS FFT library. You can download
it from `www.fftw.org <https://www.fftw.org>`_. LAMMPS requires version
3.X; the legacy version 2.1.X is no longer supported.
Building FFTW for your box should be as simple as ``./configure; make;
make install``. The install command typically requires root privileges

View File

@ -205,7 +205,7 @@ OPT.
* :doc:`mesont/tpm <pair_mesont_tpm>`
* :doc:`mgpt <pair_mgpt>`
* :doc:`mie/cut (g) <pair_mie>`
* :doc:`mliap <pair_mliap>`
* :doc:`mliap (k) <pair_mliap>`
* :doc:`mm3/switch3/coulgauss/long <pair_lj_switch3_coulgauss_long>`
* :doc:`momb <pair_momb>`
* :doc:`morse (gkot) <pair_morse>`
@ -236,6 +236,7 @@ OPT.
* :doc:`oxrna2/xstk <pair_oxrna2>`
* :doc:`oxrna2/coaxstk <pair_oxrna2>`
* :doc:`pace (k) <pair_pace>`
* :doc:`pace/extrapolation <pair_pace>`
* :doc:`peri/eps <pair_peri>`
* :doc:`peri/lps (o) <pair_peri>`
* :doc:`peri/pmb (o) <pair_peri>`
@ -294,6 +295,7 @@ OPT.
* :doc:`vashishta (gko) <pair_vashishta>`
* :doc:`vashishta/table (o) <pair_vashishta>`
* :doc:`wf/cut <pair_wf_cut>`
* :doc:`ylz <pair_ylz>`
* :doc:`yukawa (gko) <pair_yukawa>`
* :doc:`yukawa/colloid (go) <pair_yukawa_colloid>`
* :doc:`zbl (gko) <pair_zbl>`

View File

@ -7,7 +7,7 @@ source files provided as a supplement to a publication) that are written
for an older version of LAMMPS and thus need to be updated to be
compatible with the current version of LAMMPS. Due to the active
development of LAMMPS it is likely to always be incomplete. Please
contact developer@lammps.org in case you run across an issue that is not
contact developers@lammps.org in case you run across an issue that is not
(yet) listed here. Please also review the latest information about the
LAMMPS :doc:`programming style conventions <Modify_style>`, especially
if you are considering to submit the updated version for inclusion into

View File

@ -75,7 +75,7 @@ Using the GDB debugger to get a stack trace
There are two options to use the GDB debugger for identifying the origin
of the segmentation fault or similar crash. The GDB debugger has many
more features and options, as can be seen for example its `online
documentation <http://sourceware.org/gdb/current/onlinedocs/gdb/>`_.
documentation <https://sourceware.org/gdb/current/onlinedocs/gdb/>`_.
Run LAMMPS from within the debugger
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File diff suppressed because it is too large Load Diff

View File

@ -85,6 +85,7 @@ Packages howto
Howto_coreshell
Howto_drude
Howto_drude2
Howto_peri
Howto_manifold
Howto_spins

View File

@ -281,7 +281,7 @@ Here is more information about the extended XYZ format defined and
used by Tinker, and links to programs that convert standard PDB files
to the extended XYZ format:
* `http://openbabel.org/docs/current/FileFormats/Tinker_XYZ_format.html <http://openbabel.org/docs/current/FileFormats/Tinker_XYZ_format.html>`_
* `https://openbabel.org/docs/current/FileFormats/Tinker_XYZ_format.html <https://openbabel.org/docs/current/FileFormats/Tinker_XYZ_format.html>`_
* `https://github.com/emleddin/pdbxyz-xyzpdb <https://github.com/emleddin/pdbxyz-xyzpdb>`_
* `https://github.com/TinkerTools/tinker/blob/release/source/pdbxyz.f <https://github.com/TinkerTools/tinker/blob/release/source/pdbxyz.f>`_

View File

@ -3,24 +3,20 @@ CHARMM, AMBER, COMPASS, and DREIDING force fields
A force field has 2 parts: the formulas that define it and the
coefficients used for a particular system. Here we only discuss
formulas implemented in LAMMPS that correspond to formulas commonly
used in the CHARMM, AMBER, COMPASS, and DREIDING force fields. Setting
formulas implemented in LAMMPS that correspond to formulas commonly used
in the CHARMM, AMBER, COMPASS, and DREIDING force fields. Setting
coefficients is done either from special sections in an input data file
via the :doc:`read_data <read_data>` command or in the input script with
commands like :doc:`pair_coeff <pair_coeff>` or
:doc:`bond_coeff <bond_coeff>` and so on. See the :doc:`Tools <Tools>` doc
page for additional tools that can use CHARMM, AMBER, or Materials
Studio generated files to assign force field coefficients and convert
their output into LAMMPS input.
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.
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: http://www.scripps.edu/brooks
.. _amber: http://amber.scripps.edu
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.
The interaction styles listed below compute force field formulas that
are consistent with common options in CHARMM or AMBER. See each
@ -41,9 +37,10 @@ command's documentation for the formula it computes.
.. note::
For CHARMM, newer *charmmfsw* or *charmmfsh* styles were released
in March 2017. We recommend they be used instead of the older *charmm*
styles. See discussion of the differences on the :doc:`pair charmm <pair_charmm>` and :doc:`dihedral charmm <dihedral_charmm>` doc
For CHARMM, newer *charmmfsw* or *charmmfsh* styles were released in
March 2017. We recommend they be used instead of the older *charmm*
styles. See discussion of the differences on the :doc:`pair charmm
<pair_charmm>` and :doc:`dihedral charmm <dihedral_charmm>` doc
pages.
COMPASS is a general force field for atomistic simulation of common

View File

@ -33,46 +33,6 @@ reference state of a bond. Bonds that are created midway into a run,
such as those created by pouring grains using :doc:`fix pour
<fix_pour>`, are initialized on that timestep.
As bonds can be broken between neighbor list builds, the
:doc:`special_bonds <special_bonds>` command works differently for BPM
bond styles. There are two possible settings which determine how pair
interactions work between bonded particles. First, one can turn off
all pair interactions between bonded particles. Unlike :doc:`bond
quartic <bond_quartic>`, this is not done by subtracting pair forces
during the bond computation but rather by dynamically updating the
special bond list. This is the default behavior of BPM bond styles and
is done by updating the 1-2 special bond list as bonds break. To do
this, LAMMPS requires :doc:`newton <newton>` bond off such that all
processors containing an atom know when a bond breaks. Additionally,
one must do either (A) or (B).
A) Use the following special bond settings
.. code-block:: LAMMPS
special_bonds lj 0 1 1 coul 1 1 1
These settings accomplish two goals. First, they turn off 1-3 and 1-4
special bond lists, which are not currently supported for BPMs. As
BPMs often have dense bond networks, generating 1-3 and 1-4 special
bond lists is expensive. By setting the lj weight for 1-2 bonds to
zero, this turns off pairwise interactions. Even though there are no
charges in BPM models, setting a nonzero coul weight for 1-2 bonds
ensures all bonded neighbors are still included in the neighbor list
in case bonds break between neighbor list builds.
B) Alternatively, one can simply overlay pair interactions such that all
bonded particles also feel pair interactions. This can be
accomplished by using the *overlay/pair* keyword present in all bpm
bond styles and by using the following special bond settings
.. code-block:: LAMMPS
special_bonds lj/coul 1 1 1
See the :doc:`Howto <Howto_broken_bonds>` page on broken bonds for
more information.
----------
Currently there are two types of bonds included in the BPM
@ -91,12 +51,6 @@ This also requires a unique integrator :doc:`fix nve/bpm/sphere
<fix_nve_bpm_sphere>` which numerically integrates orientation similar
to :doc:`fix nve/asphere <fix_nve_asphere>`.
To monitor the fracture of bonds in the system, all BPM bond styles
have the ability to record instances of bond breakage to output using
the :doc:`dump local <dump>` command. Additionally, one can use
:doc:`compute nbond/atom <compute_nbond_atom>` to tally the current
number of bonds per atom.
In addition to bond styles, a new pair style :doc:`pair bpm/spring
<pair_bpm_spring>` was added to accompany the bpm/spring bond
style. This pair style is simply a hookean repulsion with similar
@ -104,6 +58,73 @@ velocity damping as its sister bond style.
----------
Bond data can be output using a combination of standard LAMMPS commands.
A list of IDs for bonded atoms can be generated using the
:doc:`compute property/local <compute_property_local>` command.
Various properties of bonds can be computed using the
:doc:`compute bond/local <compute_bond_local>` command. This
command allows one to access data saved to the bond's history
such as the reference length of the bond. More information on
bond history data can be found on the documentation pages for the specific
BPM bond styles. Finally, this data can be output using a :doc:`dump local <dump>`
command. As one may output many columns from the same compute, the
:doc:`dump modify <dump_modify>` *colname* option may be used to provide
more helpful column names. An example of this procedure is found in
/examples/bpm/pour/. External software, such as OVITO, can read these dump
files to render bond data.
----------
As bonds can be broken between neighbor list builds, the
:doc:`special_bonds <special_bonds>` command works differently for BPM
bond styles. There are two possible settings which determine how pair
interactions work between bonded particles. First, one can overlay
pair forces with bond forces such that all bonded particles also
feel pair interactions. This can be accomplished by using the *overlay/pair*
keyword present in all bpm bond styles and by using the following special
bond settings
.. code-block:: LAMMPS
special_bonds lj/coul 1 1 1
Alternatively, one can turn off all pair interactions between bonded
particles. Unlike :doc:`bond quartic <bond_quartic>`, this is not done
by subtracting pair forces during the bond computation but rather by
dynamically updating the special bond list. This is the default behavior
of BPM bond styles and is done by updating the 1-2 special bond list as
bonds break. To do this, LAMMPS requires :doc:`newton <newton>` bond off
such that all processors containing an atom know when a bond breaks.
Additionally, one must use the following special bond settings
.. code-block:: LAMMPS
special_bonds lj 0 1 1 coul 1 1 1
These settings accomplish two goals. First, they turn off 1-3 and 1-4
special bond lists, which are not currently supported for BPMs. As
BPMs often have dense bond networks, generating 1-3 and 1-4 special
bond lists is expensive. By setting the lj weight for 1-2 bonds to
zero, this turns off pairwise interactions. Even though there are no
charges in BPM models, setting a nonzero coul weight for 1-2 bonds
ensures all bonded neighbors are still included in the neighbor list
in case bonds break between neighbor list builds.
To monitor the fracture of bonds in the system, all BPM bond styles
have the ability to record instances of bond breakage to output using
the :doc:`dump local <dump>` command. Since one may frequently output
a list of broken bonds and the time they broke, the
:doc:`dump modify <dump_modify>` option *header no* may be useful to
avoid repeatedly printing the header of the dump file. An example of
this procedure is found in /examples/bpm/impact/. Additionally,
one can use :doc:`compute nbond/atom <compute_nbond_atom>` to tally the
current number of bonds per atom.
See the :doc:`Howto <Howto_broken_bonds>` page on broken bonds for
more information.
----------
While LAMMPS has many utilities to create and delete bonds, *only*
the following are currently compatible with BPM bond styles:

View File

@ -10,7 +10,7 @@ changes or additions you have made to LAMMPS into the official LAMMPS
distribution. It uses the process of updating this very tutorial as an
example to describe the individual steps and options. You need to be
familiar with git and you may want to have a look at the `git book
<http://git-scm.com/book/>`_ to familiarize yourself with some of the
<https://git-scm.com/book/>`_ to familiarize yourself with some of the
more advanced git features used below.
As of fall 2016, submitting contributions to LAMMPS via pull requests

View File

@ -47,4 +47,4 @@ to the relevant fixes.
.. _Paquay1:
**(Paquay)** Paquay and Kusters, Biophys. J., 110, 6, (2016).
preprint available at `arXiv:1411.3019 <http://arxiv.org/abs/1411.3019/>`_.
preprint available at `arXiv:1411.3019 <https://arxiv.org/abs/1411.3019/>`_.

1078
doc/src/Howto_peri.rst Normal file

File diff suppressed because it is too large Load Diff

View File

@ -38,7 +38,7 @@ the partial charge assignments change:
See the :ref:`(Berendsen) <howto-Berendsen>` reference for more details on both
the SPC and SPC/E models.
Wikipedia also has a nice article on `water models <http://en.wikipedia.org/wiki/Water_model>`_.
Wikipedia also has a nice article on `water models <https://en.wikipedia.org/wiki/Water_model>`_.
----------

View File

@ -30,9 +30,11 @@ can be coupled to another Langevin thermostat applied to the atoms
using :doc:`fix langevin <fix_langevin>` in order to simulate
thermostatted spin-lattice systems.
The magnetic Gilbert damping can also be applied using :doc:`fix langevin/spin <fix_langevin_spin>`. It allows to either dissipate
the thermal energy of the Langevin thermostat, or to perform a
relaxation of the magnetic configuration toward an equilibrium state.
The magnetic damping can also be applied
using :doc:`fix langevin/spin <fix_langevin_spin>`.
It allows to either dissipate the thermal energy of the Langevin
thermostat, or to perform a relaxation of the magnetic configuration
toward an equilibrium state.
The command :doc:`fix setforce/spin <fix_setforce>` allows to set the
components of the magnetic precession vectors (while erasing and
@ -52,9 +54,11 @@ All the computed magnetic properties can be output by two main
commands. The first one is :doc:`compute spin <compute_spin>`, that
enables to evaluate magnetic averaged quantities, such as the total
magnetization of the system along x, y, or z, the spin temperature, or
the magnetic energy. The second command is :doc:`compute property/atom <compute_property_atom>`. It enables to output all the
per atom magnetic quantities. Typically, the orientation of a given
magnetic spin, or the magnetic force acting on this spin.
the magnetic energy. The second command
is :doc:`compute property/atom <compute_property_atom>`.
It enables to output all the per atom magnetic quantities. Typically,
the orientation of a given magnetic spin, or the magnetic force
acting on this spin.
----------

View File

@ -49,7 +49,7 @@ details:
| :math:`\theta` of HOH angle = 104.52\ :math:`^{\circ}`
|
Wikipedia also has a nice article on `water models <http://en.wikipedia.org/wiki/Water_model>`_.
Wikipedia also has a nice article on `water models <https://en.wikipedia.org/wiki/Water_model>`_.
----------

View File

@ -8,18 +8,28 @@ This site M is located at a fixed distance away from the oxygen along
the bisector of the HOH bond angle. A bond style of *harmonic* and an
angle style of *harmonic* or *charmm* should also be used.
A TIP4P model is run with LAMMPS using either this command
A TIP4P model is run with LAMMPS using either these commands
for a cutoff model:
* :doc:`pair_style tip4p/cut <pair_lj_cut_tip4p>`
* :doc:`pair_style lj/cut/tip4p/cut <pair_lj_cut_tip4p>`
or these two commands for a long-range model:
or these commands for a long-range model:
* :doc:`pair_style tip4p/long <pair_coul>`
* :doc:`pair_style lj/cut/tip4p/long <pair_lj_cut_tip4p>`
* :doc:`pair_style lj/long/tip4p/long <pair_lj_long>`
* :doc:`pair_style tip4p/long/soft <pair_fep_soft>`
* :doc:`pair_style lj/cut/tip4p/long/soft <pair_fep_soft>`
* :doc:`kspace_style pppm/tip4p <kspace_style>`
* :doc:`kspace_style pppm/disp/tip4p <kspace_style>`
For both models, the bond lengths and bond angles should be held fixed
using the :doc:`fix shake <fix_shake>` command.
The bond lengths and bond angles should be held fixed using the
:doc:`fix shake <fix_shake>` or :doc:`fix rattle <fix_shake>` command,
unless a parameterization for a flexible TIP4P model is used. The
parameter sets listed below are all for rigid TIP4P model variants and
thus the bond and angle force constants are not used and can be set to
any legal value; only equilibrium length and angle are used.
These are the additional parameters (in real units) to set for O and H
atoms and the water molecule to run a rigid TIP4P model with a cutoff
@ -87,17 +97,18 @@ solver (e.g. Ewald or PPPM in LAMMPS):
| LJ :math:`\epsilon`, :math:`\sigma` of OH, HH = 0.0
|
Note that the when using the TIP4P pair style, the neighbor list
cutoff for Coulomb interactions is effectively extended by a distance
2 \* (OM distance), to account for the offset distance of the
fictitious charges on O atoms in water molecules. Thus it is
typically best in an efficiency sense to use a LJ cutoff >= Coulomb
cutoff + 2\*(OM distance), to shrink the size of the neighbor list.
This leads to slightly larger cost for the long-range calculation, so
you can test the trade-off for your model. The OM distance and the LJ
and Coulombic cutoffs are set in the :doc:`pair_style lj/cut/tip4p/long <pair_lj_cut_tip4p>` command.
Note that the when using the TIP4P pair style, the neighbor list cutoff
for Coulomb interactions is effectively extended by a distance 2 \* (OM
distance), to account for the offset distance of the fictitious charges
on O atoms in water molecules. Thus it is typically best in an
efficiency sense to use a LJ cutoff >= Coulomb cutoff + 2\*(OM
distance), to shrink the size of the neighbor list. This leads to
slightly larger cost for the long-range calculation, so you can test the
trade-off for your model. The OM distance and the LJ and Coulombic
cutoffs are set in the :doc:`pair_style lj/cut/tip4p/long
<pair_lj_cut_tip4p>` command.
Wikipedia also has a nice article on `water models <http://en.wikipedia.org/wiki/Water_model>`_.
Wikipedia also has a nice article on `water models <https://en.wikipedia.org/wiki/Water_model>`_.
----------

View File

@ -17,9 +17,10 @@ formats. See the :doc:`Tools <Tools>` page for details.
A Python-based toolkit distributed by our group can read native LAMMPS
dump files, including custom dump files with additional columns of
user-specified atom information, and convert them to various formats
or pipe them into visualization software directly. See the `Pizza.py WWW site <pizza_>`_ for details. Specifically, Pizza.py can convert
LAMMPS dump files into PDB, XYZ, `EnSight <ensight_>`_, and VTK formats.
user-specified atom information, and convert them to various formats or
pipe them into visualization software directly. See the `Pizza.py WWW
site <pizza_>`_ for details. Specifically, Pizza.py can convert LAMMPS
dump files into PDB, XYZ, `EnSight <ensight_>`_, and VTK formats.
Pizza.py can pipe LAMMPS dump files directly into the Raster3d and
RasMol visualization programs. Pizza.py has tools that do interactive
3d OpenGL visualization and one that creates SVG images of dump file

View File

@ -5,7 +5,7 @@ Binaries are available for MacOS or Linux via `Conda <conda_>`_.
First, one must setup the Conda package manager on your system. Follow the
instructions to install `Miniconda <mini_conda_install_>`_, then create a conda
environment (named `my-lammps-env` or whatever you prefer) for your lammps
environment (named `my-lammps-env` or whatever you prefer) for your LAMMPS
install:
.. code-block:: bash
@ -13,7 +13,7 @@ install:
% conda config --add channels conda-forge
% conda create -n my-lammps-env
Then, you can install lammps on your system with the following command:
Then, you can install LAMMPS on your system with the following command:
.. code-block:: bash

View File

@ -6,7 +6,7 @@ Windows system can be downloaded from this site:
.. parsed-literal::
`http://packages.lammps.org/windows.html <http://packages.lammps.org/windows.html>`_
`https://packages.lammps.org/windows.html <https://packages.lammps.org/windows.html>`_
Note that each installer package has a date in its name, which
corresponds to the LAMMPS version of the same date. Installers for

View File

@ -4,13 +4,13 @@ Authors of LAMMPS
The primary LAMMPS developers are at Sandia National Labs and Temple
University:
* `Steve Plimpton <sjp_>`_, sjplimp at sandia.gov
* `Steve Plimpton <sjp_>`_, sjplimp at gmail.com
* Aidan Thompson, athomps at sandia.gov
* Stan Moore, stamoor at sandia.gov
* Axel Kohlmeyer, akohlmey at gmail.com
* Richard Berger, richard.berger at outlook.com
.. _sjp: http://www.cs.sandia.gov/~sjplimp
.. _sjp: https://sjplimp.github.io
.. _lws: https://www.lammps.org
Past developers include Paul Crozier and Mark Stevens, both at Sandia,

View File

@ -27,7 +27,7 @@ namely https://www.lammps.org.
The original publication describing the parallel algorithms used in the
initial versions of LAMMPS is:
`S. Plimpton, Fast Parallel Algorithms for Short-Range Molecular Dynamics, J Comp Phys, 117, 1-19 (1995). <http://www.sandia.gov/~sjplimp/papers/jcompphys95.pdf>`_
`S. Plimpton, Fast Parallel Algorithms for Short-Range Molecular Dynamics, J Comp Phys, 117, 1-19 (1995). <https://doi.org/10.1006/jcph.1995.1039>`_
DOI for the LAMMPS source code

View File

@ -95,7 +95,7 @@ commands)
* metal-organic framework potentials (QuickFF, MO-FF)
* implicit solvent potentials: hydrodynamic lubrication, Debye
* force-field compatibility with common CHARMM, AMBER, DREIDING, OPLS, GROMACS, COMPASS options
* access to the `OpenKIM Repository <http://openkim.org>`_ of potentials via :doc:`kim command <kim_commands>`
* access to the `OpenKIM Repository <https://openkim.org>`_ of potentials via the :doc:`kim command <kim_commands>`
* hybrid potentials: multiple pair, bond, angle, dihedral, improper potentials can be used in one simulation
* overlaid potentials: superposition of multiple pair potentials (including many-body) with optional scale factor
@ -205,7 +205,7 @@ Pre- and post-processing
.. _pizza: https://lammps.github.io/pizza
.. _python: http://www.python.org
.. _python: https://www.python.org
.. _special:

View File

@ -33,7 +33,7 @@ Here are suggestions on how to perform these tasks:
linear bead-spring polymer chains. The moltemplate program is a true
molecular builder that will generate complex molecular models. See
the :doc:`Tools <Tools>` page for details on tools packaged with
LAMMPS. The `Pre/post processing page <http:/www.lammps.org/prepost.html>`_ of the LAMMPS website
LAMMPS. The `Pre/post processing page <https:/www.lammps.org/prepost.html>`_ of the LAMMPS website
describes a variety of third party tools for this task. Furthermore,
some LAMMPS internal commands allow to reconstruct, or selectively add
topology information, as well as provide the option to insert molecule
@ -80,5 +80,5 @@ Here are suggestions on how to perform these tasks:
`Pizza.py <https://lammps.github.io/pizza>`_ which can do certain kinds of
setup, analysis, plotting, and visualization (via OpenGL) for LAMMPS
simulations. It thus provides some functionality for several of the
above bullets. Pizza.py is written in `Python <http://www.python.org>`_
and is available for download from `this page <http://www.cs.sandia.gov/~sjplimp/download.html>`_.
above bullets. Pizza.py is written in `Python <https://www.python.org>`_
and is available for download from `this page <https://sjplimp.github.io/download.html>`_.

View File

@ -23,9 +23,9 @@ applies to LAMMPS is in the LICENSE file included in the LAMMPS distribution.
.. _lgpl: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
.. _gnuorg: http://www.gnu.org
.. _gnuorg: https://www.gnu.org
.. _opensource: http://www.opensource.org
.. _opensource: https://www.opensource.org
Here is a more specific summary of what the GPL means for LAMMPS users:

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

View File

@ -2,12 +2,13 @@ LAMMPS Library Interfaces
*************************
As described on the :doc:`library interface to LAMMPS <Howto_library>`
page, LAMMPS can be built as a library (static or shared), so that
it can be called by another code, used in a :doc:`coupled manner
page, LAMMPS can be built as a library (static or shared), so that it
can be called by another code, used in a :doc:`coupled manner
<Howto_couple>` with other codes, or driven through a :doc:`Python
script <Python_head>`. Even the LAMMPS standalone executable is
essentially a thin wrapper on top of the LAMMPS library, creating a
LAMMPS instance, processing input and then existing.
script <Python_head>`. The LAMMPS standalone executable itself is
essentially a thin wrapper on top of the LAMMPS library, which creates a
LAMMPS instance, passes the input for processing to that instance, and
then exits.
Most of the APIs described below are based on C language wrapper
functions in the files ``src/library.h`` and ``src/library.cpp``, but
@ -87,6 +88,18 @@ run LAMMPS in serial mode.
message retrieved <lammps_get_last_error_message>`. We thus
recommend enabling C++ exceptions when using the library interface,
.. admonition:: Using the C library interface as a plugin
:class: note
Rather than including the C library directly and link to the LAMMPS
library at compile time, you can use the ``liblammpsplugin.h`` header
file and the ``liblammpsplugin.c`` C code in the
``examples/COUPLE/plugin`` folder for an interface to LAMMPS that is
largely identical to the regular library interface, only that it will
load a LAMMPS shared library file at runtime. This can be useful for
applications where the interface to LAMMPS would be an optional
feature.
.. warning::
No checks are made on the arguments of the function calls of the C
@ -163,5 +176,3 @@ The following links provide some examples and references to the C++ API.
:maxdepth: 1
Cplusplus

View File

@ -11,6 +11,7 @@ This section documents the following functions:
- :cpp:func:`lammps_mpi_finalize`
- :cpp:func:`lammps_kokkos_finalize`
- :cpp:func:`lammps_python_finalize`
- :cpp:func:`lammps_error`
--------------------
@ -115,3 +116,8 @@ calling program.
.. doxygenfunction:: lammps_python_finalize
:project: progguide
-----------------------
.. doxygenfunction:: lammps_error
:project: progguide

View File

@ -6,6 +6,7 @@ fixes, or variables in LAMMPS using the following functions:
- :cpp:func:`lammps_extract_compute`
- :cpp:func:`lammps_extract_fix`
- :cpp:func:`lammps_extract_variable_datatype`
- :cpp:func:`lammps_extract_variable`
- :cpp:func:`lammps_set_variable`
@ -21,6 +22,11 @@ fixes, or variables in LAMMPS using the following functions:
-----------------------
.. doxygenfunction:: lammps_extract_variable_datatype
:project: progguide
-----------------------
.. doxygenfunction:: lammps_extract_variable
:project: progguide
@ -36,3 +42,5 @@ fixes, or variables in LAMMPS using the following functions:
.. doxygenenum:: _LMP_STYLE_CONST
.. doxygenenum:: _LMP_TYPE_CONST
.. doxygenenum:: _LMP_VAR_CONST

View File

@ -15,21 +15,21 @@ This section documents the following functions:
--------------------
The library interface allows extraction of different kinds of
information about the active simulation instance and also
modifications to it. This enables combining of a LAMMPS simulation
with other processing and simulation methods computed by the calling
code, or by another code that is coupled to LAMMPS via the library
interface. In some cases the data returned is direct reference to the
original data inside LAMMPS, cast to a void pointer. In that case the
data needs to be cast to a suitable pointer for the calling program to
access it, and you may need to know the correct dimensions and
lengths. This also means you can directly change those value(s) from
the calling program, e.g. to modify atom positions. Of course, this
should be done with care. When accessing per-atom data, please note
that this data is the per-processor **local** data and is indexed
accordingly. Per-atom data can change sizes and ordering at every
neighbor list rebuild or atom sort event as atoms migrate between
The library interface allows the extraction of different kinds of
information about the active simulation instance and also---in some
cases---to apply modifications to it. This enables combining of a
LAMMPS simulation with other processing and simulation methods computed
by the calling code, or by another code that is coupled to LAMMPS via
the library interface. In some cases the data returned is direct
reference to the original data inside LAMMPS, cast to a void pointer.
In that case the data needs to be cast to a suitable pointer for the
calling program to access it, and you may need to know the correct
dimensions and lengths. This also means you can directly change those
value(s) from the calling program (e.g., to modify atom positions). Of
course, changing values should be done with care. When accessing per-atom
data, please note that these data are the per-processor **local** data and are
indexed accordingly. Per-atom data can change sizes and ordering at
every neighbor list rebuild or atom sort event as atoms migrate between
sub-domains and processors.
.. code-block:: C

View File

@ -19,6 +19,7 @@ functions. They do not directly call the LAMMPS library.
- :cpp:func:`lammps_force_timeout`
- :cpp:func:`lammps_has_error`
- :cpp:func:`lammps_get_last_error_message`
- :cpp:func:`lammps_python_api_version`
The :cpp:func:`lammps_free` function is a clean-up function to free
memory that the library had allocated previously via other function
@ -100,3 +101,9 @@ where such memory buffers were allocated that require the use of
.. doxygenfunction:: lammps_get_last_error_message
:project: progguide
-----------------------
.. doxygenfunction:: lammps_python_api_version
:project: progguide

View File

@ -42,7 +42,7 @@ descriptions of all commands included in the LAMMPS code.
.. only:: html
Once you are familiar with LAMMPS, you may want to bookmark
:doc:`this page <Commands_all>` since it gives quick access
:doc:`this page <Commands_all>` since it gives quick access to
the documentation for all LAMMPS commands.
.. _lws: https://www.lammps.org

View File

@ -359,6 +359,12 @@ you are uncertain, please ask.
- I/O is done via the C-style stdio library and **not** iostreams.
- Do not use so-called "alternative tokens" like ``and``, ``or``,
``not`` and similar, but rather use the corresponding operators
``&&``, ``||``, and ``!``. The alternative tokens are not available
by default on all compilers, and also we want to maintain a consistent
programming style.
- Output to the screen and the logfile should be using the corresponding
FILE pointers and only be done on MPI rank 0. Use the :cpp:func:`utils::logmesg`
convenience function where possible.

View File

@ -134,6 +134,8 @@ commands to write and read data using the ADIOS library.
**Authors:** Norbert Podhorszki (ORNL) from the ADIOS developer team.
.. versionadded:: 28Feb2019
**Install:**
This package has :ref:`specific installation instructions <adios>` on the :doc:`Build extras <Build_extras>` page.
@ -198,6 +200,7 @@ particle models including ellipsoids, 2d lines, and 3d triangles.
* :doc:`Howto spherical <Howto_spherical>`
* :doc:`pair_style gayberne <pair_gayberne>`
* :doc:`pair_style resquared <pair_resquared>`
* :doc:`pair_style ylz <pair_ylz>`
* `doc/PDF/pair_gayberne_extra.pdf <PDF/pair_gayberne_extra.pdf>`_
* `doc/PDF/pair_resquared_extra.pdf <PDF/pair_resquared_extra.pdf>`_
* examples/ASPHERE
@ -364,6 +367,8 @@ and also support self-propelled particles.
**Authors:** Sam Cameron (University of Bristol),
Stefan Paquay (while at Brandeis University) (initial version of fix propel/self)
.. versionadded:: 14May2021
Example inputs are in the examples/PACKAGES/brownian folder.
----------
@ -592,6 +597,8 @@ To use this package, also the :ref:`KSPACE <PKG-KSPACE>` and
**Author:** Trung Nguyen and Monica Olvera de la Cruz (Northwestern U)
.. versionadded:: 2Jul2021
**Supporting info:**
* src/DIELECTRIC: filenames -> commands
@ -1071,7 +1078,7 @@ H5MD is a format for molecular simulations, built on top of HDF5.
This package implements a :doc:`dump h5md <dump_h5md>` command to output
LAMMPS snapshots in this format.
.. _HDF5: http://www.hdfgroup.org/HDF5
.. _HDF5: https://www.hdfgroup.org/solutions/hdf5
To use this package you must have the HDF5 library available on your
system.
@ -1512,6 +1519,8 @@ workflows via the `MolSSI Driver Interface
**Author:** Taylor Barnes - MolSSI, taylor.a.barnes at gmail.com
.. versionadded:: 14May2021
**Install:**
This package has :ref:`specific installation instructions <mdi>` on
@ -1596,6 +1605,8 @@ of Alabama), Leonid V. Zhigilei (University of Virginia)
**Author of the *mesocnt* styles:**
Philipp Kloza (U Cambridge)
.. versionadded:: 15Jun2020
**Supporting info:**
* src/MESONT: filenames -> commands
@ -1688,6 +1699,8 @@ compiled on your system.
**Author:** Andreas Singraber
.. versionadded:: 27May2021
**Install:**
This package has :ref:`specific installation instructions <ml-hdnnp>` on the
@ -1722,6 +1735,8 @@ must be installed.
**Author:** Aidan Thompson (Sandia), Nicholas Lubbers (LANL).
.. versionadded:: 30Jun2020
**Supporting info:**
* src/ML-IAP: filenames -> commands
@ -1766,6 +1781,8 @@ Aidan Thompson^3, Gabor Csanyi^2, Christoph Ortner^4, Ralf Drautz^1.
^4: University of British Columbia, Vancouver, BC, Canada
.. versionadded:: 14May2021
**Install:**
This package has :ref:`specific installation instructions <ml-pace>` on the
@ -1829,6 +1846,8 @@ of a neural network.
This package was written by Christopher Barrett
with contributions by Doyl Dickel, Mississippi State University.
.. versionadded:: 27May2021
**Supporting info:**
* src/ML-RANN: filenames -> commands
@ -1954,7 +1973,7 @@ support for new file formats can be added to LAMMPS (or VMD or other
programs that use them) without having to re-compile the application
itself. More information about the VMD molfile plugins can be found
at
`http://www.ks.uiuc.edu/Research/vmd/plugins/molfile <http://www.ks.uiuc.edu/Research/vmd/plugins/molfile>`_.
`https://www.ks.uiuc.edu/Research/vmd/plugins/molfile <https://www.ks.uiuc.edu/Research/vmd/plugins/molfile>`_.
**Author:** Axel Kohlmeyer (Temple U).
@ -2045,7 +2064,7 @@ NETCDF package
Dump styles for writing NetCDF formatted dump files. NetCDF is a
portable, binary, self-describing file format developed on top of
HDF5. The file contents follow the AMBER NetCDF trajectory conventions
(http://ambermd.org/netcdf/nctraj.xhtml), but include extensions.
(https://ambermd.org/netcdf/nctraj.xhtml), but include extensions.
To use this package you must have the NetCDF library available on your
system.
@ -2056,7 +2075,7 @@ tools:
* `Ovito <ovito_>`_ (Ovito supports the AMBER convention and the extensions mentioned above)
* `VMD <vmd-home_>`_
.. _ovito: http://www.ovito.org
.. _ovito: https://www.ovito.org
.. _vmd-home: https://www.ks.uiuc.edu/Research/vmd/
@ -2200,6 +2219,7 @@ Foster (UTSA).
**Supporting info:**
* src/PERI: filenames -> commands
* :doc:`Peridynamics Howto <Howto_peri>`
* `doc/PDF/PDLammps_overview.pdf <PDF/PDLammps_overview.pdf>`_
* `doc/PDF/PDLammps_EPS.pdf <PDF/PDLammps_EPS.pdf>`_
* `doc/PDF/PDLammps_VES.pdf <PDF/PDLammps_VES.pdf>`_
@ -2264,6 +2284,8 @@ try to load the contained plugins automatically at start-up.
**Authors:** Axel Kohlmeyer (Temple U)
.. versionadded:: 8Apr2021
**Supporting info:**
* src/PLUGIN: filenames -> commands
@ -2417,7 +2439,7 @@ A :doc:`fix qmmm <fix_qmmm>` command which allows LAMMPS to be used as
the MM code in a QM/MM simulation. This is currently only available
in combination with the `Quantum ESPRESSO <espresso_>`_ package.
.. _espresso: http://www.quantum-espresso.org
.. _espresso: https://www.quantum-espresso.org
To use this package you must have Quantum ESPRESSO (QE) available on
your system and include its coupling library in the compilation and
@ -2829,7 +2851,7 @@ collection of atoms by wrapping the `Voro++ library <voro-home_>`_. This
can be used to calculate the local volume or each atoms or its near
neighbors.
.. _voro-home: http://math.lbl.gov/voro++
.. _voro-home: https://math.lbl.gov/voro++
To use this package you must have the Voro++ library available on your
system.
@ -2863,9 +2885,9 @@ A :doc:`dump vtk <dump_vtk>` command which outputs snapshot info in the
`VTK format <vtk_>`_, enabling visualization by `Paraview <paraview_>`_ or
other visualization packages.
.. _vtk: http://www.vtk.org
.. _vtk: https://www.vtk.org
.. _paraview: http://www.paraview.org
.. _paraview: https://www.paraview.org
To use this package you must have VTK library available on your
system.
@ -2902,11 +2924,13 @@ which discuss the `QuickFF <quickff_>`_ methodology.
.. _vanduyfhuys2015: https://doi.org/10.1002/jcc.23877
.. _vanduyfhuys2018: https://doi.org/10.1002/jcc.25173
.. _quickff: http://molmod.github.io/QuickFF
.. _quickff: https://molmod.github.io/QuickFF
.. _yaff: https://github.com/molmod/yaff
**Author:** Steven Vandenbrande.
.. versionadded:: 1Feb2019
**Supporting info:**
* src/YAFF/README

View File

@ -43,26 +43,18 @@ Note that for AtomEye, you need version 3, and there is a line in the
scripts that specifies the path and name of the executable. See the
AtomEye web pages for more details:
* `http://li.mit.edu/Archive/Graphics/A/ <atomeye_>`_
* `http://li.mit.edu/Archive/Graphics/A3/A3.html <atomeye3_>`_
* `http://li.mit.edu/Archive/Graphics/A/ <http://li.mit.edu/Archive/Graphics/A/>`_
* `http://li.mit.edu/Archive/Graphics/A3/A3.html <http://li.mit.edu/Archive/Graphics/A3/A3.html>`_
.. _atomeye: http://li.mit.edu/Archive/Graphics/A/
.. _atomeye3: http://li.mit.edu/Archive/Graphics/A3/A3.html
The latter link is to AtomEye 3 which has the scripting
capability needed by these Python scripts.
The latter link is to AtomEye 3 which has the scripting capability
needed by these Python scripts.
Note that for PyMol, you need to have built and installed the
open-source version of PyMol in your Python, so that you can import it
from a Python script. See the PyMol web pages for more details:
* `https://www.pymol.org <pymolhome_>`_
* `https://github.com/schrodinger/pymol-open-source <pymolopen_>`_
.. _pymolhome: https://www.pymol.org
.. _pymolopen: https://github.com/schrodinger/pymol-open-source
* `https://www.pymol.org <https://www.pymol.org>`_
* `https://github.com/schrodinger/pymol-open-source <https://github.com/schrodinger/pymol-open-source>`_
The latter link is to the open-source version.

View File

@ -18,17 +18,17 @@ together.
Python_error
Python_trouble
If you are not familiar with `Python <http://www.python.org>`_, it is a
If you are not familiar with `Python <https://www.python.org>`_, it is a
powerful scripting and programming language which can do almost
everything that compiled languages like C, C++, or Fortran can do in
fewer lines of code. It also comes with a large collection of add-on
modules for many purposes (either bundled or easily installed from
Python code repositories). The major drawback is slower execution speed
of the script code compared to compiled programming languages. But when
the script code is interfaced to optimized compiled code, performance can
be on par with a standalone executable, for as long as the scripting is
restricted to high-level operations. Thus Python is also convenient to
use as a "glue" language to "drive" a program through its library
the script code is interfaced to optimized compiled code, performance
can be on par with a standalone executable, for as long as the scripting
is restricted to high-level operations. Thus Python is also convenient
to use as a "glue" language to "drive" a program through its library
interface, or to hook multiple pieces of software together, such as a
simulation code and a visualization tool, or to run a coupled
multi-scale or multi-physics model.

View File

@ -38,6 +38,40 @@ using the NumPy access method.
for n in np.nditer(nlist):
print(" atom {} with ID {}".format(n,tags[n]))
Another example for extracting a full neighbor list without evaluating a
potential is shown below.
.. code-block:: python
from lammps import lammps
import numpy as np
lmp = lammps()
lmp.commands_string("""
newton off
region box block -2 2 -2 2 -2 2
lattice fcc 1.0
create_box 1 box
create_atoms 1 box
mass 1 1.0
pair_style zero 1.0 full
pair_coeff * *
run 0 post no""")
# look up the neighbor list
nlidx = lmp.find_pair_neighlist('zero')
nl = lmp.numpy.get_neighlist(nlidx)
tags = lmp.extract_atom('id')
print("full neighbor list with {} entries".format(nl.size))
# print neighbor list contents
for i in range(0,nl.size):
idx, nlist = nl.get(i)
print("\natom {} with ID {} has {} neighbors:".format(idx,tags[idx],nlist.size))
if nlist.size > 0:
for n in np.nditer(nlist):
pass
print(" atom {} with ID {}".format(n,tags[n]))
**Methods:**
* :py:meth:`lammps.get_neighlist() <lammps.lammps.get_neighlist()>`: Get neighbor list for given index

View File

@ -30,12 +30,13 @@ executable itself can be placed elsewhere.
.. note::
The redirection operator "<" will not always work when running
in parallel with mpirun or mpiexec; for those systems the -in form is required.
The redirection operator "<" will not always work when running in
parallel with ``mpirun`` or ``mpiexec``; for those systems the -in
form is required.
As LAMMPS runs it prints info to the screen and a logfile named
*log.lammps*\ . More info about output is given on the
:doc:`screen and logfile output <Run_output>` page.
*log.lammps*\ . More info about output is given on the :doc:`screen and
logfile output <Run_output>` page.
If LAMMPS encounters errors in the input script or while running a
simulation it will print an ERROR message and stop or a WARNING

View File

@ -93,13 +93,13 @@ switch is not set (the default), LAMMPS will operate as if the KOKKOS
package were not installed; i.e. you can run standard LAMMPS or with
the GPU or OPENMP packages, for testing or benchmarking purposes.
Additional optional keyword/value pairs can be specified which
determine how Kokkos will use the underlying hardware on your
platform. These settings apply to each MPI task you launch via the
"mpirun" or "mpiexec" command. You may choose to run one or more MPI
tasks per physical node. Note that if you are running on a desktop
machine, you typically have one physical node. On a cluster or
supercomputer there may be dozens or 1000s of physical nodes.
Additional optional keyword/value pairs can be specified which determine
how Kokkos will use the underlying hardware on your platform. These
settings apply to each MPI task you launch via the ``mpirun`` or
``mpiexec`` command. You may choose to run one or more MPI tasks per
physical node. Note that if you are running on a desktop machine, you
typically have one physical node. On a cluster or supercomputer there
may be dozens or 1000s of physical nodes.
Either the full word or an abbreviation can be used for the keywords.
Note that the keywords do not use a leading minus sign. I.e. the
@ -148,9 +148,9 @@ one of these 4 environment variables
MV2_COMM_WORLD_LOCAL_RANK (Mvapich)
OMPI_COMM_WORLD_LOCAL_RANK (OpenMPI)
which are initialized by the "srun", "mpirun" or "mpiexec" commands.
The environment variable setting for each MPI rank is used to assign a
unique GPU ID to the MPI task.
which are initialized by the ``srun``, ``mpirun``, or ``mpiexec``
commands. The environment variable setting for each MPI rank is used to
assign a unique GPU ID to the MPI task.
.. parsed-literal::

View File

@ -16,46 +16,47 @@ simulation. An example set of statistics is shown here:
.. parsed-literal::
Loop time of 2.81192 on 4 procs for 300 steps with 2004 atoms
Loop time of 0.942801 on 4 procs for 300 steps with 2004 atoms
Performance: 18.436 ns/day 1.302 hours/ns 106.689 timesteps/s
97.0% CPU use with 4 MPI tasks x no OpenMP threads
Performance: 54.985 ns/day, 0.436 hours/ns, 318.201 timesteps/s, 637.674 katom-step/s
195.2% CPU use with 2 MPI tasks x 2 OpenMP threads
MPI task timings breakdown:
MPI task timing breakdown:
Section \| min time \| avg time \| max time \|%varavg\| %total
---------------------------------------------------------------
Pair \| 1.9808 \| 2.0134 \| 2.0318 \| 1.4 \| 71.60
Bond \| 0.0021894 \| 0.0060319 \| 0.010058 \| 4.7 \| 0.21
Kspace \| 0.3207 \| 0.3366 \| 0.36616 \| 3.1 \| 11.97
Neigh \| 0.28411 \| 0.28464 \| 0.28516 \| 0.1 \| 10.12
Comm \| 0.075732 \| 0.077018 \| 0.07883 \| 0.4 \| 2.74
Output \| 0.00030518 \| 0.00042665 \| 0.00078821 \| 1.0 \| 0.02
Modify \| 0.086606 \| 0.086631 \| 0.086668 \| 0.0 \| 3.08
Other \| \| 0.007178 \| \| \| 0.26
Pair \| 0.61419 \| 0.62872 \| 0.64325 \| 1.8 \| 66.69
Bond \| 0.0028608 \| 0.0028899 \| 0.002919 \| 0.1 \| 0.31
Kspace \| 0.12652 \| 0.14048 \| 0.15444 \| 3.7 \| 14.90
Neigh \| 0.10242 \| 0.10242 \| 0.10242 \| 0.0 \| 10.86
Comm \| 0.026753 \| 0.027593 \| 0.028434 \| 0.5 \| 2.93
Output \| 0.00018341 \| 0.00030942 \| 0.00043542 \| 0.0 \| 0.03
Modify \| 0.039117 \| 0.039348 \| 0.039579 \| 0.1 \| 4.17
Other \| \| 0.001041 \| \| \| 0.11
Nlocal: 501 ave 508 max 490 min
Histogram: 1 0 0 0 0 0 1 1 0 1
Nghost: 6586.25 ave 6628 max 6548 min
Histogram: 1 0 1 0 0 0 1 0 0 1
Neighs: 177007 ave 180562 max 170212 min
Histogram: 1 0 0 0 0 0 0 1 1 1
Nlocal: 1002 ave 1006 max 998 min
Histogram: 1 0 0 0 0 0 0 0 0 1
Nghost: 8670.5 ave 8691 max 8650 min
Histogram: 1 0 0 0 0 0 0 0 0 1
Neighs: 354010 ave 357257 max 350763 min
Histogram: 1 0 0 0 0 0 0 0 0 1
Total # of neighbors = 708028
Ave neighs/atom = 353.307
Ave special neighs/atom = 2.34032
Total # of neighbors = 708020
Ave neighs/atom = 353.30339
Ave special neighs/atom = 2.3403194
Neighbor list builds = 26
Dangerous builds = 0
----------
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. 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.
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.
----------

View File

@ -25,8 +25,8 @@ in parallel, follow these steps.
Download and install a compatible MPI library binary package:
* for 32-bit Windows: `mpich2-1.4.1p1-win-ia32.msi <http://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-ia32.msi>`_
* for 64-bit Windows: `mpich2-1.4.1p1-win-x86-64.msi <http://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-x86-64.msi>`_
* for 32-bit Windows: `mpich2-1.4.1p1-win-ia32.msi <https://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-ia32.msi>`_
* for 64-bit Windows: `mpich2-1.4.1p1-win-x86-64.msi <https://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-x86-64.msi>`_
The LAMMPS Windows installer packages will automatically adjust your
path for the default location of this MPI package. After the

View File

@ -39,7 +39,7 @@ toolkit software on your system (this is only tested on Linux
and unsupported on Windows):
* Check if you have an NVIDIA GPU: cat /proc/driver/nvidia/gpus/\*/information
* Go to http://www.nvidia.com/object/cuda_get.html
* Go to https://developer.nvidia.com/cuda-downloads
* Install a driver and toolkit appropriate for your system (SDK is not necessary)
* Run lammps/lib/gpu/nvc_get_devices (after building the GPU library, see below) to
list supported devices and properties
@ -76,10 +76,11 @@ instructions.
**Run with the GPU package from the command line:**
The mpirun or mpiexec command sets the total number of MPI tasks used
by LAMMPS (one or multiple per compute node) and the number of MPI
tasks used per node. E.g. the mpirun command in MPICH does this via
its -np and -ppn switches. Ditto for OpenMPI via -np and -npernode.
The ``mpirun`` or ``mpiexec`` command sets the total number of MPI tasks
used by LAMMPS (one or multiple per compute node) and the number of MPI
tasks used per node. E.g. the ``mpirun`` command in MPICH does this via
its ``-np`` and ``-ppn`` switches. Ditto for OpenMPI via ``-np`` and
``-npernode``.
When using the GPU package, you cannot assign more than one GPU to a
single MPI task. However multiple MPI tasks can share the same GPU,
@ -129,8 +130,8 @@ GPU package pair styles.
**Or run with the GPU package by editing an input script:**
The discussion above for the mpirun/mpiexec command, MPI tasks/node,
and use of multiple MPI tasks/GPU is the same.
The discussion above for the ``mpirun`` or ``mpiexec`` command, MPI
tasks/node, and use of multiple MPI tasks/GPU is the same.
Use the :doc:`suffix gpu <suffix>` command, or you can explicitly add an
"gpu" suffix to individual styles in your input script, e.g.

View File

@ -537,5 +537,5 @@ References
""""""""""
* Brown, W.M., Carrillo, J.-M.Y., Mishra, B., Gavhane, N., Thakkar, F.M., De Kraker, A.R., Yamada, M., Ang, J.A., Plimpton, S.J., "Optimizing Classical Molecular Dynamics in LAMMPS", in Intel Xeon Phi Processor High Performance Programming: Knights Landing Edition, J. Jeffers, J. Reinders, A. Sodani, Eds. Morgan Kaufmann.
* Brown, W. M., Semin, A., Hebenstreit, M., Khvostov, S., Raman, K., Plimpton, S.J. `Increasing Molecular Dynamics Simulation Rates with an 8-Fold Increase in Electrical Power Efficiency. <http://dl.acm.org/citation.cfm?id=3014915>`_ 2016 High Performance Computing, Networking, Storage and Analysis, SC16: International Conference (pp. 82-95).
* Brown, W. M., Semin, A., Hebenstreit, M., Khvostov, S., Raman, K., Plimpton, S.J. `Increasing Molecular Dynamics Simulation Rates with an 8-Fold Increase in Electrical Power Efficiency. <https://dl.acm.org/citation.cfm?id=3014915>`_ 2016 High Performance Computing, Networking, Storage and Analysis, SC16: International Conference (pp. 82-95).
* Brown, W.M., Carrillo, J.-M.Y., Gavhane, N., Thakkar, F.M., Plimpton, S.J. Optimizing Legacy Molecular Dynamics Software with Directive-Based Offload. Computer Physics Communications. 2015. 195: p. 95-101.

View File

@ -72,12 +72,12 @@ See the :ref:`Build extras <kokkos>` page for instructions.
Running LAMMPS with the KOKKOS package
""""""""""""""""""""""""""""""""""""""
All Kokkos operations occur within the context of an individual MPI
task running on a single node of the machine. The total number of MPI
tasks used by LAMMPS (one or multiple per compute node) is set in the
usual manner via the mpirun or mpiexec commands, and is independent of
Kokkos. E.g. the mpirun command in OpenMPI does this via its -np and
-npernode switches. Ditto for MPICH via -np and -ppn.
All Kokkos operations occur within the context of an individual MPI task
running on a single node of the machine. The total number of MPI tasks
used by LAMMPS (one or multiple per compute node) is set in the usual
manner via the ``mpirun`` or ``mpiexec`` commands, and is independent of
Kokkos. E.g. the mpirun command in OpenMPI does this via its ``-np`` and
``-npernode`` switches. Ditto for MPICH via ``-np`` and ``-ppn``.
Running on a multi-core CPU
^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -168,7 +168,7 @@ for your MPI installation), binding can be forced with these flags:
.. parsed-literal::
OpenMPI 1.8: mpirun -np 2 --bind-to socket --map-by socket ./lmp_openmpi ...
OpenMPI 1.8: mpirun -np 2 --bind-to socket --map-by socket ./lmp_openmpi ...
Mvapich2 2.0: mpiexec -np 2 --bind-to socket --map-by socket ./lmp_mvapich ...
For binding threads with KOKKOS OpenMP, use thread affinity environment
@ -310,7 +310,8 @@ Alternatively the effect of the "-sf" or "-pk" switches can be
duplicated by adding the :doc:`package kokkos <package>` or :doc:`suffix kk <suffix>` commands to your input script.
The discussion above for building LAMMPS with the KOKKOS package, the
mpirun/mpiexec command, and setting appropriate thread are the same.
``mpirun`` or ``mpiexec`` command, and setting appropriate thread
properties are the same.
You must still use the "-k on" :doc:`command-line switch <Run_options>`
to enable the KOKKOS package, and specify its additional arguments for

View File

@ -33,8 +33,8 @@ These examples assume one or more 16-core nodes.
mpirun -np 4 lmp_omp -sf omp -pk omp 4 -in in.script # 4 MPI tasks, 4 threads/task
mpirun -np 32 -ppn 4 lmp_omp -sf omp -pk omp 4 -in in.script # 8 nodes, 4 MPI tasks/node, 4 threads/task
The mpirun or mpiexec command sets the total number of MPI tasks used
by LAMMPS (one or multiple per compute node) and the number of MPI
The ``mpirun`` or ``mpiexec`` command sets the total number of MPI tasks
used by LAMMPS (one or multiple per compute node) and the number of MPI
tasks used per node. E.g. the mpirun command in MPICH does this via
its -np and -ppn switches. Ditto for OpenMPI via -np and -npernode.
@ -58,8 +58,8 @@ OMP_NUM_THREADS environment variable.
Or run with the OPENMP package by editing an input script
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
The discussion above for the mpirun/mpiexec command, MPI tasks/node,
and threads/MPI task is the same.
The discussion above for the ``mpirun`` or ``mpiexec`` command, MPI
tasks/node, and threads/MPI task is the same.
Use the :doc:`suffix omp <suffix>` command, or you can explicitly add an
"omp" suffix to individual styles in your input script, e.g.
@ -97,7 +97,7 @@ sub-section.
A description of the multi-threading strategy used in the OPENMP
package and some performance examples are
`presented here <http://sites.google.com/site/akohlmey/software/lammps-icms/lammps-icms-tms2011-talk.pdf?attredirects=0&d=1>`_.
`presented here <https://drive.google.com/file/d/1d1gLK6Ru6aPYB50Ld2tO10Li8zgPVNB8/view?usp=sharing>`_.
Guidelines for best performance
"""""""""""""""""""""""""""""""

View File

@ -117,33 +117,15 @@ script.
with all its accelerator packages installed. Note however that the
INTEL and KOKKOS packages require you to choose one of their
hardware options when building for a specific platform. I.e. CPU or
Phi option for the INTEL package. Or the OpenMP, Cuda, or Phi
option for the KOKKOS package.
Phi option for the INTEL package. Or the OpenMP, CUDA, HIP, SYCL,
or Phi option for the KOKKOS package. Or the OpenCL, HIP, or CUDA
option for the GPU package.
These are the exceptions. You cannot build a single executable with:
* both the INTEL Phi and KOKKOS Phi options
* the INTEL Phi or Kokkos Phi option, and the GPU package
See the examples/accelerate/README and make.list files for sample
Make.py commands that build LAMMPS with any or all of the accelerator
packages. As an example, here is a command that builds with all the
GPU related packages installed (GPU, KOKKOS with Cuda), including
settings to build the needed auxiliary GPU libraries for Kepler GPUs:
.. code-block:: bash
Make.py -j 16 -p omp gpu kokkos -cc nvcc wrap=mpi -gpu mode=double arch=35 -kokkos cuda arch=35 lib-all file mpi
The examples/accelerate directory also has input scripts that can be
used with all of the accelerator packages. See its README file for
details.
Likewise, the bench directory has FERMI and KEPLER and PHI
sub-directories with Make.py commands and input scripts for using all
the accelerator packages on various machines. See the README files in
those directories.
As mentioned above, the `Benchmark page <https://www.lammps.org/bench.html>`_ of the LAMMPS website gives
performance results for the various accelerator packages for several
of the standard LAMMPS benchmark problems, as a function of problem

View File

@ -205,6 +205,7 @@ scripts are available:
whitespace.py # detects TAB characters and trailing whitespace
homepage.py # detects outdated LAMMPS homepage URLs (pointing to sandia.gov instead of lammps.org)
errordocs.py # detects deprecated error docs in header files
versiontags.py # detects .. versionadded:: or .. versionchanged:: with pending version date
The tools need to be given the main folder of the LAMMPS distribution
or individual file names as argument and will by default check them
@ -397,7 +398,7 @@ ipp tool
------------------
The tools/ipp directory contains a Perl script ipp which can be used
to facilitate the creation of a complicated file (say, a lammps input
to facilitate the creation of a complicated file (say, a LAMMPS input
script or tools/createatoms input file) using a template file.
ipp was created and is maintained by Reese Jones (Sandia), rjones at
@ -512,8 +513,8 @@ with an ``.inputrc`` file in the home directory. For application
specific customization, the LAMMPS shell uses the name "lammps-shell".
For more information about using and customizing an application using
readline, please see the available documentation at:
`http://www.gnu.org/s/readline/#Documentation
<http://www.gnu.org/s/readline/#Documentation>`_
https://www.gnu.org/software/readline/
Additional commands
^^^^^^^^^^^^^^^^^^^
@ -715,7 +716,7 @@ See the README.pdf file for more information.
These scripts were written by Arun Subramaniyan at Purdue Univ
(asubrama at purdue.edu).
.. _matlabhome: http://www.mathworks.com
.. _matlabhome: https://www.mathworks.com
----------
@ -1046,7 +1047,7 @@ the binary file. This usually is a so-called little endian hardware
SWIG interface
--------------
The `SWIG tool <http://swig.org>`_ offers a mostly automated way to
The `SWIG tool <https://swig.org>`_ offers a mostly automated way to
incorporate compiled code modules into scripting languages. It
processes the function prototypes in C and generates wrappers for a wide
variety of scripting languages from it. Thus it can also be applied to
@ -1126,7 +1127,7 @@ data passed or returned as pointers are included in the ``lammps.i``
file. So most of the functionality of the library interface should be
accessible. What works and what does not depends a bit on the
individual language for which the wrappers are built and how well SWIG
supports those. The `SWIG documentation <http://swig.org/doc.html>`_
supports those. The `SWIG documentation <https://swig.org/doc.html>`_
has very detailed instructions and recommendations.
Usage examples

View File

@ -91,7 +91,7 @@ quantities.
+--------------+-----------------------------------------------------+--------------------------------------+
| *charge* | charge | atomic system with charges |
+--------------+-----------------------------------------------------+--------------------------------------+
| *dielectric* | dipole, area, curvature | system with surface polarization |
| *dielectric* | normx normy normz area/patch ed em epsilon curv | system with surface polarization |
+--------------+-----------------------------------------------------+--------------------------------------+
| *dipole* | charge and dipole moment | system with dipolar particles |
+--------------+-----------------------------------------------------+--------------------------------------+
@ -180,16 +180,21 @@ vector with the 3 diameters of the ellipsoid and a quaternion 4-vector
with its orientation.
For the *dielectric* style, each particle can be either a physical
particle (e.g. an ion), or an interface particle representing a
boundary element. For physical particles, the per-particle properties
are the same as atom_style full. For interface particles, in addition
to these properties, each particle also has an area, a normal unit
vector, a mean local curvature, the mean and difference of the
dielectric constants of two sides of the interface, and the local
dielectric constant at the boundary element. The distinction between
the physical and interface particles is only meaningful when :doc:`fix
polarize <fix_polarize>` commands are applied to the interface
particles.
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.
For the *dipole* style, a point dipole is defined for each point
particle. Note that if you wish the particles to be finite-size

View File

@ -138,15 +138,14 @@ the *overlay/pair* keyword. These settings require specific
restrictions. Further details can be found in the `:doc: how to
<Howto_BPM>` page on BPMs.
If the *store/local* keyword is used, this fix will track bonds that
If the *store/local* keyword is used, an internal fix will track bonds that
break during the simulation. Whenever a bond breaks, data is processed
and transferred to an internal fix labeled *fix_ID*. This allows the
local data to be accessed by other LAMMPS commands.
Following any optional keyword/value arguments, a list of one or more
attributes is specified. These include the IDs of the two atoms in
the bond. The other attributes for the two atoms include the timestep
during which the bond broke and the current/initial center of mass
position of the two atoms.
local data to be accessed by other LAMMPS commands. Following this optional
keyword, a list of one or more attributes is specified. These include the
IDs of the two atoms in the bond. The other attributes for the two atoms
include the timestep during which the bond broke and the current/initial
center of mass position of the two atoms.
Data is continuously accumulated over intervals of *N*
timesteps. At the end of each interval, all of the saved accumulated
@ -177,29 +176,38 @@ Restart and other info
This bond style writes the reference state of each bond to
:doc:`binary restart files <restart>`. Loading a restart file will
properly resume bonds.
properly resume bonds. However, the reference state is NOT
written to data files. Therefore reading a data file will not
restore bonds and will cause their reference states to be redefined.
The single() function of these pair styles returns 0.0 for the energy
of a pairwise interaction, since energy is not conserved in these
dissipative potentials. It also returns only the normal component of
the pairwise interaction force.
The accumulated data is not written to restart files and should be
output before a restart file is written to avoid missing data.
The internal fix calculates a local vector or local array depending on the
number of input values. The length of the vector or number of rows in
the array is the number of recorded, lost interactions. If a single
input is specified, a local vector is produced. If two or more inputs
are specified, a local array is produced where the number of columns =
the number of inputs. The vector or array can be accessed by any
command that uses local values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS
output options.
If the *store/local* option is used, an internal fix will calculate
a local vector or local array depending on the number of input values.
The length of the vector or number of rows in the array is the number
of recorded, broken bonds. If a single input is specified, a local
vector is produced. If two or more inputs are specified, a local array
is produced where the number of columns = the number of inputs. The
vector or array can be accessed by any command that uses local values
from a compute as input. See the :doc:`Howto output <Howto_output>` page
for an overview of LAMMPS output options.
The vector or array will be floating point values that correspond to
the specified attribute.
The single() function of this bond style returns 0.0 for the energy
of a bonded interaction, since energy is not conserved in these
dissipative potentials. It also returns only the normal component of
the bonded interaction force. However, the single() function also
calculates 7 extra bond quantities. The first 4 are data from the
reference state of the bond including the initial distance between particles
:math:`r_0` followed by the :math:`x`, :math:`y`, and :math:`z` components
of the initial unit vector pointing to particle I from particle J. The next 3
quantities (5-7) are the :math:`x`, :math:`y`, and :math:`z` components
of the total force, including normal and tangential contributions, acting
on particle I.
These extra quantities can be accessed by the :doc:`compute bond/local <compute_bond_local>`
command, as *b1*, *b2*, ..., *b7*\ .
Restrictions
""""""""""""

View File

@ -103,15 +103,14 @@ the *overlay/pair* keyword. These settings require specific
restrictions. Further details can be found in the `:doc: how to
<Howto_BPM>` page on BPMs.
If the *store/local* keyword is used, this fix will track bonds that
If the *store/local* keyword is used, an internal fix will track bonds that
break during the simulation. Whenever a bond breaks, data is processed
and transferred to an internal fix labeled *fix_ID*. This allows the
local data to be accessed by other LAMMPS commands.
Following any optional keyword/value arguments, a list of one or more
attributes is specified. These include the IDs of the two atoms in
the bond. The other attributes for the two atoms include the timestep
during which the bond broke and the current/initial center of mass
position of the two atoms.
local data to be accessed by other LAMMPS commands. Following this optional
keyword, a list of one or more attributes is specified. These include the
IDs of the two atoms in the bond. The other attributes for the two atoms
include the timestep during which the bond broke and the current/initial
center of mass position of the two atoms.
Data is continuously accumulated over intervals of *N*
timesteps. At the end of each interval, all of the saved accumulated
@ -141,28 +140,30 @@ Restart and other info
This bond style writes the reference state of each bond to
:doc:`binary restart files <restart>`. Loading a restart
file will properly resume bonds.
file will properly restore bonds. However, the reference state is NOT
written to data files. Therefore reading a data file will not
restore bonds and will cause their reference states to be redefined.
The single() function of these pair styles returns 0.0 for the energy
of a pairwise interaction, since energy is not conserved in these
dissipative potentials.
The accumulated data is not written to restart files and should be
output before a restart file is written to avoid missing data.
The internal fix calculates a local vector or local array depending on the
number of input values. The length of the vector or number of rows in
the array is the number of recorded, lost interactions. If a single
input is specified, a local vector is produced. If two or more inputs
are specified, a local array is produced where the number of columns =
the number of inputs. The vector or array can be accessed by any
command that uses local values from a compute as input. See the
:doc:`Howto output <Howto_output>` page for an overview of LAMMPS
output options.
If the *store/local* option is used, an internal fix will calculate
a local vector or local array depending on the number of input values.
The length of the vector or number of rows in the array is the number
of recorded, broken bonds. If a single input is specified, a local
vector is produced. If two or more inputs are specified, a local array
is produced where the number of columns = the number of inputs. The
vector or array can be accessed by any command that uses local values
from a compute as input. See the :doc:`Howto output <Howto_output>` page
for an overview of LAMMPS output options.
The vector or array will be floating point values that correspond to
the specified attribute.
The single() function of this bond style returns 0.0 for the energy
of a bonded interaction, since energy is not conserved in these
dissipative potentials. The single() function also calculates an
extra bond quantity, the initial distance :math:`r_0`. This
extra quantity can be accessed by the
:doc:`compute bond/local <compute_bond_local>` command as *b1*\ .
Restrictions
""""""""""""

View File

@ -21,7 +21,7 @@ Examples
bond_coeff 5 80.0 1.2
bond_coeff * 30.0 1.5 1.0 1.0
bond_coeff 1*4 30.0 1.5 1.0 1.0
bond_coeff 1 harmonic 200.0 1.0 (for bond_style hybrid)
bond_coeff 1 harmonic 200.0 1.0 # (for bond_style hybrid)
labelmap bond 5 carbonyl
bond_coeff carbonyl 80.0 1.2

View File

@ -26,14 +26,14 @@ as defined in :ref:`(Allinger) <mm3-allinger1989>`
.. math::
E = K (r - r_0)^2 \left[ 1 - 2.55(r-r_0) + (7/12) 2.55^2(r-r_0)^2 \right]
E = K (r - r_0)^2 \left[ 1 - 2.55(r-r_0) + \frac{7}{12} 2.55^2(r-r_0)^2 \right]
where :math:`r_0` is the equilibrium value of the bond, and :math:`K` is a
prefactor. The anharmonic prefactors have units angstrom\^(-n):
-2.55 angstrom\^(-1) and (7/12)2.55\^2 angstrom\^(-2). The code takes
prefactor. The anharmonic prefactors have units :math:`\AA^{-n}`:
:math:`-2.55 \AA^{-1}` and :math:`\frac{7}{12} 2.55^2 \AA^{-2}`. The code takes
care of the necessary unit conversion for these factors internally.
Note that the MM3 papers contains an error in Eq (1):
(7/12)2.55 should be replaced with (7/12)2.55\^2
Note that the MM3 papers contain an error in Eq (1):
:math:`\frac{7}{12} 2.55` should be replaced with :math:`\frac{7}{12} 2.55^2`
The following coefficients must be defined for each bond type via the
:doc:`bond_coeff <bond_coeff>` command as in the example above, or in

View File

@ -28,11 +28,18 @@ The *quartic* bond style uses the potential
.. math::
E = K (r - R_c)^ 2 (r - R_c - B_1) (r - R_c - B_2) + U_0 + 4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^6 \right] + \epsilon
E & = E_q + E_{LJ} \\
E_q & = K (r - R_c)^ 2 (r - R_c - B_1) (r - R_c - B_2) + U_0 \\
E_{LJ} & = \left\{ \begin{array} {l@{\quad:\quad}l}
4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^6 \right] + \epsilon & r < 2^{\frac{1}{6}}, \epsilon = 1, \sigma = 1 \\
0 & r >= 2^{\frac{1}{6}}
\end{array} \right.
to define a bond that can be broken as the simulation proceeds (e.g.
due to a polymer being stretched). The :math:`\sigma` and :math:`\epsilon` used in the
LJ portion of the formula are both set equal to 1.0 by LAMMPS.
due to a polymer being stretched). The :math:`\sigma` and
:math:`\epsilon` used in the LJ portion of the formula are both set
equal to 1.0 by LAMMPS and the LJ portion is cut off at its minimum,
i.e. at :math:`r_c = 2^{\frac{1}{6}}`.
The following coefficients must be defined for each bond type via the
:doc:`bond_coeff <bond_coeff>` command as in the example above, or in
@ -46,9 +53,9 @@ or :doc:`read_restart <read_restart>` commands:
* :math:`U_0` (energy)
This potential was constructed to mimic the FENE bond potential for
coarse-grained polymer chains. When monomers with :math:`\sigma = \epsilon = 1.0`
are used, the following choice of parameters gives a quartic potential that
looks nearly like the FENE potential:
coarse-grained polymer chains. When monomers with :math:`\sigma =
\epsilon = 1.0` are used, the following choice of parameters gives a
quartic potential that looks nearly like the FENE potential:
.. math::

View File

@ -23,15 +23,16 @@ Description
"""""""""""
This command deletes all atoms, restores all settings to their default
values, and frees all memory allocated by LAMMPS. Once a clear
command has been executed, it is almost as if LAMMPS were starting
over, with only the exceptions noted below. This command enables
multiple jobs to be run sequentially from one input script.
values, and frees all memory allocated by LAMMPS. Once a clear command
has been executed, it is almost as if LAMMPS were starting over, with
only the exceptions noted below. This command enables multiple jobs to
be run sequentially from one input script.
These settings are not affected by a clear command: the working
directory (:doc:`shell <shell>` command), log file status
(:doc:`log <log>` command), echo status (:doc:`echo <echo>` command), and
input script variables (:doc:`variable <variable>` command).
directory (:doc:`shell <shell>` command), log file status (:doc:`log
<log>` command), echo status (:doc:`echo <echo>` command), and input
script variables except for *atomfile* style variables (:doc:`variable
<variable>` command).
Restrictions
""""""""""""

View File

@ -35,6 +35,8 @@ Examples
Description
"""""""""""
.. versionadded:: 7Jan2022
Define a computation that calculates the local mass density and
temperature for each atom based on its neighbors inside a spherical
cutoff. If an atom has :math:`M` neighbors, then its local mass density is

View File

@ -13,7 +13,7 @@ Syntax
* ID, group-ID are documented in :doc:`compute <compute>` command
* bond/local = style name of this compute command
* one or more values may be appended
* value = *dist* or *dx* or *dy* or *dz* or *engpot* or *force* or *fx* or *fy* or *fz* or *engvib* or *engrot* or *engtrans* or *omega* or *velvib* or *v_name*
* value = *dist* or *dx* or *dy* or *dz* or *engpot* or *force* or *fx* or *fy* or *fz* or *engvib* or *engrot* or *engtrans* or *omega* or *velvib* or *v_name* or *bN*
.. parsed-literal::
@ -29,6 +29,7 @@ Syntax
*omega* = magnitude of bond angular velocity
*velvib* = vibrational velocity along the bond length
*v_name* = equal-style variable with name (see below)
*bN* = bond style specific quantities for allowed N values
* zero or more keyword/args pairs may be appended
* keyword = *set*
@ -47,7 +48,7 @@ Examples
compute 1 all bond/local engpot
compute 1 all bond/local dist engpot force
compute 1 all bond/local dist fx fy fz
compute 1 all bond/local dist fx fy fz b1 b2
compute 1 all bond/local dist v_distsq set dist d
@ -147,6 +148,19 @@ those quantities via the :doc:`compute reduce <compute_reduce>` command
with thermo output, and the :doc:`fix ave/histo <fix_ave_histo>`
command will histogram the length\ :math:`^2` values and write them to a file.
A bond style may define additional bond quantities which can be
accessed as *b1* to *bN*, where N is defined by the bond style. Most
bond styles do not define any additional quantities, so N = 0. An
example of ones that do are the :doc:`BPM bond styles <Howto_bpm>`
which store the reference state between two particles. See
individual bond styles for details.
When using *bN* with bond style *hybrid*, the output will be the Nth
quantity from the sub-style that computes the bonded interaction
(based on bond type). If that sub-style does not define a *bN*,
the output will be 0.0. The maximum allowed N is the maximum number
of quantities provided by any sub-style.
----------
The local data stored by this command is generated by looping over all

View File

@ -602,8 +602,7 @@ be used. For non-orthogonal (triclinic) simulation boxes, only the
*reduced* option may be used.
A *box* value selects standard distance units as defined by the
:doc:`units <units>` command (e.g., :math:`\mathrm{\mathring A}`
for units = *real* or *metal*).
:doc:`units <units>` command (e.g., :math:`\AA` for units = *real* or *metal*).
A *lattice* value means the distance units are in lattice spacings.
The :doc:`lattice <lattice>` command must have been previously used to
define the lattice spacing. A *reduced* value means normalized

View File

@ -24,16 +24,17 @@ Description
"""""""""""
Define a computation that calculates the per-atom damage for each atom
in a group. This is a quantity relevant for :doc:`Peridynamics models <pair_peri>`. See `this document <PDF/PDLammps_overview.pdf>`_
for an overview of LAMMPS commands for Peridynamics modeling.
in a group. This is a quantity relevant for :doc:`Peridynamics models
<pair_peri>`. See `this document <PDF/PDLammps_overview.pdf>`_ for an
overview of LAMMPS commands for Peridynamics modeling.
The "damage" of a Peridynamics particles is based on the bond breakage
between the particle and its neighbors. If all the bonds are broken
the particle is considered to be fully damaged.
See the `PDLAMMPS user guide <http://www.sandia.gov/~mlparks/papers/PDLAMMPS.pdf>`_ for a formal
definition of "damage" and more details about Peridynamics as it is
implemented in LAMMPS.
See the :doc:`Peridynamics Howto <Howto_peri>` for a formal definition
of "damage" and more details about Peridynamics as it is implemented in
LAMMPS.
This command can be used with all the Peridynamic pair styles.
@ -53,8 +54,9 @@ The per-atom vector values are unitless numbers (damage) :math:`\ge 0.0`.
Restrictions
""""""""""""
This compute is part of the PERI package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
This compute is part of the PERI package. It is only enabled if LAMMPS
was built with that package. See the :doc:`Build package
<Build_package>` page for more info.
Related commands
""""""""""""""""

View File

@ -24,7 +24,8 @@ Description
"""""""""""
Define a computation that calculates the per-atom dilatation for each
atom in a group. This is a quantity relevant for :doc:`Peridynamics models <pair_peri>`. See `this document <PDF/PDLammps_overview.pdf>`_
atom in a group. This is a quantity relevant for :doc:`Peridynamics
models <pair_peri>`. See `this document <PDF/PDLammps_overview.pdf>`_
for an overview of LAMMPS commands for Peridynamics modeling.
For small deformation, dilatation of is the measure of the volumetric
@ -32,13 +33,14 @@ strain.
The dilatation :math:`\theta` for each peridynamic particle :math:`i` is
calculated as a sum over its neighbors with unbroken bonds, where the
contribution of the :math:`ij` pair is a function of the change in bond length
(versus the initial length in the reference state), the volume
contribution of the :math:`ij` pair is a function of the change in bond
length (versus the initial length in the reference state), the volume
fraction of the particles and an influence function. See the
`PDLAMMPS user guide <http://www.sandia.gov/~mlparks/papers/PDLAMMPS.pdf>`_ for
a formal definition of dilatation.
:doc:`Peridynamics Howto <Howto_peri>` for a formal definition of
dilatation.
This command can only be used with a subset of the Peridynamic :doc:`pair styles <pair_peri>`: peri/lps, peri/ves and peri/eps.
This command can only be used with a subset of the Peridynamic
:doc:`pair styles <pair_peri>`: *peri/lps*, *peri/ves*, and *peri/eps*.
The dilatation value will be 0.0 for atoms not in the specified
compute group.
@ -56,9 +58,9 @@ The per-atom vector values are unitless numbers :math:`(\theta \ge 0.0)`.
Restrictions
""""""""""""
This compute is part of the PERI package. It is only enabled if
LAMMPS was built with that package. See the
:doc:`Build package <Build_package>` page for more info.
This compute is part of the PERI package. It is only enabled if LAMMPS
was built with that package. See the :doc:`Build package
<Build_package>` page for more info.
Related commands
""""""""""""""""

View File

@ -17,7 +17,7 @@ Syntax
.. parsed-literal::
*replace* arg = name of per-atom variable
*refresh* arg = name of per-atom variable
Examples
""""""""
@ -95,7 +95,7 @@ something like the following commands:
refresh c_dsp delay 100
The :doc:`dump_modify thresh <dump_modify>` command will only output
atoms that have displaced more than :math:`0.6~\mathrm{\mathring A}` on each
atoms that have displaced more than :math:`0.6~\AA` on each
snapshot (assuming metal units). The dump_modify *refresh* option triggers a
call to this compute at the end of every dump.

View File

@ -97,13 +97,13 @@ by the corresponding volume. This option can be useful when dealing with
inhomogeneous systems such as those that have surfaces.
Here are typical input parameters for fcc aluminum (lattice
constant :math:`4.05~\mathrm{\mathring A}`),
constant :math:`4.05~\AA`),
.. parsed-literal::
compute 1 all entropy/atom 0.25 5.7 avg yes 3.7
and for bcc sodium (lattice constant 4.23 Angstroms),
and for bcc sodium (lattice constant :math:`4.23~\AA`),
.. parsed-literal::

View File

@ -34,6 +34,8 @@ Examples
Description
"""""""""""
.. versionadded:: 4May2022
Define a computation that calculates the change in the free energy due
to a test-area (TA) perturbation :ref:`(Gloor) <Gloor>`. The test-area
approach can be used to determine the interfacial tension of the system

View File

@ -6,7 +6,7 @@ compute rigid/local command
Syntax
""""""
.. parsed-literal::
.. code-block:: LAMMPS
compute ID group-ID rigid/local rigidID input1 input2 ...
@ -25,6 +25,9 @@ Syntax
quatw, quati, quatj, quatk,
tqx, tqy, tqz,
inertiax, inertiay, inertiaz
.. parsed-literal::
id = atom ID of atom within body which owns body properties
mol = molecule ID used to define body in :doc:`fix rigid/small <fix_rigid>` command
mass = total mass of body
@ -69,8 +72,8 @@ the atoms owned on a processor. If the atom is not in the specified
the atom within a body that is assigned to store the body information
it is skipped (only one atom per body is so assigned). If it is the
assigned atom, then the info for that body is output. This means that
information for N bodies is generated. N may be less than the # of
bodies defined by the fix rigid command, if the atoms in some bodies
information for :math:`N` bodies is generated. :math:`N` may be less than the
number of bodies defined by the fix rigid command, if the atoms in some bodies
are not in the *group-ID*\ .
.. note::
@ -109,8 +112,7 @@ The *mass* attribute is the total mass of the rigid body.
There are two options for outputting the coordinates of the center of
mass (COM) of the body. The *x*, *y*, *z* attributes write the COM
"unscaled", in the appropriate distance :doc:`units <units>`
(:math:`\mathrm{\mathring A}`,
sigma, etc). Use *xu*, *yu*, *zu* if you want the COM "unwrapped" by
(:math:`\AA`, :math:`\sigma`, etc). Use *xu*, *yu*, *zu* if you want the COM "unwrapped" by
the image flags for each body. Unwrapped means that if the body
COM has passed through a periodic boundary one or more times, the value
is generated what the COM coordinate would be if it had not been
@ -120,7 +122,7 @@ The image flags for the body can be generated directly using the *ix*,
*iy*, *iz* attributes. For periodic dimensions, they specify which
image of the simulation box the COM is considered to be in. An image
of 0 means it is inside the box as defined. A value of 2 means add 2
box lengths to get the true value. A value of -1 means subtract 1 box
box lengths to get the true value. A value of :math:`-1` means subtract 1 box
length to get the true value. LAMMPS updates these flags as the rigid
body COMs cross periodic boundaries during the simulation.
@ -142,8 +144,8 @@ The *tqx*, *tqy*, *tqz* attributes are components of the torque acting
on the body around its COM.
The *inertiax*, *inertiay*, *inertiaz* attributes are components of
diagonalized inertia tensor for the body, i.e the 3 moments of inertia
for the body around its principal axes, as computed internally by
diagonalized inertia tensor for the body (i.e., the three moments of inertia
for the body around its principal axes), as computed internally by
LAMMPS.
----------
@ -170,10 +172,10 @@ corresponding attribute is in:
* vx,vy,vz = velocity units
* fx,fy,fz = force units
* omegax,omegay,omegaz = radians/time units
* angmomx,angmomy,angmomz = mass\*distance\^2/time units
* angmomx,angmomy,angmomz = mass\*distance\ :math:`^2`\ /time units
* quatw,quati,quatj,quatk = unitless
* tqx,tqy,tqz = torque units
* inertiax,inertiay,inertiaz = mass\*distance\^2 units
* inertiax,inertiay,inertiaz = mass\*distance\ :math:`^2` units
Restrictions
""""""""""""

View File

@ -86,7 +86,7 @@ will defined using the *c* values for the spacing along each reciprocal
lattice axis. Note that manual mapping of the reciprocal space mesh is
good for comparing diffraction results from multiple simulations; however
it can reduce the likelihood that Bragg reflections will be satisfied
unless small spacing parameters (:math:`<0.05~\mathrm{\mathring A}^-1`)
unless small spacing parameters (:math:`<0.05~\AA^-1`)
are implemented. Meshes with manual spacing do not require a periodic
boundary.

View File

@ -228,18 +228,20 @@ command:
See section below on output for a detailed explanation of the data
layout in the global array.
.. versionadded:: 3Aug2022
The compute *sna/grid* and *sna/grid/local* commands calculate
bispectrum components for a regular grid of points.
These are calculated from the local density of nearby atoms *i'*
around each grid point, as if there was a central atom *i*
at the grid point. This is useful for characterizing fine-scale
structure in a configuration of atoms, and it is used
in the `MALA package <https://github.com/casus/mala>`_
to build machine-learning surrogates for finite-temperature Kohn-Sham
density functional theory (:ref:`Ellis et al. <Ellis2021>`)
Neighbor atoms not in the group do not contribute to the
bispectrum components of the grid points. The distance cutoff :math:`R_{ii'}`
assumes that *i* has the same type as the neighbor atom *i'*.
bispectrum components for a regular grid of points. These are
calculated from the local density of nearby atoms *i'* around each grid
point, as if there was a central atom *i* at the grid point. This is
useful for characterizing fine-scale structure in a configuration of
atoms, and it is used in the `MALA package
<https://github.com/casus/mala>`_ to build machine-learning surrogates
for finite-temperature Kohn-Sham density functional theory (:ref:`Ellis
et al. <Ellis2021>`) Neighbor atoms not in the group do not contribute
to the bispectrum components of the grid points. The distance cutoff
:math:`R_{ii'}` assumes that *i* has the same type as the neighbor atom
*i'*.
Compute *sna/grid* calculates a global array containing bispectrum
components for a regular grid of points.

View File

@ -29,7 +29,7 @@ Description
Define a computation that calculates the temperature of a system based
on the center-of-mass velocity of atom pairs that are bonded to each
other. This compute is designed to be used with the adiabatic
core/shell model of :ref:`(Mitchell and Finchham) <MitchellFinchham1>`.
core/shell model of :ref:`(Mitchell and Fincham) <MitchellFincham1>`.
See the :doc:`Howto coreshell <Howto_coreshell>` page for an overview of
the model as implemented in LAMMPS. Specifically, this compute
enables correct temperature calculation and thermostatting of
@ -127,7 +127,7 @@ none
----------
.. _MitchellFinchham1:
.. _MitchellFincham1:
**(Mitchell and Finchham)** Mitchell, Finchham, J Phys Condensed Matter,
**(Mitchell and Fincham)** Mitchell, Fincham, J Phys Condensed Matter,
5, 1031-1038 (1993).

View File

@ -58,7 +58,7 @@ constant, and :math:`T` is the absolute temperature.
The *units* keyword determines the meaning of the distance units used
for coordinates (*clo*, *chi*) and velocities (*vlo*, *vhi*). A *box* value
selects standard distance units as defined by the :doc:`units <units>`
command (e.g., :math:`\mathrm{\mathring{A}}` for units = real or metal). A
command (e.g., :math:`\AA` for units = real or metal). A
*lattice* value means the distance units are in lattice spacings (i.e.,
velocity in lattice spacings per unit time). The :doc:`lattice <lattice>`
command must have been previously used to define the lattice spacing.

View File

@ -13,7 +13,7 @@ Syntax
* ID, group-ID are documented in :doc:`compute <compute>` command
* voronoi/atom = style name of this compute command
* zero or more keyword/value pairs may be appended
* keyword = *only_group* or *surface* or *radius* or *edge_histo* or *edge_threshold* or *face_threshold* or *neighbors* or *peratom*
* keyword = *only_group* or *occupation* or *surface* or *radius* or *edge_histo* or *edge_threshold* or *face_threshold* or *neighbors* or *peratom*
.. parsed-literal::
@ -154,25 +154,25 @@ which must be installed on your system when building LAMMPS for use
with this compute. See instructions on obtaining and installing the
Voro++ software in the src/VORONOI/README file.
.. _voronoi: http://math.lbl.gov/voro++/
.. _voronoi: https://math.lbl.gov/voro++/
.. note::
The calculation of Voronoi volumes is performed by each
processor for the atoms it owns, and includes the effect of ghost
atoms stored by the processor. This assumes that the Voronoi cells of
owned atoms are not affected by atoms beyond the ghost atom cut-off
distance. This is usually a good assumption for liquid and solid
systems, but may lead to underestimation of Voronoi volumes in low
density systems. By default, the set of ghost atoms stored by each
processor is determined by the cutoff used for
:doc:`pair_style <pair_style>` interactions. The cutoff can be set
explicitly via the :doc:`comm_modify cutoff <comm_modify>` command. The
Voronoi cells for atoms adjacent to empty regions will extend into
those regions up to the communication cutoff in :math:`x`, :math:`y`, or
:math:`z`. In that situation, an exterior face is created at the cutoff
distance normal to the :math:`x`, :math:`y`, or :math:`z` direction.
For triclinic systems, the exterior face is parallel to the corresponding
The calculation of Voronoi volumes is performed by each processor for
the atoms it owns, and includes the effect of ghost atoms stored by
the processor. This assumes that the Voronoi cells of owned atoms
are not affected by atoms beyond the ghost atom cut-off distance.
This is usually a good assumption for liquid and solid systems, but
may lead to underestimation of Voronoi volumes in low density
systems. By default, the set of ghost atoms stored by each processor
is determined by the cutoff used for :doc:`pair_style <pair_style>`
interactions. The cutoff can be set explicitly via the
:doc:`comm_modify cutoff <comm_modify>` command. The Voronoi cells
for atoms adjacent to empty regions will extend into those regions up
to the communication cutoff in :math:`x`, :math:`y`, or :math:`z`.
In that situation, an exterior face is created at the cutoff distance
normal to the :math:`x`, :math:`y`, or :math:`z` direction. For
triclinic systems, the exterior face is parallel to the corresponding
reciprocal lattice vector.
.. note::

View File

@ -91,7 +91,7 @@ reciprocal lattice axis. Note that manual mapping of the reciprocal
space mesh is good for comparing diffraction results from multiple
simulations; however, it can reduce the likelihood that Bragg
reflections will be satisfied unless small spacing parameters
(:math:`< 0.05~\mathrm{\mathring{A}}^{-1}`) are implemented.
(:math:`< 0.05~\AA^{-1}`) are implemented.
Meshes with manual spacing do not require a periodic boundary.
The limits of the reciprocal lattice mesh are determined by range of

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