Compare commits

...

641 Commits

Author SHA1 Message Date
a52ddf8759 patch 29Jun18 2018-06-30 08:03:24 -06:00
0f71ed1fec Merge pull request #983 from akohlmey/python-module-typo
fix typo in python module
2018-06-29 17:23:45 -06:00
43ffee980d fix typo in python module 2018-06-29 19:07:14 -04:00
560b34aad0 Merge pull request #982 from lammps/doc-tweak-again
couple more doc tweaks - sigh
2018-06-29 16:35:46 -06:00
ea35235ca0 couple more doc tweaks - sigh 2018-06-29 16:12:25 -06:00
474b59a1f3 Merge pull request #981 from lammps/latte-tweak
fix glitch in ABIVERSION in fix latte
2018-06-29 16:03:45 -06:00
c63d77d0b8 Merge pull request #980 from lammps/spin-doc
added SPIN package to Section_packages doc
2018-06-29 15:26:36 -06:00
bf9646cbbe fix glitch in ABIVERSION in fix latte 2018-06-29 15:08:19 -06:00
d2dd76e655 added SPIN package to Section_packages doc 2018-06-29 14:56:27 -06:00
d649a6fe38 Merge pull request #979 from rbberger/small-python-fix
Fixes issue #975
2018-06-29 14:55:25 -06:00
a8b7153f4e Fixes issue #975 2018-06-29 16:03:38 -04:00
c3fe26a614 Merge pull request #977 from akohlmey/collected-small-changes
Collected small changes for the next patch release
2018-06-29 13:57:14 -06:00
bbe77e4c31 Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes 2018-06-29 15:33:23 -04:00
b819018084 Revert change to CMakeLists.txt which only works with 3.9+ 2018-06-29 15:31:15 -04:00
6900f9edf9 Merge branch 'master' into collected-small-changes 2018-06-29 14:59:02 -04:00
11a8d4e1c3 Merge pull request #978 from lammps/new-makefiles
new ARM makefiles, also some doc tweaks
2018-06-29 12:53:58 -06:00
d9396df5b9 Merge pull request #976 from akohlmey/collected-cmake-changes
Collected cmake changes
2018-06-29 12:53:18 -06:00
0e047f2786 Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes 2018-06-29 12:05:28 -04:00
ec99b0957c new ARM makefiles, also some doc tweaks 2018-06-29 08:06:51 -06:00
75a3968039 multiple small tweaks to compute entropy/atom
- improve error detection and messages
- avoid sigma/cutoff to be zero (and thus division by zero)
- move new/delete of temporary storage outside of loop
2018-06-29 06:48:11 -04:00
a3a2981cd2 remove unused class member 2018-06-29 01:22:35 -04:00
4f9c0456e6 eliminate variable length arrays from compute entropy/atom 2018-06-29 01:22:26 -04:00
ad4720ef00 make various compiler instrumentation flags "advanced" options 2018-06-29 01:00:20 -04:00
946bca82c5 add options to support GNU gcc sanitizers 2018-06-29 00:56:35 -04:00
85d7f7ddc9 Merge branch 'cmake_presets' of https://github.com/rbberger/lammps into collected-cmake-changes 2018-06-29 00:23:52 -04:00
ee0e9f94f1 Merge branch 'cmake_misc' of https://github.com/junghans/lammps into collected-cmake-changes 2018-06-29 00:16:19 -04:00
9f1aabea50 Merge branch 'cmake-fix-check-for-installed' of https://github.com/akohlmey/lammps into collected-cmake-changes 2018-06-29 00:13:23 -04:00
b3bc5fd823 Merge branch 'record-compile-flags' of https://github.com/akohlmey/lammps into collected-cmake-changes 2018-06-29 00:09:51 -04:00
e0dc53ab3f Simplify CreateStyleHeader CMake utility 2018-06-28 14:22:37 -04:00
206d349d5b Simplify DetectBuildSystemConflict CMake utility 2018-06-28 14:16:56 -04:00
4d629872d8 CMake preset docs wording 2018-06-28 14:05:25 -04:00
7a783870e2 Merge remote-tracking branch 'origin/master' into cmake_misc 2018-06-28 11:19:54 -06:00
0df8587c18 cmake: make GPU_ARCH free form 2018-06-28 11:13:51 -06:00
ad3d049edd Merge pull request #974 from akohlmey/moltemplate-2.8.6
Update moltemplate tool to version 2.8.6
2018-06-28 07:34:52 -06:00
7abc960d39 import moltemplate 2.8.6 from andrew jewett 2018-06-28 08:18:35 -04:00
23fb0370a9 Update CMake documentation 2018-06-28 00:39:24 -04:00
a043ddcb82 Merge branch 'master' into cmake_misc 2018-06-27 21:12:25 -04:00
a2b2507121 cmake: remove ENABLE_ALL option 2018-06-27 19:02:10 -06:00
6bd5a3d69b Merge pull request #935 from julient31/spin_origin
Spin origin
2018-06-27 16:58:27 -06:00
086e83456b Merge pull request #970 from jrgissing/bond/react-optional-EdgeIDs
Bond/react: edge IDs optional
2018-06-27 16:52:41 -06:00
1db4705a3d Merge pull request #966 from wmbrownIntel/user-intel-2018Jun
Intel Package: Bug fix when using LRT with minimize and for virial calculation with GNU...
2018-06-27 16:52:16 -06:00
8e77be0848 Merge pull request #967 from lammps/latte-tweak2
small changes to last LATTE PR, including xControl to upper case
2018-06-27 16:44:25 -06:00
fc3694189e update CODEOWNERS file for LATTE 2018-06-27 17:01:49 -04:00
75aacfd17f add explanation comment to ABIVERSION define 2018-06-27 16:58:58 -04:00
08552fefe9 add md5 checksum support to Install.py for LATTE 2018-06-27 16:52:28 -04:00
20fe0cd9d0 Define CMake presets 2018-06-27 16:41:10 -04:00
8f4b7161c5 README: add cmake 2018-06-27 14:12:34 -06:00
38cdc1828d insert spin package into make and cmake build system 2018-06-27 15:29:24 -04:00
9353569d30 cmake: add KOKKOS_ARCH to summary 2018-06-27 13:25:56 -06:00
868f5711a2 cmake: fix summary for GPU 2018-06-27 13:23:35 -06:00
7ffab9a228 cmake: added INJECT_KNL_FLAG option 2018-06-27 13:22:22 -06:00
58559d9e62 update src/.gitignor for SPIN package sources 2018-06-27 14:08:54 -04:00
3eed23d3f7 whitespace cleanup 2018-06-27 14:07:09 -04:00
d3b83885d1 make SPIN package examples consistent with other examples and add reference logs 2018-06-27 14:06:56 -04:00
3549345830 whitespace cleanup 2018-06-27 12:30:19 -04:00
244963aa19 fix incorrect scaling of emag bug 2018-06-27 12:29:34 -04:00
264f832b18 fix formatting of dump_modify docs 2018-06-27 07:58:57 -04:00
5c4bf8ac47 bond/react: optional EdgeIDs take2 2018-06-26 20:40:02 -06:00
6008cee6aa ...and replace with symbolic links 2018-06-26 16:02:56 -04:00
f33a2c982c remove redundant potential files 2018-06-26 16:01:54 -04:00
8e14143908 Merge pull request #925 from PabloPiaggi/pair_entropy
Pair entropy fingerprint
2018-06-26 13:16:09 -06:00
e6ef8ce5ee Merge pull request #968 from oywg11/github-tutorial-update
New paramteters for potential #839
2018-06-26 13:14:22 -06:00
ebe622ff7d make edge atoms optional 2018-06-26 09:35:38 -06:00
f94cdf856c Merge pull request #18 from lammps/master
rebase
2018-06-26 10:15:52 -05:00
e2622f0230 Remap the paragraph 2018-06-26 17:27:55 +03:00
e4dd6dec40 Refine the documentation 2018-06-26 16:36:16 +03:00
b0126dd9d6 updata potential file CH.KC 2018-06-26 16:09:42 +03:00
f36e1a2cdc Changed default deltabin from 2 to 3 2018-06-26 13:06:04 +02:00
c9d147c366 New paramteters for potential #839 2018-06-26 11:09:48 +03:00
19f81e0802 Add library functions for accessing LAMMPS configuration 2018-06-25 23:56:18 -04:00
49a91db0b2 small changes to last LATTE PR, including xControl to upper case 2018-06-25 17:43:31 -06:00
bad750eb2b move LATTE ABI version constant into a define at the top of fix latte, as suggested by @sjplimp 2018-06-25 19:34:10 -04:00
5e48565761 Merge pull request #961 from cnegre/newsystem
Added newsystem flag to be passed to latte
2018-06-25 17:20:57 -06:00
af91f7fa5d LAMMPS does not build on windows without this one 2018-06-25 18:13:41 -04:00
0cd86bab22 Added new checksum value 2018-06-25 14:58:49 -06:00
bec82e4045 Added new checksum value 2018-06-25 14:23:44 -06:00
06b3209ad8 Commit JT 062518 2018-06-25 09:56:39 -06:00
2fd45050cd Merge branch 'newsystem' of https://github.com/cnegre/lammps into newsystem 2018-06-25 08:44:57 -06:00
8ffa96c9e9 Added fix latte 2018-06-25 08:43:00 -06:00
6a9251245c update MD5 sum for latte-v1.2.0.tar.gz src archive 2018-06-25 09:43:37 -04:00
cb2cf5b773 cmake: fixed comment 2018-06-25 06:31:09 -06:00
c4d0994d5e cmake: fixed a typo 2018-06-25 06:29:24 -06:00
e2c03f0596 Simplify build system conflict checks
- removes redundant code for conflict checks
- updates and expands original check to report fatal error instead of ignoring
  files
- removes obsolete DetectAndRemovePackageHeader and RemovePackageHeader utility
  functions which are no longer needed
- adds utility function DetectBuildSystemConflict, which loops over files and
  reports an error if they exist in the lammps src directory.
- updates definition of LAMMPS_SOURCE_DIR, LAMMPS_LIB_SOURCE_DIR and
  LAMMPS_LIB_BINARY_DIR to be absolute paths. This improves instructions in
  error messages
2018-06-25 03:09:42 -04:00
9108306c11 Shorter entropy/atom example 2018-06-24 00:36:09 +02:00
86519ce213 Rename compute to entropy/atom 2018-06-24 00:25:07 +02:00
0b1d4a1696 liblammps.pc: fix lib suffix 2018-06-22 17:06:39 -06:00
264e4fd3b1 cmake: fix for <cmake-3.4 2018-06-22 17:05:55 -06:00
d237625d2a patch 22Jun18 2018-06-22 14:08:09 -06:00
ce0f3daad6 cmake: don't include quiet packages in summary 2018-06-22 11:43:52 -06:00
cb7b23e220 cmake: add BUILD_EXE option 2018-06-22 11:11:09 -06:00
3f17d33fbe cmake: add BUILD_LIB option 2018-06-22 11:06:12 -06:00
510834cb7b Merge pull request #960 from lammps/latte-tweak
made latte.in compatible with v1.1.1 and updated log files
2018-06-22 10:18:19 -06:00
2165a2aa9b Changed version on cmakelist and install.py 2018-06-22 10:04:20 -06:00
ac41cc2c9a cmake: add GPU_PREC status output 2018-06-22 09:02:10 -06:00
f5f73b0172 Merge pull request #958 from ndtrung81/gpu-updates
Bug fixes and updates to the GPU package
2018-06-22 08:52:20 -06:00
35f5a685f6 small change to preempt a possible merge conflict 2018-06-22 08:19:49 -04:00
62984c1de0 small tweaks: improve messages and comments 2018-06-22 08:02:17 -04:00
04d040b863 update make purge list and fix checking for styles and installed package files in cmake 2018-06-22 07:57:03 -04:00
92f0f19df6 make info config output of compile time defines consistent with lmp_<machine> -h 2018-06-22 07:26:33 -04:00
dcdc7877a4 make compile time output more consistent and complete 2018-06-22 07:05:09 -04:00
2f11f2d7b2 query compile time settings in Info class 2018-06-22 06:59:09 -04:00
e25b6c81ee use a more conventional way to generate and include the lmpinstalledpkgs.h file 2018-06-22 06:58:31 -04:00
80cca7c4c1 make has_XXX_support functions static, so they can be called without having to create an instance of Info, which requires a fully instantiation of the LAMMPS and Pointers classes 2018-06-22 06:57:05 -04:00
2fe0eabc09 Intel Package: Bug fix when using LRT with minimize. Bug fix for virial calculation when using GNU compilers. Most of framework for adding hybrid support is now in place. 2018-06-22 01:52:55 -07:00
7da8e69b45 add code to create lmpinstalledpkgs.h file with cmake 2018-06-21 19:08:09 -04:00
e8e1349da4 make the list of installed packages a static const class member of the LAMMPS class
through this change, the list of packages becomes accessible for the
library interface and the python wrapper, e.g. to check whether a
prerequisite packages is installed (simpler/faster for quick highlevel
check than having to try instantiating a specific style).
2018-06-21 19:07:16 -04:00
dc132c8bf1 Added newsystem flag to be passed to latte 2018-06-21 15:40:20 -06:00
f0a2c57401 Merge pull request #959 from rbberger/cmake_documentation
Expand cmake documentation
2018-06-21 13:57:48 -06:00
4ca3d30db7 Add BUILD_MPI and BUILD_OMP in cmake docs 2018-06-21 14:45:00 -04:00
cbfb751e92 made latte.in compatible with v1.1.1 and updated log files 2018-06-21 11:10:29 -06:00
65c895721f Update README.md to reflect change ENABLE_* to PKG_* 2018-06-21 12:32:46 -04:00
bfacfc46be Add TOC to README.md 2018-06-21 12:32:46 -04:00
919d95d375 Fill in package descriptions 2018-06-21 12:32:46 -04:00
258185690d Fixup GitHub markup version 2018-06-21 12:32:46 -04:00
cea0227f14 Expand CMake build documentation 2018-06-21 12:32:32 -04:00
3e58ebea4f Merge pull request #957 from akohlmey/collected_small_fixes
Collected small changes and bugfixes for next patch release
2018-06-21 08:49:18 -06:00
7a22612bea Merge pull request #956 from cnegre/latte_examples
Added boxrel example and simplified latte.in
2018-06-21 08:48:56 -06:00
9805b5d34a Merge pull request #955 from junghans/fortran_linking
cmake: implicit fortran libs need to linked last
2018-06-21 08:48:26 -06:00
9f3cb83fb3 use a list instead of a string to store the names of installed packages 2018-06-20 17:57:17 -04:00
9f3fae1c47 record 3d-FFT array packaging algorithm 2018-06-20 17:23:37 -04:00
0e603493af fix bug that made compilation fail with no packages installed 2018-06-20 17:23:37 -04:00
7f0c88c74b refactor the gathering of compile time settings after discussion with @sjplimp
- remove feature to record the compilation time and date
- remove 'echo -n' based "progress bar"
- update output format for "lmp_machine -h" to be consistent with help output
- move generation of lmpinstalledpkgs.h to be a separate target depending on
  all sources and headers in src folder. this way it is only regenerated
  when files are modified or packages installed
2018-06-20 17:23:37 -04:00
1f770a6a8f print information about serial/parallel and MPI version for known libraries 2018-06-20 17:23:37 -04:00
596acaf4d2 give visual feedback on when the compile starts since gathering the package information can take time 2018-06-20 17:23:37 -04:00
472a1a501d add lmpinstalledpks.h to the list of purgable files 2018-06-20 17:23:37 -04:00
eb485afc45 fix logic bug that would not create lmpinstalledpkgs.h when there was none 2018-06-20 17:23:37 -04:00
4265e68ff8 record installed packages 2018-06-20 17:23:37 -04:00
90f0586c9e include compilation date as an example for embedding info, that is not a define 2018-06-20 17:23:37 -04:00
c371ce1005 include date when LAMMPS was compiled 2018-06-20 17:23:37 -04:00
e3a528a493 report compile time options (-DLAMMPS_XXX) in help output and info config 2018-06-20 17:23:37 -04:00
28504e91c0 Added missing source files for born/coul/wolf/cs in the gpu library 2018-06-20 15:08:24 -05:00
47482afbc1 add more thorough checks on parsing reaxff force field and signal when the lgvdw setting is correct. 2018-06-20 15:47:32 -04:00
7d3a549de9 remove entries that are not compatible with lgvdw yes and not included in the publication
closes #876
2018-06-20 14:16:34 -04:00
a9b794b2ab Updates to the core-shell gpu pair styles 2018-06-20 10:43:13 -05:00
3ae8fdccd8 Updated the kernels for born/coul/long/cs and coul/long/cs gpu styles 2018-06-19 16:22:00 -05:00
70a7b37614 Updated pair coul/long/cs and born/coul/long/cs; updated gpu neighbor builds to support core-shell styles where r2 can be tiny. 2018-06-19 15:50:02 -05:00
036647c102 correct sign of virial tally in fix smd. issue reported by Dinesh SD on lammps-users 2018-06-19 16:19:37 -04:00
37b901eadb Added boxrel example and simplified latte.in 2018-06-19 11:12:28 -06:00
4a88f53d22 adjust input files for changed paths 2018-06-18 19:17:25 -04:00
d4861e71d2 integrate SPIN package into documentation, fix links and make it consistent 2018-06-18 18:36:30 -04:00
5a3ef99272 cmake: implicit fortran libs need to linked last 2018-06-18 16:11:31 -06:00
605b4dca22 fix overlooked merge conflict 2018-06-18 18:09:59 -04:00
dade67664d restore bugfix for refrences 2018-06-18 18:07:26 -04:00
93d6510d34 restore deleted file 2018-06-18 18:02:40 -04:00
4f8d1893e9 restore fix for formatting cleanup 2018-06-18 18:01:28 -04:00
7c7a80b31a restore deleted file 2018-06-18 17:59:22 -04:00
da5931d65d whitespace cleanup 2018-06-18 17:55:12 -04:00
83ae0ad26f remove unused code 2018-06-18 17:47:59 -04:00
b189a328ed source code formatting cleanups 2018-06-18 17:00:23 -04:00
469b67a39b remove bogus file 2018-06-18 17:00:01 -04:00
1d0773d10d remove redundant statement 2018-06-18 16:50:24 -04:00
03a7d1cd5d Merge pull request #933 from rtoijala/fix_dt_reset_energy
Limit atom energy change in fix dt/reset
2018-06-18 13:43:03 -06:00
08331da93d Merge pull request #950 from martok/subst-equal-fmt
Add support for inline format strings to immediate variable substitution
2018-06-18 13:42:24 -06:00
ab0f3debeb Merge pull request #948 from martok/variable-string
Variable style 'string' substitutes variables in definition
2018-06-18 10:50:36 -06:00
fe14bfd1d2 Merge pull request #951 from martok/meam-diaref-fix
Apply modifications to MEAM & MEAM/C as found by Kyung-Han Kang
2018-06-18 10:29:57 -06:00
d55c7039ee Merge pull request #943 from Pakketeretet2/improve-manifoldforce-warning
Improve fix manifoldforce warning
2018-06-18 10:09:18 -06:00
87dcef7115 Merge pull request #952 from rbberger/coverage
Add code coverage target to CMake
2018-06-18 10:08:31 -06:00
7e234497ff Merge pull request #953 from jrgissing/bond/react-update
Bond/react update
2018-06-18 10:08:06 -06:00
277b43b2fd Merge pull request #949 from jdevemy/master
Fix the tail correction with pair_nm
2018-06-18 10:07:26 -06:00
6f61ed2af5 Merge pull request #938 from akohlmey/collected-bugfixes
Collected bugfixes and updates
2018-06-18 10:06:55 -06:00
16cc613993 Merge pull request #920 from junghans/mscg
cmake: add DOWNLOAD_MSCG option
2018-06-18 10:06:16 -06:00
6842a527e0 Fixed bugs and added born/coul/long/cs/gpu and coul/long/cs/gpu, need tests 2018-06-18 00:15:28 -05:00
d094bf789c Updated GPU/Install.sh 2018-06-17 11:50:41 -05:00
3750e0a427 resolve newton setting and parallel disparities, improve syntax error catching 2018-06-16 11:13:52 -06:00
40c4461a78 Merge pull request #17 from lammps/master
rebase
2018-06-15 23:26:01 -06:00
d830fc2301 Inline find_program() for gcovr 2018-06-16 00:40:10 -04:00
265b6c261e Fixed bugs with lj/expand/coul/long and its gpu version 2018-06-15 23:38:37 -05:00
3411b0e576 add more code owners 2018-06-15 18:03:15 -04:00
47458f1ca0 Add code coverage target to CMake 2018-06-15 17:57:33 -04:00
c4bcb7e73d mention requirement to come after the box creation in Restrictions section 2018-06-15 17:52:54 -04:00
18b543179c fix typo 2018-06-15 17:47:23 -04:00
14c4438a72 update docs to reflect the state of reserving space for topology info with molecule files 2018-06-15 17:46:09 -04:00
acd20512f0 require that box is defined before molecule command is issued 2018-06-15 17:40:14 -04:00
5fcdfe6dcb describe the use of wildcards for adapting ranges of bond types 2018-06-15 17:35:43 -04:00
7c9afc1be2 change warning and move it do init() as discussed in PR #943 2018-06-15 17:27:23 -04:00
b2e6863d93 add reference log file. 2018-06-15 17:01:26 -04:00
cb887d48a1 include compute pentropy/atom in src/USER-MISC/README 2018-06-15 16:55:05 -04:00
9ef1bfe814 whitespace cleanup 2018-06-15 16:44:07 -04:00
76b85e4d25 rename source files for compute pentropy/atom to match the command name 2018-06-15 16:43:19 -04:00
8a2faff541 integrate compute pentropy/atom into the documentation tree 2018-06-15 16:40:25 -04:00
fe483a769f update makefiles in lib/linalg to support .F files in addition to .f files 2018-06-15 15:35:34 -04:00
f312fbfe32 update Install.py to use a specific numbered release version instead of master 2018-06-15 15:16:10 -04:00
f68c6dddb8 Apply modifications to MEAM & MEAM/C as found by Kyung-Han Kang 2018-06-15 12:33:38 +02:00
c5b51df06e Add support for inline format strings to immediate variable substitution 2018-06-14 14:17:37 +02:00
479cc9424d C include 2018-06-14 13:57:10 +02:00
673202d05f Bugfix for pair_nm and tail correction 2018-06-14 13:44:55 +02:00
3e79296dcf Variable style 'string' substitutes variables in definition 2018-06-14 13:10:08 +02:00
fcf9ed0fc2 Merge pull request #946 from b-v/patch-1
Update README.md
2018-06-13 13:01:15 -06:00
661848139c Merge pull request #926 from ndtrung81/gpu-updates
some updates to the GPU package
2018-06-13 12:57:01 -06:00
b-v
12d8370ec5 Update README.md 2018-06-12 23:03:33 +01:00
3c781afa6c Switched to standard C++ header files for pair lj/expand/coul/long in USER-MISC 2018-06-09 09:41:03 -05:00
37268e435b Merge remote-tracking branch 'origin/master' into mscg 2018-06-08 18:06:06 -06:00
29e555213c Merge pull request #924 from junghans/cmake_misc
miscellaneous CMake Fixes
2018-06-08 17:34:58 -06:00
965ac3cedd cmake: lower cmake requirement to 2.8.12 2018-06-08 16:18:02 -06:00
30e3e9ab88 cmake: simplify Fortran linkage 2018-06-08 16:14:28 -06:00
6cb0c2e9c5 Merge pull request #937 from stanmoore1/kk_bonds
Fix issues in Kokkos topology files
2018-06-08 15:42:40 -06:00
ebd93cac69 Merge pull request #930 from stanmoore1/kk_update
Update Kokkos library to v2.7.00
2018-06-08 15:42:05 -06:00
a2dd21dca5 Made statement in if have equal whitespace on either side. 2018-06-08 15:15:37 -04:00
e78ed7d044 Improved the warning message of fix_manifoldforce about incompatible min_style. 2018-06-08 15:11:59 -04:00
142de878f9 Kokkos doesn't yet support map_style hash, so use may_style array by default if Kokkos is enabled 2018-06-08 09:38:16 -06:00
4c28827aa1 JT commit 060518 2018-06-05 12:32:18 -06:00
5a383aa518 Reverted fix nve/manifold/rattle to upstream. 2018-06-04 12:26:26 -04:00
a4a3133b76 Switched to standard C++ header files for consistency with other source files 2018-06-01 23:13:49 -05:00
9dda907f7d Commit JT 060118 Changes Stan 2018-06-01 15:19:27 -06:00
fa5ecf88a5 change error->all to error->warning on pair style restartinfo bug 2018-06-01 16:13:05 -04:00
7ca794beb9 whitespace cleanup 2018-06-01 16:11:43 -04:00
c386bdddf9 Merge branch 'master' of https://www.github.com/lammps/lammps 2018-06-01 10:44:11 -04:00
56c3a0be29 support virtualenv on machines with python3 where it is called virtualenv-3 2018-05-31 19:03:28 -04:00
cf3095e938 document restartinfo bug message, add check to Pair::write_restart as well 2018-05-31 19:02:03 -04:00
6056c1db4d fix restart bug in pair style quip 2018-05-31 18:54:38 -04:00
38182dcc60 clarify docs on what energy is monitored
changes to the energy only consider the kinetic energy, so make that explicit in the augmented `fix dt/reset` docs
2018-05-31 17:32:19 -04:00
ef3c0dbf7b Merge branch 'molecule-template-validity-checks' of https://github.com/jrgissing/lammps into collected-bugfixes 2018-05-31 16:30:25 -04:00
4c18a07193 Merge branch 'fix/adapt-wildcard-bondtypes' of https://github.com/jrgissing/lammps into collected-bugfixes 2018-05-31 16:15:33 -04:00
e3e040227b Fix issues in Kokkos topology files 2018-05-30 12:31:20 -06:00
f2a6aa249f Commit2 JT 052918: doc 2018-05-29 17:18:45 -06:00
6457e5eedb Commit1 JT 052918 modifs files 2018-05-29 14:51:21 -06:00
c27e617fd8 Add logic to Makefile.kokkos 2018-05-29 11:33:18 -06:00
b9a8f91753 Limit atom energy change in fix dt/reset
Allow limiting of the maximum energy change of an atom in
fix dt/reset in addition to the existing distance limit.
Useful especially for high-energy irradiation.
2018-05-28 10:57:40 +03:00
95e259fe71 also include consistent type checks 2018-05-26 15:18:26 -06:00
69a9f1bf94 molecule templates sanity checks 2018-05-26 15:03:24 -06:00
e7773808a5 Merge pull request #14 from lammps/master
rebase
2018-05-26 14:38:13 -06:00
0368202d12 Merge pull request #929 from stanmoore1/snap_fix
Small bugfixes for Pair Snap
2018-05-26 14:07:19 -06:00
3ba87e52e9 fix/adapt wildcard bondtypes 2018-05-25 21:18:11 -06:00
1422b0413b Update Kokkos library to v2.7.00 2018-05-25 15:00:53 -06:00
18c6d7f289 Fix possible MPI deadlock in pair_snap 2018-05-24 15:31:49 -06:00
1b4068b575 Restore workaround for compiler bug in pair_snap.h 2018-05-24 15:31:22 -06:00
5f0e6d0aa7 Commit JT2 052418 2018-05-24 12:55:39 -06:00
99f4274483 Commit JT 052418 rm comments 2018-05-24 06:59:40 -06:00
341fa160fe Updated UCL_Device built with OpenCL to use platforms that support accelerators by default 2018-05-23 16:11:55 -05:00
102be8dd8b Commit JT 052318 2018-05-23 11:23:39 -06:00
6c42c9b378 Add missing OCL_TUNE define to CMake build 2018-05-22 20:21:58 -04:00
ce4a446cea Merge pull request #911 from akohlmey/collected-small-changes
Collected small changes and bugfixes
2018-05-22 10:11:12 -06:00
933cf92e36 Merge pull request #923 from akohlmey/remove-register
Remove deprecated 'register' keyword
2018-05-22 10:02:32 -06:00
69903cb4aa Merge pull request #921 from lammps/doctweaks
tweaks to doc pages
2018-05-22 10:02:01 -06:00
6de4569483 Removed unused variables - corrected documentation 2018-05-22 17:29:51 +02:00
ad5cfb5ae6 Switched member variables from private to protected for lj/cut/dipole/long 2018-05-22 09:55:16 -05:00
fbc435a0cb Formatted according to Lammps guidelines 2018-05-22 16:40:25 +02:00
108c31e24a Moved to USER-MISC 2018-05-22 14:56:26 +02:00
e550f5120b Updated docs 2018-05-22 12:44:40 +02:00
2f9e6d4566 Fixed bugs in lal_device.cpp with node_names dynamically allocated and dipole/long/gpu 2018-05-21 23:32:25 -05:00
1641f78e3e Merge from lammps master 2018-05-21 16:06:53 -06:00
4ec31564fe fix preprocessor directive bug in lib/atc 2018-05-21 16:50:16 -04:00
f5b7419108 fix typo reported in #915 2018-05-21 16:49:00 -04:00
1f193e02e0 update to c++ style include header syntax 2018-05-21 16:49:00 -04:00
838a1938bb Added pair styles lj/expand/coul/long to USER-MISC and its gpu version to GPU package, added lj/cut/dipole/long/gpu; and added an example Makfile to build GPU package for multi-arch 2018-05-20 17:03:12 -05:00
df3eb36519 cmake: KOKKOS enables C++-11 internally 2018-05-20 08:22:20 -06:00
bb6dcb8ebd cmake: make CORESHELL depend on KSPACE 2018-05-20 07:54:00 -06:00
e6f76451eb cmake: fix pkg_depend macro 2018-05-20 07:27:22 -06:00
cfb350d40b cmake: QMMM and H5MD need C 2018-05-19 11:07:19 -06:00
5daf1fe0d4 remove deprecated 'register' keyword. closes #922 2018-05-18 17:43:18 -04:00
2e7b919774 linalg: update to netlib lapack-3.7.1 2018-05-18 15:20:47 -06:00
858c211fdc linalg: add functions needed for MSCG 2018-05-18 15:08:08 -06:00
6997aedf30 cmake: avoid warning of missing include dir 2018-05-18 15:06:54 -06:00
cab602045e tweaks to doc pages 2018-05-18 08:37:29 -06:00
124641dc8a Examples - new local option 2018-05-18 15:13:48 +02:00
6944973484 cmake: don't build Eigen3 for USER-SMD 2018-05-17 20:07:43 -06:00
9e82c86fbd cmake: minor improvement for MSCG 2018-05-17 20:01:33 -06:00
68dd7d4f2b cmake: fix 2 typos in MSCG build 2018-05-17 17:43:16 -06:00
b2da3ca3e9 cmake: add DOWNLOAD_MSCG option 2018-05-17 17:23:54 -06:00
e1361a9dca Merge branch 'master' of https://www.github.com/lammps/lammps 2018-05-17 10:42:18 -04:00
94c6d2d546 Merge pull request #918 from stanmoore1/kk_atomics
Fix performance regression in KOKKOS package
2018-05-16 16:46:02 -06:00
585a164e78 Merge pull request #901 from timattox/bugfix_atom_vec_dpd
USER-DPD: bugfix for AtomVecDPD::unpack_restart() and the Kokkos version
2018-05-16 16:45:35 -06:00
5a4a7cebc1 Fix performance regression in KOKKOS package 2018-05-16 16:12:05 -06:00
133f0922b3 Merge branch 'master' of https://www.github.com/lammps/lammps 2018-05-15 12:58:40 -04:00
1a88ffd5ab Updated fix_nve_manifold_rattle.cpp 2018-05-15 12:58:32 -04:00
307e471456 Merge pull request #914 from jrgissing/bond-react-restart
smooth restarts with bond/react
2018-05-14 16:16:58 -06:00
f5d66e74c5 Merge pull request #913 from jrgissing/bond/react-doc-reformat
Bond/react doc reformat
2018-05-14 16:16:46 -06:00
bebf25dcb3 Merge pull request #912 from ellio167/kim-update
Update to kim-api-v1.9.5
2018-05-14 16:16:18 -06:00
3f316f71ef Merge pull request #910 from junghans/cmake_intel
USER-INTEL: enforce icc and add icc flags
2018-05-14 16:15:50 -06:00
8303d1a375 allow smooth restarts 2018-05-13 22:49:54 -06:00
363d8ef775 tweaks1 2018-05-13 15:45:43 -06:00
a449488b1d simplify 2018-05-13 12:14:15 -06:00
e076d08ee9 correctly render doc page 2018-05-12 14:17:29 -06:00
1a5144bf37 Merge pull request #13 from lammps/master
rebase
2018-05-12 12:59:57 -06:00
ca6920be72 Merge pull request #907 from akohlmey/dump_maxfile
Implement 'dump_modify maxfiles' feature
2018-05-12 12:59:33 -06:00
55d8cc0341 cmake: add DOWNLOAD_KIM option 2018-05-12 09:48:15 -06:00
6b73e29f64 cmake: update kim to v1.9.5 2018-05-12 09:43:13 -06:00
09046ad3f7 Update to kim-api-v1.9.5
Fixes the 'everything' option
2018-05-12 10:08:09 -05:00
06c18dd36c cmake: make CMAKE_VERBOSE_MAKEFILE option visible 2018-05-11 17:50:50 -06:00
55bd823339 cmake: fix icc versioning 2018-05-11 17:48:31 -06:00
77e04a9213 Merge branch 'dump_maxfile' of github.com:akohlmey/lammps into dump_maxfile 2018-05-11 18:04:06 -04:00
233f03ea8e windows portability bugfix 2018-05-11 18:03:49 -04:00
f65b06de0e dump_modify maxfiles tweak 2018-05-11 15:54:16 -06:00
0f32d603b5 tweaks to dump_modify maxfiles doc page 2018-05-11 15:52:18 -06:00
3440b1a2a7 Merge pull request #909 from lammps/tablecut
new dihedral table/cut command
2018-05-11 15:41:52 -06:00
8952b1107c cmake: add user overwrite for USER-INTEL 2018-05-11 15:33:18 -06:00
b3b3c225e8 cmake: check that USER-INTEL flags actually work 2018-05-11 15:32:32 -06:00
4d34e55072 rename jpeg file, recreate tex file and fix typo in docs for dihedral style table/cut 2018-05-11 17:31:14 -04:00
437e854741 Commit JT 051118 before CEA 2018-05-11 15:24:26 -06:00
4820cef5d4 cmake: USER-INTEL fix flags 2018-05-11 15:19:29 -06:00
e7598eeec0 ignore new style sources in USER-MSIC 2018-05-11 16:17:00 -04:00
a5d29fa52e Merge remote-tracking branch 'origin/master' into cmake_intel 2018-05-11 14:13:30 -06:00
821ef0cf77 update documentation for dihedral style table/cut 2018-05-11 16:08:23 -04:00
42f22a9723 Merge pull request #908 from akohlmey/coverity-scan-fixes
Correct small bugs found by static code analysis
2018-05-11 14:06:18 -06:00
0d8110bc19 Merge pull request #903 from akohlmey/move-enums-to-headers
Move enums that have to be consistent across files into a class
2018-05-11 14:05:58 -06:00
44c5e88e24 Merge pull request #902 from junghans/cmake
CMake improvements
2018-05-11 14:05:26 -06:00
8d24101df4 patch 11May18 2018-05-11 14:04:49 -06:00
308dac6821 fix force->bounds() bug and remove dead code 2018-05-11 15:54:51 -04:00
944dab1351 USER-INTEL: enforce icc and add icc flags 2018-05-11 11:53:34 -06:00
c3cc07bd3d truncate filename path to a segment starting with 'src/'
this will trim warnings and error messages when compiling using the CMake
build system, which uses full paths. as a bonus,one can now see, if a
source is taken from a package or not.
2018-05-11 13:52:34 -04:00
c50258e89c cmake: ENABLE -> PKG for packages 2018-05-11 07:51:59 -06:00
9674512997 new dihedral table/cut command 2018-05-11 07:36:40 -06:00
f864584bce correct small bugs found by coverity scan static code analysis
- in fix rigid, rigid/small, and poems, a string argument was
  incorrectly assigned to a %d format
