Compare commits

...

924 Commits

Author SHA1 Message Date
d08d6b5fb0 Merge pull request #1623 from akohlmey/next-version
Step version string for stable release
2019-08-06 11:17:40 -04:00
db621fc897 Merge pull request #1622 from akohlmey/fix-ave-histo-bugfix
fix inconsistent enumerator bug in fix ave/histo vs fix ave/histo/weight
2019-08-06 10:54:49 -04:00
c820c92225 Merge pull request #1620 from lammps/replicate
fix formatting and augment explanation for bbox option
2019-08-06 10:12:19 -04:00
59046e7444 step version number for stable release 2019-08-06 08:52:54 -04:00
4a55e9dd0c fix inconsistent enumerator bug in fix ave/histo vs fix ave/histo/weight 2019-08-06 07:28:00 -04:00
2d64323354 fix formatting and augment explanation for bbox option 2019-08-05 17:21:11 -06:00
25b504d4fd Merge pull request #1615 from akohlmey/next_version
Step version string for stable release
2019-08-05 19:13:17 -04:00
34cc7ed5b1 Merge pull request #1619 from ellio167/kim-doc-update
Update kim query url in docs
2019-08-05 17:39:40 -04:00
3ef93d6e1b cannot forced enable FFMpeg and gzip on windows yet. 2019-08-05 16:59:18 -04:00
2092b2c010 Step version string for stable release 2019-08-05 16:58:26 -04:00
16bf916dd0 Merge pull request #1616 from akohlmey/fixes-for-stable
Collected small fixes for stable release
2019-08-05 16:48:50 -04:00
3a4bce1e52 Merge pull request #1617 from rbberger/cmake_docs_additions
Mention LAMMPS_LIB_SUFFIX in docs
2019-08-05 16:36:48 -04:00
0bd5704107 Merge pull request #1618 from giacomofiorin/colvars-update
Bugfix for Colvars library (update to version 2019-08-05)
2019-08-05 16:36:16 -04:00
e39b85b62f Update kim query url in docs 2019-08-05 15:23:57 -05:00
97501f0946 Fix typo 2019-08-05 14:59:40 -04:00
51ba9bd520 Bugfix for Colvars library (update to version 2019-08-05)
Bugfix for group2CenterOnly (coordNum option):
https://github.com/Colvars/colvars/pull/278
2019-08-05 14:14:33 -04:00
f2757eaf41 Mention LAMMPS_LIB_SUFFIX in docs 2019-08-05 14:00:56 -04:00
096c225594 Merge pull request #1613 from rbberger/cmake_docs_update
Update CMake documentation
2019-08-04 18:32:11 -04:00
58d27403f1 CMake tweaks to improve building LAMMPS for windows with mingw on Linux 2019-08-04 18:28:26 -04:00
b65ae605e5 Added one-liner for HTML-only docs in Build.txt 2019-08-03 15:17:18 -04:00
d82ae64d16 minor tweak for consistency 2019-08-03 11:16:55 -04:00
5b3423c60e tweaks for Linux to Windows cross-compilation 2019-08-03 11:16:14 -04:00
faefcc776a sched_getaffinity() is a Linux specific system call. add preprocessor guards 2019-08-03 10:38:41 -04:00
0774e92ece use KIM-API 2.1.2 consistently with CMake and conventional build system 2019-08-03 06:40:31 -04:00
91fdd98fbc restore accidentally deleted text 2019-08-02 18:44:40 -04:00
bd87b67232 Update false_positives.txt 2019-08-02 17:35:26 -04:00
eb7fa1b6cb Update CMake documentation 2019-08-02 17:04:59 -04:00
aff5f06e8f Merge pull request #1612 from akohlmey/new_version
Step version string for next patch release
2019-08-02 14:27:13 -04:00
bd3ffe1321 Merge pull request #1603 from eagunn/iss1572clean
Iss1572clean: Clean fix for error handling, clarify data requirements for fix bocs input
2019-08-02 10:43:30 -04:00
11198e9d29 Merge pull request #1607 from giacomofiorin/colvars-update
Update Colvars to version 2019-08-01
2019-08-02 10:43:13 -04:00
a857e7f790 Merge pull request #1608 from wmbrownIntel/intel-eam-eatom-fix
Bug fix for eam/intel per-atom energy calculation.
2019-08-02 10:42:54 -04:00
9c691ddd0f Merge pull request #1610 from wmbrownIntel/intel-ncache-alias-fix
Bug fixes for use of uninitialized variable and strict-aliasing in USER-INTEL
2019-08-02 10:42:37 -04:00
828ddfd957 Merge pull request #1611 from evoyiatzis/patch-1
small clean-up of fix.txt
2019-08-02 10:42:20 -04:00
7ba6b8a06a Merge pull request #1604 from akohlmey/timeout-for-replica
Add support for timeouts to temper commands and a few small fixes
2019-08-02 10:41:44 -04:00
d750cc02c0 Changed the code in the read_F_table function to conform to the "expected behavior" description in #1572. Adopted a best-of-both-worlds approach, though, and processed the whole input file all the way through, emitting a message for each problem found, before issuing a final error message to stop processing. Updated doc to clarify requirement for uniform spacing of pressure correction points. 2019-08-02 08:46:04 -04:00
9ed43e55f0 add some more descriptions for fixes to list of style in fix command docs 2019-08-02 08:41:34 -04:00
8fd28cd78d fix typo 2019-08-02 08:40:59 -04:00
b5f19b93c2 Step version string for next patch release 2019-08-02 05:15:29 -04:00
5076f1a36c small clean-up of fix.txt 2019-08-02 10:55:18 +02:00
f61cd68ca4 add missing parenthesis 2019-08-01 20:43:33 -04:00
5b4b418289 use check_language() instead of enable_language() to get fortran compiler name 2019-08-01 18:24:14 -04:00
8df7f51470 Merge branch 'master' into timeout-for-replica 2019-08-01 16:56:49 -04:00
f9e34825f0 workaround for xcode oddity with compiling voro++ 2019-08-01 16:42:52 -04:00
52e2db44a1 Update Colvars to version 2019-08-01
One new feature (geometric path variables) and bugfixes.

Minimize occurrence of file-read errors in multiple-walker metadynamics
https://github.com/Colvars/colvars/pull/276

Better error messages for RMSD
https://github.com/Colvars/colvars/pull/272

Ensemble-biased metadynamics documentation
https://github.com/Colvars/colvars/pull/261

Fix bug on multiple walkers metadynamics, pmf included twice
https://github.com/Colvars/colvars/pull/259

Implementation of the geometric path collective variables (C++11-only feature)
https://github.com/Colvars/colvars/pull/249
2019-08-01 15:15:58 -04:00
de366c27e2 Merge pull request #1606 from oywg11/fix-ILP-bug
Fix a communication bug of potential #839
2019-08-01 15:01:13 -04:00
5fd323fe32 simplify example folder for ilp/graphene/hbn potential
- flatten directory structure
- remove CPU time and reduce excess precision from output
- delete redundant and unused files
- regenerate reference outputs
2019-08-01 14:24:47 -04:00
64b682b9f9 library compilation fix for clang with exceptions and -DLAMMPS_BIGBIG 2019-08-01 13:40:50 -04:00
083841ab2a another compilation fix 2019-08-01 13:34:05 -04:00
fa6a990536 reduce output precision to default and don't output per-step cpu time 2019-08-01 13:31:52 -04:00
73d2b824bd fix compilation issue of library.cpp with exceptions enabled 2019-08-01 13:31:13 -04:00
e17e6bb45d Merge pull request #1605 from akohlmey/fix-compilation-errors
Fix some compilation errors
2019-08-01 11:24:30 -04:00
2fe4a6490c restore include file cleanup changes 2019-08-01 11:20:06 -04:00
5fe457667e restore showing references to potential files without pathnames 2019-08-01 11:19:39 -04:00
02511a0ae5 Merge branch 'fix-compilation-errors' of https://github.com/akohlmey/lammps into fix-ILP-bug 2019-08-01 17:40:01 +03:00
76bac4cedc Fix communication bug of ILP 2019-08-01 16:39:42 +03:00
8f5cd8661f Fix communication bug of ILP 2019-08-01 16:38:19 +03:00
e57c3c04d0 Bug fixes for use of uninitialized variable and strict-aliasing in USER-INTEL. 2019-08-01 05:32:18 -07:00
c967c09561 correct compilation error with exceptions enabled in main.cpp 2019-08-01 08:14:27 -04:00
a6bd86eb77 make USER-OMP code compatible with pre-c++ 11 compilers again 2019-08-01 08:14:03 -04:00
e3c91626c8 need to include update.h when exceptions are enabled 2019-08-01 07:07:21 -04:00
2a74832a1e protect MPI library version detection from incompatible MPI libraries 2019-08-01 07:04:24 -04:00
86e3740fb3 use more common syntax for CPP's "defined" keyword 2019-08-01 07:03:51 -04:00
892e4759df protect Spectrum MPI detection from failing to compile with MPI libraries implementing MPI version 2 or 1 2019-08-01 07:02:55 -04:00
207976f4e9 avoid abort when timeout appears in temper commands 2019-08-01 06:11:05 -04:00
074ae06b36 Bug fix for eam/intel per-atom energy calculation. 2019-08-01 02:19:49 -07:00
75c1e28566 fix typo 2019-07-31 23:28:57 -04:00
58404946db add timer timeout support to temper commands 2019-07-31 23:26:13 -04:00
d09ca91627 Merge pull request #1599 from rbberger/collected-small-changes
Collected small changes
2019-07-31 19:13:41 -04:00
e89cedbd99 Merge pull request #1601 from akohlmey/cmake-list-portability
Improve compatibility to older CMake versions when building/installing LAMMPS library and headers
2019-07-31 12:19:41 -04:00
4011f6650d first step of adding timeout support to temper commands 2019-07-31 05:05:17 -04:00
0fa9cd5004 use utils::strmatch to simplify checks for compatible thermostat/barostat fixes 2019-07-31 05:03:59 -04:00
3cc8508795 Add missing definition of NULL in USER-PTM header 2019-07-31 03:22:22 -04:00
da3b91a744 Remove not existing files from USER-PHONON Install.sh 2019-07-31 03:11:44 -04:00
bc79412203 list(TRANSFORM ...) is not portable to older versions of cmake. work around it. 2019-07-30 22:54:02 -04:00
8803183b8b Merge pull request #1593 from akohlmey/next_version
Step version string for next patch release
2019-07-30 22:25:26 -04:00
11a3fd6ce4 Merge pull request #1556 from lammps/bug-maxexchange
more robust version of atom exchange size
2019-07-30 17:09:18 -04:00
e3b1673c8c Merge pull request #1597 from stanmoore1/eff_be_test
Fix failing regression test /examples/USER/eff/Be-solid/in.Be-solid.spe
2019-07-30 17:07:55 -04:00
69a5ff2240 Merge pull request #1592 from akohlmey/collected-small-changes
Collected small changes for next patch release
2019-07-30 17:06:48 -04:00
2b288bc9e0 add missing mode keyword for substitution 2019-07-30 16:53:27 -04:00
882b2301bb handle shared library extension on macosx for plumed runtime build 2019-07-30 16:48:50 -04:00
528ec75f88 special case for MacOSX not needed 2019-07-30 16:38:40 -04:00
f5bf86b32d more improvements to CMake build for USER-PLUMED on MacOSX
default to shared linkage on MacOSX to avoid linker issues from
configure/cmake library detection differences

link/depend on GSL and LAPACK explicitly only for static linkage
2019-07-30 16:27:00 -04:00
d4503a05a4 mention that cstdlib is included in lmptype.h now, too. 2019-07-30 14:22:33 -04:00
47fc31d005 move inline functions to the only place they are used. no need to use size_t for indices that are small 2019-07-30 14:21:53 -04:00
2d93a713e2 Merge branch 'master' into collected-small-changes 2019-07-30 14:14:11 -04:00
6d94fc1b3d include cstdlib in lmptype.h since we define ATOX() macros. 2019-07-30 14:07:30 -04:00
602b4a47c0 Fix failing regression test 2019-07-30 10:37:27 -06:00
8fa4efa08e Merge pull request #1440 from ellio167/kim-simulator-models
Develop native support for KIM simulator models
2019-07-30 10:53:58 -04:00
3eadfa15ef Merge pull request #1512 from mkanski/rotate_molecules
Extend support of "rotate" keyword to all styles of "create_atoms"
2019-07-30 10:53:37 -04:00
3548551479 Fix Kokkos package compile error 2019-07-30 08:49:58 -06:00
d1e8d7cbf8 Step version string for next patch release 2019-07-30 08:26:11 -04:00
b0bccfd8a1 fix typo 2019-07-30 06:55:47 -04:00
3559c25bd9 add missing parenthesis 2019-07-30 06:35:35 -04:00
3fdadb5875 add configuration for linking VTK 7.1 on Ubuntu 18.04 2019-07-30 06:02:47 -04:00
7ab7691c51 update PLUMED support to version 2.5.2 2019-07-30 05:57:57 -04:00
3ee86470bb correct documentation URL for PLUMED 2019-07-30 05:53:28 -04:00
d201d6c2d1 fix grammar error 2019-07-30 10:18:53 +02:00
88523fdd6e Merge pull request #1529 from rupertnash/compute_momentum
add compute momentum command
2019-07-29 22:51:29 -04:00
c9f3f99ee8 Update to kim-api-2.1.2 2019-07-29 21:48:12 -05:00
4289dbb78d clean up includes and whitespace 2019-07-29 22:28:29 -04:00
d2c4989dbf Merge pull request #1583 from evoyiatzis/gyration_shape
computing the eigenvalues of gyration tensor & shape parameters
2019-07-29 22:16:13 -04:00
edf64ed16c Merge pull request #1511 from jdevemy/master
Add keyword hybrid/pair for compute_pressure
2019-07-29 22:15:20 -04:00
9004ebc3fe one more fixup for compatibility for old PDF build scheme 2019-07-29 21:11:13 -04:00
90c678849a replace non-ascii characters with ASCII equivalents 2019-07-29 21:10:49 -04:00
9f276be0e5 fix up legacy doc building for final kim doc files 2019-07-29 20:48:47 -04:00
6833d6def6 Merge branch 'master' into kim-simulator-models
# Resolved Conflicts:
#	src/KIM/kim_query.cpp
#	src/KIM/pair_kim.cpp
2019-07-29 20:43:10 -04:00
5cb02781c2 simplify checking for per chunk compute 2019-07-29 20:35:24 -04:00
180c90acfb use utils::strmatch() to more safely detect gravity fix 2019-07-29 20:21:31 -04:00
2e6850835f Merge pull request #1542 from akohlmey/improve-include-consistency
Improve Consistency of Include Statements (mostly complete)
2019-07-29 20:12:41 -04:00
7043b9f620 Merge pull request #1548 from jrgissing/bond/react-clarify-how-stabilization-works
Bond/react clarify how stabilization works
2019-07-29 19:55:24 -04:00
91e0bebdfa Merge pull request #1576 from Adrian-Diaz/patch-rcb
patch niche rcb issue
2019-07-29 19:54:45 -04:00
d688624335 Merge pull request #1581 from akohlmey/comm-cutoff-with-bond
Include bonds in communication cutoff estimate when no pair style is present or print warning, if cutoff may be too small.
2019-07-29 19:54:24 -04:00
191044ab94 Merge pull request #1588 from akohlmey/cmake-installation-folder-bugfix
Fix bugs with CMake potentials and frc folder installation. Include base C++ headers for library install, too, so one can use the C++ interface as well.
2019-07-29 19:53:36 -04:00
c03e9c9711 Adjust write_echo() within kim_query 2019-07-29 16:11:29 -05:00
2ffc35297b make kim_query log of variable setting look more like other KIM log messages
this adds BEGIN/END marker comments and echoes the actual command line
that the kim_query command implicitly executes
2019-07-29 16:57:34 -04:00
514608b82f Merge branch 'kim-simulator-models' of github.com:ellio167/lammps into kim-simulator-models 2019-07-29 16:40:29 -04:00
ea4107c4b4 add write_echo() method to Input class for logging implicit commands where the echo command would send explicit ones 2019-07-29 16:36:57 -04:00
0f059c56f9 Add details about installing models to KIM example input 2019-07-29 15:30:46 -05:00
0820ebc143 cleanup of compute gyration/shape code.
- use MathSpecial::square(x) instead of pow(x,2) for improved precision
and handling of small and negative numbers
- remove unused include statements
- no need to refetch the compute in every step. during init() is sufficient
2019-07-29 16:16:24 -04:00
0beb39c1af fully integrate compute gyration/shape into doc build system 2019-07-29 16:14:29 -04:00
2afc498a2b Add logging to kim_query (compile error at moment) 2019-07-29 15:04:15 -05:00
e0b20c4fd4 add false positive 2019-07-29 15:23:23 -04:00
6a1b61637b provide some more details about 'make install' with CMake 2019-07-29 13:43:06 -04:00
96e0b03ede .frc files only need to be installed if msi2lmp is built 2019-07-29 13:38:38 -04:00
5307558727 need to install some base C++ headers for C++ library use 2019-07-29 13:34:04 -04:00
a0abd270b5 kim_query check for empty query result 2019-07-29 11:41:01 -05:00
838ea2eca1 Merge branch 'improve-include-consistency' of github.com:akohlmey/lammps into improve-include-consistency 2019-07-29 10:55:24 -04:00
2fba3d027a fix small formatting issue 2019-07-28 14:44:47 -04:00
0f10c55c1c avoid recursive header inclusion 2019-07-26 17:26:59 -04:00
9477df4244 Merge branch 'master' into improve-include-consistency 2019-07-26 17:24:32 -04:00
863ae35658 Merge branch 'fix-plumed-issues' into collected-small-changes 2019-07-26 15:45:41 -04:00
94126e5424 use MPI_Get_library_version() API to provide a more detailed version info, not just the MPI standard level
very chatty output (e.g. from MPICH) is truncated to the next line after 80 characters.
2019-07-26 15:44:10 -04:00
a0e005f93c include LAMMPS version in STUBS library version string. 2019-07-26 15:43:01 -04:00
a5a1e27fb1 refactor commands in the STUBS folder for 'make serial' and 'make clean-serial'
make so that for the "serial" make target we not only automatically build
the STUBS library, if it is missing, but also update its compilation when
there are changes and remove it on the "clean-serial" target.
2019-07-26 15:42:34 -04:00
35cee904d7 Merge pull request #1580 from stanmoore1/kk_cuda_aware
Fix CUDA-aware MPI issues with KOKKOS package
2019-07-26 15:17:49 -04:00
f2dbe186ca Fix typo 2019-07-26 11:45:50 -06:00
e816f0e7a6 Cleanup of CUDA-aware MPI code 2019-07-26 11:24:15 -06:00
0ba854b4ab Add MPI_Get_library_version to STUBS library 2019-07-26 11:23:46 -06:00
f4a984175c Merge pull request #1587 from valleymouth/bug_nve
Fixing bugs in nve/kk when using rmass.
2019-07-26 13:15:30 -04:00
17d6b317a7 Better workaround for Spectrum MPI 2019-07-26 10:37:22 -06:00
6a5902ec48 Update kim_init to use KIM::Collections::GetItemType()
A bit of a cleaner solution.  Should be no visible change for users.
2019-07-26 11:14:46 -05:00
010cb0edf3 Add warning to cmake if PKG_KIM=ON but DOWNLOAD_KIM not set & KIM is not found
This can be a scenario where the user has KIM installed but does not have the
environment setup correctly to be found.  The config. step should provide some
warning of this.  Otherwise, it is easy to miss the fact that KIM is being
downloaded and built.
2019-07-26 11:10:54 -05:00
0bb9df76c2 correct shell profile variables to point to the installation directory 2019-07-26 09:58:18 -04:00
8d4f189699 Revert "new versions of jacobi() method"
This reverts commit 39315268e8.
2019-07-26 09:38:32 -04:00
ca1fece850 Fixing remaining wrong indexing of rmass in nve/kk. 2019-07-26 12:46:04 +01:00
e8d891c0dd simplify installation of data folders and make it consistent
fixes #1586
2019-07-26 06:06:03 -04:00
47689b4ad3 make include files independent of previously included headers. include them first in implementation files.
this is to be compliant with upcoming definition of include file policy
2019-07-26 06:03:21 -04:00
179b507107 Fixing bug in nve/kk when using rmass. 2019-07-26 10:55:27 +01:00
9bedd0d0d0 Merge pull request #1584 from akohlmey/bonded-hybrid-restart
Correct restarting of bonded hybrid styles for table styles
2019-07-25 21:26:17 -04:00
52e1755464 fix spelling errors and false positives 2019-07-25 21:20:42 -04:00
60dfa7daf8 doc spelling update 2019-07-25 18:31:40 -05:00
fe83e4de2e revise logic and documentation of communication cutoff selection one more time 2019-07-25 16:00:01 -04:00
fadb40051b Update kim_query & clear and update examples/kim 2019-07-25 14:03:35 -05:00
ab74bfef20 Small logic tweak 2019-07-25 12:52:16 -06:00
7c1fedff18 Fix var name 2019-07-25 12:30:45 -06:00
081780706c Store if comm flags are changed by turning off CUDA-aware MPI so they can be restored if using cuda/aware on 2019-07-25 12:15:29 -06:00
d0b442aca1 Rename file 2019-07-25 11:25:32 -06:00
df139bf32b Merge in suggestions from PR #1582 2019-07-25 11:17:45 -06:00
ca291f1015 Update to kim-api-2.1.1 2019-07-25 11:47:56 -05:00
183d92cad7 update comm_modify documentation 2019-07-25 08:49:49 -04:00
4586fd50af adjust logic for choosing the communication cutoff to requests from @sjplimp
limit cases where warning about adjusting the comm cutoff is printed.
2019-07-25 08:33:21 -04:00
18730e0f92 add documentation for the need to respecify coeff commands for bonded table styles 2019-07-25 08:15:18 -04:00
f86d2c9934 read/write settings in restart files for bonded hybrid styles
this allows to properly restart table styles, which require
additional settings unlike all other bonded styles.
2019-07-25 07:55:39 -04:00
5ca93e3651 move global settings in restart files for table styles to restart settings functions 2019-07-25 07:54:21 -04:00
b1a5444815 add (empty) read/write_restart_settings() functions to bond/angle/dihedral/improper base classes 2019-07-25 07:32:15 -04:00
114a754a72 Delete compute_gyration.cpp
It is not part of the new compute style
2019-07-25 11:48:04 +02:00
6710cc4052 cpp file for the compute command
The right file with the cpp code
2019-07-25 11:44:43 +02:00
6e9252c847 Add files via upload
The actual source code for the new compute
2019-07-25 11:10:36 +02:00
1cebc5516e Update README
Adding my e-mail to README
2019-07-25 11:05:35 +02:00
0be034ea46 Add files via upload
txt file with the documentation of the new compute style
2019-07-25 11:03:41 +02:00
aec43304f4 Add files via upload
tex file with the equations for the shape parameters
2019-07-25 11:02:51 +02:00
b5a066ecd0 Better error checking for kim_init log.cite behavior 2019-07-24 21:08:08 -05:00
d08477cc5f print warning, when explicitly specified communication cutoff is increased 2019-07-24 17:49:00 -04:00
c098582df8 refactor communication cutoff estimator. move it to Comm class. and adjust heuristics. 2019-07-24 17:27:35 -04:00
eaf2b59b1b adapt fix neigh/history/omp to changes for dynamic exchange buffer size 2019-07-24 16:53:03 -04:00
3c53efb1ca don't set MPI communicator when compiling in serial with MPI stubs 2019-07-24 16:03:11 -04:00
d59737299c whitespace cleanup 2019-07-24 16:02:49 -04:00
6ee38d4887 use ${CMAKE_SHARED_LIBRARY_SUFFIX) for better portability 2019-07-24 16:02:36 -04:00
24d9c537c0 only search for LAPACK when building in static mode and when it is not needed for something else 2019-07-24 16:01:46 -04:00
cb9facea8b add reset of dotmark 2019-07-24 13:43:12 -06:00
afab7d99c1 Fix variable name 2019-07-24 13:10:37 -06:00
1d310ad73e add half a bond length safety margin to bond length based cutoff estimates 2019-07-24 14:52:37 -04:00
20843f7476 add documentation for warning added to comm styles 2019-07-24 14:52:07 -04:00
be1522d16d add warning to Comm class against zero communication cutoff 2019-07-24 14:42:17 -04:00
985c959a91 include the bond length in communication cutoff considerations 2019-07-24 14:27:29 -04:00
4760cf868d Update docs to change GPU-direct to CUDA-aware MPI 2019-07-24 12:11:26 -06:00
4400257783 Change GPU-direct to CUDA-aware MPI and add workaround for IBM Spectrum MPI 2019-07-24 12:10:57 -06:00
3887a7f3d7 Updated KIM ID code for IFF SM 2019-07-24 12:07:38 -05:00
2d2c1954db Merge branch 'kim-simulator-models' of github.com:ellio167/lammps into kim-simulator-models 2019-07-24 11:24:20 -05:00
3bc4a07c74 Corrections to kim_query in example 2019-07-24 11:23:51 -05:00
be86db9dd9 Update /lib/kim stuff 2019-07-23 21:06:02 -05:00
dd4368dd1b Fix bug in pair_kim.cpp for partialParticleVirial computation 2019-07-23 13:41:31 -05:00
ce9c5e41a8 Merge branch 'new-jacobi' into improve-include-consistency 2019-07-23 13:56:30 -04:00
b6b802d0b1 correct forward declaration of POEMS workspace class 2019-07-22 14:36:09 -04:00
320be3bcef undo changes to poems library and package as they fail regression testing 2019-07-22 14:22:36 -04:00
72797b3063 Merge branch 'master' into improve-include-consistency 2019-07-22 13:31:03 -04:00
36ac47c2c6 Merge branch 'kim-simulator-models' of github.com:ellio167/lammps into kim-simulator-models 2019-07-22 10:55:30 -05:00
f5beb418e8 Put in KIM ID for IFF model in kim_commands usage examples 2019-07-22 10:54:53 -05:00
243ce8dbfc Merge branch 'master' into compute_momentum 2019-07-22 09:48:08 +01:00
c831cee21d Fix typos in documentation 2019-07-22 09:46:01 +01:00
f2978475af Update docs
* bring homebrew install notes up-to-date
* update openkim docs
2019-07-21 15:17:53 -05:00
03d26f6f6f Merge branch 'master' into kim-simulator-models 2019-07-21 13:59:48 -05:00
f4df51763d Merge pull request #1574 from akohlmey/next_version
Step version string for next patch release
2019-07-20 08:49:03 -04:00
9239c9dedb patch niche rcb issue 2019-07-19 17:13:44 -06:00
d52540ea31 Merge pull request #1571 from stanmoore1/kk_snap_opt
Add optimized version of Kokkos SNAP potential
2019-07-19 19:10:10 -04:00
a50d57bceb Merge branch 'master' into improve-include-consistency
# Conflicts:
#	src/utils.cpp
2019-07-19 17:57:58 -04:00
981b9a1f7a Merge pull request #1567 from akohlmey/collected-small-fixes
Collected small fixes and update for the next patch
2019-07-19 17:25:39 -04:00
895d4fa927 Merge pull request #1575 from akohlmey/better-error-checking-on-parsing
Better error checking on parsing files
2019-07-19 17:25:16 -04:00
502fbfb78a Fix memory issue 2019-07-19 15:20:22 -06:00
276e3b2df1 update fix tmd input similar to read_data 2019-07-19 14:00:24 -04:00
ceb2ce5814 Merge branch 'master' into improve-include-consistency
# Conflicts:
#	src/USER-CGDNA/pair_oxdna2_stk.cpp
2019-07-19 13:26:00 -04:00
67b74aea63 Merge pull request #1573 from ohenrich/user-cgdna
Update for USER-CGDNA package
2019-07-19 13:24:07 -04:00
e72aef2a96 more sscanf() return value checking 2019-07-19 12:01:16 -04:00
c7bccc5e7a Workaround for GCC internal compiler error 2019-07-19 09:40:19 -06:00
d730ef5b19 fix typo 2019-07-19 11:31:45 -04:00
44c9d3c1be Merge pull request #60 from evoyiatzis/patch-1
Update compute.txt with missing one line comments on compute commands
2019-07-19 11:26:03 -04:00
1de00aaab0 improve parsing of data file header
the header lines are now checked using regular expressions
instead of strstr() which allows for stricter checking, but
also is more forgiving in terms of extra or different whitespace

