Compare commits
541 Commits
patch_24Ma
...
patch_6Jul
| Author | SHA1 | Date | |
|---|---|---|---|
| 4339379948 | |||
| 87af3b1fd9 | |||
| 0423971205 | |||
| 4ee7c6f5ca | |||
| 7f63c09667 | |||
| a5234d7aea | |||
| be8360ac4b | |||
| 4de9cec1b6 | |||
| 09ad293425 | |||
| e625e79171 | |||
| f1088a5003 | |||
| ea4f16bd79 | |||
| d0a397d6cb | |||
| f670dba3d0 | |||
| 6fc0a94e87 | |||
| 5c0c8bb4cd | |||
| 9eeb97b039 | |||
| 9ca9b5e2ff | |||
| db73eca29f | |||
| 2d1941ed9b | |||
| e634c5a2de | |||
| 22f3db4723 | |||
| a1574fc03d | |||
| d68fb1cbb8 | |||
| 060e32973e | |||
| a4a15f24bd | |||
| 883b7aaa0e | |||
| 1fff30af90 | |||
| a490e04d24 | |||
| b445f8eadf | |||
| b79044d4f6 | |||
| 711afe5062 | |||
| 3bf2c60276 | |||
| d5119b2d75 | |||
| b2b621a2e1 | |||
| b5250d11f6 | |||
| 9dad95d101 | |||
| f6faad335c | |||
| 5548704700 | |||
| e0939ac795 | |||
| d5921e9fb9 | |||
| aa3f4b7690 | |||
| 38075455b6 | |||
| fa30635465 | |||
| 0c2f7c74be | |||
| 91bce7ccf9 | |||
| d0470799ac | |||
| 076990c28a | |||
| 661e51b607 | |||
| d076040471 | |||
| 2f9c0a3b8e | |||
| b9d213ee2b | |||
| fa3c7727e1 | |||
| 9fec8a0470 | |||
| b889776557 | |||
| 8fca667e4b | |||
| f7077d9672 | |||
| f89a7266bf | |||
| 1257955662 | |||
| 1370385c8c | |||
| 2240c3d7d3 | |||
| 4fcbd58d5a | |||
| c2c6dc1458 | |||
| 18983c307e | |||
| 25a5d12af3 | |||
| 05fbf93455 | |||
| 73b948dcfc | |||
| 374eef2b17 | |||
| dc7243838b | |||
| 57d5cfede3 | |||
| feb500b526 | |||
| a714b57741 | |||
| c5430b0a26 | |||
| c081d383d1 | |||
| f8364342c2 | |||
| 488d1b7a79 | |||
| dadd1c8b4d | |||
| 60c3f3d64c | |||
| 7a4a569859 | |||
| 4fc3f4f7e5 | |||
| f092da80a9 | |||
| b0ddabbcde | |||
| b9029ada77 | |||
| de3157f720 | |||
| 0c6a751751 | |||
| 612b44a895 | |||
| 684b7334a5 | |||
| 1fc2eb1e3e | |||
| e69ef56f10 | |||
| 7dc380b113 | |||
| f47aaa5f3c | |||
| 5e165e6782 | |||
| 02625b2855 | |||
| 1a77135ed6 | |||
| f45c7e1fb0 | |||
| 0cfe8980d4 | |||
| 2988508cee | |||
| 15c596153a | |||
| e13c94ed4f | |||
| 812f1a8fab | |||
| 218bc92c82 | |||
| ffa906de6f | |||
| cccf72a21d | |||
| 87c028ed02 | |||
| bb47fa8783 | |||
| c79dc53c6a | |||
| 72a1364d85 | |||
| 198fe7ecd7 | |||
| 84b530cca1 | |||
| 50c9167913 | |||
| d2610d9e7c | |||
| 326a8a1289 | |||
| b5300724bb | |||
| e129f18e6f | |||
| 8c54fcd1b6 | |||
| f5047ac3c7 | |||
| 164cedf353 | |||
| 3c329d1707 | |||
| b687d16177 | |||
| 9d3e34e492 | |||
| 8988b692a3 | |||
| c97415aefa | |||
| a9f3f90025 | |||
| 9b8de3ba29 | |||
| cd88b31450 | |||
| 9b9f6d6fe2 | |||
| c1b0b1b3f9 | |||
| bc0241576f | |||
| 2a6f026853 | |||
| 8728a8ddae | |||
| 9aa450b832 | |||
| 0588c382f0 | |||
| d3c90f3c14 | |||
| b62d526cc9 | |||
| 1a29048940 | |||
| 0a6b3f8790 | |||
| 7227bc415d | |||
| a4bc233d86 | |||
| 5c5b4ffadb | |||
| 30177c4eae | |||
| 178eff237b | |||
| 576b7f1d97 | |||
| 86369fec6b | |||
| 79341ac5d1 | |||
| 66945294a9 | |||
| 9a7207e34c | |||
| d41c617d1d | |||
| 1ec9e588ff | |||
| 3c7417fb59 | |||
| 34cfc7bd51 | |||
| c98bb7fa5f | |||
| 77ca68a2b4 | |||
| 06fe703eed | |||
| 8500a197ae | |||
| 1f17e8ebbb | |||
| fcc387f232 | |||
| e7634a44f4 | |||
| 3214d639aa | |||
| 0ad66ecb89 | |||
| e139a7fd45 | |||
| d7646aeeed | |||
| 5f9341813d | |||
| 8441307185 | |||
| 720af5c360 | |||
| eeff0b8633 | |||
| 32b967ed9c | |||
| 3d066283b6 | |||
| 29e60fa53a | |||
| 11751521e7 | |||
| 7a05d87f7c | |||
| b01143102d | |||
| e530ba46f4 | |||
| 420db44596 | |||
| cfeb9b5ba5 | |||
| 0c805d0b70 | |||
| 6b289b0794 | |||
| 078f2a0a47 | |||
| bdd908c303 | |||
| b45a95107d | |||
| 9f852f5f58 | |||
| fea28d8028 | |||
| afed8bb978 | |||
| 03c93b31d6 | |||
| d3f31547f9 | |||
| 7c7468ffc2 | |||
| bab292b551 | |||
| daa77176ad | |||
| 8f18c284d3 | |||
| 06915162b0 | |||
| a849f35dcd | |||
| 4c69bbcf5c | |||
| dd44189d1f | |||
| 2f6bbcfbbc | |||
| 2686b7f830 | |||
| d3a863e7af | |||
| 64e8000720 | |||
| c160d0cd5e | |||
| 9222278fb5 | |||
| bdf03757e6 | |||
| c81bc108f9 | |||
| 10d2e7c380 | |||
| bd83c7c7f9 | |||
| d51cee1b82 | |||
| be476c9e1d | |||
| 0ecdb99885 | |||
| 00ce15d043 | |||
| 5c1d17d1c0 | |||
| afd4f5b0a6 | |||
| 31a734b03d | |||
| 2e728972e2 | |||
| 36c8b26fef | |||
| 99ef36f440 | |||
| a2edef7c9c | |||
| 1f9504c546 | |||
| 04ebd81ac5 | |||
| 5cb56796a2 | |||
| 0c1b87c8cf | |||
| cd67eaa5f4 | |||
| 18dee3f78e | |||
| 13643e185c | |||
| 06c8e95774 | |||
| d437650c77 | |||
| 46c5cbae8f | |||
| deff6c666e | |||
| 3a01836325 | |||
| 0034d2db35 | |||
| ed50bd2254 | |||
| 90ca0852c7 | |||
| 968de8548c | |||
| 95d6f05a76 | |||
| ff58ccac28 | |||
| e03cc99467 | |||
| f59ee5bd62 | |||
| af5f19604c | |||
| 3025996407 | |||
| d2b6559039 | |||
| 3c0cef9927 | |||
| 937cf0b996 | |||
| f57f1efdff | |||
| 2b3c124e61 | |||
| 85e917ae52 | |||
| 0be2cd3d43 | |||
| 066123007c | |||
| 167a51538e | |||
| 5c6f63d8b4 | |||
| 03ab8d0f48 | |||
| 75b567a457 | |||
| cace3e3530 | |||
| 286d4f2743 | |||
| 952b18fc02 | |||
| 816fa93429 | |||
| f4f975edd6 | |||
| cff4e4a837 | |||
| 32db4660bd | |||
| 22fdb1fc14 | |||
| 412cb8f089 | |||
| 092806ad4f | |||
| 4ae314731d | |||
| 4b8d2e829c | |||
| d93938f7e1 | |||
| c904cfb8bc | |||
| 32c87f3131 | |||
| ba0ddea5e1 | |||
| c0339120d2 | |||
| 5a23d2d1da | |||
| de446ace2f | |||
| 2055110e05 | |||
| 5b1e582f03 | |||
| f1ec6dc41a | |||
| c3f6e27bfe | |||
| 0a2fe70511 | |||
| 53e7fee5b7 | |||
| 5291f2ed6e | |||
| 99a68e487f | |||
| 271431ab18 | |||
| 88d4150d2b | |||
| 0e3cfbc007 | |||
| 5345ad2da7 | |||
| ead05f81c0 | |||
| 4f9e7cbd16 | |||
| bb890941ca | |||
| 4002dce639 | |||
| c801cdd81f | |||
| 9008a31190 | |||
| bdfb7c69ea | |||
| 084626e60b | |||
| a7d790a827 | |||
| 8a630ff4ec | |||
| 617ca4e0c8 | |||
| 62601678cd | |||
| 081910adbc | |||
| f73fd0625d | |||
| 06a4f47a4c | |||
| 7185db98b4 | |||
| 4780d72809 | |||
| 3fd91a239f | |||
| 8bc829c7f1 | |||
| 97d3c843c4 | |||
| 546aed7ccd | |||
| 6ef79d3715 | |||
| c2bf3269ac | |||
| aca16745e4 | |||
| a5110d81ea | |||
| 2225fce94e | |||
| 9593e05c9e | |||
| 941b737319 | |||
| 654e09e999 | |||
| 8751850eca | |||
| 0f88348917 | |||
| d4ee03c778 | |||
| 069f3e746b | |||
| b28ecd44c2 | |||
| 9db9fc9de3 | |||
| 6ac9b7a1b0 | |||
| 34dbf6b225 | |||
| 26d71b66e4 | |||
| 65eacb6b90 | |||
| cb3344a337 | |||
| 5d38cbbce9 | |||
| 30babd8157 | |||
| aa09f45b7e | |||
| 4b61cf6f52 | |||
| 683f3d9d2a | |||
| ce18524251 | |||
| 95dae9737b | |||
| 8daba01151 | |||
| 640edbc1d4 | |||
| 4b1914aa1f | |||
| bd11479a16 | |||
| 0208fe9996 | |||
| 24654ad28f | |||
| 8d46aa6056 | |||
| 09f3b687f7 | |||
| 436d3fd761 | |||
| 9833f38499 | |||
| 9725708b90 | |||
| 67962b15fc | |||
| 1d48f287f0 | |||
| 43efe9e417 | |||
| 278b9f7fba | |||
| 085f3afdfb | |||
| 45becfb235 | |||
| a34c935e20 | |||
| 13e16dc3f1 | |||
| 96f0a82aa5 | |||
| 7caf6cf459 | |||
| 8936b99e9f | |||
| d2810f9f83 | |||
| 597f95fb1b | |||
| 7f9a331c73 | |||
| 35e92733e9 | |||
| c11e87618b | |||
| ca87e57129 | |||
| 66084ad1f4 | |||
| d807ba1974 | |||
| 51fc386e72 | |||
| a6f0d700f1 | |||
| 14f3deed6b | |||
| d66a696a84 | |||
| 69ccbd1562 | |||
| d9d4ef17c8 | |||
| 93cc6f4a5d | |||
| 0a40a7af7b | |||
| eb6f6a77e5 | |||
| fb7164a811 | |||
| 64cf52d3b5 | |||
| 6a1f7e61f2 | |||
| d662f5d429 | |||
| df55a90ef6 | |||
| 6e113c1eaf | |||
| f484ab6dfb | |||
| 86283c6309 | |||
| 34cc3946b8 | |||
| 6aa0250bc5 | |||
| c5db3ff401 | |||
| 06c151421c | |||
| 0008b6fc2d | |||
| b6a70ec6fd | |||
| c4d0f07093 | |||
| 93f6033061 | |||
| 110bb79b14 | |||
| d84f8898b7 | |||
| 27a6371f9b | |||
| 7c3b8e014c | |||
| a069d21621 | |||
| d7f54464c6 | |||
| 998eb44e83 | |||
| 96d1de8575 | |||
| deff6ffaac | |||
| 328ef873d8 | |||
| 4ecf876a64 | |||
| c4ac5773cb | |||
| cac1bf83ef | |||
| abeb1e096a | |||
| 9f7ce39f9f | |||
| 29ae8d4ca3 | |||
| 3f4aee1046 | |||
| d0da0639f0 | |||
| 390ceb1475 | |||
| 6c5edf6c70 | |||
| 9cd994f57c | |||
| a6e2d5b5f7 | |||
| 08ec55743e | |||
| c4f90b3841 | |||
| f8af7edf92 | |||
| a73402ad93 | |||
| d7dbff0f54 | |||
| 42531389df | |||
| f7230006fe | |||
| 754b40cb31 | |||
| ffdc8b556d | |||
| 5accce976a | |||
| 349c1443a1 | |||
| 2f71245d82 | |||
| 51c6d50268 | |||
| 6499cfcf52 | |||
| f08e206991 | |||
| fbddfe2729 | |||
| dcc5472cba | |||
| addd87c0f7 | |||
| 480727815a | |||
| 45187a0fc7 | |||
| 7409c6d781 | |||
| 11cb0212b7 | |||
| 7f49ee8fd7 | |||
| 7adc7f02e0 | |||
| f5cf1f1314 | |||
| 50c7234f26 | |||
| f58fc9488f | |||
| 408cc19885 | |||
| c76d27373e | |||
| fb08dc09f3 | |||
| 914848433a | |||
| 8bddf105bf | |||
| 31446e35b9 | |||
| 9bdc43bb66 | |||
| a0b61d17b5 | |||
| 8cc8441367 | |||
| 7d9670bc6c | |||
| b8cb80b219 | |||
| cd435c0c58 | |||
| 548c589f82 | |||
| 5c7a631988 | |||
| af74874516 | |||
| 949d61e01e | |||
| 3e60f79f1d | |||
| 8f9cb3590a | |||
| 67fced37c8 | |||
| 0565b1df5f | |||
| d73d70fa1f | |||
| cc6104aeaf | |||
| 8910ec6e59 | |||
| ddc1e4e86e | |||
| 2e1f8b4aef | |||
| 958f05a6f3 | |||
| 0ac22e034c | |||
| 197ce4580b | |||
| 8f14511831 | |||
| 396e0b5423 | |||
| 4e411364ff | |||
| f0681f7e12 | |||
| dfa9815246 | |||
| 25e8ed63a2 | |||
| 8d390100e0 | |||
| dee3536144 | |||
| 73c210b665 | |||
| 4bad52f30c | |||
| 481927ff16 | |||
| dec36e9bfe | |||
| dd90c860ee | |||
| c9bc141335 | |||
| 3cbf4f3b58 | |||
| 6c2dd7ebb1 | |||
| d3187b22c4 | |||
| 2f32fb7f8b | |||
| e6f30ebc9c | |||
| cb867ea91d | |||
| 961096f9df | |||
| 3fa9f0a27b | |||
| 05d7bc556f | |||
| 2d8bce78a6 | |||
| 9a027a01da | |||
| 4da8c1c4e2 | |||
| 49dd9449b8 | |||
| 76fd936972 | |||
| 06cebb9fb4 | |||
| b9d844ca8d | |||
| ccc9367de7 | |||
| 4c4a3fe5d1 | |||
| 84ea8a79e6 | |||
| 3d3d1061d3 | |||
| b9177fd6dc | |||
| 8051b12ffc | |||
| f19f558220 | |||
| 1ad7d856fe | |||
| d6357420ae | |||
| 62b9fa22b8 | |||
| 1725832b6c | |||
| 874944f2ec | |||
| 497a5d88af | |||
| 8993daaa31 | |||
| e190eb15f5 | |||
| b6bc33bac6 | |||
| 03a6f5237f | |||
| 28e86917a0 | |||
| 6f1bbd3cec | |||
| ae56b9ad89 | |||
| 4466d9fb4a | |||
| ac1aa9edea | |||
| c733204a70 | |||
| 1544b51dcb | |||
| 4b9d0a9566 | |||
| 0637f23875 | |||
| 9f6e126a2f | |||
| 645f56cf70 | |||
| 80e5111dca | |||
| 7e9f05b617 | |||
| 1d8f0c762d | |||
| ef6070cbde | |||
| 61f3ff1d2b | |||
| 111d350a22 | |||
| 1dfd61f532 | |||
| 5c1f5462e7 | |||
| 66a6375405 | |||
| 604afebf6f | |||
| 8afed61db1 | |||
| ee55a98103 | |||
| f8da9a866a | |||
| 28bdebd3c0 | |||
| fc51c38abb | |||
| 443ea13eff | |||
| 5feeb79c13 | |||
| a241b2d0f7 | |||
| 61e7595a94 | |||
| da9096750e | |||
| 87ea9ba661 | |||
| c041727e4f | |||
| 3feffbe1de | |||
| 04fd038d35 | |||
| af0b5b0e84 | |||
| 7435084375 |
112
.github/CONTRIBUTING.md
vendored
Normal file
@ -0,0 +1,112 @@
|
||||
# Contributing to LAMMPS via GitHub
|
||||
|
||||
Thank your for considering to contribute to the LAMMPS software project.
|
||||
|
||||
The following is a set of guidelines as well as explanations of policies and workflows for contributing to the LAMMPS molecular dynamics software project. These guidelines focus on submitting issues or pull requests on the LAMMPS GitHub project.
|
||||
|
||||
Thus please also have a look at:
|
||||
* [The Section on submitting new features for inclusion in LAMMPS of the Manual](http://lammps.sandia.gov/doc/Section_modify.html#mod-15)
|
||||
* [The LAMMPS GitHub Tutorial in the Manual](http://lammps.sandia.gov/doc/tutorial_github.html)
|
||||
|
||||
## Table of Contents
|
||||
|
||||
[I don't want to read this whole thing, I just have a question!](#i-dont-want-to-read-this-whole-thing-i-just-have-a-question)
|
||||
|
||||
[How Can I Contribute?](#how-can-i-contribute)
|
||||
* [Discussing How To Use LAMMPS](#discussing-how-to-use-lammps)
|
||||
* [Reporting Bugs](#reporting-bugs)
|
||||
* [Suggesting Enhancements](#suggesting-enhancements)
|
||||
* [Contributing Code](#contributing-code)
|
||||
|
||||
[GitHub Workflows](#github-workflows)
|
||||
* [Issues](#issues)
|
||||
* [Pull Requests](#pull-requests)
|
||||
|
||||
__
|
||||
|
||||
## I don't want to read this whole thing I just have a question!
|
||||
|
||||
> **Note:** Please do not file an issue to ask a general question about LAMMPS, its features, how to use specific commands, or how perform simulations or analysis in LAMMPS. Instead post your question to the ['lammps-users' mailing list](http://lammps.sandia.gov/mail.html). You do not need to be subscribed to post to the list (but a mailing list subscription avoids having your post delayed until it is approved by a mailing list moderator). Most posts to the mailing list receive a response within less than 24 hours. Before posting to the mailing list, please read the [mailing list guidelines](http://lammps.sandia.gov/guidelines.html). Following those guidelines will help greatly to get a helpful response. Always mention which LAMMPS version you are using.
|
||||
|
||||
## How Can I Contribute?
|
||||
|
||||
There are several ways how you can actively contribute to the LAMMPS project: you can discuss compiling and using LAMMPS, and solving LAMMPS related problems with other LAMMPS users on the lammps-users mailing list, you can report bugs or suggest enhancements by creating issues on GitHub (or posting them to the lammps-users mailing list), and you can contribute by submitting pull requests on GitHub or e-mail your code
|
||||
to one of the [LAMMPS core developers](http://lammps.sandia.gov/authors.html). As you may see from the aforementioned developer page, the LAMMPS software package includes the efforts of a very large number of contributors beyond the principal authors and maintainers.
|
||||
|
||||
### Discussing How To Use LAMMPS
|
||||
|
||||
The LAMMPS mailing list is hosted at SourceForge. The mailing list began in 2005, and now includes tens of thousands of messages in thousands of threads. LAMMPS developers try to respond to posted questions in a timely manner, but there are no guarantees. Please consider that people live in different timezone and may not have time to answer e-mails outside of their work hours.
|
||||
You can post to list by sending your email to lammps-users at lists.sourceforge.net (no subscription required), but before posting, please read the [mailing list guidelines](http://lammps.sandia.gov/guidelines.html) to maximize your chances to receive a helpful response.
|
||||
|
||||
Anyone can browse/search previous questions/answers in the archives. You do not have to subscribe to the list to post questions, receive answers (to your questions), or browse/search the archives. You **do** need to subscribe to the list if you want emails for **all** the posts (as individual messages or in digest form), or to answer questions yourself. Feel free to sign up and help us out! Answering questions from fellow LAMMPS users is a great way to pay back the community for providing you a useful tool for free, and to pass on the advice you have received yourself to others. It improves your karma and helps you understand your own research better.
|
||||
|
||||
If you post a message and you are a subscriber, your message will appear immediately. If you are not a subscriber, your message will be moderated, which typically takes one business day. Either way, when someone replies the reply will usually be sent to both, your personal email address and the mailing list. When replying to people, that responded to your post to the list, please always included the mailing list in your replies (i.e. use "Reply All" and **not** "Reply"). Responses will appear on the list in a few minutes, but it can take a few hours for postings and replies to show up in the SourceForge archive. Sending replies also to the mailing list is important, so that responses are archived and people with a similar issue can search for possible solutions in the mailing list archive.
|
||||
|
||||
### Reporting Bugs
|
||||
|
||||
While developers writing code for LAMMPS are careful to test their code, LAMMPS is such a large and complex software, that it is impossible to test for all combinations of features under all normal and not so normal circumstances. Thus bugs do happen, and if you suspect, that you have encountered one, please try to document it and report it as an [Issue](https://github.com/lammps/lammps/issues) on the LAMMPS GitHub project web page. However, before reporting a bug, you need to check whether this is something that may have already been corrected. The [Latest Features and Bug Fixes in LAMMPS](http://lammps.sandia.gov/bug.html) web page lists all significant changes to LAMMPS over the years. It also tells you what the current latest development version of LAMMPS is, and you should test whether your issue still applies to that version.
|
||||
|
||||
When you click on the green "New Issue" button, you will be provided with a text field, where you can enter your message. That text field with contain a template with several headlines and some descriptions. Keep the headlines that are relevant to your reported potential bug and replace the descriptions with the information as suggested by the descriptions.
|
||||
You can also attach small text files (please add the file name extension `.txt` or it will be rejected), images, or small compressed text files (using gzip, do not use RAR or 7-ZIP or similar tools that are uncommon outside of Windows machines). In many cases, bugs are best illustrated by providing a small input deck (do **not** attach your entire production input, but remove everything that is not required to reproduce the issue, and scale down your system size, that the resulting calculation runs fast and can be run on small desktop quickly).
|
||||
|
||||
To be able to submit an issue on GitHub, you have to register for an account (for GitHub in general). If you do not want to do that, or have other reservations against submitting an issue there, you can - as an alternative and in decreasing preference - either send an e-mail to the lammps-users mailing list, the original authors of the feature that you suspect to be affected, or one or more of the core LAMMPS developers.
|
||||
|
||||
### Suggesting Enhancements
|
||||
|
||||
The LAMMPS developers welcome suggestions for enhancements or new features. These should be submitted using the [GitHub Issue Tracker](https://github.com/lammps/lammps/issues) of the LAMMPS project. This is particularly recommended, when you plan to implement the feature or enhancement yourself, as this allows to coordinate in case there are other similar or conflicting ongoing developments.
|
||||
The LAMMPS developers will review your submission and consider implementing it. Whether this will actually happen depends on many factors: how difficult it would be, how much effort it would take, how many users would benefit from it, how well the individual developer would understand the underlying physics of the feature, and whether this is a feature that would fit into a software like LAMMPS, or would be better implemented as a separate tool. Because of these factors, it matters how well the suggested enhancement is formulated and the overall benefit is argued convincingly.
|
||||
|
||||
To be able to submit an issue on GitHub, you have to register for an account (for GitHub in general). If you do not want to do that, or have other reservations against submitting an issue there, you can - as an alternative - send an e-mail to the lammps-users mailing list.
|
||||
|
||||
### Contributing Code
|
||||
|
||||
We encourage users to submit new features or modifications for LAMMPS to the core developers so they can be added to the LAMMPS distribution. The preferred way to manage and coordinate this is by submitting a pull request at the LAMMPS project on GitHub. For any larger modifications or programming project, you are encouraged to contact the LAMMPS developers ahead of time, in order to discuss implementation strategies and coding guidelines, that will make it easier to integrate your contribution and result in less work for everybody involved. You are also encouraged to search through the list of open issues on GitHub and submit a new issue for a planned feature, so you would not duplicate the work of others (and possibly get scooped by them) or have your work duplicated by others.
|
||||
|
||||
How quickly your contribution will be integrated depends largely on how much effort it will cause to integrate and test it, how much it requires changes to the core code base, and of how much interest it is to the larger LAMMPS community. Please see below for a checklist of typical requirements. Once you have prepared everything, see [this tutorial](http://lammps.sandia.gov/doc/tutorial_github.html)
|
||||
for instructions on how to submit your changes or new files through a GitHub pull request
|
||||
|
||||
Here is a checklist of steps you need to follow to submit a single file or user package for our consideration. Following these steps will save both you and us time. See existing files in packages in the source directory for examples. If you are uncertain, please ask on the lammps-users mailing list.
|
||||
|
||||
* All source files you provide must compile with the most current version of LAMMPS with multiple configurations. In particular you need to test compiling LAMMPS from scratch with `-DLAMMPS_BIGBIG` set in addition to the default `-DLAMMPS_SMALLBIG` setting. Your code will need to work correctly in serial and in parallel using MPI.
|
||||
* For consistency with the rest of LAMMPS and especially, if you want your contribution(s) to be added to main LAMMPS code or one of its standard packages, it needs to be written in a style compatible with other LAMMPS source files. This means: 2-character indentation per level, no tabs, no lines over 80 characters. I/O is done via the C-style stdio library, class header files should not import any system headers outside <stdio.h>, STL containers should be avoided in headers, and forward declarations used where possible or needed. All added code should be placed into the LAMMPS_NS namespace or a sub-namespace; global or static variables should be avoided, as they conflict with the modular nature of LAMMPS and the C++ class structure. Header files must not import namespaces with using. This all is so the developers can more easily understand, integrate, and maintain your contribution and reduce conflicts with other parts of LAMMPS. This basically means that the code accesses data structures, performs its operations, and is formatted similar to other LAMMPS source files, including the use of the error class for error and warning messages.
|
||||
* If you want your contribution to be added as a user-contributed feature, and it is a single file (actually a `<name>.cpp` and `<name>.h` file) it can be rapidly added to the USER-MISC directory. Include the one-line entry to add to the USER-MISC/README file in that directory, along with the 2 source files. You can do this multiple times if you wish to contribute several individual features.
|
||||
* If you want your contribution to be added as a user-contribution and it is several related features, it is probably best to make it a user package directory with a name like USER-FOO. In addition to your new files, the directory should contain a README text file. The README should contain your name and contact information and a brief description of what your new package does. If your files depend on other LAMMPS style files also being installed (e.g. because your file is a derived class from the other LAMMPS class), then an Install.sh file is also needed to check for those dependencies. See other README and Install.sh files in other USER directories as examples. Send us a tarball of this USER-FOO directory.
|
||||
* Your new source files need to have the LAMMPS copyright, GPL notice, and your name and email address at the top, like other user-contributed LAMMPS source files. They need to create a class that is inside the LAMMPS namespace. If the file is for one of the USER packages, including USER-MISC, then we are not as picky about the coding style (see above). I.e. the files do not need to be in the same stylistic format and syntax as other LAMMPS files, though that would be nice for developers as well as users who try to read your code.
|
||||
* You **must** also create or extend a documentation file for each new command or style you are adding to LAMMPS. For simplicity and convenience, the documentation of groups of closely related commands or styles may be combined into a single file. This will be one file for a single-file feature. For a package, it might be several files. These are simple text files with a specific markup language, that are then auto-converted to HTML and PDF. The tools for this conversion are included in the source distribution, and the translation can be as simple as doing "make html pdf" in the doc folder. Thus the documentation source files must be in the same format and style as other `<name>.txt` files in the lammps/doc/src directory for similar commands and styles; use one or more of them as a starting point. A description of the markup can also be found in `lammps/doc/utils/txt2html/README.html` As appropriate, the text files can include links to equations (see doc/Eqs/*.tex for examples, we auto-create the associated JPG files), or figures (see doc/JPG for examples), or even additional PDF files with further details (see doc/PDF for examples). The doc page should also include literature citations as appropriate; see the bottom of doc/fix_nh.txt for examples and the earlier part of the same file for how to format the cite itself. The "Restrictions" section of the doc page should indicate that your command is only available if LAMMPS is built with the appropriate USER-MISC or USER-FOO package. See other user package doc files for examples of how to do this. The prerequisite for building the HTML format files are Python 3.x and virtualenv, the requirement for generating the PDF format manual is the htmldoc software. Please run at least "make html" and carefully inspect and proofread the resulting HTML format doc page before submitting your code.
|
||||
* For a new package (or even a single command) you should include one or more example scripts demonstrating its use. These should run in no more than a couple minutes, even on a single processor, and not require large data files as input. See directories under examples/USER for examples of input scripts other users provided for their packages. These example inputs are also required for validating memory accesses and testing for memory leaks with valgrind
|
||||
* If there is a paper of yours describing your feature (either the algorithm/science behind the feature itself, or its initial usage, or its implementation in LAMMPS), you can add the citation to the *.cpp source file. See src/USER-EFF/atom_vec_electron.cpp for an example. A LaTeX citation is stored in a variable at the top of the file and a single line of code that references the variable is added to the constructor of the class. Whenever a user invokes your feature from their input script, this will cause LAMMPS to output the citation to a log.cite file and prompt the user to examine the file. Note that you should only use this for a paper you or your group authored. E.g. adding a cite in the code for a paper by Nose and Hoover if you write a fix that implements their integrator is not the intended usage. That kind of citation should just be in the doc page you provide.
|
||||
|
||||
Finally, as a general rule-of-thumb, the more clear and self-explanatory you make your documentation and README files, and the easier you make it for people to get started, e.g. by providing example scripts, the more likely it is that users will try out your new feature.
|
||||
|
||||
If the new features/files are broadly useful we may add them as core files to LAMMPS or as part of a standard package. Else we will add them as a user-contributed file or package. Examples of user packages are in src sub-directories that start with USER. The USER-MISC package is simply a collection of (mostly) unrelated single files, which is the simplest way to have your contribution quickly added to the LAMMPS distribution. You can see a list of the both standard and user packages by typing "make package" in the LAMMPS src directory.
|
||||
|
||||
Note that by providing us files to release, you are agreeing to make them open-source, i.e. we can release them under the terms of the GPL, used as a license for the rest of LAMMPS. See Section 1.4 for details.
|
||||
|
||||
With user packages and files, all we are really providing (aside from the fame and fortune that accompanies having your name in the source code and on the Authors page of the LAMMPS WWW site), is a means for you to distribute your work to the LAMMPS user community, and a mechanism for others to easily try out your new feature. This may help you find bugs or make contact with new collaborators. Note that you are also implicitly agreeing to support your code which means answer questions, fix bugs, and maintain it if LAMMPS changes in some way that breaks it (an unusual event).
|
||||
|
||||
To be able to submit an issue on GitHub, you have to register for an account (for GitHub in general). If you do not want to do that, or have other reservations or difficulties to submit a pull request, you can - as an alternative - contact one or more of the core LAMMPS developers and ask if one of them would be interested in manually merging your code into LAMMPS and send them your source code. Since the effort to merge a pull request is a small fraction of the effort of integrating source code manually (which would usually be done by converting the contribution into a pull request), your chances to have your new code included quickly are the best with a pull request.
|
||||
|
||||
If you prefer to submit patches or full files, you should first make certain, that your code works correctly with the latest patch-level version of LAMMPS and contains all bug fixes from it. Then create a gzipped tar file of all changed or added files or a corresponding patch file using 'diff -u' or 'diff -c' and compress it with gzip. Please only use gzip compression, as this works well on all platforms.
|
||||
|
||||
## GitHub Workflows
|
||||
|
||||
This section briefly summarizes the steps that will happen **after** you have submitted either an issue or a pull request on the LAMMPS GitHub project page.
|
||||
|
||||
### Issues
|
||||
|
||||
After submitting an issue, one or more of the LAMMPS developers will review it and categorize it by assigning labels. Confirmed bug reports will be labeled `bug`; if the bug report also contains a suggestion for how to fix it, it will be labeled `bugfix`; if the issue is a feature request, it will be labeled `enhancement`. Other labels may be attached as well, depending on which parts of the LAMMPS code are affected. If the assessment is, that the issue does not warrant any changes, the `wontfix` label will be applied and if the submission is incorrect or something that should not be submitted as an issue, the `invalid` label will be applied. In both of the last two cases, the issue will then be closed without further action.
|
||||
|
||||
For feature requests, what happens next is that developers may comment on the viability or relevance of the request, discuss and make suggestions for how to implement it. If a LAMMPS developer or user is planning to implement the feature, the issue will be assigned to that developer. For developers, that are not yet listed as LAMMPS project collaborators, they will receive an invitation to be added to the LAMMPS project as a collaborator so they can get assigned. If the requested feature or enhancement is implemented, it will usually be submitted as a pull request, which will contain a reference to the issue number. And once the pull request is reviewed and accepted for inclusion into LAMMPS, the issue will be closed. For details on how pull requests are processed, please see below.
|
||||
|
||||
For bug reports, the next step is that one of the core LAMMPS developers will self-assign to the issue and try to confirm the bug. If confirmed, the `bug` label and potentially other labels are added to classify the issue and its impact to LAMMPS. Before confirming, further questions may be asked or requests for providing additional input files or details about the steps required to reproduce the issue. Any bugfix is likely to be submitted as a pull request (more about that below) and since most bugs require only local changes, the bugfix may be included in a pull request specifically set up to collect such local bugfixes or small enhancements. Once the bugfix is included in the master branch, the issue will be closed.
|
||||
|
||||
### Pull Requests
|
||||
|
||||
For submitting pull requests, there is a [detailed tutorial](http://lammps.sandia.gov/doc/tutorial_github.html) in the LAMMPS manual. Thus only a brief breakdown of the steps is presented here.
|
||||
Immediately after the submission, the LAMMPS continuing integration server at ci.lammps.org will download your submitted branch and perform a simple compilation test, i.e. will test whether your submitted code can be compiled under various conditions. It will also do a check on whether your included documentation translates cleanly. Whether these tests are successful or fail will be recorded. If a test fails, please inspect the corresponding output on the CI server and take the necessary steps, if needed, so that the code can compile cleanly again. The test will be re-run each the pull request is updated with a push to the remote branch on GitHub.
|
||||
Next a LAMMPS core developer will self-assign and do an overall technical assessment of the submission. If you are not yet registered as a LAMMPS collaborator, you will receive an invitation for that.
|
||||
You may also receive comments and suggestions on the overall submission or specific details. If permitted, additional changes may be pushed into your pull request branch or a pull request may be filed in your LAMMPS fork on GitHub to include those changes.
|
||||
The LAMMPS developer may then decide to assign the pull request to another developer (e.g. when that developer is more knowledgeable about the submitted feature or enhancement or has written the modified code). It may also happen, that additional developers are requested to provide a review and approve the changes. For submissions, that may change the general behavior of LAMMPS, or where a possibility of unwanted side effects exists, additional tests may be requested by the assigned developer.
|
||||
If the assigned developer is satisfied and considers the submission ready for inclusion into LAMMPS, the pull request will be assigned to the LAMMPS lead developer, Steve Plimpton (@sjplimp), who will then have the final decision on whether the submission will be included, additional changes are required or it will be ultimately rejected. After the pull request is merged, you may delete the pull request branch in your personal LAMMPS fork.
|
||||
Since the learning curve for git is quite steep for efficiently managing remote repositories, local and remote branches, pull requests and more, do not hesitate to ask questions, if you are not sure about how to do certain steps that are asked of you. Even if the changes asked of you do not make sense to you, they may be important for the LAMMPS developers. Please also note, that these all are guidelines and not set in stone.
|
||||
|
||||
31
.github/ISSUE_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
## Summary
|
||||
|
||||
_Please provide a brief description of the issue_
|
||||
|
||||
## Type of Issue
|
||||
|
||||
_Is this a 'Bug Report' or a 'Suggestion for an Enhancement'?_
|
||||
|
||||
## Detailed Description (Enhancement Suggestion)
|
||||
|
||||
_Explain how you would like to see LAMMPS enhanced, what feature(s) you are looking for, provide references to relevant background information, and whether you are willing to implement the enhancement yourself or would like to participate in the implementation_
|
||||
|
||||
## LAMMPS Version (Bug Report)
|
||||
|
||||
_Please specify which LAMMPS version this issue was detected with. If this is not the latest development version, please stop and test that version, too, and report it here if the bug persists_
|
||||
|
||||
## Expected Behavior (Bug Report)
|
||||
|
||||
_Describe the expected behavior. Quote from the LAMMPS manual where needed or explain why the expected behavior is meaningful, especially when it differs from the manual_
|
||||
|
||||
## Actual Behavior (Bug Report)
|
||||
|
||||
_Describe the actual behavior, how it differs from the expected behavior, and how this can be observed. Try to be specific and do **not* use vague terms like "doesn't work" or "wrong result". Do not assume that the person reading this has any experience with or knowledge of your specific research._
|
||||
|
||||
## Steps to Reproduce (Bug Report)
|
||||
|
||||
_Describe the steps required to quickly reproduce the issue. You can attach (small) files to the section below or add URLs where to download an archive with all necessary files. Please try to create input that are as small as possible and run as fast as possible. NOTE: the less effort and time it takes to reproduce your issue, the more likely, that somebody will look into it._
|
||||
|
||||
## Further Information, Files, and Links
|
||||
|
||||
_Put any additional information here, attach relevant text or image files and URLs to external sites, e.g. relevant publications_
|
||||
29
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
## Purpose
|
||||
|
||||
_Briefly describe the new feature(s), enhancement(s), or bugfix(es) included in this pull request. If this addresses an open GitHub Issue, mention the issue number, e.g. with `fixes #221` or `closes #135`, so that issue will be automatically closed when the pull request is merged_
|
||||
|
||||
## Author(s)
|
||||
|
||||
_Please state name and affiliation of the author or authors that should be credited with the changes in this pull request_
|
||||
|
||||
## Backward Compatibility
|
||||
|
||||
_Please state whether any changes in the pull request break backward compatibility for inputs, and - if yes - explain what has been changed and why_
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
_Provide any relevant details about how the changes are implemented, how correctness was verified, how other features - if any - in LAMMPS are affected_
|
||||
|
||||
## Post Submission Checklist
|
||||
|
||||
_Please check the fields below as they are completed_
|
||||
- [ ] The feature or features in this pull request is complete
|
||||
- [ ] Suitable new documentation files and/or updates to the existing docs are included
|
||||
- [ ] One or more example input decks are included
|
||||
- [ ] The source code follows the LAMMPS formatting guidelines
|
||||
|
||||
## Further Information, Files, and Links
|
||||
|
||||
_Put any additional information here, attach relevant text or image files, and URLs to external sites (e.g. DOIs or webpages)_
|
||||
|
||||
|
||||
@ -100,6 +100,7 @@ epub: $(OBJECTS)
|
||||
|
||||
pdf: utils/txt2html/txt2html.exe
|
||||
@(\
|
||||
set -e; \
|
||||
cd src; \
|
||||
../utils/txt2html/txt2html.exe -b *.txt; \
|
||||
htmldoc --batch lammps.book; \
|
||||
@ -158,7 +159,7 @@ $(VENV):
|
||||
@( \
|
||||
virtualenv -p $(PYTHON) $(VENV); \
|
||||
. $(VENV)/bin/activate; \
|
||||
pip install Sphinx; \
|
||||
pip install Sphinx==1.5.6; \
|
||||
pip install sphinxcontrib-images; \
|
||||
deactivate;\
|
||||
)
|
||||
|
||||
BIN
doc/src/Eqs/cnp_cutoff.jpg
Normal file
|
After Width: | Height: | Size: 13 KiB |
14
doc/src/Eqs/cnp_cutoff.tex
Normal file
@ -0,0 +1,14 @@
|
||||
\documentclass[12pt,article]{article}
|
||||
|
||||
\usepackage{indentfirst}
|
||||
\usepackage{amsmath}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{eqnarray*}
|
||||
r_{c}^{fcc} & = & \frac{1}{2} \left(\frac{\sqrt{2}}{2} + 1\right) \mathrm{a} \simeq 0.8536 \:\mathrm{a} \\
|
||||
r_{c}^{bcc} & = & \frac{1}{2}(\sqrt{2} + 1) \mathrm{a} \simeq 1.207 \:\mathrm{a} \\
|
||||
r_{c}^{hcp} & = & \frac{1}{2}\left(1+\sqrt{\frac{4+2x^{2}}{3}}\right) \mathrm{a}
|
||||
\end{eqnarray*}
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/cnp_cutoff2.jpg
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
12
doc/src/Eqs/cnp_cutoff2.tex
Normal file
@ -0,0 +1,12 @@
|
||||
\documentclass[12pt,article]{article}
|
||||
|
||||
\usepackage{indentfirst}
|
||||
\usepackage{amsmath}
|
||||
|
||||
\begin{document}
|
||||
|
||||
$$
|
||||
Rc + Rs > 2*{\rm cutoff}
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/cnp_eq.jpg
Normal file
|
After Width: | Height: | Size: 23 KiB |
9
doc/src/Eqs/cnp_eq.tex
Normal file
@ -0,0 +1,9 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
|
||||
$$
|
||||
Q_{i} = \frac{1}{n_i}\sum_{j = 1}^{n_i} | \sum_{k = 1}^{n_{ij}} \vec{R}_{ik} + \vec{R}_{jk} |^2
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/fix_gcmc1.jpg
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
9
doc/src/Eqs/fix_gcmc1.tex
Normal file
@ -0,0 +1,9 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{eqnarray*}
|
||||
\mu &=&\mu^{id} + \mu^{ex}
|
||||
\end{eqnarray*}
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/fix_gcmc2.jpg
Normal file
|
After Width: | Height: | Size: 10 KiB |
10
doc/src/Eqs/fix_gcmc2.tex
Normal file
@ -0,0 +1,10 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{eqnarray*}
|
||||
\mu^{id} &=& k T \ln{\rho \Lambda^3} \\
|
||||
&=& k T \ln{\frac{\phi P \Lambda^3}{k T}}
|
||||
\end{eqnarray*}
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/fix_gcmc3.jpg
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
9
doc/src/Eqs/fix_gcmc3.tex
Normal file
@ -0,0 +1,9 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{eqnarray*}
|
||||
\Lambda &=& \sqrt{ \frac{h^2}{2 \pi m k T}}
|
||||
\end{eqnarray*}
|
||||
|
||||
\end{document}
|
||||
|
Before Width: | Height: | Size: 15 KiB |
@ -1,11 +0,0 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{eqnarray*}
|
||||
F & = & F_{\mathrm{LJ}}(r) - F_{\mathrm{LJ}}(r_{\mathrm{c}}) \qquad r < r_{\mathrm{c}} \\
|
||||
E & = & E_{\mathrm{LJ}}(r) - E_{\mathrm{LJ}}(r_{\mathrm{c}}) + (r - r_{\mathrm{c}}) F_{\mathrm{LJ}}(r_{\mathrm{c}}) \qquad r < r_{\mathrm{c}} \\
|
||||
\mathrm{with} \qquad E_{\mathrm{LJ}}(r) & = & 4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^6 \right] \qquad \mathrm{and} \qquad F_{\mathrm{LJ}}(r) = - E^\prime_{\mathrm{LJ}}(r)
|
||||
\end{eqnarray*}
|
||||
|
||||
\end{document}
|
||||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 21 KiB |
@ -1,13 +1,14 @@
|
||||
\documentclass[12pt]{article}
|
||||
\usepackage{amsmath}
|
||||
|
||||
\begin{document}
|
||||
|
||||
$$
|
||||
E=\sum_{ij}\phi(r_{ij})+\sum_{i}U(\rho_{i}),
|
||||
E=\sum_{i<j}\phi(r_{ij})+\sum_{i}U(n_{i}),
|
||||
$$
|
||||
|
||||
$$
|
||||
\rho_{i}=\sum_{j}\rho(r_{ij})+\sum_{jk}f(r_{ij})f(r_{ik})g[\cos(\theta_{jik})]
|
||||
n_{i}=\sum_{j}\rho(r_{ij})+\sum_{\substack{j<k,\\j,k\neq i}}f(r_{ij})f(r_{ik})g[\cos(\theta_{jik})]
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
|
||||
BIN
doc/src/Eqs/pair_meam_spline_multicomponent.jpg
Normal file
|
After Width: | Height: | Size: 22 KiB |
14
doc/src/Eqs/pair_meam_spline_multicomponent.tex
Normal file
@ -0,0 +1,14 @@
|
||||
\documentclass[12pt]{article}
|
||||
\usepackage{amsmath}
|
||||
|
||||
\begin{document}
|
||||
|
||||
$$
|
||||
E=\sum_{i<j}\phi_{ij}(r_{ij})+\sum_{i}U_i(n_{i}),
|
||||
$$
|
||||
|
||||
$$
|
||||
n_{i}=\sum_{j\ne i}\rho_j(r_{ij})+\sum_{\substack{j<k,\\j,k\neq i}}f_{j}(r_{ij})f_{k}(r_{ik})g_{jk}[\cos(\theta_{jik})]
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
@ -1,7 +1,7 @@
|
||||
<!-- HTML_ONLY -->
|
||||
<HEAD>
|
||||
<TITLE>LAMMPS Users Manual</TITLE>
|
||||
<META NAME="docnumber" CONTENT="24 Mar 2017 version">
|
||||
<META NAME="docnumber" CONTENT="6 Jul 2017 version">
|
||||
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
|
||||
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
|
||||
</HEAD>
|
||||
@ -21,7 +21,7 @@
|
||||
<H1></H1>
|
||||
|
||||
LAMMPS Documentation :c,h3
|
||||
24 Mar 2017 version :c,h4
|
||||
6 Jul 2017 version :c,h4
|
||||
|
||||
Version info: :h4
|
||||
|
||||
@ -158,12 +158,11 @@ END_RST -->
|
||||
2.1 "What's in the LAMMPS distribution"_start_1 :ulb,b
|
||||
2.2 "Making LAMMPS"_start_2 :b
|
||||
2.3 "Making LAMMPS with optional packages"_start_3 :b
|
||||
2.4 "Building LAMMPS via the Make.py script"_start_4 :b
|
||||
2.5 "Building LAMMPS as a library"_start_5 :b
|
||||
2.6 "Running LAMMPS"_start_6 :b
|
||||
2.7 "Command-line options"_start_7 :b
|
||||
2.8 "Screen output"_start_8 :b
|
||||
2.9 "Tips for users of previous versions"_start_9 :ule,b
|
||||
2.4 "Building LAMMPS as a library"_start_4 :b
|
||||
2.5 "Running LAMMPS"_start_5 :b
|
||||
2.6 "Command-line options"_start_6 :b
|
||||
2.7 "Screen output"_start_7 :b
|
||||
2.8 "Tips for users of previous versions"_start_8 :ule,b
|
||||
"Commands"_Section_commands.html :l
|
||||
3.1 "LAMMPS input script"_cmd_1 :ulb,b
|
||||
3.2 "Parsing rules"_cmd_2 :b
|
||||
|
||||
@ -527,9 +527,9 @@ These are additional commands in USER packages, which can be used if
|
||||
"LAMMPS is built with the appropriate
|
||||
package"_Section_start.html#start_3.
|
||||
|
||||
"dump custom/vtk"_dump_custom_vtk.html,
|
||||
"dump nc"_dump_nc.html,
|
||||
"dump nc/mpiio"_dump_nc.html,
|
||||
"dump netcdf"_dump_netcdf.html,
|
||||
"dump netcdf/mpiio"_dump_netcdf.html,
|
||||
"dump vtk"_dump_vtk.html,
|
||||
"group2ndx"_group2ndx.html,
|
||||
"ndx2group"_group2ndx.html,
|
||||
"temper/grem"_temper_grem.html :tb(c=3,ea=c)
|
||||
@ -618,6 +618,7 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.
|
||||
"press/berendsen"_fix_press_berendsen.html,
|
||||
"print"_fix_print.html,
|
||||
"property/atom"_fix_property_atom.html,
|
||||
"python"_fix_python.html,
|
||||
"qeq/comb (o)"_fix_qeq_comb.html,
|
||||
"qeq/dynamic"_fix_qeq.html,
|
||||
"qeq/fire"_fix_qeq.html,
|
||||
@ -716,7 +717,7 @@ package"_Section_start.html#start_3.
|
||||
"phonon"_fix_phonon.html,
|
||||
"pimd"_fix_pimd.html,
|
||||
"qbmsst"_fix_qbmsst.html,
|
||||
"qeq/reax"_fix_qeq_reax.html,
|
||||
"qeq/reax (ko)"_fix_qeq_reax.html,
|
||||
"qmmm"_fix_qmmm.html,
|
||||
"qtb"_fix_qtb.html,
|
||||
"reax/c/bonds"_fix_reax_bonds.html,
|
||||
@ -830,6 +831,7 @@ package"_Section_start.html#start_3.
|
||||
|
||||
"ackland/atom"_compute_ackland_atom.html,
|
||||
"basal/atom"_compute_basal_atom.html,
|
||||
"cnp/atom"_compute_cnp_atom.html,
|
||||
"dpd"_compute_dpd.html,
|
||||
"dpd/atom"_compute_dpd_atom.html,
|
||||
"fep"_compute_fep.html,
|
||||
@ -931,6 +933,8 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"gran/hertz/history (o)"_pair_gran.html,
|
||||
"gran/hooke (o)"_pair_gran.html,
|
||||
"gran/hooke/history (o)"_pair_gran.html,
|
||||
"gw"_pair_gw.html,
|
||||
"gw/zbl"_pair_gw.html,
|
||||
"hbond/dreiding/lj (o)"_pair_hbond_dreiding.html,
|
||||
"hbond/dreiding/morse (o)"_pair_hbond_dreiding.html,
|
||||
"kim"_pair_kim.html,
|
||||
@ -960,7 +964,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"lj/expand (gko)"_pair_lj_expand.html,
|
||||
"lj/gromacs (gko)"_pair_gromacs.html,
|
||||
"lj/gromacs/coul/gromacs (ko)"_pair_gromacs.html,
|
||||
"lj/long/coul/long (o)"_pair_lj_long.html,
|
||||
"lj/long/coul/long (io)"_pair_lj_long.html,
|
||||
"lj/long/dipole/long"_pair_dipole.html,
|
||||
"lj/long/tip4p/long"_pair_lj_long.html,
|
||||
"lj/smooth (o)"_pair_lj_smooth.html,
|
||||
@ -982,6 +986,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"peri/pmb (o)"_pair_peri.html,
|
||||
"peri/ves"_pair_peri.html,
|
||||
"polymorphic"_pair_polymorphic.html,
|
||||
"python"_pair_python.html,
|
||||
"reax"_pair_reax.html,
|
||||
"rebo (o)"_pair_airebo.html,
|
||||
"resquared (go)"_pair_resquared.html,
|
||||
@ -1016,6 +1021,7 @@ package"_Section_start.html#start_3.
|
||||
"dpd/fdt/energy"_pair_dpd_fdt.html,
|
||||
"eam/cd (o)"_pair_eam.html,
|
||||
"edip (o)"_pair_edip.html,
|
||||
"edip/multi"_pair_edip.html,
|
||||
"eff/cut"_pair_eff.html,
|
||||
"exp6/rx"_pair_exp6_rx.html,
|
||||
"gauss/cut"_pair_gauss.html,
|
||||
@ -1033,7 +1039,7 @@ package"_Section_start.html#start_3.
|
||||
"lj/sdk (gko)"_pair_sdk.html,
|
||||
"lj/sdk/coul/long (go)"_pair_sdk.html,
|
||||
"lj/sdk/coul/msm (o)"_pair_sdk.html,
|
||||
"lj/sf (o)"_pair_lj_sf.html,
|
||||
"meam/c"_pair_meam.html,
|
||||
"meam/spline (o)"_pair_meam_spline.html,
|
||||
"meam/sw/spline"_pair_meam_sw_spline.html,
|
||||
"mgpt"_pair_mgpt.html,
|
||||
@ -1047,8 +1053,12 @@ package"_Section_start.html#start_3.
|
||||
"oxdna/hbond"_pair_oxdna.html,
|
||||
"oxdna/stk"_pair_oxdna.html,
|
||||
"oxdna/xstk"_pair_oxdna.html,
|
||||
"oxdna2/coaxstk"_pair_oxdna2.html,
|
||||
"oxdna2/dh"_pair_oxdna2.html,
|
||||
"oxdna2/excv"_pair_oxdna2.html,
|
||||
"oxdna2/stk"_pair_oxdna2.html,
|
||||
"quip"_pair_quip.html,
|
||||
"reax/c (k)"_pair_reax_c.html,
|
||||
"reax/c (ko)"_pair_reaxc.html,
|
||||
"smd/hertz"_pair_smd_hertz.html,
|
||||
"smd/tlsph"_pair_smd_tlsph.html,
|
||||
"smd/triangulated/surface"_pair_smd_triangulated_surface.html,
|
||||
@ -1064,7 +1074,7 @@ package"_Section_start.html#start_3.
|
||||
"table/rx"_pair_table_rx.html,
|
||||
"tersoff/table (o)"_pair_tersoff.html,
|
||||
"thole"_pair_thole.html,
|
||||
"tip4p/long/soft (o)"_pair_lj_soft.html :tb(c=4,ea=c)
|
||||
"tip4p/long/soft (o)"_pair_lj_soft.html :tb(c=4,ea=c)
|
||||
|
||||
:line
|
||||
|
||||
@ -1096,7 +1106,8 @@ package"_Section_start.html#start_3.
|
||||
|
||||
"harmonic/shift (o)"_bond_harmonic_shift.html,
|
||||
"harmonic/shift/cut (o)"_bond_harmonic_shift_cut.html,
|
||||
"oxdna/fene"_bond_oxdna.html :tb(c=4,ea=c)
|
||||
"oxdna/fene"_bond_oxdna.html,
|
||||
"oxdna2/fene"_bond_oxdna.html :tb(c=4,ea=c)
|
||||
|
||||
:line
|
||||
|
||||
@ -1150,7 +1161,7 @@ USER-OMP, t = OPT.
|
||||
"zero"_dihedral_zero.html,
|
||||
"hybrid"_dihedral_hybrid.html,
|
||||
"charmm (ko)"_dihedral_charmm.html,
|
||||
"charmmfsh"_dihedral_charmm.html,
|
||||
"charmmfsw"_dihedral_charmm.html,
|
||||
"class2 (ko)"_dihedral_class2.html,
|
||||
"harmonic (io)"_dihedral_harmonic.html,
|
||||
"helix (o)"_dihedral_helix.html,
|
||||
@ -1215,7 +1226,7 @@ USER-OMP, t = OPT.
|
||||
"msm/cg (o)"_kspace_style.html,
|
||||
"pppm (go)"_kspace_style.html,
|
||||
"pppm/cg (o)"_kspace_style.html,
|
||||
"pppm/disp"_kspace_style.html,
|
||||
"pppm/disp (i)"_kspace_style.html,
|
||||
"pppm/disp/tip4p"_kspace_style.html,
|
||||
"pppm/stagger"_kspace_style.html,
|
||||
"pppm/tip4p (o)"_kspace_style.html :tb(c=4,ea=c)
|
||||
|
||||
@ -4696,9 +4696,9 @@ Self-explanatory. :dd
|
||||
|
||||
{Fix bond/create induced too many angles/dihedrals/impropers per atom} :dt
|
||||
|
||||
See the read_data command for info on setting the "extra angle per
|
||||
atom", etc header values to allow for additional angles, etc to be
|
||||
formed. :dd
|
||||
See the read_data command for info on using the "extra/angle/per/atom",
|
||||
(or dihedral, improper) keywords to allow for additional
|
||||
angles, dihedrals, and impropers to be formed. :dd
|
||||
|
||||
{Fix bond/create needs ghost atoms from further away} :dt
|
||||
|
||||
@ -7876,18 +7876,20 @@ See the setting for tagint in the src/lmptype.h file. :dd
|
||||
|
||||
{New bond exceeded bonds per atom in create_bonds} :dt
|
||||
|
||||
See the read_data command for info on setting the "extra bond per
|
||||
atom" header value to allow for additional bonds to be formed. :dd
|
||||
See the read_data command for info on using the "extra/bond/per/atom"
|
||||
keyword to allow for additional bonds to be formed
|
||||
|
||||
{New bond exceeded bonds per atom in fix bond/create} :dt
|
||||
|
||||
See the read_data command for info on setting the "extra bond per
|
||||
atom" header value to allow for additional bonds to be formed. :dd
|
||||
See the read_data command for info on using the "extra/bond/per/atom"
|
||||
keyword to allow for additional bonds to be formed :dd
|
||||
|
||||
{New bond exceeded special list size in fix bond/create} :dt
|
||||
|
||||
See the special_bonds extra command for info on how to leave space in
|
||||
the special bonds list to allow for additional bonds to be formed. :dd
|
||||
See the "special_bonds extra" command
|
||||
(or the "read_data extra/special/per/atom" command)
|
||||
for info on how to leave space in the special bonds
|
||||
list to allow for additional bonds to be formed. :dd
|
||||
|
||||
{Newton bond change after simulation box is defined} :dt
|
||||
|
||||
@ -8890,6 +8892,14 @@ This is a requirement to use this potential. :dd
|
||||
|
||||
See the newton command. This is a restriction to use this potential. :dd
|
||||
|
||||
{Pair style vashishta/gpu requires atom IDs} :dt
|
||||
|
||||
This is a requirement to use this potential. :dd
|
||||
|
||||
{Pair style vashishta/gpu requires newton pair off} :dt
|
||||
|
||||
See the newton command. This is a restriction to use this potential. :dd
|
||||
|
||||
{Pair style tersoff/gpu requires atom IDs} :dt
|
||||
|
||||
This is a requirement to use the tersoff/gpu potential. :dd
|
||||
@ -9656,9 +9666,10 @@ you are running. :dd
|
||||
|
||||
{Special list size exceeded in fix bond/create} :dt
|
||||
|
||||
See the read_data command for info on setting the "extra special per
|
||||
atom" header value to allow for additional special values to be
|
||||
stored. :dd
|
||||
See the special_bonds extra command
|
||||
(or the read_data extra/special/per/atom command)
|
||||
for info on how to leave space in the special bonds
|
||||
list to allow for additional bonds to be formed. :dd
|
||||
|
||||
{Specified processors != physical processors} :dt
|
||||
|
||||
@ -9675,23 +9686,23 @@ Self-explanatory. :dd
|
||||
|
||||
{Subsequent read data induced too many angles per atom} :dt
|
||||
|
||||
See the create_box extra/angle/per/atom or read_data "extra angle per
|
||||
atom" header value to set this limit larger. :dd
|
||||
See the extra/angle/per/atom keyword for the create_box
|
||||
or the read_data command to set this limit larger :dd
|
||||
|
||||
{Subsequent read data induced too many bonds per atom} :dt
|
||||
|
||||
See the create_box extra/bond/per/atom or read_data "extra bond per
|
||||
atom" header value to set this limit larger. :dd
|
||||
See the extra/bond/per/atom keyword for the create_box
|
||||
or the read_data command to set this limit larger :dd
|
||||
|
||||
{Subsequent read data induced too many dihedrals per atom} :dt
|
||||
|
||||
See the create_box extra/dihedral/per/atom or read_data "extra
|
||||
dihedral per atom" header value to set this limit larger. :dd
|
||||
See the extra/dihedral/per/atom keyword for the create_box
|
||||
or the read_data command to set this limit larger :dd
|
||||
|
||||
{Subsequent read data induced too many impropers per atom} :dt
|
||||
|
||||
See the create_box extra/improper/per/atom or read_data "extra
|
||||
improper per atom" header value to set this limit larger. :dd
|
||||
See the extra/improper/per/atom keyword for the create_box
|
||||
or the read_data command to set this limit larger :dd
|
||||
|
||||
{Substitution for illegal variable} :dt
|
||||
|
||||
@ -11171,6 +11182,12 @@ Self-explanatory. :dd
|
||||
If the fix changes the timestep, the dump dcd file will not
|
||||
reflect the change. :dd
|
||||
|
||||
{Energy due to X extra global DOFs will be included in minimizer energies} :dt
|
||||
|
||||
When using fixes like box/relax, the potential energy used by the minimizer
|
||||
is augmented by an additional energy provided by the fix. Thus the printed
|
||||
converged energy may be different from the total potential energy. :dd
|
||||
|
||||
{Energy tally does not account for 'zero yes'} :dt
|
||||
|
||||
The energy removed by using the 'zero yes' flag is not accounted
|
||||
|
||||
@ -215,7 +215,7 @@ documentation for the formula it computes.
|
||||
"special_bonds"_special_bonds.html charmm
|
||||
"special_bonds"_special_bonds.html amber :ul
|
||||
|
||||
NOTE: For CHARMM, the newer {charmmfsw} or {charmmfsh} styles were
|
||||
NOTE: For CHARMM, newer {charmmfsw} or {charmmfsh} styles were
|
||||
released in March 2017. We recommend they be used instead of the
|
||||
older {charmm} styles. See discussion of the differences on the "pair
|
||||
charmm"_pair_charmm.html and "dihedral charmm"_dihedral_charmm.html
|
||||
@ -759,23 +759,14 @@ LAMMPS itself does not do visualization, but snapshots from LAMMPS
|
||||
simulations can be visualized (and analyzed) in a variety of ways.
|
||||
|
||||
LAMMPS snapshots are created by the "dump"_dump.html command which can
|
||||
create files in several formats. The native LAMMPS dump format is a
|
||||
create files in several formats. The native LAMMPS dump format is a
|
||||
text file (see "dump atom" or "dump custom") which can be visualized
|
||||
by the "xmovie"_Section_tools.html#xmovie program, included with the
|
||||
LAMMPS package. This produces simple, fast 2d projections of 3d
|
||||
systems, and can be useful for rapid debugging of simulation geometry
|
||||
and atom trajectories.
|
||||
|
||||
by several popular visualization tools. The "dump image"_dump_image.html
|
||||
and "dump movie"_dump_image.html styles can output internally rendered
|
||||
images and convert a sequence of them to a movie during the MD run.
|
||||
Several programs included with LAMMPS as auxiliary tools can convert
|
||||
native LAMMPS dump files to other formats. See the
|
||||
"Section 9"_Section_tools.html doc page for details. The first is
|
||||
the "ch2lmp tool"_Section_tools.html#charmm, which contains a
|
||||
lammps2pdb Perl script which converts LAMMPS dump files into PDB
|
||||
files. The second is the "lmp2arc tool"_Section_tools.html#arc which
|
||||
converts LAMMPS dump files into Accelrys' Insight MD program files.
|
||||
The third is the "lmp2cfg tool"_Section_tools.html#cfg which converts
|
||||
LAMMPS dump files into CFG files which can be read into the
|
||||
"AtomEye"_atomeye visualizer.
|
||||
between LAMMPS format files and other formats.
|
||||
See the "Section 9"_Section_tools.html doc page for details.
|
||||
|
||||
A Python-based toolkit distributed by our group can read native LAMMPS
|
||||
dump files, including custom dump files with additional columns of
|
||||
@ -788,22 +779,7 @@ RasMol visualization programs. Pizza.py has tools that do interactive
|
||||
3d OpenGL visualization and one that creates SVG images of dump file
|
||||
snapshots.
|
||||
|
||||
LAMMPS can create XYZ files directly (via "dump xyz") which is a
|
||||
simple text-based file format used by many visualization programs
|
||||
including "VMD"_vmd.
|
||||
|
||||
LAMMPS can create DCD files directly (via "dump dcd") which can be
|
||||
read by "VMD"_vmd in conjunction with a CHARMM PSF file. Using this
|
||||
form of output avoids the need to convert LAMMPS snapshots to PDB
|
||||
files. See the "dump"_dump.html command for more information on DCD
|
||||
files.
|
||||
|
||||
LAMMPS can create XTC files directly (via "dump xtc") which is GROMACS
|
||||
file format which can also be read by "VMD"_vmd for visualization.
|
||||
See the "dump"_dump.html command for more information on XTC files.
|
||||
|
||||
:link(pizza,http://www.sandia.gov/~sjplimp/pizza.html)
|
||||
:link(vmd,http://www.ks.uiuc.edu/Research/vmd)
|
||||
:link(ensight,http://www.ensight.com)
|
||||
:link(atomeye,http://mt.seas.upenn.edu/Archive/Graphics/A)
|
||||
|
||||
@ -1710,7 +1686,7 @@ nph) and Berendsen:
|
||||
The "fix npt"_fix_nh.html commands include a Nose-Hoover thermostat
|
||||
and barostat. "Fix nph"_fix_nh.html is just a Nose/Hoover barostat;
|
||||
it does no thermostatting. Both "fix nph"_fix_nh.html and "fix
|
||||
press/bernendsen"_fix_press_berendsen.html can be used in conjunction
|
||||
press/berendsen"_fix_press_berendsen.html can be used in conjunction
|
||||
with any of the thermostatting fixes.
|
||||
|
||||
As with the thermostats, "fix npt"_fix_nh.html and "fix
|
||||
@ -1962,7 +1938,7 @@ documentation in the src/library.cpp file for details, including
|
||||
which quantities can be queried by name:
|
||||
|
||||
void *lammps_extract_global(void *, char *)
|
||||
void lammps_extract_box(void *, double *, double *,
|
||||
void lammps_extract_box(void *, double *, double *,
|
||||
double *, double *, double *, int *, int *)
|
||||
void *lammps_extract_atom(void *, char *)
|
||||
void *lammps_extract_compute(void *, char *, int, int)
|
||||
@ -2013,6 +1989,11 @@ Both methods are thus a means to extract or assign (overwrite) any
|
||||
peratom quantities within LAMMPS. See the extract() method in the
|
||||
src/atom.cpp file for a list of valid per-atom properties. New names
|
||||
could easily be added if the property you want is not listed.
|
||||
A special treatment is applied for accessing image flags via the
|
||||
"image" property. Image flags are stored in a packed format with all
|
||||
three image flags stored in a single integer. When signaling to access
|
||||
the image flags as 3 individual values per atom instead of 1, the data
|
||||
is transparently packed or unpacked by the library interface.
|
||||
|
||||
The lammps_create_atoms() function takes a list of N atoms as input
|
||||
with atom types and coords (required), an optionally atom IDs and
|
||||
@ -2701,14 +2682,14 @@ bond_coeff 2 25.724 0.0 :pre
|
||||
|
||||
When running dynamics with the adiabatic core/shell model, the
|
||||
following issues should be considered. The relative motion of
|
||||
the core and shell particles corresponds to the polarization,
|
||||
hereby an instantaneous relaxation of the shells is approximated
|
||||
the core and shell particles corresponds to the polarization,
|
||||
hereby an instantaneous relaxation of the shells is approximated
|
||||
and a fast core/shell spring frequency ensures a nearly constant
|
||||
internal kinetic energy during the simulation.
|
||||
internal kinetic energy during the simulation.
|
||||
Thermostats can alter this polarization behaviour, by scaling the
|
||||
internal kinetic energy, meaning the shell will not react freely to
|
||||
its electrostatic environment.
|
||||
Therefore it is typically desirable to decouple the relative motion of
|
||||
internal kinetic energy, meaning the shell will not react freely to
|
||||
its electrostatic environment.
|
||||
Therefore it is typically desirable to decouple the relative motion of
|
||||
the core/shell pair, which is an imaginary degree of freedom, from the
|
||||
real physical system. To do that, the "compute
|
||||
temp/cs"_compute_temp_cs.html command can be used, in conjunction with
|
||||
@ -2740,13 +2721,13 @@ fix thermostatequ all nve # integrator as needed f
|
||||
fix_modify thermoberendsen temp CSequ
|
||||
thermo_modify temp CSequ # output of center-of-mass derived temperature :pre
|
||||
|
||||
The pressure for the core/shell system is computed via the regular
|
||||
LAMMPS convention by "treating the cores and shells as individual
|
||||
particles"_#MitchellFincham2. For the thermo output of the pressure
|
||||
as well as for the application of a barostat, it is necessary to
|
||||
use an additional "pressure"_compute_pressure compute based on the
|
||||
default "temperature"_compute_temp and specifying it as a second
|
||||
argument in "fix modify"_fix_modify.html and
|
||||
The pressure for the core/shell system is computed via the regular
|
||||
LAMMPS convention by "treating the cores and shells as individual
|
||||
particles"_#MitchellFincham2. For the thermo output of the pressure
|
||||
as well as for the application of a barostat, it is necessary to
|
||||
use an additional "pressure"_compute_pressure compute based on the
|
||||
default "temperature"_compute_temp and specifying it as a second
|
||||
argument in "fix modify"_fix_modify.html and
|
||||
"thermo_modify"_thermo_modify.html resulting in:
|
||||
|
||||
(...)
|
||||
@ -2776,18 +2757,18 @@ temp/cs"_compute_temp_cs.html command to the {temp} keyword of the
|
||||
velocity all create 1427 134 bias yes temp CSequ
|
||||
velocity all scale 1427 temp CSequ :pre
|
||||
|
||||
To maintain the correct polarizability of the core/shell pairs, the
|
||||
kinetic energy of the internal motion shall remain nearly constant.
|
||||
Therefore the choice of spring force and mass ratio need to ensure
|
||||
much faster relative motion of the 2 atoms within the core/shell pair
|
||||
than their center-of-mass velocity. This allows the shells to
|
||||
effectively react instantaneously to the electrostatic environment and
|
||||
To maintain the correct polarizability of the core/shell pairs, the
|
||||
kinetic energy of the internal motion shall remain nearly constant.
|
||||
Therefore the choice of spring force and mass ratio need to ensure
|
||||
much faster relative motion of the 2 atoms within the core/shell pair
|
||||
than their center-of-mass velocity. This allows the shells to
|
||||
effectively react instantaneously to the electrostatic environment and
|
||||
limits energy transfer to or from the core/shell oscillators.
|
||||
This fast movement also dictates the timestep that can be used.
|
||||
|
||||
The primary literature of the adiabatic core/shell model suggests that
|
||||
the fast relative motion of the core/shell pairs only allows negligible
|
||||
energy transfer to the environment.
|
||||
energy transfer to the environment.
|
||||
The mentioned energy transfer will typically lead to a small drift
|
||||
in total energy over time. This internal energy can be monitored
|
||||
using the "compute chunk/atom"_compute_chunk_atom.html and "compute
|
||||
@ -2809,7 +2790,7 @@ pairs as chunks.
|
||||
|
||||
For example if core/shell pairs are the only molecules:
|
||||
|
||||
read_data NaCl_CS_x0.1_prop.data
|
||||
read_data NaCl_CS_x0.1_prop.data
|
||||
compute prop all property/atom molecule
|
||||
compute cs_chunk all chunk/atom c_prop
|
||||
compute cstherm all temp/chunk cs_chunk temp internal com yes cdof 3.0 # note the chosen degrees of freedom for the core/shell pairs
|
||||
|
||||
@ -249,8 +249,12 @@ Pizza.py WWW site"_pizza. :l
|
||||
|
||||
Specialized features :h5
|
||||
|
||||
These are LAMMPS capabilities which you may not think of as typical
|
||||
molecular dynamics options:
|
||||
LAMMPS can be built with optional packages which implement a variety
|
||||
of additional capabilities. An overview of all the packages is "given
|
||||
here"_Section_packages.html.
|
||||
|
||||
These are some LAMMPS capabilities which you may not think of as
|
||||
typical classical molecular dynamics options:
|
||||
|
||||
"static"_balance.html and "dynamic load-balancing"_fix_balance.html
|
||||
"generalized aspherical particles"_body.html
|
||||
@ -338,15 +342,13 @@ dynamics timestepping, particularly if the computations are not
|
||||
parallel, so it is often better to leave such analysis to
|
||||
post-processing codes.
|
||||
|
||||
A very simple (yet fast) visualizer is provided with the LAMMPS
|
||||
package - see the "xmovie"_Section_tools.html#xmovie tool in "this
|
||||
section"_Section_tools.html. It creates xyz projection views of
|
||||
atomic coordinates and animates them. We find it very useful for
|
||||
debugging purposes. For high-quality visualization we recommend the
|
||||
For high-quality visualization we recommend the
|
||||
following packages:
|
||||
|
||||
"VMD"_http://www.ks.uiuc.edu/Research/vmd
|
||||
"AtomEye"_http://mt.seas.upenn.edu/Archive/Graphics/A
|
||||
"OVITO"_http://www.ovito.org/
|
||||
"ParaView"_http://www.paraview.org/
|
||||
"PyMol"_http://www.pymol.org
|
||||
"Raster3d"_http://www.bmsc.washington.edu/raster3d/raster3d.html
|
||||
"RasMol"_http://www.openrasmol.org :ul
|
||||
@ -517,7 +519,7 @@ the packages they have written are somewhat unique to LAMMPS and the
|
||||
code would not be as general-purpose as it is without their expertise
|
||||
and efforts.
|
||||
|
||||
Axel Kohlmeyer (Temple U), akohlmey at gmail.com, SVN and Git repositories, indefatigable mail list responder, USER-CG-CMM and USER-OMP packages
|
||||
Axel Kohlmeyer (Temple U), akohlmey at gmail.com, SVN and Git repositories, indefatigable mail list responder, USER-CGSDK and USER-OMP packages
|
||||
Roy Pollock (LLNL), Ewald and PPPM solvers
|
||||
Mike Brown (ORNL), brownw at ornl.gov, GPU package
|
||||
Greg Wagner (Sandia), gjwagne at sandia.gov, MEAM package for MEAM potential
|
||||
|
||||
@ -118,18 +118,21 @@ check which version of Python you have installed, by simply typing
|
||||
|
||||
11.2 Overview of using Python from a LAMMPS script :link(py_2),h4
|
||||
|
||||
NOTE: It is not currently possible to use the "python"_python.html
|
||||
command described in this section with Python 3, only with Python 2.
|
||||
The C API changed from Python 2 to 3 and the LAMMPS code is not
|
||||
compatible with both.
|
||||
LAMMPS has several commands which can be used to invoke Python
|
||||
code directly from an input script:
|
||||
|
||||
LAMMPS has a "python"_python.html command which can be used in an
|
||||
input script to define and execute a Python function that you write
|
||||
the code for. The Python function can also be assigned to a LAMMPS
|
||||
python-style variable via the "variable"_variable.html command. Each
|
||||
time the variable is evaluated, either in the LAMMPS input script
|
||||
itself, or by another LAMMPS command that uses the variable, this will
|
||||
trigger the Python function to be invoked.
|
||||
"python"_python.html
|
||||
"variable python"_variable.html
|
||||
"fix python"_fix_python.html
|
||||
"pair_style python"_pair_python.html :ul
|
||||
|
||||
The "python"_python.html command which can be used to define and
|
||||
execute a Python function that you write the code for. The Python
|
||||
function can also be assigned to a LAMMPS python-style variable via
|
||||
the "variable"_variable.html command. Each time the variable is
|
||||
evaluated, either in the LAMMPS input script itself, or by another
|
||||
LAMMPS command that uses the variable, this will trigger the Python
|
||||
function to be invoked.
|
||||
|
||||
The Python code for the function can be included directly in the input
|
||||
script or in an auxiliary file. The function can have arguments which
|
||||
@ -162,8 +165,16 @@ doc page for its python-style variables for more info, including
|
||||
examples of Python code you can write for both pure Python operations
|
||||
and callbacks to LAMMPS.
|
||||
|
||||
To run pure Python code from LAMMPS, you only need to build LAMMPS
|
||||
with the PYTHON package installed:
|
||||
The "fix python"_fix_python.html command can execute
|
||||
Python code at selected timesteps during a simulation run.
|
||||
|
||||
The "pair_style python"_pair_python command allows you to define
|
||||
pairwise potentials as python code which encodes a single pairwise
|
||||
interaction. This is useful for rapid-developement and debugging of a
|
||||
new potential.
|
||||
|
||||
To use any of these commands, you only need to build LAMMPS with the
|
||||
PYTHON package installed:
|
||||
|
||||
make yes-python
|
||||
make machine :pre
|
||||
@ -698,7 +709,12 @@ method in the src/atom.cpp file for a list of valid names. Again, new
|
||||
names could easily be added if the property you want is missing. The
|
||||
vector can be used via normal Python subscripting. If atom IDs are
|
||||
not consecutively ordered within LAMMPS, a None is returned as
|
||||
indication of an error.
|
||||
indication of an error. A special treatment is applied for image flags
|
||||
stored in the "image" property. All three image flags are stored in
|
||||
a packed format in a single integer, so count would be 1 to retrieve
|
||||
that integer, however also a count value of 3 can be used and then
|
||||
the image flags will be unpacked into 3 individual integers, ordered
|
||||
in a similar fashion as coordinates.
|
||||
|
||||
Note that the data structure gather_atoms("x") returns is different
|
||||
from the data structure returned by extract_atom("x") in four ways.
|
||||
@ -727,6 +743,10 @@ corresponding properties for each atom inside LAMMPS. This requires
|
||||
LAMMPS to have its "map" option enabled; see the
|
||||
"atom_modify"_atom_modify.html command for details. If it is not, or
|
||||
if atom IDs are not consecutively ordered, no coordinates are reset.
|
||||
Similar as for gather_atoms() a special treatment is applied for image
|
||||
flags, which can be provided in packed (count = 1) or unpacked (count = 3)
|
||||
format and in the latter case, they will be packed before applied to
|
||||
atoms.
|
||||
|
||||
The array of coordinates passed to scatter_atoms() must be a ctypes
|
||||
vector of ints or doubles, allocated and initialized something like
|
||||
|
||||
@ -14,12 +14,11 @@ experienced users.
|
||||
2.1 "What's in the LAMMPS distribution"_#start_1
|
||||
2.2 "Making LAMMPS"_#start_2
|
||||
2.3 "Making LAMMPS with optional packages"_#start_3
|
||||
2.4 "Building LAMMPS via the Make.py script"_#start_4
|
||||
2.5 "Building LAMMPS as a library"_#start_5
|
||||
2.6 "Running LAMMPS"_#start_6
|
||||
2.7 "Command-line options"_#start_7
|
||||
2.8 "Screen output"_#start_8
|
||||
2.9 "Tips for users of previous versions"_#start_9 :all(b)
|
||||
2.5 "Building LAMMPS as a library"_#start_4
|
||||
2.6 "Running LAMMPS"_#start_5
|
||||
2.7 "Command-line options"_#start_6
|
||||
2.8 "Screen output"_#start_7
|
||||
2.9 "Tips for users of previous versions"_#start_8 :all(b)
|
||||
|
||||
:line
|
||||
|
||||
@ -80,7 +79,7 @@ This section has the following sub-sections:
|
||||
|
||||
Read this first :h5,link(start_2_1)
|
||||
|
||||
If you want to avoid building LAMMPS yourself, read the preceding
|
||||
If you want to avoid building LAMMPS yourself, read the preceeding
|
||||
section about options available for downloading and installing
|
||||
executables. Details are discussed on the "download"_download page.
|
||||
|
||||
@ -96,7 +95,7 @@ make serial :pre
|
||||
Note that on a facility supercomputer, there are often "modules"
|
||||
loaded in your environment that provide the compilers and MPI you
|
||||
should use. In this case, the "mpicxx" compile/link command in
|
||||
Makefile.mpi should just work by accessing those modules.
|
||||
Makefile.mpi should simply work by accessing those modules.
|
||||
|
||||
It may be the case that one of the other Makefile.machine files in the
|
||||
src/MAKE sub-directories is a better match to your system (type "make"
|
||||
@ -107,33 +106,35 @@ make stampede :pre
|
||||
If any of these builds (with an existing Makefile.machine) works on
|
||||
your system, then you're done!
|
||||
|
||||
If you need to install an optional package with a LAMMPS command you
|
||||
want to use, and the package does not depend on an extra library, you
|
||||
can simply type
|
||||
|
||||
make name :pre
|
||||
|
||||
before invoking (or re-invoking) the above steps. "Name" is the
|
||||
lower-case name of the package, e.g. replica or user-misc.
|
||||
|
||||
If you want to do one of the following:
|
||||
|
||||
use optional LAMMPS features that require additional libraries
|
||||
use optional packages that require additional libraries
|
||||
use optional accelerator packages that require special compiler/linker settings
|
||||
run on a specialized platform that has its own compilers, settings, or other libs to use :ul
|
||||
use a LAMMPS command that requires an extra library (e.g. "dump image"_dump_image.html)
|
||||
build with a package that requires an extra library
|
||||
build with an accelerator package that requires special compiler/linker settings
|
||||
run on a machine that has its own compilers, settings, or libraries :ul
|
||||
|
||||
then building LAMMPS is more complicated. You may need to find where
|
||||
auxiliary libraries exist on your machine or install them if they
|
||||
don't. You may need to build additional libraries that are part of
|
||||
the LAMMPS package, before building LAMMPS. You may need to edit a
|
||||
extra libraries exist on your machine or install them if they don't.
|
||||
You may need to build extra libraries that are included in the LAMMPS
|
||||
distribution, before building LAMMPS itself. You may need to edit a
|
||||
Makefile.machine file to make it compatible with your system.
|
||||
|
||||
Note that there is a Make.py tool in the src directory that automates
|
||||
several of these steps, but you still have to know what you are doing.
|
||||
"Section 2.4"_#start_4 below describes the tool. It is a convenient
|
||||
way to work with installing/un-installing various packages, the
|
||||
Makefile.machine changes required by some packages, and the auxiliary
|
||||
libraries some of them use.
|
||||
|
||||
Please read the following sections carefully. If you are not
|
||||
comfortable with makefiles, or building codes on a Unix platform, or
|
||||
running an MPI job on your machine, please find a local expert to help
|
||||
you. Many compilation, linking, and run problems that users have are
|
||||
often not really LAMMPS issues - they are peculiar to the user's
|
||||
system, compilers, libraries, etc. Such questions are better answered
|
||||
by a local expert.
|
||||
you. Many compilation, linking, and run problems users experience are
|
||||
often not LAMMPS issues - they are peculiar to the user's system,
|
||||
compilers, libraries, etc. Such questions are better answered by a
|
||||
local expert.
|
||||
|
||||
If you have a build problem that you are convinced is a LAMMPS issue
|
||||
(e.g. the compiler complains about a line of LAMMPS source code), then
|
||||
@ -251,7 +252,7 @@ re-compile, after typing "make clean" (which will describe different
|
||||
clean options).
|
||||
|
||||
The LMP_INC variable is used to include options that turn on ifdefs
|
||||
within the LAMMPS code. The options that are currently recognized are:
|
||||
within the LAMMPS code. The options that are currently recogized are:
|
||||
|
||||
-DLAMMPS_GZIP
|
||||
-DLAMMPS_JPEG
|
||||
@ -362,7 +363,7 @@ installed on your platform. If MPI is installed on your system in the
|
||||
usual place (under /usr/local), you also may not need to specify these
|
||||
3 variables, assuming /usr/local is in your path. On some large
|
||||
parallel machines which use "modules" for their compile/link
|
||||
environments, you may simply need to include the correct module in
|
||||
environements, you may simply need to include the correct module in
|
||||
your build environment, before building LAMMPS. Or the parallel
|
||||
machine may have a vendor-provided MPI which the compiler has no
|
||||
trouble finding.
|
||||
@ -430,7 +431,7 @@ use the KISS library described above.
|
||||
You may also need to set the FFT_INC, FFT_PATH, and FFT_LIB variables,
|
||||
so the compiler and linker can find the needed FFT header and library
|
||||
files. Note that on some large parallel machines which use "modules"
|
||||
for their compile/link environments, you may simply need to include
|
||||
for their compile/link environements, you may simply need to include
|
||||
the correct module in your build environment. Or the parallel machine
|
||||
may have a vendor-provided FFT library which the compiler has no
|
||||
trouble finding.
|
||||
@ -450,7 +451,7 @@ you must also manually specify the correct library, namely -lsfftw or
|
||||
|
||||
The FFT_INC variable also allows for a -DFFT_SINGLE setting that will
|
||||
use single-precision FFTs with PPPM, which can speed-up long-range
|
||||
calculations, particularly in parallel or on GPUs. Fourier transform
|
||||
calulations, particularly in parallel or on GPUs. Fourier transform
|
||||
and related PPPM operations are somewhat insensitive to floating point
|
||||
truncation errors and thus do not always need to be performed in
|
||||
double precision. Using the -DFFT_SINGLE setting trades off a little
|
||||
@ -508,13 +509,13 @@ You should get the executable lmp_foo when the build is complete.
|
||||
|
||||
Errors that can occur when making LAMMPS: h5 :link(start_2_3)
|
||||
|
||||
NOTE: If an error occurs when building LAMMPS, the compiler or linker
|
||||
will state very explicitly what the problem is. The error message
|
||||
should give you a hint as to which of the steps above has failed, and
|
||||
what you need to do in order to fix it. Building a code with a
|
||||
Makefile is a very logical process. The compiler and linker need to
|
||||
find the appropriate files and those files need to be compatible with
|
||||
LAMMPS source files. When a make fails, there is usually a very
|
||||
If an error occurs when building LAMMPS, the compiler or linker will
|
||||
state very explicitly what the problem is. The error message should
|
||||
give you a hint as to which of the steps above has failed, and what
|
||||
you need to do in order to fix it. Building a code with a Makefile is
|
||||
a very logical process. The compiler and linker need to find the
|
||||
appropriate files and those files need to be compatible with LAMMPS
|
||||
settings and source files. When a make fails, there is usually a very
|
||||
simple reason, which you or a local expert will need to fix.
|
||||
|
||||
Here are two non-obvious errors that can occur:
|
||||
@ -557,7 +558,8 @@ Typing "make clean-all" or "make clean-machine" will delete *.o object
|
||||
files created when LAMMPS is built, for either all builds or for a
|
||||
particular machine.
|
||||
|
||||
Changing the LAMMPS size limits via -DLAMMPS_SMALLBIG or -DLAMMPS_BIGBIG or -DLAMMPS_SMALLSMALL :h6
|
||||
Changing the LAMMPS size limits via -DLAMMPS_SMALLBIG or
|
||||
-DLAMMPS_BIGBIG or -DLAMMPS_SMALLSMALL :h6
|
||||
|
||||
As explained above, any of these 3 settings can be specified on the
|
||||
LMP_INC line in your low-level src/MAKE/Makefile.foo.
|
||||
@ -653,13 +655,7 @@ This section has the following sub-sections:
|
||||
|
||||
2.3.1 "Package basics"_#start_3_1
|
||||
2.3.2 "Including/excluding packages"_#start_3_2
|
||||
2.3.3 "Packages that require extra libraries"_#start_3_3
|
||||
2.3.4 "Packages that require Makefile.machine settings"_#start_3_4 :all(b)
|
||||
|
||||
Note that the following "Section 2.4"_#start_4 describes the Make.py
|
||||
tool which can be used to install/un-install packages and build the
|
||||
auxiliary libraries which some of them use. It can also auto-edit a
|
||||
Makefile.machine to add settings needed by some packages.
|
||||
2.3.3 "Packages that require extra libraries"_#start_3_3 :all(b)
|
||||
|
||||
:line
|
||||
|
||||
@ -670,235 +666,221 @@ are always included, plus optional packages. Packages are groups of
|
||||
files that enable a specific set of features. For example, force
|
||||
fields for molecular systems or granular systems are in packages.
|
||||
|
||||
"Section 4"_Section_packages.html in the manual has details
|
||||
about all the packages, including specific instructions for building
|
||||
LAMMPS with each package, which are covered in a more general manner
|
||||
"Section 4"_Section_packages.html in the manual has details about all
|
||||
the packages, which come in two flavors: [standard] and [user]
|
||||
packages. It also has specific instructions for building LAMMPS with
|
||||
any package which requires an extra library. General instructions are
|
||||
below.
|
||||
|
||||
You can see the list of all packages by typing "make package" from
|
||||
within the src directory of the LAMMPS distribution. This also lists
|
||||
various make commands that can be used to manipulate packages.
|
||||
within the src directory of the LAMMPS distribution. It will also
|
||||
list various make commands that can be used to manage packages.
|
||||
|
||||
If you use a command in a LAMMPS input script that is part of a
|
||||
package, you must have built LAMMPS with that package, else you will
|
||||
get an error that the style is invalid or the command is unknown.
|
||||
Every command's doc page specifies if it is part of a package. You can
|
||||
also type
|
||||
Every command's doc page specfies if it is part of a package. You can
|
||||
type
|
||||
|
||||
lmp_machine -h :pre
|
||||
|
||||
to run your executable with the optional "-h command-line
|
||||
switch"_#start_7 for "help", which will simply list the styles and
|
||||
commands known to your executable, and immediately exit.
|
||||
|
||||
There are two kinds of packages in LAMMPS, standard and user packages.
|
||||
More information about the contents of standard and user packages is
|
||||
given in "Section 4"_Section_packages.html of the manual. The
|
||||
difference between standard and user packages is as follows:
|
||||
|
||||
Standard packages, such as molecule or kspace, are supported by the
|
||||
LAMMPS developers and are written in a syntax and style consistent
|
||||
with the rest of LAMMPS. This means we will answer questions about
|
||||
them, debug and fix them if necessary, and keep them compatible with
|
||||
future changes to LAMMPS.
|
||||
|
||||
User packages, such as user-atc or user-omp, have been contributed by
|
||||
users, and always begin with the user prefix. If they are a single
|
||||
command (single file), they are typically in the user-misc package.
|
||||
Otherwise, they are a set of files grouped together which add a
|
||||
specific functionality to the code.
|
||||
|
||||
User packages don't necessarily meet the requirements of the standard
|
||||
packages. If you have problems using a feature provided in a user
|
||||
package, you may need to contact the contributor directly to get help.
|
||||
Information on how to submit additions you make to LAMMPS as single
|
||||
files or either a standard or user-contributed package are given in
|
||||
"this section"_Section_modify.html#mod_15 of the documentation.
|
||||
switch"_#start_7 for "help", which will list the styles and commands
|
||||
known to your executable, and immediately exit.
|
||||
|
||||
:line
|
||||
|
||||
Including/excluding packages :h5,link(start_3_2)
|
||||
|
||||
To use (or not use) a package you must include it (or exclude it)
|
||||
before building LAMMPS. From the src directory, this is typically as
|
||||
simple as:
|
||||
To use (or not use) a package you must install it (or un-install it)
|
||||
before building LAMMPS. From the src directory, this is as simple as:
|
||||
|
||||
make yes-colloid
|
||||
make mpi :pre
|
||||
|
||||
or
|
||||
|
||||
make no-manybody
|
||||
make no-user-omp
|
||||
make mpi :pre
|
||||
|
||||
NOTE: You should NOT include/exclude packages and build LAMMPS in a
|
||||
NOTE: You should NOT install/un-install packages and build LAMMPS in a
|
||||
single make command using multiple targets, e.g. make yes-colloid mpi.
|
||||
This is because the make procedure creates a list of source files that
|
||||
will be out-of-date for the build if the package configuration changes
|
||||
within the same command.
|
||||
|
||||
Some packages have individual files that depend on other packages
|
||||
being included. LAMMPS checks for this and does the right thing.
|
||||
I.e. individual files are only included if their dependencies are
|
||||
already included. Likewise, if a package is excluded, other files
|
||||
Any package can be installed or not in a LAMMPS build, independent of
|
||||
all other packages. However, some packages include files derived from
|
||||
files in other packages. LAMMPS checks for this and does the right
|
||||
thing. I.e. individual files are only included if their dependencies
|
||||
are already included. Likewise, if a package is excluded, other files
|
||||
dependent on that package are also excluded.
|
||||
|
||||
NOTE: The one exception is that we do not recommend building with both
|
||||
the KOKKOS package installed and any of the other acceleration
|
||||
packages (GPU, OPT, USER-INTEL, USER-OMP) also installed. This is
|
||||
because of how Kokkos sometimes builds using a wrapper compiler which
|
||||
can make it difficult to invoke all the compile/link flags correctly
|
||||
for both Kokkos and non-Kokkos files.
|
||||
|
||||
If you will never run simulations that use the features in a
|
||||
particular packages, there is no reason to include it in your build.
|
||||
For some packages, this will keep you from having to build auxiliary
|
||||
libraries (see below), and will also produce a smaller executable
|
||||
which may run a bit faster.
|
||||
For some packages, this will keep you from having to build extra
|
||||
libraries, and will also produce a smaller executable which may run a
|
||||
bit faster.
|
||||
|
||||
When you download a LAMMPS tarball, these packages are pre-installed
|
||||
in the src directory: KSPACE, MANYBODY,MOLECULE, because they are so
|
||||
commonly used. When you download LAMMPS source files from the SVN or
|
||||
Git repositories, no packages are pre-installed.
|
||||
When you download a LAMMPS tarball, three packages are pre-installed
|
||||
in the src directory -- KSPACE, MANYBODY, MOLECULE -- because they are
|
||||
so commonly used. When you download LAMMPS source files from the SVN
|
||||
or Git repositories, no packages are pre-installed.
|
||||
|
||||
Packages are included or excluded by typing "make yes-name" or "make
|
||||
no-name", where "name" is the name of the package in lower-case, e.g.
|
||||
name = kspace for the KSPACE package or name = user-atc for the
|
||||
USER-ATC package. You can also type "make yes-standard", "make
|
||||
no-standard", "make yes-std", "make no-std", "make yes-user", "make
|
||||
no-user", "make yes-lib", "make no-lib", "make yes-all", or "make
|
||||
no-all" to include/exclude various sets of packages. Type "make
|
||||
package" to see all of the package-related make options.
|
||||
Packages are installed or un-installed by typing
|
||||
|
||||
NOTE: Inclusion/exclusion of a package works by simply moving files
|
||||
back and forth between the main src directory and sub-directories with
|
||||
the package name (e.g. src/KSPACE, src/USER-ATC), so that the files
|
||||
are seen or not seen when LAMMPS is built. After you have included or
|
||||
excluded a package, you must re-build LAMMPS.
|
||||
make yes-name
|
||||
make no-name :pre
|
||||
|
||||
Additional package-related make options exist to help manage LAMMPS
|
||||
files that exist in both the src directory and in package
|
||||
sub-directories. You do not normally need to use these commands
|
||||
unless you are editing LAMMPS files or have downloaded a patch from
|
||||
the LAMMPS WWW site.
|
||||
where "name" is the name of the package in lower-case, e.g. name =
|
||||
kspace for the KSPACE package or name = user-atc for the USER-ATC
|
||||
package. You can also type any of these commands:
|
||||
|
||||
Typing "make package-update" or "make pu" will overwrite src files
|
||||
with files from the package sub-directories if the package has been
|
||||
included. It should be used after a patch is installed, since patches
|
||||
only update the files in the package sub-directory, but not the src
|
||||
files. Typing "make package-overwrite" will overwrite files in the
|
||||
package sub-directories with src files.
|
||||
make yes-all | install all packages
|
||||
make no-all | un-install all packages
|
||||
make yes-standard or make yes-std | install standard packages
|
||||
make no-standard or make no-std| un-install standard packages
|
||||
make yes-user | install user packages
|
||||
make no-user | un-install user packages
|
||||
make yes-lib | install packages that require extra libraries
|
||||
make no-lib | un-install packages that require extra libraries
|
||||
make yes-ext | install packages that require external libraries
|
||||
make no-ext | un-install packages that require external libraries :tb(s=|)
|
||||
|
||||
which install/un-install various sets of packages. Typing "make
|
||||
package" will list all the these commands.
|
||||
|
||||
NOTE: Installing or un-installing a package works by simply moving
|
||||
files back and forth between the main src directory and
|
||||
sub-directories with the package name (e.g. src/KSPACE, src/USER-ATC),
|
||||
so that the files are included or excluded when LAMMPS is built.
|
||||
After you have installed or un-installed a package, you must re-build
|
||||
LAMMPS for the action to take effect.
|
||||
|
||||
The following make commands help manage files that exist in both the
|
||||
src directory and in package sub-directories. You do not normally
|
||||
need to use these commands unless you are editing LAMMPS files or have
|
||||
downloaded a patch from the LAMMPS web site.
|
||||
|
||||
Typing "make package-status" or "make ps" will show which packages are
|
||||
currently included. For those that are included, it will list any
|
||||
currently installed. For those that are installed, it will list any
|
||||
files that are different in the src directory and package
|
||||
sub-directory. Typing "make package-diff" lists all differences
|
||||
between these files. Again, type "make package" to see all of the
|
||||
package-related make options.
|
||||
sub-directory.
|
||||
|
||||
Typing "make package-update" or "make pu" will overwrite src files
|
||||
with files from the package sub-directories if the package is
|
||||
installed. It should be used after a patch has been applied, since
|
||||
patches only update the files in the package sub-directory, but not
|
||||
the src files.
|
||||
|
||||
Typing "make package-overwrite" will overwrite files in the package
|
||||
sub-directories with src files.
|
||||
|
||||
Typing "make package-diff" lists all differences between these files.
|
||||
|
||||
Again, just type "make package" to see all of the package-related make
|
||||
options.
|
||||
|
||||
:line
|
||||
|
||||
Packages that require extra libraries :h5,link(start_3_3)
|
||||
|
||||
A few of the standard and user packages require additional auxiliary
|
||||
libraries. Many of them are provided with LAMMPS, in which case they
|
||||
must be compiled first, before LAMMPS is built, if you wish to include
|
||||
that package. If you get a LAMMPS build error about a missing
|
||||
library, this is likely the reason. See the
|
||||
"Section 4"_Section_packages.html doc page for a list of
|
||||
packages that have these kinds of auxiliary libraries.
|
||||
A few of the standard and user packages require extra libraries. See
|
||||
"Section 4"_Section_packages.html for two tables of packages which
|
||||
indicate which ones require libraries. For each such package, the
|
||||
Section 4 doc page gives details on how to build the extra library,
|
||||
including how to download it if necessary. The basic ideas are
|
||||
summarized here.
|
||||
|
||||
The lib directory in the distribution has sub-directories with package
|
||||
names that correspond to the needed auxiliary libs, e.g. lib/gpu.
|
||||
Each sub-directory has a README file that gives more details. Code
|
||||
for most of the auxiliary libraries is included in that directory.
|
||||
Examples are the USER-ATC and MEAM packages.
|
||||
[System libraries:]
|
||||
|
||||
A few of the lib sub-directories do not include code, but do include
|
||||
instructions (and sometimes scripts) that automate the process of
|
||||
downloading the auxiliary library and installing it so LAMMPS can link
|
||||
to it. Examples are the KIM, VORONOI, USER-MOLFILE, and USER-SMD
|
||||
packages.
|
||||
Packages in the tables "Section 4"_Section_packages.html with a "sys"
|
||||
in the last column link to system libraries that typically already
|
||||
exist on your machine. E.g. the python package links to a system
|
||||
Python library. If your machine does not have the required library,
|
||||
you will have to download and install it on your machine, in either
|
||||
the system or user space.
|
||||
|
||||
The lib/python directory (for the PYTHON package) contains only a
|
||||
choice of Makefile.lammps.* files. This is because no auxiliary code
|
||||
or libraries are needed, only the Python library and other system libs
|
||||
that should already available on your system. However, the
|
||||
Makefile.lammps file is needed to tell LAMMPS which libs to use and
|
||||
where to find them.
|
||||
[Internal libraries:]
|
||||
|
||||
For libraries with provided code, the sub-directory README file
|
||||
(e.g. lib/atc/README) has instructions on how to build that library.
|
||||
This information is also summarized in "Section
|
||||
4"_Section_packages.html. Typically this is done by typing
|
||||
something like:
|
||||
Packages in the tables "Section 4"_Section_packages.html with an "int"
|
||||
in the last column link to internal libraries whose source code is
|
||||
included with LAMMPS, in the lib/name directory where name is the
|
||||
package name. You must first build the library in that directory
|
||||
before building LAMMPS with that package installed. E.g. the gpu
|
||||
package links to a library you build in the lib/gpu dir. You can
|
||||
often do the build in one step by typing "make lib-name args=..."
|
||||
from the src dir, with appropriate arguments. You can leave off the
|
||||
args to see a help message. See "Section 4"_Section_packages.html for
|
||||
details for each package.
|
||||
|
||||
make -f Makefile.g++ :pre
|
||||
[External libraries:]
|
||||
|
||||
If one of the provided Makefiles is not appropriate for your system
|
||||
you will need to edit or add one. Note that all the Makefiles have a
|
||||
setting for EXTRAMAKE at the top that specifies a Makefile.lammps.*
|
||||
file.
|
||||
Packages in the tables "Section 4"_Section_packages.html with an "ext"
|
||||
in the last column link to exernal libraries whose source code is not
|
||||
included with LAMMPS. You must first download and install the library
|
||||
before building LAMMPS with that package installed. E.g. the voronoi
|
||||
package links to the freely available "Voro++ library"_voro_home2. You
|
||||
can often do the download/build in one step by typing "make lib-name
|
||||
args=..." from the src dir, with appropriate arguments. You can leave
|
||||
off the args to see a help message. See "Section
|
||||
4"_Section_packages.html for details for each package.
|
||||
|
||||
If the library build is successful, it will produce 2 files in the lib
|
||||
directory:
|
||||
:link(voro_home2,http://math.lbl.gov/voro++)
|
||||
|
||||
libpackage.a
|
||||
Makefile.lammps :pre
|
||||
[Possible errors:]
|
||||
|
||||
The Makefile.lammps file will typically be a copy of one of the
|
||||
Makefile.lammps.* files in the library directory.
|
||||
There are various common errors which can occur when building extra
|
||||
libraries or when building LAMMPS with packages that require the extra
|
||||
libraries.
|
||||
|
||||
Note that you must insure that the settings in Makefile.lammps are
|
||||
appropriate for your system. If they are not, the LAMMPS build may
|
||||
fail. To fix this, you can edit or create a new Makefile.lammps.*
|
||||
file for your system, and copy it to Makefile.lammps.
|
||||
If you cannot build the extra library itself successfully, you may
|
||||
need to edit or create an appropriate Makefile for your machine, e.g.
|
||||
with appropriate compiler or system settings. Provided makefiles are
|
||||
typically in the lib/name directory. E.g. see the Makefile.* files in
|
||||
lib/gpu.
|
||||
|
||||
As explained in the lib/package/README files, the settings in
|
||||
Makefile.lammps are used to specify additional system libraries and
|
||||
their locations so that LAMMPS can build with the auxiliary library.
|
||||
For example, if the MEAM package is used, the auxiliary library
|
||||
consists of F90 code, built with a Fortran complier. To link that
|
||||
library with LAMMPS (a C++ code) via whatever C++ compiler LAMMPS is
|
||||
built with, typically requires additional Fortran-to-C libraries be
|
||||
included in the link. Another example are the BLAS and LAPACK
|
||||
libraries needed to use the USER-ATC or USER-AWPMD packages.
|
||||
The LAMMPS build often uses settings in a lib/name/Makefile.lammps
|
||||
file which either exists in the LAMMPS distribution or is created or
|
||||
copied from a lib/name/Makefile.lammps.* file when the library is
|
||||
built. If those settings are not correct for your machine you will
|
||||
need to edit or create an appropriate Makefile.lammps file.
|
||||
|
||||
For libraries without provided code, the sub-directory README file has
|
||||
information on where to download the library and how to build it,
|
||||
e.g. lib/voronoi/README and lib/smd/README. The README files also
|
||||
describe how you must either (a) create soft links, via the "ln"
|
||||
command, in those directories to point to where you built or installed
|
||||
the packages, or (b) check or edit the Makefile.lammps file in the
|
||||
same directory to provide that information.
|
||||
Package-specific details for these steps are given in "Section
|
||||
4"_Section_packages.html an in README files in the lib/name
|
||||
directories.
|
||||
|
||||
Some of the sub-directories, e.g. lib/voronoi, also have an install.py
|
||||
script which can be used to automate the process of
|
||||
downloading/building/installing the auxiliary library, and setting the
|
||||
needed soft links. Type "python install.py" for further instructions.
|
||||
[Compiler options needed for accelerator packages:]
|
||||
|
||||
As with the sub-directories containing library code, if the soft links
|
||||
or settings in the lib/package/Makefile.lammps files are not correct,
|
||||
the LAMMPS build will typically fail.
|
||||
Several packages contain code that is optimized for specific hardware,
|
||||
e.g. CPU, KNL, or GPU. These are the OPT, GPU, KOKKOS, USER-INTEL,
|
||||
and USER-OMP packages. Compiling and linking the source files in
|
||||
these accelerator packages for optimal performance requires specific
|
||||
settings in the Makefile.machine file you use.
|
||||
|
||||
:line
|
||||
|
||||
Packages that require Makefile.machine settings :h5,link(start_3_4)
|
||||
|
||||
A few packages require specific settings in Makefile.machine, to
|
||||
either build or use the package effectively. These are the
|
||||
USER-INTEL, KOKKOS, USER-OMP, and OPT packages, used for accelerating
|
||||
code performance on CPUs or other hardware, as discussed in "Section
|
||||
5.3"_Section_accelerate.html#acc_3.
|
||||
|
||||
A summary of what Makefile.machine changes are needed for each of
|
||||
these packages is given in "Section 4"_Section_packages.html.
|
||||
The details are given on the doc pages that describe each of these
|
||||
accelerator packages in detail:
|
||||
A summary of the Makefile.machine settings needed for each of these
|
||||
packages is given in "Section 4"_Section_packages.html. More info is
|
||||
given on the doc pages that describe each package in detail:
|
||||
|
||||
5.3.1 "USER-INTEL package"_accelerate_intel.html
|
||||
5.3.2 "GPU package"_accelerate_intel.html
|
||||
5.3.3 "KOKKOS package"_accelerate_kokkos.html
|
||||
5.3.4 "USER-OMP package"_accelerate_omp.html
|
||||
5.3.5 "OPT package"_accelerate_opt.html :all(b)
|
||||
|
||||
You can also look at the following machine Makefiles in
|
||||
src/MAKE/OPTIONS, which include the changes. Note that the USER-INTEL
|
||||
and KOKKOS packages allow for settings that build LAMMPS for different
|
||||
hardware. The USER-INTEL package builds for CPU and the Xeon Phi, the
|
||||
KOKKOS package builds for OpenMP, GPUs (Cuda), and the Xeon Phi.
|
||||
You can also use or examine the following machine Makefiles in
|
||||
src/MAKE/OPTIONS, which include the settings. Note that the
|
||||
USER-INTEL and KOKKOS packages can use settings that build LAMMPS for
|
||||
different hardware. The USER-INTEL package can be compiled for Intel
|
||||
CPUs and KNLs; the KOKKOS package builds for CPUs (OpenMP), GPUs
|
||||
(Cuda), and Intel KNLs.
|
||||
|
||||
Makefile.intel_cpu
|
||||
Makefile.intel_phi
|
||||
@ -908,127 +890,9 @@ Makefile.kokkos_phi
|
||||
Makefile.omp
|
||||
Makefile.opt :ul
|
||||
|
||||
Also note that the Make.py tool, described in the next "Section
|
||||
2.4"_#start_4 can automatically add the needed info to an existing
|
||||
machine Makefile, using simple command-line arguments.
|
||||
|
||||
:line
|
||||
|
||||
2.4 Building LAMMPS via the Make.py tool :h4,link(start_4)
|
||||
|
||||
The src directory includes a Make.py script, written in Python, which
|
||||
can be used to automate various steps of the build process. It is
|
||||
particularly useful for working with the accelerator packages, as well
|
||||
as other packages which require auxiliary libraries to be built.
|
||||
|
||||
The goal of the Make.py tool is to allow any complex multi-step LAMMPS
|
||||
build to be performed as a single Make.py command. And you can
|
||||
archive the commands, so they can be re-invoked later via the -r
|
||||
(redo) switch. If you find some LAMMPS build procedure that can't be
|
||||
done in a single Make.py command, let the developers know, and we'll
|
||||
see if we can augment the tool.
|
||||
|
||||
You can run Make.py from the src directory by typing either:
|
||||
|
||||
Make.py -h
|
||||
python Make.py -h :pre
|
||||
|
||||
which will give you help info about the tool. For the former to work,
|
||||
you may need to edit the first line of Make.py to point to your local
|
||||
Python. And you may need to insure the script is executable:
|
||||
|
||||
chmod +x Make.py :pre
|
||||
|
||||
Here are examples of build tasks you can perform with Make.py:
|
||||
|
||||
Install/uninstall packages: Make.py -p no-lib kokkos omp intel
|
||||
Build specific auxiliary libs: Make.py -a lib-atc lib-meam
|
||||
Build libs for all installed packages: Make.py -p cuda gpu -gpu mode=double arch=31 -a lib-all
|
||||
Create a Makefile from scratch with compiler and MPI settings: Make.py -m none -cc g++ -mpi mpich -a file
|
||||
Augment Makefile.serial with settings for installed packages: Make.py -p intel -intel cpu -m serial -a file
|
||||
Add JPG and FFTW support to Makefile.mpi: Make.py -m mpi -jpg -fft fftw -a file
|
||||
Build LAMMPS with a parallel make using Makefile.mpi: Make.py -j 16 -m mpi -a exe
|
||||
Build LAMMPS and libs it needs using Makefile.serial with accelerator settings: Make.py -p gpu intel -intel cpu -a lib-all file serial :tb(s=:)
|
||||
|
||||
The bench and examples directories give Make.py commands that can be
|
||||
used to build LAMMPS with the various packages and options needed to
|
||||
run all the benchmark and example input scripts. See these files for
|
||||
more details:
|
||||
|
||||
bench/README
|
||||
bench/FERMI/README
|
||||
bench/KEPLER/README
|
||||
bench/PHI/README
|
||||
examples/README
|
||||
examples/accelerate/README
|
||||
examples/accelerate/make.list :ul
|
||||
|
||||
All of the Make.py options and syntax help can be accessed by using
|
||||
the "-h" switch.
|
||||
|
||||
E.g. typing "Make.py -h" gives
|
||||
|
||||
Syntax: Make.py switch args ...
|
||||
switches can be listed in any order
|
||||
help switch:
|
||||
-h prints help and syntax for all other specified switches
|
||||
switch for actions:
|
||||
-a lib-all, lib-dir, clean, file, exe or machine
|
||||
list one or more actions, in any order
|
||||
machine is a Makefile.machine suffix, must be last if used
|
||||
one-letter switches:
|
||||
-d (dir), -j (jmake), -m (makefile), -o (output),
|
||||
-p (packages), -r (redo), -s (settings), -v (verbose)
|
||||
switches for libs:
|
||||
-atc, -awpmd, -colvars, -cuda
|
||||
-gpu, -meam, -poems, -qmmm, -reax
|
||||
switches for build and makefile options:
|
||||
-intel, -kokkos, -cc, -mpi, -fft, -jpg, -png :pre
|
||||
|
||||
Using the "-h" switch with other switches and actions gives additional
|
||||
info on all the other specified switches or actions. The "-h" can be
|
||||
anywhere in the command-line and the other switches do not need their
|
||||
arguments. E.g. type "Make.py -h -d -atc -intel" will print:
|
||||
|
||||
-d dir
|
||||
dir = LAMMPS home dir
|
||||
if -d not specified, working dir must be lammps/src :pre
|
||||
|
||||
-atc make=suffix lammps=suffix2
|
||||
all args are optional and can be in any order
|
||||
make = use Makefile.suffix (def = g++)
|
||||
lammps = use Makefile.lammps.suffix2 (def = EXTRAMAKE in makefile) :pre
|
||||
|
||||
-intel mode
|
||||
mode = cpu or phi (def = cpu)
|
||||
build Intel package for CPU or Xeon Phi :pre
|
||||
|
||||
Note that Make.py never overwrites an existing Makefile.machine.
|
||||
Instead, it creates src/MAKE/MINE/Makefile.auto, which you can save or
|
||||
rename if desired. Likewise it creates an executable named
|
||||
src/lmp_auto, which you can rename using the -o switch if desired.
|
||||
|
||||
The most recently executed Make.py command is saved in
|
||||
src/Make.py.last. You can use the "-r" switch (for redo) to re-invoke
|
||||
the last command, or you can save a sequence of one or more Make.py
|
||||
commands to a file and invoke the file of commands using "-r". You
|
||||
can also label the commands in the file and invoke one or more of them
|
||||
by name.
|
||||
|
||||
A typical use of Make.py is to start with a valid Makefile.machine for
|
||||
your system, that works for a vanilla LAMMPS build, i.e. when optional
|
||||
packages are not installed. You can then use Make.py to add various
|
||||
settings (FFT, JPG, PNG) to the Makefile.machine as well as change its
|
||||
compiler and MPI options. You can also add additional packages to the
|
||||
build, as well as build the needed supporting libraries.
|
||||
|
||||
You can also use Make.py to create a new Makefile.machine from
|
||||
scratch, using the "-m none" switch, if you also specify what compiler
|
||||
and MPI options to use, via the "-cc" and "-mpi" switches.
|
||||
|
||||
:line
|
||||
|
||||
2.5 Building LAMMPS as a library :h4,link(start_5)
|
||||
2.4 Building LAMMPS as a library :h4,link(start_4)
|
||||
|
||||
LAMMPS can be built as either a static or shared library, which can
|
||||
then be called from another application or a scripting language. See
|
||||
@ -1064,7 +928,7 @@ src/MAKE/Makefile.foo and perform the build in the directory
|
||||
Obj_shared_foo. This is so that each file can be compiled with the
|
||||
-fPIC flag which is required for inclusion in a shared library. The
|
||||
build will create the file liblammps_foo.so which another application
|
||||
can link to dynamically. It will also create a soft link liblammps.so,
|
||||
can link to dyamically. It will also create a soft link liblammps.so,
|
||||
which will point to the most recently built shared library. This is
|
||||
the file the Python wrapper loads by default.
|
||||
|
||||
@ -1150,7 +1014,7 @@ interface and how to extend it for your needs.
|
||||
|
||||
:line
|
||||
|
||||
2.6 Running LAMMPS :h4,link(start_6)
|
||||
2.5 Running LAMMPS :h4,link(start_5)
|
||||
|
||||
By default, LAMMPS runs by reading commands from standard input. Thus
|
||||
if you run the LAMMPS executable by itself, e.g.
|
||||
@ -1282,7 +1146,7 @@ more processors or setup a smaller problem.
|
||||
|
||||
:line
|
||||
|
||||
2.7 Command-line options :h4,link(start_7)
|
||||
2.6 Command-line options :h4,link(start_6)
|
||||
|
||||
At run time, LAMMPS recognizes several optional command-line switches
|
||||
which may be used in any order. Either the full word or a one-or-two
|
||||
@ -1416,8 +1280,8 @@ LAMMPS is compiled with CUDA=yes.
|
||||
numa Nm :pre
|
||||
|
||||
This option is only relevant when using pthreads with hwloc support.
|
||||
In this case Nm defines the number of NUMA regions (typically sockets)
|
||||
on a node which will be utilized by a single MPI rank. By default Nm
|
||||
In this case Nm defines the number of NUMA regions (typicaly sockets)
|
||||
on a node which will be utilizied by a single MPI rank. By default Nm
|
||||
= 1. If this option is used the total number of worker-threads per
|
||||
MPI rank is threads*numa. Currently it is always almost better to
|
||||
assign at least one MPI rank per NUMA region, and leave numa set to
|
||||
@ -1481,7 +1345,7 @@ replica runs on on one or a few processors. Note that with MPI
|
||||
installed on a machine (e.g. your desktop), you can run on more
|
||||
(virtual) processors than you have physical processors.
|
||||
|
||||
To run multiple independent simulations from one input script, using
|
||||
To run multiple independent simulatoins from one input script, using
|
||||
multiple partitions, see "Section 6.4"_Section_howto.html#howto_4
|
||||
of the manual. World- and universe-style "variables"_variable.html
|
||||
are useful in this context.
|
||||
@ -1712,7 +1576,7 @@ negative numeric value. It is OK if the first value1 starts with a
|
||||
|
||||
:line
|
||||
|
||||
2.8 LAMMPS screen output :h4,link(start_8)
|
||||
2.7 LAMMPS screen output :h4,link(start_7)
|
||||
|
||||
As LAMMPS reads an input script, it prints information to both the
|
||||
screen and a log file about significant actions it takes to setup a
|
||||
@ -1760,7 +1624,7 @@ The first section provides a global loop timing summary. The {loop time}
|
||||
is the total wall time for the section. The {Performance} line is
|
||||
provided for convenience to help predicting the number of loop
|
||||
continuations required and for comparing performance with other,
|
||||
similar MD codes. The {CPU use} line provides the CPU utilization per
|
||||
similar MD codes. The {CPU use} line provides the CPU utilzation per
|
||||
MPI task; it should be close to 100% times the number of OpenMP
|
||||
threads (or 1 of no OpenMP). Lower numbers correspond to delays due
|
||||
to file I/O or insufficient thread utilization.
|
||||
@ -1868,7 +1732,7 @@ communication, roughly 75% in the example above.
|
||||
|
||||
:line
|
||||
|
||||
2.9 Tips for users of previous LAMMPS versions :h4,link(start_9)
|
||||
2.8 Tips for users of previous LAMMPS versions :h4,link(start_8)
|
||||
|
||||
The current C++ began with a complete rewrite of LAMMPS 2001, which
|
||||
was written in F90. Features of earlier versions of LAMMPS are listed
|
||||
|
||||
@ -369,15 +369,18 @@ supports it. It has its own WWW page at
|
||||
|
||||
msi2lmp tool :h4,link(msi)
|
||||
|
||||
The msi2lmp sub-directory contains a tool for creating LAMMPS input
|
||||
data files from BIOVIA's Materias Studio files (formerly Accelrys'
|
||||
The msi2lmp sub-directory contains a tool for creating LAMMPS template
|
||||
input and data files from BIOVIA's Materias Studio files (formerly Accelrys'
|
||||
Insight MD code, formerly MSI/Biosym and its Discover MD code).
|
||||
|
||||
This tool was written by John Carpenter (Cray), Michael Peachey
|
||||
(Cray), and Steve Lustig (Dupont). Several people contributed changes
|
||||
to remove bugs and adapt its output to changes in LAMMPS.
|
||||
|
||||
See the README file for more information.
|
||||
This tool has several known limitations and is no longer under active
|
||||
development, so there are no changes except for the occasional bugfix.
|
||||
|
||||
See the README file in the tools/msi2lmp folder for more information.
|
||||
|
||||
:line
|
||||
|
||||
|
||||
@ -30,8 +30,8 @@ Dihedral Styles: charmm, harmonic, opls :l
|
||||
Fixes: nve, npt, nvt, nvt/sllod :l
|
||||
Improper Styles: cvff, harmonic :l
|
||||
Pair Styles: buck/coul/cut, buck/coul/long, buck, eam, gayberne,
|
||||
charmm/coul/long, lj/cut, lj/cut/coul/long, sw, tersoff :l
|
||||
K-Space Styles: pppm :l
|
||||
charmm/coul/long, lj/cut, lj/cut/coul/long, lj/long/coul/long, sw, tersoff :l
|
||||
K-Space Styles: pppm, pppm/disp :l
|
||||
:ule
|
||||
|
||||
[Speed-ups to expect:]
|
||||
@ -42,61 +42,90 @@ precision mode. Performance improvements are shown compared to
|
||||
LAMMPS {without using other acceleration packages} as these are
|
||||
under active development (and subject to performance changes). The
|
||||
measurements were performed using the input files available in
|
||||
the src/USER-INTEL/TEST directory. These are scalable in size; the
|
||||
results given are with 512K particles (524K for Liquid Crystal).
|
||||
Most of the simulations are standard LAMMPS benchmarks (indicated
|
||||
by the filename extension in parenthesis) with modifications to the
|
||||
run length and to add a warmup run (for use with offload
|
||||
benchmarks).
|
||||
the src/USER-INTEL/TEST directory with the provided run script.
|
||||
These are scalable in size; the results given are with 512K
|
||||
particles (524K for Liquid Crystal). Most of the simulations are
|
||||
standard LAMMPS benchmarks (indicated by the filename extension in
|
||||
parenthesis) with modifications to the run length and to add a
|
||||
warmup run (for use with offload benchmarks).
|
||||
|
||||
:c,image(JPG/user_intel.png)
|
||||
|
||||
Results are speedups obtained on Intel Xeon E5-2697v4 processors
|
||||
(code-named Broadwell) and Intel Xeon Phi 7250 processors
|
||||
(code-named Knights Landing) with "18 Jun 2016" LAMMPS built with
|
||||
Intel Parallel Studio 2016 update 3. Results are with 1 MPI task
|
||||
(code-named Knights Landing) with "June 2017" LAMMPS built with
|
||||
Intel Parallel Studio 2017 update 2. Results are with 1 MPI task
|
||||
per physical core. See {src/USER-INTEL/TEST/README} for the raw
|
||||
simulation rates and instructions to reproduce.
|
||||
|
||||
:line
|
||||
|
||||
[Accuracy and order of operations:]
|
||||
|
||||
In most molecular dynamics software, parallelization parameters
|
||||
(# of MPI, OpenMP, and vectorization) can change the results due
|
||||
to changing the order of operations with finite-precision
|
||||
calculations. The USER-INTEL package is deterministic. This means
|
||||
that the results should be reproducible from run to run with the
|
||||
{same} parallel configurations and when using determinstic
|
||||
libraries or library settings (MPI, OpenMP, FFT). However, there
|
||||
are differences in the USER-INTEL package that can change the
|
||||
order of operations compared to LAMMPS without acceleration:
|
||||
|
||||
Neighbor lists can be created in a different order :ulb,l
|
||||
Bins used for sorting atoms can be oriented differently :l
|
||||
The default stencil order for PPPM is 7. By default, LAMMPS will
|
||||
calculate other PPPM parameters to fit the desired acuracy with
|
||||
this order :l
|
||||
The {newton} setting applies to all atoms, not just atoms shared
|
||||
between MPI tasks :l
|
||||
Vectorization can change the order for adding pairwise forces :l
|
||||
:ule
|
||||
|
||||
The precision mode (described below) used with the USER-INTEL
|
||||
package can change the {accuracy} of the calculations. For the
|
||||
default {mixed} precision option, calculations between pairs or
|
||||
triplets of atoms are performed in single precision, intended to
|
||||
be within the inherent error of MD simulations. All accumulation
|
||||
is performed in double precision to prevent the error from growing
|
||||
with the number of atoms in the simulation. {Single} precision
|
||||
mode should not be used without appropriate validation.
|
||||
|
||||
:line
|
||||
|
||||
[Quick Start for Experienced Users:]
|
||||
|
||||
LAMMPS should be built with the USER-INTEL package installed.
|
||||
Simulations should be run with 1 MPI task per physical {core},
|
||||
not {hardware thread}.
|
||||
|
||||
For Intel Xeon CPUs:
|
||||
|
||||
Edit src/MAKE/OPTIONS/Makefile.intel_cpu_intelmpi as necessary. :ulb,l
|
||||
If using {kspace_style pppm} in the input script, add "neigh_modify binsize 3" and "kspace_modify diff ad" to the input script for better
|
||||
performance. :l
|
||||
"-pk intel 0 omp 2 -sf intel" added to LAMMPS command-line :l
|
||||
Set the environment variable KMP_BLOCKTIME=0 :l
|
||||
"-pk intel 0 omp $t -sf intel" added to LAMMPS command-line :l
|
||||
$t should be 2 for Intel Xeon CPUs and 2 or 4 for Intel Xeon Phi :l
|
||||
For some of the simple 2-body potentials without long-range
|
||||
electrostatics, performance and scalability can be better with
|
||||
the "newton off" setting added to the input script :l
|
||||
For simulations on higher node counts, add "processors * * * grid
|
||||
numa" to the beginning of the input script for better scalability :l
|
||||
If using {kspace_style pppm} in the input script, add
|
||||
"kspace_modify diff ad" for better performance :l
|
||||
:ule
|
||||
|
||||
For Intel Xeon Phi CPUs for simulations without {kspace_style
|
||||
pppm} in the input script :
|
||||
For Intel Xeon Phi CPUs:
|
||||
|
||||
Edit src/MAKE/OPTIONS/Makefile.knl as necessary. :ulb,l
|
||||
Runs should be performed using MCDRAM. :l
|
||||
"-pk intel 0 omp 2 -sf intel" {or} "-pk intel 0 omp 4 -sf intel"
|
||||
should be added to the LAMMPS command-line. Choice for best
|
||||
performance will depend on the simulation. :l
|
||||
Runs should be performed using MCDRAM. :ulb,l
|
||||
:ule
|
||||
|
||||
For Intel Xeon Phi CPUs for simulations with {kspace_style
|
||||
pppm} in the input script:
|
||||
For simulations using {kspace_style pppm} on Intel CPUs
|
||||
supporting AVX-512:
|
||||
|
||||
Edit src/MAKE/OPTIONS/Makefile.knl as necessary. :ulb,l
|
||||
Runs should be performed using MCDRAM. :l
|
||||
Add "neigh_modify binsize 3" to the input script for better
|
||||
performance. :l
|
||||
Add "kspace_modify diff ad" to the input script for better
|
||||
performance. :l
|
||||
export KMP_AFFINITY=none :l
|
||||
"-pk intel 0 omp 3 lrt yes -sf intel" or "-pk intel 0 omp 1 lrt yes
|
||||
-sf intel" added to LAMMPS command-line. Choice for best performance
|
||||
will depend on the simulation. :l
|
||||
Add "kspace_modify diff ad" to the input script :ulb,l
|
||||
The command-line option should be changed to
|
||||
"-pk intel 0 omp $r lrt yes -sf intel" where $r is the number of
|
||||
threads minus 1. :l
|
||||
Do not use thread affinity (set KMP_AFFINITY=none) :l
|
||||
The "newton off" setting may provide better scalability :l
|
||||
:ule
|
||||
|
||||
For Intel Xeon Phi coprocessors (Offload):
|
||||
@ -168,6 +197,10 @@ cat /proc/cpuinfo :pre
|
||||
|
||||
[Building LAMMPS with the USER-INTEL package:]
|
||||
|
||||
NOTE: See the src/USER-INTEL/README file for additional flags that
|
||||
might be needed for best performance on Intel server processors
|
||||
code-named "Skylake".
|
||||
|
||||
The USER-INTEL package must be installed into the source directory:
|
||||
|
||||
make yes-user-intel :pre
|
||||
@ -321,8 +354,8 @@ follow in the input script.
|
||||
|
||||
NOTE: The USER-INTEL package will perform better with modifications
|
||||
to the input script when "PPPM"_kspace_style.html is used:
|
||||
"kspace_modify diff ad"_kspace_modify.html and "neigh_modify binsize
|
||||
3"_neigh_modify.html should be added to the input script.
|
||||
"kspace_modify diff ad"_kspace_modify.html should be added to the
|
||||
input script.
|
||||
|
||||
Long-Range Thread (LRT) mode is an option to the "package
|
||||
intel"_package.html command that can improve performance when using
|
||||
@ -341,6 +374,10 @@ would normally perform best with "-pk intel 0 omp 4", instead use
|
||||
environment variable "KMP_AFFINITY=none". LRT mode is not supported
|
||||
when using offload.
|
||||
|
||||
NOTE: Changing the "newton"_newton.html setting to off can improve
|
||||
performance and/or scalability for simple 2-body potentials such as
|
||||
lj/cut or when using LRT mode on processors supporting AVX-512.
|
||||
|
||||
Not all styles are supported in the USER-INTEL package. You can mix
|
||||
the USER-INTEL package with styles from the "OPT"_accelerate_opt.html
|
||||
package or the "USER-OMP package"_accelerate_omp.html. Of course,
|
||||
@ -357,6 +394,10 @@ hybrid intel omp"_suffix.html command can also be used within the
|
||||
input script to automatically append the "omp" suffix to styles when
|
||||
USER-INTEL styles are not available.
|
||||
|
||||
NOTE: For simulations on higher node counts, add "processors * * *
|
||||
grid numa"_processors.html" to the beginning of the input script for
|
||||
better scalability.
|
||||
|
||||
When running on many nodes, performance might be better when using
|
||||
fewer OpenMP threads and more MPI tasks. This will depend on the
|
||||
simulation and the machine. Using the "verlet/split"_run_style.html
|
||||
@ -466,7 +507,7 @@ supported.
|
||||
|
||||
Brown, W.M., Carrillo, J.-M.Y., Mishra, B., Gavhane, N., Thakker, F.M., De Kraker, A.R., Yamada, M., Ang, J.A., Plimpton, S.J., "Optimizing Classical Molecular Dynamics in LAMMPS," in Intel Xeon Phi Processor High Performance Programming: Knights Landing Edition, J. Jeffers, J. Reinders, A. Sodani, Eds. Morgan Kaufmann. :ulb,l
|
||||
|
||||
Brown, W. M., Semin, A., Hebenstreit, M., Khvostov, S., Raman, K., Plimpton, S.J. Increasing Molecular Dynamics Simulation Rates with an 8-Fold Increase in Electrical Power Efficiency. 2016 International Conference for High Performance Computing. In press. :l
|
||||
Brown, W. M., Semin, A., Hebenstreit, M., Khvostov, S., Raman, K., Plimpton, S.J. "Increasing Molecular Dynamics Simulation Rates with an 8-Fold Increase in Electrical Power Efficiency."_http://dl.acm.org/citation.cfm?id=3014915 2016 High Performance Computing, Networking, Storage and Analysis, SC16: International Conference (pp. 82-95). :l
|
||||
|
||||
Brown, W.M., Carrillo, J.-M.Y., Gavhane, N., Thakkar, F.M., Plimpton, S.J. Optimizing Legacy Molecular Dynamics Software with Directive-Based Offload. Computer Physics Communications. 2015. 195: p. 95-101. :l
|
||||
:ule
|
||||
|
||||
@ -415,15 +415,15 @@ For binding threads with the KOKKOS OMP option, use thread affinity
|
||||
environment variables to force binding. With OpenMP 3.1 (gcc 4.7 or
|
||||
later, intel 12 or later) setting the environment variable
|
||||
OMP_PROC_BIND=true should be sufficient. For binding threads with the
|
||||
KOKKOS pthreads option, compile LAMMPS the KOKKOS HWLOC=yes option, as
|
||||
discussed in "Section 2.3.4"_Sections_start.html#start_3_4 of the
|
||||
manual.
|
||||
KOKKOS pthreads option, compile LAMMPS the KOKKOS HWLOC=yes option
|
||||
(see "this section"_Section_packages.html#KOKKOS of the manual for
|
||||
details).
|
||||
|
||||
[Running on GPUs:]
|
||||
|
||||
Insure the -arch setting in the machine makefile you are using,
|
||||
e.g. src/MAKE/Makefile.cuda, is correct for your GPU hardware/software
|
||||
(see "this section"_Section_start.html#start_3_4 of the manual for
|
||||
e.g. src/MAKE/Makefile.cuda, is correct for your GPU hardware/software.
|
||||
(see "this section"_Section_packages.html#KOKKOS of the manual for
|
||||
details).
|
||||
|
||||
The -np setting of the mpirun command should set the number of MPI
|
||||
|
||||
@ -46,7 +46,7 @@ from the pair_style.
|
||||
[Restrictions:]
|
||||
|
||||
This angle style can only be used if LAMMPS was built with the
|
||||
USER-CG-CMM package. See the "Making
|
||||
USER-CGSDK package. See the "Making
|
||||
LAMMPS"_Section_start.html#start_3 section for more info on packages.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
@ -7,25 +7,30 @@
|
||||
:line
|
||||
|
||||
bond_style oxdna/fene command :h3
|
||||
bond_style oxdna2/fene command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
bond_style oxdna/fene :pre
|
||||
bond_style oxdna2/fene :pre
|
||||
|
||||
[Examples:]
|
||||
|
||||
bond_style oxdna/fene
|
||||
bond_coeff * 2.0 0.25 0.7525 :pre
|
||||
|
||||
bond_style oxdna2/fene
|
||||
bond_coeff * 2.0 0.25 0.7564 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
The {oxdna/fene} bond style uses the potential
|
||||
The {oxdna/fene} and {oxdna2/fene} bond styles use the potential
|
||||
|
||||
:c,image(Eqs/bond_oxdna_fene.jpg)
|
||||
|
||||
to define a modified finite extensible nonlinear elastic (FENE) potential
|
||||
"(Ouldridge)"_#oxdna_fene to model the connectivity of the phosphate backbone
|
||||
in the oxDNA force field for coarse-grained modelling of DNA.
|
||||
in the oxDNA force field for coarse-grained modelling of DNA.
|
||||
|
||||
The following coefficients must be defined for the bond type via the
|
||||
"bond_coeff"_bond_coeff.html command as given in the above example, or in
|
||||
@ -36,13 +41,14 @@ epsilon (energy)
|
||||
Delta (distance)
|
||||
r0 (distance) :ul
|
||||
|
||||
NOTE: This bond style has to be used together with the corresponding oxDNA pair styles
|
||||
NOTE: The oxDNA bond style has to be used together with the corresponding oxDNA pair styles
|
||||
for excluded volume interaction {oxdna/excv}, stacking {oxdna/stk}, cross-stacking {oxdna/xstk}
|
||||
and coaxial stacking interaction {oxdna/coaxstk} as well as hydrogen-bonding interaction {oxdna/hbond} (see also documentation of
|
||||
"pair_style oxdna/excv"_pair_oxdna.html). The coefficients
|
||||
in the above example have to be kept fixed and cannot be changed without reparametrizing the entire model.
|
||||
and coaxial stacking interaction {oxdna/coaxstk} as well as hydrogen-bonding interaction {oxdna/hbond} (see also documentation of
|
||||
"pair_style oxdna/excv"_pair_oxdna.html). For the oxDNA2 "(Snodin)"_#oxdna2 bond style the analogous pair styles and an additional Debye-Hueckel pair
|
||||
style {oxdna2/dh} have to be defined.
|
||||
The coefficients in the above example have to be kept fixed and cannot be changed without reparametrizing the entire model.
|
||||
|
||||
Example input and data files can be found in examples/USER/cgdna/examples/duplex1/ and /duplex2/.
|
||||
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,
|
||||
@ -60,7 +66,7 @@ LAMMPS"_Section_start.html#start_3 section for more info on packages.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"pair_style oxdna/excv"_pair_oxdna.html, "fix nve/dotc/langevin"_fix_nve_dotc_langevin.html, "bond_coeff"_bond_coeff.html
|
||||
"pair_style oxdna/excv"_pair_oxdna.html, "pair_style oxdna2/excv"_pair_oxdna2.html, "fix nve/dotc/langevin"_fix_nve_dotc_langevin.html, "bond_coeff"_bond_coeff.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
@ -68,3 +74,6 @@ LAMMPS"_Section_start.html#start_3 section for more info on packages.
|
||||
|
||||
:link(oxdna_fene)
|
||||
[(Ouldridge)] T.E. Ouldridge, A.A. Louis, J.P.K. Doye, J. Chem. Phys. 134, 085101 (2011).
|
||||
|
||||
:link(oxdna2)
|
||||
[(Snodin)] B.E. Snodin, F. Randisi, M. Mosayebi, et al., J. Chem. Phys. 142, 234901 (2015).
|
||||
|
||||
@ -32,12 +32,12 @@ Commands :h1
|
||||
dimension
|
||||
displace_atoms
|
||||
dump
|
||||
dump_custom_vtk
|
||||
dump_h5md
|
||||
dump_image
|
||||
dump_modify
|
||||
dump_molfile
|
||||
dump_nc
|
||||
dump_netcdf
|
||||
dump_vtk
|
||||
echo
|
||||
fix
|
||||
fix_modify
|
||||
|
||||
@ -26,7 +26,7 @@ Define a computation that calculates the CNA (Common Neighbor
|
||||
Analysis) pattern for each atom in the group. In solid-state systems
|
||||
the CNA pattern is a useful measure of the local crystal structure
|
||||
around an atom. The CNA methodology is described in "(Faken)"_#Faken
|
||||
and "(Tsuzuki)"_#Tsuzuki.
|
||||
and "(Tsuzuki)"_#Tsuzuki1.
|
||||
|
||||
Currently, there are five kinds of CNA patterns LAMMPS recognizes:
|
||||
|
||||
@ -93,5 +93,5 @@ above.
|
||||
:link(Faken)
|
||||
[(Faken)] Faken, Jonsson, Comput Mater Sci, 2, 279 (1994).
|
||||
|
||||
:link(Tsuzuki)
|
||||
:link(Tsuzuki1)
|
||||
[(Tsuzuki)] Tsuzuki, Branicio, Rino, Comput Phys Comm, 177, 518 (2007).
|
||||
|
||||
111
doc/src/compute_cnp_atom.txt
Normal file
@ -0,0 +1,111 @@
|
||||
"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 cnp/atom command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
compute ID group-ID cnp/atom cutoff :pre
|
||||
|
||||
ID, group-ID are documented in "compute"_compute.html command
|
||||
cnp/atom = style name of this compute command
|
||||
cutoff = cutoff distance for nearest neighbors (distance units) :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
compute 1 all cnp/atom 3.08 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Define a computation that calculates the Common Neighborhood
|
||||
Parameter (CNP) for each atom in the group. In solid-state systems
|
||||
the CNP is a useful measure of the local crystal structure
|
||||
around an atom and can be used to characterize whether the
|
||||
atom is part of a perfect lattice, a local defect (e.g. a dislocation
|
||||
or stacking fault), or at a surface.
|
||||
|
||||
The value of the CNP parameter will be 0.0 for atoms not in the
|
||||
specified compute group. Note that normally a CNP calculation should
|
||||
only be performed on single component systems.
|
||||
|
||||
This parameter is computed using the following formula from
|
||||
"(Tsuzuki)"_#Tsuzuki2
|
||||
|
||||
:c,image(Eqs/cnp_eq.jpg)
|
||||
|
||||
where the index {j} goes over the {n}i nearest neighbors of atom
|
||||
{i}, and the index {k} goes over the {n}ij common nearest neighbors
|
||||
between atom {i} and atom {j}. Rik and Rjk are the vectors connecting atom
|
||||
{k} to atoms {i} and {j}. The quantity in the double sum is computed
|
||||
for each atom.
|
||||
|
||||
The CNP calculation is sensitive to the specified cutoff value.
|
||||
You should ensure that the appropriate nearest neighbors of an atom are
|
||||
found within the cutoff distance for the presumed crystal structure.
|
||||
E.g. 12 nearest neighbor for perfect FCC and HCP crystals, 14 nearest
|
||||
neighbors for perfect BCC crystals. These formulas can be used to
|
||||
obtain a good cutoff distance:
|
||||
|
||||
:c,image(Eqs/cnp_cutoff.jpg)
|
||||
|
||||
where a is the lattice constant for the crystal structure concerned
|
||||
and in the HCP case, x = (c/a) / 1.633, where 1.633 is the ideal c/a
|
||||
for HCP crystals.
|
||||
|
||||
Also note that since the CNP calculation in LAMMPS uses the neighbors
|
||||
of an owned atom to find the nearest neighbors of a ghost atom, the
|
||||
following relation should also be satisfied:
|
||||
|
||||
:c,image(Eqs/cnp_cutoff2.jpg)
|
||||
|
||||
where Rc is the cutoff distance of the potential, Rs is the skin
|
||||
distance as specified by the "neighbor"_neighbor.html command, and
|
||||
cutoff is the argument used with the compute cnp/atom command. LAMMPS
|
||||
will issue a warning if this is not the case.
|
||||
|
||||
The neighbor list needed to compute this quantity is constructed each
|
||||
time the calculation is performed (e.g. each time a snapshot of atoms
|
||||
is dumped). Thus it can be inefficient to compute/dump this quantity
|
||||
too frequently or to have multiple compute/dump commands, each with a
|
||||
{cnp/atom} style.
|
||||
|
||||
[Output info:]
|
||||
|
||||
This compute calculates 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 per-atom vector values will be real positive numbers. Some typical CNP
|
||||
values:
|
||||
|
||||
FCC lattice = 0.0
|
||||
BCC lattice = 0.0
|
||||
HCP lattice = 4.4 :pre
|
||||
|
||||
FCC (111) surface ~ 13.0
|
||||
FCC (100) surface ~ 26.5
|
||||
FCC dislocation core ~ 11 :pre
|
||||
|
||||
[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:] none
|
||||
|
||||
:line
|
||||
|
||||
:link(Tsuzuki2)
|
||||
[(Tsuzuki)] Tsuzuki, Branicio, Rino, Comput Phys Comm, 177, 518 (2007).
|
||||
@ -54,7 +54,7 @@ adding atoms or molecules to the system (see the "fix
|
||||
pour"_fix_pour.html, "fix deposit"_fix_deposit.html, and "fix
|
||||
gcmc"_fix_gcmc.html commands) or expect atoms or molecules to be lost
|
||||
(e.g. due to exiting the simulation box or via "fix
|
||||
evaporation"_fix_evaporation.html), then this option should be used to
|
||||
evaporate"_fix_evaporate.html), then this option should be used to
|
||||
insure the temperature is correctly normalized.
|
||||
|
||||
NOTE: The {extra} and {dynamic} keywords should not be used as they
|
||||
|
||||
@ -76,7 +76,9 @@ command for the types of the two atoms is used. For the {radius}
|
||||
setting, the sum of the radii of the two particles is used as a
|
||||
cutoff. For example, this is appropriate for granular particles which
|
||||
only interact when they are overlapping, as computed by "granular pair
|
||||
styles"_pair_gran.txt.
|
||||
styles"_pair_gran.txt. Note that if a granular model defines atom
|
||||
types such that all particles of a specific type are monodisperse
|
||||
(same diameter), then the two settings are effectively identical.
|
||||
|
||||
Note that as atoms migrate from processor to processor, there will be
|
||||
no consistent ordering of the entries within the local vector or array
|
||||
|
||||
@ -79,6 +79,9 @@ the two atoms is used. For the {radius} setting, the sum of the radii
|
||||
of the two particles is used as a cutoff. For example, this is
|
||||
appropriate for granular particles which only interact when they are
|
||||
overlapping, as computed by "granular pair styles"_pair_gran.html.
|
||||
Note that if a granular model defines atom types such that all
|
||||
particles of a specific type are monodisperse (same diameter), then
|
||||
the two settings are effectively identical.
|
||||
|
||||
If the inputs are bond, angle, etc attributes, the local data is
|
||||
generated by looping over all the atoms owned on a processor and
|
||||
|
||||
@ -111,26 +111,26 @@ Coefficients parameterized by "(Fox)"_#Fox are assigned for each
|
||||
atom type designating the chemical symbol and charge of each atom
|
||||
type. Valid chemical symbols for compute saed are:
|
||||
|
||||
H: He: Li: Be: B:
|
||||
C: N: O: F: Ne:
|
||||
Na: Mg: Al: Si: P:
|
||||
S: Cl: Ar: K: Ca:
|
||||
Sc: Ti: V: Cr: Mn:
|
||||
Fe: Co: Ni: Cu: Zn:
|
||||
Ga: Ge: As: Se: Br:
|
||||
Kr: Rb: Sr: Y: Zr:
|
||||
Nb: Mo: Tc: Ru: Rh:
|
||||
Pd: Ag: Cd: In: Sn:
|
||||
Sb: Te: I: Xe: Cs:
|
||||
Ba: La: Ce: Pr: Nd:
|
||||
Pm: Sm: Eu: Gd: Tb:
|
||||
Dy: Ho: Er: Tm: Yb:
|
||||
Lu: Hf: Ta: W: Re:
|
||||
Os: Ir: Pt: Au: Hg:
|
||||
Tl: Pb: Bi: Po: At:
|
||||
Rn: Fr: Ra: Ac: Th:
|
||||
Pa: U: Np: Pu: Am:
|
||||
Cm: Bk: Cf:tb(c=5,s=:)
|
||||
H: He: Li: Be: B:
|
||||
C: N: O: F: Ne:
|
||||
Na: Mg: Al: Si: P:
|
||||
S: Cl: Ar: K: Ca:
|
||||
Sc: Ti: V: Cr: Mn:
|
||||
Fe: Co: Ni: Cu: Zn:
|
||||
Ga: Ge: As: Se: Br:
|
||||
Kr: Rb: Sr: Y: Zr:
|
||||
Nb: Mo: Tc: Ru: Rh:
|
||||
Pd: Ag: Cd: In: Sn:
|
||||
Sb: Te: I: Xe: Cs:
|
||||
Ba: La: Ce: Pr: Nd:
|
||||
Pm: Sm: Eu: Gd: Tb:
|
||||
Dy: Ho: Er: Tm: Yb:
|
||||
Lu: Hf: Ta: W: Re:
|
||||
Os: Ir: Pt: Au: Hg:
|
||||
Tl: Pb: Bi: Po: At:
|
||||
Rn: Fr: Ra: Ac: Th:
|
||||
Pa: U: Np: Pu: Am:
|
||||
Cm: Bk: Cf:tb(c=5,s=:)
|
||||
|
||||
|
||||
If the {echo} keyword is specified, compute saed will provide extra
|
||||
|
||||
@ -24,7 +24,7 @@ twojmax = band limit for bispectrum components (non-negative integer) :l
|
||||
R_1, R_2,... = list of cutoff radii, one for each type (distance units) :l
|
||||
w_1, w_2,... = list of neighbor weights, one for each type :l
|
||||
zero or more keyword/value pairs may be appended :l
|
||||
keyword = {diagonal} or {rmin0} or {switchflag} or {bzeroflag} :l
|
||||
keyword = {diagonal} or {rmin0} or {switchflag} or {bzeroflag} or {quadraticflag}:l
|
||||
{diagonal} value = {0} or {1} or {2} or {3}
|
||||
{0} = all j1, j2, j <= twojmax, j2 <= j1
|
||||
{1} = subset satisfying j1 == j2
|
||||
@ -36,7 +36,10 @@ keyword = {diagonal} or {rmin0} or {switchflag} or {bzeroflag} :l
|
||||
{1} = use switching function
|
||||
{bzeroflag} value = {0} or {1}
|
||||
{0} = do not subtract B0
|
||||
{1} = subtract B0 :pre
|
||||
{1} = subtract B0
|
||||
{quadraticflag} value = {0} or {1}
|
||||
{0} = do not generate quadratic terms
|
||||
{1} = generate quadratic terms :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
@ -151,7 +154,7 @@ linear mapping from radial distance to polar angle {theta0} on the
|
||||
The argument {twojmax} and the keyword {diagonal} define which
|
||||
bispectrum components are generated. See section below on output for a
|
||||
detailed explanation of the number of bispectrum components and the
|
||||
ordered in which they are listed
|
||||
ordered in which they are listed.
|
||||
|
||||
The keyword {switchflag} can be used to turn off the switching
|
||||
function.
|
||||
@ -162,6 +165,14 @@ 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 keyword {quadraticflag} determines whether or not the
|
||||
quadratic analogs to the bispectrum quantities are generated.
|
||||
These are formed by taking the outer product of the vector
|
||||
of bispectrum components with itself.
|
||||
See section below on output for a
|
||||
detailed explanation of the number of quadratic terms and the
|
||||
ordered in which they are listed.
|
||||
|
||||
NOTE: If you have a bonded system, then the settings of
|
||||
"special_bonds"_special_bonds.html command can remove pairwise
|
||||
interactions between atoms in the same bond, angle, or dihedral. This
|
||||
@ -180,7 +191,7 @@ command that includes all pairs in the neighbor list.
|
||||
|
||||
Compute {sna/atom} calculates a per-atom array, each column
|
||||
corresponding to a particular bispectrum component. The total number
|
||||
of columns and the identities of the bispectrum component contained in
|
||||
of columns and the identity of the bispectrum component contained in
|
||||
each column depend on the values of {twojmax} and {diagonal}, as
|
||||
described by the following piece of python code:
|
||||
|
||||
@ -213,6 +224,20 @@ block contains six sub-blocks corresponding to the {xx}, {yy}, {zz},
|
||||
notation. Each of these sub-blocks contains one column for each
|
||||
bispectrum component, the same as for compute {sna/atom}
|
||||
|
||||
For example, if {K}=30 and ntypes=1, the number of columns in the per-atom
|
||||
arrays generated by {sna/atom}, {snad/atom}, and {snav/atom}
|
||||
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
|
||||
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})
|
||||
|
||||
These values 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
|
||||
@ -231,7 +256,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
[Default:]
|
||||
|
||||
The optional keyword defaults are {diagonal} = 0, {rmin0} = 0,
|
||||
{switchflag} = 1, {bzeroflag} = 0.
|
||||
{switchflag} = 1, {bzeroflag} = 1, {quadraticflag} = 0,
|
||||
|
||||
:line
|
||||
|
||||
|
||||
@ -17,6 +17,7 @@ Computes :h1
|
||||
compute_chunk_atom
|
||||
compute_cluster_atom
|
||||
compute_cna_atom
|
||||
compute_cnp_atom
|
||||
compute_com
|
||||
compute_com_chunk
|
||||
compute_contact_atom
|
||||
|
||||
@ -10,53 +10,93 @@ create_bonds command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
create_bonds group-ID group2-ID btype rmin rmax :pre
|
||||
create_bonds style args ... keyword value ... :pre
|
||||
|
||||
group-ID = ID of first group
|
||||
group2-ID = ID of second group, bonds will be between atoms in the 2 groups
|
||||
btype = bond type of created bonds
|
||||
rmin = minimum distance between pair of atoms to bond together
|
||||
rmax = minimum distance between pair of atoms to bond together :ul
|
||||
style = {many} or {single/bond} or {single/angle} or {single/dihedral} :ule,l
|
||||
{many} args = group-ID group2-ID btype rmin rmax
|
||||
group-ID = ID of first group
|
||||
group2-ID = ID of second group, bonds will be between atoms in the 2 groups
|
||||
btype = bond type of created bonds
|
||||
rmin = minimum distance between pair of atoms to bond together
|
||||
rmax = minimum distance between pair of atoms to bond together
|
||||
{single/bond} args = btype batom1 batom2
|
||||
btype = bond type of new bond
|
||||
batom1,batom2 = atom IDs for two atoms in bond
|
||||
{single/angle} args = atype aatom1 aatom2 aatom3
|
||||
atype = bond type of new angle
|
||||
aatom1,aatom2,aatom3 = atom IDs for three atoms in angle
|
||||
{single/dihedral} args = dtype datom1 datom2 datom3 datom4
|
||||
dtype = bond type of new dihedral
|
||||
datom1,datom2,datom3,datom4 = atom IDs for four atoms in dihedral :pre
|
||||
zero or more keyword/value pairs may be appended :l
|
||||
keyword = {special} :l
|
||||
{special} value = {yes} or {no} :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
create_bonds all all 1 1.0 1.2
|
||||
create_bonds surf solvent 3 2.0 2.4 :pre
|
||||
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
|
||||
|
||||
[Description:]
|
||||
|
||||
Create bonds between pairs of atoms that meet specified distance
|
||||
criteria. The bond interactions can then be computed during a
|
||||
simulation by the bond potential defined by the
|
||||
"bond_style"_bond_style.html and "bond_coeff"_bond_coeff.html
|
||||
commands. This command is useful for adding bonds to a system,
|
||||
e.g. between nearest neighbors in a lattice of atoms, without having
|
||||
to enumerate all the bonds in the data file read by the
|
||||
"read_data"_read_data.html command.
|
||||
Create bonds between pairs of atoms that meet a specified distance
|
||||
criteria. Or create a single bond, angle, or dihedral between 2, 3,
|
||||
or 4 specified atoms.
|
||||
|
||||
Note that the flexibility of this command is limited. It can be used
|
||||
several times to create different types of bond at different
|
||||
distances. But it cannot typically create all the bonds that would
|
||||
normally be defined in a complex system of molecules. Also note that
|
||||
this command does not add any 3-body or 4-body interactions which,
|
||||
depending on your model, may be induced by added bonds,
|
||||
e.g. "angle"_angle_style.html, "dihedral"_dihedral_style.html, or
|
||||
"improper"_improper_style.html interactions.
|
||||
The new bond (angle, dihedral) interactions will then be computed
|
||||
during a simulation by the bond (angle, dihedral) potential defined by
|
||||
the "bond_style"_bond_style.html, "bond_coeff"_bond_coeff.html,
|
||||
"angle_style"_angle_style.html, "angle_coeff"_angle_coeff.html,
|
||||
"dihedral_style"_dihedral_style.html,
|
||||
"dihedral_coeff"_dihedral_coeff.html commands.
|
||||
|
||||
All created bonds will be between pairs of atoms I,J where I is in one
|
||||
of the two specified groups, and J is in the other. The two groups
|
||||
can be the same, e.g. group "all". The created bonds will be of bond
|
||||
type {btype}, where {btype} must be a value between 1 and the number
|
||||
of bond types defined. This maximum value is set by the "bond types"
|
||||
field in the header of the data file read by the
|
||||
"read_data"_read_data.html command, or via the optional "bond/types"
|
||||
argument of the "create_box"_create_box.html command.
|
||||
The {many} style is useful for adding bonds to a system, e.g. between
|
||||
nearest neighbors in a lattice of atoms, without having to enumerate
|
||||
all the bonds in the data file read by the "read_data"_read_data.html
|
||||
command.
|
||||
|
||||
The {single} styles are useful for adding bonds, angles, dihedrals
|
||||
to a system incrementally, then continuing a simulation.
|
||||
|
||||
Note that this command does not auto-create any angle or dihedral
|
||||
interactions when a bond is added. Nor does it auto-create any bonds
|
||||
when an angle or dihedral is added. Or auto-create any angles when a
|
||||
dihedral is added. Thus the flexibility of this command is limited.
|
||||
It can be used several times to create different types of bond at
|
||||
different distances. But it cannot typically auto-create all the
|
||||
bonds or angles or dihedral that would normally be defined in a data
|
||||
file for a complex system of molecules.
|
||||
|
||||
NOTE: If the system has no bonds (angles, dihedrals) to begin with, or
|
||||
if more bonds per atom are being added than currently exist, then you
|
||||
must insure that the number of bond types and the maximum number of
|
||||
bonds per atom are set to large enough values. And similarly for
|
||||
angles and dihedrals. Otherwise an error may occur when too many
|
||||
bonds (angles, dihedrals) are added to an atom. If the
|
||||
"read_data"_read_data.html command is used to define the system, these
|
||||
parameters can be set via the "bond types" and "extra bond per atom"
|
||||
fields in the header section of the data file. If the
|
||||
"create_box"_create_box.html command is used to define the system,
|
||||
these 2 parameters can be set via its optional "bond/types" and
|
||||
"extra/bond/per/atom" arguments. And similarly for angles and
|
||||
dihedrals. See the doc pages for these 2 commands for details.
|
||||
|
||||
:line
|
||||
|
||||
The {many} style will create bonds between pairs of atoms I,J where I
|
||||
is in one of the two specified groups, and J is in the other. The two
|
||||
groups can be the same, e.g. group "all". The created bonds will be
|
||||
of bond type {btype}, where {btype} must be a value between 1 and the
|
||||
number of bond types defined.
|
||||
|
||||
For a bond to be created, an I,J pair of atoms must be a distance D
|
||||
apart such that {rmin} <= D <= {rmax}.
|
||||
|
||||
The following settings must have been made in an input
|
||||
script before this command is used:
|
||||
The following settings must have been made in an input script before
|
||||
this style is used:
|
||||
|
||||
special_bonds weight for 1-2 interactions must be 0.0
|
||||
a "pair_style"_pair_style.html must be defined
|
||||
@ -69,8 +109,8 @@ cannot appear in the neighbor list, to avoid creation of duplicate
|
||||
bonds. The neighbor list for all atom type pairs must also extend to
|
||||
a distance that encompasses the {rmax} for new bonds to create.
|
||||
|
||||
An additional requirement is that your system must be ready to perform
|
||||
a simulation. This means, for example, that all
|
||||
An additional requirement for this style is that your system must be
|
||||
ready to perform a simulation. This means, for example, that all
|
||||
"pair_style"_pair_style.html coefficients be set via the
|
||||
"pair_coeff"_pair_coeff.html command. A "bond_style"_bond_style.html
|
||||
command and all bond coefficients must also be set, even if no bonds
|
||||
@ -83,17 +123,58 @@ executes, e.g. if you wish to use long-range Coulombic interactions
|
||||
via the "kspace_style"_kspace_style.html command for your subsequent
|
||||
simulation.
|
||||
|
||||
NOTE: If the system has no bonds to begin with, or if more bonds per
|
||||
atom are being added than currently exist, then you must insure that
|
||||
the number of bond types and the maximum number of bonds per atom are
|
||||
set to large enough values. Otherwise an error may occur when too
|
||||
many bonds are added to an atom. If the "read_data"_read_data.html
|
||||
command is used to define the system, these 2 parameters can be set
|
||||
via the "bond types" and "extra bond per atom" fields in the header
|
||||
section of the data file. If the "create_box"_create_box.html command
|
||||
is used to define the system, these 2 parameters can be set via its
|
||||
optional "bond/types" and "extra/bond/per/atom" arguments. See the
|
||||
doc pages for the 2 commands for details.
|
||||
:line
|
||||
|
||||
The {single/bond} style creates a single bond of type {btype} between
|
||||
two atoms with IDs {batom1} and {batom2}. {Btype} must be a value
|
||||
between 1 and the number of bond types defined.
|
||||
|
||||
The {single/angle} style creates a single angle of type {atype}
|
||||
between three atoms with IDs {aatom1}, {aatom2}, and {aatom3}. The
|
||||
ordering of the atoms is the same as in the {Angles} section of a data
|
||||
file read by the "read_data"_read_data command. I.e. the 3 atoms are
|
||||
ordered linearly within the angle; the central atom is {aatom2}.
|
||||
{Atype} must be a value between 1 and the number of angle types
|
||||
defined.
|
||||
|
||||
The {single/dihedral} style creates a single dihedral of type {btype}
|
||||
between two atoms with IDs {batom1} and {batom2}. The ordering of the
|
||||
atoms is the same as in the {Dihedrals} section of a data file read by
|
||||
the "read_data"_read_data command. I.e. the 4 atoms are ordered
|
||||
linearly within the dihedral. {Dtype} must be a value between 1 and
|
||||
the number of dihedral types defined.
|
||||
|
||||
:line
|
||||
|
||||
The keyword {special} controls whether an internal list of special
|
||||
bonds is created after one or more bonds, or a single angle or
|
||||
dihedral is added to the system.
|
||||
|
||||
The default value is {yes}. A value of {no} cannot be used
|
||||
with the {many} style.
|
||||
|
||||
This is an expensive operation since the bond topology for the system
|
||||
must be walked to find all 1-2, 1-3, 1-4 interactions to store in an
|
||||
internal list, which is used when pairwise interactions are weighted;
|
||||
see the "special_bonds"_special_bonds.html command for details.
|
||||
|
||||
Thus if you are adding a few bonds or a large list of angles all at
|
||||
the same time, by using this command repeatedly, it is more efficient
|
||||
to only trigger the internal list to be created once, after the last
|
||||
bond (or angle, or dihedral) is added:
|
||||
|
||||
create_bonds single/bond 5 52 98 special no
|
||||
create_bonds single/bond 5 73 74 special no
|
||||
...
|
||||
create_bonds single/bond 5 17 386 special no
|
||||
create_bonds single/bond 4 112 183 special yes :pre
|
||||
|
||||
Note that you MUST insure the internal list is re-built after the last
|
||||
bond (angle, dihedral) is added, before performing a simulation.
|
||||
Otherwise pairwise interactions will not be properly excluded or
|
||||
weighted. LAMMPS does NOT check that you have done this correctly.
|
||||
|
||||
:line
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
@ -105,4 +186,6 @@ molecule template files via the "molecule"_molecule.html and
|
||||
|
||||
"create_atoms"_create_atoms.html, "delete_bonds"_delete_bonds.html
|
||||
|
||||
[Default:] none
|
||||
[Default:]
|
||||
|
||||
The keyword default is special = yes.
|
||||
|
||||
@ -10,25 +10,25 @@ dihedral_style charmm command :h3
|
||||
dihedral_style charmm/intel command :h3
|
||||
dihedral_style charmm/kk command :h3
|
||||
dihedral_style charmm/omp command :h3
|
||||
dihedral_style charmmfsh command :h3
|
||||
dihedral_style charmmfsw command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
dihedral_style style :pre
|
||||
|
||||
style = {charmm} or {charmmfsh} :ul
|
||||
style = {charmm} or {charmmfsw} :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
dihedral_style charmm
|
||||
dihedral_style charmmfsh
|
||||
dihedral_style charmmfsw
|
||||
dihedral_coeff 1 0.2 1 180 1.0
|
||||
dihedral_coeff 2 1.8 1 0 1.0
|
||||
dihedral_coeff 1 3.1 2 180 0.5 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
The {charmm} and {charmmfsh} dihedral styles use the potential
|
||||
The {charmm} and {charmmfsw} dihedral styles use the potential
|
||||
|
||||
:c,image(Eqs/dihedral_charmm.jpg)
|
||||
|
||||
@ -38,10 +38,15 @@ field (see comment on weighting factors below). See
|
||||
"(Cornell)"_#dihedral-Cornell for a description of the AMBER force
|
||||
field.
|
||||
|
||||
NOTE: The newer {charmmfsh} style was released in March 2017. We
|
||||
NOTE: The newer {charmmfsw} style was released in March 2017. We
|
||||
recommend it be used instead of the older {charmm} style when running
|
||||
a simulation with the CHARMM force field. See the discussion below
|
||||
and more details on the "pair_style charmm"_pair_charmm.html doc page.
|
||||
a simulation with the CHARMM force field, either with long-range
|
||||
Coulombics or a Coulomb cutoff, via the "pair_style
|
||||
lj/charmmfsw/coul/long"_pair_charmm.html and "pair_style
|
||||
lj/charmmfsw/coul/charmmfsh"_pair_charmm.html commands respectively.
|
||||
Otherwise the older {charmm} style is fine to use. See the discussion
|
||||
below and more details on the "pair_style charmm"_pair_charmm.html doc
|
||||
page.
|
||||
|
||||
The following coefficients must be defined for each dihedral type via the
|
||||
"dihedral_coeff"_dihedral_coeff.html command as in the example above, or in
|
||||
@ -82,13 +87,19 @@ special_bonds 1-4 scaling factor to 0.0 (which is the
|
||||
default). Otherwise 1-4 non-bonded interactions in dihedrals will be
|
||||
computed twice.
|
||||
|
||||
For simulations using the CHARMM force field, the difference between
|
||||
the {charmm} and {charmmfsh} styles is in the computation of the 1-4
|
||||
non-bond interactions, if the distance between the two atoms is within
|
||||
the switching distance of the pairwise potential defined by the
|
||||
corresponding CHARMM pair style, i.e. between the inner and outer
|
||||
cutoffs specified for the pair style. See the discussion on the
|
||||
"CHARMM pair_style"_pair_charmm.html doc page for details.
|
||||
For simulations using the CHARMM force field with a Coulomb cutoff,
|
||||
the difference between the {charmm} and {charmmfsw} styles is in the
|
||||
computation of the 1-4 non-bond interactions, though only if the
|
||||
distance between the two atoms is within the switching region of the
|
||||
pairwise potential defined by the corresponding CHARMM pair style,
|
||||
i.e. within the outer cutoff specified for the pair style. The
|
||||
{charmmfsw} style should only be used when using the corresponding
|
||||
"pair_style lj/charmmfsw/coul/charmmfsw"_pair_charmm.html or
|
||||
"pair_style lj/charmmfsw/coul/long"_pair_charmm.html commands. Use
|
||||
the {charmm} style with the older "pair_style"_pair_charmm.html
|
||||
commands that have just "charmm" in their style name. See the
|
||||
discussion on the "CHARMM pair_style"_pair_charmm.html doc page for
|
||||
details.
|
||||
|
||||
Note that for AMBER force fields, which use pair styles with "lj/cut",
|
||||
the special_bonds 1-4 scaling factor should be set to the AMBER
|
||||
@ -96,7 +107,7 @@ defaults (1/2 and 5/6) and all the dihedral weighting factors (4th
|
||||
coeff above) must be set to 0.0. In this case, you can use any pair
|
||||
style you wish, since the dihedral does not need any Lennard-Jones
|
||||
parameter information and will not compute any 1-4 non-bonded
|
||||
interactions. Likewise the {charmm} or {charmmfsh} styles are
|
||||
interactions. Likewise the {charmm} or {charmmfsw} styles are
|
||||
identical in this case since no 1-4 non-bonded interactions are
|
||||
computed.
|
||||
|
||||
@ -127,7 +138,15 @@ more instructions on how to use the accelerated styles effectively.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This dihedral style can only be used if LAMMPS was built with the
|
||||
When using run_style "respa"_run_style.html, these dihedral styles
|
||||
must be assigned to the same r-RESPA level as {pair} or {outer}.
|
||||
|
||||
When used in combination with CHARMM pair styles, the 1-4
|
||||
"special_bonds"_special_bonds.html scaling factors must be set to 0.0.
|
||||
Otherwise non-bonded contributions for these 1-4 pairs will be
|
||||
computed multiple times.
|
||||
|
||||
These dihedral styles can only be used if LAMMPS was built with the
|
||||
MOLECULE package. See the "Making
|
||||
LAMMPS"_Section_start.html#start_3 section for more info on packages.
|
||||
|
||||
|
||||
@ -14,10 +14,11 @@ dihedral_style spherical :pre
|
||||
|
||||
[Examples:]
|
||||
|
||||
dihedral_coeff 1 1 286.1 1 124 1 1 90.0 0 1 90.0 0
|
||||
dihedral_coeff 1 3 286.1 1 114 1 1 90 0 1 90.0 0 &
|
||||
17.3 0 0.0 0 1 158 1 0 0.0 0 &
|
||||
15.1 0 0.0 0 0 0.0 0 1 167.3 1 :pre
|
||||
dihedral_coeff 1 1 286.1 1 124 1 1 90.0 0 1 90.0 0
|
||||
dihedral_coeff 1 3 69.3 1 93.9 1 1 90 0 1 90 0 &
|
||||
49.1 0 0.00 0 1 74.4 1 0 0.00 0 &
|
||||
25.2 0 0.00 0 0 0.00 0 1 48.1 1
|
||||
:pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -35,13 +36,14 @@ the dihedral interaction even if it requires adding additional terms to
|
||||
the expansion (as was done in the second example). A careful choice of
|
||||
parameters can prevent singularities that occur with traditional
|
||||
force-fields whenever theta1 or theta2 approach 0 or 180 degrees.
|
||||
|
||||
The last example above corresponds to an interaction with a single energy
|
||||
minima located at phi=114, theta1=158, theta2=167.3 degrees, and it remains
|
||||
minima located near phi=93.9, theta1=74.4, theta2=48.1 degrees, and it remains
|
||||
numerically stable at all angles (phi, theta1, theta2). In this example,
|
||||
the coefficients 17.3, and 15.1 can be physically interpreted as the
|
||||
the coefficients 49.1, and 25.2 can be physically interpreted as the
|
||||
harmonic spring constants for theta1 and theta2 around their minima.
|
||||
The coefficient 286.1 is the harmonic spring constant for phi after
|
||||
division by sin(158)*sin(167.3) (the minima positions for theta1 and theta2).
|
||||
The coefficient 69.3 is the harmonic spring constant for phi after
|
||||
division by sin(74.4)*sin(48.1) (the minima positions for theta1 and theta2).
|
||||
|
||||
The following coefficients must be defined for each dihedral type via the
|
||||
"dihedral_coeff"_dihedral_coeff.html command as in the example above, or in
|
||||
|
||||
@ -7,12 +7,12 @@
|
||||
:line
|
||||
|
||||
dump command :h3
|
||||
"dump custom/vtk"_dump_custom_vtk.html command :h3
|
||||
"dump vtk"_dump_vtk.html command :h3
|
||||
"dump h5md"_dump_h5md.html command :h3
|
||||
"dump molfile"_dump_molfile.html command :h3
|
||||
"dump netcdf"_dump_netcdf.html command :h3
|
||||
"dump image"_dump_image.html command :h3
|
||||
"dump movie"_dump_image.html command :h3
|
||||
"dump molfile"_dump_molfile.html command :h3
|
||||
"dump nc"_dump_nc.html command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
@ -20,7 +20,7 @@ dump ID group-ID style N file args :pre
|
||||
|
||||
ID = user-assigned name for the dump :ulb,l
|
||||
group-ID = ID of the group of atoms to be dumped :l
|
||||
style = {atom} or {atom/gz} or {atom/mpiio} or {cfg} or {cfg/gz} or {cfg/mpiio} or {dcd} or {xtc} or {xyz} or {xyz/gz} or {xyz/mpiio} or {h5md} or {image} or {movie} or {molfile} or {local} or {custom} or {custom/gz} or {custom/mpiio} :l
|
||||
style = {atom} or {atom/gz} or {atom/mpiio} or {cfg} or {cfg/gz} or {cfg/mpiio} or {custom} or {custom/gz} or {custom/mpiio} or {dcd} or {h5md} or {image} or or {local} or {molfile} or {movie} or {netcdf} or {netcdf/mpiio} or {vtk} or {xtc} or {xyz} or {xyz/gz} or {xyz/mpiio} :l
|
||||
N = dump every this many timesteps :l
|
||||
file = name of file to write dump info to :l
|
||||
args = list of arguments for a particular style :l
|
||||
@ -30,33 +30,22 @@ args = list of arguments for a particular style :l
|
||||
{cfg} args = same as {custom} args, see below
|
||||
{cfg/gz} args = same as {custom} args, see below
|
||||
{cfg/mpiio} args = same as {custom} args, see below
|
||||
{custom}, {custom/gz}, {custom/mpiio} args = see below
|
||||
{dcd} args = none
|
||||
{h5md} args = discussed on "dump h5md"_dump_h5md.html doc page
|
||||
{image} args = discussed on "dump image"_dump_image.html doc page
|
||||
{local} args = see below
|
||||
{molfile} args = discussed on "dump molfile"_dump_molfile.html doc page
|
||||
{movie} args = discussed on "dump image"_dump_image.html doc page
|
||||
{netcdf} args = discussed on "dump netcdf"_dump_netcdf.html doc page
|
||||
{netcdf/mpiio} args = discussed on "dump netcdf"_dump_netcdf.html doc page
|
||||
{vtk} args = same as {custom} args, see below, also "dump vtk"_dump_vtk.html doc page
|
||||
{xtc} args = none
|
||||
{xyz} args = none :pre
|
||||
{xyz/gz} args = none :pre
|
||||
{xyz} args = none
|
||||
{xyz/gz} args = none
|
||||
{xyz/mpiio} args = none :pre
|
||||
|
||||
{custom/vtk} args = similar to custom args below, discussed on "dump custom/vtk"_dump_custom_vtk.html doc page :pre
|
||||
|
||||
{h5md} args = discussed on "dump h5md"_dump_h5md.html doc page :pre
|
||||
|
||||
{image} args = discussed on "dump image"_dump_image.html doc page :pre
|
||||
|
||||
{movie} args = discussed on "dump image"_dump_image.html doc page :pre
|
||||
|
||||
{molfile} args = discussed on "dump molfile"_dump_molfile.html doc page
|
||||
|
||||
{nc} args = discussed on "dump nc"_dump_nc.html doc page :pre
|
||||
|
||||
{local} args = list of local attributes
|
||||
possible attributes = index, c_ID, c_ID\[I\], f_ID, f_ID\[I\]
|
||||
index = enumeration of local values
|
||||
c_ID = local vector calculated by a compute with ID
|
||||
c_ID\[I\] = Ith column of local array calculated by a compute with ID, I can include wildcard (see below)
|
||||
f_ID = local vector calculated by a fix with ID
|
||||
f_ID\[I\] = Ith column of local array calculated by a fix with ID, I can include wildcard (see below) :pre
|
||||
|
||||
{custom} or {custom/gz} or {custom/mpiio} args = list of atom attributes
|
||||
{custom} or {custom/gz} or {custom/mpiio} args = list of atom attributes :l
|
||||
possible attributes = id, mol, proc, procp1, type, element, mass,
|
||||
x, y, z, xs, ys, zs, xu, yu, zu,
|
||||
xsu, ysu, zsu, ix, iy, iz,
|
||||
@ -94,6 +83,15 @@ args = list of arguments for a particular style :l
|
||||
v_name = per-atom vector calculated by an atom-style variable with name
|
||||
d_name = per-atom floating point vector with name, managed by fix property/atom
|
||||
i_name = per-atom integer vector with name, managed by fix property/atom :pre
|
||||
|
||||
{local} args = list of local attributes :l
|
||||
possible attributes = index, c_ID, c_ID\[I\], f_ID, f_ID\[I\]
|
||||
index = enumeration of local values
|
||||
c_ID = local vector calculated by a compute with ID
|
||||
c_ID\[I\] = Ith column of local array calculated by a compute with ID, I can include wildcard (see below)
|
||||
f_ID = local vector calculated by a fix with ID
|
||||
f_ID\[I\] = Ith column of local array calculated by a fix with ID, I can include wildcard (see below) :pre
|
||||
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
@ -331,10 +329,7 @@ bonds and colors.
|
||||
|
||||
Note that {atom}, {custom}, {dcd}, {xtc}, and {xyz} style dump files
|
||||
can be read directly by "VMD"_http://www.ks.uiuc.edu/Research/vmd, a
|
||||
popular molecular viewing program. See
|
||||
"Section 9"_Section_tools.html#vmd of the manual and the
|
||||
tools/lmp2vmd/README.txt file for more information about support in
|
||||
VMD for reading and visualizing LAMMPS dump files.
|
||||
popular molecular viewing program.
|
||||
|
||||
:line
|
||||
|
||||
|
||||
@ -1,339 +0,0 @@
|
||||
"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
|
||||
|
||||
dump custom/vtk command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
dump ID group-ID style N file args :pre
|
||||
|
||||
ID = user-assigned name for the dump :ulb,l
|
||||
group-ID = ID of the group of atoms to be dumped :l
|
||||
style = {custom/vtk} :l
|
||||
N = dump every this many timesteps :l
|
||||
file = name of file to write dump info to :l
|
||||
args = list of arguments for a particular style :l
|
||||
{custom/vtk} args = list of atom attributes
|
||||
possible attributes = id, mol, proc, procp1, type, element, mass,
|
||||
x, y, z, xs, ys, zs, xu, yu, zu,
|
||||
xsu, ysu, zsu, ix, iy, iz,
|
||||
vx, vy, vz, fx, fy, fz,
|
||||
q, mux, muy, muz, mu,
|
||||
radius, diameter, omegax, omegay, omegaz,
|
||||
angmomx, angmomy, angmomz, tqx, tqy, tqz,
|
||||
spin, eradius, ervel, erforce,
|
||||
c_ID, c_ID\[N\], f_ID, f_ID\[N\], v_name :pre
|
||||
|
||||
id = atom ID
|
||||
mol = molecule ID
|
||||
proc = ID of processor that owns atom
|
||||
procp1 = ID+1 of processor that owns atom
|
||||
type = atom type
|
||||
element = name of atom element, as defined by "dump_modify"_dump_modify.html command
|
||||
mass = atom mass
|
||||
x,y,z = unscaled atom coordinates
|
||||
xs,ys,zs = scaled atom coordinates
|
||||
xu,yu,zu = unwrapped atom coordinates
|
||||
xsu,ysu,zsu = scaled unwrapped atom coordinates
|
||||
ix,iy,iz = box image that the atom is in
|
||||
vx,vy,vz = atom velocities
|
||||
fx,fy,fz = forces on atoms
|
||||
q = atom charge
|
||||
mux,muy,muz = orientation of dipole moment of atom
|
||||
mu = magnitude of dipole moment of atom
|
||||
radius,diameter = radius,diameter of spherical particle
|
||||
omegax,omegay,omegaz = angular velocity of spherical particle
|
||||
angmomx,angmomy,angmomz = angular momentum of aspherical particle
|
||||
tqx,tqy,tqz = torque on finite-size particles
|
||||
c_ID = per-atom vector calculated by a compute with ID
|
||||
c_ID\[N\] = Nth column of per-atom array calculated by a compute with ID
|
||||
f_ID = per-atom vector calculated by a fix with ID
|
||||
f_ID\[N\] = Nth column of per-atom array calculated by a fix with ID
|
||||
v_name = per-atom vector calculated by an atom-style variable with name :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
dump dmpvtk all custom/vtk 100 dump*.myforce.vtk id type vx fx
|
||||
dump dmpvtp flow custom/vtk 100 dump*.%.displace.vtp id type c_myD\[1\] c_myD\[2\] c_myD\[3\] v_ke
|
||||
dump e_data all custom/vtk 100 dump*.vtu id type spin eradius fx fy fz eforce :pre
|
||||
|
||||
The style {custom/vtk} is similar to the "custom"_dump.html style but
|
||||
uses the VTK library to write data to VTK simple legacy or XML format
|
||||
depending on the filename extension specified. This can be either
|
||||
{*.vtk} for the legacy format or {*.vtp} and {*.vtu}, respectively,
|
||||
for the XML format; see the "VTK
|
||||
homepage"_http://www.vtk.org/VTK/img/file-formats.pdf for a detailed
|
||||
description of these formats. Since this naming convention conflicts
|
||||
with the way binary output is usually specified (see below),
|
||||
"dump_modify binary"_dump_modify.html allows to set the binary
|
||||
flag for this dump style explicitly.
|
||||
|
||||
[Description:]
|
||||
|
||||
Dump a snapshot of atom quantities to one or more files every N
|
||||
timesteps in a format readable by the "VTK visualization
|
||||
toolkit"_http://www.vtk.org or other visualization tools that use it,
|
||||
e.g. "ParaView"_http://www.paraview.org. The timesteps on which dump
|
||||
output is written can also be controlled by a variable; see the
|
||||
"dump_modify every"_dump_modify.html command for details.
|
||||
|
||||
Only information for atoms in the specified group is dumped. The
|
||||
"dump_modify thresh and region"_dump_modify.html commands can also
|
||||
alter what atoms are included; see details below.
|
||||
|
||||
As described below, special characters ("*", "%") in the filename
|
||||
determine the kind of output.
|
||||
|
||||
IMPORTANT NOTE: Because periodic boundary conditions are enforced only
|
||||
on timesteps when neighbor lists are rebuilt, the coordinates of an
|
||||
atom written to a dump file may be slightly outside the simulation
|
||||
box.
|
||||
|
||||
IMPORTANT NOTE: Unless the "dump_modify sort"_dump_modify.html
|
||||
option is invoked, the lines of atom information written to dump files
|
||||
will be in an indeterminate order for each snapshot. This is even
|
||||
true when running on a single processor, if the "atom_modify
|
||||
sort"_atom_modify.html option is on, which it is by default. In this
|
||||
case atoms are re-ordered periodically during a simulation, due to
|
||||
spatial sorting. It is also true when running in parallel, because
|
||||
data for a single snapshot is collected from multiple processors, each
|
||||
of which owns a subset of the atoms.
|
||||
|
||||
For the {custom/vtk} style, sorting is off by default. See the
|
||||
"dump_modify"_dump_modify.html doc page for details.
|
||||
|
||||
:line
|
||||
|
||||
The dimensions of the simulation box are written to a separate file
|
||||
for each snapshot (either in legacy VTK or XML format depending on
|
||||
the format of the main dump file) with the suffix {_boundingBox}
|
||||
appended to the given dump filename.
|
||||
|
||||
For an orthogonal simulation box this information is saved as a
|
||||
rectilinear grid (legacy .vtk or .vtr XML format).
|
||||
|
||||
Triclinic simulation boxes (non-orthogonal) are saved as
|
||||
hexahedrons in either legacy .vtk or .vtu XML format.
|
||||
|
||||
Style {custom/vtk} allows you to specify a list of atom attributes
|
||||
to be written to the dump file for each atom. Possible attributes
|
||||
are listed above. In contrast to the {custom} style, the attributes
|
||||
are rearranged to ensure correct ordering of vector components
|
||||
(except for computes and fixes - these have to be given in the right
|
||||
order) and duplicate entries are removed.
|
||||
|
||||
You cannot specify a quantity that is not defined for a particular
|
||||
simulation - such as {q} for atom style {bond}, since that atom style
|
||||
doesn't assign charges. Dumps occur at the very end of a timestep,
|
||||
so atom attributes will include effects due to fixes that are applied
|
||||
during the timestep. An explanation of the possible dump custom/vtk attributes
|
||||
is given below. Since position data is required to write VTK files "x y z"
|
||||
do not have to be specified explicitly.
|
||||
|
||||
The VTK format uses a single snapshot of the system per file, thus
|
||||
a wildcard "*" must be included in the filename, as discussed below.
|
||||
Otherwise the dump files will get overwritten with the new snapshot
|
||||
each time.
|
||||
|
||||
:line
|
||||
|
||||
Dumps are performed on timesteps that are a multiple of N (including
|
||||
timestep 0) and on the last timestep of a minimization if the
|
||||
minimization converges. Note that this means a dump will not be
|
||||
performed on the initial timestep after the dump command is invoked,
|
||||
if the current timestep is not a multiple of N. This behavior can be
|
||||
changed via the "dump_modify first"_dump_modify.html command, which
|
||||
can also be useful if the dump command is invoked after a minimization
|
||||
ended on an arbitrary timestep. N can be changed between runs by
|
||||
using the "dump_modify every"_dump_modify.html command.
|
||||
The "dump_modify every"_dump_modify.html command
|
||||
also allows a variable to be used to determine the sequence of
|
||||
timesteps on which dump files are written. In this mode a dump on the
|
||||
first timestep of a run will also not be written unless the
|
||||
"dump_modify first"_dump_modify.html command is used.
|
||||
|
||||
Dump filenames can contain two wildcard characters. If a "*"
|
||||
character appears in the filename, then one file per snapshot is
|
||||
written and the "*" character is replaced with the timestep value.
|
||||
For example, tmp.dump*.vtk becomes tmp.dump0.vtk, tmp.dump10000.vtk,
|
||||
tmp.dump20000.vtk, etc. Note that the "dump_modify pad"_dump_modify.html
|
||||
command can be used to insure all timestep numbers are the same length
|
||||
(e.g. 00010), which can make it easier to read a series of dump files
|
||||
in order with some post-processing tools.
|
||||
|
||||
If a "%" character appears in the filename, then each of P processors
|
||||
writes a portion of the dump file, and the "%" character is replaced
|
||||
with the processor ID from 0 to P-1 preceded by an underscore character.
|
||||
For example, tmp.dump%.vtp becomes tmp.dump_0.vtp, tmp.dump_1.vtp, ...
|
||||
tmp.dump_P-1.vtp, etc. This creates smaller files and can be a fast
|
||||
mode of output on parallel machines that support parallel I/O for output.
|
||||
|
||||
By default, P = the number of processors meaning one file per
|
||||
processor, but P can be set to a smaller value via the {nfile} or
|
||||
{fileper} keywords of the "dump_modify"_dump_modify.html command.
|
||||
These options can be the most efficient way of writing out dump files
|
||||
when running on large numbers of processors.
|
||||
|
||||
For the legacy VTK format "%" is ignored and P = 1, i.e., only
|
||||
processor 0 does write files.
|
||||
|
||||
Note that using the "*" and "%" characters together can produce a
|
||||
large number of small dump files!
|
||||
|
||||
If {dump_modify binary} is used, the dump file (or files, if "*" or
|
||||
"%" is also used) is written in binary format. A binary dump file
|
||||
will be about the same size as a text version, but will typically
|
||||
write out much faster.
|
||||
|
||||
:line
|
||||
|
||||
This section explains the atom attributes that can be specified as
|
||||
part of the {custom/vtk} style.
|
||||
|
||||
The {id}, {mol}, {proc}, {procp1}, {type}, {element}, {mass}, {vx},
|
||||
{vy}, {vz}, {fx}, {fy}, {fz}, {q} attributes are self-explanatory.
|
||||
|
||||
{id} is the atom ID. {mol} is the molecule ID, included in the data
|
||||
file for molecular systems. {type} is the atom type. {element} is
|
||||
typically the chemical name of an element, which you must assign to
|
||||
each type via the "dump_modify element"_dump_modify.html command.
|
||||
More generally, it can be any string you wish to associate with an
|
||||
atom type. {mass} is the atom mass. {vx}, {vy}, {vz}, {fx}, {fy},
|
||||
{fz}, and {q} are components of atom velocity and force and atomic
|
||||
charge.
|
||||
|
||||
There are several options for outputting atom coordinates. The {x},
|
||||
{y}, {z} attributes are used to write atom coordinates "unscaled", in
|
||||
the appropriate distance "units"_units.html (Angstroms, sigma, etc).
|
||||
Additionally, you can use {xs}, {ys}, {zs} if you want to also save the
|
||||
coordinates "scaled" to the box size, so that each value is 0.0 to
|
||||
1.0. If the simulation box is triclinic (tilted), then all atom
|
||||
coords will still be between 0.0 and 1.0. Use {xu}, {yu}, {zu} if you
|
||||
want the coordinates "unwrapped" by the image flags for each atom.
|
||||
Unwrapped means that if the atom has passed through a periodic
|
||||
boundary one or more times, the value is printed for what the
|
||||
coordinate would be if it had not been wrapped back into the periodic
|
||||
box. Note that using {xu}, {yu}, {zu} means that the coordinate
|
||||
values may be far outside the box bounds printed with the snapshot.
|
||||
Using {xsu}, {ysu}, {zsu} is similar to using {xu}, {yu}, {zu}, except
|
||||
that the unwrapped coordinates are scaled by the box size. Atoms that
|
||||
have passed through a periodic boundary will have the corresponding
|
||||
coordinate increased or decreased by 1.0.
|
||||
|
||||
The image flags can be printed directly using the {ix}, {iy}, {iz}
|
||||
attributes. For periodic dimensions, they specify which image of the
|
||||
simulation box the atom is considered to be in. An image of 0 means
|
||||
it is inside the box as defined. A value of 2 means add 2 box lengths
|
||||
to get the true value. A value of -1 means subtract 1 box length to
|
||||
get the true value. LAMMPS updates these flags as atoms cross
|
||||
periodic boundaries during the simulation.
|
||||
|
||||
The {mux}, {muy}, {muz} attributes are specific to dipolar systems
|
||||
defined with an atom style of {dipole}. They give the orientation of
|
||||
the atom's point dipole moment. The {mu} attribute gives the
|
||||
magnitude of the atom's dipole moment.
|
||||
|
||||
The {radius} and {diameter} attributes are specific to spherical
|
||||
particles that have a finite size, such as those defined with an atom
|
||||
style of {sphere}.
|
||||
|
||||
The {omegax}, {omegay}, and {omegaz} attributes are specific to
|
||||
finite-size spherical particles that have an angular velocity. Only
|
||||
certain atom styles, such as {sphere} define this quantity.
|
||||
|
||||
The {angmomx}, {angmomy}, and {angmomz} attributes are specific to
|
||||
finite-size aspherical particles that have an angular momentum. Only
|
||||
the {ellipsoid} atom style defines this quantity.
|
||||
|
||||
The {tqx}, {tqy}, {tqz} attributes are for finite-size particles that
|
||||
can sustain a rotational torque due to interactions with other
|
||||
particles.
|
||||
|
||||
The {spin}, {eradius}, {ervel}, and {erforce} attributes are for
|
||||
particles that represent nuclei and electrons modeled with the
|
||||
electronic force field (EFF). See "atom_style
|
||||
electron"_atom_style.html and "pair_style eff"_pair_eff.html for more
|
||||
details.
|
||||
|
||||
The {c_ID} and {c_ID\[N\]} attributes allow per-atom vectors or arrays
|
||||
calculated by a "compute"_compute.html to be output. The ID in the
|
||||
attribute should be replaced by the actual ID of the compute that has
|
||||
been defined previously in the input script. See the
|
||||
"compute"_compute.html command for details. There are computes for
|
||||
calculating the per-atom energy, stress, centro-symmetry parameter,
|
||||
and coordination number of individual atoms.
|
||||
|
||||
Note that computes which calculate global or local quantities, as
|
||||
opposed to per-atom quantities, cannot be output in a dump custom/vtk
|
||||
command. Instead, global quantities can be output by the
|
||||
"thermo_style custom"_thermo_style.html command, and local quantities
|
||||
can be output by the dump local command.
|
||||
|
||||
If {c_ID} is used as an attribute, then the per-atom vector calculated
|
||||
by the compute is printed. If {c_ID\[N\]} is used, then N must be in
|
||||
the range from 1-M, which will print the Nth column of the M-length
|
||||
per-atom array calculated by the compute.
|
||||
|
||||
The {f_ID} and {f_ID\[N\]} attributes allow vector or array per-atom
|
||||
quantities calculated by a "fix"_fix.html to be output. The ID in the
|
||||
attribute should be replaced by the actual ID of the fix that has been
|
||||
defined previously in the input script. The "fix
|
||||
ave/atom"_fix_ave_atom.html command is one that calculates per-atom
|
||||
quantities. Since it can time-average per-atom quantities produced by
|
||||
any "compute"_compute.html, "fix"_fix.html, or atom-style
|
||||
"variable"_variable.html, this allows those time-averaged results to
|
||||
be written to a dump file.
|
||||
|
||||
If {f_ID} is used as a attribute, then the per-atom vector calculated
|
||||
by the fix is printed. If {f_ID\[N\]} is used, then N must be in the
|
||||
range from 1-M, which will print the Nth column of the M-length
|
||||
per-atom array calculated by the fix.
|
||||
|
||||
The {v_name} attribute allows per-atom vectors calculated by a
|
||||
"variable"_variable.html to be output. The name in the attribute
|
||||
should be replaced by the actual name of the variable that has been
|
||||
defined previously in the input script. Only an atom-style variable
|
||||
can be referenced, since it is the only style that generates per-atom
|
||||
values. Variables of style {atom} can reference individual atom
|
||||
attributes, per-atom atom attributes, thermodynamic keywords, or
|
||||
invoke other computes, fixes, or variables when they are evaluated, so
|
||||
this is a very general means of creating quantities to output to a
|
||||
dump file.
|
||||
|
||||
See "Section 10"_Section_modify.html of the manual for information
|
||||
on how to add new compute and fix styles to LAMMPS to calculate
|
||||
per-atom quantities which could then be output into dump files.
|
||||
|
||||
:line
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
The {custom/vtk} style does not support writing of gzipped dump files.
|
||||
|
||||
The {custom/vtk} dump style is part of the USER-VTK 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.
|
||||
|
||||
To use this dump style, you also must link to the VTK library. See
|
||||
the info in lib/vtk/README and insure the Makefile.lammps file in that
|
||||
directory is appropriate for your machine.
|
||||
|
||||
The {custom/vtk} dump style neither supports buffering nor custom
|
||||
format strings.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"dump"_dump.html, "dump image"_dump_image.html,
|
||||
"dump_modify"_dump_modify.html, "undump"_undump.html
|
||||
|
||||
[Default:]
|
||||
|
||||
By default, files are written in ASCII format. If the file extension
|
||||
is not one of .vtk, .vtp or .vtu, the legacy VTK file format is used.
|
||||
|
||||
@ -17,9 +17,7 @@ group-ID = ID of the group of atoms to be imaged :l
|
||||
h5md = style of dump command (other styles {atom} or {cfg} or {dcd} or {xtc} or {xyz} or {local} or {custom} are discussed on the "dump"_dump.html doc page) :l
|
||||
N = dump every this many timesteps :l
|
||||
file.h5 = name of file to write to :l
|
||||
args = list of data elements to dump, with their dump "subintervals".
|
||||
At least one element must be given and image may only be present if
|
||||
position is specified first. :l
|
||||
args = list of data elements to dump, with their dump "subintervals"
|
||||
position options
|
||||
image
|
||||
velocity options
|
||||
@ -29,15 +27,17 @@ position is specified first. :l
|
||||
box value = {yes} or {no}
|
||||
create_group value = {yes} or {no}
|
||||
author value = quoted string :pre
|
||||
:ule
|
||||
|
||||
For the elements {position}, {velocity}, {force} and {species}, one
|
||||
may specify a sub-interval to write the data only every N_element
|
||||
Note that at least one element must be specified and image may only be
|
||||
present if position is specified first.
|
||||
|
||||
For the elements {position}, {velocity}, {force} and {species}, a
|
||||
sub-interval may be specified to write the data only every N_element
|
||||
iterations of the dump (i.e. every N*N_element time steps). This is
|
||||
specified by the option
|
||||
specified by this option directly following the element declaration:
|
||||
|
||||
every N_element :pre
|
||||
|
||||
that follows directly the element declaration.
|
||||
every N_element :pre
|
||||
|
||||
:ule
|
||||
|
||||
|
||||
@ -16,7 +16,8 @@ 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 {buffer} 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
|
||||
{append} arg = {yes} or {no}
|
||||
{append} arg = {yes} or {no} or {at} N
|
||||
N = index of frame written upon first dump
|
||||
{buffer} arg = {yes} or {no}
|
||||
{element} args = E1 E2 ... EN, where N = # of atom types
|
||||
E1,...,EN = element name, e.g. C or Fe or Ga
|
||||
@ -41,6 +42,7 @@ keyword = {append} or {buffer} or {element} or {every} or {fileper} or {first} o
|
||||
{region} arg = region-ID or "none"
|
||||
{scale} arg = {yes} or {no}
|
||||
{sfactor} arg = coordinate scaling factor (> 0.0)
|
||||
{thermo} arg = {yes} or {no}
|
||||
{tfactor} arg = time scaling factor (> 0.0)
|
||||
{sort} arg = {off} or {id} or N or -N
|
||||
off = no sorting of per-atom lines within a snapshot
|
||||
@ -139,12 +141,13 @@ and {dcd}. It also applies only to text output files, not to binary
|
||||
or gzipped or image/movie files. If specified as {yes}, then dump
|
||||
snapshots are appended to the end of an existing dump file. If
|
||||
specified as {no}, then a new dump file will be created which will
|
||||
overwrite an existing file with the same name. This keyword can only
|
||||
take effect if the dump_modify command is used after the
|
||||
"dump"_dump.html command, but before the first command that causes
|
||||
dump snapshots to be output, e.g. a "run"_run.html or
|
||||
"minimize"_minimize.html command. Once the dump file has been opened,
|
||||
this keyword has no further effect.
|
||||
overwrite an existing file with the same name. If the {at} option is present
|
||||
({netcdf} only), then the frame to append to can be specified. Negative values
|
||||
are counted from the end of the file. This keyword can only take effect if the
|
||||
dump_modify command is used after the "dump"_dump.html command, but before the
|
||||
first command that causes dump snapshots to be output, e.g. a "run"_run.html or
|
||||
"minimize"_minimize.html command. Once the dump file has been opened, this
|
||||
keyword has no further effect.
|
||||
|
||||
:line
|
||||
|
||||
@ -413,6 +416,13 @@ most effective when the typical magnitude of position data is between
|
||||
|
||||
:line
|
||||
|
||||
The {thermo} keyword ({netcdf} only) triggers writing of "thermo"_thermo.html
|
||||
information to the dump file alongside per-atom data. The data included in the
|
||||
dump file is identical to the data specified by
|
||||
"thermo_style"_thermo_style.html.
|
||||
|
||||
:line
|
||||
|
||||
The {region} keyword only applies to the dump {custom}, {cfg},
|
||||
{image}, and {movie} styles. If specified, only atoms in the region
|
||||
will be written to the dump file or included in the image/movie. Only
|
||||
|
||||
@ -1,66 +0,0 @@
|
||||
"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
|
||||
|
||||
dump nc command :h3
|
||||
dump nc/mpiio command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
dump ID group-ID nc N file.nc args
|
||||
dump ID group-ID nc/mpiio N file.nc args :pre
|
||||
|
||||
ID = user-assigned name for the dump :ulb,l
|
||||
group-ID = ID of the group of atoms to be imaged :l
|
||||
{nc} or {nc/mpiio} = style of dump command (other styles {atom} or {cfg} or {dcd} or {xtc} or {xyz} or {local} or {custom} are discussed on the "dump"_dump.html doc page) :l
|
||||
N = dump every this many timesteps :l
|
||||
file.nc = name of file to write to :l
|
||||
args = list of per atom data elements to dump, same as for the 'custom' dump style. :l,ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
dump 1 all nc 100 traj.nc type x y z vx vy vz
|
||||
dump_modify 1 append yes at -1 global c_thermo_pe c_thermo_temp c_thermo_press :pre
|
||||
|
||||
dump 1 all nc/mpiio 1000 traj.nc id type x y z :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Dump a snapshot of atom coordinates every N timesteps in Amber-style
|
||||
NetCDF file format. NetCDF files are binary, portable and
|
||||
self-describing. This dump style will write only one file on the root
|
||||
node. The dump style {nc} uses the "standard NetCDF
|
||||
library"_netcdf-home all data is collected on one processor and then
|
||||
written to the dump file. Dump style {nc/mpiio} used the "parallel
|
||||
NetCDF library"_pnetcdf-home and MPI-IO; it has better performance on
|
||||
a larger number of processors. Note that 'nc' outputs all atoms sorted
|
||||
by atom tag while 'nc/mpiio' outputs in order of the MPI rank.
|
||||
|
||||
In addition to per-atom data, also global (i.e. not per atom, but per
|
||||
frame) quantities can be included in the dump file. This can be
|
||||
variables, output from computes or fixes data prefixed with v_, c_ and
|
||||
f_, respectively. These properties are included via
|
||||
"dump_modify"_dump_modify.html {global}.
|
||||
|
||||
:link(netcdf-home,http://www.unidata.ucar.edu/software/netcdf/)
|
||||
:link(pnetcdf-home,http://trac.mcs.anl.gov/projects/parallel-netcdf/)
|
||||
|
||||
:line
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
The {nc} and {nc/mpiio} dump styles are part of the USER-NC-DUMP
|
||||
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.
|
||||
|
||||
:line
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"dump"_dump.html, "dump_modify"_dump_modify.html, "undump"_undump.html
|
||||
|
||||
76
doc/src/dump_netcdf.txt
Normal 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
|
||||
|
||||
dump netcdf command :h3
|
||||
dump netcdf/mpiio command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
dump ID group-ID netcdf N file args
|
||||
dump ID group-ID netcdf/mpiio N file args :pre
|
||||
|
||||
ID = user-assigned name for the dump :ulb,l
|
||||
group-ID = ID of the group of atoms to be imaged :l
|
||||
{netcdf} or {netcdf/mpiio} = style of dump command (other styles {atom} or {cfg} or {dcd} or {xtc} or {xyz} or {local} or {custom} are discussed on the "dump"_dump.html doc page) :l
|
||||
N = dump every this many timesteps :l
|
||||
file = name of file to write dump info to :l
|
||||
args = list of atom attributes, same as for "dump_style custom"_dump.html :l,ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
dump 1 all netcdf 100 traj.nc type x y z vx vy vz
|
||||
dump_modify 1 append yes at -1 thermo yes
|
||||
dump 1 all netcdf/mpiio 1000 traj.nc id type x y z :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Dump a snapshot of atom coordinates every N timesteps in Amber-style
|
||||
NetCDF file format. NetCDF files are binary, portable and
|
||||
self-describing. This dump style will write only one file on the root
|
||||
node. The dump style {netcdf} uses the "standard NetCDF
|
||||
library"_netcdf-home. All data is collected on one processor and then
|
||||
written to the dump file. Dump style {netcdf/mpiio} uses the
|
||||
"parallel NetCDF library"_pnetcdf-home and MPI-IO to write to the dump
|
||||
file in parallel; it has better performance on a larger number of
|
||||
processors. Note that style {netcdf} outputs all atoms sorted by atom
|
||||
tag while style {netcdf/mpiio} outputs atoms in order of their MPI
|
||||
rank.
|
||||
|
||||
NetCDF files can be directly visualized via the following tools:
|
||||
|
||||
Ovito (http://www.ovito.org/). Ovito supports the AMBER convention and
|
||||
all extensions of this dump style. :ule,b
|
||||
|
||||
VMD (http://www.ks.uiuc.edu/Research/vmd/). :l
|
||||
|
||||
AtomEye (http://www.libatoms.org/). The libAtoms version of AtomEye
|
||||
contains a NetCDF reader that is not present in the standard
|
||||
distribution of AtomEye. :l,ule
|
||||
|
||||
In addition to per-atom data, "thermo"_thermo.html data can be included in the
|
||||
dump file. The data included in the dump file is identical to the data specified
|
||||
by "thermo_style"_thermo_style.html.
|
||||
|
||||
:link(netcdf-home,http://www.unidata.ucar.edu/software/netcdf/)
|
||||
:link(pnetcdf-home,http://trac.mcs.anl.gov/projects/parallel-netcdf/)
|
||||
|
||||
:line
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
The {netcdf} and {netcdf/mpiio} dump styles are part of the
|
||||
USER-NETCDF package. They are only enabled if LAMMPS was built with
|
||||
that package. See the "Making LAMMPS"_Section_start.html#start_3
|
||||
section for more info.
|
||||
|
||||
:line
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"dump"_dump.html, "dump_modify"_dump_modify.html, "undump"_undump.html
|
||||
|
||||
179
doc/src/dump_vtk.txt
Normal file
@ -0,0 +1,179 @@
|
||||
"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
|
||||
|
||||
dump vtk command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
dump ID group-ID vtk N file args :pre
|
||||
|
||||
ID = user-assigned name for the dump
|
||||
group-ID = ID of the group of atoms to be dumped
|
||||
vtk = style of dump command (other styles {atom} or {cfg} or {dcd} or {xtc} or {xyz} or {local} or {custom} are discussed on the "dump"_dump.html doc page)
|
||||
N = dump every this many timesteps
|
||||
file = name of file to write dump info to
|
||||
args = same as arguments for "dump_style custom"_dump.html :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
dump dmpvtk all vtk 100 dump*.myforce.vtk id type vx fx
|
||||
dump dmpvtp flow vtk 100 dump*.%.displace.vtp id type c_myD\[1\] c_myD\[2\] c_myD\[3\] v_ke :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Dump a snapshot of atom quantities to one or more files every N
|
||||
timesteps in a format readable by the "VTK visualization
|
||||
toolkit"_http://www.vtk.org or other visualization tools that use it,
|
||||
e.g. "ParaView"_http://www.paraview.org. The timesteps on which dump
|
||||
output is written can also be controlled by a variable; see the
|
||||
"dump_modify every"_dump_modify.html command for details.
|
||||
|
||||
This dump style is similar to "dump_style custom"_dump.html but uses
|
||||
the VTK library to write data to VTK simple legacy or XML format
|
||||
depending on the filename extension specified for the dump file. This
|
||||
can be either {*.vtk} for the legacy format or {*.vtp} and {*.vtu},
|
||||
respectively, for XML format; see the "VTK
|
||||
homepage"_http://www.vtk.org/VTK/img/file-formats.pdf for a detailed
|
||||
description of these formats. Since this naming convention conflicts
|
||||
with the way binary output is usually specified (see below), the
|
||||
"dump_modify binary"_dump_modify.html command allows setting of a
|
||||
binary option for this dump style explicitly.
|
||||
|
||||
Only information for atoms in the specified group is dumped. The
|
||||
"dump_modify thresh and region"_dump_modify.html commands can also
|
||||
alter what atoms are included; see details below.
|
||||
|
||||
As described below, special characters ("*", "%") in the filename
|
||||
determine the kind of output.
|
||||
|
||||
IMPORTANT NOTE: Because periodic boundary conditions are enforced only
|
||||
on timesteps when neighbor lists are rebuilt, the coordinates of an
|
||||
atom written to a dump file may be slightly outside the simulation
|
||||
box.
|
||||
|
||||
IMPORTANT NOTE: Unless the "dump_modify sort"_dump_modify.html option
|
||||
is invoked, the lines of atom information written to dump files will
|
||||
be in an indeterminate order for each snapshot. This is even true
|
||||
when running on a single processor, if the "atom_modify
|
||||
sort"_atom_modify.html option is on, which it is by default. In this
|
||||
case atoms are re-ordered periodically during a simulation, due to
|
||||
spatial sorting. It is also true when running in parallel, because
|
||||
data for a single snapshot is collected from multiple processors, each
|
||||
of which owns a subset of the atoms.
|
||||
|
||||
For the {vtk} style, sorting is off by default. See the
|
||||
"dump_modify"_dump_modify.html doc page for details.
|
||||
|
||||
:line
|
||||
|
||||
The dimensions of the simulation box are written to a separate file
|
||||
for each snapshot (either in legacy VTK or XML format depending on the
|
||||
format of the main dump file) with the suffix {_boundingBox} appended
|
||||
to the given dump filename.
|
||||
|
||||
For an orthogonal simulation box this information is saved as a
|
||||
rectilinear grid (legacy .vtk or .vtr XML format).
|
||||
|
||||
Triclinic simulation boxes (non-orthogonal) are saved as
|
||||
hexahedrons in either legacy .vtk or .vtu XML format.
|
||||
|
||||
Style {vtk} allows you to specify a list of atom attributes to be
|
||||
written to the dump file for each atom. The list of possible attributes
|
||||
is the same as for the "dump_style custom"_dump.html command; see
|
||||
its doc page for a listing and an explanation of each attribute.
|
||||
|
||||
NOTE: Since position data is required to write VTK files the atom
|
||||
attributes "x y z" do not have to be specified explicitly; they will
|
||||
be included in the dump file regardless. Also, in contrast to the
|
||||
{custom} style, the specified {vtk} attributes are rearranged to
|
||||
ensure correct ordering of vector components (except for computes and
|
||||
fixes - these have to be given in the right order) and duplicate
|
||||
entries are removed.
|
||||
|
||||
The VTK format uses a single snapshot of the system per file, thus
|
||||
a wildcard "*" must be included in the filename, as discussed below.
|
||||
Otherwise the dump files will get overwritten with the new snapshot
|
||||
each time.
|
||||
|
||||
:line
|
||||
|
||||
Dumps are performed on timesteps that are a multiple of N (including
|
||||
timestep 0) and on the last timestep of a minimization if the
|
||||
minimization converges. Note that this means a dump will not be
|
||||
performed on the initial timestep after the dump command is invoked,
|
||||
if the current timestep is not a multiple of N. This behavior can be
|
||||
changed via the "dump_modify first"_dump_modify.html command, which
|
||||
can also be useful if the dump command is invoked after a minimization
|
||||
ended on an arbitrary timestep. N can be changed between runs by
|
||||
using the "dump_modify every"_dump_modify.html command.
|
||||
The "dump_modify every"_dump_modify.html command
|
||||
also allows a variable to be used to determine the sequence of
|
||||
timesteps on which dump files are written. In this mode a dump on the
|
||||
first timestep of a run will also not be written unless the
|
||||
"dump_modify first"_dump_modify.html command is used.
|
||||
|
||||
Dump filenames can contain two wildcard characters. If a "*"
|
||||
character appears in the filename, then one file per snapshot is
|
||||
written and the "*" character is replaced with the timestep value.
|
||||
For example, tmp.dump*.vtk becomes tmp.dump0.vtk, tmp.dump10000.vtk,
|
||||
tmp.dump20000.vtk, etc. Note that the "dump_modify pad"_dump_modify.html
|
||||
command can be used to insure all timestep numbers are the same length
|
||||
(e.g. 00010), which can make it easier to read a series of dump files
|
||||
in order with some post-processing tools.
|
||||
|
||||
If a "%" character appears in the filename, then each of P processors
|
||||
writes a portion of the dump file, and the "%" character is replaced
|
||||
with the processor ID from 0 to P-1 preceded by an underscore character.
|
||||
For example, tmp.dump%.vtp becomes tmp.dump_0.vtp, tmp.dump_1.vtp, ...
|
||||
tmp.dump_P-1.vtp, etc. This creates smaller files and can be a fast
|
||||
mode of output on parallel machines that support parallel I/O for output.
|
||||
|
||||
By default, P = the number of processors meaning one file per
|
||||
processor, but P can be set to a smaller value via the {nfile} or
|
||||
{fileper} keywords of the "dump_modify"_dump_modify.html command.
|
||||
These options can be the most efficient way of writing out dump files
|
||||
when running on large numbers of processors.
|
||||
|
||||
For the legacy VTK format "%" is ignored and P = 1, i.e., only
|
||||
processor 0 does write files.
|
||||
|
||||
Note that using the "*" and "%" characters together can produce a
|
||||
large number of small dump files!
|
||||
|
||||
If {dump_modify binary} is used, the dump file (or files, if "*" or
|
||||
"%" is also used) is written in binary format. A binary dump file
|
||||
will be about the same size as a text version, but will typically
|
||||
write out much faster.
|
||||
|
||||
:line
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
The {vtk} style does not support writing of gzipped dump files.
|
||||
|
||||
The {vtk} dump style is part of the USER-VTK 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.
|
||||
|
||||
To use this dump style, you also must link to the VTK library. See
|
||||
the info in lib/vtk/README and insure the Makefile.lammps file in that
|
||||
directory is appropriate for your machine.
|
||||
|
||||
The {vtk} dump style supports neither buffering or custom format
|
||||
strings.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"dump"_dump.html, "dump image"_dump_image.html,
|
||||
"dump_modify"_dump_modify.html, "undump"_undump.html
|
||||
|
||||
[Default:]
|
||||
|
||||
By default, files are written in ASCII format. If the file extension
|
||||
is not one of .vtk, .vtp or .vtu, the legacy VTK file format is used.
|
||||
|
||||
@ -22,6 +22,11 @@ attribute = {pair} or {kspace} or {atom} :l
|
||||
pparam = parameter to adapt over time
|
||||
I,J = type pair(s) to set parameter for
|
||||
v_name = variable with name that calculates value of pparam
|
||||
{bond} args = bstyle bparam I v_name
|
||||
bstyle = bond style name, e.g. harmonic
|
||||
bparam = parameter to adapt over time
|
||||
I = type bond to set parameter for
|
||||
v_name = variable with name that calculates value of bparam
|
||||
{kspace} arg = v_name
|
||||
v_name = variable with name that calculates scale factor on K-space terms
|
||||
{atom} args = aparam v_name
|
||||
@ -44,6 +49,9 @@ fix 1 all adapt 1 pair soft a 2* 3 v_prefactor
|
||||
fix 1 all adapt 1 pair lj/cut epsilon * * v_scale1 coul/cut scale 3 3 v_scale2 scale yes reset yes
|
||||
fix 1 all adapt 10 atom diameter v_size :pre
|
||||
|
||||
variable ramp_up equal "ramp(0.01,0.5)"
|
||||
fix stretch all adapt 1 bond harmonic r0 1 v_ramp_up :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Change or adapt one or more specific simulation attributes or settings
|
||||
@ -192,6 +200,19 @@ fix 1 all adapt 1 pair soft a * * v_prefactor :pre
|
||||
|
||||
:line
|
||||
|
||||
The {bond} keyword uses the specified variable to change the value of
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
"harmonic"_bond_harmonic.html: k,r0: type bonds :tb(c=3,s=:)
|
||||
|
||||
:line
|
||||
|
||||
The {kspace} keyword used the specified variable as a scale factor on
|
||||
the energy, forces, virial calculated by whatever K-Space solver is
|
||||
defined by the "kspace_style"_kspace_style.html command. If the
|
||||
|
||||
@ -245,8 +245,8 @@ appear the system is converging to your specified pressure. The
|
||||
solution for this is to either (a) zero the velocities of all atoms
|
||||
before performing the minimization, or (b) make sure you are
|
||||
monitoring the pressure without its kinetic component. The latter can
|
||||
be done by outputting the pressure from the fix this command creates
|
||||
(see below) or a pressure fix you define yourself.
|
||||
be done by outputting the pressure from the pressure compute this
|
||||
command creates (see below) or a pressure compute you define yourself.
|
||||
|
||||
NOTE: Because pressure is often a very sensitive function of volume,
|
||||
it can be difficult for the minimizer to equilibrate the system the
|
||||
@ -308,7 +308,7 @@ thermo_modify command (or in two separate commands), then the order in
|
||||
which the keywords are specified is important. Note that a "pressure
|
||||
compute"_compute_pressure.html defines its own temperature compute as
|
||||
an argument when it is specified. The {temp} keyword will override
|
||||
this (for the pressure compute being used by fix npt), but only if the
|
||||
this (for the pressure compute being used by fix box/relax), but only if the
|
||||
{temp} keyword comes after the {press} keyword. If the {temp} keyword
|
||||
comes before the {press} keyword, then the new pressure compute
|
||||
specified by the {press} keyword will be unaffected by the {temp}
|
||||
@ -316,18 +316,16 @@ setting.
|
||||
|
||||
This fix computes a global scalar which can be accessed by various
|
||||
"output commands"_Section_howto.html#howto_15. The scalar is the
|
||||
pressure-volume energy, plus the strain energy, if it exists.
|
||||
|
||||
This fix computes a global scalar which can be accessed by various
|
||||
"output commands"_Section_howto.html#howto_15. The scalar is given
|
||||
by the energy expression shown above. The energy values reported
|
||||
at the end of a minimization run under "Minimization stats" include
|
||||
this energy, and so differ from what LAMMPS normally reports as
|
||||
potential energy. This fix does not support the
|
||||
"fix_modify"_fix_modify.html {energy} option,
|
||||
because that would result in double-counting of the fix energy in the
|
||||
minimization energy. Instead, the fix energy can be explicitly
|
||||
added to the potential energy using one of these two variants:
|
||||
pressure-volume energy, plus the strain energy, if it exists,
|
||||
as described above.
|
||||
The energy values reported at the
|
||||
end of a minimization run under "Minimization stats" include this
|
||||
energy, and so differ from what LAMMPS normally reports as potential
|
||||
energy. This fix does not support the "fix_modify"_fix_modify.html
|
||||
{energy} option, because that would result in double-counting of the
|
||||
fix energy in the minimization energy. Instead, the fix energy can be
|
||||
explicitly added to the potential energy using one of these two
|
||||
variants:
|
||||
|
||||
variable emin equal pe+f_1 :pre
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@ fix_modify myCMAP energy yes :pre
|
||||
This command enables CMAP crossterms to be added to simulations which
|
||||
use the CHARMM force field. These are relevant for any CHARMM model
|
||||
of a peptide or protein sequences that is 3 or more amino-acid
|
||||
residues long; see "(Buck)"_#Buck and "(Brooks)"_#Brooks for details,
|
||||
residues long; see "(Buck)"_#Buck and "(Brooks)"_#Brooks2 for details,
|
||||
including the analytic energy expressions for CMAP interactions. The
|
||||
CMAP crossterms add additional potential energy contributions to pairs
|
||||
of overlapping phi-psi dihedrals of amino-acids, which are important
|
||||
@ -87,8 +87,11 @@ the note below about how to include the CMAP energy when performing an
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
No information about this fix is written to "binary restart
|
||||
files"_restart.html.
|
||||
This fix writes the list of CMAP crossterms to "binary restart
|
||||
files"_restart.html. See the "read_restart"_read_restart.html command
|
||||
for info on how to re-specify a fix in an input script that reads a
|
||||
restart file, so that the operation of the fix continues in an
|
||||
uninterrupted fashion.
|
||||
|
||||
The "fix_modify"_fix_modify.html {energy} option is supported by this
|
||||
fix to add the potential "energy" of the CMAP interactions system's
|
||||
@ -128,5 +131,5 @@ LAMMPS"_Section_start.html#start_3 section for more info on packages.
|
||||
[(Buck)] Buck, Bouguet-Bonnet, Pastor, MacKerell Jr., Biophys J, 90, L36
|
||||
(2006).
|
||||
|
||||
:link(Brooks)
|
||||
:link(Brooks2)
|
||||
[(Brooks)] Brooks, Brooks, MacKerell Jr., J Comput Chem, 30, 1545 (2009).
|
||||
|
||||
@ -565,8 +565,10 @@ more instructions on how to use the accelerated styles effectively.
|
||||
|
||||
[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
|
||||
This fix will restore the initial box settings from "binary restart
|
||||
files"_restart.html, which allows the fix to be properly continue
|
||||
deformation, when using the start/stop options of the "run"_run.html
|
||||
command. 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.
|
||||
|
||||
@ -45,14 +45,14 @@ species {j} in particle {i}, {u_j} is the internal energy of species j,
|
||||
{DeltaH_f,j} is the heat of formation of species {j}, N is the number of
|
||||
molecules represented by the coarse-grained particle, kb is the
|
||||
Boltzmann constant, and T is the temperature of the system. Additionally,
|
||||
it is possible to modify the concentration-dependent particle internal
|
||||
energy relation by adding an energy correction, temperature-dependent
|
||||
it is possible to modify the concentration-dependent particle internal
|
||||
energy relation by adding an energy correction, temperature-dependent
|
||||
correction, and/or a molecule-dependent correction. An energy correction can
|
||||
be specified as a constant (in energy units). A temperature correction can be
|
||||
specified by multiplying a temperature correction coefficient by the
|
||||
internal temperature. A molecular correction can be specified by
|
||||
by multiplying a molecule correction coefficient by the average number of
|
||||
product gas particles in the coarse-grain particle.
|
||||
be specified as a constant (in energy units). A temperature correction can be
|
||||
specified by multiplying a temperature correction coefficient by the
|
||||
internal temperature. A molecular correction can be specified by
|
||||
by multiplying a molecule correction coefficient by the average number of
|
||||
product gas particles in the coarse-grain particle.
|
||||
|
||||
Fix {eos/table/rx} creates interpolation tables of length {N} from {m}
|
||||
internal energy values of each species {u_j} listed in a file as a
|
||||
@ -72,12 +72,12 @@ The second filename specifies a file containing heat of formation
|
||||
{DeltaH_f,j} for each species.
|
||||
|
||||
In cases where the coarse-grain particle represents a single molecular
|
||||
species (i.e., no reactions occur and fix {rx} is not present in the input file),
|
||||
fix {eos/table/rx} can be applied in a similar manner to fix {eos/table}
|
||||
within a non-reactive DPD simulation. In this case, the heat of formation
|
||||
species (i.e., no reactions occur and fix {rx} is not present in the input file),
|
||||
fix {eos/table/rx} can be applied in a similar manner to fix {eos/table}
|
||||
within a non-reactive DPD simulation. In this case, the heat of formation
|
||||
filename is replaced with the heat of formation value for the single species.
|
||||
Additionally, the energy correction and temperature correction coefficients may
|
||||
also be specified as fix arguments.
|
||||
Additionally, the energy correction and temperature correction coefficients may
|
||||
also be specified as fix arguments.
|
||||
|
||||
:line
|
||||
|
||||
@ -138,8 +138,8 @@ used as the species name must correspond with the tags used to define
|
||||
the reactions with the "fix rx"_fix_rx.html command.
|
||||
|
||||
Alternatively, corrections to the EOS can be included by specifying
|
||||
three additional columns that correspond to the energy correction,
|
||||
the temperature correction coefficient and molecule correction
|
||||
three additional columns that correspond to the energy correction,
|
||||
the temperature correction coefficient and molecule correction
|
||||
coefficient. In this case, the format of the file is as follows:
|
||||
|
||||
# HEAT OF FORMATION TABLE (one or more comment or blank lines) :pre
|
||||
|
||||
@ -70,8 +70,8 @@ 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
|
||||
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.
|
||||
|
||||
Currently, it does not support "molecule templates"_molecule.html.
|
||||
|
||||
@ -56,26 +56,25 @@ fix 4 my_gas gcmc 1 10 10 1 123456543 300.0 -12.5 1.0 region disk :pre
|
||||
[Description:]
|
||||
|
||||
This fix performs grand canonical Monte Carlo (GCMC) exchanges of
|
||||
atoms or molecules of the given type with an imaginary ideal gas reservoir at
|
||||
the specified T and chemical potential (mu) as discussed in
|
||||
"(Frenkel)"_#Frenkel. If used with the "fix nvt"_fix_nh.html command,
|
||||
simulations in the grand canonical ensemble (muVT, constant chemical
|
||||
potential, constant volume, and constant temperature) can be
|
||||
atoms or molecules of the given type with an imaginary ideal gas
|
||||
reservoir at the specified T and chemical potential (mu) as discussed
|
||||
in "(Frenkel)"_#Frenkel. If used with the "fix nvt"_fix_nh.html
|
||||
command, simulations in the grand canonical ensemble (muVT, constant
|
||||
chemical potential, constant volume, and constant temperature) can be
|
||||
performed. Specific uses include computing isotherms in microporous
|
||||
materials, or computing vapor-liquid coexistence curves.
|
||||
|
||||
Every N timesteps the fix attempts a number of GCMC exchanges (insertions
|
||||
or deletions) of gas atoms or molecules of
|
||||
the given type between the simulation cell and the imaginary
|
||||
reservoir. It also attempts a number of Monte Carlo
|
||||
moves (translations and molecule rotations) of gas of the given type
|
||||
within the simulation cell or region. The average number of
|
||||
attempted GCMC exchanges is X. The average number of attempted MC moves is M.
|
||||
M should typically be chosen to be
|
||||
approximately equal to the expected number of gas atoms or molecules
|
||||
of the given type within the simulation cell or region,
|
||||
which will result in roughly one
|
||||
MC translation per atom or molecule per MC cycle.
|
||||
Every N timesteps the fix attempts a number of GCMC exchanges
|
||||
(insertions or deletions) of gas atoms or molecules of the given type
|
||||
between the simulation cell and the imaginary reservoir. It also
|
||||
attempts a number of Monte Carlo moves (translations and molecule
|
||||
rotations) of gas of the given type within the simulation cell or
|
||||
region. The average number of attempted GCMC exchanges is X. The
|
||||
average number of attempted MC moves is M. M should typically be
|
||||
chosen to be approximately equal to the expected number of gas atoms
|
||||
or molecules of the given type within the simulation cell or region,
|
||||
which will result in roughly one MC translation per atom or molecule
|
||||
per MC cycle.
|
||||
|
||||
For MC moves of molecular gasses, rotations and translations are each
|
||||
attempted with 50% probability. For MC moves of atomic gasses,
|
||||
@ -83,50 +82,50 @@ translations are attempted 100% of the time. For MC exchanges of
|
||||
either molecular or atomic gasses, deletions and insertions are each
|
||||
attempted with 50% probability.
|
||||
|
||||
All inserted particles are always assigned to two groups: the default group
|
||||
"all" and the group specified in the fix gcmc command (which can also
|
||||
be "all"). In addition, particles are also added to any groups specified
|
||||
by the {group} and {grouptype} keywords.
|
||||
If inserted particles are individual atoms, they are
|
||||
assigned the atom type given by the type argument. If they are molecules,
|
||||
the type argument has no effect and must be set to zero. Instead,
|
||||
the type of each atom in the inserted molecule is specified
|
||||
in the file read by the "molecule"_molecule.html command.
|
||||
All inserted particles are always assigned to two groups: the default
|
||||
group "all" and the group specified in the fix gcmc command (which can
|
||||
also be "all"). In addition, particles are also added to any groups
|
||||
specified by the {group} and {grouptype} keywords. If inserted
|
||||
particles are individual atoms, they are assigned the atom type given
|
||||
by the type argument. If they are molecules, the type argument has no
|
||||
effect and must be set to zero. Instead, the type of each atom in the
|
||||
inserted molecule is specified in the file read by the
|
||||
"molecule"_molecule.html command.
|
||||
|
||||
This fix cannot be used to perform MC insertions of gas atoms or
|
||||
molecules other than the exchanged type, but MC deletions,
|
||||
translations, and rotations can be performed on any atom/molecule in
|
||||
the fix group. All atoms in the simulation cell can be moved using
|
||||
regular time integration translations, e.g. via
|
||||
"fix nvt"_fix_nh.html, resulting in a hybrid GCMC+MD simulation. A
|
||||
smaller-than-usual timestep size may be needed when running such a
|
||||
hybrid simulation, especially if the inserted molecules are not well
|
||||
equilibrated.
|
||||
regular time integration translations, e.g. via "fix nvt"_fix_nh.html,
|
||||
resulting in a hybrid GCMC+MD simulation. A smaller-than-usual
|
||||
timestep size may be needed when running such a hybrid simulation,
|
||||
especially if the inserted molecules are not well equilibrated.
|
||||
|
||||
This command may optionally use the {region} keyword to define an
|
||||
exchange and move volume. The specified region must have been
|
||||
previously defined with a "region"_region.html command. It must be
|
||||
defined with side = {in}. Insertion attempts occur only within the
|
||||
specified region. For non-rectangular regions, random trial
|
||||
points are generated within the rectangular bounding box until a point is found
|
||||
that lies inside the region. If no valid point is generated after 1000 trials,
|
||||
no insertion is performed, but it is counted as an attempted insertion.
|
||||
Move and deletion attempt candidates are selected
|
||||
from gas atoms or molecules within the region. If there are no candidates,
|
||||
no move or deletion is performed, but it is counted as an attempt move
|
||||
or deletion. If an attempted move places the atom or molecule center-of-mass outside
|
||||
the specified region, a new attempted move is generated. This process is repeated
|
||||
until the atom or molecule center-of-mass is inside the specified region.
|
||||
specified region. For non-rectangular regions, random trial points are
|
||||
generated within the rectangular bounding box until a point is found
|
||||
that lies inside the region. If no valid point is generated after 1000
|
||||
trials, no insertion is performed, but it is counted as an attempted
|
||||
insertion. Move and deletion attempt candidates are selected from gas
|
||||
atoms or molecules within the region. If there are no candidates, no
|
||||
move or deletion is performed, but it is counted as an attempt move or
|
||||
deletion. If an attempted move places the atom or molecule
|
||||
center-of-mass outside the specified region, a new attempted move is
|
||||
generated. This process is repeated until the atom or molecule
|
||||
center-of-mass is inside the specified region.
|
||||
|
||||
If used with "fix nvt"_fix_nh.html, the temperature of the imaginary
|
||||
reservoir, T, should be set to be equivalent to the target temperature
|
||||
used in fix nvt. Otherwise, the imaginary reservoir
|
||||
will not be in thermal equilibrium with the simulation cell. Also,
|
||||
it is important that the temperature used by fix nvt be dynamic,
|
||||
which can be achieved as follows:
|
||||
used in fix nvt. Otherwise, the imaginary reservoir will not be in
|
||||
thermal equilibrium with the simulation cell. Also, it is important
|
||||
that the temperature used by fix nvt be dynamic/dof, which can be
|
||||
achieved as follows:
|
||||
|
||||
compute mdtemp mdatoms temp
|
||||
compute_modify mdtemp dynamic yes
|
||||
compute_modify mdtemp dynamic/dof yes
|
||||
fix mdnvt mdatoms nvt temp 300.0 300.0 10.0
|
||||
fix_modify mdnvt temp mdtemp :pre
|
||||
|
||||
@ -137,16 +136,16 @@ interactions. Specifically, avoid performing so many MC translations
|
||||
per timestep that atoms can move beyond the neighbor list skin
|
||||
distance. See the "neighbor"_neighbor.html command for details.
|
||||
|
||||
When an atom or molecule is to be inserted, its
|
||||
coordinates are chosen at a random position within the current
|
||||
simulation cell or region, and new atom velocities are randomly chosen from
|
||||
the specified temperature distribution given by T. The effective
|
||||
temperature for new atom velocities can be increased or decreased
|
||||
using the optional keyword {tfac_insert} (see below). Relative
|
||||
coordinates for atoms in a molecule are taken from the template
|
||||
molecule provided by the user. The center of mass of the molecule
|
||||
is placed at the insertion point. The orientation of the molecule
|
||||
is chosen at random by rotating about this point.
|
||||
When an atom or molecule is to be inserted, its coordinates are chosen
|
||||
at a random position within the current simulation cell or region, and
|
||||
new atom velocities are randomly chosen from the specified temperature
|
||||
distribution given by T. The effective temperature for new atom
|
||||
velocities can be increased or decreased using the optional keyword
|
||||
{tfac_insert} (see below). Relative coordinates for atoms in a
|
||||
molecule are taken from the template molecule provided by the
|
||||
user. The center of mass of the molecule is placed at the insertion
|
||||
point. The orientation of the molecule is chosen at random by rotating
|
||||
about this point.
|
||||
|
||||
Individual atoms are inserted, unless the {mol} keyword is used. It
|
||||
specifies a {template-ID} previously defined using the
|
||||
@ -158,15 +157,15 @@ command for details. The only settings required to be in this file
|
||||
are the coordinates and types of atoms in the molecule.
|
||||
|
||||
When not using the {mol} keyword, you should ensure you do not delete
|
||||
atoms that are bonded to other atoms, or LAMMPS will
|
||||
soon generate an error when it tries to find bonded neighbors. LAMMPS will
|
||||
warn you if any of the atoms eligible for deletion have a non-zero
|
||||
molecule ID, but does not check for this at the time of deletion.
|
||||
atoms that are bonded to other atoms, or LAMMPS will soon generate an
|
||||
error when it tries to find bonded neighbors. LAMMPS will warn you if
|
||||
any of the atoms eligible for deletion have a non-zero molecule ID,
|
||||
but does not check for this at the time of deletion.
|
||||
|
||||
If you wish to insert molecules via the {mol} keyword, that will be
|
||||
treated as rigid bodies, use the {rigid} keyword, specifying as its
|
||||
value the ID of a separate "fix rigid/small"_fix_rigid.html
|
||||
command which also appears in your input script.
|
||||
value the ID of a separate "fix rigid/small"_fix_rigid.html command
|
||||
which also appears in your input script.
|
||||
|
||||
NOTE: If you wish the new rigid molecules (and other rigid molecules)
|
||||
to be thermostatted correctly via "fix rigid/small/nvt"_fix_rigid.html
|
||||
@ -179,43 +178,76 @@ their bonds or angles constrained via SHAKE, use the {shake} keyword,
|
||||
specifying as its value the ID of a separate "fix
|
||||
shake"_fix_shake.html command which also appears in your input script.
|
||||
|
||||
Optionally, users may specify the maximum rotation angle for
|
||||
molecular rotations using the {maxangle} keyword and specifying
|
||||
the angle in degrees. Rotations are performed by generating a random
|
||||
point on the unit sphere and a random rotation angle on the
|
||||
range \[0,maxangle). The molecule is then rotated by that angle about an
|
||||
Optionally, users may specify the maximum rotation angle for molecular
|
||||
rotations using the {maxangle} keyword and specifying the angle in
|
||||
degrees. Rotations are performed by generating a random point on the
|
||||
unit sphere and a random rotation angle on the range
|
||||
\[0,maxangle). The molecule is then rotated by that angle about an
|
||||
axis passing through the molecule center of mass. The axis is parallel
|
||||
to the unit vector defined by the point on the unit sphere.
|
||||
The same procedure is used for randomly rotating molecules when they
|
||||
are inserted, except that the maximum angle is 360 degrees.
|
||||
to the unit vector defined by the point on the unit sphere. The same
|
||||
procedure is used for randomly rotating molecules when they are
|
||||
inserted, except that the maximum angle is 360 degrees.
|
||||
|
||||
Note that fix GCMC does not use configurational bias
|
||||
MC or any other kind of sampling of intramolecular degrees of freedom.
|
||||
Inserted molecules can have different orientations, but they will all
|
||||
have the same intramolecular configuration,
|
||||
which was specified in the molecule command input.
|
||||
Note that fix GCMC does not use configurational bias MC or any other
|
||||
kind of sampling of intramolecular degrees of freedom. Inserted
|
||||
molecules can have different orientations, but they will all have the
|
||||
same intramolecular configuration, which was specified in the molecule
|
||||
command input.
|
||||
|
||||
For atomic gasses, inserted atoms have the specified atom type, but
|
||||
deleted atoms are any atoms that have been inserted or that belong
|
||||
to the user-specified fix group. For molecular gasses, exchanged
|
||||
molecules use the same atom types as in the template molecule
|
||||
supplied by the user. In both cases, exchanged
|
||||
atoms/molecules are assigned to two groups: the default group "all"
|
||||
and the group specified in the fix gcmc command (which can also be
|
||||
"all").
|
||||
deleted atoms are any atoms that have been inserted or that belong to
|
||||
the user-specified fix group. For molecular gasses, exchanged
|
||||
molecules use the same atom types as in the template molecule supplied
|
||||
by the user. In both cases, exchanged atoms/molecules are assigned to
|
||||
two groups: the default group "all" and the group specified in the fix
|
||||
gcmc command (which can also be "all").
|
||||
|
||||
The gas reservoir pressure can be specified using the {pressure}
|
||||
keyword, in which case the user-specified chemical potential is
|
||||
ignored. For non-ideal gas reservoirs, the user may also specify the
|
||||
fugacity coefficient using the {fugacity_coeff} keyword.
|
||||
The chemical potential is a user-specified input parameter defined
|
||||
as:
|
||||
|
||||
:c,image(Eqs/fix_gcmc1.jpg)
|
||||
|
||||
The second term mu_ex is the excess chemical potential due to
|
||||
energetic interactions and is formally zero for the fictitious gas
|
||||
reservoir but is non-zero for interacting systems. So, while the
|
||||
chemical potential of the reservoir and the simulation cell are equal,
|
||||
mu_ex is not, and as a result, the densities of the two are generally
|
||||
quite different. The first term mu_id is the ideal gas contribution
|
||||
to the chemical potential. mu_id can be related to the density or
|
||||
pressure of the fictitious gas reservoir by:
|
||||
|
||||
:c,image(Eqs/fix_gcmc2.jpg)
|
||||
|
||||
where k is Boltzman's constant,
|
||||
T is the user-specified temperature, rho is the number density,
|
||||
P is the pressure, and phi is the fugacity coefficient.
|
||||
The constant Lambda is required for dimensional consistency.
|
||||
For all unit styles except {lj} it is defined as the thermal
|
||||
de Broglie wavelength
|
||||
|
||||
:c,image(Eqs/fix_gcmc3.jpg)
|
||||
|
||||
where h is Planck's constant, and m is the mass of the exchanged atom
|
||||
or molecule. For unit style {lj}, Lambda is simply set to the
|
||||
unity. Note that prior to March 2017, lambda for unit style {lj} was
|
||||
calculated using the above formula with h set to the rather specific
|
||||
value of 0.18292026. Chemical potential under the old definition can
|
||||
be converted to an equivalent value under the new definition by
|
||||
subtracting 3kTln(Lambda_old).
|
||||
|
||||
As an alternative to specifying mu directly, the ideal gas reservoir
|
||||
can be defined by its pressure P using the {pressure} keyword, in
|
||||
which case the user-specified chemical potential is ignored. The user
|
||||
may also specify the fugacity coefficient phi using the
|
||||
{fugacity_coeff} keyword, which defaults to unity.
|
||||
|
||||
The {full_energy} option means that fix GCMC will compute the total
|
||||
potential energy of the entire simulated system. The total system
|
||||
energy before and after the proposed GCMC move is then used in the
|
||||
Metropolis criterion to determine whether or not to accept the
|
||||
proposed GCMC move. By default, this option is off, in which case
|
||||
only partial energies are computed to determine the difference in
|
||||
energy that would be caused by the proposed GCMC move.
|
||||
proposed GCMC move. By default, this option is off, in which case only
|
||||
partial energies are computed to determine the difference in energy
|
||||
that would be caused by the proposed GCMC move.
|
||||
|
||||
The {full_energy} option is needed for systems with complicated
|
||||
potential energy calculations, including the following:
|
||||
@ -224,7 +256,7 @@ potential energy calculations, including the following:
|
||||
many-body pair styles
|
||||
hybrid pair styles
|
||||
eam pair styles
|
||||
triclinic systems
|
||||
tail corrections
|
||||
need to include potential energy contributions from other fixes :ul
|
||||
|
||||
In these cases, LAMMPS will automatically apply the {full_energy}
|
||||
@ -233,42 +265,43 @@ keyword and issue a warning message.
|
||||
When the {mol} keyword is used, the {full_energy} option also includes
|
||||
the intramolecular energy of inserted and deleted molecules. If this
|
||||
is not desired, the {intra_energy} keyword can be used to define an
|
||||
amount of energy that is subtracted from the final energy when a molecule
|
||||
is inserted, and added to the initial energy when a molecule is
|
||||
deleted. For molecules that have a non-zero intramolecular energy, this
|
||||
will ensure roughly the same behavior whether or not the {full_energy}
|
||||
option is used.
|
||||
amount of energy that is subtracted from the final energy when a
|
||||
molecule is inserted, and added to the initial energy when a molecule
|
||||
is deleted. For molecules that have a non-zero intramolecular energy,
|
||||
this will ensure roughly the same behavior whether or not the
|
||||
{full_energy} option is used.
|
||||
|
||||
Inserted atoms and molecules are assigned random velocities based on the
|
||||
specified temperature T. Because the relative velocity of
|
||||
all atoms in the molecule is zero, this may result in inserted molecules
|
||||
that are systematically too cold. In addition, the intramolecular potential
|
||||
energy of the inserted molecule may cause the kinetic energy
|
||||
of the molecule to quickly increase or decrease after insertion.
|
||||
The {tfac_insert} keyword allows the user to counteract these effects
|
||||
by changing the temperature used to assign velocities to
|
||||
inserted atoms and molecules by a constant factor. For a
|
||||
particular application, some experimentation may be required
|
||||
to find a value of {tfac_insert} that results in inserted molecules that
|
||||
equilibrate quickly to the correct temperature.
|
||||
Inserted atoms and molecules are assigned random velocities based on
|
||||
the specified temperature T. Because the relative velocity of all
|
||||
atoms in the molecule is zero, this may result in inserted molecules
|
||||
that are systematically too cold. In addition, the intramolecular
|
||||
potential energy of the inserted molecule may cause the kinetic energy
|
||||
of the molecule to quickly increase or decrease after insertion. The
|
||||
{tfac_insert} keyword allows the user to counteract these effects by
|
||||
changing the temperature used to assign velocities to inserted atoms
|
||||
and molecules by a constant factor. For a particular application, some
|
||||
experimentation may be required to find a value of {tfac_insert} that
|
||||
results in inserted molecules that equilibrate quickly to the correct
|
||||
temperature.
|
||||
|
||||
Some fixes have an associated potential energy. Examples of such fixes
|
||||
include: "efield"_fix_efield.html, "gravity"_fix_gravity.html,
|
||||
"addforce"_fix_addforce.html, "langevin"_fix_langevin.html,
|
||||
"restrain"_fix_restrain.html, "temp/berendsen"_fix_temp_berendsen.html,
|
||||
"restrain"_fix_restrain.html,
|
||||
"temp/berendsen"_fix_temp_berendsen.html,
|
||||
"temp/rescale"_fix_temp_rescale.html, and "wall fixes"_fix_wall.html.
|
||||
For that energy to be included in the total potential energy of the
|
||||
system (the quantity used when performing GCMC moves),
|
||||
you MUST enable the "fix_modify"_fix_modify.html {energy} option for
|
||||
that fix. The doc pages for individual "fix"_fix.html commands
|
||||
specify if this should be done.
|
||||
system (the quantity used when performing GCMC moves), you MUST enable
|
||||
the "fix_modify"_fix_modify.html {energy} option for that fix. The
|
||||
doc pages for individual "fix"_fix.html commands specify if this
|
||||
should be done.
|
||||
|
||||
Use the {charge} option to insert atoms with a user-specified point
|
||||
charge. Note that doing so will cause the system to become non-neutral.
|
||||
LAMMPS issues a warning when using long-range electrostatics (kspace)
|
||||
with non-neutral systems. See the
|
||||
"compute group/group"_compute_group_group.html documentation for more
|
||||
details about simulating non-neutral systems with kspace on.
|
||||
charge. Note that doing so will cause the system to become
|
||||
non-neutral. LAMMPS issues a warning when using long-range
|
||||
electrostatics (kspace) with non-neutral systems. See the "compute
|
||||
group/group"_compute_group_group.html documentation for more details
|
||||
about simulating non-neutral systems with kspace on.
|
||||
|
||||
Use of this fix typically will cause the number of atoms to fluctuate,
|
||||
therefore, you will want to use the
|
||||
@ -276,16 +309,23 @@ therefore, you will want to use the
|
||||
current number of atoms is used as a normalizing factor each time
|
||||
temperature is computed. Here is the necessary command:
|
||||
|
||||
NOTE: If the density of the cell is initially very small or zero, and
|
||||
increases to a much larger density after a period of equilibration,
|
||||
then certain quantities that are only calculated once at the start
|
||||
(kspace parameters, tail corrections) may no longer be accurate. The
|
||||
solution is to start a new simulation after the equilibrium density
|
||||
has been reached.
|
||||
|
||||
With some pair_styles, such as "Buckingham"_pair_buck.html,
|
||||
"Born-Mayer-Huggins"_pair_born.html and "ReaxFF"_pair_reax_c.html,
|
||||
two atoms placed close to each other may have an arbitrary large,
|
||||
negative potential energy due to the functional form of the potential.
|
||||
While these unphysical configurations are inaccessible
|
||||
to typical dynamical trajectories,
|
||||
they can be generated by Monte Carlo moves. The {overlap_cutoff}
|
||||
keyword suppresses these moves by effectively assigning an
|
||||
infinite positive energy to all new configurations that place any
|
||||
pair of atoms closer than the specified overlap cutoff distance.
|
||||
"Born-Mayer-Huggins"_pair_born.html and "ReaxFF"_pair_reaxc.html, two
|
||||
atoms placed close to each other may have an arbitrary large, negative
|
||||
potential energy due to the functional form of the potential. While
|
||||
these unphysical configurations are inaccessible to typical dynamical
|
||||
trajectories, they can be generated by Monte Carlo moves. The
|
||||
{overlap_cutoff} keyword suppresses these moves by effectively
|
||||
assigning an infinite positive energy to all new configurations that
|
||||
place any pair of atoms closer than the specified overlap cutoff
|
||||
distance.
|
||||
|
||||
compute_modify thermo_temp dynamic yes :pre
|
||||
|
||||
@ -295,10 +335,10 @@ derived from LJ parameters for argon, where h* = h/sqrt(sigma^2 *
|
||||
epsilon * mass), sigma = 3.429 angstroms, epsilon/k = 121.85 K, and
|
||||
mass = 39.948 amu.
|
||||
|
||||
The {group} keyword assigns all inserted atoms to the "group"_group.html
|
||||
of the group-ID value. The {grouptype} keyword assigns all
|
||||
inserted atoms of the specified type to the "group"_group.html
|
||||
of the group-ID value.
|
||||
The {group} keyword assigns all inserted atoms to the
|
||||
"group"_group.html of the group-ID value. The {grouptype} keyword
|
||||
assigns all inserted atoms of the specified type to the
|
||||
"group"_group.html of the group-ID value.
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
@ -346,15 +386,15 @@ well in parallel. Only usable for 3D simulations.
|
||||
Note that very lengthy simulations involving insertions/deletions of
|
||||
billions of gas molecules may run out of atom or molecule IDs and
|
||||
trigger an error, so it is better to run multiple shorter-duration
|
||||
simulations. Likewise, very large molecules have not been tested
|
||||
and may turn out to be problematic.
|
||||
simulations. Likewise, very large molecules have not been tested and
|
||||
may turn out to be problematic.
|
||||
|
||||
Use of multiple fix gcmc commands in the same input script can be
|
||||
problematic if using a template molecule. The issue is that the
|
||||
user-referenced template molecule in the second fix gcmc command
|
||||
may no longer exist since it might have been deleted by the first
|
||||
fix gcmc command. An existing template molecule will need to be
|
||||
referenced by the user for each subsequent fix gcmc command.
|
||||
user-referenced template molecule in the second fix gcmc command may
|
||||
no longer exist since it might have been deleted by the first fix gcmc
|
||||
command. An existing template molecule will need to be referenced by
|
||||
the user for each subsequent fix gcmc command.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
@ -366,7 +406,7 @@ referenced by the user for each subsequent fix gcmc command.
|
||||
[Default:]
|
||||
|
||||
The option defaults are mol = no, maxangle = 10, overlap_cutoff = 0.0,
|
||||
and full_energy = no,
|
||||
fugacity_coeff = 1, and full_energy = no,
|
||||
except for the situations where full_energy is required, as
|
||||
listed above.
|
||||
|
||||
|
||||
@ -67,9 +67,10 @@ target value as the {Tstart} and {Tstop} arguments, so that the diffusion
|
||||
matrix that gives canonical sampling for a given A is computed automatically.
|
||||
However, the GLE framework also allow for non-equilibrium sampling, that
|
||||
can be used for instance to model inexpensively zero-point energy
|
||||
effects "(Ceriotti2)"_#Ceriotti2. This is achieved specifying the
|
||||
{noneq} keyword followed by the name of the file that contains the
|
||||
static covariance matrix for the non-equilibrium dynamics.
|
||||
effects "(Ceriotti2)"_#Ceriotti2. This is achieved specifying the {noneq}
|
||||
keyword followed by the name of the file that contains the static covariance
|
||||
matrix for the non-equilibrium dynamics. Please note, that the covariance
|
||||
matrix is expected to be given in [temperature units].
|
||||
|
||||
Since integrating GLE dynamics can be costly when used together with
|
||||
simple potentials, one can use the {every} optional keyword to
|
||||
@ -148,7 +149,7 @@ dpd/tstat"_pair_dpd.html, "fix gld"_fix_gld.html
|
||||
1170-80 (2010)
|
||||
|
||||
:link(GLE4MD)
|
||||
[(GLE4MD)] "http://epfl-cosmo.github.io/gle4md/"_http://epfl-cosmo.github.io/gle4md/
|
||||
[(GLE4MD)] "http://gle4md.org/"_http://gle4md.org/
|
||||
|
||||
:link(Ceriotti2)
|
||||
[(Ceriotti2)] Ceriotti, Bussi and Parrinello, Phys Rev Lett 103,
|
||||
|
||||
@ -85,13 +85,13 @@ No information about this fix is written to "binary restart
|
||||
files"_restart.html.
|
||||
|
||||
The "thermo_modify"_thermo_modify.html {press} option is supported
|
||||
by this fix to add the rescaled kinetic pressure as part of
|
||||
by this fix to add the rescaled kinetic pressure as part of
|
||||
"thermodynamic output"_thermo_style.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
|
||||
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:]
|
||||
|
||||
@ -58,14 +58,14 @@ input are listed in the same order as in the data file of LAMMPS. The
|
||||
initial configuration is ignored, as it will be substituted with the
|
||||
coordinates received from i-PI before forces are ever evaluated.
|
||||
|
||||
A note of caution when using potentials that contain long-range
|
||||
A note of caution when using potentials that contain long-range
|
||||
electrostatics, or that contain parameters that depend on box size:
|
||||
all of these options will be initialized based on the cell size in the
|
||||
LAMMPS-side initial configuration and kept constant during the run.
|
||||
This is required to e.g. obtain reproducible and conserved forces.
|
||||
If the cell varies too wildly, it may be advisable to reinitialize
|
||||
these interactions at each call. This behavior can be requested by
|
||||
setting the {reset} switch.
|
||||
LAMMPS-side initial configuration and kept constant during the run.
|
||||
This is required to e.g. obtain reproducible and conserved forces.
|
||||
If the cell varies too wildly, it may be advisable to reinitialize
|
||||
these interactions at each call. This behavior can be requested by
|
||||
setting the {reset} switch.
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
|
||||
@ -67,11 +67,11 @@ The Langevin forces are computed as
|
||||
\(F_r'\) is a random force proportional to
|
||||
\(\sqrt \{ \frac \{2\, k_B \mathtt\{Tcom\}\, m'\}
|
||||
\{\mathrm dt\, \mathtt\{damp\_com\} \}
|
||||
\} \). :b
|
||||
\} \).
|
||||
\(f_r'\) is a random force proportional to
|
||||
\(\sqrt \{ \frac \{2\, k_B \mathtt\{Tdrude\}\, m'\}
|
||||
\{\mathrm dt\, \mathtt\{damp\_drude\} \}
|
||||
\} \). :b
|
||||
\} \).
|
||||
Then the real forces acting on the particles are computed from the inverse
|
||||
transform:
|
||||
\begin\{equation\} F = \frac M \{M'\}\, F' - f' \end\{equation\}
|
||||
|
||||
@ -91,7 +91,7 @@ their DOF are assumed to be constant. If you are adding atoms or
|
||||
molecules to the system (see the "fix pour"_fix_pour.html, "fix
|
||||
deposit"_fix_deposit.html, and "fix gcmc"_fix_gcmc.html commands) or
|
||||
expect atoms or molecules to be lost (e.g. due to exiting the
|
||||
simulation box or via "fix evaporation"_fix_evaporation.html), then
|
||||
simulation box or via "fix evaporate"_fix_evaporate.html), then
|
||||
this option should be used to insure the temperature is correctly
|
||||
normalized.
|
||||
|
||||
|
||||
@ -57,7 +57,7 @@ simulations is as follows:
|
||||
Perform all-atom simulations on the system to be coarse grained.
|
||||
Generate a trajectory mapped to the coarse-grained model.
|
||||
Create input files for the MS-CG library.
|
||||
Run the range finder functionality of the MS-CG library.
|
||||
Run the range finder functionality of the MS-CG library.
|
||||
Run the force matching functionality of the MS-CG library.
|
||||
Check the results of the force matching.
|
||||
Run coarse-grained simulations using the new coarse-grained potentials. :ol
|
||||
@ -70,7 +70,7 @@ Step 2 can be performed using a Python script (what is the name?)
|
||||
provided with the MS-CG library which defines the coarse-grained model
|
||||
and converts a standard LAMMPS dump file for an all-atom simulation
|
||||
(step 1) into a LAMMPS dump file which has the positions of and forces
|
||||
on the coarse-grained beads.
|
||||
on the coarse-grained beads.
|
||||
|
||||
In step 3, an input file named "control.in" is needed by the MS-CG
|
||||
library which sets parameters for the range finding and force matching
|
||||
|
||||
@ -17,19 +17,22 @@ msst = style name of this fix :l
|
||||
dir = {x} or {y} or {z} :l
|
||||
shockvel = shock velocity (strictly positive, distance/time units) :l
|
||||
zero or more keyword value pairs may be appended :l
|
||||
keyword = {q} or {mu} or {p0} or {v0} or {e0} or {tscale} :l
|
||||
keyword = {q} or {mu} or {p0} or {v0} or {e0} or {tscale} or {beta} or {dftb} :l
|
||||
{q} value = cell mass-like parameter (mass^2/distance^4 units)
|
||||
{mu} value = artificial viscosity (mass/length/time units)
|
||||
{p0} value = initial pressure in the shock equations (pressure units)
|
||||
{v0} value = initial simulation cell volume in the shock equations (distance^3 units)
|
||||
{e0} value = initial total energy (energy units)
|
||||
{tscale} value = reduction in initial temperature (unitless fraction between 0.0 and 1.0) :pre
|
||||
{tscale} value = reduction in initial temperature (unitless fraction between 0.0 and 1.0)
|
||||
{dftb} value = {yes} or {no} for whether using MSST in conjunction with DFTB+
|
||||
{beta} value = scale factor on energy contribution of DFTB+ :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 1 all msst y 100.0 q 1.0e5 mu 1.0e5
|
||||
fix 2 all msst z 50.0 q 1.0e4 mu 1.0e4 v0 4.3419e+03 p0 3.7797e+03 e0 -9.72360e+02 tscale 0.01 :pre
|
||||
fix 2 all msst z 50.0 q 1.0e4 mu 1.0e4 v0 4.3419e+03 p0 3.7797e+03 e0 -9.72360e+02 tscale 0.01
|
||||
fix 1 all msst y 100.0 q 1.0e5 mu 1.0e5 dftb yes beta 0.5 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -58,11 +61,11 @@ oscillations have physical significance in some cases. The optional
|
||||
symmetry to equilibrate to the shock Hugoniot and Rayleigh line more
|
||||
rapidly in such cases.
|
||||
|
||||
{tscale} is a factor between 0 and 1 that determines what fraction of
|
||||
thermal kinetic energy is converted to compressive strain kinetic
|
||||
energy at the start of the simulation. Setting this parameter to a
|
||||
non-zero value may assist in compression at the start of simulations
|
||||
where it is slow to occur.
|
||||
The keyword {tscale} is a factor between 0 and 1 that determines what
|
||||
fraction of thermal kinetic energy is converted to compressive strain
|
||||
kinetic energy at the start of the simulation. Setting this parameter
|
||||
to a non-zero value may assist in compression at the start of
|
||||
simulations where it is slow to occur.
|
||||
|
||||
If keywords {e0}, {p0},or {v0} are not supplied, these quantities will
|
||||
be calculated on the first step, after the energy specified by
|
||||
@ -77,17 +80,40 @@ For all pressure styles, the simulation box stays orthogonal in shape.
|
||||
Parrinello-Rahman boundary conditions (tilted box) are supported by
|
||||
LAMMPS, but are not implemented for MSST.
|
||||
|
||||
This fix computes a temperature and pressure each timestep. To do
|
||||
this, the fix creates its own computes of style "temp" and "pressure",
|
||||
as if these commands had been issued:
|
||||
This fix computes a temperature and pressure and potential energy each
|
||||
timestep. To do this, the fix creates its own computes of style "temp"
|
||||
"pressure", and "pe", as if these commands had been issued:
|
||||
|
||||
compute fix-ID_temp group-ID temp
|
||||
compute fix-ID_press group-ID pressure fix-ID_temp :pre
|
||||
compute fix-ID_MSST_temp all temp
|
||||
compute fix-ID_MSST_press all pressure fix-ID_MSST_temp :pre
|
||||
compute fix-ID_MSST_pe all pe :pre
|
||||
|
||||
See the "compute temp"_compute_temp.html and "compute
|
||||
pressure"_compute_pressure.html commands for details. Note that the
|
||||
IDs of the new computes are the fix-ID + underscore + "temp" or fix_ID
|
||||
+ underscore + "press". The group for the new computes is "all".
|
||||
IDs of the new computes are the fix-ID + "_MSST_temp" or "_MSST_press"
|
||||
or "_MSST_pe". The group for the new computes is "all".
|
||||
|
||||
:line
|
||||
|
||||
The {dftb} and {beta} keywords are to allow this fix to be used when
|
||||
LAMMPS is being driven by DFTB+, a density-functional tight-binding
|
||||
code.
|
||||
|
||||
If the keyword {dftb} is used with a value of {yes}, then the MSST
|
||||
equations are altered to account for an energy contribution compute by
|
||||
DFTB+. In this case, you must define a "fix
|
||||
external"_fix_external.html command in your input script, which is
|
||||
used to callback to DFTB+ during the LAMMPS timestepping. DFTB+ will
|
||||
communicate its info to LAMMPS via that fix.
|
||||
|
||||
The keyword {beta} is a scale factor on the DFTB+ energy contribution.
|
||||
The value of {beta} must be between 0.0 and 1.0 inclusive. A value of
|
||||
0.0 means no contribution, a value of 1.0 means a full contribution.
|
||||
|
||||
(July 2017) More information about these keywords and the use of
|
||||
LAMMPS with DFTB+ will be added to the LAMMMPS documention soon.
|
||||
|
||||
:line
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
@ -149,8 +175,9 @@ all.
|
||||
|
||||
[Default:]
|
||||
|
||||
The keyword defaults are q = 10, mu = 0, tscale = 0.01. p0, v0, and e0
|
||||
are calculated on the first step.
|
||||
The keyword defaults are q = 10, mu = 0, tscale = 0.01, dftb = no,
|
||||
beta = 0.0. Note that p0, v0, and e0 are calculated on the first
|
||||
timestep.
|
||||
|
||||
:line
|
||||
|
||||
|
||||
@ -10,68 +10,183 @@ fix neb command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID neb Kspring :pre
|
||||
fix ID group-ID neb Kspring keyword value :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command
|
||||
neb = style name of this fix command
|
||||
Kspring = inter-replica spring constant (force/distance units) :ul
|
||||
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||||
neb = style name of this fix command :l
|
||||
Kspring = spring constant for parallel nudging force (force/distance units or force units, see parallel keyword) :l
|
||||
zero or more keyword/value pairs may be appended :l
|
||||
keyword = {parallel} or {perp} or {end} :l
|
||||
{parallel} value = {neigh} or {ideal}
|
||||
{neigh} = parallel nudging force based on distance to neighbor replicas (Kspring = force/distance units)
|
||||
{ideal} = parallel nudging force based on interpolated ideal position (Kspring = force units)
|
||||
{perp} value = {Kspring2}
|
||||
{Kspring2} = spring constant for perpendicular nudging force (force/distance units)
|
||||
{end} values = estyle Kspring3
|
||||
{estyle} = {first} or {last} or {last/efirst} or {last/efirst/middle}
|
||||
{first} = apply force to first replica
|
||||
{last} = apply force to last replica
|
||||
{last/efirst} = apply force to last replica and set its target energy to that of first replica
|
||||
{last/efirst/middle} = same as {last/efirst} plus prevent middle replicas having lower energy than first replica
|
||||
{Kspring3} = spring constant for target energy term (1/distance units) :pre,ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 1 active neb 10.0 :pre
|
||||
fix 1 active neb 10.0
|
||||
fix 2 all neb 1.0 perp 1.0 end last
|
||||
fix 2 all neb 1.0 perp 1.0 end first 1.0 end last 1.0
|
||||
fix 1 all neb 1.0 nudge ideal end last/efirst 1 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Add inter-replica forces to atoms in the group for a multi-replica
|
||||
Add nudging forces to atoms in the group for a multi-replica
|
||||
simulation run via the "neb"_neb.html command to perform a nudged
|
||||
elastic band (NEB) calculation for transition state finding. Hi-level
|
||||
explanations of NEB are given with the "neb"_neb.html command and in
|
||||
"Section 6.5"_Section_howto.html#howto_5 of the manual. The fix
|
||||
neb command must be used with the "neb" command to define how
|
||||
inter-replica forces are computed.
|
||||
elastic band (NEB) calculation for finding the transition state.
|
||||
Hi-level explanations of NEB are given with the "neb"_neb.html command
|
||||
and in "Section_howto 5"_Section_howto.html#howto_5 of the manual.
|
||||
The fix neb command must be used with the "neb" command and defines
|
||||
how inter-replica nudging forces are computed. A NEB calculation is
|
||||
divided in two stages. In the first stage n replicas are relaxed
|
||||
toward a MEP until convergence. In the second stage, the climbing
|
||||
image scheme (see "(Henkelman2)"_#Henkelman2) is enabled, so that the
|
||||
replica having the highest energy relaxes toward the saddle point
|
||||
(i.e. the point of highest energy along the MEP), and a second
|
||||
relaxation is performed.
|
||||
|
||||
Only the N atoms in the fix group experience inter-replica forces.
|
||||
Atoms in the two end-point replicas do not experience these forces,
|
||||
but those in intermediate replicas do. During the initial stage of
|
||||
NEB, the 3N-length vector of interatomic forces Fi = -Grad(V) acting
|
||||
on the atoms of each intermediate replica I is altered, as described
|
||||
in the "(Henkelman1)"_#Henkelman1 paper, to become:
|
||||
A key purpose of the nudging forces is to keep the replicas equally
|
||||
spaced. During the NEB calculation, the 3N-length vector of
|
||||
interatomic force Fi = -Grad(V) for each replica I is altered. For
|
||||
all intermediate replicas (i.e. for 1 < I < N, except the climbing
|
||||
replica) the force vector becomes:
|
||||
|
||||
Fi = -Grad(V) + (Grad(V) dot That) That + Kspring (| Ri+i - Ri | - | Ri - Ri-1 |) That :pre
|
||||
Fi = -Grad(V) + (Grad(V) dot T') T' + Fnudge_parallel + Fnudge_perp :pre
|
||||
|
||||
Ri are the atomic coordinates of replica I; Ri-1 and Ri+1 are the
|
||||
coordinates of its neighbor replicas. That (t with a hat over it) is
|
||||
the unit "tangent" vector for replica I which is a function of Ri,
|
||||
T' is the unit "tangent" vector for replica I and is a function of Ri,
|
||||
Ri-1, Ri+1, and the potential energy of the 3 replicas; it points
|
||||
roughly in the direction of (Ri+i - Ri-1); see the
|
||||
"(Henkelman1)"_#Henkelman1 paper for details.
|
||||
"(Henkelman1)"_#Henkelman1 paper for details. Ri are the atomic
|
||||
coordinates of replica I; Ri-1 and Ri+1 are the coordinates of its
|
||||
neighbor replicas. The term (Grad(V) dot T') is used to remove the
|
||||
component of the gradient parallel to the path which would tend to
|
||||
distribute the replica unevenly along the path. Fnudge_parallel is an
|
||||
artificial nudging force which is applied only in the tangent
|
||||
direction and which maintains the equal spacing between replicas (see
|
||||
below for more information). Fnudge_perp is an optional artificial
|
||||
spring which is applied in a direction perpendicular to the tangent
|
||||
direction and which prevent the paths from forming acute kinks (see
|
||||
below for more information).
|
||||
|
||||
The first two terms in the above equation are the component of the
|
||||
interatomic forces perpendicular to the tangent vector. The last term
|
||||
is a spring force between replica I and its neighbors, parallel to the
|
||||
tangent vector direction with the specified spring constant {Kspring}.
|
||||
In the second stage of the NEB calculation, the interatomic force Fi
|
||||
for the climbing replica (the replica of highest energy after the
|
||||
first stage) is changed to:
|
||||
|
||||
The effect of the first two terms is to push the atoms of each replica
|
||||
toward the minimum energy path (MEP) of conformational states that
|
||||
transition over the energy barrier. The MEP for an energy barrier is
|
||||
defined as a sequence of 3N-dimensional states which cross the barrier
|
||||
at its saddle point, each of which has a potential energy gradient
|
||||
parallel to the MEP itself.
|
||||
Fi = -Grad(V) + 2 (Grad(V) dot T') T' :pre
|
||||
|
||||
The effect of the last term is to push each replica away from its two
|
||||
neighbors in a direction along the MEP, so that the final set of
|
||||
states are equidistant from each other.
|
||||
and the relaxation procedure is continued to a new converged MEP.
|
||||
|
||||
During the second stage of NEB, the forces on the N atoms in the
|
||||
replica nearest the top of the energy barrier are altered so that it
|
||||
climbs to the top of the barrier and finds the saddle point. The
|
||||
forces on atoms in this replica are described in the
|
||||
"(Henkelman2)"_#Henkelman2 paper, and become:
|
||||
:line
|
||||
|
||||
Fi = -Grad(V) + 2 (Grad(V) dot That) That :pre
|
||||
The keyword {parallel} specifies how the parallel nudging force is
|
||||
computed. With a value of {neigh}, the parallel nudging force is
|
||||
computed as in "(Henkelman1)"_#Henkelman1 by connecting each
|
||||
intermediate replica with the previous and the next image:
|
||||
|
||||
The inter-replica forces for the other replicas are unchanged from the
|
||||
first equation.
|
||||
Fnudge_parallel = {Kspring} * (|Ri+1 - Ri| - |Ri - Ri-1|) :pre
|
||||
|
||||
Note that in this case the specified {Kspring) is in force/distance
|
||||
units.
|
||||
|
||||
With a value of {ideal}, the spring force is computed as suggested in
|
||||
"(WeinenE)"_#WeinenE :
|
||||
|
||||
Fnudge_parallel = -{Kspring} * (RD-RDideal) / (2 * meanDist) :pre
|
||||
|
||||
where RD is the "reaction coordinate" see "neb"_neb.html section, and
|
||||
RDideal is the ideal RD for which all the images are equally spaced.
|
||||
I.e. RDideal = (I-1)*meanDist when the climbing replica is off, where
|
||||
I is the replica number). The meanDist is the average distance
|
||||
between replicas. Note that in this case the specified {Kspring) is
|
||||
in force units.
|
||||
|
||||
Note that the {ideal} form of nudging can often be more effective at
|
||||
keeping the replicas equally spaced.
|
||||
|
||||
:line
|
||||
|
||||
The keyword {perp} specifies if and how a perpendicual nudging force
|
||||
is computed. It adds a spring force perpendicular to the path in
|
||||
order to prevent the path from becoming too kinky. It can
|
||||
significantly improve the convergence of the NEB calculation when the
|
||||
resolution is poor. I.e. when few replicas are used; see
|
||||
"(Maras)"_#Maras1 for details.
|
||||
|
||||
The perpendicular spring force is given by
|
||||
|
||||
Fnudge_perp = {Kspring2} * F(Ri-1,Ri,Ri+1) (Ri+1 + Ri-1 - 2 Ri) :pre
|
||||
|
||||
where {Kspring2} is the specified value. F(Ri-1 Ri R+1) is a smooth
|
||||
scalar function of the angle Ri-1 Ri Ri+1. It is equal to 0.0 when
|
||||
the path is straight and is equal to 1 when the angle Ri-1 Ri Ri+1 is
|
||||
acute. F(Ri-1 Ri R+1) is defined in "(Jonsson)"_#Jonsson.
|
||||
|
||||
If {Kspring2} is set to 0.0 (the default) then no perpendicular spring
|
||||
force is added.
|
||||
|
||||
:line
|
||||
|
||||
By default, no additional forces act on the first and last replicas
|
||||
during the NEB relaxation, so these replicas simply relax toward their
|
||||
respective local minima. By using the key word {end}, additional
|
||||
forces can be applied to the first and/or last replicas, to enable
|
||||
them to relax toward a MEP while constraining their energy.
|
||||
|
||||
The interatomic force Fi for the specified replica becomes:
|
||||
|
||||
Fi = -Grad(V) + (Grad(V) dot T' + (E-ETarget)*Kspring3) T', {when} Grad(V) dot T' < 0
|
||||
Fi = -Grad(V) + (Grad(V) dot T' + (ETarget- E)*Kspring3) T', {when} Grad(V) dot T' > 0
|
||||
:pre
|
||||
|
||||
where E is the current energy of the replica and ETarget is the target
|
||||
energy. The "spring" constant on the difference in energies is the
|
||||
specified {Kspring3} value.
|
||||
|
||||
When {estyle} is specified as {first}, the force is applied to the
|
||||
first replica. When {estyle} is specified as {last}, the force is
|
||||
applied to the last replica. Note that the {end} keyword can be used
|
||||
twice to add forces to both the first and last replicas.
|
||||
|
||||
For both these {estyle} settings, the target energy {ETarget} is set
|
||||
to the initial energy of the replica (at the start of the NEB
|
||||
calculation).
|
||||
|
||||
If the {estyle} is specified as {last/efirst} or {last/efirst/middle},
|
||||
force is applied to the last replica, but the target energy {ETarget}
|
||||
is continuously set to the energy of the first replica, as it evolves
|
||||
during the NEB relaxation.
|
||||
|
||||
The difference between these two {estyle} options is as follows. When
|
||||
{estyle} is specified as {last/efirst}, no change is made to the
|
||||
inter-replica force applied to the intermediate replicas (neither
|
||||
first or last). If the initial path is too far from the MEP, an
|
||||
intermediate repilica may relax "faster" and reach a lower energy than
|
||||
the last replica. In this case the intermediate replica will be
|
||||
relaxing toward its own local minima. This behavior can be prevented
|
||||
by specifying {estyle} as {last/efirst/middle} which will alter the
|
||||
inter-replica force applied to intermediate replicas by removing the
|
||||
contribution of the gradient to the inter-replica force. This will
|
||||
only be done if a particular intermediate replica has a lower energy
|
||||
than the first replica. This should effectively prevent the
|
||||
intermediate replicas from over-relaxing.
|
||||
|
||||
After converging a NEB calculation using an {estyle} of
|
||||
{last/efirst/middle}, you should check that all intermediate replicas
|
||||
have a larger energy than the first replica. If this is not the case,
|
||||
the path is probably not a MEP.
|
||||
|
||||
Finally, note that if the last replica converges toward a local
|
||||
minimum which has a larger energy than the energy of the first
|
||||
replica, a NEB calculation using an {estyle} of {last/efirst} or
|
||||
{last/efirst/middle} cannot reach final convergence.
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
@ -96,7 +211,12 @@ for more info on packages.
|
||||
|
||||
"neb"_neb.html
|
||||
|
||||
[Default:] none
|
||||
[Default:]
|
||||
|
||||
The option defaults are nudge = neigh, perp = 0.0, ends is not
|
||||
specified (no inter-replica force on the end replicas).
|
||||
|
||||
:line
|
||||
|
||||
:link(Henkelman1)
|
||||
[(Henkelman1)] Henkelman and Jonsson, J Chem Phys, 113, 9978-9985 (2000).
|
||||
@ -104,3 +224,15 @@ for more info on packages.
|
||||
:link(Henkelman2)
|
||||
[(Henkelman2)] Henkelman, Uberuaga, Jonsson, J Chem Phys, 113,
|
||||
9901-9904 (2000).
|
||||
|
||||
:link(WeinenE)
|
||||
[(WeinenE)] E, Ren, Vanden-Eijnden, Phys Rev B, 66, 052301 (2002).
|
||||
|
||||
:link(Jonsson)
|
||||
[(Jonsson)] Jonsson, Mills and Jacobsen, in Classical and Quantum
|
||||
Dynamics in Condensed Phase Simulations, edited by Berne, Ciccotti,
|
||||
and Coker World Scientific, Singapore, 1998, p 385.
|
||||
|
||||
:link(Maras1)
|
||||
[(Maras)] Maras, Trushin, Stukowski, Ala-Nissila, Jonsson,
|
||||
Comp Phys Comm, 205, 13-21 (2016).
|
||||
|
||||
@ -23,13 +23,13 @@ fix 1 all nve/dot :pre
|
||||
[Description:]
|
||||
|
||||
Apply a rigid-body integrator as described in "(Davidchack)"_#Davidchack1
|
||||
to a group of atoms, but without Langevin dynamics.
|
||||
to a group of atoms, but without Langevin dynamics.
|
||||
This command performs Molecular dynamics (MD)
|
||||
via a velocity-Verlet algorithm and an evolution operator that rotates
|
||||
the quaternion degrees of freedom, similar to the scheme outlined in "(Miller)"_#Miller1.
|
||||
via a velocity-Verlet algorithm and an evolution operator that rotates
|
||||
the quaternion degrees of freedom, similar to the scheme outlined in "(Miller)"_#Miller1.
|
||||
|
||||
This command is the equivalent of the "fix nve/dotc/langevin"_fix_nve_dotc_langevin.html
|
||||
without damping and noise and can be used to determine the stability range
|
||||
without damping and noise and can be used to determine the stability range
|
||||
in a NVE ensemble prior to using the Langevin-type DOTC-integrator
|
||||
(see also "fix nve/dotc/langevin"_fix_nve_dotc_langevin.html).
|
||||
The command is equivalent to the "fix nve"_fix_nve.html.
|
||||
|
||||
@ -28,20 +28,20 @@ fix 1 all nve/dotc/langevin 1.0 1.0 0.03 457145 angmom 10 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Apply a rigid-body Langevin-type integrator of the kind "Langevin C"
|
||||
Apply a rigid-body Langevin-type integrator of the kind "Langevin C"
|
||||
as described in "(Davidchack)"_#Davidchack2
|
||||
to a group of atoms, which models an interaction with an implicit background
|
||||
solvent. This command performs Brownian dynamics (BD)
|
||||
via a technique that splits the integration into a deterministic Hamiltonian
|
||||
part and the Ornstein-Uhlenbeck process for noise and damping.
|
||||
via a technique that splits the integration into a deterministic Hamiltonian
|
||||
part and the Ornstein-Uhlenbeck process for noise and damping.
|
||||
The quaternion degrees of freedom are updated though an evolution
|
||||
operator which performs a rotation in quaternion space, preserves
|
||||
the quaternion norm and is akin to "(Miller)"_#Miller2.
|
||||
|
||||
In terms of syntax this command has been closely modelled on the
|
||||
"fix langevin"_fix_langevin.html and its {angmom} option. But it combines
|
||||
the "fix nve"_fix_nve.html and the "fix langevin"_fix_langevin.html in
|
||||
one single command. The main feature is improved stability
|
||||
In terms of syntax this command has been closely modelled on the
|
||||
"fix langevin"_fix_langevin.html and its {angmom} option. But it combines
|
||||
the "fix nve"_fix_nve.html and the "fix langevin"_fix_langevin.html in
|
||||
one single command. The main feature is improved stability
|
||||
over the standard integrator, permitting slightly larger timestep sizes.
|
||||
|
||||
NOTE: Unlike the "fix langevin"_fix_langevin.html this command performs
|
||||
@ -57,7 +57,7 @@ Fc is the conservative force computed via the usual inter-particle
|
||||
interactions ("pair_style"_pair_style.html,
|
||||
"bond_style"_bond_style.html, etc).
|
||||
|
||||
The Ff and Fr terms are implicitly taken into account by this fix
|
||||
The Ff and Fr terms are implicitly taken into account by this fix
|
||||
on a per-particle basis.
|
||||
|
||||
Ff is a frictional drag or viscous damping term proportional to the
|
||||
@ -77,7 +77,7 @@ a Gaussian random number) for speed.
|
||||
|
||||
:line
|
||||
|
||||
{Tstart} and {Tstop} have to be constant values, i.e. they cannot
|
||||
{Tstart} and {Tstop} have to be constant values, i.e. they cannot
|
||||
be variables.
|
||||
|
||||
The {damp} parameter is specified in time units and determines how
|
||||
@ -98,16 +98,16 @@ different numbers of processors.
|
||||
|
||||
The keyword/value option has to be used in the following way:
|
||||
|
||||
This fix has to be used together with the {angmom} keyword. The
|
||||
particles are always considered to have a finite size.
|
||||
The keyword {angmom} enables thermostatting of the rotational degrees of
|
||||
freedom in addition to the usual translational degrees of freedom.
|
||||
This fix has to be used together with the {angmom} keyword. The
|
||||
particles are always considered to have a finite size.
|
||||
The keyword {angmom} enables thermostatting of the rotational degrees of
|
||||
freedom in addition to the usual translational degrees of freedom.
|
||||
|
||||
The scale factor after the {angmom} keyword gives the ratio of the rotational to
|
||||
The scale factor after the {angmom} keyword gives the ratio of the rotational to
|
||||
the translational friction coefficient.
|
||||
|
||||
An example input file can be found in /examples/USER/cgdna/examples/duplex2/.
|
||||
A technical report with more information on this integrator can be found
|
||||
A technical report with more information on this integrator can be found
|
||||
"here"_PDF/USER-CGDNA-overview.pdf.
|
||||
|
||||
:line
|
||||
@ -120,7 +120,7 @@ LAMMPS"_Section_start.html#start_3 section for more info on packages.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"fix nve"_fix_nve.html, "fix langevin"_fix_langevin.html, "fix nve/dot"_fix_nve_dot.html,
|
||||
"fix nve"_fix_nve.html, "fix langevin"_fix_langevin.html, "fix nve/dot"_fix_nve_dot.html,
|
||||
|
||||
[Default:] none
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@ timestep. V is volume; K is kinetic energy. This creates a system
|
||||
trajectory consistent with the isokinetic ensemble.
|
||||
|
||||
The equations of motion used are those of Minary et al in
|
||||
"(Minary)"_#nvk-Minary, a variant of those initially given by Zhang in
|
||||
"(Minary)"_#nvk-Minary, a variant of those initially given by Zhang in
|
||||
"(Zhang)"_#nvk-Zhang.
|
||||
|
||||
The kinetic energy will be held constant at its value given when fix
|
||||
|
||||
76
doc/src/fix_python.txt
Normal 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 python command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID python N callback function_name :pre
|
||||
|
||||
ID, group-ID are ignored by this fix :ulb,l
|
||||
python = style name of this fix command :l
|
||||
N = execute every N steps :l
|
||||
callback = {post_force} or {end_of_step} :l
|
||||
{post_force} = callback after force computations on atoms every N time steps
|
||||
{end_of_step} = callback after every N time steps :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
python post_force_callback here """
|
||||
from lammps import lammps :pre
|
||||
|
||||
def post_force_callback(lammps_ptr, vflag):
|
||||
lmp = lammps(ptr=lammps_ptr)
|
||||
# access LAMMPS state using Python interface
|
||||
""" :pre
|
||||
|
||||
python end_of_step_callback here """
|
||||
def end_of_step_callback(lammps_ptr):
|
||||
lmp = lammps(ptr=lammps_ptr)
|
||||
# access LAMMPS state using Python interface
|
||||
""" :pre
|
||||
|
||||
fix pf all python 50 post_force post_force_callback
|
||||
fix eos all python 50 end_of_step end_of_step_callback :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
This fix allows you to call a Python function during a simulation run.
|
||||
The callback is either executed after forces have been applied to atoms
|
||||
or at the end of every N time steps.
|
||||
|
||||
Callback functions must be declared in the global scope of the
|
||||
active Python interpreter. This can either be done by defining it
|
||||
inline using the python command or by importing functions from other
|
||||
Python modules. If LAMMPS is driven using the library interface from
|
||||
Python, functions defined in the driving Python interpreter can also
|
||||
be executed.
|
||||
|
||||
Each callback is given a pointer object as first argument. This can be
|
||||
used to initialize an instance of the lammps Python interface, which
|
||||
gives access to the LAMMPS state from Python.
|
||||
|
||||
IMPORTANT NOTE: While you can access the state of LAMMPS via library functions
|
||||
from these callbacks, trying to execute input script commands will in the best
|
||||
case not work or in the worst case result in undefined behavior.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This fix is part of the PYTHON 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.
|
||||
|
||||
Building LAMMPS with the PYTHON package will link LAMMPS with the
|
||||
Python library on your system. Settings to enable this are in the
|
||||
lib/python/Makefile.lammps file. See the lib/python/README file for
|
||||
information on those settings.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"python command"_python.html
|
||||
@ -74,7 +74,7 @@ NOTE: The "fix qeq/comb"_fix_qeq_comb.html command must still be used
|
||||
to perform charge equilibration with the "COMB
|
||||
potential"_pair_comb.html. The "fix qeq/reax"_fix_qeq_reax.html
|
||||
command can be used to perform charge equilibration with the "ReaxFF
|
||||
force field"_pair_reax_c.html, although fix qeq/shielded yields the
|
||||
force field"_pair_reaxc.html, although fix qeq/shielded yields the
|
||||
same results as fix qeq/reax if {Nevery}, {cutoff}, and {tolerance}
|
||||
are the same. Eventually the fix qeq/reax command will be deprecated.
|
||||
|
||||
@ -116,7 +116,7 @@ the shielded Coulomb is given by equation (13) of the "ReaxFF force
|
||||
field"_#vanDuin paper. The shielding accounts for charge overlap
|
||||
between charged particles at small separation. This style is the same
|
||||
as "fix qeq/reax"_fix_qeq_reax.html, and can be used with "pair_style
|
||||
reax/c"_pair_reax_c.html. Only the {chi}, {eta}, and {gamma}
|
||||
reax/c"_pair_reaxc.html. Only the {chi}, {eta}, and {gamma}
|
||||
parameters from the {qfile} file are used. This style solves partial
|
||||
charges on atoms via the matrix inversion method. A tolerance of
|
||||
1.0e-6 is usually a good number.
|
||||
|
||||
@ -8,17 +8,19 @@
|
||||
|
||||
fix qeq/reax command :h3
|
||||
fix qeq/reax/kk command :h3
|
||||
fix qeq/reax/omp command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID qeq/reax Nevery cutlo cuthi tolerance params :pre
|
||||
fix ID group-ID qeq/reax Nevery cutlo cuthi tolerance params args :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command
|
||||
qeq/reax = style name of this fix command
|
||||
Nevery = perform QEq every this many steps
|
||||
cutlo,cuthi = lo and hi cutoff for Taper radius
|
||||
tolerance = precision to which charges will be equilibrated
|
||||
params = reax/c or a filename :ul
|
||||
params = reax/c or a filename
|
||||
args = {dual} (optional) :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
@ -30,7 +32,7 @@ fix 1 all qeq/reax 1 0.0 10.0 1.0e-6 param.qeq :pre
|
||||
Perform the charge equilibration (QEq) method as described in "(Rappe
|
||||
and Goddard)"_#Rappe2 and formulated in "(Nakano)"_#Nakano2. It is
|
||||
typically used in conjunction with the ReaxFF force field model as
|
||||
implemented in the "pair_style reax/c"_pair_reax_c.html command, but
|
||||
implemented in the "pair_style reax/c"_pair_reaxc.html command, but
|
||||
it can be used with any potential in LAMMPS, so long as it defines and
|
||||
uses charges on each atom. The "fix qeq/comb"_fix_qeq_comb.html
|
||||
command should be used to perform charge equilibration with the "COMB
|
||||
@ -42,7 +44,7 @@ The QEq method minimizes the electrostatic energy of the system by
|
||||
adjusting the partial charge on individual atoms based on interactions
|
||||
with their neighbors. It requires some parameters for each atom type.
|
||||
If the {params} setting above is the word "reax/c", then these are
|
||||
extracted from the "pair_style reax/c"_pair_reax_c.html command and
|
||||
extracted from the "pair_style reax/c"_pair_reaxc.html command and
|
||||
the ReaxFF force field file it reads in. If a file name is specified
|
||||
for {params}, then the parameters are taken from the specified file
|
||||
and the file must contain one line for each atom type. The latter
|
||||
@ -59,6 +61,10 @@ potential file, except that eta is defined here as twice the eta value
|
||||
in the ReaxFF file. Note that unlike the rest of LAMMPS, the units
|
||||
of this fix are hard-coded to be A, eV, and electronic charge.
|
||||
|
||||
The optional {dual} keyword allows to perform the optimization
|
||||
of the S and T matrices in parallel. This is only supported for
|
||||
the {qeq/reax/omp} style. Otherwise they are processed separately.
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
No information about this fix is written to "binary restart
|
||||
@ -106,7 +112,7 @@ be used for periodic cell dimensions less than 10 angstroms.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"pair_style reax/c"_pair_reax_c.html
|
||||
"pair_style reax/c"_pair_reaxc.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
|
||||
@ -28,13 +28,30 @@ fix 1 all reax/c/bonds 100 bonds.reaxc :pre
|
||||
|
||||
Write out the bond information computed by the ReaxFF potential
|
||||
specified by "pair_style reax"_pair_reax.html or "pair_style
|
||||
reax/c"_pair_reax_c.html in the exact same format as the original
|
||||
reax/c"_pair_reaxc.html in the exact same format as the original
|
||||
stand-alone ReaxFF code of Adri van Duin. The bond information is
|
||||
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 format of the output file should be self-explanatory.
|
||||
The format of the output file should be reasonably self-explanatory.
|
||||
The meaning of the column header abbreviations is as follows:
|
||||
|
||||
id = atom id
|
||||
type = atom type
|
||||
nb = number of bonds
|
||||
id_1 = atom id of first bond
|
||||
id_nb = atom id of Nth bond
|
||||
mol = molecule id
|
||||
bo_1 = bond order of first bond
|
||||
bo_nb = bond order of Nth bond
|
||||
abo = atom bond order (sum of all bonds)
|
||||
nlp = number of lone pairs
|
||||
q = atomic charge :ul
|
||||
|
||||
If the filename ends with ".gz", the output file is written in gzipped
|
||||
format. A gzipped dump file will be about 3x smaller than the text
|
||||
version, but will also take longer to write.
|
||||
|
||||
:line
|
||||
|
||||
@ -80,14 +97,17 @@ reax"_pair_reax.html be invoked. This fix is part of the REAX
|
||||
package. It is only enabled if LAMMPS was built with that package,
|
||||
which also requires the REAX library be built and linked with LAMMPS.
|
||||
The fix reax/c/bonds command requires that the "pair_style
|
||||
reax/c"_pair_reax_c.html be invoked. This fix is part of the
|
||||
reax/c"_pair_reaxc.html be invoked. This fix is part of the
|
||||
USER-REAXC 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.
|
||||
|
||||
To write gzipped bond files, you must compile LAMMPS with the
|
||||
-DLAMMPS_GZIP option.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"pair_style reax"_pair_reax.html, "pair_style
|
||||
reax/c"_pair_reax_c.html, "fix reax/c/species"_fix_reaxc_species.html
|
||||
reax/c"_pair_reaxc.html, "fix reax/c/species"_fix_reaxc_species.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
@ -41,7 +41,7 @@ fix 1 all reax/c/species 1 100 100 species.out element Au O H position 1000 AuOH
|
||||
[Description:]
|
||||
|
||||
Write out the chemical species information computed by the ReaxFF
|
||||
potential specified by "pair_style reax/c"_pair_reax_c.html.
|
||||
potential specified by "pair_style reax/c"_pair_reaxc.html.
|
||||
Bond-order values (either averaged or instantaneous, depending on
|
||||
value of {Nrepeat}) are used to determine chemical bonds. Every
|
||||
{Nfreq} timesteps, chemical species information is written to
|
||||
@ -52,6 +52,10 @@ number of molecules of each species. In this context, "species" means
|
||||
a unique molecule. The chemical formula of each species is given in
|
||||
the first line.
|
||||
|
||||
If the filename ends with ".gz", the output file is written in gzipped
|
||||
format. A gzipped dump file will be about 3x smaller than the text version,
|
||||
but will also take longer to write.
|
||||
|
||||
Optional keyword {cutoff} can be assigned to change the minimum
|
||||
bond-order values used in identifying chemical bonds between pairs of
|
||||
atoms. Bond-order cutoffs should be carefully chosen, as bond-order
|
||||
@ -65,7 +69,7 @@ symbol printed for each LAMMPS atom type. The number of symbols must
|
||||
match the number of LAMMPS atom types and each symbol must consist of
|
||||
1 or 2 alphanumeric characters. Normally, these symbols should be
|
||||
chosen to match the chemical identity of each LAMMPS atom type, as
|
||||
specified using the "reax/c pair_coeff"_pair_reax_c.html command and
|
||||
specified using the "reax/c pair_coeff"_pair_reaxc.html command and
|
||||
the ReaxFF force field file.
|
||||
|
||||
The optional keyword {position} writes center-of-mass positions of
|
||||
@ -158,19 +162,22 @@ more instructions on how to use the accelerated styles effectively.
|
||||
[Restrictions:]
|
||||
|
||||
The fix species currently only works with
|
||||
"pair_style reax/c"_pair_reax_c.html and it requires that the "pair_style
|
||||
reax/c"_pair_reax_c.html be invoked. This fix is part of the
|
||||
"pair_style reax/c"_pair_reaxc.html and it requires that the "pair_style
|
||||
reax/c"_pair_reaxc.html be invoked. This fix is part of the
|
||||
USER-REAXC 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.
|
||||
|
||||
To write gzipped species files, you must compile LAMMPS with the
|
||||
-DLAMMPS_GZIP option.
|
||||
|
||||
It should be possible to extend it to other reactive pair_styles (such as
|
||||
"rebo"_pair_airebo.html, "airebo"_pair_airebo.html,
|
||||
"comb"_pair_comb.html, and "bop"_pair_bop.html), but this has not yet been done.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"pair_style reax/c"_pair_reax_c.html, "fix
|
||||
"pair_style reax/c"_pair_reaxc.html, "fix
|
||||
reax/bonds"_fix_reax_bonds.html
|
||||
|
||||
[Default:]
|
||||
|
||||
@ -31,11 +31,12 @@ bodystyle = {single} or {molecule} or {group} :l
|
||||
groupID1, groupID2, ... = list of N group IDs :pre
|
||||
|
||||
zero or more keyword/value pairs may be appended :l
|
||||
keyword = {langevin} or {temp} or {iso} or {aniso} or {x} or {y} or {z} or {couple} or {tparam} or {pchain} or {dilate} or {force} or {torque} or {infile} :l
|
||||
keyword = {langevin} or {reinit} or {temp} or {iso} or {aniso} or {x} or {y} or {z} or {couple} or {tparam} or {pchain} or {dilate} or {force} or {torque} or {infile} :l
|
||||
{langevin} values = Tstart Tstop Tperiod seed
|
||||
Tstart,Tstop = desired temperature at start/stop of run (temperature units)
|
||||
Tdamp = temperature damping parameter (time units)
|
||||
seed = random number seed to use for white noise (positive integer)
|
||||
{reinit} = {yes} or {no}
|
||||
{temp} values = Tstart Tstop Tdamp
|
||||
Tstart,Tstop = desired temperature at start/stop of run (temperature units)
|
||||
Tdamp = temperature damping parameter (time units)
|
||||
@ -68,10 +69,10 @@ keyword = {langevin} or {temp} or {iso} or {aniso} or {x} or {y} or {z} or {coup
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 1 clump rigid single
|
||||
fix 1 clump rigid single reinit yes
|
||||
fix 1 clump rigid/small molecule
|
||||
fix 1 clump rigid single force 1 off off on langevin 1.0 1.0 1.0 428984
|
||||
fix 1 polychains rigid/nvt molecule temp 1.0 1.0 5.0
|
||||
fix 1 polychains rigid/nvt molecule temp 1.0 1.0 5.0 reinit no
|
||||
fix 1 polychains rigid molecule force 1*5 off off off force 6*10 off off on
|
||||
fix 1 polychains rigid/small molecule langevin 1.0 1.0 1.0 428984
|
||||
fix 2 fluid rigid group 3 clump1 clump2 clump3 torque * off off off
|
||||
@ -87,7 +88,12 @@ means that each timestep the total force and torque on each rigid body
|
||||
is computed as the sum of the forces and torques on its constituent
|
||||
particles. The coordinates, velocities, and orientations of the atoms
|
||||
in each body are then updated so that the body moves and rotates as a
|
||||
single entity.
|
||||
single entity. This is implemented by creating internal data structures
|
||||
for each rigid body and performing time integration on these data
|
||||
structures. Positions, velocities, and orientations of the constituent
|
||||
particles are regenerated from the rigid body data structures in every
|
||||
time step. This restricts which operations and fixes can be applied to
|
||||
rigid bodies. See below for a detailed discussion.
|
||||
|
||||
Examples of large rigid bodies are a colloidal particle, or portions
|
||||
of a biomolecule such as a protein.
|
||||
@ -148,8 +154,9 @@ differences may accumulate to produce divergent trajectories.
|
||||
|
||||
NOTE: You should not update the atoms in rigid bodies via other
|
||||
time-integration fixes (e.g. "fix nve"_fix_nve.html, "fix
|
||||
nvt"_fix_nh.html, "fix npt"_fix_nh.html), or you will be integrating
|
||||
their motion more than once each timestep. When performing a hybrid
|
||||
nvt"_fix_nh.html, "fix npt"_fix_nh.html, "fix move"_fix_move.html),
|
||||
or you will have conflicting updates to positions and velocities
|
||||
resulting in unphysical behavior in most cases. When performing a hybrid
|
||||
simulation with some atoms in rigid bodies, and some not, a separate
|
||||
time integration fix like "fix nve"_fix_nve.html or "fix
|
||||
nvt"_fix_nh.html should be used for the non-rigid particles.
|
||||
@ -165,23 +172,29 @@ setting the force on them to 0.0 (via the "fix
|
||||
setforce"_fix_setforce.html command), and integrating them as usual
|
||||
(e.g. via the "fix nve"_fix_nve.html command).
|
||||
|
||||
NOTE: The aggregate properties of each rigid body are calculated one
|
||||
time at the start of the first simulation run after these fixes are
|
||||
specified. The properties include the position and velocity of the
|
||||
center-of-mass of the body, its moments of inertia, and its angular
|
||||
momentum. This is done using the properties of the constituent atoms
|
||||
of the body at that point in time (or see the {infile} keyword
|
||||
option). Thereafter, changing properties of individual atoms in the
|
||||
body will have no effect on a rigid body's dynamics, unless they
|
||||
affect the "pair_style"_pair_style.html interactions that individual
|
||||
particles are part of. For example, you might think you could
|
||||
displace the atoms in a body or add a large velocity to each atom in a
|
||||
body to make it move in a desired direction before a 2nd run is
|
||||
IMPORTANT NOTE: The aggregate properties of each rigid body are
|
||||
calculated at the start of a simulation run and are maintained in
|
||||
internal data structures. The properties include the position and
|
||||
velocity of the center-of-mass of the body, its moments of inertia, and
|
||||
its angular momentum. This is done using the properties of the
|
||||
constituent atoms of the body at that point in time (or see the {infile}
|
||||
keyword option). Thereafter, changing these properties of individual
|
||||
atoms in the body will have no effect on a rigid body's dynamics, unless
|
||||
they effect any computation of per-atom forces or torques. If the
|
||||
keyword {reinit} is set to {yes} (the default), the rigid body data
|
||||
structures will be recreated at the beginning of each {run} command;
|
||||
if the keyword {reinit} is set to {no}, the rigid body data structures
|
||||
will be built only at the very first {run} command and maintained for
|
||||
as long as the rigid fix is defined. For example, you might think you
|
||||
could displace the atoms in a body or add a large velocity to each atom
|
||||
in a body to make it move in a desired direction before a 2nd run is
|
||||
performed, using the "set"_set.html or
|
||||
"displace_atoms"_displace_atoms.html or "velocity"_velocity.html
|
||||
command. But these commands will not affect the internal attributes
|
||||
of the body, and the position and velocity of individual atoms in the
|
||||
body will be reset when time integration starts.
|
||||
commands. But these commands will not affect the internal attributes
|
||||
of the body unless {reinit} is set to {yes}. With {reinit} set to {no}
|
||||
(or using the {infile} option, which implies {reinit} {no}) the position
|
||||
and velocity of individual atoms in the body will be reset when time
|
||||
integration starts again.
|
||||
|
||||
:line
|
||||
|
||||
@ -401,6 +414,14 @@ couple none :pre
|
||||
|
||||
The keyword/value option pairs are used in the following ways.
|
||||
|
||||
The {reinit} keyword determines, whether the rigid body properties
|
||||
are reinitialized between run commands. With the option {yes} (the
|
||||
default) this is done, with the option {no} this is not done. Turning
|
||||
off the reinitialization can be helpful to protect rigid bodies against
|
||||
unphysical manipulations between runs or when properties cannot be
|
||||
easily recomputed (e.g. when read from a file). When using the {infile}
|
||||
keyword, the {reinit} option is automatically set to {no}.
|
||||
|
||||
The {langevin} and {temp} and {tparam} keywords perform thermostatting
|
||||
of the rigid bodies, altering both their translational and rotational
|
||||
degrees of freedom. What is meant by "temperature" of a collection of
|
||||
@ -778,7 +799,7 @@ exclude, "fix shake"_fix_shake.html
|
||||
|
||||
The option defaults are force * on on on and torque * on on on,
|
||||
meaning all rigid bodies are acted on by center-of-mass force and
|
||||
torque. Also Tchain = Pchain = 10, Titer = 1, Torder = 3.
|
||||
torque. Also Tchain = Pchain = 10, Titer = 1, Torder = 3, reinit = yes.
|
||||
|
||||
:line
|
||||
|
||||
|
||||
@ -89,7 +89,7 @@ NOTE: The center of mass of a group of atoms is calculated in
|
||||
group can straddle a periodic boundary. See the "dump"_dump.html doc
|
||||
page for a discussion of unwrapped coordinates. It also means that a
|
||||
spring connecting two groups or a group and the tether point can cross
|
||||
a periodic boundary and its length be calculated correctly.
|
||||
a periodic boundary and its length be calculated correctly.
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
|
||||
@ -144,7 +144,11 @@ this fix.
|
||||
|
||||
"fix spring"_fix_spring.html, "fix adapt"_fix_adapt.html
|
||||
|
||||
[Restrictions:] none
|
||||
[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.
|
||||
|
||||
[Default:]
|
||||
|
||||
|
||||
@ -111,6 +111,7 @@ Fixes :h1
|
||||
fix_press_berendsen
|
||||
fix_print
|
||||
fix_property_atom
|
||||
fix_python
|
||||
fix_qbmsst
|
||||
fix_qeq
|
||||
fix_qeq_comb
|
||||
|
||||
@ -45,12 +45,9 @@ above, or in the data file or restart files read by the
|
||||
"read_data"_read_data.html or "read_restart"_read_restart.html
|
||||
commands:
|
||||
|
||||
K (energy/radian^2)
|
||||
K (energy)
|
||||
X0 (degrees) :ul
|
||||
|
||||
X0 is specified in degrees, but LAMMPS converts it to radians
|
||||
internally; hence the units of K are in energy/radian^2.
|
||||
|
||||
:line
|
||||
|
||||
Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
|
||||
|
||||
@ -49,12 +49,9 @@ above, or in the data file or restart files read by the
|
||||
"read_data"_read_data.html or "read_restart"_read_restart.html
|
||||
commands:
|
||||
|
||||
K (energy/radian^2)
|
||||
K (energy)
|
||||
theta0 (degrees) :ul
|
||||
|
||||
theta0 is specified in degrees, but LAMMPS converts it to radians
|
||||
internally; hence the units of K are in energy/radian^2.
|
||||
|
||||
:line
|
||||
|
||||
Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
|
||||
|
||||
@ -219,10 +219,10 @@ instead of using the virial equation. This option cannot be used to access
|
||||
individual components of the pressure tensor, to compute per-atom virial,
|
||||
or with suffix kspace/pair styles of MSM, like OMP or GPU.
|
||||
|
||||
The {fftbench} keyword applies only to PPPM. It is on by default. If
|
||||
this option is turned off, LAMMPS will not take the time at the end
|
||||
of a run to give FFT benchmark timings, and will finish a few seconds
|
||||
faster than it would if this option were on.
|
||||
The {fftbench} keyword applies only to PPPM. It is off by default. If
|
||||
this option is turned on, LAMMPS will perform a short FFT benchmark
|
||||
computation and report its timings, and will thus finish a some seconds
|
||||
later than it would if this option were off.
|
||||
|
||||
The {collective} keyword applies only to PPPM. It is set to {no} by
|
||||
default, except on IBM BlueGene machines. If this option is set to
|
||||
@ -290,9 +290,10 @@ to be specified using the {gewald/disp}, {mesh/disp},
|
||||
{force/disp/real} or {force/disp/kspace} keywords, or
|
||||
the code will stop with an error message. When this option is set to
|
||||
{yes}, the error message will not appear and the simulation will start.
|
||||
For a typical application, using the automatic parameter generation will provide
|
||||
simulations that are either inaccurate or slow. Using this option is thus not
|
||||
recommended. For guidelines on how to obtain good parameters, see the "How-To"_Section_howto.html#howto_23 discussion.
|
||||
For a typical application, using the automatic parameter generation
|
||||
will provide simulations that are either inaccurate or slow. Using this
|
||||
option is thus not recommended. For guidelines on how to obtain good
|
||||
parameters, see the "How-To"_Section_howto.html#howto_24 discussion.
|
||||
|
||||
[Restrictions:] none
|
||||
|
||||
@ -305,9 +306,10 @@ recommended. For guidelines on how to obtain good parameters, see the "How-To"_S
|
||||
The option defaults are mesh = mesh/disp = 0 0 0, order = order/disp =
|
||||
5 (PPPM), order = 10 (MSM), minorder = 2, overlap = yes, force = -1.0,
|
||||
gewald = gewald/disp = 0.0, slab = 1.0, compute = yes, cutoff/adjust =
|
||||
yes (MSM), pressure/scalar = yes (MSM), fftbench = yes (PPPM), diff = ik
|
||||
yes (MSM), pressure/scalar = yes (MSM), fftbench = no (PPPM), diff = ik
|
||||
(PPPM), mix/disp = pair, force/disp/real = -1.0, force/disp/kspace = -1.0,
|
||||
split = 0, tol = 1.0e-6, and disp/auto = no.
|
||||
split = 0, tol = 1.0e-6, and disp/auto = no. For pppm/intel, order =
|
||||
order/disp = 7.
|
||||
|
||||
:line
|
||||
|
||||
|
||||
@ -33,12 +33,16 @@ style = {none} or {ewald} or {ewald/disp} or {ewald/omp} or {pppm} or {pppm/cg}
|
||||
accuracy = desired relative error in forces
|
||||
{pppm/gpu} value = accuracy
|
||||
accuracy = desired relative error in forces
|
||||
{pppm/intel} value = accuracy
|
||||
accuracy = desired relative error in forces
|
||||
{pppm/kk} value = accuracy
|
||||
accuracy = desired relative error in forces
|
||||
{pppm/omp} value = accuracy
|
||||
accuracy = desired relative error in forces
|
||||
{pppm/cg/omp} value = accuracy
|
||||
accuracy = desired relative error in forces
|
||||
{pppm/disp/intel} value = accuracy
|
||||
accuracy = desired relative error in forces
|
||||
{pppm/tip4p/omp} value = accuracy
|
||||
accuracy = desired relative error in forces
|
||||
{pppm/stagger} value = accuracy
|
||||
|
||||
@ -55,12 +55,12 @@ dihedral_style.html
|
||||
dimension.html
|
||||
displace_atoms.html
|
||||
dump.html
|
||||
dump_custom_vtk.html
|
||||
dump_h5md.html
|
||||
dump_image.html
|
||||
dump_modify.html
|
||||
dump_molfile.html
|
||||
dump_nc.html
|
||||
dump_netcdf.html
|
||||
dump_vtk.html
|
||||
echo.html
|
||||
fix.html
|
||||
fix_modify.html
|
||||
@ -237,6 +237,7 @@ fix_pour.html
|
||||
fix_press_berendsen.html
|
||||
fix_print.html
|
||||
fix_property_atom.html
|
||||
fix_python.html
|
||||
fix_qbmsst.html
|
||||
fix_qeq.html
|
||||
fix_qeq_comb.html
|
||||
@ -300,6 +301,7 @@ compute_centro_atom.html
|
||||
compute_chunk_atom.html
|
||||
compute_cluster_atom.html
|
||||
compute_cna_atom.html
|
||||
compute_cnp_atom.html
|
||||
compute_com.html
|
||||
compute_com_chunk.html
|
||||
compute_contact_atom.html
|
||||
@ -432,6 +434,7 @@ pair_gauss.html
|
||||
pair_gayberne.html
|
||||
pair_gran.html
|
||||
pair_gromacs.html
|
||||
pair_gw.html
|
||||
pair_hbond_dreiding.html
|
||||
pair_hybrid.html
|
||||
pair_kim.html
|
||||
@ -444,7 +447,6 @@ pair_lj96.html
|
||||
pair_lj_cubic.html
|
||||
pair_lj_expand.html
|
||||
pair_lj_long.html
|
||||
pair_lj_sf.html
|
||||
pair_lj_smooth.html
|
||||
pair_lj_smooth_linear.html
|
||||
pair_lj_soft.html
|
||||
@ -464,11 +466,13 @@ pair_nb3b_harmonic.html
|
||||
pair_nm.html
|
||||
pair_none.html
|
||||
pair_oxdna.html
|
||||
pair_oxdna2.html
|
||||
pair_peri.html
|
||||
pair_polymorphic.html
|
||||
pair_python.html
|
||||
pair_quip.html
|
||||
pair_reax.html
|
||||
pair_reax_c.html
|
||||
pair_reaxc.html
|
||||
pair_resquared.html
|
||||
pair_sdk.html
|
||||
pair_smd_hertz.html
|
||||
|
||||
@ -24,14 +24,15 @@ to the relevant fixes.
|
||||
{manifold} @ {parameters} @ {equation} @ {description}
|
||||
cylinder @ R @ x^2 + y^2 - R^2 = 0 @ Cylinder along z-axis, axis going through (0,0,0)
|
||||
cylinder_dent @ R l a @ x^2 + y^2 - r(z)^2 = 0, r(x) = R if | z | > l, r(z) = R - a*(1 + cos(z/l))/2 otherwise @ A cylinder with a dent around z = 0
|
||||
dumbbell @ a A B c @ -( x^2 + y^2 ) * (a^2 - z^2/c^2) * ( 1 + (A*sin(B*z^2))^4) = 0 @ A dumbbell @
|
||||
dumbbell @ a A B c @ -( x^2 + y^2 ) + (a^2 - z^2/c^2) * ( 1 + (A*sin(B*z^2))^4) = 0 @ A dumbbell
|
||||
ellipsoid @ a b c @ (x/a)^2 + (y/b)^2 + (z/c)^2 = 0 @ An ellipsoid
|
||||
gaussian_bump @ A l rc1 rc2 @ if( x < rc1) -z + A * exp( -x^2 / (2 l^2) ); else if( x < rc2 ) -z + a + b*x + c*x^2 + d*x^3; else z @ A Gaussian bump at x = y = 0, smoothly tapered to a flat plane z = 0.
|
||||
plane @ a b c x0 y0 z0 @ a*(x-x0) + b*(y-y0) + c*(z-z0) = 0 @ A plane with normal (a,b,c) going through point (x0,y0,z0)
|
||||
plane_wiggle @ a w @ z - a*sin(w*x) = 0 @ A plane with a sinusoidal modulation on z along x.
|
||||
sphere @ R @ x^2 + y^2 + z^2 - R^2 = 0 @ A sphere of radius R
|
||||
supersphere @ R q @ | x |^q + | y |^q + | z |^q - R^q = 0 @ A supersphere of hyperradius R
|
||||
spine @ a, A, B, B2, c @ -(x^2 + y^2)*(a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^4), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ An approximation to a dendtritic spine
|
||||
spine_two @ a, A, B, B2, c @ -(x^2 + y^2)*(a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^2), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ Another approximation to a dendtritic spine
|
||||
spine @ a, A, B, B2, c @ -(x^2 + y^2) + (a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^4), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ An approximation to a dendtritic spine
|
||||
spine_two @ a, A, B, B2, c @ -(x^2 + y^2) + (a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^2), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ Another approximation to a dendtritic spine
|
||||
thylakoid @ wB LB lB @ Various, see "(Paquay)"_#Paquay1 @ A model grana thylakoid consisting of two block-like compartments connected by a bridge of width wB, length LB and taper length lB
|
||||
torus @ R r @ (R - sqrt( x^2 + y^2 ) )^2 + z^2 - r^2 @ A torus with large radius R and small radius r, centered on (0,0,0) :tb(s=@)
|
||||
|
||||
|
||||
219
doc/src/neb.txt
@ -10,28 +10,31 @@ neb command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
neb etol ftol N1 N2 Nevery file-style arg :pre
|
||||
neb etol ftol N1 N2 Nevery file-style arg keyword :pre
|
||||
|
||||
etol = stopping tolerance for energy (energy units) :ulb,l
|
||||
ftol = stopping tolerance for force (force units) :l
|
||||
N1 = max # of iterations (timesteps) to run initial NEB :l
|
||||
N2 = max # of iterations (timesteps) to run barrier-climbing NEB :l
|
||||
Nevery = print replica energies and reaction coordinates every this many timesteps :l
|
||||
file-style= {final} or {each} or {none} :l
|
||||
file-style = {final} or {each} or {none} :l
|
||||
{final} arg = filename
|
||||
filename = file with initial coords for final replica
|
||||
coords for intermediate replicas are linearly interpolated between first and last replica
|
||||
coords for intermediate replicas are linearly interpolated
|
||||
between first and last replica
|
||||
{each} arg = filename
|
||||
filename = unique filename for each replica (except first) with its initial coords
|
||||
{none} arg = no argument
|
||||
all replicas assumed to already have their initial coords :pre
|
||||
filename = unique filename for each replica (except first)
|
||||
with its initial coords
|
||||
{none} arg = no argument all replicas assumed to already have
|
||||
their initial coords :pre
|
||||
keyword = {verbose}
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
neb 0.1 0.0 1000 500 50 final coords.final
|
||||
neb 0.0 0.001 1000 500 50 each coords.initial.$i
|
||||
neb 0.0 0.001 1000 500 50 none :pre
|
||||
neb 0.0 0.001 1000 500 50 none verbose :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -43,8 +46,8 @@ NEB is a method for finding both the atomic configurations and height
|
||||
of the energy barrier associated with a transition state, e.g. for an
|
||||
atom to perform a diffusive hop from one energy basin to another in a
|
||||
coordinated fashion with its neighbors. The implementation in LAMMPS
|
||||
follows the discussion in these 3 papers: "(HenkelmanA)"_#HenkelmanA,
|
||||
"(HenkelmanB)"_#HenkelmanB, and "(Nakano)"_#Nakano3.
|
||||
follows the discussion in these 4 papers: "(HenkelmanA)"_#HenkelmanA,
|
||||
"(HenkelmanB)"_#HenkelmanB, "(Nakano)"_#Nakano3 and "(Maras)"_#Maras2.
|
||||
|
||||
Each replica runs on a partition of one or more processors. Processor
|
||||
partitions are defined at run-time using the -partition command-line
|
||||
@ -70,18 +73,17 @@ I.e. the simulation domain, the number of atoms, the interaction
|
||||
potentials, and the starting configuration when the neb command is
|
||||
issued should be the same for every replica.
|
||||
|
||||
In a NEB calculation each atom in a replica is connected to the same
|
||||
atom in adjacent replicas by springs, which induce inter-replica
|
||||
forces. These forces are imposed by the "fix neb"_fix_neb.html
|
||||
command, which must be used in conjunction with the neb command. The
|
||||
group used to define the fix neb command defines the NEB atoms which
|
||||
are the only ones that inter-replica springs are applied to. If the
|
||||
group does not include all atoms, then non-NEB atoms have no
|
||||
inter-replica springs and the forces they feel and their motion is
|
||||
computed in the usual way due only to other atoms within their
|
||||
replica. Conceptually, the non-NEB atoms provide a background force
|
||||
field for the NEB atoms. They can be allowed to move during the NEB
|
||||
minimization procedure (which will typically induce different
|
||||
In a NEB calculation each replica is connected to other replicas by
|
||||
inter-replica nudging forces. These forces are imposed by the "fix
|
||||
neb"_fix_neb.html command, which must be used in conjunction with the
|
||||
neb command. The group used to define the fix neb command defines the
|
||||
NEB atoms which are the only ones that inter-replica springs are
|
||||
applied to. If the group does not include all atoms, then non-NEB
|
||||
atoms have no inter-replica springs and the forces they feel and their
|
||||
motion is computed in the usual way due only to other atoms within
|
||||
their replica. Conceptually, the non-NEB atoms provide a background
|
||||
force field for the NEB atoms. They can be allowed to move during the
|
||||
NEB minimization procedure (which will typically induce different
|
||||
coordinates for non-NEB atoms in different replicas), or held fixed
|
||||
using other LAMMPS commands such as "fix setforce"_fix_setforce.html.
|
||||
Note that the "partition"_partition.html command can be used to invoke
|
||||
@ -93,33 +95,18 @@ specified in different manners via the {file-style} setting, as
|
||||
discussed below. Only atoms whose initial coordinates should differ
|
||||
from the current configuration need be specified.
|
||||
|
||||
Conceptually, the initial configuration for the first replica should
|
||||
be a state with all the atoms (NEB and non-NEB) having coordinates on
|
||||
one side of the energy barrier. A perfect energy minimum is not
|
||||
required, since atoms in the first replica experience no spring forces
|
||||
from the 2nd replica. Thus the damped dynamics minimization will
|
||||
drive the first replica to an energy minimum if it is not already
|
||||
there. However, you will typically get better convergence if the
|
||||
initial state is already at a minimum. For example, for a system with
|
||||
a free surface, the surface should be fully relaxed before attempting
|
||||
a NEB calculation.
|
||||
|
||||
Likewise, the initial configuration of the final replica should be a
|
||||
state with all the atoms (NEB and non-NEB) on the other side of the
|
||||
energy barrier. Again, a perfect energy minimum is not required,
|
||||
since the atoms in the last replica also experience no spring forces
|
||||
from the next-to-last replica, and thus the damped dynamics
|
||||
minimization will drive it to an energy minimum.
|
||||
Conceptually, the initial and final configurations for the first
|
||||
replica should be states on either side of an energy barrier.
|
||||
|
||||
As explained below, the initial configurations of intermediate
|
||||
replicas can be atomic coordinates interpolated in a linear fashion
|
||||
between the first and last replicas. This is often adequate state for
|
||||
between the first and last replicas. This is often adequate for
|
||||
simple transitions. For more complex transitions, it may lead to slow
|
||||
convergence or even bad results if the minimum energy path (MEP, see
|
||||
below) of states over the barrier cannot be correctly converged to
|
||||
from such an initial configuration. In this case, you will want to
|
||||
generate initial states for the intermediate replicas that are
|
||||
geometrically closer to the MEP and read them in.
|
||||
from such an initial path. In this case, you will want to generate
|
||||
initial states for the intermediate replicas that are geometrically
|
||||
closer to the MEP and read them in.
|
||||
|
||||
:line
|
||||
|
||||
@ -135,10 +122,11 @@ is assigned to be a fraction of the distance. E.g. if there are 10
|
||||
replicas, the 2nd replica will assign a position that is 10% of the
|
||||
distance along a line between the starting and final point, and the
|
||||
9th replica will assign a position that is 90% of the distance along
|
||||
the line. Note that this procedure to produce consistent coordinates
|
||||
across all the replicas, the current coordinates need to be the same
|
||||
in all replicas. LAMMPS does not check for this, but invalid initial
|
||||
configurations will likely result if it is not the case.
|
||||
the line. Note that for this procedure to produce consistent
|
||||
coordinates across all the replicas, the current coordinates need to
|
||||
be the same in all replicas. LAMMPS does not check for this, but
|
||||
invalid initial configurations will likely result if it is not the
|
||||
case.
|
||||
|
||||
NOTE: The "distance" between the starting and final point is
|
||||
calculated in a minimum-image sense for a periodic simulation box.
|
||||
@ -150,8 +138,8 @@ interpolation is outside the periodic box, the atom will be wrapped
|
||||
back into the box when the NEB calculation begins.
|
||||
|
||||
For a {file-style} setting of {each}, a filename is specified which is
|
||||
assumed to be unique to each replica. This can be done by
|
||||
using a variable in the filename, e.g.
|
||||
assumed to be unique to each replica. This can be done by using a
|
||||
variable in the filename, e.g.
|
||||
|
||||
variable i equal part
|
||||
neb 0.0 0.001 1000 500 50 each coords.initial.$i :pre
|
||||
@ -198,11 +186,10 @@ The minimizer tolerances for energy and force are set by {etol} and
|
||||
A non-zero {etol} means that the NEB calculation will terminate if the
|
||||
energy criterion is met by every replica. The energies being compared
|
||||
to {etol} do not include any contribution from the inter-replica
|
||||
forces, since these are non-conservative. A non-zero {ftol} means
|
||||
that the NEB calculation will terminate if the force criterion is met
|
||||
by every replica. The forces being compared to {ftol} include the
|
||||
inter-replica forces between an atom and its images in adjacent
|
||||
replicas.
|
||||
nudging forces, since these are non-conservative. A non-zero {ftol}
|
||||
means that the NEB calculation will terminate if the force criterion
|
||||
is met by every replica. The forces being compared to {ftol} include
|
||||
the inter-replica nudging forces.
|
||||
|
||||
The maximum number of iterations in each stage is set by {N1} and
|
||||
{N2}. These are effectively timestep counts since each iteration of
|
||||
@ -220,27 +207,27 @@ finding a good energy barrier. {N1} and {N2} must both be multiples
|
||||
of {Nevery}.
|
||||
|
||||
In the first stage of NEB, the set of replicas should converge toward
|
||||
the minimum energy path (MEP) of conformational states that transition
|
||||
over the barrier. The MEP for a barrier is defined as a sequence of
|
||||
3N-dimensional states that cross the barrier at its saddle point, each
|
||||
of which has a potential energy gradient parallel to the MEP itself.
|
||||
The replica states will also be roughly equally spaced along the MEP
|
||||
due to the inter-replica spring force added by the "fix
|
||||
neb"_fix_neb.html command.
|
||||
a minimum energy path (MEP) of conformational states that transition
|
||||
over a barrier. The MEP for a transition is defined as a sequence of
|
||||
3N-dimensional states, each of which has a potential energy gradient
|
||||
parallel to the MEP itself. The configuration of highest energy along
|
||||
a MEP corresponds to a saddle point. The replica states will also be
|
||||
roughly equally spaced along the MEP due to the inter-replica nugding
|
||||
force added by the "fix neb"_fix_neb.html command.
|
||||
|
||||
In the second stage of NEB, the replica with the highest energy
|
||||
is selected and the inter-replica forces on it are converted to a
|
||||
force that drives its atom coordinates to the top or saddle point of
|
||||
the barrier, via the barrier-climbing calculation described in
|
||||
In the second stage of NEB, the replica with the highest energy is
|
||||
selected and the inter-replica forces on it are converted to a force
|
||||
that drives its atom coordinates to the top or saddle point of the
|
||||
barrier, via the barrier-climbing calculation described in
|
||||
"(HenkelmanB)"_#HenkelmanB. As before, the other replicas rearrange
|
||||
themselves along the MEP so as to be roughly equally spaced.
|
||||
|
||||
When both stages are complete, if the NEB calculation was successful,
|
||||
one of the replicas should be an atomic configuration at the top or
|
||||
saddle point of the barrier, the potential energies for the set of
|
||||
replicas should represent the energy profile of the barrier along the
|
||||
MEP, and the configurations of the replicas should be a sequence of
|
||||
configurations along the MEP.
|
||||
the configurations of the replicas should be along (close to) the MEP
|
||||
and the replica with the highest energy should be an atomic
|
||||
configuration at (close to) the saddle point of the transition. The
|
||||
potential energies for the set of replicas represents the energy
|
||||
profile of the transition along the MEP.
|
||||
|
||||
:line
|
||||
|
||||
@ -284,9 +271,9 @@ ID2 x2 y2 z2
|
||||
...
|
||||
IDN xN yN zN :pre
|
||||
|
||||
The fields are the atom ID, followed by the x,y,z coordinates.
|
||||
The lines can be listed in any order. Additional trailing information
|
||||
on the line is OK, such as a comment.
|
||||
The fields are the atom ID, followed by the x,y,z coordinates. The
|
||||
lines can be listed in any order. Additional trailing information on
|
||||
the line is OK, such as a comment.
|
||||
|
||||
Note that for a typical NEB calculation you do not need to specify
|
||||
initial coordinates for very many atoms to produce differing starting
|
||||
@ -310,38 +297,54 @@ this case), the print-out to the screen and master log.lammps file
|
||||
contains a line of output, printed once every {Nevery} timesteps. It
|
||||
contains the timestep, the maximum force per replica, the maximum
|
||||
force per atom (in any replica), potential gradients in the initial,
|
||||
final, and climbing replicas, the forward and backward energy barriers,
|
||||
the total reaction coordinate (RDT), and the normalized reaction
|
||||
coordinate and potential energy of each replica.
|
||||
final, and climbing replicas, the forward and backward energy
|
||||
barriers, the total reaction coordinate (RDT), and the normalized
|
||||
reaction coordinate and potential energy of each replica.
|
||||
|
||||
The "maximum force per replica" is
|
||||
the two-norm of the 3N-length force vector for the atoms in each
|
||||
replica, maximized across replicas, which is what the {ftol} setting
|
||||
is checking against. In this case, N is all the atoms in each
|
||||
replica. The "maximum force per atom" is the maximum force component
|
||||
of any atom in any replica. The potential gradients are the two-norm
|
||||
of the 3N-length force vector solely due to the interaction potential i.e.
|
||||
without adding in inter-replica forces. Note that inter-replica forces
|
||||
are zero in the initial and final replicas, and only affect
|
||||
the direction in the climbing replica. For this reason, the "maximum
|
||||
force per replica" is often equal to the potential gradient in the
|
||||
climbing replica. In the first stage of NEB, there is no climbing
|
||||
replica, and so the potential gradient in the highest energy replica
|
||||
is reported, since this replica will become the climbing replica
|
||||
in the second stage of NEB.
|
||||
The "maximum force per replica" is the two-norm of the 3N-length force
|
||||
vector for the atoms in each replica, maximized across replicas, which
|
||||
is what the {ftol} setting is checking against. In this case, N is
|
||||
all the atoms in each replica. The "maximum force per atom" is the
|
||||
maximum force component of any atom in any replica. The potential
|
||||
gradients are the two-norm of the 3N-length force vector solely due to
|
||||
the interaction potential i.e. without adding in inter-replica
|
||||
forces.
|
||||
|
||||
The "reaction coordinate" (RD) for each
|
||||
replica is the two-norm of the 3N-length vector of distances between
|
||||
its atoms and the preceding replica's atoms, added to the RD of the
|
||||
preceding replica. The RD of the first replica RD1 = 0.0;
|
||||
the RD of the final replica RDN = RDT, the total reaction coordinate.
|
||||
The normalized RDs are divided by RDT,
|
||||
so that they form a monotonically increasing sequence
|
||||
from zero to one. When computing RD, N only includes the atoms
|
||||
being operated on by the fix neb command.
|
||||
The "reaction coordinate" (RD) for each replica is the two-norm of the
|
||||
3N-length vector of distances between its atoms and the preceding
|
||||
replica's atoms, added to the RD of the preceding replica. The RD of
|
||||
the first replica RD1 = 0.0; the RD of the final replica RDN = RDT,
|
||||
the total reaction coordinate. The normalized RDs are divided by RDT,
|
||||
so that they form a monotonically increasing sequence from zero to
|
||||
one. When computing RD, N only includes the atoms being operated on by
|
||||
the fix neb command.
|
||||
|
||||
The forward (reverse) energy barrier is the potential energy of the
|
||||
highest replica minus the energy of the first (last) replica.
|
||||
|
||||
Supplementary informations for all replicas can be printed out to the
|
||||
screen and master log.lammps file by adding the verbose keyword. These
|
||||
informations include the following. The "path angle" (pathangle) for
|
||||
the replica i which is the angle between the 3N-length vectors (Ri-1 -
|
||||
Ri) and (Ri+1 - Ri) (where Ri is the atomic coordinates of replica
|
||||
i). A "path angle" of 180 indicates that replicas i-1, i and i+1 are
|
||||
aligned. "angletangrad" is the angle between the 3N-length tangent
|
||||
vector and the 3N-length force vector at image i. The tangent vector
|
||||
is calculated as in "(HenkelmanA)"_#HenkelmanA for all intermediate
|
||||
replicas and at R2 - R1 and RM - RM-1 for the first and last replica,
|
||||
respectively. "anglegrad" is the angle between the 3N-length energy
|
||||
gradient vector of replica i and that of replica i+1. It is not
|
||||
defined for the final replica and reads nan. gradV is the norm of the
|
||||
energy gradient of image i. ReplicaForce is the two-norm of the
|
||||
3N-length force vector (including nudging forces) for replica i.
|
||||
MaxAtomForce is the maximum force component of any atom in replica i.
|
||||
|
||||
When a NEB calculation does not converge properly, these suplementary
|
||||
informations can help understanding what is going wrong. For instance
|
||||
when the path angle becomes accute the definition of tangent used in
|
||||
the NEB calculation is questionable and the NEB cannot may diverge
|
||||
"(Maras)"_#Maras2.
|
||||
|
||||
The forward (reverse) energy barrier is the potential energy of the highest
|
||||
replica minus the energy of the first (last) replica.
|
||||
|
||||
When running on multiple partitions, LAMMPS produces additional log
|
||||
files for each partition, e.g. log.lammps.0, log.lammps.1, etc. For a
|
||||
@ -396,12 +399,16 @@ This command can only be used if LAMMPS was built with the REPLICA
|
||||
package. See the "Making LAMMPS"_Section_start.html#start_3 section
|
||||
for more info on packages.
|
||||
|
||||
:line
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"prd"_prd.html, "temper"_temper.html, "fix
|
||||
langevin"_fix_langevin.html, "fix viscous"_fix_viscous.html
|
||||
"prd"_prd.html, "temper"_temper.html, "fix langevin"_fix_langevin.html,
|
||||
"fix viscous"_fix_viscous.html
|
||||
|
||||
[Default:] none
|
||||
[Default:]
|
||||
|
||||
none
|
||||
|
||||
:line
|
||||
|
||||
@ -414,3 +421,7 @@ langevin"_fix_langevin.html, "fix viscous"_fix_viscous.html
|
||||
|
||||
:link(Nakano3)
|
||||
[(Nakano)] Nakano, Comp Phys Comm, 178, 280-289 (2008).
|
||||
|
||||
:link(Maras2)
|
||||
[(Maras)] Maras, Trushin, Stukowski, Ala-Nissila, Jonsson,
|
||||
Comp Phys Comm, 205, 13-21 (2016)
|
||||
|
||||
@ -574,9 +574,9 @@ is used. If it is not used, you must invoke the package intel
|
||||
command in your input script or or via the "-pk intel" "command-line
|
||||
switch"_Section_start.html#start_7.
|
||||
|
||||
For the KOKKOS package, the option defaults neigh = full, neigh/qeq
|
||||
= full, newton = off, binsize = 0.0, and comm = device. These settings
|
||||
are made automatically by the required "-k on" "command-line
|
||||
For the KOKKOS package, the option defaults neigh = full,
|
||||
neigh/qeq = full, newton = off, binsize = 0.0, and comm = device.
|
||||
These settings are made automatically by the required "-k on" "command-line
|
||||
switch"_Section_start.html#start_7. You can change them bu using the
|
||||
package kokkos command in your input script or via the "-pk kokkos"
|
||||
"command-line switch"_Section_start.html#start_7.
|
||||
|
||||
@ -40,8 +40,8 @@ vectorial atomic forces.
|
||||
|
||||
Only a single pair_coeff command is used with the {agni} style which
|
||||
specifies an AGNI potential file containing the parameters of the
|
||||
force field for the needed elements. These are mapped to LAMMPS atom
|
||||
types by specifying N additional arguments after the filename in the
|
||||
force field for the needed elements. These are mapped to LAMMPS atom
|
||||
types by specifying N additional arguments after the filename in the
|
||||
pair_coeff command, where N is the number of LAMMPS atom types:
|
||||
|
||||
filename
|
||||
@ -52,13 +52,13 @@ to specify the path for the force field file.
|
||||
|
||||
An AGNI force field is fully specified by the filename which contains the
|
||||
parameters of the force field, i.e., the reference training environments
|
||||
used to construct the machine learning force field. Example force field
|
||||
and input files are provided in the examples/USER/misc/agni directory.
|
||||
used to construct the machine learning force field. Example force field
|
||||
and input files are provided in the examples/USER/misc/agni directory.
|
||||
|
||||
:line
|
||||
|
||||
Styles with {omp} suffix is functionally the same as the corresponding
|
||||
style without the suffix. They have been optimized to run faster, depending
|
||||
Styles with {omp} suffix is functionally the same as the corresponding
|
||||
style without the suffix. They have been optimized to run faster, depending
|
||||
on your available hardware, as discussed in "Section 5"_Section_accelerate.html
|
||||
of the manual. The accelerated style takes the same arguments and
|
||||
should produce the same results, except for round-off and precision
|
||||
|
||||
@ -120,6 +120,9 @@ cutoff (distance units)
|
||||
cutoff2 (distance units) :ul
|
||||
|
||||
The second coefficient, rho, must be greater than zero.
|
||||
The coefficients A, rho, and C can be written as analytical expressions
|
||||
of epsilon and sigma, in analogy to the Lennard-Jones potential
|
||||
"(Khrapak)"_#Khrapak.
|
||||
|
||||
The latter 2 coefficients are optional. If not specified, the global
|
||||
A,C and Coulombic cutoffs are used. If only one cutoff is specified,
|
||||
@ -127,7 +130,6 @@ it is used as the cutoff for both A,C and Coulombic interactions for
|
||||
this type pair. If both coefficients are specified, they are used as
|
||||
the A,C and Coulombic cutoffs for this type pair. You cannot specify
|
||||
2 cutoffs for style {buck}, since it has no Coulombic terms.
|
||||
|
||||
For {buck/coul/long} only the LJ cutoff can be specified since a
|
||||
Coulombic cutoff cannot be specified for an individual I,J type pair.
|
||||
All type pairs use the same global Coulombic cutoff specified in the
|
||||
@ -194,3 +196,6 @@ only enabled if LAMMPS was built with that package. See the
|
||||
"pair_coeff"_pair_coeff.html, "pair_style born"_pair_born.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
:link(Khrapak)
|
||||
[(Khrapak)] Khrapak, Chaudhuri, and Morfill, J Chem Phys, 134, 054120 (2011).
|
||||
|
||||
@ -49,8 +49,8 @@ args = list of arguments for a particular style :ul
|
||||
|
||||
pair_style lj/charmm/coul/charmm 8.0 10.0
|
||||
pair_style lj/charmm/coul/charmm 8.0 10.0 7.0 9.0
|
||||
pair_style lj/charmmfsw/coul/charmmfsh 8.0 10.0
|
||||
pair_style lj/charmmfsw/coul/charmmfsh 8.0 10.0 7.0 9.0
|
||||
pair_style lj/charmmfsw/coul/charmmfsh 10.0 12.0
|
||||
pair_style lj/charmmfsw/coul/charmmfsh 10.0 12.0 9.0
|
||||
pair_coeff * * 100.0 2.0
|
||||
pair_coeff 1 1 100.0 2.0 150.0 3.5 :pre
|
||||
|
||||
@ -84,9 +84,9 @@ CHARMM force field.
|
||||
The styles with {charmm} (not {charmmfsw} or {charmmfsh}) in their
|
||||
name are the older, original LAMMPS implementations. They compute the
|
||||
LJ and Coulombic interactions with an energy switching function (esw,
|
||||
a cubic polynomial, shown in the formula below), which ramps the
|
||||
energy smoothly to zero between the inner and outer cutoff. This can
|
||||
cause irregularities in pair-wise forces (due to the discontinuous 2nd
|
||||
shown in the formula below as S(r)), which ramps the energy smoothly
|
||||
to zero between the inner and outer cutoff. This can cause
|
||||
irregularities in pair-wise forces (due to the discontinuous 2nd
|
||||
derivative of energy at the boundaries of the switching region), which
|
||||
in some cases can result in detectable artifacts in an MD simulation.
|
||||
|
||||
@ -94,16 +94,25 @@ The newer styles with {charmmfsw} or {charmmfsh} in their name replace
|
||||
the energy switching with force switching (fsw) and force shifting
|
||||
(fsh) functions, for LJ and Coulombic interactions respectively.
|
||||
These follow the formulas and description given in
|
||||
"(Steinbach)"_#Steinbach and "(Brooks)"_#Brooks to minimize these
|
||||
"(Steinbach)"_#Steinbach and "(Brooks)"_#Brooks1 to minimize these
|
||||
artifacts.
|
||||
|
||||
NOTE: The newer {charmmfsw} or {charmmfsh} styles were released in
|
||||
March 2017. We recommend they be used instead of the older {charmm}
|
||||
styles. Eventually code from the new styles will propagate into the
|
||||
related pair styles (e.g. implicit, accelerator, free energy
|
||||
variants).
|
||||
styles. This includes the newer "dihedral_style
|
||||
charmmfsw"_dihedral_charmm.html command. Eventually code from the new
|
||||
styles will propagate into the related pair styles (e.g. implicit,
|
||||
accelerator, free energy variants).
|
||||
|
||||
The general CHARMM formulas are as follows
|
||||
NOTE: The newest CHARMM pair styles reset the Coulombic energy
|
||||
conversion factor used internally in the code, from the LAMMPS value
|
||||
to the CHARMM value, as if it were effectively a parameter of the
|
||||
force field. This is because the CHARMM code uses a slightly
|
||||
different value for the this conversion factor in "real
|
||||
units"_units.html (Kcal/mole), namely CHARMM = 332.0716, LAMMPS =
|
||||
332.06371. This is to enable more precise agreement by LAMMPS with
|
||||
the CHARMM force field energies and forces, when using one of these
|
||||
two CHARMM pair styles.
|
||||
|
||||
:c,image(Eqs/pair_charmm.jpg)
|
||||
|
||||
@ -248,7 +257,7 @@ the MOLECULE and KSPACE packages are installed by default.
|
||||
|
||||
:line
|
||||
|
||||
:link(Brooks)
|
||||
:link(Brooks1)
|
||||
[(Brooks)] Brooks, et al, J Comput Chem, 30, 1545 (2009).
|
||||
|
||||
:link(pair-MacKerell)
|
||||
|
||||
@ -71,6 +71,14 @@ and force, Fij = -Fji as symmetric forces, and Tij != -Tji since the
|
||||
torques do not act symmetrically. These formulas are discussed in
|
||||
"(Allen)"_#Allen2 and in "(Toukmaji)"_#Toukmaji2.
|
||||
|
||||
Also note, that in the code, all of these terms (except Elj) have a
|
||||
C/epsilon prefactor, the same as the Coulombic term in the LJ +
|
||||
Coulombic pair styles discussed "here"_pair_lj.html. C is an
|
||||
energy-conversion constant and epsilon is the dielectric constant
|
||||
which can be set by the "dielectric"_dielectric.html command. The
|
||||
same is true of the equations that follow for other dipole pair
|
||||
styles.
|
||||
|
||||
Style {lj/sf/dipole/sf} computes "shifted-force" interactions between
|
||||
pairs of particles that each have a charge and/or a point dipole
|
||||
moment. In general, a shifted-force potential is a (sligthly) modified
|
||||
|
||||
@ -7,11 +7,13 @@
|
||||
:line
|
||||
|
||||
pair_style edip command :h3
|
||||
pair_style edip/multi command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
pair_style edip :pre
|
||||
pair_style edip/omp :pre
|
||||
pair_style style :pre
|
||||
|
||||
style = {edip} or {edip/multi} :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
@ -20,11 +22,14 @@ pair_coeff * * Si.edip Si
|
||||
|
||||
[Description:]
|
||||
|
||||
The {edip} style computes a 3-body "EDIP"_#EDIP potential which is
|
||||
popular for modeling silicon materials where it can have advantages
|
||||
over other models such as the "Stillinger-Weber"_pair_sw.html or
|
||||
"Tersoff"_pair_tersoff.html potentials. In EDIP, the energy E of a
|
||||
system of atoms is
|
||||
The {edip} and {edip/multi} styles compute a 3-body "EDIP"_#EDIP
|
||||
potential which is popular for modeling silicon materials where
|
||||
it can have advantages over other models such as the
|
||||
"Stillinger-Weber"_pair_sw.html or "Tersoff"_pair_tersoff.html
|
||||
potentials. The {edip} style has been programmed for single element
|
||||
potentials, while {edip/multi} supports multi-element EDIP runs.
|
||||
|
||||
In EDIP, the energy E of a system of atoms is
|
||||
|
||||
:c,image(Eqs/pair_edip.jpg)
|
||||
|
||||
@ -142,7 +147,7 @@ This pair style can only be used via the {pair} keyword of the
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This angle style can only be used if LAMMPS was built with the
|
||||
This pair 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.
|
||||
|
||||
@ -151,7 +156,7 @@ for pair interactions.
|
||||
|
||||
The EDIP potential files provided with LAMMPS (see the potentials directory)
|
||||
are parameterized for metal "units"_units.html.
|
||||
You can use the SW potential with any LAMMPS units, but you would need
|
||||
You can use the EDIP potential with any LAMMPS units, but you would need
|
||||
to create your own EDIP potential file with coefficients listed in the
|
||||
appropriate units if your simulation doesn't use "metal" units.
|
||||
|
||||
@ -164,4 +169,4 @@ appropriate units if your simulation doesn't use "metal" units.
|
||||
:line
|
||||
|
||||
:link(EDIP)
|
||||
[(EDIP)] J. F. Justo et al., Phys. Rev. B 58, 2539 (1998).
|
||||
[(EDIP)] J F Justo et al, Phys Rev B 58, 2539 (1998).
|
||||
|
||||
@ -55,33 +55,33 @@ defined in the reaction kinetics files specified with the "fix
|
||||
rx"_fix_rx.html command or they must correspond to the tag "1fluid",
|
||||
signifying interaction with a product species mixture determined
|
||||
through a one-fluid approximation. The interaction potential is
|
||||
weighted by the geometric average of either the mole fraction concentrations
|
||||
or the number of molecules associated with the interacting coarse-grained
|
||||
particles (see the {fractional} or {molecular} weighting pair style options).
|
||||
weighted by the geometric average of either the mole fraction concentrations
|
||||
or the number of molecules associated with the interacting coarse-grained
|
||||
particles (see the {fractional} or {molecular} weighting pair style options).
|
||||
The coarse-grained potential is stored before and after the
|
||||
reaction kinetics solver is applied, where the difference is defined
|
||||
to be the internal chemical energy (uChem).
|
||||
|
||||
The fourth argument specifies the type of scaling that will be used
|
||||
The fourth argument specifies the type of scaling that will be used
|
||||
to scale the EXP-6 parameters as reactions occur. Currently, there
|
||||
are three scaling options: {exponent}, {polynomial} and {none}.
|
||||
|
||||
Exponent scaling requires two additional arguments for scaling
|
||||
Exponent scaling requires two additional arguments for scaling
|
||||
the {Rm} and {epsilon} parameters, respectively. The scaling factor
|
||||
is computed by phi^exponent, where phi is the number of molecules
|
||||
represented by the coarse-grain particle and exponent is specified
|
||||
is computed by phi^exponent, where phi is the number of molecules
|
||||
represented by the coarse-grain particle and exponent is specified
|
||||
as a pair coefficient argument for {Rm} and {epsilon}, respectively.
|
||||
The {Rm} and {epsilon} parameters are multiplied by the scaling
|
||||
The {Rm} and {epsilon} parameters are multiplied by the scaling
|
||||
factor to give the scaled interaction parameters for the CG particle.
|
||||
|
||||
Polynomial scaling requires a filename to be specified as a pair
|
||||
Polynomial scaling requires a filename to be specified as a pair
|
||||
coeff argument. The file contains the coefficients to a fifth order
|
||||
polynomial for the {alpha}, {epsilon} and {Rm} parameters that depend
|
||||
upon phi (the number of molecules represented by the CG particle).
|
||||
polynomial for the {alpha}, {epsilon} and {Rm} parameters that depend
|
||||
upon phi (the number of molecules represented by the CG particle).
|
||||
The format of a polynomial file is provided below.
|
||||
|
||||
The {none} option to the scaling does not have any additional pair coeff
|
||||
arguments. This is equivalent to specifying the {exponent} option with
|
||||
arguments. This is equivalent to specifying the {exponent} option with
|
||||
{Rm} and {epsilon} exponents of 0.0 and 0.0, respectively.
|
||||
|
||||
The final argument specifies the interaction cutoff (optional).
|
||||
@ -102,7 +102,7 @@ parenthesized comments):
|
||||
|
||||
# POLYNOMIAL FILE (one or more comment or blank lines) :pre
|
||||
# General Functional Form:
|
||||
# A*phi^5 + B*phi^4 + C*phi^3 + D*phi^2 + E*phi + F
|
||||
# A*phi^5 + B*phi^4 + C*phi^3 + D*phi^2 + E*phi + F
|
||||
#
|
||||
# Parameter A B C D E F
|
||||
(blank)
|
||||
|
||||
@ -128,7 +128,7 @@ The B parameter is converted to a distance (sigma), before mixing
|
||||
afterwards (using B=sigma^2).
|
||||
Negative A values are converted to positive A values (using abs(A))
|
||||
before mixing, and converted back after mixing
|
||||
(by multiplying by sign(Ai)*sign(Aj)).
|
||||
(by multiplying by min(sign(Ai),sign(Aj))).
|
||||
This way, if either particle is repulsive (if Ai<0 or Aj<0),
|
||||
then the default interaction between both particles will be repulsive.
|
||||
|
||||
|
||||
120
doc/src/pair_gw.txt
Normal file
@ -0,0 +1,120 @@
|
||||
"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 gw command :h3
|
||||
pair_style gw/zbl command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
pair_style style :pre
|
||||
|
||||
style = {gw} or {gw/zbl} :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
pair_style gw
|
||||
pair_coeff * * SiC.gw Si C C
|
||||
|
||||
pair_style gw/zbl
|
||||
pair_coeff * * SiC.gw.zbl C Si :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
The {gw} style computes a 3-body "Gao-Weber"_#Gao potential;
|
||||
similarly {gw/zbl} combines this potential with a modified
|
||||
repulsive ZBL core function in a similar fashion as implemented
|
||||
in the "tersoff/zbl"_pair_tersoff_zbl.html pair style.
|
||||
|
||||
Unfortunately the author of this contributed code has not been
|
||||
able to submit a suitable documentation explaining the details
|
||||
of the potentials. The LAMMPS developers thus have finally decided
|
||||
to release the code anyway with only the technical explanations.
|
||||
For details of the model and the parameters, please refer to the
|
||||
linked publication.
|
||||
|
||||
Only a single pair_coeff command is used with the {gw} and {gw/zbl}
|
||||
styles which specifies a Gao-Weber potential file with parameters
|
||||
for all needed elements. These are mapped to LAMMPS atom types by
|
||||
specifying N additional arguments after the filename in the pair_coeff
|
||||
command, where N is the number of LAMMPS atom types:
|
||||
|
||||
filename
|
||||
N element names = mapping of GW elements to atom types :ul
|
||||
|
||||
See the "pair_coeff"_pair_coeff.html doc page for alternate ways
|
||||
to specify the path for the potential file.
|
||||
|
||||
As an example, imagine a file SiC.gw has Gao-Weber values for Si and C.
|
||||
If your LAMMPS simulation has 4 atoms types and you want the first 3 to
|
||||
be Si, and the 4th to be C, you would use the following pair_coeff command:
|
||||
|
||||
pair_coeff * * SiC.gw Si Si Si C :pre
|
||||
|
||||
The first 2 arguments must be * * so as to span all LAMMPS atom types.
|
||||
The first three Si arguments map LAMMPS atom types 1,2,3 to the Si
|
||||
element in the GW file. The final C argument maps LAMMPS atom type 4
|
||||
to the C element in the GW file. If a mapping value is specified as
|
||||
NULL, the mapping is not performed. This can be used when a {gw}
|
||||
potential is used as part of the {hybrid} pair style. The NULL values
|
||||
are placeholders for atom types that will be used with other
|
||||
potentials.
|
||||
|
||||
Gao-Weber files in the {potentials} directory of the LAMMPS
|
||||
distribution have a ".gw" suffix. Gao-Weber with ZBL files
|
||||
have a ".gz.zbl" suffix. The structure of the potential files
|
||||
is similar to other many-body potentials supported by LAMMPS.
|
||||
You have to refer to the comments in the files and the literature
|
||||
to learn more details.
|
||||
|
||||
:line
|
||||
|
||||
[Mixing, shift, table, tail correction, restart, rRESPA info]:
|
||||
|
||||
For atom type pairs I,J and I != J, where types I and J correspond to
|
||||
two different element types, mixing is performed by LAMMPS as
|
||||
described above from values in the potential file.
|
||||
|
||||
This pair style does not support the "pair_modify"_pair_modify.html
|
||||
shift, table, and tail options.
|
||||
|
||||
This pair style does not write its information to "binary restart
|
||||
files"_restart.html, since it is stored in potential files. Thus, you
|
||||
need to re-specify the pair_style and pair_coeff commands in an input
|
||||
script that reads a restart file.
|
||||
|
||||
This pair style can only be used via the {pair} keyword of the
|
||||
"run_style respa"_run_style.html command. It does not support the
|
||||
{inner}, {middle}, {outer} keywords.
|
||||
|
||||
:line
|
||||
|
||||
[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 requires the "newton"_newton.html setting to be "on"
|
||||
for pair interactions.
|
||||
|
||||
The Gao-Weber potential files provided with LAMMPS (see the
|
||||
potentials directory) are parameterized for metal "units"_units.html.
|
||||
You can use the GW potential with any LAMMPS units, but you would need
|
||||
to create your own GW potential file with coefficients listed in the
|
||||
appropriate units if your simulation doesn't use "metal" units.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"pair_coeff"_pair_coeff.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
:line
|
||||
|
||||
:link(Gao)
|
||||
[(Gao)] Gao and Weber, Nuclear Instruments and Methods in Physics Research B 191 (2012) 504.
|
||||
@ -73,7 +73,7 @@ pair_coeff command to assign parameters for the different type pairs.
|
||||
NOTE: There are two exceptions to this option to list an individual
|
||||
pair style multiple times. The first is for pair styles implemented
|
||||
as Fortran libraries: "pair_style meam"_pair_meam.html and "pair_style
|
||||
reax"_pair_reax.html ("pair_style reax/c"_pair_reax_c.html is OK).
|
||||
reax"_pair_reax.html ("pair_style reax/c"_pair_reaxc.html is OK).
|
||||
This is because unlike a C++ class, they can not be instantiated
|
||||
multiple times, due to the manner in which they were coded in Fortran.
|
||||
The second is for GPU-enabled pair styles in the GPU package. This is
|
||||
@ -225,6 +225,12 @@ special_bonds lj/coul 1e-20 1e-20 0.5
|
||||
pair_hybrid tersoff lj/cut/coul/long 12.0
|
||||
pair_modify pair tersoff special lj/coul 1.0 1.0 1.0 :pre
|
||||
|
||||
For use with the various "compute */tally"_compute_tally.html
|
||||
computes, the "pair_modify compute/tally"_pair_modify.html
|
||||
command can be used to selectively turn off processing of
|
||||
the compute tally styles, for example, if those pair styles
|
||||
(e.g. manybody styles) do not support this feature.
|
||||
|
||||
See the "pair_modify"_pair_modify.html doc page for details on
|
||||
the specific syntax, requirements and restrictions.
|
||||
|
||||
|
||||