- plug two small memory leaks in fix bond/react
2018-05-11 00:43:09 -04:00
075598b405 port dump_modify maxfiles option to COMPRESS and MPIIO package 2018-05-10 23:44:27 -04:00
7780d92823 implement 'dump_modify maxfiles' feature as discussed 2018-05-10 23:25:26 -04:00
66caf1c1a3 cmake: rename PNG,JPEG options to WITH_* 2018-05-10 20:33:18 -06:00
95eb86d6c7 Need to use MPI_CXX_INCLUDE_PATH instead of MPI_C_INCLUDE_PATH on Fedora 28 with cmake 3.11 2018-05-10 21:20:06 -04:00
724ade0af3 silence compiler warnings about bool vs int in AtC lib 2018-05-10 18:48:47 -04:00
d43c556263 cmake: fix typo and added summary for KSPACE package 2018-05-10 16:11:10 -06:00
40a8b1af79 fix stupid bug in AtC when using alloca() instead of VLAs 2018-05-10 17:42:10 -04:00
33a41a4fb3 Merge pull request #906 from akohlmey/recover-jenkins
Recover jenkins test builds
2018-05-10 15:20:01 -06:00
d7992f324d cmake: summary, fix typo, more info 2018-05-10 14:30:45 -06:00
79d1d3458e revive lib/atc/Makefile.mpic++ 2018-05-10 15:44:36 -04:00
a25895d31d cmake: add FFT_SINGLE option 2018-05-10 12:52:04 -06:00
4f762deff8 cmake: drop FFTW2 support 2018-05-10 12:37:11 -06:00
843f89fc92 cmake: add GPU into to summary 2018-05-10 12:36:09 -06:00
6336c3b975 cmake: add option to download voro 2018-05-10 12:31:55 -06:00
a43e74180a cmake: add downlad option for LATTE 2018-05-10 11:09:15 -06:00
6626cd5aaa cmake: add Eigen3 download for USER-SMD 2018-05-10 11:04:56 -06:00
aa1d815fe5 Merge pull request #904 from jrgissing/typing_bugfix
Retyping parameters bugfix
2018-05-10 06:56:50 -06:00
863a85353a type reassignment bugfix for edge atoms 2018-05-09 23:55:04 -06:00
662535865f Merge pull request #12 from lammps/master
rebase
2018-05-09 23:51:57 -06:00
6226ec8831 import enum{GEOMETRIC,ARITHMETIC,SIXTHPOWER} from pair.h 2018-05-10 01:32:57 -04:00
6c91cc1f76 cmake: rename ENABLE_MPI to BUILD_MPI 2018-05-09 23:12:00 -06:00
4e42ee2cfc cmake: add BUILD_OMP option 2018-05-09 23:09:23 -06:00
1224296365 move enum{INT,DOUBLE,STRING,BIGINT}; to Dump class in dump.h 2018-05-10 01:09:04 -04:00
25cef528c9 cmake: remove -fno-second-underscore injection 2018-05-09 23:03:22 -06:00
6359392834 cmake: MEAM needs a C compiler 2018-05-09 23:02:00 -06:00
71e1867dd2 move enum{LAYOUT_UNIFORM,LAYOUT_NONUNIFORM,LAYOUT_TILED}; to Comm class 2018-05-10 00:50:20 -04:00
f90af1839e cmake: add a warning for QMMM 2018-05-09 22:42:33 -06:00
2ebd4eb26e cmake: COMPRESS needs zlib 2018-05-09 22:24:22 -06:00
3682bc47c2 move enum{NO_REMAP,X_REMAP,V_REMAP} to Domain class in domain.h 2018-05-10 00:20:10 -04:00
2797afbf3e cmake: only enable CXX by default 2018-05-09 22:16:19 -06:00
635383c00c cmake: cache check for installed packages 2018-05-09 22:09:19 -06:00
b6a8168e3f fix bug in procmap Comm::MULTIPLE import 2018-05-10 00:02:12 -04:00
71fce2e413 move enum{SINGLE,MULTI} and enum{MULTIPLE} to Comm in comm.h 2018-05-09 23:57:24 -04:00
994fd2af0e move enum{NSQ,BIN,MULTI} to the Neighbor class in neighbor.h 2018-05-09 23:46:09 -04:00
d8138a5b4c move enum{IGNORE,WARN,ERROR) into Thermo class and use Thermo:: namespace to reference it 2018-05-09 18:11:31 -04:00
a001f2c248 cmake: turn PNG, JPEG, GZIP and FFMPEG into options 2018-05-09 15:54:04 -06:00
8104568b6a cmake: improve check again make-based build system 2018-05-09 15:26:59 -06:00
96d1c421df cmake: improve summary 2018-05-09 15:19:52 -06:00
dde271db36 Merge pull request #900 from lammps/install
Consistency tweaks to various package Install.sh files and related shell scripts
2018-05-09 15:10:35 -06:00
a7a83b118d update dependencies for USER-CGSDK package. make script permissions consistent 2018-05-09 16:13:54 -04:00
8697cac6aa make QEQ package depend on MANYBODY
the qeq/fire style depends on pair style comb,
thus QEQ needs and explicit Install.sh file and
it has to depend on MANYBODY
2018-05-09 16:06:37 -04:00
96c5c92b1a USER-DPD: bugfix for AtomVecDPD::unpack_restart() and the Kokkos version
Also, cleaned up UCG_MASK and UCGNEW_MASK usage in atom_vec_dpd_kokkos.cpp
Fixes a crash when using the python interface on a 2nd LAMMPS invocation
when using the restart (or replicate) commands, because of garbage
in the uCG and uCGnew arrays leftover from the previous LAMMPS invocation.
2018-05-09 15:00:10 -05:00
793260f227 consistency tweak to package LATTE Install.sh file 2018-05-09 11:47:57 -06:00
e5a589e05a Merge pull request #898 from robeme/fix_restrain_individual_energies
Output individual energies in fix restrain
2018-05-09 11:43:52 -06:00
dc8e141501 Merge pull request #896 from akohlmey/cplusplus-compliance-lib
C++ style header includes and C++ standard conforming code changes in lib folder
2018-05-09 11:43:03 -06:00
9f03a6798f Merge pull request #880 from stanmoore1/kk_dep
Remove Kokkos deprecated code
2018-05-09 11:41:25 -06:00
b4e5828a60 Update fix_restrain.cpp 2018-05-08 15:36:32 -04:00
671876efef Make the description of global properties more explicit 2018-05-08 15:33:42 -04:00
8705ea9fc5 replace pointless use of strncat() emulating strcat() with plain strcat() 2018-05-08 08:49:05 -04:00
16697fc4cb forgot to reduce energies 2018-05-08 10:46:41 +02:00
53fc9f1f0f updated doc for new fix restrain output 2018-05-08 10:11:00 +02:00
6960529594 set appropriate flags for computing a vector in constructor of fix restrain 2018-05-08 10:02:10 +02:00
fccc16f42c tune OpenCL for generic architecture by default 2018-05-08 00:50:23 -04:00
e7e1827e57 remove variable length arrays in gpu lib 2018-05-08 00:48:53 -04:00
c9817b0db9 update src/.gitignore 2018-05-08 00:33:27 -04:00
318dfd0613 correct indentation 2018-05-08 00:32:49 -04:00
f4d14c96e8 convert poems lib to use c++-style header includes 2018-05-08 00:29:56 -04:00
3394d18a2a convert gpu lib to use c++-style include files 2018-05-08 00:25:10 -04:00
ff6507e7b7 convert colvars lib to use c++ style header files 2018-05-08 00:17:57 -04:00
fff962646f convert awpmd header include to c++ style 2018-05-08 00:10:20 -04:00
f39a8d46d1 convert atc library header files to C++ style 2018-05-08 00:05:18 -04:00
00b92cd93b Merge pull request #11 from lammps/master
rebase
2018-05-07 21:58:57 -06:00
808eb2a25e Merge pull request #895 from junghans/cmake
cmake: remove obsolete BODY/POEMS conflict
2018-05-07 16:43:25 -06:00
1888b616c4 remove some extra semicolons 2018-05-07 18:04:25 -04:00
761b15b8f4 cmake: remove obsolete BODY/POEMS conflict 2018-05-07 16:03:23 -06:00
cde6e9b7c4 Fix CUDA issue in pair_exp6_rx_kokkos 2018-05-07 15:51:15 -06:00
104dde27ed eliminate variable length arrays from AtC lib for C++ standard compliance 2018-05-07 17:36:34 -04:00
bfdfd36c1c Merge pull request #894 from akohlmey/cplusplus-clang-fixes
More fixes to conform with C++ standards as indicated by Clang
2018-05-07 14:53:43 -06:00
a4759210a8 Merge pull request #893 from ohenrich/user-cgdna
Docs update and journal reference for USER-CGDNA package
2018-05-07 14:39:32 -06:00
7fed6c7e4c Merge pull request #634 from craabreu/master
Computation of forces/torques on rigid bodies moved to post_force
2018-05-07 14:39:10 -06:00
82217001c8 must use fabs() on doubles, not abs(), to avoid ambiguity 2018-05-07 15:56:35 -04:00
b2370b6986 use correct namespace when instantiating IntelBuffers; 2018-05-07 15:49:51 -04:00
624173d25a Merge branch 'master' into kk_dep 2018-05-07 13:42:33 -06:00
7cf42e42eb make links to citations unique across files 2/2 2018-05-07 14:25:18 -04:00
d80b375e26 make links to citations unique across files 1/2 2018-05-07 14:24:00 -04:00
d203118286 update rigid body reference outputs. add bodyforces early examples 2018-05-07 14:19:50 -04:00
74fbb84b8c Merge pull request #878 from jrgissing/group_extract
Group extract
2018-05-07 11:45:37 -06:00
5076b6d161 Removed old documentation 2018-05-07 18:25:55 +01:00
fcdcdb3286 Merge branch 'master' into user-cgdna 2018-05-07 18:19:24 +01:00
722549965e Added reference to implementation paper 2018-05-07 18:13:18 +01:00
ca96a7ab05 Merge pull request #891 from akohlmey/collected-small-changes
Collected small changes, fixes and updates
2018-05-07 10:43:19 -06:00
8ec033e823 Merge pull request #889 from akohlmey/cplusplus-compliance
Collected changes to restore C++ standard compliance
2018-05-07 10:42:22 -06:00
a7c9418629 Merge pull request #890 from jrgissing/bond_react_final_touches
bond/react final touches
2018-05-07 10:37:47 -06:00
bc0c405bfa Merge pull request #887 from akohlmey/create-bonds-single-bugfix
Fix bug in create_bonds single/bond
2018-05-07 10:37:00 -06:00
1ea5b9eabb Merge pull request #879 from mdelyser/USER-BOCS
USER-BOCS
2018-05-07 10:34:51 -06:00
d9d33ac766 add ability to set multiplicity for dihedrals with fix restrain
this introduces an optional keyword, so backward compatibility is preserved.
this closes #884
2018-05-07 07:23:29 -04:00
d51745fd27 whitespace cleanup 2018-05-07 07:23:29 -04:00
c3588f08b7 provide keyword/value option to compute ackland/atom for selecting legacy or current variant of implementation 2018-05-07 07:23:29 -04:00
ecfe5c8373 use american spelling of neighbor consistently in docs and code comments 2018-05-07 07:23:29 -04:00
009666d9a5 need to ignore pair style kim in src/ 2018-05-07 07:23:29 -04:00
551ea9694d add VTK config for recent fedora versions 2018-05-07 07:23:29 -04:00
d7339bbd9e significantly expand .github/CODEOWNERS file to automatically notify more contributors of changes to files/packages they maintain 2018-05-07 07:23:29 -04:00
934f825388 update USER-INTEL Install.sh script and dependency handling 2018-05-07 07:23:29 -04:00
f4fbdea0b3 update .gitignore for lib/latte 2018-05-07 07:23:29 -04:00
14588f6242 remove dead code and fix compilation for fix mscg 2018-05-07 07:23:29 -04:00
5e49976b70 correct typo in fix bond/react docs 2018-05-06 11:17:34 -04:00
9d9d7cb9ed update example log files 2018-05-06 11:10:40 -04:00
941d289a69 cosmetic changes to avoid compiler warnings 2018-05-06 10:54:34 -04:00
e1f9ee1347 fix1 2018-05-06 01:04:23 -06:00
916ed71760 fix bond/react final touches 2018-05-06 00:34:03 -06:00
9d6891823a some more cosmetic changes 2018-05-05 20:38:22 -04:00
e14b61e4a4 replace variable length array with constant length through making maxLine constant 2018-05-05 19:51:30 -04:00
2d321a602c Merge pull request #10 from lammps/master
rebase
2018-05-05 14:22:23 -06:00
9acd35abe2 another change to fix poems 2018-05-05 10:52:39 -06:00
0c53afbfcf more changes to fix rigid and fix poems 2018-05-05 10:39:01 -06:00
2616dd91f9 include USER-BOCS package in cmake 2018-05-05 12:05:32 -04:00
f7c37a7a98 adapt isfinite() handling to upstream 2018-05-05 11:46:35 -04:00
095ca76b5b plug memory leaks in USER-BOCS 2018-05-05 11:44:21 -04:00
f9f8e2bdbe update USER-BOCS example to match LAMMPS style and include reference logs 2018-05-05 11:43:05 -04:00
735bceb468 Merge branch 'master' into USER-BOCS 2018-05-05 10:21:21 -04:00
81293b0fda changes to integrate USER-BOCS into LAMMPS and to closer follow the LAMMPS programming/documentation style 2018-05-05 10:21:11 -04:00
88dca11b3c update colvars dependencies 2018-05-05 02:36:02 -04:00
460e8bd298 add return value to non-void function 2018-05-05 02:35:42 -04:00
ce86ff6cd1 add missing USER-MOFFF to Makefile and fix typo 2018-05-05 02:15:36 -04:00
36126ccb7d be more verbose in USER-PHONON install script when KSPACE is not installed 2018-05-05 02:14:17 -04:00
b7210e931c more cosmetic changes to silence pedantic warnings 2018-05-04 22:34:20 -04:00
53342a5cec address a few cosmetic issues flagged by -Wpedantic 2018-05-04 22:17:25 -04:00
d53dc541d8 avoiding variable length array in pair style comb3 by declaring MAXLIB const 2018-05-04 21:48:44 -04:00
974ea3420b replace variable length array in fix drude/transform with new/delete 2018-05-04 21:45:17 -04:00
c83fedf100 replace variable length array in Molecule class with new/delete 2018-05-04 21:41:23 -04:00
7edeccae80 replace variable length arrays in fix filer/corotate by Memory::create() / Memory::destroy() 2018-05-04 21:14:08 -04:00
e242b37619 cast implicit string objects to char * for C++ standard compliance 2018-05-04 21:13:02 -04:00
9a389c946c replace variable length arrays in fix rx of USER-DPD with new/delete 2018-05-04 19:36:57 -04:00
1b31b4899a replace variable length arrays in pair style tdpd with new/delete 2018-05-04 19:06:36 -04:00
d24885f805 replace variable length array in fix lb/momentum with fixed size array 2018-05-04 19:00:43 -04:00
345c212828 replace variable length arrays in compute basal/atom with new/delete 2018-05-04 18:55:22 -04:00
477d9feb5c replace variable length arrays in fix gcmc with new/delete 2018-05-04 18:48:43 -04:00
0a835c499a fix newly introduced bug 2018-05-04 18:32:41 -04:00
6dcee30b1a replace variable length arrays in fix gle with new/delete 2018-05-04 18:21:22 -04:00
5670dc5e6e replace variable length array in msm with new/delete 2018-05-04 18:09:25 -04:00
b11757adb3 replace variable length array in fix ipi with new/delete 2018-05-04 16:47:29 -04:00
b61834f28d replace variable length array with fixed size 2018-05-04 16:34:46 -04:00
1d54c93df8 replace variable length array with new/delete in PNG support of dump image 2018-05-04 16:30:52 -04:00
330f29db0b replace variable length arrays in USER-PHONON with new/delete 2018-05-04 16:26:48 -04:00
366aaf2450 port bugfix for single/bond to single/angle and single/dihedral 2018-05-04 00:32:13 -04:00
c9d41178d8 update logfiles and adjust some example inputs to be consistent 2018-05-03 23:37:01 -04:00
6886dcb2e4 correct minor issues, so LAMMPS compiles again 2018-05-03 23:04:07 -04:00
23f71ee4ad fix bug in create_bonds, where ghost atoms were counted incorrectly 2018-05-03 22:34:11 -04:00
844858d3a7 2nd set of updates 2018-05-03 17:00:08 -06:00
2b8576c7c7 first updates 2018-05-03 16:55:22 -06:00
eeee2d3026 Merge pull request #803 from jrgissing/fix_bond_react
Fix bond react
2018-05-03 14:16:46 -06:00
53cc609c4c make filenames comply with LAMMPS conventions and add reference log files 2018-05-03 16:03:37 -04:00
c8a0689d78 correct typo in converting c-library header includes to c++ styles 2018-05-03 15:44:17 -04:00
28786ef99b tweak to header file names 2018-05-03 11:49:27 -06:00
749f1ff407 Merge pull request #875 from akohlmey/collected-small-fixes
Collected small changes and bug fixes for the next patch release
2018-05-03 11:28:00 -06:00
654fec164d Merge pull request #881 from akohlmey/cplus-plus-style-includes
Replace C-style include files with their C++ equivalents
2018-05-03 11:25:51 -06:00
35294dafbc Merge pull request #883 from giacomofiorin/colvars-update
Fixes to Colvars library (version 2018-04-29)
2018-05-03 11:25:32 -06:00
83f5c331cd Merge pull request #886 from lammps/snap-quadratic
updates to quadratic form of SNAP potential
2018-05-03 11:21:29 -06:00
1fdb010c41 Revert "workaround for ISFINITE() macro to work with the latest KOKKOS library update"
This reverts commit f202f1bcf6.
2018-05-03 13:08:15 -04:00
b5b70b429f update log files for SNAP package examples to reflect current state of keywords. 2018-05-03 13:00:24 -04:00
07a15a719f whitespace cleanup 2018-05-03 12:38:24 -04:00
75cffc78c5 updates to quadratic form of SNAP potential 2018-05-03 10:23:50 -06:00
0c005f5cb0 Small fixes to Colvars library
Primarily a list of small fixes, combined with cosmetic changes and cleanups
in several files.

6d0c917 2018-04-29 Fix missing deallocation of output stream object (reported by HanatoK) [Giacomo Fiorin]
c92d369 2018-04-17 Do not test for atom group size [Jérôme Hénin]
431e52a 2018-04-06 Allow scripted/custom colvars to be periodic [Jérôme Hénin]
81d391f 2018-04-05 Split colvarcomp constructor into POD constructor + init() function [Giacomo Fiorin]
9b85d5f 2018-03-13 Fix issue with out-of-order atom selections; clarify format for ref positions [Giacomo Fiorin]
0e0ed37 2018-03-07 Support triclinic unit cells in VMD, clean up PBC functions [Giacomo Fiorin]
eed97c9 2018-02-24 Obtain integer version number from version string [Giacomo Fiorin]
c17f3cd 2018-02-23 Write trajectory labels only when needed [Giacomo Fiorin]
2018-05-02 15:03:56 -04:00
fc0110a2e0 Update fix_bocs.cpp 2018-05-02 13:25:26 -04:00
072a063afc Delete fix_bocs.html 2018-05-02 11:30:25 -04:00
fbf96b680b Delete MOD_COMPUTE_H 2018-05-02 11:29:41 -04:00
ed3f8d4b3f Update methanol.lmp 2018-05-02 11:28:44 -04:00
efbee4a292 Delete man_fix_bocs.html 2018-05-02 11:27:31 -04:00
2e2f19770c Removed .html files. Removed compute.h mods. Cast pressure for functions 2018-05-02 11:14:30 -04:00
59b59573a7 Added documentation for compute_pair_entropy_atom 2018-05-02 16:10:31 +02:00
25ac1fd16c mention that fix reax/bonds and reax/c/bonds do not honor the group id 2018-05-01 18:55:00 -04:00
51d2625daf First fully working version of compute_pair_entropy_atom 2018-04-30 19:40:18 +02:00
4e6188cff6 pair_entropy_atom workin - avg missing 2018-04-28 09:01:09 +02:00
ca6f99129d revert <cinttypes> back to <inttypes.h> as the former seems to require C++-11 2018-04-27 18:39:11 -04:00
0015b15b18 revert <cstdint> back to <stdint.h> as the former seems to require C++-11 2018-04-27 18:25:30 -04:00
e4071d7f46 replace C-style include files with their C++ equivalents 2018-04-27 18:00:24 -04:00
6b92826a1a Remove Kokkos deprecated code 2018-04-27 12:35:00 -06:00
f202f1bcf6 workaround for ISFINITE() macro to work with the latest KOKKOS library update 2018-04-27 14:15:32 -04:00
d504dcc465 Some changes to compute_pair_entropy_atom 2018-04-27 17:50:35 +02:00
eaaad3f6d5 Commit JT-2 042618
- commit after after rebase
- some #include were needed
2018-04-26 15:48:34 -06:00
75069ec55b Commit JT-1 042618
- new version DMI
2018-04-26 15:26:31 -06:00
392816a807 Commit JT 042418
- adding the README
- some corrects pair_spin*.cpp/h
2018-04-26 15:26:31 -06:00
1b8669c620 Commit JT 042018, new spin/precession and pair/spin (peru virtual) 2018-04-26 15:26:31 -06:00
ce80d1a3ea Commit JT 041618
Enabling multiple exchange interactions
2018-04-26 15:26:31 -06:00
8709f6044b Commit modifs before release 2 (04/02/18) 2018-04-26 15:26:31 -06:00
a315599bac Commit modifs before release 1 (03/26/18) 2018-04-26 15:26:31 -06:00
08bc115380 Commit before meeting 032218 2018-04-26 15:26:13 -06:00
65b7e43a91 Examples and docs 2018-04-26 15:25:23 -06:00
436a5de3a6 Documentation V1 2018-04-26 15:25:23 -06:00
f0cca6fb9d rm pdf equations 2018-04-26 15:21:41 -06:00
3ed640666f Delete pair_spin_exchange_function.pdf 2018-04-26 15:21:41 -06:00
6a9ecde742 rm one file 2018-04-26 15:21:41 -06:00
2a3b93ca3d First commits last version doc 2018-04-26 15:21:41 -06:00
e4c6c46b4c Commit JT 010318 (before APS) 2018-04-26 15:21:41 -06:00
7990826ca2 Commit JT 021518 2018-04-26 15:21:41 -06:00
fa499ff95d Commit JT 021318 2018-04-26 15:21:41 -06:00
86cfbb3010 Delete in.spin.read_data 2018-04-26 15:15:16 -06:00
f409f4ff53 Commit JT 021318 2018-04-26 15:02:15 -06:00
eab737a45c Delete Co_PurjaPun_2012.eam.alloy 2018-04-26 15:01:43 -06:00
b422480002 Commit JT 021318 2018-04-26 15:01:43 -06:00
3d18f55155 commit JT 020818
- adding files for doc and reorg.
2018-04-26 15:01:43 -06:00
10b38cda93 commit JT 020818
- documentation v1.0
- reorg. of examples
2018-04-26 15:01:43 -06:00
6490ee46b7 Commit JT 020618
- Documentation
- Memory leaks solved
2018-04-26 14:58:43 -06:00
642c8f9859 Commit JT 020518
Begin work documentation
2018-04-26 14:58:43 -06:00
755bda2275 Commit JT 020118 2018-04-26 14:58:43 -06:00
05a7e5011f Commit JT 012318 2018-04-26 14:58:43 -06:00
3abb7f0eaf Commit JT 011718
Correction bug in fix/integration/spin
2018-04-26 14:58:43 -06:00
5b93fc6a27 Commit JT 011617 2018-04-26 14:58:43 -06:00
1e096d77ef Commit JT 011518 2018-04-26 14:58:43 -06:00
38e940a392 beautyfy shell script 2018-04-26 14:58:43 -06:00
7cc62f4234 minor updates on examples/SPIN 2018-04-26 14:58:43 -06:00
01f378d265 minor updates on examples/SPIN 2018-04-26 14:58:43 -06:00
ab200cff06 - linked list in the integration algorithm
- new version of the coord2sector function
- possible to read_data a spin .data file
2018-04-26 14:58:43 -06:00
5fe0b0a2cc Delete in.cobalt_dev 2018-04-26 14:58:42 -06:00
6df54ac3ec Delete in.cobalt_SD 2018-04-26 14:58:42 -06:00
1e9d91bd8f Delete in.co_magnetomech 2018-04-26 14:58:42 -06:00
749336ae1f Delete in.kagome 2018-04-26 14:58:42 -06:00
925e647acf Commit integ 2018-04-26 14:58:42 -06:00
148d26d943 Delete in.cobalt 2018-04-26 14:58:42 -06:00
2bfd30f7d7 Delete in.BFO 2018-04-26 14:58:42 -06:00
f4bb33de4b Memory corrections 2018-04-26 14:58:42 -06:00
49f0a7a89a New MPI algorithm (still to be checked) 2018-04-26 14:58:42 -06:00
f1182df776 Commit MPI algorithm 2018-04-26 14:58:42 -06:00
1828274a99 new vmd shell to prepare vmd runs 2018-04-26 14:58:42 -06:00
813343928a moving files into proper directories 2018-04-26 14:58:42 -06:00
cc44a8863c Commit 11/06/17 2018-04-26 14:58:42 -06:00
f3e58440a2 Commit 11/6/17 2018-04-26 14:58:42 -06:00
4cbda74df4 Commit new serial algorithms 2018-04-26 14:58:42 -06:00
c6bb9586ef Commit before new serial algo 2018-04-26 14:58:41 -06:00
b219392d59 Commit before pull on SOLO 2018-04-26 14:58:41 -06:00
f6b4587fe8 Commit Julien 10/24/17
Correction in the pair/exchange for energy preservation
2018-04-26 14:58:41 -06:00
72d9795d7f Commit Julien 10/19/2017
- New files for the pair interactions
- New files for the documentation
- Spin orbit coupling via Neel approach
2018-04-26 14:58:41 -06:00
54832a8fe4 Commit Julien 09/14/17
- Changes and corrections in the computation of the energy
- Issue with newton_pair in the compute of pair
2018-04-26 14:58:41 -06:00
d144ab0164 Commit Julien 09/06/17
- units of J1_mag and J1_mech
- correct of pack and unpack in atom_vec_spin
- add conditions in fix_integration_spin
2018-04-26 14:58:41 -06:00
87993368f9 Commit Julien 08/24/17
- in pair_spin, magneto-mech force for exchange
- compute and added in integration_spin
2018-04-26 14:58:41 -06:00
3de0cf5ab4 Commit Julien 2 08/23/17
- reorganized includes
- start work on magneto-mechanic potential (adding function)
- renamed fix_nve_spin into fix_integration_spin
2018-04-26 14:58:41 -06:00
f5ff30df83 Changes for coupling magnetomech:
- hybrid_overlay friend with fix_nve_spin
- modif of the allocation of pair classes in fix_nve_spin
- modif input file for hybrid/overlay eam - spin/pair
- new file for cobalt eam potentials
2018-04-26 14:58:41 -06:00
45ea7b3cc7 First version of the spin tutorial (2)
Examples (example/SPIN), for BFO and Co
2018-04-26 14:58:41 -06:00
023b018ed2 First version of the tutorial for spin simulations 2018-04-26 14:58:41 -06:00
64b08d3ca8 add write_data() support to remaining improper styles.
with this commit, write_data() support should be complete.
2018-04-26 16:39:31 -04:00
c7edc6636a make sure all allocatable class pointers are initialized to NULL 2018-04-26 16:13:19 -04:00
98a22c2b55 Simple test in fix_nve_spin 2018-04-26 13:08:55 -06:00
b88f7aac32 Begining work on test for sectoring (works only if sectoring possible when mpi option is on) 2018-04-26 13:08:55 -06:00
7519dee502 Changes 2 (modif/corrects parallel) 2018-04-26 13:08:55 -06:00
8746ab547e Small modif and correc of the parallel implemetation 2018-04-26 13:08:54 -06:00
2c5597ae4b Commit with last changes (sectoring parallel implementation) 2018-04-26 13:08:54 -06:00
8a56b8ad3a First version of the parallel algorithm
Performed by sectoring (1, 2, 4, or 8 chuncks) each process.
2018-04-26 13:08:54 -06:00
b934621651 Implementation of SeqNei V1 (Real)
Still both Seq and SeqNei versions
In SeqNei, loop on Neighb not working yet
2018-04-26 13:08:54 -06:00
bf5b3f96e9 Implemetation of SeqNei Algo 1
Still Seq and SeqNei versions
Loop on Neigh in SeqNei not working yet
2018-04-26 13:08:54 -06:00
4d375e72f0 Changes: - DMI and ME interactions
- Computation optimisations
         - lot of removed prints