return value of sscanf() calls is checked and on failure LAMMPS errors out
2019-07-19 11:16:41 -04:00
8526e7a4cd checking return value of ?scanf() calls to detect problems parsing files 2019-07-19 11:14:39 -04:00
4f7c95d87e Update compute.txt
Addition of a few one-liners
2019-07-19 17:13:38 +02:00
4c328bf846 add metachars '\i' and '\f' to regexp for interger and floating point number chars 2019-07-19 10:39:06 -04:00
babbdaff2c step version string for next patch release 2019-07-19 08:31:04 -04:00
c2643a519e Clarified explanation of new example3 2019-07-19 13:29:39 +01:00
0ee0ea109c Removed references to pair_oxdna2_stk 2019-07-19 12:43:37 +01:00
57fd9723a5 Added comment on new duplex3 2019-07-19 12:30:01 +01:00
e2a7cdc4f7 Updated extended documentation 2019-07-19 12:20:56 +01:00
92b53c7bc2 Merge pull request #1570 from julient31/spin-update
Minor corrections in the SPIN package
2019-07-19 07:03:40 -04:00
7bf9757755 Updated input and log files, amended comment in data files 2019-07-19 11:57:58 +01:00
3acb09e3b1 Corrected virial, altered calculation of stacking strength 2019-07-19 11:09:47 +01:00
e5fffa59ef Add optimized version of Kokkos SNAP 2019-07-18 15:29:45 -06:00
87154da7f5 another Unix path correction 2019-07-17 23:24:12 -06:00
8cf1084dec bond/react: use Unix path in docs 2019-07-17 23:05:28 -06:00
92518e53f4 Revert "spelling: attempt add file paths to false positives"
This reverts commit 0c4af8b820.
2019-07-17 22:58:40 -06:00
22b73a316f Commit2 JT 071719
- added 'magnetons' to false-positive for doc
2019-07-17 22:15:23 -06:00
60ebc08d0f Commit JT 071719
- added doc for read_data spin
- corrected an error in pack/unpack data hybrid
- added mask flags in fix_nve_spin::initial_integrate
- removed spin renormalization in min_spin (was causing a bug)
2019-07-17 21:49:26 -06:00
856efa28aa fix issue #1568 2019-07-17 19:37:08 -04:00
02b0fb454f include rmass[] in border communication. will otherwise trigger issues with fix shake. 2019-07-17 16:34:43 -04:00
bcf600d781 let CMake configuration default to Release with debug settings
this way we can more easily get detailed stack traces from people compiling with CMake
2019-07-17 15:47:28 -04:00
06275b03c0 refactor FFT handling in CMake module for KSPACE.
This also improves the FFT info output in the PPPM styles
2019-07-17 15:46:39 -04:00
354f4d19fd Update to kim-api-2.1.0 release 2019-07-16 22:11:23 -05:00
5b4f77b919 kim_query check for explicit 'model=' key in arguments (give error if present). 2019-07-16 16:20:48 -05:00
b61b48235b Updated openkim.org documentation URLs to new /doc/* locations 2019-07-16 15:19:28 -05:00
658cda9b67 Updated kim_query documentation to new format 2019-07-16 15:02:24 -05:00
0a90032b4c Merge pull request #1563 from stanmoore1/kk_setforce
Fix segfault in fix_setforce_kokkos
2019-07-15 18:07:10 -04:00
2b5a6d3b7f clean up (some) includes in KOKKOS package 2019-07-15 18:05:20 -04:00
68626f577b Merge branch 'master' into improve-include-consistency 2019-07-12 19:59:56 -04:00
6742f371ad Merge pull request #1561 from akohlmey/fix-user-intel-nve-bug
Fix bug in fix nve/intel
2019-07-12 19:59:21 -04:00
61220f9b6c Merge pull request #1562 from athomps/langevin-rm-notemplate
Removed TEMPLATED_FIX_LANGEVIN ifdef and untemplated version of fix langevin
2019-07-12 19:58:34 -04:00
3e90b82c8e Merge pull request #1564 from akohlmey/gpu-lib-clang-cplusplus
Improve portability of GPU library to CLang compilers
2019-07-12 19:58:15 -04:00
3d157e5ab4 more include handling cleanup in USER packages 2019-07-12 18:00:59 -04:00
a1f0c0079d some cleanup for missed steps in previous change sets 2019-07-12 16:37:01 -04:00
e832b5d50b make clang++ happy when trying to compile the GPU library 2019-07-12 15:42:16 -04:00
a51479a62b Fix bug in fix_setforce_kokkos 2019-07-12 11:53:32 -06:00
08ed046a69 Removed TEMPLATED_FIX_LANGEVIN ifdef 2019-07-12 11:29:14 -06:00
2f64615087 more work on includes in USER-OMP 2019-07-11 22:56:05 -04:00
3a10486a40 Merge branch 'improve-include-consistency' of github.com:akohlmey/lammps into improve-include-consistency
# Conflicts:
#	src/USER-OMP/angle_cosine_shift_omp.cpp
#	src/USER-OMP/angle_fourier_omp.cpp
#	src/USER-OMP/angle_quartic_omp.cpp
#	src/USER-OMP/bond_gromos_omp.cpp
#	src/USER-OMP/dihedral_table_omp.cpp
#	src/USER-OMP/fix_gravity_omp.cpp
#	src/USER-OMP/fix_nvt_sllod_omp.cpp
#	src/USER-OMP/fix_qeq_reax_omp.cpp
#	src/USER-OMP/fix_rigid_nph_omp.cpp
#	src/USER-OMP/fix_rigid_npt_omp.cpp
#	src/USER-OMP/fix_rigid_omp.cpp
#	src/USER-OMP/msm_cg_omp.cpp
#	src/USER-OMP/msm_omp.cpp
#	src/USER-OMP/npair_half_bin_atomonly_newton_omp.cpp
#	src/USER-OMP/pppm_cg_omp.cpp
#	src/USER-OMP/pppm_disp_omp.cpp
#	src/USER-OMP/pppm_disp_tip4p_omp.cpp
#	src/USER-OMP/pppm_omp.cpp
2019-07-11 22:14:09 -04:00
b4f60ef477 starting to work on includes in USER-OMP 2019-07-11 22:12:01 -04:00
944c3bc91d fix bug reported by jesse carter on lammps-users 2019-07-11 17:42:58 -04:00
48c7356743 starting to work on includes in USER-OMP 2019-07-11 16:51:48 -04:00
9718b99af9 Clarification on what preceeds in kim_interactions 2019-07-11 13:23:46 -05:00
9f6bbe1d8e recover compilation of KOKKOS package 2019-07-11 14:21:55 -04:00
3349ed0013 Changed PM Page and SM Page to "Model Page" 2019-07-11 12:22:36 -05:00
358cec9a0c Merge branch 'kim-simulator-models' of github.com:ellio167/lammps into kim-simulator-models 2019-07-11 12:05:21 -05:00
8e2f3e4883 Wording changes and removed duplicate text 2019-07-11 12:04:54 -05:00
dbd0158d3f Adjust/update kim_query do_query() routine 2019-07-11 12:01:35 -05:00
b1f8c3f38a silence some compiler warnings 2019-07-11 11:25:44 -04:00
b5fea1f4a7 no need to zero out Ec_meam twice 2019-07-11 09:19:26 -04:00
01524d9850 recover compilation of USER-OMP 2019-07-11 08:13:03 -04:00
ca4b26ddf8 fix up some leftover include issues that got overlooked in previous changes 2019-07-11 07:22:41 -04:00
d05787ab99 clean up include in USER-REAXC 2019-07-11 07:16:53 -04:00
7109c1013a Merge pull request #1560 from stanmoore1/kk_halffull
Fix memory issue in Kokkos neigh list when using half-from-full
2019-07-11 06:28:43 -04:00
1a0662c386 Some corrections and additions to kim_commands docs 2019-07-10 22:11:47 -05:00
789d6a991e Update comment 2019-07-10 17:01:46 -06:00
39873fb7a3 Fix issue in Kokkos neigh list when using half-from-full 2019-07-10 16:53:26 -06:00
956d21ec0e update include lists in packages USER-MISC, USER-MOFF, USER-PTM, and USER-SMD 2019-07-10 15:51:57 -04:00
ea68db964a trim (left and right) strings from kim_query xxxx split 2019-07-10 14:21:07 -05:00
2ca2d053fd Merge branch 'master' into improve-include-consistency 2019-07-10 14:18:42 -04:00
a1a7754961 Merge pull request #1559 from akohlmey/validate-more-data-file-numbers
Complete data file read validation change set
2019-07-10 14:08:43 -04:00
941607595a one more change 2019-07-10 08:48:33 -06:00
89af88bd10 more changes to robustify comm buf_send length 2019-07-10 08:41:27 -06:00
c5044d6484 continuing include file handling cleanup 2019-07-10 08:49:16 -04:00
872d43f02f recover compilation of USER-OMP package 2019-07-10 07:29:29 -04:00
0eba1c1cbc Merge pull request #1558 from lammps/bop-atomic-stress
add missing term to per-atom stress to pair style bop
2019-07-10 07:23:06 -04:00
0f691de031 include file cleanup in some more packages 2019-07-10 01:18:34 -04:00
054ff97a51 replace ATOTAGINT() calls with utils::tnumeric() in AtomVec classes 2019-07-10 00:27:31 -04:00
93748a18ae further clean up of AtomVec classes after merging PR #1552 to master 2019-07-10 00:22:03 -04:00
d6ed4ee1b1 add missing term to per-atom stress 2019-07-09 17:34:54 -06:00
39315268e8 new versions of jacobi() method 2019-07-09 16:53:19 -06:00
5236497932 Changed 'bohr_per_atu_si' to 'bohr_per_atu_electron_si' 2019-07-09 18:36:51 -04:00
2fd327d057 more robust version of atom exchange size 2019-07-09 16:17:54 -06:00
c2dc624ec9 update packages USER-SPH, USER-SMTBQ, USER-SDPD, USER-TALLY, USER-UEF, USER-YAFF 2019-07-09 16:11:25 -04:00
06dcc9e283 Merge branch 'master' into improve-include-consistency
# Conflicts:
#	src/USER-MESO/atom_vec_tdpd.cpp
2019-07-09 14:50:00 -04:00
691fc357a4 Merge pull request #1551 from martok/meamc-embedding
MEAM/C: embedding-function related refactoring
2019-07-09 14:46:53 -04:00
53b8e329a1 Merge pull request #1552 from akohlmey/validate-data-file-numbers
Validate more numbers read from data files
2019-07-09 14:46:21 -04:00
64faa6c667 Merge pull request #1553 from athomps/read_dump_xyz
Fixed a few problems with read_dump xyz
2019-07-09 14:45:48 -04:00
0d15c57fee Merge pull request #1555 from stanmoore1/kk_neigh
Fix issue in Kokkos neighbor binning when using non-Kokkos lists on GPUs
2019-07-09 14:45:23 -04:00
5013fd699f Fix issue in Kokkos neighor binning when using non-Kokkos lists on GPUs 2019-07-09 09:43:50 -06:00
30086950b8 Added preliminary doc for kim_interactions fixed_types 2019-07-09 09:43:34 -04:00
39c8a7de6e Updated kim_commands doc to descript kim_query split mode 2019-07-09 07:35:50 -04:00
7a62717051 Updated USER-MOLFILE 2019-07-08 19:40:31 -06:00
74414afdea Added the boxinfo argument 2019-07-08 17:25:23 -06:00
1f47da6c51 Add fixed_types to kim_init & split to kim_query 2019-07-08 17:46:47 -05:00
cbdc5dba13 fix bug in atom style wavepacket 2019-07-08 18:09:41 -04:00
cfaa537296 use alternate implementation of numeric conversion functions
these new functions allow to choose between aborting with Error::one()
and exiting with Error::all(). in the long run those should replace
all of the functions in Force.
2019-07-08 17:51:37 -04:00
31e19e0824 complete cleaning includes in some more packages 2019-07-08 16:45:21 -04:00
03418be645 minor tweaks to already processed files 2019-07-08 16:22:55 -04:00
60a808d25b bond/react: error->all vs. error->one
also, correct several incorrect instances of error printing, which could cause code to hang without explanation
2019-07-07 21:17:23 -06:00
5b7ae3713b clean up include handling for VORONOI package 2019-07-07 21:02:51 -04:00
65e281d661 Fixed a few problems with read_dump xyz 2019-07-07 18:00:07 -06:00
13d4fbdcfb clean up includes in QEQ, REPLICA, and RIGID packages 2019-07-07 16:27:59 -04:00
b469ff6791 need to include 'force.h' header for conversion functions 2019-07-07 16:06:30 -04:00
15e1b39531 validate more numbers read from data files through using force->numeric()/force->inumeric() instead of atof()/atoi() 2019-07-07 15:52:21 -04:00
57a5588549 cleaning up include file handling in packages MOLECULE and PERI 2019-07-07 15:46:34 -04:00
e5af9db84c clean up includes in MC and MISC package 2019-07-07 11:49:13 -04:00
35e2401099 clean up includes in MANYBODY package 2019-07-07 03:56:44 -04:00
61ed3b65b7 clean up includes in KSPACE package 2019-07-06 10:20:13 -04:00
316554297c clean up includes in packages DIPOLE and GRANULAR 2019-07-06 10:00:24 -04:00
a00d38572e clean up includes in packages CLASS2, COLLOID, COMPRESS, and CORESHELL 2019-07-06 06:29:22 -04:00
4db4833395 fix up includes for BODY package 2019-07-05 21:11:06 -04:00
c00f2adb42 Merge pull request #1544 from akohlmey/collected-small-fixes
Collected small changes and bugfixes for the next patch release
2019-07-05 20:33:55 -04:00
e123b6f02e Merge pull request #1550 from ndtrung81/lj96-fixes
Fixed a bug in lj96/cut/gpu involving missing the special_lj factor
2019-07-05 15:01:19 -04:00
b6bb980980 Merge branch 'improve-include-consistency' of github.com:akohlmey/lammps into improve-include-consistency 2019-07-05 14:59:17 -04:00
9f15ed1e61 Merge pull request #58 from eagunn/improve-include-consistency
Applied minor line edits to new documentation file
2019-07-05 14:59:05 -04:00
2c0eeeb976 one more chunk of files in src folder to be cleaned up 2019-07-05 14:43:20 -04:00
5d4016c285 cleaning up includes of ASPHERE package 2019-07-05 14:42:46 -04:00
5fffccb076 Apply minor line editing to new documentation file. 2019-07-05 12:08:57 -06:00
66390882fd Merge pull request #2 from akohlmey/improve-include-consistency
Improve include consistency from Axel's repo
2019-07-05 11:38:07 -06:00
46a9772a6d Minor clean-up 2019-07-05 12:12:29 -05:00
d07a49aeea add missing prototypes 2019-07-05 11:37:21 -04:00
7efb42f0d3 MEAM/C: code optimization for faster codegen 2019-07-05 12:03:43 +02:00
0d4bb86183 MEAM/C: code commenting 2019-07-05 12:03:43 +02:00
8dcb42d49c Check MEAM parameters for t0=1.0, mention this fact in documentation 2019-07-05 12:03:43 +02:00
2f72b9f120 Factor out embedding function, make sure documented logic for emb_lin_neg is obeyed 2019-07-05 12:03:43 +02:00
ce6fa0118a continuing to clean up include file lists 2019-07-04 08:39:17 -04:00
b4cf4b1ed7 recover compilation of KOKKOS package 2019-07-04 06:51:52 -04:00
732bd937e0 clean up includes in USER-COLVARS package 2019-07-04 01:16:56 -04:00
49f27573a7 Fixed a bug in lj96 involving missing the special_lj factor 2019-07-03 23:44:33 -05:00
fa15bf5edd recover compilation of USER-COLVARS package 2019-07-04 00:25:33 -04:00
e63fe1fe84 please POEMS library in namespace POEMS and remove "using namespace" from headers 2019-07-04 00:09:01 -04:00
95cb995336 recover compilation of MANYBODY package 2019-07-03 22:18:41 -04:00
416911aa7e more rearranging of include file order to put implementation headers first 2019-07-03 21:57:39 -04:00
6cf3bb3e4e recover compilation of KSPACE package 2019-07-03 21:56:29 -04:00
5b3a15bd94 putting implementation header first in package folder sources 2019-07-03 19:58:25 -04:00
256531a29a put implementation header first for all remaining main folder source files 2019-07-03 19:34:13 -04:00
bb5a1c5205 Adjust log.cite behavior 2019-07-03 13:38:08 -05:00
00d820dcf9 Added support for log.cite to kim_init 2019-07-03 13:20:55 -05:00
63dcd999d8 Switch to kim-api c-bindings for SimulatorModel 2019-07-03 11:49:38 -05:00
7967cb1133 put implementation header first to avoid issues with mpi.h and lmptype.h with OpenMPI 2019-07-03 06:16:16 -04:00
0c4af8b820 spelling: attempt add file paths to false positives 2019-07-02 22:13:06 -06:00
11708c8f96 continue cleaning up include files based on IWYU 2019-07-02 15:10:52 -04:00
9984cbc99a Recheck existence of pair style in init 2019-07-02 16:13:20 +02:00
350d8f5812 Missing some hybridpair replacement 2019-07-02 15:51:52 +02:00
fc1d8f2cbf more cleanup of include file handling. starting to work on files in packages 2019-07-02 05:15:30 -04:00
0761c4dbb9 Name change hybridpair->pair/hybrid 2019-07-02 10:47:36 +02:00
968335d4fd Remove useless things 2019-07-02 10:34:10 +02:00
6fc5810bb4 with the refactored include handling we can allow include in if/then/else 2019-07-02 01:31:19 -04:00
41e8cf3d69 Merge branch 'master' into kim-simulator-models
# Conflicts:
#	src/input.cpp
2019-07-02 01:15:29 -04:00
b727f0b126 Merge pull request #1537 from akohlmey/refactor-input-file-handling
Refactor input file processing flow of control
2019-07-01 17:28:15 -04:00
63fa63fb1c Merge pull request #1538 from dsbolin/gran_mods
Bug fixes to pair granular
2019-07-01 17:27:55 -04:00
f7329c0f43 Merge pull request #1540 from stanmoore1/kk_snap
Port Recent SNAP changes to Kokkos
2019-07-01 17:27:34 -04:00
7547e1dae6 make certain that the vector storage and the size_vector variable are consistent in computes 2019-07-01 17:25:02 -04:00
42c31227d9 continuing to clean up include file lists 2019-07-01 15:59:16 -04:00
559c187964 Update SNA::memory_usage() 2019-07-01 08:20:48 -06:00
61a7730bb5 Merge branch 'master' of github.com:lammps/lammps into kk_snap 2019-07-01 08:14:30 -06:00
a8d4ac74fa Remove temporary ulist variable 2019-07-01 08:13:53 -06:00
e91539d4b5 Cleanup 2019-07-01 08:11:49 -06:00
2443c8ad13 reduce IWYU warnings for lammps.cpp 2019-07-01 09:14:22 -04:00
32728375b9 add test script for compute momentum 2019-07-01 13:39:32 +01:00
fb5e7e6f3b add note about USER-MISC package 2019-07-01 12:06:40 +01:00
e9e7d995b2 move to user-misc 2019-07-01 11:37:13 +01:00
39f5b8c734 transform POEMS library to conform to IWYU conventions 2019-07-01 04:16:00 -04:00
af8103433c add stabilized vs unstabilized examples 2019-06-30 22:13:12 -06:00
62bddd47ee limit number of nested include file levels to 16 2019-07-01 00:01:41 -04:00
483b1dbef5 Update fix_bond_react.txt 2019-06-30 21:19:04 -06:00
44372f5236 more fixes for USER-OMP 2019-06-30 23:12:08 -04:00
e0c04355bb try to recover compiling of USER-OMP with OpenMP enabled 2019-06-30 22:59:44 -04:00
e8487ec0b9 Merge pull request #50 from lammps/master
rebase
2019-06-30 20:58:41 -06:00
78af594381 fix typos. restore compilation of LAMMPS class implementation with OpenMP 2019-06-30 22:45:41 -04:00
e29361523f recover compilation of the USER-PHONON package 2019-06-30 18:39:49 -04:00
3e88dacd3f recover broken compilation of the USER-EFF package 2019-06-30 17:27:29 -04:00
33d3bd7a8d Merge pull request #1547 from rbberger/docs_fix
Workaround to make formatting of code blocks consistent
2019-06-30 17:15:25 -04:00
8fdba2ded1 Merge pull request #1546 from stanmoore1/kk_update
Update Kokkos library in LAMMPS to v2.9.00
2019-06-30 17:15:06 -04:00
96744c4933 more include file cleanup 2019-06-30 15:53:17 -04:00
31cbccda85 continue cleaning up include file lists 2019-06-29 09:37:44 -04:00
a720aedabc Workaround to make formatting of code blocks consistent 2019-06-28 20:54:10 -04:00
5e3a705911 fix bug caused by a parameter shadowing a class variable 2019-06-28 14:28:45 -04:00
ea2e73119d Update Kokkos library in LAMMPS to v2.9.00 2019-06-28 11:23:24 -06:00
5eabc82024 Restore lost changes 2019-06-28 10:17:22 -06:00
d918432047 Fix issue with compute_duarray 2019-06-28 09:54:24 -06:00
73968f10d5 Merge branch 'kk_snap' of ssh://github.com/stanmoore1/lammps into kk_snap 2019-06-28 09:44:36 -06:00
400af0edac Merge branch 'master' of github.com:lammps/lammps into kk_snap 2019-06-28 09:02:07 -06:00
557a1274e4 even more include file cleanup 2019-06-28 07:09:57 -04:00
df7c56d881 use suffix compatible pair style matching when looking for ReaxFF pair style 2019-06-28 05:28:54 -04:00
378474c4e6 more include file cleanup suggested by IWYU 2019-06-28 02:07:18 -04:00
a5cb6ddd4a lammps.h must include cstdio and mpi.h 2019-06-27 22:14:06 -04:00
2c119551f7 add statement about order of include files 2019-06-27 22:13:42 -04:00
123bd57376 try to make KOKKOS compile again 2019-06-27 21:59:05 -04:00
4ec3a508fc bulk removal of #include <cstdio> from header files 2019-06-27 21:54:07 -04:00
86a9e4fca2 make body package compile again 2019-06-27 21:40:50 -04:00
9c53a5ca3f add first draft of a summary of the rules for include files 2019-06-27 21:40:28 -04:00
932f052cbf more header cleanup 2019-06-27 20:52:23 -04:00
2c0a66b7f8 increase buffer size of fix tune/kspace. header cleanup. remove use of iostreams 2019-06-27 20:50:25 -04:00
03099d6e54 some more include file consistency changes 2019-06-27 17:11:53 -04:00
121947e79d Added hcp query example to kim_commands 2019-06-27 12:52:20 -05:00
48220b39b5 include <cstdio> explicitly in .cpp files, though 2019-06-27 11:48:34 -04:00
1e2aeed2ac Remove no-op 2019-06-27 08:53:58 -06:00
60adaa24cb Remove redundant computation 2019-06-27 08:52:34 -06:00
333bec0222 headers that directly or indirectly include pointers.h may assume <cstdio> is loaded, too. 2019-06-27 10:12:53 -04:00
84e156d380 first batch of changes suggested by using include-what-you-use tool 2019-06-27 09:14:36 -04:00
312a1fa004 Added species to kim_queries in docs and some other edits 2019-06-27 07:58:32 -05:00
08ac695a06 move include statements from headers to implementation files where possible in USER-REAXC 2019-06-27 01:03:08 -04:00
17602b4c26 some more include file cleanup.
include cstdlib where functions like atoi() are used
remove unneeded include statements from headers
2019-06-27 01:02:17 -04:00
f7507512b1 apply memory alignment settings from my_page.h to my_pool_chunk.h 2019-06-27 00:39:47 -04:00
ff36bad099 cleanup includes in variable.h 2019-06-27 00:33:48 -04:00
7f342b1cd0 Merge pull request #1539 from junghans/fix_include_for_ppc64le
add missing include needed on ppc64le
2019-06-27 00:26:33 -04:00
2be0fd6180 Fix GPU issues 2019-06-26 16:22:37 -06:00
8c3d18520d add missing include needed on ppc64le 2019-06-26 10:45:31 -06:00
f1dfcaf514 WIP 2019-06-25 14:47:21 -06:00
f6319146b0 Update kim_query to new interface 2019-06-25 15:03:24 -05:00
e08146c31f Allow twisting torque to be used without rolling torque in pair granular 2019-06-25 12:06:18 -06:00
2fd924562b Spell correction 2019-06-25 15:15:30 +02:00
61ddc98a5a Missing compute_pressure.h 2019-06-25 13:30:41 +02:00
6a6d08e18e Better compute_pressure hybrid and doc 2019-06-25 12:01:29 +02:00
8fd1aaba7e Merge pull request #1535 from evoyiatzis/class2
Implementation of inner/middle/outer compute methods for lj/class2/coul/long
2019-06-25 06:00:06 -04:00
50e76ff7a1 restore virtual keyword and empty lines in comments 2019-06-25 05:59:29 -04:00
423eebda25 restore header 2019-06-25 05:57:48 -04:00
f6842e643e Merge pull request #1525 from akohlmey/collected-small-changes
Collected small changes and fixes for the next patch
2019-06-24 23:55:50 -04:00
5f7c4fb668 Merge pull request #1534 from uihsnv/archlinux_pkg
Archlinux install documentation
2019-06-24 23:55:09 -04:00
483353a017 Merge remote-tracking branch 'lammps/master' into kim-simulator-models 2019-06-24 15:35:06 -05:00
86d878a7eb Updated language on availability of ADP potentials in OpenKIM 2019-06-24 15:26:41 -05:00
4284a4fac4 Changed me to me_si and fixed some typos in comments 2019-06-24 14:51:35 -05:00
b653536750 Switched pair_style kim doc to "KIM Portable Model" terminology 2019-06-24 14:38:44 -05:00
1047d8f80e Change of terminology to "KIM Portable Model" and streamlining 2019-06-24 14:32:40 -05:00
c8a2f61c16 Merge branch 'kim-simulator-models' of github.com:ellio167/lammps into kim-simulator-models 2019-06-24 13:55:22 -05:00
0ddcc023a5 Improvements and additions to kim_commands doc 2019-06-24 13:54:55 -05:00
f2380a24ef fix parallel processing input include bug 2019-06-24 14:27:05 -04:00
13237155c8 make processing of Input::file(const char* filename) more like processing an include file 2019-06-24 14:24:54 -04:00
7f26862f98 simplify nested include file handling
# Conflicts:
#	src/input.h
2019-06-24 14:16:51 -04:00
826a14f54a add workaround for handline include files
# Conflicts:
#	src/input.h
2019-06-24 14:16:00 -04:00
7afcfccf48 follow convention to list all commands in a file as header 2019-06-24 13:51:41 -04:00
a36d2573cf make certain, we are not mixing cutoff and long-range coulomb when looking cutoffs 2019-06-24 09:10:00 -04:00
8b49cac86a correct dimensionality of cut_coul property in Pair::extract() 2019-06-24 09:09:22 -04:00
2159a8c44a Arch specific words 2019-06-24 16:14:29 +05:30
3e93881e44 store compute_tally array in restart and read it back. fix memory leak. 2019-06-24 05:28:54 -04:00
bfd0c4228d Added text that ADP potentials are available in KIM as well as NIST 2019-06-23 18:29:59 -05:00
cf008c163d Corrected box rescaling 2019-06-23 18:01:35 -05:00
d150feb41a Small change to KIM package build 2019-06-23 17:46:00 -05:00
db13fedb89 Merge branch 'kim-simulator-models' of github.com:ellio167/lammps into kim-simulator-models 2019-06-23 17:37:33 -05:00
94e1f87cb8 Moved some content from pair_kim docs to kim_commands 2019-06-23 17:36:36 -05:00
881f9ff043 Updated the pair_kim docs 2019-06-23 17:36:10 -05:00
b5d4cf4bfd Updated KIM package information 2019-06-23 17:23:21 -05:00
d10fdda676 simplify nested include file handling 2019-06-23 17:53:52 -04:00
6d54cf6a07 programming style changes 2019-06-23 17:53:12 -04:00
bfe6cc29e8 fix bug of not storing pointers 2019-06-23 17:52:43 -04:00
36649f0534 add workaround for handline include files 2019-06-23 16:47:12 -04:00
171d74f2f2 remove class member name clashes. Pointers contains infile so we rename other uses to inpfile 2019-06-23 16:43:54 -04:00
e42e1e64a8 Added explanation on Model and SM pages 2019-06-23 14:50:52 -05:00
c9160e66f2 Merge branch 'kim-simulator-models' of github.com:ellio167/lammps into kim-simulator-models 2019-06-23 14:21:55 -04:00
b2ba0550d7 Some minor typo fixes in kim_commands.txt 2019-06-23 13:19:48 -05:00
f31faafeec modification in the doc file of lj/class2 style 2019-06-23 20:18:39 +02:00
493269431c add a few more false positives 2019-06-23 14:17:30 -04:00
3b6cc29f64 Implementation of inner/middle/outer compute methods for lj/class2/coul/long 2019-06-23 20:16:25 +02:00
c6d0f807b5 output messages that would otherwise only show up in logs only when logs are enable for screen or logfile 2019-06-23 14:13:24 -04:00
27d1f79fe3 simplify another case of stringstream to use plain std::string 2019-06-23 13:39:12 -04:00
065638edba remove unused macro and reformat to closer match LAMMPS programming style 2019-06-23 13:31:43 -04:00
c557c7492b adapt names of stored properties to code that uses fix STORE/KIM 2019-06-23 13:31:12 -04:00
ac82aa754b correct off-by-one error and simplify code by using std::string instead of std::stringstream 2019-06-23 13:13:05 -04:00
c9cb6e3658 remove obsolete files 2019-06-23 13:12:23 -04:00
7f00cf8c12 Merge branch 'kim-simulator-models' of github.com:ellio167/lammps into kim-simulator-models
# Conflicts:
#	doc/src/kim_commands.txt
2019-06-23 13:11:56 -04:00
a6f6c9bed0 fix up links, spelling issues, and inconsistent names in kim commands docs 2019-06-23 12:41:29 -04:00
22e036a645 Merge branch 'kim-simulator-models' of github.com:ellio167/lammps into kim-simulator-models 2019-06-23 11:39:31 -05:00
d08867ce0a Completed first version of kim_commands documentation 2019-06-23 11:39:06 -05:00
c11caf4509 update kim examples to temp. current state of code 2019-06-23 10:34:43 -05:00
33be7f259b Working on kim_commands documentation 2019-06-22 21:49:29 -05:00
27d83b878d Merge branch 'kim-simulator-models' of github.com:ellio167/lammps into kim-simulator-models 2019-06-22 15:25:40 -05:00
17fa2f787b Added kim_command documentation structure 2019-06-22 15:25:21 -05:00
4a22e3bf70 Implement kim_init, kim_interactions & various updates 2019-06-22 15:21:57 -05:00
f81c9c5322 Changed _u_* output to log to variable commands 2019-06-22 10:21:05 -05:00
58f9380c45 Archlinux install documentation
Link to #1495
2019-06-22 19:46:21 +05:30
dbfd1fd0e7 Added atom-type-num-list mapping to kim_style 2019-06-21 22:11:58 -05:00
f190647ab4 use snprintf() instead of sprintf() to avoid buffer overflows when copying style names 2019-06-21 21:23:20 -04:00
08cee18f32 Added code to define unit conversion factors 2019-06-21 18:39:18 -05:00
88994d813a Ignore kim.log in examples/kim 2019-06-21 18:38:48 -05:00
7a56a4be24 add option to pair_modify to explicitly turn off F dot r 2019-06-21 14:18:18 -04:00
1bb18ebde4 rollback unneeded change to Makefile.list per review 2019-06-21 15:50:52 +01:00
c79044c361 Merge pull request #1531 from athomps/snap-yarray-tweak
Added NULL initialization for snaptr
2019-06-21 10:38:43 -04:00
c460d05bc6 Added NULL initialization for snaptr 2019-06-21 00:26:44 -06:00
0613c10395 Work on kim_style for latest definition prototype 2019-06-20 16:45:45 -05:00
a01421db99 Merge branch 'master' into collected-small-changes
# Conflicts:
#	doc/src/pair_spin_dipole.txt
2019-06-20 14:38:51 -04:00
128d021c10 Update to latest prototype for SimulatorModel interface 2019-06-20 13:13:13 -05:00
f1034e982d Merge pull request #1530 from eagunn/iss1526
Minor cleanup for doc/src
2019-06-20 13:23:21 -04:00
6760866f44 integrate pair styles spin/dipole/cut and spin/dipole/long properly into docs 2019-06-20 11:49:53 -04:00
17bfed3590 move non-LaTeX images from doc/src/Eqs folder to doc/src/JPG
this also updates links in doc sources referencing them
2019-06-20 11:39:41 -04:00
bc224bc66e Eliminate a doc build warning. pair_spin_dipole.txt was recently edited. Much content was removed and it no longer contained any internal reference links. But it still had a link anchor at the bottom. This was generating a build warning. I've removed the unused link anchor and an unneeded line separator. 2019-06-20 09:15:40 -06:00
c9fc83ef6f Move two non-equation images from Eqs folder to JPG folder 2019-06-20 08:16:20 -06:00
f54ad09668 recreate missing LaTeX files for image-only equations 2019-06-19 17:53:40 -04:00
599ef78161 put dump_modify after the list of all dump variant doc pages 2019-06-19 17:13:06 -04:00
26347ec80c Add docs for compute momentum 2019-06-19 13:56:00 +01:00
959da9de01 Create a compute for the momentum of a group of atoms 2019-06-19 13:56:00 +01:00
f8f8e441b9 add missing cmake package module 2019-06-19 07:06:54 -04:00
bb11344424 Merge pull request #1522 from akohlmey/next_version
Step version string for next patch release
2019-06-18 22:01:42 -04:00
e754fb80a4 Merge pull request #1518 from akohlmey/collected-small-changes
Collected small changes and fixes for the next patch release
2019-06-18 16:21:41 -04:00
98fbaef406 workaround for ICE issue with gcc 4.8.x 2019-06-18 15:00:27 -04:00
d98c105d34 step version string to 18 June 2019 2019-06-18 11:52:09 -04:00
961dcfc261 mention alternate build environment generators for cmake 2019-06-18 11:50:06 -04:00
81cdce9b04 flag and document that USER-TALLY computes are not compatible with dynamic groups 2019-06-18 00:14:48 -04:00
995b6b31a2 flag a couple more packages that contain sub-builds of downloaded code 2019-06-17 16:05:54 -04:00
e9666f585f update log files for kolmogorov/crespi/full potential 2019-06-17 15:46:54 -04:00
f4f4a7c850 adapt for Ninja build tool, which cannot handle sub-builds and fortran
so builds of downloaded libraries are not supported right now
2019-06-17 14:24:51 -04:00
5fc3081a55 make building tools (msi2lmp, chain.x) an option, which is off by default 2019-06-17 14:23:30 -04:00
a39a35af20 Merge pull request #1517 from jrgissing/bond/react-clarify-template-check-messages
Bond/react: clarify reaction-template warning messages
2019-06-17 14:14:53 -04:00
1452d3d25b Merge pull request #1516 from gtribello/master
Using PLUMED to compute committor with LAMMPS
2019-06-17 14:14:37 -04:00
2dea4eb0e9 Merge pull request #1513 from akohlmey/user-tally-vs-hybrid
Make USER-TALLY compute styles compatible with hybrid pair styles
2019-06-17 14:14:06 -04:00
5d73b0790f Merge pull request #1510 from evoyiatzis/respa_class_2
Implementation of inner/middle/outer compute methods for lj/class2
2019-06-17 14:13:47 -04:00
93fd33aad9 Merge pull request #1507 from athomps/yarray
Back-porting of Zombie SNAP improvements
2019-06-17 14:13:28 -04:00
6536399fc3 Merge pull request #1476 from uihsnv/log_spacing
A function logfreq3(), for logarithmic spacing
2019-06-17 14:12:59 -04:00
2f29bd29f4 Merge pull request #1430 from ndtrung81/gpu-neigh-hybrid
Enable neighbor build on the device for pair hybrid substyles
2019-06-17 14:12:40 -04:00
b1458ceebf fix typo 2019-06-17 07:42:18 -04:00
92615bda3a update kolmogorov/crespi/full example input for recent change in REBO 2019-06-17 07:38:11 -04:00
4c0cd0a019 remove memory leak by freeing custom MPI data types 2019-06-17 07:36:03 -04:00
fd93c27dcb make valgrind happy by fully initializing line buffer for thermo output 2019-06-17 07:35:30 -04:00
4178c5167b clarify template error/warning message 2019-06-16 14:47:07 -06:00
fd20a0606a Merge pull request #49 from lammps/master
rebase
2019-06-16 14:19:50 -06:00
75e2981bda Using force_timeout call instead of throwing error for plumed stop 2019-06-16 17:52:20 +01:00
98d9a9a4d2 Added call to PLUMED with setStopFlag so that PLUMED can stop LAMMPS if it needs to. This would be needed if you were computing committors for example 2019-06-16 16:09:32 +01:00
e73b34a5b1 do not run tally callback setup multiple times per time step 2019-06-14 15:46:28 -04:00
3611cfdaf8 All styles support setting molecules' orientation 2019-06-14 19:58:31 +02:00
7fab12c36f Add keyword hybridpair for compute_pressure only on a certain pair of a hybrid pair 2019-06-14 16:53:26 +02:00
ac57b41b4d fix line endings and missing EOL at end 2019-06-14 07:13:06 -04:00
43e3c1520b cleaning pair_lj_class2.h of windows line endings
removing DOS/Windows style CR/LF line endings
2019-06-14 11:50:56 +02:00
e7116c8680 Update pair_class2.txt
Addition of a few lines in the documentation file
2019-06-14 09:04:03 +02:00
4d7d3a5d53 Switched algorithm for compute_yi to one based on zlist ordering 2019-06-13 15:56:18 -06:00
c1550ba29b implementation of inner/middle/outer for lj/class2
Implementation of inner/middle/outer functions in style lj/class2 to enable integration with respa
2019-06-13 22:23:01 +02:00
5fb505ca8c Fixed typo 2019-06-13 10:24:18 -06:00
67a1a63f5f Removed old text 2019-06-13 10:10:37 -06:00
65b87fa278 Updated SNAP in KOKKOS package so it compiles and runs 2019-06-13 09:54:56 -06:00
c5c03230cb Not part of this pull request 2019-06-12 17:05:47 -06:00
be5d3d6a19 Not part of this pull request 2019-06-12 17:04:22 -06:00
f8e257d219 Not part of this pull request 2019-06-12 17:04:05 -06:00
3f523ea906 Not part of this pull request 2019-06-12 17:02:59 -06:00
a973700295 Completed back-porting of Zombie SNAP improvements, particularly noteworthy is reduction in memory footprint, elimination of most multidimensional arrays, elimination of diagonal_style, elimination of Z array in force calculation. 2019-06-12 16:42:28 -06:00
daa53e3008 Merge pull request #1469 from julient31/pppm_spin
Adding PPPM and Ewald solvers for electric dipoles and magnetic spins
2019-06-12 14:50:18 -04:00
7a33d1e328 Code cleanup 2019-06-12 11:36:42 -06:00
0559e155f2 Implemented lists instead of multidim arrays 2019-06-11 18:24:02 -06:00
0b25d2feef Merge pull request #1504 from akohlmey/collected-small-fixes
Collected small bugfixes and changes
2019-06-11 20:20:19 -04:00
1c1491eebf Merge pull request #1506 from sniblett402/patch-1
Bugfix for bond_style table with MPI
2019-06-11 19:10:41 -04:00
400751f30f remove redundant call to broadcast r0 2019-06-11 19:09:23 -04:00
4fbf96a353 Bugfix for bond_style table with MPI
Summary

Very small bug fix - an incorrect MPI datatype was causing undefined behaviour for tabulated bond potentials (bond_style table).

Author(s)

Sam Niblett, LBNL

Licensing

By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under either the GNU General Public License version 2 (GPL v2) or the GNU Lesser General Public License version 2.1 (LGPL v2.1).

Backward Compatibility

No impact

Implementation Notes

The equilibrium bond length of the tabulated potential (tb->r0) was incorrectly specified as an MPI_INT during a broadcast. Therefore, all non-root processes received a truncated value of this parameter. This simple fix produced the expected behaviour for me.
2019-06-11 13:48:01 -07:00
1dc8bb163d Merge pull request #1485 from Adrian-Diaz/memcpy2memmove
replace some calls to `memcpy()` with calls to `memmove()`
2019-06-11 14:07:46 -04:00
bb0240d8eb Merge pull request #1501 from uihsnv/vim_files
Simplify and update vim syntax highlighting files
2019-06-11 14:06:58 -04:00
fd592d510f Merge branch 'collected-small-fixes' of github.com:akohlmey/lammps into collected-small-fixes
# Conflicts:
#	cmake/CMakeLists.txt
2019-06-11 14:03:27 -04:00
dbafb92dd5 cmake minor cleanup and removal of redundant code and empty lines 2019-06-11 14:02:41 -04:00
83060f0902 Merge branch 'master' into collected-small-fixes 2019-06-11 13:35:42 -04:00
fd55d7d367 update list of known LAMMPS keywords 2019-06-11 11:15:04 -04:00
3d5db63381 minor cleanup 2019-06-11 10:36:04 -04:00
42b0cb5e3e Merge pull request #1502 from rbberger/cmake_cleanup
Refactor CMake configuration
2019-06-11 10:19:07 -04:00
4cee333c07 need to use C++ compiler when checking for includes
this is the same bugfix as in PR #1504
2019-06-11 07:12:39 -04:00
7f4c611e21 must use C++ compiler to check for include files 2019-06-11 06:51:03 -04:00
fe29572737 Merge pull request #1496 from akkamesh/enh-ext-reaxc
reaxc/qeq optimization - using kokkos hierarchical parallelism
2019-06-10 21:37:12 -04:00
9421466f57 Merge branch 'master' into enh-ext-reaxc
Resolved Merge Conflict in src/KOKKOS/kokkos.cpp
2019-06-10 20:14:40 -04:00
8d985e53f4 Merge pull request #1494 from mkanski/extep_hybrid
Fix for extep when NULL or only some elements from potential file are used.
2019-06-10 20:04:24 -04:00
e72ac92a7f Merge pull request #1422 from stanmoore1/team_opt
Optimize KOKKOS package for small systems
2019-06-10 20:03:53 -04:00
3e2f3a8058 avoid a case of mixing malloc()/free() with new/delete 2019-06-10 18:22:04 -04:00
72b295d7f4 add support for internal style variables to info command 2019-06-10 18:21:17 -04:00
fa76472135 Add Kamesh as contributing author to fix_qeq_reax_kokkos 2019-06-10 15:48:53 -06:00
664b938ed1 document kim_style changes 2019-06-10 17:45:07 -04:00
9a428217d9 prototype implementation of unit conversion variable support 2019-06-10 17:19:18 -04:00
22fd12b56c support storing unit conversion variable setting between kim_style calls 2019-06-10 17:14:17 -04:00
b368b11d60 Move ShowHelp test into Testing.cmake 2019-06-09 22:31:56 -04:00
591e6836fd Move CMake configuration for USER-H5MD into its own file 2019-06-09 22:24:59 -04:00
4ac100fe69 Define additional LAMMPS_*_DIRS to remove relative paths later 2019-06-09 22:05:53 -04:00
4ecd81f81b Move CMake configuration of PYTHON package into its own file 2019-06-09 21:48:05 -04:00
203c6d122b Move KSPACE CMake configuration into its own file 2019-06-09 21:37:34 -04:00
e788d32678 Move autogen check into utility function 2019-06-09 04:02:08 -04:00
ae59ffe83e Move more CMake configurations to own files 2019-06-09 03:54:52 -04:00
99a8d3c2ed Create CMake files for several packages
This remove the CMake configuration of several larger packages and places
it into their own files in the Modules/Packages folder.
 - COMPRESS
 - KIM
 - LATTE
 - MESSAGE
 - MSCG
 - USER-MOLFILE
 - USER-NETCDF
 - USER-PLUMED
 - USER-QMMM
 - USER-QUIP
 - USER-SCAFACOS
 - USER-SMD
 - USER-VTK
2019-06-09 03:35:25 -04:00
ca1445788e Move CMake configuration of VORONOI package into its own file 2019-06-09 03:23:23 -04:00
0908bd7aaf Move code coverage and testing into their own files 2019-06-09 03:18:20 -04:00
239dfe163c Simplify vim-files
Resolves #1500
2019-06-08 17:11:20 +05:30
cea1bd9cd9 Merging to stay up-to-date after patch 5Jun2019 2019-06-08 16:47:02 +05:30
31dc5dbb51 Fix variable type 2019-06-07 17:00:43 -06:00
9e3dc26599 Fix name in pair_exp6_rx_kokkos 2019-06-07 16:41:41 -06:00
8da75c2040 Merge branch 'master' of github.com:lammps/lammps into enh-ext-reaxc 2019-06-07 16:33:44 -06:00
85999fc4a7 Restore original compute_h in fix_qeq_reax_kokkos 2019-06-07 16:31:31 -06:00
73fa8d4055 Rename Kokkos variables 2019-06-07 16:30:02 -06:00
bd237a05b8 Tweak scalar view allocation 2019-06-07 15:46:04 -06:00
4941f11ad4 Remove unused tag 2019-06-07 15:37:49 -06:00
afab5ef303 Move CMake part on coverage into its own file 2019-06-07 12:24:35 -04:00
a7c02e699e Move CMake utilities into LAMMPSUtils.cmake 2019-06-07 12:18:49 -04:00
8fed39d726 Move CMake documentation build section into its own file 2019-06-07 12:16:01 -04:00
b9e10d55e2 Merge pull request #1492 from akohlmey/collected-small-changes
Collected small changes for the next patch
2019-06-07 11:07:10 -04:00
1f1a0f95b2 Merge pull request #1497 from junghans/check_for_immintrin
cmake: check for immintrin.h
2019-06-07 10:57:56 -04:00
61e9dc4c8d more accurate checking for styles using utils::strmatch() instead of strcmp() or strncmp() 2019-06-07 07:14:57 -04:00
b53df3dd63 disable optimization on functions building factories for many entries
this will speed up compilation and also avoid spurious warnings with gcc 4.4 and later
2019-06-06 20:37:17 -04:00
56e3b1d1f4 remove dead code 2019-06-06 20:22:08 -04:00
fde7e2de3c switch to use alternate flag 2019-06-06 15:08:26 -04:00
e2391edce6 turn off only variable tracking and make people wait again 2019-06-06 14:44:28 -04:00
f7026491f1 Code reformat 2019-06-06 09:59:41 -06:00
40a2f275c2 Fix a few more issues resulting from "nelements != atom->types"
this also detects in a more safely fashion, whether there is data in the second part of the input file, that is still formatted for he first part.
2019-06-05 17:11:53 -04:00
e549f911f7 turn off variable tracking through turning off optimization for GCC 4.4 and later
This will avoid a difficult to interpret warning and in
addition speed up compilation of this one file by avoiding
to try to optimize something, that needs no optimization.
2019-06-05 14:36:08 -04:00
34dca6dc79 advance warning message about collecting styles and packages info to an earlier slot in the process 2019-06-05 14:32:02 -04:00
2ebc40deb3 cmake: check for immintrin.h 2019-06-05 11:13:48 -06:00
e9b4ab7363 Fixed potential file parsing when NULL or only some elements are used. 2019-06-05 16:12:24 +02:00
8e43a45925 Detect and error out on invalid kspace mesh settings. make coulomb and dispersion settings consistent 2019-06-05 01:10:44 -04:00
92f078cfff nicer typesetting of "none, zero, hybrid" potential styles in commands lists 2019-06-04 22:29:25 -04:00
708052dc81 reaxc/qeq optimization - using kokkos hierarchical parallelism 2019-06-04 14:22:43 -07:00
0849e03d1b Merge pull request #1490 from akohlmey/next_version
Step version number for stable release
2019-06-04 15:23:13 -04:00
045c312c49 Merge pull request #1489 from akohlmey/cmake-2.8-compatibility
Change test for OpenMP default setting to be compatible with CMake 2.8.x
2019-06-04 11:03:22 -04:00
47c6cd86f2 Merge pull request #1477 from jrgissing/bond/react-reaction_topology_overflow
Implement fix bond/react reaction topology overflow checks
2019-06-04 11:02:57 -04:00
27cd78b96d Merge pull request #1488 from akohlmey/doc-removed-features
Document removed features
2019-06-03 22:58:20 -04:00
dd97a7540e Merge pull request #1486 from sstrong99/patch-1
Fix error in E3B documentation
2019-06-03 22:58:02 -04:00
272c536326 use 3 letters for month only 2019-06-03 22:52:40 -04:00
0b13fbe733 step version number for stable release 2019-06-03 22:47:44 -04:00
960a975e2a Added compact arrays, removed unused openmp stuff 2019-06-03 19:50:40 -06:00
021f0c1fc6 use consistent variable evaluation in if() 2019-06-03 19:50:48 -04:00
5d96ecff25 fix typo 2019-06-03 19:44:40 -04:00
c76b79f021 chance test for OpenMP default setting to be compatible with CMake 2.8.x 2019-06-03 19:36:28 -04:00
a981626948 mention restart2data as removed feature as well 2019-06-03 09:01:22 -04:00
5f79a9ef80 mention dummy commands with error messages that have been added instead of removed commands 2019-06-02 21:51:06 -04:00
674e3975a8 add section to the Commands chapter listing and explaining removed packages and styles 2019-06-02 21:47:29 -04:00
d0286b3de1 remove mention of USER-CUDA package and fix typo 2019-06-02 20:19:17 -04:00
983f3adbb4 bond/react doc final touches 2019-06-02 12:35:38 -06:00
58a88dff95 bond/react doc correction 2019-06-02 12:10:43 -06:00
0ba38aa072 bond/react doc tweak 2019-06-02 12:05:01 -06:00
2e63280f87 Update fix_bond_react.txt 2019-06-02 11:54:31 -06:00
68eab23cf8 bond/react: doc clarification 2019-06-01 16:24:37 -06:00
3b7c15a8b2 Merging to stay up-to-date
Merge remote-tracking branch 'lammps_upstream/master' into log_spacing
2019-06-01 10:33:27 +05:30
6175f2dce8 Fix error in E3B documentation 2019-05-31 15:03:04 -05:00
dc1e31506e Merge pull request #1480 from akohlmey/next_version
Step version string for next release
2019-05-31 14:40:13 -04:00
68d69955d0 fix off-by-one error 2019-05-31 14:38:12 -04:00
5f657b9184 step version string for next release 2019-05-31 14:37:31 -04:00
76900b8325 avoids the possibility of undefined behavior with memcpy having the same source and destination arrays; this is not every instance of this issue in the source code 2019-05-31 11:53:58 -06:00
3e4fd3dade Merge pull request #1484 from akohlmey/reneighbor-64-bit-restart-fix
Restart updates for fixes atom/swap, deposit, and gcmc
2019-05-31 13:05:53 -04:00
3e05b983c1 Merge pull request #1483 from akohlmey/cmake-workaround-for-gcc-9
Do not enable OpenMP by default for gcc 9.x with CMake
2019-05-31 13:05:37 -04:00
d8a30a9697 Merge pull request #1475 from akohlmey/collected-small-changes
Collected small changes for stable release
2019-05-31 13:05:21 -04:00
972a7a5c4d add false positive for spell checking 2019-05-31 05:58:47 -04:00
311aebf7ff Update Errors_warnings.txt 2019-05-30 23:30:35 -06:00
16a254f6bd Update Errors_messages.txt 2019-05-30 23:29:43 -06:00
80d906d445 bond/react: update error messages 2019-05-30 23:27:23 -06:00
8b169d97f5 update documentation for updates to fix restarting 2019-05-31 00:58:10 -04:00
f73c848ee4 detect and error out when timestep was reset when restarting fixes atom/swap, gcmc, or deposit 2019-05-31 00:31:36 -04:00
4243af30d7 properly store 64-bit integers for next_reneighbor into double type buffers for restarts of fixes
also store number of attemps and number of successes in restart and retrieve those from it
2019-05-31 00:23:12 -04:00
9d51ee17b0 change the default for gcc 9.x and beyond to not enable OpenMP by default even if it is found to be supported
this is so that using CMake by default will compile LAMMPS, since gcc 9.x
expects different sharing semantics for constants than previous versions.
2019-05-30 22:23:50 -04:00
edecd2b760 fix typo and update list of false positives for updated docs 2019-05-30 22:19:47 -04:00
df1308ad92 add kim_style error messages to Errors_messages.txt doc file 2019-05-30 21:58:18 -04:00
c9fe5810c1 add log outputs for updated kim_style command input examples 2019-05-30 21:52:23 -04:00
24a63f0f31 update kim_style command semantics as discussed in PR #1440
this also adds documentation of error messages in the kim_style header
2019-05-30 21:51:13 -04:00
c903a110fe fix typo 2019-05-30 18:36:09 -04:00
113b8b4be2 Fixes two bugs in pair granular: 1. User-set cutoffs did not work 2. Restarts not working 2019-05-30 14:21:11 -06:00
02e7dd5716 also allow %e in format variables of suffix 2019-05-30 14:52:26 -04:00
1a5c3c6dcb add check that allows only %f and %g conversions in variable format strings 2019-05-30 14:46:07 -04:00
daac3f7102 Merge pull request #1419 from akohlmey/report-uninstalled-pkg-style
Improved error messages when a style is not found
2019-05-30 06:34:56 -04:00
3bf0a4ba63 Merge pull request #1474 from stanmoore1/nl_mem
Don't reallocate views every time in neigh_bond_kokkos
2019-05-30 06:30:54 -04:00
9cc16c4f33 Merge pull request #1479 from akohlmey/fixup_pair_quip
Correctly and fully support pair style hybrid and hybrid/overlay for pair style quip
2019-05-30 06:30:10 -04:00
8dcd6fc48c provide alternative to gettimeofday() for MSVC compilation 2019-05-29 20:13:26 -04:00
a48f1cbf00 fix spelling error 2019-05-29 20:07:00 -04:00
d3cbccff35 whitespace cleanup 2019-05-29 14:42:18 -04:00
29d36ffec0 error out when not using metal units with QUIP 2019-05-29 14:40:09 -04:00
fec2f8f69b update docs for fully supporting hybrid styles 2019-05-29 14:39:45 -04:00
c0cfceb95c fix off-by-one errors 2019-05-29 14:03:00 -04:00
12fcf5f5ef properly set up pair style quip for hybrid and hybrid/overlay 2019-05-29 14:00:33 -04:00
cb8d89855d remove limitation to hybrid/overlay 2019-05-29 13:59:51 -04:00
b88158fc3b Fix issue in npair_kokkos 2019-05-29 11:16:38 -06:00
3b60686827 Small tweak to verlet_kokkos 2019-05-29 09:43:50 -06:00
c8d50c04a4 avoid memory leak and initialize class member pointers 2019-05-29 10:12:24 -04:00
e3e5a962b0 bond/react memory: correctly delete internal groups
internally-created groups should be deleted when unfixing bond/react
groups should not be deleted when LAMMPS exits (because they already have been)
2019-05-28 21:40:01 -06:00
35be1724e3 Commit JT 052819
- corrected examples in examples/SPIN/dipole_spin
- modified warning message in src/SPIN/pair_spin_dipole_*.cpp
2019-05-28 15:31:03 -06:00
d717101e94 Merge branch 'master' of https://github.com/lammps/lammps into team_opt 2019-05-28 14:02:22 -06:00
e44c877738 Add missing tag sync in fix_qeq_reax_kokkos 2019-05-28 10:21:29 -06:00
b3a01694b7 remove leftover fix qeq/reax command 2019-05-27 23:34:05 -04:00
eb6287d2e8 correctly check for supported species 2019-05-27 23:26:46 -04:00
4619018ead provide more simulator model variant input examples 2019-05-27 23:26:26 -04:00
e133c60ff5 bond/react docs: better English 2019-05-26 20:28:28 -06:00
97be57be7b additional topology overflow check for reactions 2019-05-26 15:53:49 -06:00
5523c9e7f6 Merge pull request #48 from lammps/master
rebase
2019-05-26 15:42:13 -06:00
c2a200fe85 A function logfreq3(), for logarithmical spacing
Unlike logfreq(), this also allows for fractional ratios
Resolves #1471
2019-05-26 14:00:21 +05:30
264f6e1630 whitespace cleanup 2019-05-24 22:44:41 -04:00
c3897212e2 must call ClearTemplateMap(), so kim_style define may be called multiple times 2019-05-24 22:44:03 -04:00
5a929aff6e error out if kim_style init is required but wasn't called 2019-05-24 22:42:40 -04:00
ee5fa04732 create internal fix via modify->add_fix() so it does not get logged 2019-05-24 22:41:28 -04:00
e82e1c695a correct links in package documentation 2019-05-24 19:45:48 -04:00
fc8a639d58 add documentation for kim_style command. update a few KIM related doc files 2019-05-24 19:42:16 -04:00
2ee02cfadd Don't reallocate views every time in neigh_bond_kokkos 2019-05-24 11:27:09 -06:00
b91b3c18cf remove references to simulator models from pair style kim 2019-05-24 11:52:38 -04:00
ce46d52c8a add new 'kim_style' command as front end for KIM simulator (and regular) models 2019-05-24 10:23:26 -04:00
eea67bf3bf Add sync/modify for growing dvector 2019-05-22 08:52:57 -06:00
cfad0634ac Merge pull request #1465 from akohlmey/collected-minor-changes
Collected small changes and bugfixes
2019-05-21 16:55:19 -04:00
bd05228c71 Merge pull request #1464 from akohlmey/group-group-coord-num
Add option to restrict coordination number by group
2019-05-21 16:55:05 -04:00
0f1e4b0504 Merge pull request #1467 from stanmoore1/eam_kk
Fix bug in pair_style eam/alloy/kk and pair_style eam/fs/kk
2019-05-21 16:54:51 -04:00
1e2ceb88da complete basic simulator model proxy class creation and setup. 2019-05-21 15:57:14 -04:00
439e7da03f Need auto-sync on for initialization 2019-05-21 11:47:55 -06:00
ed7c09ac81 Add missing character 2019-05-21 10:30:33 -06:00
0ee1daa46d Add Lenz to false-positive list 2019-05-21 10:24:24 -06:00
2fbc4f504d Per-atom virial is not yet supported with pppm/dipole 2019-05-21 10:16:13 -06:00
95ab056576 Add PPPM dipole reference 2019-05-21 10:07:41 -06:00
a0bc619550 Need to call atomKK version of sync/modified in Kokkos atom_vec styles 2019-05-21 09:21:55 -06:00
82b50706bd Commit2 JT 052019
- some corrections in the examples
- deleted an old doc files (now redundant)
2019-05-20 22:09:59 -06:00
e90eed9120 Commit JT 052019
- deleted old doc
- renamed new doc files
2019-05-20 21:48:05 -06:00
5f2f7d1575 Merge branch 'pppm_spin' of github.com:julient31/lammps into pppm_spin 2019-05-20 21:35:52 -06:00
3e60ec9be1 Merge branch 'clean-master2' of github.com:julient31/lammps into pppm_spin 2019-05-20 21:35:16 -06:00
92b042552e Revert "add JSON tokenizer to utils library"
This reverts commit 32379d2d84.
2019-05-20 22:54:33 -04:00
38a8c765f0 add support species checking 2019-05-20 22:54:20 -04:00
d0c6484fb0 add false positive 2019-05-20 15:15:51 -04:00
0349e9fee9 update/correct list of example folders 2019-05-20 15:08:33 -04:00
55116db8fb avoid segfault and print more meaningful error message with empty lines in coeff sections 2019-05-20 14:15:04 -04:00
56cf97e497 hard code creation of simulator model pair style for now 2019-05-20 13:53:17 -04:00
1041934568 Fix bug in pair_eam_alloy_kokkos and pair_eam_fs_kokkos 2019-05-20 10:01:40 -06:00
b779bf524a use KIM-API calls to query simulator model info 2019-05-19 10:09:25 -04:00
32379d2d84 add JSON tokenizer to utils library 2019-05-18 21:07:15 -04:00
50082c287d sphinxcontrib-spelling has been updated for Sphinx 2.x. remove enforcing to use old version 2019-05-18 15:41:38 -04:00
e3823a521c remove leftover references to removed MEAM package 2019-05-18 15:36:13 -04:00
dc8b43a95f update docs and sources and for changes in this branch 2019-05-18 15:16:10 -04:00
601746b565 restore lost changes to fix gpu from upstream 2019-05-18 13:09:25 -04:00
35bb2ac2a3 fix typo 2019-05-18 09:25:20 -04:00
fbb78e7b78 Commit JT 051719
- removed qsymp pair style
- cleaned doc (pair/spin/diole and kspace_style)
- cleaned kspace .cpp/h files
2019-05-17 15:04:14 -06:00
c7eb9a8626 there really isn't a problem with calling this compute multiple times 2019-05-17 15:26:35 -04:00
803e0631c5 Added bispectrum compute 2019-05-16 22:11:06 -06:00
51a6bfd579 Added bispectrum compute 2019-05-16 22:01:45 -06:00
5b71b3fc57 Added bispectrum compute 2019-05-16 21:51:24 -06:00
e2ed9330b7 Merge branch 'master' into team_opt 2019-05-16 12:31:26 -06:00
41872e37e6 Merge branch 'pppm_spin' of github.com:julient31/lammps into pppm_spin
Conflicts:
	doc/src/pair_spin_dipole.txt
2019-05-16 10:34:33 -06:00
fb8d31422d fix typo 2019-05-16 09:06:17 -04:00
27a2d0cbd4 add option to restrict coordination number by group 2019-05-16 08:55:03 -04:00
0c0b106924 Commit2 JT 051519
- started doc pair_spin_dipole.txt
- renamed all pair/spin/dipole
- created and tested example pair/spin/dipole/cut
2019-05-15 20:49:05 -06:00
98d9c45ad9 compute_bispectrum 2019-05-15 17:18:24 -06:00
7b264d35fa remove dead code 2019-05-15 14:53:51 -04:00
084bb3c35b Commit JT 051519
- start doc pair_spin_dipole
2019-05-15 08:34:12 -06:00
267782d689 Merge pull request #1459 from akohlmey/next-patch-release
Step version string for next patch release
2019-05-14 21:30:28 -04:00
31789ad03b Commit JT 051419
- added beginning doc
- removed a remaining dipolar
2019-05-14 17:44:35 -06:00
fd168068a1 Merge branch 'clean-master2' of github.com:julient31/lammps into pppm_spin
Conflicts:
	src/SPIN/fix_nve_spin.h
2019-05-14 17:41:58 -06:00
f2b293d93b Merge pull request #1460 from akohlmey/collected-small-changes
Some more small changes
2019-05-14 17:55:36 -04:00
6e842ba84a fix typo 2019-05-14 17:36:26 -04:00
30dc7f70b5 correct repeated words in docs 2019-05-14 17:13:46 -04:00
98702cc0b9 Merge pull request #1461 from lammps/doc-tweak-hyper
add missing formatting info
2019-05-14 17:10:23 -04:00
67532684f9 add missing formatting info 2019-05-14 14:02:54 -06:00
2c51511325 update logfiles for SPIN package with cubic anisotropy 2019-05-14 15:49:41 -04:00
1d5ada136a should set one_coeff flag to 1 in potentials requiring 'pair_coeff * *' 2019-05-14 15:24:37 -04:00
4a4dcef7b7 whitespace cleanup in pair style e3b 2019-05-14 15:24:37 -04:00
4dc90b367e Merge pull request #1458 from wmbrownIntel/user-intel-bigbig
USER-INTEL: Changes to support LAMMPS_BIGBIG in USER-INTEL + fixed check for per-atom virials + fixed check for exclusion with offload.
2019-05-14 15:09:06 -04:00
091dbfa265 Merge pull request #1457 from julient31/fix_cubic_aniso
Adding a cubic anisotropy in the SPIN package, documentation corrections
2019-05-14 15:08:21 -04:00
a26dc1b356 allow using -DLAMMPS_BIGBIG also with CMake 2019-05-14 14:35:41 -04:00
d8fb17e2cb Step version string for next patch release 2019-05-14 10:01:43 -04:00
322c244bec Merge pull request #1456 from akohlmey/fix-mapping-for-KC-etc
Fix element mapping and a few other issues for interlayer potentials
2019-05-13 21:12:58 -04:00
60f6c3f3dc Merge pull request #1428 from sstrong99/e3b
add E3B water model to USER-MISC package
2019-05-13 21:12:26 -04:00
c911a44298 Merge pull request #1450 from akohlmey/cmake-latte-pass-cmake-settings
Pass more cmake settings to LATTE downloaded library build
2019-05-13 21:11:24 -04:00
52e3aeab33 revert incorrect changes in commands_list.txt 2019-05-13 21:05:26 -04:00
3a8b3a119f Merge pull request #1451 from rbberger/atom_vec_bond_kokkos_fix
Add missing molecule_flag=1 in atom_vec_bond_kokkos
2019-05-13 20:59:51 -04:00
8e18f2bf7e Commit2 JT 051319
- corrected doc issues
2019-05-13 17:32:44 -06:00
11f223416c Commit JT 051319
- added a cubic anisotropy in fix_precession_spin
- added associated doc and examples
- corrected neb/spin commands in doc/src/
- added tools/spin/ description
2019-05-13 16:59:39 -06:00
d3d4b420ba USER-INTEL: Changes to support LAMMPS_BIGBIG in USER-INTEL + fixed check for per-atom virials + fixed check for exclusion with offload. 2019-05-13 05:02:46 -07:00
805cc18b2d Merge branch 'master' into e3b 2019-05-12 22:22:31 -05:00
e228555aed more consistency changes for interlayer potentials 2019-05-11 17:05:27 -04:00
8eeb92b82b restore original coeff() code with one modification. now setflag is only set for pairs of types that both are mapped to elements (and thus not NULL) 2019-05-11 17:04:57 -04:00
c581e9349a update interlayer potential examples for now requiring CH.rebo potential file with rebo pair style 2019-05-11 16:46:21 -04:00
a0cc6b5b59 Forgot to change pair style to nn/snap 2019-05-11 14:04:21 -06:00
f2d881470d Added placeholder for neural network SNAP potential 2019-05-11 12:55:11 -06:00
e13c661f77 Added placeholder for neural network SNAP potential 2019-05-11 12:54:18 -06:00
a1f421cd54 Moved compute_beta outside of main force loop 2019-05-11 12:41:54 -06:00
b2942cbafa correctly handle coeff statement for ilp/graphene/hbn 2019-05-10 21:07:54 -04:00
c86359966c error out when offset flag is unset via "pair_modify shift no" 2019-05-10 21:07:05 -04:00
a7c9560dc1 Merge pull request #1453 from mjwen/pair_drip
add pair style drip
2019-05-10 20:44:28 -04:00
03505a6c48 Merge pull request #1455 from lammps/doc-tweak
mis-labeling of some rigid fixes
2019-05-10 20:42:39 -04:00
6d84bd6138 Added compute_beta() 2019-05-10 10:34:01 -06:00
238382e0ca fix handline of setflag and coeffs to correctly work with system, that have extra atom types. 2019-05-10 10:26:33 -04:00
2bc089db27 mis-labeling of some rigid fixes 2019-05-10 07:42:11 -06:00
799f4061f4 Merge pull request #3 from akohlmey/pair_drip
Update to master with refactored REBO pair style and adjusted examples
2019-05-09 12:18:11 -05:00
2f580380a4 adjust drip potential example for new requirements for pair style rebo. recreate log files 2019-05-09 12:29:38 -04:00
47cf17e5c8 Merge branch 'master' into pair_drip 2019-05-09 12:19:41 -04:00
928600a878 Merge pull request #1452 from akohlmey/github-rebo-bugfix
Resubmission of REBO bugfix for easier review
2019-05-09 12:18:05 -04:00
7b2d526f86 Merge pull request #1448 from akohlmey/collected-small-changes
Collected small changes and bugfixes
2019-05-09 12:17:19 -04:00
0034473e66 update legacy pdf manual input config 2019-05-08 10:19:21 -04:00
da75fc3eaa incorporate compute_pe_e3b into compute_pair 2019-05-08 09:05:09 -05:00
711cd4122f corrections to documentation and implementation of pair styles lj/mdf, buck/mdf, and lennard/mdf 2019-05-07 19:52:00 -04:00
45e6ed018e correct formula for lennard/mdf potential 2019-05-07 19:45:13 -04:00
8c193b8c42 add support for write_data/write_coeff to pair style lj/mdf 2019-05-07 19:28:19 -04:00
12f8834b80 correction of the incomplete implementation warning in write_coeff 2019-05-07 19:26:57 -04:00
11407a165b reformat pair style kim to LAMMPS style and add some existing simiulator model code (non-functional) 2019-05-07 18:21:58 -04:00
6c3cae8823 remove unused vars 2019-05-07 15:37:45 -05:00
1d1611ce44 init del3 to silence valgrind errors 2019-05-07 15:35:37 -05:00
a87d8e124f Merge pull request #1449 from akohlmey/fix-print-w-variable-step
Support using a variable instead of a constant interval for fix print
2019-05-06 12:10:42 -04:00
cc30688137 Merge pull request #1364 from stanmoore1/kk_binsize
Change defaults for KOKKOS package
2019-05-06 12:10:08 -04:00
b3f4e2055e Merge pull request #1438 from giacomofiorin/colvars-update
Update Colvars library to version 2019-04-26
2019-05-06 12:08:50 -04:00
8212dca609 Merge pull request #1447 from ohenrich/user-cgdna
Homogenised label of relative hbond and stk strength to conform with oxDNA literature
2019-05-06 12:07:41 -04:00
319ed5dd48 Merge pull request #2 from akohlmey/pair_drip
Silence warnings about unused variables and parameters, minor tweaks
2019-05-05 09:29:00 -05:00
bac8b267df make sure fix deform related variables are always initialized to avoid issues with the DomainOMP class. 2019-05-05 10:26:27 -04:00
da6e576ffd silence warnings about unused variables and parameters, minor tweaks 2019-05-05 10:17:45 -04:00
f163d7dc9b typo fix 2019-05-05 08:56:15 -05:00
a354b52e3c Merge pull request #1 from akohlmey/pair_drip
Pair drip updates required for merging into LAMMPS upstream
2019-05-05 08:41:51 -05:00
0a4b0cf019 add pair style drip to .gitignore 2019-05-05 09:20:10 -04:00
4d4219ca3e integrate drip pair style more closely into manual 2019-05-05 08:59:03 -04:00
d86a7b95de fix spelling issues 2019-05-05 08:48:27 -04:00
db54b03751 Force line length to 80 2019-05-04 22:55:22 -05:00
24e41bc085 Update doc and examples due to the change of parameters 2019-05-04 22:24:05 -05:00
c28cf9f742 set variant flag in USER-INTEL (AI)REBO(-M) styles 2019-05-04 20:53:43 -04:00
fd3eade6d2 update reference date and examples for changes in REBO 2019-05-04 20:42:36 -04:00
1214e6ea79 align USER-INTEL versions of REBO/AIREBO with MANYBODY implementation 2019-05-04 20:08:34 -04:00
c2b2be5d6f Merge branch 'master' into github-rebo-bugfix 2019-05-04 19:09:52 -04:00
81d3fa77bb Add missing molecule_flag=1 in atom_vec_bond_kokkos 2019-05-04 17:42:21 -04:00
a7226bd93d remove unused variables 2019-05-04 15:12:31 -04:00
66f7f2a5ef pass more cmake settings to LATTE downloaded library build 2019-05-04 15:11:53 -04:00
a70f9c4f95 support using a variable instead of a constant interval for fix print 2019-05-04 13:47:57 -04:00
3baf15ed6f apply bugfix from PR #1446 to allow switching from variable thermo output back to evenly spaced 2019-05-04 11:35:18 -04:00
d7dd78126c Homogenised label of relative hbond and stk strength to conform with oxDNA literature 2019-05-02 16:48:41 +01:00
97ce76e759 Merge pull request #1444 from akohlmey/fix-intel-lrt-bug
CMake update for verlet/lrt/intel
2019-05-01 16:19:37 -04:00
d7da1db745 teach CMake that verlet/lrt/intel depends on KSPACE 2019-05-01 08:20:24 -04:00
99430767df Start devel of native support for KIM simulator models
* CMake change to use KIM-API SimulatorModels branch
* Minimal changes to pair_kim to illustrate use of KIM API
  interface. Only c++ interface is implemented for development.
* Added example input: in.kim.simulator-model
2019-04-30 21:48:50 -05:00
7e00acce53 Update Colvars library to version 2019-04-26
The following is list of relevant issues fixed and improvements:

Fix forces and missing output of runtime histogram for histogramRestraint
https://github.com/Colvars/colvars/pull/246

Use fix_modify to add configuration to Colvars:
https://github.com/Colvars/colvars/pull/216

Fix componentCoeff and name not working with orientationAngle components:
https://github.com/Colvars/colvars/issues/213

Fix 1-timestep offset with extendedLagrangian:
https://github.com/Colvars/colvars/pull/210

Changes to improve compiler support:
https://github.com/Colvars/colvars/pull/203

Fix ignored anisotropic cutoff3 for groupCoordNum:
https://github.com/Colvars/colvars/pull/202

New dipoleMagnitude variable:
https://github.com/Colvars/colvars/pull/198

Parser improvements:
https://github.com/Colvars/colvars/pull/196
2019-04-30 13:46:37 -04:00
d3327ffd16 add new optional styles to .gitignore 2019-04-25 19:03:00 -04:00
795cdf456f simplify example and skip the system generation step, so it gives consistent results in serial and parallel 2019-04-25 19:02:35 -04:00
e481c5f35b Merge branch 'e3b' of github.com:sstrong99/lammps into e3b 2019-04-25 17:49:50 -05:00
5df8a42e24 dont set manybody_flag 2019-04-25 17:49:38 -05:00
21d0a16b6f minor tweak 2019-04-25 18:06:09 -04:00
a9388e86e3 add one more false positive 2019-04-25 18:00:27 -04:00
80af0281d1 replace non-ASCII characters 2019-04-25 17:54:27 -04:00
8882436078 add e3b styles to legacy documentation build 2019-04-25 17:49:35 -04:00
47d4aa6803 add new false positives 2019-04-24 17:35:17 -05:00
f548e2717e add new false positives 2019-04-24 17:31:44 -05:00
4c19eab64c Bugfix no 3 nearest neighbors for ghost atoms near boundary 2019-04-23 14:39:47 -05:00
cb6b498127 Commit JT 042219
- change ntot -> nlocal
2019-04-22 14:43:01 -06:00
a243be2dc9 Added bare-bones yarray algorithm, 2x speedup 2019-04-21 22:10:03 -06:00
a696b26301 Merge branch 'clean-master2' of github.com:julient31/lammps into pppm_spin
Conflicts:
	src/SPIN/pair_spin_exchange.cpp
	src/atom.cpp
	src/pair.cpp
2019-04-19 15:02:25 -06:00
c6d0f7ca87 Update equations 2019-04-19 14:27:03 -05:00
ba7882c1ff Add parameter file and example 2019-04-19 14:17:57 -05:00
d3c5d7e423 Add documentation 2019-04-19 13:56:26 -05:00
dec1ad19b5 added e3b.jpg 2019-04-19 10:33:51 -05:00
941281e9e9 fixed isnan error 2019-04-18 10:11:00 -05:00
e700ccd4df Update header 2019-04-17 22:11:24 -05:00
4621af4b9d Modify to accept NULL for pair_coeff 2019-04-17 21:34:55 -05:00
f27ed871f9 Uncrustify code 2019-04-17 18:11:31 -05:00
16bb8a1439 Clean up comments 2019-04-17 16:58:18 -05:00
4a4297591e Did some more cleanups 2019-04-17 12:04:31 -05:00
d6f3a95599 Remove unused variables and methods 2019-04-17 10:53:45 -05:00
cb30414820 Add contribution to virial and atom virial 2019-04-17 10:05:05 -05:00
1f43efc111 Cleaned up the changes in Device and the base class of the pair styles 2019-04-17 00:09:49 -05:00
c55009a0ac Enabled neighbor list build on the device with pair_style hybrid and hybrid/overlay 2019-04-16 23:30:25 -05:00
82a87322ed Get the same forces as KIM implementation 2019-04-16 16:54:17 -05:00
5fb164d586 Get total energy correct 2019-04-16 15:04:16 -05:00
4c565db9af update contrib authors 2019-04-16 11:50:33 -05:00
0eebb31903 update contact info 2019-04-16 11:48:45 -05:00
69e7a2a237 add e3b water model 2019-04-16 11:32:47 -05:00
835fce7a5e Copy all function from KIM implementation to PairDRIP 2019-04-16 10:51:20 -05:00
fdaa3f48e9 Modify all methods other than compute 2019-04-15 22:38:51 -05:00
2bdd9b7544 Remove single 2019-04-15 20:14:10 -05:00
100f17077c Create pair_drip by copying KC files 2019-04-15 19:27:41 -05:00
80431612c7 Merge pull request #47 from lammps/master
rebase
2019-04-14 20:11:37 -06:00
e4e2249b63 Fix issue in comm_kokkos 2019-04-10 10:17:14 -06:00
cf35ebe5fa Revert optimization that is causing regression tests to fail 2019-04-09 16:17:37 -06:00
073f003470 Doc tweak 2019-04-09 15:17:40 -06:00
618547b72e Reduce DELTA and revert subview change 2019-04-09 14:40:39 -06:00
a01bce46bb Reduce GPU/CPU data transfer 2019-04-09 10:23:37 -06:00
82be3ee32c Only use team with full neigh list 2019-04-09 09:17:07 -06:00
16b17f812c Update docs 2019-04-09 08:51:24 -06:00
22b7e12baf Merge branch 'kk_binsize' into team_opt 2019-04-08 16:40:20 -06:00
c11b1edc1f Avoid spell checker error 2019-04-08 16:35:36 -06:00
b8d3c9e01b Rename team option to neigh/thread 2019-04-08 16:02:18 -06:00
149a57f3ae Add threshold for using Kokkos teams 2019-04-08 15:21:42 -06:00
db74f14f33 Merge branch 'master' into report-uninstalled-pkg-style
# Conflicts:
#	cmake/CMakeLists.txt
2019-04-08 17:16:30 -04:00
69c1a7954a correct test for leftovers from conventional builds 2019-04-08 17:14:59 -04:00
7f2c81657b Merge from upstream 2019-04-08 14:14:52 -06:00
fbda72891c Fix spelling error 2019-04-08 13:41:33 -06:00
ece46dbfa5 Small tweak to Kokkos docs 2019-04-08 13:12:21 -06:00
2bb69773d3 Update Kokkos docs 2019-04-08 13:07:29 -06:00
77d80c84c9 Change defaults for KOKKOS package 2019-04-08 12:37:49 -06:00
aa336c2bb4 Merge branch 'master' into kk_binsize 2019-04-08 12:07:58 -06:00
f2113ab04a update manual and headers for updated error message 2019-04-08 07:16:22 -04:00
dc40886d23 improve comments and formatting 2019-04-08 06:40:39 -04:00
6ee002d6cf add cmake support for enhanced missing style error reports 2019-04-07 22:32:31 -04:00
d640c712f8 apply new utility function to most places creating new styles 2019-04-07 21:18:20 -04:00
9166001041 add code to allow reporting which styles are part of what package 2019-04-07 20:55:00 -04:00
2fbf86a58d add support for creating packages_*.h files in conventional make 2019-04-07 20:52:15 -04:00
f2ef02b6d9 Comm exchange is a no-op for 1 MPI rank 2019-03-21 09:27:18 -06:00
c3adfcbc15 Add missing sync in comm_kokkos 2019-03-21 08:56:12 -06:00
744a8215dd Fix compile error in comm_kokkos and indent in atom_vec_kokkos 2019-03-20 15:08:08 -06:00
1f44dc2498 Remove unused array in comm_kokkos 2019-03-20 15:01:47 -06:00
d1e751d717 Fix thread safety issue in fused forward comm 2019-03-20 14:32:03 -06:00
08273c40d7 Fix compile issue in comm_kokkos 2019-03-19 14:29:45 -06:00
e2d28f5160 Only copy pbc info in comm setup 2019-03-18 15:27:35 -06:00
b50ef59a19 Optimize Kokkos comm for small systems 2019-03-18 13:17:32 -06:00
36836598b1 Reduce data transfer in exchange 2019-03-18 10:45:14 -06:00
8c4baac3f1 Only copy force on ghost atoms if newton on 2019-03-15 14:25:24 -06:00
179026dd44 Reduce GPU data movement in npair_kokkos 2019-03-14 17:13:12 -06:00
71a6227240 Optimize KOKKOS package for small system sizes 2019-03-14 15:43:50 -06:00
0d73fe99fd Update Kokkos docs 2019-03-12 15:34:12 -06:00
b51d06b3ea Change default binsize for Kokkos if running on GPUs 2019-03-12 15:33:28 -06:00
aecef752e8 Remove unnecessary data movement in fix_nve_kokkos 2019-03-11 13:41:20 -06:00
e422e886de Add error check for team on and full neighborlist 2019-03-08 11:33:29 -07:00
069853fd10 Merge branch 'master' into team 2019-03-08 11:32:31 -07:00
84773f9d1d Merge branch 'master' of github.com:stanmoore1/lammps into team 2019-03-08 08:31:48 -07:00
ff7276e494 Clean up the fused comm 2019-03-07 08:56:13 -07:00
553714b0bb Merge branch 'master' into team 2019-03-07 08:42:24 -07:00
5d8e3c6cb4 Optimize reneighbor for small systems 2019-02-28 10:14:35 -07:00
29073f7d0e Merge branch 'team' into comm_squash 2019-02-25 09:20:13 -07:00
38c6c1907b Merge branch 'master' into team 2019-02-25 09:19:54 -07:00
85a14ebcb8 Fix issue with comm squash 2019-02-25 09:17:34 -07:00
0a02097e20 Add squashed comm forward for Kokkos 2019-02-25 08:39:54 -07:00
a72f3cfb58 Merge branch 'master' into team 2019-02-11 14:45:34 -07:00
58905525bf Add team-based calcs to some KOKKOS package pair_styles 2019-02-06 14:42:37 -07:00
7a2d326103 Commit JT 010819
- commit before co
2019-01-08 09:19:49 -07:00
41ccf832bf update log files 2018-12-30 04:30:58 -05:00
6d5ab3dac1 Merge branch 'github-rebo-bugfix' of https://github.com/CF17/lammps into test-rebo
# Conflicts:
#	examples/airebo/log.23Jun17.airebo-m.g++.1
#	examples/airebo/log.23Jun17.airebo-m.g++.4
#	examples/airebo/log.23Jun17.airebo.g++.1
#	examples/airebo/log.23Jun17.airebo.g++.4
#	examples/airebo/log.27Nov18.airebo-m.g++.1
#	examples/airebo/log.27Nov18.airebo-m.g++.4
#	examples/airebo/log.27Nov18.airebo.g++.1
#	examples/airebo/log.27Nov18.airebo.g++.4
#	examples/airebo/log.29Jun18.airebo-m.g++.1
#	examples/airebo/log.29Jun18.airebo-m.g++.4
#	examples/airebo/log.29Jun18.airebo.g++.1
#	examples/airebo/log.29Jun18.airebo.g++.4
2018-12-30 03:44:38 -05:00
e51720a2de add code to detect inconistent use of AIREBO/REBO potential files 2018-11-20 13:59:14 -05:00
dcffeb546f update AIREBO/REBO examples and provide references for rebo and airebo with LJ and TORSION turned off 2018-11-20 13:56:46 -05:00
1235e77199 implemented recommended change to remove global class member 2018-11-20 13:56:46 -05:00
c59b3439c6 changes the values of some parameters in REBO in accordance to the original Brenner paper 2018-11-20 13:56:46 -05:00
ddd5e61254 Commit JT 111418
- removed muk table (size kmax3d, mem fault)
2018-11-14 09:46:16 -07:00
d66a1ac054 Commit JT 111318
- corrections pair/spin/dipolar/long
2018-11-13 17:03:32 -07:00
9727fdc473 Commit JT 110818
- correct bug (match ewald/disp results for vir)
- started correct mag. part
2018-11-08 16:17:43 -07:00
d5fe8857cc Commit JT 100518
- correction torque ewald_dipole
- idem ewald_dipole_spin to check
2018-10-05 14:01:29 -06:00
a745a0aed0 Commit JT 100318
- correction forces ewald_dipole
- correction mag. dipolar energy
2018-10-03 10:23:58 -06:00
19aaf294e5 Commit JT 092718
- renamed pair/spin/long functions
- started to work on debugging ewald_dipole (force errors)
2018-09-27 10:46:52 -06:00
6b4303c405 Commit2 JT 092418
- initialized g_ewald before Newton solver
- mu2 is now adim in ewald_dipole_spin
2018-09-24 16:40:59 -06:00
53a779067e Commit JT 092418
- ewald_dipole_spin added
- accuracy problem (with eval of gewald and Newton solver)
2018-09-24 10:59:17 -06:00
cce9fe4a34 Commit2 JT 092118
- created pair_spin_dipolar_cut
- real-space short-range calc of the spin dipolar interaction
- run and check valgrind ok
2018-09-21 09:55:41 -06:00
407392f6bf Commit JT 092118
- ewald_dipole with virial, torque and slabcorr
- run and valgrind test ok

Merge branch 'pppm_spin' of github.com:julient31/lammps into pppm_spin

Conflicts:
	src/KSPACE/ewald_dipole.cpp
2018-09-21 08:33:02 -06:00
cdde878d60 Commit JT 091618
- merge with modifs Stan 1
- energy correction

Merge branch 'pppm_spin' of github.com:julient31/lammps into pppm_spin

Conflicts:
	src/KSPACE/ewald_dipole.cpp
2018-09-16 09:42:27 -06:00
b9e33e631f Fix bug in ewald_dipole forces 2018-09-15 13:34:24 -06:00
82a5346ab1 Commit JT 091418
- created pair_spin_long_qsymp
- modified ewald_dipole
2018-09-14 15:09:59 -06:00
a76457ef22 Fix bug in ewald_dipole structure factor 2018-09-14 13:05:48 -06:00
e6b5112ddc Fix issues in ewald_dipole 2018-09-13 14:36:54 -06:00
16911adcea Commit1 JT 083018
- started to work on ewald_dipole (not yet triclinic)
- compiles and runs (no memory issue)
- check the energy accuracy
2018-08-30 07:33:25 -06:00
cf1d421e10 Commit JT 082318
- corrected memory errors in pppm_dipole and pppm_dipole_spin
- created fm_long in atom_vec_spin
- fm_long added to fm in initial_integrate (in ComputeInteractionsSpin)
2018-08-23 15:18:30 -06:00
8d79db03d3 Commit1 JT 082118
- created pppm_dipole_spin.h/cpp (child-class of pppm_dipole)
- improved pair_spin_long.h/cpp
- created documentation for pair_spin_long
- new 3xN fm_long vector in atom_vec_spin (with associated comm)
2018-08-21 13:47:38 -06:00
5e287033f7 Commit1 JT 081618
- converted pppm_spin for long range spin-spin interactions
- modified kspace, pair,and pair_hybrid to add spinflag
2018-08-16 10:13:18 -06:00
e1ab38439b Commit2 JT 081418
- converted pppm_dipole toward spin quantities
- need to check if can handle ferrimagnets
2018-08-14 17:09:44 -06:00
062c1a04fc Commit JT 081418
- initial commit pppm_spin branch
- copied short_range spin files (src/SPIN)
- copied/renamed Stan's file (from pppm_dipole branch)
2018-08-14 14:42:01 -06:00
2534 changed files with 136974 additions and 34251 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,28 @@
###############################################################################
# Coverage
#
# Requires latest gcovr (for GCC 8.1 support):#
# pip install git+https://github.com/gcovr/gcovr.git
###############################################################################
if(ENABLE_COVERAGE)
find_program(GCOVR_BINARY gcovr)
find_package_handle_standard_args(GCOVR DEFAULT_MSG GCOVR_BINARY)
if(GCOVR_FOUND)
get_filename_component(ABSOLUTE_LAMMPS_SOURCE_DIR ${LAMMPS_SOURCE_DIR} ABSOLUTE)
add_custom_target(
gen_coverage_xml
COMMAND ${GCOVR_BINARY} -s -x -r ${ABSOLUTE_LAMMPS_SOURCE_DIR} --object-directory=${CMAKE_BINARY_DIR} -o coverage.xml
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "Generating XML Coverage Report..."
)
add_custom_target(
gen_coverage_html
COMMAND ${GCOVR_BINARY} -s --html --html-details -r ${ABSOLUTE_LAMMPS_SOURCE_DIR} --object-directory=${CMAKE_BINARY_DIR} -o coverage.html
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "Generating HTML Coverage Report..."
)
endif()
endif()

View File

@ -0,0 +1,59 @@
###############################################################################
# Build documentation
###############################################################################
option(BUILD_DOC "Build LAMMPS documentation" OFF)
if(BUILD_DOC)
include(ProcessorCount)
ProcessorCount(NPROCS)
find_package(PythonInterp 3 REQUIRED)
set(VIRTUALENV ${PYTHON_EXECUTABLE} -m virtualenv)
file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/[^.]*.txt)
file(GLOB PDF_EXTRA_SOURCES ${LAMMPS_DOC_DIR}/src/lammps_commands*.txt ${LAMMPS_DOC_DIR}/src/lammps_support.txt ${LAMMPS_DOC_DIR}/src/lammps_tutorials.txt)
list(REMOVE_ITEM DOC_SOURCES ${PDF_EXTRA_SOURCES})
add_custom_command(
OUTPUT docenv
COMMAND ${VIRTUALENV} docenv
)
set(DOCENV_BINARY_DIR ${CMAKE_BINARY_DIR}/docenv/bin)
add_custom_command(
OUTPUT requirements.txt
DEPENDS docenv
COMMAND ${CMAKE_COMMAND} -E copy ${LAMMPS_DOC_DIR}/utils/requirements.txt requirements.txt
COMMAND ${DOCENV_BINARY_DIR}/pip install -r requirements.txt --upgrade
COMMAND ${DOCENV_BINARY_DIR}/pip install --upgrade ${LAMMPS_DOC_DIR}/utils/converters
)
set(RST_FILES "")
set(RST_DIR ${CMAKE_BINARY_DIR}/rst)
file(MAKE_DIRECTORY ${RST_DIR})
foreach(TXT_FILE ${DOC_SOURCES})
get_filename_component(FILENAME ${TXT_FILE} NAME_WE)
set(RST_FILE ${RST_DIR}/${FILENAME}.rst)
list(APPEND RST_FILES ${RST_FILE})
add_custom_command(
OUTPUT ${RST_FILE}
DEPENDS requirements.txt docenv ${TXT_FILE}
COMMAND ${DOCENV_BINARY_DIR}/txt2rst -o ${RST_DIR} ${TXT_FILE}
)
endforeach()
add_custom_command(
OUTPUT html
DEPENDS ${RST_FILES}
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LAMMPS_DOC_DIR}/src ${RST_DIR}
COMMAND ${DOCENV_BINARY_DIR}/sphinx-build -j ${NPROCS} -b html -c ${LAMMPS_DOC_DIR}/utils/sphinx-config -d ${CMAKE_BINARY_DIR}/doctrees ${RST_DIR} html
)
add_custom_target(
doc ALL
DEPENDS html
SOURCES ${LAMMPS_DOC_DIR}/utils/requirements.txt ${DOC_SOURCES}
)
install(DIRECTORY ${CMAKE_BINARY_DIR}/html DESTINATION ${CMAKE_INSTALL_DOCDIR})
endif()

View File

@ -0,0 +1,71 @@
# Utility functions
function(list_to_bulletpoints result)
list(REMOVE_AT ARGV 0)
set(temp "")
foreach(item ${ARGV})
set(temp "${temp}* ${item}\n")
endforeach()
set(${result} "${temp}" PARENT_SCOPE)
endfunction(list_to_bulletpoints)
function(validate_option name values)
string(TOLOWER ${${name}} needle_lower)
string(TOUPPER ${${name}} needle_upper)
list(FIND ${values} ${needle_lower} IDX_LOWER)
list(FIND ${values} ${needle_upper} IDX_UPPER)
if(${IDX_LOWER} LESS 0 AND ${IDX_UPPER} LESS 0)
list_to_bulletpoints(POSSIBLE_VALUE_LIST ${${values}})
message(FATAL_ERROR "\n########################################################################\n"
"Invalid value '${${name}}' for option ${name}\n"
"\n"
"Possible values are:\n"
"${POSSIBLE_VALUE_LIST}"
"########################################################################")
endif()
endfunction(validate_option)
function(get_lammps_version version_header variable)
file(READ ${version_header} line)
set(MONTHS x Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\1" day "${line}")
string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\2" month "${line}")
string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\3" year "${line}")
string(STRIP ${day} day)
string(STRIP ${month} month)
string(STRIP ${year} year)
list(FIND MONTHS "${month}" month)
string(LENGTH ${day} day_length)
string(LENGTH ${month} month_length)
if(day_length EQUAL 1)
set(day "0${day}")
endif()
if(month_length EQUAL 1)
set(month "0${month}")
endif()
set(${variable} "${year}${month}${day}" PARENT_SCOPE)
endfunction()
function(check_for_autogen_files source_dir)
message(STATUS "Running check for auto-generated files from make-based build system")
file(GLOB SRC_AUTOGEN_FILES ${source_dir}/style_*.h)
file(GLOB SRC_AUTOGEN_PACKAGES ${source_dir}/packages_*.h)
list(APPEND SRC_AUTOGEN_FILES ${SRC_AUTOGEN_PACKAGES} ${source_dir}/lmpinstalledpkgs.h ${source_dir}/lmpgitversion.h)
foreach(_SRC ${SRC_AUTOGEN_FILES})
get_filename_component(FILENAME "${_SRC}" NAME)
if(EXISTS ${source_dir}/${FILENAME})
message(FATAL_ERROR "\n########################################################################\n"
"Found header file(s) generated by the make-based build system\n"
"\n"
"Please run\n"
"make -C ${source_dir} purge\n"
"to remove\n"
"########################################################################")
endif()
endforeach()
endfunction()
macro(pkg_depends PKG1 PKG2)
if(PKG_${PKG1} AND NOT (PKG_${PKG2} OR BUILD_${PKG2}))
message(FATAL_ERROR "${PKG1} package needs LAMMPS to be build with ${PKG2}")
endif()
endmacro()

View File

@ -0,0 +1,5 @@
if(PKG_COMPRESS)
find_package(ZLIB REQUIRED)
include_directories(${ZLIB_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${ZLIB_LIBRARIES})
endif()

View File

@ -0,0 +1,13 @@
if(PKG_CORESHELL)
set(CORESHELL_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/CORESHELL)
set(CORESHELL_SOURCES)
set_property(GLOBAL PROPERTY "CORESHELL_SOURCES" "${CORESHELL_SOURCES}")
# detects styles which have a CORESHELL version
RegisterStylesExt(${CORESHELL_SOURCES_DIR} cs CORESHELL_SOURCES)
get_property(CORESHELL_SOURCES GLOBAL PROPERTY CORESHELL_SOURCES)
list(APPEND LIB_SOURCES ${CORESHELL_SOURCES})
include_directories(${CORESHELL_SOURCES_DIR})
endif()

View File

@ -0,0 +1,194 @@
if(PKG_GPU)
if (CMAKE_VERSION VERSION_LESS "3.1")
message(FATAL_ERROR "For the GPU package you need at least cmake-3.1")
endif()
set(GPU_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/GPU)
set(GPU_SOURCES ${GPU_SOURCES_DIR}/gpu_extra.h
${GPU_SOURCES_DIR}/fix_gpu.h
${GPU_SOURCES_DIR}/fix_gpu.cpp)
set(GPU_API "opencl" CACHE STRING "API used by GPU package")
set(GPU_API_VALUES opencl cuda)
set_property(CACHE GPU_API PROPERTY STRINGS ${GPU_API_VALUES})
validate_option(GPU_API GPU_API_VALUES)
string(TOUPPER ${GPU_API} GPU_API)
set(GPU_PREC "mixed" CACHE STRING "LAMMPS GPU precision")
set(GPU_PREC_VALUES double mixed single)
set_property(CACHE GPU_PREC PROPERTY STRINGS ${GPU_PREC_VALUES})
validate_option(GPU_PREC GPU_PREC_VALUES)
string(TOUPPER ${GPU_PREC} GPU_PREC)
if(GPU_PREC STREQUAL "DOUBLE")
set(GPU_PREC_SETTING "DOUBLE_DOUBLE")
elseif(GPU_PREC STREQUAL "MIXED")
set(GPU_PREC_SETTING "SINGLE_DOUBLE")
elseif(GPU_PREC STREQUAL "SINGLE")
set(GPU_PREC_SETTING "SINGLE_SINGLE")
endif()
file(GLOB GPU_LIB_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cpp)
file(MAKE_DIRECTORY ${LAMMPS_LIB_BINARY_DIR}/gpu)
if(GPU_API STREQUAL "CUDA")
find_package(CUDA REQUIRED)
find_program(BIN2C bin2c)
if(NOT BIN2C)
message(FATAL_ERROR "Could not find bin2c, use -DBIN2C=/path/to/bin2c to help cmake finding it.")
endif()
option(CUDPP_OPT "Enable CUDPP_OPT" ON)
option(CUDA_MPS_SUPPORT "Enable tweaks to support CUDA Multi-process service (MPS)" OFF)
if(CUDA_MPS_SUPPORT)
set(GPU_CUDA_MPS_FLAGS "-DCUDA_PROXY")
endif()
set(GPU_ARCH "sm_30" CACHE STRING "LAMMPS GPU CUDA SM primary architecture (e.g. sm_60)")
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/[^.]*.cu)
list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_pppm.cu)
cuda_include_directories(${LAMMPS_LIB_SOURCE_DIR}/gpu ${LAMMPS_LIB_BINARY_DIR}/gpu)
if(CUDPP_OPT)
cuda_include_directories(${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini)
file(GLOB GPU_LIB_CUDPP_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/[^.]*.cpp)
file(GLOB GPU_LIB_CUDPP_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/[^.]*.cu)
endif()
# 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
set(GPU_CUDA_GENCODE "-arch=${GPU_ARCH} ")
# Fermi (GPU Arch 2.x) is supported by CUDA 3.2 to CUDA 8.0
if((CUDA_VERSION VERSION_GREATER "3.1") AND (CUDA_VERSION VERSION_LESS "9.0"))
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_20,code=[sm_20,compute_20] ")
endif()
# Kepler (GPU Arch 3.x) is supported by CUDA 5 and later
if(CUDA_VERSION VERSION_GREATER "4.9")
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_30,code=[sm_30,compute_30] -gencode arch=compute_35,code=[sm_35,compute_35] ")
endif()
# Maxwell (GPU Arch 5.x) is supported by CUDA 6 and later
if(CUDA_VERSION VERSION_GREATER "5.9")
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52] ")
endif()
# Pascal (GPU Arch 6.x) is supported by CUDA 8 and later
if(CUDA_VERSION VERSION_GREATER "7.9")
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_60,code=[sm_60,compute_60] -gencode arch=compute_61,code=[sm_61,compute_61] ")
endif()
# Volta (GPU Arch 7.0) is supported by CUDA 9 and later
if(CUDA_VERSION VERSION_GREATER "8.9")
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_70,code=[sm_70,compute_70] ")
endif()
# Turing (GPU Arch 7.5) is supported by CUDA 10 and later
if(CUDA_VERSION VERSION_GREATER "9.9")
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_75,code=[sm_75,compute_75] ")
endif()
cuda_compile_fatbin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS
-DUNIX -O3 --use_fast_math -Wno-deprecated-gpu-targets -DNV_KERNEL -DUCL_CUDADR ${GPU_CUDA_GENCODE} -D_${GPU_PREC_SETTING})
cuda_compile(GPU_OBJS ${GPU_LIB_CUDPP_CU} OPTIONS ${CUDA_REQUEST_PIC}
-DUNIX -O3 --use_fast_math -Wno-deprecated-gpu-targets -DUCL_CUDADR ${GPU_CUDA_GENCODE} -D_${GPU_PREC_SETTING})
foreach(CU_OBJ ${GPU_GEN_OBJS})
get_filename_component(CU_NAME ${CU_OBJ} NAME_WE)
string(REGEX REPLACE "^.*_lal_" "" CU_NAME "${CU_NAME}")
add_custom_command(OUTPUT ${LAMMPS_LIB_BINARY_DIR}/gpu/${CU_NAME}_cubin.h
COMMAND ${BIN2C} -c -n ${CU_NAME} ${CU_OBJ} > ${LAMMPS_LIB_BINARY_DIR}/gpu/${CU_NAME}_cubin.h
DEPENDS ${CU_OBJ}
COMMENT "Generating ${CU_NAME}_cubin.h")
list(APPEND GPU_LIB_SOURCES ${LAMMPS_LIB_BINARY_DIR}/gpu/${CU_NAME}_cubin.h)
endforeach()
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${LAMMPS_LIB_BINARY_DIR}/gpu/*_cubin.h")
add_library(gpu STATIC ${GPU_LIB_SOURCES} ${GPU_LIB_CUDPP_SOURCES} ${GPU_OBJS})
target_link_libraries(gpu ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY})
target_include_directories(gpu PRIVATE ${LAMMPS_LIB_BINARY_DIR}/gpu ${CUDA_INCLUDE_DIRS})
target_compile_definitions(gpu PRIVATE -D_${GPU_PREC_SETTING} -DMPI_GERYON -DUCL_NO_EXIT ${GPU_CUDA_MPS_FLAGS})
if(CUDPP_OPT)
target_include_directories(gpu PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini)
target_compile_definitions(gpu PRIVATE -DUSE_CUDPP)
endif()
list(APPEND LAMMPS_LINK_LIBS gpu)
add_executable(nvc_get_devices ${LAMMPS_LIB_SOURCE_DIR}/gpu/geryon/ucl_get_devices.cpp)
target_compile_definitions(nvc_get_devices PRIVATE -DUCL_CUDADR)
target_link_libraries(nvc_get_devices PRIVATE ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY})
target_include_directories(nvc_get_devices PRIVATE ${CUDA_INCLUDE_DIRS})
elseif(GPU_API STREQUAL "OPENCL")
find_package(OpenCL REQUIRED)
set(OCL_TUNE "generic" CACHE STRING "OpenCL Device Tuning")
set(OCL_TUNE_VALUES intel fermi kepler cypress generic)
set_property(CACHE OCL_TUNE PROPERTY STRINGS ${OCL_TUNE_VALUES})
validate_option(OCL_TUNE OCL_TUNE_VALUES)
string(TOUPPER ${OCL_TUNE} OCL_TUNE)
include(OpenCLUtils)
set(OCL_COMMON_HEADERS ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_preprocessor.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_aux_fun1.h)
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu)
list(REMOVE_ITEM GPU_LIB_CU
${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne.cu
${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne_lj.cu
${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_re_squared.cu
${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_re_squared_lj.cu
${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_tersoff.cu
${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_tersoff_zbl.cu
${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_tersoff_mod.cu
)
foreach(GPU_KERNEL ${GPU_LIB_CU})
get_filename_component(basename ${GPU_KERNEL} NAME_WE)
string(SUBSTRING ${basename} 4 -1 KERNEL_NAME)
GenerateOpenCLHeader(${KERNEL_NAME} ${CMAKE_CURRENT_BINARY_DIR}/gpu/${KERNEL_NAME}_cl.h ${OCL_COMMON_HEADERS} ${GPU_KERNEL})
list(APPEND GPU_LIB_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/gpu/${KERNEL_NAME}_cl.h)
endforeach()
GenerateOpenCLHeader(gayberne ${CMAKE_CURRENT_BINARY_DIR}/gpu/gayberne_cl.h ${OCL_COMMON_HEADERS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_ellipsoid_extra.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne.cu)
GenerateOpenCLHeader(gayberne_lj ${CMAKE_CURRENT_BINARY_DIR}/gpu/gayberne_lj_cl.h ${OCL_COMMON_HEADERS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_ellipsoid_extra.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne_lj.cu)
GenerateOpenCLHeader(re_squared ${CMAKE_CURRENT_BINARY_DIR}/gpu/re_squared_cl.h ${OCL_COMMON_HEADERS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_ellipsoid_extra.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_re_squared.cu)
GenerateOpenCLHeader(re_squared_lj ${CMAKE_CURRENT_BINARY_DIR}/gpu/re_squared_lj_cl.h ${OCL_COMMON_HEADERS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_ellipsoid_extra.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_re_squared_lj.cu)
GenerateOpenCLHeader(tersoff ${CMAKE_CURRENT_BINARY_DIR}/gpu/tersoff_cl.h ${OCL_COMMON_HEADERS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_tersoff_extra.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_tersoff.cu)
GenerateOpenCLHeader(tersoff_zbl ${CMAKE_CURRENT_BINARY_DIR}/gpu/tersoff_zbl_cl.h ${OCL_COMMON_HEADERS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_tersoff_zbl_extra.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_tersoff_zbl.cu)
GenerateOpenCLHeader(tersoff_mod ${CMAKE_CURRENT_BINARY_DIR}/gpu/tersoff_mod_cl.h ${OCL_COMMON_HEADERS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_tersoff_mod_extra.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_tersoff_mod.cu)
list(APPEND GPU_LIB_SOURCES
${CMAKE_CURRENT_BINARY_DIR}/gpu/gayberne_cl.h
${CMAKE_CURRENT_BINARY_DIR}/gpu/gayberne_lj_cl.h
${CMAKE_CURRENT_BINARY_DIR}/gpu/re_squared_cl.h
${CMAKE_CURRENT_BINARY_DIR}/gpu/re_squared_lj_cl.h
${CMAKE_CURRENT_BINARY_DIR}/gpu/tersoff_cl.h
${CMAKE_CURRENT_BINARY_DIR}/gpu/tersoff_zbl_cl.h
${CMAKE_CURRENT_BINARY_DIR}/gpu/tersoff_mod_cl.h
)
add_library(gpu STATIC ${GPU_LIB_SOURCES})
target_link_libraries(gpu ${OpenCL_LIBRARIES})
target_include_directories(gpu PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/gpu ${OpenCL_INCLUDE_DIRS})
target_compile_definitions(gpu PRIVATE -D_${GPU_PREC_SETTING} -D${OCL_TUNE}_OCL -DMPI_GERYON -DUCL_NO_EXIT)
target_compile_definitions(gpu PRIVATE -DUSE_OPENCL)
list(APPEND LAMMPS_LINK_LIBS gpu)
add_executable(ocl_get_devices ${LAMMPS_LIB_SOURCE_DIR}/gpu/geryon/ucl_get_devices.cpp)
target_compile_definitions(ocl_get_devices PRIVATE -DUCL_OPENCL)
target_link_libraries(ocl_get_devices PRIVATE ${OpenCL_LIBRARIES})
target_include_directories(ocl_get_devices PRIVATE ${OpenCL_INCLUDE_DIRS})
endif()
# GPU package
FindStyleHeaders(${GPU_SOURCES_DIR} FIX_CLASS fix_ FIX)
set_property(GLOBAL PROPERTY "GPU_SOURCES" "${GPU_SOURCES}")
# detects styles which have GPU version
RegisterStylesExt(${GPU_SOURCES_DIR} gpu GPU_SOURCES)
get_property(GPU_SOURCES GLOBAL PROPERTY GPU_SOURCES)
list(APPEND LIB_SOURCES ${GPU_SOURCES})
include_directories(${GPU_SOURCES_DIR})
endif()

View File

@ -0,0 +1,49 @@
if(PKG_KIM)
find_package(CURL)
if(CURL_FOUND)
include_directories(${CURL_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${CURL_LIBRARIES})
add_definitions(-DLMP_KIM_CURL)
endif()
find_package(KIM-API QUIET)
if(KIM-API_FOUND)
set(DOWNLOAD_KIM_DEFAULT OFF)
else()
if (NOT DOWNLOAD_KIM)
message(WARNING "KIM-API package not found. We will download and build our own")
endif()
set(DOWNLOAD_KIM_DEFAULT ON)
endif()
option(DOWNLOAD_KIM "Download KIM-API from OpenKIM instead of using an already installed one" ${DOWNLOAD_KIM_DEFAULT})
if(DOWNLOAD_KIM)
if(CMAKE_GENERATOR STREQUAL "Ninja")
message(FATAL_ERROR "Cannot build downloaded KIM-API library with Ninja build tool")
endif()
message(STATUS "KIM-API download requested - we will build our own")
include(CheckLanguage)
include(ExternalProject)
enable_language(C)
check_language(Fortran)
if(NOT CMAKE_Fortran_COMPILER)
message(FATAL_ERROR "Compiling the KIM-API library requires a Fortran compiler")
endif()
ExternalProject_Add(kim_build
URL https://s3.openkim.org/kim-api/kim-api-2.1.2.txz
URL_MD5 6ac52e14ef52967fc7858220b208cba5
BINARY_DIR build
CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_Fortran_COMPILER=${CMAKE_Fortran_COMPILER}
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
)
ExternalProject_get_property(kim_build INSTALL_DIR)
set(KIM-API_INCLUDE_DIRS ${INSTALL_DIR}/include/kim-api)
set(KIM-API_LDFLAGS ${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/libkim-api${CMAKE_SHARED_LIBRARY_SUFFIX})
list(APPEND LAMMPS_DEPS kim_build)
else()
find_package(KIM-API REQUIRED)
endif()
list(APPEND LAMMPS_LINK_LIBS "${KIM-API_LDFLAGS}")
include_directories(${KIM-API_INCLUDE_DIRS})
endif()

View File

@ -0,0 +1,53 @@
if(PKG_KOKKOS)
set(LAMMPS_LIB_KOKKOS_SRC_DIR ${LAMMPS_LIB_SOURCE_DIR}/kokkos)
set(LAMMPS_LIB_KOKKOS_BIN_DIR ${LAMMPS_LIB_BINARY_DIR}/kokkos)
add_definitions(-DLMP_KOKKOS)
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
${LAMMPS_LIB_KOKKOS_BIN_DIR})
include_directories(${Kokkos_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS kokkos)
set(KOKKOS_PKG_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/KOKKOS)
set(KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/atom_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/atom_vec_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/comm_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/comm_tiled_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/neighbor_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/neigh_list_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/neigh_bond_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/fix_nh_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/nbin_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/npair_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/domain_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/modify_kokkos.cpp)
if(PKG_KSPACE)
list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/gridcomm_kokkos.cpp)
endif()
set_property(GLOBAL PROPERTY "KOKKOS_PKG_SOURCES" "${KOKKOS_PKG_SOURCES}")
# detects styles which have KOKKOS version
RegisterStylesExt(${KOKKOS_PKG_SOURCES_DIR} kokkos KOKKOS_PKG_SOURCES)
# register kokkos-only styles
RegisterNBinStyle(${KOKKOS_PKG_SOURCES_DIR}/nbin_kokkos.h)
RegisterNPairStyle(${KOKKOS_PKG_SOURCES_DIR}/npair_kokkos.h)
if(PKG_USER-DPD)
get_property(KOKKOS_PKG_SOURCES GLOBAL PROPERTY KOKKOS_PKG_SOURCES)
list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/npair_ssa_kokkos.cpp)
RegisterNPairStyle(${KOKKOS_PKG_SOURCES_DIR}/npair_ssa_kokkos.h)
set_property(GLOBAL PROPERTY "KOKKOS_PKG_SOURCES" "${KOKKOS_PKG_SOURCES}")
endif()
get_property(KOKKOS_PKG_SOURCES GLOBAL PROPERTY KOKKOS_PKG_SOURCES)
list(APPEND LIB_SOURCES ${KOKKOS_PKG_SOURCES})
include_directories(${KOKKOS_PKG_SOURCES_DIR})
endif()

View File

@ -0,0 +1,42 @@
if(PKG_KSPACE)
option(FFT_SINGLE "Use single precision FFTs instead of double precision FFTs" OFF)
set(FFTW "FFTW3")
if(FFT_SINGLE)
set(FFTW "FFTW3F")
add_definitions(-DFFT_SINGLE)
endif()
find_package(${FFTW} QUIET)
if(${FFTW}_FOUND)
set(FFT "FFTW3" CACHE STRING "FFT library for KSPACE package")
else()
set(FFT "KISS" CACHE STRING "FFT library for KSPACE package")
endif()
set(FFT_VALUES KISS FFTW3 MKL)
set_property(CACHE FFT PROPERTY STRINGS ${FFT_VALUES})
validate_option(FFT FFT_VALUES)
string(TOUPPER ${FFT} FFT)
if(FFT STREQUAL "FFTW3")
find_package(${FFTW} REQUIRED)
add_definitions(-DFFT_FFTW3)
include_directories(${${FFTW}_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${${FFTW}_LIBRARIES})
elseif(FFT STREQUAL "MKL")
find_package(MKL REQUIRED)
add_definitions(-DFFT_MKL)
include_directories(${MKL_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${MKL_LIBRARIES})
else()
# last option is KISSFFT
add_definitions(-DFFT_KISS)
endif()
set(FFT_PACK "array" CACHE STRING "Optimization for FFT")
set(FFT_PACK_VALUES array pointer memcpy)
set_property(CACHE FFT_PACK PROPERTY STRINGS ${FFT_PACK_VALUES})
validate_option(FFT_PACK FFT_PACK_VALUES)
if(NOT FFT_PACK STREQUAL "array")
string(TOUPPER ${FFT_PACK} FFT_PACK)
add_definitions(-DFFT_PACK_${FFT_PACK})
endif()
endif()

View File

@ -0,0 +1,38 @@
if(PKG_LATTE)
enable_language(Fortran)
find_package(LATTE)
if(LATTE_FOUND)
set(DOWNLOAD_LATTE_DEFAULT OFF)
else()
set(DOWNLOAD_LATTE_DEFAULT ON)
endif()
option(DOWNLOAD_LATTE "Download the LATTE library instead of using an already installed one" ${DOWNLOAD_LATTE_DEFAULT})
if(DOWNLOAD_LATTE)
if (CMAKE_VERSION VERSION_LESS "3.7") # due to SOURCE_SUBDIR
message(FATAL_ERROR "For downlading LATTE you need at least cmake-3.7")
endif()
if(CMAKE_GENERATOR STREQUAL "Ninja")
message(FATAL_ERROR "Cannot build downloaded LATTE library with Ninja build tool")
endif()
message(STATUS "LATTE download requested - we will build our own")
include(ExternalProject)
ExternalProject_Add(latte_build
URL https://github.com/lanl/LATTE/archive/v1.2.1.tar.gz
URL_MD5 85ac414fdada2d04619c8f936344df14
SOURCE_SUBDIR cmake
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> ${CMAKE_REQUEST_PIC}
-DBLAS_LIBRARIES=${BLAS_LIBRARIES} -DLAPACK_LIBRARIES=${LAPACK_LIBRARIES}
-DCMAKE_Fortran_COMPILER=${CMAKE_Fortran_COMPILER} -DCMAKE_Fortran_FLAGS=${CMAKE_Fortran_FLAGS}
-DCMAKE_Fortran_FLAGS_${BTYPE}=${CMAKE_Fortran_FLAGS_${BTYPE}} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
)
ExternalProject_get_property(latte_build INSTALL_DIR)
set(LATTE_LIBRARIES ${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/liblatte.a)
list(APPEND LAMMPS_DEPS latte_build)
else()
find_package(LATTE)
if(NOT LATTE_FOUND)
message(FATAL_ERROR "LATTE library not found, help CMake to find it by setting LATTE_LIBRARY, or set DOWNLOAD_LATTE=ON to download it")
endif()
endif()
list(APPEND LAMMPS_LINK_LIBS ${LATTE_LIBRARIES} ${LAPACK_LIBRARIES})
endif()

View File

@ -0,0 +1,29 @@
if(PKG_MESSAGE)
option(MESSAGE_ZMQ "Use ZeroMQ in MESSAGE package" OFF)
file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.F
${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.c
${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.cpp)
add_library(cslib STATIC ${cslib_SOURCES})
if(BUILD_MPI)
target_compile_definitions(cslib PRIVATE -DMPI_YES)
set_target_properties(cslib PROPERTIES OUTPUT_NAME "csmpi")
else()
target_compile_definitions(cslib PRIVATE -DMPI_NO)
target_include_directories(cslib PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src/STUBS_MPI)
set_target_properties(cslib PROPERTIES OUTPUT_NAME "csnompi")
endif()
if(MESSAGE_ZMQ)
target_compile_definitions(cslib PRIVATE -DZMQ_YES)
find_package(ZMQ REQUIRED)
target_include_directories(cslib PRIVATE ${ZMQ_INCLUDE_DIRS})
target_link_libraries(cslib PUBLIC ${ZMQ_LIBRARIES})
else()
target_compile_definitions(cslib PRIVATE -DZMQ_NO)
target_include_directories(cslib PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src/STUBS_ZMQ)
endif()
list(APPEND LAMMPS_LINK_LIBS cslib)
include_directories(${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src)
endif()

View File

@ -0,0 +1,45 @@
if(PKG_MSCG)
find_package(GSL REQUIRED)
find_package(MSCG QUIET)
if(MSGC_FOUND)
set(DOWNLOAD_MSCG_DEFAULT OFF)
else()
set(DOWNLOAD_MSCG_DEFAULT ON)
endif()
option(DOWNLOAD_MSCG "Download MSCG library instead of using an already installed one)" ${DOWNLOAD_MSCG_DEFAULT})
if(DOWNLOAD_MSCG)
if (CMAKE_VERSION VERSION_LESS "3.7") # due to SOURCE_SUBDIR
message(FATAL_ERROR "For downlading MSCG you need at least cmake-3.7")
endif()
if(CMAKE_GENERATOR STREQUAL "Ninja")
message(FATAL_ERROR "Cannot build downloaded MSCG library with Ninja build tool")
endif()
include(ExternalProject)
if(NOT LAPACK_FOUND)
set(EXTRA_MSCG_OPTS "-DLAPACK_LIBRARIES=${CMAKE_CURRENT_BINARY_DIR}/liblinalg.a")
endif()
ExternalProject_Add(mscg_build
URL https://github.com/uchicago-voth/MSCG-release/archive/1.7.3.1.tar.gz
URL_MD5 8c45e269ee13f60b303edd7823866a91
SOURCE_SUBDIR src/CMake
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> ${CMAKE_REQUEST_PIC} ${EXTRA_MSCG_OPTS}
BUILD_COMMAND make mscg INSTALL_COMMAND ""
)
ExternalProject_get_property(mscg_build BINARY_DIR)
set(MSCG_LIBRARIES ${BINARY_DIR}/libmscg.a)
ExternalProject_get_property(mscg_build SOURCE_DIR)
set(MSCG_INCLUDE_DIRS ${SOURCE_DIR}/src)
list(APPEND LAMMPS_DEPS mscg_build)
if(NOT LAPACK_FOUND)
file(MAKE_DIRECTORY ${MSCG_INCLUDE_DIRS})
add_dependencies(mscg_build linalg)
endif()
else()
find_package(MSCG)
if(NOT MSCG_FOUND)
message(FATAL_ERROR "MSCG not found, help CMake to find it by setting MSCG_LIBRARY and MSCG_INCLUDE_DIRS, or set DOWNLOAD_MSCG=ON to download it")
endif()
endif()
list(APPEND LAMMPS_LINK_LIBS ${MSCG_LIBRARIES} ${GSL_LIBRARIES} ${LAPACK_LIBRARIES})
include_directories(${MSCG_INCLUDE_DIRS})
endif()

View File

@ -0,0 +1,13 @@
if(PKG_OPT)
set(OPT_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/OPT)
set(OPT_SOURCES)
set_property(GLOBAL PROPERTY "OPT_SOURCES" "${OPT_SOURCES}")
# detects styles which have OPT version
RegisterStylesExt(${OPT_SOURCES_DIR} opt OPT_SOURCES)
get_property(OPT_SOURCES GLOBAL PROPERTY OPT_SOURCES)
list(APPEND LIB_SOURCES ${OPT_SOURCES})
include_directories(${OPT_SOURCES_DIR})
endif()

View File

@ -0,0 +1,6 @@
if(PKG_PYTHON)
find_package(PythonLibs REQUIRED)
add_definitions(-DLMP_PYTHON)
include_directories(${PYTHON_INCLUDE_DIR})
list(APPEND LAMMPS_LINK_LIBS ${PYTHON_LIBRARY})
endif()

View File

@ -0,0 +1,20 @@
# Fix qeq/fire requires MANYBODY (i.e. COMB and COMB3) to be installed
if(PKG_QEQ)
set(QEQ_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/QEQ)
file(GLOB QEQ_HEADERS ${QEQ_SOURCES_DIR}/fix*.h)
file(GLOB QEQ_SOURCES ${QEQ_SOURCES_DIR}/fix*.cpp)
if(NOT PKG_MANYBODY)
list(REMOVE_ITEM QEQ_HEADERS ${QEQ_SOURCES_DIR}/fix_qeq_fire.h)
list(REMOVE_ITEM QEQ_SOURCES ${QEQ_SOURCES_DIR}/fix_qeq_fire.cpp)
endif()
set_property(GLOBAL PROPERTY "QEQ_SOURCES" "${QEQ_SOURCES}")
foreach(MY_HEADER ${QEQ_HEADERS})
AddStyleHeader(${MY_HEADER} FIX)
endforeach()
get_property(QEQ_SOURCES GLOBAL PROPERTY QEQ_SOURCES)
list(APPEND LIB_SOURCES ${QEQ_SOURCES})
include_directories(${QEQ_SOURCES_DIR})
endif()

View File

@ -0,0 +1,8 @@
if(PKG_USER-H5MD)
enable_language(C)
find_package(HDF5 REQUIRED)
target_link_libraries(h5md ${HDF5_LIBRARIES})
target_include_directories(h5md PRIVATE ${HDF5_INCLUDE_DIRS})
include_directories(${HDF5_INCLUDE_DIRS})
endif()

View File

@ -0,0 +1,118 @@
if(PKG_USER-INTEL)
check_include_file_cxx(immintrin.h FOUND_IMMINTRIN)
if(NOT FOUND_IMMINTRIN)
message(FATAL_ERROR "immintrin.h header not found, Intel package won't work without it")
endif()
add_definitions(-DLMP_USER_INTEL)
set(INTEL_ARCH "cpu" CACHE STRING "Architectures used by USER-INTEL (cpu or knl)")
set(INTEL_ARCH_VALUES cpu knl)
set_property(CACHE INTEL_ARCH PROPERTY STRINGS ${INTEL_ARCH_VALUES})
validate_option(INTEL_ARCH INTEL_ARCH_VALUES)
string(TOUPPER ${INTEL_ARCH} INTEL_ARCH)
find_package(Threads QUIET)
if(Threads_FOUND)
set(INTEL_LRT_MODE "threads" CACHE STRING "Long-range threads mode (none, threads, or c++11)")
else()
set(INTEL_LRT_MODE "none" CACHE STRING "Long-range threads mode (none, threads, or c++11)")
endif()
set(INTEL_LRT_VALUES none threads c++11)
set_property(CACHE INTEL_LRT_MODE PROPERTY STRINGS ${INTEL_LRT_VALUES})
validate_option(INTEL_LRT_MODE INTEL_LRT_VALUES)
string(TOUPPER ${INTEL_LRT_MODE} INTEL_LRT_MODE)
if(INTEL_LRT_MODE STREQUAL "THREADS")
if(Threads_FOUND)
add_definitions(-DLMP_INTEL_USELRT)
list(APPEND LAMMPS_LINK_LIBS ${CMAKE_THREAD_LIBS_INIT})
else()
message(FATAL_ERROR "Must have working threads library for Long-range thread support")
endif()
endif()
if(INTEL_LRT_MODE STREQUAL "C++11")
add_definitions(-DLMP_INTEL_USERLRT -DLMP_INTEL_LRT11)
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16)
message(FATAL_ERROR "USER-INTEL needs at least a 2016 Intel compiler, found ${CMAKE_CXX_COMPILER_VERSION}")
endif()
else()
message(WARNING "USER-INTEL gives best performance with Intel compilers")
endif()
find_package(TBB QUIET)
if(TBB_FOUND)
list(APPEND LAMMPS_LINK_LIBS ${TBB_MALLOC_LIBRARIES})
else()
add_definitions(-DLMP_INTEL_NO_TBB)
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
message(WARNING "USER-INTEL with Intel compilers should use TBB malloc libraries")
endif()
endif()
find_package(MKL QUIET)
if(MKL_FOUND)
add_definitions(-DLMP_USE_MKL_RNG)
list(APPEND LAMMPS_LINK_LIBS ${MKL_LIBRARIES})
else()
message(STATUS "Pair style dpd/intel will be faster with MKL libraries")
endif()
if((NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows") AND (NOT ${LAMMPS_MEMALIGN} STREQUAL "64") AND (NOT ${LAMMPS_MEMALIGN} STREQUAL "128") AND (NOT ${LAMMPS_MEMALIGN} STREQUAL "256"))
message(FATAL_ERROR "USER-INTEL only supports memory alignment of 64, 128 or 256 on this platform")
endif()
if(INTEL_ARCH STREQUAL "KNL")
if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
message(FATAL_ERROR "Must use Intel compiler with USER-INTEL for KNL architecture")
endif()
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -xHost -qopenmp -qoffload")
set(MIC_OPTIONS "-qoffload-option,mic,compiler,\"-fp-model fast=2 -mGLOB_default_function_attrs=\\\"gather_scatter_loop_unroll=4\\\"\"")
add_compile_options(-xMIC-AVX512 -qoffload -fno-alias -ansi-alias -restrict -qoverride-limits ${MIC_OPTIONS})
add_definitions(-DLMP_INTEL_OFFLOAD)
else()
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_CXX_FLAGS "${CMAKE_CXX_FLAGS} -xCOMMON-AVX512")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -xHost")
endif()
include(CheckCXXCompilerFlag)
foreach(_FLAG -O2 -fp-model fast=2 -no-prec-div -qoverride-limits -qopt-zmm-usage=high -qno-offload -fno-alias -ansi-alias -restrict)
check_cxx_compiler_flag("${__FLAG}" COMPILER_SUPPORTS${_FLAG})
if(COMPILER_SUPPORTS${_FLAG})
add_compile_options(${_FLAG})
endif()
endforeach()
else()
add_compile_options(-O3 -ffast-math)
endif()
endif()
# collect sources
set(USER-INTEL_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-INTEL)
set(USER-INTEL_SOURCES ${USER-INTEL_SOURCES_DIR}/fix_intel.cpp
${USER-INTEL_SOURCES_DIR}/fix_nh_intel.cpp
${USER-INTEL_SOURCES_DIR}/intel_buffers.cpp
${USER-INTEL_SOURCES_DIR}/nbin_intel.cpp
${USER-INTEL_SOURCES_DIR}/npair_intel.cpp)
set_property(GLOBAL PROPERTY "USER-INTEL_SOURCES" "${USER-INTEL_SOURCES}")
# detect styles which have a USER-INTEL version
RegisterStylesExt(${USER-INTEL_SOURCES_DIR} intel USER-INTEL_SOURCES)
RegisterNBinStyle(${USER-INTEL_SOURCES_DIR}/nbin_intel.h)
RegisterNPairStyle(${USER-INTEL_SOURCES_DIR}/npair_intel.h)
RegisterFixStyle(${USER-INTEL_SOURCES_DIR}/fix_intel.h)
get_property(USER-INTEL_SOURCES GLOBAL PROPERTY USER-INTEL_SOURCES)
if(PKG_KSPACE)
list(APPEND USER-INTEL_SOURCES ${USER-INTEL_SOURCES_DIR}/verlet_lrt_intel.cpp)
RegisterIntegrateStyle(${USER-INTEL_SOURCES_DIR}/verlet_lrt_intel.h)
endif()
list(APPEND LIB_SOURCES ${USER-INTEL_SOURCES})
include_directories(${USER-INTEL_SOURCES_DIR})
endif()

View File

@ -0,0 +1,10 @@
if(PKG_USER-MOLFILE)
set(MOLFILE_INCLUDE_DIRS "${LAMMPS_LIB_SOURCE_DIR}/molfile" CACHE STRING "Path to VMD molfile plugin headers")
add_library(molfile INTERFACE)
target_include_directories(molfile INTERFACE ${MOLFILE_INCLUDE_DIRS})
# no need to link with -ldl on windows
if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
target_link_libraries(molfile INTERFACE ${CMAKE_DL_LIBS})
endif()
list(APPEND LAMMPS_LINK_LIBS molfile)
endif()

View File

@ -0,0 +1,6 @@
if(PKG_USER-NETCDF)
find_package(NetCDF REQUIRED)
include_directories(${NETCDF_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${NETCDF_LIBRARIES})
add_definitions(-DLMP_HAS_NETCDF -DNC_64BIT_DATA=0x0020)
endif()

View File

@ -0,0 +1,42 @@
if(PKG_USER-OMP)
set(USER-OMP_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-OMP)
set(USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/thr_data.cpp
${USER-OMP_SOURCES_DIR}/thr_omp.cpp
${USER-OMP_SOURCES_DIR}/fix_omp.cpp
${USER-OMP_SOURCES_DIR}/fix_nh_omp.cpp
${USER-OMP_SOURCES_DIR}/fix_nh_sphere_omp.cpp
${USER-OMP_SOURCES_DIR}/domain_omp.cpp)
add_definitions(-DLMP_USER_OMP)
set_property(GLOBAL PROPERTY "OMP_SOURCES" "${USER-OMP_SOURCES}")
# detects styles which have USER-OMP version
RegisterStylesExt(${USER-OMP_SOURCES_DIR} omp OMP_SOURCES)
RegisterFixStyle(${USER-OMP_SOURCES_DIR}/fix_omp.h)
get_property(USER-OMP_SOURCES GLOBAL PROPERTY OMP_SOURCES)
# manually add package dependent source files from USER-OMP that do not provide styles
if(PKG_ASPHERE)
list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/fix_nh_asphere_omp.cpp)
endif()
if(PKG_RIGID)
list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/fix_rigid_nh_omp.cpp)
endif()
if(PKG_USER-REAXC)
list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/reaxc_bond_orders_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_hydrogen_bonds_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_nonbonded_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_bonds_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_init_md_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_torsion_angles_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_forces_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_multi_body_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_valence_angles_omp.cpp)
endif()
list(APPEND LIB_SOURCES ${USER-OMP_SOURCES})
include_directories(${USER-OMP_SOURCES_DIR})
endif()

View File

@ -0,0 +1,91 @@
if(PKG_USER-PLUMED)
set(PLUMED_MODE "static" CACHE STRING "Linkage mode for Plumed2 library")
set(PLUMED_MODE_VALUES static shared runtime)
set_property(CACHE PLUMED_MODE PROPERTY STRINGS ${PLUMED_MODE_VALUES})
validate_option(PLUMED_MODE PLUMED_MODE_VALUES)
string(TOUPPER ${PLUMED_MODE} PLUMED_MODE)
set(PLUMED_LINK_LIBS "")
if(PLUMED_MODE STREQUAL "STATIC")
find_package(LAPACK REQUIRED)
find_package(BLAS REQUIRED)
find_package(GSL REQUIRED)
list(APPEND LAPACK_LIBRARIES ${BLAS_LIBRARIES})
list(APPEND PLUMED_LINK_LIBS ${LAPACK_LIBRARIES} ${GSL_LIBRARIES})
find_package(ZLIB QUIET)
if(ZLIB_FOUND)
list(APPEND PLUMED_LINK_LIBS ${ZLIB_LIBRARIES})
endif()
endif()
find_package(PkgConfig QUIET)
set(DOWNLOAD_PLUMED_DEFAULT ON)
if(PKG_CONFIG_FOUND)
pkg_check_modules(PLUMED QUIET plumed)
if(PLUMED_FOUND)
set(DOWNLOAD_PLUMED_DEFAULT OFF)
endif()
endif()
option(DOWNLOAD_PLUMED "Download Plumed package instead of using an already installed one" ${DOWNLOAD_PLUMED_DEFAULT})
if(DOWNLOAD_PLUMED)
if(CMAKE_GENERATOR STREQUAL "Ninja")
message(FATAL_ERROR "Cannot build downloaded Plumed library with Ninja build tool")
endif()
if(BUILD_MPI)
set(PLUMED_CONFIG_MPI "--enable-mpi")
set(PLUMED_CONFIG_CC ${CMAKE_MPI_C_COMPILER})
set(PLUMED_CONFIG_CXX ${CMAKE_MPI_CXX_COMPILER})
else()
set(PLUMED_CONFIG_MPI "--disable-mpi")
set(PLUMED_CONFIG_CC ${CMAKE_C_COMPILER})
set(PLUMED_CONFIG_CXX ${CMAKE_CXX_COMPILER})
endif()
if(BUILD_OMP)
set(PLUMED_CONFIG_OMP "--enable-openmp")
else()
set(PLUMED_CONFIG_OMP "--disable-openmp")
endif()
message(STATUS "PLUMED download requested - we will build our own")
include(ExternalProject)
ExternalProject_Add(plumed_build
URL https://github.com/plumed/plumed2/releases/download/v2.5.2/plumed-src-2.5.2.tgz
URL_MD5 bd2f18346c788eb54e1e52f4f6acf41a
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR>
${CONFIGURE_REQUEST_PIC}
--enable-modules=all
${PLUMED_CONFIG_MPI}
${PLUMED_CONFIG_OMP}
CXX=${PLUMED_CONFIG_CXX}
CC=${PLUMED_CONFIG_CC}
)
ExternalProject_get_property(plumed_build INSTALL_DIR)
set(PLUMED_INSTALL_DIR ${INSTALL_DIR})
list(APPEND LAMMPS_DEPS plumed_build)
if(PLUMED_MODE STREQUAL "STATIC")
add_definitions(-D__PLUMED_WRAPPER_CXX=1)
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumed.a ${PLUMED_LINK_LIBS} ${CMAKE_DL_LIBS})
elseif(PLUMED_MODE STREQUAL "SHARED")
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumed${CMAKE_SHARED_LIBRARY_SUFFIX} ${PLUMED_INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_DL_LIBS})
elseif(PLUMED_MODE STREQUAL "RUNTIME")
add_definitions(-D__PLUMED_HAS_DLOPEN=1 -D__PLUMED_DEFAULT_KERNEL=${PLUMED_INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX})
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumedWrapper.a -rdynamic ${CMAKE_DL_LIBS})
endif()
set(PLUMED_INCLUDE_DIRS "${PLUMED_INSTALL_DIR}/include")
else()
find_package(PkgConfig REQUIRED)
pkg_check_modules(PLUMED REQUIRED plumed)
if(PLUMED_MODE STREQUAL "STATIC")
add_definitions(-D__PLUMED_WRAPPER_CXX=1)
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.static)
elseif(PLUMED_MODE STREQUAL "SHARED")
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.shared)
elseif(PLUMED_MODE STREQUAL "RUNTIME")
add_definitions(-D__PLUMED_HAS_DLOPEN=1 -D__PLUMED_DEFAULT_KERNEL=${PLUMED_LIBDIR}/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX})
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.runtime)
endif()
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_LOAD})
endif()
include_directories(${PLUMED_INCLUDE_DIRS})
endif()

View File

@ -0,0 +1,9 @@
if(PKG_USER-QMMM)
enable_language(Fortran)
enable_language(C)
message(WARNING "Building QMMM with CMake is still experimental")
find_package(QE REQUIRED)
include_directories(${QE_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${QE_LIBRARIES})
endif()

View File

@ -0,0 +1,5 @@
if(PKG_USER-QUIP)
enable_language(Fortran)
find_package(QUIP REQUIRED)
list(APPEND LAMMPS_LINK_LIBS ${QUIP_LIBRARIES} ${LAPACK_LIBRARIES})
endif()

View File

@ -0,0 +1,62 @@
if(PKG_USER-SCAFACOS)
enable_language(Fortran)
enable_language(C)
find_package(GSL REQUIRED)
find_package(PkgConfig QUIET)
set(DOWNLOAD_SCAFACOS_DEFAULT ON)
if(PKG_CONFIG_FOUND)
pkg_check_modules(SCAFACOS QUIET scafacos)
if(SCAFACOS_FOUND)
set(DOWNLOAD_SCAFACOS_DEFAULT OFF)
endif()
endif()
option(DOWNLOAD_SCAFACOS "Download ScaFaCoS library instead of using an already installed one" ${DOWNLOAD_SCAFACOS_DEFAULT})
if(DOWNLOAD_SCAFACOS)
if(CMAKE_GENERATOR STREQUAL "Ninja")
message(FATAL_ERROR "Cannot build downloaded ScaFaCoS library with Ninja build tool")
endif()
message(STATUS "ScaFaCoS download requested - we will build our own")
include(ExternalProject)
ExternalProject_Add(scafacos_build
URL https://github.com/scafacos/scafacos/releases/download/v1.0.1/scafacos-1.0.1.tar.gz
URL_MD5 bd46d74e3296bd8a444d731bb10c1738
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR> --disable-doc
--enable-fcs-solvers=fmm,p2nfft,direct,ewald,p3m
--with-internal-fftw --with-internal-pfft
--with-internal-pnfft ${CONFIGURE_REQUEST_PIC}
FC=${CMAKE_MPI_Fortran_COMPILER}
CXX=${CMAKE_MPI_CXX_COMPILER}
CC=${CMAKE_MPI_C_COMPILER}
F77=
)
ExternalProject_get_property(scafacos_build INSTALL_DIR)
set(SCAFACOS_BUILD_DIR ${INSTALL_DIR})
set(SCAFACOS_INCLUDE_DIRS ${SCAFACOS_BUILD_DIR}/include)
list(APPEND LAMMPS_DEPS scafacos_build)
# list and order from pkg_config file of ScaFaCoS build
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_direct.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_ewald.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_fmm.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_p2nfft.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_p3m.a)
list(APPEND LAMMPS_LINK_LIBS ${GSL_LIBRARIES})
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_near.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_gridsort.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_resort.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_redist.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_common.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_pnfft.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_pfft.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_fftw3_mpi.a)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_fftw3.a)
list(APPEND LAMMPS_LINK_LIBS ${MPI_Fortran_LIBRARIES})
list(APPEND LAMMPS_LINK_LIBS ${MPI_C_LIBRARIES})
else()
find_package(PkgConfig REQUIRED)
pkg_check_modules(SCAFACOS REQUIRED scafacos)
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_LDFLAGS})
endif()
include_directories(${SCAFACOS_INCLUDE_DIRS})
endif()

View File

@ -0,0 +1,13 @@
# Fix rigid/meso requires RIGID to be installed
if(PKG_USER-SDPD)
set(USER-SDPD_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-SDPD)
get_property(hlist GLOBAL PROPERTY FIX)
if(NOT PKG_RIGID)
list(REMOVE_ITEM hlist ${USER-SDPD_SOURCES_DIR}/fix_rigid_meso.h)
list(REMOVE_ITEM LIB_SOURCES ${USER-SDPD_SOURCES_DIR}/fix_rigid_meso.cpp)
endif()
set_property(GLOBAL PROPERTY FIX "${hlist}")
include_directories(${USER-SDPD_SOURCES_DIR})
endif()

View File

@ -0,0 +1,28 @@
if(PKG_USER-SMD)
find_package(Eigen3 NO_MODULE)
if(EIGEN3_FOUND)
set(DOWNLOAD_EIGEN3_DEFAULT OFF)
else()
set(DOWNLOAD_EIGEN3_DEFAULT ON)
endif()
option(DOWNLOAD_EIGEN3 "Download Eigen3 instead of using an already installed one)" ${DOWNLOAD_EIGEN3_DEFAULT})
if(DOWNLOAD_EIGEN3)
message(STATUS "Eigen3 download requested - we will build our own")
include(ExternalProject)
ExternalProject_Add(Eigen3_build
URL http://bitbucket.org/eigen/eigen/get/3.3.7.tar.gz
URL_MD5 f2a417d083fe8ca4b8ed2bc613d20f07
CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ""
)
ExternalProject_get_property(Eigen3_build SOURCE_DIR)
set(EIGEN3_INCLUDE_DIR ${SOURCE_DIR})
list(APPEND LAMMPS_DEPS Eigen3_build)
else()
find_package(Eigen3 NO_MODULE)
mark_as_advanced(Eigen3_DIR)
if(NOT EIGEN3_FOUND)
message(FATAL_ERROR "Eigen3 not found, help CMake to find it by setting EIGEN3_INCLUDE_DIR, or set DOWNLOAD_EIGEN3=ON to download it")
endif()
endif()
include_directories(${EIGEN3_INCLUDE_DIR})
endif()

View File

@ -0,0 +1,6 @@
if(PKG_USER-VTK)
find_package(VTK REQUIRED NO_MODULE)
include(${VTK_USE_FILE})
add_definitions(-DLAMMPS_VTK)
list(APPEND LAMMPS_LINK_LIBS ${VTK_LIBRARIES})
endif()

View File

@ -0,0 +1,45 @@
if(PKG_VORONOI)
find_package(VORO)
if(VORO_FOUND)
set(DOWNLOAD_VORO_DEFAULT OFF)
else()
set(DOWNLOAD_VORO_DEFAULT ON)
endif()
option(DOWNLOAD_VORO "Download and compile the Voro++ library instead of using an already installed one" ${DOWNLOAD_VORO_DEFAULT})
if(DOWNLOAD_VORO)
if(CMAKE_GENERATOR STREQUAL "Ninja")
message(FATAL_ERROR "Cannot build downloaded Voro++ library with Ninja build tool")
endif()
message(STATUS "Voro++ download requested - we will build our own")
include(ExternalProject)
if(BUILD_SHARED_LIBS)
set(VORO_BUILD_CFLAGS "${CMAKE_SHARED_LIBRARY_CXX_FLAGS} ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${BTYPE}}")
else()
set(VORO_BUILD_CFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${BTYPE}}")
endif()
if(APPLE)
get_filename_component(VORO_CXX ${CMAKE_CXX_COMPILER} NAME_WE)
set(VORO_BUILD_OPTIONS CXX=${VORO_CXX} CFLAGS=${VORO_BUILD_CFLAGS})
else()
set(VORO_BUILD_OPTIONS CXX=${CMAKE_CXX_COMPILER} CFLAGS=${VORO_BUILD_CFLAGS})
endif()
ExternalProject_Add(voro_build
URL https://download.lammps.org/thirdparty/voro++-0.4.6.tar.gz
URL_MD5 2338b824c3b7b25590e18e8df5d68af9
CONFIGURE_COMMAND "" BUILD_COMMAND make ${VORO_BUILD_OPTIONS} BUILD_IN_SOURCE 1 INSTALL_COMMAND ""
)
ExternalProject_get_property(voro_build SOURCE_DIR)
set(VORO_LIBRARIES ${SOURCE_DIR}/src/libvoro++.a)
set(VORO_INCLUDE_DIRS ${SOURCE_DIR}/src)
list(APPEND LAMMPS_DEPS voro_build)
else()
find_package(VORO)
if(NOT VORO_FOUND)
message(FATAL_ERROR "Voro++ library not found. Help CMake to find it by setting VORO_LIBRARY and VORO_INCLUDE_DIR, or set DOWNLOAD_VORO=ON to download it")
endif()
endif()
include_directories(${VORO_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${VORO_LIBRARIES})
endif()

View File

@ -181,3 +181,88 @@ function(DetectBuildSystemConflict lammps_src_dir)
endforeach()
endif()
endfunction(DetectBuildSystemConflict)
function(FindPackagesHeaders path style_class file_pattern headers)
file(GLOB files "${path}/${file_pattern}*.h")
get_property(plist GLOBAL PROPERTY ${headers})
foreach(file_name ${files})
file(STRINGS ${file_name} is_style LIMIT_COUNT 1 REGEX ${style_class})
if(is_style)
list(APPEND plist ${file_name})
endif()
endforeach()
set_property(GLOBAL PROPERTY ${headers} "${plist}")
endfunction(FindPackagesHeaders)
function(RegisterPackages search_path)
FindPackagesHeaders(${search_path} ANGLE_CLASS angle_ PKGANGLE ) # angle ) # force
FindPackagesHeaders(${search_path} ATOM_CLASS atom_vec_ PKGATOM_VEC ) # atom ) # atom atom_vec_hybrid
FindPackagesHeaders(${search_path} BODY_CLASS body_ PKGBODY ) # body ) # atom_vec_body
FindPackagesHeaders(${search_path} BOND_CLASS bond_ PKGBOND ) # bond ) # force
FindPackagesHeaders(${search_path} COMMAND_CLASS "[^.]" PKGCOMMAND ) # command ) # input
FindPackagesHeaders(${search_path} COMPUTE_CLASS compute_ PKGCOMPUTE ) # compute ) # modify
FindPackagesHeaders(${search_path} DIHEDRAL_CLASS dihedral_ PKGDIHEDRAL ) # dihedral ) # force
FindPackagesHeaders(${search_path} DUMP_CLASS dump_ PKGDUMP ) # dump ) # output write_dump
FindPackagesHeaders(${search_path} FIX_CLASS fix_ PKGFIX ) # fix ) # modify
FindPackagesHeaders(${search_path} IMPROPER_CLASS improper_ PKGIMPROPER ) # improper ) # force
FindPackagesHeaders(${search_path} INTEGRATE_CLASS "[^.]" PKGINTEGRATE ) # integrate ) # update
FindPackagesHeaders(${search_path} KSPACE_CLASS "[^.]" PKGKSPACE ) # kspace ) # force
FindPackagesHeaders(${search_path} MINIMIZE_CLASS min_ PKGMINIMIZE ) # minimize ) # update
FindPackagesHeaders(${search_path} NBIN_CLASS nbin_ PKGNBIN ) # nbin ) # neighbor
FindPackagesHeaders(${search_path} NPAIR_CLASS npair_ PKGNPAIR ) # npair ) # neighbor
FindPackagesHeaders(${search_path} NSTENCIL_CLASS nstencil_ PKGNSTENCIL ) # nstencil ) # neighbor
FindPackagesHeaders(${search_path} NTOPO_CLASS ntopo_ PKGNTOPO ) # ntopo ) # neighbor
FindPackagesHeaders(${search_path} PAIR_CLASS pair_ PKGPAIR ) # pair ) # force
FindPackagesHeaders(${search_path} READER_CLASS reader_ PKGREADER ) # reader ) # read_dump
FindPackagesHeaders(${search_path} REGION_CLASS region_ PKGREGION ) # region ) # domain
endfunction(RegisterPackages)
function(CreatePackagesHeader path filename)
set(temp "")
if(ARGC GREATER 2)
list(REMOVE_AT ARGV 0 1)
foreach(FNAME ${ARGV})
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${FNAME}")
get_filename_component(DNAME ${FNAME} DIRECTORY)
get_filename_component(DNAME ${DNAME} NAME)
get_filename_component(FNAME ${FNAME} NAME)
set(temp "${temp}#undef PACKAGE\n#define PACKAGE \"${DNAME}\"\n")
set(temp "${temp}#include \"${DNAME}/${FNAME}\"\n")
endforeach()
endif()
message(STATUS "Generating ${filename}...")
file(WRITE "${path}/${filename}.tmp" "${temp}" )
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${path}/${filename}.tmp" "${path}/${filename}")
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${path}/${filename}")
endfunction(CreatePackagesHeader)
function(GeneratePackagesHeader path property style)
get_property(files GLOBAL PROPERTY ${property})
CreatePackagesHeader("${path}" "packages_${style}.h" ${files})
endfunction(GeneratePackagesHeader)
function(GeneratePackagesHeaders output_path)
GeneratePackagesHeader(${output_path} PKGANGLE angle ) # force
GeneratePackagesHeader(${output_path} PKGATOM_VEC atom ) # atom atom_vec_hybrid
GeneratePackagesHeader(${output_path} PKGBODY body ) # atom_vec_body
GeneratePackagesHeader(${output_path} PKGBOND bond ) # force
GeneratePackagesHeader(${output_path} PKGCOMMAND command ) # input
GeneratePackagesHeader(${output_path} PKGCOMPUTE compute ) # modify
GeneratePackagesHeader(${output_path} PKGDIHEDRAL dihedral ) # force
GeneratePackagesHeader(${output_path} PKGDUMP dump ) # output write_dump
GeneratePackagesHeader(${output_path} PKGFIX fix ) # modify
GeneratePackagesHeader(${output_path} PKGIMPROPER improper ) # force
GeneratePackagesHeader(${output_path} PKGINTEGRATE integrate ) # update
GeneratePackagesHeader(${output_path} PKGKSPACE kspace ) # force
GeneratePackagesHeader(${output_path} PKGMINIMIZE minimize ) # update
GeneratePackagesHeader(${output_path} PKGNBIN nbin ) # neighbor
GeneratePackagesHeader(${output_path} PKGNPAIR npair ) # neighbor
GeneratePackagesHeader(${output_path} PKGNSTENCIL nstencil ) # neighbor
GeneratePackagesHeader(${output_path} PKGNTOPO ntopo ) # neighbor
GeneratePackagesHeader(${output_path} PKGPAIR pair ) # force
GeneratePackagesHeader(${output_path} PKGREADER reader ) # read_dump
GeneratePackagesHeader(${output_path} PKGREGION region ) # domain
endfunction(GeneratePackagesHeaders)

View File

@ -0,0 +1,52 @@
###############################################################################
# Testing
###############################################################################
option(ENABLE_TESTING "Enable testing" OFF)
if(ENABLE_TESTING AND BUILD_EXE)
enable_testing()
option(LAMMPS_TESTING_SOURCE_DIR "Location of lammps-testing source directory" "")
option(LAMMPS_TESTING_GIT_TAG "Git tag of lammps-testing" "master")
mark_as_advanced(LAMMPS_TESTING_SOURCE_DIR LAMMPS_TESTING_GIT_TAG)
if (CMAKE_VERSION VERSION_GREATER "3.10.3" AND NOT LAMMPS_TESTING_SOURCE_DIR)
include(FetchContent)
FetchContent_Declare(lammps-testing
GIT_REPOSITORY https://github.com/lammps/lammps-testing.git
GIT_TAG ${LAMMPS_TESTING_GIT_TAG}
)
FetchContent_GetProperties(lammps-testing)
if(NOT lammps-testing_POPULATED)
message(STATUS "Downloading tests...")
FetchContent_Populate(lammps-testing)
endif()
set(LAMMPS_TESTING_SOURCE_DIR ${lammps-testing_SOURCE_DIR})
elseif(NOT LAMMPS_TESTING_SOURCE_DIR)
message(WARNING "Full test-suite requires CMake >= 3.11 or copy of\n"
"https://github.com/lammps/lammps-testing in LAMMPS_TESTING_SOURCE_DIR")
endif()
add_test(ShowHelp ${CMAKE_BINARY_DIR}/${LAMMPS_BINARY} -help)
if(EXISTS ${LAMMPS_TESTING_SOURCE_DIR})
message(STATUS "Running test discovery...")
file(GLOB_RECURSE TEST_SCRIPTS ${LAMMPS_TESTING_SOURCE_DIR}/tests/core/*/in.*)
foreach(script_path ${TEST_SCRIPTS})
get_filename_component(TEST_NAME ${script_path} EXT)
get_filename_component(SCRIPT_NAME ${script_path} NAME)
get_filename_component(PARENT_DIR ${script_path} DIRECTORY)
string(SUBSTRING ${TEST_NAME} 1 -1 TEST_NAME)
string(REPLACE "-" "_" TEST_NAME ${TEST_NAME})
string(REPLACE "+" "_" TEST_NAME ${TEST_NAME})
set(TEST_NAME "test_core_${TEST_NAME}_serial")
add_test(${TEST_NAME} ${CMAKE_BINARY_DIR}/${LAMMPS_BINARY} -in ${SCRIPT_NAME})
set_tests_properties(${TEST_NAME} PROPERTIES WORKING_DIRECTORY ${PARENT_DIR})
endforeach()
list(LENGTH TEST_SCRIPTS NUM_TESTS)
message(STATUS "Found ${NUM_TESTS} tests.")
endif()
endif()

