Compare commits

..

2656 Commits

Author SHA1 Message Date
5263ecd450 Merge branch 'nwchem' of github.com:lammps/lammps into nwchem 2023-01-09 09:08:21 -07:00
5e71383874 merge with current master 2023-01-09 09:08:09 -07:00
5700af570c Merge branch 'develop' into nwchem 2023-01-09 09:03:59 -07:00
6a8df032b6 Merge pull request #3582 from athomps/sllod_variants
Implement sllod variants
2023-01-06 21:55:10 -05:00
be5cede69f Merge pull request #3551 from akohlmey/compute-efield-atom-wolf
Add new compute efield/wolf/atom command
2023-01-06 20:29:38 -05:00
aee93dbe69 Merge pull request #3571 from akohlmey/lepton-package
LEPTON package using the Lepton library to compute forces from expression strings
2023-01-06 18:41:18 -05:00
fbbe66c8bd Merge branch 'develop' into lepton-package 2023-01-06 17:53:23 -05:00
a218071b2b Merge pull request #3574 from akohlmey/collected-small-changes
Collected small changes and fixes
2023-01-06 16:24:19 -05:00
b2226f9c70 Merge pull request #3588 from srtee/electrode-intel
simplified intel suffix styles in ELECTRODE
2023-01-06 15:33:00 -05:00
7fd9086c65 whitespace 2023-01-06 14:44:18 -05:00
f007eaf946 Merge branch 'develop' into collected-small-changes 2023-01-06 14:41:22 -05:00
9a8455f546 Merge pull request #3577 from bathmatt/kokkos-mliap-pytorch
Have PyTorch interface for MLIAP working in Kokkos.  This uses cuPy a…
2023-01-06 14:24:10 -05:00
ddc8ed8c2d Merge branch 'develop' into collected-small-changes
# Conflicts:
#	src/dump.cpp
2023-01-06 13:09:22 -05:00
f6d8df5706 add unit tests for lepton/coul 2023-01-06 13:07:55 -05:00
3878cfa9b0 Merge pull request #3587 from akohlmey/collected-fixes
Collected fixes subset of pull request #3574
2023-01-06 12:57:19 -05:00
ce1e997de0 do now write out per-type pair cutoff with kspace enabled 2023-01-06 12:12:13 -05:00
af72a957f8 reorder lines, so syntax highlighting does not get messed up 2023-01-06 10:07:05 -05:00
909bbcfdbd a few more tweaks for consistency 2023-01-06 09:03:00 -05:00
92df9f1c71 update docs 2023-01-06 08:43:44 -05:00
523821d83e add extract() function to pair style lepton/coul for kspace compatibility 2023-01-06 08:43:10 -05:00
8813a65fe8 make use of charges in Lepton expressions optional 2023-01-06 08:01:26 -05:00
bf63cccda4 implement pair style lepton/coul and lepton/coul/omp 2023-01-06 07:27:28 -05:00
e460c3b6d5 improve error messages 2023-01-06 01:08:15 -05:00
da9e117e47 remove bogus comment 2023-01-06 01:05:39 -05:00
3f496905d6 Merge branch 'develop' into lepton-package 2023-01-06 00:44:28 -05:00
69169031ba spelling 2023-01-06 00:00:24 -05:00
289d319a6c drop a few more command prompt characters 2023-01-06 00:00:14 -05:00
8dc7a37ba0 register KOKKOS acceleration for pair style 2023-01-05 23:59:32 -05:00
84b8f3caa0 remove bogus "extract" data from angle style amoeba test 2023-01-05 23:43:19 -05:00
01d9033e2d Merge branch 'develop' into collected-small-changes 2023-01-05 23:36:45 -05:00
8beb718b37 require a minimum of 2 values for writing tables 2023-01-05 23:28:20 -05:00
66fff95455 add unit tests for fix deform and fix nvt with options 2023-01-05 23:01:52 -05:00
2ee523bcfd update unit tests for bugfix in dihedral style table 2023-01-05 23:01:45 -05:00
a3d8cca25b add unit test for the extract method of angle styles 2023-01-05 23:01:09 -05:00
32347792ad follow the usual convention and call dihedral angle phi 2023-01-05 23:00:33 -05:00
6ccdc8df4f include force function in angle table example to show the need for correct unit conversion (force is energy per radian squared) 2023-01-05 23:00:27 -05:00
e05104a45e fix copy-n-paste issue 2023-01-05 22:59:29 -05:00
cd54c41276 programming style 2023-01-05 22:58:16 -05:00
8d9a4d86ba flag member functions without side effect as const 2023-01-05 22:56:30 -05:00
f2e3b22222 make created tables better suitable for human consumption 2023-01-05 22:56:08 -05:00
0df140876c fix subtle bug in stress tally for dihedral style table 2023-01-05 22:54:27 -05:00
e82eb9ecc4 remove some legacy code and update for more recent code changes 2023-01-05 22:53:42 -05:00
ee48231bd6 improve error messages 2023-01-05 22:52:51 -05:00
e48e5ad965 update suffix handling to be consistent (also with pending fix pair changes) 2023-01-05 22:51:49 -05:00
73300b080b rephrase as requested by @sjplimp 2023-01-05 22:47:50 -05:00
3e053adfbe Print warning about unsorted custom dumps without atom IDs. Explain in manual. 2023-01-05 22:44:32 -05:00
56cb967991 enforce consisten eigenvector signs for ML-POD parameter coefficients
This also updates the bundled coeffs file and reference outputs.
2023-01-05 22:43:53 -05:00
ef10719476 add logic to rerun command to trigger dumps on expected steps or time 2023-01-05 22:43:40 -05:00
3bf527d070 Merge pull request #3579 from akohlmey/linalg-in-cpp
Convert linalg library from Fortran to C++
2023-01-05 21:16:06 -05:00
843cc98531 Merge pull request #3569 from jrgissing/type-labels-bond/react-examples
Type labels for bond/react examples
2023-01-05 19:22:43 -05:00
821b34de78 Merge pull request #3585 from yury-lysogorskiy/feature/pace-extrapolation-kokkos
Feature/pace extrapolation kokkos
2023-01-05 19:15:49 -05:00
9a0fd9d237 clarifications and documentation additions 2023-01-05 17:47:47 -05:00
e40ef346fe Merge pull request #3573 from akohlmey/angle-write
Implement angle_write and dihedral_write commands
2023-01-05 17:32:38 -05:00
12b930b0a6 updated string 2023-01-05 17:13:21 +01:00
c8a33aefd4 add versionadded tag 2023-01-05 08:49:35 -05:00
67c50e4d4f call macOS consistently macOS 2023-01-05 08:33:08 -05:00
6104b2241f add note about how to add OpenMP support to Xcode on macOS 2023-01-05 08:32:30 -05:00
3df61dac6f Build of the manual now uses venv instead of virtualenv which is bundled with python 3
macOS now includes python3
2023-01-05 08:32:08 -05:00
e7ab2bc97d add logic to rerun command to trigger dumps on expected steps or time 2023-01-05 04:06:11 -05:00
c3fb5257ae cleaned up parsing 2023-01-05 07:37:58 +01:00
8cfb6680e0 enforce consisten eigenvector signs for ML-POD parameter coefficients
This also updates the bundled coeffs file and reference outputs.
2023-01-04 15:31:03 -05:00
a538cc93b7 programming style 2023-01-04 09:19:08 -05:00
20b6355888 refactor fix_pair.h/cpp: extract method "query_pstyle" and call it also in void FixPair::init() 2023-01-04 15:00:03 +01:00
501a5a7090 Print warning about unsorted custom dumps without atom IDs. Explain in manual. 2023-01-04 08:42:43 -05:00
5cbe303af4 Merge branch 'develop' into collected-small-changes 2023-01-04 07:28:03 -05:00
87a8cfe299 - replace #include "ace-evaluator/ace_radial.h" in pair_pace_kokkos.h and pair_pace_extrapolation_kokkos.h with forward declaration "class SplineInterpolator;"
- move SplineInterpolatorKokkos::operator=(const SplineInterpolator &spline) to .cpp files
2023-01-04 12:46:50 +01:00
8e1031ba3c fixed model_loaded being an int issue 2023-01-04 12:16:41 +01:00
17e949df55 whitespace 2023-01-04 06:12:26 -05:00
cd9e56469f updated output format 2023-01-04 12:00:08 +01:00
dd6f584476 removed debug lines 2023-01-04 11:53:43 +01:00
2e74813155 grammar 2023-01-04 05:43:40 -05:00
4a96ce6ccc whitespace 2023-01-03 21:33:27 -05:00
3aceb4a1e2 simplify and update GNU make scripts for ML-IAP with PYTHON and KOKKOS 2023-01-03 21:09:09 -05:00
21d42336e2 massively simplify CMake code for using ML-IAP Python wrappers with KOKKOS 2023-01-03 20:53:14 -05:00
e902b7a8f1 Merge pull request #3575 from akohlmey/dpd-exclusions
Correct handling of random force with exclusions in DPD pair styles
2023-01-03 17:28:24 -05:00
6a20e35edf update unit test inputs 2023-01-03 17:23:40 -05:00
0522c33288 Merge pull request #3572 from hammondkd/fortran2_updates
Mark Fortran2 library interface as obsolescent, remove Fortran 77 one.
2023-01-03 15:04:36 -05:00
83f4dd0ff3 make consistent 2023-01-03 14:19:34 -05:00
dac37938f8 update suffix handling to be consistent (also with pending fix pair changes) 2023-01-03 14:16:50 -05:00
bcb5285ef9 update / correct suffix handling in fix pair 2023-01-03 14:15:12 -05:00
54bbba8acd whitespace 2023-01-03 11:31:43 -07:00
e8b4001bdd add versionadded tag 2023-01-03 13:28:19 -05:00
4a248798d5 Fix compile error 2023-01-03 11:24:41 -07:00
9de99751c7 Add missing data movement 2023-01-03 11:18:15 -07:00
a3572b61d8 Small cleanup 2023-01-03 10:09:47 -07:00
d9abc3fcc0 update CUDA Toolkit / GPU compatibility lists and GPU package compilation settings 2023-01-03 11:56:44 -05:00
dc36f7e573 change "limit" to "group" 2023-01-03 11:13:06 -05:00
577d190de2 remove bogus 4th per-atom entry. 2023-01-03 11:12:53 -05:00
cfdc70532f Merge branch 'develop' into compute-efield-atom-wolf 2023-01-03 10:51:33 -05:00
295d8a6903 fix_pair.cpp: respect lmp->suffix when looking for pair_style name match 2023-01-03 15:58:34 +01:00
cfbc2d8894 update pair_pace.rst 2023-01-03 14:48:25 +01:00
4d50109731 add check that LINEAR ASI must be used 2023-01-03 14:43:46 +01:00
e033cebcdd update lammps-user-pace version and checksum 2023-01-03 14:30:04 +01:00
1f36bc49ab - add extract and extract_peratom methods
- rename device gamma array to d_gamma
- make host h_gamma array
- copy from h_gamma to host extrapolation_grade_gamma array for each chunk
- transpose two last dimensions of d_ASI (small improvement of performance)
- manage grows of extrapolation_grade_gamma
2023-01-03 14:08:31 +01:00
f502499e44 better separated buffer packing methods 2023-01-03 17:14:18 +10:00
8610fc6d33 simplify intel versions of electrode fixes 2023-01-03 12:32:12 +10:00
014b892e3b WIP:
- add TagPairPACEComputeGamma kernel
- add d_total_basis_size
- add gamma_flag, d_ASI, projections and gamma
2023-01-02 23:34:24 +01:00
1b92569187 WIP: pair_pace_extrapolation_kokkos.h/cpp:
- rename idx_rho_max -> idx_ms_combs_max,  d_idx_rho_count ->d_idx_ms_combs_count, d_offsets->d_func_inds
- remove d_ctildes, add d_gen_cgs and d_coeffs
- use ACEBBasisFunction
- update TagPairPACEComputeRho and TagPairPACEComputeWeights
- pair_pace_extrapolation.h/cpp: add chunksize option
2023-01-02 18:29:12 +01:00
396d577f40 port DPD exclusions corrections to GPU package 2023-01-02 12:04:10 -05:00
37b3ba827f propagate DPD exclusion changes to INTEL and KOKKOS packages 2023-01-02 11:33:08 -05:00
8fb1193a0b Merge branch 'develop' into dpd-exclusions 2023-01-02 10:20:03 -05:00
6565056424 WIP: add pair_pace_extrapolation_kokkos.cpp/h 2023-01-02 12:21:00 +01:00
b25eeb3b26 add unit tests for fix nvt/sllod 2023-01-01 12:56:44 -05:00
8f541488fb modernize fix deform checks with fix nvt/sllod 2023-01-01 12:54:57 -05:00
70f47e817a add unit tests for fix deform and fix nvt with options 2023-01-01 12:31:21 -05:00
7c66aeddf7 update and correct sllod thermostat docs 2022-12-31 22:24:17 -05:00
3a55a374a9 address compilation failures 2022-12-31 22:10:32 -05:00
8016378241 Extended to packages 2022-12-31 19:49:25 -07:00
2479624a76 Added psllod keyword to toggle between SLLOD and p-SLLOD 2022-12-31 16:47:13 -07:00
57790ef35f remove fortran sources and update README with pointer to the conversion package 2022-12-31 16:59:25 -05:00
0ddf7ed49c Merge remote-tracking branch 'upstream/develop' into develop 2022-12-31 14:46:28 -07:00
f84b64bc86 Merge pull request #3581 from rezarastak/patch-1
Use correct RST heading syntax
2022-12-31 15:52:14 -05:00
251f9d7778 make consistent with other doc files 2022-12-31 15:12:29 -05:00
d2f3c474dd Use correct RST heading syntax 2022-12-31 07:52:57 -05:00
4a327649b5 fix a few entries, update links and tweak to reduce the table width 2022-12-30 10:12:05 -05:00
c6b73dc710 whitespace 2022-12-30 09:53:48 -05:00
09d743b8f1 update lammps theme base theme from read-the-docs version 1.0.0 to 1.1.1 2022-12-30 09:47:50 -05:00
be8d15a728 change the generated cannonical URL to always point to the current version docs 2022-12-30 09:46:10 -05:00
33711ac36e make code-block formatting more consistent and align with documented conventions 2022-12-30 06:46:09 -05:00
406289d0f9 update documentation conventions. add notes about adding packages 2022-12-30 06:45:08 -05:00
3b9799410b synchronize list with Build_extras.rst 2022-12-30 06:35:45 -05:00
f9a398c9a8 add to list 2022-12-30 06:33:10 -05:00
93689f40dd fix compiler flags issue on Ubuntu18.04 2022-12-30 00:39:23 -05:00
8166eaebbd report CMake version in config summary output 2022-12-29 23:28:23 -05:00
064e1abd5b Small tweaks to make Lepton test compile/link with MSVC 2022-12-29 22:22:45 -05:00
6c318b5e8e fix typo 2022-12-29 21:17:36 -05:00
ec244dbad3 get lepton compiler flags without having to link its library twice 2022-12-29 20:09:42 -05:00
cae18d01a3 add unit tests for Lepton lib and LeptonUtils functions 2022-12-29 19:10:46 -05:00
49eb9ca5fd revert to using the unions. looks nicer and passes the tests. 2022-12-29 19:10:15 -05:00
7d58811ad0 prevent installing Sphinx 6.0.0 which will require updates to the theme 2022-12-29 11:38:37 -05:00
4552a2791d add explicit dependency and link on linalg when used 2022-12-28 21:41:31 -05:00
6e60131f14 Windows portability changes 2022-12-28 20:53:53 -05:00
dba3eb0cf7 make AWPMD compatible with MSVC and c++-linalg on Windows 2022-12-28 17:39:38 -05:00
9d06a3b9a1 with linalg now being C++, a few more packages can be built natively on Windows 2022-12-28 17:18:33 -05:00
c9a3894d12 grammar 2022-12-28 17:11:18 -05:00
57713cf9a3 remove redundant comments from generated C++ files. clean up with clang-format. 2022-12-28 16:44:38 -05:00
f157ba2389 add some f2c runtime functions, remove exception, avoid name conflict with libgfortran 2022-12-28 16:00:38 -05:00
1e8b2ad5a0 whitespace fixes 2022-12-28 13:48:43 -05:00
a894cbfbb7 update linalg README 2022-12-28 13:48:43 -05:00
119fae3b8c remove unused code 2022-12-28 13:48:43 -05:00
52fb2e8156 don't need to link to Fortran runtime with linalg anymore 2022-12-28 13:48:36 -05:00
b0e8ec47da update manual for linalg being C++ now. 2022-12-28 13:45:13 -05:00
c5a87f75d6 convert linalg library from Fortran to C++ 2022-12-28 13:18:38 -05:00
7cceabe5bd ILAENV function does not use IPARAM2STAGE anymore 2022-12-28 12:17:49 -05:00
6f0216af75 ILAENV function does not use IPARAM2STAGE anymore 2022-12-28 12:17:19 -05:00
cdebbe8e54 conditionalized import of cupy 2022-12-28 17:32:39 +01:00
82c2b35423 improve error messages for dynamic groups 2022-12-28 07:11:13 -05:00
669ede9d4e Fixed unit test failure 2022-12-28 08:55:02 +01:00
d47acfc0c4 Have PyTorch interface for MLIAP working in Kokkos. This uses cuPy and a simple example is provided 2022-12-28 07:01:47 +01:00
67156420d4 avoid out-of-range read 2022-12-28 00:19:59 -05:00
50a370c4a5 use memcpy instead of union to avoid pointer aliasing 2022-12-27 21:39:35 -05:00
5dbb0e7455 update format of rst files 2022-12-27 21:30:11 -05:00
b28607234e update rst file formatting. work around duplicate target issue. 2022-12-27 21:29:37 -05:00
52fcd08e1c reformat colvars related docs. add false positive for spellchecker 2022-12-27 21:15:33 -05:00
d10e7195dc add missing entries for dihedral style lepton 2022-12-27 21:13:34 -05:00
24b16cf130 More updates to fix colvars doc 2022-12-27 20:27:38 -05:00
afae6222b0 Update build instructions for COLVARS package 2022-12-27 20:02:44 -05:00
9f15ad4795 simplify by using a custom constructor 2022-12-27 18:26:29 -05:00
246b25e2ed silence compiler warning 2022-12-27 17:43:39 -05:00
c63f1647fb work around pointer aliasing issue with JIT enabled 2022-12-27 17:43:31 -05:00
efc2e96a9e explicitly share Lepton settings between lepton and colvars folders 2022-12-27 17:42:59 -05:00
2a3d1a1ba5 import JIT settings to colvars library makefile 2022-12-27 15:16:58 -05:00
353f4cb361 must not remove settings for lepton library if colvars package is installed 2022-12-27 14:53:53 -05:00
307829ad10 add unit test for dihedral style lepton 2022-12-27 14:40:43 -05:00
fa55a86074 remove some legacy code and update for more recent code changes 2022-12-27 14:38:59 -05:00
a79a058bce fix up a few more details for conventional build 2022-12-27 14:37:56 -05:00
854089ef8d trigger building Lepton lib when requesting colvars 2022-12-27 14:05:16 -05:00
4f4f7be9c8 must provide list of object for colvars lib 2022-12-27 14:04:54 -05:00
c68f754923 remove access to non-existing option 2022-12-27 13:59:56 -05:00
faa2a9ffeb remove Lepton source from lib/colvars folder 2022-12-27 13:59:34 -05:00
973dd04c87 update OPENMP package versions 2022-12-27 11:23:18 -05:00
7e984bfa2c update traditional make build support for shaking Lepton between LEPTON and COLVARS 2022-12-27 11:16:09 -05:00
989ec1b859 remove lmp/LMP_ prefix from Lepton namespace and files to share it with colvars 2022-12-27 10:57:43 -05:00
7fb9ee1147 clarify 2022-12-27 10:29:25 -05:00
1e5e6063d3 update unit tests for bugfix in dihedral style table 2022-12-26 16:51:36 -05:00
e55396a25d fix typo 2022-12-26 16:47:37 -05:00
a32d2b29f2 fix subtle bug in stress tally for dihedral style table 2022-12-26 16:47:29 -05:00
2d602088c0 follow the usual convention and call dihedral angle phi 2022-12-26 16:46:59 -05:00
860dc1600d flag member functions without side effect as const 2022-12-26 16:46:41 -05:00
a5742a9147 make lepton package docs more consistent 2022-12-26 16:45:49 -05:00
5a99cf0dd5 add dihedral style lepton including /omp variant 2022-12-26 16:44:49 -05:00
e9dbdc7d1a clarify and reformat 2022-12-26 06:34:53 -05:00
9355b79b47 update dpd/ext styles in DPD-BASIC and OPENMP to correctly handle scaling for random force 2022-12-25 19:23:22 -05:00
793d66ce04 small programming style updates, pass Error class pointer for errors 2022-12-25 11:36:27 -05:00
63ddb07c59 add versionadded tags 2022-12-25 07:04:20 -05:00
4ac830bf73 add dihedral_write command 2022-12-25 07:01:37 -05:00
bbfc7381fb updates and corrections for docs 2022-12-25 06:54:53 -05:00
a4f8cb9a92 explicitly disallow angle_write with angle_style class2 2022-12-25 06:54:40 -05:00
c4f2befb1f add sanity check on valid angle type 2022-12-25 06:25:45 -05:00
ecf11f2f20 use macro for keeping repetitive code consistent 2022-12-25 06:06:34 -05:00
9a8c48c0b9 programming style update 2022-12-25 04:47:41 -05:00
bbdc6fd3ab fix file handle leak 2022-12-25 04:35:03 -05:00
55af6fc72b fix typo 2022-12-25 00:42:20 -05:00
4ee8dea4b3 improve bond_write docs and fix minor issues 2022-12-24 23:05:47 -05:00
1c223f7ce6 improve error messages 2022-12-24 23:05:23 -05:00
9b1d90854b make created tables better suitable for human consumption 2022-12-24 23:03:50 -05:00
07f587ccf3 include force function in angle table example to show the need for correct unit conversion (force is energy per radian squared) 2022-12-24 23:03:12 -05:00
da98363a25 implement angle_write command 2022-12-24 22:52:16 -05:00
24e5fafd7f more documentation tweaks and corrections. make consistent across package styles 2022-12-24 15:38:58 -05:00
be01ec2e07 document variable substitution 2022-12-24 05:53:18 -05:00
93cfa6ef30 fix typo. more clarifications 2022-12-24 01:16:51 -05:00
30a6a8a54e add support for substituting LAMMPS variables in Lepton expressions 2022-12-24 00:35:22 -05:00
7b3866d04c move lepton utilities to lepton_utils namespace in LEPTON package 2022-12-24 00:08:03 -05:00
a1a3a89a3d enable and apply clang-format to pair style morse 2022-12-23 16:26:39 -05:00
b36031571d remove bogus "extract" data from angle style amoeba test 2022-12-23 16:22:15 -05:00
f9e17d5e79 add unit test for the extract method of angle styles 2022-12-23 16:18:18 -05:00
3d7082499d update docs to include angle style lepton 2022-12-23 16:07:14 -05:00
67f0c48781 add angle styles lepton and lepton/omp 2022-12-23 15:34:01 -05:00
a2af2b4135 add versionadded tags 2022-12-23 12:15:36 -05:00
132a4cbc91 update traditional build for updated Lepton library and inclusion of asmjit 2022-12-23 12:13:10 -05:00
8a2257f568 remove the obsolete legacy fortran 77 wrapper. update Fortran section of manual. 2022-12-23 06:56:07 -05:00
b67dcd7ca3 small tweaks 2022-12-23 06:30:00 -05:00
749adf3a59 one more tweak to allow more x86 platforms to use JIT with Lepton 2022-12-23 05:32:35 -05:00
acf683e9d0 define ASMJIT_STATIC to work around Windows issues 2022-12-23 01:35:05 -05:00
3a6492fc42 use JIT compiler only on Linux for now 2022-12-22 23:46:21 -05:00
09871a0178 mention JIT 2022-12-22 23:32:06 -05:00
ca108c6f69 use blank instead of empty string which is not supported by all compilers 2022-12-22 23:23:32 -05:00
338cee917f fix copy-n-paste issue 2022-12-22 23:13:06 -05:00
992ef989b3 Fixed warning message encountered with -std=f2003 2022-12-22 22:09:20 -06:00
a8c881aaf3 try to address linker issues with asmjit on older Linux machines 2022-12-22 23:09:09 -05:00
ae8f03803c Merge branch 'develop' into lepton-package 2022-12-22 22:52:20 -05:00
5b42064fcf add docs for lepton pair and bond style 2022-12-22 22:50:24 -05:00
e59f99b440 add support for JIT compilation 2022-12-22 22:50:01 -05:00
ca27fb3a98 update Lepton to current master branch 2022-12-22 22:47:45 -05:00
44e6078437 fix for bug detected by gfortran 12.2 2022-12-22 22:01:48 -05:00
885108e95b Merge branch 'lammps:develop' into fortran2_updates 2022-12-22 20:31:05 -06:00
f79d49ae64 Merge branch 'develop' into dpd-exclusions 2022-12-22 16:33:36 -05:00
91c498c413 suppres explicit exports/import in Lepton lib 2022-12-22 16:32:17 -05:00
a7a5a83308 minor tweaks 2022-12-22 15:49:11 -05:00
d9b1e318e8 add documentation for LEPTON package and lepton pair and bond style 2022-12-22 15:48:24 -05:00
07fe2fa29d Merge pull request #3570 from lammps/doc-ovito-info
OVITO info for dump doc page
2022-12-22 15:46:35 -05:00
d4af1834ec Update dump.rst 2022-12-22 10:44:03 -07:00
090a4a69b9 Merge pull request #3561 from lammps/map_ghost_bug
Fix bug when atoms are added after run
2022-12-22 12:27:56 -05:00
90cf1d6fca update VMD compatibility info, too. 2022-12-22 12:25:49 -05:00
0b7a55dac6 OVITO info in dump doc page 2022-12-22 08:11:22 -07:00
a5ecef708f correctly compute offsets. update unit test files. 2022-12-22 09:59:55 -05:00
e99bd14fd8 Merge branch 'develop' into lepton-package 2022-12-22 09:25:26 -05:00
8b8c0ee72d Merge pull request #3567 from akohlmey/next_patch_release
Set version strings for next patch release
2022-12-22 09:16:33 -05:00
ab72e95d0a restart offset for bond style lepton 2022-12-22 07:26:00 -05:00
2865929558 update for added source 2022-12-22 07:11:04 -05:00
48c23788f2 handle pair_modify shift and enforce the bond lepton has zero energy at r0 2022-12-22 07:10:48 -05:00
4cbe8b353b move shared functionality to utility function added to Lepton library 2022-12-22 05:37:59 -05:00
3bb6e1ab19 Merge branch 'develop' into lepton-package 2022-12-22 04:45:51 -05:00
ea8d90059a Merge pull request #3566 from akohlmey/collected-small-changes
Final collection of small changes for next patch release
2022-12-22 02:21:06 -05:00
5da8242690 add bond style lepton 2022-12-22 02:13:51 -05:00
966211bb53 avoid conflicting names 2022-12-22 02:13:28 -05:00
73c95d43af whitespace 2022-12-21 22:33:15 -05:00
46f514d2ca add support for writing binary restart files 2022-12-21 22:30:05 -05:00
4293771ae8 silence compiler warnings 2022-12-21 21:53:25 -05:00
e2f9d59484 whitespace fixes 2022-12-21 21:34:56 -05:00
cf0fb7f5df build system updates for presets and dependencies 2022-12-21 21:32:27 -05:00
8511aae211 add OPENMP package version of pair style lepton 2022-12-21 21:18:20 -05:00
c64066eb21 simplify processing of expressions 2022-12-21 21:16:59 -05:00
969ac57256 make expression string compact and easier restartable by removing quotes and whitespace 2022-12-21 21:16:23 -05:00
6c5a698be4 try to speed up compute kernel 2022-12-21 19:24:28 -05:00
2cf1793a93 add unit test for pair style lepton 2022-12-21 18:29:11 -05:00
76a84d7865 add pair style lepton 2022-12-21 18:28:57 -05:00
5f934e3eae add LEPTON package build system support for CMake 2022-12-21 18:28:35 -05:00
c44e87d87a avoid name conflict with COLVARS package 2022-12-21 18:28:04 -05:00
517a2e5e26 import Lepton library with namespace and header changed to LMP_Lepton 2022-12-21 14:18:39 -05:00
b6701f1892 improve error messages 2022-12-21 12:11:34 -05:00
3d8e5be653 apply clang-format 2022-12-21 12:11:25 -05:00
5c02803e02 Merge branch 'develop' into collected-small-changes 2022-12-21 12:06:26 -05:00
d8620fc34c Merge pull request #3553 from evoyiatzis/patch-3
Fixing bug #3545
2022-12-21 12:05:44 -05:00
12a23b0ef1 Fixing comment from bug report #3545 2022-12-21 16:22:56 +02:00
0460649d5b add note about porting legacy code to the new Grid3d/Grid2d classes 2022-12-20 19:27:56 -05:00
a235cd4719 mention type labels in bond/react docs 2022-12-20 14:02:46 -05:00
4309e0a6c8 Added important restriction on number of atom types 2022-12-20 11:55:24 -07:00
4a2d928d91 Merge remote-tracking branch 'upstream/develop' into develop 2022-12-20 11:20:52 -07:00
84d97a9ef7 type labels for create_atoms_polystyrene example 2022-12-20 13:15:59 -05:00
21b14cd7e4 remove now-redundant code 2022-12-20 12:46:59 -05:00
7383a8957b refactor atom stabilization code 2022-12-20 11:41:11 -05:00
e94a89baf7 update .gitignore and Purge.list for recent changes 2022-12-20 11:05:32 -05:00
cc34cfb917 add missing entry to list 2022-12-20 10:57:38 -05:00
b79f08b8d5 fix logic bug 2022-12-20 07:10:28 -05:00
8e36fcfa6a address integer overflow issues detected by CodeQL 2022-12-20 07:04:57 -05:00
aba0ead71f programming style changes to reduce warnings from static code analysis 2022-12-20 06:34:07 -05:00
0f23659523 fix bug detected by coverity scan 2022-12-20 06:34:07 -05:00
9e45fba4c4 skip test where it causes an internal compiler error 2022-12-20 06:34:00 -05:00
2e6b975878 update version tag placeholders for added, removed, or changed functionality 2022-12-19 22:11:06 -05:00
fd41ea9eae update version strings for next patch release 2022-12-19 22:09:48 -05:00
fa6251d83b Merge pull request #3560 from akohlmey/collected-small-changes
Collected small changes and fixes for the next patch release
2022-12-19 21:38:36 -05:00
c160eb7f11 clear memory before use 2022-12-19 20:52:15 -05:00
a4f2e452e0 temporary disable test that is failing consistently on github action w/o explanation 2022-12-19 20:32:07 -05:00
a44f5c8594 fix uninitialized memory access in fortran unit test. must have consumer to access compute 2022-12-19 20:29:52 -05:00
e9b4d2c55d fix windows support bug 2022-12-19 20:04:27 -05:00
078468a94f fix uninitialized variable access through local variable scoping 2022-12-19 19:59:54 -05:00
457746dadc Merge branch 'develop' into collected-small-changes 2022-12-19 19:45:04 -05:00
5deb6df2ad Merge pull request #3547 from hammondkd/fortran-fix-external
Completing the Fortran interface
2022-12-19 18:44:45 -05:00
219b971caf Merge branch 'update-mliap' of github.com:rohskopf/lammps into collected-small-changes 2022-12-19 12:57:39 -05:00
3e9bb99daa Merge branch 'develop' into collected-small-changes to resolve merge conflicts 2022-12-19 12:42:09 -05:00
18d07883c3 python 2 compatibility 2022-12-19 12:13:40 -05:00
bc8812c391 add one more tabulation example showing how to smoothly replace part of a function in a different potential 2022-12-19 12:13:25 -05:00
72b0a2dfdf Merge pull request #3405 from lammps/distributed-grids
Support for distributed grids
2022-12-19 12:06:25 -05:00
e5bece9a01 Output python model loading on one proc 2022-12-19 09:44:16 -07:00
fe4bc9baa2 small fixes 2022-12-18 16:41:43 -05:00
feb33fdf3b port dpd/ext pair styles to OPENMP package 2022-12-18 16:41:09 -05:00
fa8e3256eb add unit tests for dpd/ext pair styles 2022-12-18 16:40:56 -05:00
aa31f85535 partial implementation for a fix to correctly apply exclusions with dpd pair styles 2022-12-18 11:38:07 -05:00
91325d49c5 update examples and log files for pair style meam/spline 2022-12-18 11:32:37 -05:00
9de23dd2df correct for changed reference results due to fixing the potential file issue 2022-12-18 11:22:11 -05:00
0cc5a5dbbc update pair style meam/sw/spline examples add log files 2022-12-18 11:18:43 -05:00
387c07e6a2 update meam/sw/spline examples for Si. add logs 2022-12-18 11:08:14 -05:00
cc94770928 correct order of coefficients in pair style dpd/ext docs 2022-12-18 10:57:32 -05:00
15dfb090c9 speed up utils::is_double() by putting most likely matching regexps first 2022-12-18 06:06:22 -05:00
1cd7011b66 fix incorrect floating point number (missing "e") in meam/sw/spline potential
this also requires updating the unit test
2022-12-17 23:02:07 -05:00
9137edae10 fix incorrect detection of leading '-' on floating point numbers 2022-12-17 22:31:02 -05:00
5a18cea6c9 tighter checking of what is a valid integer/floating point number
also use the check consistently when converting numbers
2022-12-17 22:06:50 -05:00
b6c7d24b6d do not accept kspace style accuracy values > 1.0, improve error message 2022-12-17 21:35:44 -05:00
00f8d2b96d small fixes 2022-12-17 16:11:06 -05:00
b70f4c8fa8 port dpd/ext pair styles to OPENMP package 2022-12-17 16:07:28 -05:00
bf129ce61a add unit tests for dpd/ext pair styles 2022-12-17 15:43:34 -05:00
3e26056228 warn about growing the box with read_data add messing up coordinates 2022-12-16 22:17:56 -05:00
ea5fa92c2f Merge remote-tracking branch 'github/develop' into collected-small-changes 2022-12-16 22:16:03 -05:00
17d69b7dbd small documentation improvements 2022-12-16 22:09:30 -05:00
db3ccf93c6 Merge pull request #3562 from bramoore/intel_fixes
Collection of small fixes to INTEL package
2022-12-16 20:14:02 -05:00
ac20f22056 type-labels: polystyrene example 2022-12-16 18:39:37 -05:00
4f944cfe0a Revert accidental change 2022-12-16 16:36:02 -07:00
9d4af4098c index entries were missing 2022-12-16 18:30:28 -05:00
111faa758d Merge branch 'develop' into collected-small-changes 2022-12-16 18:25:12 -05:00
42c41ac151 Remove unused var 2022-12-16 16:22:20 -07:00
3b267682b5 Merge pull request #3522 from mkanski/fix_viscous_kokkos
KOKKOS version of fix viscous and fix dt/reset
2022-12-16 18:12:29 -05:00
d9e9062854 Initialize pointers 2022-12-16 16:03:44 -07:00
c421a445bd Small cleanup, docs 2022-12-16 15:18:57 -07:00
6833bed347 Merge branch 'develop' of github.com:lammps/lammps into fix_viscous_kokkos 2022-12-16 14:35:16 -07:00
544e171635 Avoid trying to free a wild pointer 2022-12-16 14:13:08 -07:00
6eeab59a5e Remove redundant variable 2022-12-16 14:12:21 -07:00
e9cc625eae Whitespace 2022-12-16 12:11:45 -07:00
b734ddc9d4 Port grid3d changes to Kokkos 2022-12-16 12:04:49 -07:00
ce1190aebb Templated functions calling math libraries should use type-aware calls 2022-12-16 12:56:25 -06:00
1013cd6eae Vector masking is part of AVX512, not limited to Intel compiler 2022-12-16 12:56:25 -06:00
4e078b01f4 Fix uninitialized memebr 2022-12-16 12:56:24 -06:00
b4302ea899 Merge branch 'lammps:develop' into fortran2_updates 2022-12-16 12:16:23 -06:00
14fd40acc5 Merge branch 'lammps:develop' into fortran-fix-external 2022-12-16 12:15:27 -06:00
85ac3ac98b Also need to clear atom map 2022-12-16 09:42:06 -07:00
a633915829 Merge pull request #3559 from akohlmey/tabulate-scripts
Add python scripts in tools folder to generate table files for different table force styles
2022-12-16 11:18:06 -05:00
9e5b419e4e Fix bug when atoms are added after run 2022-12-16 08:33:26 -07:00
7eb22f691b remove unused variables 2022-12-16 06:16:51 -05:00
dc7bf29c09 whitespace fixes 2022-12-16 05:08:07 -05:00
dc0496ed48 Merge branch 'develop' into fortran-fix-external 2022-12-16 04:39:24 -05:00
8998ef23de update docs for tools/tabulate scripts 2022-12-16 02:49:39 -05:00
2de997b52d import tabulate scripts for table files 2022-12-16 01:11:52 -05:00
a51f31fa6d remove no longer needed discussion of read_restart remap option 2022-12-16 01:00:40 -05:00
b649b9e963 remove dead code 2022-12-15 22:56:58 -05:00
0407620645 document removal of remap option for read_restart 2022-12-15 16:34:38 -05:00
bacb43ea59 add check to detect incorrectly used role keywords. 2022-12-15 16:27:00 -05:00
b2f0f89d67 reformat 2022-12-15 16:27:00 -05:00
ed248d1a6a enforce initialization of data 2022-12-15 16:27:00 -05:00
bded6b7fd0 update OpenMP suppressions for clang 15.0 2022-12-15 16:27:00 -05:00
f0af982d09 tiny_epoxy: actually use log files 2022-12-15 13:22:15 -05:00
35eff624ab nylon_melt: actually use log files
not output file
2022-12-15 13:16:49 -05:00
b5eb64cc0c type labels for tiny_nylon example 2022-12-15 13:08:25 -05:00
28f8525fa0 one more valgrind error 2022-12-15 08:55:55 -07:00
6b2b3765c2 fix valgrind issues 2022-12-15 08:48:27 -07:00
2e4f419e19 Merge pull request #3538 from akohlmey/strip-style-suffix
Remove suffix from style names when writing restart files
2022-12-14 20:53:56 -05:00
bbaa2cbf3c Merge pull request #3558 from jtclemm/BPM
Small patch to BPM package
2022-12-14 18:24:47 -05:00
2446a7855e Merge branch 'distributed-grids' of github.com:lammps/lammps into distributed-grids 2022-12-14 18:15:59 -05:00
f99ac7dc88 bug fix for 2d grid corners 2022-12-14 16:14:05 -07:00
281e67d6fb Merge branch 'develop' into distributed-grids 2022-12-14 18:12:10 -05:00
cf8bce646f Merge branch 'distributed-grids' of github.com:lammps/lammps into distributed-grids 2022-12-14 15:41:10 -07:00
4efe379b7b tweak dump image settings for better viz of grid cells 2022-12-14 15:41:01 -07:00
60a4ef5c71 Merge pull request #3556 from lammps/add-user-vcsgc
Add streamlined version of fix sgcmc from USER-VCSGC package
2022-12-14 17:24:58 -05:00
88cc0b646a Fix memory leak in Kokkos fix shake 2022-12-14 15:05:27 -07:00
9b3cc46ccf add override keyword 2022-12-14 16:15:24 -05:00
b60a6e796e Ensuring data is updated before writing restarts 2022-12-14 14:14:43 -07:00
85ed8edfcb Prevent double free of CPU memory 2022-12-14 13:58:10 -07:00
3268687391 Removing unnecessary clears in update special fix 2022-12-14 13:39:19 -07:00
d2c77f1d0c small tweaks from @athomps 2022-12-14 15:19:07 -05:00
82147f1eb6 Merge branch 'strip-style-suffix' of https://github.com/akohlmey/lammps into strip-style-suffix 2022-12-14 13:05:01 -07:00
babec093ca Merge branch 'develop' into strip-style-suffix 2022-12-14 13:45:59 -05:00
b70d60ef48 small documentation tweak 2022-12-14 13:44:42 -05:00
13e5b12f21 Merge pull request #3555 from stanmoore1/kk_atom_vec
Refactor Kokkos `AtomVec`
2022-12-14 13:43:07 -05:00
26ad12e2af add code owner for gcmc and sgcmc fixes 2022-12-14 12:28:20 -05:00
d8b404cc42 update docs, fix references, correct spelling issues 2022-12-14 10:22:47 -05:00
08a257c361 small IWYU fix 2022-12-13 20:55:53 -05:00
cf0a16a33c remove comments for known functions 2022-12-13 20:42:19 -05:00
fdb9a75714 programming style updates
- partially enable clang-format
- reindent
- update parsing of numeric arguments
- update handling of error messages
- add blank after "if", "for", "while" where needed
- silence compiler warnings
2022-12-13 20:36:12 -05:00
df12232e24 Merge branch 'develop' into add-user-vcsgc 2022-12-13 18:31:01 -05:00
fe7b489149 Merge pull request #3550 from akohlmey/collected-small-changes
Collected small changes and fixes
2022-12-13 18:26:28 -05:00
b2b21540bf import docs for fix sgcmc 2022-12-13 17:07:43 -05:00
998f41b8f4 fix typo 2022-12-13 16:39:18 -05:00
49cccd7526 add example for fix sgcmc 2022-12-13 16:35:49 -05:00
88ac09a8c0 build system support: fix sgcmc may only be compiled if EAM is available 2022-12-13 16:35:19 -05:00
b76e645182 remove optional code 2022-12-13 16:14:29 -05:00
630b770f80 rename files 2022-12-13 15:58:16 -05:00
422b9999f5 add lammps copyright headers 2022-12-13 15:56:42 -05:00
1440ff7b16 import fix sgcmc code from lammps-plugin repo 2022-12-13 15:50:21 -05:00
01cfe4a2ac Merge branch 'kk_atom_vec' of github.com:stanmoore1/lammps into strip-style-suffix 2022-12-13 13:14:51 -07:00
8248b5bc18 Merge branch 'develop' of github.com:lammps/lammps into distributed-grids 2022-12-13 13:00:31 -07:00
77dea685b5 Small cleanup 2022-12-13 12:10:56 -07:00
bd2001578b Remove more redundant variables 2022-12-13 10:56:56 -07:00
a94ec5fdf7 Remove redundant variables 2022-12-13 10:20:12 -07:00
88b89b67a2 Merge pull request #15 from akohlmey/kk_atom_vec
Small update to LAMMPS PR #3555 branch for consistency and to fix compilation errors
2022-12-13 08:58:31 -07:00
dd7a39b702 add missing entry to table 2022-12-13 09:22:02 -05:00
62a1cf5a84 provide backward compatible URLs to reduce 404 errors on www.lammps.org 2022-12-13 05:28:28 -05:00
983401b015 type labels for nylon_melt example 2022-12-13 00:37:09 -05:00
d7742412b3 must use dynamic cast due to virtual inheritance 2022-12-12 20:37:53 -05:00
3b2376d0bb use virtual inheritance consistently for all atom styles 2022-12-12 20:37:30 -05:00
6d8e7e1ece Refactor Kokkos AtomVec 2022-12-12 17:34:18 -07:00
0375a7569e type labels for tiny_epoxy example 2022-12-12 17:08:42 -05:00
4458c36676 some more dead code removed that was detected by clang 15 2022-12-12 09:45:55 -05:00
79ab63a33c a few more IWYU updates 2022-12-12 09:45:29 -05:00
ebcb702e95 remove dead code detected by clang 15 2022-12-12 07:07:06 -05:00
b30ce3ff32 next round of IWYU updates 2022-12-12 01:07:46 -05:00
01a54723d7 more iwyu updates 2022-12-11 23:40:31 -05:00
302bec9de4 stay compatible with older C++ compilers 2022-12-11 22:58:54 -05:00
a3c0be875e include-what-you-use updates 2022-12-11 22:46:54 -05:00
e0792d3a62 apply code changes suggested by clang-tidy 2022-12-11 18:44:50 -05:00
126f597e71 need no longer need to Fortran MPI library 2022-12-11 18:02:49 -05:00
c0a39dc7b8 add c wrapper to allow testing fortran interface w/o fortran MPI libs 2022-12-11 18:00:35 -05:00
0984b11cb4 skip gather_bonds test when atom style full is no available 2022-12-11 17:59:23 -05:00
33bee575b4 Merge branch 'develop' into fortran-fix-external 2022-12-11 17:56:32 -05:00
9beb64236e skip gather_bonds test when atom style full is no available 2022-12-11 17:50:47 -05:00
2f84eac5c5 add c wrapper to allow testing fortran interface w/o fortran MPI libs 2022-12-11 17:50:03 -05:00
aed6eb0947 fix typo 2022-12-10 09:59:49 -05:00
2421f9098c Merge pull request #3517 from akohlmey/document-style-flags
Provide more and updated details about implementing new styles in LAMMPS
2022-12-10 09:59:01 -05:00
d3b1fecd03 Fixing bug #3545
Instead of storing the vector from the nearest point of an ellipse to an atom, delxyz was storing the coordinates of the nearest point of the ellipse to the atom.
2022-12-10 13:46:12 +01:00
07bb7b3195 fix up kim unit tests broken by recent changes 2022-12-09 19:56:45 -05:00
4a18561005 Merge pull request #3552 from lammps/kk_min_bug
Fix bug in Kokkos minimize on GPUs
2022-12-09 19:30:53 -05:00
db13738056 Update bond/react readme 2022-12-09 17:52:05 -05:00
34f44daef5 some small programming style updates 2022-12-09 16:56:50 -05:00
b0accb4ebf replace atoi() with suitable utility functions 2022-12-09 16:56:17 -05:00
f24cb96517 use utils::numeric() instead of atof(), improve error messages 2022-12-09 16:29:32 -05:00
5e2a8beb4a Fix bug in Kokkos minimize on GPUs 2022-12-09 14:28:26 -07:00
f6d6e1ef01 remove workaround that is no longer needed 2022-12-09 16:23:10 -05:00
72789904c3 Update packages_details.rst take 2 2022-12-09 15:35:14 -05:00
3d3368ed99 Update Packages_details.rst 2022-12-09 12:02:09 -05:00
3ab2651851 must add const attribute to method 2022-12-09 00:41:23 -05:00
946f7ca389 add test and warning for missing charge info and point dipoles, respectively 2022-12-09 00:33:26 -05:00
8eb1b0042d error out without charge data 2022-12-09 00:30:40 -05:00
4aaf003fb1 fix minor issues reported by coverity scan, re-apply clang-format 2022-12-08 23:59:42 -05:00
f0244255ff improve warning message 2022-12-08 13:35:41 -05:00
19e6d1cd9f new command compute efield/wolf/atom 2022-12-08 06:32:17 -05:00
f450c12b3d Merge branch 'lammps:develop' into fortran2_updates 2022-12-07 23:55:11 -06:00
34449fc47c fix typo and reformat 2022-12-07 20:41:33 -05:00
4a92316cf2 improve error message 2022-12-07 15:02:59 -05:00
739537930d use utils::numeric() instead of atof and improve error messages in QEQ package 2022-12-07 13:35:57 -05:00
92e6c6ea9d avoid 32-bit integer overflow for memory allocation 2022-12-07 13:35:52 -05:00
213a2a21ea Merge pull request #3548 from akohlmey/collected-small-changes
Collected small changes and fixes
2022-12-06 20:13:19 -05:00
8ade2d1ad9 Merge branch 'lammps:develop' into fortran-fix-external 2022-12-06 18:12:07 -06:00
0a608abaac Merge branch 'lammps:develop' into fortran2_updates 2022-12-06 18:11:36 -06:00
77cbd8c1c9 update .gitignore for renamed source file 2022-12-05 19:47:08 -05:00
2f8c379e37 Merge branch 'ml-pod-fixes' into collected-small-changes 2022-12-05 19:18:03 -05:00
2c6cd42038 silence compiler warnings about unused function parameters 2022-12-05 19:17:47 -05:00
92d8994189 add initializer for podptr 2022-12-05 18:03:43 -05:00
1fa0b432a4 avoid making members public 2022-12-05 18:03:43 -05:00
69d402fa7b handle dead code 2022-12-05 18:03:43 -05:00
20f568e1ae avoid division by zero 2022-12-05 18:03:39 -05:00
f33d7b8fc1 avoid string copy 2022-12-05 18:03:28 -05:00
ecf5b5a848 use call-by-reference to pass datastruct to functions 2022-12-05 17:30:13 -05:00
080b3b9ccb avoid 32-bit integer overflow 2022-12-05 13:23:12 -05:00
08129bfc00 Merge branch 'develop' into collected-small-changes 2022-12-05 12:40:28 -05:00
31ca8fbbed Merge pull request #3449 from cesmix-mit/pod
ML potentials with proper orthogonal descriptors
2022-12-05 12:29:13 -05:00
642aaf3d7d Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes 2022-12-05 11:18:06 -05:00
be17106ecf Merge branch 'develop' into collected-small-changes 2022-12-05 07:02:13 -05:00
01f835d6d6 Merge branch 'lammps:develop' into fortran2_updates 2022-12-04 23:40:53 -06:00
0a7943f941 Merge branch 'lammps:develop' into fortran-fix-external 2022-12-04 23:36:21 -06:00
0c238d179d Merge pull request #3544 from robeme/electrode
Electrode package update
2022-12-04 20:01:18 -05:00
17a921f8e5 Added obsolescence warning to Makefile 2022-12-04 18:54:27 -06:00
e20235b7e5 Added text to README and LAMMPS.F90 making examples/COUPLE/fortran2 obsolete 2022-12-04 18:34:22 -06:00
d4289a2774 update list of commands in pygments LAMMPS lexer 2022-12-04 16:59:35 -05:00
e67bec6b2f use consistent pygments language tags 2022-12-04 16:59:17 -05:00
cf4d1ec744 add version tags 2022-12-04 16:30:50 -05:00
97c058d156 correct syntax-highlighting to use C++ lexer instead of C 2022-12-04 16:22:15 -05:00
d49840e8d5 rename doc file for all electrode fixes to fix_electrode.rst 2022-12-04 16:10:02 -05:00
a96d4101ea small doc updates, add version tags, rewrap paragraphs 2022-12-04 16:07:32 -05:00
1cde202079 test for coul/slater/long requires KSpace style ewald from KSPACE package 2022-12-04 04:24:10 -05:00
162f2f9384 whitespace; versionadded tags 2022-12-04 00:27:48 -06:00
f381a78c46 Added missing "call to" in Fortran docs 2022-12-03 21:52:30 -06:00
411f9b450f documented two overlooked functions; added NULL check to neighlist_element_neighbors 2022-12-03 21:39:14 -06:00
c0345845e8 unit test for gather and scatter; char* to const char* in library.* 2022-12-03 20:38:42 -06:00
dac55cf64d avoid segfault on short data read when parsing tabulated potentials 2022-12-03 20:45:52 -05:00
2f321576c5 Added documentation for scatter and gather; updated other docs 2022-12-03 16:03:29 -06:00
7c0c2234b3 Remove unused functions 2022-12-03 09:01:42 -05:00
71f086e159 implemented scatter, gather, and friends; wrote and updated documentation 2022-12-02 17:19:42 -06:00
b61b432078 update fitpod doc 2022-12-02 17:42:49 -05:00
fa160a21c2 Move precision and basename options from param input file to data input file 2022-12-02 17:41:34 -05:00
1eb489236e make certain binlo/binhi are initialized 2022-12-02 14:35:21 -05:00
6ef59196cf Update the description of the fitting in the fitpod doc 2022-12-02 10:43:01 -05:00
792635d1a9 address spelling issues 2022-12-02 10:42:40 -05:00
96c022d2d5 fix white spaces 2022-12-02 10:34:02 -05:00
25748781e2 Update doc for the regularization parameter as an optional input 2022-12-02 10:33:04 -05:00
e4791356c7 Add regularization parameter to make the fitting more robust. 2022-12-02 10:29:46 -05:00
43dca96ca4 Merge branch 'fortran-fix-external' of github.com:hammondkd/lammps into fortran-fix-external 2022-12-02 00:02:10 -06:00
b1664ce8ea replaced unit 0 with error_unit 2022-12-02 00:00:57 -06:00
4c9ca8761c Merge branch 'lammps:develop' into fortran-fix-external 2022-12-01 23:50:26 -06:00
c2a0660112 Bug fix and unit tests for fix external-related commands 2022-12-01 23:49:17 -06:00
539f5b2fcb Merge pull request #11 from akohlmey/pod-updates
ML-POD updates
2022-12-01 23:34:31 -05:00
5b42b607d9 add precision parameter keyword to docs 2022-12-01 23:26:55 -05:00
7968c49916 rename old log and add logs for second example 2022-12-01 23:22:27 -05:00
8224e05515 simplify by making precision directly an integer 2022-12-01 23:19:38 -05:00
ef7b18cd34 remove dead code 2022-12-01 23:19:00 -05:00
7ec27b4c09 update logs and unit test 2022-12-01 23:18:41 -05:00
7063574d61 whitespace 2022-12-01 23:03:30 -05:00
b9a70c3998 update unit test 2022-12-01 22:59:58 -05:00
e79ae87957 Stabilize the linear solve and update Ta examples 2022-12-01 22:38:09 -05:00
3fea762e30 Merge branch 'distributed-grids' of github.com:lammps/lammps into distributed-grids 2022-12-01 15:51:31 -07:00
1ba9ff7817 add new grid-based examples 2022-12-01 15:51:17 -07:00
713c7d3508 Cleaned up documentation 2022-12-01 16:49:18 -06:00
99b5053991 Update log files 2022-12-01 16:07:22 -05:00
82375f75e4 Update reference log files 2022-12-01 15:53:26 -05:00
1228b89ece Add a quadratic pod example for Ta 2022-12-01 15:37:05 -05:00
3c9a6c4265 Fix white space 2022-12-01 14:42:24 -05:00
2738f18889 Add optional precision to round the coefficients to ensure consistency across platforms 2022-12-01 13:53:42 -05:00
f91828d7a6 improve error messages 2022-12-01 11:02:16 -05:00
cd7b3897a4 enable and apply clang-format 2022-12-01 11:02:04 -05:00
65488ca217 silence compiler warnings 2022-12-01 10:51:04 -05:00
6365af8704 Merge branch 'develop' into distributed-grids 2022-12-01 10:38:55 -05:00
dbfc5c74ce spelling 2022-12-01 10:36:12 -05:00
6d4cb38d1f parse_gridid was renamed to parse_grid_id 2022-12-01 10:12:39 -05:00
87a0833edd whitespace fixes 2022-12-01 10:12:14 -05:00
196f16325c Update fitpod 2022-12-01 09:27:16 -05:00
db8b4af924 Merge branch 'pod' of https://github.com/cesmix-mit/lammps into pod 2022-12-01 09:18:18 -05:00
929f23095c Update fitpod to let proc 0 handle the linear system and broadcast the solution to other processors 2022-12-01 09:17:41 -05:00
d900c5adf0 Merge pull request #10 from akohlmey/pod-updates
More ML-POD updates
2022-12-01 09:09:46 -05:00
1d957d2c71 convert keyword lists in fitpod docs to proper tables 2022-12-01 08:49:54 -05:00
3792140734 prettify and simplify output table formatting using fmt::format() 2022-12-01 06:38:20 -05:00
1b40ff2a81 simplify 2022-12-01 06:38:20 -05:00
d7f16eb713 apply clang-format 2022-12-01 06:38:20 -05:00
587cfbeafe simplify. atom type to element mapping is checked in map_element2type() 2022-12-01 06:38:13 -05:00
8300d0865c correct name of pair style in error messages 2022-12-01 04:57:27 -05:00
52bd4ec9cf Merge pull request #9 from akohlmey/pod-updates 2022-11-30 23:52:06 -07:00
7cdb8a971a add false positive 2022-12-01 01:40:26 -05:00
8951aceecb add madelung logs 2022-12-01 16:35:57 +10:00
ad68eb8a59 add piston logs 2022-12-01 16:35:00 +10:00
a346d7c6ca truncate coefficient output to 8 digits precision that are reproducible 2022-12-01 01:12:26 -05:00
61c4953119 update log files 2022-12-01 00:55:29 -05:00
9523163300 update unittest 2022-12-01 00:53:05 -05:00
05669fd7ed whitespace 2022-12-01 00:32:13 -05:00
deb4684d26 Update README 2022-12-01 00:14:11 -05:00
bf07ccba77 Update documentation 2022-12-01 00:11:21 -05:00
a87aff7b87 Fixed bug and wrote unit tests for fix_external_array functions 2022-11-30 22:48:29 -06:00
fd13fe1e9a Add basename feature to output files and removed existing files 2022-11-30 22:34:42 -05:00
657054205d Merge pull request #8 from akohlmey/pod-updates
ML-POD updates
2022-11-30 21:44:27 -05:00
b7034e0380 update log files with updated coeff data 2022-11-30 21:27:01 -05:00
3333bdd5b9 update data without excess precision 2022-11-30 21:22:08 -05:00
264627daa6 programming style 2022-11-30 21:19:59 -05:00
d924d6bd17 plug one more memory leak 2022-11-30 21:19:46 -05:00
2a093e45ad Merge branch 'pod' into pod-updates 2022-11-30 21:07:58 -05:00
169d08fdf9 use new/delete for memory management in podstruct. add a destructor 2022-11-30 21:07:01 -05:00
8ba297fa64 Merge pull request #6 from akohlmey/pod-updates
ML-POD updates
2022-11-30 21:04:12 -05:00
793987e0c3 replace planar logs 2022-12-01 11:48:26 +10:00
a733e4ddf9 replace au-aq logs 2022-12-01 11:46:51 +10:00
d377a79f83 small style updates 2022-11-30 20:33:17 -05:00
cadffe7e8b rename fitpod command class to be consistent with rest of LAMMPS 2022-11-30 20:33:05 -05:00
2da2bf54b9 reduce memory leakage 2022-11-30 20:32:42 -05:00
d53701117b write to files only on MPI rank 0 2022-11-30 20:31:23 -05:00
c7300f47b1 replace logs for graph-il 2022-12-01 11:17:49 +10:00
736f545bad move install instructions for ML-POD into the correct place 2022-11-30 19:56:29 -05:00
4badeabd55 add versionadded tag 2022-11-30 19:56:02 -05:00
a52769f783 update README for potentials 2022-11-30 19:35:01 -05:00
6fe8b84c23 correct updating Makefile.package.setting edits, fix a few broken ones. 2022-11-30 19:31:00 -05:00
1b29f1d351 remove dead code and fix typo 2022-11-30 19:26:59 -05:00
26ecd2a9b0 update ML-POD example and include log files 2022-11-30 19:26:31 -05:00
0997842bf7 add back symlinks 2022-11-30 19:23:09 -05:00
13d1ce38d2 remove copies 2022-11-30 19:22:59 -05:00
6966a0726b remove redundant files and recreate logs 2022-11-30 19:17:40 -05:00
b68e56e9be (partially) apply clang-format 2022-11-30 19:11:20 -05:00
c0a01ae19b remove dead code 2022-11-30 19:10:27 -05:00
16e8e33d5b move podstruct initialization from header to implementation file 2022-11-30 19:09:43 -05:00
cd5bd9f378 add C++ marker for emacs 2022-11-30 19:08:18 -05:00
8eca05752a sort list of files to achieve consistent fitting 2022-11-30 18:49:59 -05:00
d61bfa05ea correct Install.sh brokenness inherited from ELECTRODE/Install.sh 2022-11-30 18:49:29 -05:00
5ed380c2d6 Merge pull request #5 from akohlmey/pod-updates
More ML-POD updates
2022-11-30 16:07:52 -05:00
2db1a74ba7 update false positives list 2022-11-30 14:13:11 -05:00
479e5ca862 Merge branch 'develop' into document-style-flags 2022-11-30 13:57:45 -05:00
7ce4b2eb68 fix bug with slab geometries 2022-11-30 11:55:19 -07:00
e1d31a5633 Merge branch 'develop' into pod-updates 2022-11-30 13:47:40 -05:00
e76e864152 Merge pull request #3539 from akohlmey/collected-small-changes
Collected small changes and fixes
2022-11-30 13:45:05 -05:00
5900c8a06d rewrap paragraphs 2022-11-30 13:41:42 -05:00
cd4d6261e2 spelling 2022-11-30 13:34:42 -05:00
e5b1b29912 Merge branch 'develop' into pod-updates 2022-11-30 13:25:32 -05:00
cc18528ea1 more bookkeeping changes 2022-11-30 10:56:54 -07:00
be8b96557c whitespace fixes 2022-11-30 12:13:31 -05:00
afd7a6f485 programming style 2022-11-30 12:02:03 -05:00
b543c4caa3 replace non-portable file globbing with LAMMPS utility functions 2022-11-30 12:01:53 -05:00
fdeeb3fdbc update .gitignore 2022-11-30 11:59:33 -05:00
d32da83eb6 small bookkeeping changes 2022-11-30 09:51:13 -07:00
72140e2608 Merge branch 'develop' into collected-small-changes 2022-11-30 08:52:13 -05:00
c11eabddc0 error out when a bond/angle/dihedral/improper substyle is not used
this implements the same behavior as for pair style hybrid
2022-11-30 08:09:51 -05:00
5f3b719a7d improve error messages 2022-11-30 08:09:12 -05:00
80e6575784 avoid segfault, if repscale array is not allocated 2022-11-30 08:08:32 -05:00
8579b117af Implemented remaining fix_external functions and documentation 2022-11-29 23:23:14 -06:00
dcf68bbf59 Update doc to reflect a change in the pair style name 2022-11-29 20:20:42 -05:00
362739a337 Move examples to lammps/examples/PACKAGES/pod and rename source files 2022-11-29 20:06:04 -05:00
aecd3841be Initial implementation of fix_external_get_force 2022-11-29 18:28:52 -06:00
47d46e0257 doc page tweak 2022-11-29 16:58:07 -07:00
051ed8f884 spell checks 2022-11-29 16:39:31 -07:00
1924689867 spell checks 2022-11-29 16:37:43 -07:00
0fc25a9942 reformating RST file 2022-11-29 16:28:40 -07:00
2d3630a31f reformating RST file 2022-11-29 16:22:48 -07:00
479f7e19ee reformating RST file 2022-11-29 16:21:08 -07:00
e0c7ea9db6 reformating RST file 2022-11-29 16:19:01 -07:00
bb7bfc7ee7 developer doc page for distributed grids 2022-11-29 16:14:05 -07:00
9b7b45bdea update lib/linalg README 2022-11-29 17:27:07 -05:00
63b2d2eec7 Merge pull request #3530 from akohlmey/reset-command
Add reset_atoms meta-command and reset_atoms image command
2022-11-29 17:17:20 -05:00
c674f0864d Added lammps_fix_external_get_force to C library utility doc page 2022-11-29 15:56:26 -06:00
df5b97d6fe Merge branch 'lammps:develop' into fortran-fix-external 2022-11-29 15:43:40 -06:00
5f9956405a Updated docs and wrote unit tests for lmp_set_fix_external_callback; fixed typos 2022-11-29 15:37:15 -06:00
a3e0cfa8f7 Merge pull request #3541 from stanmoore1/kk_reax_tag
Fix bug in Kokkos ReaxFF, Tersoff, and Fix Neigh History on GPUs
2022-11-29 14:56:00 -05:00
b53964a5ac print aligned column headers for NEB output 2022-11-29 14:48:13 -05:00
c43b332b13 Merge pull request #4 from akohlmey/pod-updates
Some more ML-POD updates
2022-11-29 14:45:06 -05:00
5de185e89b Allow name tag for output files 2022-11-29 14:43:55 -05:00
1701b713a0 update code owners file for ML-POD package 2022-11-29 13:58:51 -05:00
6cd8689705 performance improvement replacing pow(x,0.5) with sqrt(x) and similar 2022-11-29 13:47:18 -05:00
690d889b38 use MathConst::MY_PI instead of M_PI 2022-11-29 13:25:29 -05:00
4b4f8507ea update code owners file for ML-POD package 2022-11-29 13:20:33 -05:00
3ac4202de2 Fix GPU tag issues in other Kokkos styles 2022-11-29 10:25:43 -07:00
2cfcb16e31 update python to version to 3.11 and disable png/jpeg for now 2022-11-29 11:55:04 -05:00
1e408416d2 Fix bug in Kokkos ReaxFF on GPUs 2022-11-29 09:21:15 -07:00
f787a0934b Merge pull request #2 from akohlmey/pod-updates
More ML-POD package updates and fixes
2022-11-28 17:08:57 -05:00
748ba7f6f5 fix broken link and clarify 2022-11-28 15:53:31 -05:00
e84a80e58c Update Developer_code_design.rst 2022-11-28 13:42:11 -07:00
7e09bc6e04 update python to version to 3.11 and disable png/jpeg for now 2022-11-28 15:11:33 -05:00
38f659f80e add metadata tags to potential file for mlpod 2022-11-28 15:05:20 -05:00
e1d1c72d94 update example to conform to LAMMPS conventions 2022-11-28 15:04:38 -05:00
e95551a16c update python to version to 3.11 and disable png/jpeg for now 2022-11-28 14:34:27 -05:00
d5da179afc correct docs for compute pair/local dx/dy/dz to reflect the code behavior 2022-11-28 14:12:30 -05:00
9b00d455b3 whitespace 2022-11-28 14:05:03 -05:00
9ba759bdd7 fix sphinx formatting issue 2022-11-28 14:00:26 -05:00
e2fa4a978b reformat changes 2022-11-28 10:44:19 -07:00
cf0ff1614e merged 3 doc pages for reset_atoms command 2022-11-28 10:32:53 -07:00
afe751fc8f style updates 2022-11-28 12:21:49 -05:00
6a8ee284bc print warning when per-atom energy or per-atom stress is requested in a run 2022-11-28 12:21:21 -05:00
0f216b5830 whitespace 2022-11-28 11:41:37 -05:00
ebdce82009 Merge branch 'pod' into pod-updates 2022-11-28 11:40:40 -05:00
e78ee616c3 update fitpod documentation 2022-11-28 11:08:50 -05:00
3b56d5e9b1 Update for documentation, change percentage to fraction, and fix some printing issues in fitpod_command 2022-11-28 11:03:18 -05:00
a3f1c25537 Merge branch 'develop' into merge-develop 2022-11-28 09:16:50 +01:00
ccc24b68ac avoid memory leak 2022-11-28 01:53:48 -05:00
518d51257c avoid leaking file pointer 2022-11-28 01:53:41 -05:00
bba486f0f1 simplify code and plug some memory leaks 2022-11-28 01:40:27 -05:00
1aa0154f3e document lack of per-atom energy/stress 2022-11-28 01:30:33 -05:00
3de72cee14 Merge branch 'pod' into pod-updates 2022-11-28 01:17:07 -05:00
b2cbfee47e add unit test for ML-POD package pair style mlpod 2022-11-28 01:10:46 -05:00
7ad7796508 fix a combination of programming style, memory leak, and formatting issues 2022-11-28 01:10:03 -05:00
ccffe80b8d update MPI functionality for fitpod command 2022-11-28 01:09:36 -05:00
ac67514016 apply clang-format 2022-11-28 01:09:16 -05:00
86f7023a7a skip per-atom energy check for pair style mlpod 2022-11-28 01:08:59 -05:00
484b84396c whitespace 2022-11-27 23:50:04 -05:00
fda10cf604 Merge branch 'pod' into pod-updates 2022-11-27 23:48:27 -05:00
45c2d1f45d fix typo and improve wording 2022-11-27 23:41:10 -05:00
72d28297be disable png/jpeg for now 2022-11-27 23:37:43 -05:00
234725a9fb Update MPI functionality for quadratic POD 2022-11-27 22:22:52 -05:00
cdc0157dcf improve output formatting 2022-11-27 19:42:54 -05:00
2e8fd7e316 respect all q for fix/electrode/conq with symm off 2022-11-28 10:14:00 +10:00
4c65d0c50e ignore last q for fix/electrode/conq with symm on and cg algos 2022-11-28 09:56:50 +10:00
e732fcacf3 include comm in electrode/conq 2022-11-27 23:46:00 +00:00
9958c9dfd7 update documentation 2022-11-27 23:46:00 +00:00
e58b71b0c9 issue warnings from only proc 0 2022-11-27 23:46:00 +00:00
32a3fc21bc enable symm for conq and thermo 2022-11-27 23:46:00 +00:00
37c7d7e325 avoid uninitialized data in sw/intel pair style 2022-11-27 18:35:05 -05:00
fb74d64889 disable building PYTHON package on Windows until the failure is understood 2022-11-27 18:10:28 -05:00
e7d72040e1 update BLAS/LAPACK to version 3.11.0 from 22 Nov 2022 2022-11-27 18:06:01 -05:00
c366441c15 add DPOTSV and DPOTRS LAPACK functions 2022-11-27 18:05:54 -05:00
d3d8dda40a try to debug python failure with v3.11 some more 2022-11-27 17:34:37 -05:00
d3bb55fa4f update BLAS/LAPACK to version 3.11.0 from 22 Nov 2022 2022-11-27 17:24:05 -05:00
5205e208a0 add DPOTSV and DPOTRS LAPACK functions 2022-11-27 17:18:23 -05:00
308f9ce8bf provide customized Install.sh for ML-POD package 2022-11-27 17:16:31 -05:00
1df948b26b add ML-POD package to relevant CMake presets 2022-11-27 17:16:13 -05:00
5bc4ac1cd8 add ml-pod package to "lib", "int", and "all" package lists 2022-11-27 17:12:41 -05:00
0636be8289 update .gitignore 2022-11-27 17:11:46 -05:00
50cb575415 temporarily disable failing command 2022-11-27 16:33:08 -05:00
b5238b9353 improve argument parsing and error messages 2022-11-27 16:27:49 -05:00
816736afd1 fix memory leak 2022-11-27 16:27:14 -05:00
ee5b021c57 Update MLPOD's documentation and changed example folder name from pod to mlpod 2022-11-27 11:14:21 -05:00
c8894e4d48 Change CPOD to MLPOD 2022-11-27 10:50:53 -05:00
f49b50be5e update installed python version to 3.11 in MSVC native compile/test 2022-11-26 15:29:32 -05:00
5458992dd3 Rename class PairPOD to PairMLPOD, initialize variables in constructor 2022-11-25 20:37:02 -07:00
76dbc498a0 doc tweaks 2022-11-25 15:03:03 -07:00
878b8a8a13 better argument checking with threebody off, disallow invalid uses
this now reads the potential file only on the first pair_coeff command
and also creates the element to atom type map then. all following
pair_coeff commands must be consistent. LAMMPS will stop if not.

we also need to explicity assign setflag and must not have it reset
when creating the mappings.
2022-11-25 15:37:06 -05:00
2e6fdf2ea3 improved error message 2022-11-25 15:31:16 -05:00
2efd485bd0 update Intel buffers for calculations 2022-11-25 08:37:49 +00:00
170c312a0c Fixed oversight in set_fix_external_callback and wrote its documentation 2022-11-24 21:07:46 -06:00
e36a360891 error out when reduced units are used with fix ipi or fix pimd 2022-11-24 13:17:11 -05:00
3ce79f8da3 strip style suffixes when writing restart files if suffixes are enabled 2022-11-24 11:51:58 -05:00
4adf3708d4 add strip_style_suffix utility function 2022-11-24 11:50:21 -05:00
242cc5f993 error out when reduced units are used with fix ipi or fix pimd 2022-11-24 10:14:09 -05:00
48a808122f Merge branch 'develop' into reset-command 2022-11-23 16:12:10 -05:00
7a4e1ed5bf Merge pull request #3527 from akohlmey/collected-small-changes
Collected small changes and fixes
2022-11-23 15:37:25 -05:00
4ba604fd37 Merge branch 'collected-small-changes' into reset-command 2022-11-23 13:38:40 -05:00
7f4ebaf672 correct triclinic box check 2022-11-23 13:32:13 -05:00
0ae5fd3a60 cosmetic 2022-11-23 13:31:47 -05:00
32ce17c9ad fix typo 2022-11-23 12:55:51 -05:00
dd8a14789b update docs for new image features 2022-11-23 10:52:46 -07:00
b2f680e4bc update unit tests for pair style bugfixes 2022-11-23 12:26:11 -05:00
ed756f5077 fix bug parsing arguments in nm/cut/coul/* pair styles 2022-11-23 12:23:42 -05:00
0f05f8650b Merge branch 'fix_sph_example' of github.com:timteichmann/lammps into collected-small-changes 2022-11-23 09:29:54 -05:00
3a49b69dee Fix SPH shock tube 2d example input deck 2022-11-23 15:14:12 +01:00
41f97430e1 fix leaks for ewald and pppm/intel 2022-11-23 15:20:11 +10:00
e9c2608e76 delete boundcorr in deallocate() 2022-11-23 15:08:31 +10:00
fbc1dc099d Merge pull request #1 from akohlmey/pod-updates
Some updates to the ML-POD package pull request
2022-11-22 18:51:00 -05:00
9ab4c65f31 more work on dump image 2022-11-22 16:40:39 -07:00
e2d6bb0c31 Merge branch 'develop' into pod-updates 2022-11-22 18:32:20 -05:00
e5ac673e2b avoid implicit string copy 2022-11-22 18:31:13 -05:00
14f47a27ca avoid variable length arrays 2022-11-22 18:30:47 -05:00
bbe3a10059 avoid variable length array 2022-11-22 18:21:13 -05:00
80f20f5314 remove dead code 2022-11-22 18:21:03 -05:00
b572b40ef1 follow include style more closely 2022-11-22 18:12:54 -05:00
3b07e64da5 whitespace 2022-11-22 18:11:17 -05:00
741620148d use fmt library features for aligned output 2022-11-22 18:10:06 -05:00
b7c4d5737b avoid variable length array 2022-11-22 18:09:41 -05:00
a1b40a8c08 remove dead code 2022-11-22 18:09:19 -05:00
de8f0c9ae9 use platform::walltime() 2022-11-22 17:20:35 -05:00
135531e0b7 Merge pull request #3533 from ssande7/maxwarn
Bugfix: Respect thermo_modify warn always
2022-11-22 10:58:48 -05:00
e165607710 Remove unnecessary functions and variables from pairstyle 2022-11-22 08:45:43 -07:00
00b474eee5 simplify 2022-11-22 05:46:53 -05:00
a8f45846a7 Respect thermo_modify warn always 2022-11-22 16:30:55 +10:00
95841b0efd Implementation (after several failures) of set_fix_external_callback 2022-11-21 22:38:10 -06:00
a098b16030 expand valid range of bond/angle style gaussian. update docs and tests. 2022-11-21 22:28:44 -05:00
23025316c9 Merge branch 'develop' into collected-small-changes 2022-11-21 18:11:30 -05:00
13e6c82273 document the change of the reset_* commands 2022-11-21 18:02:46 -05:00
e9ec915e45 document removal of "box" command. 2022-11-21 17:59:29 -05:00
cbab8fa102 update documentation with new command names 2022-11-21 17:52:33 -05:00
2b9d5c6c9a rename reset metacommands to use reset_atoms 2022-11-21 17:20:29 -05:00
356827df12 update documentation for removal of box command 2022-11-21 14:04:58 -05:00
13fcbeda18 remove "box" command 2022-11-21 13:46:59 -05:00
8559857540 Fix double deallocation in fitpod 2022-11-20 16:03:04 -07:00
98d2dc3d01 removed some redundant code 2022-11-20 15:00:21 -05:00
8247d127b8 removed some headers 2022-11-20 14:39:05 -05:00
714ad002f3 Merge branch 'pod' of https://github.com/cesmix-mit/lammps into pod 2022-11-20 14:13:53 -05:00
d75bf01b2d create Makefile for ML-POD 2022-11-20 14:13:51 -05:00
341ea2847f Merge branch 'pod' of https://github.com/cesmix-mit/lammps into pod 2022-11-20 11:30:29 -07:00
8114bfbd3d Replace unnecessary memory functions with lammps memory class 2022-11-20 11:29:57 -07:00
78c4f46565 Merge branch 'pod' of https://github.com/cesmix-mit/lammps into pod 2022-11-20 12:30:14 -05:00
1c1f3f8e2b update pod doc 2022-11-20 12:30:11 -05:00
5424344dc6 Forward declare podptr in fitpod header 2022-11-20 09:56:37 -07:00
7d31793460 Use mlpod instead of pod 2022-11-20 09:42:05 -07:00
143147e7b9 Use lammps memory allocation everywhere 2022-11-20 09:41:36 -07:00
33356aebcf update pod.txt 2022-11-20 11:40:33 -05:00
d8b8a8bad1 Delete podcommon.h 2022-11-20 11:36:00 -05:00
942bb40f60 Update fitpod_command.h 2022-11-19 22:16:36 -05:00
50d3f88705 Update fitpod command 2022-11-19 22:05:54 -05:00
045afe00d8 add tests for read_data add, and read_data with fix property/atom 2022-11-19 21:19:20 -05:00
4b71ceeb92 Merge branch 'pod' of https://github.com/cesmix-mit/lammps into pod 2022-11-19 21:09:12 -05:00
a0879cf923 pod fit 2022-11-19 21:09:08 -05:00
e0a251f7b4 Use forward declaration of podptr in pair_pod.h 2022-11-19 16:47:18 -07:00
d8169b02ff Use lammps memory class in pair_pod 2022-11-19 16:37:27 -07:00
442eeb9f52 support special case where number of data lines from fix is number of added atoms 2022-11-19 14:06:16 -05:00
b39842ba23 avoid segfault when reading beyond the provided number of lines 2022-11-19 14:00:22 -05:00
6c87236e7a fix typos 2022-11-18 13:29:23 -05:00
1cb927294f use group that is not "all" 2022-11-18 04:51:56 -05:00
22c2cf5c3e update existing tests. add new tests for reset image_flags 2022-11-18 04:42:13 -05:00
0dd193d70d error out on extra keywords 2022-11-18 00:30:52 -05:00
7a929d2124 update error messags and enable/apply clang-format 2022-11-17 23:24:26 -05:00
60122f2aeb update docs 2022-11-17 23:23:29 -05:00
e8471790bc route renamed reset sub-commands through Deprecated class to print warning 2022-11-17 23:11:41 -05:00
7e9d66bbfb unfix style check 2022-11-17 23:10:38 -05:00
c9a6299d28 add reset command to docs, adapt pages for sub-commands 2022-11-17 22:52:07 -05:00
0635a46891 generalize meta command processing. make better use of std::string class 2022-11-17 22:09:52 -05:00
612a2b2711 add reset meta-command 2022-11-17 21:39:32 -05:00
0c306fde04 apply clang-format 2022-11-17 21:05:26 -05:00
03247aa28e add reset_image_flags command 2022-11-17 21:04:35 -05:00
3683f144a6 fixed compile issue 2022-11-17 16:32:15 -07:00
c9b431214c more work on dump image 2022-11-17 15:56:15 -07:00
94cc3f6590 Merge pull request #3524 from ssande7/respa_fix
Fix segfault when using dynamic groups with r-RESPA
2022-11-17 17:13:15 -05:00
ae1b48b52b use smaller maximum box count for maximum allowed distance 2022-11-17 14:15:30 -05:00
15bf4a281d documentation corrections 2022-11-17 11:48:13 -05:00
096a70363b allow to check if Kokkos is active and retrieve number of threads and gpus 2022-11-17 11:31:34 -05:00
ae59b6ca3f Merge branch 'correct-tune' of github.com:mehdibghk/lammps into collected-small-changes 2022-11-17 10:56:10 -05:00
dde2ef3462 correct a grammatical error 2022-11-17 23:25:04 +08:00
df5cfd18eb start adding support for dump image of grid cell values 2022-11-16 15:35:21 -07:00
b60725197f address uninitialized data warnings from coverity scan 2022-11-16 14:50:16 -05:00
a46b1114ff spelling updates for fix bond/react 2022-11-16 14:15:56 -05:00
57e42a06af make overloaded alias inline function 2022-11-16 10:02:02 -05:00
925a9a4bb3 use name in capitals for compile time constant 2022-11-16 09:59:02 -05:00
67c5bb2a0d small programming style updates 2022-11-15 21:13:22 -05:00
ef7b5017cf Merge branch 'develop' into collected-small-changes 2022-11-15 21:05:34 -05:00
4655039774 Merge pull request #3514 from jrgissing/per-bond_custom_constraint
bond/react feature updates
2022-11-15 21:03:12 -05:00
81c37f6dd6 add versionchanged tag to "python source" docs 2022-11-15 17:15:07 -05:00
b8121be513 Merge branch 'respa_fix' of github.com:ssande7/lammps into collected-small-changes 2022-11-15 17:07:31 -05:00
1464b55f81 add symbolic links for data file for FEP examples 2022-11-15 17:07:02 -05:00
40c05114f2 update pair style suffix handling in compute fep to support hybrid suffixes 2022-11-15 17:01:30 -05:00
7b968cf7a9 Merge branch 'develop' into collected-small-changes 2022-11-15 16:31:27 -05:00
7a42d2a54a Merge pull request #3525 from davidfir3/fep
Append suffix to pstyle (pair style name) of compute fep
2022-11-15 16:31:00 -05:00
d813da3fcd Merge pull request #3521 from akohlmey/refactor-python-source-command
Refactor python source command and error reporting
2022-11-15 13:01:07 -05:00
31972fc287 reduce redundant code. avoid Domain::minimum_image() getting "stuck". 2022-11-15 07:40:02 -05:00
859403e2af dt/reset now works in parallel 2022-11-15 12:01:29 +01:00
97bd404f33 add versionadded marker 2022-11-15 03:46:50 -05:00
3fd122311d some more grammar updates and clarifications 2022-11-15 03:45:04 -05:00
742265bfdb append suffix to pair style 2022-11-15 16:39:38 +08:00
c191086812 Fix segfault when using dynamic groups with r-RESPA 2022-11-15 15:02:35 +10:00
a2435ea200 more work on dump grid/vtk 2022-11-14 15:31:11 -07:00
175b2b045a tweak grammar 2022-11-14 14:10:43 -05:00
a7de83d289 Update Kokkos Install.sh and fix typo in docs 2022-11-14 08:24:28 -07:00
670f68e4d5 Merge branch 'lammps:develop' into fix_viscous_kokkos 2022-11-14 13:43:28 +01:00
54dbe36fe9 Merge branch 'fix_viscous_kokkos' of github.com:mkanski/lammps into fix_viscous_kokkos 2022-11-14 13:30:56 +01:00
4647096a97 Add docs 2022-11-14 13:30:41 +01:00
f5261b449a Remove setup from BoundaryCorrection 2022-11-14 10:02:36 +01:00
eee6862f25 copy error + other fixes 2022-11-12 02:13:39 -05:00
cc4c59649c spelling 2022-11-11 22:06:53 -05:00
d4bd0a74a7 change "inline" keyword to "here" for consistency with the other uses 2022-11-11 22:05:35 -05:00
5e832aa360 revise documentation 2022-11-11 22:05:09 -05:00
72752931fa version tags 2022-11-11 17:25:49 -05:00
86172eb75f bond/react restart revision numbers 2022-11-11 17:16:37 -05:00
0890bc026e ensure backward compatibility of restarts 2022-11-11 15:28:36 -05:00
148df8589b revise error reporting in the python command 2022-11-10 23:30:03 -05:00
b6b81a951a improve error reporting for python style variables 2022-11-10 17:17:23 -05:00
5dbc41c168 First working version (rmass not tested yet) 2022-11-10 22:33:19 +01:00
34a5093229 refactor handling of the python source command. document it and more limits. 2022-11-10 16:03:06 -05:00
dd8c1df9c2 Merge pull request #3516 from akohlmey/collected-small-changes
Collected small changes and fixes
2022-11-10 14:30:57 -05:00
fabfd86338 Base for KOKKOS dt/reset 2022-11-10 20:23:55 +01:00
27bd28bf34 CUDA should work now 2022-11-10 18:52:28 +01:00
9a78f45c09 Second try for CUDA 2022-11-10 17:03:55 +01:00
ee5d40984f Change the way gamma is accessed 2022-11-10 15:43:08 +01:00
c2f4c8d23a First version of KOKKOS fix viscous 2022-11-10 14:13:44 +01:00
01b4600ba5 remove obsolete file 2022-11-10 07:11:22 -05:00
1932b6390a update and sort codeowners lists 2022-11-10 07:11:12 -05:00
c00a5d52d2 silence compiler warnings 2022-11-10 02:25:00 -05:00
4392b9c8cb store LAMMPS version of restart, if initialized from restart file 2022-11-10 02:24:50 -05:00
1fa7308ade Merge branch 'github-ylz-update' of github.com:mehdibghk/lammps into collected-small-changes 2022-11-10 01:52:40 -05:00
aaa8e9d219 populate atoms2bond in bond/react 2022-11-09 17:51:21 -05:00
f9d07d8932 revert non-bond-react changes 2022-11-09 17:40:57 -05:00
4e36a81f2a clarify doc page 2022-11-09 10:05:24 -07:00
cd5d41868f remove debug statements 2022-11-09 09:54:04 -07:00
e16aed28b6 debug 2022-11-09 09:20:19 -07:00
d53ce7aba9 initialize pointer to null 2022-11-09 11:15:18 +08:00
de090bf3d4 add doc line 2022-11-08 18:11:04 -07:00
ec0b38f7b7 bug fix in pppm/disp 2022-11-08 18:08:22 -07:00
df9dc387ac debug 2022-11-08 17:26:29 -07:00
f684cd560f Merge branch 'distributed-grids' of github.com:lammps/lammps into distributed-grids 2022-11-08 17:14:05 -07:00
65ce9aa791 KSpace bug fixes 2022-11-08 11:22:25 -07:00
af36dc3df0 Style changes, alphabetize headers, cleaner READMEs 2022-11-08 09:25:26 -07:00
a62defa8ad Merge branch 'pod' of https://github.com/cesmix-mit/lammps into pod 2022-11-08 11:03:48 -05:00
f18295bb51 Ta example 2022-11-08 11:02:44 -05:00
64c9f7ffed Merge branch 'develop' into electrode 2022-11-08 09:46:56 +01:00
a3e7106f31 expand docs for bond/angle/dihedral/improper styles 2022-11-07 23:52:23 -05:00
aa46f5560a add .. versiondded:: tag to BPM package commands and restrictions text consistent 2022-11-07 22:57:32 -05:00
f6d9f58bfc Remove unnecessary functions 2022-11-07 18:25:39 -07:00
da929b4f7f Fix merge conflicts 2022-11-07 17:37:50 -07:00
1fbd45a05d Format docs 2022-11-07 17:33:00 -07:00
4616c1b4a3 Fix whitespace 2022-11-07 17:31:53 -07:00
09bcb02145 Clean up example 2022-11-07 17:17:48 -07:00
7d5b85812f Write error analysis with fmt 2022-11-07 16:45:03 -07:00
90b54300e9 remove whitespace 2022-11-07 16:18:40 -07:00
b18d388e4c fix segfault in base class destructor when destructing PPPMElectrode() 2022-11-07 17:17:48 -05:00
a986f035d6 update list of functions and add list of flags for pair styles 2022-11-07 16:10:12 -05:00
e6da584a76 doc pages 2022-11-07 11:41:59 -07:00
3390d51c48 bug fix in amoeba_convolution 2022-11-07 10:40:45 -07:00
d2a90a05fb add support for ELECTRODE pkg PPPM 2022-11-07 10:16:39 -07:00
0a0ac226d1 Merge remote-tracking branch 'akohlmey/support-msmpi' into collected-small-changes 2022-11-07 11:21:16 -05:00
dc4301dfa8 initialize ADIOS dumps only the first time when used in multiple runs 2022-11-07 08:57:12 -05:00
401b5cee6d add -y flag to add-repository commands to avoid issues with GPG support changes 2022-11-07 07:32:08 -05:00
09e490db40 add support for building/using the ADIOS package without MPI
This needs the ADIOS2 installation being configured accordingly.
2022-11-07 07:24:17 -05:00
89f896ea73 Include MS-MPI in Windows build and test through GitHub Actions 2022-11-05 23:57:29 -04:00
7d7227c334 Read xyz files with lammps utils 2022-11-05 19:59:48 -06:00
97a0f0f40a Read training/testing data file with lammps utils 2022-11-05 14:44:28 -06:00
6ec8ff3c51 Read pod file with lammps utils 2022-11-05 13:34:45 -06:00
f8c90c2674 Read coefficients with lammps utils 2022-11-05 12:10:13 -06:00
3b47afa69f Update fix_bond_react.rst 2022-11-05 02:03:02 -04:00
b2652a4542 fix writing restarts without rate_limit 2022-11-05 01:22:54 -04:00
565853ee07 rescale_charges keyword 2022-11-05 01:05:45 -04:00
d5929a5cf8 reflect rate_limit restart support in docs 2022-11-04 23:52:13 -04:00
3dab9cf8d8 bug fixes to grid remapping 2022-11-04 21:41:58 -06:00
bd5ea1b896 add MS-MPI support to ML-PACE plugin and demo plugins 2022-11-04 23:32:40 -04:00
710197cd88 add MS-MPI support to CMake support for plugins 2022-11-04 23:00:34 -04:00
0de50f29f7 add option to use the MS-MPI SDK to cross-compile Windows binaries 2022-11-04 21:56:06 -04:00
b4118c51cc merged in current master 2022-11-04 08:22:18 -06:00
0b7c391dfd smooth restart when using rate_limit
breaks backward compatibility of restart files (probably can be avoided)
2022-11-04 00:49:26 -04:00
559ed8c490 doc page updates, start adding remap support to fix ave/grid 2022-11-03 17:05:23 -06:00
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
1a271b4870 add mention of Nlimit variable support 2022-11-03 11:21:16 -04:00
eb01f816ec rate_limit docs 2022-11-03 11:09:44 -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
8af384243f support for more caller options in Grid2d/3d 2022-11-02 15:01:58 -06: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
7346aee4ad logic for all callers to use new Grid3d/Grid2d 2022-11-02 11:46:26 -06:00
d39d272b28 Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes 2022-11-02 10:52:20 -04:00
076f55dbca Update Ta example 2022-11-02 09:20: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
d75fd564a1 update grid2d to match grid3d 2022-11-01 16:11:14 -06:00
736b420a49 reaction rate limit option 2022-11-01 18:03:30 -04:00
4c29457351 more classes use Grid3d 2022-11-01 15:53:39 -06:00
202fc44e86 Merge branch 'lammps-develop3' into per-bond_custom_constraint
rebase
2022-11-01 15:52:12 -04:00
189f803ef6 correct, simplify rxnbond example 2022-11-01 15:51:37 -04:00
ed6fe96909 simplify, formatting 2022-11-01 15:51:37 -04:00
f0a421eb25 bond:react per-bond custom constraint docs 2022-11-01 15:51:36 -04:00
23353208f2 check that bond is actually in map 2022-11-01 15:11:19 -04:00
fe6cf36101 prevent multiple compute evaluations on a timestep 2022-11-01 15:11:19 -04:00
5e9b4d8678 actually evaluate bond/local compute value
(even when not printed on that timestep)
2022-11-01 15:11:19 -04:00
d090fce262 bond/react: per-bond custom constraint 2022-11-01 15:11:19 -04:00
9e79a1ef76 non-'bond/react ' changes 2022-11-01 15:06:06 -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
335bacebb7 more doc in *.h file 2022-10-31 15:34:58 -06:00
94024475c1 allow for centered grid cells in proc mapping 2022-10-31 15:29:02 -06:00
aa777a2196 allow for centered grid cells in proc mapping 2022-10-31 15:28:39 -06: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
19fad284af more on shift factors 2022-10-28 18:03:08 -06:00
861e3b5876 shift factors 2022-10-28 17:46:19 -06: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
b6e29fd5d7 debugging of grid remap 2022-10-27 16:40:53 -06: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
7bf4c8d54a more debugging 2022-10-26 15:14:06 -06: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
a4a10e970e sync output formats 2022-10-25 17:06:24 -06:00
b8b25225d4 start debugging 2022-10-25 17:04:34 -06: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
ac3dde957d Review old todos 2022-10-24 14:05:34 +02: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
0654d6c8d6 Refactor A-matrix in INTEL (and base package) 2022-10-21 08:24:19 +00: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
ec5b344a9f read/write from/to file for grid data 2022-10-20 17:18:48 -06: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
45c1c1e53b add regular grid remap logic 2022-10-19 14:12:57 -06: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
bf64deb2c2 finish initial version of remap functions for 2d/3d 2022-10-18 17:10:16 -06: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
deb137db8a Refactor amatrix
Computation of long-range A matrix with pppm is optimized.
2022-10-18 07:27:05 +00: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
f338b5a106 sync 2022-10-17 15:26:36 -06:00
ed838f1a48 flesh out remap operation 2022-10-17 15:24:44 -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
0383de2beb more work on remap 2022-10-14 16:39:38 -06: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
37f4b557d9 remove algo keyword from in.conp 2022-10-14 08:20:41 +00: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
264d9c4aae Piston example for ELECTRODE 2022-10-13 09:11:05 +02:00
0b17654bee New pair-style ylz added to ASPHERE package 2022-10-13 13:45:09 +08:00
21ad9c7b55 update pair_pod 2022-10-12 21:54:28 -04:00
edb7889bd8 update pair_pod.h 2022-10-12 21:49:51 -04:00
efdd29817b update install targets for main folder headers for "make install" 2022-10-12 21:39:12 -04:00
440724f73a Merge branch 'pod' of https://github.com/cesmix-mit/lammps into pod 2022-10-12 21:24:46 -04:00
5fbedfb492 update 2022-10-12 21:11:29 -04:00
ab51c53dfd add identical check between 2 grids 2022-10-12 17:34:42 -06:00
6658b95dac add cleanup note 2022-10-12 16:40:12 -06:00
a55fd6c53b Merge branch 'distributed-grids' of github.com:lammps/lammps into distributed-grids 2022-10-12 16:38:50 -06:00
84282a3c75 ditto for Grid2d 2022-10-12 16:38:35 -06:00
8313a8aa49 calling structure for Grid3d remap 2022-10-12 16:34:34 -06: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
4f2c6586e7 whitespace 2022-10-12 11:39:42 -06:00
a218c2ad9c Fix CMake build 2022-10-12 11:33:55 -06:00
ffdfae4784 Port grid3d changes to Kokkos 2022-10-12 11:28:22 -06: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
a0d859933c Update from master 2022-10-12 09:49:55 -06: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
5f285e6aa3 Update documentation
Make documentation of ELECTRODE fixes more complete by listing more warnings and describing options more fully.
Use utils::logical for toggle (on/off) options.
With the changes in etypes to auto-detect electrode types it makes more sense to make it an on/off toggle as well, so that we don't have inconsistent keyword types.
2022-10-12 12:00:46 +00:00
ea7e0fbb6c Madelung benchmark 2022-10-12 07:01:44 +00: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
812fa50196 Apply 1 suggestion(s) to 1 file(s) 2022-10-10 06:31:03 +00: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
928bbee97c Use etaij for electrode-electrode interaction 2022-10-07 11:36:42 +02:00
7344d546bc Merge branch 'electrode' into safer_management 2022-10-07 15:34:43 +10:00
758412fd46 Electrostatic potential removed from ecoul 2022-10-07 05:12:19 +00:00
bfaaf1b82c Merge branch 'electrode' into safer_management 2022-10-07 15:10:57 +10:00
9303732171 fix-whitespace 2022-10-07 15:08:40 +10: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
0932434f55 Apply 1 suggestion(s) to 1 file(s) 2022-10-07 04:23:27 +00: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
2c9396fb25 Clean up pair style 2022-09-30 12:58:43 -06:00
a9701f54cb HIP tuning 2022-09-30 14:53:37 -04:00
98fce11d07 Only use training data in compute 2022-09-30 12:10:34 -06:00
af3fbeb7d4 Don't use iostream 2022-09-30 11:41:16 -06: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
560df20a68 Fixing math syntax in bpm/rotational documenation 2022-09-28 10:00:59 -06:00
0b8142e12e Merge remote-tracking branch 'upstream/develop' into develop 2022-09-28 09:25:00 -06: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
e73a0e522f Check if multiple electrode fixes 2022-09-27 14:41:30 +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
ee611d8cf7 update pod documentation 2022-09-26 09:55:12 -04: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
6b8eada9f0 Merge branch 'pod' of https://github.com/cesmix-mit/lammps into pod 2022-09-25 00:15:53 -04:00
12e0681ec6 simplify inputs and normalize quadratic potential 2022-09-25 00:15:49 -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
39f81fa49b Merge branch 'distributed-grids' of github.com:lammps/lammps into distributed-grids 2022-09-22 15:41:16 -06:00
1ce4b85266 debug changes 2022-09-22 15:38:37 -06:00
e230a3bb5b Merge pull request #3450 from akohlmey/collected-small-changes
Collected small changes and fixes
2022-09-22 17:24:08 -04:00
88c92119d3 starting to add remap to Grid3d 2022-09-22 14:37:52 -06: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
5172c9c8fe update zeolite LJ params 2022-09-21 19:19:09 -06:00
13b34a9d69 Merge pull request #3448 from jtclemm/BPM
Updates to BPM package
2022-09-21 20:02:40 -04:00
258cd0481f adjust LJ epsilons 2022-09-21 16:28:27 -06: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
e2c3dd61a5 zeolite test problem 2022-09-21 10:59:52 -06: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
b1afa8b767 Bugfix allocation for matrix algo in fix electrode 2022-09-21 14:24:26 +02: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
387829a661 Update cmake/CMakeLists.txt
Co-authored-by: Christoph Junghans <christoph.junghans@gmail.com>
2022-09-18 21:48:38 -04:00
2aec158c57 Update cmake/Modules/StyleHeaderUtils.cmake
Co-authored-by: Christoph Junghans <christoph.junghans@gmail.com>
2022-09-18 21:47:31 -04:00
65fdeb279d Update cmake/CMakeLists.txt
Co-authored-by: Christoph Junghans <christoph.junghans@gmail.com>
2022-09-18 21:46:20 -04: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
4acdc55a8a Fix cmake 2022-09-17 13:29:30 -06:00
4f69ce152e pair_pod formatting 2022-09-17 11:22:01 -06:00
71a025c1d1 Merge conflict 2022-09-17 10:56:05 -06:00
064dcddd48 Clean up 2022-09-17 10:00:11 -06:00
4b8d3f7393 Merge branch 'pod' of https://github.com/cesmix-mit/lammps into pod 2022-09-17 10:34:55 -04:00
2185dd837d clean up CMakeLists.txt 2022-09-17 10:34:21 -04:00
697ccc0e2c Working Ta example 2022-09-17 08:31:21 -06:00
c72797c7c6 Ta example XYZ files 2022-09-17 07:10:35 -06:00
413f3f8ee7 Complete docs 2022-09-17 06:53:03 -06:00
28fa59e908 Merge and include in compute list 2022-09-17 06:25:47 -06:00
97584784d3 Fix sources 2022-09-17 06:20:34 -06:00
dadafa50cf Merge branch 'pod' of https://github.com/cesmix-mit/lammps into pod 2022-09-16 22:37:36 -04:00
fa226f58c3 revise pod documentation 2022-09-16 22:34:29 -04:00
a6bbf8b4b1 more debugging to compare to NWChem tests 2022-09-16 17:49:55 -06:00
fe0541fde7 End rst doc files with transition 2022-09-16 17:41:05 -06:00
ade6d84bdd Revert snap examples 2022-09-16 17:20:24 -06:00
02f2824f4b Revert src changes 2022-09-16 17:17:55 -06:00
13c76e4b3a Delete compute.snap.dat 2022-09-16 17:16:27 -06:00
84eaf1037f Delete install.txt 2022-09-16 17:15:46 -06:00
d5b112112e Merge branch 'pod' of https://github.com/cesmix-mit/lammps into pod 2022-09-16 19:00:00 -04:00
95816c5eab formating comments 2022-09-16 18:59:31 -04:00
cef0583883 Merge branch 'lammps:develop' into pod 2022-09-16 18:52:02 -04:00
e08296f171 Revert pair changes 2022-09-16 16:34:37 -06:00
47556e05e5 pair pod formatting 2022-09-16 16:23:58 -06:00
1d6cc4533e Move examples and clean up 2022-09-16 15:53:27 -06: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
ed76c3f047 Update pod.h and pair_pod.h 2022-09-16 14:54:04 -04:00
ec5f5ff057 Merge branch 'pod' of https://github.com/cesmix-mit/lammps into pod 2022-09-16 14:26:27 -04:00
f1cbc19f6b sync inputs with NWChem test problem 2022-09-16 11:28:47 -06:00
750b6f5193 update pod 2022-09-16 10:51:08 -04:00
35c4b791f8 Add MLIAP Unified LJ example logs 2022-09-16 02:53:42 -06:00
da78a18754 fixed elastance matrix writing 2022-09-16 16:21:59 +10:00
e88ceabb83 improved read/write matrix logic 2022-09-16 16:18:21 +10:00
fbaeb09516 fix whitespace 2022-09-16 15:46:59 +10:00
4e2168119f Merge branch 'electrode' into safer_management 2022-09-16 15:37:22 +10: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
e745c8aac4 Merge pull request #3446 from akohlmey/next-patch-release
Update versions strings for the next patch release
2022-09-15 12:33:37 -04:00
3bf7712edf Merge pull request #3444 from lammps/sticker-bond-test
Fix bond/swap upgrade with more randomization of bond selection
2022-09-15 11:11:23 -04:00
3770c02752 fix typo 2022-09-15 09:22:20 -04:00
5f2445f215 Merge branch 'develop' into sticker-bond-test 2022-09-15 09:20:58 -04:00
c31542fecb Merge pull request #3369 from lammps/fix-pair-dump-skip
Fix pair plus dump skip
2022-09-15 09:06:37 -04: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
0ed1e841ed README 2022-09-14 22:35:02 -06:00
32a33e627d Merge branch 'develop' into pod 2022-09-14 22:32:48 -06:00
91655ea63a Move README to examples 2022-09-14 22:17:53 -06:00
7e1de1ac71 Formatting and clean up 2022-09-14 22:14:10 -06:00
3f9e17df6c Working Ta MD example 2022-09-14 21:40:18 -06:00
aae96b9cb0 fix multiple typesetting issues and make consistent 2022-09-14 23:26:01 -04: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
2997fff361 update version strings 2022-09-14 16:48:33 -04:00
69034167b8 update versions strings for the next patch release 2022-09-14 16:29:10 -04:00
a52c4a5537 improve error messages 2022-09-14 14:35:57 -04:00
e415eddee5 spelling and improved consistency with other doc pages 2022-09-14 14:34:45 -04:00
15bc70ae4d Merge branch 'develop' into fix-pair-dump-skip 2022-09-14 14:01:42 -04:00
83224f631d Merge pull request #3445 from akohlmey/doc-fixes
Reorder punctuation and quotation characters in manual for clarity
2022-09-14 13:58:28 -04:00
9a44d708e9 Merge branch 'lammps:develop' into fortran-tinkering 2022-09-13 23:49:17 -05:00
5da958ade2 Merge remote-tracking branch 'github/develop' into doc-fixes 2022-09-13 12:25:33 -04:00
88a85f39fb Merge pull request #3436 from lammps/fix-gcmc-with-latte
Enable fix gcmc to work with fix latte when deleting atoms/molecules
2022-09-13 12:24:50 -04:00
fe4f7bd467 spelling 2022-09-13 11:43:09 -04:00
7e8aa8b04a Merge branch 'fix-gcmc-with-latte' of github.com:lammps/lammps into fix-gcmc-with-latte 2022-09-13 11:39:25 -04:00
f3fa246179 update LATTE package examples 2022-09-13 11:39:16 -04:00
56304fe939 move check for Fortran Compiler validity 2022-09-13 11:24:20 -04:00
5a218609dd Merge branch 'fix-gcmc-with-latte' of github.com:lammps/lammps into fix-gcmc-with-latte 2022-09-13 09:17:58 -06:00
b34d45644e update fix latte doc page 2022-09-13 09:17:50 -06:00
197ce9187e small programming style updates 2022-09-13 06:31:49 -04:00
7dd95db474 fix typo 2022-09-13 06:22:41 -04:00
526cc1566e cosmetic 2022-09-13 06:13:37 -04:00
446cc46bbd spelling 2022-09-12 19:10:18 -04:00
cc2b6a3565 reorder punctuation and quotation characters for clarity 2022-09-12 19:02:46 -04:00
abfdb5bca3 whitespace 2022-09-12 18:33:27 -04:00
e2df4ed2a7 Merge branch 'develop' into distributed-grids
# Conflicts:
#	doc/src/Developer_utils.rst
#	doc/src/dump.rst
#	doc/src/fix_ave_chunk.rst
#	src/utils.h
2022-09-12 18:31:29 -04:00
893586c8eb Merge branch 'develop' into fix-pair-dump-skip 2022-09-12 18:19:12 -04:00
170e657bde Merge branch 'develop' into fix-gcmc-with-latte 2022-09-12 18:15:51 -04:00
f68b50b5c1 Merge branch 'develop' into sticker-bond-test 2022-09-12 18:15:24 -04:00
23595aa851 Merge pull request #3442 from akohlmey/collected-small-changes
Collected fixes and small changes for the next patch release
2022-09-12 18:14:40 -04:00
7a97b25c8d must link with -lgfortran when using flang 2022-09-12 17:02:06 -04:00
60e172c18c disable assertion to avoid bogus warning from some compilers 2022-09-12 17:01:31 -04:00
5e3adfa710 trigger newsystem in LATTE if atom count changes - e.g. fix gcmc 2022-09-12 14:40:10 -06:00
3e51cfc4d1 avoid ambiguous variable override with due to for scoping 2022-09-12 16:27:54 -04:00
44b8eee180 updated README file from @sjplimp 2022-09-12 16:19:34 -04:00
1abfec066c update MDI library version to 1.4.11 2022-09-12 12:30:34 -04:00
58d6e0d440 add note to doc page about sticker site model 2022-09-12 09:41:29 -06:00
572e8cc399 random permulations of both I and J atoms in double loop 2022-09-12 09:18:06 -06:00
ed0af32fce properly initialize Atom class member and avoid side effects during write data 2022-09-11 22:11:22 -04:00
34714dba29 improve error messages 2022-09-11 22:10:50 -04:00
c235cbee71 sync with lammps-testing and update plumed version consistently. 2022-09-11 01:07:22 -04:00
e9f0f371b8 update prompt variable 2022-09-10 21:05:02 -04:00
b86232ac5b add container definition for almalinux 9 2022-09-10 21:00:14 -04:00
7e921b5e24 Merge branch 'define_nv_restrict' of github.com:Vsevak/lammps into collected-small-changes 2022-09-10 19:53:20 -04:00
e45fa36717 improve error messages 2022-09-10 19:47:28 -04:00
67f6adebb7 whitespace fixup with dynamic casts 2022-09-10 13:26:38 -04:00
9b172d66f8 recover non-labelmap functionality with Kokkos. Error out when maps are used with Kokkos 2022-09-10 12:50:45 -04:00
f62746fc66 Fix noalias definition so that it compiles with nvc++ 2022-09-10 13:28:25 +03:00
44e983f641 more dump tests 2022-09-10 04:54:48 -04:00
f36c900b6d fix memory buffer size issue when using dump_modify image for dump style atom 2022-09-10 04:54:37 -04:00
b3faffd32d clear custom keywords when default column names change with dump_modify scale or image 2022-09-10 04:54:09 -04:00
f050581363 move keywords to be sorted alphabetically 2022-09-10 04:53:38 -04:00
035ca97ea1 move colname section 2022-09-10 04:53:00 -04:00
73b44c3b18 add some versionadded markers 2022-09-10 04:35:39 -04:00
4cca198adf fix issues from moving code and incorrect merge conflict resolution 2022-09-10 04:35:13 -04:00
f700da5ac3 remove redundant section 2022-09-10 04:24:40 -04:00
c2e1ee206b improve format 2022-09-10 04:17:58 -04:00
9eb5d566d4 fix typos with doc references 2022-09-10 04:15:01 -04:00
7e6bd892ed apply clang-format 2022-09-10 03:29:32 -04:00
ab899861d5 apply clang-format 2022-09-10 03:21:28 -04:00
4998c065da clang-tidy fixes 2022-09-10 03:18:06 -04:00
22709b73e2 auto loop optimizations 2022-09-10 03:07:28 -04:00
8030fc09e3 augment clang preset so that it switches the fortran standard for flang
flang (the one officially included in clang) currently only supports f2018
2022-09-10 02:48:16 -04:00
f04e727d9f document EXTRA-MOLECULE vs MOLECULE package dependency 2022-09-10 02:39:31 -04:00
342892e85c add missing dependency 2022-09-10 02:19:34 -04:00
9e5ee01a8a add a hard dependency of EXTRA-MOLECULE on MOLECULE 2022-09-10 02:19:17 -04:00
9f5375f204 silence compiler warnings 2022-09-10 01:59:20 -04:00
99c76b84aa Merge branch 'lammps:develop' into fortran-tinkering 2022-09-09 21:23:26 -05:00
d860e9a3ed Merge branch 'develop' into sticker-bond-test 2022-09-09 17:38:28 -06:00
fb9c40d936 Merge pull request #2531 from jrgissing/type-labels
Initial implementation of Type Label support
2022-09-09 19:15:58 -04:00
74fea2bc70 update docs 2022-09-09 18:48:30 -04:00
41f28f783f more tests 2022-09-09 18:44:42 -04:00
aad464275d changing scale or image keywords resets user keywords 2022-09-09 18:44:28 -04:00
9e7df0f8e1 correctly compute communication buffers also for the case that size_one changes 2022-09-09 18:44:07 -04:00
6898ead5b7 remove redundant code created by merge 2022-09-09 18:43:20 -04:00
610848599c reappy bugfix that was lost from moving the "colname" section 2022-09-09 18:42:32 -04:00
7f4fe0d3ad whitespace 2022-09-09 17:29:11 -04:00
ddf97461da Merge branch 'develop' into fix-pair-dump-skip 2022-09-09 14:32:55 -06:00
b4410fa72a Merge branch 'develop' into type-labels 2022-09-09 16:31:38 -04:00
d4bddd4295 Merge pull request #3440 from lammps/dump-step-post-minimize
Enforce dump snapshots on multiples of N steps in a run after minimize
2022-09-09 16:30:35 -04:00
1364033055 Merge pull request #3432 from benmenadue/develop
Use primary context in CUDA GPU code.
2022-09-09 16:24:46 -04:00
dee0eda2f0 Merge branch 'develop' into fix-pair-dump-skip 2022-09-09 14:17:20 -06:00
3d7a31a59f Merge branch 'lammps:develop' into mliappy_unified 2022-09-09 14:03:43 -06:00
44a137b85c Merge pull request #3366 from lammps/mdi-tweak
MDI support for LAMMPS + LATTE (tight-binding code)
2022-09-09 15:59:04 -04:00
935eea8219 test a variety of dump output frequency and starting timesteps and run lengths 2022-09-09 15:57:34 -04:00
6bd9609f61 apply clang-format 2022-09-09 15:22:16 -04:00
d1fb2244e2 make downloaded version consistent 2022-09-09 15:21:42 -04:00
04bdfb151b refactor how fix latte connects to fix gcmc 2022-09-09 12:22:50 -06:00
584ae26fe6 whitespace 2022-09-09 12:48:14 -04:00
167abe9ce0 add preprocessor flags to select between the changed and the old code variant 2022-09-09 12:41:24 -04:00
34d0c417f8 another indentation reformat 2022-09-09 10:39:07 -06:00
1216188d48 Implementation of an int4-packed Clebsch-Gordon look-up table for SNAP 2022-09-09 09:34:22 -07:00
9bff046190 fix issue with dump snapshots in a run after a minimize possibly being non-multiples of N 2022-09-09 10:28:33 -06:00
e9e02c0d5e Merge pull request #3438 from akohlmey/dielectric-force-tests
Add force tests for DIELECTRIC package and fix issues exposed by them.
2022-09-09 12:06:38 -04:00
2e6526b8f7 log labelmap reading from data file and improve error messages 2022-09-09 06:11:22 -04: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
7f93ca2d07 one more tweak 2022-09-09 00:52:52 -04:00
8775e8cc14 improve error message for general atomID and atom type check 2022-09-09 00:40:58 -04:00
11eae03679 Merge branch 'collected-small-changes' into dielectric-force-tests 2022-09-09 00:05:41 -04:00
ffb8b8ba97 Merge branch 'develop' into mdi-tweak 2022-09-09 00:03:39 -04:00
46efe447fa tweak settings 2022-09-08 23:55:56 -04:00
6ec5ca37b7 fix whitespace and apply clang-format 2022-09-08 23:40:37 -04:00
dbbb858e3b Merge branch 'mdi_update' into mdi-tweak 2022-09-08 23:37:05 -04:00
45c2419c84 fix bug exposed by extending the regex buffer 2022-09-08 23:25:02 -04:00
8f2ac43487 set suffix flag 2022-09-08 23:25:02 -04:00
1b0865d180 fix bug preventing correct energy & virial tallying 2022-09-08 23:25:02 -04:00
61e402de42 increase regexp matching pattern size 2022-09-08 23:25:01 -04:00
cfc8137d2d add check to atom style dielectric code so it will only run with dielectric pair styles 2022-09-08 23:24:56 -04:00
1cd47b762b Update MDI plugin code 2022-09-09 02:28:06 +00:00
0214c35c23 Merge branch 'lammps:develop' into fortran-tinkering 2022-09-08 20:50:27 -05:00
1fe8354c20 must not use fdotr to compute stress tensor for dielectric pair styles due to using a full neighbor list 2022-09-08 21:46:13 -04:00
97f8a600e7 initial doc page edits 2022-09-08 17:44:15 -06:00
ad05300d25 free memory 2022-09-08 17:27:53 -06:00
d8f211c05d allow fix latte to exclude atoms in a group 2022-09-08 17:15:23 -06:00
d434031200 Merge branch 'develop' into dielectric-force-tests 2022-09-08 16:21:27 -04:00
0c7887f4db add check for triclinic box compatibility 2022-09-08 13:06:09 -06:00
d9785af63f archive example results 2022-09-08 11:24:28 -06:00
d2587cd45e print an error if the filename before '*' is too long for the regex matcher 2022-09-07 21:06:01 -04:00
c3af05c4fb extend the length to which the regex matcher checks strings to 256 chars. 2022-09-07 20:47:01 -04:00
4938bc6c70 change LATTE howto README 2022-09-07 14:28:16 -06:00
80df29a736 merged in develop 2022-09-07 14:12:26 -06:00
5c73befc66 upgrade to MDI 1.4.9 2022-09-07 13:57:20 -06:00
97717d7cba update parser for label2type() function with better argument checking and handling of ',' in labels 2022-09-07 15:36:46 -04:00
94a72352f2 Merge pull request #3427 from hammondkd/doc-fixes
Doc fixes (round 3)
2022-09-07 12:33:26 -04:00
61a7284676 fix broken formatting 2022-09-07 11:31:18 -04:00
899de2d017 Merge branch 'develop' into doc-fixes 2022-09-07 11:28:10 -04:00
19ed438fd6 Merge pull request #3428 from akhlakm/improve-errors
Improve error messages for fix nve commands
2022-09-07 11:23:23 -04:00
039f8c712a Update labelmap.rst 2022-09-07 01:10:03 -04:00
60adc30210 corrections, suggestions to labelmap howto 2022-09-07 00:43:26 -04:00
d7892c8ea4 Update Errors_messages.rst 2022-09-07 00:02:31 -04:00
f3acba28c7 make unit test Windows compatible. 2022-09-06 23:32:38 -04:00
cfcd5a625d document type label support for Shake Bond Types 2022-09-06 23:27:03 -04:00
0dc3bccb95 clarify comment handling and parsing. document masses section. 2022-09-06 23:03:26 -04:00
b3c0253976 fix broken formatting 2022-09-06 23:02:59 -04:00
f6dc6ca6e2 make certain there is a blank between Dihedral Coeffs an the type hint 2022-09-06 22:23:38 -04:00
2331f6ddd4 correct label2type() function documentation 2022-09-06 22:03:27 -04:00
157acbacba Merge pull request #3433 from rohskopf/multi-element-pytorch
Update ML-IAP multi-element PyTorch models
2022-09-06 21:53:20 -04:00
0d2db984eb Merge branch 'develop' into benmenadue/develop 2022-09-06 19:25:21 -04:00
3a0b49b5bf Merge branch 'develop' into type-labels 2022-09-06 19:16:07 -04:00
55f97e5fbc whitespace 2022-09-06 19:15:18 -04:00
275b7d600f Merge pull request #3422 from akohlmey/collected-small-changes
Collected small changes and fixes
2022-09-06 18:59:39 -04:00
9b76294d51 add tests for new variable function 2022-09-06 18:56:09 -04:00
1d986280ce rename variable special function to retrieve types for labels to label2type() 2022-09-06 18:56:00 -04:00
3b6a06fcf5 small behavior tweaks for inputs without labelmap, add warnings about type offsets 2022-09-06 18:18:44 -04:00
8b3c1a20a8 Removing unneeded feature 2022-09-06 10:13:59 -06:00
e563eb41c1 Remove unnecessary comments 2022-09-06 09:08:42 -06:00
341f5cf40d Ensure all subnets are proper dtype 2022-09-06 08:40:43 -06:00
bd7a7d4f74 Working MD with 2 atom types 2022-09-06 08:21:01 -06:00
dcf6bca3ad Output model loading statements on one proc 2022-09-06 08:19:05 -06:00
294a1c2168 Use primary context in CUDA GPU code.
Since LAMMPS uses the low-level driver API of CUDA, it needs to ensure
that it is in the correct context when invoking such functions. At the
moment it creates and switches to its own context inside `UCL_Device::set`
but then assumes that the driver is still in that context for subsequent
calls into CUDA; if another part of the program uses a different context
(such as the CUDA runtime using the "primary" context) this will cause
failures inside LAMMPS.

This patch changes the context creation to instead use the primary
context for the requested device. While it's not perfect, in that it
still doesn't ensure that it's in the correct context before making
driver API calls, it at least allows it to work with libraries that use
the runtime API.
2022-09-06 09:28:51 +10:00
35dfffdaf9 Merge branch 'fix-pair-dump-skip' into feature/pace-al 2022-09-05 18:12:14 +02:00
1a5a509c1d add typelabel support for Shake Bond Types section in molecule files 2022-09-05 10:28:00 -04:00
4f3f2412fb replace Input::readtype() with utils::expand_type() 2022-09-05 06:16:18 -04:00
75e897b2fe new utility function "utils::expand_type" to convert type labels to numeric strings 2022-09-05 05:45:31 -04:00
e1960bbb9a streamline type label howto and remove discussions of not yet available features 2022-09-04 22:52:31 -04:00
e0b6ae77d3 update parser for bonded topology data 2022-09-04 22:13:23 -04:00
fc738ea239 type offsets are only applied to numeric types 2022-09-04 22:12:59 -04:00
53d82056ce add molecule file tests with type labels 2022-09-04 21:09:43 -04:00
c376d72158 update parsing for Types section in molecule files 2022-09-04 17:52:31 -04:00
f956530f0d add labelmap tests for bonds/angles/dihedrals/impropers 2022-09-04 17:51:06 -04:00
c7ab8e160a fix logic bug 2022-09-04 17:43:20 -04:00
cad3cd7d8e fix a few typos with :doc: references 2022-09-04 17:27:32 -04:00
a7d4d819ef update error handling for read_data command 2022-09-04 16:15:13 -04:00
14871facf2 accept type labels in Masses section of data file 2022-09-04 07:08:16 -04:00
8ad949a995 avoid extra char * to std::string conversion 2022-09-04 07:07:55 -04:00
26e1b7c44d add UTF-8 substitution and detection 2022-09-04 06:45:11 -04:00
34104bbbe9 enable clang-format 2022-09-04 05:40:19 -04:00
3dc7b7e0b3 update parsers for bond topology data in data files 2022-09-04 05:27:29 -04:00
ad8a931fe4 revise/refacor Type Label section parsing and Atoms section parsing
- do not ignore numeric type in Type Label sections
- refuse invalid numeric types that will overflow arrays
- check for duplicate numeric type entries or non-unique labels
- better error messages
- use Tokenizer class instead of sscanf()
2022-09-04 01:01:36 -04:00
389c87ab7e apply utils::is_type() to labelmap command 2022-09-03 23:26:56 -04:00
ca6222c12b implement utils::is_type() convenience function 2022-09-03 23:18:44 -04:00
81b0cec887 improve death tests 2022-09-03 20:26:38 -04:00
7ecfb77e8d implement "labelmap write" command 2022-09-03 19:52:07 -04:00
bb45137b1a small tweaks to support type labels with single and double quotes. add tests 2022-09-03 19:04:24 -04:00
71970858cf Updating error messages, small changes to doc 2022-09-03 16:44:21 -06:00
b143f87d10 bugfix 2022-09-03 18:12:22 -04:00
edfac129a1 Fixing estimated r0 on restart, other small edits 2022-09-03 15:33:29 -06:00
d43051d07c allow '#' character in type labels. support also when reading Atoms section 2022-09-03 16:48:39 -04:00
1d0db98403 Fixing merge conflicts 2022-09-03 12:35:32 -06:00
8d9adeef16 clarify comments 2022-09-03 14:13:38 -04:00
fa1584cc17 add "labelmap clear" command, update docs 2022-09-03 12:38:07 -04:00
849b41f67a more basic tests 2022-09-03 11:47:16 -04:00
e7916a7e18 improve error message 2022-09-03 11:47:06 -04:00
e43a8ac8c3 add basic unit tests for labelmap command 2022-09-03 11:14:01 -04:00
5772547a68 improve input error handling 2022-09-03 11:13:47 -04:00
50256d6bec fix initialization issues 2022-09-03 10:48:36 -04:00
2307436b76 improve flow of control and remove redundant checks 2022-09-03 10:40:17 -04:00
2eca1eecdc initialize LabelMap class through constructor, properly wipe out old data 2022-09-03 10:39:55 -04:00
fc67df3b5f fix memory management bug 2022-09-03 10:38:31 -04:00
b60f144705 more formatting/typesetting consistency 2022-09-03 04:17:22 -04:00
b4eb3e8156 support paths with blanks and avoid race condition when updating potentials 2022-09-03 03:56:58 -04:00
11a4fcec72 Merge branch 'lammps:develop' into fortran-tinkering 2022-09-02 23:57:16 -05:00
8121ec023a fix trailing whitespace 2022-09-02 22:00:04 -04:00
ffff660dd2 improve error messages on fix_nve_limit 2022-09-02 21:49:55 -04:00
1f813a5eae improve error message on fix_nve_noforce 2022-09-02 21:47:56 -04:00
54d78e2f8e improve error messages on fix_nve_sphere 2022-09-02 21:46:28 -04:00
40b1b1c482 support paths with blanks and avoid race condition when updating potentials 2022-09-02 21:37:46 -04:00
d6d6238d9f improve error message for fix_nve 2022-09-02 21:29:30 -04:00
d548c02a9e Math-related edits and code-block swaps; checkd builds for pdf and html docs 2022-09-02 17:44:45 -05:00
9928d41233 Merge branch 'lammps:develop' into doc-fixes 2022-09-02 16:12:34 -05:00
724a7cb554 fix typo 2022-09-02 16:42:14 -04:00
6c8750c041 Merge branch 'develop' into collected-small-changes 2022-09-02 16:41:14 -04:00
d65a6b9404 make procedure to replace downloaded potential file atomic 2022-09-02 13:00:29 -04:00
51a4819bfc Fixed an illegal preprocessor issue. 2022-09-02 11:42:30 -04:00
f9c49620b3 add minimization support 2022-09-02 09:38:24 -06:00
62ac080736 Conjugate gradient 2022-09-02 14:06:04 +00: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
48b086b717 protect potential file download against paths with blanks 2022-09-02 08:04:11 -04:00
b170ab056b properly link SPH and MACHDYN user guide PDFs from manual 2022-09-02 06:22:35 -04:00
ff10b2bc26 modernize accessors and error handling in fixes box/relax and spring/chunk 2022-09-02 05:42:35 -04:00
51f9972f83 Math and other edits to several fix style doc pages 2022-09-01 22:09:03 -05:00
9b41d28947 Merge branch 'develop' into type-labels
# Conflicts:
#	doc/src/dihedral_coeff.rst
2022-09-01 21:09:04 -04:00
874588c74f load/test pizza.py dump class only if NumPy is found 2022-09-01 21:00:55 -04:00
8d26cc96c8 also test colname default keyword/value pair 2022-09-01 21:00:17 -04:00
8315f9996b Merge pull request #3425 from lammps/coverity
Add coverity workflow
2022-09-01 18:17:03 -04:00
af168d5f80 Math and other minor edits to some fix style doc pages 2022-09-01 16:15:18 -05:00
b5e1e58d22 Merge branch 'mliappy_unified' of github.com:Boogie3D/lammps into mliappy_unified 2022-09-01 15:13:58 -06:00
2a8d4d6cf4 also allow to trigger the coverity workflow manually 2022-09-01 16:10:30 -04:00
b0f58bd7c4 select array dimension so they cannot be overflown 2022-09-01 16:03:56 -04:00
ea254d9105 remove bogus else branch 2022-09-01 16:03:23 -04:00
d503e441ff modernize accessor handling 2022-09-01 16:03:02 -04:00
7bba3c516f avoid excess string copy in auto loops 2022-09-01 16:02:32 -04:00
e0e4be1872 alternate workaround for hipcc/dpcpp fmtlib issue from upstream 2022-09-01 14:18:05 -04:00
cfee2078f1 Add coverity workflow 2022-09-01 12:05:30 -06:00
54543f45db Debugging pair.cpp 2022-09-01 11:17:58 -06:00
ae7ba30545 Small changes to get MD working 2022-09-01 11:16:28 -06:00
566ea864b8 clarify dump_modify doc page meaning for every and every/time 2022-09-01 10:01:08 -06:00
4cff211a5e clarify dump doc page meaning Nevery = N 2022-09-01 09:53:57 -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
ced73080b8 more dump_modify tests 2022-09-01 04:03:11 -04:00
e3d45b0df6 clean up 2022-09-01 16:35:43 +10:00
c03ef56965 Math replacements and cosmetic edits to documentation 2022-09-01 01:01:46 -05:00
f54e7b1e18 Merge branch 'lammps:develop' into doc-fixes 2022-08-31 21:52:43 -05:00
be53dda249 more dump_modify testing 2022-08-31 21:23:23 -04:00
fa6a5068e7 edit README for now 2022-08-31 16:55:28 -06:00
bb225c4be6 add unit test for checking dump_modify every 2022-08-31 17:20:04 -04:00
6a745f40ea make bugfix compatible with using a variable for dump_modify every 2022-08-31 17:19:44 -04:00
673eeff581 recover dump_modify every behavior 2022-08-31 14:39:46 -04:00
4d062f70ce bug fix for per-atom vector output of fix pair 2022-08-31 10:09:59 -06:00
22f7255e1d Merge pull request #3421 from phankl/mesocnt_stable
Major update to mesocnt styles
2022-08-31 11:54:22 -04:00
0c23ba71df update md5hash for updated potential 2022-08-31 11:25:48 -04:00
0cc6ad8318 cosmetic. silence compiler warnings. remove dead code. 2022-08-31 11:25:35 -04:00
a288507934 corrected friction description 2022-08-31 15:37:30 +01:00
a85fbd83f4 mentioned interpolation range dependence of potential on delta1/2 values in doc 2022-08-31 15:11:01 +01:00
2bded3da5e repeatable example 2022-08-31 12:42:47 +01:00
4e1a346f5a changed SWITCH parameter in pair_mesocnt for better energy conservation 2022-08-31 12:34:35 +01:00
30191462f5 added change and add dates to doc 2022-08-31 12:33:22 +01:00
b8ec8f0778 Merge remote-tracking branch 'origin/electrode' into safer_management 2022-08-31 14:15:39 +10:00
9fefb92b8a Merge branch 'lammps:develop' into doc-fixes 2022-08-30 21:48:22 -05:00
0c4583a267 Merge branch 'develop' into distributed-grids 2022-08-30 18:25:49 -04:00
e7a5fe20c7 whitespace 2022-08-30 18:24:56 -04:00
41cb3dc328 Merge branch 'distributed-grids' of github.com:lammps/lammps into distributed-grids 2022-08-30 16:07:40 -06:00
14a5f757c5 update ttm log files 2022-08-30 16:07:22 -06:00
f2b6027b02 disable certain options in fix ttm/grid for distributed grids 2022-08-30 16:00:13 -06:00
8a06ba415b update MDI version for CMake 2022-08-30 15:33:53 -06:00
8fafd4d8fb Restarting additional BPM settings, adding virial contributions from tangential bonds 2022-08-30 13:25:36 -06:00
fe47680491 revise workflow triggers 2022-08-30 15:07:53 -04:00
d369c4eb15 fix bug from incorrect use of constexpr 2022-08-30 15:00:24 -04:00
d874976222 Merge branch 'develop' into collected-small-changes 2022-08-30 14:59:07 -04:00
ac2cf8c4ed add support for discard yes/no of out-of-bin atoms 2022-08-30 12:49:09 -06:00
85965f01ce spelling 2022-08-30 14:44:01 -04:00
46fa86a1e0 modernize and fix memory leak 2022-08-30 14:33:23 -04:00
e6088e73d7 make runs more reproducible and apply LAMMPS conventions 2022-08-30 14:28:17 -04:00
4c64a2f2a1 fix out-of-range memory access in sort function 2022-08-30 14:27:28 -04:00
6b093cb80a more doc page updates 2022-08-30 11:50:15 -06:00
dd4260da77 Merge pull request #3420 from akohlmey/more-set-options
Refactor error handling in set command and add/rename options
2022-08-30 13:31:16 -04:00
3c52be6a44 prevent clang-format from messing up Style macros 2022-08-30 13:20:59 -04:00
8cae52a2cf Merge branch 'mesocnt_stable' of https://github.com/phankl/lammps into mesocnt_stable 2022-08-30 12:59:01 -04:00
80257099de Adding methods needed to efficiently create bonds 2022-08-30 10:58:55 -06:00
1139cb9345 formatted mesocnt doc files 2022-08-30 17:53:35 +01:00
227d794876 update MD5HASH for automatic download of updated potential file 2022-08-30 12:53:20 -04:00
b0b62fe1ac fix death test 2022-08-30 12:32:22 -04:00
70ad53f125 newest version of MDI 2022-08-30 09:56:22 -06:00
70a157f371 add test for EFF package properties 2022-08-30 11:41:52 -04:00
a4126af4e9 changes to fix ave/grid doc page 2022-08-30 08:44:26 -06:00
8a058ec2a0 fixed whitespace 2022-08-30 15:14:34 +01:00
4e5604daef Merge remote-tracking branch 'official/fix-pair-dump-skip' into feature/pace-al 2022-08-30 16:07:10 +02:00
67d0931259 clang-format on all mesocnt styles 2022-08-30 15:02:06 +01:00
69da75a9d5 more error message improvements 2022-08-30 14:59:16 +01:00
dd96442230 further improved error messages 2022-08-30 13:43:15 +01:00
a8f0e113ea improved error messages in mesocnt pair styles 2022-08-30 13:41:25 +01:00
238e6371b2 improve error message 2022-08-30 06:21:01 -04:00
2c0eb10d62 label electron spin with "espin" instead of "spin" but be backward compatible 2022-08-30 06:20:53 -04:00
bfb15c6cc6 support setting electron spin and radius with the set command 2022-08-30 06:11:17 -04:00
baba75c60a improved errors in mesocnt bond and angle 2022-08-30 10:54:28 +01:00
9bd5d766b7 added mesocnt styles to .gitignore 2022-08-30 10:18:00 +01:00
330ac4dc5a changed MathConst inclusion to individual variables 2022-08-30 10:15:21 +01:00
978165377d clarify and correct units of "k" 2022-08-30 05:00:06 -04:00
e3c0b04c39 Doc tweaks to make it easier to parse for a non-human 2022-08-30 00:09:18 -05:00
58fcf26581 add first tests for compute property/atom 2022-08-29 23:32:41 -04:00
f6b2846b8f update error messages for compute property/atom 2022-08-29 22:42:20 -04:00
14a03d84c7 whitespace 2022-08-29 21:53:44 -04:00
3e21738698 finish merge of develop 2022-08-29 17:07:49 -06:00
d67eed7e43 enable triclinic for fix ave/grid 2022-08-29 16:46:26 -06:00
2803e934d4 Update src/MESONT/angle_mesocnt.cpp
Co-authored-by: Axel Kohlmeyer <akohlmey@gmail.com>
2022-08-29 22:05:16 +01:00
118b464a53 add example for a 1-d pressure profile 2022-08-29 17:04:48 -04:00
d34f583ae6 Update doc/src/Packages_details.rst
Co-authored-by: Axel Kohlmeyer <akohlmey@gmail.com>
2022-08-29 22:04:09 +01:00
d3e5636c88 removed error message explanation in angle_mesocnt header 2022-08-29 21:32:38 +01:00
53f1f44d09 switched buckled flag in angle_mesocnt to int for Windows MPI compatability 2022-08-29 21:24:14 +01:00
0cc174243c workaround for hipcc/dpcpp compilers that silently convert long double to double 2022-08-29 14:47:33 -04:00
37d4c4c7f1 properly initialize result storage for per-chunk arrays 2022-08-29 12:52:16 -04:00
bdac6d3e05 Merge branch 'develop' into more-set-options 2022-08-29 12:21:17 -04:00
2f8c370645 Merge pull request #3418 from akohlmey/fmtlib-9.1-update
Update embedded fmtlib code to version 9.1.0
2022-08-29 11:36:58 -04:00
56de9c6d66 Merge pull request #3419 from akohlmey/collected-small-changes
Collected small changes and bugfixes
2022-08-29 11:06:00 -04:00
0b466bf910 added author contributions to all mesocnt code files 2022-08-29 13:58:35 +01:00
869980762e updated examples 2022-08-29 13:46:41 +01:00
26490f4021 clang-formatted all mesocnt code files 2022-08-29 13:00:20 +01:00
756a8fab18 Merge branch 'lammps:develop' into mesocnt_stable 2022-08-29 12:45:20 +01:00
4acb5a22db updated finf interpolation warning 2022-08-29 12:42:18 +01:00
c5055b87c9 added different number of quadrature points in fsemi and finf 2022-08-29 12:39:12 +01:00
0388913241 Automatic detection for electrode etypes 2022-08-29 13:11:30 +02:00
8edcc3381e Citation strings in ELECTRODE package
Cite new paper in fix electrode and its documentation. Add citation
string to kspace sytle pppm/electrode.
2022-08-29 09:48:14 +02:00
74bbbb9e17 rename "set spin" to "set spin/atom" and "set spin/random" to "set spin/atom/random"
this also adds unit tests and improves error checking and messages
2022-08-28 19:24:32 -04:00
bb6ea422b7 avoid global namespace import in header, more consistency 2022-08-28 17:22:26 -04:00
634496b509 consistent naming and style 2022-08-28 17:06:38 -04:00
0d88f4ccf2 consistent naming and style 2022-08-28 12:31:00 -04:00
28925f69f5 re-initialize neighbor lists at end to clear out the occasional list entry 2022-08-28 11:38:01 -04:00
6e71318086 fix typo 2022-08-28 11:21:38 -04:00
1511611ba3 optimization for large systems when checking overlap on small groups 2022-08-28 07:18:19 -04:00
c7e4346558 only print neighbor list info if there are neighbor lists 2022-08-28 07:17:41 -04:00
5f19f3ba8f correct error messages 2022-08-28 07:16:11 -04:00
4bcd43ff90 correct pair coeff mixing diagnostic for CLASS2 pair styles 2022-08-28 05:55:33 -04:00
be844dd9b7 avoid file access issues on windows 2022-08-28 05:55:33 -04:00
335d155e6b need numpy 2022-08-28 05:55:33 -04:00
0e5c758fb8 fixes for OPENMP versions of dielectric pair styles 2022-08-28 05:05:28 -04:00
acf17b4851 correct pair coeff mixing diagnostic for CLASS2 pair styles 2022-08-28 04:29:17 -04:00
b631a3c553 Merge branch 'lammps:develop' into fortran-tinkering 2022-08-27 20:10:59 -05:00
53329f38ef Merge branch 'collected-small-changes' into more-set-options 2022-08-27 17:32:49 -04:00
42ef22619a add unit test for set and compute property/atom 2022-08-27 16:19:28 -04:00
266cb24bb3 improve error messages in set command 2022-08-27 16:19:02 -04:00
b6ce6755d9 add Atom::get_style() method 2022-08-27 16:13:00 -04:00
57a451e115 Merge pull request #3414 from Vsevak/tip4p_cornercase
Fix TIP4P/GPU
2022-08-27 15:11:44 -04:00
0bb0afce8e update fmtlib to version 9.1.0 2022-08-27 13:31:43 -04:00
5cd67eaa5c avoid file access issues on windows 2022-08-27 13:25:02 -04:00
1f235dceaa need numpy 2022-08-27 13:24:51 -04:00
3b1a6f5e8e Merge pull request #3409 from akohlmey/collected-small-changes
Collected small changes and fixes
2022-08-27 11:59:19 -04:00
b9bab9d5e3 fix logic error introduced in PR #3408 2022-08-27 10:23:58 -04:00
69b32aef13 Merge remote-tracking branch 'github/develop' into collected-small-changes 2022-08-27 10:12:58 -04:00
52264cdaa7 Merge pull request #3411 from hammondkd/doc-fixes
Documentation edits (round 2)
2022-08-27 10:12:20 -04:00
08673525b9 Merge pull request #3408 from crackboy88/improve-errors
Improve errors
2022-08-27 07:37:31 -04:00
b31b20f336 print error if extract_setting() uses unknown setting string. 2022-08-27 07:02:19 -04:00
2f8075ae77 adjust doc page 2022-08-26 17:05:01 -06:00
5c5441c8cc more debugging on fix ave/grid 2022-08-26 16:46:58 -06:00
b19f40a855 correct, simplify rxnbond example 2022-08-26 13:43:47 -04:00
2a6bd1aa6b update test reference data for change in coulomb energy computation 2022-08-26 05:37:27 -04:00
09165f5212 add tabulated test for lj/cut/coul/long/dielectric 2022-08-26 05:25:02 -04:00
f1edac4c72 must reduce cutoff to be < L/2 to get consistent newton on/off results 2022-08-26 05:25:02 -04:00
41e2f32924 cosmetic 2022-08-26 05:25:02 -04:00
3e0fa3bec9 add test for tabulated coulomb with dielectric 2022-08-26 05:25:02 -04:00
9b92f6bab7 update reference data 2022-08-26 05:25:02 -04:00
69c751df7b small tweak to make auto detecting atom style work in TopoTools 2022-08-26 05:25:02 -04:00
d97c9948cb add force test inputs for DIELECTRIC package styles 2022-08-26 05:25:02 -04:00
25ca4317be re-introduce factor 1/2 where the average local dielectric constant is used 2022-08-26 05:24:19 -04:00
4069aa3658 Fixed non-existent dump_custom attribute in dump_modify thresh example 2022-08-26 00:13:31 -05:00
39acae7737 Merge branch 'lammps:develop' into mliappy_unified 2022-08-25 11:07:17 -06:00
546d5a9a2d Rewrite cell_size w/o sqrt 2022-08-25 18:11:43 +03:00
8d77c1daee Merge remote-tracking branch 'origin/develop' into tip4p_cornercase 2022-08-25 17:58:17 +03:00
04224e2b53 use sys.path.insert() instead of sys.path.append() to avoid conflicts with other python packages 2022-08-25 07:25:13 -04:00
60b00bfa8f update unit tests for variable command 2022-08-25 05:48:07 -04:00
9205f99373 Merge branch 'lammps:develop' into improve-errors 2022-08-25 11:09:52 +08:00
59837dd44b improve error messages in run and variable.cpp 2022-08-25 11:09:21 +08:00
12fbaa8591 more debug 2022-08-24 10:17:29 -06:00
50f7b98821 one more revert for KOKKOS 2022-08-23 14:30:22 -04:00
bd5cd70eeb Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes 2022-08-23 14:27:29 -04:00
4edf29103e whitespace 2022-08-23 14:27:03 -04:00
61d50988b1 Merge branch 'HhhhZhou/develop' into collected-small-changes
# Conflicts:
#	doc/src/pair_meam.rst
#	src/MEAM/meam_funcs.cpp
2022-08-23 14:24:09 -04:00
54d617b257 silence compiler warnings 2022-08-23 14:21:00 -04:00
6a3726425d update MEAM to state of latest PR #3412 2022-08-23 14:20:45 -04:00
b6583eb681 debug of fix ave/grid 2022-08-23 09:58:58 -06:00
084761c665 Merge branch 'develop' into collected-small-changes 2022-08-23 11:53:30 -04:00
50591fae82 Added simple cubic
Added simple cubic as the reference structure
2022-08-23 10:52:41 -05:00
0fbc54a352 Merge branch 'lammps:develop' into fortran-tinkering 2022-08-23 10:15:28 -05:00
be198d7ba4 Merge branch 'lammps:develop' into doc-fixes 2022-08-23 10:15:11 -05:00
48732ff376 Merge pull request #3410 from wmbrownIntel/icx_gather_opt
Changes to Intel Package files for better LLVM-based compiler support
2022-08-23 11:00:44 -04:00
8e0071ecc4 update 2022-08-23 09:43:03 -04:00
f5870fdd7d fix syntax error 2022-08-23 09:41:56 -04:00
47930a3a3c enable native windows and macos unittest github actions also for pull requests 2022-08-23 05:43:35 -04:00
60e5ce0dc2 refer to temperature more consistently with :math:T instead of *T* 2022-08-23 05:26:07 -04:00
0b22ad5189 correctly use versionchanged directive 2022-08-23 01:04:49 -04:00
54c928dbce improve typesetting, record version change, a few more k_B changes 2022-08-23 00:51:36 -04:00
007f7fbbfb Fixed kT vs k_B T in a couple of places and associated description 2022-08-22 23:46:49 -05:00
0f3c4357c8 Merge branch 'doc-fixes' of github.com:hammondkd/lammps into doc-fixes
Changed some "dof" to "DOF" as per Axel's preference
2022-08-22 23:29:34 -05:00
5d04e88e28 Changed a couple of "dof" to "DOF" as per Axel's preference 2022-08-22 23:29:24 -05:00
c135eb0a5f fix spelling 2022-08-23 00:05:17 -04:00
18f10a6a0d use k_B for Boltzmann constant 2022-08-23 00:04:25 -04:00
0eefdf8a87 Fixed typos; evidently make html is more forgiving than make pdf 2022-08-22 22:03:18 -05:00
88f7e4c7b6 After running "make fix-whitespace" 2022-08-22 21:41:12 -05:00
4d8dc03a3f Edits to fix.rst and additions for missing styles 2022-08-22 21:13:59 -05:00
bc3a673e89 Merge branch 'lammps:develop' into doc-fixes 2022-08-22 20:01:28 -05:00
37e9bf54ab debugging fixes 2022-08-22 17:13:59 -06:00
f7cf5b6751 Using NEIGHMASK bitmasking for array indices to improve vector gather performance with nextgen compiler. 2022-08-22 15:57:02 -07:00
ab7ae9324f update version of MDI library 2022-08-22 13:15:48 -06:00
4b842d52e6 Merge branch 'develop' into type-labels 2022-08-22 10:45:48 -04:00
57346a359a permit asterisk in type labels 2022-08-22 10:39:05 -04:00
842266cbe5 avoid referencing a suggested type label format 2022-08-22 10:35:09 -04:00
b96398e5e9 Minor edits to doc pages for echo group if 2022-08-21 22:19:30 -05:00
a0ffcd9811 can use member variables directly 2022-08-21 23:13:25 -04:00
55feca9c0f add minimal tests for dump class 2022-08-21 14:02:39 -04:00
f18b96e517 handle dump files with extra UNITS or TIME info 2022-08-21 14:01:41 -04:00
1f37087156 python 2/3 portability changes for log class from Pizza.py 2022-08-20 22:03:30 -04:00
057dff375c add unit test for Pizza.py modules 2022-08-20 21:59:24 -04:00
eebe07ae73 replace with symbolic links 2022-08-20 20:12:49 -04:00
d0a37644b7 remove redundant copies of pizza.py files 2022-08-20 20:12:31 -04:00
8d6b62d936 sync 2022-08-20 11:14:45 -04:00
d3101898f1 more python 2/3 porting for using compile()/eval()/exec() 2022-08-20 11:06:02 -04:00
bd5dea0d07 allow selecting a list of timesteps. avoid redundant code 2022-08-20 10:26:48 -04:00
77ad9719b3 apply suggestions from @rbberger for more readable code 2022-08-20 10:25:35 -04:00
e74b87d9af Merge branch 'lammps:develop' into improve-errors 2022-08-20 19:20:55 +08:00
2259947d52 Edits to documentation files for consistency and math 2022-08-19 23:49:44 -05:00
1d25379ad0 synchronize code between DIELECTRIC package and OPENMP versions 2022-08-19 22:30:49 -04:00
de0b7bf737 Tweaks to documentation to make it more consistent and machine-readable 2022-08-19 19:25:15 -05:00
b26ee6d75d more normalization code 2022-08-19 17:13:04 -06:00
d02ff1d70e correct force and energy tally for using full neighbor lists and newton on/off 2022-08-19 16:33:55 -04:00
aa1762b815 bugfix for writing data files with atom style dielectric 2022-08-19 16:18:13 -04:00
06e6a168f6 more normalization 2022-08-19 14:05:41 -06:00
de3730d5f3 delete log files for now 2022-08-19 13:18:07 -06:00
77c0ad4d26 adding support for normflag and aveflag 2022-08-19 10:59:25 -06:00
d10dbb9cb9 Merge branch 'distributed-grids' of github.com:lammps/lammps into distributed-grids 2022-08-19 09:42:30 -06:00
75933f1965 comment tweaks 2022-08-19 09:42:27 -06:00
20f7e8dcb5 add change suggested by @hammondkd 2022-08-19 11:26:45 -04:00
cec1a197a4 Merge branch 'develop' into collected-small-changes 2022-08-19 11:24:58 -04:00
66bbfa67dc Merge pull request #3406 from Vikingat-RAGE/develop
Fix vim syntax to handle switching color themes
2022-08-19 11:24:21 -04:00
7a35ec3527 Merge branch 'lammps:develop' into fortran-tinkering 2022-08-19 08:52:30 -05:00
3ec06dd2c2 improve some error messages in comm, domain and region.cpp 2022-08-19 21:06:00 +08:00
9e6deb1a95 remove unused variables 2022-08-19 06:13:34 -04:00
8292a23f94 fix array indexing bugs flagged by compiler warnings 2022-08-19 06:13:22 -04:00
6bc48f0882 improve error messages and apply clang-format 2022-08-19 06:11:51 -04:00
d32b303a82 Finished edits on computes (whew!); builds with no errors or warnings 2022-08-19 00:25:06 -05:00
9b039ce00c port MEAM changes for sc lattice to KOKKOS 2022-08-18 23:05:11 -04:00
9e0e0ce310 add support for Bi to MEAM and sc lattices. taken from unfinished PR #3261 2022-08-18 22:50:03 -04:00
1e5ca42dfa small update 2022-08-18 21:48:09 -04:00
d03f0a6716 More cosmetic edits to documentation 2022-08-18 19:25:06 -05:00
8a9cd4b2b5 Merge branch 'lammps:develop' into doc-fixes 2022-08-18 17:48:47 -05:00
7639d57657 update unit test for utils::parse_gridid() 2022-08-18 17:48:59 -04:00
3e6b78b256 fix documentation issues 2022-08-18 17:39:11 -04:00
8196745562 update utils::expand_args() to it can handle gridIDs 2022-08-18 17:34:40 -04:00
2f026e12c0 update grid data interface for fix ttm/grid 2022-08-18 17:34:04 -04:00
e4e7272c22 rename utils::gridid_parse() to utils::parse_gridid() 2022-08-18 17:33:29 -04:00
ccf6c2d55a Merge remote-tracking branch 'github/develop' into distributed-grids 2022-08-18 15:18:27 -04:00
da3e723351 Merge branch 'develop' into distributed-grids 2022-08-18 15:10:44 -04:00
414b0b1475 update unit tests 2022-08-18 10:52:25 -04:00
e37abc65fe fixed bug in neigh_common with missing self-inclusion of ghost bond atoms 2022-08-18 15:43:28 +02:00
9edb1ee928 improved error messages in input.cpp 2022-08-18 21:14:39 +08:00
93e9382006 Merge branch 'improve-errors' of github.com:crackboy88/lammps into improve-errors 2022-08-18 21:09:27 +08:00
ff9c02f053 improved error messages in pair and input.cpp 2022-08-18 21:08:36 +08:00
c6c8791aeb silence compiler warning 2022-08-18 06:35:01 -04:00
7b9b056c98 make dump.py files consistent and improve python 2/3 portability 2022-08-18 06:34:49 -04:00
5ff56753da update unit tests for changed error messages 2022-08-17 23:56:22 -04:00
5a10b09005 Merge branch 'improve-errors' of github.com:crackboy88/lammps into improve-errors 2022-08-18 11:23:27 +08:00
9beb60c713 improve error messages in change_box,create_box,domain,input,lattice and neighbor.cpp 2022-08-18 11:22:36 +08:00
1b979be939 Merge pull request #3392 from akohlmey/minimize-neighbor-check
Update test for neighbor list settings during minimization
2022-08-17 20:55:23 -04:00
c3f57037e6 Merge pull request #3391 from akohlmey/refactor-find-xxx
Continued refactoring of internal APIs and their use
2022-08-17 19:37:20 -04:00
f199e45762 Merge pull request #3244 from akohlmey/shake-with-minimize
Enable use of fix shake or fix rattle during minimization
2022-08-17 18:02:40 -04:00
93c7dab931 Fixed filetype.vim 2022-08-17 14:08:38 -07:00
d1e0af7ef5 discuss why one would want to use check = no during minimization 2022-08-17 16:00:00 -04:00
8e4b79dfa8 Merge branch 'refactor-find-xxx' of github.com:akohlmey/lammps into refactor-find-xxx
# Conflicts:
#	src/fix_temp_rescale.cpp
2022-08-17 15:52:02 -04:00
da0bc7e0e9 whitespace 2022-08-17 15:48:47 -04:00
92c9614429 Merge branch 'develop' into refactor-find-xxx
# Conflicts:
#	src/atom.h
#	src/compute_centroid_stress_atom.cpp
2022-08-17 15:48:26 -04:00
20b87d3cd4 Merge pull request #3398 from hammondkd/cite-reminders
Cite reminders
2022-08-17 15:40:35 -04:00
ca4f7b6579 Merge pull request #3399 from akohlmey/lookup-molecules
Refactor access to molecule templates
2022-08-17 15:29:11 -04:00
daa6b78c43 update documentation 2022-08-17 15:22:59 -04:00
7879a4f837 Fix vim syntax to handle switching color themes
- filetype.vim includes *.in files as lammps input files
- syntax.vim defines the syntax links rather than just creating them
  once
2022-08-17 12:03:10 -07:00
c1b664b4be improve error message and update unit tests accordingly 2022-08-17 13:25:47 -04:00
6e8db537c9 Merge pull request #3400 from vpalkar/unit-tests
Adding unit tests and improving errors in region commands
2022-08-17 13:19:27 -04:00
c8f379dbab whitespace 2022-08-17 13:18:55 -04:00
763fff27ec Merge branch 'distributed-grids' of github.com:lammps/lammps into distributed-grids 2022-08-17 13:18:17 -04:00
22a9bfebe5 reimplement utils::gridid_parse() function and update related code 2022-08-17 13:18:12 -04:00
eeb9209af8 bug fix 2022-08-17 10:55:28 -06:00
9c211d836c Merge pull request #3403 from crackboy88/improve-errors
improve error messages
2022-08-17 12:21:40 -04:00
e2f2663df2 more changes from GridComm to Grid3d in packages 2022-08-17 10:08:34 -06:00
d8cb79da36 added neigh_mode toggle in mesocnt/viscous 2022-08-17 17:37:51 +02:00
a2714d6cc7 updated documentation for mesocnt styles 2022-08-17 17:25:22 +02:00
a6a37021a9 Merge branch 'distributed-grids' of github.com:lammps/lammps into distributed-grids 2022-08-17 08:52:13 -06:00
f8d119b073 change GridComm to Grid3d in DIELECTRIC package 2022-08-17 08:51:57 -06:00
6297d89382 use std::set_union for neigh_common, reduces complexity from o(n^2) to o(n log(n)) 2022-08-17 16:50:16 +02:00
7a0636ca0c whitespace fixes 2022-08-17 10:15:30 -04:00
60c9f62268 added input file toggle for neighbor list mode, changed order of arguments and made neighbor list + potential mode arguments optional 2022-08-17 14:52:25 +02:00
8d2fba9197 modernize fixes langevin, press/berendsen, temp/berendsen, temp/rescale 2022-08-17 06:57:38 -04:00
6228ca0a2a added old atom and mol id version of bond_neigh which is a lot faster than topology version 2022-08-17 12:56:28 +02:00
6aa1d1fb95 Edited compute reduce and reduce/chunk to make easier to parse and more consistent 2022-08-16 23:26:13 -05:00
8dbe981a1a modernize fix vector 2022-08-16 22:56:29 -04:00
fe8a7a3799 Math replacements; code-block LAMMPS; clarity and parsing-friendly edits 2022-08-16 20:29:12 -05:00
180e0125ce Improved fix wall/reflect changes 2022-08-17 08:38:43 +08:00
9109677eb3 tweak to doc page 2022-08-16 17:17:15 -06:00
301d379db8 Merge branch 'develop' into refactor-find-xxx 2022-08-16 18:05:33 -04:00
0cac041ad4 avoid segfault when using a custom format with too many format specifiers 2022-08-16 18:03:07 -04:00
5e935519bf finished first draft of doc pages 2022-08-16 15:42:48 -06:00
d8706ab0cb Merge branch 'unit-tests' of github.com:vpalkar/lammps into unit-tests 2022-08-16 17:03:11 -04:00
5cdc09d9c7 updated region_intersect and region_union to use utils missing cmd args 2022-08-16 16:59:12 -04:00
559ced9869 updated error messages and test for region.cpp 2022-08-16 16:52:19 -04:00
206ab141c9 more doc info for per-grid commands 2022-08-16 11:33:55 -06:00
e14997c597 added gl_init in mesocnt/viscous 2022-08-16 16:07:37 +02:00
19e3af893f updated package detail documentation 2022-08-16 14:50:46 +02:00
0b047ba22b improved error messages in fix_addforce,fix_indent,fix_setforce,fix_temp_rescale,fix_wall_reflect and thermo.cpp 2022-08-16 20:33:22 +08: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
953f63bb8f More math and code-block edits 2022-08-15 23:48:30 -05:00
288dd03ee2 Merge branch 'lammps:develop' into doc-fixes 2022-08-15 21:13:32 -05: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
3f9daa8608 whitespace fixes 2022-08-15 21:48:01 -04:00
b4cdf5ce23 Updates to fix code-block at top, math, and anything else I found 2022-08-15 20:17:36 -05:00
e6e9e1b59c initial doc pages 2022-08-15 17:29:11 -06:00
ce4ca06035 support for density, mass, temperature values 2022-08-15 16:02:46 -06:00
bec86f3f04 added some death tests and more readable code for some error messages 2022-08-15 16:16:48 -04:00
43726c020a Merge pull request #3394 from crackboy88/improve-errors
Improve errors
2022-08-15 15:47:47 -04:00
000c63a7ce improved error messages for some more region commands 2022-08-15 15:12:26 -04:00
c1f81eb640 improved error messages in a bunch of region commands 2022-08-15 15:04:18 -04:00
8c83e1f047 Merge pull request #3401 from efposadac/modernize-legacy
Modernize legacy API calls
2022-08-15 14:56:57 -04:00
632e58c0d9 fixed reference errors 2022-08-15 19:43:12 +02:00
0443f40ccb fixed modulus 2022-08-15 19:24:55 +02:00
1f5f282536 added angle_mesocnt documentation 2022-08-15 19:23:23 +02:00
0aa79584c0 added bond_style mesocnt documentation, corrected pair_style mesocnt documentation and added mesocnt styles in style indices 2022-08-15 18:44:31 +02:00
24dbcfc6ea updated pair_mesocnt + pair_mesocnt_viscous documentation 2022-08-15 17:20:59 +02:00
eb600c7b9d Merge branch 'lammps:develop' into modernize-legacy 2022-08-15 10:55:59 -04:00
58c3e1d80c added numerical integration in finf if psi1 or psi2 are out of interpolation range for splines 2022-08-15 12:38:46 +02:00
d9320c61bb adding test for fix wall/region 2022-08-15 02:13:05 -04:00
bf8ff3a8ca improved error messages for region cylinder 2022-08-14 23:27:55 -04:00
d047053473 improved some error messages in compute_msd,fix_indent and fix_nh.cpp 2022-08-15 10:51:29 +08:00
29998775f0 Added a test for region clyinder with an open face 2022-08-14 22:48:42 -04:00
89f32e43dc update unit test for changed error message 2022-08-13 23:02:04 -04:00
3292ee8299 Fixed the last change to modify_params function 2022-08-14 10:21:49 +08: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
a5afbefef2 Found another missing comma (or missed fixing the old one?) in fix_nh_uef.cpp 2022-08-13 18:37:38 -05:00
35c7911808 One minor typo in fix_gpu.cpp; still trying to figure out what's tripping the non-compile elsewhere 2022-08-13 17:49:39 -05:00
7e3a88806a For some reason INTERLAYER/pair_ilp_tmd.cpp got missed with the whitespace checker 2022-08-13 17:39:35 -05:00
a68a63bf77 Fixed pair_edip_multi and whitespace 2022-08-13 17:33:50 -05:00
a9c68db3ac Found three remaining typos; I think we should be OK now 2022-08-13 17:31:03 -05:00
8e8837b7dd Merge branch 'cite-reminders' of github.com:hammondkd/lammps into cite-reminders
Fixing two typos (thanks, Axel!)
2022-08-13 16:51:59 -05:00
ac71c605e3 Fixed two typos 2022-08-13 16:51:44 -05:00
2b4d6c7bc8 Update src/UEF/fix_nh_uef.cpp
Co-authored-by: Axel Kohlmeyer <akohlmey@gmail.com>
2022-08-13 16:42:57 -05:00
f592e3184e simplify Molecule::check_attributes() 2022-08-13 16:56:53 -04:00
1de66a82de add tests for new API 2022-08-13 16:02:58 -04:00
3c744772b8 add new api to access molecules. 2022-08-13 16:02:50 -04:00
1d89c3f5d7 Fixed remaining BibTeX entries, checked all entries in issue #2597 2022-08-13 13:45:39 -05:00
1473f760f8 Fixed a few oversights and typos 2022-08-13 13:07:31 -05:00
d599a541b5 improved some error messages in velocity.cpp and dump.cpp 2022-08-13 19:10:57 +08:00
29e1595fb4 Updates to BibTeX syntax for anything that needed it that I caught and fixes to address Issue #2597 2022-08-13 04:51:54 -05:00
c7dd679fcd Merge branch 'lammps:develop' into cite-reminders 2022-08-13 01:35:34 -05:00
e66a4b2423 Changed a few; now pulling new ones from commit c2115c2 so I do not replicate 2022-08-13 01:32:49 -05:00
6973b80343 regularize a couple more 2022-08-13 02:17:04 -04:00
c2115c27e8 regularize a few citation reminders 2022-08-13 02:10:28 -04:00
a4faa3aced modernize using get_fix_by_id() 2022-08-13 01:49:00 -04:00
1fc9c31db5 Merge branch 'lammps:develop' into improve-errors 2022-08-13 09:36:27 +08:00
98593b4ad5 Improved from last revision of neighbor.cpp 2022-08-13 08:35:20 +08:00
894b053ef4 silence compiler warnings 2022-08-12 17:13:44 -04:00
35e93e760a Merge branch 'develop' into refactor-find-xxx 2022-08-12 17:08:25 -04:00
16e4740362 Merge branch 'lammps:develop' into mliappy_unified 2022-08-12 13:25:04 -06:00
0222da9f2b Merge pull request #3393 from akohlmey/test-amoeba
Add force style test for amoeba angle style and fix related bug
2022-08-12 15:05:13 -04:00
dd110176d1 Merge pull request #3395 from akohlmey/fix-reaxff-species-update
Fix reaxff/species update for dynamic groups and empty groups
2022-08-12 14:49:26 -04:00
73bee3c53c add discussion of neighbor list settings during minimizations. minor tweaks 2022-08-12 14:47:08 -04:00
4c975c34c1 Deleted the parenthesis instead of the space... 2022-08-12 11:55:30 -05:00
9750c72822 output of fix ave/grid 2022-08-12 10:50:19 -06: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
3588c0a7cc switched fsemi to gauss-legendre quadrature, 10 quadrature points seem fully converged (vs 100 trapezoid points) 2022-08-12 16:53:52 +02:00
09b3cbafdc correctly handle the case where there are no atoms in the fix group 2022-08-12 10:46:07 -04:00
12c28c393d support dynamic groups, but only if nrepeat == 1 2022-08-12 10:45:35 -04:00
9d89bc8f82 Typo fixes/etc. in documentation 2022-08-12 09:40:29 -05:00
cc5edbac47 removed naive bisection and reduced quadrature points 2022-08-12 16:17:10 +02:00
e160fc841c added gauss-legendre quadrature framework 2022-08-12 16:08:19 +02: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
923976f154 Merge remote-tracking branch 'refs/remotes/origin/improve-errors' into improve-errors 2022-08-12 12:18:02 +08:00
6d624b782d made some changes on neighbor.cpp 2022-08-12 12:12:22 +08:00
c869a7aac2 update OpenMP suppressions for gcc-12 2022-08-11 23:36:25 -04:00
1c63159a80 add test input for amoeba angle style 2022-08-11 22:54:42 -04:00
e5219e6a10 fix bug in energy tally for 4-atom angle term 2022-08-11 22:50:57 -04:00
4151a1af02 Lots of tinkering with extract_global; back to square 1 2022-08-11 17:46:21 -05:00
8b637b5b70 error check for particle mapping to grid 2022-08-11 13:51:42 -06:00
58800b5191 enable relancing to work with distributed grids 2022-08-11 13:28:50 -06:00
7f9e6ce16a Merge branch 'develop' into shake-with-minimize 2022-08-11 13:21:08 -04:00
0e1463fdaa change AMOEBA grids to Grid3d from GridComm 2022-08-11 10:32:09 -06:00
faa225d658 Merge branch 'develop' into distributed-grids 2022-08-11 09:44:43 -06:00
0e2b51010c simplify 2022-08-11 09:51:37 -04:00
0b38cbea2d add get_dump_by_index() function 2022-08-11 09:46:22 -04:00
871a6d5cf7 more consistent output format 2022-08-11 07:54:47 -04:00
0c9964dd0e accept 'neigh_modify every 1 delay 0' regardless of "check" setting
downgrade the "WARNING" message to a regular output
(and thus be less confusing to new LAMMPS users).
2022-08-11 07:54:36 -04:00
6e8c24372e Merge branch 'lammps:develop' into improve-errors 2022-08-11 19:19:13 +08:00
af1c772157 made some changes on minimize.cpp 2022-08-11 19:08:11 +08:00
d41d5960e4 simplify and modernize 2022-08-11 04:07:49 -04:00
f9352e6ad7 update unit test for groups 2022-08-11 03:56:29 -04:00
2eb6ff1111 allow const char * argument 2022-08-11 03:45:56 -04:00
91b98484ad modernize and simplify 2022-08-11 03:45:36 -04:00
aab62d5ed9 add get_dump_list() function 2022-08-11 03:14:59 -04:00
c574ed51b5 modernize and simplify 2022-08-11 03:04:58 -04:00
9bd45e70da simplify and modernize 2022-08-11 03:00:37 -04:00
2b16a8d1c6 document how to update code that uses Output::find_dump() 2022-08-11 02:19:18 -04:00
e8e6beed50 find dump is no longer used 2022-08-11 01:52:42 -04:00
76123d3347 change hyper command to use get_dump_by_id() instead of find_dump() 2022-08-11 01:52:27 -04:00
af5eacfe8c Merge branch 'lammps:develop' into mliappy_unified 2022-08-10 21:58:37 -06:00
208caacb89 Merge pull request #3390 from hammondkd/fortran2_updates
Fixed a bug (xz and yz reversed) in LAMMPS.F90 and changed mpif90 to …
2022-08-10 20:49:17 -04:00
b565d10a3d Merge pull request #3388 from chemshift/mliap-bug-3204
Mliap bug 3204
2022-08-10 19:33:59 -04:00
b191e29561 Work in progress for extract_global; committing but will probably undo later 2022-08-10 17:56:28 -05:00
c9c3f68bdf Merge pull request #3387 from akohlmey/collected-small-changes
Collected small changes and bug fixes
2022-08-10 18:34:52 -04:00
9fdc96e0dd add QE dir 2022-08-10 15:48:53 -06:00
f1cca7d37d Update __init__.py 2022-08-10 12:22:29 -06: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
be9cf26db8 one more file 2022-08-10 10:37:52 -06: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
b00b5f142a added zeolite test problem 2022-08-10 10:37:31 -06:00
89b9967f2c Added part of lmp_extract_global 2022-08-10 11:37:15 -05:00
15261aaa71 Fixed a bug (xz and yz reversed) in LAMMPS.F90 and changed mpif90 to mpifort in README for files in examples/COUPLE/fortran2 2022-08-10 11:11:27 -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
591fc4383b update doc 2022-08-10 08:21:14 -04:00
e592f0f139 clarify the function of -nonbuf a bit more 2022-08-10 07:03:57 -04:00
631f33feb5 remove redundant calls 2022-08-10 06:57:59 -04: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
3f54d8eca5 more info on how to build LATTE 2022-08-09 16:42:56 -06:00
3a4a0078cd whitespace 2022-08-09 16:51:48 -04:00
6eb51a68d9 move dump command after reset_timestep to avoid crash 2022-08-09 16:51:48 -04:00
c8b6b052fc port sorting by time to python 3 while retaining compatibility with 2.7 2022-08-09 16:51:48 -04:00
111caac960 remove references to Numeric module. we only support numpy. 2022-08-09 16:11:09 -04:00
5c589dbe20 add -nonbuf / -nb command line flag to disable buffering for screen and logfile 2022-08-09 15:52:47 -04:00
ba7507c9e5 small tweaks 2022-08-09 14:47:58 -04:00
247a2b12b3 use utils::inumeric() instead of atoi() (not for parsing environment variables yet) 2022-08-09 14:30:44 -04:00
3178f05bbf Merge branch 'develop' into collected-small-changes 2022-08-09 14:25:53 -04:00
ee89ef6084 Merge pull request #3389 from cjknight/polaris_updates
one more env var for local mpi rank
2022-08-09 14:19:10 -04:00
6873ebb17a LAMMPS code clinic 2022 project 2: Replacing find_compute with get_compute_by_id where possible. 2022-08-09 14:01:49 -04:00
d5170a1703 one more env var for local rank 2022-08-09 17:35:22 +00:00
7a3d43b6a7 de-doc multiple label maps 2022-08-09 12:01:47 -04:00
eb4ce25f03 finish rolling back multiple maps feature 2022-08-09 11:32:29 -04:00
d0ac9426e5 added proper neighbor list cutoff support and segment-segment flag to pair_styles 2022-08-09 14:08:55 +02:00
363b80f85c begin unfeaturing multiple label maps feature 2022-08-09 01:01:31 -04:00
8c8084a027 also remove error list from header file! 2022-08-08 23:23:08 -04:00
4703431768 fix merge commit take3
and actually test it
2022-08-08 23:18:54 -04:00
c005a3d30d fix merge take2 2022-08-08 17:58:58 -04:00
8ac7aac620 fix merge commit 2022-08-08 17:40:28 -04:00
899fa8166a Initial modifications LAMMPS code clinic 2022 2022-08-08 17:31:42 -04:00
f9717049b1 Merge branch 'develop' into type-labels 2022-08-08 17:16:50 -04:00
7e0cad7d9e import fix from upstream 2022-08-08 15:40:19 -04:00
f7b0cb3bd4 AMOEBA induce bugfixes 2022-08-08 15:31:45 -04:00
92dc854ed4 workaround for IBM's XLClang compiler 2022-08-08 15:27:52 -04:00
fb2dd26d45 Merge pull request #3383 from hammondkd/doc-fixes
Documentation fixes
2022-08-08 14:51:38 -04:00
94403eaf76 Merge branch 'mliap-bug-3204' of https://github.com/chemshift/lammps into mliap-bug-3204 2022-08-08 12:09:07 -06:00
fd2ab2a8b9 Update __init__.py 2022-08-08 12:08:46 -06:00
5962dde035 Merge branch 'lammps:develop' into mliap-bug-3204 2022-08-08 11:47:16 -06:00
953d2c738b Update __init__.py 2022-08-08 11:45:43 -06:00
da8135c875 Merge pull request #3384 from akohlmey/collected-small-changes
Collected small changes and fixes
2022-08-08 11:11:49 -04:00
2227de3231 Update __init__.py 2022-08-07 23:00:35 -06:00
2d3504ff0f Locate correct dynamics library directories
in Anaconda Environments
2022-08-07 22:54:59 -06:00
baf3e614fb Add comments for tip4p GPU kernels 2022-08-07 22:26:11 +03:00
3ca8df388d fix a couple of typos 2022-08-06 23:01:35 -04:00
42594bbbb7 Convert path to test inputs folder to native syntax on windows to make tests with file copying portable. 2022-08-06 22:46:52 -04:00
0f68aa80fe fix typo 2022-08-06 21:44:56 -04:00
e6b47b0b4d make test input platform independent with is_os() variable function 2022-08-06 21:44:49 -04:00
4ac74a4153 add is_os() special function to the variable command 2022-08-06 21:44:03 -04:00
5b0a9cea99 use ISO_C_BINDING compatible return type 2022-08-06 20:43:04 -04:00
b465d3c86f silence compiler warnings about unused variables 2022-08-06 19:59:37 -04:00
f92e57ba9e Must always enable exception handler with MSVC and also with Intel classic on windows. 2022-08-06 19:58:44 -04:00
a9aa462a60 use alternate way to incorporate the module via "include" in the source code 2022-08-06 18:47:31 -04:00
801d59a9ac correct MPI detection for Fortran 2022-08-06 18:46:56 -04:00
5867f15c6b make more explicit 2022-08-06 18:46:33 -04:00
322dc9a4de incorporate bugfixes and some suggestions from PR #3314 2022-08-06 17:43:40 -04:00
ba50889ad5 friction now acting only along segments 2022-08-06 12:14:16 +01:00
92c1f3e20a fixed rogue linebreak 2022-08-05 23:36:01 -05:00
485b3e7885 Resolve conflicts with devel branch 2022-08-05 23:30:41 -05:00
5734cce9d8 Updates documentation files to make them more consistent and some typo fixes (round 1) 2022-08-05 23:03:09 -05:00
d58b81afe2 adjust location of local ref targets for recent sphinx versions 2022-08-05 22:08:33 -04:00
4421a793d9 update API for variable argument logmesg() function 2022-08-05 21:56:47 -04:00
49df4d93a0 need new CSS hack to hide duplicate headers derived from the navigation bar 2022-08-05 21:44:31 -04:00
99582c0f28 Merge pull request #3381 from akohlmey/update-fmtlib
Update embedded fmtlib code to version 9.0.0
2022-08-05 19:51:51 -04:00
83a91a4fab more debug tests with LATTE 2022-08-05 16:53:13 -06:00
daa5a1837e retesting of LAMMPS + LATTE 2022-08-05 16:35:49 -06:00
e502b9b4fe Merge branch 'update-fmtlib' into shake-with-minimize 2022-08-05 18:14:00 -04:00
dce72e7007 Merge branch 'develop' into shake-with-minimize 2022-08-05 18:13:22 -04:00
caf21d09b4 disallow using fix shake/rattle with KOKKOS during minimization (for now) 2022-08-05 18:12:29 -04:00
691004509a standarize use of static methods with MDI, also plugin args 2022-08-05 16:05:36 -06:00
b5c69e520d Merge pull request #3382 from akohlmey/coverity-fixes
Small updates and bugfixes from static code analysis
2022-08-05 17:55:13 -04:00
5b24e3aa3c Merge pull request #3379 from akohlmey/fix_store_global_peratom
Split internal fix STORE command into fix STORE/GLOBAL and fix STORE/PERATOM
2022-08-05 17:22:48 -04:00
1e099de59c fix initialization typo 2022-08-05 16:38:35 -04:00
ade64c586e move to 1.4.2 version of MDI lib 2022-08-05 14:04:16 -06:00
8db43c0bd7 update CODEOWNERS table 2022-08-05 07:54:47 -04:00
7f46b54b79 make "verbose" a proper compile time flag and rename to VERBOSE 2022-08-05 07:45:32 -04:00
b395d41eb6 fix index copy-n-paste error 2022-08-05 07:40:36 -04:00
fe0cbf1a68 enable to pass string constants 2022-08-05 07:22:11 -04:00
4f98e02ae7 avoid division by zero 2022-08-05 07:21:47 -04:00
62cfde2ed2 energy is not an array 2022-08-05 07:21:35 -04:00
3755ec7e35 fix typo 2022-08-05 07:21:11 -04:00
ca1d646b25 offset is not used (by construction of the potential) 2022-08-05 07:20:44 -04:00
18f0a89c85 changed friction model to sigmoid 2022-08-05 10:50:43 +01:00
a9829b1e5f enforce null termination of read string 2022-08-05 04:27:58 -04:00
f448fd4191 ensure liftime of temporary storage 2022-08-05 04:27:58 -04:00
7ebd65ddb7 must catch exceptions inside destructors 2022-08-05 04:27:49 -04:00
968cde7f41 protect against failed lookup of 4th atom 2022-08-05 04:23:06 -04:00
681ad88f08 rename fix STORE_LOCAL to STORE/LOCAL for consistency 2022-08-05 02:57:38 -04:00
369e9636be update {fmt} library to version 9.0.0 2022-08-04 22:06:37 -04:00
7bce3a92e2 correct test for overload with/without optional format arguments 2022-08-04 22:00:13 -04:00
72036caf71 use make_format_args() instead of make_args_checked() (removed in v9) 2022-08-04 21:59:37 -04:00
b4df4bffae Merge pull request #3380 from stanmoore1/kk_small_changes
Small changes in KOKKOS package
2022-08-04 16:51:21 -04:00
a28ceb4d80 Merge pull request #3378 from lammps/doc-updates
Add missing portions of a couple doc pages
2022-08-04 15:43:48 -04:00
083a662a5c small rewrite 2022-08-04 13:06:30 -04:00
8d9e0ee9c8 HIP tuning 2022-08-04 13:01:24 -04:00
b393bcf6a9 Remove unused non-public header 2022-08-04 13:01:13 -04:00
a84c2ab18a fix off-by-one bugs, improve error messages 2022-08-04 12:27:26 -04:00
6c32058728 adapt all users of FixStore to use FixStoreGlobal or FixStorePeratom 2022-08-04 11:33:14 -04:00
184f55b99f fix cut/paste error 2022-08-04 08:53:43 -06:00
53f49a160f add missinng portions of a couple doc pages 2022-08-04 08:49:38 -06:00
63fc9fcc62 document how to update source code for the fix STORE split 2022-08-04 06:43:41 -04:00
774a3cb64e split fix STORE into fix STORE/GLOBAL and fix STORE/PERATOM 2022-08-04 06:43:15 -04:00
c44794730b debugging fixes 2022-08-03 17:43:04 -06:00
c3d563ca39 more enhancments 2022-08-03 13:32:11 -06:00
7a4f5344bd more functionality for fix ave/grid 2022-08-02 17:46:03 -06:00
02b8804457 add grid freq to fix ttm/grid 2022-08-01 10:03:04 -06:00
b1b778b45b first version of fix ave/grid 2022-08-01 10:02:12 -06:00
f7b19a3d47 Merge branch 'lammps:develop' into mliappy_unified 2022-08-01 01:12:14 -06:00
3e7ef39d64 simplify, formatting 2022-07-29 23:34:37 -04:00
1b59a83ff3 bond:react per-bond custom constraint docs 2022-07-29 17:24:07 -04:00
dae20a2f1f Merge branch 'lammps-develop2' into per-bond_custom_constraint
rebase
2022-07-29 16:40:39 -04:00
07ab4dd5da check that bond is actually in map 2022-07-29 16:37:50 -04:00
32406aab06 prevent multiple compute evaluations on a timestep 2022-07-29 16:37:50 -04:00
deb892d7cd actually evaluate bond/local compute value
(even when not printed on that timestep)
2022-07-29 16:37:50 -04:00
930d0d756b bond/react: per-bond custom constraint 2022-07-29 16:37:50 -04:00
dc378b8ffb non-'bond/react ' changes 2022-07-29 16:31:53 -04:00
41fb8acf9e tweak doc for new utils function 2022-07-29 10:59:26 -06:00
ec4c458c7e add Pair::extract_atom() method 2022-07-29 10:54:42 -06:00
3e81cfb217 refactoring 2022-07-29 10:13:23 -06:00
729191835a Merge branch 'develop' into distributed-grids 2022-07-28 17:24:32 -06:00
842b5b365e doc page clarifications 2022-07-28 17:12:31 -06:00
b8f4efcb6a pre-existing bug fix for delay option with dump computes for pe/virial 2022-07-28 16:53:39 -06:00
4de0944f8b streamlined string ops 2022-07-28 15:24:58 -06:00
a4f4efcea0 fix a couple typos and alphabetizing error 2022-07-28 13:31:58 -06:00
348feddcb6 new fix pair and dump_modify skip commands 2022-07-28 12:45:20 -06:00
f039c00442 add dump skip option 2022-07-27 17:13:46 -06:00
6ff91ec020 add more build info 2022-07-27 13:28:45 -06:00
5904fa954e new examples/QM/LATTE dir with examples 2022-07-27 13:17:18 -06:00
925196a24f virial adjustments for MDI stress 2022-07-27 09:38:23 -06:00
abeec99673 update pod documentation for lammps 2022-07-27 02:33:04 +07:00
10c8a41ad8 Merge branch 'develop' into mdi-tweak 2022-07-25 14:27:41 -06:00
dff206f297 more work on grid classes 2022-07-25 13:56:28 -06:00
822fae05a2 more edits 2022-07-22 17:47:46 -06:00
f370a9a58a less debug 2022-07-22 14:23:12 -06:00
fc596c03ec more docs, less debug 2022-07-22 14:22:34 -06:00
4a0c0661eb update pod 2022-07-22 11:09:41 +07:00
1a1426eb2e Fixed conflicts 2022-07-21 18:59:00 -06:00
6aa4ffddfc Merge branch 'pod' of https://github.com/cesmix-mit/lammps into pod 2022-07-22 06:46:04 +07:00
c583a17aa2 uodate POD 2022-07-22 06:45:59 +07:00
4a7daaa5d1 tweak to dump grid 2022-07-21 17:34:41 -06:00
22b6a49fba compute property/grid additions 2022-07-21 17:33:34 -06:00
1777f16d13 debug info 2022-07-21 17:03:13 -06:00
10eb07462e fix ttm changes 2022-07-21 15:09:46 -06:00
d819c890b6 dump grid and compute property/grid 2022-07-21 15:08:44 -06:00
b7a491089c Algorithm as input keyword 2022-07-21 11:23:13 +02:00
abb27ad1a5 remove debug line 2022-07-20 16:29:24 -06:00
10caba7fe0 more debugging for LATTE engine 2022-07-20 15:57:20 -06:00
465ac275db more in dump grid 2022-07-20 13:20:15 -06:00
d5113edc87 interface between dump grid and fixes 2022-07-20 10:53:34 -06:00
d6e8e044df change what is required/optional for mdi plugin command 2022-07-20 09:55:19 -06:00
7cf77a5c2d Merge branch 'lammps:develop' into mesocnt_stable 2022-07-20 14:31:40 +02:00
f69be2791b hooks from dump grid to fix 2022-07-19 14:02:05 -06:00
7dc478e201 remove unneeded info from dump custom header 2022-07-19 11:35:50 -06:00
5c81ba81d7 initial version of dump grid 2022-07-19 11:03:44 -06:00
68d5b3e3d9 grid2d class 2022-07-19 09:46:16 -06:00
5cb95cc032 grid3d file as well 2022-07-18 17:25:04 -06:00
e2352bc65e grid class name changes 2022-07-18 17:24:40 -06:00
a99d0aa28e added error messages for special_lj and comm vel 2022-07-18 11:39:02 +02:00
b5c079ff91 Merge remote-tracking branch 'upstream/develop' into develop 2022-07-15 16:40:56 -06:00
d4e8345129 Merge branch 'develop' into sticker-bond-test 2022-07-15 14:19:31 -06:00
a0f3994ffa added mesocnt bond type as wrapper for harmonic bond with automatic parametrisation 2022-07-15 21:24:46 +02:00
a5a6f32aff removed print statement in angle_mesocnt 2022-07-15 17:45:19 +02:00
20e39b57d8 moved buckling/harmonic toggle to angle_coeff and added restart file support for buckling bool 2022-07-15 17:44:21 +02:00
5871fcf692 added automatic angle parametrisation & buckling/harmonic toggle 2022-07-15 15:22:31 +02:00
d0ca31e8f1 removed print statements and added proper warning for interpolation range in phi 2022-07-15 09:37:54 +01:00
597e3b7729 use array output for fix electrode instead of fix_modify 2022-07-15 10:28:35 +02:00
7c31772582 checkpoint commit, potential seems to be stable 2022-07-15 09:22:34 +01:00
f966b53bd2 Merge branch 'lammps:develop' into mliappy_unified 2022-07-14 02:11:45 -06:00
c73770da09 skip zero-energy calculations and removed debug message in coeff 2022-07-13 06:55:32 +01:00
07c75021bb removed numerical differentiation + flip messages, fixed bug in self skip 2022-07-12 19:54:25 +01:00
601068a33f Merge branch 'mesocnt_stable' of https://github.com/phankl/lammps into HEAD 2022-07-12 11:40:41 +01:00
ce971678ba Merge branch 'lammps:develop' into mesocnt_stable 2022-07-12 11:37:14 +01:00
c5c565195d removed unused case in angle_mesocnt 2022-07-12 11:34:23 +01:00
6ecf738b08 self-chain interactions added with cutoff 2022-07-12 11:32:32 +01: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
803f6fe57d debugging changes 2022-07-07 12:03:17 -06:00
c1ae5d0ce1 Merge remote-tracking branch 'upstream/develop' into develop 2022-07-06 08:56:19 -06:00
59db526401 Update README 2022-07-02 17:45:53 -04:00
feff2ab4a8 Update README 2022-07-01 13:25:24 -04:00
eae8721b95 Update README 2022-07-01 13:23:02 -04:00
8aae91b916 Update README 2022-07-01 13:19:56 -04:00
d737acf677 Update pod examples 2022-07-01 13:13:22 -04:00
ff5267e7c2 update pod 2022-07-01 12:55:57 -04:00
9fbcce5277 update pod 2022-07-01 12:55:41 -04:00
90d4768d68 commit pod 2022-07-01 12:54:43 -04:00
97b39d8a36 update pod 2022-07-01 12:53:50 -04:00
3ae84a3b3f pod update 2022-07-01 12:49:28 -04:00
530e5d5c14 Remove NEWTON_OFF 2022-06-30 12:56:08 -06:00
efae876dfa Updated timestamp for local array 2022-06-30 11:27:56 -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
4153304218 more debugging output 2022-06-24 10:49:47 -06: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
f11f841103 allow for no file output from NWChem 2022-06-23 17:30:45 -06:00
496b1f7279 updates to fix wrapper on NWChem 2022-06-23 16:37:29 -06: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
114b19f620 make certain that the fix energy is properly reset to zero 2022-06-23 06:51:13 -04:00
53dd173549 Merge branch 'develop' into shake-with-minimize 2022-06-23 06:22:57 -04:00
474e6a03d0 WIP: configuring ML-PACE.cmake to work with pace/al 2022-06-23 10:43:08 +02:00
7df34eb85a modify API to NWChem 2022-06-21 14:48:28 -06: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
e66229dadb update docs 2022-06-17 06:19:57 -04:00
0ad45a0224 correctly produce eatom (=0) for MD runs 2022-06-17 05:53:34 -04:00
f05fcaf0d5 change energy tally during minimize 2022-06-17 05:44:43 -04:00
7656efe866 Merge branch 'shake-with-minimize' of github.com:akohlmey/lammps into shake-with-minimize 2022-06-17 05:17:16 -04:00
330ae13772 Merge branch 'develop' into shake-with-minimize 2022-06-17 05:03:01 -04:00
aadd6b9f27 Merge branch 'electrode' into safer_management 2022-06-17 14:12:18 +10: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
0bb04fb0b5 update pod 2022-06-10 14:13:37 -04:00
c4a7610366 update docs and include suggestions 2022-06-10 11:07:50 -04:00
1ee35bea61 fix shake stats (again) 2022-06-10 01:41:14 -04:00
322bf1ef47 compute energy due to restraint forces during minimization. output stats. 2022-06-09 23:44:46 -04:00
dd0bb0725d Merge branch 'develop' into shake-with-minimize 2022-06-09 15:31:39 -04:00
081aa2629f Minor changes 2022-06-09 00:50:03 -06:00
5273031e68 use array output for fix electrode instead of fix_modify 2022-06-08 13:35:47 +00: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
786ca53e84 added lots of debug messages 2022-06-05 13:29:33 +01:00
c3d57760fe fixed zero-size memory allocation for empty chainlist 2022-06-04 20:35:06 +01:00
515b4d196e fixed nan issue in segment-segment friction 2022-06-04 14:39:22 +01:00
539b92dd86 Merge branch 'lammps:develop' into mesocnt_stable 2022-06-04 08:56:21 +01:00
dba18c1c8d moved mode check to compute loop rather than neighbor list creation 2022-06-03 19:15:30 +01:00
ee1dfa4a85 Merge branch 'develop' into shake-with-minimize 2022-06-02 23:08:17 -04:00
79b850fc87 removed true statement to trigger segment-segment evaluation 2022-06-02 17:46:21 +01:00
1465b75f55 added weight function without gradients + weighted viscous friction for segment-segment interactions 2022-06-02 17:20:34 +01:00
8842a35c3a added smooth cutoff to friction force based on sumw 2022-06-02 16:39:24 +01:00
9bbd252cc0 fixed missing header files + variable declarations 2022-06-02 16:18:49 +01:00
dac00dde27 removed mesolj function, moved contents back to compute + changed pair_mesocnt_viscous to prepare for segment-segment interactions with friction 2022-06-02 16:10:08 +01:00
da1b599589 added some optimisations to prevent unnecessary force calculations 2022-06-02 15:45:00 +01:00
59eadfecc4 removed print statements 2022-06-01 17:38:03 +01:00
b89acb15a6 fixed segment orientation for exact segmeent-segment calculation 2022-06-01 16:51:56 +01:00
59dc63d003 Add typecasting for consts in tip4p GPU kernels 2022-06-01 01:29:18 +03:00
4b2509beed Merge branch 'develop' into tip4p_bug 2022-05-30 18:54:28 +03:00
9b73c66ec6 Reduce increased comm cutoff 2022-05-30 18:44:53 +03:00
3f87b88d57 check that bond is actually in map 2022-05-29 10:43:36 -04:00
d06774ac3b localise file opening and closing 2022-05-30 00:19:48 +10:00
392b2c86dc unique_ptr for accelerator interface 2022-05-29 23:16:21 +10:00
763b323f7c added exact segment-segment calculation, energy works, forces don't and no optimisation 2022-05-29 10:55:36 +01:00
f0f39ced6f prevent multiple compute evaluations on a timestep 2022-05-28 22:51:52 -04:00
7bbae300c8 actually evaluate bond/local compute value
(even when not printed on that timestep)
2022-05-28 22:02:13 -04:00
6b9b5daa0d bond/react: per-bond custom constraint 2022-05-28 15:50:27 -04:00
1b1cb5568d non-'bond/react ' changes 2022-05-28 14:48:47 -04:00
272afc953e output scalar, vector and array; updated docs and examples 2022-05-28 08:18:47 +10:00
e9051620a5 Cleanup 2022-05-28 00:39:07 +03:00
d8f8a3a36a Handle inconsistent J molecules in tip4p/gpu 2022-05-28 00:24:24 +03:00
57115f1769 reverted end identification to type comparison + added if statement for segment-segment mode 2022-05-27 17:35:50 +01:00
d37df9350c added buckled flag as custom atom property to angle_mesocnt, used by pair_mesocnt to determine if substitute chain heuristic can be used 2022-05-27 15:13:27 +01:00
30cba5c8d5 debug 2022-05-24 15:35:03 -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
d8f3be826a debug files 2022-05-19 17:29:33 -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
9876fe18dc more examples 2022-05-12 16:32:35 -06:00
c326bd1caf more testing 2022-05-12 16:30:25 -06:00
e8493a08b4 destroying selfid 2022-05-12 15:46:23 +01:00
ad25fd78e0 fixed forward comm bug for tube ends 2022-05-12 14:31:15 +01:00
efbfc31868 more debugging 2022-05-11 17:47:02 -06:00
7abbb19776 debugging for QMMM 2022-05-11 15:08:45 -06:00
f15c4852c9 added forward comm case for less than two 1-2 neighbors (for cnt ends) 2022-05-11 20:29:16 +01:00
2a7d6adb31 added self-interaction exclusion based on bond topology 2022-05-11 19:07:32 +01:00
dd5305bfd0 added self-interaction chain identification, now needs to be removed 2022-05-11 17:43:44 +01:00
2410a982c9 more examples files 2022-05-11 09:45:11 -06:00
b8684b18a0 capture NWChem output to a file 2022-05-10 15:15:32 -06:00
7bfa4f0ba6 Merge branch 'develop' into nwchem 2022-05-06 16:43:24 -06:00
a070fbef3d change setting in template file 2022-05-06 16:42:50 -06:00
96e7b4150c merge with current develop 2022-05-06 15:12:45 -06:00
72fb6593a6 test script mod 2022-05-05 10:49:04 -06:00
09f82d5fea removed old neighbor chain construction functions 2022-05-05 12:35:44 +01:00
055ed24653 removed print statements again 2022-05-05 11:43:37 +01:00
ee6e47388a used domain->closest_image to find proper local ids for bonded atoms, method works 2022-05-05 11:41:30 +01:00
296988e895 Merge branch 'develop' into shake-with-minimize 2022-05-05 02:12:49 -04:00
30f66c6438 added comm_forward of atom::special for ghost atoms 2022-05-04 19:00:45 +01:00
bc8a19619f Merge branch 'master' into mesocnt_stable 2022-05-04 13:48:32 +01:00
354db34682 added print statements for neighbor debug 2022-05-04 13:47:35 +01:00
12ba0b926a Merge branch 'lammps:master' into master 2022-05-04 13:43:55 +01:00
9ed8b49687 more precision in NWChem input data files 2022-05-03 17:11:41 -06:00
fbc644fb88 examples dir for fix nwchem 2022-05-03 13:35:45 -06:00
8aac52c8bd removed print statements 2022-05-03 12:31:22 +01:00
2222d21e33 use bond topology to construct connected chains, working + print statements version 2022-05-03 12:24:56 +01:00
7d8b6be614 fixed segfaults, but logic is flawed 2022-05-02 15:24:41 +01:00
0855d62bfd implement compute_array 2022-05-02 23:24:00 +10:00
7d17cc9e45 bond topology chain generation implemented, need to fix segfault 2022-05-02 13:05:09 +01:00
a7b6dc7b59 initial implementation of minimizer support in fix shake/rattle 2022-04-30 19:03:28 -04:00
95269980dd viscosity changed to two piecewise linear regimes + weighted chain approach for velocity 2022-04-29 15:28:07 +01:00
ac00cdb67f fixed typo in viscous loop increment 2022-04-20 16:09:38 +01: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
fd348f3a81 added bending buckling angle style cpp file 2022-04-12 15:28:32 +01:00
36272b3267 added buckling angle_style header file 2022-04-11 11:01:56 +01:00
add992d0dc added viscous damping addition to mesocnt pair_style 2022-04-11 11:01:15 +01:00
fe502c71d3 moved contents of compute to mesolj function for future modularity 2022-04-08 16:53:12 +01:00
8d04b0f9ac added torque correction from chain end 2022-04-08 10:40:08 +01:00
6f53663b63 inline spline functions + weight for performance 2022-04-08 10:17:30 +01:00
e1ed62f8bb added end types to pair_style arguments to find segment - chain end interactions 2022-04-08 10:12:38 +01:00
cc2b888f1d reduced quadrature points for end interactions to 10 2022-04-08 09:56:08 +01:00
eb69bd20b1 made rhomin a global macro 2022-04-08 09:54:22 +01:00
852c5f13ff more debugging 2022-03-30 15:35:57 -06:00
66c686f733 debug info 2022-03-30 11:56:07 -06:00
0b4959924a Merge branch 'lammps:master' into master 2022-03-30 10:22:53 +01:00
e13a70ad2f Merge branch 'develop' into type-labels 2022-03-23 01:08:35 -04:00
5e112a3935 Merge branch 'lammps:master' into master 2022-03-22 14:40:30 +00:00
e7618d0808 Merge branch 'lammps:master' into master 2022-03-09 10:43:44 +00:00
8ebd982021 make coords and box consistent for NWChem input 2022-03-04 11:05:28 -07:00
16fe7317af Merge branch 'lammps:master' into master 2022-03-04 10:38:10 +00:00
b60b9c6682 debug for linking to lib 2022-03-03 16:50:18 -07:00
5a033faade add PWDFT lib support 2022-03-03 13:43:48 -07:00
7150c9009c more debugging for QMMM 2022-03-02 16:44:53 -07:00
ac228479ce debugging 2022-03-02 14:35:44 -07:00
1ff393cd10 finishing AIMD and QMMM modes 2022-03-01 17:39:23 -07:00
fe1750d525 allow fix nwchem to do either AIMD or QMMM 2022-02-28 17:15:22 -07:00
a5a3ff6db5 fix typo 2022-02-24 11:11:27 -07:00
497e65f4ce add force_clear() as public Integrate func 2022-02-23 16:31:14 -07:00
2d8d6d17d7 merge current develop in 2022-02-23 16:23:32 -07:00
75eeb9b1a4 debugging with dummy test 2022-01-07 13:08:38 -07:00
d5a7c7a553 adjust interface to force_clear() methods 2022-01-07 10:14:27 -07:00
3ec96fb62d more features in fix nwchem 2022-01-05 18:35:12 -07:00
2c1c760619 correct forces after NWChem call 2022-01-04 17:10:59 -07:00
ec2de66b5f recent changes 2022-01-04 09:09:07 -07:00
c6bc68b801 remove Install.sh for now 2021-12-22 17:29:35 -07:00
3bdb047693 more work on wrapper 2021-12-22 17:28:21 -07:00
3fa9ba9033 fleshing out interface 2021-12-21 17:40:02 -07:00
182457c559 starting on interface to NWChem 2021-12-21 12:10:20 -07:00
e1e5d38480 create NWCHEM package dir 2021-12-20 18:02:59 -07:00
44522221ad mass command, type label error check 2021-12-08 16:28:17 -05:00
5945e578b8 direct type label support for mass command 2021-12-08 16:04:22 -05:00
cac7c59bb6 error messages fix 2021-12-07 23:36:05 -05:00
83a978d69b error messages 2021-12-07 23:32:14 -05:00
de635cc68d clarify when complete maps are needed 2021-12-07 13:25:59 -05:00
694878f645 Update false_positives.txt 2021-12-07 10:17:36 -05:00
5cb938f9f6 spelling 2021-12-07 10:09:44 -05:00
b4b73d090d OpenKIM teaser 2021-12-07 09:57:17 -05:00
ee9ea4f80f whitespace 2021-12-06 23:08:30 -05:00
14e09b7a75 docs update 2021-12-06 17:47:47 -05:00
2f851db756 Merge branch 'lammps:develop' into type-labels 2021-12-06 15:22:33 -05:00
c56fd18ce1 refactor labelmap to actual C++ map internally
Type labels
2021-12-06 15:20:10 -05:00
f8212fdb31 add randomization and debug prints 2021-12-06 13:11:51 -07:00
a3bc8a3067 Revert "update the write function"
This reverts commit d6edbf6bcd.
2021-12-02 05:52:22 -06:00
0894bc2682 remove duplicate 2021-11-29 07:56:10 -06:00
7559cc0536 Update the labelmap command
Update the labelmap command. If a type label already exists for a given
numeric type, it will be overwritten.
2021-11-29 05:36:20 -06:00
4589e30e0e remove duplicate 2021-11-28 20:13:27 -06:00
d6edbf6bcd update the write function 2021-11-28 19:35:33 -06:00
6d47160bef print error message in one line 2021-11-28 18:58:56 -06:00
76eb4f8057 Update the implementation & typelabels interface
Update the typelabels interface in the code and update the
LabelMap use based on class changes.
2021-11-28 18:55:55 -06:00
6a3d163c7c Update the typelabels interface 2021-11-28 18:55:26 -06:00
78c72ddd31 Update the LabelMap implementation
Update the LabelMap implementation based on unordered_map.
2021-11-28 18:53:28 -06:00
49cfd6c486 Update the LabelMap to use unordered_map
Update the LabelMap to use unordered_map and optimize search of
elements in average constant-time complexity. It also enforce
enforce unique labels.
2021-11-28 18:49:50 -06:00
78cc471335 update keywords according to docs 2021-11-20 16:51:57 -05:00
20f80dcb46 edits to doc pages 2021-11-19 15:35:36 -07:00
4c52ec300b Merge branch 'type-labels' of github.com:jrgissing/lammps into type-labels 2021-11-19 09:36:54 -07:00
c4330298e1 enforce unique labels when using labelmap command 2021-11-15 23:24:57 -05:00
5bc399c22b force unique labels in data file
note: not possible to create duplicate label in a second data file (if duplicate, assigns to existing label)
still need to enforce unique labels when using labelmap command
2021-11-07 01:01:41 -04:00
3fc47a9366 read_data: bond, etc. direct label support 2021-11-07 00:51:55 -04:00
062b880661 write_data: bond, etc. direct label support 2021-11-06 00:12:13 -04:00
a7a8581662 write_data: directly replace types w labels
allow direct replacement of numeric atom types in Atoms sections with type labels, using new keyword
2021-11-05 23:03:55 -04:00
9952526724 allow type labels for atom types in data file
allow strings for atom types in Atoms section!
bonds, etc. will be more elegant
2021-11-05 01:30:21 -04:00
049895b3e4 correct merge conflict 2021-11-05 01:11:08 -04:00
eab6bc5bf7 Merge branch 'lammps-develop' into type-labels
rebase
2021-11-04 21:21:07 -04:00
8d4956046b Merge branch 'develop' of https://github.com/lammps/lammps into lammps-develop 2021-11-04 21:20:29 -04:00
2436893215 Merge branch 'master' into type-labels 2021-11-01 08:33:21 -06:00
67ae6eb7b6 Merge branch 'lammps:master' into type-labels 2021-09-30 09:44:18 -04:00
f7bd07b3e6 whitespace 2021-09-18 17:03:03 -04:00
b5dab3fb8e Merge pull request #137 from yafshar/type_labels
Type labels: formatting improvements from Yaser
2021-09-18 16:06:23 -04:00
e1b76df161 replace if with switch statement which is more efficient here 2021-09-15 07:08:02 -05:00
c63d6ce790 minor update 2021-09-15 07:07:48 -05:00
6873001fec minor update, use string for comparison 2021-09-15 07:07:23 -05:00
085606454b correct the size of title underline to prevent warning 2021-09-08 13:28:24 -05:00
860421d084 add labelmap command to the command list 2021-09-03 15:03:48 -05:00
262b029d10 add a space after comments following LAMMPS convention 2021-09-03 15:01:53 -05:00
d4930df464 correct the return value type 2021-09-03 14:51:19 -05:00
257a7fe9ca passing strings by reference 2021-09-03 14:04:05 -05:00
aeec0f0e86 wrap the lines 2021-09-03 13:42:59 -05:00
f2e06777de remove processor rank (me) and use the communicator value (comm->me) 2021-09-03 13:38:14 -05:00
ee166cbe85 remove extra white space 2021-09-01 13:15:41 -05:00
cad3a5ca51 minor 2021-09-01 12:57:20 -05:00
83d86f7d69 remove extra white space 2021-09-01 12:55:48 -05:00
e1e13a9563 remove extra white space 2021-09-01 12:54:57 -05:00
f4634511fd minor 2021-09-01 12:34:36 -05:00
5be5a158de passing strings by reference 2021-09-01 12:33:47 -05:00
edfac22f39 memory leak 2021-08-28 15:56:14 -04:00
5d30b7cc75 correct reverted URL 2021-08-20 11:35:17 -04:00
be912db9cd Merge branch 'lammps-master2' into type-labels
rebase
2021-08-20 10:55:52 -04:00
2a06484511 Merge branch 'master' of https://github.com/lammps/lammps into lammps-master2 2021-08-20 10:53:04 -04:00
bf223a92b1 update URL 2021-06-07 23:13:55 -04:00
ffe7345499 Merge branch 'lammps-master' into type-labels
rebase
2021-06-07 22:49:57 -04:00
b124de3484 Merge branch 'master' of https://github.com/lammps/lammps into lammps-master 2021-06-07 22:48:51 -04:00
26fe17a379 doc file permissions 2021-04-27 15:51:25 -04:00
0beac58e21 some file permissions 2021-04-27 15:38:39 -04:00
0d1270112f rebase 2021-04-27 15:35:10 -04:00
58e460b938 Merge branch 'lammps-master' into type-labels
rebase
2021-04-27 14:47:31 -04:00
1e294111e7 Merge branch 'master' of https://github.com/lammps/lammps into lammps-master 2021-04-27 14:46:33 -04:00
e21c63192a relax a requirement
relax requirement that all labels for all interactions must be defined
2021-03-20 22:58:52 -04:00
ffa46ad951 preempt some read/write data file bugs
currently, require all type labels (for all interactions) to be defined, if any are, when reading data files
2021-01-31 20:44:19 -05:00
4f219a94aa nolabel for write_data
also bug fixes
2021-01-31 16:37:09 -05:00
b92adfaf6f pointer and style issues 2021-01-31 14:59:10 -05:00
2ee6e8f582 more docs
also, relax I <= J requirement for pair_coeff, as 'required' by type labels
2021-01-30 21:22:49 -05:00
e3a6afe1ab labelmap map/assign docs 2021-01-29 23:38:25 -05:00
f6fe554b47 basic support for auxiliary label maps
can be created with labelmap via mapID keyword
referenced like mymapID::C
where C is an atom type, for example
2021-01-29 22:38:33 -05:00
8e255f619b compiler issues 2021-01-29 19:12:26 -05:00
797555b5ce toward multiple maps 2021-01-28 23:44:02 -05:00
add904ea4e labelmap doc update, for reference 2021-01-28 10:53:44 -05:00
0b4256e67a valid numeric type strings can include * 2021-01-26 22:55:19 -05:00
5d2e3b3ecb direct support for coeff commands
pair_coeff, bond_coeff, angle_coeff, dihedral_coeff, improper_coeff
2021-01-25 20:08:25 -05:00
c7215b54be add labelmap function to variable command 2021-01-23 17:28:11 -05:00
67c2352015 actually assume type labels don't start with number 2021-01-22 21:47:48 -05:00
532242f5e1 begin docs 2021-01-19 23:55:32 -05:00
a0c4fac428 assume type labels begin with letter 2021-01-19 22:56:06 -05:00
739dc46fab type labels: restart support 2021-01-19 21:52:22 -05:00
e138cf2476 add labelmap command 2021-01-15 21:46:40 -05:00
93c33ac4f4 type label support for molecule files
replace types directly for molecule files
2021-01-12 17:52:55 -05:00
d7fb74f0be multi-data-file support for bond, angles, diheddral, impropers 2021-01-11 16:00:37 -05:00
03b697a6e0 labels: introduce framework for multiple data files
subsequent data files merge types with first

starting with support for selected atom types sections, will attach small example to PR
2021-01-08 23:22:19 -05:00
d01b19923d add write_data support, for testing
also refactor label map initialization, memory cleanup
2021-01-07 23:01:15 -05:00
73968fb4d8 prepare for multiple data files
not yet tested
2021-01-07 20:15:25 -05:00
48e1d202fe refactor to use read_data local lmap
also add errors to enforce order of read_data sections
2021-01-07 10:37:24 -05:00
fef2d178e4 use vector<string> for type label arrays 2020-12-17 14:21:42 -05:00
bc32dfb480 refactor into label_map class 2020-12-16 23:07:58 -05:00
40953643ec clean up atom.cpp type labels 2020-12-16 19:13:11 -05:00
767584df36 add find_type function
find integer type from type label
2020-12-16 17:39:07 -05:00
a0911b7563 read_data: add bond, etc. label sections 2020-12-16 17:00:05 -05:00
af1e96c6df generalize read typelabel function
will greatly reduce code # of lines
2020-12-16 12:43:17 -05:00
e4c7ec6933 read_data: add atomtypelabels section
type labels for atoms
2020-12-16 12:26:31 -05:00
305607d019 type labels: make space for labels
put labels in atom.cpp for easy access
2020-12-16 11:27:05 -05:00
ec25f9b7e7 pulled from lmp master 2020-05-27 09:35:27 +01:00
58941442de removed merge conflicts from stable, defaulted to stable branch 2020-01-13 13:11:17 +00:00
8bd17765fd added mesocnt in make 2019-06-05 11:30:21 +01:00
6f72db4535 checkpoint for Cottrell 2019-06-03 11:01:46 +01:00
671d6b90ff Fixed bug where segments wouldnt interact and system was blowing up, workin! 2019-05-30 19:31:38 +01:00
9f3923e784 Fixed numerous bugs, nealy working? 2019-05-29 18:03:42 +01:00
651b3d788a Fixed unit errors and most major bugs 2019-05-24 20:21:10 +01:00
474c92e59a Fixed nan issues in compute 2019-05-15 20:43:32 +01:00
ea43f7d451 compute runs without crash, produces nans 2019-05-15 19:52:32 +01:00
cd55697dfe splines should work now 2019-05-15 12:21:44 +01:00
19e54c23dd Added correct units for lengths and energies 2019-05-14 12:01:28 +01:00
c8897acf71 Fixed file reading issue 2019-05-13 21:24:44 +01:00
565be0baed Compute complete, compiles with LAMMPS, pre-debug 2019-05-13 17:24:36 +01:00
6538629584 Added forces, spline ranges for file reading 2019-05-11 13:08:17 +01:00
9aa17ec81f Added first part of forces 2019-05-10 21:50:39 +01:00
b22ae0263f Geometry parameter calculation implemented 2019-05-10 17:11:56 +01:00
c4777054df Code compiles, 1d spline + derivative implemented 2019-05-09 20:03:09 +01:00
0679ad8b00 Implemented file reading, no debug 2019-05-09 16:18:29 +01:00
6307 changed files with 705512 additions and 161405 deletions

69
.github/CODEOWNERS vendored
View File

@ -13,39 +13,45 @@ lib/kim/* @ellio167
lib/mesont/* @iafoss
# whole packages
src/COMPRESS/* @rbberger
src/GPU/* @ndtrung81
src/KOKKOS/* @stanmoore1
src/KIM/* @ellio167
src/LATTE/* @cnegre
src/MESSAGE/* @sjplimp
src/MLIAP/* @athomps
src/SNAP/* @athomps
src/SPIN/* @julient31
src/ADIOS/* @pnorbert
src/AMOEBA/* @sjplimp
src/BPM/* @jtclemm
src/BROWNIAN/* @samueljmcameron
src/CG-DNA/* @ohenrich
src/CG-SDK/* @akohlmey
src/CG-SPICA/* @yskmiyazaki
src/COLVARS/* @giacomofiorin
src/COMPRESS/* @rbberger
src/DIELECTRIC/* @ndtrung81
src/ELECTRODE/* @ludwig-ahrens
src/FEP/* @agiliopadua
src/ML-HDNNP/* @singraber
src/GPU/* @ndtrung81
src/GRANULAR/* @jtclemm @dsbolin
src/INTEL/* @wmbrownintel
src/KIM/* @ellio167
src/KOKKOS/* @stanmoore1
src/LATTE/* @cnegre
src/MANIFOLD/* @Pakketeretet2
src/MDI/* @taylor-a-barnes
src/MDI/* @taylor-a-barnes @sjplimp
src/MEAM/* @martok
src/MESONT/* @iafoss
src/ML-HDNNP/* @singraber
src/ML-IAP/* @athomps
src/ML-PACE/* @yury-lysogorskiy
src/ML-POD/* @exapde @rohskopf
src/MOFFF/* @hheenen
src/MOLFILE/* @akohlmey
src/NETCDF/* @pastewka
src/ML-PACE/* @yury-lysogorskiy
src/PLUMED/* @gtribello
src/PHONON/* @lingtikong
src/PTM/* @pmla
src/OPENMP/* @akohlmey
src/PHONON/* @lingtikong
src/PLUGIN/* @akohlmey
src/PLUMED/* @gtribello
src/PTM/* @pmla
src/QMMM/* @akohlmey
src/REAXFF/* @hasanmetin @stanmoore1
src/REACTION/* @jrgissing
src/REAXFF/* @hasanmetin @stanmoore1
src/SCAFACOS/* @rhalver
src/SNAP/* @athomps
src/SPIN/* @julient31
src/TALLY/* @akohlmey
src/UEF/* @danicholson
src/VTK/* @rbberger
@ -58,6 +64,8 @@ src/MANYBODY/pair_atm.* @sergeylishchuk
src/REPLICA/*_grem.* @dstelter92
src/EXTRA-COMPUTE/compute_stress_mop*.* @RomainVermorel
src/MISC/*_tracker.* @jtclemm
src/MC/fix_gcmc.* @athomps
src/MC/fix_sgcmc.* @athomps
# core LAMMPS classes
src/lammps.* @sjplimp
@ -119,26 +127,32 @@ src/dump_movie.* @akohlmey
src/exceptions.h @rbberger
src/fix_nh.* @athomps
src/info.* @akohlmey @rbberger
src/timer.* @akohlmey
src/min* @sjplimp @stanmoore1
src/platform.* @akohlmey
src/timer.* @akohlmey
src/utils.* @akohlmey @rbberger
src/verlet.* @sjplimp @stanmoore1
src/math_eigen_impl.h @jewettaij
# tools
tools/msi2lmp/* @akohlmey
tools/coding_standard/* @akohlmey @rbberger
tools/emacs/* @HaoZeke
tools/singularity/* @akohlmey @rbberger
tools/coding_standard/* @rbberger
tools/valgrind/* @akohlmey
tools/swig/* @akohlmey
tools/lammps-shell/* @akohlmey
tools/msi2lmp/* @akohlmey
tools/offline/* @rbberger
tools/singularity/* @akohlmey @rbberger
tools/swig/* @akohlmey
tools/valgrind/* @akohlmey
tools/vim/* @hammondkd
# tests
unittest/* @akohlmey @rbberger
unittest/* @akohlmey
# cmake
cmake/* @junghans @rbberger
cmake/Modules/LAMMPSInterfacePlugin.cmake @akohlmey
cmake/Modules/MPI4WIN.cmake @akohlmey
cmake/Modules/OpenCLLoader.cmake @akohlmey
cmake/Modules/Packages/COLVARS.cmake @junghans @rbberger @giacomofiorin
cmake/Modules/Packages/KIM.cmake @junghans @rbberger @ellio167
cmake/presets/*.cmake @akohlmey
@ -147,13 +161,12 @@ cmake/presets/*.cmake @akohlmey
python/* @rbberger
# fortran
fortran/* @akohlmey
fortran/* @akohlmey @hammondkd
# docs
doc/utils/*/* @rbberger
doc/Makefile @rbberger
doc/README @rbberger
doc/* @akohlmey
examples/plugin/* @akohlmey
examples/PACKAGES/pace/plugin/* @akohlmey
# for releases
src/version.h @sjplimp

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.

View File

@ -3,7 +3,11 @@ name: "Native Windows Compilation and Unit Tests"
on:
push:
branches: [develop]
branches:
- develop
pull_request:
branches:
- develop
workflow_dispatch:
@ -22,15 +26,19 @@ jobs:
- name: Select Python version
uses: actions/setup-python@v4
with:
python-version: '3.10'
python-version: '3.11'
- name: Building LAMMPS via CMake
shell: bash
run: |
python3 -m pip install numpy
python3 -m pip install pyyaml
nuget install MSMPIsdk
nuget install MSMPIDIST
cmake -C cmake/presets/windows.cmake \
-D PKG_PYTHON=on \
-D WITH_PNG=off \
-D WITH_JPEG=off \
-S cmake -B build \
-D BUILD_SHARED_LIBS=on \
-D LAMMPS_EXCEPTIONS=on \
@ -46,4 +54,4 @@ jobs:
- name: Run Unit Tests
working-directory: build
shell: bash
run: ctest -V -C Release
run: ctest -V -C Release -E FixTimestep:python_move_nve

103
.github/workflows/coverity.yml vendored Normal file
View File

@ -0,0 +1,103 @@
name: "Run Coverity Scan"
on:
schedule:
- cron: "0 0 * * FRI"
workflow_dispatch:
jobs:
analyze:
name: Analyze
if: ${{ github.repository == 'lammps/lammps' }}
runs-on: ubuntu-latest
container:
image: lammps/buildenv:ubuntu20.04
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Create Build and Download Folder
run: mkdir build download
- name: Cache Coverity
id: cache-coverity
uses: actions/cache@v3
with:
path: ./download/
key: ${{ runner.os }}-download-${{ hashFiles('**/coverity_tool.*') }}
- name: Download Coverity if necessary
if: steps.cache-coverity.outputs.cache-hit != 'true'
working-directory: download
run: |
wget -nv https://scan.coverity.com/download/linux64 --post-data "token=${{ secrets.COVERITY_TOKEN }}&project=LAMMPS" -O coverity_tool.tgz
wget -nv https://scan.coverity.com/download/linux64 --post-data "token=${{ secrets.COVERITY_TOKEN }}&project=LAMMPS&md5=1" -O coverity_tool.md5
echo " coverity_tool.tgz" >> coverity_tool.md5
md5sum -c coverity_tool.md5
- name: Setup Coverity
run: |
tar xzf download/coverity_tool.tgz
ln -s cov-analysis-linux64-* coverity
- name: Configure LAMMPS via CMake
shell: bash
working-directory: build
run: |
cmake \
-C ../cmake/presets/clang.cmake \
-C ../cmake/presets/most.cmake \
-C ../cmake/presets/kokkos-openmp.cmake \
-D CMAKE_BUILD_TYPE="RelWithDebug" \
-D CMAKE_TUNE_FLAGS="-Wall -Wextra -Wno-unused-result" \
-D BUILD_MPI=on \
-D BUILD_OMP=on \
-D BUILD_SHARED_LIBS=on \
-D LAMMPS_SIZES=SMALLBIG \
-D LAMMPS_EXCEPTIONS=off \
-D PKG_MESSAGE=on \
-D PKG_MPIIO=on \
-D PKG_ATC=on \
-D PKG_AWPMD=on \
-D PKG_BOCS=on \
-D PKG_EFF=on \
-D PKG_H5MD=on \
-D PKG_INTEL=on \
-D PKG_LATBOLTZ=on \
-D PKG_MANIFOLD=on \
-D PKG_MGPT=on \
-D PKG_ML-PACE=on \
-D PKG_ML-RANN=on \
-D PKG_MOLFILE=on \
-D PKG_NETCDF=on \
-D PKG_PTM=on \
-D PKG_QTB=on \
-D PKG_SMTBQ=on \
-D PKG_TALLY=on \
../cmake
- name: Run Coverity Scan
shell: bash
working-directory: build
run: |
export PATH=$GITHUB_WORKSPACE/coverity/bin:$PATH
cov-build --dir cov-int cmake --build . --parallel 2
- name: Create tarball with scan results
shell: bash
working-directory: build
run: tar czf lammps.tgz cov-int
- name: Upload scan result to Coverity
shell: bash
run: |
curl --form token=${{ secrets.COVERITY_TOKEN }} \
--form email=${{ secrets.COVERITY_EMAIL }} \
--form file=@build/lammps.tgz \
--form version=${{ github.sha }} \
--form description="LAMMPS automated build" \
https://scan.coverity.com/builds?project=LAMMPS

View File

@ -3,7 +3,11 @@ name: "Unittest for MacOS"
on:
push:
branches: [develop]
branches:
- develop
pull_request:
branches:
- develop
workflow_dispatch:
@ -39,6 +43,7 @@ jobs:
working-directory: build
run: |
ccache -z
python3 -m pip install numpy
python3 -m pip install pyyaml
cmake -C ../cmake/presets/clang.cmake \
-C ../cmake/presets/most.cmake \

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()
@ -135,13 +144,11 @@ set(CMAKE_CXX_EXTENSIONS OFF CACHE BOOL "Use compiler extensions")
# ugly hacks for MSVC which by default always reports an old C++ standard in the __cplusplus macro
# and prints lots of pointless warnings about "unsafe" functions
if(MSVC)
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
if((CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") OR (CMAKE_CXX_COMPILER_ID STREQUAL "Intel"))
add_compile_options(/Zc:__cplusplus)
add_compile_options(/wd4244)
add_compile_options(/wd4267)
if(LAMMPS_EXCEPTIONS)
add_compile_options(/EHsc)
endif()
add_compile_options(/EHsc)
endif()
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
endif()
@ -244,6 +251,7 @@ set(STANDARD_PACKAGES
KSPACE
LATBOLTZ
LATTE
LEPTON
MACHDYN
MANIFOLD
MANYBODY
@ -259,6 +267,7 @@ set(STANDARD_PACKAGES
ML-QUIP
ML-RANN
ML-SNAP
ML-POD
MOFFF
MOLECULE
MOLFILE
@ -309,6 +318,15 @@ if(PKG_ADIOS)
# script that defines the MPI::MPI_C target
enable_language(C)
find_package(ADIOS2 REQUIRED)
if(BUILD_MPI)
if(NOT ADIOS2_HAVE_MPI)
message(FATAL_ERROR "ADIOS2 must be built with MPI support when LAMMPS has MPI enabled")
endif()
else()
if(ADIOS2_HAVE_MPI)
message(FATAL_ERROR "ADIOS2 must be built without MPI support when LAMMPS has MPI disabled")
endif()
endif()
target_link_libraries(lammps PRIVATE adios2::adios2)
endif()
@ -378,12 +396,13 @@ pkg_depends(DIELECTRIC EXTRA-PAIR)
pkg_depends(CG-DNA MOLECULE)
pkg_depends(CG-DNA ASPHERE)
pkg_depends(ELECTRODE KSPACE)
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()
@ -392,8 +411,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()
@ -415,23 +434,19 @@ if(BUILD_OMP)
target_link_libraries(lmp PRIVATE OpenMP::OpenMP_CXX)
endif()
if(PKG_MSCG OR PKG_ATC OR PKG_AWPMD OR PKG_ML-QUIP OR PKG_LATTE OR PKG_ELECTRODE)
if(PKG_MSCG OR PKG_ATC OR PKG_AWPMD OR PKG_ML-QUIP OR PKG_ML-POD OR PKG_LATTE OR PKG_ELECTRODE)
enable_language(C)
if (NOT USE_INTERNAL_LINALG)
find_package(LAPACK)
find_package(BLAS)
endif()
if(NOT LAPACK_FOUND OR NOT BLAS_FOUND OR USE_INTERNAL_LINALG)
include(CheckGeneratorSupport)
if(NOT CMAKE_GENERATOR_SUPPORT_FORTRAN)
status(FATAL_ERROR "Cannot build internal linear algebra library as CMake build tool lacks Fortran support")
endif()
enable_language(Fortran)
file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/[^.]*.[fF])
add_library(linalg STATIC ${LAPACK_SOURCES})
file(GLOB LINALG_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/[^.]*.cpp)
add_library(linalg STATIC ${LINALG_SOURCES})
set_target_properties(linalg PROPERTIES OUTPUT_NAME lammps_linalg${LAMMPS_MACHINE})
set(BLAS_LIBRARIES "$<TARGET_FILE:linalg>")
set(LAPACK_LIBRARIES "$<TARGET_FILE:linalg>")
target_link_libraries(lammps PRIVATE linalg)
else()
list(APPEND LAPACK_LIBRARIES ${BLAS_LIBRARIES})
endif()
@ -499,7 +514,7 @@ else()
endif()
foreach(PKG_WITH_INCL KSPACE PYTHON ML-IAP VORONOI COLVARS ML-HDNNP MDI MOLFILE NETCDF
PLUMED QMMM ML-QUIP SCAFACOS MACHDYN VTK KIM LATTE MSCG COMPRESS ML-PACE)
PLUMED QMMM ML-QUIP SCAFACOS MACHDYN VTK KIM LATTE MSCG COMPRESS ML-PACE LEPTON)
if(PKG_${PKG_WITH_INCL})
include(Packages/${PKG_WITH_INCL})
endif()
@ -621,7 +636,7 @@ foreach(PKG_LIB POEMS ATC AWPMD H5MD MESONT)
endif()
endforeach()
if(PKG_ELECTRODE)
if(PKG_ELECTRODE OR PKG_ML-POD)
target_link_libraries(lammps PRIVATE ${LAPACK_LIBRARIES})
endif()
@ -650,7 +665,7 @@ endif()
# packages which selectively include variants based on enabled styles
# e.g. accelerator packages
######################################################################
foreach(PKG_WITH_INCL CORESHELL DPD-SMOOTH MISC PHONON QEQ OPENMP KOKKOS OPT INTEL GPU)
foreach(PKG_WITH_INCL CORESHELL DPD-SMOOTH MC MISC PHONON QEQ OPENMP KOKKOS OPT INTEL GPU)
if(PKG_${PKG_WITH_INCL})
include(Packages/${PKG_WITH_INCL})
endif()
@ -723,18 +738,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})
@ -743,6 +757,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)
@ -850,8 +872,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()
@ -877,6 +902,7 @@ feature_summary(DESCRIPTION "The following tools and libraries have been found a
message(STATUS "<<< Build configuration >>>
LAMMPS Version: ${PROJECT_VERSION}
Operating System: ${CMAKE_SYSTEM_NAME} ${CMAKE_LINUX_DISTRO} ${CMAKE_DISTRO_VERSION}
CMake Version: ${CMAKE_VERSION}
Build type: ${LAMMPS_BUILD_TYPE}
Install path: ${CMAKE_INSTALL_PREFIX}
Generator: ${CMAKE_GENERATOR} using ${CMAKE_MAKE_PROGRAM}")
@ -962,9 +988,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

@ -72,7 +72,7 @@
"configurationType": "Debug",
"buildRoot": "${workspaceRoot}\\build\\${name}",
"installRoot": "${workspaceRoot}\\install\\${name}",
"cmakeCommandArgs": "-C ${workspaceRoot}\\cmake\\presets\\windows.cmake -DCMAKE_C_COMPILER=clang-cl.exe -DCMAKE_CXX_COMPILER=clang-cl.exe",
"cmakeCommandArgs": "-C ${workspaceRoot}\\cmake\\presets\\windows.cmake -DCMAKE_C_COMPILER=clang-cl.exe -DCMAKE_CXX_COMPILER=clang-cl.exe -DBUILD_MPI=off",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "clang_cl_x64" ],
@ -105,7 +105,7 @@
"configurationType": "Release",
"buildRoot": "${workspaceRoot}\\build\\${name}",
"installRoot": "${workspaceRoot}\\install\\${name}",
"cmakeCommandArgs": "-C ${workspaceRoot}\\cmake\\presets\\windows.cmake -DCMAKE_C_COMPILER=clang-cl.exe -DCMAKE_CXX_COMPILER=clang-cl.exe",
"cmakeCommandArgs": "-C ${workspaceRoot}\\cmake\\presets\\windows.cmake -DCMAKE_C_COMPILER=clang-cl.exe -DCMAKE_CXX_COMPILER=clang-cl.exe -DBUILD_MPI=off",
"buildCommandArgs": "",
"ctestCommandArgs": "-V",
"inheritEnvironments": [ "clang_cl_x64" ],
@ -305,4 +305,4 @@
]
}
]
}
}

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

@ -1,19 +0,0 @@
find_path(ZMQ_INCLUDE_DIR zmq.h)
find_library(ZMQ_LIBRARY NAMES zmq)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(ZMQ DEFAULT_MSG ZMQ_LIBRARY ZMQ_INCLUDE_DIR)
# Copy the results to the output variables and target.
if(ZMQ_FOUND)
set(ZMQ_LIBRARIES ${ZMQ_LIBRARY})
set(ZMQ_INCLUDE_DIRS ${ZMQ_INCLUDE_DIR})
if(NOT TARGET ZMQ::ZMQ)
add_library(ZMQ::ZMQ UNKNOWN IMPORTED)
set_target_properties(ZMQ::ZMQ PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${ZMQ_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${ZMQ_INCLUDE_DIR}")
endif()
endif()

View File

@ -112,45 +112,76 @@ if(BUILD_MPI)
set(MPI_CXX_SKIP_MPICXX TRUE)
# We use a non-standard procedure to cross-compile with MPI on Windows
if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND CMAKE_CROSSCOMPILING)
# Download and configure custom MPICH files for Windows
message(STATUS "Downloading and configuring MPICH-1.4.1 for Windows")
set(MPICH2_WIN64_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/mpich2-win64-devel.tar.gz" CACHE STRING "URL for MPICH2 (win64) tarball")
set(MPICH2_WIN32_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/mpich2-win32-devel.tar.gz" CACHE STRING "URL for MPICH2 (win32) tarball")
set(MPICH2_WIN64_DEVEL_MD5 "4939fdb59d13182fd5dd65211e469f14" CACHE STRING "MD5 checksum of MPICH2 (win64) tarball")
set(MPICH2_WIN32_DEVEL_MD5 "a61d153500dce44e21b755ee7257e031" CACHE STRING "MD5 checksum of MPICH2 (win32) tarball")
mark_as_advanced(MPICH2_WIN64_DEVEL_URL)
mark_as_advanced(MPICH2_WIN32_DEVEL_URL)
mark_as_advanced(MPICH2_WIN64_DEVEL_MD5)
mark_as_advanced(MPICH2_WIN32_DEVEL_MD5)
# Download and configure MinGW compatible MPICH development files for Windows
option(USE_MSMPI "Use Microsoft's MS-MPI SDK instead of MPICH2-1.4.1" OFF)
if(USE_MSMPI)
message(STATUS "Downloading and configuring MS-MPI 10.1 for Windows cross-compilation")
set(MPICH2_WIN64_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/msmpi-win64-devel.tar.gz" CACHE STRING "URL for MS-MPI (win64) tarball")
set(MPICH2_WIN64_DEVEL_MD5 "86314daf1bffb809f1fcbefb8a547490" CACHE STRING "MD5 checksum of MS-MPI (win64) tarball")
mark_as_advanced(MPICH2_WIN64_DEVEL_URL)
mark_as_advanced(MPICH2_WIN64_DEVEL_MD5)
include(ExternalProject)
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
ExternalProject_Add(mpi4win_build
URL ${MPICH2_WIN64_DEVEL_URL}
URL_MD5 ${MPICH2_WIN64_DEVEL_MD5}
CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ""
BUILD_BYPRODUCTS <SOURCE_DIR>/lib/libmpi.a)
include(ExternalProject)
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
ExternalProject_Add(mpi4win_build
URL ${MPICH2_WIN64_DEVEL_URL}
URL_MD5 ${MPICH2_WIN64_DEVEL_MD5}
CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ""
BUILD_BYPRODUCTS <SOURCE_DIR>/lib/libmsmpi.a)
else()
message(FATAL_ERROR "Only x86 64-bit builds are supported with MS-MPI")
endif()
ExternalProject_get_property(mpi4win_build SOURCE_DIR)
file(MAKE_DIRECTORY "${SOURCE_DIR}/include")
add_library(MPI::MPI_CXX UNKNOWN IMPORTED)
set_target_properties(MPI::MPI_CXX PROPERTIES
IMPORTED_LOCATION "${SOURCE_DIR}/lib/libmsmpi.a"
INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}/include"
INTERFACE_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX")
add_dependencies(MPI::MPI_CXX mpi4win_build)
# set variables for status reporting at the end of CMake run
set(MPI_CXX_INCLUDE_PATH "${SOURCE_DIR}/include")
set(MPI_CXX_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX")
set(MPI_CXX_LIBRARIES "${SOURCE_DIR}/lib/libmsmpi.a")
else()
ExternalProject_Add(mpi4win_build
URL ${MPICH2_WIN32_DEVEL_URL}
URL_MD5 ${MPICH2_WIN32_DEVEL_MD5}
CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ""
BUILD_BYPRODUCTS <SOURCE_DIR>/lib/libmpi.a)
# Download and configure custom MPICH files for Windows
message(STATUS "Downloading and configuring MPICH-1.4.1 for Windows")
set(MPICH2_WIN64_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/mpich2-win64-devel.tar.gz" CACHE STRING "URL for MPICH2 (win64) tarball")
set(MPICH2_WIN64_DEVEL_MD5 "4939fdb59d13182fd5dd65211e469f14" CACHE STRING "MD5 checksum of MPICH2 (win64) tarball")
mark_as_advanced(MPICH2_WIN64_DEVEL_URL)
mark_as_advanced(MPICH2_WIN64_DEVEL_MD5)
include(ExternalProject)
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
ExternalProject_Add(mpi4win_build
URL ${MPICH2_WIN64_DEVEL_URL}
URL_MD5 ${MPICH2_WIN64_DEVEL_MD5}
CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ""
BUILD_BYPRODUCTS <SOURCE_DIR>/lib/libmpi.a)
else()
ExternalProject_Add(mpi4win_build
URL ${MPICH2_WIN32_DEVEL_URL}
URL_MD5 ${MPICH2_WIN32_DEVEL_MD5}
CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ""
BUILD_BYPRODUCTS <SOURCE_DIR>/lib/libmpi.a)
endif()
ExternalProject_get_property(mpi4win_build SOURCE_DIR)
file(MAKE_DIRECTORY "${SOURCE_DIR}/include")
add_library(MPI::MPI_CXX UNKNOWN IMPORTED)
set_target_properties(MPI::MPI_CXX PROPERTIES
IMPORTED_LOCATION "${SOURCE_DIR}/lib/libmpi.a"
INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}/include"
INTERFACE_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX")
add_dependencies(MPI::MPI_CXX mpi4win_build)
# set variables for status reporting at the end of CMake run
set(MPI_CXX_INCLUDE_PATH "${SOURCE_DIR}/include")
set(MPI_CXX_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX")
set(MPI_CXX_LIBRARIES "${SOURCE_DIR}/lib/libmpi.a")
endif()
ExternalProject_get_property(mpi4win_build SOURCE_DIR)
file(MAKE_DIRECTORY "${SOURCE_DIR}/include")
add_library(MPI::MPI_CXX UNKNOWN IMPORTED)
set_target_properties(MPI::MPI_CXX PROPERTIES
IMPORTED_LOCATION "${SOURCE_DIR}/lib/libmpi.a"
INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}/include"
INTERFACE_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX")
add_dependencies(MPI::MPI_CXX mpi4win_build)
# set variables for status reporting at the end of CMake run
set(MPI_CXX_INCLUDE_PATH "${SOURCE_DIR}/include")
set(MPI_CXX_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX")
set(MPI_CXX_LIBRARIES "${SOURCE_DIR}/lib/libmpi.a")
else()
find_package(MPI REQUIRED)
option(LAMMPS_LONGLONG_TO_LONG "Workaround if your system or MPI version does not recognize 'long long' data types" OFF)

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})
@ -85,7 +100,7 @@ endfunction()
macro(pkg_depends PKG1 PKG2)
if(PKG_${PKG1} AND NOT (PKG_${PKG2} OR BUILD_${PKG2}))
message(FATAL_ERROR "The ${PKG1} package needs LAMMPS to be build with the ${PKG2} package")
message(FATAL_ERROR "The ${PKG1} package needs LAMMPS to be built with the ${PKG2} package")
endif()
endmacro()
@ -110,14 +125,16 @@ function(FetchPotentials pkgfolder potfolder)
math(EXPR plusone "${blank}+1")
string(SUBSTRING ${line} 0 ${blank} pot)
string(SUBSTRING ${line} ${plusone} -1 sum)
if(EXISTS ${LAMMPS_POTENTIALS_DIR}/${pot})
if(EXISTS "${LAMMPS_POTENTIALS_DIR}/${pot}")
file(MD5 "${LAMMPS_POTENTIALS_DIR}/${pot}" oldsum)
endif()
if(NOT sum STREQUAL oldsum)
message(STATUS "Checking external potential ${pot} from ${LAMMPS_POTENTIALS_URL}")
file(DOWNLOAD "${LAMMPS_POTENTIALS_URL}/${pot}.${sum}" "${CMAKE_BINARY_DIR}/${pot}"
message(STATUS "Downloading external potential ${pot} from ${LAMMPS_POTENTIALS_URL}")
string(MD5 TMP_EXT "${CMAKE_BINARY_DIR}")
file(DOWNLOAD "${LAMMPS_POTENTIALS_URL}/${pot}.${sum}" "${CMAKE_BINARY_DIR}/${pot}.${TMP_EXT}"
EXPECTED_HASH MD5=${sum} SHOW_PROGRESS)
file(COPY "${CMAKE_BINARY_DIR}/${pot}" DESTINATION ${LAMMPS_POTENTIALS_DIR})
file(COPY "${CMAKE_BINARY_DIR}/${pot}.${TMP_EXT}" DESTINATION "${LAMMPS_POTENTIALS_DIR}")
file(RENAME "${LAMMPS_POTENTIALS_DIR}/${pot}.${TMP_EXT}" "${LAMMPS_POTENTIALS_DIR}/${pot}")
endif()
endforeach()
endif()

View File

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

View File

@ -2,19 +2,14 @@ set(COLVARS_SOURCE_DIR ${LAMMPS_LIB_SOURCE_DIR}/colvars)
file(GLOB COLVARS_SOURCES ${COLVARS_SOURCE_DIR}/[^.]*.cpp)
option(COLVARS_DEBUG "Debugging messages for Colvars (quite verbose)" OFF)
option(COLVARS_DEBUG "Enable debugging messages for Colvars (quite verbose)" OFF)
# Build Lepton by default
option(COLVARS_LEPTON "Build and link the Lepton library" ON)
option(COLVARS_LEPTON "Use the Lepton library for custom expressions" ON)
if(COLVARS_LEPTON)
set(LEPTON_DIR ${LAMMPS_LIB_SOURCE_DIR}/colvars/lepton)
file(GLOB LEPTON_SOURCES ${LEPTON_DIR}/src/[^.]*.cpp)
add_library(lepton STATIC ${LEPTON_SOURCES})
# Change the define below to LEPTON_BUILDING_SHARED_LIBRARY when linking Lepton as a DLL with MSVC
target_compile_definitions(lepton PRIVATE -DLEPTON_BUILDING_STATIC_LIBRARY)
set_target_properties(lepton PROPERTIES OUTPUT_NAME lammps_lepton${LAMMPS_MACHINE})
target_include_directories(lepton PRIVATE ${LEPTON_DIR}/include)
if(NOT LEPTON_SOURCE_DIR)
include(Packages/LEPTON)
endif()
endif()
add_library(colvars STATIC ${COLVARS_SOURCES})
@ -30,14 +25,11 @@ target_include_directories(colvars PRIVATE ${LAMMPS_SOURCE_DIR})
target_link_libraries(lammps PRIVATE colvars)
if(COLVARS_DEBUG)
# Need to export the macro publicly to also affect the proxy
# Need to export the macro publicly to be valid in interface code
target_compile_definitions(colvars PUBLIC -DCOLVARS_DEBUG)
endif()
if(COLVARS_LEPTON)
target_link_libraries(lammps PRIVATE lepton)
target_compile_definitions(colvars PRIVATE -DLEPTON)
# Disable the line below when linking Lepton as a DLL with MSVC
target_compile_definitions(colvars PRIVATE -DLEPTON_USE_STATIC_LIBRARIES)
target_include_directories(colvars PUBLIC ${LEPTON_DIR}/include)
target_link_libraries(colvars PRIVATE lepton)
endif()

View File

@ -82,6 +82,7 @@ if(GPU_API STREQUAL "CUDA")
# apply the following to build "fat" CUDA binaries only for known CUDA toolkits since version 8.0
# only the Kepler achitecture and beyond is supported
# comparison chart according to: https://en.wikipedia.org/wiki/CUDA#GPUs_supported
if(CUDA_VERSION VERSION_LESS 8.0)
message(FATAL_ERROR "CUDA Toolkit version 8.0 or later is required")
elseif(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
@ -120,14 +121,14 @@ if(GPU_API STREQUAL "CUDA")
if(CUDA_VERSION VERSION_GREATER_EQUAL "11.1")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_86,code=[sm_86,compute_86]")
endif()
# Hopper (GPU Arch 9.0) is supported by CUDA 12.0? and later
# Lovelace (GPU Arch 8.9) is supported by CUDA 11.8 and later
if(CUDA_VERSION VERSION_GREATER_EQUAL "11.8")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_90,code=[sm_90,compute_90]")
endif()
# Hopper (GPU Arch 9.0) is supported by CUDA 12.0 and later
if(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_90,code=[sm_90,compute_90]")
endif()
# # Lovelace (GPU Arch 9.x) is supported by CUDA 12.0? and later
#if(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
# string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_9x,code=[sm_9x,compute_9x]")
#endif()
endif()
cuda_compile_fatbin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS ${CUDA_REQUEST_PIC}
@ -276,6 +277,7 @@ elseif(GPU_API STREQUAL "HIP")
else()
# build arch/gencode commands for nvcc based on CUDA toolkit version and use choice
# --arch translates directly instead of JIT, so this should be for the preferred or most common architecture
# comparison chart according to: https://en.wikipedia.org/wiki/CUDA#GPUs_supported
set(HIP_CUDA_GENCODE "-arch=${HIP_ARCH}")
# Kepler (GPU Arch 3.0) is supported by CUDA 5 to CUDA 10.2
if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "11.0"))
@ -305,9 +307,17 @@ elseif(GPU_API STREQUAL "HIP")
if(CUDA_VERSION VERSION_GREATER_EQUAL "11.0")
string(APPEND HIP_CUDA_GENCODE " -gencode arch=compute_80,code=[sm_80,compute_80]")
endif()
# Hopper (GPU Arch 9.0) is supported by CUDA 12.0? and later
# Ampere (GPU Arch 8.6) is supported by CUDA 11.1 and later
if(CUDA_VERSION VERSION_GREATER_EQUAL "11.1")
string(APPEND HIP_CUDA_GENCODE " -gencode arch=compute_86,code=[sm_86,compute_86]")
endif()
# Lovelace (GPU Arch 8.9) is supported by CUDA 11.8 and later
if(CUDA_VERSION VERSION_GREATER_EQUAL "11.8")
string(APPEND HIP_CUDA_GENCODE " -gencode arch=compute_90,code=[sm_90,compute_90]")
endif()
# Hopper (GPU Arch 9.0) is supported by CUDA 12.0 and later
if(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_90,code=[sm_90,compute_90]")
string(APPEND HIP_CUDA_GENCODE " -gencode arch=compute_90,code=[sm_90,compute_90]")
endif()
endif()
endif()

View File

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

View File

@ -3,6 +3,7 @@
if(CMAKE_CXX_STANDARD LESS 14)
message(FATAL_ERROR "The KOKKOS package requires the C++ standard to be set to at least C++14")
endif()
########################################################################
# consistency checks and Kokkos options/settings required by LAMMPS
if(Kokkos_ENABLE_CUDA)
@ -15,8 +16,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 +49,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 +74,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()
@ -88,7 +90,6 @@ else()
endif()
add_subdirectory(${LAMMPS_LIB_KOKKOS_SRC_DIR} ${LAMMPS_LIB_KOKKOS_BIN_DIR})
set(Kokkos_INCLUDE_DIRS ${LAMMPS_LIB_KOKKOS_SRC_DIR}/core/src
${LAMMPS_LIB_KOKKOS_SRC_DIR}/containers/src
${LAMMPS_LIB_KOKKOS_SRC_DIR}/algorithms/src
@ -123,7 +124,7 @@ set(KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/kokkos.cpp
if(PKG_KSPACE)
list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/fft3d_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/gridcomm_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/grid3d_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/remap_kokkos.cpp)
if(Kokkos_ENABLE_CUDA)
if(NOT (FFT STREQUAL "KISS"))
@ -138,6 +139,28 @@ 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_model_python_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/mliap_so3_kokkos.cpp)
# Add KOKKOS version of ML-IAP Python coupling if non-KOKKOS version is included
if(MLIAP_ENABLE_PYTHON AND Cythonize_EXECUTABLE)
file(GLOB MLIAP_KOKKOS_CYTHON_SRC ${LAMMPS_SOURCE_DIR}/KOKKOS/*.pyx)
foreach(MLIAP_CYTHON_FILE ${MLIAP_KOKKOS_CYTHON_SRC})
get_filename_component(MLIAP_CYTHON_BASE ${MLIAP_CYTHON_FILE} NAME_WE)
add_custom_command(OUTPUT ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.h
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...")
list(APPEND KOKKOS_PKG_SOURCES ${MLIAP_BINARY_DIR}/${MLIAP_CYTHON_BASE}.cpp)
endforeach()
endif()
endif()
if(PKG_PHONON)
list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/dynamical_matrix_kokkos.cpp)

View File

@ -0,0 +1,35 @@
# avoid including this file twice
if(LEPTON_SOURCE_DIR)
return()
endif()
set(LEPTON_SOURCE_DIR ${LAMMPS_LIB_SOURCE_DIR}/lepton)
file(GLOB LEPTON_SOURCES ${LEPTON_SOURCE_DIR}/src/[^.]*.cpp)
if((CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "amd64") OR
(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "AMD64") OR
(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64"))
option(LEPTON_ENABLE_JIT "Enable Just-In-Time compiler for Lepton" ON)
else()
option(LEPTON_ENABLE_JIT "Enable Just-In-Time compiler for Lepton" OFF)
endif()
if(LEPTON_ENABLE_JIT)
file(GLOB ASMJIT_SOURCES ${LEPTON_SOURCE_DIR}/asmjit/*/[^.]*.cpp)
endif()
add_library(lepton STATIC ${LEPTON_SOURCES} ${ASMJIT_SOURCES})
set_target_properties(lepton PROPERTIES OUTPUT_NAME lammps_lepton${LAMMPS_MACHINE})
target_compile_definitions(lepton PUBLIC LEPTON_BUILDING_STATIC_LIBRARY=1)
target_include_directories(lepton PUBLIC ${LEPTON_SOURCE_DIR}/include)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
find_library(LIB_RT rt QUIET)
target_link_libraries(lepton PUBLIC ${LIB_RT})
endif()
if(LEPTON_ENABLE_JIT)
target_compile_definitions(lepton PUBLIC "LEPTON_USE_JIT=1;ASMJIT_BUILD_X86=1;ASMJIT_STATIC=1;ASMJIT_BUILD_RELEASE=1")
target_include_directories(lepton PUBLIC ${LEPTON_SOURCE_DIR})
endif()
target_link_libraries(lammps PRIVATE lepton)

View File

@ -0,0 +1,9 @@
# fix sgcmc may only be installed if also the EAM pair style from MANYBODY is installed
if(NOT PKG_MANYBODY)
get_property(LAMMPS_FIX_HEADERS GLOBAL PROPERTY FIX)
list(REMOVE_ITEM LAMMPS_FIX_HEADERS ${LAMMPS_SOURCE_DIR}/MC/fix_sgcmc.h)
set_property(GLOBAL PROPERTY FIX "${LAMMPS_FIX_HEADERS}")
get_target_property(LAMMPS_SOURCES lammps SOURCES)
list(REMOVE_ITEM LAMMPS_SOURCES ${LAMMPS_SOURCE_DIR}/MC/fix_sgcmc.cpp)
set_property(TARGET lammps PROPERTY SOURCES "${LAMMPS_SOURCES}")
endif()

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.1.tar.gz" CACHE STRING "URL for MDI tarball")
set(MDI_MD5 "f9505fccd4c79301a619f6452dad4ad9" 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.2023.01.3.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 "f418d32b60e531063ac4285bf702b468" 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

@ -44,6 +44,7 @@ set(ALL_PACKAGES
KSPACE
LATBOLTZ
LATTE
LEPTON
MACHDYN
MANIFOLD
MANYBODY
@ -56,6 +57,7 @@ set(ALL_PACKAGES
ML-HDNNP
ML-IAP
ML-PACE
ML-POD
ML-QUIP
ML-RANN
ML-SNAP

View File

@ -46,6 +46,7 @@ set(ALL_PACKAGES
KSPACE
LATBOLTZ
LATTE
LEPTON
MACHDYN
MANIFOLD
MANYBODY
@ -58,6 +59,7 @@ set(ALL_PACKAGES
ML-HDNNP
ML-IAP
ML-PACE
ML-POD
ML-QUIP
ML-RANN
ML-SNAP

View File

@ -3,6 +3,13 @@
# prefer flang over gfortran, if available
find_program(CLANG_FORTRAN NAMES flang gfortran f95)
set(ENV{OMPI_FC} ${CLANG_FORTRAN})
get_filename_component(_tmp_fc ${CLANG_FORTRAN} NAME)
if (_tmp_fc STREQUAL "flang")
set(FC_STD_VERSION "-std=f2018")
set(BUILD_MPI OFF)
else()
set(FC_STD_VERSION "-std=f2003")
endif()
set(CMAKE_CXX_COMPILER "clang++" CACHE STRING "" FORCE)
set(CMAKE_C_COMPILER "clang" CACHE STRING "" FORCE)
@ -10,9 +17,9 @@ set(CMAKE_Fortran_COMPILER ${CLANG_FORTRAN} CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_DEBUG "-Wall -Wextra -g -std=f2003" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG -std=f2003" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG -std=f2003" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_DEBUG "-Wall -Wextra -g ${FC_STD_VERSION}" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG ${FC_STD_VERSION}" CACHE STRING "" FORCE)
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG ${FC_STD_VERSION}" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_DEBUG "-Wall -Wextra -g" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "" FORCE)
@ -21,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

@ -36,6 +36,7 @@ set(WIN_PACKAGES
INTERLAYER
KSPACE
LATTE
LEPTON
MACHDYN
MANIFOLD
MANYBODY
@ -47,6 +48,7 @@ set(WIN_PACKAGES
MISC
ML-HDNNP
ML-IAP
ML-POD
ML-RANN
ML-SNAP
MOFFF

View File

@ -35,12 +35,14 @@ set(ALL_PACKAGES
GRANULAR
INTERLAYER
KSPACE
LEPTON
MACHDYN
MANYBODY
MC
MEAM
MISC
ML-IAP
ML-POD
ML-SNAP
MOFFF
MOLECULE

View File

@ -13,6 +13,7 @@ set(PACKAGES_WITH_LIB
KOKKOS
LATBOLTZ
LATTE
LEPTON
MACHDYN
MDI
MESONT

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

@ -1,6 +1,7 @@
set(WIN_PACKAGES
AMOEBA
ASPHERE
AWPMD
BOCS
BODY
BPM
@ -20,6 +21,7 @@ set(WIN_PACKAGES
DPD-SMOOTH
DRUDE
EFF
ELECTRODE
EXTRA-COMPUTE
EXTRA-DUMP
EXTRA-FIX
@ -29,12 +31,14 @@ set(WIN_PACKAGES
GRANULAR
INTERLAYER
KSPACE
LEPTON
MANIFOLD
MANYBODY
MC
MEAM
MISC
ML-IAP
ML-POD
ML-SNAP
MOFFF
MOLECULE

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 role_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;\
@ -96,6 +96,7 @@ html: xmlgen $(VENV) $(SPHINXCONFIG)/conf.py $(ANCHORCHECK) $(MATHJAX)
rst_anchor_check src/*.rst ;\
python $(BUILDDIR)/utils/check-packages.py -s ../src -d src ;\
env LC_ALL=C grep -n '[^ -~]' $(RSTDIR)/*.rst ;\
env LC_ALL=C grep -n ' :[a-z]\+`' $(RSTDIR)/*.rst ;\
python $(BUILDDIR)/utils/check-styles.py -s ../src -d src ;\
echo "############################################" ;\
deactivate ;\
@ -114,7 +115,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 +147,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,12 +168,15 @@ 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 ;\
python utils/check-packages.py -s ../src -d src ;\
env LC_ALL=C grep -n '[^ -~]' $(RSTDIR)/*.rst ;\
env LC_ALL=C grep -n ' :[a-z]\+`' $(RSTDIR)/*.rst ;\
python utils/check-styles.py -s ../src -d src ;\
echo "############################################" ;\
deactivate ;\
@ -214,6 +222,9 @@ package_check : $(VENV)
char_check :
@( env LC_ALL=C grep -n '[^ -~]' $(RSTDIR)/*.rst && exit 1 || : )
role_check :
@( env LC_ALL=C grep -n ' :[a-z]\+`' $(RSTDIR)/*.rst && exit 1 || : )
xmlgen : doxygen/xml/index.xml
doxygen/Doxyfile: doxygen/Doxyfile.in

View File

@ -40,8 +40,9 @@ environment and local folders.
Installing prerequisites for the documentation build
To run the HTML documention build toolchain, python 3.x, doxygen, git,
and virtualenv have to be installed. Also internet access is initially
required to download external files and tools.
and the venv python module have to be installed if not already available.
Also internet access is initially required to download external files
and tools.
Building the PDF format manual requires in addition a compatible LaTeX
installation with support for PDFLaTeX and several add-on LaTeX packages

View File

@ -4,45 +4,44 @@ This purpose of this document is to provide a point of reference
for LAMMPS developers and contributors as to what conventions
should be used to structure and format files in the LAMMPS manual.
Last change: 2020-04-23
Last change: 2022-12-30
## File format and tools
In fall 2019, the LAMMPS documentation file format has changed from
a home grown minimal markup designed to generate HTML format files
from a mostly plain text format to using the reStructuredText file
format. For a transition period all files in the old .txt format
were transparently converted to .rst and then processed. The txt2rst
tool is still included in the distribution to obtain an initial .rst
file for integration into the manual. Since the transition to
reStructured text as source format, many of the artifacts or the
translation have been removed though and parts of the documentation
refactored and expanded to take advantage of the capabilities
reStructuredText and associated tools. The conversion from the
source to the final formats (HTML, PDF, and optionally e-book
reader formats ePUB and MOBI) is mostly automated and controlled
by a Makefile in the `doc` folder. This makefile assumes that the
processing is done on a Unix-like machine and Python 3.5 or later
and a matching virtualenv module are available. Additional Python
packages (like the Sphinx tool and several extensions) are
transparently installed into a virtual environment over the
internet using the `pip` package manager. Further requirements
and details are discussed in the manual.
In fall 2019, the LAMMPS documentation file format has changed from a
home grown markup designed to generate HTML format files only, to
[reStructuredText](https://docutils.sourceforge.io/rst.html>. For a
transition period all files in the old .txt format were transparently
converted to .rst and then processed. The `txt2rst tool` is still
included in the distribution to obtain an initial .rst file for legacy
integration into the manual. Since that transition to reStructured
text, many of the artifacts of the translation have been removed though,
and parts of the documentation refactored and expanded to take advantage
of the capabilities reStructuredText and associated tools. The
conversion from the source to the final formats (HTML, PDF, and
optionally e-book reader formats ePUB and MOBI) is mostly automated and
controlled by a Makefile in the `doc` folder. This makefile assumes that
the processing is done on a Unix-like machine and Python 3.5 or later
and a matching venv module are available. Additional Python
packages (like the Sphinx tool and several extensions) are transparently
installed into a virtual environment over the internet using the `pip`
package manager. Further requirements and details are discussed in the
manual.
## Work in progress
The refactoring and improving of the documentation is an ongoing
process, so statements in this document may not always be fully
up-to-date. If in doubt, contact the LAMMPS developers.
up-to-date. When in doubt, contact the LAMMPS developers.
## General structure
The layout and formatting of added files should follow the example
of the existing files. Since those are directly derived from their
former .txt format versions and the manual has been maintained in
The layout and formatting of added files should follow the example of
the existing files. Since many of those were initially derived from
their former .txt format versions and the manual has been maintained in
that format for many years, there is a large degree of consistency
already, so comparison with similar files should give you a good
idea what kind of information and sections are needed.
already, so comparison with similar files should give you a good idea
what kind of information and sections are needed.
## Formatting conventions
@ -52,21 +51,27 @@ It seems to be sufficient to have this consistent only within
any single file and it is not (yet) enforced strictly, but making
this globally consistent makes it easier to move sections around.
Filenames, folders, paths, (shell) commands, definitions, makefile
File names, folders, paths, (shell) commands, definitions, makefile
settings and similar should be formatted as "literals" with
double backward quotes bracketing the item: \`\`path/to/some/file\`\`
Keywords and options are formatted in italics: \*option\*
Mathematical expressions, equations, symbols are typeset using
either a `.. math:`` block or the `:math:` role.
either a `.. math:` block or the `:math:` role.
Groups of shell commands or LAMMPS input script or C/C++ source
Groups of shell commands or LAMMPS input script or C/C++/Python source
code should be typeset into a `.. code-block::` section. A syntax
highlighting extension for LAMMPS input scripts is provided, so
`LAMMPS` can be used to indicate the language in the code block
in addition to `bash`, `c`, or `python`. When no syntax style
is indicated, no syntax highlighting is performed.
highlighting extension for LAMMPS input scripts is provided, so `LAMMPS`
can be used to indicate the language in the code block in addition to
`bash`, `c`, `c++`, `console`, `csh`, `diff', `fortran`, `json`, `make`,
`perl`, `powershell`, `python`, `sh`, or `tcl`, `text`, or `yaml`. When
no syntax style is indicated, no syntax highlighting is performed. When
typesetting commands executed on the shell, please do not prefix
commands with a shell prompt and use `bash` highlighting, except when
the block also shows the output from that command. In the latter case,
please use a dollar sign as the shell prompt and `console` for syntax
highlighting.
As an alternative, e.g. to typeset the syntax of file formats
a `.. parsed-literal::` block can be used, which allows some
@ -89,22 +94,30 @@ by ` :class: note`.
## Required steps when adding a custom style to LAMMPS
When adding a new style (e.g. pair style or a compute or a fix)
or a new command, it is **required** to include the corresponding
documentation. Those are often new files that need to be added.
In order to be included in the documentation, those new files
need to be reference in a `.. toctree::` block. Most of those
use patterns with wildcards, so the addition will be automatic.
However, those additions also need to be added to some lists of
styles or commands. The `make style\_check` command will perform
a test and report any missing entries and list the affected files.
Any references defined with `.. \_refname:` have to be unique
across all documentation files and this can be checked for with
`make anchor\_check`. Finally, a spell-check should be done,
which is triggered via `make spelling`. Any offenses need to
be corrected and false positives should be added to the file
`utils/sphinx-config/false\_positives.txt`.
When adding a new style (e.g. pair style or a compute or a fix) or a new
command, it is **required** to include the **corresponding documentation**
in [reStructuredText format](https://docutils.sourceforge.io/rst.html).
Those are often new files that need to be added. In order to be
included in the documentation, those new files need to be referenced in a
`.. toctree::` block. Most of those use patterns with wild cards, so the
addition will be automatic. However, those additions also need to be
added to some lists of styles or commands. The `make style\_check`
command when executed in the `doc` folder will perform a test and report
any missing entries and list the affected files. Any references defined
with `.. \_refname:` have to be unique across all documentation files
and this can be checked for with `make anchor\_check`. Finally, a
spell-check should be done, which is triggered via `make spelling`. Any
offenses need to be corrected and false positives should be added to the
file `utils/sphinx-config/false\_positives.txt`.
## Required additional steps when adding a new package to LAMMPS
TODO
When adding a new package, the package must be added to the list of
packages in the `Packages_list.rst` file. If additional build instructions
need to be followed, a corresponding section should be added to the
`Build_extras.rst` file and linked from the list at the top of the
file as well as the equivalent list in the `Build_packages.rst` file.
A detailed description of the package and pointers to configuration,
included commands and examples, external pages, author information and
more should be added to the `Packages_details.rst` file.

View File

@ -1,7 +1,7 @@
.TH LAMMPS "1" "3 August 2022" "2022-8-3"
.TH LAMMPS "1" "22 December 2022" "2022-12-22"
.SH NAME
.B LAMMPS
\- Molecular Dynamics Simulator. Version 3 August 2022
\- Molecular Dynamics Simulator. Version 22 December 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)
@ -1373,7 +1373,7 @@ Bibliography
Zhu, Tajkhorshid, and Schulten, Biophys. J. 83, 154 (2002).
**(Ziegler)**
J.F. Ziegler, J. P. Biersack and U. Littmark, "The Stopping and Range of Ions in Matter," Volume 1, Pergamon, 1985.
J.F. Ziegler, J. P. Biersack and U. Littmark, "The Stopping and Range of Ions in Matter", Volume 1, Pergamon, 1985.
**(Zimmerman2004)**
Zimmerman, JA; Webb, EB; Hoyt, JJ;. Jones, RE; Klein, PA; Bammann, DJ, "Calculation of stress in atomistic simulation." Special Issue of Modelling and Simulation in Materials Science and Engineering (2004),12:S319.

View File

@ -276,7 +276,7 @@ LAMMPS.
Parallel build (see ``src/MAKE/Makefile.mpi``):
.. code-block:: bash
.. code-block:: make
CC = mpicxx
CCFLAGS = -g -O3
@ -296,7 +296,7 @@ LAMMPS.
If compilation stops with a message like the following:
.. code-block::
.. code-block:: output
g++ -g -O3 -DLAMMPS_GZIP -DLAMMPS_MEMALIGN=64 -I../STUBS -c ../main.cpp
In file included from ../pointers.h:24:0,

View File

@ -140,36 +140,62 @@ 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 incompatible versions and either skip incompatible tests or
stop with an error. Also the number of tests will depend on
installed LAMMPS packages, development environment, operating system,
and configuration settings.
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::
The output of this command will be looking something like this:
[...]$ ctest
Test project /home/akohlmey/compile/lammps/build-testing
Start 1: MolPairStyle:hybrid-overlay
1/109 Test #1: MolPairStyle:hybrid-overlay ......... Passed 0.02 sec
Start 2: MolPairStyle:hybrid
2/109 Test #2: MolPairStyle:hybrid ................. Passed 0.01 sec
Start 3: MolPairStyle:lj_class2
[...]
Start 107: PotentialFileReader
107/109 Test #107: PotentialFileReader ................ Passed 0.04 sec
Start 108: EIMPotentialFileReader
108/109 Test #108: EIMPotentialFileReader ............. Passed 0.03 sec
Start 109: TestSimpleCommands
109/109 Test #109: TestSimpleCommands ................. Passed 0.02 sec
.. code-block:: console
100% tests passed, 0 tests failed out of 26
$ ctest
Test project /home/akohlmey/compile/lammps/build-testing
Start 1: RunLammps
1/563 Test #1: RunLammps .......................................... Passed 0.28 sec
Start 2: HelpMessage
2/563 Test #2: HelpMessage ........................................ Passed 0.06 sec
Start 3: InvalidFlag
3/563 Test #3: InvalidFlag ........................................ Passed 0.06 sec
Start 4: Tokenizer
4/563 Test #4: Tokenizer .......................................... Passed 0.05 sec
Start 5: MemPool
5/563 Test #5: MemPool ............................................ Passed 0.05 sec
Start 6: ArgUtils
6/563 Test #6: ArgUtils ........................................... Passed 0.05 sec
[...]
Start 561: ImproperStyle:zero
561/563 Test #561: ImproperStyle:zero ................................. Passed 0.07 sec
Start 562: TestMliapPyUnified
562/563 Test #562: TestMliapPyUnified ................................. Passed 0.16 sec
Start 563: TestPairList
563/563 Test #563: TestPairList ....................................... Passed 0.06 sec
Total Test time (real) = 25.57 sec
100% tests passed, 0 tests failed out of 563
Label Time Summary:
generated = 0.85 sec*proc (3 tests)
noWindows = 4.16 sec*proc (2 tests)
slow = 78.33 sec*proc (67 tests)
unstable = 28.23 sec*proc (34 tests)
Total Test time (real) = 132.34 sec
The ``ctest`` command has many options, the most important ones are:
@ -200,11 +226,13 @@ Fortran) and testing different aspects of the LAMMPS software and its features.
The tests will adapt to the compilation settings of LAMMPS, so that tests
will be skipped if prerequisite features are not available in LAMMPS.
.. note::
.. admonition:: Work in Progress
:class: note
The unit test framework was added in spring 2020 and is under active
development. The coverage is not complete and will be expanded over
time.
time. Preference is given to parts of the code base that are easy to
test or commonly used.
Tests for styles of the same kind of style (e.g. pair styles or bond
styles) are performed with the same test executable using different
@ -238,9 +266,9 @@ the CMake option ``-D BUILD_MPI=off`` can significantly speed up testing,
since this will skip the MPI initialization for each test run.
Below is an example command and output:
.. parsed-literal::
.. code-block:: console
[tests]$ test_pair_style mol-pair-lj_cut.yaml
$ test_pair_style mol-pair-lj_cut.yaml
[==========] Running 6 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 6 tests from PairStyle
@ -520,7 +548,7 @@ commands like the following:
.. code-block:: bash
$ clang-format -i some_file.cpp
clang-format -i some_file.cpp
The following target are available for both, GNU make and CMake:
@ -529,3 +557,19 @@ The following target are available for both, GNU make and CMake:
make format-src # apply clang-format to all files in src and the package folders
make format-tests # apply clang-format to all files in the unittest tree
----------
.. _gh-cli:
GitHub command line interface
-----------------------------
GitHub is developing a `tool for the command line
<https://cli.github.com>`_ that interacts with the GitHub website via a
command called ``gh``. This can be extremely convenient when working
with a Git repository hosted on GitHub (like LAMMPS). It is thus highly
recommended to install it when doing LAMMPS development.
The capabilities of the ``gh`` command is continually expanding, so
please see the documentation at https://cli.github.com/manual/

View File

@ -12,11 +12,11 @@ in addition to
- Traditional make
* - .. code-block:: bash
$ cmake -D PKG_NAME=yes
cmake -D PKG_NAME=yes
- .. code-block:: bash
- .. code-block:: console
$ make yes-name
make yes-name
as described on the :doc:`Build_package <Build_package>` page.
@ -28,26 +28,30 @@ You may need to tell LAMMPS where it is found on your system.
This is the list of packages that may require additional steps.
.. this list must be kept in sync with its counterpart in Build_package.rst
.. table_from_list::
:columns: 6
* :ref:`ADIOS <adios>`
* :ref:`ATC <atc>`
* :ref:`AWPMD <awpmd>`
* :ref:`COLVARS <colvars>`
* :ref:`COLVARS <colvar>`
* :ref:`COMPRESS <compress>`
* :ref:`ELECTRODE <electrode>`
* :ref:`GPU <gpu>`
* :ref:`H5MD <h5md>`
* :ref:`INTEL <intel>`
* :ref:`KIM <kim>`
* :ref:`KOKKOS <kokkos>`
* :ref:`LATTE <latte>`
* :ref:`LEPTON <lepton>`
* :ref:`MACHDYN <machdyn>`
* :ref:`MDI <mdi>`
* :ref:`MESONT <mesont>`
* :ref:`ML-HDNNP <ml-hdnnp>`
* :ref:`ML-IAP <mliap>`
* :ref:`ML-PACE <ml-pace>`
* :ref:`ML-POD <ml-pod>`
* :ref:`ML-QUIP <ml-quip>`
* :ref:`MOLFILE <molfile>`
* :ref:`MSCG <mscg>`
@ -148,7 +152,9 @@ CMake build
* sm_60 or sm_61 for Pascal (supported since CUDA 8)
* sm_70 for Volta (supported since CUDA 9)
* sm_75 for Turing (supported since CUDA 10)
* sm_80 for Ampere (supported since CUDA 11)
* sm_80 or sm_86 for Ampere (supported since CUDA 11, sm_86 since CUDA 11.1)
* sm_89 for Lovelace (supported since CUDA 11.8)
* sm_90 for Hopper (supported since CUDA 12.0)
A more detailed list can be found, for example,
at `Wikipedia's CUDA article <https://en.wikipedia.org/wiki/CUDA#GPUs_supported>`_
@ -234,15 +240,15 @@ 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
$ make lib-gpu # print help message
$ make lib-gpu args="-b" # build GPU library with default Makefile.linux
$ make lib-gpu args="-m xk7 -p single -o xk7.single" # create new Makefile.xk7.single, altered for single-precision
$ make lib-gpu args="-m mpi -a sm_60 -p mixed -b" # build GPU library with mixed precision and P100 using other settings in Makefile.mpi
make lib-gpu # print help message
make lib-gpu args="-b" # build GPU library with default Makefile.linux
make lib-gpu args="-m xk7 -p single -o xk7.single" # create new Makefile.xk7.single, altered for single-precision
make lib-gpu args="-m mpi -a sm_60 -p mixed -b" # build GPU library with mixed precision and P100 using other settings in Makefile.mpi
Note that this procedure starts with a Makefile.machine in lib/gpu, as
specified by the "-m" switch. For your convenience, machine makefiles
@ -314,7 +320,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,18 +356,18 @@ 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
$ make lib-kim # print help message
$ make lib-kim args="-b " # (re-)install KIM API lib with only example models
$ make lib-kim args="-b -a Glue_Ercolessi_Adams_Al__MO_324507536345_001" # ditto plus one model
$ make lib-kim args="-b -a everything" # install KIM API lib with all models
$ make lib-kim args="-n -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # add one model or model driver
$ make lib-kim args="-p /usr/local" # use an existing KIM API installation at the provided location
$ make lib-kim args="-p /usr/local -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # ditto but add one model or driver
make lib-kim # print help message
make lib-kim args="-b " # (re-)install KIM API lib with only example models
make lib-kim args="-b -a Glue_Ercolessi_Adams_Al__MO_324507536345_001" # ditto plus one model
make lib-kim args="-b -a everything" # install KIM API lib with all models
make lib-kim args="-n -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # add one model or model driver
make lib-kim args="-p /usr/local" # use an existing KIM API installation at the provided location
make lib-kim args="-p /usr/local -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # ditto but add one model or driver
When using the "-b " option, the KIM library is built using its native
cmake build system. The ``lib/kim/Install.py`` script supports a
@ -373,7 +379,7 @@ minutes to hours) to build. Of course you only need to do that once.)
.. code-block:: bash
$ CMAKE=cmake3 CXX=g++-11 CC=gcc-11 FC=gfortran-11 make lib-kim args="-b " # (re-)install KIM API lib using cmake3 and gnu v11 compilers with only example models
CMAKE=cmake3 CXX=g++-11 CC=gcc-11 FC=gfortran-11 make lib-kim args="-b " # (re-)install KIM API lib using cmake3 and gnu v11 compilers with only example models
Settings for debugging OpenKIM web queries discussed below need to
be applied by adding them to the ``LMP_INC`` variable through
@ -432,7 +438,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 +489,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 +531,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 +617,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 +635,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::
@ -835,11 +862,11 @@ library.
.. code-block:: bash
$ make lib-latte # print help message
$ make lib-latte args="-b" # download and build in lib/latte/LATTE-master
$ make lib-latte args="-p $HOME/latte" # use existing LATTE installation in $HOME/latte
$ make lib-latte args="-b -m gfortran" # download and build in lib/latte and
# copy Makefile.lammps.gfortran to Makefile.lammps
make lib-latte # print help message
make lib-latte args="-b" # download and build in lib/latte/LATTE-master
make lib-latte args="-p $HOME/latte" # use existing LATTE installation in $HOME/latte
make lib-latte args="-b -m gfortran" # download and build in lib/latte and
# copy Makefile.lammps.gfortran to Makefile.lammps
Note that 3 symbolic (soft) links, ``includelink`` and ``liblink``
and ``filelink.o``, are created in ``lib/latte`` to point to
@ -850,6 +877,55 @@ library.
----------
.. _lepton:
LEPTON package
--------------
To build with this package, you must build the Lepton library which is
included in the LAMMPS source distribution in the ``lib/lepton`` folder.
.. tabs::
.. tab:: CMake build
This is the recommended build procedure for using Lepton in
LAMMPS. No additional settings are normally needed besides
``-D PKG_LEPTON=yes``.
On x86 hardware the Lepton library will also include a just-in-time
compiler for faster execution. This is auto detected but can
be explicitly disabled by setting ``-D LEPTON_ENABLE_JIT=no``
(or enabled by setting it to yes).
.. tab:: Traditional make
Before building LAMMPS, one must build the Lepton library in lib/lepton.
This can be done manually in the same folder by using or adapting
one of the provided Makefiles: for example, ``Makefile.serial`` for
the GNU C++ compiler, or ``Makefile.mpi`` for the MPI compiler wrapper.
The Lepton library is written in C++-11 and thus the C++ compiler
may need to be instructed to enable support for that.
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 invokes the
``lib/lepton/Install.py`` script with the specified args:
.. code-block:: bash
$ make lib-lepton # print help message
$ make lib-lepton args="-m serial" # build with GNU g++ compiler (settings as with "make serial")
$ make lib-lepton args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
The "machine" argument of the "-m" flag is used to find a
Makefile.machine to use as build recipe.
The build should produce a ``build`` folder and the library ``lib/lepton/liblmplepton.a``
----------
.. _mliap:
ML-IAP package
@ -933,17 +1009,17 @@ 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
$ make lib-mscg # print help message
$ make lib-mscg args="-b -m serial" # download and build in lib/mscg/MSCG-release-master
# with the settings compatible with "make serial"
$ make lib-mscg args="-b -m mpi" # download and build in lib/mscg/MSCG-release-master
# with the settings compatible with "make mpi"
$ make lib-mscg args="-p /usr/local/mscg-release" # use the existing MS-CG installation in /usr/local/mscg-release
make lib-mscg # print help message
make lib-mscg args="-b -m serial" # download and build in lib/mscg/MSCG-release-master
# with the settings compatible with "make serial"
make lib-mscg args="-b -m mpi" # download and build in lib/mscg/MSCG-release-master
# with the settings compatible with "make mpi"
make lib-mscg args="-p /usr/local/mscg-release" # use the existing MS-CG installation in /usr/local/mscg-release
Note that 2 symbolic (soft) links, ``includelink`` and ``liblink``,
will be created in ``lib/mscg`` to point to the MS-CG
@ -990,15 +1066,15 @@ 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
$ make lib-poems # print help message
$ make lib-poems args="-m serial" # build with GNU g++ compiler (settings as with "make serial")
$ make lib-poems args="-m mpi" # build with default MPI C++ compiler (settings as with "make mpi")
$ make lib-poems args="-m icc" # build with Intel icc compiler
make lib-poems # print help message
make lib-poems args="-m serial" # build with GNU g++ compiler (settings as with "make serial")
make lib-poems args="-m mpi" # build with default MPI C++ compiler (settings as with "make mpi")
make lib-poems args="-m icc" # build with Intel icc compiler
The build should produce two files: ``lib/poems/libpoems.a`` and
``lib/poems/Makefile.lammps``. The latter is copied from an
@ -1053,7 +1129,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,15 +1155,15 @@ 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
$ make lib-voronoi # print help message
$ make lib-voronoi args="-b" # download and build the default version in lib/voronoi/voro++-<version>
$ make lib-voronoi args="-p $HOME/voro++" # use existing Voro++ installation in $HOME/voro++
$ make lib-voronoi args="-b -v voro++0.4.6" # download and build the 0.4.6 version in lib/voronoi/voro++-0.4.6
make lib-voronoi # print help message
make lib-voronoi args="-b" # download and build the default version in lib/voronoi/voro++-<version>
make lib-voronoi args="-p $HOME/voro++" # use existing Voro++ installation in $HOME/voro++
make lib-voronoi args="-b -v voro++0.4.6" # download and build the 0.4.6 version in lib/voronoi/voro++-0.4.6
Note that 2 symbolic (soft) links, ``includelink`` and
``liblink``, are created in lib/voronoi to point to the Voro++
@ -1128,13 +1204,13 @@ systems.
.. code-block:: bash
$ make yes-adios
make yes-adios
otherwise, set ADIOS2_DIR environment variable when turning on the package:
.. code-block:: bash
$ ADIOS2_DIR=path make yes-adios # path is where ADIOS 2.x is installed
ADIOS2_DIR=path make yes-adios # path is where ADIOS 2.x is installed
----------
@ -1158,15 +1234,15 @@ 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
$ make lib-atc # print help message
$ make lib-atc args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
$ make lib-atc args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
$ make lib-atc args="-m icc" # build with Intel icc compiler
make lib-atc # print help message
make lib-atc args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
make lib-atc args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
make lib-atc args="-m icc" # build with Intel icc compiler
The build should produce two files: ``lib/atc/libatc.a`` and
``lib/atc/Makefile.lammps``. The latter is copied from an
@ -1185,17 +1261,17 @@ The ATC package requires the MANYBODY package also be installed.
.. code-block:: bash
$ make lib-linalg # print help message
$ make lib-linalg args="-m serial" # build with GNU Fortran compiler (settings as with "make serial")
$ make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
$ make lib-linalg args="-m gfortran" # build with GNU Fortran compiler
make lib-linalg # print help message
make lib-linalg args="-m serial" # build with GNU C++ compiler (settings as with "make serial")
make lib-linalg args="-m mpi" # build with default MPI C++ compiler (settings as with "make mpi")
make lib-linalg args="-m g++" # build with GNU Fortran compiler
----------
.. _awpmd:
AWPMD package
------------------
-------------
.. tabs::
@ -1209,15 +1285,15 @@ 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
$ make lib-awpmd # print help message
$ make lib-awpmd args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
$ make lib-awpmd args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
$ make lib-awpmd args="-m icc" # build with Intel icc compiler
make lib-awpmd # print help message
make lib-awpmd args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
make lib-awpmd args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
make lib-awpmd args="-m icc" # build with Intel icc compiler
The build should produce two files: ``lib/awpmd/libawpmd.a`` and
``lib/awpmd/Makefile.lammps``. The latter is copied from an
@ -1236,21 +1312,20 @@ AWPMD package
.. code-block:: bash
$ make lib-linalg # print help message
$ make lib-linalg args="-m serial" # build with GNU Fortran compiler (settings as with "make serial")
$ make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
$ make lib-linalg args="-m gfortran" # build with GNU Fortran compiler
make lib-linalg # print help message
make lib-linalg args="-m serial" # build with GNU C++ compiler (settings as with "make serial")
make lib-linalg args="-m mpi" # build with default MPI C++ compiler (settings as with "make mpi")
make lib-linalg args="-m g++" # build with GNU C++ compiler
----------
.. _colvars:
.. _colvar:
COLVARS package
---------------------------------------
---------------
This package includes the `Colvars library
<https://colvars.github.io/>`_ into the LAMMPS distribution, which can
be built for the most part with all major versions of the C++ language.
This package enables the use of the `Colvars <https://colvars.github.io/>`_
module included in the LAMMPS source distribution.
.. tabs::
@ -1263,42 +1338,45 @@ be built for the most part with all major versions of the C++ language.
.. tab:: Traditional make
Before building LAMMPS, one must build the Colvars library in lib/colvars.
As with other libraries distributed with LAMMPS, the Colvars library
needs to be built before building the LAMMPS program with the COLVARS
package enabled.
This can be done manually in the same folder by using or adapting
one of the provided Makefiles: for example, ``Makefile.g++`` for
the GNU C++ compiler. C++11 compatibility may need to be enabled
for some older compilers (as is done in the example makefile).
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
``lib/colvars/Install.py`` script with the specified args:
From the LAMMPS ``src`` directory, this is most easily and safely done
via one of the following commands, which implicitly rely on the
``lib/colvars/Install.py`` script with optional arguments:
.. code-block:: bash
$ make lib-colvars # print help message
$ make lib-colvars args="-m serial" # build with GNU g++ compiler (settings as with "make serial")
$ make lib-colvars args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
$ make lib-colvars args="-m g++-debug" # build with GNU g++ compiler and colvars debugging enabled
make lib-colvars # print help message
make lib-colvars args="-m serial" # build with GNU g++ compiler (settings as with "make serial")
make lib-colvars args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
make lib-colvars args="-m g++-debug" # build with GNU g++ compiler and colvars debugging enabled
The "machine" argument of the "-m" flag is used to find a
Makefile.machine to use as build recipe. If it does not already
exist in ``lib/colvars``, it will be auto-generated by using
compiler flags consistent with those parsed from the core LAMMPS
makefiles.
``Makefile.machine`` file to use as build recipe. If such recipe does
not already exist in ``lib/colvars``, suitable settings will be
auto-generated consistent with those used in the core LAMMPS makefiles.
.. versionchanged:: TBD
Please note that Colvars uses the Lepton library, which is now
included with the LEPTON package; if you use anything other than
the ``make lib-colvars`` command, please make sure to :ref:`build
Lepton beforehand <lepton>`.
Optional flags may be specified as environment variables:
.. code-block:: bash
$ COLVARS_DEBUG=yes make lib-colvars args="-m machine" # Build with debug code (much slower)
$ COLVARS_LEPTON=no make lib-colvars args="-m machine" # Build without Lepton (included otherwise)
COLVARS_DEBUG=yes make lib-colvars args="-m machine" # Build with debug code (much slower)
COLVARS_LEPTON=no make lib-colvars args="-m machine" # Build without Lepton (included otherwise)
The build should produce two files: the library ``lib/colvars/libcolvars.a``
(which also includes Lepton objects if enabled) and the specification file
``lib/colvars/Makefile.lammps``. The latter is auto-generated, and normally does
not need to be edited.
The build should produce two files: the library
``lib/colvars/libcolvars.a`` and the specification file
``lib/colvars/Makefile.lammps``. The latter is auto-generated,
and normally does not need to be edited.
----------
@ -1313,27 +1391,40 @@ 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``
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:
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-linalg # print help message
$ make lib-linalg args="-m serial" # build with GNU Fortran compiler (settings as with "make serial")
$ make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
$ make lib-linalg args="-m gfortran" # build with GNU Fortran compiler
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. These can either exist on
your system, or you can use the files provided in ``lib/linalg``.
In the latter case you also need to build the library in
``lib/linalg`` with a command like these:
.. code-block:: bash
make lib-linalg # print help message
make lib-linalg args="-m serial" # build with GNU C++ compiler (settings as with "make serial")
make lib-linalg args="-m mpi" # build with default MPI C++ compiler (settings as with "make mpi")
make lib-linalg args="-m g++" # build with GNU C++ compiler
The package itself is activated with ``make yes-KSPACE`` and
``make yes-ELECTRODE``
----------
@ -1370,13 +1461,56 @@ at: `https://github.com/ICAMS/lammps-user-pace/ <https://github.com/ICAMS/lammps
.. code-block:: bash
$ make lib-pace # print help message
$ make lib-pace args="-b" # download and build the default version in lib/pace
make lib-pace # print help message
make lib-pace args="-b" # download and build the default version in lib/pace
You should not need to edit the ``lib/pace/Makefile.lammps`` file.
----------
.. _ml-pod:
ML-POD package
-----------------------------
.. tabs::
.. tab:: CMake build
No additional settings are needed besides ``-D PKG_ML-POD=yes``.
.. tab:: Traditional make
Before building LAMMPS, you must configure the ML-POD support
settings in ``lib/mlpod``. You can do this manually, if you
prefer, or do it in one step from the ``lammps/src`` dir, using a
command like the following, which simply invoke the
``lib/mlpod/Install.py`` script with the specified args:
.. code-block:: bash
make lib-mlpod # print help message
make lib-mlpod args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
make lib-mlpod args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
make lib-mlpod args="-m mpi -e linalg" # same as above but use the bundled linalg lib
Note that the ``Makefile.lammps`` file has settings to use 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
make lib-linalg # print help message
make lib-linalg args="-m serial" # build with GNU C++ compiler (settings as with "make serial")
make lib-linalg args="-m mpi" # build with default MPI C++ compiler (settings as with "make mpi")
make lib-linalg args="-m g++" # build with GNU C++ compiler
The package itself is activated with ``make yes-ML-POD``.
----------
.. _plumed:
PLUMED package
@ -1470,10 +1604,10 @@ LAMMPS build.
.. code-block:: bash
$ make lib-plumed # print help message
$ make lib-plumed args="-b" # download and build PLUMED in lib/plumed/plumed2
$ make lib-plumed args="-p $HOME/.local" # use existing PLUMED installation in $HOME/.local
$ make lib-plumed args="-p /usr/local -m shared" # use existing PLUMED installation in
make lib-plumed # print help message
make lib-plumed args="-b" # download and build PLUMED in lib/plumed/plumed2
make lib-plumed args="-p $HOME/.local" # use existing PLUMED installation in $HOME/.local
make lib-plumed args="-p /usr/local -m shared" # use existing PLUMED installation in
# /usr/local and use shared linkage mode
Note that 2 symbolic (soft) links, ``includelink`` and ``liblink``
@ -1486,8 +1620,8 @@ LAMMPS build.
.. code-block:: bash
$ make yes-plumed
$ make machine
make yes-plumed
make machine
Once this compilation completes you should be able to run LAMMPS
in the usual way. For shared linkage mode, libplumed.so must be
@ -1534,13 +1668,13 @@ 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
$ make lib-h5md # print help message
$ make lib-h5md args="-m h5cc" # build with h5cc compiler
make lib-h5md # print help message
make lib-h5md args="-m h5cc" # build with h5cc compiler
The build should produce two files: ``lib/h5md/libch5md.a`` and
``lib/h5md/Makefile.lammps``. The latter is copied from an
@ -1590,14 +1724,14 @@ 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
$ make lib-hdnnp # print help message
$ make lib-hdnnp args="-b" # download and build in lib/hdnnp/n2p2-...
$ make lib-hdnnp args="-b -v 2.1.4" # download and build specific version
$ make lib-hdnnp args="-p /usr/local/n2p2" # use the existing n2p2 installation in /usr/local/n2p2
make lib-hdnnp # print help message
make lib-hdnnp args="-b" # download and build in lib/hdnnp/n2p2-...
make lib-hdnnp args="-b -v 2.1.4" # download and build specific version
make lib-hdnnp args="-p /usr/local/n2p2" # use the existing n2p2 installation in /usr/local/n2p2
Note that 3 symbolic (soft) links, ``includelink``, ``liblink`` and
``Makefile.lammps``, will be created in ``lib/hdnnp`` to point to
@ -1697,8 +1831,8 @@ MDI package
.. code-block:: bash
$ python Install.py -m gcc # build using gcc compiler
$ python Install.py -m icc # build using icc compiler
python Install.py -m gcc # build using gcc compiler
python Install.py -m icc # build using icc compiler
The build should produce two files: ``lib/mdi/includelink/mdi.h``
and ``lib/mdi/liblink/libmdi.so``\ .
@ -1727,14 +1861,14 @@ 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
$ make lib-mesont # print help message
$ make lib-mesont args="-m gfortran" # build with GNU g++ compiler (settings as with "make serial")
$ make lib-mesont args="-m ifort" # build with Intel icc compiler
make lib-mesont # print help message
make lib-mesont args="-m gfortran" # build with GNU g++ compiler (settings as with "make serial")
make lib-mesont args="-m ifort" # build with Intel icc compiler
The build should produce two files: ``lib/mesont/libmesont.a`` and
``lib/mesont/Makefile.lammps``\ . The latter is copied from an
@ -1847,6 +1981,22 @@ OPENMP package
For other platforms and compilers, please consult the
documentation about OpenMP support for your compiler.
.. admonition:: Adding OpenMP support on macOS
:class: note
Apple offers the `Xcode package and IDE
<https://developer.apple.com/xcode/>`_ for compiling software on
macOS, so you have likely installed it to compile LAMMPS. Their
compiler is based on `Clang <https://clang.llvm.org/>`, but while it
is capable of processing OpenMP directives, the necessary header
files and OpenMP runtime library are missing. The `R developers
<https://www.r-project.org/>` have figured out a way to build those
in a compatible fashion. One can download them from
`https://mac.r-project.org/openmp/
<https://mac.r-project.org/openmp/>`_. Simply adding those files as
instructed enables the Xcode C++ compiler to compile LAMMPS with ``-D
BUILD_OMP=yes``.
----------
.. _qmmm:
@ -1896,15 +2046,15 @@ 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
$ make lib-qmmm # print help message
$ make lib-qmmm args="-m serial" # build with GNU Fortran compiler (settings as in "make serial")
$ make lib-qmmm args="-m mpi" # build with default MPI compiler (settings as in "make mpi")
$ make lib-qmmm args="-m gfortran" # build with GNU Fortran compiler
make lib-qmmm # print help message
make lib-qmmm args="-m serial" # build with GNU Fortran compiler (settings as in "make serial")
make lib-qmmm args="-m mpi" # build with default MPI compiler (settings as in "make mpi")
make lib-qmmm args="-m gfortran" # build with GNU Fortran compiler
The build should produce two files: ``lib/qmmm/libqmmm.a`` and
``lib/qmmm/Makefile.lammps``. The latter is copied from an
@ -2004,7 +2154,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,14 +2198,14 @@ 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
$ make lib-smd # print help message
$ make lib-smd args="-b" # download to lib/smd/eigen3
$ make lib-smd args="-p /usr/include/eigen3" # use existing Eigen installation in /usr/include/eigen3
make lib-smd # print help message
make lib-smd args="-b" # download to lib/smd/eigen3
make lib-smd args="-p /usr/include/eigen3" # use existing Eigen installation in /usr/include/eigen3
Note that a symbolic (soft) link named ``includelink`` is created
in ``lib/smd`` to point to the Eigen dir. When LAMMPS builds it

View File

@ -209,7 +209,7 @@ You can verify whether all required shared libraries are found with the
.. code-block:: bash
$ LD_LIBRARY_PATH=/home/user/lammps/src ldd caller
LD_LIBRARY_PATH=/home/user/lammps/src ldd caller
linux-vdso.so.1 (0x00007ffe729e0000)
liblammps.so => /home/user/lammps/src/liblammps.so (0x00007fc91bb9e000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fc91b984000)
@ -222,7 +222,7 @@ If a required library is missing, you would get a 'not found' entry:
.. code-block:: bash
$ ldd caller
ldd caller
linux-vdso.so.1 (0x00007ffd672fe000)
liblammps.so => not found
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fb7c7e86000)

View File

@ -125,38 +125,29 @@ common setups:
.. code-block:: bash
sudo apt-get install python-virtualenv git doxygen
sudo apt-get install git doxygen
.. tab:: RHEL or CentOS (Version 7.x)
.. code-block:: bash
sudo yum install python3-virtualenv git doxygen
sudo yum install git doxygen
.. tab:: Fedora or RHEL/CentOS (8.x or later)
.. code-block:: bash
sudo dnf install python3-virtualenv git doxygen
sudo dnf install git doxygen
.. tab:: MacOS X
.. tab:: macOS
*Python 3*
Download the latest Python 3 MacOS X package from
If Python 3 is not available on your macOS system, you can
download the latest Python 3 macOS package from
`https://www.python.org <https://www.python.org>`_ and install it.
This will install both Python 3 and pip3.
*virtualenv*
Once Python 3 is installed, open a Terminal and type
.. code-block:: bash
pip3 install virtualenv
This will install virtualenv from the Python Package Index.
Prerequisites for PDF
---------------------
@ -176,7 +167,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 +207,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

@ -30,23 +30,30 @@ steps, as explained on the :doc:`Build extras <Build_extras>` page.
These links take you to the extra instructions for those select
packages:
.. this list must be kept in sync with its counterpart in Build_extras.rst
.. table_from_list::
:columns: 6
* :ref:`ADIOS <adios>`
* :ref:`ATC <atc>`
* :ref:`AWPMD <awpmd>`
* :ref:`COLVARS <colvars>`
* :ref:`COLVARS <colvar>`
* :ref:`COMPRESS <compress>`
* :ref:`ELECTRODE <electrode>`
* :ref:`GPU <gpu>`
* :ref:`H5MD <h5md>`
* :ref:`INTEL <intel>`
* :ref:`KIM <kim>`
* :ref:`KOKKOS <kokkos>`
* :ref:`LATTE <latte>`
* :ref:`LEPTON <lepton>`
* :ref:`MACHDYN <machdyn>`
* :ref:`MDI <mdi>`
* :ref:`MESONT <mesont>`
* :ref:`ML-HDNNP <ml-hdnnp>`
* :ref:`ML-IAP <mliap>`
* :ref:`ML-PACE <ml-pace>`
* :ref:`ML-POD <ml-pod>`
* :ref:`ML-QUIP <ml-quip>`
* :ref:`MOLFILE <molfile>`
* :ref:`MSCG <mscg>`

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

@ -15,13 +15,16 @@
General commands
================
An alphabetic list of general LAMMPS commands.
An alphabetic list of general LAMMPS commands. Note that style
commands with many variants, can be more easily accessed via the small
table above.
.. table_from_list::
:columns: 5
* :doc:`angle_coeff <angle_coeff>`
* :doc:`angle_style <angle_style>`
* :doc:`angle_write <angle_write>`
* :doc:`atom_modify <atom_modify>`
* :doc:`atom_style <atom_style>`
* :doc:`balance <balance>`
@ -29,7 +32,6 @@ An alphabetic list of general LAMMPS commands.
* :doc:`bond_style <bond_style>`
* :doc:`bond_write <bond_write>`
* :doc:`boundary <boundary>`
* :doc:`box <box>`
* :doc:`change_box <change_box>`
* :doc:`clear <clear>`
* :doc:`comm_modify <comm_modify>`
@ -44,6 +46,7 @@ An alphabetic list of general LAMMPS commands.
* :doc:`dielectric <dielectric>`
* :doc:`dihedral_coeff <dihedral_coeff>`
* :doc:`dihedral_style <dihedral_style>`
* :doc:`dihedral_write <dihedral_write>`
* :doc:`dimension <dimension>`
* :doc:`displace_atoms <displace_atoms>`
* :doc:`dump <dump>`
@ -61,6 +64,7 @@ An alphabetic list of general LAMMPS commands.
* :doc:`kspace_modify <kspace_modify>`
* :doc:`kspace_style <kspace_style>`
* :doc:`label <label>`
* :doc:`labelmap <labelmap>`
* :doc:`lattice <lattice>`
* :doc:`log <log>`
* :doc:`mass <mass>`
@ -87,8 +91,7 @@ An alphabetic list of general LAMMPS commands.
* :doc:`region <region>`
* :doc:`replicate <replicate>`
* :doc:`rerun <rerun>`
* :doc:`reset_atom_ids <reset_atom_ids>`
* :doc:`reset_mol_ids <reset_mol_ids>`
* :doc:`reset_atoms <reset_atoms>`
* :doc:`reset_timestep <reset_timestep>`
* :doc:`restart <restart>`
* :doc:`run <run>`
@ -124,6 +127,7 @@ additional letter in parenthesis: k = KOKKOS.
* :doc:`group2ndx <group2ndx>`
* :doc:`hyper <hyper>`
* :doc:`kim <kim_commands>`
* :doc:`fitpod <fitpod_command>`
* :doc:`mdi <mdi>`
* :doc:`ndx2group <group2ndx>`
* :doc:`neb <neb>`

View File

@ -44,6 +44,8 @@ OPT.
* :doc:`harmonic (iko) <bond_harmonic>`
* :doc:`harmonic/shift (o) <bond_harmonic_shift>`
* :doc:`harmonic/shift/cut (o) <bond_harmonic_shift_cut>`
* :doc:`lepton (o) <bond_lepton>`
* :doc:`mesocnt <bond_mesocnt>`
* :doc:`mm3 <bond_mm3>`
* :doc:`morse (o) <bond_morse>`
* :doc:`nonlinear (o) <bond_nonlinear>`
@ -92,6 +94,8 @@ OPT.
* :doc:`fourier/simple (o) <angle_fourier_simple>`
* :doc:`gaussian <angle_gaussian>`
* :doc:`harmonic (iko) <angle_harmonic>`
* :doc:`lepton (o) <angle_lepton>`
* :doc:`mesocnt <angle_mesocnt>`
* :doc:`mm3 <angle_mm3>`
* :doc:`quartic (o) <angle_quartic>`
* :doc:`spica (o) <angle_spica>`
@ -125,6 +129,7 @@ OPT.
* :doc:`fourier (io) <dihedral_fourier>`
* :doc:`harmonic (iko) <dihedral_harmonic>`
* :doc:`helix (o) <dihedral_helix>`
* :doc:`lepton (o) <dihedral_lepton>`
* :doc:`multi/harmonic (o) <dihedral_multi_harmonic>`
* :doc:`nharmonic (o) <dihedral_nharmonic>`
* :doc:`opls (iko) <dihedral_opls>`

View File

@ -25,7 +25,6 @@ Setup simulation box:
:columns: 4
* :doc:`boundary <boundary>`
* :doc:`box <box>`
* :doc:`change_box <change_box>`
* :doc:`create_box <create_box>`
* :doc:`dimension <dimension>`

View File

@ -57,6 +57,7 @@ KOKKOS, o = OPENMP, t = OPT.
* :doc:`dpd/atom <compute_dpd_atom>`
* :doc:`edpd/temp/atom <compute_edpd_temp_atom>`
* :doc:`efield/atom <compute_efield_atom>`
* :doc:`efield/wolf/atom <compute_efield_wolf_atom>`
* :doc:`entropy/atom <compute_entropy_atom>`
* :doc:`erotate/asphere <compute_erotate_asphere>`
* :doc:`erotate/rigid <compute_erotate_rigid>`
@ -107,6 +108,7 @@ KOKKOS, o = OPENMP, t = OPT.
* :doc:`pressure/uef <compute_pressure_uef>`
* :doc:`property/atom <compute_property_atom>`
* :doc:`property/chunk <compute_property_chunk>`
* :doc:`property/grid <compute_property_grid>`
* :doc:`property/local <compute_property_local>`
* :doc:`ptm/atom <compute_ptm_atom>`
* :doc:`rdf <compute_rdf>`

View File

@ -36,7 +36,8 @@ An alphabetic list of all LAMMPS :doc:`dump <dump>` commands.
* :doc:`custom/mpiio <dump>`
* :doc:`custom/zstd <dump>`
* :doc:`dcd <dump>`
* :doc:`deprecated <dump>`
* :doc:`grid <dump>`
* :doc:`grid/vtk <dump>`
* :doc:`h5md <dump_h5md>`
* :doc:`image <dump_image>`
* :doc:`local <dump>`

View File

@ -38,6 +38,7 @@ OPT.
* :doc:`ave/chunk <fix_ave_chunk>`
* :doc:`ave/correlate <fix_ave_correlate>`
* :doc:`ave/correlate/long <fix_ave_correlate_long>`
* :doc:`ave/grid <fix_ave_grid>`
* :doc:`ave/histo <fix_ave_histo>`
* :doc:`ave/histo/weight <fix_ave_histo>`
* :doc:`ave/time <fix_ave_time>`
@ -65,13 +66,13 @@ OPT.
* :doc:`drude <fix_drude>`
* :doc:`drude/transform/direct <fix_drude_transform>`
* :doc:`drude/transform/inverse <fix_drude_transform>`
* :doc:`dt/reset <fix_dt_reset>`
* :doc:`dt/reset (k) <fix_dt_reset>`
* :doc:`edpd/source <fix_dpd_source>`
* :doc:`efield <fix_efield>`
* :doc:`ehex <fix_ehex>`
* :doc:`electrode/conp (i) <fix_electrode_conp>`
* :doc:`electrode/conq (i) <fix_electrode_conp>`
* :doc:`electrode/thermo (i) <fix_electrode_conp>`
* :doc:`electrode/conp (i) <fix_electrode>`
* :doc:`electrode/conq (i) <fix_electrode>`
* :doc:`electrode/thermo (i) <fix_electrode>`
* :doc:`electron/stopping <fix_electron_stopping>`
* :doc:`electron/stopping/fit <fix_electron_stopping>`
* :doc:`enforce2d (k) <fix_enforce2d>`
@ -165,6 +166,7 @@ OPT.
* :doc:`orient/fcc <fix_orient>`
* :doc:`orient/eco <fix_orient_eco>`
* :doc:`pafi <fix_pafi>`
* :doc:`pair <fix_pair>`
* :doc:`phonon <fix_phonon>`
* :doc:`pimd <fix_pimd>`
* :doc:`planeforce <fix_planeforce>`
@ -212,6 +214,7 @@ OPT.
* :doc:`saed/vtk <fix_saed_vtk>`
* :doc:`setforce (k) <fix_setforce>`
* :doc:`setforce/spin <fix_setforce>`
* :doc:`sgcmc <fix_sgcmc>`
* :doc:`shake (k) <fix_shake>`
* :doc:`shardlow (k) <fix_shardlow>`
* :doc:`smd <fix_smd>`
@ -248,7 +251,7 @@ OPT.
* :doc:`tune/kspace <fix_tune_kspace>`
* :doc:`vector <fix_vector>`
* :doc:`viscosity <fix_viscosity>`
* :doc:`viscous <fix_viscous>`
* :doc:`viscous (k) <fix_viscous>`
* :doc:`viscous/sphere <fix_viscous_sphere>`
* :doc:`wall/body/polygon <fix_wall_body_polygon>`
* :doc:`wall/body/polyhedron <fix_wall_body_polyhedron>`

View File

@ -93,8 +93,8 @@ OPT.
* :doc:`coul/wolf/cs <pair_cs>`
* :doc:`dpd (giko) <pair_dpd>`
* :doc:`dpd/fdt <pair_dpd_fdt>`
* :doc:`dpd/ext (k) <pair_dpd_ext>`
* :doc:`dpd/ext/tstat (k) <pair_dpd_ext>`
* :doc:`dpd/ext (ko) <pair_dpd_ext>`
* :doc:`dpd/ext/tstat (ko) <pair_dpd_ext>`
* :doc:`dpd/fdt/energy (k) <pair_dpd_fdt>`
* :doc:`dpd/tstat (gko) <pair_dpd>`
* :doc:`dsmc <pair_dsmc>`
@ -134,6 +134,8 @@ OPT.
* :doc:`lcbop <pair_lcbop>`
* :doc:`lebedeva/z <pair_lebedeva_z>`
* :doc:`lennard/mdf <pair_mdf>`
* :doc:`lepton (o) <pair_lepton>`
* :doc:`lepton/coul (o) <pair_lepton>`
* :doc:`line/lj <pair_line_lj>`
* :doc:`lj/charmm/coul/charmm (giko) <pair_charmm>`
* :doc:`lj/charmm/coul/charmm/implicit (ko) <pair_charmm>`
@ -201,10 +203,11 @@ OPT.
* :doc:`meam/spline (o) <pair_meam_spline>`
* :doc:`meam/sw/spline <pair_meam_sw_spline>`
* :doc:`mesocnt <pair_mesocnt>`
* :doc:`mesocnt/viscous <pair_mesocnt>`
* :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>`
@ -235,6 +238,8 @@ OPT.
* :doc:`oxrna2/xstk <pair_oxrna2>`
* :doc:`oxrna2/coaxstk <pair_oxrna2>`
* :doc:`pace (k) <pair_pace>`
* :doc:`pace/extrapolation (k) <pair_pace>`
* :doc:`pod <pair_pod>`
* :doc:`peri/eps <pair_peri>`
* :doc:`peri/lps (o) <pair_peri>`
* :doc:`peri/pmb (o) <pair_peri>`
@ -293,6 +298,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

@ -2,14 +2,17 @@ Removed commands and packages
=============================
This page lists LAMMPS commands and packages that have been removed from
the distribution and provides suggestions for alternatives or replacements.
LAMMPS has special dummy styles implemented, that will stop LAMMPS and
print a suitable error message in most cases, when a style/command is used
that has been removed.
the distribution and provides suggestions for alternatives or
replacements. LAMMPS has special dummy styles implemented, that will
stop LAMMPS and print a suitable error message in most cases, when a
style/command is used that has been removed or will replace the command
with the direct alternative (if available) and print a warning.
Fix ave/spatial and fix ave/spatial/sphere
------------------------------------------
.. deprecated:: 11Dec2015
The fixes ave/spatial and ave/spatial/sphere have been removed from LAMMPS
since they were superseded by the more general and extensible "chunk
infrastructure". Here the system is partitioned in one of many possible
@ -17,10 +20,23 @@ ways through the :doc:`compute chunk/atom <compute_chunk_atom>` command
and then averaging is done using :doc:`fix ave/chunk <fix_ave_chunk>`.
Please refer to the :doc:`chunk HOWTO <Howto_chunk>` section for an overview.
Reset_ids command
-----------------
Box command
-----------
The reset_ids command has been renamed to :doc:`reset_atom_ids <reset_atom_ids>`.
.. deprecated:: 22Dec2022
The *box* command has been removed and the LAMMPS code changed so it won't
be needed. If present, LAMMPS will ignore the command and print a warning.
Reset_ids, reset_atom_ids, reset_mol_ids commands
-------------------------------------------------
.. deprecated:: 22Dec2022
The *reset_ids*, *reset_atom_ids*, and *reset_mol_ids* commands have
been folded into the :doc:`reset_atoms <reset_atoms>` command. If
present, LAMMPS will replace the commands accordingly and print a
warning.
MEAM package
------------
@ -30,18 +46,21 @@ The code in the :ref:`MEAM package <PKG-MEAM>` is a translation of the
Fortran code of MEAM into C++, which removes several restrictions
(e.g. there can be multiple instances in hybrid pair styles) and allows
for some optimizations leading to better performance. The pair style
:doc:`meam <pair_meam>` has the exact same syntax.
:doc:`meam <pair_meam>` has the exact same syntax. For a transition
period the C++ version of MEAM was called USER-MEAMC so it could
coexist with the Fortran version.
REAX package
------------
The REAX package has been removed since it was superseded by the
:ref:`REAXFF package <PKG-REAXFF>`. The REAXFF
package has been tested to yield equivalent results to the REAX package,
offers better performance, supports OpenMP multi-threading via OPENMP,
and GPU and threading parallelization through KOKKOS. The new pair styles
are not syntax compatible with the removed reax pair style, so input
files will have to be adapted.
:ref:`REAXFF package <PKG-REAXFF>`. The REAXFF package has been tested
to yield equivalent results to the REAX package, offers better
performance, supports OpenMP multi-threading via OPENMP, and GPU and
threading parallelization through KOKKOS. The new pair styles are not
syntax compatible with the removed reax pair style, so input files will
have to be adapted. The REAXFF package was originally called
USER-REAXC.
USER-CUDA package
-----------------
@ -60,5 +79,6 @@ restart2data tool
The functionality of the restart2data tool has been folded into the
LAMMPS executable directly instead of having a separate tool. A
combination of the commands :doc:`read_restart <read_restart>` and
:doc:`write_data <write_data>` can be used to the same effect. For added
convenience this conversion can also be triggered by :doc:`command line flags <Run_options>`
:doc:`write_data <write_data>` can be used to the same effect. For
added convenience this conversion can also be triggered by
:doc:`command line flags <Run_options>`

View File

@ -23,3 +23,4 @@ of time and requests from the LAMMPS user community.
Classes
Developer_platform
Developer_utils
Developer_grid

View File

@ -50,7 +50,7 @@ parallel each MPI process creates such an instance. This can be seen
in the ``main.cpp`` file where the core steps of running a LAMMPS
simulation are the following 3 lines of code:
.. code-block:: C++
.. code-block:: c++
LAMMPS *lammps = new LAMMPS(argc, argv, lammps_comm);
lammps->input->file();
@ -78,7 +78,7 @@ LAMMPS makes extensive use of the object oriented programming (OOP)
principles of *compositing* and *inheritance*. Classes like the
``LAMMPS`` class are a **composite** containing pointers to instances
of other classes like ``Atom``, ``Comm``, ``Force``, ``Neighbor``,
``Modify``, and so on. Each of these classes implement certain
``Modify``, and so on. Each of these classes implements certain
functionality by storing and manipulating data related to the
simulation and providing member functions that trigger certain
actions. Some of those classes like ``Force`` are themselves
@ -87,9 +87,9 @@ interactions. Similarly the ``Modify`` class contains a list of
``Fix`` and ``Compute`` classes. If the input commands that
correspond to these classes include the word *style*, then LAMMPS
stores only a single instance of that class. E.g. *atom_style*,
*comm_style*, *pair_style*, *bond_style*. It the input command does
not include the word *style*, there can be many instances of that
class defined. E.g. *region*, *fix*, *compute*, *dump*.
*comm_style*, *pair_style*, *bond_style*. If the input command does
**not** include the word *style*, then there may be many instances of
that class defined, for example *region*, *fix*, *compute*, *dump*.
**Inheritance** enables creation of *derived* classes that can share
common functionality in their base class while providing a consistent
@ -232,7 +232,7 @@ macro ``PairStyle()`` will associate the style name "lj/cut"
with a factory function creating an instance of the ``PairLJCut``
class.
.. code-block:: C++
.. code-block:: c++
// from force.h
typedef Pair *(*PairCreator)(LAMMPS *);
@ -360,7 +360,7 @@ characters; "{:<8}" would do this as left aligned, "{:^8}" as centered,
argument type must be compatible or else the {fmt} formatting code will
throw an exception. Some format string examples are given below:
.. code-block:: C
.. code-block:: c++
auto mesg = fmt::format(" CPU time: {:4d}:{:02d}:{:02d}\n", cpuh, cpum, cpus);
mesg = fmt::format("{:<8s}| {:<10.5g} | {:<10.5g} | {:<10.5g} |{:6.1f} |{:6.2f}\n",

846
doc/src/Developer_grid.rst Normal file
View File

@ -0,0 +1,846 @@
Use of distributed grids within style classes
---------------------------------------------
.. versionadded:: 22Dec2022
The LAMMPS source code includes two classes which facilitate the
creation and use of distributed grids. These are the Grid2d and
Grid3d classes in the src/grid2d.cpp.h and src/grid3d.cpp.h files
respectively. As the names imply, they are used for 2d or 3d
simulations, as defined by the :doc:`dimension <dimension>` command.
The :doc:`Howto_grid <Howto_grid>` page gives an overview of how
distributed grids are defined from a user perspective, lists LAMMPS
commands which use them, and explains how grid cell data is referenced
from an input script. Please read that page first as it motivates the
coding details discussed here.
This doc page is for users who wish to write new styles (input script
commands) which use distributed grids. There are a variety of
material models and analysis methods which use atoms (or
coarse-grained particles) and grids in tandem.
A *distributed* grid means each processor owns a subset of the grid
cells. In LAMMPS, the subset for each processor will be a sub-block
of grid cells with low and high index bounds in each dimension of the
grid. The union of the sub-blocks across all processors is the global
grid.
More specifically, a grid point is defined for each cell (by default
the center point), and a processor owns a grid cell if its point is
within the processor's spatial sub-domain. The union of processor
sub-domains is the global simulation box. If a grid point is on the
boundary of two sub-domains, the lower processor owns the grid cell. A
processor may also store copies of ghost cells which surround its
owned cells.
----------
Style commands
^^^^^^^^^^^^^^
Style commands which can define and use distributed grids include the
:doc:`compute <compute>`, :doc:`fix <fix>`, :doc:`pair <pair_style>`,
and :doc:`kspace <kspace_style>` styles. If you wish grid cell data
to persist across timesteps, then use a fix. If you wish grid cell
data to be accessible by other commands, then use a fix or compute.
Currently in LAMMPS, the :doc:`pair_style amoeba <pair_amoeba>`,
:doc:`kspace_style pppm <kspace_style>`, and :doc:`kspace_style msm
<kspace_style>` commands use distributed grids but do not require
either of these capabilities; they thus create and use distributed
grids internally. Note that a pair style which needs grid cell data
to persist could be coded to work in tandem with a fix style which
provides that capability.
The *size* of a grid is specified by the number of grid cells in each
dimension of the simulation domain. In any dimension the size can be
any value >= 1. Thus a 10x10x1 grid for a 3d simulation is
effectively a 2d grid, where each grid cell spans the entire
z-dimension. A 1x100x1 grid for a 3d simulation is effectively a 1d
grid, where grid cells are a series of thin xz slabs in the
y-dimension. It is even possible to define a 1x1x1 3d grid, though it
may be inefficient to use it in a computational sense.
Note that the choice of grid size is independent of the number of
processors or their layout in a grid of processor sub-domains which
overlays the simulations domain. Depending on the distributed grid
size, a single processor may own many 1000s or no grid cells.
A command can define multiple grids, each of a different size. Each
grid is an instantiation of the Grid2d or Grid3d class.
The command also defines what data it will store for each grid it
creates and it allocates the multi-dimensional array(s) needed to
store the data. No grid cell data is stored within the Grid2d or
Grid3d classes.
If a single value per grid cell is needed, the data array will have
the same dimension as the grid, i.e. a 2d array for a 2d grid,
likewise for 3d. If multiple values per grid cell are needed, the
data array will have one more dimension than the grid, i.e. a 3d array
for a 2d grid, or 4d array for a 3d grid. A command can choose to
define multiple data arrays for each grid it defines.
----------
Grid data allocation and access
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The simplest way for a command to allocate and access grid cell data
is to use the *create_offset()* methods provided by the Memory class.
Arguments for these methods can be values returned by the
*setup_grid()* method (described below), which define the extent of
the grid cells (owned+ghost) the processor owns. These 4 methods
allocate memory for 2d (first two) and 3d (second two) grid data. The
two methods that end in "_one" allocate an array which stores a single
value per grid cell. The two that end in "_multi" allocate an array
which stores *Nvalues* per grid cell.
.. code-block:: c++
// single value per cell for a 2d grid = 2d array
memory->create2d_offset(data2d_one, nylo_out, nyhi_out,
nxlo_out, nxhi_out, "data2d_one");
// nvalues per cell for a 2d grid = 3d array
memory->create3d_offset_last(data2d_multi, nylo_out, nyhi_out,
nxlo_out, nxhi_out, nvalues, "data2d_multi");
// single value per cell for a 3d grid = 3d array
memory->create3d_offset(data3d_one, nzlo_out, nzhi_out, nylo_out,
nyhi_out, nxlo_out, nxhi_out, "data3d_one");
// nvalues per cell for a 3d grid = 4d array
memory->create4d_offset_last(data3d_multi, nzlo_out, nzhi_out, nylo_out,
nyhi_out, nxlo_out, nxhi_out, nvalues,
"data3d_multi");
Note that these multi-dimensional arrays are allocated as contiguous
chunks of memory where the x-index of the grid varies fastest, then y,
and the z-index slowest. For multiple values per grid cell, the
Nvalues are contiguous, so their index varies even faster than the
x-index.
The key point is that the "offset" methods create arrays which are
indexed by the range of indices which are the bounds of the sub-block
of the global grid owned by this processor. This means loops like
these can be written in the caller code to loop over owned grid cells,
where the "i" loop bounds are the range of owned grid cells for the
processor. These are the bounds returned by the *setup_grid()*
method:
.. code-block:: c++
for (int iy = iylo; iy <= iyhi; iy++)
for (int ix = ixlo; ix <= ixhi; ix++)
data2d_one[iy][ix] = 0.0;
for (int iy = iylo; iy <= iyhi; iy++)
for (int ix = ixlo; ix <= ixhi; ix++)
for (int m = 0; m < nvalues; m++)
data2d_multi[iy][ix][m] = 0.0;
for (int iz = izlo; iz <= izhi; iz++)
for (int iy = iylo; iy <= iyhi; iy++)
for (int ix = ixlo; ix <= ixhi; ix++)
data3d_one[iz][iy][ix] = 0.0;
for (int iz = izlo; iz <= izhi; iz++)
for (int iy = iylo; iy <= iyhi; iy++)
for (int ix = ixlo; ix <= ixhi; ix++)
for (int m = 0; m < nvalues; m++)
data3d_multi[iz][iy][ix][m] = 0.0;
Simply replacing the "i" bounds with "o" bounds, also returned by the
*setup_grid()* method, would alter this code to loop over owned+ghost
cells (the entire allocated grid).
----------
Grid class constructors
^^^^^^^^^^^^^^^^^^^^^^^
The following sub-sections describe the public methods of the Grid3d
class which a style command can invoke. The Grid2d methods are
similar; simply remove arguments which refer to the z-dimension.
There are 2 constructors which can be used. They differ in the extra
i/o xyz lo/hi arguments:
.. code-block:: c++
Grid3d(class LAMMPS *lmp, MPI_Comm gcomm, int gnx, int gny, int gnz)
Grid3d(class LAMMPS *lmp, MPI_Comm gcomm, int gnx, int gny, int gnz,
int ixlo, int ixhi, int iylo, int iyhi, int izlo, int izhi,
int oxlo, int oxhi, int oylo, int oyhi, int ozlo, int ozhi)
Both constructors take the LAMMPS instance pointer and a communicator
over which the grid will be distributed. Typically this is the
*world* communicator the LAMMPS instance is using. The
:doc:`kspace_style msm <kspace_style>` command creates a series of
grids, each of different size, which are partitioned across different
sub-communicators of processors. Both constructors are also passed
the global grid size: *gnx* by *gny* by *gnz*.
The first constructor is used when the caller wants the Grid class to
partition the global grid across processors; the Grid class defines
which grid cells each processor owns and also which it stores as ghost
cells. A subsequent call to *setup_grid()*, discussed below, returns
this info to the caller.
The second constructor allows the caller to define the extent of owned
and ghost cells, and pass them to the Grid class. The 6 arguments
which start with "i" are the inclusive lower and upper index bounds of
the owned (inner) grid cells this processor owns in each of the 3
dimensions within the global grid. Owned grid cells are indexed from
0 to N-1 in each dimension.
The 6 arguments which start with "o" are the inclusive bounds of the
owned+ghost (outer) grid cells it stores. If the ghost cells are on
the other side of a periodic boundary, then these indices may be < 0
or >= N in any dimension, so that oxlo <= ixlo and ixhi >= ixhi is
always the case.
For example, if Nx = 100, then a processor might pass ixlo=50,
ixhi=60, oxlo=48, oxhi=62 to the Grid class. Or ixlo=0, ixhi=10,
oxlo=-2, oxhi=13. If a processor owns no grid cells in a dimension,
then the ihi value should be specified as one less than the ilo value.
Note that the only reason to use the second constructor is if the
logic for assigning ghost cells is too complex for the Grid class to
compute, using the various set() methods described next. Currently
only the kspace_style pppm/electrode and kspace_style msm commands use
the second constructor.
----------
Grid class set methods
^^^^^^^^^^^^^^^^^^^^^^
The following methods affect how the Grid class computes which owned
and ghost cells are assigned to each processor. *Set_shift_grid()* is
the only method which influences owned cell assignment; all the rest
influence ghost cell assignment. These methods are only used with the
first constructor; they are ignored if the second constructor is used.
These methods must be called before the *setup_grid()* method is
invoked, because they influence its operation.
.. code-block:: c++
void set_shift_grid(double shift);
void set_distance(double distance);
void set_stencil_atom(int lo, int hi);
void set_shift_atom(double shift_lo, double shift_hi);
void set_stencil_grid(int lo, int hi);
void set_zfactor(double factor);
Processors own a grid cell if a point within the grid cell is inside
the processor's sub-domain. By default this is the center point of the
grid cell. The *set_shift_grid()* method can change this. The *shift*
argument is a value from 0.0 to 1.0 (inclusive) which is the offset of
the point within the grid cell in each dimension. The default is 0.5
for the center of the cell. A value of 0.0 is the lower left corner
point; a value of 1.0 is the upper right corner point. There is
typically no need to change the default as it is optimal for
minimizing the number of ghost cells needed.
If a processor maps its particles to grid cells, it needs to allow for
its particles being outside its sub-domain between reneighboring. The
*distance* argument of the *set_distance()* method sets the furthest
distance outside a processor's sub-domain which a particle can move.
Typically this is half the neighbor skin distance, assuming
reneighboring is done appropriately. This distance is used in
determining how many ghost cells a processor needs to store to enable
its particles to be mapped to grid cells. The default value is 0.0.
Some commands, like the :doc:`kspace_style pppm <kspace_style>`
command, map values (charge in the case of PPPM) to a stencil of grid
cells beyond the grid cell the particle is in. The stencil extent may
be different in the low and high directions. The *set_stencil_atom()*
method defines the maximum values of those 2 extents, assumed to be
the same in each of the 3 dimensions. Both the lo and hi values are
specified as positive integers. The default values are both 0.
Some commands, like the :doc:`kspace_style pppm <kspace_style>`
command, shift the position of an atom when mapping it to a grid cell,
based on the size of the stencil used to map values to the grid
(charge in the case of PPPM). The lo and hi arguments of the
*set_shift_atom()* method are the minimum shift in the low direction
and the maximum shift in the high direction, assumed to be the same in
each of the 3 dimensions. The shifts should be fractions of a grid
cell size with values between 0.0 and 1.0 inclusive. The default
values are both 0.0. See the src/pppm.cpp file for examples of these
lo/hi values for regular and staggered grids.
Some methods like the :doc:`fix ttm/grid <fix_ttm>` command, perform
finite difference kinds of operations on the grid, to diffuse electron
heat in the case of the two-temperature model (TTM). This operation
uses ghost grid values beyond the owned grid values the processor
updates. The *set_stencil_grid()* method defines the extent of this
stencil in both directions, assumed to be the same in each of the 3
dimensions. Both the lo and hi values are specified as positive
integers. The default values are both 0.
The kspace_style pppm commands allow a grid to be defined which
overlays a volume which extends beyond the simulation box in the z
dimension. This is for the purpose of modeling a 2d-periodic slab
(non-periodic in z) as if it were a larger 3d periodic system,
extended (with empty space) in the z dimension. The
:doc:`kspace_modify slab <kspace_modify>` command is used to specify
the ratio of the larger volume to the simulation volume; a volume
ratio of ~3 is typical. For this kind of model, the PPPM caller sets
the global grid size *gnz* ~3x larger than it would be otherwise.
This same ratio is passed by the PPPM caller as the *factor* argument
to the Grid class via the *set_zfactor()* method (*set_yfactor()* for
2d grids). The Grid class will then assign ownership of the 1/3 of
grid cells that overlay the simulation box to the processors which
also overlay the simulation box. The remaining 2/3 of the grid cells
are assigned to processors whose sub-domains are adjacent to the upper
z boundary of the simulation box.
----------
Grid class setup_grid method
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The *setup_grid()* method is called after the first constructor
(above) to partition the grid across processors, which determines
which grid cells each processor owns. It also calculates how many
ghost grid cells in each dimension and each direction each processor
needs to store.
Note that this method is NOT called if the second constructor above is
used. In that case, the caller assigns owned and ghost cells to each
processor.
Also note that this method must be invoked after any *set_*()* methods have
been used, since they can influence the assignment of owned and ghost
cells.
.. code-block:: c++
void setup_grid(int &ixlo, int &ixhi, int &iylo, int &iyhi, int &izlo, int &izhi,
int &oxlo, int &oxhi, int &oylo, int &oyhi, int &ozlo, int &ozhi)
The 6 return arguments which start with "i" are the inclusive lower
and upper index bounds of the owned (inner) grid cells this processor
owns in each of the 3 dimensions within the global grid. Owned grid
cells are indexed from 0 to N-1 in each dimension.
The 6 return arguments which start with "o" are the inclusive bounds of
the owned+ghost cells it owns. If the ghost cells are on the other
side of a periodic boundary, then these indices may be < 0 or >= N in
any dimension, so that oxlo <= ixlo and ixhi >= ixhi is always the
case.
----------
More grid class set methods
^^^^^^^^^^^^^^^^^^^^^^^^^^^
The following 2 methods can be used to override settings made by the
constructors above. If used, they must be called called before the
*setup_comm()* method is invoked, since it uses the settings that
these methods override. In LAMMPS these methods are called by by the
:doc:`kspace_style msm <kspace_style>` command for the grids it
instantiates using the 2nd constructor above.
.. code-block:: c++
void set_proc_neighs(int pxlo, int pxhi, int pylo, int pyhi, int pzlo, int pzhi)
void set_caller_grid(int fxlo, int fxhi, int fylo, int fyhi, int fzlo, int fzhi)
The *set_proc_neighs()* method sets the processor IDs of the 6
neighboring processors for each processor. Normally these would match
the processor grid neighbors which LAMMPS creates to overlay the
simulation box (the default). However, MSM excludes non-participating
processors from coarse grid communication when less processors are
used. This method allows MSM to override the default values.
The *set_caller_grid()* method species the size of the data arrays the
caller allocates. Normally these would match the extent of the ghost
grid cells (the default). However the MSM caller allocates a larger
data array (more ghost cells) for its finest-level grid, for use in
other operations besides owned/ghost cell communication. This method
allows MSM to override the default values.
----------
Grid class get methods
^^^^^^^^^^^^^^^^^^^^^^
The following methods allow the caller to query the settings for a
specific grid, whether it created the grid or another command created
it.
.. code-block:: c++
void get_size(int &nxgrid, int &nygrid, int &nzgrid);
void get_bounds_owned(int &xlo, int &xhi, int &ylo, int &yhi, int &zlo, int &zhi)
void get_bounds_ghost(int &xlo, int &xhi, int &ylo, int &yhi, int &zlo, int &zhi)
The *get_size()* method returns the size of the global grid in each dimension.
The *get_bounds_owned()* method return the inclusive index bounds of
the grid cells this processor owns. The values range from 0 to N-1 in
each dimension. These values are the same as the "i" values returned
by *setup_grid()*.
The *get_bounds_ghost()* method return the inclusive index bounds of
the owned+ghost grid cells this processor stores. The owned cell
indices range from 0 to N-1, so these indices may be less than 0 or
greater than or equal to N in each dimension. These values are the
same as the "o" values returned by *setup_grid()*.
----------
Grid class owned/ghost communication
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If needed by the command, the following methods setup and perform
communication of grid data to/from neighboring processors. The
*forward_comm()* method sends owned grid cell data to the
corresponding ghost grid cells on other processors. The
*reverse_comm()* method sends ghost grid cell data to the
corresponding owned grid cells on another processor. The caller can
choose to sum ghost grid cell data to the owned grid cell or simply
copy it.
.. code-block:: c++
void setup_comm(int &nbuf1, int &nbuf2)
void forward_comm(int caller, void *ptr, int which, int nper, int nbyte,
void *buf1, void *buf2, MPI_Datatype datatype);
void reverse_comm(int caller, void *ptr, int which, int nper, int nbyte,
void *buf1, void *buf2, MPI_Datatype datatype)
int ghost_adjacent();
The *setup_comm()* method must be called one time before performing
*forward* or *reverse* communication (multiple times if needed). It
returns two integers, which should be used to allocate two buffers.
The *nbuf1* and *nbuf2* values are the number of grid cells whose data
will be stored in two buffers by the Grid class when *forward* or
*reverse* communication is performed. The caller should thus allocate
them to a size large enough to hold all the data used in any single
forward or reverse communication operation it performs. Note that the
caller may allocate and communicate multiple data arrays for a grid it
instantiates. This size includes the bytes needed for the data type
of the grid data it stores, e.g. double precision values.
The *forward_comm()* and *reverse_comm()* methods send grid cell data
from owned to ghost cells, or ghost to owned cells, respectively, as
described above. The *caller* argument should be one of these values
-- Grid3d::COMPUTE, Grid3d::FIX, Grid3d::KSPACE, Grid3d::PAIR --
depending on the style of the caller class. The *ptr* argument is the
"this" pointer to the caller class. These 2 arguments are used to
call back to pack()/unpack() functions in the caller class, as
explained below.
The *which* argument is a flag the caller can set which is passed to
the caller's pack()/unpack() methods. This allows a single callback
method to pack/unpack data for several different flavors of
forward/reverse communication, e.g. operating on different grids or
grid data.
The *nper* argument is the number of values per grid cell to be
communicated. The *nbyte* argument is the number of bytes per value,
e.g. 8 for double-precision values. The *buf1* and *buf2* arguments
are the two allocated buffers described above. So long as they are
allocated for the maximum size communication, they can be re-used for
any *forward_comm()/reverse_comm()* call. The *datatype* argument is
the MPI_Datatype setting, which should match the buffer allocation and
the *nbyte* argument. E.g. MPI_DOUBLE for buffers storing double
precision values.
To use the *forward_grid()* method, the caller must provide two
callback functions; likewise for use of the *reverse_grid()* methods.
These are the 4 functions, their arguments are all the same.
.. code-block:: c++
void pack_forward_grid(int which, void *vbuf, int nlist, int *list);
void unpack_forward_grid(int which, void *vbuf, int nlist, int *list);
void pack_reverse_grid(int which, void *vbuf, int nlist, int *list);
void unpack_reverse_grid(int which, void *vbuf, int nlist, int *list);
The *which* argument is set to the *which* value of the
*forward_comm()* or *reverse_comm()* calls. It allows the pack/unpack
function to select what data values to pack/unpack. *Vbuf* is the
buffer to pack/unpack the data to/from. It is a void pointer so that
the caller can cast it to whatever data type it chooses, e.g. double
precision values. *Nlist* is the number of grid cells to pack/unpack
and *list* is a vector (nlist in length) of offsets to where the data
for each grid cell resides in the caller's data arrays, which is best
illustrated with an example from the src/EXTRA-FIX/fix_ttm_grid.cpp
class which stores the scalar electron temperature for 3d system in a
3d grid (one value per grid cell):
.. code-block:: c++
void FixTTMGrid::pack_forward_grid(int /*which*/, void *vbuf, int nlist, int *list)
{
auto buf = (double *) vbuf;
double *src = &T_electron[nzlo_out][nylo_out][nxlo_out];
for (int i = 0; i < nlist; i++) buf[i] = src[list[i]];
}
In this case, the *which* argument is not used, *vbuf* points to a
buffer of doubles, and the electron temperature is stored by the
FixTTMGrid class in a 3d array of owned+ghost cells called T_electron.
That array is allocated by the *memory->create_3d_offset()* method
described above so that the first grid cell it stores is indexed as
T_electron[nzlo_out][nylo_out][nxlo_out]. The *nlist* values in
*list* are integer offsets from that first grid cell. Setting *src*
to the address of the first cell allows those offsets to be used to
access the temperatures to pack into the buffer.
Here is a similar portion of code from the src/fix_ave_grid.cpp class
which can store two kinds of data, a scalar count of atoms in a grid
cell, and one or more grid-cell-averaged atom properties. The code
from its *unpack_reverse_grid()* function for 2d grids and multiple
per-atom properties per grid cell (*nvalues*) is shown here:
.. code-block:: c++
void FixAveGrid::unpack_reverse_grid(int /*which*/, void *vbuf, int nlist, int *list)
{
auto buf = (double *) vbuf;
double *count,*data,*values;
count = &count2d[nylo_out][nxlo_out];
data = &array2d[nylo_out][nxlo_out][0];
m = 0;
for (i = 0; i < nlist; i++) {
count[list[i]] += buf[m++];
values = &data[nvalues*list[i]];
for (j = 0; j < nvalues; j++)
values[j] += buf[m++];
}
}
Both the count and the multiple values per grid cell are communicated
in *vbuf*. Note that *data* is now a pointer to the first value in
the first grid cell. And *values* points to where the first value in
*data* is for an offset of grid cells, calculated by multiplying
*nvalues* by *list[i]*. Finally, because this is reverse
communication, the communicated buffer values are summed to the caller
values.
The *ghost_adjacent()* method returns a 1 if every processor can
perform the necessary owned/ghost communication with only its nearest
neighbor processors (4 in 2d, 6 in 3d). It returns a 0 if any
processor's ghost cells extend further than nearest neighbor
processors.
This can be checked by callers who have the option to change the
global grid size to insure more efficient nearest-neighbor-only
communication if they wish. In this case, they instantiate a grid of
a given size (resolution), then invoke *setup_comm()* followed by
*ghost_adjacent()*. If the ghost cells are not adjacent, they destroy
the grid instance and start over with a higher-resolution grid.
Several of the :doc:`kspace_style pppm <kspace_style>` command
variants have this option.
----------
Grid class remap methods for load balancing
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The following methods are used when a load-balancing operation,
triggered by the :doc:`balance <balance>` or :doc:`fix balance
<fix_balance>` commands, changes the partitioning of the simulation
domain into processor sub-domains.
In order to work with load-balancing, any style command (compute, fix,
pair, or kspace style) which allocates a grid and stores per-grid data
should define a *reset_grid()* method; it takes no arguments. It will
be called by the two balance commands after they have reset processor
sub-domains and migrated atoms (particles) to new owning processors.
The *reset_grid()* method will typically perform some or all of the
following operations. See the src/fix_ave_grid.cpp and
src/EXTRA_FIX/fix_ttm_grid.cpp files for examples of *reset_grid()*
methods, as well as the *pack_remap_grid()* and *unpack_remap_grid()*
functions.
First, the *reset_grid()* method can instantiate new grid(s) of the
same global size, then call *setup_grid()* to partition them via the
new processor sub-domains. At this point, it can invoke the
*identical()* method which compares the owned and ghost grid cell
index bounds between two grids, the old grid passed as a pointer
argument, and the new grid whose *identical()* method is being called.
It returns 1 if the indices match on all processors, otherwise 0. If
they all match, then the new grids can be deleted; the command can
continue to use the old grids.
If not, then the command should allocate new grid data array(s) which
depend on the new partitioning. If the command does not need to
persist its grid data from the old partitioning to the new one, then
the command can simply delete the old data array(s) and grid
instance(s). It can then return.
If the grid data does need to persist, then the data for each grid
needs to be "remapped" from the old grid partitioning to the new grid
partitioning. The *setup_remap()* and *remap()* methods are used for
that purpose.
.. code-block:: c++
int identical(Grid3d *old);
void setup_remap(Grid3d *old, int &nremap_buf1, int &nremap_buf2)
void remap(int caller, void *ptr, int which, int nper, int nbyte,
void *buf1, void *buf2, MPI_Datatype datatype)
The arguments to these methods are identical to those for
the *setup_comm()* and *forward_comm()* or *reverse_comm()* methods.
However the returned *nremap_buf1* and *nremap2_buf* values will be
different than the *nbuf1* and *nbuf2* values. They should be used to
allocate two different remap buffers, separate from the owned/ghost
communication buffers.
To use the *remap()* method, the caller must provide two
callback functions:
.. code-block:: c++
void pack_remap_grid(int which, void *vbuf, int nlist, int *list);
void unpack_remap_grid(int which, void *vbuf, int list, int *list);
Their arguments are identical to those for the *pack_forward_grid()*
and *unpack_forward_grid()* callback functions (or the reverse
variants) discussed above. Normally, both these methods pack/unpack
all the data arrays for a given grid. The *which* argument of the
*remap()* method sets the *which* value for the pack/unpack functions.
If the command instantiates multiple grids (of different sizes), it
can be used within the pack/unpack methods to select which grid's data
is being remapped.
Note that the *pack_remap_grid()* function must copy values from the
OLD grid data arrays into the *vbuf* buffer. The *unpack_remap_grid()*
function must copy values from the *vbuf* buffer into the NEW grid
data arrays.
After the remap operation for grid cell data has been performed, the
*reset_grid()* method can deallocate the two remap buffers it created,
and can then exit.
----------
Grid class I/O methods
^^^^^^^^^^^^^^^^^^^^^^
There are two I/O methods in the Grid classes which can be used to
read and write grid cell data to files. The caller can decide on the
precise format of each file, e.g. whether header lines are prepended
or comment lines are allowed. Fundamentally, the file should contain
one line per grid cell for the entire global grid. Each line should
contain identifying info as to which grid cell it is, e.g. a unique
grid cell ID or the ix,iy,iz indices of the cell within a 3d grid.
The line should also contain one or more data values which are stored
within the grid data arrays created by the command
For grid cell IDs, the LAMMPS convention is that the IDs run from 1 to
N, where N = Nx * Ny for 2d grids and N = Nx * Ny * Nz for 3d grids.
The x-index of the grid cell varies fastest, then y, and the z-index
varies slowest. So for a 10x10x10 grid the cell IDs from 901-1000
would be in the top xy layer of the z dimension.
The *read_file()* method does something simple. It reads a chunk of
consecutive lines from the file and passes them back to the caller to
process. The caller provides a *unpack_read_grid()* function for this
purpose. The function checks the grid cell ID or indices and only
stores grid cell data for the grid cells it owns.
The *write_file()* method does something slightly more complex. Each
processor packs the data for its owned grid cells into a buffer. The
caller provides a *pack_write_grid()* function for this purpose. The
*write_file()* method then loops over all processors and each sends
its buffer one at a time to processor 0, along with the 3d (or 2d)
index bounds of its grid cell data within the global grid. Processor
0 calls back to the *unpack_write_grid()* function provided by the
caller with the buffer. The function writes one line per grid cell to
the file.
See the src/EXTRA_FIX/fix_ttm_grid.cpp file for examples of now both
these methods are used to read/write electron temperature values
from/to a file, as well as for implementations of the the pack/unpack
functions described below.
Here are the details of the two I/O methods and the 3 callback
functions. See the src/fix_ave_grid.cpp file for examples of all of
them.
.. code-block:: c++
void read_file(int caller, void *ptr, FILE *fp, int nchunk, int maxline)
void write_file(int caller, void *ptr, int which,
int nper, int nbyte, MPI_Datatype datatype
The *caller* argument in both methods should be one of these values --
Grid3d::COMPUTE, Grid3d::FIX, Grid3d::KSPACE, Grid3d::PAIR --
depending on the style of the caller class. The *ptr* argument in
both methods is the "this" pointer to the caller class. These 2
arguments are used to call back to pack()/unpack() functions in the
caller class, as explained below.
For the *read_file()* method, the *fp* argument is a file pointer to
the file to be read from, opened on processor 0 by the caller.
*Nchunk* is the number of lines to read per chunk, and *maxline* is
the maximum number of characters per line. The Grid class will
allocate a buffer for storing chunks of lines based on these values.
For the *write_file()* method, the *which* argument is a flag the
caller can set which is passed back to the caller's pack()/unpack()
methods. If the command instantiates multiple grids (of different
sizes), this flag can be used within the pack/unpack methods to select
which grid's data is being written out (presumably to different
files). the *nper* argument is the number of values per grid cell to
be written out. The *nbyte* argument is the number of bytes per
value, e.g. 8 for double-precision values. The *datatype* argument is
the MPI_Datatype setting, which should match the *nbyte* argument.
E.g. MPI_DOUBLE for double precision values.
To use the *read_grid()* method, the caller must provide one callback
function. To use the *write_grid()* method, it provides two callback
functions:
.. code-block:: c++
int unpack_read_grid(int nlines, char *buffer)
void pack_write_grid(int which, void *vbuf)
void unpack_write_grid(int which, void *vbuf, int *bounds)
For *unpack_read_grid()* the *nlines* argument is the number of lines
of character data read from the file and contained in *buffer*. The
lines each include a newline character at the end. When the function
processes the lines, it may choose to skip some of them (header or
comment lines). It returns an integer count of the number of grid
cell lines it processed. This enables the Grid class *read_file()*
method to know when it has read the correct number of lines.
For *pack_write_grid()* and *unpack_write_grid()*, the *vbuf* argument
is the buffer to pack/unpack data to/from. It is a void pointer so
that the caller can cast it to whatever data type it chooses,
e.g. double precision values. the *which* argument is set to the
*which* value of the *write_file()* method. It allows the caller to
choose which grid data to operate on.
For *unpack_write_grid()*, the *bounds* argument is a vector of 4 or 6
integer grid indices (4 for 2d, 6 for 3d). They are the
xlo,xhi,ylo,yhi,zlo,zhi index bounds of the portion of the global grid
which the *vbuf* holds owned grid cell data values for. The caller
should loop over the values in *vbuf* with a double loop (2d) or
triple loop (3d), similar to the code snippets listed above. The
x-index varies fastest, then y, and the z-index slowest. If there are
multiple values per grid cell, the index for those values varies
fastest of all. The caller can add the x,y,z indices of the grid cell
(or the corresponding grid cell ID) to the data value(s) written as
one line to the output file.
----------
Style class grid access methods
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A style command can enable its grid cell data to be accessible from
other commands. For example :doc:`fix ave/grid <fix_ave_grid>` or
:doc:`dump grid <dump>` or :doc:`dump grid/vtk <dump>`. Those
commands access the grid cell data by using a *grid reference* in
their input script syntax, as described on the :doc:`Howto_grid
<Howto_grid>` doc page. They look like this:
* c_ID:gname:dname
* c_ID:gname:dname[I]
* f_ID:gname:dname
* f_ID:gname:dname[I]
Each grid a command instantiates has a unique *gname*, defined by the
command. Likewise each grid cell data structure (scalar or vector)
associated with a grid has a unique *dname*, also defined by the
command.
To provide access to its grid cell data, a style command needs to
implement the following 4 methods:
.. code-block:: c++
int get_grid_by_name(const std::string &name, int &dim);
void *get_grid_by_index(int index);
int get_griddata_by_name(int igrid, const std::string &name, int &ncol);
void *get_griddata_by_index(int index);
Currently only computes and fixes can implement these methods. If it
does so, the compute of fix should also set the variable
*pergrid_flag* to 1. See any of the compute or fix commands which set
"pergrid_flag = 1" for examples of how these 4 functions can be
implemented.
The *get_grid_by_name()* method takes a grid name as input and returns
two values. The *dim* argument is returned as 2 or 3 for the
dimensionality of the grid. The function return is a grid index from
0 to G-1 where *G* is the number of grids the command instantiates. A
value of -1 is returned if the grid name is not recognized.
The *get_grid_by_index()* method is called after the
*get_grid_by_name()* method, using the grid index it returned as its
argument. This method will return a pointer to the Grid2d or Grid3d
class. The caller can use this to query grid attributes, such as the
global size of the grid. The :doc:`dump grid <dump>` to insure each
its grid reference arguments are for grids of the same size.
The *get_griddata_by_name()* method takes a grid index *igrid* and a
data name as input. It returns two values. The *ncol* argument is
returned as a 0 if the grid data is a single value (scalar) per grid
cell, or an integer M > 0 if there are M values (vector) per grid
cell. Note that even if M = 1, it is still a 1-length vector, not a
scalar. The function return is a data index from 0 to D-1 where *D*
is the number of data sets associated with that grid by the command.
A value of -1 is returned if the data name is not recognized.
The *get_griddata_by_index()* method is called after the
*get_griddata_by_name()* method, using the data index it returned as
its argument. This method will return a pointer to the
multi-dimensional array which stores the requested data.
As in the discussion above of the Memory class *create_offset()*
methods, the dimensionality of the array associated with the returned
pointer depends on whether it is a 2d or 3d grid and whether there is
a single or multiple values stored for each grid cell:
* single value per cell for a 2d grid = 2d array pointer
* multiple values per cell for a 2d grid = 3d array pointer
* single value per cell for a 3d grid = 3d array pointer
* multiple values per cell for a 3d grid = 4d array pointer
The caller will typically access the data by casting the void pointer
to the corresponding array pointer and using nested loops in x,y,z
between owned or ghost index bounds returned by the
*get_bounds_owned()* or *get_bounds_ghost()* methods to index into the
array. Example code snippets with this logic were listed above,
----------
Final notes
^^^^^^^^^^^
Finally, here are some additional issues to pay attention to for
writing any style command which uses distributed grids via the Grid2d
or Grid3d class.
The command destructor should delete all instances of the Grid class,
any buffers it allocated for forward/reverse or remap communication,
and any data arrays it allocated to store grid cell data.
If a command is intended to work for either 2d or 3d simulations, then
it should have logic to instantiate either 2d or 3d grids and their
associated data arrays, depending on the dimension of the simulation
box. The :doc:`fix ave/grid <fix_ave_grid>` command is an example of
such a command.
When a command maps its particles to the grid and updates grid cell
values, it should check that it is not updating or accessing a grid
cell value outside the range of its owned+ghost cells, and generate an
error message if that is the case. This could happen, for example, if
a particle has moved further than half the neighbor skin distance,
because the neighbor list update criterion are not adequate to prevent
it from happening. See the src/KSPACE/pppm.cpp file and its
*particle_map()* method for an example of this kind of error check.

View File

@ -105,7 +105,7 @@ list, where each pair of atoms is listed only once (except when the
pairs straddling sub-domains or periodic boundaries will be listed twice).
Thus these are the default settings when a neighbor list request is created in:
.. code-block:: C++
.. code-block:: c++
void Pair::init_style()
{
@ -129,7 +129,7 @@ neighbor list request to the specific needs of a style an additional
request flag is needed. The :doc:`tersoff <pair_tersoff>` pair style,
for example, needs a "full" neighbor list:
.. code-block:: C++
.. code-block:: c++
void PairTersoff::init_style()
{
@ -141,7 +141,7 @@ When a pair style supports r-RESPA time integration with different cutoff region
the request flag may depend on the corresponding r-RESPA settings. Here an example
from pair style lj/cut:
.. code-block:: C++
.. code-block:: c++
void PairLJCut::init_style()
{
@ -160,7 +160,7 @@ Granular pair styles need neighbor lists based on particle sizes and not cutoff
and also may require to have the list of previous neighbors available ("history").
For example with:
.. code-block:: C++
.. code-block:: c++
if (use_history) neighbor->add_request(this, NeighConst::REQ_SIZE | NeighConst::REQ_HISTORY);
else neighbor->add_request(this, NeighConst::REQ_SIZE);
@ -170,7 +170,7 @@ settings each request can set an id which is then used in the corresponding
``init_list()`` function to assign it to the suitable pointer variable. This is
done for example by the :doc:`pair style meam <pair_meam>`:
.. code-block:: C++
.. code-block:: c++
void PairMEAM::init_style()
{
@ -189,7 +189,7 @@ just once) and this can also be indicated by a flag. As an example here
is the request from the ``FixPeriNeigh`` class which is created
internally by :doc:`Peridynamics pair styles <pair_peri>`:
.. code-block:: C++
.. code-block:: c++
neighbor->add_request(this, NeighConst::REQ_FULL | NeighConst::REQ_OCCASIONAL);
@ -198,7 +198,7 @@ than what is usually inferred from the pair style settings (largest cutoff of
all pair styles plus neighbor list skin). The following is used in the
:doc:`compute rdf <compute_rdf>` command implementation:
.. code-block:: C++
.. code-block:: c++
if (cutflag)
neighbor->add_request(this, NeighConst::REQ_OCCASIONAL)->set_cutoff(mycutneigh);
@ -212,7 +212,7 @@ for printing the neighbor list summary the name of the requesting command
should be set. Below is the request from the :doc:`delete atoms <delete_atoms>`
command:
.. code-block:: C++
.. code-block:: c++
neighbor->add_request(this, "delete_atoms", NeighConst::REQ_FULL);

View File

@ -3,9 +3,9 @@ Parallel algorithms
LAMMPS is designed to enable running simulations in parallel using the
MPI parallel communication standard with distributed data via domain
decomposition. The parallelization aims to be efficient result in good
strong scaling (= good speedup for the same system) and good weak
scaling (= the computational cost of enlarging the system is
decomposition. The parallelization aims to be efficient, and resulting
in good strong scaling (= good speedup for the same system) and good
weak scaling (= the computational cost of enlarging the system is
proportional to the system size). Additional parallelization using GPUs
or OpenMP can also be applied within the sub-domain assigned to an MPI
process. For clarity, most of the following illustrations show the 2d

View File

@ -95,7 +95,7 @@ a class ``PairMorse2`` in the files ``pair_morse2.h`` and
``pair_morse2.cpp`` with the factory function and initialization
function would look like this:
.. code-block:: C++
.. code-block:: c++
#include "lammpsplugin.h"
#include "version.h"
@ -141,7 +141,7 @@ list of argument strings), then the pointer type is ``lammpsplugin_factory2``
and it must be assigned to the *creator.v2* member of the plugin struct.
Below is an example for that:
.. code-block:: C++
.. code-block:: c++
#include "lammpsplugin.h"
#include "version.h"
@ -176,7 +176,7 @@ demonstrated in the following example, which also shows that the
implementation of the plugin class may be within the same source
file as the plugin interface code:
.. code-block:: C++
.. code-block:: c++
#include "lammpsplugin.h"

View File

@ -194,7 +194,7 @@ macro. These tests operate by capturing the screen output when executing
the failing command and then comparing that with a provided regular
expression string pattern. Example:
.. code-block:: C++
.. code-block:: c++
TEST_F(SimpleCommandsTest, UnknownCommand)
{
@ -226,9 +226,9 @@ The following test programs are currently available:
* - ``test_kim_commands.cpp``
- KimCommands
- Tests for several commands from the :ref:`KIM package <PKG-KIM>`
* - ``test_reset_ids.cpp``
- ResetIDs
- Tests to validate the :doc:`reset_atom_ids <reset_atom_ids>` and :doc:`reset_mol_ids <reset_mol_ids>` commands
* - ``test_reset_atoms.cpp``
- ResetAtoms
- Tests to validate the :doc:`reset_atoms <reset_atoms>` sub-commands
Tests for the C-style library interface
@ -249,7 +249,7 @@ MPI support. These include tests where LAMMPS is run in multi-partition
mode or only on a subset of the MPI world communicator. The CMake
script code for adding this kind of test looks like this:
.. code-block:: CMake
.. code-block:: cmake
if (BUILD_MPI)
add_executable(test_library_mpi test_library_mpi.cpp)
@ -489,7 +489,7 @@ to update the YAML files. Running a command like
.. code-block:: bash
$ test_pair_style mol-pair-lennard_mdf.yaml -g new.yaml
test_pair_style mol-pair-lennard_mdf.yaml -g new.yaml
will read the settings from the ``mol-pair-lennard_mdf.yaml`` file and then compute
the reference data and write a new file with to ``new.yaml``. If this step fails,
@ -500,13 +500,13 @@ It is also possible to do an update in place with:
.. code-block:: bash
$ test_pair_style mol-pair-lennard_mdf.yaml -u
test_pair_style mol-pair-lennard_mdf.yaml -u
And one can finally run the full set of tests with:
.. code-block:: bash
$ test_pair_style mol-pair-lennard_mdf.yaml
test_pair_style mol-pair-lennard_mdf.yaml
This will just print a summary of the groups of tests. When using the "-v" flag
the test will also keep any LAMMPS output and when using the "-s" flag, there

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
@ -23,6 +23,9 @@ Available topics in mostly chronological order are:
- `Simplify customized error messages`_
- `Use of "override" instead of "virtual"`_
- `Simplified and more compact neighbor list requests`_
- `Split of fix STORE into fix STORE/GLOBAL and fix STORE/PERATOM`_
- `Use Output::get_dump_by_id() instead of Output::find_dump()`_
- `Refactored grid communication using Grid3d/Grid2d classes instead of GridComm`_
----
@ -59,7 +62,7 @@ header file needs to be updated accordingly.
Old:
.. code-block:: C++
.. code-block:: c++
int PairEAM::pack_comm(int n, int *list, double *buf, int pbc_flag, int *pbc)
{
@ -73,7 +76,7 @@ Old:
New:
.. code-block:: C++
.. code-block:: c++
int PairEAM::pack_forward_comm(int n, int *list, double *buf, int pbc_flag, int *pbc)
{
@ -110,14 +113,14 @@ Example from a pair style:
Old:
.. code-block:: C++
.. code-block:: c++
if (eflag || vflag) ev_setup(eflag, vflag);
else evflag = vflag_fdotr = eflag_global = eflag_atom = 0;
New:
.. code-block:: C++
.. code-block:: c++
ev_init(eflag, vflag);
@ -140,14 +143,14 @@ when they are called from only one or a subset of the MPI processes.
Old:
.. code-block:: C++
.. code-block:: c++
val = force->numeric(FLERR, arg[1]);
num = force->inumeric(FLERR, arg[2]);
New:
.. code-block:: C++
.. code-block:: c++
val = utils::numeric(FLERR, true, arg[1], lmp);
num = utils::inumeric(FLERR, false, arg[2], lmp);
@ -181,14 +184,14 @@ copy them around for simulations.
Old:
.. code-block:: C++
.. code-block:: c++
fp = force->open_potential(filename);
fp = fopen(filename, "r");
New:
.. code-block:: C++
.. code-block:: c++
fp = utils::open_potential(filename, lmp);
@ -205,7 +208,7 @@ Example:
Old:
.. code-block:: C++
.. code-block:: c++
if (fptr == NULL) {
char str[128];
@ -215,7 +218,7 @@ Old:
New:
.. code-block:: C++
.. code-block:: c++
if (fptr == nullptr)
error->one(FLERR, "Cannot open AEAM potential file {}: {}", filename, utils::getsyserror());
@ -235,7 +238,7 @@ an example from the ``FixWallReflect`` class:
Old:
.. code-block:: C++
.. code-block:: c++
FixWallReflect(class LAMMPS *, int, char **);
virtual ~FixWallReflect();
@ -245,7 +248,7 @@ Old:
New:
.. code-block:: C++
.. code-block:: c++
FixWallReflect(class LAMMPS *, int, char **);
~FixWallReflect() override;
@ -269,7 +272,7 @@ the type of the "this" pointer argument.
Old:
.. code-block:: C++
.. code-block:: c++
comm->forward_comm_pair(this);
comm->forward_comm_fix(this);
@ -282,12 +285,12 @@ Old:
New:
.. code-block:: C++
.. code-block:: c++
comm->forward_comm(this);
comm->reverse_comm(this);
This change is required or else the code will not compile.
This change is **required** or else the code will not compile.
Simplified and more compact neighbor list requests
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -302,7 +305,7 @@ requests can be :doc:`found here <Developer_notes>`. Example from the
Old:
.. code-block:: C++
.. code-block:: c++
int irequest = neighbor->request(this,instance_me);
neighbor->requests[irequest]->pair = 0;
@ -315,10 +318,162 @@ Old:
New:
.. code-block:: C++
.. code-block:: c++
auto req = neighbor->add_request(this, NeighConst::REQ_OCCASIONAL);
if (cutflag) req->set_cutoff(mycutneigh);
Public access to the ``NeighRequest`` class data members has been
removed so this update is *required* to avoid compilation failure.
removed so this update is **required** to avoid compilation failure.
Split of fix STORE into fix STORE/GLOBAL and fix STORE/PERATOM
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. versionchanged:: 15Sep2022
This change splits the GLOBAL and PERATOM modes of fix STORE into two
separate fixes STORE/GLOBAL and STORE/PERATOM. There was very little
shared code between the two fix STORE modes and the two different code
paths had to be prefixed with if statements. Furthermore, some flags
were used differently in the two modes leading to confusion. Splitting
the code into two fix styles, makes it more easily maintainable. Since
these are internal fixes, there is no user visible change.
Old:
.. code-block:: c++
#include "fix_store.h"
FixStore *fix = dynamic_cast<FixStore *>(
modify->add_fix(fmt::format("{} {} STORE peratom 1 13",id_pole,group->names[0]));
FixStore *fix = dynamic_cast<FixStore *>(modify->get_fix_by_id(id_pole));
New:
.. code-block:: c++
#include "fix_store_peratom.h"
FixStorePeratom *fix = dynamic_cast<FixStorePeratom *>(
modify->add_fix(fmt::format("{} {} STORE/PERATOM 1 13",id_pole,group->names[0]));
FixStorePeratom *fix = dynamic_cast<FixStorePeratom *>(modify->get_fix_by_id(id_pole));
Old:
.. code-block:: c++
#include "fix_store.h"
FixStore *fix = dynamic_cast<FixStore *>(
modify->add_fix(fmt::format("{} {} STORE global 1 1",id_fix,group->names[igroup]));
FixStore *fix = dynamic_cast<FixStore *>(modify->get_fix_by_id(id_fix));
New:
.. code-block:: c++
#include "fix_store_global.h"
FixStoreGlobal *fix = dynamic_cast<FixStoreGlobal *>(
modify->add_fix(fmt::format("{} {} STORE/GLOBAL 1 1",id_fix,group->names[igroup]));
FixStoreGlobal *fix = dynamic_cast<FixStoreGlobal *>(modify->get_fix_by_id(id_fix));
This change is **required** or else the code will not compile.
Use Output::get_dump_by_id() instead of Output::find_dump()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. versionchanged:: 15Sep2022
The accessor function to individual dump style instances has been changed
from ``Output::find_dump()`` returning the index of the dump instance in
the list of dumps to ``Output::get_dump_by_id()`` returning a pointer to
the dump directly. Example:
Old:
.. code-block:: c++
int idump = output->find_dump(arg[iarg+1]);
if (idump < 0)
error->all(FLERR,"Dump ID in hyper command does not exist");
memory->grow(dumplist,ndump+1,"hyper:dumplist");
dumplist[ndump++] = idump;
[...]
if (dumpflag)
for (int idump = 0; idump < ndump; idump++)
output->dump[dumplist[idump]]->write();
New:
.. code-block:: c++
auto idump = output->get_dump_by_id(arg[iarg+1]);
if (!idump) error->all(FLERR,"Dump ID {} in hyper command does not exist", arg[iarg+1]);
dumplist.emplace_back(idump);
[...]
if (dumpflag) for (auto idump : dumplist) idump->write();
This change is **required** or else the code will not compile.
Refactored grid communication using Grid3d/Grid2d classes instead of GridComm
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. versionchanged:: 22Dec2022
The ``GridComm`` class was for creating and communicating distributed
grids was replaced by the ``Grid3d`` class with added functionality.
A ``Grid2d`` class was also added for additional flexibility.
The new functionality and commands using the two grid classes are
discussed on the following documentation pages:
- :doc:`Howto_grid`
- :doc:`Developer_grid`
If you have custom LAMMPS code, which uses the GridComm class, here are some notes
on how to adapt it for using the Grid3d class.
(1) The constructor has changed to allow the ``Grid3d`` / ``Grid2d``
classes to partition the global grid across processors, both for
owned and ghost grid cells. Previously any class which called
``GridComm`` performed the partitioning itself and that information
was passed in the ``GridComm::GridComm()`` constructor. There are
several "set" functions which can be called to alter how ``Grid3d``
/ ``Grid2d`` perform the partitioning. They should be sufficient
for most use cases of the grid classes.
(2) The partitioning is triggered by the ``setup_grid()`` method.
(3) The ``setup()`` method of the ``GridComm`` class has been replaced
by the ``setup_comm()`` method in the new grid classes. The syntax
for the ``forward_comm()`` and ``reverse_comm()`` methods is
slightly altered as is the syntax of the associated pack/unpack
callback methods. But the functionality of these operations is the
same as before.
(4) The new ``Grid3d`` / ``Grid2d`` classes have additional
functionality for dynamic load-balancing of grids and their
associated data across processors. This did not exist in the
``GridComm`` class.
This and more is explained in detail on the :doc:`Developer_grid` page.
The following LAMMPS source files can be used as illustrative examples
for how the new grid classes are used by computes, fixes, and various
KSpace solvers which use distributed FFT grids:
- ``src/fix_ave_grid.cpp``
- ``src/compute_property_grid.cpp``
- ``src/EXTRA-FIX/fix_ttm_grid.cpp``
- ``src/KSPACE/pppm.cpp``
This change is **required** or else the code will not compile.

View File

@ -133,6 +133,9 @@ and parsing files or arguments.
.. doxygenfunction:: trim_comment
:project: progguide
.. doxygenfunction:: strip_style_suffix
:project: progguide
.. doxygenfunction:: star_subst
:project: progguide
@ -175,6 +178,12 @@ and parsing files or arguments.
.. doxygenfunction:: is_double
:project: progguide
.. doxygenfunction:: is_id
:project: progguide
.. doxygenfunction:: is_type
:project: progguide
Potential file functions
^^^^^^^^^^^^^^^^^^^^^^^^
@ -205,10 +214,16 @@ Argument processing
.. doxygenfunction:: expand_args
:project: progguide
.. doxygenfunction:: parse_grid_id
:project: progguide
.. doxygenfunction:: expand_type
:project: progguide
Convenience functions
^^^^^^^^^^^^^^^^^^^^^
.. doxygenfunction:: logmesg(LAMMPS *lmp, const S &format, Args&&... args)
.. doxygenfunction:: logmesg(LAMMPS *lmp, const std::string &format, Args&&... args)
:project: progguide
.. doxygenfunction:: logmesg(LAMMPS *lmp, const std::string &mesg)
@ -308,7 +323,7 @@ are all "whitespace" characters, i.e. the space character, the tabulator
character, the carriage return character, the linefeed character, and
the form feed character.
.. code-block:: C++
.. code-block:: c++
:caption: Tokenizer class example listing entries of the PATH environment variable
#include "tokenizer.h"
@ -340,7 +355,7 @@ tokenizer into a ``try`` / ``catch`` block to handle errors. The
when a (type of) number is requested as next token that is not
compatible with the string representing the next word.
.. code-block:: C++
.. code-block:: c++
:caption: ValueTokenizer class example with exception handling
#include "tokenizer.h"
@ -418,7 +433,7 @@ one or two array indices "[<number>]" with numbers > 0.
A typical code segment would look like this:
.. code-block:: C++
.. code-block:: c++
:caption: Usage example for ArgInfo class
int nvalues = 0;
@ -467,7 +482,7 @@ open the file, and will call the :cpp:class:`LAMMPS_NS::Error` class in
case of failures to read or to convert numbers, so that LAMMPS will be
aborted.
.. code-block:: C++
.. code-block:: c++
:caption: Use of PotentialFileReader class in pair style coul/streitz
PotentialFileReader reader(lmp, file, "coul/streitz");
@ -546,7 +561,7 @@ chunk size needs to be known in advance, 2) with :cpp:func:`MyPage::vget()
its size is registered later with :cpp:func:`MyPage::vgot()
<LAMMPS_NS::MyPage::vgot>`.
.. code-block:: C++
.. code-block:: c++
:caption: Example of using :cpp:class:`MyPage <LAMMPS_NS::MyPage>`
#include "my_page.h"

View File

@ -26,7 +26,7 @@ constructor with the signature: ``FixPrintVel(class LAMMPS *, int, char **)``.
Every fix must be registered in LAMMPS by writing the following lines
of code in the header before include guards:
.. code-block:: c
.. code-block:: c++
#ifdef FIX_CLASS
// clang-format off
@ -47,7 +47,7 @@ keyword when it parses the input script.
Let's write a simple fix which will print the average velocity at the end
of each timestep. First of all, implement a constructor:
.. code-block:: C++
.. code-block:: c++
FixPrintVel::FixPrintVel(LAMMPS *lmp, int narg, char **arg)
: Fix(lmp, narg, arg)
@ -72,7 +72,7 @@ in the Fix class called ``nevery`` which specifies how often the method
The next method we need to implement is ``setmask()``:
.. code-block:: C++
.. code-block:: c++
int FixPrintVel::setmask()
{
@ -87,7 +87,7 @@ during execution. The constant ``END_OF_STEP`` corresponds to the
are called during a timestep and the order in which they are called
are shown in the previous section.
.. code-block:: C++
.. code-block:: c++
void FixPrintVel::end_of_step()
{
@ -143,7 +143,7 @@ The group membership information of an atom is contained in the *mask*
property of and atom and the bit corresponding to a given group is
stored in the groupbit variable which is defined in Fix base class:
.. code-block:: C++
.. code-block:: c++
for (int i = 0; i < nlocal; ++i) {
if (atom->mask[i] & groupbit) {
@ -174,7 +174,7 @@ to store positions of atoms from previous timestep, we need to add
``double** xold`` to the header file. Than add allocation code
to the constructor:
.. code-block:: C++
.. code-block:: c++
FixSavePos::FixSavePos(LAMMPS *lmp, int narg, char **arg), xold(nullptr)
{
@ -190,7 +190,7 @@ to the constructor:
Implement the aforementioned methods:
.. code-block:: C++
.. code-block:: c++
double FixSavePos::memory_usage()
{

View File

@ -40,7 +40,7 @@ We use it to show how to identify the origin of a segmentation fault.
After recompiling LAMMPS and running the input you should get something like this:
.. code-block::
.. code-block:: console
$ ./lmp -in in.melt
LAMMPS (19 Mar 2020)
@ -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
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -90,8 +90,9 @@ it. When it reaches the code causing the segmentation fault, it will
stop with a message why it stopped, print the current line of code, and
drop back to the GDB prompt.
.. code-block::
.. code-block:: console
(gdb) run
[...]
Setting up Verlet run ...
Unit style : lj
@ -106,7 +107,7 @@ drop back to the GDB prompt.
Now typing the command "where" will show the stack of functions starting from
the current function back to "main()".
.. code-block::
.. code-block:: console
(gdb) where
#0 0x00000000006653ab in LAMMPS_NS::PairLJCut::compute (this=0x829740, eflag=1, vflag=<optimized out>) at /home/akohlmey/compile/lammps/src/pair_lj_cut.cpp:139
@ -124,7 +125,7 @@ You can also print the value of variables and see if there is anything
unexpected. Segmentation faults, for example, commonly happen when a
pointer variable is not assigned and still initialized to NULL.
.. code-block::
.. code-block:: console
(gdb) print x
$1 = (double **) 0x7ffff7ca1010
@ -153,7 +154,7 @@ utility to the current folder. Example: ``coredumpctl -o core dump lmp``.
Now you can launch the debugger to load the executable, its debug info
and the core dump and drop you to a prompt like before.
.. code-block::
.. code-block:: console
$ gdb lmp core
Reading symbols from lmp...
@ -186,7 +187,7 @@ recommended to redirect the valgrind output to a file (e.g. with
process ID) so that the messages of the multiple valgrind instances to
the console are not mixed.
.. code-block::
.. code-block:: console
$ valgrind ./lmp -in in.melt
==1933642== Memcheck, a memory error detector

View File

@ -5453,6 +5453,11 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
Mass command must set a type from 1-N where N is the number of atom
types.
*Invalid label2type() function syntax in variable formula*
The first argument must be a label map kind (atom, bond, angle,
dihedral, or improper) and the second argument must be a valid type
label that has been assigned to a numeric type.
*Invalid use of library file() function*
This function is called through the library interface. This
error should not occur. Contact the developers if it does.
@ -5585,9 +5590,18 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
*LJ6 off not supported in pair_style buck/long/coul/long*
Self-explanatory.
*Label map is incomplete: all types must be assigned a unique type label*
For a given type-kind (atom types, bond types, etc.) to be written to
the data file, all associated types must be assigned a type label, and
each type label can be assigned to only one numeric type.
*Label wasn't found in input script*
Self-explanatory.
*Labelmap command before simulation box is defined*
The labelmap command cannot be used before a read_data,
read_restart, or create_box command.
*Lattice orient vectors are not orthogonal*
The three specified lattice orientation vectors must be mutually
orthogonal.
@ -5863,6 +5877,12 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
*Must not have multiple fixes change box parameter ...*
Self-explanatory.
*Must read Angle Type Labels before Angles*
An Angle Type Labels section of a data file must come before the Angles section.
*Must read Atom Type Labels before Atoms*
An Atom Type Labels section of a data file must come before the Atoms section.
*Must read Atoms before Angles*
The Atoms section of a data file must come before an Angles section.
@ -5893,6 +5913,15 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
The Atoms section of a data file must come before a Velocities
section.
*Must read Bond Type Labels before Bonds*
A Bond Type Labels section of a data file must come before the Bonds section.
*Must read Dihedral Type Labels before Dihedrals*
An Dihedral Type Labels section of a data file must come before the Dihedrals section.
*Must read Improper Type Labels before Impropers*
An Improper Type Labels section of a data file must come before the Impropers section.
*Must re-specify non-restarted pair style (xxx) after read_restart*
For pair styles, that do not store their settings in a restart file,
it must be defined with a new 'pair_style' command after read_restart.
@ -7849,6 +7878,10 @@ keyword to allow for additional bonds to be formed
Number of local atoms times number of columns must fit in a 32-bit
integer for dump.
*Topology type exceeds system topology type*
The number of bond, angle, etc types exceeds the system setting. See
the create_box or read_data command for how to specify these values.
*Tree structure in joint connections*
Fix poems cannot (yet) work with coupled bodies whose joints connect
the bodies in a tree structure.
@ -7873,6 +7906,13 @@ keyword to allow for additional bonds to be formed
*Two groups cannot be the same in fix spring couple*
Self-explanatory.
*The %s type label %s is already in use for type %s*
For a given type-kind (atom types, bond types, etc.), a given type
label can be assigned to only one numeric type.
*Type label string %s for %s type %s is invalid*
See the labelmap command documentation for valid type labels.
*Unable to initialize accelerator for use*
There was a problem initializing an accelerator for the gpu package

File diff suppressed because it is too large Load Diff

View File

@ -34,6 +34,7 @@ Settings howto
:maxdepth: 1
Howto_2d
Howto_type_labels
Howto_triclinic
Howto_thermostat
Howto_barostat
@ -50,6 +51,7 @@ Analysis howto
Howto_output
Howto_chunk
Howto_grid
Howto_temperature
Howto_elastic
Howto_kappa
@ -84,6 +86,7 @@ Packages howto
Howto_coreshell
Howto_drude
Howto_drude2
Howto_peri
Howto_manifold
Howto_spins

View File

@ -2,9 +2,9 @@ AMOEBA and HIPPO force fields
=============================
The AMOEBA and HIPPO polarizable force fields were developed by Jay
Ponder's group at the U Washington at St Louis. Their implementation
in LAMMPS was done using F90 code provided by the Ponder group from
their `Tinker MD code <https://dasher.wustl.edu/tinker/>`_.
Ponder's group at the U Washington at St Louis. The LAMMPS
implementation is based on Fortran 90 code provided by the Ponder
group in their `Tinker MD software <https://dasher.wustl.edu/tinker/>`_.
The current implementation (July 2022) of AMOEBA in LAMMPS matches the
version discussed in :ref:`(Ponder) <amoeba-Ponder>`, :ref:`(Ren)
@ -261,11 +261,11 @@ all the options available to use with the tinker2lmp.py script:
.. code-block:: bash
% python tinker2lmp.py -xyz water_dimer.xyz -amoeba amoeba_water.prm -data data.water_dimer.amoeba # AMOEBA non-periodic system
% python tinker2lmp.py -xyz water_dimer.xyz -hippo hippo_water.prm -data data.water_dimer.hippo # HIPPO non-periodic system
% python tinker2lmp.py -xyz water_box.xyz -amoeba amoeba_water.prm -data data.water_box.amoeba -pbc 18.643 18.643 18.643 # AMOEBA periodic system
% python tinker2lmp.py -xyz water_box.xyz -hippo hippo_water.prm -data data.water_box.hippo -pbc 18.643 18.643 18.643 # HIPPO periodic system
% python tinker2lmp.py -xyz ubiquitin.xyz -amoeba amoeba_ubiquitin.prm -data data.ubiquitin.new -pbc 54.99 41.91 41.91 -bitorsion bitorsion.ubiquitin.data.new # system with bitorsions
python tinker2lmp.py -xyz water_dimer.xyz -amoeba amoeba_water.prm -data data.water_dimer.amoeba # AMOEBA non-periodic system
python tinker2lmp.py -xyz water_dimer.xyz -hippo hippo_water.prm -data data.water_dimer.hippo # HIPPO non-periodic system
python tinker2lmp.py -xyz water_box.xyz -amoeba amoeba_water.prm -data data.water_box.amoeba -pbc 18.643 18.643 18.643 # AMOEBA periodic system
python tinker2lmp.py -xyz water_box.xyz -hippo hippo_water.prm -data data.water_box.hippo -pbc 18.643 18.643 18.643 # HIPPO periodic system
python tinker2lmp.py -xyz ubiquitin.xyz -amoeba amoeba_ubiquitin.prm -data data.ubiquitin.new -pbc 54.99 41.91 41.91 -bitorsion bitorsion.ubiquitin.data.new # system with bitorsions
Switches and their arguments may be specified in any order.
@ -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

@ -46,7 +46,7 @@ This tutorial assumes that you are operating in a command-line environment
using a shell like Bash.
- Linux: any Terminal window will work
- MacOS X: launch the Terminal application.
- macOS: launch the Terminal application.
- Windows 10: install and run the :doc:`Windows Subsystem for Linux <Howto_wsl>`
We also assume that you have downloaded and unpacked a recent LAMMPS source code package
@ -56,7 +56,7 @@ You should change into the top level directory of the LAMMPS source tree all
paths mentioned in the tutorial are relative to that. Immediately after downloading
it should look like this:
.. code-block:: bash
.. code-block:: console
$ ls
bench doc lib potentials README tools
@ -104,7 +104,7 @@ the progress of the configuration printed to the screen followed by a
summary of the enabled features, options and compiler settings. A typical
summary screen will look like this:
.. code-block::
.. code-block:: console
$ cmake ../cmake/
-- The CXX compiler identification is GNU 8.2.0

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
@ -78,13 +78,13 @@ machine via HTTPS:
.. code-block:: bash
$ git clone https://github.com/<your user name>/lammps.git <some name>
git clone https://github.com/<your user name>/lammps.git <some name>
or, if you have set up your GitHub account for using SSH keys, via SSH:
.. code-block:: bash
$ git clone git@github.com:<your user name>/lammps.git
git clone git@github.com:<your user name>/lammps.git
You can find the proper URL by clicking the "Clone or download"-button:
@ -103,21 +103,21 @@ and use git pull:
.. code-block:: bash
$ cd mylammps
$ git checkout develop
$ git pull https://github.com/lammps/lammps develop
cd mylammps
git checkout develop
git pull https://github.com/lammps/lammps develop
You can also add this URL as a remote:
.. code-block:: bash
$ git remote add upstream https://www.github.com/lammps/lammps
git remote add upstream https://www.github.com/lammps/lammps
From then on you can update your upstream branches with:
.. code-block:: bash
$ git fetch upstream
git fetch upstream
and then refer to the upstream repository branches with
`upstream/develop` or `upstream/release` and so on.
@ -129,8 +129,8 @@ workflow that updated this tutorial, and hence we will call the branch
.. code-block:: bash
$ git fetch upstream
$ git checkout -b github-tutorial-update upstream/develop
git fetch upstream
git checkout -b github-tutorial-update upstream/develop
Now that we have changed branches, we can make our changes to our local
repository. Just remember that if you want to start working on another,
@ -150,8 +150,8 @@ After everything is done, add the files to the branch and commit them:
.. code-block:: bash
$ git add doc/src/Howto_github.txt
$ git add doc/src/JPG/tutorial*.png
git add doc/src/Howto_github.txt
git add doc/src/JPG/tutorial*.png
.. warning::
@ -174,13 +174,13 @@ useful message that explains the change.
.. code-block:: bash
$ git commit -m 'Finally updated the GitHub tutorial'
git commit -m 'Finally updated the GitHub tutorial'
After the commit, the changes can be pushed to the same branch on GitHub:
.. code-block:: bash
$ git push
git push
Git will ask you for your user name and password on GitHub if you have
not configured anything. If your local branch is not present on GitHub yet,
@ -188,7 +188,7 @@ it will ask you to add it by running
.. code-block:: bash
$ git push --set-upstream origin github-tutorial-update
git push --set-upstream origin github-tutorial-update
If you correctly type your user name and
password, the feature branch should be added to your fork on GitHub.
@ -198,13 +198,13 @@ If you want to make really sure you push to the right repository
.. code-block:: bash
$ git push origin
git push origin
or using an explicit URL:
.. code-block:: bash
$ git push git@github.com:Pakketeretet2/lammps.git
git push git@github.com:Pakketeretet2/lammps.git
----------
@ -412,10 +412,10 @@ we need to pull Axel's change back into our branch, and merge them:
.. code-block:: bash
$ git add Howto_github.txt
$ git add JPG/tutorial_reverse_pull_request*.png
$ git commit -m "Updated text and images on reverse pull requests"
$ git pull
git add Howto_github.txt
git add JPG/tutorial_reverse_pull_request*.png
git commit -m "Updated text and images on reverse pull requests"
git pull
In this case, the merge was painless because git could auto-merge:
@ -428,10 +428,10 @@ commit and push again:
.. code-block:: bash
$ git add Howto_github.txt
$ git add JPG/tutorial_reverse_pull_request6.png
$ git commit -m "Merged Axel's suggestions and updated text"
$ git push git@github.com:Pakketeretet2/lammps
git add Howto_github.txt
git add JPG/tutorial_reverse_pull_request6.png
git commit -m "Merged Axel's suggestions and updated text"
git push git@github.com:Pakketeretet2/lammps
This merge also shows up on the lammps GitHub page:
@ -456,9 +456,9 @@ branch!
.. code-block:: bash
$ git checkout develop
$ git pull https://github.com/lammps/lammps develop
$ git branch -d github-tutorial-update
git checkout develop
git pull https://github.com/lammps/lammps develop
git branch -d github-tutorial-update
If you do not pull first, it is not really a problem but git will warn
you at the next statement that you are deleting a local branch that
@ -472,7 +472,7 @@ to your remote(s) as well:
.. code-block:: bash
$ git push origin :github-tutorial-update
git push origin :github-tutorial-update
**Recent changes in the workflow**
@ -486,5 +486,6 @@ simplify comparisons between releases. Finally, all patches and
submissions are subject to automatic testing and code checks to make
sure they at the very least compile.
A discussion of the LAMMPS developer GitHub workflow can be found in the file
`doc/github-development-workflow.md <https://github.com/lammps/lammps/blob/develop/doc/github-development-workflow.md>`_
A discussion of the LAMMPS developer GitHub workflow can be found in the
file `doc/github-development-workflow.md
<https://github.com/lammps/lammps/blob/develop/doc/github-development-workflow.md>`_

102
doc/src/Howto_grid.rst Normal file
View File

@ -0,0 +1,102 @@
Using distributed grids
=======================
.. versionadded:: 22Dec2022
LAMMPS has internal capabilities to create uniformly spaced grids
which overlay the simulation domain. For 2d and 3d simulations these
are 2d and 3d grids respectively. Conceptually a grid can be thought
of as a collection of grid cells. Each grid cell can store one or
more values (data).
The grid cells and data they store are distributed across processors.
Each processor owns the grid cells (and data) whose center points lie
within the spatial sub-domain of the processor. If needed for its
computations, a processor may also store ghost grid cells with their
data.
Distributed grids can overlay orthogonal or triclinic simulation
boxes; see the :doc:`Howto triclinic <Howto_triclinic>` doc page for
an explanation of the latter. For a triclinic box, the grid cell
shape conforms to the shape of the simulation domain,
e.g. parallelograms instead of rectangles in 2d.
If the box size or shape changes during a simulation, the grid changes
with it, so that it always overlays the entire simulation domain. For
non-periodic dimensions, the grid size in that dimension matches the
box size, as set by the :doc:`boundary <boundary>` command for fixed
or shrink-wrapped boundaries.
If load-balancing is invoked by the :doc:`balance <balance>` or
:doc:`fix balance <fix_balance>` commands, then the sub-domain owned
by a processor can change which may also change which grid cells they
own.
Post-processing and visualization of grid cell data can be enabled by
the :doc:`dump grid <dump>`, :doc:`dump grid/vtk <dump>`, and
:doc:`dump image <dump_image>` commands. The latter has an optional
*grid* keyword. The `OVITO visualization tool
<https://www.ovito.org>`_ also plans (as of Nov 2022) to add support
for visualizing grid cell data (along with atoms) using :doc:`dump
grid <dump>` output files as input.
.. note::
For developers, distributed grids are implemented within the code via
two classes: Grid2d and Grid3d. These partition the grid across
processors and have methods which allow forward and reverse
communication of ghost grid data as well as load balancing. If you
write a new compute or fix which needs a distributed grid, these are
the classes to look at. A new pair style could use a distributed
grid by having a fix define it. Please see the section on
:doc:`using distributed grids within style classes <Developer_grid>`
for a detailed description.
----------
These are the commands which currently define or use distributed
grids:
* :doc:`fix ttm/grid <fix_ttm>` - store electron temperature on grid
* :doc:`fix ave/grid <fix_ave_grid>` - time average per-atom or per-grid values
* :doc:`compute property/grid <compute_property_grid>` - generate grid IDs and coords
* :doc:`dump grid <dump>` - output per-grid values in LAMMPS format
* :doc:`dump grid/vtk <dump>` - output per-grid values in VTK format
* :doc:`dump image grid <dump_image>` - include colored grid in output images
* :doc:`pair_style amoeba <pair_amoeba>` - FFT grids
* :doc:`kspace_style pppm <kspace_style>` (and variants) - FFT grids
* :doc:`kspace_style msm <kspace_style>` (and variants) - MSM grids
The grids used by the :doc:`kspace_style <kspace_style>` can not be
referenced by an input script. However the grids and data created and
used by the other commands can be.
A compute or fix command may create one or more grids (of different
sizes). Each grid can store one or more data fields. A data field
can be a single value per grid point (per-grid vector) or multiple
values per grid point (per-grid array). See the :doc:`Howto output
<Howto_output>` doc page for an explanation of how per-grid data can
be generated by some commands and used by other commands.
A command accesses grid data from a compute or fix using a *grid
reference* with the following syntax:
* c_ID:gname:dname
* c_ID:gname:dname[I]
* f_ID:gname:dname
* f_ID:gname:dname[I]
The prefix "c\_" or "f\_" refers to the ID of the compute or fix; gname is
the name of the grid, which is assigned by the compute or fix; dname is
the name of the data field, which is also assigned by the compute or
fix.
If the data field is a per-grid vector (one value per grid point),
then no brackets are used to access the values. If the data field is
a per-grid array (multiple values per grid point), then brackets are
used to specify the column I of the array. I ranges from 1 to Ncol
inclusive, where Ncol is the number of columns in the array and is
defined by the compute or fix.
Currently, there are no per-grid variables implemented in LAMMPS. We
may add this feature at some point.

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/>`_.

View File

@ -134,18 +134,18 @@ used in stand-alone mode:
.. code-block:: bash
% git clone --branch mdi_plugin https://github.com/MolSSI-MDI/q-e.git <base_path>/q-e
% build the executable pw.x, following the `QE build guide <https://gitlab.com/QEF/q-e/-/wikis/Developers/CMake-build-system>`_
git clone --branch mdi_plugin https://github.com/MolSSI-MDI/q-e.git <base_path>/q-e
build the executable pw.x, following the `QE build guide <https://gitlab.com/QEF/q-e/-/wikis/Developers/CMake-build-system>`_
Here is how to build QE as a shared library which can be used in plugin mode,
which results in a libqemdi.so file in <base_path>/q-e/MDI/src:
.. code-block:: bash
% git clone --branch mdi_plugin https://github.com/MolSSI-MDI/q-e.git <base_path>/q-e
% cd <base_path>/q-e
% ./configure --enable-parallel --enable-openmp --enable-shared FFLAGS="-fPIC" FCFLAGS="-fPIC" CFLAGS="-fPIC" foxflags="-fPIC" try_foxflags="-fPIC"
% make -j 4 mdi
git clone --branch mdi_plugin https://github.com/MolSSI-MDI/q-e.git <base_path>/q-e
cd <base_path>/q-e
./configure --enable-parallel --enable-openmp --enable-shared FFLAGS="-fPIC" FCFLAGS="-fPIC" CFLAGS="-fPIC" foxflags="-fPIC" try_foxflags="-fPIC"
make -j 4 mdi
INQ cannot be built as a stand-alone code; it is by design a library.
Here is how to build INQ as a shared library which can be used in
@ -154,10 +154,10 @@ plugin mode, which results in a libinqmdi.so file in
.. code-block:: bash
% git clone --branch mdi --recurse-submodules https://gitlab.com/taylor-a-barnes/inq.git <base_path>/inq
% cd <base_path>/inq
% mkdir -p build
% cd build
% ../configure --prefix=<install_path>/install
% make -j 4
% make install
git clone --branch mdi --recurse-submodules https://gitlab.com/taylor-a-barnes/inq.git <base_path>/inq
cd <base_path>/inq
mkdir -p build
cd build
../configure --prefix=<install_path>/install
make -j 4
make install

View File

@ -22,14 +22,17 @@ commands you specify.
As discussed below, LAMMPS gives you a variety of ways to determine
what quantities are computed and printed when the thermodynamics,
dump, or fix commands listed above perform output. Throughout this
discussion, note that users can also :doc:`add their own computes and fixes to LAMMPS <Modify>` which can then generate values that can then be
output with these commands.
discussion, note that users can also :doc:`add their own computes and
fixes to LAMMPS <Modify>` which can then generate values that can then
be output with these commands.
The following sub-sections discuss different LAMMPS command related
The following sub-sections discuss different LAMMPS commands related
to output and the kind of data they operate on and produce:
* :ref:`Global/per-atom/local data <global>`
* :ref:`Global/per-atom/local/per-grid data <global>`
* :ref:`Scalar/vector/array data <scalar>`
* :ref:`Per-grid data <grid>`
* :ref:`Disambiguation <disambiguation>`
* :ref:`Thermodynamic output <thermo>`
* :ref:`Dump file output <dump>`
* :ref:`Fixes that write output files <fixoutput>`
@ -42,27 +45,32 @@ to output and the kind of data they operate on and produce:
.. _global:
Global/per-atom/local data
--------------------------
Global/per-atom/local/per-grid data
-----------------------------------
Various output-related commands work with three different styles of
data: global, per-atom, or local. A global datum is one or more
system-wide values, e.g. the temperature of the system. A per-atom
datum is one or more values per atom, e.g. the kinetic energy of each
atom. Local datums are calculated by each processor based on the
atoms it owns, but there may be zero or more per atom, e.g. a list of
bond distances.
Various output-related commands work with four different styles of
data: global, per-atom, local, and per-grid. A global datum is one or
more system-wide values, e.g. the temperature of the system. A
per-atom datum is one or more values per atom, e.g. the kinetic energy
of each atom. Local datums are calculated by each processor based on
the atoms it owns, but there may be zero or more per atom, e.g. a list
of bond distances.
A per-grid datum is one or more values per grid cell, for a grid which
overlays the simulation domain. The grid cells and the data they
store are distributed across processors; each processor owns the grid
cells whose center point falls within its sub-domain.
.. _scalar:
Scalar/vector/array data
------------------------
Global, per-atom, and local datums can each come in three kinds: a
single scalar value, a vector of values, or a 2d array of values. The
doc page for a "compute" or "fix" or "variable" that generates data
will specify both the style and kind of data it produces, e.g. a
per-atom vector.
Global, per-atom, and local datums can come in three kinds: a single
scalar value, a vector of values, or a 2d array of values. The doc
page for a "compute" or "fix" or "variable" that generates data will
specify both the style and kind of data it produces, e.g. a per-atom
vector.
When a quantity is accessed, as in many of the output commands
discussed below, it can be referenced via the following bracket
@ -83,6 +91,18 @@ the dimension twice (array -> scalar). Thus a command that uses
scalar values as input can typically also process elements of a vector
or array.
.. _grid:
Per-grid data
------------------------
Per-grid data can come in two kinds: a vector of values (one per grid
cekk), or a 2d array of values (multiple values per grid ckk). The
doc page for a "compute" or "fix" that generates data will specify
names for both the grid(s) and datum(s) it produces, e.g. per-grid
vectors or arrays, which can be referenced by other commands. See the
:doc:`Howto grid <Howto_grid>` doc page for more details.
.. _disambiguation:
Disambiguation
@ -90,15 +110,15 @@ Disambiguation
Some computes and fixes produce data in multiple styles, e.g. a global
scalar and a per-atom vector. Usually the context in which the input
script references the data determines which style is meant. Example: if
a compute provides both a global scalar and a per-atom vector, the
script references the data determines which style is meant. Example:
if a compute provides both a global scalar and a per-atom vector, the
former will be accessed by using ``c_ID`` in an equal-style variable,
while the latter will be accessed by using ``c_ID`` in an atom-style
variable. Note that atom-style variable formulas can also access global
scalars, but in this case it is not possible to do directly because of
the ambiguity. Instead, an equal-style variable can be defined which
accesses the global scalar, and that variable used in the atom-style
variable formula in place of ``c_ID``.
variable. Note that atom-style variable formulas can also access
global scalars, but in this case it is not possible to do this
directly because of the ambiguity. Instead, an equal-style variable
can be defined which accesses the global scalar, and that variable can
be used in the atom-style variable formula in place of ``c_ID``.
.. _thermo:
@ -107,15 +127,14 @@ Thermodynamic output
The frequency and format of thermodynamic output is set by the
:doc:`thermo <thermo>`, :doc:`thermo_style <thermo_style>`, and
:doc:`thermo_modify <thermo_modify>` commands. The
:doc:`thermo_style <thermo_style>` command also specifies what values
are calculated and written out. Pre-defined keywords can be specified
(e.g. press, etotal, etc). Three additional kinds of keywords can
also be specified (c_ID, f_ID, v_name), where a :doc:`compute <compute>`
or :doc:`fix <fix>` or :doc:`variable <variable>` provides the value to be
output. In each case, the compute, fix, or variable must generate
global values for input to the :doc:`thermo_style custom <dump>`
command.
:doc:`thermo_modify <thermo_modify>` commands. The :doc:`thermo_style
<thermo_style>` command also specifies what values are calculated and
written out. Pre-defined keywords can be specified (e.g. press, etotal,
etc). Three additional kinds of keywords can also be specified (c_ID,
f_ID, v_name), where a :doc:`compute <compute>` or :doc:`fix <fix>` or
:doc:`variable <variable>` provides the value to be output. In each
case, the compute, fix, or variable must generate global values for
input to the :doc:`thermo_style custom <dump>` command.
Note that thermodynamic output values can be "extensive" or
"intensive". The former scale with the number of atoms in the system
@ -141,9 +160,10 @@ There is also a :doc:`dump custom <dump>` format where the user
specifies what values are output with each atom. Pre-defined atom
attributes can be specified (id, x, fx, etc). Three additional kinds
of keywords can also be specified (c_ID, f_ID, v_name), where a
:doc:`compute <compute>` or :doc:`fix <fix>` or :doc:`variable <variable>`
provides the values to be output. In each case, the compute, fix, or
variable must generate per-atom values for input to the :doc:`dump custom <dump>` command.
:doc:`compute <compute>` or :doc:`fix <fix>` or :doc:`variable
<variable>` provides the values to be output. In each case, the
compute, fix, or variable must generate per-atom values for input to
the :doc:`dump custom <dump>` command.
There is also a :doc:`dump local <dump>` format where the user specifies
what local values to output. A pre-defined index keyword can be
@ -154,18 +174,23 @@ provides the values to be output. In each case, the compute or fix
must generate local values for input to the :doc:`dump local <dump>`
command.
There is also a :doc:`dump grid <dump>` format where the user
specifies what per-grid values to output from computes or fixes that
generate per-grid data.
.. _fixoutput:
Fixes that write output files
-----------------------------
Several fixes take various quantities as input and can write output
files: :doc:`fix ave/time <fix_ave_time>`, :doc:`fix ave/chunk <fix_ave_chunk>`, :doc:`fix ave/histo <fix_ave_histo>`,
:doc:`fix ave/correlate <fix_ave_correlate>`, and :doc:`fix print <fix_print>`.
files: :doc:`fix ave/time <fix_ave_time>`, :doc:`fix ave/chunk
<fix_ave_chunk>`, :doc:`fix ave/histo <fix_ave_histo>`, :doc:`fix
ave/correlate <fix_ave_correlate>`, and :doc:`fix print <fix_print>`.
The :doc:`fix ave/time <fix_ave_time>` command enables direct output to
a file and/or time-averaging of global scalars or vectors. The user
specifies one or more quantities as input. These can be global
The :doc:`fix ave/time <fix_ave_time>` command enables direct output
to a file and/or time-averaging of global scalars or vectors. The
user specifies one or more quantities as input. These can be global
:doc:`compute <compute>` values, global :doc:`fix <fix>` values, or
:doc:`variables <variable>` of any style except the atom style which
produces per-atom values. Since a variable can refer to keywords used
@ -184,8 +209,14 @@ atoms, e.g. individual molecules. The per-atom quantities can be atom
density (mass or number) or atom attributes such as position,
velocity, force. They can also be per-atom quantities calculated by a
:doc:`compute <compute>`, by a :doc:`fix <fix>`, or by an atom-style
:doc:`variable <variable>`. The chunk-averaged output of this fix can
also be used as input to other output commands.
:doc:`variable <variable>`. The chunk-averaged output of this fix is
global and can also be used as input to other output commands.
Note that the :doc:`fix ave/grid <fix_ave_grid>` command can also
average the same per-atom quantities within spatial bins, but it does
this for a distributed grid whose grid cells are owned by different
processors. It outputs per-grid data, not global data, so it is more
efficient for large numbers of averaging bins.
The :doc:`fix ave/histo <fix_ave_histo>` command enables direct output
to a file of histogrammed quantities, which can be global or per-atom
@ -202,38 +233,53 @@ written to the screen and log file or to a separate file, periodically
during a running simulation. The line can contain one or more
:doc:`variable <variable>` values for any style variable except the
vector or atom styles). As explained above, variables themselves can
contain references to global values generated by :doc:`thermodynamic keywords <thermo_style>`, :doc:`computes <compute>`,
:doc:`fixes <fix>`, or other :doc:`variables <variable>`, or to per-atom
values for a specific atom. Thus the :doc:`fix print <fix_print>`
command is a means to output a wide variety of quantities separate
from normal thermodynamic or dump file output.
contain references to global values generated by :doc:`thermodynamic
keywords <thermo_style>`, :doc:`computes <compute>`, :doc:`fixes
<fix>`, or other :doc:`variables <variable>`, or to per-atom values
for a specific atom. Thus the :doc:`fix print <fix_print>` command is
a means to output a wide variety of quantities separate from normal
thermodynamic or dump file output.
.. _computeoutput:
Computes that process output quantities
---------------------------------------
The :doc:`compute reduce <compute_reduce>` and :doc:`compute reduce/region <compute_reduce>` commands take one or more per-atom
or local vector quantities as inputs and "reduce" them (sum, min, max,
The :doc:`compute reduce <compute_reduce>` and :doc:`compute
reduce/region <compute_reduce>` commands take one or more per-atom or
local vector quantities as inputs and "reduce" them (sum, min, max,
ave) to scalar quantities. These are produced as output values which
can be used as input to other output commands.
The :doc:`compute slice <compute_slice>` command take one or more global
vector or array quantities as inputs and extracts a subset of their
values to create a new vector or array. These are produced as output
values which can be used as input to other output commands.
The :doc:`compute slice <compute_slice>` command take one or more
global vector or array quantities as inputs and extracts a subset of
their values to create a new vector or array. These are produced as
output values which can be used as input to other output commands.
The :doc:`compute property/atom <compute_property_atom>` command takes a
list of one or more pre-defined atom attributes (id, x, fx, etc) and
The :doc:`compute property/atom <compute_property_atom>` command takes
a list of one or more pre-defined atom attributes (id, x, fx, etc) and
stores the values in a per-atom vector or array. These are produced
as output values which can be used as input to other output commands.
The list of atom attributes is the same as for the :doc:`dump custom <dump>` command.
The list of atom attributes is the same as for the :doc:`dump custom
<dump>` command.
The :doc:`compute property/local <compute_property_local>` command takes
a list of one or more pre-defined local attributes (bond info, angle
info, etc) and stores the values in a local vector or array. These
are produced as output values which can be used as input to other
output commands.
The :doc:`compute property/local <compute_property_local>` command
takes a list of one or more pre-defined local attributes (bond info,
angle info, etc) and stores the values in a local vector or array.
These are produced as output values which can be used as input to
other output commands.
The :doc:`compute property/grid <compute_property_grid>` command takes
a list of one or more pre-defined per-grid attributes (id, grid cell
coords, etc) and stores the values in a per-grid vector or array.
These are produced as output values which can be used as input to the
:doc:`dump grid <dump>` command.
The :doc:`compute property/chunk <compute_property_chunk>` command
takes a list of one or more pre-defined chunk attributes (id, count,
coords for spatial bins) and stores the values in a global vector or
array. These are produced as output values which can be used as input
to other output commands.
.. _fixprocoutput:
@ -247,18 +293,42 @@ a time.
The :doc:`fix ave/atom <fix_ave_atom>` command performs time-averaging
of per-atom vectors. The per-atom quantities can be atom attributes
such as position, velocity, force. They can also be per-atom
quantities calculated by a :doc:`compute <compute>`, by a
:doc:`fix <fix>`, or by an atom-style :doc:`variable <variable>`. The
quantities calculated by a :doc:`compute <compute>`, by a :doc:`fix
<fix>`, or by an atom-style :doc:`variable <variable>`. The
time-averaged per-atom output of this fix can be used as input to
other output commands.
The :doc:`fix store/state <fix_store_state>` command can archive one or
more per-atom attributes at a particular time, so that the old values
can be used in a future calculation or output. The list of atom
attributes is the same as for the :doc:`dump custom <dump>` command,
including per-atom quantities calculated by a :doc:`compute <compute>`,
by a :doc:`fix <fix>`, or by an atom-style :doc:`variable <variable>`.
The output of this fix can be used as input to other output commands.
The :doc:`fix store/state <fix_store_state>` command can archive one
or more per-atom attributes at a particular time, so that the old
values can be used in a future calculation or output. The list of
atom attributes is the same as for the :doc:`dump custom <dump>`
command, including per-atom quantities calculated by a :doc:`compute
<compute>`, by a :doc:`fix <fix>`, or by an atom-style :doc:`variable
<variable>`. The output of this fix can be used as input to other
output commands.
The :doc:`fix ave/grid <fix_ave_grid>` command performs time-averaging
of either per-atom or per-grid data.
For per-atom data it performs averaging for the atoms within each grid
cell, similar to the :doc:`fix ave/chunk <fix_ave_chunk>` command when
its chunks are defined as regular 2d or 3d bins. The per-atom
quantities can be atom density (mass or number) or atom attributes
such as position, velocity, force. They can also be per-atom
quantities calculated by a :doc:`compute <compute>`, by a :doc:`fix
<fix>`, or by an atom-style :doc:`variable <variable>`.
The chief difference between the :doc:`fix ave/grid <fix_ave_grid>`
and :doc:`fix ave/chunk <fix_ave_chunk>` commands when used in this
context is that the former uses a distributed grid, while the latter
uses a global grid. Distributed means that each processor owns the
subset of grid cells within its sub-domain. Global means that each
processor owns a copy of the entire grid. The :doc:`fix ave/grid
<fix_ave_grid>` command is thus more efficient for large grids.
For per-grid data, the :doc:`fix ave/grid <fix_ave_grid>` command
takes inputs for grid data produced by other computes or fixes and
averages the values for each grid point over time.
.. _compute:
@ -266,24 +336,25 @@ Computes that generate values to output
---------------------------------------
Every :doc:`compute <compute>` in LAMMPS produces either global or
per-atom or local values. The values can be scalars or vectors or
arrays of data. These values can be output using the other commands
described in this section. The page for each compute command
per-atom or local or per-grid values. The values can be scalars or
vectors or arrays of data. These values can be output using the other
commands described in this section. The page for each compute command
describes what it produces. Computes that produce per-atom or local
values have the word "atom" or "local" in their style name. Computes
without the word "atom" or "local" produce global values.
or per-grid values have the word "atom" or "local" or "grid as the
last word in their style name. Computes without the word "atom" or
"local" or "grid" produce global values.
.. _fix:
Fixes that generate values to output
------------------------------------
Some :doc:`fixes <fix>` in LAMMPS produces either global or per-atom or
local values which can be accessed by other commands. The values can
be scalars or vectors or arrays of data. These values can be output
using the other commands described in this section. The page for
each fix command tells whether it produces any output quantities and
describes them.
Some :doc:`fixes <fix>` in LAMMPS produces either global or per-atom
or local or per-grid values which can be accessed by other commands.
The values can be scalars or vectors or arrays of data. These values
can be output using the other commands described in this section. The
page for each fix command tells whether it produces any output
quantities and describes them.
.. _variable:
@ -300,6 +371,8 @@ computes, fixes, and other variables. The values generated by
variables can be used as input to and thus output by the other
commands described in this section.
Per-grid variables have not (yet) been implemented.
.. _table:
Summary table of output options and data flow between commands
@ -319,44 +392,52 @@ Also note that, as described above, when a command takes a scalar as
input, that could be an element of a vector or array. Likewise a
vector input could be a column of an array.
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| Command | Input | Output |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`thermo_style custom <thermo_style>` | global scalars | screen, log file |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`dump custom <dump>` | per-atom vectors | dump file |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`dump local <dump>` | local vectors | dump file |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`fix print <fix_print>` | global scalar from variable | screen, file |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`print <print>` | global scalar from variable | screen |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`computes <compute>` | N/A | global/per-atom/local scalar/vector/array |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`fixes <fix>` | N/A | global/per-atom/local scalar/vector/array |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`variables <variable>` | global scalars and vectors, per-atom vectors | global scalar and vector, per-atom vector |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`compute reduce <compute_reduce>` | per-atom/local vectors | global scalar/vector |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`compute slice <compute_slice>` | global vectors/arrays | global vector/array |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`compute property/atom <compute_property_atom>` | per-atom vectors | per-atom vector/array |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`compute property/local <compute_property_local>` | local vectors | local vector/array |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`fix vector <fix_vector>` | global scalars | global vector |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`fix ave/atom <fix_ave_atom>` | per-atom vectors | per-atom vector/array |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`fix ave/time <fix_ave_time>` | global scalars/vectors | global scalar/vector/array, file |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`fix ave/chunk <fix_ave_chunk>` | per-atom vectors | global array, file |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`fix ave/histo <fix_ave_histo>` | global/per-atom/local scalars and vectors | global array, file |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`fix ave/correlate <fix_ave_correlate>` | global scalars | global array, file |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
| :doc:`fix store/state <fix_store_state>` | per-atom vectors | per-atom vector/array |
+--------------------------------------------------------+----------------------------------------------+-------------------------------------------+
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| Command | Input | Output |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`thermo_style custom <thermo_style>` | global scalars | screen, log file |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`dump custom <dump>` | per-atom vectors | dump file |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`dump local <dump>` | local vectors | dump file |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`dump grid <dump>` | per-grid vectors | dump file |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`fix print <fix_print>` | global scalar from variable | screen, file |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`print <print>` | global scalar from variable | screen |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`computes <compute>` | N/A | global/per-atom/local/per-grid scalar/vector/array |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`fixes <fix>` | N/A | global/per-atom/local/per-grid scalar/vector/array |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`variables <variable>` | global scalars and vectors, per-atom vectors | global scalar and vector, per-atom vector |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`compute reduce <compute_reduce>` | per-atom/local vectors | global scalar/vector |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`compute slice <compute_slice>` | global vectors/arrays | global vector/array |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`compute property/atom <compute_property_atom>` | N/A | per-atom vector/array |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`compute property/local <compute_property_local>` | N/A | local vector/array |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`compute property/grid <compute_property_grid>` | N/A | per-grid vector/array |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`compute property/chunk <compute_property_chunk>` | N/A | global vector/array |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`fix vector <fix_vector>` | global scalars | global vector |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`fix ave/atom <fix_ave_atom>` | per-atom vectors | per-atom vector/array |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`fix ave/time <fix_ave_time>` | global scalars/vectors | global scalar/vector/array, file |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`fix ave/chunk <fix_ave_chunk>` | per-atom vectors | global array, file |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`fix ave/grid <fix_ave_grid>` | per-atom vectors or per-grid vectors | per-grid vector/array |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`fix ave/histo <fix_ave_histo>` | global/per-atom/local scalars and vectors | global array, file |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`fix ave/correlate <fix_ave_correlate>` | global scalars | global array, file |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+
| :doc:`fix store/state <fix_store_state>` | per-atom vectors | per-atom vector/array |
+--------------------------------------------------------+----------------------------------------------+----------------------------------------------------+

1078
doc/src/Howto_peri.rst Normal file

File diff suppressed because it is too large Load Diff

View File

@ -152,14 +152,14 @@ Creating a new instance of PyLammps
To create a PyLammps object you need to first import the class from the lammps
module. By using the default constructor, a new *lammps* instance is created.
.. code-block:: Python
.. code-block:: python
from lammps import PyLammps
L = PyLammps()
You can also initialize PyLammps on top of this existing *lammps* object:
.. code-block:: Python
.. code-block:: python
from lammps import lammps, PyLammps
lmp = lammps()
@ -180,14 +180,14 @@ For instance, let's take the following LAMMPS command:
In the original interface this command can be executed with the following
Python code if *L* was a lammps instance:
.. code-block:: Python
.. code-block:: python
L.command("region box block 0 10 0 5 -0.5 0.5")
With the PyLammps interface, any command can be split up into arbitrary parts
separated by white-space, passed as individual arguments to a region method.
.. code-block:: Python
.. code-block:: python
L.region("box block", 0, 10, 0, 5, -0.5, 0.5)
@ -199,14 +199,14 @@ The benefit of this approach is avoiding redundant command calls and easier
parameterization. In the original interface parameterization needed to be done
manually by creating formatted strings.
.. code-block:: Python
.. code-block:: python
L.command("region box block %f %f %f %f %f %f" % (xlo, xhi, ylo, yhi, zlo, zhi))
In contrast, methods of PyLammps accept parameters directly and will convert
them automatically to a final command string.
.. code-block:: Python
.. code-block:: python
L.region("box block", xlo, xhi, ylo, yhi, zlo, zhi)
@ -256,7 +256,7 @@ LAMMPS variables can be both defined and accessed via the PyLammps interface.
To define a variable you can use the :doc:`variable <variable>` command:
.. code-block:: Python
.. code-block:: python
L.variable("a index 2")
@ -265,14 +265,14 @@ A dictionary of all variables is returned by L.variables
you can access an individual variable by retrieving a variable object from the
L.variables dictionary by name
.. code-block:: Python
.. code-block:: python
a = L.variables['a']
The variable value can then be easily read and written by accessing the value
property of this object.
.. code-block:: Python
.. code-block:: python
print(a.value)
a.value = 4
@ -284,7 +284,7 @@ LAMMPS expressions can be immediately evaluated by using the eval method. The
passed string parameter can be any expression containing global thermo values,
variables, compute or fix data.
.. code-block:: Python
.. code-block:: python
result = L.eval("ke") # kinetic energy
result = L.eval("pe") # potential energy
@ -298,7 +298,7 @@ All atoms in the current simulation can be accessed by using the L.atoms list.
Each element of this list is an object which exposes its properties (id, type,
position, velocity, force, etc.).
.. code-block:: Python
.. code-block:: python
# access first atom
L.atoms[0].id
@ -311,7 +311,7 @@ position, velocity, force, etc.).
Some properties can also be used to set:
.. code-block:: Python
.. code-block:: python
# set position in 2D simulation
L.atoms[0].position = (1.0, 0.0)
@ -328,7 +328,7 @@ after a run via the L.runs list. This list contains a growing list of run data.
The first element is the output of the first run, the second element that of
the second run.
.. code-block:: Python
.. code-block:: python
L.run(1000)
L.runs[0] # data of first 1000 time steps
@ -339,14 +339,14 @@ the second run.
Each run contains a dictionary of all trajectories. Each trajectory is
accessible through its thermo name:
.. code-block:: Python
.. code-block:: python
L.runs[0].thermo.Step # list of time steps in first run
L.runs[0].thermo.Ke # list of kinetic energy values in first run
Together with matplotlib plotting data out of LAMMPS becomes simple:
.. code-block:: Python
.. code-block:: python
import matplotlib.plot as plt
steps = L.runs[0].thermo.Step
@ -406,7 +406,7 @@ Four atoms are placed in the simulation and the dihedral potential is applied on
them using a datafile. Then one of the atoms is rotated along the central axis by
setting its position from Python, which changes the dihedral angle.
.. code-block:: Python
.. code-block:: python
phi = [d \* math.pi / 180 for d in range(360)]
@ -439,7 +439,7 @@ Initially, a 2D system is created in a state with minimal energy.
It is then disordered by moving each atom by a random delta.
.. code-block:: Python
.. code-block:: python
random.seed(27848)
deltaperturb = 0.2
@ -458,7 +458,7 @@ It is then disordered by moving each atom by a random delta.
Finally, the Monte Carlo algorithm is implemented in Python. It continuously
moves random atoms by a random delta and only accepts certain moves.
.. code-block:: Python
.. code-block:: python
estart = L.eval("pe")
elast = estart
@ -517,7 +517,7 @@ PyLammps can be run in parallel using mpi4py. This python package can be install
The following is a short example which reads in an existing LAMMPS input file and
executes it in parallel. You can find in.melt in the examples/melt folder.
.. code-block:: Python
.. code-block:: python
from mpi4py import MPI
from lammps import PyLammps

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

@ -43,7 +43,7 @@ JSON
"ke": $(ke)
}""" file current_state.json screen no
.. code-block:: JSON
.. code-block:: json
:caption: current_state.json
{

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

@ -144,11 +144,6 @@ does not change the atom positions due to non-periodicity. In this
mode, if you tilt the system to extreme angles, the simulation will
simply become inefficient, due to the highly skewed simulation box.
The limitation on not creating a simulation box with a tilt factor
skewing the box more than half the distance of the parallel box length
can be overridden via the :doc:`box <box>` command. Setting the *tilt*
keyword to *large* allows any tilt factors to be specified.
Box flips that may occur using the :doc:`fix deform <fix_deform>` or
:doc:`fix npt <fix_nh>` commands can be turned off using the *flip no*
option with either of the commands.

View File

@ -0,0 +1,126 @@
Type labels
===========
.. versionadded:: 15Sep2022
Each atom in LAMMPS has an associated numeric atom type. Similarly,
each bond, angle, dihedral, and improper is assigned a bond type,
angle type, and so on. The primary use of these types is to map
potential (force field) parameters to the interactions of the atom,
bond, angle, dihedral, and improper.
By default, type values are entered as integers from 1 to Ntypes
wherever they appear in LAMMPS input or output files. The total number
Ntypes for each interaction is "locked in" when the simulation box
is created.
A recent addition to LAMMPS is the option to use strings - referred
to as type labels - as an alternative. Using type labels instead of
numeric types can be advantageous in various scenarios. For example,
type labels can make inputs more readable and generic (i.e. usable through
the :doc:`include command <include>` for different systems with different
numerical values assigned to types. This generality also applies to
other inputs like data files read by :doc:`read_data <read_data>` or
molecule template files read by the :doc:`molecule <molecule>`
command. See below for a list of other commands that can use
type labels in different ways.
LAMMPS will *internally* continue to use numeric types, which means
that many previous restrictions still apply. For example, the total
number of types is locked in when creating the simulation box, and
potential parameters for each type must be provided even if not used
by any interactions.
A collection of type labels for all type-kinds (atom types, bond types,
etc.) is stored as a "label map" which is simply a list of numeric types
and their associated type labels. Within a type-kind, each type label
must be unique. It can be assigned to only one numeric type. To read
and write type labels to data files for a given type-kind, *all*
associated numeric types need have a type label assigned. Partial
maps can be saved with the :doc:`labelmap write <labelmap>` command
and read back with the :doc:`include <include>` command.
Valid type labels can contain most ASCII characters, but cannot start
with a number, a '#', or a '*'. Also, labels must not contain whitespace
characters. When using the :doc:`labelmap command <labelmap>` in the
LAMMPS input, if certain characters appear in the type label, such as
the single (') or double (") quote or the '#' character, the label
must be put in either double, single, or triple (""") quotes. Triple
quotes allow for the most generic type label strings, but they require
to have a leading and trailing blank space. When defining type labels
the blanks will be ignored. Example:
.. code-block:: LAMMPS
labelmap angle 1 """ C1'-C2"-C3# """
This command will map the string ```C1'-C2"-C3#``` to the angle type 1.
There are two ways to define label maps. One is via the :doc:`labelmap
<labelmap>` command. The other is via the :doc:`read_data <read_data>`
command. A data file can have sections such as *Atom Type Labels*, *Bond
Type Labels*, etc., which assign type labels to numeric types. The
label map can be written out to data files by the :doc:`write_data
<write_data>` command. This map is also written to and read from
restart files, by the :doc:`write_restart <write_restart>` and
:doc:`read_restart <read_restart>` commands.
----------
Use of type labels in LAMMPS input or output
""""""""""""""""""""""""""""""""""""""""""""
Many LAMMPS input script commands that take a numeric type as an
argument can use the associated type label instead. If a type label
is not defined for a particular numeric type, only its numeric type
can be used.
This example assigns labels to the atom types, and then uses the type
labels to redefine the pair coefficients.
.. code-block:: LAMMPS
pair_coeff 1 2 1.0 1.0 # numeric types
labelmap atom 1 C 2 H
pair_coeff C H 1.0 1.0 # type labels
Adding support for type labels to various commands is an ongoing
project. If an input script command (or a section in a file read by a
command) allows substituting a type label for a numeric type argument,
it will be explicitly mentioned in that command's documentation page.
As a temporary measure, input script commands can take advantage of
variables and how they can be expanded during processing of the input.
The variables can use functions that will translate type label strings
to their respective number as defined in the current label map. See the
:doc:`variable <variable>` command for details.
For example, here is how the pair_coeff command could be used with
type labels if it did not yet support them, either with an explicit
variable command or an implicit variable used in the pair_coeff
command.
.. code-block:: LAMMPS
labelmap atom 1 C 2 H
variable atom1 equal label2type(atom,C)
variable atom2 equal label2type(atom,H)
pair_coeff ${atom1} ${atom2} 1.0 1.0
.. code-block:: LAMMPS
labelmap atom 1 C 2 H
pair_coeff $(label2type(atom,C)) $(label2type(atom,H)) 80.0 1.2
----------
Commands that can use label types
"""""""""""""""""""""""""""""""""
Any workflow that involves reading multiple data files, molecule
templates or a combination of the two can be streamlined by using type
labels instead of numeric types, because types are automatically synced
between the files. The creation of simulation-ready reaction templates
for :doc:`fix bond/react <fix_bond_react>` is much simpler when using
type labels, and results in templates that can be used without
modification in multiple simulations or different systems.

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

@ -1,24 +1,25 @@
Download an executable for Linux or Mac via Conda
-------------------------------------------------
Binaries are available for MacOS or Linux via `Conda <conda_>`_.
Pre-compiled LAMMPS binaries are available for macOS or Linux via the
`Conda <conda_>`_ package management system.
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
% conda config --add channels conda-forge
% conda create -n my-lammps-env
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
% conda activate my-lammps-env
% conda install lammps
conda activate my-lammps-env
conda install lammps
The LAMMPS binary is built with the :ref:`KIM package <kim>` which
results in Conda also installing the `kim-api` binaries when LAMMPS is
@ -27,7 +28,7 @@ install the `openkim-models` package
.. code-block:: bash
% conda install openkim-models
conda install openkim-models
If you have problems with the installation you can post issues to
`this link <conda_forge_lammps_>`_.

View File

@ -41,7 +41,7 @@ create a local copy of the LAMMPS repository with a command like:
.. code-block:: bash
$ git clone -b release https://github.com/lammps/lammps.git mylammps
git clone -b release https://github.com/lammps/lammps.git mylammps
where "mylammps" is the name of the directory you wish to create on
your machine and "release" is one of the 3 branches listed above.
@ -78,10 +78,10 @@ from within the "mylammps" directory:
.. code-block:: bash
$ git checkout release # not needed if you always stay in this branch
$ git checkout stable # use one of these 3 checkout commands
$ git checkout develop # to choose the branch to follow
$ git pull
git checkout release # not needed if you always stay in this branch
git checkout stable # use one of these 3 checkout commands
git checkout develop # to choose the branch to follow
git pull
Doing a "pull" will not change any files you have added to the LAMMPS
directory structure. It will also not change any existing LAMMPS
@ -97,7 +97,7 @@ this is as follows.
.. code-block:: bash
$ git checkout tagID
git checkout tagID
Stable versions and what tagID to use for a particular stable version
are discussed on `this page <https://www.lammps.org/bug.html#version>`_.
@ -138,13 +138,13 @@ changed. How to do this depends on the build system you are using.
.. code-block:: bash
$ make purge # remove any deprecated src files
$ make package-update # sync package files with src files
$ make foo # re-build for your machine (mpi, serial, etc)
make purge # remove any deprecated src files
make package-update # sync package files with src files
make foo # re-build for your machine (mpi, serial, etc)
to enforce consistency of the source between the src folder
and package directories. This is OK to do even if you don't
use any packages. The "make purge" command removes any deprecated
use any packages. The ``make purge`` command removes any deprecated
src files if they were removed by the patch from a package
sub-directory.
@ -160,9 +160,9 @@ changed. How to do this depends on the build system you are using.
:class: note
The servers at github.com support the "https://" access protocol for
anonymous, read-only access. If you have a suitably configured GitHub
account, you may also use SSH protocol with the
URL "git@github.com:lammps/lammps.git".
anonymous, read-only access. If you have a suitably configured
GitHub account, you may also use SSH protocol with the URL
"git@github.com:lammps/lammps.git".
The LAMMPS GitHub project is currently managed by Axel Kohlmeyer
(Temple U, akohlmey at gmail.com).

View File

@ -34,7 +34,7 @@ To install LAMMPS do the following once:
.. code-block:: bash
$ sudo apt-get install lammps
sudo apt-get install lammps
This downloads an executable named ``lmp`` to your box and multiple
packages with supporting data, examples and libraries as well as any
@ -43,13 +43,13 @@ to run input scripts:
.. code-block:: bash
$ lmp -in in.lj
lmp -in in.lj
To update LAMMPS to the latest packaged version, do the following:
.. code-block:: bash
$ sudo apt-get update
sudo apt-get update
which will also update other packages on your system.
@ -61,14 +61,14 @@ package
.. code-block:: bash
$ sudo apt-get install openkim-models
sudo apt-get install openkim-models
Or use the KIM-API commands to download and install individual models.
To un-install LAMMPS, do the following:
.. code-block:: bash
$ sudo apt-get remove lammps
sudo apt-get remove lammps
Please use ``lmp -help`` to see which compilation options, packages,
and styles are included in the binary.
@ -103,9 +103,9 @@ To install LAMMPS with OpenMPI and run an input ``in.lj`` with 2 CPUs do:
.. code-block:: bash
$ dnf install lammps-openmpi
$ module load mpi/openmpi-x86_64
$ mpirun -np 2 lmp -in in.lj
dnf install lammps-openmpi
module load mpi/openmpi-x86_64
mpirun -np 2 lmp -in in.lj
The ``dnf install`` command is needed only once. In case of a new LAMMPS
stable release, ``dnf update`` will automatically update to the newer
@ -121,7 +121,7 @@ can install the `openkim-models` package
.. code-block:: bash
$ dnf install openkim-models
dnf install openkim-models
Please use ``lmp -help`` to see which compilation options, packages,
and styles are included in the binary.
@ -162,14 +162,14 @@ in OpenSuse as of Leap 15.0. You can install the package with:
.. code-block:: bash
$ zypper install lammps
zypper install lammps
This includes support for OpenMPI. The name of the LAMMPS executable
is ``lmp``. Thus to run an input in parallel on 2 CPUs you would do:
.. code-block:: bash
$ mpirun -np 2 lmp -in in.lj
mpirun -np 2 lmp -in in.lj
Please use ``lmp -help`` to see which compilation options, packages,
and styles are included in the binary.
@ -181,7 +181,7 @@ can install the `openkim-models` package
.. code-block:: bash
$ zypper install openkim-models
zypper install openkim-models
Thanks to Christoph Junghans (LANL) for making LAMMPS available in OpenSuse.
@ -197,7 +197,7 @@ typing:
.. code-block:: bash
% emerge --ask lammps
emerge --ask lammps
Note that in Gentoo the LAMMPS source is downloaded and the package is
built on the your machine.
@ -206,7 +206,7 @@ Certain LAMMPS packages can be enable via USE flags, type
.. code-block:: bash
% equery uses lammps
equery uses lammps
for details.
@ -229,10 +229,10 @@ any of the above names in-place of lammps.
.. code-block:: bash
$ git clone https://aur.archlinux.org/lammps.git
$ cd lammps
$ makepkg -s
$ makepkg -i
git clone https://aur.archlinux.org/lammps.git
cd lammps
makepkg -s
makepkg -i
To update, you may repeat the above, or change into the cloned directory,
and execute the following, after which, if there are any changes, you may
@ -240,7 +240,7 @@ use makepkg as above.
.. code-block:: bash
$ git pull
git pull
Alternatively, you may use an AUR helper to install these packages.

View File

@ -12,7 +12,7 @@ the following commands:
.. code-block:: bash
% brew install lammps
brew install lammps
This will install the executables "lammps_serial" and "lammps_mpi", as well as
the LAMMPS "doc", "potentials", "tools", "bench", and "examples" directories.
@ -22,7 +22,7 @@ Lennard-Jones benchmark file:
.. code-block:: bash
% brew test lammps -v
brew test lammps -v
The LAMMPS binary is built with the :ref:`KIM package <kim>` which
results in Homebrew also installing the `kim-api` binaries when LAMMPS is
@ -31,7 +31,7 @@ install the `openkim-models` package
.. code-block:: bash
% brew install openkim-models
brew install openkim-models
If you have problems with the installation you can post issues to
`this link <https://github.com/Homebrew/homebrew-core/issues>`_.

View File

@ -26,7 +26,7 @@ command:
.. code-block:: bash
$ tar -xzvf lammps*.tar.gz
tar -xzvf lammps*.tar.gz
This will create a LAMMPS directory with the version date
in its name, e.g. lammps-23Jun18.
@ -40,7 +40,7 @@ with the following command, to create a lammps-<version> dir:
.. code-block:: bash
$ unzip lammps*.zip
unzip lammps*.zip
This version corresponds to the selected LAMMPS patch or stable
release.

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,

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