Next work: - Sequential algo implemetation
           - temperature simulations (check)
           - Work on parallelization
2018-04-26 13:08:54 -06:00
7cc59fbbbe Same commit, beginning removing prints/checks and pushing 2018-04-26 13:08:54 -06:00
d53def5853 Field compute error apparently corrected. The issue was related to the reverse communication.
To do:
- Remove all checks/prints used to debug
- Check all the flag set in the atom_vec_spin creator (very important for the reverse comm)
- Code DMI/ME interactions
- Start to work on parallel implementation of the integration
2018-04-26 13:08:54 -06:00
af45d55b3f Added:
- For Paramag. simulations, the option "atom_modify" has to be set
ex: atom_modify sort 1000 4.0 (Freq,Dist).
- Actual time is now printed (c_mag[0] in compute_spin)
- Value of Gilbert's damping corrected
- Now even results for SD/Lammps comp. in purely paramg. or aniso. situations
- Pack and unpack reverse needed corrections (f only was set, not fm)
- Spin temperature is now computed (data c_mag[7] in spin_compute)

To do:
- Fcc with p p p bc is still not working
- If Zeeman/Aniso force not defined, error => to be removed
- Add DMI and ME (see if new file or add in the exchange file)
2018-04-26 13:08:54 -06:00
3168704858 For paramagnetic simulation (no pair interaction declared), the "atom_modify" command has to be used (in order to initialize the bin).
example: atom_modify sort 1000 4.0 (Freq. of sorting, Cutoff distance)

In order to print the actual time with the total mag., the vector associated to the mag. compute was modified. It is now: [time, Mx, My, Mz, |M|, En_mag]

