Compare commits
542 Commits
patch_19Ma
...
patch_11Au
| Author | SHA1 | Date | |
|---|---|---|---|
| 0b3f1b8a15 | |||
| b209a4e246 | |||
| 27553283c3 | |||
| df56b2d6a4 | |||
| c6d923b6c8 | |||
| 6d24be8bb7 | |||
| 52bec0f380 | |||
| f68c6254d4 | |||
| 146aa4cdbd | |||
| 2f3747eb6e | |||
| 2bc6ad80d4 | |||
| f9a515efd3 | |||
| 5b55744209 | |||
| 0dc3cbaa8a | |||
| ce62c41252 | |||
| 4e97b57508 | |||
| 7f437d7690 | |||
| 77a628e4ef | |||
| f01103dd08 | |||
| 81f4d7ecb5 | |||
| 210a77c5a0 | |||
| 6780c73907 | |||
| be25a7d9a4 | |||
| 691d1b730d | |||
| 95ece8a6c0 | |||
| b7b1257b01 | |||
| 30431d4edb | |||
| c53a84a967 | |||
| b7b62f6893 | |||
| d2b0c287d2 | |||
| b3244f9c98 | |||
| 8bba29d91e | |||
| 135b1650f1 | |||
| 0a54c34e34 | |||
| a8f6a95cba | |||
| e0f9a7c34c | |||
| aaf17bde3f | |||
| 5ad8a3332d | |||
| ca7a3a6316 | |||
| 163ed27618 | |||
| 23ca0099f7 | |||
| 59ac6ef573 | |||
| 2fa16bcd4c | |||
| e84b6d8067 | |||
| 96d3712817 | |||
| b395ef00b4 | |||
| d3169eeab3 | |||
| 71553cf732 | |||
| 9bfd9267fa | |||
| 7d0d701eaf | |||
| 841a92c7fa | |||
| 85120842dd | |||
| 3ebf561e0d | |||
| ffb778cf9b | |||
| f3850da9fe | |||
| e7d9aabca6 | |||
| e3973796ba | |||
| c494ec35e2 | |||
| 6d0a228624 | |||
| acf6d54ec1 | |||
| 0427f6205e | |||
| 72419b6313 | |||
| da7a5f55d3 | |||
| 934cbbbeca | |||
| 2806f070a4 | |||
| 715c797df0 | |||
| fd6e11f821 | |||
| f7a243a4d9 | |||
| f0d286358e | |||
| 51a06334ad | |||
| aa5ea95a0f | |||
| 60c67b07dc | |||
| a59b7e4d56 | |||
| 2eaea2d274 | |||
| 1ddace4dba | |||
| af3d0ca381 | |||
| c24e316baa | |||
| 2c6e177d5c | |||
| 7b2182833f | |||
| 1afab981b0 | |||
| 1af937e99d | |||
| 4e0a249e27 | |||
| edc756a65f | |||
| a477f26477 | |||
| b1b399d5c3 | |||
| 00474ab09d | |||
| 733ea61bf1 | |||
| 5c13b087e4 | |||
| ec23aef20b | |||
| 61b1487cbd | |||
| 3449d42267 | |||
| e53583d9c6 | |||
| 551001f172 | |||
| 5dbe2df854 | |||
| 3f83396837 | |||
| 59db5f6a17 | |||
| 1b704bab18 | |||
| c98f6140e7 | |||
| 5031f5b807 | |||
| 9d0d90c038 | |||
| 66154e8a8b | |||
| d2f76ae394 | |||
| 3cd597e948 | |||
| eca61226c2 | |||
| fac3e3daa2 | |||
| 72e5f537c8 | |||
| 84065dde21 | |||
| bdd2f3a6b2 | |||
| a351977c59 | |||
| 8499e72cdc | |||
| ef9fb944c7 | |||
| 187a80be77 | |||
| 355aad9691 | |||
| ec42a60587 | |||
| ee6cac826e | |||
| f181a0bfab | |||
| 52a1c54d50 | |||
| fcf9607a66 | |||
| 81f342aafa | |||
| 7ccb0d37cd | |||
| 03cd4c5255 | |||
| 148364949e | |||
| 17aff29fe2 | |||
| f96b9e0dcf | |||
| 5cbaf7ca1d | |||
| 02572a4099 | |||
| 49b4cf9a77 | |||
| 49e6c2eb7d | |||
| a92d792537 | |||
| 085cbee116 | |||
| 4ad9528999 | |||
| 358915d16e | |||
| d9186c8fde | |||
| bc5186bc30 | |||
| c083d5d6f3 | |||
| c3a2ed0d1b | |||
| 23033404b0 | |||
| bda0730169 | |||
| 992ce79701 | |||
| d7355801df | |||
| 4ec07422f0 | |||
| 3f297382ac | |||
| 296e572e69 | |||
| cc9b3864bf | |||
| bbb4d63db9 | |||
| 1c92eecea7 | |||
| a04711b21f | |||
| e084d4dad6 | |||
| 522bc13d67 | |||
| 14f1d646ad | |||
| 3b1134c164 | |||
| 4d4c03a1e4 | |||
| e5405cdb04 | |||
| 8a1db83b73 | |||
| de45a46529 | |||
| 32ca58bdf2 | |||
| 111786e92e | |||
| 132cee9840 | |||
| 609c8b1e87 | |||
| 9988030409 | |||
| fc36754ca2 | |||
| 3a46c34c2f | |||
| cb935730c0 | |||
| 983eb0e80d | |||
| fc6c10c9a9 | |||
| a3a0c9b144 | |||
| b64849d574 | |||
| e58bcd8b4a | |||
| ef2f4980e9 | |||
| d3a45f6d50 | |||
| d0cc1dfbb8 | |||
| de8d417aec | |||
| 0af9203fdc | |||
| c24fca61f3 | |||
| 01e848387a | |||
| 734729b0a4 | |||
| a419c7c57c | |||
| 69d97fa60c | |||
| a9ff593763 | |||
| ddc9621325 | |||
| f717a70638 | |||
| f7f4a24930 | |||
| 338fc28970 | |||
| 5a1e020bf0 | |||
| c8939d8df6 | |||
| e30c5fc956 | |||
| c29e8fba9b | |||
| 8d592f4b9e | |||
| c9a0d38a3e | |||
| b5e9e90bb6 | |||
| 92395e9bb4 | |||
| 71ddcaf0b6 | |||
| fe888e4622 | |||
| b0be8b24ea | |||
| 16fc2d6fe1 | |||
| 7193fffe0d | |||
| 4339379948 | |||
| 23925b3a57 | |||
| 423e3b6389 | |||
| 87af3b1fd9 | |||
| 8be6d5bfd8 | |||
| a62eb43791 | |||
| 33be51af54 | |||
| 47649ff50f | |||
| 0423971205 | |||
| 4ee7c6f5ca | |||
| 7f63c09667 | |||
| a5234d7aea | |||
| fa469ae1d0 | |||
| e493b6a648 | |||
| be8360ac4b | |||
| 4de9cec1b6 | |||
| 8c3f6947ad | |||
| 894e0c3cf5 | |||
| 09ad293425 | |||
| e625e79171 | |||
| f1088a5003 | |||
| d451dbb1a0 | |||
| 6eddc1a2ee | |||
| 1bf1cb150f | |||
| ea4f16bd79 | |||
| 9fa4588eb7 | |||
| f5440a777b | |||
| 92831f185b | |||
| 8e279d4ec8 | |||
| cbd8f99754 | |||
| b720f39163 | |||
| ff761d639a | |||
| d2f7f4843a | |||
| 7e42af18bc | |||
| 74d63c24fd | |||
| 769870cfc9 | |||
| e0521f27b4 | |||
| 5eb5391b20 | |||
| d3b8e688c9 | |||
| 67d474df2a | |||
| 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 | |||
| 9593e05c9e | |||
| d4ee03c778 | |||
| 069f3e746b | |||
| 8daba01151 | |||
| 640edbc1d4 | |||
| 7adc7f02e0 | |||
| 914848433a | |||
| 67fced37c8 | |||
| 8f37285b05 | |||
| ef72145540 | |||
| d17d99b9dd | |||
| 68b2a454b5 | |||
| 23c3f5622a | |||
| 6311d33a5d | |||
| e136a9db02 |
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)_
|
||||
|
||||
|
||||
2
LICENSE
@ -3,7 +3,7 @@ GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies of this
|
||||
license document, but changing it is not allowed.
|
||||
|
||||
@ -1,55 +1,21 @@
|
||||
These are input scripts used to run versions of several of the
|
||||
benchmarks in the top-level bench directory using the GPU and
|
||||
USER-CUDA accelerator packages. The results of running these scripts
|
||||
on two different machines (a desktop with 2 Tesla GPUs and the ORNL
|
||||
Titan supercomputer) are shown on the "GPU (Fermi)" section of the
|
||||
Benchmark page of the LAMMPS WWW site: lammps.sandia.gov/bench.
|
||||
benchmarks in the top-level bench directory using the GPU accelerator
|
||||
package. The results of running these scripts on two different machines
|
||||
(a desktop with 2 Tesla GPUs and the ORNL Titan supercomputer) are shown
|
||||
on the "GPU (Fermi)" section of the Benchmark page of the LAMMPS WWW
|
||||
site: lammps.sandia.gov/bench.
|
||||
|
||||
Examples are shown below of how to run these scripts. This assumes
|
||||
you have built 3 executables with both the GPU and USER-CUDA packages
|
||||
you have built 3 executables with the GPU package
|
||||
installed, e.g.
|
||||
|
||||
lmp_linux_single
|
||||
lmp_linux_mixed
|
||||
lmp_linux_double
|
||||
|
||||
The precision (single, mixed, double) refers to the GPU and USER-CUDA
|
||||
package precision. See the README files in the lib/gpu and lib/cuda
|
||||
directories for instructions on how to build the packages with
|
||||
different precisions. The GPU and USER-CUDA sub-sections of the
|
||||
doc/Section_accelerate.html file also describes this process.
|
||||
|
||||
Make.py -d ~/lammps -j 16 -p #all orig -m linux -o cpu -a exe
|
||||
Make.py -d ~/lammps -j 16 -p #all opt orig -m linux -o opt -a exe
|
||||
Make.py -d ~/lammps -j 16 -p #all omp orig -m linux -o omp -a exe
|
||||
Make.py -d ~/lammps -j 16 -p #all gpu orig -m linux \
|
||||
-gpu mode=double arch=20 -o gpu_double -a libs exe
|
||||
Make.py -d ~/lammps -j 16 -p #all gpu orig -m linux \
|
||||
-gpu mode=mixed arch=20 -o gpu_mixed -a libs exe
|
||||
Make.py -d ~/lammps -j 16 -p #all gpu orig -m linux \
|
||||
-gpu mode=single arch=20 -o gpu_single -a libs exe
|
||||
Make.py -d ~/lammps -j 16 -p #all cuda orig -m linux \
|
||||
-cuda mode=double arch=20 -o cuda_double -a libs exe
|
||||
Make.py -d ~/lammps -j 16 -p #all cuda orig -m linux \
|
||||
-cuda mode=mixed arch=20 -o cuda_mixed -a libs exe
|
||||
Make.py -d ~/lammps -j 16 -p #all cuda orig -m linux \
|
||||
-cuda mode=single arch=20 -o cuda_single -a libs exe
|
||||
Make.py -d ~/lammps -j 16 -p #all intel orig -m linux -o intel_cpu -a exe
|
||||
Make.py -d ~/lammps -j 16 -p #all kokkos orig -m linux -o kokkos_omp -a exe
|
||||
Make.py -d ~/lammps -j 16 -p #all kokkos orig -kokkos cuda arch=20 \
|
||||
-m cuda -o kokkos_cuda -a exe
|
||||
|
||||
Make.py -d ~/lammps -j 16 -p #all opt omp gpu cuda intel kokkos orig \
|
||||
-gpu mode=double arch=20 -cuda mode=double arch=20 -m linux \
|
||||
-o all -a libs exe
|
||||
|
||||
Make.py -d ~/lammps -j 16 -p #all opt omp gpu cuda intel kokkos orig \
|
||||
-kokkos cuda arch=20 -gpu mode=double arch=20 \
|
||||
-cuda mode=double arch=20 -m cuda -o all_cuda -a libs exe
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
To run on just CPUs (without using the GPU or USER-CUDA styles),
|
||||
To run on just CPUs (without using the GPU styles),
|
||||
do something like the following:
|
||||
|
||||
mpirun -np 1 lmp_linux_double -v x 8 -v y 8 -v z 8 -v t 100 < in.lj
|
||||
@ -81,23 +47,5 @@ node via a "-ppn" setting.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
To run with the USER-CUDA package, do something like the following:
|
||||
|
||||
mpirun -np 1 lmp_linux_single -c on -sf cuda -v x 16 -v y 16 -v z 16 -v t 100 < in.lj
|
||||
mpirun -np 2 lmp_linux_double -c on -sf cuda -pk cuda 2 -v x 32 -v y 64 -v z 64 -v t 100 < in.eam
|
||||
|
||||
The "xyz" settings determine the problem size. The "t" setting
|
||||
determines the number of timesteps. The "np" setting determines how
|
||||
many MPI tasks (per node) the problem will run on. The numeric
|
||||
argument to the "-pk" setting is the number of GPUs (per node); 1 GPU
|
||||
is the default. Note that the number of MPI tasks must equal the
|
||||
number of GPUs (both per node) with the USER-CUDA package.
|
||||
|
||||
These mpirun commands run on a single node. To run on multiple nodes,
|
||||
scale up the "-np" setting, and control the number of MPI tasks per
|
||||
node via a "-ppn" setting.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
If the script has "titan" in its name, it was run on the Titan
|
||||
supercomputer at ORNL.
|
||||
|
||||
46
bench/README
@ -71,49 +71,33 @@ integration
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Here is a src/Make.py command which will perform a parallel build of a
|
||||
LAMMPS executable "lmp_mpi" with all the packages needed by all the
|
||||
examples. This assumes you have an MPI installed on your machine so
|
||||
that "mpicxx" can be used as the wrapper compiler. It also assumes
|
||||
you have an Intel compiler to use as the base compiler. You can leave
|
||||
off the "-cc mpi wrap=icc" switch if that is not the case. You can
|
||||
also leave off the "-fft fftw3" switch if you do not have the FFTW
|
||||
(v3) installed as an FFT package, in which case the default KISS FFT
|
||||
library will be used.
|
||||
|
||||
cd src
|
||||
Make.py -j 16 -p none molecule manybody kspace granular rigid orig \
|
||||
-cc mpi wrap=icc -fft fftw3 -a file mpi
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Here is how to run each problem, assuming the LAMMPS executable is
|
||||
named lmp_mpi, and you are using the mpirun command to launch parallel
|
||||
runs:
|
||||
|
||||
Serial (one processor runs):
|
||||
|
||||
lmp_mpi < in.lj
|
||||
lmp_mpi < in.chain
|
||||
lmp_mpi < in.eam
|
||||
lmp_mpi < in.chute
|
||||
lmp_mpi < in.rhodo
|
||||
lmp_mpi -in in.lj
|
||||
lmp_mpi -in in.chain
|
||||
lmp_mpi -in in.eam
|
||||
lmp_mpi -in in.chute
|
||||
lmp_mpi -in in.rhodo
|
||||
|
||||
Parallel fixed-size runs (on 8 procs in this case):
|
||||
|
||||
mpirun -np 8 lmp_mpi < in.lj
|
||||
mpirun -np 8 lmp_mpi < in.chain
|
||||
mpirun -np 8 lmp_mpi < in.eam
|
||||
mpirun -np 8 lmp_mpi < in.chute
|
||||
mpirun -np 8 lmp_mpi < in.rhodo
|
||||
mpirun -np 8 lmp_mpi -in in.lj
|
||||
mpirun -np 8 lmp_mpi -in in.chain
|
||||
mpirun -np 8 lmp_mpi -in in.eam
|
||||
mpirun -np 8 lmp_mpi -in in.chute
|
||||
mpirun -np 8 lmp_mpi -in in.rhodo
|
||||
|
||||
Parallel scaled-size runs (on 16 procs in this case):
|
||||
|
||||
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 < in.lj
|
||||
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 < in.chain.scaled
|
||||
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 < in.eam
|
||||
mpirun -np 16 lmp_mpi -var x 4 -var y 4 < in.chute.scaled
|
||||
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 < in.rhodo.scaled
|
||||
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 -in in.lj
|
||||
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 -in in.chain.scaled
|
||||
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 -in in.eam
|
||||
mpirun -np 16 lmp_mpi -var x 4 -var y 4 -in in.chute.scaled
|
||||
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 -in in.rhodo.scaled
|
||||
|
||||
For each of the scaled-size runs you must set 3 variables as -var
|
||||
command line switches. The variables x,y,z are used in the input
|
||||
|
||||
@ -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; \
|
||||
|
||||
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_wall_ees.jpg
Normal file
|
After Width: | Height: | Size: 104 KiB |
10
doc/src/Eqs/fix_wall_ees.tex
Normal file
@ -0,0 +1,10 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
|
||||
$$
|
||||
E = \epsilon \left[ \frac{2 \sigma_{LJ}^{12} \left(7 r^5+14 r^3 \sigma_{n}^2+3 r \sigma_{n}^4\right) }{945 \left(r^2-\sigma_{n}^2\right)^7} -\frac{ \sigma_{LJ}^6 \left(2 r \sigma_{n}^3+\sigma_{n}^2 \left(r^2-\sigma_{n}^2\right)\log{ \left[\frac{r-\sigma_{n}}{r+\sigma_{n}}\right]}\right) }{12 \sigma_{n}^5 \left(r^2-\sigma_{n}^2\right)} \right]\qquad \sigma_n < r < r_c
|
||||
$$
|
||||
|
||||
|
||||
\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}
|
||||
BIN
doc/src/JPG/bow_tutorial_01.png
Executable file
|
After Width: | Height: | Size: 32 KiB |
BIN
doc/src/JPG/bow_tutorial_01_small.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
BIN
doc/src/JPG/bow_tutorial_02.png
Executable file
|
After Width: | Height: | Size: 41 KiB |
BIN
doc/src/JPG/bow_tutorial_02_small.png
Executable file
|
After Width: | Height: | Size: 16 KiB |
BIN
doc/src/JPG/bow_tutorial_03.png
Executable file
|
After Width: | Height: | Size: 42 KiB |
BIN
doc/src/JPG/bow_tutorial_03_small.png
Executable file
|
After Width: | Height: | Size: 20 KiB |
BIN
doc/src/JPG/bow_tutorial_04.png
Executable file
|
After Width: | Height: | Size: 54 KiB |
BIN
doc/src/JPG/bow_tutorial_04_small.png
Executable file
|
After Width: | Height: | Size: 21 KiB |
BIN
doc/src/JPG/bow_tutorial_05.png
Executable file
|
After Width: | Height: | Size: 16 KiB |
BIN
doc/src/JPG/bow_tutorial_06.png
Executable file
|
After Width: | Height: | Size: 13 KiB |
BIN
doc/src/JPG/bow_tutorial_07.png
Executable file
|
After Width: | Height: | Size: 9.7 KiB |
BIN
doc/src/JPG/bow_tutorial_08.png
Executable file
|
After Width: | Height: | Size: 24 KiB |
BIN
doc/src/JPG/bow_tutorial_09.png
Executable file
|
After Width: | Height: | Size: 18 KiB |
BIN
doc/src/JPG/bow_tutorial_10.png
Executable file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
doc/src/JPG/fix_wall_ees_image.jpg
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
|
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="19 May 2017 version">
|
||||
<META NAME="docnumber" CONTENT="11 Aug 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
|
||||
19 May 2017 version :c,h4
|
||||
11 Aug 2017 version :c,h4
|
||||
|
||||
Version info: :h4
|
||||
|
||||
@ -261,7 +261,6 @@ END_RST -->
|
||||
:link(start_6,Section_start.html#start_6)
|
||||
:link(start_7,Section_start.html#start_7)
|
||||
:link(start_8,Section_start.html#start_8)
|
||||
:link(start_9,Section_start.html#start_9)
|
||||
|
||||
:link(cmd_1,Section_commands.html#cmd_1)
|
||||
:link(cmd_2,Section_commands.html#cmd_2)
|
||||
|
||||
@ -56,7 +56,7 @@ timings; you can simply extrapolate from short runs.
|
||||
|
||||
For the set of runs, look at the timing data printed to the screen and
|
||||
log file at the end of each LAMMPS run. "This
|
||||
section"_Section_start.html#start_8 of the manual has an overview.
|
||||
section"_Section_start.html#start_7 of the manual has an overview.
|
||||
|
||||
Running on one (or a few processors) should give a good estimate of
|
||||
the serial performance and what portions of the timestep are taking
|
||||
@ -226,16 +226,16 @@ re-build LAMMPS |
|
||||
make machine |
|
||||
prepare and test a regular LAMMPS simulation |
|
||||
lmp_machine -in in.script; mpirun -np 32 lmp_machine -in in.script |
|
||||
enable specific accelerator support via '-k on' "command-line switch"_Section_start.html#start_7, |
|
||||
enable specific accelerator support via '-k on' "command-line switch"_Section_start.html#start_6, |
|
||||
only needed for KOKKOS package |
|
||||
set any needed options for the package via "-pk" "command-line switch"_Section_start.html#start_7 or "package"_package.html command, |
|
||||
set any needed options for the package via "-pk" "command-line switch"_Section_start.html#start_6 or "package"_package.html command, |
|
||||
only if defaults need to be changed |
|
||||
use accelerated styles in your input via "-sf" "command-line switch"_Section_start.html#start_7 or "suffix"_suffix.html command | lmp_machine -in in.script -sf gpu
|
||||
use accelerated styles in your input via "-sf" "command-line switch"_Section_start.html#start_6 or "suffix"_suffix.html command | lmp_machine -in in.script -sf gpu
|
||||
:tb(c=2,s=|)
|
||||
|
||||
Note that the first 4 steps can be done as a single command, using the
|
||||
src/Make.py tool. This tool is discussed in "Section
|
||||
2.4"_Section_start.html#start_4 of the manual, and its use is
|
||||
Note that the first 4 steps can be done as a single command with
|
||||
suitable make command invocations. This is discussed in "Section
|
||||
4"_Section_packages.html of the manual, and its use is
|
||||
illustrated in the individual accelerator sections. Typically these
|
||||
steps only need to be done once, to create an executable that uses one
|
||||
or more accelerator packages.
|
||||
|
||||
@ -717,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,
|
||||
@ -734,7 +734,9 @@ package"_Section_start.html#start_3.
|
||||
"smd/wall/surface"_fix_smd_wall_surface.html,
|
||||
"temp/rescale/eff"_fix_temp_rescale_eff.html,
|
||||
"ti/spring"_fix_ti_spring.html,
|
||||
"ttm/mod"_fix_ttm.html :tb(c=6,ea=c)
|
||||
"ttm/mod"_fix_ttm.html,
|
||||
"wall/ees"_fix_wall_ees.html,
|
||||
"wall/region/ees"_fix_wall_ees.html :tb(c=6,ea=c)
|
||||
|
||||
:line
|
||||
|
||||
@ -831,6 +833,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,
|
||||
@ -963,7 +966,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,
|
||||
@ -1038,7 +1041,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,
|
||||
@ -1057,7 +1060,7 @@ package"_Section_start.html#start_3.
|
||||
"oxdna2/excv"_pair_oxdna2.html,
|
||||
"oxdna2/stk"_pair_oxdna2.html,
|
||||
"quip"_pair_quip.html,
|
||||
"reax/c (k)"_pair_reaxc.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,
|
||||
@ -1225,7 +1228,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)
|
||||
|
||||
@ -71,7 +71,7 @@ style", with ... being fix, compute, pair, etc, it means that you
|
||||
mistyped the style name or that the command is part of an optional
|
||||
package which was not compiled into your executable. The list of
|
||||
available styles in your executable can be listed by using "the -h
|
||||
command-line argument"_Section_start.html#start_7. The installation
|
||||
command-line argument"_Section_start.html#start_6. The installation
|
||||
and compilation of optional packages is explained in the "installation
|
||||
instructions"_Section_start.html#start_3.
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -49,6 +49,7 @@ Lists of both kinds of directories are given below.
|
||||
Lowercase directories :h4
|
||||
|
||||
accelerate: run with various acceleration options (OpenMP, GPU, Phi)
|
||||
airebo: polyethylene with AIREBO potential
|
||||
balance: dynamic load balancing, 2d system
|
||||
body: body particles, 2d system
|
||||
cmap: CMAP 5-body contributions to CHARMM force field
|
||||
|
||||
@ -54,7 +54,7 @@ restart files can be saved to disk using the "restart"_restart.html
|
||||
command. At a later time, these binary files can be read via a
|
||||
"read_restart"_read_restart.html command in a new script. Or they can
|
||||
be converted to text data files using the "-r command-line
|
||||
switch"_Section_start.html#start_7 and read by a
|
||||
switch"_Section_start.html#start_6 and read by a
|
||||
"read_data"_read_data.html command in a new script.
|
||||
|
||||
Here we give examples of 2 scripts that read either a binary restart
|
||||
@ -337,7 +337,7 @@ All of the above examples work whether you are running on 1 or
|
||||
multiple processors, but assumed you are running LAMMPS on a single
|
||||
partition of processors. LAMMPS can be run on multiple partitions via
|
||||
the "-partition" command-line switch as described in "this
|
||||
section"_Section_start.html#start_7 of the manual.
|
||||
section"_Section_start.html#start_6 of the manual.
|
||||
|
||||
In the last 2 examples, if LAMMPS were run on 3 partitions, the same
|
||||
scripts could be used if the "index" and "loop" variables were
|
||||
@ -387,7 +387,7 @@ for more info on packages.
|
||||
In all these cases, you must run with one or more processors per
|
||||
replica. The processors assigned to each replica are determined at
|
||||
run-time by using the "-partition command-line
|
||||
switch"_Section_start.html#start_7 to launch LAMMPS on multiple
|
||||
switch"_Section_start.html#start_6 to launch LAMMPS on multiple
|
||||
partitions, which in this context are the same as replicas. E.g.
|
||||
these commands:
|
||||
|
||||
@ -395,7 +395,7 @@ mpirun -np 16 lmp_linux -partition 8x2 -in in.temper
|
||||
mpirun -np 8 lmp_linux -partition 8x1 -in in.neb :pre
|
||||
|
||||
would each run 8 replicas, on either 16 or 8 processors. Note the use
|
||||
of the "-in command-line switch"_Section_start.html#start_7 to specify
|
||||
of the "-in command-line switch"_Section_start.html#start_6 to specify
|
||||
the input script which is required when running in multi-replica mode.
|
||||
|
||||
Also note that with MPI installed on a machine (e.g. your desktop),
|
||||
@ -1872,7 +1872,7 @@ void lammps_free(void *) :pre
|
||||
|
||||
The lammps_open() function is used to initialize LAMMPS, passing in a
|
||||
list of strings as if they were "command-line
|
||||
arguments"_Section_start.html#start_7 when LAMMPS is run in
|
||||
arguments"_Section_start.html#start_6 when LAMMPS is run in
|
||||
stand-alone mode from the command line, and a MPI communicator for
|
||||
LAMMPS to run under. It returns a ptr to the LAMMPS object that is
|
||||
created, and which is used in subsequent library calls. The
|
||||
|
||||
@ -25,6 +25,17 @@ There are two kinds of packages in LAMMPS, standard and user packages:
|
||||
"Table of standard packages"_#table_standard
|
||||
"Table of user packages"_#table_user :ul
|
||||
|
||||
Either of these kinds of packages may work as is, may require some
|
||||
additional code compiled located in the lib folder, or may require
|
||||
an external library to be downloaded, compiled, installed, and LAMMPS
|
||||
configured to know about its location and additional compiler flags.
|
||||
You can often do the build of the internal or external libraries
|
||||
in one step by typing "make lib-name args='...'" from the src dir,
|
||||
with appropriate arguments included in args='...'. If you just type
|
||||
"make lib-name" you should see a help message about supported flags
|
||||
and some examples. For more details about this, please study the
|
||||
tables below and the sections about the individual packages.
|
||||
|
||||
Standard packages are supported by the LAMMPS developers and are
|
||||
written in a syntax and style consistent with the rest of LAMMPS.
|
||||
This means the developers will answer questions about them, debug and
|
||||
@ -34,7 +45,9 @@ LAMMPS.
|
||||
User packages have been contributed by users, and begin with the
|
||||
"user" prefix. If they are a single command (single file), they are
|
||||
typically in the user-misc package. User packages don't necessarily
|
||||
meet the requirements of the standard packages. If you have problems
|
||||
meet the requirements of the standard packages. This means the
|
||||
developers will try to keep things working and usually can answer
|
||||
technical questions about compiling the package. 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 as a standard or user
|
||||
@ -78,10 +91,10 @@ Package, Description, Doc page, Example, Library
|
||||
"COMPRESS"_#COMPRESS, I/O compression, "dump */gz"_dump.html, -, sys
|
||||
"CORESHELL"_#CORESHELL, adiabatic core/shell model, "Section 6.6.25"_Section_howto.html#howto_25, coreshell, -
|
||||
"DIPOLE"_#DIPOLE, point dipole particles, "pair_style dipole/cut"_pair_dipole.html, dipole, -
|
||||
"GPU"_#GPU, GPU-enabled styles, "Section 5.3.1"_accelerate_gpu.html, WWW bench, int
|
||||
"GPU"_#GPU, GPU-enabled styles, "Section 5.3.1"_accelerate_gpu.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, int
|
||||
"GRANULAR"_#GRANULAR, granular systems, "Section 6.6.6"_Section_howto.html#howto_6, pour, -
|
||||
"KIM"_#KIM, openKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext
|
||||
"KOKKOS"_#KOKKOS, Kokkos-enabled styles, "Section 5.3.3"_accelerate_kokkos.html, WWW bench, -
|
||||
"KIM"_#KIM, OpenKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext
|
||||
"KOKKOS"_#KOKKOS, Kokkos-enabled styles, "Section 5.3.3"_accelerate_kokkos.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
|
||||
"KSPACE"_#KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, -
|
||||
"MANYBODY"_#MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, -
|
||||
"MC"_#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, -
|
||||
@ -90,7 +103,7 @@ Package, Description, Doc page, Example, Library
|
||||
"MOLECULE"_#MOLECULE, molecular system force fields, "Section 6.6.3"_Section_howto.html#howto_3, peptide, -
|
||||
"MPIIO"_#MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, -, -
|
||||
"MSCG"_#MSCG, multi-scale coarse-graining wrapper, "fix mscg"_fix_mscg.html, mscg, ext
|
||||
"OPT"_#OPT, optimized pair styles, "Section 5.3.5"_accelerate_opt.html, WWW bench, -
|
||||
"OPT"_#OPT, optimized pair styles, "Section 5.3.5"_accelerate_opt.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
|
||||
"PERI"_#PERI, Peridynamics models, "pair_style peri"_pair_peri.html, peri, -
|
||||
"POEMS"_#POEMS, coupled rigid body motion, "fix poems"_fix_poems.html, rigid, int
|
||||
"PYTHON"_#PYTHON, embed Python code in an input script, "python"_python.html, python, sys
|
||||
@ -101,8 +114,7 @@ Package, Description, Doc page, Example, Library
|
||||
"SHOCK"_#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, -
|
||||
"SNAP"_#SNAP, quantum-fitted potential, "pair snap"_pair_snap.html, snap, -
|
||||
"SRD"_#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, -
|
||||
"VORONOI"_#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext
|
||||
:tb(ea=c,ca1=l)
|
||||
"VORONOI"_#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext :tb(ea=c,ca1=l)
|
||||
|
||||
[USER packages] :link(table_user),p
|
||||
|
||||
@ -118,14 +130,15 @@ Package, Description, Doc page, Example, Library
|
||||
"USER-EFF"_#USER-EFF, electron force field,"pair_style eff/cut"_pair_eff.html, USER/eff, -
|
||||
"USER-FEP"_#USER-FEP, free energy perturbation,"compute fep"_compute_fep.html, USER/fep, -
|
||||
"USER-H5MD"_#USER-H5MD, dump output via HDF5,"dump h5md"_dump_h5md.html, -, ext
|
||||
"USER-INTEL"_#USER-INTEL, optimized Intel CPU and KNL styles,"Section 5.3.2"_accelerate_intel.html, WWW bench, -
|
||||
"USER-INTEL"_#USER-INTEL, optimized Intel CPU and KNL styles,"Section 5.3.2"_accelerate_intel.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
|
||||
"USER-LB"_#USER-LB, Lattice Boltzmann fluid,"fix lb/fluid"_fix_lb_fluid.html, USER/lb, -
|
||||
"USER-MANIFOLD"_#USER-MANIFOLD, motion on 2d surfaces,"fix manifoldforce"_fix_manifoldforce.html, USER/manifold, -
|
||||
"USER-MEAMC"_#USER-MEAMC, modified EAM potential (C++), "pair_style meam/c"_pair_meam.html, meam, -
|
||||
"USER-MGPT"_#USER-MGPT, fast MGPT multi-ion potentials, "pair_style mgpt"_pair_mgpt.html, USER/mgpt, -
|
||||
"USER-MISC"_#USER-MISC, single-file contributions, USER-MISC/README, USER/misc, -
|
||||
"USER-MOLFILE"_#USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, -, ext
|
||||
"USER-NETCDF"_#USER-NETCDF, dump output via NetCDF,"dump netcdf"_dump_netcdf.html, -, ext
|
||||
"USER-OMP"_#USER-OMP, OpenMP-enabled styles,"Section 5.3.4"_accelerate_omp.html, WWW bench, -
|
||||
"USER-OMP"_#USER-OMP, OpenMP-enabled styles,"Section 5.3.4"_accelerate_omp.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
|
||||
"USER-PHONON"_#USER-PHONON, phonon dynamical matrix,"fix phonon"_fix_phonon.html, USER/phonon, -
|
||||
"USER-QMMM"_#USER-QMMM, QM/MM coupling,"fix qmmm"_fix_qmmm.html, USER/qmmm, ext
|
||||
"USER-QTB"_#USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, -
|
||||
@ -135,8 +148,7 @@ Package, Description, Doc page, Example, Library
|
||||
"USER-SMTBQ"_#USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, -
|
||||
"USER-SPH"_#USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, -
|
||||
"USER-TALLY"_#USER-TALLY, pairwise tally computes,"compute XXX/tally"_compute_tally.html, USER/tally, -
|
||||
"USER-VTK"_#USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, -, ext
|
||||
:tb(ea=c,ca1=l)
|
||||
"USER-VTK"_#USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, -, ext :tb(ea=c,ca1=l)
|
||||
|
||||
:line
|
||||
:line
|
||||
@ -363,12 +375,15 @@ GPU package :link(GPU),h4
|
||||
[Contents:]
|
||||
|
||||
Dozens of pair styles and a version of the PPPM long-range Coulombic
|
||||
solver optimized for NVIDIA GPUs. All such styles have a "gpu" as a
|
||||
suffix in their style name. "Section 5.3.1"_accelerate_gpu.html gives
|
||||
details of what hardware and Cuda software is required on your system,
|
||||
solver optimized for GPUs. All such styles have a "gpu" as a
|
||||
suffix in their style name. The GPU code can be compiled with either
|
||||
CUDA or OpenCL, however the OpenCL variants are no longer actively
|
||||
maintained and only the CUDA versions are regularly tested.
|
||||
"Section 5.3.1"_accelerate_gpu.html gives details of what
|
||||
hardware and GPU software is required on your system,
|
||||
and details on how to build and use this package. Its styles can be
|
||||
invoked at run time via the "-sf gpu" or "-suffix gpu" "command-line
|
||||
switches"_Section_start.html#start_7. See also the "KOKKOS"_#KOKKOS
|
||||
switches"_Section_start.html#start_6. See also the "KOKKOS"_#KOKKOS
|
||||
package, which has GPU-enabled styles.
|
||||
|
||||
[Authors:] Mike Brown (Intel) while at Sandia and ORNL and Trung Nguyen
|
||||
@ -377,32 +392,41 @@ package, which has GPU-enabled styles.
|
||||
[Install or un-install:]
|
||||
|
||||
Before building LAMMPS with this package, you must first build the GPU
|
||||
library in lib/gpu from a set of provided C and Cuda files. You can
|
||||
library in lib/gpu from a set of provided C and CUDA files. You can
|
||||
do this manually if you prefer; follow the instructions in
|
||||
lib/gpu/README. You can also do it in one step from the lammps/src
|
||||
lib/gpu/README. Please note, that the GPU library uses MPI calls, so
|
||||
you have to make certain to use the same MPI library (or the STUBS
|
||||
library) settings as the main LAMMPS code. That same applies to the
|
||||
-DLAMMPS_BIGBIG, -DLAMMPS_SMALLBIG, or -DLAMMPS_SMALLSMALL define.
|
||||
|
||||
You can also do it in one step from the lammps/src
|
||||
dir, using a command like these, which simply invoke the
|
||||
lib/gpu/Install.py script with the specified args:
|
||||
|
||||
make lib-gpu # print help message
|
||||
make lib-gpu args="-m" # build GPU library with default Makefile.linux
|
||||
make lib-gpu args="-i xk7 -p single -o xk7.single" # create new Makefile.xk7.single, altered for single-precision
|
||||
make lib-gpu args="-i xk7 -p single -o xk7.single -m" # ditto, also build GPU library
|
||||
make lib-gpu args="-b" # build GPU library with default Makefile.linux
|
||||
make lib-gpu args="-m xk7 -p single -o xk7.single" # create new Makefile.xk7.single, altered for single-precision
|
||||
make lib-gpu args="-m mpi -p mixed -b" # build GPU library with mixed precision using settings in Makefile.mpi :pre
|
||||
|
||||
Note that this procedure starts with one of the existing
|
||||
Makefile.machine files in lib/gpu. It allows you to alter 4 important
|
||||
settings in that Makefile, via the -h, -a, -p, -e switches,
|
||||
and save the new Makefile, if desired:
|
||||
Note that this procedure through the '-m machine' flag starts with one of
|
||||
the existing Makefile.machine files in lib/gpu. For your convenience,
|
||||
machine makefiles for "mpi" and "serial" are provided, which have the
|
||||
same settings as the corresponding machine makefiles in the main LAMMPS
|
||||
source folder. In addition you can alter 4 important settings in that
|
||||
Makefile, via the -h, -a, -p, -e switches, and also save a copy of the
|
||||
new Makefile, if desired:
|
||||
|
||||
CUDA_HOME = where NVIDIA Cuda software is installed on your system
|
||||
CUDA_HOME = where NVIDIA CUDA software is installed on your system
|
||||
CUDA_ARCH = what GPU hardware you have (see help message for details)
|
||||
CUDA_PRECISION = precision (double, mixed, single)
|
||||
EXTRAMAKE = which Makefile.lammps.* file to copy to Makefile.lammps :ul
|
||||
|
||||
If the library build is successful, 2 files should be created:
|
||||
lib/gpu/libgpu.a and lib/gpu/Makefile.lammps. The latter has settings
|
||||
that enable LAMMPS to link with Cuda libraries. If the settings in
|
||||
Makefile.lammps for your machine are not correct, the LAMMPS build
|
||||
will fail.
|
||||
If the library build is successful, at least 3 files should be created:
|
||||
lib/gpu/libgpu.a, lib/gpu/nvc_get_devices, and lib/gpu/Makefile.lammps.
|
||||
The latter has settings that enable LAMMPS to link with CUDA libraries.
|
||||
If the settings in Makefile.lammps for your machine are not correct,
|
||||
the LAMMPS build will fail, and lib/gpu/Makefile.lammps may need to
|
||||
be edited.
|
||||
|
||||
You can then install/un-install the package and build LAMMPS in the
|
||||
usual manner:
|
||||
@ -426,8 +450,8 @@ src/GPU/README
|
||||
lib/gpu/README
|
||||
"Section 5.3"_Section_accelerate.html#acc_3
|
||||
"Section 5.3.1"_accelerate_gpu.html
|
||||
"Section 2.7 -sf gpu"_Section_start.html#start_7
|
||||
"Section 2.7 -pk gpu"_Section_start.html#start_7
|
||||
"Section 2.6 -sf gpu"_Section_start.html#start_6
|
||||
"Section 2.6 -pk gpu"_Section_start.html#start_6
|
||||
"package gpu"_package.html
|
||||
Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 for pair styles followed by (g)
|
||||
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
|
||||
@ -491,14 +515,40 @@ Minnesota).
|
||||
|
||||
[Install or un-install:]
|
||||
|
||||
Using this package requires the KIM library and its models
|
||||
(interatomic potentials) to be downloaded and installed on your
|
||||
system. The library can be downloaded and built in lib/kim or
|
||||
elsewhere on your system. Details of the download, build, and install
|
||||
process for KIM are given in the lib/kim/README file.
|
||||
Before building LAMMPS with this package, you must first download and
|
||||
build the KIM library and include the KIM models that you want to
|
||||
use. You can do this manually if you prefer; follow the instructions
|
||||
in lib/kim/README. You can also do it in one step from the lammps/src
|
||||
dir, using a command like these, which simply invoke the
|
||||
lib/kim/Install.py script with the specified args.
|
||||
|
||||
Once that process is complete, you can then install/un-install the
|
||||
package and build LAMMPS in the usual manner:
|
||||
make lib-kim # print help message
|
||||
make lib-kim args="-b " # (re-)install KIM API lib with only example models
|
||||
make lib-kim args="-b -a Glue_Ercolessi_Adams_Al__MO_324507536345_001" # ditto plus one model
|
||||
make lib-kim args="-b -a everything" # install KIM API lib with all models
|
||||
make lib-kim args="-n -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # add one model or model driver
|
||||
make lib-kim args="-p /usr/local/kim-api" # use an existing KIM API installation at the provided location
|
||||
make lib-kim args="-p /usr/local/kim-api -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # ditto but add one model or driver :pre
|
||||
|
||||
Note that in LAMMPS lingo, a KIM model driver is a pair style
|
||||
(e.g. EAM or Tersoff). A KIM model is a pair style for a particular
|
||||
element or alloy and set of parameters, e.g. EAM for Cu with a
|
||||
specific EAM potential file. Also note that installing the KIM API
|
||||
library with all its models, may take around 30 min to build. Of
|
||||
course you only need to do that once.
|
||||
|
||||
See the list of KIM model drivers here:
|
||||
https://openkim.org/kim-items/model-drivers/alphabetical
|
||||
|
||||
See the list of all KIM models here:
|
||||
https://openkim.org/kim-items/models/by-model-drivers
|
||||
|
||||
See the list of example KIM models included by default here:
|
||||
https://openkim.org/kim-api in the "What is in the KIM API source
|
||||
package?" section
|
||||
|
||||
You can then install/un-install the package and build LAMMPS in the
|
||||
usual manner:
|
||||
|
||||
make yes-kim
|
||||
make machine :pre
|
||||
@ -522,13 +572,13 @@ KOKKOS package :link(KOKKOS),h4
|
||||
|
||||
Dozens of atom, pair, bond, angle, dihedral, improper, fix, compute
|
||||
styles adapted to compile using the Kokkos library which can convert
|
||||
them to OpenMP or Cuda code so that they run efficiently on multicore
|
||||
them to OpenMP or CUDA code so that they run efficiently on multicore
|
||||
CPUs, KNLs, or GPUs. All the styles have a "kk" as a suffix in their
|
||||
style name. "Section 5.3.3"_accelerate_kokkos.html gives details of
|
||||
what hardware and software is required on your system, and how to
|
||||
build and use this package. Its styles can be invoked at run time via
|
||||
the "-sf kk" or "-suffix kk" "command-line
|
||||
switches"_Section_start.html#start_7. Also see the "GPU"_#GPU,
|
||||
switches"_Section_start.html#start_6. Also see the "GPU"_#GPU,
|
||||
"OPT"_#OPT, "USER-INTEL"_#USER-INTEL, and "USER-OMP"_#USER-OMP
|
||||
packages, which have styles optimized for CPUs, KNLs, and GPUs.
|
||||
|
||||
@ -552,28 +602,28 @@ files for examples.
|
||||
For multicore CPUs using OpenMP:
|
||||
|
||||
KOKKOS_DEVICES = OpenMP
|
||||
KOKKOS_ARCH = HSW # HSW = Haswell, SNB = SandyBridge, BDW = Broadwell, etc
|
||||
KOKKOS_ARCH = HSW # HSW = Haswell, SNB = SandyBridge, BDW = Broadwell, etc :pre
|
||||
|
||||
For Intel KNLs using OpenMP:
|
||||
|
||||
KOKKOS_DEVICES = OpenMP
|
||||
KOKKOS_ARCH = KNL
|
||||
KOKKOS_ARCH = KNL :pre
|
||||
|
||||
For NVIDIA GPUs using Cuda:
|
||||
For NVIDIA GPUs using CUDA:
|
||||
|
||||
KOKKOS_DEVICES = Cuda
|
||||
KOKKOS_ARCH = Pascal60,Power8 # P100 hosted by an IBM Power8, etc
|
||||
KOKKOS_ARCH = Kepler37,Power8 # K80 hosted by an IBM Power8, etc
|
||||
KOKKOS_ARCH = Kepler37,Power8 # K80 hosted by an IBM Power8, etc :pre
|
||||
|
||||
For GPUs, you also need these 2 lines in your Makefile.machine before
|
||||
the CC line is defined, in this case for use with OpenMPI mpicxx. The
|
||||
2 lines define a nvcc wrapper compiler, which will use nvcc for
|
||||
compiling Cuda files or use a C++ compiler for non-Kokkos, non-Cuda
|
||||
compiling CUDA files or use a C++ compiler for non-Kokkos, non-CUDA
|
||||
files.
|
||||
|
||||
KOKKOS_ABSOLUTE_PATH = $(shell cd $(KOKKOS_PATH); pwd)
|
||||
export OMPI_CXX = $(KOKKOS_ABSOLUTE_PATH)/config/nvcc_wrapper
|
||||
CC = mpicxx
|
||||
CC = mpicxx :pre
|
||||
|
||||
Once you have an appropriate Makefile.machine, you can
|
||||
install/un-install the package and build LAMMPS in the usual manner.
|
||||
@ -596,9 +646,9 @@ src/KOKKOS/README
|
||||
lib/kokkos/README
|
||||
"Section 5.3"_Section_accelerate.html#acc_3
|
||||
"Section 5.3.3"_accelerate_kokkos.html
|
||||
"Section 2.7 -k on ..."_Section_start.html#start_7
|
||||
"Section 2.7 -sf kk"_Section_start.html#start_7
|
||||
"Section 2.7 -pk kokkos"_Section_start.html#start_7
|
||||
"Section 2.6 -k on ..."_Section_start.html#start_6
|
||||
"Section 2.6 -sf kk"_Section_start.html#start_6
|
||||
"Section 2.6 -pk kokkos"_Section_start.html#start_6
|
||||
"package kokkos"_package.html
|
||||
Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (k)
|
||||
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
|
||||
@ -709,6 +759,12 @@ MEAM package :link(MEAM),h4
|
||||
|
||||
A pair style for the modified embedded atom (MEAM) potential.
|
||||
|
||||
Please note that the MEAM package has been superseded by the
|
||||
"USER-MEAMC"_#USER-MEAMC package, which is a direct translation
|
||||
of the MEAM package to C++. USER-MEAMC contains additional
|
||||
optimizations making it run faster than MEAM on most machines,
|
||||
while providing the identical features and USER interface.
|
||||
|
||||
[Author:] Greg Wagner (Northwestern U) while at Sandia.
|
||||
|
||||
[Install or un-install:]
|
||||
@ -720,8 +776,9 @@ step from the lammps/src dir, using a command like these, which simply
|
||||
invoke the lib/meam/Install.py script with the specified args:
|
||||
|
||||
make lib-meam # print help message
|
||||
make lib-meam args="-m gfortran" # build with GNU Fortran compiler
|
||||
make lib-meam args="-m ifort" # build with Intel ifort compiler :pre
|
||||
make lib-meam args="-m mpi" # build with default Fortran compiler compatible with your MPI library
|
||||
make lib-meam args="-m serial" # build with compiler compatible with "make serial" (GNU Fortran)
|
||||
make lib-meam args="-m ifort" # build with Intel Fortran compiler using Makefile.ifort :pre
|
||||
|
||||
The build should produce two files: lib/meam/libmeam.a and
|
||||
lib/meam/Makefile.lammps. The latter is copied from an existing
|
||||
@ -764,6 +821,9 @@ A variety of compute, fix, pair, dump styles with specialized
|
||||
capabilities that don't align with other packages. Do a directory
|
||||
listing, "ls src/MISC", to see the list of commands.
|
||||
|
||||
NOTE: the MISC package contains styles that require using the
|
||||
-restrict flag, when compiling with Intel compilers.
|
||||
|
||||
[Install or un-install:]
|
||||
|
||||
make yes-misc
|
||||
@ -877,9 +937,9 @@ University of Chicago.
|
||||
|
||||
Before building LAMMPS with this package, you must first download and
|
||||
build the MS-CG library. Building the MS-CG library and using it from
|
||||
LAMMPS requires a C++11 compatible compiler, and that LAPACK and GSL
|
||||
(GNU Scientific Library) libraries be installed on your machine. See
|
||||
the lib/mscg/README and MSCG/Install files for more details.
|
||||
LAMMPS requires a C++11 compatible compiler and that the GSL
|
||||
(GNU Scientific Library) headers and libraries are installed on your
|
||||
machine. See the lib/mscg/README and MSCG/Install files for more details.
|
||||
|
||||
Assuming these libraries are in place, you can do the download and
|
||||
build of MS-CG manually if you prefer; follow the instructions in
|
||||
@ -888,14 +948,15 @@ dir, using a command like these, which simply invoke the
|
||||
lib/mscg/Install.py script with the specified args:
|
||||
|
||||
make lib-mscg # print help message
|
||||
make lib-mscg args="-g -b -l" # download and build in default lib/mscg/MSCG-release-master
|
||||
make lib-mscg args="-h . MSCG -g -b -l" # download and build in lib/mscg/MSCG
|
||||
make lib-mscg args="-h ~ MSCG -g -b -l" # download and build in ~/mscg :pre
|
||||
make lib-mscg args="-b -m serial" # download and build in lib/mscg/MSCG-release-master
|
||||
# with the settings compatible with "make serial"
|
||||
make lib-mscg args="-b -m mpi" # download and build in lib/mscg/MSCG-release-master
|
||||
# with the settings compatible with "make mpi"
|
||||
make lib-mscg args="-p /usr/local/mscg-release" # use the existing MS-CG installation in /usr/local/mscg-release :pre
|
||||
|
||||
Note that the final -l switch is to create 2 symbolic (soft) links,
|
||||
"includelink" and "liblink", in lib/mscg to point to the MS-CG src
|
||||
dir. When LAMMPS builds it will use these links. You should not need
|
||||
to edit the lib/mscg/Makefile.lammps file.
|
||||
Note that 2 symbolic (soft) links, "includelink" and "liblink", will be created in lib/mscg
|
||||
to point to the MS-CG src/installation dir. When LAMMPS is built in src it will use these links.
|
||||
You should not need to edit the lib/mscg/Makefile.lammps file.
|
||||
|
||||
You can then install/un-install the package and build LAMMPS in the
|
||||
usual manner:
|
||||
@ -925,7 +986,7 @@ CHARMM, and Morse potentials. The styles have an "opt" suffix in
|
||||
their style name. "Section 5.3.5"_accelerate_opt.html gives details
|
||||
of how to build and use this package. Its styles can be invoked at
|
||||
run time via the "-sf opt" or "-suffix opt" "command-line
|
||||
switches"_Section_start.html#start_7. See also the "KOKKOS"_#KOKKOS,
|
||||
switches"_Section_start.html#start_6. See also the "KOKKOS"_#KOKKOS,
|
||||
"USER-INTEL"_#USER-INTEL, and "USER-OMP"_#USER-OMP packages, which
|
||||
have styles optimized for CPU performance.
|
||||
|
||||
@ -941,18 +1002,18 @@ make no-opt
|
||||
make machine :pre
|
||||
|
||||
NOTE: The compile flag "-restrict" must be used to build LAMMPS with
|
||||
the OPT package. It should be added to the CCFLAGS line of your
|
||||
Makefile.machine. See Makefile.opt in src/MAKE/OPTIONS for an
|
||||
example.
|
||||
the OPT package when using Intel compilers. It should be added to
|
||||
the CCFLAGS line of your Makefile.machine. See Makefile.opt in
|
||||
src/MAKE/OPTIONS for an example.
|
||||
|
||||
CCFLAGS: add -restrict :ul
|
||||
CCFLAGS: add -restrict for Intel compilers :ul
|
||||
|
||||
[Supporting info:]
|
||||
|
||||
src/OPT: filenames -> commands
|
||||
"Section 5.3"_Section_accelerate.html#acc_3
|
||||
"Section 5.3.5"_accelerate_opt.html
|
||||
"Section 2.7 -sf opt"_Section_start.html#start_7
|
||||
"Section 2.6 -sf opt"_Section_start.html#start_6
|
||||
Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 for pair styles followed by (t)
|
||||
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
|
||||
|
||||
@ -1015,7 +1076,8 @@ one step from the lammps/src dir, using a command like these, which
|
||||
simply invoke the lib/poems/Install.py script with the specified args:
|
||||
|
||||
make lib-poems # print help message
|
||||
make lib-poems args="-m g++" # build with GNU g++ compiler
|
||||
make lib-poems args="-m serial" # build with GNU g++ compiler (settings as with "make serial")
|
||||
make lib-poems args="-m mpi" # build with default MPI C++ compiler (settings as with "make mpi")
|
||||
make lib-poems args="-m icc" # build with Intel icc compiler :pre
|
||||
|
||||
The build should produce two files: lib/poems/libpoems.a and
|
||||
@ -1127,7 +1189,8 @@ step from the lammps/src dir, using a command like these, which simply
|
||||
invoke the lib/reax/Install.py script with the specified args:
|
||||
|
||||
make lib-reax # print help message
|
||||
make lib-reax args="-m gfortran" # build with GNU Fortran compiler
|
||||
make lib-reax args="-m serial" # build with GNU Fortran compiler (settings as with "make serial")
|
||||
make lib-reax args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
|
||||
make lib-reax args="-m ifort" # build with Intel ifort compiler :pre
|
||||
|
||||
The build should produce two files: lib/reax/libreax.a and
|
||||
@ -1346,14 +1409,14 @@ simply invoke the lib/voronoi/Install.py script with the specified
|
||||
args:
|
||||
|
||||
make lib-voronoi # print help message
|
||||
make lib-voronoi args="-g -b -l" # download and build in default lib/voronoi/voro++-0.4.6
|
||||
make lib-voronoi args="-h . voro++ -g -b -l" # download and build in lib/voronoi/voro++
|
||||
make lib-voronoi args="-h ~ voro++ -g -b -l" # download and build in ~/voro++ :pre
|
||||
make lib-voronoi args="-b" # download and build the default version in lib/voronoi/voro++-<version>
|
||||
make lib-voronoi args="-p $HOME/voro++" # use existing Voro++ installation in $HOME/voro++
|
||||
make lib-voronoi args="-b -v voro++0.4.6" # download and build the 0.4.6 version in lib/voronoi/voro++-0.4.6 :pre
|
||||
|
||||
Note that the final -l switch is to create 2 symbolic (soft) links,
|
||||
"includelink" and "liblink", in lib/voronoi to point to the Voro++ src
|
||||
dir. When LAMMPS builds it will use these links. You should not need
|
||||
to edit the lib/voronoi/Makefile.lammps file.
|
||||
Note that 2 symbolic (soft) links, "includelink" and "liblink", are
|
||||
created in lib/voronoi to point to the Voro++ src dir. When LAMMPS
|
||||
builds in src it will use these links. You should not need to edit
|
||||
the lib/voronoi/Makefile.lammps file.
|
||||
|
||||
You can then install/un-install the package and build LAMMPS in the
|
||||
usual manner:
|
||||
@ -1395,7 +1458,8 @@ from the lammps/src dir, using a command like these, which simply
|
||||
invoke the lib/atc/Install.py script with the specified args:
|
||||
|
||||
make lib-atc # print help message
|
||||
make lib-atc args="-m g++" # build with GNU g++ compiler
|
||||
make lib-atc args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
|
||||
make lib-atc args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
|
||||
make lib-atc args="-m icc" # build with Intel icc compiler :pre
|
||||
|
||||
The build should produce two files: lib/atc/libatc.a and
|
||||
@ -1413,7 +1477,9 @@ lib/linalg. In the latter case you also need to build the library
|
||||
in lib/linalg with a command like these:
|
||||
|
||||
make lib-linalg # print help message
|
||||
make lib-atc args="-m gfortran" # build with GNU Fortran compiler
|
||||
make lib-linalg args="-m serial" # build with GNU Fortran compiler (settings as with "make serial")
|
||||
make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
|
||||
make lib-linalg args="-m gfortran" # build with GNU Fortran compiler :pre
|
||||
|
||||
You can then install/un-install the package and build LAMMPS in the
|
||||
usual manner:
|
||||
@ -1454,7 +1520,8 @@ one step from the lammps/src dir, using a command like these, which
|
||||
simply invoke the lib/awpmd/Install.py script with the specified args:
|
||||
|
||||
make lib-awpmd # print help message
|
||||
make lib-awpmd args="-m g++" # build with GNU g++ compiler
|
||||
make lib-awpmd args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
|
||||
make lib-awpmd args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
|
||||
make lib-awpmd args="-m icc" # build with Intel icc compiler :pre
|
||||
|
||||
The build should produce two files: lib/awpmd/libawpmd.a and
|
||||
@ -1472,7 +1539,9 @@ provided in lib/linalg. In the latter case you also need to build the
|
||||
library in lib/linalg with a command like these:
|
||||
|
||||
make lib-linalg # print help message
|
||||
make lib-atc args="-m gfortran" # build with GNU Fortran compiler
|
||||
make lib-linalg args="-m serial" # build with GNU Fortran compiler (settings as with "make serial")
|
||||
make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
|
||||
make lib-linalg args="-m gfortran" # build with GNU Fortran compiler :pre
|
||||
|
||||
You can then install/un-install the package and build LAMMPS in the
|
||||
usual manner:
|
||||
@ -1502,7 +1571,7 @@ oxDNA model of Doye, Louis and Ouldridge at the University of Oxford.
|
||||
This includes Langevin-type rigid-body integrators with improved
|
||||
stability.
|
||||
|
||||
[Author:] Oliver Henrich (University of Edinburgh).
|
||||
[Author:] Oliver Henrich (University of Strathclyde, Glasgow).
|
||||
|
||||
[Install or un-install:]
|
||||
|
||||
@ -1565,9 +1634,11 @@ Restraints. A "fix colvars"_fix_colvars.html command is implemented
|
||||
which wraps a COLVARS library, which implements these methods.
|
||||
simulations.
|
||||
|
||||
[Authors:] Axel Kohlmeyer (Temple U). The COLVARS library was written
|
||||
by Giacomo Fiorin (ICMS, Temple University, Philadelphia, PA, USA) and
|
||||
Jerome Henin (LISM, CNRS, Marseille, France).
|
||||
[Authors:] The COLVARS library is written and maintained by
|
||||
Giacomo Fiorin (ICMS, Temple University, Philadelphia, PA, USA)
|
||||
and Jerome Henin (LISM, CNRS, Marseille, France), originally for
|
||||
the NAMD MD code, but with portability in mind. Axel Kohlmeyer
|
||||
(Temple U) provided the interface to LAMMPS.
|
||||
|
||||
[Install or un-install:]
|
||||
|
||||
@ -1579,7 +1650,9 @@ which simply invoke the lib/colvars/Install.py script with the
|
||||
specified args:
|
||||
|
||||
make lib-colvars # print help message
|
||||
make lib-colvars args="-m g++" # build with GNU g++ compiler :pre
|
||||
make lib-colvars args="-m serial" # build with GNU g++ compiler (settings as with "make serial")
|
||||
make lib-colvars args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
|
||||
make lib-colvars args="-m g++-debug" # build with GNU g++ compiler and colvars debugging enabled :pre
|
||||
|
||||
The build should produce two files: lib/colvars/libcolvars.a and
|
||||
lib/colvars/Makefile.lammps. The latter is copied from an existing
|
||||
@ -1862,12 +1935,17 @@ All of them have an "intel" in their style name. "Section
|
||||
5.3.2"_accelerate_intel.html gives details of what hardware and
|
||||
compilers are required on your system, and how to build and use this
|
||||
package. Its styles can be invoked at run time via the "-sf intel" or
|
||||
"-suffix intel" "command-line switches"_Section_start.html#start_7.
|
||||
"-suffix intel" "command-line switches"_Section_start.html#start_6.
|
||||
Also see the "KOKKOS"_#KOKKOS, "OPT"_#OPT, and "USER-OMP"_#USER-OMP
|
||||
packages, which have styles optimized for CPUs and KNLs.
|
||||
|
||||
You need to have an Intel compiler, version 14 or higher to take full
|
||||
advantage of this package.
|
||||
advantage of this package. While compilation with GNU compilers is
|
||||
supported, performance will be suboptimal.
|
||||
|
||||
NOTE: the USER-INTEL package contains styles that require using the
|
||||
-restrict flag, when compiling with Intel compilers.
|
||||
|
||||
|
||||
[Author:] Mike Brown (Intel).
|
||||
|
||||
@ -1886,7 +1964,7 @@ OPTFLAGS = -xHost -O2 -fp-model fast=2 -no-prec-div -qoverride-limits
|
||||
CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \
|
||||
-fno-alias -ansi-alias -restrict $(OPTFLAGS)
|
||||
LINKFLAGS = -g -qopenmp $(OPTFLAGS)
|
||||
LIB = -ltbbmalloc -ltbbmalloc_proxy
|
||||
LIB = -ltbbmalloc -ltbbmalloc_proxy :pre
|
||||
|
||||
For KNLs:
|
||||
|
||||
@ -1894,7 +1972,7 @@ OPTFLAGS = -xMIC-AVX512 -O2 -fp-model fast=2 -no-prec-div -qoverride-limits
|
||||
CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \
|
||||
-fno-alias -ansi-alias -restrict $(OPTFLAGS)
|
||||
LINKFLAGS = -g -qopenmp $(OPTFLAGS)
|
||||
LIB = -ltbbmalloc
|
||||
LIB = -ltbbmalloc :pre
|
||||
|
||||
Once you have an appropriate Makefile.machine, you can
|
||||
install/un-install the package and build LAMMPS in the usual manner.
|
||||
@ -1918,8 +1996,8 @@ src/USER-INTEL: filenames -> commands
|
||||
src/USER-INTEL/README
|
||||
"Section 5.3"_Section_accelerate.html#acc_3
|
||||
"Section 5.3.2"_accelerate_gpu.html
|
||||
"Section 2.7 -sf intel"_Section_start.html#start_7
|
||||
"Section 2.7 -pk intel"_Section_start.html#start_7
|
||||
"Section 2.6 -sf intel"_Section_start.html#start_6
|
||||
"Section 2.6 -pk intel"_Section_start.html#start_6
|
||||
"package intel"_package.html
|
||||
Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (i)
|
||||
src/USER-INTEL/TEST
|
||||
@ -2027,8 +2105,8 @@ algorithm to formulate single-particle constraint functions
|
||||
g(xi,yi,zi) = 0 and their derivative (i.e. the normal of the manifold)
|
||||
n = grad(g).
|
||||
|
||||
[Author:] Stefan Paquay (Eindhoven University of Technology (TU/e), The
|
||||
Netherlands)
|
||||
[Author:] Stefan Paquay (until 2017: Eindhoven University of Technology (TU/e), The
|
||||
Netherlands; since 2017: Brandeis University, Waltham, MA, USA)
|
||||
|
||||
[Install or un-install:]
|
||||
|
||||
@ -2051,6 +2129,37 @@ http://lammps.sandia.gov/movies.html#manifold :ul
|
||||
|
||||
:line
|
||||
|
||||
USER-MEAMC package :link(USER-MEAMC),h4
|
||||
|
||||
[Contents:]
|
||||
|
||||
A pair style for the modified embedded atom (MEAM) potential
|
||||
translated from the Fortran version in the "MEAM"_MEAM package
|
||||
to plain C++. In contrast to the MEAM package, no library
|
||||
needs to be compiled and the pair style can be instantiated
|
||||
multiple times.
|
||||
|
||||
[Author:] Sebastian Huetter, (Otto-von-Guericke University Magdeburg)
|
||||
based on the Fortran version of Greg Wagner (Northwestern U) while at
|
||||
Sandia.
|
||||
|
||||
[Install or un-install:]
|
||||
|
||||
make yes-user-meamc
|
||||
make machine :pre
|
||||
|
||||
make no-user-meamc
|
||||
make machine :pre
|
||||
|
||||
[Supporting info:]
|
||||
|
||||
src/USER-MEAMC: filenames -> commands
|
||||
src/USER-MEAMC/README
|
||||
"pair meam/c"_pair_meam.html
|
||||
examples/meam :ul
|
||||
|
||||
:line
|
||||
|
||||
USER-MOLFILE package :link(USER-MOLFILE),h4
|
||||
|
||||
[Contents:]
|
||||
@ -2161,18 +2270,22 @@ via OpenMP directives. All of them have an "omp" in their style name.
|
||||
"Section 5.3.4"_accelerate_omp.html gives details of what hardware and
|
||||
compilers are required on your system, and how to build and use this
|
||||
package. Its styles can be invoked at run time via the "-sf omp" or
|
||||
"-suffix omp" "command-line switches"_Section_start.html#start_7.
|
||||
"-suffix omp" "command-line switches"_Section_start.html#start_6.
|
||||
Also see the "KOKKOS"_#KOKKOS, "OPT"_#OPT, and
|
||||
"USER-INTEL"_#USER-INTEL packages, which have styles optimized for
|
||||
CPUs.
|
||||
|
||||
[Author:] Axel Kohlmeyer (Temple U).
|
||||
|
||||
NOTE: The compile flags "-restrict" and "-fopenmp" must be used to
|
||||
build LAMMPS with the USER-OMP package, as well as the link flag
|
||||
"-fopenmp". They should be added to the CCFLAGS and LINKFLAGS lines
|
||||
of your Makefile.machine. See src/MAKE/OPTIONS/Makefile.omp for an
|
||||
example.
|
||||
NOTE: To enable multi-threading support the compile flag "-fopenmp"
|
||||
and the link flag "-fopenmp" (for GNU compilers, you have to look up
|
||||
the equivalent flags for other compilers) must be used to build LAMMPS.
|
||||
When using Intel compilers, also the "-restrict" flag is required.
|
||||
The USER-OMP package can be compiled without enabling OpenMP; then
|
||||
all code will be compiled as serial and the only improvement over the
|
||||
regular styles are some data access optimization. These flags should
|
||||
be added to the CCFLAGS and LINKFLAGS lines of your Makefile.machine.
|
||||
See src/MAKE/OPTIONS/Makefile.omp for an example.
|
||||
|
||||
Once you have an appropriate Makefile.machine, you can
|
||||
install/un-install the package and build LAMMPS in the usual manner:
|
||||
@ -2185,7 +2298,7 @@ make machine :pre
|
||||
make no-user-omp
|
||||
make machine :pre
|
||||
|
||||
CCFLAGS: add -fopenmp and -restrict
|
||||
CCFLAGS: add -fopenmp (and -restrict when using Intel compilers)
|
||||
LINKFLAGS: add -fopenmp :ul
|
||||
|
||||
[Supporting info:]
|
||||
@ -2194,8 +2307,8 @@ src/USER-OMP: filenames -> commands
|
||||
src/USER-OMP/README
|
||||
"Section 5.3"_Section_accelerate.html#acc_3
|
||||
"Section 5.3.4"_accelerate_omp.html
|
||||
"Section 2.7 -sf omp"_Section_start.html#start_7
|
||||
"Section 2.7 -pk omp"_Section_start.html#start_7
|
||||
"Section 2.6 -sf omp"_Section_start.html#start_6
|
||||
"Section 2.6 -pk omp"_Section_start.html#start_6
|
||||
"package omp"_package.html
|
||||
Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (o)
|
||||
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
|
||||
@ -2254,12 +2367,14 @@ without changes to LAMMPS itself.
|
||||
|
||||
Before building LAMMPS with this package, you must first build the
|
||||
QMMM library in lib/qmmm. You can do this manually if you prefer;
|
||||
follow the first two steps explained in lib/colvars/README. You can
|
||||
follow the first two steps explained in lib/qmmm/README. You can
|
||||
also do it in one step from the lammps/src dir, using a command like
|
||||
these, which simply invoke the lib/colvars/Install.py script with the
|
||||
these, which simply invoke the lib/qmmm/Install.py script with the
|
||||
specified args:
|
||||
|
||||
make lib-qmmm # print help message
|
||||
make lib-qmmm args="-m serial" # build with GNU Fortran compiler (settings as in "make serial")
|
||||
make lib-qmmm args="-m mpi" # build with default MPI compiler (settings as in "make mpi")
|
||||
make lib-qmmm args="-m gfortran" # build with GNU Fortran compiler :pre
|
||||
|
||||
The build should produce two files: lib/qmmm/libqmmm.a and
|
||||
@ -2437,14 +2552,12 @@ step from the lammps/src dir, using a command like these, which simply
|
||||
invoke the lib/smd/Install.py script with the specified args:
|
||||
|
||||
make lib-smd # print help message
|
||||
make lib-smd args="-g -l" # download in default lib/smd/eigen-eigen-*
|
||||
make lib-smd args="-h . eigen -g -l" # download in lib/smd/eigen
|
||||
make lib-smd args="-h ~ eigen -g -l" # download and build in ~/eigen :pre
|
||||
make lib-smd args="-b" # download and build in default lib/smd/eigen-eigen-...
|
||||
make lib-smd args="-p /usr/include/eigen3" # use existing Eigen installation in /usr/include/eigen3 :pre
|
||||
|
||||
Note that the final -l switch is to create a symbolic (soft) link
|
||||
named "includelink" in lib/smd to point to the Eigen dir. When LAMMPS
|
||||
builds it will use this link. You should not need to edit the
|
||||
lib/smd/Makefile.lammps file.
|
||||
Note that a symbolic (soft) link named "includelink" is created in
|
||||
lib/smd to point to the Eigen dir. When LAMMPS builds it will use
|
||||
this link. You should not need to edit the lib/smd/Makefile.lammps file.
|
||||
|
||||
You can then install/un-install the package and build LAMMPS in the
|
||||
usual manner:
|
||||
|
||||
@ -198,7 +198,7 @@ file and the shared library.
|
||||
11.3 Building LAMMPS as a shared library :link(py_3),h4
|
||||
|
||||
Instructions on how to build LAMMPS as a shared library are given in
|
||||
"Section 2.5"_Section_start.html#start_5. A shared library is one
|
||||
"Section 2.4"_Section_start.html#start_4. A shared library is one
|
||||
that is dynamically loadable, which is what Python requires to wrap
|
||||
LAMMPS. On Linux this is a library file that ends in ".so", not ".a".
|
||||
|
||||
@ -217,7 +217,7 @@ NOTE: If you are building LAMMPS with an MPI or FFT library or other
|
||||
auxiliary libraries (used by various packages), then all of these
|
||||
extra libraries must also be shared libraries. If the LAMMPS
|
||||
shared-library build fails with an error complaining about this, see
|
||||
"Section 2.5"_Section_start.html#start_5 for more details.
|
||||
"Section 2.4"_Section_start.html#start_4 for more details.
|
||||
|
||||
:line
|
||||
|
||||
@ -439,7 +439,7 @@ first importing from the lammps.py file:
|
||||
>>> CDLL("liblammps.so") :pre
|
||||
|
||||
If an error occurs, carefully go thru the steps in "Section
|
||||
2.5"_Section_start.html#start_5 and above about building a shared
|
||||
2.4"_Section_start.html#start_4 and above about building a shared
|
||||
library and about insuring Python can find the necessary two files
|
||||
it needs.
|
||||
|
||||
|
||||
@ -14,11 +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.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)
|
||||
2.4 "Building LAMMPS as a library"_#start_4
|
||||
2.5 "Running LAMMPS"_#start_5
|
||||
2.6 "Command-line options"_#start_6
|
||||
2.7 "Screen output"_#start_7
|
||||
2.8 "Tips for users of previous versions"_#start_8 :all(b)
|
||||
|
||||
:line
|
||||
|
||||
@ -434,20 +434,39 @@ files. Note that on some large parallel machines which use "modules"
|
||||
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.
|
||||
trouble finding. See the src/MAKE/OPTIONS/Makefile.fftw file for an
|
||||
example of how to specify these variables to use the FFTW3 library.
|
||||
|
||||
FFTW is a fast, portable library that should also work on any
|
||||
platform. You can download it from
|
||||
FFTW is fast, portable library that should also work on any platform
|
||||
and typically be faster than KISS FFT. You can download it from
|
||||
"www.fftw.org"_http://www.fftw.org. Both the legacy version 2.1.X and
|
||||
the newer 3.X versions are supported as -DFFT_FFTW2 or -DFFT_FFTW3.
|
||||
Building FFTW for your box should be as simple as ./configure; make.
|
||||
Note that on some platforms FFTW2 has been pre-installed, and uses
|
||||
renamed files indicating the precision it was compiled with,
|
||||
e.g. sfftw.h, or dfftw.h instead of fftw.h. In this case, you can
|
||||
specify an additional define variable for FFT_INC called -DFFTW_SIZE,
|
||||
which will select the correct include file. In this case, for FFT_LIB
|
||||
you must also manually specify the correct library, namely -lsfftw or
|
||||
-ldfftw.
|
||||
Building FFTW for your box should be as simple as ./configure; make;
|
||||
make install. The install command typically requires root privileges
|
||||
(e.g. invoke it via sudo), unless you specify a local directory with
|
||||
the "--prefix" option of configure. Type "./configure --help" to see
|
||||
various options.
|
||||
|
||||
If you wish to have FFTW support for single-precision FFTs (see below
|
||||
about -DFFT_SINGLE) in addition to the default double-precision FFTs,
|
||||
you will need to build FFTW a second time for single-precision. For
|
||||
FFTW3, do this via:
|
||||
|
||||
make clean
|
||||
./configure --enable-single; make; make install :pre
|
||||
|
||||
which should produce the additional library libfftw3f.a.
|
||||
|
||||
For FFTW2, do this:
|
||||
|
||||
make clean
|
||||
./configure --enable-float --enable-type-prefix; make; make install :pre
|
||||
|
||||
which should produce the additional library libsfftw.a and additional
|
||||
include file sfttw.a. Note that on some platforms FFTW2 has been
|
||||
pre-installed for both single- and double-precision, and may already
|
||||
have these files as well as libdfftw.a and dfftw.h for double
|
||||
precision.
|
||||
|
||||
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
|
||||
@ -459,6 +478,16 @@ accuracy for reduced memory use and parallel communication costs for
|
||||
transposing 3d FFT data. Note that single precision FFTs have only
|
||||
been tested with the FFTW3, FFTW2, MKL, and KISS FFT options.
|
||||
|
||||
When using -DFFT_SINGLE with FFTW3 or FFTW2, you need to build FFTW
|
||||
with support for single-precision, as explained above. For FFTW3 you
|
||||
also need to include -lfftw3f with the FFT_LIB setting, in addition to
|
||||
-lfftw3. For FFTW2, you also need to specify -DFFT_SIZE with the
|
||||
FFT_INC setting and -lsfftw with the FFT_LIB setting (in place of
|
||||
-lfftw). Similarly, if FFTW2 has been preinstalled with an explicit
|
||||
double-precision library (libdfftw.a and not the default libfftw.a),
|
||||
then you can specify -DFFT_SIZE (and not -DFFT_SINGLE), and specify
|
||||
-ldfftw to use double-precision FFTs.
|
||||
|
||||
Step 7 :h6
|
||||
|
||||
The 3 JPG variables allow you to specify a JPEG and/or PNG library
|
||||
@ -558,8 +587,7 @@ 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.
|
||||
@ -630,7 +658,16 @@ utilities.
|
||||
For Cygwin and the MinGW cross-compilers, suitable makefiles are
|
||||
provided in src/MAKE/MACHINES. When using other compilers, like
|
||||
Visual C++ or Intel compilers for Windows, you may have to implement
|
||||
your own build system. Since none of the current LAMMPS core developers
|
||||
your own build system. Due to differences between the Windows OS
|
||||
and Windows system libraries to Unix-like environments like Linux
|
||||
or MacOS, when compiling for Windows a few adjustments may be needed:
|
||||
|
||||
Do not set the -DLAMMPS_MEMALIGN define (see LMP_INC makefile variable)
|
||||
Add -lwsock32 -lpsapi to the linker flags (see LIB makefile variable)
|
||||
Try adding -static-libgcc or -static or both to the linker flags when your
|
||||
LAMMPS executable complains about missing .dll files :ul
|
||||
|
||||
Since none of the current LAMMPS core developers
|
||||
has significant experience building executables on Windows, we are
|
||||
happy to distribute contributed instructions and modifications, but
|
||||
we cannot provide support for those.
|
||||
@ -685,7 +722,7 @@ type
|
||||
lmp_machine -h :pre
|
||||
|
||||
to run your executable with the optional "-h command-line
|
||||
switch"_#start_7 for "help", which will list the styles and commands
|
||||
switch"_#start_6 for "help", which will list the styles and commands
|
||||
known to your executable, and immediately exit.
|
||||
|
||||
:line
|
||||
@ -880,7 +917,7 @@ 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.
|
||||
(CUDA), and Intel KNLs.
|
||||
|
||||
Makefile.intel_cpu
|
||||
Makefile.intel_phi
|
||||
|
||||
@ -54,7 +54,7 @@ specify the # of GPUs per node
|
||||
use GPU styles in your input script :ul
|
||||
|
||||
The latter two steps can be done using the "-pk gpu" and "-sf gpu"
|
||||
"command-line switches"_Section_start.html#start_7 respectively. Or
|
||||
"command-line switches"_Section_start.html#start_6 respectively. Or
|
||||
the effect of the "-pk" or "-sf" switches can be duplicated by adding
|
||||
the "package gpu"_package.html or "suffix gpu"_suffix.html commands
|
||||
respectively to your input script.
|
||||
@ -62,7 +62,7 @@ respectively to your input script.
|
||||
[Required hardware/software:]
|
||||
|
||||
To use this package, you currently need to have an NVIDIA GPU and
|
||||
install the NVIDIA Cuda software on your system:
|
||||
install the NVIDIA CUDA software on your system:
|
||||
|
||||
Check if you have an NVIDIA GPU: cat /proc/driver/nvidia/gpus/0/information
|
||||
Go to http://www.nvidia.com/object/cuda_get.html
|
||||
@ -74,13 +74,8 @@ Run lammps/lib/gpu/nvc_get_devices (after building the GPU library, see below) t
|
||||
This requires two steps (a,b): build the GPU library, then build
|
||||
LAMMPS with the GPU package.
|
||||
|
||||
You can do both these steps in one line, using the src/Make.py script,
|
||||
described in "Section 2.4"_Section_start.html#start_4 of the manual.
|
||||
Type "Make.py -h" for help. If run from the src directory, this
|
||||
command will create src/lmp_gpu using src/MAKE/Makefile.mpi as the
|
||||
starting Makefile.machine:
|
||||
|
||||
Make.py -p gpu -gpu mode=single arch=31 -o gpu -a lib-gpu file mpi :pre
|
||||
You can do both these steps in one line as described in
|
||||
"Section 4"_Section_packages.html of the manual.
|
||||
|
||||
Or you can follow these two (a,b) steps:
|
||||
|
||||
@ -90,7 +85,7 @@ The GPU library is in lammps/lib/gpu. Select a Makefile.machine (in
|
||||
lib/gpu) appropriate for your system. You should pay special
|
||||
attention to 3 settings in this makefile.
|
||||
|
||||
CUDA_HOME = needs to be where NVIDIA Cuda software is installed on your system
|
||||
CUDA_HOME = needs to be where NVIDIA CUDA software is installed on your system
|
||||
CUDA_ARCH = needs to be appropriate to your GPUs
|
||||
CUDA_PREC = precision (double, mixed, single) you desire :ul
|
||||
|
||||
@ -151,9 +146,9 @@ automatically if you create more MPI tasks/node than there are
|
||||
GPUs/mode. E.g. with 8 MPI tasks/node and 2 GPUs, each GPU will be
|
||||
shared by 4 MPI tasks.
|
||||
|
||||
Use the "-sf gpu" "command-line switch"_Section_start.html#start_7,
|
||||
Use the "-sf gpu" "command-line switch"_Section_start.html#start_6,
|
||||
which will automatically append "gpu" to styles that support it. Use
|
||||
the "-pk gpu Ng" "command-line switch"_Section_start.html#start_7 to
|
||||
the "-pk gpu Ng" "command-line switch"_Section_start.html#start_6 to
|
||||
set Ng = # of GPUs/node to use.
|
||||
|
||||
lmp_machine -sf gpu -pk gpu 1 -in in.script # 1 MPI task uses 1 GPU
|
||||
@ -188,7 +183,7 @@ pair_style lj/cut/gpu 2.5 :pre
|
||||
|
||||
You must also use the "package gpu"_package.html command to enable the
|
||||
GPU package, unless the "-sf gpu" or "-pk gpu" "command-line
|
||||
switches"_Section_start.html#start_7 were used. It specifies the
|
||||
switches"_Section_start.html#start_6 were used. It specifies the
|
||||
number of GPUs/node to use, as well as other options.
|
||||
|
||||
[Speed-ups to expect:]
|
||||
|
||||
@ -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,62 +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 cutoff" and "kspace_modify diff ad" to the input script for better
|
||||
performance. Cutoff should be roughly the neighbor list cutoff. By
|
||||
default the binsize is half the neighbor list cutoff. :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):
|
||||
@ -169,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
|
||||
@ -193,11 +225,9 @@ source /opt/intel/parallel_studio_xe_2016.3.067/psxevars.sh
|
||||
# or psxevars.csh for C-shell
|
||||
make intel_cpu_intelmpi :pre
|
||||
|
||||
Alternatively, the build can be accomplished with the src/Make.py
|
||||
script, described in "Section 2.4"_Section_start.html#start_4 of the
|
||||
manual. Type "Make.py -h" for help. For an example:
|
||||
|
||||
Make.py -v -p intel omp -intel cpu -a file intel_cpu_intelmpi :pre
|
||||
Alternatively this can be done as a single command with
|
||||
suitable make command invocations. This is discussed in "Section
|
||||
4"_Section_packages.html of the manual.
|
||||
|
||||
Note that if you build with support for a Phi coprocessor, the same
|
||||
binary can be used on nodes with or without coprocessors installed.
|
||||
@ -212,8 +242,7 @@ highly recommended for CCFLAGS and LINKFLAGS. LIB should include
|
||||
is required for CCFLAGS and "-qoffload" is required for LINKFLAGS.
|
||||
Other recommended CCFLAG options for best performance are
|
||||
"-O2 -fno-alias -ansi-alias -qoverride-limits fp-model fast=2
|
||||
-no-prec-div". The Make.py command will add all of these
|
||||
automatically.
|
||||
-no-prec-div".
|
||||
|
||||
NOTE: The vectorization and math capabilities can differ depending on
|
||||
the CPU. For Intel compilers, the "-x" flag specifies the type of
|
||||
@ -269,7 +298,7 @@ Hyper-Threading technology disabled.
|
||||
|
||||
To enable USER-INTEL optimizations for all available styles used in
|
||||
the input script, the "-sf intel"
|
||||
"command-line switch"_Section_start.html#start_7 can be used without
|
||||
"command-line switch"_Section_start.html#start_6 can be used without
|
||||
any requirement for editing the input script. This switch will
|
||||
automatically append "intel" to styles that support it. It also
|
||||
invokes a default command: "package intel 1"_package.html. This
|
||||
@ -282,7 +311,7 @@ support, that 1 coprocessor per node will be used with automatic
|
||||
balancing of work between the CPU and the coprocessor.
|
||||
|
||||
You can specify different options for the USER-INTEL package by using
|
||||
the "-pk intel Nphi" "command-line switch"_Section_start.html#start_7
|
||||
the "-pk intel Nphi" "command-line switch"_Section_start.html#start_6
|
||||
with keyword/value pairs as specified in the documentation. Here,
|
||||
Nphi = # of Xeon Phi coprocessors/node (ignored without offload
|
||||
support). Common options to the USER-INTEL package include {omp} to
|
||||
@ -322,8 +351,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
|
||||
@ -342,6 +371,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,
|
||||
@ -351,13 +384,17 @@ can performed automatically by using "-sf hybrid intel opt" or
|
||||
and "omp" suffixes can be appended manually in the input script. For
|
||||
the latter, the "package omp"_package.html command must be in the
|
||||
input script or the "-pk omp Nt" "command-line
|
||||
switch"_Section_start.html#start_7 must be used where Nt is the
|
||||
switch"_Section_start.html#start_6 must be used where Nt is the
|
||||
number of OpenMP threads. The number of OpenMP threads should not be
|
||||
set differently for the different packages. Note that the "suffix
|
||||
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
|
||||
@ -446,7 +483,7 @@ sorting"_atom_modify.html is changed to 1 so that the per-atom data is
|
||||
effectively sorted at every rebuild of the neighbor lists. All the
|
||||
available coprocessor threads on each Phi will be divided among MPI
|
||||
tasks, unless the {tptask} option of the "-pk intel" "command-line
|
||||
switch"_Section_start.html#start_7 is used to limit the coprocessor
|
||||
switch"_Section_start.html#start_6 is used to limit the coprocessor
|
||||
threads per MPI task.
|
||||
|
||||
[Restrictions:]
|
||||
@ -467,7 +504,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
|
||||
|
||||
@ -60,8 +60,7 @@ More details follow.
|
||||
use a C++11 compatible compiler
|
||||
make yes-kokkos
|
||||
make mpi KOKKOS_DEVICES=OpenMP # build with the KOKKOS package
|
||||
make kokkos_omp # or Makefile.kokkos_omp already has variable set
|
||||
Make.py -v -p kokkos -kokkos omp -o mpi -a file mpi # or one-line build via Make.py :pre
|
||||
make kokkos_omp # or Makefile.kokkos_omp already has variable set :pre
|
||||
|
||||
mpirun -np 16 lmp_mpi -k on -sf kk -in in.lj # 1 node, 16 MPI tasks/node, no threads
|
||||
mpirun -np 2 -ppn 1 lmp_mpi -k on t 16 -sf kk -in in.lj # 2 nodes, 1 MPI task/node, 16 threads/task
|
||||
@ -82,8 +81,7 @@ use a C++11 compatible compiler
|
||||
KOKKOS_DEVICES = Cuda, OpenMP
|
||||
KOKKOS_ARCH = Kepler35
|
||||
make yes-kokkos
|
||||
make machine
|
||||
Make.py -p kokkos -kokkos cuda arch=31 -o kokkos_cuda -a file kokkos_cuda :pre
|
||||
make machine :pre
|
||||
|
||||
mpirun -np 1 lmp_cuda -k on t 6 -sf kk -in in.lj # one MPI task, 6 threads on CPU
|
||||
mpirun -np 4 -ppn 1 lmp_cuda -k on t 6 -sf kk -in in.lj # ditto on 4 nodes :pre
|
||||
@ -98,8 +96,7 @@ use a C++11 compatible compiler
|
||||
KOKKOS_DEVICES = OpenMP
|
||||
KOKKOS_ARCH = KNC
|
||||
make yes-kokkos
|
||||
make machine
|
||||
Make.py -p kokkos -kokkos phi -o kokkos_phi -a file mpi :pre
|
||||
make machine :pre
|
||||
|
||||
host=MIC, Intel Phi with 61 cores (240 threads/phi via 4x hardware threading):
|
||||
mpirun -np 1 lmp_g++ -k on t 240 -sf kk -in in.lj # 1 MPI task on 1 Phi, 1*240 = 240
|
||||
@ -116,7 +113,7 @@ To build with Kokkos support for CPUs, your compiler must support the
|
||||
OpenMP interface. You should have one or more multi-core CPUs so that
|
||||
multiple threads can be launched by each MPI task running on a CPU.
|
||||
|
||||
To build with Kokkos support for NVIDIA GPUs, NVIDIA Cuda software
|
||||
To build with Kokkos support for NVIDIA GPUs, NVIDIA CUDA software
|
||||
version 7.5 or later must be installed on your system. See the
|
||||
discussion for the "GPU"_accelerate_gpu.html package for details of
|
||||
how to check and do this.
|
||||
@ -135,16 +132,16 @@ mode like the USER-INTEL package supports.
|
||||
You must choose at build time whether to build for CPUs (OpenMP),
|
||||
GPUs, or Phi.
|
||||
|
||||
You can do any of these in one line, using the src/Make.py script,
|
||||
described in "Section 2.4"_Section_start.html#start_4 of the manual.
|
||||
Type "Make.py -h" for help. If run from the src directory, these
|
||||
You can do any of these in one line, using the suitable make command
|
||||
line flags as described in "Section 4"_Section_packages.html of the
|
||||
manual. If run from the src directory, these
|
||||
commands will create src/lmp_kokkos_omp, lmp_kokkos_cuda, and
|
||||
lmp_kokkos_phi. Note that the OMP and PHI options use
|
||||
src/MAKE/Makefile.mpi as the starting Makefile.machine. The CUDA
|
||||
option uses src/MAKE/OPTIONS/Makefile.kokkos_cuda.
|
||||
|
||||
The latter two steps can be done using the "-k on", "-pk kokkos" and
|
||||
"-sf kk" "command-line switches"_Section_start.html#start_7
|
||||
"-sf kk" "command-line switches"_Section_start.html#start_6
|
||||
respectively. Or the effect of the "-pk" or "-sf" switches can be
|
||||
duplicated by adding the "package kokkos"_package.html or "suffix
|
||||
kk"_suffix.html commands respectively to your input script.
|
||||
@ -280,10 +277,10 @@ specify how many Phi coprocessors there are per node; each
|
||||
coprocessors is simply treated as running some number of MPI tasks.
|
||||
|
||||
You must use the "-k on" "command-line
|
||||
switch"_Section_start.html#start_7 to enable the KOKKOS package. It
|
||||
switch"_Section_start.html#start_6 to enable the KOKKOS package. It
|
||||
takes additional arguments for hardware settings appropriate to your
|
||||
system. Those arguments are "documented
|
||||
here"_Section_start.html#start_7. The two most commonly used
|
||||
here"_Section_start.html#start_6. The two most commonly used
|
||||
options are:
|
||||
|
||||
-k on t Nt g Ng :pre
|
||||
@ -304,12 +301,12 @@ The "-k on" switch also issues a "package kokkos" command (with no
|
||||
additional arguments) which sets various KOKKOS options to default
|
||||
values, as discussed on the "package"_package.html command doc page.
|
||||
|
||||
Use the "-sf kk" "command-line switch"_Section_start.html#start_7,
|
||||
Use the "-sf kk" "command-line switch"_Section_start.html#start_6,
|
||||
which will automatically append "kk" to styles that support it. Use
|
||||
the "-pk kokkos" "command-line switch"_Section_start.html#start_7 if
|
||||
the "-pk kokkos" "command-line switch"_Section_start.html#start_6 if
|
||||
you wish to change any of the default "package kokkos"_package.html
|
||||
optionns set by the "-k on" "command-line
|
||||
switch"_Section_start.html#start_7.
|
||||
switch"_Section_start.html#start_6.
|
||||
|
||||
|
||||
|
||||
@ -323,7 +320,7 @@ However, when running in MPI-only mode with 1 thread per MPI task, it
|
||||
will typically be faster to use "half" neighbor lists and set the
|
||||
Newton flag to "on", just as is the case for non-accelerated pair
|
||||
styles. You can do this with the "-pk" "command-line
|
||||
switch"_Section_start.html#start_7.
|
||||
switch"_Section_start.html#start_6.
|
||||
|
||||
[Or run with the KOKKOS package by editing an input script:]
|
||||
|
||||
@ -332,7 +329,7 @@ appropriate thread and GPU values for host=OMP or host=MIC or
|
||||
device=CUDA are the same.
|
||||
|
||||
You must still use the "-k on" "command-line
|
||||
switch"_Section_start.html#start_7 to enable the KOKKOS package, and
|
||||
switch"_Section_start.html#start_6 to enable the KOKKOS package, and
|
||||
specify its additional arguments for hardware options appropriate to
|
||||
your system, as documented above.
|
||||
|
||||
@ -343,7 +340,7 @@ pair_style lj/cut/kk 2.5 :pre
|
||||
|
||||
You only need to use the "package kokkos"_package.html command if you
|
||||
wish to change any of its option defaults, as set by the "-k on"
|
||||
"command-line switch"_Section_start.html#start_7.
|
||||
"command-line switch"_Section_start.html#start_6.
|
||||
|
||||
[Speed-ups to expect:]
|
||||
|
||||
@ -389,7 +386,7 @@ If N is the number of physical cores/node, then the number of MPI
|
||||
tasks/node * number of threads/task should not exceed N, and should
|
||||
typically equal N. Note that the default threads/task is 1, as set by
|
||||
the "t" keyword of the "-k" "command-line
|
||||
switch"_Section_start.html#start_7. If you do not change this, no
|
||||
switch"_Section_start.html#start_6. If you do not change this, no
|
||||
additional parallelism (beyond MPI) will be invoked on the host
|
||||
CPU(s).
|
||||
|
||||
@ -429,7 +426,7 @@ details).
|
||||
The -np setting of the mpirun command should set the number of MPI
|
||||
tasks/node to be equal to the # of physical GPUs on the node.
|
||||
|
||||
Use the "-k" "command-line switch"_Section_commands.html#start_7 to
|
||||
Use the "-k" "command-line switch"_Section_commands.html#start_6 to
|
||||
specify the number of GPUs per node, and the number of threads per MPI
|
||||
task. As above for multi-core CPUs (and no GPU), if N is the number
|
||||
of physical cores/node, then the number of MPI tasks/node * number of
|
||||
|
||||
@ -23,8 +23,7 @@ one or more 16-core nodes. More details follow.
|
||||
use -fopenmp with CCFLAGS and LINKFLAGS in Makefile.machine
|
||||
make yes-user-omp
|
||||
make mpi # build with USER-OMP package, if settings added to Makefile.mpi
|
||||
make omp # or Makefile.omp already has settings
|
||||
Make.py -v -p omp -o mpi -a file mpi # or one-line build via Make.py :pre
|
||||
make omp # or Makefile.omp already has settings :pre
|
||||
|
||||
lmp_mpi -sf omp -pk omp 16 < in.script # 1 MPI task, 16 threads
|
||||
mpirun -np 4 lmp_mpi -sf omp -pk omp 4 -in in.script # 4 MPI tasks, 4 threads/task
|
||||
@ -40,14 +39,11 @@ each MPI task running on a CPU.
|
||||
|
||||
The lines above illustrate how to include/build with the USER-OMP
|
||||
package in two steps, using the "make" command. Or how to do it with
|
||||
one command via the src/Make.py script, described in "Section
|
||||
2.4"_Section_start.html#start_4 of the manual. Type "Make.py -h" for
|
||||
help.
|
||||
one command as described in "Section 4"_Section_packages.html of the manual.
|
||||
|
||||
Note that the CCFLAGS and LINKFLAGS settings in Makefile.machine must
|
||||
include "-fopenmp". Likewise, if you use an Intel compiler, the
|
||||
CCFLAGS setting must include "-restrict". The Make.py command will
|
||||
add these automatically.
|
||||
CCFLAGS setting must include "-restrict".
|
||||
|
||||
[Run with the USER-OMP package from the command line:]
|
||||
|
||||
@ -62,14 +58,14 @@ threads/task should not exceed the physical number of cores (on a
|
||||
node), otherwise performance will suffer.
|
||||
|
||||
As in the lines above, use the "-sf omp" "command-line
|
||||
switch"_Section_start.html#start_7, which will automatically append
|
||||
switch"_Section_start.html#start_6, which will automatically append
|
||||
"omp" to styles that support it. The "-sf omp" switch also issues a
|
||||
default "package omp 0"_package.html command, which will set the
|
||||
number of threads per MPI task via the OMP_NUM_THREADS environment
|
||||
variable.
|
||||
|
||||
You can also use the "-pk omp Nt" "command-line
|
||||
switch"_Section_start.html#start_7, to explicitly set Nt = # of OpenMP
|
||||
switch"_Section_start.html#start_6, to explicitly set Nt = # of OpenMP
|
||||
threads per MPI task to use, as well as additional options. Its
|
||||
syntax is the same as the "package omp"_package.html command whose doc
|
||||
page gives details, including the default values used if it is not
|
||||
|
||||
@ -21,8 +21,7 @@ Here is a quick overview of how to use the OPT package. More details
|
||||
follow.
|
||||
|
||||
make yes-opt
|
||||
make mpi # build with the OPT package
|
||||
Make.py -v -p opt -o mpi -a file mpi # or one-line build via Make.py :pre
|
||||
make mpi # build with the OPT package :pre
|
||||
|
||||
lmp_mpi -sf opt -in in.script # run in serial
|
||||
mpirun -np 4 lmp_mpi -sf opt -in in.script # run in parallel :pre
|
||||
@ -35,18 +34,15 @@ None.
|
||||
|
||||
The lines above illustrate how to build LAMMPS with the OPT package in
|
||||
two steps, using the "make" command. Or how to do it with one command
|
||||
via the src/Make.py script, described in "Section
|
||||
2.4"_Section_start.html#start_4 of the manual. Type "Make.py -h" for
|
||||
help.
|
||||
as described in "Section 4"_Section_packages.html of the manual.
|
||||
|
||||
Note that if you use an Intel compiler to build with the OPT package,
|
||||
the CCFLAGS setting in your Makefile.machine must include "-restrict".
|
||||
The Make.py command will add this automatically.
|
||||
|
||||
[Run with the OPT package from the command line:]
|
||||
|
||||
As in the lines above, use the "-sf opt" "command-line
|
||||
switch"_Section_start.html#start_7, which will automatically append
|
||||
switch"_Section_start.html#start_6, which will automatically append
|
||||
"opt" to styles that support it.
|
||||
|
||||
[Or run with the OPT package by editing an input script:]
|
||||
|
||||
@ -63,7 +63,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -94,7 +94,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -50,7 +50,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -55,7 +55,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -63,7 +63,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -53,7 +53,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -65,7 +65,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -55,7 +55,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -51,7 +51,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -50,7 +50,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -57,7 +57,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -57,7 +57,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -136,7 +136,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -394,7 +394,7 @@ weights. It assigns the same weight to each particle owned by a
|
||||
processor based on the total computational time spent by that
|
||||
processor. See details below on what time window is used. It uses
|
||||
the same timing information as is used for the "MPI task timing
|
||||
breakdown"_Section_start.html#start_8, namely, for sections {Pair},
|
||||
breakdown"_Section_start.html#start_7, namely, for sections {Pair},
|
||||
{Bond}, {Kspace}, and {Neigh}. The time spent in those portions of
|
||||
the timestep are measured for each MPI rank, summed, then divided by
|
||||
the number of particles owned by that processor. I.e. the weight is
|
||||
|
||||
@ -56,7 +56,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -59,7 +59,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -62,7 +62,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -54,7 +54,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -55,7 +55,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -55,7 +55,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -53,7 +53,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -53,7 +53,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -88,7 +88,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -133,7 +133,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -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).
|
||||
@ -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
|
||||
|
||||
@ -117,7 +117,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -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
|
||||
|
||||
@ -180,9 +180,18 @@ will register an arbitrarily large spike at whatever distance they
|
||||
happen to be at, and zero everywhere else. Coord(r) will show a step
|
||||
change from zero to one at the location of the spike in g(r).
|
||||
|
||||
NOTE: compute rdf can handle dynamic groups and systems where atoms
|
||||
are added or removed, but this causes that certain normalization
|
||||
parameters need to be recomputed in every step and include collective
|
||||
communication operations. This will reduce performance and limit
|
||||
parallel efficiency and scaling. For systems, where only the type
|
||||
of atoms changes (e.g. when using "fix atom/swap"_fix_atom_swap.html),
|
||||
you need to explicitly request the dynamic normalization updates
|
||||
via "compute_modify dynamic yes"_compute_modify.html
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"fix ave/time"_fix_ave_time.html
|
||||
"fix ave/time"_fix_ave_time.html, "compute_modify"_compute_modify.html
|
||||
|
||||
[Default:]
|
||||
|
||||
|
||||
@ -231,11 +231,12 @@ 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
|
||||
a matrix of quantities that are products of two bispectrum components. If the
|
||||
number of bispectrum components is {K}, then the number of matrix elements
|
||||
is {K}^2. These are output in subblocks of {K}^2 columns, using the same
|
||||
ordering of columns and sub-blocks as was used for the bispectrum
|
||||
components.
|
||||
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
|
||||
|
||||
@ -79,7 +79,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -86,7 +86,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -217,7 +217,7 @@ This compute is part of the VORONOI 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.
|
||||
|
||||
It also requiers you have a copy of the Voro++ library built and
|
||||
It also requires you have a copy of the Voro++ library built and
|
||||
installed on your system. See instructions on obtaining and
|
||||
installing the Voro++ software in the src/VORONOI/README file.
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
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 :ul
|
||||
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.
|
||||
|
||||
@ -128,7 +128,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
@ -138,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.
|
||||
|
||||
|
||||
@ -153,7 +153,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -64,7 +64,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -55,7 +55,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -65,7 +65,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -58,7 +58,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -52,7 +52,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -52,7 +52,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -60,7 +60,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -53,7 +53,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||
@ -18,6 +18,7 @@ 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:]
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -24,7 +24,7 @@ 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 global c_thermo_pe c_thermo_temp c_thermo_press
|
||||
dump_modify 1 append yes at -1 thermo yes
|
||||
dump 1 all netcdf/mpiio 1000 traj.nc id type x y z :pre
|
||||
|
||||
[Description:]
|
||||
@ -44,7 +44,7 @@ rank.
|
||||
NetCDF files can be directly visualized via the following tools:
|
||||
|
||||
Ovito (http://www.ovito.org/). Ovito supports the AMBER convention and
|
||||
all of the above extensions. :ule,b
|
||||
all extensions of this dump style. :ule,b
|
||||
|
||||
VMD (http://www.ks.uiuc.edu/Research/vmd/). :l
|
||||
|
||||
@ -52,15 +52,9 @@ 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, global data can be included in the dump
|
||||
file, which are the kinds of values output by the
|
||||
"thermo_style"_thermo_style.html command . See "Section howto
|
||||
6.15"_Section_howto.html#howto_15 for an explanation of per-atom
|
||||
versus global data. The global output written into the dump file can
|
||||
be from computes, fixes, or variables, by prefixing the compute/fix ID
|
||||
or variable name with "c_" or "f_" or "v_" respectively, as in the
|
||||
example above. These global values are specified via the "dump_modify
|
||||
global"_dump_modify.html command.
|
||||
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/)
|
||||
|
||||
@ -26,7 +26,7 @@ command to the screen and/or log file as it is read and processed. If
|
||||
an input script has errors, it can be useful to look at echoed output
|
||||
to see the last command processed.
|
||||
|
||||
The "command-line switch"_Section_start.html#start_5 -echo can be used
|
||||
The "command-line switch"_Section_start.html#start_6 -echo can be used
|
||||
in place of this command.
|
||||
|
||||
[Restrictions:] none
|
||||
|
||||
@ -47,7 +47,7 @@ keyword = {scale} or {reset} :l
|
||||
fix 1 all adapt 1 pair soft a 1 1 v_prefactor
|
||||
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
|
||||
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
|
||||
|
||||
@ -117,7 +117,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
You can specify the accelerated styles explicitly in your input script
|
||||
by including their suffix, or you can use the "-suffix command-line
|
||||
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
||||
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
|
||||
use the "suffix"_suffix.html command in your input script.
|
||||
|
||||
See "Section 5"_Section_accelerate.html of the manual for
|
||||
|
||||