View File

@ -33,12 +33,17 @@ tasks, act as a reference and provide examples of typical use cases.
* [Package-Specific Configuration Options](#package-specific-configuration-options)
* [KSPACE Package](#kspace-package)
* [MKL](#mkl)
* [FFTW2](#fftw2)
* [FFTW3](#fftw3)
* [BLAS](#blas)
* [LAPACK](#lapack)
* [PYTHON Package](#python-package)
* [GPU Package](#gpu-package)
* [MESSAGE Package](#message-package)
* [MSCG Package](#mscg-package)
* [VORONOI Package](#voronoi-package)
* [USER-LATTE Package](#user-latte-package)
* [USER-PLUMED Package](#user-plumed-package)
* [USER-SCAFACOS Package](#user-scafacos-package)
* [USER-SMD Package](#user-smd-package)
* [Optional Features](#optional-features)
* [zlib support](#zlib-support)
@ -50,8 +55,6 @@ tasks, act as a reference and provide examples of typical use cases.
* [Building with GNU Compilers](#building-with-gnu-compilers)
* [Building with Intel Compilers](#building-with-intel-compilers)
* [Building with LLVM/Clang Compilers](#building-with-llvmclang-compilers)
* [Examples](#examples)
## Quick Start for the Impatient
If you want to skip ahead and just run the compilation using `cmake`, please
@ -205,8 +208,10 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
<td>Controls if debugging symbols are added to the generated binaries</td>
<td>
<dl>
<dt><code>Release</code> (default)</dt>
<dt><code>RelWithDebInfo (default)</code></dt>
<dt><code>Release</code></dt>
<dt><code>Debug</code></dt>
<dt><code>MinSizeRel</code></dt>
</dl>
</td>
</tr>
@ -249,6 +254,16 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
</dl>
</td>
</tr>
<tr>
<td><code>LAMMPS_LONGLONG_TO_LONG</code></td>
<td>Workaround if your system or MPI version does not recognize <code>long long</code> data types</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>LAMMPS_MEMALIGN</code></td>
<td>controls the alignment of blocks of memory allocated by LAMMPS</td>
@ -271,7 +286,16 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
</tr>
<tr>
<td><code>LAMMPS_MACHINE</code></td>
<td>allows appending a machine suffix to the generate LAMMPS binary</td>
<td>allows appending a machine suffix to the generated LAMMPS binary</td>
<td>
<dl>
<dt>*none* (default)</dt>
</dl>
</td>
</tr>
<tr>
<td><code>LAMMPS_LIB_SUFFIX</code></td>
<td>allows appending a suffix to the generated LAMMPS library</td>
<td>
<dl>
<dt>*none* (default)</dt>
@ -319,8 +343,8 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
</td>
</tr>
<tr>
<td><code>LAMMPS_LONGLONG_TO_LONG</code></td>
<td>Workaround if your system or MPI version does not recognize <code>long long</code> data types</td>
<td><code>BUILD_TOOLS</code></td>
<td>control whether to build LAMMPS tools</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
@ -561,23 +585,6 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
</dl>
</td>
</tr>
<tr>
<td><code>PKG_MEAM</code></td>
<td>
<p>A pair style for the modified embedded atom (MEAM) potential.</p>
<p><strong>Please note that the MEAM package has been superseded by the USER-MEAMC package,
which is a direct translation of the MEAM package to C++. USER-MEAMC contains
additional optimizations making it run faster than MEAM on most machines, while
providing the identical features and USER interface.</strong></p>
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_MISC</code></td>
<td>
@ -634,21 +641,6 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_REAX</code></td>
<td>
A pair style which wraps a Fortran library which implements the ReaxFF
potential, which is a universal reactive force field. See the USER-REAXC
package for an alternate implementation in C/C++. Also a fix reax/bonds
command for monitoring molecules as bonds are created and destroyed.
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_REPLICA</code></td>
<td>
@ -695,6 +687,16 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_SPIN</code></td>
<td>Model atomic magnetic spins classically, coupled to atoms moving in the usual manner via MD. Various pair, fix, and compute styles.</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_SNAP</code></td>
<td>
@ -757,6 +759,16 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_MESSAGE</code></td>
<td>Commands to use LAMMPS as either a client or server and couple it to another application.</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_MSCG</code></td>
<td>
@ -811,6 +823,18 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_VORONOI</code></td>
<td>
A compute command which calculates the Voronoi tesselation of a collection of atoms by wrapping the Voro++ library. This can be used to calculate the local volume or each atoms or its near neighbors.
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
</tbody>
</table>
@ -825,6 +849,16 @@ providing the identical features and USER interface.</strong></p>
</tr>
</thead>
<tbody>
<tr>
<td><code>PKG_USER-ADIOS</code></td>
<td>ADIOS is a high-performance I/O library. This package implements the dump “atom/adios” and dump “custom/adios” commands to write data using the ADIOS library.</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-ATC</code></td>
<td>
@ -853,6 +887,18 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-BOCS</code></td>
<td>
This package provides fix bocs, a modified version of fix npt which includes the pressure correction to the barostat as outlined in: N. J. H. Dunn and W. G. Noid, “Bottom-up coarse-grained models that accurately describe the structure, pressure, and compressibility of molecular liquids,” J. Chem. Phys. 143, 243148 (2015).
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-CGDNA</code></td>
<td>
@ -1142,6 +1188,30 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-PLUMED</code></td>
<td>
The fix plumed command allows you to use the PLUMED free energy plugin for molecular dynamics to analyze and bias your LAMMPS trajectory on the fly. The PLUMED library is called from within the LAMMPS input script by using the <code>fix plumed</code> command.
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-PTM</code></td>
<td>
A <code>compute ptm/atom</code> command that calculates local structure characterization using the Polyhedral Template Matching methodology.
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-QTB</code></td>
<td>
@ -1197,6 +1267,33 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-SCAFACOS</code></td>
<td>
A KSpace style which wraps the ScaFaCoS Coulomb solver library to compute long-range Coulombic interactions.
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-SDPD</code></td>
<td>
A pair style for smoothed dissipative particle dynamics (SDPD), which is an
extension of smoothed particle hydrodynamics (SPH) to mesoscale where thermal
fluctuations are important (see the USER-SPH package). Also two fixes for
moving and rigid body integration of SPH/SDPD particles (particles of
<code>atom_style meso</code>).</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-SMD</code></td>
<td>
@ -1280,6 +1377,23 @@ providing the identical features and USER interface.</strong></p>
</dl>
</td>
</tr>
<tr>
<td><code>PKG_USER-YAFF</code></td>
<td>
Some potentials that are also implemented in the Yet Another Force Field (YAFF) code.
The expressions and their use are discussed in the following papers:
<ul>
<li><a href="http://dx.doi.org/10.1002/jcc.23877" target="_blank">Vanduyfhuys et al., J. Comput. Chem., 36 (13), 1015-1027 (2015)</a></li>
<li><a href="http://dx.doi.org/10.1002/jcc.25173" target="_blank">Vanduyfhuys et al., J. Comput. Chem., 39 (16), 999-1011 (2018)</a></li>
</ul>
</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
</tbody>
</table>
@ -1300,14 +1414,27 @@ providing the identical features and USER interface.</strong></p>
<td><code>FFT</code></td>
<td>
<p>FFT library for KSPACE package</p>
<p>If either MKL or FFTW is selected <code>cmake</code> will try to locate these libraries automatically. To control which one should be used please see the options below for each FFT library.</p>
<p>If either MKL or FFTW is selected <code>cmake</code> will try to locate
these libraries automatically. To control which one should be used please see
the options below for each FFT library. Otherwise it will default to KISS
FFT.</p>
</td>
<td>
<dl>
<dt><code>KISS</code></dt>
<dt><code>FFTW3</code></dt>
<dt><code>FFTW2</code></dt>
<dt><code>MKL</code></dt>
<dt><code>KISS</code> (default)</dt>
</dl>
</td>
</tr>
<tr>
<td><code>FFT_SINGLE</code></td>
<td>Use single-precision floating-point in FFT</td>
<td>
<dl>
<dt><code>off</code> (default = double precision)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
@ -1325,60 +1452,6 @@ providing the identical features and USER interface.</strong></p>
</tbody>
</table>
### MKL
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>MKL_INCLUDE_DIRS</code></td>
<td></td>
<td>
</td>
</tr>
<tr>
<td><code>MKL_LIBRARIES</code></td>
<td></td>
<td>
</td>
</tr>
</tbody>
</table>
TODO static vs dynamic linking
### FFTW2
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>FFTW2_INCLUDE_DIRS</code></td>
<td></td>
<td>
</td>
</tr>
<tr>
<td><code>FFTW2_LIBRARIES</code></td>
<td></td>
<td>
</td>
</tr>
</tbody>
</table>
### FFTW3
<table>
@ -1392,24 +1465,57 @@ TODO static vs dynamic linking
<tbody>
<tr>
<td><code>FFTW3_INCLUDE_DIRS</code></td>
<td></td>
<td>path to FFTW3 include files</td>
<td>
</td>
</tr>
<tr>
<td><code>FFTW3_LIBRARIES</code></td>
<td></td>
<td>list of paths to FFTW3 libraries</td>
<td>
</td>
</tr>
</tbody>
</table>
### MKL
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>MKL_INCLUDE_DIRS</code></td>
<td>path to MKL include files</td>
<td>
</td>
</tr>
<tr>
<td><code>MKL_LIBRARIES</code></td>
<td>list of paths to MKL libraries</td>
<td>
</td>
</tr>
</tbody>
</table>
### BLAS
See [FindBLAS documentation](https://cmake.org/cmake/help/latest/module/FindBLAS.html)
### LAPACK
TODO
See [FindLAPACK documentation](https://cmake.org/cmake/help/latest/module/FindLAPACK.html)
### PYTHON Package
See [FindPYTHON documentation](https://cmake.org/cmake/help/latest/module/FindPython.html)
### USER-INTEL Package
<table>
@ -1499,10 +1605,11 @@ target API.
<td>
<dl>
<dt><code>sm_20</code> (Fermi)</dt>
<dt><code>sm_30</code> (Kepler)</dt>
<dt><code>sm_30</code> (Kepler) (default)</dt>
<dt><code>sm_50</code> (Maxwell)</dt>
<dt><code>sm_60</code> (Pascal)</dt>
<dt><code>sm_70</code> (Volta)</dt>
<dt><code>sm_75</code> (Turing)</dt>
</dl>
</td>
</tr>
@ -1534,13 +1641,14 @@ target API.
</tbody>
</table>
### VORONOI Package
### KIM Package
TODO
Requires installation of the KIM library with API v2
### USER-SMD Package
Requires a Eigen3 installation
If `DOWNLOAD_KIM` is set, the KIM library will be downloaded and built inside
the CMake build directory. If the KIM library is already on your system (in a
location CMake cannot find it), set the `PKG_CONFIG_PATH` environment variable
so that `libkim-api` can be found.
<table>
<thead>
@ -1551,9 +1659,323 @@ Requires a Eigen3 installation
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_KIM</code></td>
<td>Download KIM API v2 and compile it as part of the build.</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
</tbody>
</table>
### MESSAGE Package
This package can optionally include support for messaging via sockets, using the open-source [ZeroMQ library](http://zeromq.org/), which must be installed on your system.
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>MESSAGE_ZMQ</code></td>
<td>Build with ZeroMQ support</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>ZMQ_LIBRARY</code></td>
<td>
ZMQ library file (only needed if at custom location)
</td>
<td>
</td>
</tr>
<tr>
<td><code>ZMG_INCLUDE_DIR</code></td>
<td>
Provide include directory of existing ZMQ installation (only needed if at custom location)
</td>
<td>
</td>
</tr>
</tbody>
</table>
### MSCG Package
Requires installation of the MSCG library
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_MSCG</code></td>
<td>Download MSCG and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>MSCG_LIBRARY</code></td>
<td>
MSCG library file (only needed if at custom location)
</td>
<td>
</td>
</tr>
<tr>
<td><code>MSCG_INCLUDE_DIR</code></td>
<td>
Provide include directory of existing MSCG installation (only needed if at custom location)
</td>
<td>
</td>
</tr>
</tbody>
</table>
### VORONOI Package
Requires installation of the Voro++ library
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_VORO</code></td>
<td>Download Voro++ and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>VORO_LIBRARY</code></td>
<td>
Voro++ library file (only needed if at custom location)
</td>
<td>
</td>
</tr>
<tr>
<td><code>VORO_INCLUDE_DIR</code></td>
<td>
Provide include directory of existing Voro++ installation (only needed if at custom location)
</td>
<td>
</td>
</tr>
</tbody>
</table>
### USER-LATTE Package
Requires installation of the LATTE library
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_LATTE</code></td>
<td>Download LATTE and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>LATTE_LIBRARY</code></td>
<td>
LATTE library file (only needed if at custom location)
</td>
<td>
</td>
</tr>
</tbody>
</table>
### USER-PLUMED Package
Requires installation of the PLUMED library
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_PLUMED</code></td>
<td>Download PLUMED and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>PLUMED_MODE</code></td>
<td>
Determines the linkage mode for the PLUMED library.
</td>
<td>
<dl>
<dt><code>static</code> (default)</dt>
<dt><code>shared</code></dt>
<dt><code>runtime</code></dt>
</dl>
</td>
</tr>
</tbody>
</table>
### USER-LATTE Package
Requires installation of the LATTE library
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_LATTE</code></td>
<td>Download LATTE and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>LATTE_LIBRARY</code></td>
<td>
LATTE library file (only needed if at custom location)
</td>
<td>
</td>
</tr>
</tbody>
</table>
### USER-SMD Package
Requires installation of the Eigen3 library
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_EIGEN3</code></td>
<td>Download Eigen3 and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>EIGEN3_INCLUDE_DIR</code></td>
<td></td>
<td>
Provide include directory of existing Eigen3 installation (only needed if at custom location)
</td>
<td>
</td>
</tr>
</tbody>
</table>
### USER-SCAFACOS Package
To build with this package, you must download and build the [ScaFaCoS Coulomb solver library](http://www.scafacos.de/)
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DOWNLOAD_SCAFACOS</code></td>
<td>Download SCAFACOS and compile it as part of the build</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>SCAFACOS_LIBRARY</code></td>
<td>
SCAFACOS library file (only needed if at custom location)
</td>
<td>
</td>
</tr>
<tr>
<td><code>SCAFACOS_INCLUDE_DIR</code></td>
<td>
SCAFACOS include directory (only needed if at custom location)
</td>
<td>
</td>
</tr>
@ -1791,5 +2213,82 @@ cmake -D CMAKE_C_COMPILER=icc -D CMAKE_CXX_COMPILER=icpc -D CMAKE_Fortran_COMPIL
cmake -D CMAKE_C_COMPILER=clang -D CMAKE_CXX_COMPILER=clang++ -D CMAKE_Fortran_COMPILER=flang ../cmake
```
## LAMMPS Developer Options
## Examples
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>ENABLE_TESTING</code></td>
<td>Control wheather to add tests via CTest</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>LAMMPS_TESTING_SOURCE_DIR</code></td>
<td>Custom location of lammps-testing repository (optional). If not specified it will download it via Git</td>
<td>
</td>
</tr>
<tr>
<td><code>LAMMPS_TESTING_GIT_TAG</code></td>
<td>If lammps-testing repository is cloned, this is the tag/commit that will be checked out</td>
<td>
<dl>
<dt><code>master</code> (default)</dt>
</dl>
</td>
</tr>
<tr>
<td><code>ENABLE_COVERAGE</code></td>
<td>Enables code coverage support via gcov and adds a gcovr build target to generate a coverage report.</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>ENABLE_SANITIZE_ADDRESS</code></td>
<td>Enables Address Sanitizer support when compiling using GCC or Clang for detecting memory leaks in binaries while running them. See https://clang.llvm.org/docs/AddressSanitizer.html</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>ENABLE_SANITIZE_UNDEFINED</code></td>
<td>Enables Undefined Behavior Sanitizer support when compiling using GCC or Clang for detecting code that is running into undefined behavior of the language. See https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
<tr>
<td><code>ENABLE_SANITIZE_THREAD</code></td>
<td>Enables Thread Sanitizer support when compiling using GCC or Clang for detecting data races in binaries while running them. See https://clang.llvm.org/docs/ThreadSanitizer.html</td>
<td>
<dl>
<dt><code>off</code> (default)</dt>
<dt><code>on</code></dt>
</dl>
</td>
</tr>
</tbody>
</table>

View File

@ -1,4 +1,4 @@
# set environment for LAMMPS and msi2lmp executables
# to find potential and force field files
if ( "$?LAMMPS_POTENTIALS" == 0 ) setenv LAMMPS_POTENTIALS @LAMMPS_POTENTIALS_DIR@
if ( "$?MSI2LMP_LIBRARY" == 0 ) setenv MSI2LMP_LIBRARY @LAMMPS_FRC_FILES_DIR@
if ( "$?LAMMPS_POTENTIALS" == 0 ) setenv LAMMPS_POTENTIALS @LAMMPS_INSTALL_DATADIR@/potentials
if ( "$?MSI2LMP_LIBRARY" == 0 ) setenv MSI2LMP_LIBRARY @LAMMPS_INSTALL_DATADIR@/frc_files

View File

@ -1,5 +1,5 @@
# set environment for LAMMPS and msi2lmp executables
# to find potential and force field files
LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS-@LAMMPS_POTENTIALS_DIR@}
MSI2LMP_LIBRARY=${MSI2LMP_LIBRARY-@LAMMPS_FRC_FILES_DIR@}
LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS-@LAMMPS_INSTALL_DATADIR@/potentials}
MSI2LMP_LIBRARY=${MSI2LMP_LIBRARY-@LAMMPS_INSTALL_DATADIR@/frc_files}
export LAMMPS_POTENTIALS MSI2LMP_LIBRARY

View File

@ -3,9 +3,9 @@ set(WIN_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
REPLICA RIGID SHOCK SNAP SPIN SRD VORONOI USER-ATC USER-AWPMD
USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS USER-DIFFRACTION
USER-DPD USER-DRUDE USER-EFF USER-FEP USER-INTEL USER-MANIFOLD
USER-MEAMC USER-MESO USER-MISC USER-MOFFF USER-MOLFILE USER-OMP
USER-PHONON USER-PTM USER-QTB USER-REAXC USER-SDPD USER-SMD
USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-YAFF)
USER-MEAMC USER-MESO USER-MISC USER-MGPT USER-MOFFF USER-MOLFILE
USER-OMP USER-PHONON USER-PTM USER-QTB USER-REAXC USER-SDPD
USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-YAFF)
foreach(PKG ${WIN_PACKAGES})
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
@ -14,4 +14,4 @@ endforeach()
set(DOWNLOAD_VORO ON CACHE BOOL "" FORCE)
set(DOWNLOAD_EIGEN3 ON CACHE BOOL "" FORCE)
set(LAMMPS_MEMALIGN "0" CACHE STRING "" FORCE)
set(INTEL_LRT_MODE "none" CACHE STRING "" FORCE)
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/lammps-installer")

View File

@ -211,7 +211,7 @@ $(VENV):
@( \
$(VIRTUALENV) -p $(PYTHON) $(VENV); \
. $(VENV)/bin/activate; \
pip install Sphinx==1.7.6; \
pip install Sphinx; \
deactivate;\
)

View File

@ -0,0 +1,133 @@
# Outline of include file conventions in LAMMPS
This purpose of this document is to provide a point of reference
for LAMMPS developers and contributors as to what include files
and definitions to put where into LAMMPS source.
Last change 2019-07-05
## Table of Contents
* [Motivation](#motivation)
* [Rules](#rules)
* [Tools](#tools)
* [Legacy Code](#legacy-code)
## Motivation
The conventions outlined in this document are supposed to help make
maintenance of the LAMMPS software easier. By trying to achieve
consistency across files contributed by different developers, it will
become easier for the code maintainers to modify and adjust files and,
overall, the chance for errors or portability issues will be reduced.
The rules employed are supposed to minimize naming conflicts and
simplify dependencies between files and thus speed up compilation. They
may, as well, make otherwise hidden dependencies visible.
## Rules
Below are the various rules that are applied. Not all are enforced
strictly and automatically. If there are no significant side effects,
exceptions may be possible for cases where a full compliance to the
rules may require a large effort compared to the benefit.
### Core Files Versus Package Files
All rules listed below are most strictly observed for core LAMMPS files,
which are the files that are not part of a package, and the files of the
packages MOLECULE, MANYBODY, KSPACE, and RIGID. On the other end of
the spectrum are USER packages and legacy packages that predate these
rules and thus may not be fully compliant. Also, new contributions
will be checked more closely, while existing code will be incrementally
adapted to the rules as time and required effort permits.
### System Versus Local Header Files
All system- or library-provided include files are included with angular
brackets (examples: `#include <cstring>` or `#include <mpi.h>`) while
include files provided with LAMMPS are included with double quotes
(examples: `#include "pointers.h"` or `#include "compute_temp.h"`).
For headers declaring functions of the C-library, the corresponding
C++ versions should be included (examples: `#include <cstdlib>` or
`#include <cctypes>`). However, these includes are limited to those defined
in the C++98 standard. Some files thus must use the older style until
the minimum C++ standard requirement of LAMMPS is lifted to C++11 or
even beyond (examples: `#include <stdint.h>` versus `#include <cstdint>`
or `#include <inttypes.h>` versus `#include <cinttypes>`).
### C++ Standard Compliance
LAMMPS core files currently correspond to the C++98 standard. Files
requiring C++11 or later are only permitted in (optional) packages
and particularly packages that are not part of the list of commonly
used packages such as MOLECULE, KSPACE, MANYBODY, or RIGID.
Also, LAMMPS uses the C-style stdio library for I/O instead of iostreams.
Since using both at the same time can cause problems, iostreams should
be avoided where possible.
### Lean Header Files
Header files will typically contain the definition of a (single) class.
These header files should have as few include statements as possible.
This is particularly important for classes that implement a "style" and
thus use a macro of the kind `SomeStyle(some/name,SomeName)`. These will
all be included in the auto-generated `"some_style.h"` files which
results in a high potential for direct or indirect symbol name clashes.
In the ideal case, the header would only include one file defining the
parent class. That would typically be either `#include "pointers.h"` for
the `Pointers` class, or a header of a class derived from it like
`#include "pair.h"` for the `Pair` class and so on. References to other
classes inside the class should be make through pointers, for which forward
declarations (inside the `LAMMPS_NS` or the new class' namespace) can
be employed. The full definition will then be included into the corresponding
implementation file. In the given example from above, the header file
would be called `some_name.h` and the implementation `some_name.cpp` (all
lower case with underscores, while the class itself would be in camel case
and no underscores `SomeName`, and the style name with lower case names separated by
a forward slash).
### Implementation Files
In the implementation files (typically, those would have the same base name
as the corresponding header with a .cpp extension instead of .h) include
statements should follow the "include what you use" principle.
### Order of Include Statements
Include files should be included in this order:
* the header matching the implementation (`some_class.h` for file `some_class.cpp`)
* mpi.h
* system and library headers (anything that is using angular brackets; C-library headers first, then C++)
* LAMMPS local headers (preferably in alphabetical order)
### Special Cases and Exceptions
#### pointers.h
The `pointer.h` header file also includes `cstdio` and `lmptype.h`
(and through it `stdint.h`, `intttypes.h`, cstdlib, and `climits`).
This means any header including `pointers.h` can assume that `FILE`,
`NULL`, `INT_MAX` are defined.
## Tools
The [Include What You Use tool](https://include-what-you-use.org/)
can be used to provide supporting information about compliance with
the rules listed here. There are some limitations and the IWYU tool
may give incorrect advice. The tools is activated by setting the
CMake variable `CMAKE_CXX_INCLUDE_WHAT_YOU_USE` variable to the
path of the `include-what-you-use` command. When activated, the
tool will be run after each compilation and provide suggestions for
which include files should be added or removed.
## Legacy Code
A lot of code predates the application of the rules in this document
and the rules themselves are a moving target. So there are going to be
significant chunks of code that do not fully comply. This applies
for example to the USER-REAXC, or the USER-ATC package. The LAMMPS
developers are dedicated to make an effort to improve the compliance
and welcome volunteers wanting to help with the process.

View File

@ -1,4 +1,4 @@
.TH LAMMPS "30 April 2019" "2019-04-30"
.TH LAMMPS "7 August 2019" "2019-08-07"
.SH NAME
.B LAMMPS
\- Molecular Dynamics Simulator.

View File

@ -29,6 +29,7 @@ as described on the "Install"_Install.html doc page.
Build_package
Build_extras
Build_windows
Build_development
END_RST -->
@ -41,7 +42,8 @@ END_RST -->
"Optional build settings"_Build_settings.html
"Include packages in build"_Build_package.html
"Packages with extra build options"_Build_extras.html
"Notes for building LAMMPS on Windows"_Build_windows.html :all(b)
"Notes for building LAMMPS on Windows"_Build_windows.html
"Development build options (CMake only)"_Build_development.html :all(b)
If you have problems building LAMMPS, it is often due to software
issues on your local machine. If you can, find a local expert to

View File

@ -235,12 +235,16 @@ running LAMMPS from Python via its library interface.
-D BUILD_EXE=value # yes (default) or no
-D BUILD_LIB=value # yes or no (default)
-D BUILD_SHARED_LIBS=value # yes or no (default) :pre
-D BUILD_SHARED_LIBS=value # yes or no (default)
-D LAMMPS_LIB_SUFFIX=name # name = mpi, serial, mybox, titan, laptop, etc
# no default value :pre
Setting BUILD_EXE=no will not produce an executable. Setting
BUILD_LIB=yes will produce a static library named liblammps.a.
Setting both BUILD_LIB=yes and BUILD_SHARED_LIBS=yes will produce a
shared library named liblammps.so.
shared library named liblammps.so. If LAMMPS_LIB_SUFFIX is set the generated
libraries will be named liblammps_name.a or liblammps_name.so instead.
[Traditional make]:
@ -310,6 +314,30 @@ current LAMMPS version (HTML and PDF files), from the website
:line
Build LAMMPS tools :h4,link(tools)
Some tools described in "Auxiliary tools"_Tools.html can be built directly
using CMake or Make.
[CMake variable]:
-D BUILD_TOOLS=value # yes or no (default) :pre
The generated binaries will also become part of the LAMMPS installation (see below)
[Traditional make]:
cd lammps/tools
make all # build all binaries of tools
make binary2txt # build only binary2txt tool
make chain # build only chain tool
make micelle2d # build only micelle2d tool
make thermo_extract # build only thermo_extract tool
:pre
:line
Install LAMMPS after a build :h4,link(install)
After building LAMMPS, you may wish to copy the LAMMPS executable of

View File

@ -32,10 +32,18 @@ cmake \[options ...\] ../cmake # configuration with (command-line) cmake
make # compilation :pre
The cmake command will detect available features, enable selected
packages and options, and will generate the build environment. The make
command will then compile and link LAMMPS, producing (by default) an
executable called "lmp" and a library called "liblammps.a" in the
"build" folder.
packages and options, and will generate the build environment. By default
this build environment will be created for "Unix Makefiles" on most
platforms and particularly on Linux. However, alternate build tools
(e.g. Ninja) and support files for Integrated Development Environments
(IDE) like Eclipse, CodeBlocks, or Kate can be generated, too. This is
selected via the "-G" command line flag. For the rest of the documentation
we will assume that the build environment is generated for makefiles
and thus the make command will be used to compile and link LAMMPS as
indicated above, producing (by default) an executable called "lmp" and
a library called "liblammps.a" in the "build" folder. When generating
a build environment for the "Ninja" build tool, the build command would
be "ninja" instead of "make".
If your machine has multiple CPU cores (most do these days), using a
command like "make -jN" (with N being the number of available local
@ -44,11 +52,17 @@ LAMMPS or need to re-compile LAMMPS repeatedly, installation of the
ccache (= Compiler Cache) software may speed up repeated compilation
even more.
After compilation, you can optionally copy the LAMMPS executable and
library into your system folders (by default under $HOME/.local) with:
After compilation, you may optionally install the LAMMPS executable into
your system with:
make install # optional, copy LAMMPS executable & library elsewhere :pre
This will install the lammps executable and library (if requested), some
tools (if configured) and additional files like library API headers,
manpages, potential and force field files. The location of the installation
tree is set by the CMake variable "CMAKE_INSTALL_PREFIX" which defaults
to $\{HOME\}/.local
:line
There are 3 variants of CMake: a command-line version (cmake), a text mode
@ -106,7 +120,7 @@ The argument can be preceeded or followed by various CMake
command-line options. Several useful ones are:
-D CMAKE_INSTALL_PREFIX=path # where to install LAMMPS executable/lib if desired
-D CMAKE_BUILD_TYPE=type # type = Release or Debug
-D CMAKE_BUILD_TYPE=type # type = RelWithDebInfo (default), Release, MinSizeRel, or Debug
-G output # style of output CMake generates
-DVARIABLE=value # setting for a LAMMPS feature to enable
-D VARIABLE=value # ditto, but cannot come after CMakeLists.txt dir

View File

@ -0,0 +1,86 @@
"Higher level section"_Build.html - "LAMMPS WWW Site"_lws - "LAMMPS
Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Commands_all.html)
:line
Development build options (CMake only) :h3
The CMake build of LAMMPS has a few extra options which are useful during
development, testing or debugging.
:line
Verify compilation flags :h4,link(compilation)
Sometimes it is necessary to verify the complete sequence of compilation flags
generated by the CMake build. To enable a more verbose output during
compilation you can use the following option.
-D CMAKE_VERBOSE_MAKEFILE=value # value = no (default) or yes :pre
Another way of doing this without reconfiguration is calling make with variable VERBOSE set to 1:
make VERBOSE=1 :pre
:line
Address, Undefined Behavior, and Thread Sanitizer Support :h4,link(sanitizer)
Compilers such as GCC and Clang support generating binaries which use different
sanitizers to detect problems in code during run-time. They can detect "memory leaks"_https://clang.llvm.org/docs/AddressSanitizer.html,
code that runs into "undefined behavior"_https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html of the
language and "data races"_https://clang.llvm.org/docs/ThreadSanitizer.html in threaded code.
The following settings allow you enable these features if your compiler supports
it. Please note that they come with a performance hit. However, they are
usually faster than using tools like Valgrind.
-D ENABLE_SANITIZE_ADDRESS=value # enable Address Sanitizer, value = no (default) or yes
-D ENABLE_SANITIZE_UNDEFINED=value # enable Undefined Behaviour Sanitizer, value = no (default) or yes
-D ENABLE_SANITIZE_THREAD=value # enable Thread Sanitizer, value = no (default) or yes
:pre
:line
Code Coverage and Testing :h4,link(testing)
We do extensive regression testing of the LAMMPS code base on a continuous
basis. Some of the logic to do this has been added to the CMake build so
developers can run the tests directly on their workstation.
NOTE: this is incomplete and only represents a small subset of tests that we run
-D ENABLE_TESTING=value # enable simple run tests of LAMMPS, value = no (default) or yes
-D LAMMPS_TESTING_SOURCE_DIR=path # path to lammps-testing repository (option if in custom location)
-D LAMMPS_TESTING_GIT_TAG=value # version of lammps-testing repository that should be used, value = master (default) or custom git commit or tag
:pre
If you enable testing in the CMake build it will create an additional target called "test". You can run them with:
make test
:pre
The test cases used come from the lammps-testing repository. They are
derivatives of the examples folder with some modifications to make the run
faster.
You can also collect code coverage metrics while running the tests by enabling
coverage support during building.
-D ENABLE_COVERAGE=value # enable coverage measurements, value = no (default) or yes :pre
This will also add the following targets to generate coverage reports after running the LAMMPS executable:
make test # run tests first!
make gen_coverage_html # generate coverage report in HTML format
make gen_coverage_xml # generate coverage report in XML format
:pre
These reports require GCOVR to be installed. The easiest way to do this to install it via pip:
pip install git+https://github.com/gcovr/gcovr.git :pre
:pre

View File

@ -30,7 +30,6 @@ This is the list of packages that may require additional steps.
"KIM"_#kim,
"KOKKOS"_#kokkos,
"LATTE"_#latte,
"MEAM"_#meam,
"MESSAGE"_#message,
"MSCG"_#mscg,
"OPT"_#opt,
@ -89,7 +88,7 @@ which GPU hardware to build for.
# generic (default) or intel (Intel CPU) or fermi, kepler, cypress (NVIDIA)
-D GPU_ARCH=value # primary GPU hardware choice for GPU_API=cuda
# value = sm_XX, see below
# default is Cuda-compiler dependent, but typically sm_20
# default is sm_30
-D CUDPP_OPT=value # optimization setting for GPU_API=cuda
# enables CUDA Performance Primitives Optimizations
# value = yes (default) or no
@ -173,22 +172,17 @@ KIM package :h4,link(kim)
To build with this package, the KIM library with API v2 must be downloaded
and built on your system. It must include the KIM models that you want to
use with LAMMPS. If you want to use the "kim_query"_kim_query.html
use with LAMMPS. If you want to use the "kim_query"_kim_commands.html
command, you also need to have libcurl installed with the matching
development headers and the curl-config tool.
Note that in LAMMPS lingo, a KIM model driver is a pair style
(e.g. EAM or Tersoff). A KIM model is a pair style for a particular
element or alloy and set of parameters, e.g. EAM for Cu with a
specific EAM potential file. Also note that downloading and installing
the KIM API library with all its models, may take a long time (10s of
minutes to hours) to build. Of course you only need to do that once.
See "Obtaining KIM Models"_http://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
See the list of KIM model drivers here:
https://openkim.org/browse/model-drivers/alphabetical
See the list of all KIM models here:
https://openkim.org/browse/models/by-model-drivers
(Also note that when downloading and installing from source
the KIM API library with all its models, may take a long time (tens of
minutes to hours) to build. Of course you only need to do that once.)
[CMake build]:
@ -247,7 +241,10 @@ Maxwell50 = NVIDIA Maxwell generation CC 5.0
Maxwell52 = NVIDIA Maxwell generation CC 5.2
Maxwell53 = NVIDIA Maxwell generation CC 5.3
Pascal60 = NVIDIA Pascal generation CC 6.0
Pascal61 = NVIDIA Pascal generation CC 6.1 :ul
Pascal61 = NVIDIA Pascal generation CC 6.1
Volta70 = NVIDIA Volta generation CC 7.0
Volta72 = NVIDIA Volta generation CC 7.2
Turing75 = NVIDIA Turing generation CC 7.5 :ul
[CMake build]:
@ -348,49 +345,6 @@ the compiler you use on your system to build LATTE.
:line
MEAM package :h4,link(meam)
NOTE: the use of the MEAM package is discouraged, as it has been
superseded by the USER-MEAMC package, which is a direct translation of
the Fortran code in the MEAM library to C++. The code in USER-MEAMC
should be functionally equivalent to the MEAM package, fully supports
use of "pair_style hybrid"_pair_hybrid.html (the MEAM package does
not), and has optimizations that make it significantly faster than the
MEAM package.
[CMake build]:
No additional settings are needed besides "-D PKG_MEAM=yes".
[Traditional make]:
Before building LAMMPS, you must build the MEAM library in lib/meam.
You can build the MEAM library manually if you prefer; follow the
instructions in lib/meam/README. You can also do it in one step from
the lammps/src dir, using a command like these, which simply invoke
the lib/meam/Install.py script with the specified args:
make lib-meam # print help message
make lib-meam args="-m mpi" # build with default Fortran compiler compatible with your MPI library
make lib-meam args="-m serial" # build with compiler compatible with "make serial" (GNU Fortran)
make lib-meam args="-m ifort" # build with Intel Fortran compiler using Makefile.ifort :pre
NOTE: You should test building the MEAM library with both the Intel
and GNU compilers to see if a simulation runs faster with one versus
the other on your system.
The build should produce two files: lib/meam/libmeam.a and
lib/meam/Makefile.lammps. The latter is copied from an existing
Makefile.lammps.* and has settings needed to link C++ (LAMMPS) with
Fortran (MEAM library). Typically the two compilers used for LAMMPS
and the MEAM library need to be consistent (e.g. both Intel or both
GNU compilers). If necessary, you can edit/create a new
lib/meam/Makefile.machine file for your system, which should define an
EXTRAMAKE variable to specify a corresponding Makefile.lammps.machine
file.
:line
MESSAGE package :h4,link(message)
This package can optionally include support for messaging via sockets,
@ -400,6 +354,9 @@ be installed on your system.
[CMake build]:
-D MESSAGE_ZMQ=value # build with ZeroMQ support, value = no (default) or yes
-D ZMQ_LIBRARY=path # ZMQ library file (only needed if a custom location)
-D ZMQ_INCLUDE_DIR=path # ZMQ include directory (only needed if a custom location)
:pre
[Traditional make]:
@ -412,6 +369,7 @@ simply invoke the lib/message/Install.py script with the specified args:
make lib-message # print help message
make lib-message args="-m -z" # build with MPI and socket (ZMQ) support
make lib-message args="-s" # build as serial lib with no ZMQ support
:pre
The build should produce two files: lib/message/cslib/src/libmessage.a
and lib/message/Makefile.lammps. The latter is copied from an

View File

@ -41,7 +41,6 @@ packages:
"KIM"_Build_extras.html#kim,
"KOKKOS"_Build_extras.html#kokkos,
"LATTE"_Build_extras.html#latte,
"MEAM"_Build_extras.html#meam,
"MESSAGE"_Build_extras.html#message,
"MSCG"_Build_extras.html#mscg,
"OPT"_Build_extras.html#opt,

View File

@ -33,6 +33,11 @@ commands in it are used to define a LAMMPS simulation.
Commands_bond
Commands_kspace
.. toctree::
:maxdepth: 1
Commands_removed
END_RST -->
<!-- HTML_ONLY -->
@ -49,5 +54,7 @@ END_RST -->
"Bond, angle, dihedral, improper commands"_Commands_bond.html
"KSpace solvers"_Commands_kspace.html :all(b)
"Removed commands and packages"_Commands_removed.html :all(b)
<!-- END_HTML_ONLY -->

View File

@ -50,11 +50,11 @@ An alphabetic list of all general LAMMPS commands.
"dump"_dump.html,
"dump adios"_dump_adios.html,
"dump image"_dump_image.html,
"dump_modify"_dump_modify.html,
"dump movie"_dump_image.html,
"dump netcdf"_dump_netcdf.html,
"dump netcdf/mpiio"_dump_netcdf.html,
"dump vtk"_dump_vtk.html,
"dump_modify"_dump_modify.html,
"dynamical_matrix"_dynamical_matrix.html,
"echo"_echo.html,
"fix"_fix.html,
@ -68,7 +68,9 @@ An alphabetic list of all general LAMMPS commands.
"improper_style"_improper_style.html,
"include"_include.html,
"jump"_jump.html,
"kim_query"_kim_query.html,
"kim_init"_kim_commands.html,
"kim_interactions"_kim_commands.html,
"kim_query"_kim_commands.html,
"kspace_modify"_kspace_modify.html,
"kspace_style"_kspace_style.html,
"label"_label.html,
@ -83,7 +85,7 @@ An alphabetic list of all general LAMMPS commands.
"molecule"_molecule.html,
"ndx2group"_group2ndx.html,
"neb"_neb.html,
"neb_spin"_neb_spin.html,
"neb/spin"_neb_spin.html,
"neigh_modify"_neigh_modify.html,
"neighbor"_neighbor.html,
"newton"_newton.html,

View File

@ -28,8 +28,12 @@ OPT.
"none"_bond_none.html,
"zero"_bond_zero.html,
"hybrid"_bond_hybrid.html :tb(c=3,ea=c)
"hybrid"_bond_hybrid.html,
,
,
,
,
,
"class2 (ko)"_bond_class2.html,
"fene (iko)"_bond_fene.html,
"fene/expand (o)"_bond_fene_expand.html,
@ -56,8 +60,12 @@ OPT.
"none"_angle_none.html,
"zero"_angle_zero.html,
"hybrid"_angle_hybrid.html :tb(c=3,ea=c)
"hybrid"_angle_hybrid.html,
,
,
,
,
,
"charmm (iko)"_angle_charmm.html,
"class2 (ko)"_angle_class2.html,
"class2/p6"_angle_class2.html,
@ -89,8 +97,12 @@ OPT.
"none"_dihedral_none.html,
"zero"_dihedral_zero.html,
"hybrid"_dihedral_hybrid.html :tb(c=3,ea=c)
"hybrid"_dihedral_hybrid.html,
,
,
,
,
,
"charmm (iko)"_dihedral_charmm.html,
"charmmfsw"_dihedral_charmm.html,
"class2 (ko)"_dihedral_class2.html,
@ -117,8 +129,12 @@ OPT.
"none"_improper_none.html,
"zero"_improper_zero.html,
"hybrid"_improper_hybrid.html :tb(c=3,ea=c)
"hybrid"_improper_hybrid.html,
,
,
,
,
,
"class2 (ko)"_improper_class2.html,
"cossq (o)"_improper_cossq.html,
"cvff (io)"_improper_cvff.html,

View File

@ -66,6 +66,7 @@ KOKKOS, o = USER-OMP, t = OPT.
"group/group"_compute_group_group.html,
"gyration"_compute_gyration.html,
"gyration/chunk"_compute_gyration_chunk.html,
"gyration/shape"_compute_gyration_shape.html,
"heat/flux"_compute_heat_flux.html,
"heat/flux/tally"_compute_tally.html,
"hexorder/atom"_compute_hexorder_atom.html,
@ -80,6 +81,7 @@ KOKKOS, o = USER-OMP, t = OPT.
"meso/e/atom"_compute_meso_e_atom.html,
"meso/rho/atom"_compute_meso_rho_atom.html,
"meso/t/atom"_compute_meso_t_atom.html,
"momentum"_compute_momentum.html,
"msd"_compute_msd.html,
"msd/chunk"_compute_msd_chunk.html,
"msd/nongauss"_compute_msd_nongauss.html,

View File

@ -27,8 +27,11 @@ OPT.
"none"_pair_none.html,
"zero"_pair_zero.html,
"hybrid (k)"_pair_hybrid.html,
"hybrid/overlay (k)"_pair_hybrid.html :tb(c=4,ea=c)
"hybrid/overlay (k)"_pair_hybrid.html,
,
,
,
,
"adp (o)"_pair_adp.html,
"agni (o)"_pair_agni.html,
"airebo (io)"_pair_airebo.html,
@ -80,6 +83,8 @@ OPT.
"dpd/fdt/energy (k)"_pair_dpd_fdt.html,
"dpd/tstat (go)"_pair_dpd.html,
"dsmc"_pair_dsmc.html,
"e3b"_pair_e3b.html,
"drip"_pair_drip.html,
"eam (gikot)"_pair_eam.html,
"eam/alloy (gikot)"_pair_eam.html,
"eam/cd (o)"_pair_eam.html,
@ -217,6 +222,8 @@ OPT.
"sph/rhosum"_pair_sph_rhosum.html,
"sph/taitwater"_pair_sph_taitwater.html,
"sph/taitwater/morris"_pair_sph_taitwater_morris.html,
"spin/dipole/cut"_pair_spin_dipole.html,
"spin/dipole/long"_pair_spin_dipole.html,
"spin/dmi"_pair_spin_dmi.html,
"spin/exchange"_pair_spin_exchange.html,
"spin/magelec"_pair_spin_magelec.html,

View File

@ -0,0 +1,66 @@
"Higher level section"_Commands.html - "LAMMPS WWW Site"_lws - "LAMMPS
Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Commands.html)
:line
Removed commands and packages :h3
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.
Fix ave/spatial and fix ave/spatial/sphere :h4
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
ways through the "compute chunk/atom"_compute_chunk_atom.html command
and then averaging is done using "fix ave/chunk"_fix_ave_chunk.html.
Please refer to the "chunk HOWTO"_Howto_chunk.html section for an overview.
MEAM package :h4
The MEAM package has been removed since it was superseded by the
"USER-MEAMC package"_Package_details.html#PKG-USER-MEAMC. The code in
the USER-MEAMC package 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 new pair style "meam/c"_pair_meamc.html has
the exact same syntax as the old "meam" pair style and thus pair style
"meam"_pair_meamc.html is an alias to the new style and backward
compatibility of old inputs is preserved.
REAX package :h4
The REAX package has been removed since it was superseded by the
"USER-REAXC package"_Package_details.html#PKG-USER-REAXC. The USER-REAXC
package has been tested to yield equivalent results to the REAX package,
offers better performance, supports OpenMP multi-threading via USER-OMP,
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.
USER-CUDA package :h4
The USER-CUDA package had been removed, since it had been unmaintained
for a long time and had known bugs and problems. Significant parts of
the design were transferred to the
"KOKKOS package"_Package_details.html#PKG-KOKKOS, which has similar
performance characteristics on Nvidia GPUs. Both, the KOKKOS
and the "GPU package"_Package_details.html#PKG-GPU are maintained
and allow running LAMMPS with GPU acceleration.
restart2data tool :h4
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 "read_restart"_read_restart.html and
"write_data"_write_data.html can be used to the same effect. For added
convenience this conversion can also be triggered by "command line
flags"_Run_options.html

View File

@ -0,0 +1,15 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
$$
E_{a} = K_2\left(\theta - \theta_0\right)^2 + K_3\left(\theta - \theta_0\right)^3 + K_4\left(\theta - \theta_0\right)^4 + K_5\left(\theta - \theta_0\right)^5 + K_6\left(\theta - \theta_0\right)^6
$$
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:

View File

@ -0,0 +1,15 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
$$
E = K \left[ 1 + \cos(n\theta - \theta_0)\right]
$$
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -0,0 +1,13 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
\begin{eqnarray*}
c = l_z - 0.5(l_y+l_x) \\
b = l_y - l_x \\
k = \frac{3}{2} \frac{l_x^2+l_y^2+l_z^2}{(l_x+l_y+l_z)^2} - \frac{1}{2}
\end{eqnarray*}
\end{document}

BIN
doc/src/Eqs/e3b.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

15
doc/src/Eqs/e3b.tex Normal file
View File

@ -0,0 +1,15 @@
\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
E =& E_2 \sum_{i,j}e^{-k_2 r_{ij}} + E_A \sum_{\substack{i,j,k,\ell \\\in \textrm{type A}}} f(r_{ij})f(r_{k\ell}) + E_B \sum_{\substack{i,j,k,\ell \\\in \textrm{type B}}} f(r_{ij})f(r_{k\ell}) + E_C \sum_{\substack{i,j,k,\ell \\\in \textrm{type C}}} f(r_{ij})f(r_{k\ell}) \\
f(r) =& e^{-k_3 r}s(r) \\
s(r) =& \begin{cases}
1 & r<R_s \\
\displaystyle\frac{(R_f-r)^2(R_f-3R_s+2r)}{(R_f-R_s)^3} & R_s\leq r\leq R_f \\
0 & r>R_f\\
\end{cases}
\end{align*}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -0,0 +1,21 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath,amssymb,amsthm,bm}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
\bm{H}_{cubic} = -\sum_{{ i}=1}^{N} K_{1}
\Big[
\left(\vec{s}_{i} \cdot \vec{n1} \right)^2
\left(\vec{s}_{i} \cdot \vec{n2} \right)^2 +
\left(\vec{s}_{i} \cdot \vec{n2} \right)^2
\left(\vec{s}_{i} \cdot \vec{n3} \right)^2 +
\left(\vec{s}_{i} \cdot \vec{n1} \right)^2
\left(\vec{s}_{i} \cdot \vec{n3} \right)^2 \Big]
+K_{2}^{(c)} \left(\vec{s}_{i} \cdot \vec{n1} \right)^2
\left(\vec{s}_{i} \cdot \vec{n2} \right)^2
\left(\vec{s}_{i} \cdot \vec{n3} \right)^2 \nonumber
\end{equation}
\end{varwidth}
\end{document}

View File

@ -0,0 +1,15 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
$$
E = K \left(\theta - \theta_0\right)^2
$$
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:

18
doc/src/Eqs/pair_agni.tex Normal file
View File

@ -0,0 +1,18 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
\begin{eqnarray*}
F_i^u & = & \sum_t^{N_t}\alpha_t \cdot \exp\left[-\frac{\left(d_{i,t}^u\right)^2}{2l^2}\right] \\
d_{i,t}^u & = & \left|\left| V_i^u(\eta) - V_t^u(\eta) \right|\right| \\
V_i^u(\eta) & = & \sum_{j \neq i}\frac{r^u_{ij}}{r_{ij}} \cdot e^{-\left(\frac{r_{ij}}{\eta} \right)^2} \cdot f_d\left(r_{ij}\right) \\
f_d\left(r_{ij}\right) & = & \frac{1}{2} \left[\cos\left(\frac{\pi r_{ij}}{R_c}\right) + 1 \right]
\end{eqnarray*}
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:

View File

@ -1,6 +1,7 @@
\documentclass[12pt]{article}
\begin{document}
\pagestyle{empty}
\begin{eqnarray*}
E = A e^{-\kappa r} - \frac{C}{r^6} \cdot \frac{1}{1 + D r^{14}} \qquad r < r_c \\

View File

@ -0,0 +1,15 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
$$
E = \frac{C_{q_i q_j}}{\epsilon r_{ij}}\,\, \textrm{erf}\left(\alpha_{ij} r_{ij}\right)\quad\quad\quad r < r_c
$$
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:

BIN
doc/src/Eqs/pair_drip.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

14
doc/src/Eqs/pair_drip.tex Normal file
View File

@ -0,0 +1,14 @@
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{bm}
\begin{document}
\begin{eqnarray*}
E &=& \frac{1}{2} \sum_{i} \sum_{j\notin\text{layer}\,i} \phi_{ij} \\\phi_{ij} &=& f_\text{c}(x_r) \left[ e^{-\lambda(r_{ij} - z_0 )} \left[C+f(\rho_{ij})+ g(\rho_{ij}, \{\alpha_{ij}^{(m)}\}) \right]- A\left (\frac{z_0}{r_{ij}} \right)^6 \right] \\
\end{eqnarray*}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

After

Width:  |  Height:  |  Size: 49 KiB

View File

@ -27,7 +27,7 @@
V_{ij} & = & e^{-\lambda (r_{ij} -z_0)} \left [ C + f(\rho_{ij}) + f(\rho_{ji}) - A \left ( \frac{r_{ij}}{z_0}\right )^{-6} \right ] \\
\rho_{ij}^2 & = & r_{ij}^2 - ({\bf r}_{ij}\cdot {\bf n}_{i})^2 \\[15pt]
\rho_{ji}^2 & = & r_{ij}^2 - ({\bf r}_{ij}\cdot {\bf n}_{j})^2 \\[15pt]
f(\rho) & = & e^{-(\rho/\delta)^2} \sum_{n=0}^2 C_{2n} { \rho/\delta }^{2n}
f(\rho) & = & e^{-(\rho/\delta)^2} \sum_{n=0}^2 C_{2n} { (\rho/\delta) }^{2n}
\end{eqnarray*}
\endgroup
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -1,9 +1,9 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
$$
E(r) = \frac{A}{r^{12}} - \frac{A}{r^{6}}
E(r) = \frac{A}{r^{12}} - \frac{B}{r^{6}}
$$
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

@ -0,0 +1,42 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath,amssymb,graphics,bm,setspace}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
\mathcal{H}_{\rm long}=
-\frac{\mu_{0} \left( \mu_B\right)^2}{4\pi}
\sum_{i,j,i\neq j}^{N}
\frac{g_i g_j}{r_{ij}^3}
\Big(3
\left(\bm{e}_{ij}\cdot \bm{s}_{i}\right)
\left(\bm{e}_{ij}\cdot \bm{s}_{j}\right)
-\bm{s}_i\cdot\bm{s}_j \Big)
\nonumber
\end{equation}
\begin{equation}
\bm{\omega}_i =
\frac{\mu_0 (\mu_B)^2}{4\pi\hbar}\sum_{j}
\frac{g_i g_j}{r_{ij}^3}
\, \Big(
3\,(\bm{e}_{ij}\cdot\bm{s}_{j})\bm{e}_{ij}
-\bm{s}_{j} \Big) \nonumber
\end{equation}
\begin{equation}
\bm{F}_i =
\frac{3\, \mu_0 (\mu_B)^2}{4\pi} \sum_j
\frac{g_i g_j}{r_{ij}^4}
\Big[\big( (\bm{s}_i\cdot\bm{s}_j)
-5(\bm{e}_{ij}\cdot\bm{s}_i)
(\bm{e}_{ij}\cdot\bm{s}_j)\big) \bm{e}_{ij}+
\big(
(\bm{e}_{ij}\cdot\bm{s}_i)\bm{s}_j+
(\bm{e}_{ij}\cdot\bm{s}_j)\bm{s}_i
\big)
\Big]
\nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,20 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath,amssymb,graphics,bm,setspace}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
\mathcal{H}_{\rm long}=
-\frac{\mu_{0} \left( \mu_B\right)^2}{4\pi}
\sum_{i,j,i\neq j}^{N}
\frac{g_i g_j}{r_{ij}^3}
\Big(3
\left(\bm{e}_{ij}\cdot \bm{s}_{i}\right)
\left(\bm{e}_{ij}\cdot \bm{s}_{j}\right)
-\bm{s}_i\cdot\bm{s}_j \Big)
\nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,23 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath,amssymb,graphics,bm,setspace}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
\bm{F}_i =
\frac{\mu_0 (\mu_B)^2}{4\pi} \sum_j
\frac{g_i g_j}{r_{ij}^4}
\Big[\big( (\bm{s}_i\cdot\bm{s}_j)
-5(\bm{e}_{ij}\cdot\bm{s}_i)
(\bm{e}_{ij}\cdot\bm{s}_j)\big) \bm{e}_{ij}+
\big(
(\bm{e}_{ij}\cdot\bm{s}_i)\bm{s}_j+
(\bm{e}_{ij}\cdot\bm{s}_j)\bm{s}_i
\big)
\Big]
\nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -0,0 +1,17 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath,amssymb,graphics,bm,setspace}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
\bm{\omega}_i =
\frac{\mu_0 (\mu_B)^2}{4\pi\hbar}\sum_{j}
\frac{g_i g_j}{r_{ij}^3}
\, \Big(
3\,(\bm{e}_{ij}\cdot\bm{s}_{j})\bm{e}_{ij}
-\bm{s}_{j} \Big) \nonumber
\end{equation}
\end{varwidth}
\end{document}

View File

@ -610,6 +610,62 @@ This means there is something invalid about the topology definitions. :dd
The data file header lists bonds but no bond types. :dd
{Bond/react: Cannot use fix bond/react with non-molecular systems} :dt
Only systems with bonds that can be changed can be used. Atom_style
template does not qualify. :dd
{Bond/react: Rmax cutoff is longer than pairwise cutoff} :dt
This is not allowed because bond creation is done using the pairwise
neighbor list. :dd
{Bond/react: Molecule template ID for fix bond/react does not exist} :dt
A valid molecule template must have been created with the molecule
command. :dd
{Bond/react: Reaction templates must contain the same number of atoms} :dt
There should be a one-to-one correspondence between atoms in the
pre-reacted and post-reacted templates, as specified by the map file. :dd
{Bond/react: Unknown section in map file} :dt
Please ensure reaction map files are properly formatted. :dd
{Bond/react: Atom affected by reaction too close to template edge} :dt
This means an atom which changes type or connectivity during the
reaction is too close to an 'edge' atom defined in the superimpose
file. This could cause incorrect assignment of bonds, angle, etc.
Generally, this means you must include more atoms in your templates,
such that there are at least two atoms between each atom involved in
the reaction and an edge atom. :dd
{Bond/react: Fix bond/react needs ghost atoms from farther away} :dt
This is because a processor needs to superimpose the entire unreacted
molecule template onto simulation atoms it knows about. The
comm_modify cutoff command can be used to extend the communication
range. :dd
{Bond/react: A deleted atom cannot remain bonded to an atom that is not deleted} :dt
Self-explanatory. :dd
{Bond/react special bond generation overflow} :dt
The number of special bonds per-atom created by a reaction exceeds the
system setting. See the read_data or create_box command for how to
specify this value. :dd
{Bond/react topology/atom exceed system topology/atom} :dt
The number of bonds, angles etc per-atom created by a reaction exceeds
the system setting. See the read_data or create_box command for how to
specify this value. :dd
{Both restart files must use % or neither} :dt
Self-explanatory. :dd
@ -2146,10 +2202,6 @@ Self-explanatory. :dd
This is a current restriction in LAMMPS. :dd
{Cannot use pair hybrid with GPU neighbor list builds} :dt
Neighbor list builds must be done on the CPU for this pair style. :dd
{Cannot use pair tail corrections with 2d simulations} :dt
The correction factors are only currently defined for 3d systems. :dd
@ -2386,6 +2438,14 @@ Self-explanatory. :dd
Self-explanatory. :dd
{Compute gyration ID does not exist for compute gyration/shape} :dt
Self-explanatory. Provide a valid compute ID. :dd
{Compute gyration/shape compute ID does not point to a gyration compute} :dt
Self-explanatory. Provide and ID of a compute gyration command. :dd
{Compute ID for compute reduce does not exist} :dt
Self-explanatory. :dd
@ -5467,10 +5527,6 @@ Self-explanatory. :dd
For this pair style, you cannot run part of the force calculation on
the host. See the package command. :dd
{GPU split param must be positive for hybrid pair styles} :dt
See the package gpu command. :dd
{GPUs are requested but Kokkos has not been compiled for CUDA} :dt
Re-compile Kokkos with CUDA support to use GPUs. :dd
@ -5729,6 +5785,16 @@ definitions. :dd
The data file header lists improper but no improper types. :dd
{Incompatible KIM Simulator Model} :dt
The requested KIM Simulator Model was defined for a different MD code
and thus is not compatible with LAMMPS. :dd
{Incompatible units for KIM Simulator Model} :dt
The selected unit style is not compatible with the requested KIM
Simulator Model. :dd
{Incomplete use of variables in create_atoms command} :dt
The var and set options must be used together. :dd
@ -5828,6 +5894,12 @@ Must have periodic x,y dimensions and non-periodic z dimension to use
Must have periodic x,y dimensions and non-periodic z dimension to use
2d slab option with pppm/disp. :dd
{Incorrect conversion in format string} :dt
A format style variable was not using either a %f, a %g, or a %e conversion.
Or an immediate variable with format suffix was not using either
a %f, a %g or a %e conversion in the format suffix. :dd
{Incorrect element names in ADP potential file} :dt
The element names in the ADP file do not match those requested. :dd
@ -5836,6 +5908,11 @@ The element names in the ADP file do not match those requested. :dd
The element names in the EAM file do not match those requested. :dd
{Incorrect format of ... section in data file} :dt
Number or type of values per line in the given section of the data file
is not consistent with the requirements for this section. :dd
{Incorrect format in COMB potential file} :dt
Incorrect number of words per line in the potential file. :dd
@ -6988,6 +7065,12 @@ The atom style defined does not have this attribute. :dd
The atom style defined does not have these attributes. :dd
{KIM Simulator Model has no Model definition} :dt
There is no model definition (key: model-defn) in the KIM Simulator
Model. Please contact the OpenKIM database maintainers to verify
and potentially correct this. :dd
{KOKKOS package does not yet support comm_style tiled} :dt
Self-explanatory. :dd
@ -7035,6 +7118,18 @@ Self-explanatory. :dd
One or more GPUs must be used when Kokkos is compiled for CUDA. :dd
{Kspace_modify mesh parameter must be all zero or all positive} :dt
Valid kspace mesh parameters are >0. The code will try to auto-detect
suitable values when all three mesh sizes are set to zero (the default). :dd
{Kspace_modify mesh/disp parameter must be all zero or all positive} :dt
Valid kspace mesh/disp parameters are >0. The code will try to auto-detect
suitable values when all three mesh sizes are set to zero [and]
the required accuracy via {force/disp/real} as well as
{force/disp/kspace} is set. :dd
{Kspace style does not support compute group/group} :dt
Self-explanatory. :dd
@ -7448,6 +7543,11 @@ The Atoms section of a data file must come before a Triangles section. :dd
The Atoms section of a data file must come before a Velocities
section. :dd
{Must re-specify non-restarted pair style (xxx) after read_restart} :dt
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. :dd
{Must set both respa inner and outer} :dt
Cannot use just the inner or outer option with respa without using the
@ -7475,6 +7575,18 @@ Self-explanatory. :dd
Self-explanatory. :dd
{Must use 'kim_style init' command before simulation box is defined} :dt
Self-explanatory. :dd
{Must use 'kim_style define' command after simulation box is defined} :dt
Self-explanatory. :dd
{Must use 'kim_style init' command before 'kim_style define'} :dt
Self-explanatory. :dd
{Must use 'kspace_modify pressure/scalar no' for rRESPA with kspace_style MSM} :dt
The kspace scalar pressure option cannot (yet) be used with rRESPA. :dd
@ -9418,6 +9530,11 @@ See the "read_data extra/special/per/atom" command
for info on how to leave space in the special bonds
list to allow for additional bonds to be formed. :dd
{Species XXX is not supported by this KIM Simulator Model} :dt
The kim_style define command was referencing a species that is not
present in the requested KIM Simulator Model. :dd
{Specified processors != physical processors} :dt
The 3d grid of processors defined by the processors command does not
@ -9990,25 +10107,25 @@ quote. :dd
Self-explanatory. :dd
{Unexpected end of AngleCoeffs section} :dt
{Unexpected empty line in AngleCoeffs section} :dt
Read a blank line. :dd
Read a blank line where there should be coefficient data. :dd
{Unexpected end of BondCoeffs section} :dt
{Unexpected empty line in BondCoeffs section} :dt
Read a blank line. :dd
Read a blank line where there should be coefficient data. :dd
{Unexpected end of DihedralCoeffs section} :dt
{Unexpected empty line in DihedralCoeffs section} :dt
Read a blank line. :dd
Read a blank line where there should be coefficient data. :dd
{Unexpected end of ImproperCoeffs section} :dt
{Unexpected empty line in ImproperCoeffs section} :dt
Read a blank line. :dd
Read a blank line where there should be coefficient data. :dd
{Unexpected end of PairCoeffs section} :dt
{Unexpected empty line in PairCoeffs section} :dt
Read a blank line. :dd
Read a blank line where there should be coefficient data. :dd
{Unexpected end of custom file} :dt
@ -10049,19 +10166,19 @@ create_box command. :dd
A universe or uloop style variable must specify a number of values >= to the
number of processor partitions. :dd
{Unknown angle style} :dt
{Unrecognized angle style} :dt
The choice of angle style is unknown. :dd
{Unknown atom style} :dt
{Unrecognized atom style} :dt
The choice of atom style is unknown. :dd
{Unknown body style} :dt
{Unrecognized body style} :dt
The choice of body style is unknown. :dd
{Unknown bond style} :dt
{Unrecognized bond style} :dt
The choice of bond style is unknown. :dd
@ -10077,23 +10194,23 @@ Self-explanatory. :dd
Self-explanatory. :dd
{Unknown command: %s} :dt
{Unrecognized command: %s} :dt
The command is not known to LAMMPS. Check the input script. :dd
{Unknown compute style} :dt
{Unrecognized compute style} :dt
The choice of compute style is unknown. :dd
{Unknown dihedral style} :dt
{Unrecognized dihedral style} :dt
The choice of dihedral style is unknown. :dd
{Unknown dump reader style} :dt
{Unrecognized dump reader style} :dt
The choice of dump reader style via the format keyword is unknown. :dd
{Unknown dump style} :dt
{Unrecognized dump style} :dt
The choice of dump style is unknown. :dd
@ -10101,7 +10218,7 @@ The choice of dump style is unknown. :dd
Self-explanatory. :dd
{Unknown fix style} :dt
{Unrecognized fix style} :dt
The choice of fix style is unknown. :dd
@ -10109,7 +10226,7 @@ The choice of fix style is unknown. :dd
A section of the data file cannot be read by LAMMPS. :dd
{Unknown improper style} :dt
{Unrecognized improper style} :dt
The choice of improper style is unknown. :dd
@ -10117,7 +10234,7 @@ The choice of improper style is unknown. :dd
One or more specified keywords are not recognized. :dd
{Unknown kspace style} :dt
{Unrecognized kspace style} :dt
The choice of kspace style is unknown. :dd
@ -10133,7 +10250,7 @@ Self-explanatory. :dd
Self-explanatory. :dd
{Unknown pair style} :dt
{Unrecognized pair style} :dt
The choice of pair style is unknown. :dd
@ -10141,7 +10258,7 @@ The choice of pair style is unknown. :dd
The choice of sub-style is unknown. :dd
{Unknown region style} :dt
{Unrecognized region style} :dt
The choice of region style is unknown. :dd

View File

@ -82,6 +82,15 @@ bond/angle/dihedral. LAMMPS computes this by taking the maximum bond
length, multiplying by the number of bonds in the interaction (e.g. 3
for a dihedral) and adding a small amount of stretch. :dd
{Bond/react: Atom affected by reaction too close to template edge} :dt
This means an atom which changes type or connectivity during the
reaction is too close to an 'edge' atom defined in the superimpose
file. This could cause incorrect assignment of bonds, angle, etc.
Generally, this means you must include more atoms in your templates,
such that there are at least two atoms between each atom involved in
the reaction and an edge atom. :dd
{Both groups in compute group/group have a net charge; the Kspace boundary correction to energy will be non-zero} :dt
Self-explanatory. :dd
@ -120,6 +129,16 @@ Self-explanatory. :dd
Self-explanatory. :dd
{Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost} :dt
The communication cutoff defaults to the maximum of what is inferred from
pair and bond styles (will be zero, if none are defined) and what is specified
via "comm_modify cutoff"_comm_modify.html (defaults to 0.0). If this results
to 0.0, no ghost atoms will be generated and LAMMPS may lose atoms or use
incorrect periodic images of atoms in interaction lists. To avoid, either use
"pair style zero"_pair_zero.html with a suitable cutoff or use "comm_modify
cutoff"_comm_modify.html. :dd
{Communication cutoff is too small for SNAP micro load balancing, increased to %lf} :dt
Self-explanatory. :dd

View File

@ -11,7 +11,7 @@ Section"_Tools.html :c
Example scripts :h3
The LAMMPS distribution includes an examples sub-directory with many
sample problems. Many are 2d models that run quickly are are
sample problems. Many are 2d models that run quickly and are
straightforward to visualize, requiring at most a couple of minutes to
run on a desktop machine. Each problem has an input script (in.*) and
produces a log file (log.*) when it runs. Some use a data file
@ -52,13 +52,14 @@ Lowercase directories :h4
accelerate: run with various acceleration options (OpenMP, GPU, Phi)
airebo: polyethylene with AIREBO potential
atm: Axilrod-Teller-Muto potential example
balance: dynamic load balancing, 2d system
body: body particles, 2d system
cmap: CMAP 5-body contributions to CHARMM force field
colloid: big colloid particles in a small particle solvent, 2d system
comb: models using the COMB potential
coreshell: core/shell model using CORESHELL package
controller: use of fix controller as a thermostat
coreshell: core/shell model using CORESHELL package
crack: crack propagation in a 2d solid
deposit: deposit atoms and molecules on a surface
dipole: point dipolar particles, 2d system
@ -70,10 +71,13 @@ friction: frictional contact of spherical asperities between 2d surfaces
gcmc: Grand Canonical Monte Carlo (GCMC) via the fix gcmc command
granregion: use of fix wall/region/gran as boundary on granular particles
hugoniostat: Hugoniostat shock dynamics
hyper: global and local hyperdynamics of diffusion on Pt surface
indent: spherical indenter into a 2d solid
kim: use of potentials in Knowledge Base for Interatomic Models (KIM)
kim: use of potentials from the "OpenKIM Repository"_openkim
latte: examples for using fix latte for DFTB via the LATTE library
meam: MEAM test for SiC and shear (same as shear examples)
melt: rapid melt of 3d LJ system
message: demos for LAMMPS client/server coupling with the MESSAGE package
micelle: self-assembly of small lipid-like molecules into 2d bilayers
min: energy minimization of 2d LJ melt
mscg: parameterize a multi-scale coarse-graining (MSCG) model
@ -88,6 +92,7 @@ pour: pouring of granular particles into a 3d box, then chute flow
prd: parallel replica dynamics of vacancy diffusion in bulk Si
python: using embedded Python in a LAMMPS input script
qeq: use of the QEQ package for charge equilibration
rdf-adf: computing radial and angle distribution functions for water
reax: RDX and TATB models using the ReaxFF
rigid: rigid bodies modeled as independent or coupled
shear: sideways shear applied to 2d solid, with and without a void
@ -95,6 +100,7 @@ snap: NVE dynamics for BCC tantalum crystal using SNAP potential
srd: stochastic rotation dynamics (SRD) particles as solvent
streitz: use of Streitz/Mintmire potential with charge equilibration
tad: temperature-accelerated dynamics of vacancy diffusion in bulk Si
threebody: regression test input for a variety of manybody potentials
vashishta: use of the Vashishta potential
voronoi: Voronoi tesselation via compute voronoi/atom command :tb(s=:)
@ -131,8 +137,10 @@ COUPLE: examples of how to use LAMMPS as a library
DIFFUSE: compute diffusion coefficients via several methods
ELASTIC: compute elastic constants at zero temperature
ELASTIC_T: compute elastic constants at finite temperature
HEAT: compute thermal conductivity for LJ and water via fix ehex
KAPPA: compute thermal conductivity via several methods
MC: using LAMMPS in a Monte Carlo mode to relax the energy of a system
SPIN: examples for features of the SPIN package
USER: examples for USER packages and USER-contributed commands
VISCOSITY: compute viscosity via several methods :tb(s=:)
@ -145,3 +153,5 @@ illustrate how to use the command(s) provided in that package. Many
of the sub-directories have their own README files which give further
instructions. See the "Packages_details"_Packages_details.html doc
page for more info on specific USER packages.
:link(openkim,https://openkim.org)

View File

@ -56,7 +56,7 @@ COMPASS is a general force field for atomistic simulation of common
organic molecules, inorganic small molecules, and polymers which was
developed using ab initio and empirical parameterization techniques.
See the "Tools"_Tools.html doc page for the msi2lmp tool for creating
LAMMPS template input and data files from BIOVIAs Materials Studio
LAMMPS template input and data files from BIOVIA's Materials Studio
files. Please note that the msi2lmp tool is very old and largely
unmaintained, so it does not support all features of Materials Studio
provided force field files, especially additions during the last decade.
@ -129,7 +129,7 @@ Fischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998).
Spellmeyer, Fox, Caldwell, Kollman, JACS 117, 5179-5197 (1995).
:link(howto-Sun)
[(Sun)] Sun, J. Phys. Chem. B, 102, 73387364 (1998).
[(Sun)] Sun, J. Phys. Chem. B, 102, 7338-7364 (1998).
:link(howto-Mayo)
[(Mayo)] Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909

View File

@ -29,3 +29,5 @@ diffusion coefficient. The instantaneous VACF values can be
accumulated in a vector via the "fix vector"_fix_vector.html command,
and time integrated via the "variable trap"_variable.html function,
and thus extract D.
:line

View File

@ -274,7 +274,7 @@ crash. Even without reaching this extreme case, the correlation
between nearby dipoles on the same molecule may be exaggerated. Often,
special bond relations prevent bonded neighboring atoms to see the
charge of each other's DP, so that the problem does not always appear.
It is possible to use screened dipole dipole interactions by using the
It is possible to use screened dipole-dipole interactions by using the
"{pair_style thole}"_pair_thole.html. This is implemented as a
correction to the Coulomb pair_styles, which dampens at short distance
the interactions between the charges representing the induced dipoles.

View File

@ -52,7 +52,7 @@ as if you unpacked a current LAMMPS tarball, with the exception, that
the HTML documentation files are not included. They can be fetched
from the LAMMPS website by typing "make fetch" in the doc directory.
Or they can be generated from the content provided in doc/src by
typing "make html" from the the doc directory.
typing "make html" from the doc directory.
After initial cloning, as bug fixes and new features are added to
LAMMPS, as listed on "this page"_Errors_bugs.html, you can stay

View File

@ -15,7 +15,8 @@ Binaries are available for different versions of Linux:
"Pre-built Fedora Linux executables"_#fedora
"Pre-built EPEL Linux executables (RHEL, CentOS)"_#epel
"Pre-built OpenSuse Linux executables"_#opensuse
"Gentoo Linux executable"_#gentoo :all(b)
"Gentoo Linux executable"_#gentoo
"Arch Linux build-script"_#arch :all(b)
:line
@ -168,3 +169,31 @@ for details.
Thanks to Nicolas Bock and Christoph Junghans (LANL) for setting up
this Gentoo capability.
:line
Archlinux build-script :h4,link(arch)
LAMMPS is available via Arch's unofficial Arch User repository (AUR).
There are three scripts available, named lammps, lammps-beta and lammps-git.
They respectively package the stable, patch and git releases.
To install, you will need to have the git package installed. You may use
any of the above names in-place of lammps.
$ git clone https://aur.archlinux.org/lammps.git :pre
$ cd lammps :pre
$ makepkg -s :pre
# makepkg -i :pre
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
use makepkg as above.
$ git pull :pre
Alternatively, you may use an AUR helper to install these packages.
Note that the AUR provides build-scripts that download the source and
the build the package on your machine.

View File

@ -10,47 +10,34 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
Download an executable for Mac :h3
LAMMPS can be downloaded, built, and configured for OS X on a Mac with
"Homebrew"_homebrew. Only four of the LAMMPS packages are unavailable
at this time because of additional needs not yet met: KIM, GPU,
USER-INTEL, USER-ATC.
"Homebrew"_homebrew. The following LAMMPS packages are unavailable at this
time because of additional needs not yet met: GPU, KOKKOS, LATTE, MSCG,
MESSAGE, MPIIO POEMS VORONOI.
After installing Homebrew, you can install LAMMPS on your system with
the following commands:
% brew tap homebrew/science
% brew install lammps # serial version
% brew install lammps --with-mpi # mpi support :pre
% brew install lammps :pre
This will install the executable "lammps", a python module named
"lammps", and additional resources with all the standard packages. To
get the location of the additional resources type this:
% brew info lammps :pre
This command also tells you additional installation options available.
The user-packages are available as options, just install them like
this example for the USER-OMP package:
% brew install lammps --enable-user-omp :pre
It is usually best to install LAMMPS with the most up to date source
files, which can be done with the "--HEAD" option:
% brew install lammps --HEAD :pre
To re-install the LAMMPS HEAD, run this command occasionally (make sure
to use the desired options).
% brew install --force lammps --HEAD $\{options\} :pre
This will install the executables "lammps_serial" and "lammps_mpi", as well as
the LAMMPS "doc", "potentials", "tools", "bench", and "examples" directories.
Once LAMMPS is installed, you can test the installation with the
Lennard-Jones benchmark file:
% brew test lammps -v :pre
The LAMMPS binary is built with the "KIM package"_Build_extras#kim which
results in Homebrew also installing the `kim-api` binaries when LAMMPS is
installed. In order to use potentials from "openkim.org"_openkim, you can
install the `openkim-models` package
% brew install openkim-models :pre
If you have problems with the installation you can post issues to
"this link"_homebrew.
Thanks to Derek Thomas (derekt at cello.t.u-tokyo.ac.jp) for setting
up the Homebrew capability.
:link(homebrew,https://github.com/Homebrew/homebrew-science/issues)
:link(homebrew,https://github.com/Homebrew/homebrew-core/issues)
:link(openkim,https://openkim.org)

View File

@ -40,7 +40,7 @@ as if you unpacked a current LAMMPS tarball, with the exception, that
the HTML documentation files are not included. They can be fetched
from the LAMMPS website by typing "make fetch" in the doc directory.
Or they can be generated from the content provided in doc/src by
typing "make html" from the the doc directory.
typing "make html" from the doc directory.
After initial checkout, as bug fixes and new features are added to
LAMMPS, as listed on "this page"_Errors_bugs.html, you can stay

View File

@ -92,8 +92,8 @@ commands)
implicit solvent potentials: hydrodynamic lubrication, Debye
force-field compatibility with common CHARMM, AMBER, DREIDING, \
OPLS, GROMACS, COMPASS options
access to "KIM archive"_http://openkim.org of potentials via \
"pair kim"_pair_kim.html
access to the "OpenKIM Repository"_http://openkim.org of potentials via \
"kim_init, kim_interactions, and kim_query"_kim_commands.html commands
hybrid potentials: multiple pair, bond, angle, dihedral, improper \
potentials can be used in one simulation
overlaid potentials: superposition of multiple pair potentials :ul

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -1,7 +1,7 @@
<!-- HTML_ONLY -->
<HEAD>
<TITLE>LAMMPS Users Manual</TITLE>
<META NAME="docnumber" CONTENT="30 Apr 2019 version">
<META NAME="docnumber" CONTENT="7 Aug 2019 version">
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
</HEAD>
@ -21,7 +21,7 @@
:line
LAMMPS Documentation :c,h1
30 Apr 2019 version :c,h2
7 Aug 2019 version :c,h2
"What is a LAMMPS version?"_Manual_version.html

Binary file not shown.

View File

@ -208,7 +208,7 @@ available on your system.
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#compress on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -338,35 +338,51 @@ KIM package :link(PKG-KIM),h4
[Contents:]
A "pair_style kim"_pair_kim.html command which is a wrapper on the
Knowledge Base for Interatomic Models (KIM) repository of interatomic
potentials, enabling any of them to be used in LAMMPS simulations.
Also a "kim_query"_kim_query.html command, which allows to query
the OpenKIM database for stored properties.
This package contains a set of commands that serve as a wrapper on the
"Open Knowledgebase of Interatomic Models (OpenKIM)"_https://openkim.org
repository of interatomic models (IMs)
enabling compatible ones to be used in LAMMPS simulations.
This includes "kim_init and kim_interactions"_kim_commands.html
commands to select, initialize and instantiate the IM, and a
"kim_query"_kim_commands.html command to perform web queries
for material property predictions of OpenKIM IMs.
Support for KIM IMs that conform to the
"KIM Application Programming Interface (API)"_https://openkim.org/kim-api/
is provided by the "pair_style kim"_pair_kim.html command.
To use this package you must have the KIM library available on your
system.
NOTE: The command {pair_style kim} is called by {kim_interactions} and
is not recommended to be directly used in input scripts.
To use this package you must have the KIM API library available on your
system. The KIM API is available for download on the
"OpenKIM website"_https://openkim.org/kim-api/.
When installing LAMMPS from binary, the kim-api package
is a dependency that is automatically downloaded and installed.
Information about the KIM project can be found at its website:
https://openkim.org. The KIM project is led by Ellad Tadmor and Ryan
Elliott (U Minnesota).
"https://openkim.org"_https://openkim.org.
The KIM project is led by Ellad Tadmor and Ryan Elliott (U Minnesota)
and is funded by the "National Science Foundation"_https://www.nsf.gov/.
[Authors:] Ryan Elliott (U Minnesota) is the main developer for the KIM
API which the "pair_style kim"_pair_kim.html command uses. He
developed the pair style.
API and the {pair_style kim} command. Axel Kohlmeyer (Temple U) and
Ellad Tadmor (U Minnesota) contributed to the "kim_commands"_kim_commands.html
interface in close collaboration with Ryan Elliott.
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#kim on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
"kim_commands"_kim_commands.html
"pair_style kim"_pair_kim.html
src/KIM: filenames -> commands
src/KIM/README
lib/kim/README
"pair_style kim"_pair_kim.html
examples/kim :ul
:line
@ -404,7 +420,7 @@ lib/kokkos.
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#kokkos on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -477,7 +493,7 @@ Cawkwell, Anders Niklasson, and Christian Negre.
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#latte on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -654,7 +670,7 @@ University of Chicago.
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#mscg on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -686,7 +702,7 @@ and Vincent Natoli (Stone Ridge Technolgy).
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#opt on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -706,7 +722,7 @@ PERI package :link(PKG-PERI),h4
An atom style, several pair styles which implement different
Peridynamics materials models, and several computes which calculate
diagnostics. Peridynamics is a a particle-based meshless continuum
diagnostics. Peridynamics is a particle-based meshless continuum
model.
[Authors:] The original package was created by Mike Parks (Sandia).
@ -743,7 +759,7 @@ connections at hinge points.
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#poems on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -775,7 +791,7 @@ lib/python/README for more details.
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#python on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -905,12 +921,14 @@ SPIN package :link(PKG-SPIN),h4
Model atomic magnetic spins classically, coupled to atoms moving in
the usual manner via MD. Various pair, fix, and compute styles.
[Author:] Julian Tranchida (Sandia).
[Author:] Julien Tranchida (Sandia).
[Supporting info:]
src/SPIN: filenames -> commands
"Howto spins"_Howto_spins.html
"pair_style spin/dipole/cut"_pair_spin_dipole.html
"pair_style spin/dipole/long"_pair_spin_dipole.html
"pair_style spin/dmi"_pair_spin_dmi.html
"pair_style spin/exchange"_pair_spin_exchange.html
"pair_style spin/magelec"_pair_spin_magelec.html
@ -965,7 +983,7 @@ and LBNL.
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#voronoi on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -982,9 +1000,9 @@ USER-ADIOS package :link(PKG-USER-ADIOS),h4
[Contents:]
ADIOS is a high-performance I/O library. This package implements the
ADIOS is a high-performance I/O library. This package implements the
dump "atom/adios" and dump "custom/adios" commands to write data using
the ADIOS library.
the ADIOS library.
[Authors:] Norbert Podhorszki (ORNL) from the ADIOS developer team.
@ -1017,7 +1035,7 @@ atomic information to continuum fields.
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#user-atc on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -1044,7 +1062,7 @@ model.
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#user-awpmd on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -1173,7 +1191,7 @@ USER-PLUMED package :link(PKG-USER-PLUMED),h4
The fix plumed command allows you to use the PLUMED free energy plugin
for molecular dynamics to analyze and bias your LAMMPS trajectory on
the fly. The PLUMED library is called from within the LAMMPS input
script by using the "fix plumed _fix_plumed.html command.
script by using the "fix plumed"_fix_plumed.html command.
[Authors:] The "PLUMED library"_#PLUMED is written and maintained by
Massimilliano Bonomi, Giovanni Bussi, Carlo Camiloni and Gareth
@ -1184,7 +1202,7 @@ Tribello.
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#user-plumed on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -1229,7 +1247,7 @@ isothermal, isoenergetic, isobaric and isenthalpic conditions are
included. These enable long timesteps via the Shardlow splitting
algorithm.
[Authors:] Jim Larentzos (ARL), Tim Mattox (Engility Corp), and and John
[Authors:] Jim Larentzos (ARL), Tim Mattox (Engility Corp), and John
Brennan (ARL).
[Supporting info:]
@ -1362,7 +1380,7 @@ H5MD format.
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#user-h5md on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -1400,7 +1418,7 @@ NOTE: the USER-INTEL package contains styles that require using the
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#user-intel on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -1537,7 +1555,7 @@ USER-MESO package :link(PKG-USER-MESO),h4
[Contents:]
Several extensions of the the dissipative particle dynamics (DPD)
Several extensions of the dissipative particle dynamics (DPD)
method. Specifically, energy-conserving DPD (eDPD) that can model
non-isothermal processes, many-body DPD (mDPD) for simulating
vapor-liquid coexistence, and transport DPD (tDPD) for modeling
@ -1620,7 +1638,7 @@ at
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#user-molfile on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -1660,7 +1678,7 @@ tools:
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#user-netcdf on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -1704,7 +1722,7 @@ install/un-install the package and build LAMMPS in the usual manner:
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#user-omp on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -1788,7 +1806,7 @@ without changes to LAMMPS itself.
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#user-qmmm on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -1846,7 +1864,7 @@ on your system.
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#user-quip on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -1964,7 +1982,7 @@ Dynamics, Ernst Mach Institute, Germany).
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#user-smd on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
@ -2090,7 +2108,7 @@ system.
[Install:]
This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
instructions"_Build_extras.html#user-vtk on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]

View File

@ -180,7 +180,7 @@ doubles is returned, one value per atom, which you can use via normal
Python subscripting. The values will be zero for atoms not in the
specified group.
The get_thermo() method returns returns the current value of a thermo
The get_thermo() method returns the current value of a thermo
keyword as a float.
The get_natoms() method returns the total number of atoms in the

View File

@ -242,7 +242,7 @@ processors.
Running with multiple partitions can be useful for running
"multi-replica simulations"_Howto_replica.html, where each replica
runs on on one or a few processors. Note that with MPI installed on a
runs on one or a few processors. Note that with MPI installed on a
machine (e.g. your desktop), you can run on more (virtual) processors
than you have physical processors.

View File

@ -93,7 +93,7 @@ monitor thread utilization and load balance is provided. A new {Thread
timings} section is also added, which lists the time spent in reducing
the per-thread data elements to the storage for non-threaded
computation. These thread timings are measured for the first MPI rank
only and and thus, because the breakdown for MPI tasks can change from
only and thus, because the breakdown for MPI tasks can change from
MPI rank to MPI rank, this breakdown can be very different for
individual ranks. Here is an example output for this section:

View File

@ -104,7 +104,7 @@ code (with a performance penalty due to having data transfers between
host and GPU). :ulb,l
The GPU package requires neighbor lists to be built on the CPU when using
exclusion lists, hybrid pair styles, or a triclinic simulation box. :l
exclusion lists, or a triclinic simulation box. :l
The GPU package can be compiled for CUDA or OpenCL and thus supports
both, Nvidia and AMD GPUs well. On Nvidia hardware, using CUDA is typically

View File

@ -46,16 +46,15 @@ software version 7.5 or later must be installed on your system. See
the discussion for the "GPU package"_Speed_gpu.html for details of how
to check and do this.
NOTE: Kokkos with CUDA currently implicitly assumes, that the MPI
library is CUDA-aware and has support for GPU-direct. This is not
always the case, especially when using pre-compiled MPI libraries
provided by a Linux distribution. This is not a problem when using
only a single GPU and a single MPI rank on a desktop. When running
with multiple MPI ranks, you may see segmentation faults without
GPU-direct support. These can be avoided by adding the flags "-pk
kokkos gpu/direct off"_Run_options.html to the LAMMPS command line or
by using the command "package kokkos gpu/direct off"_package.html in
the input file.
NOTE: Kokkos with CUDA currently implicitly assumes that the MPI library
is CUDA-aware. This is not always the case, especially when using
pre-compiled MPI libraries provided by a Linux distribution. This is not
a problem when using only a single GPU with a single MPI rank. When
running with multiple MPI ranks, you may see segmentation faults without
CUDA-aware MPI support. These can be avoided by adding the flags "-pk
kokkos cuda/aware off"_Run_options.html to the LAMMPS command line or by
using the command "package kokkos cuda/aware off"_package.html in the
input file.
[Building LAMMPS with the KOKKOS package:]
@ -111,16 +110,10 @@ Makefile.kokkos_mpi_only) will give better performance than the OpenMP
back end (i.e. Makefile.kokkos_omp) because some of the overhead to make
the code thread-safe is removed.
NOTE: The default for the "package kokkos"_package.html command is to
use "full" neighbor lists and set the Newton flag to "off" for both
pairwise and bonded interactions. However, when running on CPUs, it
will typically be faster to use "half" neighbor lists and set the
Newton flag to "on", just as is the case for non-accelerated pair
styles. It can also be faster to use non-threaded communication. Use
the "-pk kokkos" "command-line switch"_Run_options.html to change the
default "package kokkos"_package.html options. See its doc page for
details and default settings. Experimenting with its options can
provide a speed-up for specific calculations. For example:
NOTE: Use the "-pk kokkos" "command-line switch"_Run_options.html to
change the default "package kokkos"_package.html options. See its doc
page for details and default settings. Experimenting with its options
can provide a speed-up for specific calculations. For example:
mpirun -np 16 lmp_kokkos_mpi_only -k on -sf kk -pk kokkos newton on neigh half comm no -in in.lj # Newton on, Half neighbor list, non-threaded comm :pre
@ -190,19 +183,18 @@ tasks/node. The "-k on t Nt" command-line switch sets the number of
threads/task as Nt. The product of these two values should be N, i.e.
256 or 264.
NOTE: The default for the "package kokkos"_package.html command is to
use "full" neighbor lists and set the Newton flag to "off" for both
pairwise and bonded interactions. When running on KNL, this will
typically be best for pair-wise potentials. For many-body potentials,
using "half" neighbor lists and setting the Newton flag to "on" may be
faster. It can also be faster to use non-threaded communication. Use
the "-pk kokkos" "command-line switch"_Run_options.html to change the
default "package kokkos"_package.html options. See its doc page for
details and default settings. Experimenting with its options can
provide a speed-up for specific calculations. For example:
NOTE: The default for the "package kokkos"_package.html command when
running on KNL is to use "half" neighbor lists and set the Newton flag
to "on" for both pairwise and bonded interactions. This will typically
be best for many-body potentials. For simpler pair-wise potentials, it
may be faster to use a "full" neighbor list with Newton flag to "off".
Use the "-pk kokkos" "command-line switch"_Run_options.html to change
the default "package kokkos"_package.html options. See its doc page for
details and default settings. Experimenting with its options can provide
a speed-up for specific calculations. For example:
mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos comm no -in in.lj # Newton off, full neighbor list, non-threaded comm
mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos newton on neigh half comm no -in in.reax # Newton on, half neighbor list, non-threaded comm :pre
mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos comm host -in in.reax # Newton on, half neighbor list, threaded comm
mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos newton off neigh full comm no -in in.lj # Newton off, full neighbor list, non-threaded comm :pre
NOTE: MPI tasks and threads should be bound to cores as described
above for CPUs.
@ -214,19 +206,20 @@ supports.
[Running on GPUs:]
Use the "-k" "command-line switch"_Run_options.html to
specify the number of GPUs per node. Typically the -np setting of the
mpirun command should set the number of MPI tasks/node to be equal to
the number of physical GPUs on the node. You can assign multiple MPI
tasks to the same GPU with the KOKKOS package, but this is usually
only faster if significant portions of the input script have not
been ported to use Kokkos. Using CUDA MPS is recommended in this
scenario. Using a CUDA-aware MPI library with support for GPU-direct
is highly recommended. GPU-direct use can be avoided by using
"-pk kokkos gpu/direct no"_package.html.
As above for multi-core CPUs (and no GPU), if N is the number of
physical cores/node, then the number of MPI tasks/node should not
exceed N.
Use the "-k" "command-line switch"_Run_options.html to specify the
number of GPUs per node. Typically the -np setting of the mpirun command
should set the number of MPI tasks/node to be equal to the number of
physical GPUs on the node. You can assign multiple MPI tasks to the same
GPU with the KOKKOS package, but this is usually only faster if some
portions of the input script have not been ported to use Kokkos. In this
case, also packing/unpacking communication buffers on the host may give
speedup (see the KOKKOS "package"_package.html command). Using CUDA MPS
is recommended in this scenario.
Using a CUDA-aware MPI library is highly recommended. CUDA-aware MPI use can be
avoided by using "-pk kokkos cuda/aware no"_package.html. As above for
multi-core CPUs (and no GPU), if N is the number of physical cores/node,
then the number of MPI tasks/node should not exceed N.
-k on g Ng :pre
@ -236,19 +229,19 @@ one or more nodes, each with two GPUs:
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -in in.lj # 1 node, 2 MPI tasks/node, 2 GPUs/node
mpirun -np 32 -ppn 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -in in.lj # 16 nodes, 2 MPI tasks/node, 2 GPUs/node (32 GPUs total) :pre
NOTE: The default for the "package kokkos"_package.html command is to
use "full" neighbor lists and set the Newton flag to "off" for both
pairwise and bonded interactions, along with threaded communication.
When running on Maxwell or Kepler GPUs, this will typically be
best. For Pascal GPUs, using "half" neighbor lists and setting the
Newton flag to "on" may be faster. For many pair styles, setting the
neighbor binsize equal to the ghost atom cutoff will give speedup.
Use the "-pk kokkos" "command-line switch"_Run_options.html to change
the default "package kokkos"_package.html options. See its doc page
for details and default settings. Experimenting with its options can
provide a speed-up for specific calculations. For example:
NOTE: The default for the "package kokkos"_package.html command when
running on GPUs is to use "full" neighbor lists and set the Newton flag
to "off" for both pairwise and bonded interactions, along with threaded
communication. When running on Maxwell or Kepler GPUs, this will
typically be best. For Pascal GPUs, using "half" neighbor lists and
setting the Newton flag to "on" may be faster. For many pair styles,
setting the neighbor binsize equal to twice the CPU default value will
give speedup, which is the default when running on GPUs. Use the "-pk
kokkos" "command-line switch"_Run_options.html to change the default
"package kokkos"_package.html options. See its doc page for details and
default settings. Experimenting with its options can provide a speed-up
for specific calculations. For example:
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos binsize 2.8 -in in.lj # Set binsize = neighbor ghost cutoff
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighbor list, set binsize = neighbor ghost cutoff :pre
NOTE: For good performance of the KOKKOS package on GPUs, you must

View File

@ -77,6 +77,7 @@ Post-processing tools :h3
"python"_#pythontools,
"reax"_#reax_tool,
"smd"_#smd,
"spin"_#spin,
"xmgrace"_#xmgrace :tb(c=6,ea=c,a=l)
Miscellaneous tools :h3
@ -511,6 +512,20 @@ Ernst Mach Institute in Germany (georg.ganzenmueller at emi.fhg.de).
:line
spin tool :h4,link(spin)
The spin sub-directory contains a C file interpolate.c which can
be compiled and used to perform a cubic polynomial interpolation of
the MEP following a GNEB calculation.
See the README file in tools/spin/interpolate_gneb for more details.
This tool was written by the SPIN package author, Julien
Tranchida at Sandia National Labs (jtranch at sandia.gov, and by Aleksei
Ivanov, at University of Iceland (ali5 at hi.is).
:line
vim tool :h4,link(vim)
The files in the tools/vim directory are add-ons to the VIM editor

View File

@ -143,6 +143,16 @@ instructions on how to use the accelerated styles effectively.
:line
[Restart info:]
This angle style writes the settings for the "angle_style table"
command to "binary restart files"_restart.html, so a angle_style
command does not need to specified in an input script that reads a
restart file. However, the coefficient information is not stored in
the restart file, since it is tabulated in the potential files. Thus,
angle_coeff commands do need to be specified in the restart input
script.
[Restrictions:]
This angle style can only be used if LAMMPS was built with the

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