Optimization of the spin_compute routine: energy and mag. have been gathered in a same loop.
2018-04-26 13:08:54 -06:00
bf18d84273 Same commit, with input (mag. cobalt) and vmd files 2018-04-26 13:08:54 -06:00
9b0f8a0c55 First commit for the SPIN package.
Changes to come:
-Exchange interaction computation to check (loop on neighbors),
-Temperature/random fluctuations to correct (effects too strong),
-Physical results to check,
-Add final interactions (DMI, ME, Dipolar),
-Compute spin temperature (Nurdin and Ma formslisms),
-Work on MPI parallelization,
-Ewald sums to implement (see with Stan's pakage),
-See for prefered magnetic axis (Mitchell's idea),
2018-04-26 13:08:54 -06:00
56d0014a4a Added #include "citeme.h" 2018-04-26 10:05:49 -04:00
26d22a4b7a restrain energy must be incremented. bugfix from robert meissner posted to lammps-users 2018-04-26 10:02:42 -04:00
c5e884fb41 USER-BOCS 2018-04-26 09:34:47 -04:00
c4373c7afa add extract to fix_group
this will allow users to define groups that are by default created internally by fixes, etc.
2018-04-24 22:53:54 -06:00
69665c218a Merge pull request #9 from lammps/master
rebase
2018-04-24 22:09:17 -06:00
6f9a2245d2 add write_data() support to 4 more dihedral styles, which completes the set 2018-04-23 16:56:19 -04:00
d5ec76290b patch 20Apr18 2018-04-20 17:22:38 -06:00
836027dbd8 Merge pull request #867 from stanmoore1/kk_tweaks
Tweaks to KOKKOS package
2018-04-20 14:35:58 -06:00
c5127eca89 Merge pull request #872 from akohlmey/ave-correlate-long-bugfix
Bugfix for fix ave/correlate/long
2018-04-20 09:30:02 -06:00
91b407570a docfix
remove mention of as yet unreleased feature
2018-04-19 20:23:58 -06:00
5bf8e1bc5b add ability to retrieve the number of local rows for computes returning local data
this is done supporting the combination of type == 2 with style == 0,
i.e. a local scalar, which is not available in C++ (but there one can
access the compute style data member directly. for the python interface,
the pointer is automatically dereferenced and returned as a c_int.
2018-04-19 18:37:15 -04:00
164537cf37 whitespace cleanup 2018-04-19 18:30:51 -04:00
f1ee46cc64 add check to require atom attribute molecule to avoid segfaults, when it is missing 2018-04-19 18:24:19 -04:00
caa990746e bugfix
fixes crash e.g. when building on Ubuntu for Windows
thanks to Márk Jenei (University of Cambridge) for submitting error report
2018-04-18 22:27:12 -06:00
a087813d01 incorporate bugfix for fix ave/correlate/long from jorge ramirez 2018-04-18 07:26:13 -04:00
48e42a4e1e Merge pull request #824 from jrgissing/write_data-noextra
Write_data nofix option
2018-04-13 10:27:21 -06:00
6027de5387 Merge pull request #870 from lammps/doc-tweak
add info to compute heat/flux doc page and a small update to the developer's guide
2018-04-13 10:26:31 -06:00
398f3173aa remove trailing whitespace 2018-04-13 11:38:02 -04:00
798fcacd77 update example for API change in Fix::copy_arrays() 2018-04-13 11:37:51 -04:00
bc0fd5496a add info to compute heat/flux doc page 2018-04-13 08:57:24 -06:00
430027465f Merge pull request #868 from junghans/latte
cmake: update latte to v1.1.1
2018-04-13 08:44:59 -06:00
7f9400eadc Merge pull request #865 from athomps/fix_gcmc_temperature
Made ndof dynamic for temperature fixes and computes
2018-04-13 08:44:41 -06:00
1b965d4d3a Merge pull request #863 from ellio167/kim-update
KIM API interface update
2018-04-13 08:43:56 -06:00
6e31b7da63 doc typos 2018-04-11 22:06:22 -06:00
8f1487fbc6 update lib/latte/Install.py to be consistent with CMake config 2018-04-11 11:20:39 -04:00
e2bc4d461e cmake: update latte to v1.1.1 2018-04-10 17:26:16 -06:00
dee945c01d cmake: bump openkim to v1.9.4 2018-04-10 15:44:13 -06:00
bc49ce611a restore python3 compatibility 2018-04-09 23:08:49 -04:00
72cd13aac7 cmake: add openkim build as external project 2018-04-06 17:22:54 -06:00
49d524e442 Remove unused variables in pair_reaxc_kokkos 2018-04-05 11:58:47 -06:00
3c6102a0c3 Tweak whitespace in Makefile.kokkos_cuda_mpi 2018-04-05 11:49:57 -06:00
4517c85c77 Use reference to improve performance in pair_reaxc_kokkos 2018-04-05 11:47:22 -06:00
aa4f044709 Deallocate views of views in serial to prevent race condition in Kokkos profiling tools 2018-04-05 11:44:19 -06:00
2d4e0fcfd3 purge deleted file in KIM package 2018-04-04 13:24:05 -04:00
4fa95de91c update logfiles for gcmc example inputs 2018-04-04 12:33:48 -04:00
24e0ca5377 avoid warning about group all 2018-04-04 12:28:20 -04:00
e1a17d428f print the warning about using group all with fix gcmc only from MPI rank 0 2018-04-04 12:26:43 -04:00
8e3ba36a4f Merge pull request #866 from lammps/header-error-messages
add placeholders to include files for error messges
2018-04-04 09:45:07 -06:00
12bc84163d remove or reformulate references to USER-CUDA package, which no longer exists 2018-04-04 11:06:20 -04:00
5221ac2d55 add placeholders to include files for error messges 2018-04-03 17:48:31 -06:00
af8e258ebb Revert to previous code without plug-in interface 2018-04-03 17:17:23 -05:00
d1356c1d76 Made ndof dynamic for temperature fixes and computes 2018-04-03 15:07:04 -06:00
3f3bab4e71 Create KIM_LAMMPS_PlugIn.h & related changes 2018-04-02 11:45:35 -05:00
f089d8d247 use correct installed kim lib when adding new models 2018-04-02 09:39:44 -05:00
25d2f4b1f6 Update pair_kim for v1.9.4 and versatile linking
Use dlopen instead of directly linking to kim-api
library.  This will allow for easier distribution
of LAMMPS with support for KIM Models.
2018-04-02 09:39:44 -05:00
020fc66ad9 Merge pull request #8 from lammps/master
rebase
2018-04-01 12:55:58 -06:00
6d0b53ff16 Merge pull request #7 from lammps/master
rebase
2018-03-24 09:54:32 -06:00
192f83164c Merge branch 'master' of https://www.github.com/lammps/lammps 2018-03-21 17:04:04 -04:00
78d8be311c Commit before merge. 2018-03-21 17:04:01 -04:00
70c5f3bff8 Merge pull request #6 from lammps/master
rebase
2018-03-11 17:01:20 -06:00
49aad1d157 rename noextra flag to nofix 2018-03-04 09:56:22 -05:00
04bd268745 rename noextra flag to nofix 2018-03-04 09:55:44 -05:00
959883ad03 rename noextra option to nofix
since this corresponds to the `fix` option of `read_data`, calling this flag `nofix` seems more consistent and descriptive.
2018-03-04 09:49:50 -05:00
52446eed6d make fix bond/react example inputs more similar to other input examples in LAMMPS 2018-03-03 19:34:31 -05:00
e8eeb52636 fix memory leaks detected by valgrind 2018-03-03 19:31:53 -05:00
a323147819 noextra option for write_data 2018-03-03 14:28:35 -07:00
89de70ff32 Merge pull request #4 from lammps/master
rebase
2018-03-03 14:17:56 -07:00
21364f38b0 gatherv fix, take 2 2018-03-01 23:11:46 -07:00
51b19dfd1a plug memory leak in fix bond/react 2018-02-25 14:10:28 +01:00
3b90f60064 Merge pull request #3 from lammps/master
rebase
2018-02-24 23:49:27 -07:00
7d1de34533 gatherv fix, doc updates 2018-02-24 22:49:28 -07:00
d5e43a9ab1 whitespace cleanup and reindent 2018-02-23 10:20:29 +01:00
3787b89447 re-add compressed data file (was hidden by .gitignore) 2018-02-22 02:31:25 -05:00
8fef7880e7 dead code removal and loop construct fixes to silence compiler warnings. 2018-02-22 02:23:57 -05:00
a8eb3ff77f consolidate per-atom property fixes into one 2018-02-21 23:20:17 -07:00
38ce56f252 fix documentation issues: non-ASCII characters, broken/missing links, formatting 2018-02-21 11:53:18 +01:00
5191071581 no need to cast fixes to specific styles/types 2018-02-21 11:15:44 +01:00
b6821ed942 since the code uses static ids, only one instance is allowed at a time 2018-02-21 11:15:09 +01:00
deeba53a24 consolidate inclusion file style with LAMMPS conventions 2018-02-21 11:14:32 +01:00
daae906162 move fix bond/react examples and compress large data file 2018-02-21 10:30:35 +01:00
b252866393 sync fix temp/rescale to upstream 2018-02-21 10:17:00 +01:00
d52c5435a7 ignore installed copy of fix bond/react 2018-02-18 17:12:03 +01:00
75a432833b remove messy hack 2018-02-18 17:11:06 +01:00
5843be1557 move fix bond/react to USER-MISC package 2018-02-18 17:03:40 +01:00
a04a975d3a add large nylon example for parallel validation, reformat doc page 2018-02-11 17:35:47 -07:00
996c62f4e0 fix bond/react: generalized classical chemical reactions 2018-02-07 21:58:05 -07:00
3d63c29abd Merge pull request #2 from lammps/master
rebase
2018-02-07 21:35:26 -07:00
b0b67ca610 Merge branch 'master' into master 2017-10-18 18:49:15 -04:00
bf9f084d72 update rigid fix styles in USER-OMP for changes in RIGID package 2017-09-08 14:09:44 -04:00
08bdc4e422 minor cleanup 2017-09-07 12:01:19 -04:00
eb0e64b2f3 must forward modify_param() processing to FixRigid base class 2017-09-07 12:00:33 -04:00
fd0fae4847 Langevin thermostat applied only at post_force in rigid-body fixes 2017-09-05 23:40:14 -03:00
cccd6c441c Conditional late computation added to rigid_nh and rigid_nh_small 2017-09-05 23:27:26 -03:00
88d54d49b8 Documentation entries for fix_modify bodyforces option 2017-09-01 17:40:49 -03:00
3d614bbc87 Bug fix in multiple fix rigid check 2017-09-01 12:23:48 -03:00
6e945f72f4 Keyword 'bodyforces' added to fix_modify command
- Applies to classes FixRigid, FixRigidSmall, and FixPOEMS
2017-09-01 00:16:54 -03:00
251bc882cf put back modify_params() API that was removed in error 2017-08-31 16:25:16 -04:00
f56a345ae9 implement "earlyflag" to select when to compute body torques/forces 2017-08-31 16:15:39 -04:00
76cc545d2a convert early fix ordering error to warning 2017-08-31 16:14:45 -04:00
eed4815953 Non-rigid fixes with post-force() not allowed after fix poems 2017-08-27 20:03:28 -03:00
fa5ec0bae7 Fixes with post-force() not allowed after fix rigid or rigid/small 2017-08-27 19:22:37 -03:00
7572dc63db Computation of forces/torques on rigid bodies moved to post_force 2017-08-26 18:24:47 -03:00
3739 changed files with 245928 additions and 29213 deletions

48
.github/CODEOWNERS vendored
View File

@ -9,13 +9,49 @@ lib/kokkos/* @stanmoore1
lib/molfile/* @akohlmey
lib/qmmm/* @akohlmey
lib/vtk/* @rbberger
lib/kim/* @ellio167
# packages
src/KOKKOS @stanmoore1
src/USER-CGSDK @akohlmey
src/USER-COLVARS @giacomofiorin
src/USER-OMP @akohlmey
src/USER-QMMM @akohlmey
# whole packages
src/COMPRESS/* @akohlmey
src/GPU/* @ndtrung81
src/KOKKOS/* @stanmoore1
src/KIM/* @ellio167
src/LATTE/* @cnegre
src/USER-CGDNA/* @ohenrich
src/USER-CGSDK/* @akohlmey
src/USER-COLVARS/* @giacomofiorin
src/USER-DPD/* @timattox
src/USER-INTEL/* @wmbrownintel
src/USER-MANIFOLD/* @Pakketeretet2
src/USER-MEAMC/* @martok
src/USER-MOFFF/* @hheenen
src/USER-MOLFILE/* @akohlmey
src/USER-NETCDF/* @pastewka
src/USER-PHONON/* @lingtikong
src/USER-OMP/* @akohlmey
src/USER-QMMM/* @akohlmey
src/USER-REAXC/* @hasanmetin
src/USER-TALLY/* @akohlmey
src/USER-UEF/* @danicholson
src/USER-VTK/* @rbberger
# individual files in packages
src/GPU/pair_vashishta_gpu.* @andeplane
src/KOKKOS/pair_vashishta_kokkos.* @andeplane
src/MANYBODY/pair_vashishta_table.* @andeplane
src/USER-MISC/fix_bond_react.* @jrgissing
src/USER-MISC/*_grem.* @dstelter92
# tools
tools/msi2lmp/* @akohlmey
# cmake
cmake/* @junghans @rbberger
# python
python/* @rbberger
# docs
doc/utils/*/* @rbberger
doc/Makefile @rbberger
doc/README @rbberger

2
README
View File

@ -25,7 +25,7 @@ The LAMMPS distribution includes the following files and directories:
README this file
LICENSE the GNU General Public License (GPL)
bench benchmark problems
couple code coupling examples using LAMMPS as a library
cmake CMake build system
doc documentation
examples simple test problems
lib libraries LAMMPS can be linked with

View File

@ -2,15 +2,16 @@
# CMake build system
# This file is part of LAMMPS
# Created by Christoph Junghans and Richard Berger
cmake_minimum_required(VERSION 3.1)
cmake_minimum_required(VERSION 2.8.12)
project(lammps)
project(lammps CXX)
set(SOVERSION 0)
set(LAMMPS_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../src)
set(LAMMPS_LIB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib)
set(LAMMPS_LIB_BINARY_DIR ${CMAKE_BINARY_DIR}/lib)
get_filename_component(LAMMPS_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../src ABSOLUTE)
get_filename_component(LAMMPS_LIB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib ABSOLUTE)
get_filename_component(LAMMPS_LIB_BINARY_DIR ${CMAKE_BINARY_DIR}/lib ABSOLUTE)
#To not conflict with old Makefile build system, we build everything here
# To avoid conflicts with the conventional Makefile build system, we build everything here
file(GLOB LIB_SOURCES ${LAMMPS_SOURCE_DIR}/*.cpp)
file(GLOB LMP_SOURCES ${LAMMPS_SOURCE_DIR}/main.cpp)
list(REMOVE_ITEM LIB_SOURCES ${LMP_SOURCES})
@ -23,13 +24,23 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CXX_FLAGS)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
endif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CXX_FLAGS)
# remove any style headers in the src dir
file(GLOB SRC_STYLE_FILES ${LAMMPS_SOURCE_DIR}/style_*.h)
if(SRC_STYLE_FILES)
file(REMOVE ${SRC_STYLE_FILES})
endif()
enable_language(CXX)
# check for files auto-generated by make-based buildsystem
# this is fast, so check for it all the time
message(STATUS "Running check for auto-generated files from make-based build system")
file(GLOB SRC_AUTOGEN_FILES ${LAMMPS_SOURCE_DIR}/style_*.h)
list(APPEND SRC_AUTOGEN_FILES ${LAMMPS_SOURCE_DIR}/lmpinstalledpkgs.h)
foreach(_SRC ${SRC_AUTOGEN_FILES})
get_filename_component(FILENAME "${_SRC}" NAME)
if(EXISTS ${LAMMPS_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 ${LAMMPS_SOURCE_DIR} purge\n"
"to remove\n"
"########################################################################")
endif()
endforeach()
######################################################################
# compiler tests
@ -41,28 +52,80 @@ if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -restrict")
endif()
# GNU compiler features
if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
option(ENABLE_COVERAGE "Enable code coverage" OFF)
mark_as_advanced(ENABLE_COVERAGE)
if(ENABLE_COVERAGE)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
endif()
option(ENABLE_SANITIZE_ADDRESS "Enable address sanitizer" OFF)
mark_as_advanced(ENABLE_SANITIZE_ADDRESS)
if(ENABLE_SANITIZE_ADDRESS)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
endif()
option(ENABLE_SANITIZE_UNDEFINED "Enable undefined behavior sanitizer" OFF)
mark_as_advanced(ENABLE_SANITIZE_UNDEFINED)
if(ENABLE_SANITIZE_UNDEFINED)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined")
endif()
option(ENABLE_SANITIZE_THREAD "Enable thread sanitizer" OFF)
mark_as_advanced(ENABLE_SANITIZE_THREAD)
if(ENABLE_SANITIZE_THREAD)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread")
endif()
endif()
########################################################################
# User input options #
########################################################################
option(BUILD_SHARED_LIBS "Build shared libs" OFF)
if(BUILD_SHARED_LIBS) # for all pkg libs, mpi_stubs and linalg
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
option(BUILD_EXE "Build lmp binary" ON)
if(BUILD_EXE)
set(LAMMPS_MACHINE "" CACHE STRING "Suffix to append to lmp binary (WON'T enable any features automatically")
mark_as_advanced(LAMMPS_MACHINE)
if(LAMMPS_MACHINE)
set(LAMMPS_MACHINE "_${LAMMPS_MACHINE}")
endif()
endif()
option(BUILD_LIB "Build LAMMPS library" OFF)
if(BUILD_LIB)
option(BUILD_SHARED_LIBS "Build shared library" OFF)
if(BUILD_SHARED_LIBS) # for all pkg libs, mpi_stubs and linalg
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif()
set(LIB_SUFFIX "" CACHE STRING "Suffix to append to liblammps and pkg-config file")
mark_as_advanced(LIB_SUFFIX)
if(LIB_SUFFIX)
set(LIB_SUFFIX "_${LIB_SUFFIX}")
endif()
endif()
if(NOT BUILD_EXE AND NOT BUILD_LIB)
message(FATAL_ERROR "You need to at least enable one of two following options: BUILD_LIB or BUILD_EXE")
endif()
option(DEVELOPER_MODE "Enable developer mode" OFF)
mark_as_advanced(DEVELOPER_MODE)
option(CMAKE_VERBOSE_MAKEFILE "Generate verbose Makefiles" OFF)
include(GNUInstallDirs)
set(LAMMPS_LINK_LIBS)
set(LAMMPS_DEPS)
set(LAMMPS_API_DEFINES)
option(ENABLE_MPI "Build MPI version" OFF)
if(ENABLE_MPI)
find_package(MPI QUIET)
option(BUILD_MPI "Build MPI version" ${MPI_FOUND})
if(BUILD_MPI)
find_package(MPI REQUIRED)
include_directories(${MPI_C_INCLUDE_PATH})
include_directories(${MPI_CXX_INCLUDE_PATH})
list(APPEND LAMMPS_LINK_LIBS ${MPI_CXX_LIBRARIES})
option(LAMMPS_LONGLONG_TO_LONG "Workaround if your system or MPI version does not recognize 'long long' data types" OFF)
if(LAMMPS_LONGLONG_TO_LONG)
add_definitions(-DLAMMPS_LONGLONG_TO_LONG)
endif()
else()
enable_language(C)
file(GLOB MPI_SOURCES ${LAMMPS_SOURCE_DIR}/STUBS/mpi.c)
add_library(mpi_stubs STATIC ${MPI_SOURCES})
include_directories(${LAMMPS_SOURCE_DIR}/STUBS)
@ -83,12 +146,6 @@ if(LAMMPS_EXCEPTIONS)
set(LAMMPS_API_DEFINES "${LAMMPS_API_DEFINES} -DLAMMPS_EXCEPTIONS")
endif()
set(LAMMPS_MACHINE "" CACHE STRING "Suffix to append to lmp binary and liblammps (WON'T enable any features automatically")
mark_as_advanced(LAMMPS_MACHINE)
if(LAMMPS_MACHINE)
set(LAMMPS_MACHINE "_${LAMMPS_MACHINE}")
endif()
option(CMAKE_VERBOSE_MAKEFILE "Verbose makefile" OFF)
option(ENABLE_TESTING "Enable testing" OFF)
@ -96,26 +153,23 @@ if(ENABLE_TESTING)
enable_testing()
endif(ENABLE_TESTING)
option(ENABLE_ALL "Build all default packages" OFF)
set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GRANULAR
KSPACE MANYBODY MC MEAM MISC MOLECULE PERI QEQ
REAX REPLICA RIGID SHOCK SNAP SRD)
set(OTHER_PACKAGES KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE
USER-ATC USER-AWPMD USER-CGDNA USER-MESO
USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF
USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC
KSPACE MANYBODY MC MEAM MISC MOLECULE PERI QEQ REAX REPLICA RIGID SHOCK SPIN SNAP
SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD USER-BOCS
USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE
USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC
USER-MOFFF USER-MOLFILE USER-NETCDF USER-PHONON USER-QTB USER-REAXC USER-SMD
USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM)
set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU)
foreach(PKG ${DEFAULT_PACKAGES})
option(ENABLE_${PKG} "Build ${PKG} Package" ${ENABLE_ALL})
option(PKG_${PKG} "Build ${PKG} Package" OFF)
endforeach()
foreach(PKG ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
option(ENABLE_${PKG} "Build ${PKG} Package" OFF)
option(PKG_${PKG} "Build ${PKG} Package" OFF)
endforeach()
macro(pkg_depends PKG1 PKG2)
if(ENABLE_${PKG1} AND NOT ENABLE_${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()
@ -123,43 +177,51 @@ endmacro()
pkg_depends(MPIIO MPI)
pkg_depends(QEQ MANYBODY)
pkg_depends(USER-ATC MANYBODY)
pkg_depends(USER-H5MD MPI)
pkg_depends(USER-LB MPI)
pkg_depends(USER-MISC MANYBODY)
pkg_depends(USER-PHONON KSPACE)
if(ENABLE_BODY AND ENABLE_POEMS)
message(FATAL_ERROR "BODY and POEMS cannot be enabled at the same time")
endif()
pkg_depends(CORESHELL KSPACE)
######################################################
# packages with special compiler needs or external libs
######################################################
if(ENABLE_REAX OR ENABLE_MEAM OR ENABLE_USER-QUIP OR ENABLE_USER-QMMM OR ENABLE_LATTE)
if(PKG_REAX OR PKG_MEAM OR PKG_USER-QUIP OR PKG_USER-QMMM OR PKG_LATTE)
enable_language(Fortran)
include(CheckFortranCompilerFlag)
check_Fortran_compiler_flag("-fno-second-underscore" FC_HAS_NO_SECOND_UNDERSCORE)
endif()
if(ENABLE_KOKKOS OR ENABLE_MSCG)
# starting with CMake 3.1 this is all you have to do to enforce C++11
set(CMAKE_CXX_STANDARD 11) # C++11...
set(CMAKE_CXX_STANDARD_REQUIRED ON) #...is required...
set(CMAKE_CXX_EXTENSIONS OFF) #...without compiler extensions like gnu++11
if(PKG_MEAM OR PKG_USER-H5MD OR PKG_USER-QMMM)
enable_language(C)
endif()
if(ENABLE_USER-OMP OR ENABLE_KOKKOS OR ENABLE_USER-INTEL)
find_package(OpenMP QUIET)
option(BUILD_OMP "Build with OpenMP support" ${OpenMP_FOUND})
if(BUILD_OMP OR PKG_USER-OMP OR PKG_KOKKOS OR PKG_USER-INTEL)
find_package(OpenMP REQUIRED)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif()
if(ENABLE_KSPACE)
set(FFT "KISSFFT" CACHE STRING "FFT library for KSPACE package")
set_property(CACHE FFT PROPERTY STRINGS KISSFFT FFTW3 MKL FFTW2)
if(PKG_KSPACE)
option(FFT_SINGLE "Use single precision FFT instead of double" OFF)
set(FFTW "FFTW3")
if(FFT_SINGLE)
set(FFTW "FFTW3F")
add_definitions(-DFFT_SINGLE)
endif()
find_package(${FFTW} QUIET)
if(${FFTW}_FOUND)
set(FFT "${FFTW}" CACHE STRING "FFT library for KSPACE package")
else()
set(FFT "KISSFFT" CACHE STRING "FFT library for KSPACE package")
endif()
set_property(CACHE FFT PROPERTY STRINGS KISSFFT ${FFTW} MKL)
if(NOT FFT STREQUAL "KISSFFT")
find_package(${FFT} REQUIRED)
add_definitions(-DFFT_${FFT})
if(NOT FFT STREQUAL "FFTW3F")
add_definitions(-DFFT_FFTW)
else()
add_definitions(-DFFT_${FFT})
endif()
include_directories(${${FFT}_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${${FFT}_LIBRARIES})
endif()
@ -170,28 +232,23 @@ if(ENABLE_KSPACE)
endif()
endif()
if(ENABLE_MSCG OR ENABLE_USER-ATC OR ENABLE_USER-AWPMD OR ENABLE_USER-QUIP OR ENABLE_LATTE)
if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE)
find_package(LAPACK)
if(NOT LAPACK_FOUND)
enable_language(Fortran)
file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/*.f)
file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/*.[fF])
add_library(linalg STATIC ${LAPACK_SOURCES})
include(CheckFortranCompilerFlag)
check_Fortran_compiler_flag("-fno-second-underscore" FC_HAS_NO_SECOND_UNDERSCORE)
if(FC_HAS_NO_SECOND_UNDERSCORE)
target_compile_options(linalg PRIVATE -fno-second-underscore)
endif()
set(LAPACK_LIBRARIES linalg)
endif()
endif()
if(ENABLE_PYTHON)
if(PKG_PYTHON)
find_package(PythonInterp REQUIRED)
find_package(PythonLibs REQUIRED)
add_definitions(-DLMP_PYTHON)
include_directories(${PYTHON_INCLUDE_DIR})
list(APPEND LAMMPS_LINK_LIBS ${PYTHON_LIBRARY})
if(BUILD_SHARED_LIBS)
if(BUILD_LIB AND BUILD_SHARED_LIBS)
if(NOT PYTHON_INSTDIR)
execute_process(COMMAND ${PYTHON_EXECUTABLE}
-c "import distutils.sysconfig as cg; print(cg.get_python_lib(1,0,prefix='${CMAKE_INSTALL_PREFIX}'))"
@ -201,16 +258,25 @@ if(ENABLE_PYTHON)
endif()
endif()
find_package(JPEG)
if(JPEG_FOUND)
find_package(JPEG QUIET)
option(WITH_JPEG "Enable JPEG support" ${JPEG_FOUND})
if(WITH_JPEG)
find_package(JPEG REQUIRED)
add_definitions(-DLAMMPS_JPEG)
include_directories(${JPEG_INCLUDE_DIR})
list(APPEND LAMMPS_LINK_LIBS ${JPEG_LIBRARIES})
endif()
find_package(PNG)
find_package(ZLIB)
find_package(PNG QUIET)
find_package(ZLIB QUIET)
if(PNG_FOUND AND ZLIB_FOUND)
option(WITH_PNG "Enable PNG support" ON)
else()
option(WITH_PNG "Enable PNG support" OFF)
endif()
if(WITH_PNG)
find_package(PNG REQUIRED)
find_package(ZLIB REQUIRED)
include_directories(${PNG_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${PNG_LIBRARIES} ${ZLIB_LIBRARIES})
add_definitions(-DLAMMPS_PNG)
@ -218,113 +284,194 @@ endif()
find_program(GZIP_EXECUTABLE gzip)
find_package_handle_standard_args(GZIP REQUIRED_VARS GZIP_EXECUTABLE)
if(GZIP_FOUND)
option(WITH_GZIP "Enable GZIP support" ${GZIP_FOUND})
if(WITH_GZIP)
if(NOT GZIP_FOUND)
message(FATAL_ERROR "gzip executable not found")
endif()
add_definitions(-DLAMMPS_GZIP)
endif()
find_program(FFMPEG_EXECUTABLE ffmpeg)
find_package_handle_standard_args(FFMPEG REQUIRED_VARS FFMPEG_EXECUTABLE)
if(FFMPEG_FOUND)
option(WITH_FFMPEG "Enable FFMPEG support" ${FFMPEG_FOUND})
if(WITH_FFMPEG)
if(NOT FFMPEG_FOUND)
message(FATAL_ERROR "ffmpeg executable not found")
endif()
add_definitions(-DLAMMPS_FFMPEG)
endif()
if(ENABLE_VORONOI)
find_package(VORO REQUIRED) #some distros
if(PKG_VORONOI)
option(DOWNLOAD_VORO "Download voro++ (instead of using the system's one)" OFF)
if(DOWNLOAD_VORO)
include(ExternalProject)
ExternalProject_Add(voro_build
URL http://math.lbl.gov/voro++/download/dir/voro++-0.4.6.tar.gz
URL_MD5 2338b824c3b7b25590e18e8df5d68af9
CONFIGURE_COMMAND "" 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 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()
if(ENABLE_LATTE)
find_package(LATTE QUIET)
if(NOT LATTE_FOUND)
if(PKG_LATTE)
option(DOWNLOAD_LATTE "Download latte (instead of using the system's one)" OFF)
if(DOWNLOAD_LATTE)
message(STATUS "LATTE not found - we will build our own")
include(ExternalProject)
ExternalProject_Add(latte_build
URL https://github.com/lanl/LATTE/archive/v1.0.1.tar.gz
URL_MD5 5137e28cb1a64444bd571c98c98a6eee
URL https://github.com/lanl/LATTE/archive/v1.2.1.tar.gz
URL_MD5 bed76e7e76c545c36dd848a8f1fd35eb
SOURCE_SUBDIR cmake
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE}
)
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 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} ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
list(APPEND LAMMPS_LINK_LIBS ${LATTE_LIBRARIES} ${LAPACK_LIBRARIES})
endif()
if(ENABLE_USER-MOLFILE)
if(PKG_USER-MOLFILE)
add_library(molfile INTERFACE)
target_include_directories(molfile INTERFACE ${LAMMPS_LIB_SOURCE_DIR}/molfile)
target_link_libraries(molfile INTERFACE ${CMAKE_DL_LIBS})
list(APPEND LAMMPS_LINK_LIBS molfile)
endif()
if(ENABLE_USER-NETCDF)
if(PKG_USER-NETCDF)
find_package(NetCDF REQUIRED)
include_directories(NETCDF_INCLUDE_DIR)
list(APPEND LAMMPS_LINK_LIBS ${NETCDF_LIBRARY})
add_definitions(-DLMP_HAS_NETCDF -DNC_64BIT_DATA=0x0020)
endif()
if(ENABLE_USER-SMD)
find_package(Eigen3 REQUIRED)
if(PKG_USER-SMD)
option(DOWNLOAD_Eigen3 "Download Eigen3 (instead of using the system's one)" OFF)
if(DOWNLOAD_Eigen3)
include(ExternalProject)
ExternalProject_Add(Eigen3_build
URL http://bitbucket.org/eigen/eigen/get/3.3.4.tar.gz
URL_MD5 1a47e78efe365a97de0c022d127607c3
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)
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()
if(ENABLE_USER-QUIP)
if(PKG_USER-QUIP)
find_package(QUIP REQUIRED)
list(APPEND LAMMPS_LINK_LIBS ${QUIP_LIBRARIES} ${LAPACK_LIBRARIES} ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
list(APPEND LAMMPS_LINK_LIBS ${QUIP_LIBRARIES} ${LAPACK_LIBRARIES})
endif()
if(ENABLE_USER-QMMM)
if(PKG_USER-QMMM)
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} ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
list(APPEND LAMMPS_LINK_LIBS ${QE_LIBRARIES})
endif()
if(ENABLE_USER-VTK)
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()
if(ENABLE_KIM)
find_package(KIM REQUIRED)
if(PKG_KIM)
option(DOWNLOAD_KIM "Download kim-api (instead of using the system's one)" OFF)
if(DOWNLOAD_KIM)
include(ExternalProject)
ExternalProject_Add(kim_build
URL https://github.com/openkim/kim-api/archive/v1.9.5.tar.gz
URL_MD5 9f66efc128da33039e30659f36fc6d00
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR>
)
ExternalProject_get_property(kim_build INSTALL_DIR)
set(KIM_INCLUDE_DIRS ${INSTALL_DIR}/include/kim-api-v1)
set(KIM_LIBRARIES ${INSTALL_DIR}/lib/libkim-api-v1.so)
list(APPEND LAMMPS_DEPS kim_build)
else()
find_package(KIM)
if(NOT KIM_FOUND)
message(FATAL_ERROR "KIM not found, help CMake to find it by setting KIM_LIBRARY and KIM_INCLUDE_DIR, or set DOWNLOAD_KIM=ON to download it")
endif()
endif()
list(APPEND LAMMPS_LINK_LIBS ${KIM_LIBRARIES})
include_directories(${KIM_INCLUDE_DIRS})
endif()
if(ENABLE_MSCG)
if(PKG_MSCG)
find_package(GSL REQUIRED)
set(LAMMPS_LIB_MSCG_BIN_DIR ${LAMMPS_LIB_BINARY_DIR}/mscg)
set(MSCG_TARBALL ${LAMMPS_LIB_MSCG_BIN_DIR}/MS-CG-master.zip)
set(LAMMPS_LIB_MSCG_BIN_DIR ${LAMMPS_LIB_MSCG_BIN_DIR}/MSCG-release-master/src)
if(NOT EXISTS ${LAMMPS_LIB_MSCG_BIN_DIR})
if(NOT EXISTS ${MSCG_TARBALL})
message(STATUS "Downloading ${MSCG_TARBALL}")
file(DOWNLOAD
https://github.com/uchicago-voth/MSCG-release/archive/master.zip
${MSCG_TARBALL} SHOW_PROGRESS) #EXPECTED_MD5 cannot be due due to master
option(DOWNLOAD_MSCG "Download latte (instead of using the system's one)" OFF)
if(DOWNLOAD_MSCG)
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> -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} ${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()
message(STATUS "Unpacking ${MSCG_TARBALL}")
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ${MSCG_TARBALL}
WORKING_DIRECTORY ${LAMMPS_LIB_BINARY_DIR}/mscg)
endif()
file(GLOB MSCG_SOURCES ${LAMMPS_LIB_MSCG_BIN_DIR}/*.cpp)
add_library(mscg STATIC ${MSCG_SOURCES})
list(APPEND LAMMPS_LINK_LIBS mscg)
target_compile_options(mscg PRIVATE -DDIMENSION=3 -D_exclude_gromacs=1)
target_include_directories(mscg PUBLIC ${LAMMPS_LIB_MSCG_BIN_DIR})
target_link_libraries(mscg ${GSL_LIBRARIES} ${LAPACK_LIBRARIES})
list(APPEND LAMMPS_LINK_LIBS ${MSCG_LIBRARIES} ${GSL_LIBRARIES} ${LAPACK_LIBRARIES})
include_directories(${MSCG_INCLUDE_DIRS})
endif()
if(PKG_COMPRESS)
find_package(ZLIB REQUIRED)
include_directories(${ZLIB_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${ZLIB_LIBRARIES})
endif()
########################################################################
# Basic system tests (standard libraries, headers, functions, types) #
########################################################################
include(CheckIncludeFile)
include(CheckIncludeFileCXX)
foreach(HEADER math.h)
check_include_file(${HEADER} FOUND_${HEADER})
check_include_file_cxx(${HEADER} FOUND_${HEADER})
if(NOT FOUND_${HEADER})
message(FATAL_ERROR "Could not find needed header - ${HEADER}")
endif(NOT FOUND_${HEADER})
@ -333,6 +480,9 @@ endforeach(HEADER)
set(MATH_LIBRARIES "m" CACHE STRING "math library")
mark_as_advanced( MATH_LIBRARIES )
include(CheckLibraryExists)
if (CMAKE_VERSION VERSION_LESS "3.4")
enable_language(C) # check_library_exists isn't supported without a c compiler before v3.4
endif()
foreach(FUNC sin cos)
check_library_exists(${MATH_LIBRARIES} ${FUNC} "" FOUND_${FUNC}_${MATH_LIBRARIES})
if(NOT FOUND_${FUNC}_${MATH_LIBRARIES})
@ -350,25 +500,16 @@ RegisterStyles(${LAMMPS_SOURCE_DIR})
##############################################
# add sources of enabled packages
############################################
foreach(PKG ${DEFAULT_PACKAGES} ${OTHER_PACKAGES})
foreach(PKG ${DEFAULT_PACKAGES})
set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG})
# ignore PKG files which were manually installed in src folder
# headers are ignored during RegisterStyles
file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/*.cpp)
file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/*.h)
foreach(PKG_FILE in ${${PKG}_SOURCES})
get_filename_component(FNAME ${PKG_FILE} NAME)
list(REMOVE_ITEM LIB_SOURCES ${LAMMPS_SOURCE_DIR}/${FNAME})
endforeach()
# check for package files in src directory due to old make system
DetectBuildSystemConflict(${LAMMPS_SOURCE_DIR} ${${PKG}_SOURCES} ${${PKG}_HEADERS})
foreach(PKG_FILE in ${${PKG}_HEADERS})
get_filename_component(FNAME ${PKG_FILE} NAME)
DetectAndRemovePackageHeader(${LAMMPS_SOURCE_DIR}/${FNAME})
endforeach()
if(ENABLE_${PKG})
if(PKG_${PKG})
# detects styles in package and adds them to global list
RegisterStyles(${${PKG}_SOURCES_DIR})
@ -377,12 +518,23 @@ foreach(PKG ${DEFAULT_PACKAGES} ${OTHER_PACKAGES})
endif()
endforeach()
# dedicated check for entire contents of accelerator packages
foreach(PKG ${ACCEL_PACKAGES})
set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG})
file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/*.cpp)
file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/*.h)
# check for package files in src directory due to old make system
DetectBuildSystemConflict(${LAMMPS_SOURCE_DIR} ${${PKG}_SOURCES} ${${PKG}_HEADERS})
endforeach()
##############################################
# add lib sources of (simple) enabled packages
############################################
foreach(SIMPLE_LIB REAX MEAM POEMS USER-ATC USER-AWPMD USER-COLVARS USER-H5MD
USER-QMMM)
if(ENABLE_${SIMPLE_LIB})
if(PKG_${SIMPLE_LIB})
string(REGEX REPLACE "^USER-" "" PKG_LIB "${SIMPLE_LIB}")
string(TOLOWER "${PKG_LIB}" PKG_LIB)
file(GLOB_RECURSE ${PKG_LIB}_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.F
@ -403,40 +555,26 @@ foreach(SIMPLE_LIB REAX MEAM POEMS USER-ATC USER-AWPMD USER-COLVARS USER-H5MD
endif()
endforeach()
if(ENABLE_USER-AWPMD)
if(PKG_USER-AWPMD)
target_link_libraries(awpmd ${LAPACK_LIBRARIES})
endif()
if(ENABLE_USER-ATC)
if(PKG_USER-ATC)
target_link_libraries(atc ${LAPACK_LIBRARIES})
endif()
if(ENABLE_USER-H5MD)
if(PKG_USER-H5MD)
find_package(HDF5 REQUIRED)
target_link_libraries(h5md ${HDF5_LIBRARIES})
target_include_directories(h5md PRIVATE ${HDF5_INCLUDE_DIRS})
endif()
if(ENABLE_MEAM AND FC_HAS_NO_SECOND_UNDERSCORE)
foreach(FSRC ${meam_SOURCES})
string(REGEX REPLACE "^.*\\." "" FEXT "${FSRC}")
list(FIND CMAKE_Fortran_SOURCE_FILE_EXTENSIONS "${FEXT}" FINDEX)
if(FINDEX GREATER -1)
set_property(SOURCE ${FSRC} APPEND PROPERTY COMPILE_FLAGS "-fno-second-underscore")
endif()
endforeach()
endif()
if(ENABLE_REAX AND FC_HAS_NO_SECOND_UNDERSCORE)
target_compile_options(reax PRIVATE -fno-second-underscore)
endif()
######################################################################
# packages which selectively include variants based on enabled styles
# e.g. accelerator packages
######################################################################
if(ENABLE_USER-OMP)
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
@ -453,7 +591,7 @@ if(ENABLE_USER-OMP)
include_directories(${USER-OMP_SOURCES_DIR})
endif()
if(ENABLE_KOKKOS)
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)
@ -489,7 +627,7 @@ if(ENABLE_KOKKOS)
RegisterNBinStyle(${KOKKOS_PKG_SOURCES_DIR}/nbin_kokkos.h)
RegisterNPairStyle(${KOKKOS_PKG_SOURCES_DIR}/npair_kokkos.h)
if(ENABLE_USER-DPD)
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)
@ -502,7 +640,7 @@ if(ENABLE_KOKKOS)
include_directories(${KOKKOS_PKG_SOURCES_DIR})
endif()
if(ENABLE_OPT)
if(PKG_OPT)
set(OPT_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/OPT)
set(OPT_SOURCES)
set_property(GLOBAL PROPERTY "OPT_SOURCES" "${OPT_SOURCES}")
@ -516,7 +654,34 @@ if(ENABLE_OPT)
include_directories(${OPT_SOURCES_DIR})
endif()
if(ENABLE_USER-INTEL)
if(PKG_USER-INTEL)
if(NOT DEVELOPER_MODE)
if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
message(FATAL_ERROR "USER-INTEL is only useful together with intel compiler")
endif()
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16)
message(FATAL_ERROR "USER-INTEL is needed at least 2016 intel compiler, found ${CMAKE_CXX_COMPILER_VERSION}")
endif()
endif()
option(INJECT_KNL_FLAG "Inject flags for KNL build" OFF)
if(INJECT_KNL_FLAG)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -xMIC-AVX512")
endif()
option(INJECT_INTEL_FLAG "Inject OMG fast flags for USER-INTEL" ON)
if(INJECT_INTEL_FLAG AND 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 -qopenmp -qno-offload -fno-alias -ansi-alias -restrict -DLMP_INTEL_USELRT -DLMP_USE_MKL_RNG -O2 "-fp-model fast=2" -no-prec-div -qoverride-limits -qopt-zmm-usage=high)
check_cxx_compiler_flag("${__FLAG}" COMPILER_SUPPORTS${_FLAG})
if(COMPILER_SUPPORTS${_FLAG})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_FLAG}")
endif()
endforeach()
endif()
set(USER-INTEL_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-INTEL)
set(USER-INTEL_SOURCES ${USER-INTEL_SOURCES_DIR}/intel_preprocess.h
${USER-INTEL_SOURCES_DIR}/intel_buffers.h
@ -540,7 +705,10 @@ if(ENABLE_USER-INTEL)
include_directories(${USER-INTEL_SOURCES_DIR})
endif()
if(ENABLE_GPU)
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
@ -563,8 +731,7 @@ if(ENABLE_GPU)
endif()
option(CUDPP_OPT "Enable CUDPP_OPT" ON)
set(GPU_ARCH "sm_30" CACHE STRING "LAMMPS GPU CUDA SM architecture")
set_property(CACHE GPU_ARCH PROPERTY STRINGS sm_10 sm_20 sm_30 sm_60)
set(GPU_ARCH "sm_30" CACHE STRING "LAMMPS GPU CUDA SM 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)
@ -637,7 +804,7 @@ if(ENABLE_GPU)
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} -DMPI_GERYON -DUCL_NO_EXIT)
target_compile_definitions(gpu PRIVATE -D_${GPU_PREC} -D${OCL_TUNE}_OCL -DMPI_GERYON -DUCL_NO_EXIT)
target_compile_definitions(gpu PRIVATE -DUSE_OPENCL)
list(APPEND LAMMPS_LINK_LIBS gpu)
@ -673,60 +840,157 @@ GenerateStyleHeaders(${LAMMPS_STYLE_HEADERS_DIR})
include_directories(${LAMMPS_SOURCE_DIR})
include_directories(${LAMMPS_STYLE_HEADERS_DIR})
######################################
# Generate lmpinstalledpkgs.h
######################################
set(temp "#ifndef LMP_INSTALLED_PKGS_H\n#define LMP_INSTALLED_PKGS_H\n")
set(temp "${temp}const char * LAMMPS_NS::LAMMPS::installed_packages[] = {\n")
foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
if(PKG_${PKG})
set(temp "${temp} \"${PKG}\",\n")
endif()
endforeach()
set(temp "${temp} NULL\n};\n#endif\n\n")
message(STATUS "Generating lmpinstalledpkgs.h...")
file(WRITE "${LAMMPS_STYLE_HEADERS_DIR}/lmpinstalledpkgs.h.tmp" "${temp}" )
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${LAMMPS_STYLE_HEADERS_DIR}/lmpinstalledpkgs.h.tmp" "${LAMMPS_STYLE_HEADERS_DIR}/lmpinstalledpkgs.h")
###########################################
# Actually add executable and lib to build
############################################
add_library(lammps ${LIB_SOURCES})
target_link_libraries(lammps ${LAMMPS_LINK_LIBS})
if(LAMMPS_DEPS)
add_dependencies(lammps ${LAMMPS_DEPS})
get_property(LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES)
list (FIND LANGUAGES "Fortran" _index)
if (${_index} GREATER -1)
list(APPEND LAMMPS_LINK_LIBS ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
endif()
set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LAMMPS_MACHINE})
if(BUILD_SHARED_LIBS)
set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps)
configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_MACHINE}.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_MACHINE}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
list(REMOVE_DUPLICATES LAMMPS_LINK_LIBS)
if(BUILD_LIB)
add_library(lammps ${LIB_SOURCES})
target_link_libraries(lammps ${LAMMPS_LINK_LIBS})
if(LAMMPS_DEPS)
add_dependencies(lammps ${LAMMPS_DEPS})
endif()
set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LIB_SUFFIX})
if(BUILD_SHARED_LIBS)
set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps)
configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
endif()
else()
list(APPEND LMP_SOURCES ${LIB_SOURCES})
endif()
add_executable(lmp ${LMP_SOURCES})
target_link_libraries(lmp lammps)
set_target_properties(lmp PROPERTIES OUTPUT_NAME lmp${LAMMPS_MACHINE})
install(TARGETS lmp DESTINATION ${CMAKE_INSTALL_BINDIR})
if(ENABLE_TESTING)
add_test(ShowHelp lmp${LAMMPS_MACHINE} -help)
if(BUILD_EXE)
add_executable(lmp ${LMP_SOURCES})
if(BUILD_LIB)
target_link_libraries(lmp lammps)
else()
target_link_libraries(lmp ${LAMMPS_LINK_LIBS})
if(LAMMPS_DEPS)
add_dependencies(lmp ${LAMMPS_DEPS})
endif()
endif()
set_target_properties(lmp PROPERTIES OUTPUT_NAME lmp${LAMMPS_MACHINE})
install(TARGETS lmp DESTINATION ${CMAKE_INSTALL_BINDIR})
if(ENABLE_TESTING)
add_test(ShowHelp lmp${LAMMPS_MACHINE} -help)
endif()
endif()
##################################
###############################################################################
# Testing
#
# 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()
###############################################################################
# Print package summary
##################################
foreach(PKG ${DEFAULT_PACKAGES} ${OTHER_PACKAGES} ${ACCEL_PACKAGES})
if(ENABLE_${PKG})
###############################################################################
foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES})
if(PKG_${PKG})
message(STATUS "Building package: ${PKG}")
endif()
endforeach()
string(TOUPPER "${CMAKE_BUILD_TYPE}" BTYPE)
get_directory_property(CPPFLAGS DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS)
include(FeatureSummary)
feature_summary(DESCRIPTION "The following packages have been found:" WHAT PACKAGES_FOUND)
message(STATUS "<<< Build configuration >>>
Build type ${CMAKE_BUILD_TYPE}
Install path ${CMAKE_INSTALL_PREFIX}
Compilers and Flags:
C++ Compiler ${CMAKE_CXX_COMPILER}
Type ${CMAKE_CXX_COMPILER_ID}
C++ Flags ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${BTYPE}}")
Version ${CMAKE_CXX_COMPILER_VERSION}
C++ Flags ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${BTYPE}}
Defines ${CPPFLAGS}")
get_property(LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES)
if(LANGUAGES MATCHES ".*Fortran.*")
list (FIND LANGUAGES "Fortran" _index)
if (${_index} GREATER -1)
message(STATUS "Fortran Compiler ${CMAKE_Fortran_COMPILER}
Type ${CMAKE_Fortran_COMPILER_ID}
Version ${CMAKE_Fortran_COMPILER_VERSION}
Fortran Flags ${CMAKE_Fortran_FLAGS} ${CMAKE_Fortran_FLAGS_${BTYPE}}")
endif()
message(STATUS "Linker flags:
list (FIND LANGUAGES "C" _index)
if (${_index} GREATER -1)
message(STATUS "C Compiler ${CMAKE_C_COMPILER}
Type ${CMAKE_C_COMPILER_ID}
Version ${CMAKE_C_COMPILER_VERSION}
C Flags ${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${BTYPE}}")
endif()
if(CMAKE_EXE_LINKER_FLAGS)
message(STATUS "Linker flags:
Executable ${CMAKE_EXE_LINKER_FLAGS}")
endif()
if(BUILD_SHARED_LIBS)
message(STATUS "Shared libries ${CMAKE_SHARED_LINKER_FLAGS}")
message(STATUS "Shared libraries ${CMAKE_SHARED_LINKER_FLAGS}")
else()
message(STATUS "Static libries ${CMAKE_STATIC_LINKER_FLAGS}")
message(STATUS "Static libraries ${CMAKE_STATIC_LINKER_FLAGS}")
endif()
message(STATUS "Link libraries: ${LAMMPS_LINK_LIBS}")
if(BUILD_MPI)
message(STATUS "Using mpi with headers in ${MPI_CXX_INCLUDE_PATH} and ${MPI_CXX_LIBRARIES}")
endif()
if(PKG_GPU)
message(STATUS "GPU Api: ${GPU_API}")
if(GPU_API STREQUAL "CUDA")
message(STATUS "GPU Arch: ${GPU_ARCH}")
elseif(GPU_API STREQUAL "OpenCL")
message(STATUS "OCL Tune: ${OCL_TUNE}")
endif()
message(STATUS "GPU Precision: ${GPU_PREC}")
endif()
if(PKG_KOKKOS)
message(STATUS "Kokkos Arch: ${KOKKOS_ARCH}")
endif()
if(PKG_KSPACE)
message(STATUS "Using ${FFT} as FFT")
endif()

View File

@ -1,22 +0,0 @@
# - Find fftw2
# Find the native FFTW2 headers and libraries.
#
# FFTW2_INCLUDE_DIRS - where to find fftw2.h, etc.
# FFTW2_LIBRARIES - List of libraries when using fftw2.
# FFTW2_FOUND - True if fftw2 found.
#
find_path(FFTW2_INCLUDE_DIR fftw.h)
find_library(FFTW2_LIBRARY NAMES fftw)
set(FFTW2_LIBRARIES ${FFTW2_LIBRARY})
set(FFTW2_INCLUDE_DIRS ${FFTW2_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set FFTW2_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(FFTW2 DEFAULT_MSG FFTW2_LIBRARY FFTW2_INCLUDE_DIR)
mark_as_advanced(FFTW2_INCLUDE_DIR FFTW2_LIBRARY )

View File

@ -0,0 +1,25 @@
# - Find fftw3f
# Find the native FFTW3F headers and libraries.
#
# FFTW3F_INCLUDE_DIRS - where to find fftw3f.h, etc.
# FFTW3F_LIBRARIES - List of libraries when using fftw3f.
# FFTW3F_FOUND - True if fftw3f found.
#
find_package(PkgConfig)
pkg_check_modules(PC_FFTW3F fftw3f)
find_path(FFTW3F_INCLUDE_DIR fftw3.h HINTS ${PC_FFTW3F_INCLUDE_DIRS})
find_library(FFTW3F_LIBRARY NAMES fftw3f HINTS ${PC_FFTW3F_LIBRARY_DIRS})
set(FFTW3F_LIBRARIES ${FFTW3F_LIBRARY})
set(FFTW3F_INCLUDE_DIRS ${FFTW3F_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set FFTW3F_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(FFTW3F DEFAULT_MSG FFTW3F_LIBRARY FFTW3F_INCLUDE_DIR)
mark_as_advanced(FFTW3F_INCLUDE_DIR FFTW3F_LIBRARY )

View File

@ -0,0 +1,22 @@
# - Find mscg
# Find the native MSCG headers and libraries.
#
# MSCG_INCLUDE_DIRS - where to find mscg.h, etc.
# MSCG_LIBRARIES - List of libraries when using mscg.
# MSCG_FOUND - True if mscg found.
#
find_path(MSCG_INCLUDE_DIR mscg.h PATH_SUFFIXES mscg)
find_library(MSCG_LIBRARY NAMES mscg)
set(MSCG_LIBRARIES ${MSCG_LIBRARY})
set(MSCG_INCLUDE_DIRS ${MSCG_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set MSCG_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(MSCG DEFAULT_MSG MSCG_LIBRARY MSCG_INCLUDE_DIR)
mark_as_advanced(MSCG_INCLUDE_DIR MSCG_LIBRARY )

View File

@ -45,14 +45,10 @@ function(FindStyleHeadersExt path style_class extension headers sources)
endfunction(FindStyleHeadersExt)
function(CreateStyleHeader path filename)
math(EXPR N "${ARGC}-2")
set(temp "")
if(N GREATER 0)
math(EXPR ARG_END "${ARGC}-1")
foreach(IDX RANGE 2 ${ARG_END})
list(GET ARGV ${IDX} FNAME)
if(ARGC GREATER 2)
list(REMOVE_AT ARGV 0 1)
foreach(FNAME ${ARGV})
get_filename_component(FNAME ${FNAME} NAME)
set(temp "${temp}#include \"${FNAME}\"\n")
endforeach()
@ -107,35 +103,6 @@ function(RegisterStyles search_path)
FindStyleHeaders(${search_path} REGION_CLASS region_ REGION ) # region ) # domain
endfunction(RegisterStyles)
function(RemovePackageHeader headers pkg_header)
get_property(hlist GLOBAL PROPERTY ${headers})
list(REMOVE_ITEM hlist ${pkg_header})
set_property(GLOBAL PROPERTY ${headers} "${hlist}")
endfunction(RemovePackageHeader)
function(DetectAndRemovePackageHeader fname)
RemovePackageHeader(ANGLE ${fname})
RemovePackageHeader(ATOM_VEC ${fname})
RemovePackageHeader(BODY ${fname})
RemovePackageHeader(BOND ${fname})
RemovePackageHeader(COMMAND ${fname})
RemovePackageHeader(COMPUTE ${fname})
RemovePackageHeader(DIHEDRAL ${fname})
RemovePackageHeader(DUMP ${fname})
RemovePackageHeader(FIX ${fname})
RemovePackageHeader(IMPROPER ${fname})
RemovePackageHeader(INTEGRATE ${fname})
RemovePackageHeader(KSPACE ${fname})
RemovePackageHeader(MINIMIZE ${fname})
RemovePackageHeader(NBIN ${fname})
RemovePackageHeader(NPAIR ${fname})
RemovePackageHeader(NSTENCIL ${fname})
RemovePackageHeader(NTOPO ${fname})
RemovePackageHeader(PAIR ${fname})
RemovePackageHeader(READER ${fname})
RemovePackageHeader(REGION ${fname})
endfunction(DetectAndRemovePackageHeader)
function(RegisterStylesExt search_path extension sources)
FindStyleHeadersExt(${search_path} ANGLE_CLASS ${extension} ANGLE ${sources})
FindStyleHeadersExt(${search_path} ATOM_CLASS ${extension} ATOM_VEC ${sources})
@ -181,3 +148,21 @@ function(GenerateStyleHeaders output_path)
GenerateStyleHeader(${output_path} READER reader ) # read_dump
GenerateStyleHeader(${output_path} REGION region ) # domain
endfunction(GenerateStyleHeaders)
function(DetectBuildSystemConflict lammps_src_dir)
if(ARGC GREATER 1)
list(REMOVE_AT ARGV 0)
foreach(SRC_FILE ${ARGV})
get_filename_component(FILENAME ${SRC_FILE} NAME)
if(EXISTS ${lammps_src_dir}/${FILENAME})
message(FATAL_ERROR "\n########################################################################\n"
"Found package(s) installed by the make-based build system\n"
"\n"
"Please run\n"
"make -C ${lammps_src_dir} no-all purge\n"
"to uninstall\n"
"########################################################################")
endif()
endforeach()
endif()
endfunction(DetectBuildSystemConflict)

File diff suppressed because it is too large Load Diff

View File

@ -13,6 +13,6 @@ Description: Large-scale Atomic/Molecular Massively Parallel Simulator Library
URL: http://lammps.sandia.gov
Version:
Requires:
Libs: -L${libdir} -llammps@LAMMPS_MACHINE@
Libs: -L${libdir} -llammps@LIB_SUFFIX@@
Libs.private: -lm
Cflags: -I${includedir} @LAMMPS_API_DEFINES@

View File

@ -0,0 +1,22 @@
set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MEAM MISC
MOLECULE MPIIO MSCG OPT PERI POEMS
PYTHON QEQ REAX REPLICA RIGID SHOCK SNAP SRD VORONOI)
set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS
USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB
USER-QUIP USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY
USER-UEF USER-VTK)
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI
USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE
USER-NETCDF USER-QMMM USER-QUIP USER-SMD USER-VTK)
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})
foreach(PKG ${ALL_PACKAGES})
set(PKG_${PKG} OFF CACHE BOOL "" FORCE)
endforeach()

View File

@ -0,0 +1,22 @@
set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MEAM MISC
MOLECULE MPIIO MSCG OPT PERI POEMS
PYTHON QEQ REAX REPLICA RIGID SHOCK SNAP SRD VORONOI)
set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS
USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB
USER-QUIP USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY
USER-UEF USER-VTK)
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI
USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE
USER-NETCDF USER-QMMM USER-QUIP USER-SMD USER-VTK)
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})
foreach(PKG ${ALL_PACKAGES})
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
endforeach()

View File

@ -0,0 +1,69 @@
set(PKG_ASPHERE OFF CACHE BOOL "" FORCE)
set(PKG_BODY OFF CACHE BOOL "" FORCE)
set(PKG_CLASS2 OFF CACHE BOOL "" FORCE)
set(PKG_COLLOID OFF CACHE BOOL "" FORCE)
set(PKG_COMPRESS OFF CACHE BOOL "" FORCE)
set(PKG_CORESHELL OFF CACHE BOOL "" FORCE)
set(PKG_DIPOLE OFF CACHE BOOL "" FORCE)
set(PKG_GPU OFF CACHE BOOL "" FORCE)
set(PKG_GRANULAR OFF CACHE BOOL "" FORCE)
set(PKG_KIM OFF CACHE BOOL "" FORCE)
set(PKG_KOKKOS OFF CACHE BOOL "" FORCE)
set(PKG_KSPACE OFF CACHE BOOL "" FORCE)
set(PKG_LATTE OFF CACHE BOOL "" FORCE)
set(PKG_LIB OFF CACHE BOOL "" FORCE)
set(PKG_MANYBODY OFF CACHE BOOL "" FORCE)
set(PKG_MC OFF CACHE BOOL "" FORCE)
set(PKG_MEAM OFF CACHE BOOL "" FORCE)
set(PKG_MISC OFF CACHE BOOL "" FORCE)
set(PKG_MOLECULE OFF CACHE BOOL "" FORCE)
set(PKG_MPIIO OFF CACHE BOOL "" FORCE)
set(PKG_MSCG OFF CACHE BOOL "" FORCE)
set(PKG_OPT OFF CACHE BOOL "" FORCE)
set(PKG_PERI OFF CACHE BOOL "" FORCE)
set(PKG_POEMS OFF CACHE BOOL "" FORCE)
set(PKG_PYTHOFF OFF CACHE BOOL "" FORCE)
set(PKG_QEQ OFF CACHE BOOL "" FORCE)
set(PKG_REAX OFF CACHE BOOL "" FORCE)
set(PKG_REPLICA OFF CACHE BOOL "" FORCE)
set(PKG_RIGID OFF CACHE BOOL "" FORCE)
set(PKG_SHOCK OFF CACHE BOOL "" FORCE)
set(PKG_SNAP OFF CACHE BOOL "" FORCE)
set(PKG_SRD OFF CACHE BOOL "" FORCE)
set(PKG_VOROFFOI OFF CACHE BOOL "" FORCE)
set(PKG_USER OFF CACHE BOOL "" FORCE)
set(PKG_USER-ATC OFF CACHE BOOL "" FORCE)
set(PKG_USER-AWPMD OFF CACHE BOOL "" FORCE)
set(PKG_USER-BOCS OFF CACHE BOOL "" FORCE)
set(PKG_USER-CGDNA OFF CACHE BOOL "" FORCE)
set(PKG_USER-CGSDK OFF CACHE BOOL "" FORCE)
set(PKG_USER-COLVARS OFF CACHE BOOL "" FORCE)
set(PKG_USER-DIFFRACTIOFF OFF CACHE BOOL "" FORCE)
set(PKG_USER-DPD OFF CACHE BOOL "" FORCE)
set(PKG_USER-DRUDE OFF CACHE BOOL "" FORCE)
set(PKG_USER-EFF OFF CACHE BOOL "" FORCE)
set(PKG_USER-FEP OFF CACHE BOOL "" FORCE)
set(PKG_USER-H5MD OFF CACHE BOOL "" FORCE)
set(PKG_USER-INTEL OFF CACHE BOOL "" FORCE)
set(PKG_USER-LB OFF CACHE BOOL "" FORCE)
set(PKG_USER-MANIFOLD OFF CACHE BOOL "" FORCE)
set(PKG_USER-MEAMC OFF CACHE BOOL "" FORCE)
set(PKG_USER-MESO OFF CACHE BOOL "" FORCE)
set(PKG_USER-MGPT OFF CACHE BOOL "" FORCE)
set(PKG_USER-MISC OFF CACHE BOOL "" FORCE)
set(PKG_USER-MOFFF OFF CACHE BOOL "" FORCE)
set(PKG_USER-MOLFILE OFF CACHE BOOL "" FORCE)
set(PKG_USER-NETCDF OFF CACHE BOOL "" FORCE)
set(PKG_USER-OMP OFF CACHE BOOL "" FORCE)
set(PKG_USER-PHOFFOFF OFF CACHE BOOL "" FORCE)
set(PKG_USER-QMMM OFF CACHE BOOL "" FORCE)
set(PKG_USER-QTB OFF CACHE BOOL "" FORCE)
set(PKG_USER-QUIP OFF CACHE BOOL "" FORCE)
set(PKG_USER-REAXC OFF CACHE BOOL "" FORCE)
set(PKG_USER-SMD OFF CACHE BOOL "" FORCE)
set(PKG_USER-SMTBQ OFF CACHE BOOL "" FORCE)
set(PKG_USER-SPH OFF CACHE BOOL "" FORCE)
set(PKG_USER-TALLY OFF CACHE BOOL "" FORCE)
set(PKG_USER-UEF OFF CACHE BOOL "" FORCE)
set(PKG_USER-VTK OFF CACHE BOOL "" FORCE)

22
cmake/presets/nolib.cmake Normal file
View File

@ -0,0 +1,22 @@
set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MEAM MISC
MOLECULE MPIIO MSCG OPT PERI POEMS
PYTHON QEQ REAX REPLICA RIGID SHOCK SNAP SRD VORONOI)
set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS
USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB
USER-QUIP USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY
USER-UEF USER-VTK)
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI
USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE
USER-NETCDF USER-QMMM USER-QUIP USER-SMD USER-VTK)
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})
foreach(PKG ${PACKAGES_WITH_LIB})
set(PKG_${PKG} OFF CACHE BOOL "" FORCE)
endforeach()

22
cmake/presets/std.cmake Normal file
View File

@ -0,0 +1,22 @@
set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MEAM MISC
MOLECULE MPIIO MSCG OPT PERI POEMS
PYTHON QEQ REAX REPLICA RIGID SHOCK SNAP SRD VORONOI)
set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS
USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB
USER-QUIP USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY
USER-UEF USER-VTK)
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI
USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE
USER-NETCDF USER-QMMM USER-QUIP USER-SMD USER-VTK)
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})
foreach(PKG ${STANDARD_PACKAGES})
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
endforeach()

View File

@ -0,0 +1,26 @@
set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MEAM MISC
MOLECULE MPIIO MSCG OPT PERI POEMS
PYTHON QEQ REAX REPLICA RIGID SHOCK SNAP SRD VORONOI)
set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS
USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB
USER-QUIP USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY
USER-UEF USER-VTK)
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI
USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE
USER-NETCDF USER-QMMM USER-QUIP USER-SMD USER-VTK)
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})
foreach(PKG ${STANDARD_PACKAGES})
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
endforeach()
foreach(PKG ${PACKAGES_WITH_LIB})
set(PKG_${PKG} OFF CACHE BOOL "" FORCE)
endforeach()

22
cmake/presets/user.cmake Normal file
View File

@ -0,0 +1,22 @@
set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MEAM MISC
MOLECULE MPIIO MSCG OPT PERI POEMS
PYTHON QEQ REAX REPLICA RIGID SHOCK SNAP SRD VORONOI)
set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS
USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB
USER-QUIP USER-REAXC USER-SMD USER-SMTBQ USER-SPH USER-TALLY
USER-UEF USER-VTK)
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI
USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE
USER-NETCDF USER-QMMM USER-QUIP USER-SMD USER-VTK)
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})
foreach(PKG ${USER_PACKAGES})
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
endforeach()

View File

@ -9,6 +9,7 @@ TXT2RST = $(VENV)/bin/txt2rst
ANCHORCHECK = $(VENV)/bin/doc_anchor_check
PYTHON = $(shell which python3)
VIRTUALENV = virtualenv
HAS_PYTHON3 = NO
HAS_VIRTUALENV = NO
@ -16,7 +17,13 @@ ifeq ($(shell which python3 >/dev/null 2>&1; echo $$?), 0)
HAS_PYTHON3 = YES
endif
ifeq ($(shell which virtualenv-3 >/dev/null 2>&1; echo $$?), 0)
VIRTUALENV = virtualenv-3
HAS_VIRTUALENV = YES
endif
ifeq ($(shell which virtualenv >/dev/null 2>&1; echo $$?), 0)
VIRTUALENV = virtualenv
HAS_VIRTUALENV = YES
endif
@ -158,7 +165,7 @@ $(VENV):
@if [ "$(HAS_PYTHON3)" == "NO" ] ; then echo "Python3 was not found! Please check README.md for further instructions" 1>&2; exit 1; fi
@if [ "$(HAS_VIRTUALENV)" == "NO" ] ; then echo "virtualenv was not found! Please check README.md for further instructions" 1>&2; exit 1; fi
@( \
virtualenv -p $(PYTHON) $(VENV); \
$(VIRTUALENV) -p $(PYTHON) $(VENV); \
. $(VENV)/bin/activate; \
pip install Sphinx; \
pip install sphinxcontrib-images; \

View File

@ -449,15 +449,15 @@ Writing fixes is a flexible way of extending LAMMPS. Users can
implement many things using fixes:
\begin{itemize}
\item changing particles attributes (positions, velocities, forces, etc.).
\item changing particles attributes (positions, velocities, forces, etc.).
Example: FixFreeze.
\item reading/writing data. Example: FixRestart.
\item implementing boundary conditions. Example: FixWall.
\item saving information about particles for future use (previous positions,
\item saving information about particles for future use (previous positions,
for instance). Example: FixStoreState.
\end{itemize}
All fixes are derived from class Fix and must have constructor with the
All fixes are derived from class Fix and must have constructor with the
signature: FixMine(class LAMMPS *, int, char **).
Every fix must be registered in LAMMPS by writing the following lines
@ -478,7 +478,7 @@ included in the file "style\_fix.h". In case if you use LAMMPS make,
this file is generated automatically - all files starting with prefix
fix\_ are included, so call your header the same way. Otherwise, don<6F>t
forget to add your include into "style\_fix.h".
Let's write a simple fix which will print average velocity at the end
of each timestep. First of all, implement a constructor:
@ -487,11 +487,11 @@ of each timestep. First of all, implement a constructor:
FixPrintVel::FixPrintVel(LAMMPS *lmp, int narg, char **arg)
: Fix(lmp, narg, arg)
{
if (narg < 4)
if (narg < 4)
error->all(FLERR,"Illegal fix print command");
nevery = atoi(arg[3]);
if (nevery <= 0)
if (nevery <= 0)
error->all(FLERR,"Illegal fix print command");
}
\end{verbatim}
@ -545,7 +545,7 @@ void FixPrintVel::end_of_step()
{
// for add3, scale3
using namespace MathExtra;
double** v = atom->v;
int nlocal = atom->nlocal;
double localAvgVel[4]; // 4th element for particles count
@ -559,7 +559,7 @@ void FixPrintVel::end_of_step()
MPI_Allreduce(localAvgVel, globalAvgVel, 4, MPI_DOUBLE, MPI_SUM, world);
scale3(1.0 / globalAvgVel[3], globalAvgVel);
if (comm->me == 0) {
printf("\%e, \%e, \%e\n",
printf("\%e, \%e, \%e\n",
globalAvgVel[0], globalAvgVel[1], globalAvgVel[2]);
}
}
@ -607,14 +607,15 @@ this situation there are several methods which should be implemented:
\begin{itemize}
\item \verb|double memory_usage| - return how much memory fix uses
\item \verb|void grow_arrays(int)| - do reallocation of the per particle arrays
\item \verb|void grow_arrays(int)| - do reallocation of the per particle arrays
in your fix
\item \verb|void copy_arrays(int i, int j)| - copy i-th per-particle information
to j-th. Used when atoms sorting is performed
\item \verb|void copy_arrays(int i, int j, int delflag)| - copy i-th per-particle
information to j-th. Used when atoms sorting is performed. if delflag is set
and atom j owns a body, move the body information to atom i.
\item \verb|void set_arrays(int i)| - sets i-th particle related information to zero
\end{itemize}
Note, that if your class implements these methods, it must call add calls of
Note, that if your class implements these methods, it must call add calls of
add\_callback and delete\_callback to constructor and destructor:
\begin{center}
@ -654,7 +655,7 @@ void FixSavePos::grow_arrays(int nmax)
memory->grow(this->x, nmax, 3, "FixSavePos:x");
}
void FixSavePos::copy_arrays(int i, int j)
void FixSavePos::copy_arrays(int i, int j, int delflag)
{
memcpy(this->x[j], this->x[i], sizeof(double) * 3);
}
@ -670,7 +671,7 @@ int FixSavePos::pack_exchange(int i, double *buf)
buf[m++] = x[i][0];
buf[m++] = x[i][1];
buf[m++] = x[i][2];
return m;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -0,0 +1,11 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
\begin{eqnarray*}
f(\theta) & = & K \qquad\qquad\qquad\qquad\qquad\qquad \theta < \theta_1 \\
f(\theta) & = & K \left(1-\frac{(\theta - \theta_1)^2}{(\theta_2 - \theta_1)^2}\right) \qquad \theta_1 < \theta < \theta_2
\end{eqnarray*}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -0,0 +1,40 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath,amssymb,amsthm,bm,tikz}
\usetikzlibrary{automata,arrows,shapes,snakes}
\begin{document}
\begin{varwidth}{50in}
\begin{tikzpicture}
%Global
\node (v1) at (0,6.0) [draw,thick,minimum width=0.2cm,minimum height=0.2cm] { $\bm{v} \leftarrow \bm{v}+L_v.\Delta t/2$ };
\node (s1) at (0,4.5) [draw,thick,minimum width=0.2cm,minimum height=0.2cm] { $\bm{s} \leftarrow \bm{s}+L_s.\Delta t/2$ };
\node (r) at (0,3.0) [draw,thick,minimum width=0.2cm,minimum height=0.2cm] { $\bm{r} \leftarrow \bm{r}+L_r.\Delta t$ };
\node (s2) at (0,1.5) [draw,thick,minimum width=0.2cm,minimum height=0.2cm] { $\bm{s} \leftarrow \bm{s}+L_s.\Delta t/2$ };
\node (v2) at (0,0.0) [draw,thick,minimum width=0.2cm,minimum height=0.2cm] { $\bm{v} \leftarrow \bm{v}+L_v.\Delta t/2$ };
\draw[line width=2pt, ->] (v1) -- (s1);
\draw[line width=2pt, ->] (s1) -- (r);
\draw[line width=2pt, ->] (r) -- (s2);
\draw[line width=2pt, ->] (s2) -- (v2);
%Spin
\node (s01) at (6,6.0) [draw,thick,minimum width=0.2cm,minimum height=0.2cm] {$\bm{s}_0 \leftarrow \bm{s}_0+L_{s_0}.\Delta t/4$ };
\node (sN1) at (6,4.5) [draw,thick,minimum width=0.2cm,minimum height=0.2cm] {$\bm{s}_{\rm N-1}\leftarrow\bm{s}_{\rm N-1}+L_{s_{\rm N-1}}.\Delta t/4$};
\node (sN) at (6,3.0) [draw,thick,minimum width=0.2cm,minimum height=0.2cm] {$\bm{s}_{\rm N} \leftarrow \bm{s}_{\rm N}+L_{s_{\rm N}}.\Delta t/2$ };
\node (sN2) at (6,1.5) [draw,thick,minimum width=0.2cm,minimum height=0.2cm] {$\bm{s}_{\rm N-1}\leftarrow\bm{s}_{\rm N-1}+L_{s_{\rm N-1}}.\Delta t/4$};
\node (s02) at (6,0.0) [draw,thick,minimum width=0.2cm,minimum height=0.2cm] {$\bm{s}_0 \leftarrow \bm{s}_0+L_{s_0}.\Delta t/4$ };
\draw[line width=2pt,dashed, ->] (s01) -- (sN1);
\draw[line width=2pt, ->] (sN1) -- (sN);
\draw[line width=2pt, ->] (sN) -- (sN2);
\draw[line width=2pt,dashed, ->] (sN2) -- (s02);
%from Global to Spin
\draw[line width=2pt, dashed, ->] (s1) -- (s01.west);
\draw[line width=2pt, dashed, ->] (s1) -- (s02.west);
\end{tikzpicture}
\end{varwidth}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@ -0,0 +1,14 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath, amssymb, graphics, setspace}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
\frac{d \vec{s}_{i}}{dt} = \frac{1}{\left(1+\lambda^2 \right)} \left( \left(
\vec{\omega}_{i} +\vec{\eta} \right) \times \vec{s}_{i} + \lambda\, \vec{s}_{i}
\times\left( \vec{\omega}_{i} \times\vec{s}_{i} \right) \right), \nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -0,0 +1,11 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath,amssymb,amsthm,bm}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
\bm{H}_{aniso} = -\sum_{{ i}=1}^{N} K_{an}(\bm{r}_{i})\, \left( \vec{s}_{i} \cdot \vec{n}_{i} \right)^2, \nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@ -0,0 +1,11 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath,amssymb,amsthm,bm}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
\bm{H}_{zeeman} = -\mu_{B}\mu_0\sum_{i=0}^{N}g_{i} \vec{s}_{i} \cdot \vec{H}_{ext} \nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@ -0,0 +1,10 @@
\documentclass[12pt]{article}
\begin{document}
\thispagestyle{empty}
$$
s_S^i=-2\pi\rho k_B \int\limits_0^{r_m} \left [ g(r) \ln g(r) - g(r) + 1 \right ] r^2 dr ,
$$
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

@ -0,0 +1,10 @@
\documentclass[12pt]{article}
\begin{document}
\thispagestyle{empty}
$$
g_m^i(r) = \frac{1}{4 \pi \rho r^2} \sum\limits_{j} \frac{1}{\sqrt{2 \pi \sigma^2}} e^{-(r-r_{ij})^2/(2\sigma^2)} ,
$$
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -0,0 +1,10 @@
\documentclass[12pt]{article}
\begin{document}
\thispagestyle{empty}
$$
\bar{s}_S^i = \frac{\sum_j s_S^j + s_S^i}{N + 1} ,
$$
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@ -0,0 +1,16 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath,amssymb,amsthm,bm}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
\bm{H}_{dm} = -\sum_{{ i,j}=1,i\neq j}^{N}
\left( \vec{e}_{ij} \times \vec{D} \right)
\cdot\left(\vec{s}_{i}\times \vec{s}_{j}\right),
\nonumber
\end{equation}
\end{varwidth}
\end{document}
\vec{D}\left(r_{ij}\right)
{\rm ~and~} \vec{D}\left(r_{ij}\right) = \vec{e}_{ij} \times \vec{D}

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,14 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath,amssymb,amsthm,bm}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
\vec{F}^{i} = \sum_{j}^{Neighbor} \frac{\partial {J} \left(r_{ij} \right)}{
\partial r_{ij}} \left( \vec{s}_{i}\cdot \vec{s}_{j} \right) \vec{r}_{ij}
~~{\rm and}~~ \vec{\omega}^{i} = \frac{1}{\hbar} \sum_{j}^{Neighbor} {J}
\left(r_{ij} \right)\,\vec{s}_{j} \nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,13 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath, amssymb, graphics, setspace}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
{J}\left( r_{ij} \right) = 4 a \left( \frac{r_{ij}}{d} \right)^2 \left( 1 - b \left( \frac{r_{ij}}{d} \right)^2 \right) e^{-\left( \frac{r_{ij}}{d}
\right)^2 }\Theta (R_c - r_{ij}) \nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@ -0,0 +1,11 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath,amssymb,amsthm,bm}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
\bm{H}_{exchange} ~=~ -\sum_{i,j,i\neq j}^{N} {J} \left(r_{ij} \right)\, \vec{s}_{i}\cdot \vec{s}_{j} \nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,13 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath,amssymb,amsthm,bm}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
\vec{F}^{i} = -\sum_{j}^{Neighbor} \left( \vec{s}_{i}\times \vec{s}_{j} \right)
\times \vec{E} ~~{\rm and}~~ \vec{\omega}^{i} = -\frac{1}{\hbar}
\sum_{j}^{Neighbor} \vec{s}_j \times \left(\vec{E}\times r_{ij} \right),\nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,12 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath,amssymb,amsthm,bm}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
\vec{\omega}_i = -\frac{1}{\hbar} \sum_{j}^{Neighb} \vec{s}_{j}\times\vec{D}(r_{ij}) ~~{\rm and}~~
\vec{F}_i = -\sum_{j}^{Neighb} \frac{\partial D(r_{ij})}{\partial r_{ij}} \left(\vec{s}_{i}\times \vec{s}_{j} \right) \cdot \vec{r}_{ij}, \nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -0,0 +1,13 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath,amssymb,amsthm,bm}
\begin{document}
\begin{varwidth}{50in}
\begin{eqnarray}
g_1(r_{ij}) &=& g(r_{ij}) + \frac{12}{35} q(r_{ij}) \nonumber \\
q_1(r_{ij}) &=& \frac{9}{5} q(r_{ij}) \nonumber \\
q_2(r_{ij}) &=& - \frac{2}{5} q(r_{ij}) \nonumber
\end{eqnarray}
\end{varwidth}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,16 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath,amssymb,amsthm,bm}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
\mathcal{H}_{N\acute{e}el}=-\sum_{{ i,j=1,i\neq j}}^N g_1(r_{ij})\left(({\bm e}_{ij}\cdot {\bm s}_{i})({\bm e}_{ij}
\cdot {\bm s}_{j})-\frac{{\bm s}_{i}\cdot{\bm s}_{j}}{3} \right)
+q_1(r_{ij})\left( ({\bm e}_{ij}\cdot {\bm s}_{i})^2 -\frac{{\bm s}_{i}\cdot{\bm s}_{j}}{3}\right)
\left( ({\bm e}_{ij}\cdot {\bm s}_{i})^2 -\frac{{\bm s}_{i}\cdot{\bm s}_{j}}{3} \right)
+ q_2(r_{ij}) \Big( ({\bm e}_{ij}\cdot {\bm s}_{i}) ({\bm e}_{ij}\cdot {\bm s}_{j})^3 + ({\bm e}_{ij}\cdot
{\bm s}_{j}) ({\bm e}_{ij}\cdot {\bm s}_{i})^3\Big) \nonumber
\end{equation}
\end{varwidth}
\end{document}

View File

@ -1,7 +1,7 @@
<!-- HTML_ONLY -->
<HEAD>
<TITLE>LAMMPS Users Manual</TITLE>
<META NAME="docnumber" CONTENT="30 Mar 2018 version">
<META NAME="docnumber" CONTENT="29 Jun 2018 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>
@ -19,7 +19,7 @@
:line
LAMMPS Documentation :c,h1
30 Mar 2018 version :c,h2
29 Jun 2018 version :c,h2
Version info: :h3

Binary file not shown.

BIN
doc/src/PDF/USER-CGDNA.pdf Normal file

Binary file not shown.

View File

@ -129,6 +129,17 @@ region 1 block $((xlo+xhi)/2+sqrt(v_area)) 2 INF INF EDGE EDGE :pre
so that you do not have to define (or discard) a temporary variable X.
Additionally, the "immediate" variable expression may be followed by a
colon, followed by a C-style format string, e.g. ":%f" or ":%.10g".
The format string must be appropriate for a double-precision
floating-point value. The format string is used to output the result
of the variable expression evaluation. If a format string is not
specified a high-precision "%.20g" is used as the default.
This can be useful for formatting print output to a desired precion:
print "Final energy per atom: $(pe/atoms:%10.3f) eV/atom" :pre
Note that neither the curly-bracket or immediate form of variables can
contain nested $ characters for other variables to substitute for.
Thus you cannot do this:
@ -583,6 +594,7 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.
"indent"_fix_indent.html,
"latte"_fix_latte.html,
"langevin (k)"_fix_langevin.html,
"langevin/spin"_fix_langevin_spin.hmtl,
"lineforce"_fix_lineforce.html,
"momentum (k)"_fix_momentum.html,
"move"_fix_move.html,
@ -606,6 +618,7 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.
"nve/line"_fix_nve_line.html,
"nve/noforce"_fix_nve_noforce.html,
"nve/sphere (o)"_fix_nve_sphere.html,
"nve/spin"_fix_nve_spin.html,
"nve/tri"_fix_nve_tri.html,
"nvt (iko)"_fix_nh.html,
"nvt/asphere (o)"_fix_nvt_asphere.html,
@ -618,6 +631,7 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.
"planeforce"_fix_planeforce.html,
"poems"_fix_poems.html,
"pour"_fix_pour.html,
"precession/spin"_fix_precession_spin.html,
"press/berendsen"_fix_press_berendsen.html,
"print"_fix_print.html,
"property/atom (k)"_fix_property_atom.html,
@ -684,6 +698,7 @@ package"_Section_start.html#start_3.
"addtorque"_fix_addtorque.html,
"atc"_fix_atc.html,
"ave/correlate/long"_fix_ave_correlate_long.html,
"bond/react"_fix_bond_react.html,
"colvars"_fix_colvars.html,
"dpd/energy (k)"_fix_dpd_energy.html,
"drude"_fix_drude.html,
@ -823,6 +838,7 @@ KOKKOS, o = USER-OMP, t = OPT.
"sna/atom"_compute_sna_atom.html,
"snad/atom"_compute_sna_atom.html,
"snav/atom"_compute_sna_atom.html,
"spin"_compute_spin.html,
"stress/atom"_compute_stress_atom.html,
"temp (k)"_compute_temp.html,
"temp/asphere"_compute_temp_asphere.html,
@ -851,6 +867,7 @@ package"_Section_start.html#start_3.
"dpd"_compute_dpd.html,
"dpd/atom"_compute_dpd_atom.html,
"edpd/temp/atom"_compute_edpd_temp_atom.html,
"entropy/atom"_compute_entropy_atom.html,
"fep"_compute_fep.html,
"force/tally"_compute_tally.html,
"heat/flux/tally"_compute_tally.html,
@ -1016,6 +1033,10 @@ KOKKOS, o = USER-OMP, t = OPT.
"snap (k)"_pair_snap.html,
"soft (go)"_pair_soft.html,
"sw (giko)"_pair_sw.html,
"spin/dmi"_pair_spin_dmi.html,
"spin/exchange"_pair_spin_exchange.html,
"spin/magelec"_pair_spin_magelec.html,
"spin/neel"_pair_spin_neel.html,
"table (gko)"_pair_table.html,
"tersoff (giko)"_pair_tersoff.html,
"tersoff/mod (gko)"_pair_tersoff_mod.html,
@ -1211,7 +1232,8 @@ package"_Section_start.html#start_3.
"nharmonic (o)"_dihedral_nharmonic.html,
"quadratic (o)"_dihedral_quadratic.html,
"spherical (o)"_dihedral_spherical.html,
"table (o)"_dihedral_table.html :tb(c=4,ea=c)
"table (o)"_dihedral_table.html,
"table/cut"_dihedral_table_cut.html :tb(c=4,ea=c)
:line

View File

@ -803,6 +803,13 @@ lo value must be less than the hi value for all 3 dimensions. :dd
The box command cannot be used after a read_data, read_restart, or
create_box command. :dd
{BUG: restartinfo=1 but no restart support in pair style} :dt
The pair style has a bug, where it does not support reading
and writing information to a restart file, but does not set
the member variable restartinfo to 0 as required in that case. :dd
{CPU neighbor lists must be used for ellipsoid/sphere mix.} :dt
When using Gay-Berne or RE-squared pair styles with both ellipsoidal and
@ -1565,15 +1572,6 @@ This operation is not allowed. :dd
This operation is not allowed. :dd
{Cannot use -cuda on and -kokkos on together} :dt
This is not allowed since both packages can use GPUs. :dd
{Cannot use -cuda on without USER-CUDA installed} :dt
The USER-CUDA package must be installed via "make yes-user-cuda"
before LAMMPS is built. :dd
{Cannot use -kokkos on without KOKKOS installed} :dt
Self-explanatory. :dd
@ -1597,11 +1595,6 @@ solver/pair style. :dd
This is a current restriction of this command. :dd
{Cannot use GPU package with USER-CUDA package enabled} :dt
You cannot use both the GPU and USER-CUDA packages
together. Use one or the other. :dd
{Cannot use Kokkos pair style with rRESPA inner/middle} :dt
Self-explanatory. :dd
@ -8252,12 +8245,6 @@ Self-explanatory. :dd
The package command cannot be used afer a read_data, read_restart, or
create_box command. :dd
{Package cuda command without USER-CUDA package enabled} :dt
The USER-CUDA package must be installed via "make yes-user-cuda"
before LAMMPS is built, and the "-c on" must be used to enable the
package. :dd
{Package gpu command without GPU package installed} :dt
The GPU package must be installed via "make yes-gpu" before LAMMPS is
@ -10230,22 +10217,6 @@ it in different ways. :dd
Self-explanatory. :dd
{USER-CUDA mode requires CUDA variant of min style} :dt
CUDA mode is enabled, so the min style must include a cuda suffix. :dd
{USER-CUDA mode requires CUDA variant of run style} :dt
CUDA mode is enabled, so the run style must include a cuda suffix. :dd
{USER-CUDA package does not yet support comm_style tiled} :dt
Self-explanatory. :dd
{USER-CUDA package requires a cuda enabled atom_style} :dt
Self-explanatory. :dd
{Unable to initialize accelerator for use} :dt
There was a problem initializing an accelerator for the gpu package :dd
@ -10494,10 +10465,6 @@ Must use remap v option with fix deform with this pair style. :dd
If fix deform is used, the remap v option is required. :dd
{Using suffix cuda without USER-CUDA package enabled} :dt
Self-explanatory. :dd
{Using suffix gpu without GPU package installed} :dt
Self-explanatory. :dd

View File

@ -36,7 +36,8 @@ This section describes how to perform common tasks using LAMMPS.
6.24 "Setting parameters for the kspace_style pppm/disp command"_#howto_24
6.25 "Polarizable models"_#howto_25
6.26 "Adiabatic core/shell model"_#howto_26
6.27 "Drude induced dipoles"_#howto_27 :all(b)
6.27 "Drude induced dipoles"_#howto_27
6.28 "Magnetic spins"_#howto_28 :all(b)
The example input scripts included in the LAMMPS distribution and
highlighted in "Section 7"_Section_example.html also show how to
@ -2906,6 +2907,54 @@ with a Coulomb pair style. It may be useful to use {coul/long/cs} or
similar from the CORESHELL package if the core and Drude particle come
too close, which can cause numerical issues.
:line
6.28 Magnetic spins :link(howto_28),h4
Classical magnetic spin simualtions can be performed via the SPIN
package. The algrorithmic and implementation details are described in
"Tranchida"_#Tranchida7.
The model representents the simulation of atomic magnetic spins
coupled to lattice vibrations. The dynamics of those magnetic spins
can be used to simulate a broad range a phenomena related to
magneto-elasticity, or or to study the influence of defects on the
magnetic properties of materials.
The magnetic spins are interacting with each others and with the
lattice via pair interactions. Typically, the magnetic exchange
interaction can be defined using the
"pair/spin/exchange"_pair_spin_exchange.html command. This exchange
applies a magnetic torque to a given spin, considering the orientation
of its neighboring spins and their relative distances.
It also applies a force on the atoms as a function of the spin
orientations and their associated inter-atomic distances.
The command "fix precession/spin"_fix_precession_spin.html allows to
apply a constant magnetic torque on all the spins in the system. This
torque can be an external magnetic field (Zeeman interaction), or an
uniaxial magnetic anisotropy.
A Langevin thermostat can be applied to those magnetic spins using
"fix langevin/spin"_fix_langevin_spin.html. Typically, this thermostat
can be coupled to another Langevin thermostat applied to the atoms
using "fix langevin"_fix_langevin.html in order to simulate
thermostated spin-lattice system.
The magnetic Gilbert damping can also be applied using "fix
langevin/spin"_fix_langevin_spin.html. It allows to either dissipate
the thermal energy of the Langevin thermostat, or to perform a
relaxation of the magnetic configuration toward an equilibrium state.
All the computed magnetic properties can be outputed by two main
commands. The first one is "compute spin"_compute_spin.html, that
enables to evaluate magnetic averaged quantities, such as the total
magnetization of the system along x, y, or z, the spin temperature, or
the magnetic energy. The second command is "compute
property/atom"_compute_property_atom.html. It enables to output all the
per atom magnetic quantities. Typically, the orientation of a given
magnetic spin, or the magnetic force acting on this spin.
:line
:line
@ -2957,3 +3006,7 @@ Phys, 79, 926 (1983).
:link(howto-Lamoureux)
[(Lamoureux and Roux)] G. Lamoureux, B. Roux, J. Chem. Phys 119, 3025 (2003)
:link(Tranchida7)
[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson,
arXiv preprint arXiv:1801.10233, (2018).

View File

@ -526,14 +526,14 @@ and efforts.
Axel Kohlmeyer (Temple U), akohlmey at gmail.com, SVN and Git repositories, indefatigable mail list responder, USER-CGSDK, USER-OMP, USER-COLVARS, USER-MOLFILE, USER-QMMM, USER-TALLY, and COMPRESS packages
Roy Pollock (LLNL), Ewald and PPPM solvers
Mike Brown (ORNL), brownw at ornl.gov, GPU and USER-INTEL package
Greg Wagner (Sandia), gjwagne at sandia.gov, MEAM package for MEAM potential
Greg Wagner (Sandia), gjwagne at sandia.gov, MEAM package for MEAM potential (superseded by USER-MEAMC)
Mike Parks (Sandia), mlparks at sandia.gov, PERI package for Peridynamics
Rudra Mukherjee (JPL), Rudranarayan.M.Mukherjee at jpl.nasa.gov, POEMS package for articulated rigid body motion
Reese Jones (Sandia) and collaborators, rjones at sandia.gov, USER-ATC package for atom/continuum coupling
Ilya Valuev (JIHT), valuev at physik.hu-berlin.de, USER-AWPMD package for wave-packet MD
Christian Trott (U Tech Ilmenau), christian.trott at tu-ilmenau.de, USER-CUDA and KOKKOS packages
Christian Trott (U Tech Ilmenau), christian.trott at tu-ilmenau.de, USER-CUDA (obsoleted by KOKKOS) and KOKKOS packages
Andres Jaramillo-Botero (Caltech), ajaramil at wag.caltech.edu, USER-EFF package for electron force field
Christoph Kloss (JKU), Christoph.Kloss at jku.at, USER-LIGGGHTS package for granular models and granular/fluid coupling
Christoph Kloss (JKU), Christoph.Kloss at jku.at, LIGGGHTS fork for granular models and granular/fluid coupling
Metin Aktulga (LBL), hmaktulga at lbl.gov, USER-REAXC package for C version of ReaxFF
Georg Gunzenmuller (EMI), georg.ganzenmueller at emi.fhg.de, USER-SMD and USER-SPH packages
Colin Denniston (U Western Ontario), cdennist at uwo.ca, USER-LB package :ul

View File

@ -114,6 +114,7 @@ Package, Description, Doc page, Example, Library
"RIGID"_#RIGID, rigid bodies and constraints, "fix rigid"_fix_rigid.html, rigid, -
"SHOCK"_#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, -
"SNAP"_#SNAP, quantum-fitted potential, "pair_style snap"_pair_snap.html, snap, -
"SPIN"_#SPIN, magnetic atomic spin dynamics, "Section 6.6.28"_Section_howto.html#howto_28, SPIN, -
"SRD"_#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, -
"VORONOI"_#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext :tb(ea=c,ca1=l)
@ -122,6 +123,7 @@ Package, Description, Doc page, Example, Library
Package, Description, Doc page, Example, Library
"USER-ATC"_#USER-ATC, atom-to-continuum coupling, "fix atc"_fix_atc.html, USER/atc, int
"USER-AWPMD"_#USER-AWPMD, wave-packet MD, "pair_style awpmd/cut"_pair_awpmd.html, USER/awpmd, int
"USER-BOCS"_#USER-BOCS, BOCS bottom up coarse graining, "fix bocs"_fix_bocs.html, USER/bocs, -
"USER-CGDNA"_#USER-CGDNA, coarse-grained DNA force fields, src/USER-CGDNA/README, USER/cgdna, -
"USER-CGSDK"_#USER-CGSDK, SDK coarse-graining model, "pair_style lj/sdk"_pair_sdk.html, USER/cgsdk, -
"USER-COLVARS"_#USER-COLVARS, collective variables library, "fix colvars"_fix_colvars.html, USER/colvars, int
@ -1414,6 +1416,38 @@ examples/snap :ul
:line
SPIN package :link(SPIN),h4
[Contents:]
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).
[Install or un-install:]
make yes-spin
make machine :pre
make no-spin
make machine :pre
[Supporting info:]
src/SPIN: filenames -> commands
"Section 6.28"_Section_howto.html#howto_28
"pair_style spin/dmi"_pair_spin_dmi.html
"pair_style spin/exchange"_pair_spin_exchange.html
"pair_style spin/magelec"_pair_spin_magelec.html
"pair_style spin/neel"_pair_spin_neel.html
"fix nve/spin"_fix_nve_spin.html
"fix precession/spin"_fix_precession_spin.html
"compute spin"_compute_spin.html
examples/SPIN :ul
:line
SRD package :link(SRD),h4
[Contents:]
@ -1625,6 +1659,43 @@ examples/USER/awpmd :ul
:line
USER-BOCS package :link(USER-BOCS),h4
[Contents:]
This package provides "fix bocs"_fix_bocs.html, a modified version
of "fix npt"_fix_nh.html 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).
[Authors:] Nicholas J. H. Dunn and Michael R. DeLyser (The Pennsylvania State University)
[Install or un-install:]
make yes-user-bocs
make machine :pre
make no-user-bocs
make machine :pre
[Supporting info:]
The USER-BOCS user package for LAMMPS is part of the BOCS software package:
"https://github.com/noid-group/BOCS"_https://github.com/noid-group/BOCS
See the following reference for information about the entire package:
Dunn, NJH; Lebold, KM; DeLyser, MR; Rudzinski, JF; Noid, WG.
"BOCS: Bottom-Up Open-Source Coarse-Graining Software."
J. Phys. Chem. B. 122, 13, 3363-3377 (2018).
Example inputs are in the examples/USER/bocs folder.
:line
USER-CGDNA package :link(USER-CGDNA),h4
[Contents:]

View File

@ -15,7 +15,7 @@ atom_style style args :pre
style = {angle} or {atomic} or {body} or {bond} or {charge} or {dipole} or \
{dpd} or {edpd} or {mdpd} or {tdpd} or {electron} or {ellipsoid} or \
{full} or {line} or {meso} or {molecular} or {peri} or {smd} or \
{sphere} or {tri} or {template} or {hybrid} :ulb,l
{sphere} or {spin} or {tri} or {template} or {hybrid} :ulb,l
args = none for any style except the following
{body} args = bstyle bstyle-args
bstyle = style of body particles
@ -38,6 +38,7 @@ atom_style full
atom_style body nparticle 2 10
atom_style hybrid charge bond
atom_style hybrid charge body nparticle 2 5
atom_style spin
atom_style template myMols
atom_style tdpd 2 :pre
@ -89,6 +90,7 @@ quantities.
{peri} | mass, volume | mesocopic Peridynamic models |
{smd} | volume, kernel diameter, contact radius, mass | solid and fluid SPH particles |
{sphere} | diameter, mass, angular velocity | granular models |
{spin} | magnetic moment | system with magnetic particles |
{template} | template index, template atom | small molecules with fixed topology |
{tri} | corner points, angular momentum | rigid bodies |
{wavepacket} | charge, spin, eradius, etag, cs_re, cs_im | AWPMD :tb(c=3,s=|)
@ -175,6 +177,9 @@ used for calculating the field variables (e.g. stress and deformation)
and a contact radius for calculating repulsive forces which prevent
individual physical bodies from penetrating each other.
For the {spin} style, a magnetic spin is associated to each atom.
Those spins have a norm (their magnetic moment) and a direction.
The {wavepacket} style is similar to {electron}, but the electrons may
consist of several Gaussian wave packets, summed up with coefficients
cs= (cs_re,cs_im). Each of the wave packets is treated as a separate
@ -312,6 +317,8 @@ The {meso} style is part of the USER-SPH package for smoothed particle
hydrodynamics (SPH). See "this PDF
guide"_USER/sph/SPH_LAMMPS_userguide.pdf to using SPH in LAMMPS.
The {spin} style is part of the SPIN package.
The {wavepacket} style is part of the USER-AWPMD package for the
"antisymmetrized wave packet MD method"_pair_awpmd.html.

View File

@ -51,9 +51,11 @@ The coefficients in the above example have to be kept fixed and cannot be change
Example input and data files for DNA duplexes can be found in examples/USER/cgdna/examples/oxDNA/ and /oxDNA2/.
A simple python setup tool which creates single straight or helical DNA strands,
DNA duplexes or arrays of DNA duplexes can be found in examples/USER/cgdna/util/.
A technical report with more information on the model, the structure of the input file,
the setup tool and the performance of the LAMMPS-implementation of oxDNA
can be found "here"_PDF/USER-CGDNA-overview.pdf.
Please cite "(Henrich)"_#Henrich2 and the relevant oxDNA articles in any publication that uses this implementation.
The article contains more information on the model, the structure of the input file, the setup tool
and the performance of the LAMMPS-implementation of oxDNA.
The preprint version of the article can be found "here"_PDF/USER-CGDNA.pdf.
:line
@ -72,6 +74,9 @@ LAMMPS"_Section_start.html#start_3 section for more info on packages.
:line
:link(Henrich2)
[(Henrich)] O. Henrich, Y. A. Gutierrez-Fosado, T. Curk, T. E. Ouldridge, Eur. Phys. J. E 41, 57 (2018).
:link(oxdna_fene)
[(Ouldridge)] T.E. Ouldridge, A.A. Louis, J.P.K. Doye, J. Chem. Phys. 134, 085101 (2011).

View File

@ -10,19 +10,29 @@ compute ackland/atom command :h3
[Syntax:]
compute ID group-ID ackland/atom :pre
compute ID group-ID ackland/atom keyword/value :pre
ID, group-ID are documented in "compute"_compute.html command
ackland/atom = style name of this compute command :ul
ID, group-ID are documented in "compute"_compute.html command :ulb,l
ackland/atom = style name of this compute command :l
zero or more keyword/value pairs may be appended :l
keyword = {legacy} :l
{legacy} yes/no = use ({yes}) or do not use ({no}) legacy ackland algorithm implementation :pre
:ule
[Examples:]
compute 1 all ackland/atom :pre
compute 1 all ackland/atom
compute 1 all ackland/atom legacy yes :pre
[Description:]
Defines a computation that calculates the local lattice structure
according to the formulation given in "(Ackland)"_#Ackland.
Historically, LAMMPS had two, slightly different implementations of
the algorithm from the paper. With the {legacy} keyword, it is
possible to switch between the pre-2015 ({legacy yes}) and post-2015
implemention ({legacy no}). The post-2015 variant is the default.
In contrast to the "centro-symmetry
parameter"_compute_centro_atom.html this method is stable against
@ -66,7 +76,8 @@ integers defined above.
"compute centro/atom"_compute_centro_atom.html
[Default:] none
[Default:]
The keyword {legacy} defaults to {no}.
:line

View File

@ -15,7 +15,7 @@ compute ID group-ID displace/atom :pre
ID, group-ID are documented in "compute"_compute.html command :ulb,l
displace/atom = style name of this compute command :l
zero or more keyword/arg pairs may be appended :l
keyword = {refresh} :
keyword = {refresh} :l
{replace} arg = name of per-atom variable :pre
:ule

View File

@ -0,0 +1,130 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
compute entropy/atom command :h3
[Syntax:]
compute ID group-ID entropy/atom sigma cutoff keyword value ... :pre
ID, group-ID are documented in "compute"_compute.html command :l
entropy/atom = style name of this compute command :l
sigma = width of gaussians used in the g(r) smoothening :l
cutoff = cutoff for the g(r) calculation :l
one or more keyword/value pairs may be appended :l
keyword = {avg} or {local}
{avg} values = {yes} or {no} cutoff2
{yes} = average the pair entropy over neighbors
{no} = do not average the pair entropy over neighbors
cutoff2 = cutoff for the averaging over neighbors
{local} values = {yes} or {no} = use the local density around each atom to normalize the g(r) :pre
:ule
[Examples:]
compute 1 all entropy/atom 0.25 5.
compute 1 all entropy/atom 0.25 5. avg yes 5.
compute 1 all entropy/atom 0.125 7.3 avg yes 5.1 local yes :pre
[Description:]
Define a computation that calculates the pair entropy fingerprint for
each atom in the group. The fingerprint is useful to distinguish between
ordered and disordered environments, for instance liquid and solid-like
environments, or glassy and crystalline-like environments. Some
applications could be the identification of grain boundaries, a
melt-solid interface, or a solid cluster emerging from the melt.
The advantage of this parameter over others is that no a priori
information about the solid structure is required.
This parameter for atom i is computed using the following formula from
"(Piaggi)"_#Piaggi and "(Nettleton)"_#Nettleton ,
:c,image(Eqs/pair_entropy.jpg)
where r is a distance, g(r) is the radial distribution function of atom
i and rho is the density of the system. The g(r) computed for each
atom i can be noisy and therefore it is smoothened using:
:c,image(Eqs/pair_entropy2.jpg)
where the sum in j goes through the neighbors of atom i, and sigma is a
parameter to control the smoothening.
The input parameters are {sigma} the smoothening parameter, and the
{cutoff} for the calculation of g(r).
If the keyword {avg} has the setting {yes}, then this compute also
averages the parameter over the neighbors of atom i according to:
:c,image(Eqs/pair_entropy3.jpg)
where the sum j goes over the neighbors of atom i and N is the number
of neighbors. This procedure provides a sharper distinction between
order and disorder environments. In this case the input parameter
{cutoff2} is the cutoff for the averaging over the neighbors and
must also be specified.
If the {avg yes} option is used, the effective cutoff of the neighbor
list should be {cutoff}+{cutoff2} and therefore it might be necessary
to increase the skin of the neighbor list with:
neighbor skin bin :pre
See "neighbor"_neighbor.html for details.
If the {local yes} option is used, the g(r) is normalized by the
local density around each atom, that is to say the density around each
atom is the number of neighbors within the neighbor list cutoff divided
by the corresponding volume. This option can be useful when dealing with
inhomogeneus systems such as those that have surfaces.
Here are typical input parameters for fcc aluminum (lattice
constant 4.05 Angstroms),
compute 1 all entropy/atom 0.25 5.7 avg yes 3.7 :pre
and for bcc sodium (lattice constant 4.23 Angstroms),
compute 1 all entropy/atom 0.25 7.3 avg yes 5.1 :pre
[Output info:]
By default, this compute calculates the pair entropy value for each
atom as a per-atom vector, which can be accessed by any command that
uses per-atom values from a compute as input. See "Section
6.15"_Section_howto.html#howto_15 for an overview of LAMMPS output
options.
The pair entropy values have units of the Boltzmann constant. They are
always negative, and lower values (lower entropy) correspond to more
ordered environments.
[Restrictions:]
This compute is part of the USER-MISC package. It is only enabled if
LAMMPS was built with that package. See the "Making
LAMMPS"_Section_start.html#start_3 section for more info.
[Related commands:]
"compute cna/atom"_compute_cna_atom.html
"compute centro/atom"_compute_centro_atom.html
[Default:]
The default values for the optional keywords are avg = no and local = no.
:line
:link(Piaggi)
[(Piaggi)] Piaggi and Parrinello, J Chem Phys, 147, 114112 (2017).
:link(Nettleton)
[(Nettleton)] Nettleton and Green, J Chem Phys, 29, 6 (1958).

View File

@ -26,14 +26,16 @@ compute myFlux all heat/flux myKE myPE myStress :pre
Define a computation that calculates the heat flux vector based on
contributions from atoms in the specified group. This can be used by
itself to measure the heat flux into or out of a reservoir of atoms,
or to calculate a thermal conductivity using the Green-Kubo formalism.
itself to measure the heat flux through a set of atoms (e.g. a region
between two thermostatted reservoirs held at different temperatures),
or to calculate a thermal conductivity using the equilibrium
Green-Kubo formalism.
See the "fix thermal/conductivity"_fix_thermal_conductivity.html
command for details on how to compute thermal conductivity in an
alternate way, via the Muller-Plathe method. See the "fix
heat"_fix_heat.html command for a way to control the heat added or
subtracted to a group of atoms.
For other non-equilibrium ways to compute a thermal conductivity, see
"this section"_Section_howto.html#howto_20. These include use of the
"fix thermal/conductivity"_fix_thermal_conductivity.html command for
the Muller-Plathe method. Or the "fix heat"_fix_heat.html command
which can add or subtract heat from groups of atoms.
The compute takes three arguments which are IDs of other
"computes"_compute.html. One calculates per-atom kinetic energy

View File

@ -19,6 +19,7 @@ input = one or more atom attributes :l
x, y, z, xs, ys, zs, xu, yu, zu, ix, iy, iz,
vx, vy, vz, fx, fy, fz,
q, mux, muy, muz, mu,
sp, spx, spy, spz, fmx, fmy, fmz,
radius, diameter, omegax, omegay, omegaz,
angmomx, angmomy, angmomz,
shapex,shapey, shapez,
@ -46,6 +47,9 @@ input = one or more atom attributes :l
q = atom charge
mux,muy,muz = orientation of dipole moment of atom
mu = magnitude of dipole moment of atom
sp = atomic magnetic spin moment
spx, spy, spz = direction of the atomic magnetic spin
fmx, fmy, fmz = magnetic force
radius,diameter = radius,diameter of spherical particle
omegax,omegay,omegaz = angular velocity of spherical particle
angmomx,angmomy,angmomz = angular momentum of aspherical particle
@ -82,7 +86,8 @@ input = one or more atom attributes :l
compute 1 all property/atom xs vx fx mux
compute 2 all property/atom type
compute 1 all property/atom ix iy iz :pre
compute 1 all property/atom ix iy iz
compute 3 all property/atom sp spx spy spz :pre
[Description:]
@ -152,6 +157,10 @@ The vector or array values will be in whatever "units"_units.html the
corresponding attribute is in, e.g. velocity units for vx, charge
units for q, etc.
For the spin quantities, sp is in the units of the Bohr magneton, spx,
spy, and spz are adimentional quantities, and fmx, fmy and fmz are
given in rad.THz.
[Restrictions:] none
[Related commands:]

View File

@ -161,9 +161,9 @@ function.
The keyword {bzeroflag} determines whether or not {B0}, the bispectrum
components of an atom with no neighbors, are subtracted from
the calculated bispectrum components. This optional keyword is only
available for compute {sna/atom}, as {snad/atom} and {snav/atom}
are unaffected by the removal of constant terms.
the calculated bispectrum components. This optional keyword
normally only affects compute {sna/atom}. However, when
{quadraticflag} is on, it also affects {snad/atom} and {snav/atom}.
The keyword {quadraticflag} determines whether or not the
quadratic analogs to the bispectrum quantities are generated.
@ -230,13 +230,18 @@ are 30, 90, and 180, respectively. With {quadratic} value=1,
the numbers of columns are 930, 2790, and 5580, respectively.
If the {quadratic} keyword value is set to 1, then additional
columns are appended to each per-atom array, corresponding to
columns are generated, corresponding to
the products of all distinct pairs of bispectrum components. If the
number of bispectrum components is {K}, then the number of distinct pairs
is {K}({K}+1)/2. These are output in subblocks of {K}({K}+1)/2 columns, using the same
ordering of sub-blocks as was used for the bispectrum
components. Within each sub-block, the ordering is upper-triangular,
(1,1),(1,2)...(1,{K}),(2,1)...({K}-1,{K}-1),({K}-1,{K}),({K},{K})
is {K}({K}+1)/2.
For compute {sna/atom} these columns are appended to existing {K} columns.
The ordering of quadratic terms is upper-triangular,
(1,1),(1,2)...(1,{K}),(2,1)...({K}-1,{K}-1),({K}-1,{K}),({K},{K}).
For computes {snad/atom} and {snav/atom} each set of {K}({K}+1)/2
additional columns is inserted directly after each of sub-block
of linear terms i.e. linear and quadratic terms are contiguous.
So the nesting order from inside to outside is bispectrum component,
linear then quadratic, vector/tensor component, type.
These values can be accessed by any command that uses per-atom values
from a compute as input. See "Section

78
doc/src/compute_spin.txt Normal file
View File

@ -0,0 +1,78 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
compute spin command :h3
[Syntax:]
compute ID group-ID compute/spin :pre
ID, group-ID are documented in "compute"_compute.html command
compute/spin = style name of this compute command :ul
[Examples:]
compute out_mag all compute/spin :pre
[Description:]
Define a computation that calculates magnetic quantities for a system
of atoms having spins.
This compute calculates 6 magnetic quantities.
The three first quantities are the x,y and z coordinates of the total magnetization.
The fourth quantity is the norm of the total magnetization.
The fifth quantity is the magnetic energy.
The sixth one is referred to as the spin temperature, according
to the work of "(Nurdin)"_#Nurdin1.
The simplest way to output the results of the compute spin calculation
is to define some of the quantities as variables, and to use the thermo and
thermo_style commands, for example:
compute out_mag all compute/spin :pre
variable mag_z equal c_out_mag\[3\]
variable mag_norm equal c_out_mag\[4\]
variable temp_mag equal c_out_mag\[6\] :pre
thermo 10
thermo_style custom step v_mag_z v_mag_norm v_temp_mag :pre
This serie of commands evaluates the total magnetization along z, the norm of
the total magnetization, and the magnetic temperature. Three variables are
assigned to those quantities. The thermo and thermo_style commands print them
every 10 timesteps.
[Output info:]
The array values are "intensive". The array values will be in
metal units ("units"_units.html).
[Restrictions:]
The {spin} compute is part of the SPIN package.
This compute is only enabled if LAMMPS was built with this package.
See the "Making LAMMPS"_Section_start.html#start_3 section for more info.
The atom_style has to be "spin" for this compute to be valid.
[Related commands:] none
[Default:] none
:line
:link(Nurdin1)
[(Nurdin)] Nurdin and Schotte Phys Rev E, 61(4), 3579 (2000)

View File

@ -31,6 +31,7 @@ Computes :h1
compute_dpd
compute_dpd_atom
compute_edpd_temp_atom
compute_entropy_atom
compute_erotate_asphere
compute_erotate_rigid
compute_erotate_sphere
@ -95,6 +96,7 @@ Computes :h1
compute_smd_ulsph_stress
compute_smd_vol
compute_sna_atom
compute_spin
compute_stress_atom
compute_tally
compute_tdpd_cc_atom

View File

@ -37,8 +37,8 @@ keyword = {special} :l
create_bonds many all all 1 1.0 1.2
create_bonds many surf solvent 3 2.0 2.4
create_bond single/bond 1 1 2
create_bond single/angle 5 52 98 107 special no :pre
create_bonds single/bond 1 1 2
create_bonds single/angle 5 52 98 107 special no :pre
[Description:]

View File

@ -0,0 +1,205 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
dihedral_style table/cut command :h3
[Syntax:]
dihedral_style table/cut style Ntable :pre
style = {linear} or {spline} = method of interpolation
Ntable = size of the internal lookup table :ul
[Examples:]
dihedral_style table/cut spline 400
dihedral_style table/cut linear 1000
dihedral_coeff 1 aat 1.0 177 180 file.table DIH_TABLE1
dihedral_coeff 2 aat 0.5 170 180 file.table DIH_TABLE2 :pre
[Description:]
The {table/cut} dihedral style creates interpolation tables of length
{Ntable} from dihedral potential and derivative values listed in a
file(s) as a function of the dihedral angle "phi". In addition, an
analytic cutoff that is quadratic in the bond-angle (theta) is applied
in order to regularize the dihedral interaction. The dihedral table
files are read by the "dihedral_coeff"_dihedral_coeff.html command.
The interpolation tables are created by fitting cubic splines to the
file values and interpolating energy and derivative values at each of
{Ntable} dihedral angles. During a simulation, these tables are used
to interpolate energy and force values on individual atoms as
needed. The interpolation is done in one of 2 styles: {linear} or
{spline}.
For the {linear} style, the dihedral angle (phi) is used to find 2
surrounding table values from which an energy or its derivative is
computed by linear interpolation.
For the {spline} style, cubic spline coefficients are computed and
stored at each of the {Ntable} evenly-spaced values in the
interpolated table. For a given dihedral angle (phi), the appropriate
coefficients are chosen from this list, and a cubic polynomial is used
to compute the energy and the derivative at this angle.
The following coefficients must be defined for each dihedral type via
the "dihedral_coeff"_dihedral_coeff.html command as in the example
above.
style (aat)
cutoff prefactor
cutoff angle1
cutoff angle2
filename
keyword :ul
The cutoff dihedral style uses a tabulated dihedral interaction with a
cutoff function:
:c,image(Eqs/dihedral_table_cut.jpg)
The cutoff specifies an prefactor to the cutoff function. While this value
would ordinarily equal 1 there may be situations where the value should change.
The cutoff angle1 specifies the angle (in degrees) below which the dihedral
interaction is unmodified, i.e. the cutoff function is 1.
The cutoff function is applied between angle1 and angle2, which is the angle at
which the cutoff function drops to zero. The value of zero effectively "turns
off" the dihedral interaction.
The filename specifies a file containing tabulated energy and
derivative values. The keyword specifies a section of the file. The
format of this file is described below.
:line
The format of a tabulated file is as follows (without the
parenthesized comments). It can begin with one or more comment
or blank lines.
# Table of the potential and its negative derivative :pre
DIH_TABLE1 (keyword is the first text on line)
N 30 DEGREES (N, NOF, DEGREES, RADIANS, CHECKU/F)
(blank line)
1 -168.0 -1.40351172223 0.0423346818422
2 -156.0 -1.70447981034 0.00811786522531
3 -144.0 -1.62956100432 -0.0184129719987
...
30 180.0 -0.707106781187 0.0719306095245 :pre
# Example 2: table of the potential. Forces omitted :pre
DIH_TABLE2
N 30 NOF CHECKU testU.dat CHECKF testF.dat :pre
1 -168.0 -1.40351172223
2 -156.0 -1.70447981034
3 -144.0 -1.62956100432
...
30 180.0 -0.707106781187 :pre
A section begins with a non-blank line whose 1st character is not a
"#"; blank lines or lines starting with "#" can be used as comments
between sections. The first line begins with a keyword which
identifies the section. The line can contain additional text, but the
initial text must match the argument specified in the
"dihedral_coeff"_dihedral_coeff.html command. The next line lists (in
any order) one or more parameters for the table. Each parameter is a
keyword followed by one or more numeric values.
Following a blank line, the next N lines list the tabulated values. On
each line, the 1st value is the index from 1 to N, the 2nd value is
the angle value, the 3rd value is the energy (in energy units), and
the 4th is -dE/d(phi) also in energy units). The 3rd term is the
energy of the 4-atom configuration for the specified angle. The 4th
term (when present) is the negative derivative of the energy with
respect to the angle (in degrees, or radians depending on whether the
user selected DEGREES or RADIANS). Thus the units of the last term
are still energy, not force. The dihedral angle values must increase
from one line to the next.
Dihedral table splines are cyclic. There is no discontinuity at 180
degrees (or at any other angle). Although in the examples above, the
angles range from -180 to 180 degrees, in general, the first angle in
the list can have any value (positive, zero, or negative). However
the {range} of angles represented in the table must be {strictly} less
than 360 degrees (2pi radians) to avoid angle overlap. (You may not
supply entries in the table for both 180 and -180, for example.) If
the user's table covers only a narrow range of dihedral angles,
strange numerical behavior can occur in the large remaining gap.
[Parameters:]
The parameter "N" is required and its value is the number of table
entries that follow. Note that this may be different than the N
specified in the "dihedral_style table"_dihedral_style.html command.
Let {Ntable} is the number of table entries requested dihedral_style
command, and let {Nfile} be the parameter following "N" in the
tabulated file ("30" in the sparse example above). What LAMMPS does
is a preliminary interpolation by creating splines using the {Nfile}
tabulated values as nodal points. It uses these to interpolate as
needed to generate energy and derivative values at {Ntable} different
points (which are evenly spaced over a 360 degree range, even if the
angles in the file are not). The resulting tables of length {Ntable}
are then used as described above, when computing energy and force for
individual dihedral angles and their atoms. This means that if you
want the interpolation tables of length {Ntable} to match exactly what
is in the tabulated file (with effectively nopreliminary
interpolation), you should set {Ntable} = {Nfile}. To insure the
nodal points in the user's file are aligned with the interpolated
table entries, the angles in the table should be integer multiples of
360/{Ntable} degrees, or 2*PI/{Ntable} radians (depending on your
choice of angle units).
The optional "NOF" keyword allows the user to omit the forces
(negative energy derivatives) from the table file (normally located in
the 4th column). In their place, forces will be calculated
automatically by differentiating the potential energy function
indicated by the 3rd column of the table (using either linear or
spline interpolation).
The optional "DEGREES" keyword allows the user to specify angles in
degrees instead of radians (default).
The optional "RADIANS" keyword allows the user to specify angles in
radians instead of degrees. (Note: This changes the way the forces
are scaled in the 4th column of the data file.)
The optional "CHECKU" keyword is followed by a filename. This allows
the user to save all of the the {Ntable} different entries in the
interpolated energy table to a file to make sure that the interpolated
function agrees with the user's expectations. (Note: You can
temporarily increase the {Ntable} parameter to a high value for this
purpose. "{Ntable}" is explained above.)
The optional "CHECKF" keyword is analogous to the "CHECKU" keyword.
It is followed by a filename, and it allows the user to check the
interpolated force table. This option is available even if the user
selected the "NOF" option.
Note that one file can contain many sections, each with a tabulated
potential. LAMMPS reads the file section by section until it finds one
that matches the specified keyword.
[Restrictions:]
This dihedral style can only be used if LAMMPS was built with the
USER-MISC package. See the "Making LAMMPS"_Section_start.html#start_3
section for more info on packages.
[Related commands:]
"dihedral_coeff"_dihedral_coeff.html, "dihedral_style table"_dihedral_table.html
[Default:] none
:link(dihedralcut-Salerno)
[(Salerno)] Salerno, Bernstein, J Chem Theory Comput, --, ---- (2018).

View File

@ -19,6 +19,7 @@ Dihedral Styles :h1
dihedral_quadratic
dihedral_spherical
dihedral_table
dihedral_table_cut
dihedral_zero
dihedral_charmm
dihedral_class2

View File

@ -15,7 +15,7 @@ dump_modify dump-ID keyword values ... :pre
dump-ID = ID of dump to modify :ulb,l
one or more keyword/value pairs may be appended :l
these keywords apply to various dump styles :l
keyword = {append} or {at} or {buffer} or {delay} or {element} or {every} or {fileper} or {first} or {flush} or {format} or {image} or {label} or {nfile} or {pad} or {precision} or {region} or {scale} or {sort} or {thresh} or {unwrap} :l
keyword = {append} or {at} or {buffer} or {delay} or {element} or {every} or {fileper} or {first} or {flush} or {format} or {image} or {label} or {maxfiles} or {nfile} or {pad} or {precision} or {region} or {scale} or {sort} or {thresh} or {unwrap} :l
{append} arg = {yes} or {no}
{at} arg = N
N = index of frame written upon first dump
@ -37,6 +37,8 @@ keyword = {append} or {at} or {buffer} or {delay} or {element} or {every} or {fi
{image} arg = {yes} or {no}
{label} arg = string
string = character string (e.g. BONDS) to use in header of dump local file
{maxfiles} arg = Fmax
Fmax = keep only the most recent {Fmax} snapshots (one snapshot per file)
{nfile} arg = Nf
Nf = write this many files, one from each of Nf processors
{pad} arg = Nchar = # of characters to convert timestep to
@ -364,6 +366,20 @@ e.g. BONDS or ANGLES.
:line
The {maxfiles} keyword can only be used when a '*' wildcard is
included in the dump file name, i.e. when writing a new file(s) for
each snapshot. The specified {Fmax} is how many snapshots will be
kept. Once this number is reached, the file(s) containing the oldest
snapshot is deleted before a new dump file is written. If the
specified {Fmax} <= 0, then all files are retained.
This can be useful for debugging, especially if you don't know on what
timestep something bad will happen, e.g. when LAMMPS will exit with an
error. You can dump every timestep, and limit the number of dump
files produced, even if you run for 1000s of steps.
:line
The {nfile} or {fileper} keywords can be used in conjunction with the
"%" wildcard character in the specified dump file name, for all dump
styles except the {dcd}, {image}, {movie}, {xtc}, and {xyz} styles
@ -470,7 +486,7 @@ to respond to the call from the dump command, and update the
appropriate reference positions. This is done be defining an
"atom-style variable"_variable.html, {check} in this example, which
calculates a Boolean value (0 or 1) for each atom, based on the same
criterion used by dump_modify thresh.
criterion used by dump_modify thresh.
See the "compute displace/atom"_compute_displace_atom.html command for
more details, including an example of how to produce output that
@ -584,13 +600,13 @@ included.)
region foo sphere 10 20 10 15
variable inregion atom rmask(foo)
dump_modify ... thresh v_inregion |^ LAST
dump_modify ... thresh v_inregion |^ LAST :pre
This will dump atoms which crossed the boundary of the spherical
region since the last dump.
variable charge atom "(q > 0.5) || (q < -0.5)"
dump_modify ... thresh v_charge |^ LAST
dump_modify ... thresh v_charge |^ LAST :pre
This will dump atoms whose charge has changed from an absolute value
less than 1/2 to greater than 1/2 (or vice versa) since the last dump.
@ -901,6 +917,7 @@ flush = yes
format = %d and %g for each integer or floating point value
image = no
label = ENTRIES
maxifiles = -1
nfile = 1
pad = 0
pbc = no

View File

@ -205,6 +205,14 @@ a bond coefficient over time, very similar to how the {pair} keyword
operates. The only difference is that now a bond coefficient for a
given bond type is adapted.
A wild-card asterisk can be used in place of or in conjunction with
the bond type argument to set the coefficients for multiple bond types.
This takes the form "*" or "*n" or "n*" or "m*n". If N = the number of
atom types, then an asterisk with no numeric values means all types
from 1 to N. A leading asterisk means all types from 1 to n (inclusive).
A trailing asterisk means all types from n to N (inclusive). A middle
asterisk means all types from m to n (inclusive).
Currently {bond} does not support bond_style hybrid nor bond_style
hybrid/overlay as bond styles. The only bonds that currently are
working with fix_adapt are

112
doc/src/fix_bocs.txt Normal file
View File

@ -0,0 +1,112 @@
<"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
fix bocs command :h3
[Syntax:]
fix ID group-ID bocs keyword values ... :pre
keyword = {temp} or {cgiso} or {analytic} or {linear_spline} or {cubic_spline}
{temp} values = Tstart Tstop Tdamp
{cgiso} values = Pstart Pstop Pdamp
{basis set}
{analytic} values = V_avg N_particles N_coeff Coeff_1 Coeff_2 ... Coeff_N
{linear_spline} values = input_filename
{cubic_spline} values = input_filename :pre
:ule
[Examples:]
fix 1 all bocs temp 300.0 300.0 100.0 cgiso 0.986 0.986 1000.0 analytic 66476.015 968 2 245030.10 8962.20 :pre
fix 1 all bocs temp 300.0 300.0 100.0 cgiso 0.986 0.986 1000.0 cubic_spline input_Fv.dat :pre
thermo_modify press 1_press :pre
[Description:]
These commands incorporate a pressure correction as described by
Dunn and Noid in "(Dunn1)"_#bocs-Dunn1 to the standard MTTK
barostat by Martyna et. al. in "(Martyna)"_#bocs-Martyna .
The first half of the command mimics a standard fix npt command:
fix 1 all bocs temp Tstart Tstop Tcoupl cgiso Pstart Pstop Pdamp :pre
The two differences are replacing {npt} with {bocs}, and replacing
{iso}/{aniso}/{etc} with {cgiso}.
The rest of the command details what form you would like to use for
the pressure correction equation. The choices are: {analytic}, {linear_spline},
or {cubic_spline}.
With either spline method, the only argument that needs to follow it
is the name of a file that contains the desired pressure correction
as a function of volume. The file should be formatted so each line has:
Volume_i, PressureCorrection_i :pre
Note both the COMMA and the SPACE separating the volume's
value and its corresponding pressure correction. The volumes in the file
should be uniformly spaced. Both the volumes and the pressure corrections
should be provided in the proper units, e.g. if you are using {units real},
the volumes should all be in cubic angstroms, and the pressure corrections
should all be in atomspheres. Furthermore, the table should start/end at a
volume considerably smaller/larger than you expect your system to sample
during the simulation. If the system ever reaches a volume outside of the
range provided, the simulation will stop.
With the {analytic} option, the arguments are as follows:
... analytic V_avg N_particles N_coeff Coeff_1 Coeff_2 ... Coeff_N :pre
Note that {V_avg} and {Coeff_i} should all be in the proper units, e.g. if you
are using {units real}, {V_avg} should be in cubic angstroms, and the
coefficients should all be in atmospheres * cubic angstroms.
[Restrictions:]
As this is computing a (modified) pressure, group-ID should be {all}.
The pressure correction has only been tested for use with an isotropic
pressure coupling in 3 dimensions.
By default, LAMMPS will still report the normal value for the pressure
if the pressure is printed via a {thermo} command, or if the pressures
are written to a file every so often. In order to have LAMMPS report the
modified pressure, you must include the {thermo_modify} command given in
the examples. For the last argument in the command, you should put
XXXX_press, where XXXX is the ID given to the fix bocs command (in the
example, the ID of the fix bocs command is 1 ).
This fix is part of the USER-BOCS package. It is only enabled if
LAMMPS was built with that package. See the "Making
LAMMPS"_Section_start.html#start_3 section for more info.
[Related:]
For more details about the pressure correction and the entire BOCS software
package, visit the "BOCS package on github"_bocsgithub and read the release
paper by Dunn et. al. "(Dunn2)"_#bocs-Dunn2 .
:link(bocsgithub,https://github.com/noid-group/BOCS)
:line
:link(bocs-Dunn1)
[(Dunn1)] Dunn and Noid, J Chem Phys, 143, 243148 (2015).
:link(bocs-Martyna)
[(Martyna)] Martyna, Tobias, and Klein, J Chem Phys, 101, 4177 (1994).
:link(bocs-Dunn2)
[(Dunn2)] Dunn, Lebold, DeLyser, Rudzinski, and Noid, J. Phys. Chem. B, 122, 3363 (2018).

332
doc/src/fix_bond_react.txt Normal file
View File

@ -0,0 +1,332 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
fix bond/react command :h3
[Syntax:]
fix ID group-ID bond/react common_keyword values ...
react react-ID react-group-ID Nevery Rmin Rmax template-ID(pre-reacted) template-ID(post-reacted) map_file individual_keyword values ...
react react-ID react-group-ID Nevery Rmin Rmax template-ID(pre-reacted) template-ID(post-reacted) map_file individual_keyword values ...
react react-ID react-group-ID Nevery Rmin Rmax template-ID(pre-reacted) template-ID(post-reacted) map_file individual_keyword values ...
... :pre
ID, group-ID are documented in "fix"_fix.html command. Group-ID is ignored. :ulb,l
bond/react = style name of this fix command :l
zero or more common keyword/value pairs may be appended directly after 'bond/react' :l
these apply to all reaction specifications (below) :l
common_keyword = {stabilization} :l
{stabilization} values = {no} or {yes} {group-ID} {xmax}
{no} = no reaction site stabilization
{yes} = perform reaction site stabilization
{group-ID} = user-assigned ID for all non-reacting atoms (group created internally)
{xmax} = xmax value that is used by an internally created "nve/limit"_fix_nve_limit.html integrator :pre
react = mandatory argument indicating new reaction specification :l
react-ID = user-assigned name for the reaction :l
react-group-ID = only atoms in this group are available for the reaction :l
Nevery = attempt reaction every this many steps :l
Rmin = bonding pair atoms must be separated by more than Rmin to initiate reaction (distance units) :l
Rmax = bonding pair atoms must be separated by less than Rmax to initiate reaction (distance units) :l
template-ID(pre-reacted) = ID of a molecule template containing pre-reaction topology :l
template-ID(post-reacted) = ID of a molecule template containing post-reaction topology :l
map_file = name of file specifying corresponding atomIDs in the pre- and post-reacted templates :l
zero or more individual keyword/value pairs may be appended to each react argument :l
individual_keyword = {prob} or {stabilize_steps} :l
{prob} values = fraction seed
fraction = initiate reaction with this probability if otherwise eligible
seed = random number seed (positive integer)
{stabilize_steps} value = timesteps
timesteps = number of timesteps to apply internally created nve/limit.html :pre
:ule
[Examples:]
molecule mol1 pre_reacted_topology.txt
molecule mol2 post_reacted_topology.txt
fix 5 all bond/react stabilization no react myrxn1 all 1 0 3.25 mol1 mol2 map_file.txt :pre
molecule mol1 pre_reacted_rxn1.txt
molecule mol2 post_reacted_rxn1.txt
molecule mol3 pre_reacted_rxn2.txt
molecule mol4 post_reacted_rxn2.txt
fix 5 all bond/react stabilization yes nvt_grp .03 &
react myrxn1 all 1 0 3.25 mol1 mol2 map_file_rxn1.txt prob 0.50 12345 &
react myrxn2 all 1 0 2.75 mol3 mol4 map_file_rxn2.txt prob 0.25 12345
fix 6 nvt_grp nvt temp 300 300 100 # set thermostat after bond/react :pre
[Description:]
Initiate complex covalent bonding (topology) changes. These topology
changes will be referred to as 'reactions' throughout this
documentation. Topology changes are defined in pre- and post-reaction
molecule templates and can include creation and deletion of bonds,
angles, dihedrals, impropers, bond-types, angle-types, dihedral-types,
atom-types, or atomic charges.
Fix bond/react does not use quantum mechanical (eg. fix qmmm) or
pairwise bond-order potential (eg. Tersoff or AIREBO) methods to
determine bonding changes a priori. Rather, it uses a distance-based
probabilistic criteria to effect predetermined topology changes in
simulations using standard force fields.
This fix was created to facilitate the dynamic creation of polymeric,
amorphous or highly-crosslinked systems. A suggested workflow for
using this fix is: 1) identify a reaction to be simulated 2) build a
molecule template of the reaction site before the reaction has
occurred 3) build a molecule template of the reaction site after the
reaction has occurred 4) create a map that relates the
template-atom-IDs of each atom between pre- and post-reaction molecule
templates 5) fill a simulation box with molecules and run a simulation
with fix bond/react.
Only one 'fix bond/react' command can be used at a time. Multiple
reactions can be simultaneously applied by specifying multiple {react}
arguments to a single 'fix bond/react' command. This syntax is
necessary because the 'common keywords' are applied to all reactions.
The {stabilization} keyword enables reaction site stabilization.
Reaction site stabilization is performed by including reacting atoms
in an internally created fix "nve/limit"_fix_nve_limit.html time
integrator for a set number of timesteps given by the
{stabilize_steps} keyword. While reacting atoms are being time
integrated by the internal nve/limit, they are prevented from being
involved in any new reactions. The {xmax} value keyword should
typically be set to the maximum distance that non-reacting atoms move
during the simulation.
The group-ID set using the {stabilization} keyword should be a
previously unused group-ID. It cannot be specified as 'all'. The fix
bond/react command creates a "dynamic group"_group.html of this name
that includes all non-reacting atoms. This dynamic group-ID should
then be used by a subsequent system-wide time integrator such as nvt,
npt, or nve, as shown in the second example above. It is currently
necessary to place the time integration command after the fix
bond/react command due to the internal dynamic grouping performed by
fix bond/react.
NOTE: The internally created group currently applies to all atoms in
the system, i.e. you should generally not have a separate thermostat
which acts on the 'all' group.
The following comments pertain to each {react} argument:
A check for possible new reaction sites is performed every {Nevery}
timesteps.
Two conditions must be met for a reaction to occur. First a bonding
atom pair must be identified. Second, the topology surrounding the
bonding atom pair must match the topology of the pre-reaction
template. If both these conditions are met, the reaction site is
modified to match the post-reaction template.
A bonding atom pair will be identified if several conditions are met.
First, a pair of atoms within the specified react-group-ID of type
typei and typej must separated by a distance between {Rmin} and
{Rmax}. It is possible that multiple bonding atom pairs are
identified: if the bonding atoms in the pre-reacted template are not
1-2, 1-3, or 1-4 neighbors, the closest bonding atom partner is set as
its bonding partner; otherwise, the farthest potential partner is
chosen. Then, if both an atomi and atomj have each other as their
nearest bonding partners, these two atoms are identified as the
bonding atom pair of the reaction site. Once this unique bonding atom
pair is identified for each reaction, there could two or more
reactions that involve a given atom on the same timestep. If this is
the case, only one such reaction is permitted to occur. This reaction
is chosen randomly from all potential reactions. This capability
allows e.g. for different reaction pathways to proceed from identical
reaction sites with user-specified probabilities.
The pre-reacted molecule template is specified by a molecule command.
This molecule template file contains a sample reaction site and its
surrounding topology. As described below, the bonding atom pairs of
the pre-reacted template are specified by atom ID in the map file. The
pre-reacted molecule template should contain as few atoms as possible
while still completely describing the topology of all atoms affected
by the reaction. For example, if the force field contains dihedrals,
the pre-reacted template should contain any atom within three bonds of
reacting atoms.
Some atoms in the pre-reacted template that are not reacting may have
missing topology with respect to the simulation. For example, the
pre-reacted template may contain an atom that would connect to the
rest of a long polymer chain. These are referred to as edge atoms, and
are also specified in the map file.
Note that some care must be taken when a building a molecule template
for a given simulation. All atom types in the pre-reacted template
must be the same as those of a potential reaction site in the
simulation. A detailed discussion of matching molecule template atom
types with the simulation is provided on the "molecule"_molecule.html
command page.
The post-reacted molecule template contains a sample of the reaction
site and its surrounding topology after the reaction has occurred. It
must contain the same number of atoms as the pre-reacted template. A
one-to-one correspondence between the atom IDs in the pre- and
post-reacted templates is specified in the map file as described
below. Note that during a reaction, an atom, bond, etc. type may
change to one that was previously not present in the simulation. These
new types must also be defined during the setup of a given simulation.
A discussion of correctly handling this is also provided on the
"molecule"_molecule.html command page.
The map file is a text document with the following format:
A map file has a header and a body. The header of map file the
contains one mandatory keyword and one optional keyword. The mandatory
keyword is 'equivalences' and the optional keyword is 'edgeIDs':
N {equivalences} = # of atoms N in the reaction molecule templates
N {edgeIDs} = # of edge atoms N in the pre-reacted molecule template :pre
The body of the map file contains two mandatory sections and one
optional section. The first mandatory section begins with the keyword
'BondingIDs' and lists the atom IDs of the bonding atom pair in the
pre-reacted molecule template. The second mandatory section begins
with the keyword 'Equivalences' and lists a one-to-one correspondence
between atom IDs of the pre- and post-reacted templates. The first
column is an atom ID of the pre-reacted molecule template, and the
second column is the corresponding atom ID of the post-reacted
molecule template. The optional section begins with the keyword
'EdgeIDs' and lists the atom IDs of edge atoms in the pre-reacted
molecule template.
A sample map file is given below:
:line
# this is a map file :pre
2 edgeIDs
7 equivalences :pre
BondingIDs :pre
3
5 :pre
EdgeIDs :pre
1
7 :pre
Equivalences :pre
1 1
2 2
3 3
4 4
5 5
6 6
7 7 :pre
:line
Once a reaction site has been successfully identified, data structures
within LAMMPS that store bond topology are updated to reflect the
post-reacted molecule template. All force fields with fixed bonds,
angles, dihedrals or impropers are supported.
A few capabilities to note: 1) You may specify as many {react}
arguments as desired. For example, you could break down a complicated
reaction mechanism into several reaction steps, each defined by its
own {react} argument. 2) While typically a bond is formed or removed
between the bonding atom pairs specified in the pre-reacted molecule
template, this is not required. 3) By reversing the order of the pre-
and post- reacted molecule templates in another {react} argument, you
can allow for the possibility of one or more reverse reactions.
The optional keywords deal with the probability of a given reaction
occurring as well as the stable equilibration of each reaction site as
it occurs.
The {prob} keyword can affect whether an eligible reaction actually
occurs. The fraction setting must be a value between 0.0 and 1.0. A
uniform random number between 0.0 and 1.0 is generated and the
eligible reaction only occurs if the random number is less than the
fraction.
The {stabilize_steps} keyword allows for the specification of how many
timesteps a reaction site is stabilized before being returned to the
overall system thermostat.
In order to produce the most physical behavior, this 'reaction site
equilibration time' should be tuned to be as small as possible while
retaining stability for a given system or reaction step. After a
limited number of case studies, this number has been set to a default
of 60 timesteps. Ideally, it should be individually tuned for each fix
reaction step. Note that in some situations, decreasing rather than
increasing this parameter will result in an increase in stability.
A few other considerations:
It may be beneficial to ensure reacting atoms are at a certain
temperature before being released to the overall thermostat. For this,
you can use the internally-created dynamic group named
"bond_react_MASTER_group." For example, adding the following command
would thermostat the group of all atoms currently involved in a
reaction:
fix 1 bond_react_MASTER_group temp/rescale 1 300 300 10 1 :pre
NOTE: This command must be added after the fix bond/react command, and
will apply to all reactions.
Computationally, each timestep this fix operates, it loops over
neighbor lists (for bond-forming reactions) and computes distances
between pairs of atoms in the list. It also communicates between
neighboring processors to coordinate which bonds are created and/or
removed. All of these operations increase the cost of a timestep. Thus
you should be cautious about invoking this fix too frequently.
You can dump out snapshots of the current bond topology via the dump
local command.
:line
[Restart, fix_modify, output, run start/stop, minimize info:]
No information about this fix is written to "binary restart
files"_restart.html, aside from internally-created per-atom
properties. None of the "fix_modify"_fix_modify.html options are
relevant to this fix.
This fix computes one statistic for each {react} argument that it
stores in a global vector, of length 'number of react arguments', that
can be accessed by various "output
commands"_Section_howto.html#howto_15. The vector values calculated by
this fix are "intensive".
These is 1 quantity for each react argument:
(1) cumulative # of reactions occurred :ul
No parameter of this fix can be used with the {start/stop} keywords of
the "run"_run.html command. This fix is not invoked during "energy
minimization"_minimize.html.
[Restrictions:]
This fix is part of the USER-MISC package. It is only enabled if
LAMMPS was built with that package. See the "Making
LAMMPS"_Section_start.html#start_3 section for more info.
[Related commands:]
"fix bond/create"_fix_bond_create.html, "fix
bond/break"_fix_bond_break.html, "fix bond/swap"_fix_bond_swap.html,
"dump local"_dump.html, "special_bonds"_special_bonds.html
[Default:]
The option defaults are stabilization = no, stabilize_steps = 60
:line
:link(Gissinger)
[(Gissinger)] Gissinger, Jensen and Wise, Polymer, 128, 211 (2017).

View File

@ -19,7 +19,9 @@ Tmin = minimum dt allowed which can be NULL (time units)
Tmax = maximum dt allowed which can be NULL (time units)
Xmax = maximum distance for an atom to move in one timestep (distance units)
zero or more keyword/value pairs may be appended
keyword = {units} :ul
keyword = {emax} or {units} :ul
{emax} value = Emax
Emax = maximum kinetic energy change for an atom in one timestep (energy units)
{units} value = {lattice} or {box}
lattice = Xmax is defined in lattice units
box = Xmax is defined in simulation box units :pre
@ -27,12 +29,17 @@ keyword = {units} :ul
[Examples:]
fix 5 all dt/reset 10 1.0e-5 0.01 0.1
fix 5 all dt/reset 10 0.01 2.0 0.2 units box :pre
fix 5 all dt/reset 10 0.01 2.0 0.2 units box
fix 5 all dt/reset 5 NULL 0.001 0.5 emax 30 units box :pre
[Description:]
Reset the timestep size every N steps during a run, so that no atom
moves further than Xmax, based on current atom velocities and forces.
moves further than the specified {Xmax} distance, based on current
atom velocities and forces. Optionally an additional criterion is
imposed by the {emax} keyword, so that no atom's kinetic energy
changes by more than the specified {Emax}.
This can be useful when starting from a configuration with overlapping
atoms, where forces will be large. Or it can be useful when running
an impact simulation where one or more high-energy atoms collide with
@ -48,7 +55,12 @@ current velocity and force. Since performing this calculation exactly
would require the solution to a quartic equation, a cheaper estimate
is generated. The estimate is conservative in that the atom's
displacement is guaranteed not to exceed {Xmax}, though it may be
smaller.
smaller.
In addition if the {emax} keyword is used, the specified {Emax} value
is enforced as a limit on how much an atom's kinetic energy can
change. If the timestep required is even smaller than for the {Xmax}
displacement, then the smaller timestep is used.
Given this putative timestep for each atom, the minimum timestep value
across all atoms is computed. Then the {Tmin} and {Tmax} bounds are
@ -87,4 +99,5 @@ minimization"_minimize.html.
[Default:]
The option defaults is units = lattice.
The option defaults are units = lattice, and no emax kinetic energy
limit.

View File

@ -154,7 +154,7 @@ Note: The temperature thermostating the core-Drude particle pairs
should be chosen low enough, so as to mimic as closely as possible the
self-consistent minimization. It must however be high enough, so that
the dipoles can follow the local electric field exerted by the
neighbouring atoms. The optimal value probably depends on the
neighboring atoms. The optimal value probably depends on the
temperature of the centers of mass and on the mass of the Drude
particles.

View File

@ -0,0 +1,102 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
fix langevin/spin command :h3
[Syntax:]
fix ID group-ID langevin/spin T Tdamp seed :pre
ID, group-ID are documented in "fix"_fix.html command :ulb,l
langevin/spin = style name of this fix command :l
T = desired temperature of the bath (temperature units, K in metal units) :l
Tdamp = transverse magnetic damping parameter (adim) :l
seed = random number seed to use for white noise (positive integer) :l
:ule
[Examples:]
fix 2 all langevin/spin 300.0 0.01 21 :pre
[Description:]
Apply a Langevin thermostat as described in "(Mayergoyz)"_#Mayergoyz1 to the
magnetic spins associated to the atoms.
Used with "fix nve/spin"_fix_nve_spin.html, this command performs
Brownian dynamics (BD).
A random torque and a transverse dissipation are applied to each spin i according to
the following stochastic differential equation:
:c,image(Eqs/fix_langevin_spin_sLLG.jpg)
with lambda the transverse damping, and eta a random verctor.
This equation is referred to as the stochastic Landau-Lifshitz-Gilbert (sLLG)
equation.
The components of eta are drawn from a Gaussian probability law. Their amplitude
is defined as a proportion of the temperature of the external thermostat T (in K
in metal units).
More details about this implementation are reported in "(Tranchida)"_#Tranchida2.
Note: due to the form of the sLLG equation, this fix has to be defined just
before the nve/spin fix (and after all other magnetic fixes).
As an example:
fix 1 all precession/spin zeeman 0.01 0.0 0.0 1.0
fix 2 all langevin/spin 300.0 0.01 21
fix 3 all nve/spin lattice yes :pre
is correct, but defining a force/spin command after the langevin/spin command
would give an error message.
Note: The random # {seed} must be a positive integer. A Marsaglia random
number generator is used. Each processor uses the input seed to
generate its own unique seed and its own stream of random numbers.
Thus the dynamics of the system will not be identical on two runs on
different numbers of processors.
:line
[Restart, fix_modify, output, run start/stop, minimize info:]
No information about this fix is written to "binary restart
files"_restart.html. Because the state of the random number generator
is not saved in restart files, this means you cannot do "exact"
restarts with this fix, where the simulation continues on the same as
if no restart had taken place. However, in a statistical sense, a
restarted simulation should produce the same behavior.
This fix is not invoked during "energy minimization"_minimize.html.
[Restrictions:]
The {langevin/spin} fix is part of the SPIN package.
This style is only enabled if LAMMPS was built with this package.
See the "Making LAMMPS"_Section_start.html#start_3 section for more info.
The numerical integration has to be performed with {fix nve/spin}
when {fix langevin/spin} is enabled.
This fix has to be the last defined magnetic fix before the time
integration fix (e.g. {fix nve/spin}).
[Related commands:]
"fix nve/spin"_fix_nve_spin.html, "fix precession/spin"_fix_precession_spin.html
[Default:] none
:line
:link(Mayergoyz1)
[(Mayergoyz)] I.D. Mayergoyz, G. Bertotti, C. Serpico (2009). Elsevier (2009)
:link(Tranchida2)
[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson,
arXiv preprint arXiv:1801.10233, (2018).

View File

@ -14,14 +14,16 @@ fix_modify fix-ID keyword value ... :pre
fix-ID = ID of the fix to modify :ulb,l
one or more keyword/value pairs may be appended :l
keyword = {temp} or {press} or {energy} or {virial} or {respa} or {dynamic/dof} :l
keyword = {temp} or {press} or {energy} or {virial} or {respa} or {dynamic/dof} or {bodyforces} :l
{temp} value = compute ID that calculates a temperature
{press} value = compute ID that calculates a pressure
{energy} value = {yes} or {no}
{virial} value = {yes} or {no}
{respa} value = {1} to {max respa level} or {0} (for outermost level)
{dynamic/dof} value = {yes} or {no}
yes/no = do or do not recompute the number of degrees of freedom (DOF) contributing to the temperature :pre
yes/no = do or do not recompute the number of degrees of freedom (DOF) contributing to the temperature
{bodyforces} value = {early} or {late}
early/late = compute rigid-body forces/torques early or late in the timestep :pre
:ule
[Examples:]
@ -84,9 +86,8 @@ if you want virial contribution of the fix to be part of the
relaxation criteria, although this seems unlikely.
NOTE: This option is only supported by fixes that explicitly say
so. For some of these (e.g. the
"fix shake"_fix_shake.html command) the default setting is
{virial yes}, for others it is {virial no}.
so. For some of these (e.g. the "fix shake"_fix_shake.html command)
the default setting is {virial yes}, for others it is {virial no}.
For fixes that set or modify forces, it may be possible to select at
which "r-RESPA"_run_style.html level the fix operates via the {respa}
@ -120,6 +121,28 @@ compute to calculate temperature. See the "compute_modify
dynamic/dof"_compute_modify.html command for a similar way to insure
correct temperature normalization for those thermostats.
The {bodyforces} keyword determines whether the forces and torques
acting on rigid bodies are computed {early} at the post-force stage of
each timestep (right after per-atom forces have been computed and
communicated among processors), or {late} at the final-integrate stage
of each timestep (after any other fixes have finished their post-force
tasks). Only the rigid-body integration fixes use this option, which
includes "fix rigid"_fix_rigid.html and "fix
rigid/small"_fix_rigid.html, and their variants, and also "fix
poems"_fix_poems.html.
The default is {late}. If there are other fixes that add forces to
individual atoms, then the rigid-body constraints will include these
forces when time-integrating the rigid bodies. If {early} is
specified, then new fixes can be written that use or modify the
per-body force and torque, before time-integration of the rigid bodies
occurs. Note however this has the side effect, that fixes such as
"fix addforce"_fix_addforce.html, "fix setforce"_fix_setforce.html,
"fix spring"_fix_spring.html, which add forces to individual atoms
will have no effect on the motion of the rigid bodies if they are
specified in the input script after the fix rigid command. LAMMPS
will give a warning if that is the case.
[Restrictions:] none
[Related commands:]
@ -130,4 +153,5 @@ pressure"_compute_pressure.html, "thermo_style"_thermo_style.html
[Default:]
The option defaults are temp = ID defined by fix, press = ID defined
by fix, energy = no, virial = different for each fix style, respa = 0.
by fix, energy = no, virial = different for each fix style, respa = 0,
bodyforce = late.

76
doc/src/fix_nve_spin.txt Normal file
View File

@ -0,0 +1,76 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
fix nve/spin command :h3
[Syntax:]
fix ID group-ID nve/spin keyword values :pre
ID, group-ID are documented in "fix"_fix.html command :ulb,l
nve/spin = style name of this fix command :l
keyword = {lattice} :l
{lattice} value = {no} or {yes} :pre
:ule
[Examples:]
fix 3 all nve/spin lattice yes
fix 1 all nve/spin lattice no :pre
[Description:]
Perform a symplectic integration for the spin or spin-lattice system.
The {lattice} keyword defines if the spins are integrated on a lattice
of fixed atoms (lattice = no), or if atoms are moving (lattice = yes).
By default (lattice = yes), a spin-lattice integration is performed.
The {nve/spin} fix applies a Suzuki-Trotter decomposition to
the equations of motion of the spin lattice system, following the scheme:
:c,image(Eqs/fix_integration_spin_stdecomposition.jpg)
according to the implementation reported in "(Omelyan)"_#Omelyan1.
A sectoring method enables this scheme for parallel calculations.
The implementation of this sectoring algorithm is reported
in "(Tranchida)"_#Tranchida1.
:line
[Restrictions:]
This fix style can only be used if LAMMPS was built with the
SPIN package. See the "Making LAMMPS"_Section_start.html#start_3
section for more info on packages.
To use the spin algorithm, it is necessary to define a map with
the atom_modify command. Typically, by adding the command:
atom_modify map array :pre
before you create the simulation box. Note that the keyword "hash"
instead of "array" is also valid.
[Related commands:]
"atom_style spin"_atom_style.html, "fix nve"_fix_nve.html
[Default:] none
:line
:link(Omelyan1)
[(Omelyan)] Omelyan, Mryglod, and Folk. Phys. Rev. Lett.
86(5), 898. (2001).
:link(Tranchida1)
[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson,
arXiv preprint arXiv:1801.10233, (2018).

View File

@ -106,12 +106,18 @@ off, and there is only a single fix poems defined.
[Restart, fix_modify, output, run start/stop, minimize info:]
No information about this fix is written to "binary restart
files"_restart.html. None of the "fix_modify"_fix_modify.html options
are relevant to this fix. No global or per-atom quantities are stored
by this fix for access by various "output
commands"_Section_howto.html#howto_15. No parameter of this fix can
be used with the {start/stop} keywords of the "run"_run.html command.
This fix is not invoked during "energy minimization"_minimize.html.
files"_restart.html.
The "fix_modify"_fix_modify.html {bodyforces} option is supported by
this fix style to set whether per-body forces and torques are computed
early or late in a timestep, i.e. at the post-force stage or at the
final-integrate stage, respectively.
No global or per-atom quantities are stored by this fix for access by
various "output commands"_Section_howto.html#howto_15. No parameter
of this fix can be used with the {start/stop} keywords of the
"run"_run.html command. This fix is not invoked during "energy
minimization"_minimize.html.
[Restrictions:]

View File

@ -0,0 +1,87 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
fix precession/spin command :h3
[Syntax:]
fix ID group precession/spin style args :pre
ID, group are documented in "fix"_fix.html command :ulb,l
precession/spin = style name of this fix command :l
style = {zeeman} or {anisotropy} :l
{zeeman} args = H x y z
H = intensity of the magnetic field (in Tesla)
x y z = vector direction of the field
{anisotropy} args = K x y z
K = intensity of the magnetic anisotropy (in eV)
x y z = vector direction of the anisotropy :pre
:ule
[Examples:]
fix 1 all precession/spin zeeman 0.1 0.0 0.0 1.0
fix 1 all precession/spin anisotropy 0.001 0.0 0.0 1.0
fix 1 all precession/spin zeeman 0.1 0.0 0.0 1.0 anisotropy 0.001 0.0 0.0 1.0 :pre
[Description:]
Impose a force torque to each magnetic spin in the group.
Style {zeeman} is used for the simulation of the interaction
between the magnetic spins in the defined group and an external
magnetic field:
:c,image(Eqs/force_spin_zeeman.jpg)
with mu0 the vacuum permeability, muB the Bohr magneton (muB = 5.788 eV/T
in metal units).
Style {anisotropy} is used to simulate an easy axis or an easy plane
for the magnetic spins in the defined group:
:c,image(Eqs/force_spin_aniso.jpg)
with n defining the direction of the anisotropy, and K (in eV) its intensity.
If K>0, an easy axis is defined, and if K<0, an easy plane is defined.
In both cases, the choice of (x y z) imposes the vector direction for the force.
Only the direction of the vector is important; it's length is ignored.
Both styles can be combined within one single command line.
:line
[Restart, fix_modify, output, run start/stop, minimize info:]
By default, the energy associated to this fix is not added to the potential
energy of the system.
The "fix_modify"_fix_modify.html {energy} option is supported by this fix
to add this magnetic potential energy to the potential energy of the system,
fix 1 all precession/spin zeeman 1.0 0.0 0.0 1.0
fix_modify 1 energy yes :pre
This fix computes a global scalar which can be accessed by various
"output commands"_Section_howto.html#howto_15.
No information about this fix is written to "binary restart
files"_restart.html.
[Restrictions:]
The {precession/spin} style is part of the SPIN package.
This style is only enabled if LAMMPS was built with this package, and
if the atom_style "spin" was declared.
See the "Making LAMMPS"_Section_start.html#start_3 section for more info.
[Related commands:]
"atom_style spin"_atom_style.html
[Default:] none

View File

@ -34,6 +34,8 @@ written to {filename} on timesteps that are multiples of {Nevery},
including timestep 0. For time-averaged chemical species analysis,
please see the "fix reaxc/c/species"_fix_reaxc_species.html command.
The specified group-ID is ignored by this fix.
The format of the output file should be reasonably self-explanatory.
The meaning of the column header abbreviations is as follows:

View File

@ -24,10 +24,12 @@ keyword = {bond} or {angle} or {dihedral} :l
atom1,atom2,atom3 = IDs of 3 atoms in angle, atom2 = middle atom
Kstart,Kstop = restraint coefficients at start/end of run (energy units)
theta0 = equilibrium angle theta (degrees)
{dihedral} args = atom1 atom2 atom3 atom4 Kstart Kstop phi0
{dihedral} args = atom1 atom2 atom3 atom4 Kstart Kstop phi0 keyword/value
atom1,atom2,atom3,atom4 = IDs of 4 atoms in dihedral in linear order
Kstart,Kstop = restraint coefficients at start/end of run (energy units)
phi0 = equilibrium dihedral angle phi (degrees) :pre
phi0 = equilibrium dihedral angle phi (degrees)
keyword/value = optional keyword value pairs. supported keyword/value pairs:
{mult} n = dihedral multiplicity n (integer >= 0, default = 1) :pre
:ule
[Examples:]
@ -155,11 +157,13 @@ associated with the restraint is
with the following coefficients:
K (energy)
n = 1
n (multiplicity, >= 0)
d (degrees) = phi0 + 180 :ul
K and phi0 are specified with the fix. Note that the value of n is
hard-wired to 1. Also note that the energy will be a minimum when the
K and phi0 are specified with the fix. Note that the value of the
dihedral multiplicity {n} is set by default to 1. You can use the
optional {mult} keyword to set it to a different positive integer.
Also note that the energy will be a minimum when the
current dihedral angle phi is equal to phi0.
:line
@ -183,10 +187,17 @@ added forces to be included in the total potential energy of the
system (the quantity being minimized), you MUST enable the
"fix_modify"_fix_modify.html {energy} option for this fix.
This fix computes a global scalar, which can be accessed by various
"output commands"_Section_howto.html#howto_15. The scalar is the
potential energy for all the restraints as discussed above. The scalar
value calculated by this fix is "extensive".
This fix computes a global scalar and a global vector of length 3, which
can be accessed by various "output commands"_Section_howto.html#howto_15.
The scalar is the total potential energy for {all} the restraints as
discussed above. The vector values are the sum of contributions to the
following individual categories:
1 = bond energy
2 = angle energy
3 = dihedral energy :ul
The scalar and vector values calculated by this fix are "extensive".
No parameter of this fix can be used with the {start/stop} keywords of
the "run"_run.html command.

View File

@ -223,10 +223,10 @@ via several options.
NOTE: With the {rigid/small} styles, which require that {bodystyle} be
specified as {molecule} or {custom}, you can define a system that has
no rigid bodies initially. This is useful when you are using the {mol}
keyword in conjunction with another fix that is adding rigid bodies
on-the-fly as molecules, such as "fix deposit"_fix_deposit.html or
"fix pour"_fix_pour.html.
no rigid bodies initially. This is useful when you are using the
{mol} keyword in conjunction with another fix that is adding rigid
bodies on-the-fly as molecules, such as "fix deposit"_fix_deposit.html
or "fix pour"_fix_pour.html.
For bodystyle {single} the entire fix group of atoms is treated as one
rigid body. This option is only allowed for the {rigid} styles.
@ -241,19 +241,17 @@ molecule ID = 0) surrounding rigid bodies, this may not be what you
want. Thus you should be careful to use a fix group that only
includes atoms you want to be part of rigid bodies.
Bodystyle {custom} is similar to bodystyle {molecule}, however some
custom properties are used to group atoms into rigid bodies. The
special case for molecule/body ID = 0 is not available. Possible
custom properties are an integer property associated with atoms through
"fix property/atom"_fix_property_atom.html or an atom style variable
or an atomfile style variable. For the latter two, the variable value
will be rounded to an integer and then rigid bodies defined from
those values.
For bodystyle {group}, each of the listed groups is treated as a
separate rigid body. Only atoms that are also in the fix group are
included in each rigid body. This option is only allowed for the
{rigid} styles.
Bodystyle {custom} is similar to bodystyle {molecule} except that it
is more flexible in using other per-atom properties to define the sets
of atoms that form rigid bodies. An integer vector defined by the
"fix property/atom"_fix_property_atom.txt command can be used. Or an
"atom-style or atomfile-style variable"_variable.html can be used; the
floating-point value produced by the variable is rounded to an
integer. As with bondstyle {molecule}, each set of atoms in the fix
groups with the same integer value is treated as a different rigid
body. Since fix property/atom vectors and atom-style variables
produce values for all atoms, you should be careful to use a fix group
that only includes atoms you want to be part of rigid bodies.
NOTE: To compute the initial center-of-mass position and other
properties of each rigid body, the image flags for each atom in the
@ -742,6 +740,11 @@ used to calculate the instantaneous pressure tensor. Note that the 2
NVT rigid fixes do not use any external compute to compute
instantaneous temperature.
The "fix_modify"_fix_modify.html {bodyforces} option is supported by
all rigid styles to set whether per-body forces and torques are
computed early or late in a timestep, i.e. at the post-force stage or
at the final-integrate stage or the timestep, respectively.
The 2 NVE rigid fixes compute a global scalar which can be accessed by
various "output commands"_Section_howto.html#howto_15. The scalar
value calculated by these fixes is "intensive". The scalar is the

View File

@ -20,9 +20,11 @@ Fixes :h1
fix_ave_time
fix_aveforce
fix_balance
fix_bocs
fix_bond_break
fix_bond_create
fix_bond_swap
fix_bond_react
fix_box_relax
fix_cmap
fix_colvars
@ -59,6 +61,7 @@ Fixes :h1
fix_langevin
fix_langevin_drude
fix_langevin_eff
fix_langevin_spin
fix_latte
fix_lb_fluid
fix_lb_momentum
@ -97,6 +100,7 @@ Fixes :h1
fix_nve_manifold_rattle
fix_nve_noforce
fix_nve_sphere
fix_nve_spin
fix_nve_tri
fix_nvk
fix_nvt_asphere
@ -112,6 +116,7 @@ Fixes :h1
fix_planeforce
fix_poems
fix_pour
fix_precession_spin
fix_press_berendsen
fix_print
fix_property_atom

View File

@ -135,8 +135,10 @@ fix_ave_histo.html
fix_ave_time.html
fix_aveforce.html
fix_balance.html
fix_bocs.html
fix_bond_break.html
fix_bond_create.html
fix_bond_react.html
fix_bond_swap.html
fix_box_relax.html
fix_cmap.html
@ -174,6 +176,7 @@ fix_ipi.html
fix_langevin.html
fix_langevin_drude.html
fix_langevin_eff.html
fix_langevin_spin.html
fix_latte.html
fix_lb_fluid.html
fix_lb_momentum.html
@ -211,6 +214,7 @@ fix_nve_line.html
fix_nve_manifold_rattle.html
fix_nve_noforce.html
fix_nve_sphere.html
fix_nve_spin.html
fix_nve_tri.html
fix_nvk.html
fix_nvt_asphere.html
@ -227,6 +231,7 @@ fix_pimd.html
fix_planeforce.html
fix_poems.html
fix_pour.html
fix_precession_spin.html
fix_press_berendsen.html
fix_print.html
fix_property_atom.html
@ -315,6 +320,7 @@ compute_displace_atom.html
compute_dpd.html
compute_dpd_atom.html
compute_edpd_temp_atom.html
compute_entropy_atom.html
compute_erotate_asphere.html
compute_erotate_rigid.html
compute_erotate_sphere.html
@ -379,6 +385,7 @@ compute_smd_ulsph_strain_rate.html
compute_smd_ulsph_stress.html
compute_smd_vol.html
compute_sna_atom.html
compute_spin.html
compute_stress_atom.html
compute_tally.html
compute_tdpd_cc_atom.html
@ -504,6 +511,10 @@ pair_sph_lj.html
pair_sph_rhosum.html
pair_sph_taitwater.html
pair_sph_taitwater_morris.html
pair_spin_dmi.html
pair_spin_exchange.html
pair_spin_magelec.html
pair_spin_neel.html
pair_srp.html
pair_sw.html
pair_table.html
@ -580,6 +591,7 @@ dihedral_opls.html
dihedral_quadratic.html
dihedral_spherical.html
dihedral_table.html
dihedral_table_cut.html
dihedral_zero.html
lammps_commands_improper.html

View File

@ -98,19 +98,20 @@ molecule (header keyword = inertia).
NOTE: The molecule command can be used to define molecules with bonds,
angles, dihedrals, imporopers, or special bond lists of neighbors
within a molecular topology, so that you can later add the molecules
to your simulation, via one or more of the commands listed above. If
such molecules do not already exist when LAMMPS creates the simulation
box, via the "create_box"_create_box.html or
"read_data"_read_data.html command, when you later add them you may
overflow the pre-allocated data structures which store molecular
topology information with each atom, and an error will be generated.
Both the "create_box"_create_box.html command and the data files read
by the "read_data"_read_data.html command have "extra" options which
to your simulation, via one or more of the commands listed above.
Since this topology-related information requires that suitable storage
is reserved when LAMMPS creates the simulation box (e.g. when using
the "create_box"_create_box.html command or the
"read_data"_read_data.html command) suitable space has to be reserved
so you do not overflow those pre-allocated data structures when adding
molecules later. Both the "create_box"_create_box.html command and
the "read_data"_read_data.html command have "extra" options which
insure space is allocated for storing topology info for molecules that
are added later.
The format of an individual molecule file is similar to the data file
read by the "read_data"_read_data.html commands, and is as follows.
The format of an individual molecule file is similar but
(not identical) to the data file read by the "read_data"_read_data.html
commands, and is as follows.
A molecule file has a header and a body. The header appears first.
The first line of the header is always skipped; it typically contains
@ -455,7 +456,11 @@ of SHAKE clusters.
:line
[Restrictions:] none
[Restrictions:]
This command must come after the simulation box is define by a
"read_data"_read_data.html, "read_restart"_read_restart.html, or
"create_box"_create_box.html command.
[Related commands:]

View File

@ -12,12 +12,14 @@ pair_style born/omp command :h3
pair_style born/gpu command :h3
pair_style born/coul/long command :h3
pair_style born/coul/long/cs command :h3
pair_style born/coul/long/cs/gpu command :h3
pair_style born/coul/long/gpu command :h3
pair_style born/coul/long/omp command :h3
pair_style born/coul/msm command :h3
pair_style born/coul/msm/omp command :h3
pair_style born/coul/wolf command :h3
pair_style born/coul/wolf/cs command :h3
pair_style born/coul/wolf/cs/gpu command :h3
pair_style born/coul/wolf/gpu command :h3
pair_style born/coul/wolf/omp command :h3
pair_style born/coul/dsf command :h3

View File

@ -20,6 +20,7 @@ pair_style coul/dsf/kk command :h3
pair_style coul/dsf/omp command :h3
pair_style coul/long command :h3
pair_style coul/long/cs command :h3
pair_style coul/long/cs/gpu command :h3
pair_style coul/long/omp command :h3
pair_style coul/long/gpu command :h3
pair_style coul/long/kk command :h3

View File

@ -95,9 +95,9 @@ This pair style can only be used via the {pair} keyword of the
[Restrictions:]
This pair style is part of the USER-MISC package. It is only enabled
if LAMMPS was built with that package. See
the "Making LAMMPS"_Section_start.html#start_3 section for more info.
This pair style is part of the MANYBODY package. It is only enabled if
LAMMPS was built with that package. See the "Making
LAMMPS"_Section_start.html#start_3 section for more info.
This pair style requires the "newton"_newton.html setting to be "on"
for pair interactions.
@ -117,4 +117,5 @@ appropriate units if your simulation doesn't use "metal" units.
:line
:link(Gao)
[(Gao)] Gao and Weber, Nuclear Instruments and Methods in Physics Research B 191 (2012) 504.
[(Gao)] Gao and Weber, Nuclear Instruments and Methods in Physics
Research B 191 (2012) 504.

View File

@ -23,15 +23,15 @@ pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C :pre
pair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0
pair_coeff * * rebo CH.airebo NULL NULL C
pair_coeff * * tersoff BNC.tersoff B N NULL
pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C :pre
pair_coeff * * ilp/graphene/hbn BNCH.ILP B N C
pair_coeff 1 1 coul/shield 0.70
pair_coeff 1 2 coul/shield 0.69498201415576216335
pair_coeff 2 2 coul/shield 0.69
pair_coeff 2 2 coul/shield 0.69 :pre
[Description:]
The {ilp/graphene/hbn} style computes the registry-dependent interlayer
potential (RDILP) potential as described in "(Leven)"_#Leven and
potential (ILP) potential as described in "(Leven)"_#Leven and
"(Maaravi)"_#Maaravi2. The normals are calculated in the way as described
in "(Kolmogorov)"_#Kolmogorov2.
@ -61,13 +61,13 @@ NOTE: The parameters presented in the parameter file (e.g. BNCH.ILP),
are fitted with taper function by setting the cutoff equal to 16.0
Angstrom. Using different cutoff or taper function should be careful.
NOTE: Two parameter files (BNCH.ILP and BNCH-old.ILP) are presented,
BNCH-old.ILP contains the parameters published in "(Leven)"_#Leven and
"(Maaravi)"_#Maaravi2, which is only suitable for long-range
interaction. The parameters in BNCH.ILP provides a good description both
for short- and long-range interaction. This is useful for simulations in
the high pressure (small interlayer distances) regime. The comparison of
two sets of parameters can be found in "(Ouyang)"_#Ouyang.
NOTE: Two new sets of parameters of ILP for two-dimensional hexagonal Materials
are presented in "(Ouyang)"_#Ouyang1. These parameters provide a good description
in both short- and long-range interaction regime, while the old ILP parameters
published in "(Leven)"_#Leven and "(Maaravi)"_#Maaravi2 are only suitable for
long-range interaction regime. This feature is essential for simulations in
high-pressure regime (i.e., the interlayer distance smaller than the equilibrium distance).
The benchmark tests and comparison of these parameters can be found in "(Ouyang)"_#Ouyang1.
This potential must be used in combination with hybrid/overlay.
Other interactions can be set to zero using pair_style {none}.
@ -101,12 +101,12 @@ units, if your simulation does not use {metal} units.
[Related commands:]
"pair_coeff"_pair_coeff.html
"pair_none"_pair_none.html
"pair_style hybrid/overlay"_pair_hybrid.html
"pair_style pair_kolmogorov_crespi_z"_pair_kolmogorov_crespi_z.html
"pair_style pair_kolmogorov_crespi_full"_pair_kolmogorov_crespi_full.html
"pair_style pair_coul_shield"_pair_coul_shield.html
"pair_coeff"_pair_coeff.html,
"pair_none"_pair_none.html,
"pair_style hybrid/overlay"_pair_hybrid.html,
"pair_style pair_kolmogorov_crespi_z"_pair_kolmogorov_crespi_z.html,
"pair_style pair_kolmogorov_crespi_full"_pair_kolmogorov_crespi_full.html,
"pair_style pair_coul_shield"_pair_coul_shield.html.
[Default:] tap_flag = 1
@ -121,5 +121,5 @@ units, if your simulation does not use {metal} units.
:link(Kolmogorov2)
[(Kolmogorov)] A. N. Kolmogorov, V. H. Crespi, Phys. Rev. B 71, 235415 (2005)
:link(Ouyang)
[(Ouyang)] W. Ouyang, D. Mandelli, O. Hod, M. Urbakh, In preparation.
:link(Ouyang1)
[(Ouyang)] W. Ouyang, D. Mandelli, M. Urbakh, O. Hod, arXiv:1806.09555 (2018).

View File

@ -27,7 +27,7 @@ pair_coeff * * kolmogorov/crespi/full CC.KC C C :pre
[Description:]
The {kolmogorov/crespi/full} style computes the Kolmogorov-Crespi
The {kolmogorov/crespi/full} style computes the Kolmogorov-Crespi (KC)
interaction potential as described in "(Kolmogorov)"_#Kolmogorov1.
No simplification is made,
@ -51,6 +51,15 @@ and {rcut} are included in the parameter file. {S} is designed to
facilitate scaling of energies. {rcut} is designed to build the neighbor
list for calculating the normals for each atom pair.
NOTE: A new set of parameters of KC potential for hydrocarbons (CH.KC)
is presented in "(Ouyang)"_#Ouyang2. The parameters in CH.KC provides
a good description in both short- and long-range interaction regime,
while the original parameters (CC.KC) published in "(Kolmogorov)"_#Kolmogorov1
are only suitable for long-range interaction regime.
This feature is essential for simulations in high-pressure regime
(i.e., the interlayer distance smaller than the equilibrium distance).
The benchmark tests and comparison of these parameters can be found in "(Ouyang)"_#Ouyang2.
This potential must be used in combination with hybrid/overlay.
Other interactions can be set to zero using pair_style {none}.
@ -83,11 +92,11 @@ units.
[Related commands:]
"pair_coeff"_pair_coeff.html
"pair_none"_pair_none.html
"pair_style hybrid/overlay"_pair_hybrid.html
"pair_style kolmogorov/crespi/z"_pair_kolmogorov_crespi_z.html
"pair_style ilp/graphene/hbn"_pair_ilp_graphene_hbn.html
"pair_coeff"_pair_coeff.html,
"pair_none"_pair_none.html,
"pair_style hybrid/overlay"_pair_hybrid.html,
"pair_style kolmogorov/crespi/z"_pair_kolmogorov_crespi_z.html,
"pair_style ilp/graphene/hbn"_pair_ilp_graphene_hbn.html.
[Default:] tap_flag = 0
@ -95,3 +104,6 @@ units.
:link(Kolmogorov1)
[(Kolmogorov)] A. N. Kolmogorov, V. H. Crespi, Phys. Rev. B 71, 235415 (2005)
:link(Ouyang2)
[(Ouyang)] W. Ouyang, D. Mandelli, M. Urbakh, O. Hod, arXiv:1806.09555 (2018).

View File

@ -38,7 +38,7 @@ This shift is achieved by the last term in the equation for {Vij} above.
This potential is intended for interactions between two layers of graphene.
Therefore, to avoid interaction between layers in multi-layered materials,
each layer should have a separate atom type and interactions should only
be computed between atom types of neighbouring layers.
be computed between atom types of neighboring layers.
The parameter file (e.g. CC.KC), is intended for use with metal
"units"_units.html, with energies in meV. An additional parameter, {S},

View File

@ -71,9 +71,11 @@ the temperature coefficients have to be matched to the one used in the fix.
Example input and data files for DNA duplexes can be found in examples/USER/cgdna/examples/oxDNA/ and /oxDNA2/.
A simple python setup tool which creates single straight or helical DNA strands,
DNA duplexes or arrays of DNA duplexes can be found in examples/USER/cgdna/util/.
A technical report with more information on the model, the structure of the input file,
the setup tool and the performance of the LAMMPS-implementation of oxDNA
can be found "here"_PDF/USER-CGDNA-overview.pdf.
Please cite "(Henrich)"_#Henrich1 and the relevant oxDNA articles in any publication that uses this implementation.
The article contains more information on the model, the structure of the input file, the setup tool
and the performance of the LAMMPS-implementation of oxDNA.
The preprint version of the article can be found "here"_PDF/USER-CGDNA.pdf.
:line
@ -92,6 +94,9 @@ LAMMPS"_Section_start.html#start_3 section for more info on packages.
:line
:link(Henrich1)
[(Henrich)] O. Henrich, Y. A. Gutierrez-Fosado, T. Curk, T. E. Ouldridge, Eur. Phys. J. E 41, 57 (2018).
:link(Sulc1)
[(Sulc)] P. Sulc, F. Romano, T.E. Ouldridge, L. Rovigatti, J.P.K. Doye, A.A. Louis, J. Chem. Phys. 137, 135101 (2012).

View File

@ -77,9 +77,11 @@ the temperature coefficients have to be matched to the one used in the fix.
Example input and data files for DNA duplexes can be found in examples/USER/cgdna/examples/oxDNA/ and /oxDNA2/.
A simple python setup tool which creates single straight or helical DNA strands,
DNA duplexes or arrays of DNA duplexes can be found in examples/USER/cgdna/util/.
A technical report with more information on the model, the structure of the input file,
the setup tool and the performance of the LAMMPS-implementation of oxDNA
can be found "here"_PDF/USER-CGDNA-overview.pdf.
Please cite "(Henrich)"_#Henrich and the relevant oxDNA articles in any publication that uses this implementation.
The article contains more information on the model, the structure of the input file, the setup tool
and the performance of the LAMMPS-implementation of oxDNA.
The preprint version of the article can be found "here"_PDF/USER-CGDNA.pdf.
:line
@ -98,6 +100,9 @@ LAMMPS"_Section_start.html#start_3 section for more info on packages.
:line
:link(Henrich)
[(Henrich)] O. Henrich, Y. A. Gutierrez-Fosado, T. Curk, T. E. Ouldridge, Eur. Phys. J. E 41, 57 (2018).
:link(Sulc2)
[(Sulc)] P. Sulc, F. Romano, T.E. Ouldridge, L. Rovigatti, J.P.K. Doye, A.A. Louis, J. Chem. Phys. 137, 135101 (2012).

View File

@ -47,13 +47,14 @@ the "(Aktulga)"_#Aktulga paper. The {reax/c} style was initially
implemented as a stand-alone C code and is now integrated into LAMMPS
as a package.
The {reax/c/kk} style is a Kokkos version of the ReaxFF potential that is
derived from the {reax/c} style. The Kokkos version can run on GPUs and
can also use OpenMP multithreading. For more information about the Kokkos package,
see "Section 4"_Section_packages.html#kokkos and "Section 5.3.3"_accelerate_kokkos.html.
One important consideration when using the {reax/c/kk} style is the choice of either
half or full neighbor lists. This setting can be changed using the Kokkos "package"_package.html
command.
The {reax/c/kk} style is a Kokkos version of the ReaxFF potential that
is derived from the {reax/c} style. The Kokkos version can run on GPUs
and can also use OpenMP multithreading. For more information about the
Kokkos package, see "Section 4"_Section_packages.html#kokkos and
"Section 5.3.3"_accelerate_kokkos.html. One important consideration
when using the {reax/c/kk} style is the choice of either half or full
neighbor lists. This setting can be changed using the Kokkos
"package"_package.html command.
The {reax/c} style differs from the "pair_style reax"_pair_reax.html
command in the lo-level implementation details. The {reax} style is a
@ -80,9 +81,8 @@ parameterizations for different classes of materials. You can submit
a contact request at the Materials Computation Center (MCC) website
"https://www.mri.psu.edu/materials-computation-center/connect-mcc"_https://www.mri.psu.edu/materials-computation-center/connect-mcc,
describing the material(s) you are interested in modeling with ReaxFF.
They can tell
you what is currently available or what it would take to create a
suitable ReaxFF parameterization.
They can tell you what is currently available or what it would take to
create a suitable ReaxFF parameterization.
The {cfile} setting can be specified as NULL, in which case default
settings are used. A control file can be specified which defines
@ -120,28 +120,31 @@ assign to each atom will be used for computing the electrostatic
interactions in the system.
See the "fix qeq/reax"_fix_qeq_reax.html command for details.
Using the optional keyword {lgvdw} with the value {yes} turns on
the low-gradient correction of the ReaxFF/C for long-range
London Dispersion, as described in the "(Liu)"_#Liu_2011 paper. Force field
Using the optional keyword {lgvdw} with the value {yes} turns on the
low-gradient correction of the ReaxFF/C for long-range London
Dispersion, as described in the "(Liu)"_#Liu_2011 paper. Force field
file {ffield.reax.lg} is designed for this correction, and is trained
for several energetic materials (see "Liu"). When using lg-correction,
recommended value for parameter {thb} is 0.01, which can be set in the
control file. Note: Force field files are different for the original
or lg corrected pair styles, using wrong ffield file generates an error message.
or lg corrected pair styles, using wrong ffield file generates an
error message.
Using the optional keyword {enobonds} with the value {yes}, the energy
of atoms with no bonds (i.e. isolated atoms) is included in the total
potential energy and the per-atom energy of that atom. If the value
{no} is specified then the energy of atoms with no bonds is set to zero.
The latter behavior is usual not desired, as it causes discontinuities
in the potential energy when the bonding of an atom drops to zero.
{no} is specified then the energy of atoms with no bonds is set to
zero. The latter behavior is usual not desired, as it causes
discontinuities in the potential energy when the bonding of an atom
drops to zero.
Optional keywords {safezone} and {mincap} are used for allocating
reax/c arrays. Increasing these values can avoid memory problems, such
as segmentation faults and bondchk failed errors, that could occur under
certain conditions. These keywords aren't used by the Kokkos version, which
instead uses a more robust memory allocation scheme that checks if the sizes of
the arrays have been exceeded and automatically allocates more memory.
reax/c arrays. Increasing these values can avoid memory problems,
such as segmentation faults and bondchk failed errors, that could
occur under certain conditions. These keywords aren't used by the
Kokkos version, which instead uses a more robust memory allocation
scheme that checks if the sizes of the arrays have been exceeded and
automatically allocates more memory.
The thermo variable {evdwl} stores the sum of all the ReaxFF potential
energy contributions, with the exception of the Coulombic and charge
@ -153,7 +156,8 @@ This pair style tallies a breakdown of the total ReaxFF potential
energy into sub-categories, which can be accessed via the "compute
pair"_compute_pair.html command as a vector of values of length 14.
The 14 values correspond to the following sub-categories (the variable
names in italics match those used in the original FORTRAN ReaxFF code):
names in italics match those used in the original FORTRAN ReaxFF
code):
{eb} = bond energy
{ea} = atom energy
@ -340,8 +344,8 @@ reax"_pair_reax.html
[Default:]
The keyword defaults are checkqeq = yes, enobonds = yes, lgvdw = no, safezone = 1.2,
mincap = 50.
The keyword defaults are checkqeq = yes, enobonds = yes, lgvdw = no,
safezone = 1.2, mincap = 50.
:line

66
doc/src/pair_spin_dmi.txt Normal file
View File

@ -0,0 +1,66 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
pair_style spin/dmi command :h3
[Syntax:]
pair_style spin/dmi cutoff :pre
cutoff = global cutoff pair (distance in metal units) :ulb,l
:ule
[Examples:]
pair_style spin/dmi 4.0
pair_coeff * * dmi 2.6 0.001 1.0 0.0 0.0
pair_coeff 1 2 dmi 4.0 0.00109 0.0 0.0 1.0 :pre
[Description:]
Style {spin/dmi} computes the Dzyaloshinskii-Moriya (DM) interaction
between pairs of magnetic spins:
:c,image(Eqs/pair_spin_dmi_interaction.jpg)
where si and sj are two neighboring magnetic spins of two particles,
eij = (ri - rj)/|ri-rj| is the normalized separation vector between the
two particles, and D is the DM vector defining the intensity and the
sign of the interaction.
Examples and more explanations about this interaction and its parametrization are
reported in "(Tranchida)"_#Tranchida5.
From this DM interaction, each spin i will be submitted to a magnetic torque
omega and its associated atom to a force F (for spin-lattice calculations only).
More details about the derivation of these torques/forces are reported in
"(Tranchida)"_#Tranchida5.
:line
[Restrictions:]
All the {pair/spin} styles are part of the SPIN package.
These styles are only enabled if LAMMPS was built with this package, and
if the atom_style "spin" was declared.
See the "Making LAMMPS"_Section_start.html#start_3 section for more info.
[Related commands:]
"atom_style spin"_atom_style.html, "pair_coeff"_pair_coeff.html,
"pair_eam"_pair_eam.html,
[Default:] none
:line
:link(Tranchida5)
[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson,
arXiv preprint arXiv:1801.10233, (2018).

View File

@ -0,0 +1,82 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
pair_style spin/exchange command :h3
[Syntax:]
pair_style spin/exchange cutoff :pre
cutoff = global cutoff pair (distance in metal units) :ulb,l
:ule
[Examples:]
pair_style spin/exchange 4.0
pair_coeff * * exchange 4.0 0.0446928 0.003496 1.4885
pair_coeff 1 2 exchange 6.0 -0.01575 0.0 1.965 :pre
[Description:]
Style {spin/exchange} computes the exchange interaction between
pairs of magnetic spins:
:c,image(Eqs/pair_spin_exchange_interaction.jpg)
where si and sj are two neighboring magnetic spins of two particles,
rij = ri - rj is the inter-atomic distance between the two particles,
and J(rij) is a function defining the intensity and the sign of the exchange
interaction.
This function is defined as:
:c,image(Eqs/pair_spin_exchange_function.jpg)
where a, b and d are the three constant coefficients defined in the associated
"pair_coeff" command.
The coefficients a, b, and d need to be fitted so that the function above matches with
the value of the exchange interaction for the N neighbor shells taken into account.
Examples and more explanations about this function and its parametrization are reported
in "(Tranchida)"_#Tranchida3.
From this exchange interaction, each spin i will be submitted
to a magnetic torque omega, and its associated atom can be submitted to a
force F for spin-lattice calculations (see "fix_nve_spin"_fix_nve_spin.html),
such as:
:c,image(Eqs/pair_spin_exchange_forces.jpg)
with h the Planck constant (in metal units).
More details about the derivation of these torques/forces are reported in
"(Tranchida)"_#Tranchida3.
:line
[Restrictions:]
All the {pair/spin} styles are part of the SPIN package.
These styles are only enabled if LAMMPS was built with this package, and
if the atom_style "spin" was declared.
See the "Making LAMMPS"_Section_start.html#start_3 section for more info.
[Related commands:]
"atom_style spin"_atom_style.html, "pair_coeff"_pair_coeff.html,
"pair_eam"_pair_eam.html,
[Default:] none
:line
:link(Tranchida3)
[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson,
arXiv preprint arXiv:1801.10233, (2018).

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