Compare commits
1272 Commits
patch_24Ju
...
patch_5Feb
| Author | SHA1 | Date | |
|---|---|---|---|
| 7e78738c73 | |||
| fa4c7fc664 | |||
| 401bfc52e1 | |||
| 984fda5e78 | |||
| 196b3c81ef | |||
| f4a79b4d8e | |||
| 7441b062e9 | |||
| 10d80ba9c3 | |||
| 5383035828 | |||
| dc4dd1591f | |||
| e4a1826dee | |||
| 160edc9532 | |||
| 553b3ff69a | |||
| 2913d3da60 | |||
| 4af14becb5 | |||
| 85fdf9eaba | |||
| 2ff278defa | |||
| bfcb71a8be | |||
| c3d1cee5f9 | |||
| 3e0cb9b463 | |||
| b70149e86a | |||
| 080ce422ae | |||
| cc54848f7b | |||
| 090ce7cecb | |||
| 3bc1c6b59e | |||
| 38715d7f85 | |||
| 54a3096278 | |||
| 17d98d0915 | |||
| 9cf4ac8b7c | |||
| 4e4fd5f07c | |||
| 9fd1e47968 | |||
| 6753977837 | |||
| 031812b2bf | |||
| cf8dae5ef3 | |||
| ba68548e38 | |||
| 448c9c8d8a | |||
| d2da49cdf9 | |||
| e72faf3d7f | |||
| 3f967e3d84 | |||
| 5212e95787 | |||
| f7e2bf239f | |||
| a802b750a6 | |||
| 9bb7f1ddf6 | |||
| 5e9d257ec2 | |||
| 415a55bc3e | |||
| e1e6825eb2 | |||
| 88a2f9fcc6 | |||
| 480d7dd6ce | |||
| 9b12984378 | |||
| 8d29f64236 | |||
| 1b91c0eab0 | |||
| 0c8af0704e | |||
| f1901237be | |||
| 0cd864134d | |||
| bf48f3e240 | |||
| 23dda3d51b | |||
| 5d254855eb | |||
| 9a70f2d182 | |||
| b95cf658c7 | |||
| 709ce8a230 | |||
| 2ad823ffd4 | |||
| 4c0cd5f1ad | |||
| 8d37c89cb6 | |||
| 21ff4407ab | |||
| f2c0c4a7d1 | |||
| 1640066132 | |||
| 3b1ec14a68 | |||
| 01cfb710ff | |||
| 3de39c70c1 | |||
| 86ed55599d | |||
| e798cdf31f | |||
| 97dd812647 | |||
| e07a6d1e34 | |||
| 6e37272c9d | |||
| 6bd6e62767 | |||
| 57dd6c78c1 | |||
| 9e413bf57a | |||
| b374813104 | |||
| 07ddb5e62c | |||
| 72b479d42e | |||
| c8b5d83cc7 | |||
| a5998179bf | |||
| 26d6f6d1f1 | |||
| f37f4f0041 | |||
| d2983caad4 | |||
| 2b7c233791 | |||
| 9e35e76b8c | |||
| 7a78875911 | |||
| 1cfc3118cc | |||
| 23e8fb0542 | |||
| 72eb2dab52 | |||
| f6075c9d2c | |||
| 24f1889b02 | |||
| dea8d592da | |||
| 52d3e98f3b | |||
| 6e3acce3be | |||
| 1ec54827d6 | |||
| 61ebf6265a | |||
| 190cc78034 | |||
| 5863f115dd | |||
| 75d259f5ee | |||
| 3b1b9a2cbf | |||
| 17b6a4c3cd | |||
| 1c10c78684 | |||
| 26917280be | |||
| 45674e6cd3 | |||
| 22d2d1cdf3 | |||
| 0d7bee40ae | |||
| db1ed32a51 | |||
| d7d087ae67 | |||
| 92e2df74c1 | |||
| 92742c5373 | |||
| 2047ae76e3 | |||
| 4adbb882b3 | |||
| 275c08453f | |||
| 91107cc1f3 | |||
| e26c170679 | |||
| 1bd9e175e9 | |||
| 9e9cfe5869 | |||
| 85ff0c1e46 | |||
| cc9b6118b8 | |||
| 09bed0c09a | |||
| 1b51efd6b8 | |||
| 8888b05b18 | |||
| 3bb8294f31 | |||
| 450c689ae9 | |||
| a5d401e164 | |||
| b96100c0b7 | |||
| 2690075405 | |||
| f77483e437 | |||
| 11cddd8798 | |||
| 09ca7b32fc | |||
| 3af389e6cf | |||
| 46217db8a5 | |||
| d6d7dde653 | |||
| 6070182f06 | |||
| 6c058fb56c | |||
| 91993b236d | |||
| 5ecc3ce366 | |||
| 75f1a4f3f0 | |||
| ffc74fca6c | |||
| 2896df2140 | |||
| c333401e72 | |||
| a9e9a2046b | |||
| d4f45f4f85 | |||
| 7d07baa8ad | |||
| b9184ef441 | |||
| ff2b61354d | |||
| 18acc6ae47 | |||
| 56e633a2cf | |||
| 798d68c607 | |||
| 46fe0a968b | |||
| 00a9672524 | |||
| a2756db66b | |||
| da83feb8ca | |||
| a7bc3ed391 | |||
| 68cf6941e1 | |||
| 73c55ac4d1 | |||
| 2a131d1416 | |||
| bcc5f49d0b | |||
| 950bfb84a9 | |||
| 4d725c3153 | |||
| 10fa54b2fd | |||
| 8a36cdc6bc | |||
| e5cd068cd5 | |||
| cec22dda92 | |||
| 9a71efc5d5 | |||
| 2f857c6eda | |||
| 8a93f63de9 | |||
| 193252275f | |||
| 5968850306 | |||
| 3291a4fe96 | |||
| 1b07a4edee | |||
| 0edad83b25 | |||
| 81a1c007ed | |||
| 0b51e9b2ff | |||
| 4b1bcaa1ae | |||
| ed8680d695 | |||
| 29df5a536f | |||
| d029cb9002 | |||
| 3e99d1a83a | |||
| c4e83be533 | |||
| d7e5d60f90 | |||
| 5179efd2bb | |||
| abb2fe5be7 | |||
| bae45e2493 | |||
| 73d509f339 | |||
| fa0c28b717 | |||
| bc3a84b480 | |||
| 4d915dba08 | |||
| f64544a5fe | |||
| fc742eb2ef | |||
| 1baecc689e | |||
| d916416cc5 | |||
| 2813923f15 | |||
| 4a3a6b4455 | |||
| f8891a4451 | |||
| 51688b2504 | |||
| 93be2d264e | |||
| b9fd1156b2 | |||
| bbfe16782b | |||
| 1931d2088a | |||
| 5d9a6c1fe2 | |||
| e7f97728c3 | |||
| 58ed92d905 | |||
| 14aa036f36 | |||
| 42e03da70c | |||
| 5d2e097b27 | |||
| da51a8a0bb | |||
| 80dffb27e2 | |||
| 5b33f153f4 | |||
| 31eb12920c | |||
| 31f2ca1e4c | |||
| 15a3364c2c | |||
| c3aa705d04 | |||
| 8c2d38c7e9 | |||
| e3b961b622 | |||
| 319508bd29 | |||
| 6f7bd78ea2 | |||
| 5647522906 | |||
| e4b14213b4 | |||
| fa6fc947f2 | |||
| e1189381e0 | |||
| 39d24ab7eb | |||
| 5770a20e2c | |||
| 83ec9815fe | |||
| 90ee52296b | |||
| f02eb225c6 | |||
| a111cf640a | |||
| e755a8339d | |||
| f7f6a15ac0 | |||
| 36b7aa73aa | |||
| 9a5723123f | |||
| 7d07f062b6 | |||
| f3ed148828 | |||
| 5ba80662c3 | |||
| 53c1558271 | |||
| 8e5d4fa891 | |||
| ec067bde36 | |||
| adbc75cae6 | |||
| dde94c28a7 | |||
| f2dc764d1d | |||
| c4c59b909e | |||
| e2e21f0661 | |||
| 6abf68f614 | |||
| a97553a92e | |||
| dbd4acc4d6 | |||
| 40e776ebc6 | |||
| f043212511 | |||
| 4342bcdafc | |||
| 2e40c00995 | |||
| f39c6213e1 | |||
| 88474fc5c2 | |||
| 16b5315845 | |||
| e337db4059 | |||
| ba43465268 | |||
| 09c61ca598 | |||
| 0f971bf07c | |||
| 5a8c5eb479 | |||
| aa0d6cd75b | |||
| b34000a5e1 | |||
| 279339ebd0 | |||
| 605fe53c07 | |||
| 65b77230fd | |||
| 91e4bcca33 | |||
| 7ef17efe2e | |||
| 8a804460f9 | |||
| f6658d10b7 | |||
| f4d0aa3393 | |||
| 99a6c6edb4 | |||
| a26ffc7ff7 | |||
| b002e071e7 | |||
| 9f44e3e5b0 | |||
| e79cd6c62c | |||
| 82c6fd609e | |||
| 2dbb44f2c6 | |||
| d1630bbe34 | |||
| 941ee565a1 | |||
| b63acf6843 | |||
| 41c25877e8 | |||
| 39df9f5d94 | |||
| 68d04119d3 | |||
| 0148c2ac81 | |||
| 253a17b6d0 | |||
| a7ad12491f | |||
| 2137be3219 | |||
| ce78f6943d | |||
| 998aedc6c1 | |||
| 0a02c3c78c | |||
| aaf5e87c84 | |||
| 2d0f5e277c | |||
| 260bbc6f9f | |||
| 6b34a30528 | |||
| 83c7d3a1d2 | |||
| 961b976374 | |||
| ac6434e496 | |||
| f479f02589 | |||
| e284545c5b | |||
| e368acdaeb | |||
| 6e7504f153 | |||
| 71c4edda51 | |||
| 40147a7a64 | |||
| f709a723cd | |||
| 6dd55e49cb | |||
| 281b1dc375 | |||
| e93f8f8889 | |||
| 35f2cfa0bf | |||
| e44196c011 | |||
| 2fe1d1b904 | |||
| b1b4a52b14 | |||
| 382de50341 | |||
| 7dfc6b7eab | |||
| 19eb5d3897 | |||
| 17c17ac409 | |||
| 39ededd46c | |||
| 2c7528811d | |||
| 0966e14e73 | |||
| bb141aaae0 | |||
| 374d619769 | |||
| 59de1a71c8 | |||
| 4c6779cb0d | |||
| 5fb5f70ec6 | |||
| b0bba1976b | |||
| f8f13d929f | |||
| 3e89b270fd | |||
| f6ddc8c7c9 | |||
| a973c65d67 | |||
| 1a200588bd | |||
| 18ca2292c2 | |||
| d3ef4bd594 | |||
| 3df9caf435 | |||
| fa2e5ac2d9 | |||
| b7c7492608 | |||
| cee94da85e | |||
| 45aa7de171 | |||
| 53aa92cfaf | |||
| 7e35042c42 | |||
| 01051e4cb1 | |||
| d90aad887e | |||
| 775a15b9da | |||
| 93c9a92743 | |||
| 14dc1c698c | |||
| a1f5693fe0 | |||
| 534b7adde4 | |||
| 02646100e9 | |||
| 7e58f084d2 | |||
| 0f5d7dcc0f | |||
| b6187173e6 | |||
| 88a33edb50 | |||
| 6820db99e2 | |||
| 58e1969de2 | |||
| e91e505fb3 | |||
| f7cbdcf995 | |||
| 4cfa88b70f | |||
| 352a20fc1c | |||
| dc0e20947e | |||
| 05847a0e87 | |||
| 439c2fd980 | |||
| 15853a0e38 | |||
| bd17ee5df7 | |||
| a9b7ff1154 | |||
| 0dd7ba26c0 | |||
| 7a90eef527 | |||
| 5d0626e50e | |||
| 4b7ca0383a | |||
| 0ed987dc61 | |||
| 55a3fdca80 | |||
| 214c0cfb2b | |||
| e0efdd50fa | |||
| 44d2e8ff74 | |||
| 6bf2c60c07 | |||
| eecd2fbaee | |||
| 2b0bfcb10f | |||
| 3653f40120 | |||
| bda0ee3aa1 | |||
| 957263431a | |||
| f12031f84d | |||
| c522b1b7a9 | |||
| a55adf4a68 | |||
| 2876baafd0 | |||
| ca032f21fb | |||
| 197f082784 | |||
| 1bb7af9ef9 | |||
| 251f28049a | |||
| f07719e924 | |||
| 5f527091b8 | |||
| 30aaa7e47b | |||
| 74dcf0bf9b | |||
| e9b07a7a10 | |||
| fd8f5f8f9e | |||
| 5c59eb637b | |||
| 250ef9f837 | |||
| e44f370d49 | |||
| 1e790fbafe | |||
| 35cc795972 | |||
| 245bf74552 | |||
| 7e8bbe8481 | |||
| e6d687faac | |||
| 8a2cf5ce8e | |||
| 8f79f5ddb9 | |||
| 40ae6f215b | |||
| 4dcc49ebe2 | |||
| fe14eeccac | |||
| 9dc42fd4db | |||
| 5e89269631 | |||
| 11eed234f0 | |||
| af1fc45db0 | |||
| b34109af60 | |||
| 1dffb0cf82 | |||
| 588b2534c9 | |||
| d2aa05cb36 | |||
| 466fde6443 | |||
| 2a24cbfe0c | |||
| 00aef0fe00 | |||
| 92d9b361fc | |||
| 8acdc8020d | |||
| cc09a633a2 | |||
| 81be9b37de | |||
| 0c7879e902 | |||
| 8d384b9149 | |||
| 529eeb6039 | |||
| cf24dd0265 | |||
| a7b0d1f521 | |||
| fbe42cda2d | |||
| da7be99cc4 | |||
| 56d21bfb05 | |||
| 100231bba8 | |||
| 84378f8ae2 | |||
| 6e342d2e45 | |||
| 091d058090 | |||
| 4c71beb024 | |||
| a86572f4fc | |||
| 4524b0fa83 | |||
| 4ef63feea7 | |||
| 9f2740b7f1 | |||
| 2a06b75af8 | |||
| d7aac2fed5 | |||
| d898afaafb | |||
| c66ddf9ac0 | |||
| a64040ce2d | |||
| 480b087c93 | |||
| 0029583463 | |||
| c0f1a32661 | |||
| 80898b8695 | |||
| 855b6000ef | |||
| 285a123c90 | |||
| 0f52dd7c5f | |||
| 10d1741e7f | |||
| d11733d3a0 | |||
| 348c4eb7f3 | |||
| 75b3f34a58 | |||
| fe80c57bde | |||
| e49f0e396b | |||
| 37e55a825b | |||
| 67e48264d9 | |||
| 4e1eeca869 | |||
| 2fda041972 | |||
| 34c1adb4dd | |||
| 23e283f135 | |||
| de45fa6e71 | |||
| bfdc4acb8b | |||
| fd3ecd0481 | |||
| 8bba6d3e8c | |||
| 53e4ee4f2d | |||
| b60cff7e77 | |||
| 38530415c8 | |||
| 0573aaa6da | |||
| e6969002ce | |||
| 0448bc9caf | |||
| 836a6d292c | |||
| 32e0de7a67 | |||
| 789812ec3d | |||
| 88a882b457 | |||
| f1aea57e30 | |||
| b35f2ff8b4 | |||
| 4beccf508f | |||
| 78a486c0fd | |||
| f2c1172741 | |||
| d6316c40d9 | |||
| bcde318ccb | |||
| 3ed39ca844 | |||
| ee487ef4aa | |||
| a8ae886667 | |||
| fe8244c1c2 | |||
| 3381a43378 | |||
| 73708b091c | |||
| 9a9af2ca5e | |||
| 491d5f3410 | |||
| 5e35ab251b | |||
| d708e34ba6 | |||
| 638b91bf74 | |||
| ad25a95297 | |||
| e7d042ba1a | |||
| dd49d54889 | |||
| fbaa7ab8fa | |||
| 2e9803efb3 | |||
| 59d2e13d48 | |||
| 76d93f21dd | |||
| ac897ea645 | |||
| 19f1f3a3e0 | |||
| be96486d66 | |||
| 48dd824b26 | |||
| cdb6ec7419 | |||
| aad8cd10ff | |||
| 1ac90815f3 | |||
| 5f1842829e | |||
| 66130f5557 | |||
| 388eab5eeb | |||
| a500048c9c | |||
| b4ecad7fbf | |||
| b5894e2190 | |||
| 6f1935ea40 | |||
| 02665e45a4 | |||
| cc2a53a8da | |||
| d614d56c34 | |||
| 39daf3c6f6 | |||
| 17aeccf19f | |||
| d101fe3e79 | |||
| 27f99534ec | |||
| 5f6937dadd | |||
| 3b39694f23 | |||
| 99e5dc7104 | |||
| ccb67d8dc5 | |||
| 2cd7cbd964 | |||
| 8776b81033 | |||
| f1fce64ff9 | |||
| da7776f818 | |||
| 66f59f9ec0 | |||
| d84825fd7f | |||
| f971cd6e45 | |||
| 0cb3a3821f | |||
| e927794696 | |||
| e196a2b9e5 | |||
| cb19ef547e | |||
| 95d8492853 | |||
| b3547a9eca | |||
| 84b84c10db | |||
| 0be7f46750 | |||
| 4738fedca3 | |||
| 1601433ca1 | |||
| 3fdb6f10fa | |||
| ff18cff46b | |||
| 8a06a7bc6b | |||
| b861ea342e | |||
| fce633aa5f | |||
| 2f6be88c4a | |||
| 7b1542a0ba | |||
| 366d087027 | |||
| 3a5d8362ff | |||
| 5089b263b2 | |||
| de8297ea19 | |||
| fe557cb882 | |||
| c80203cb01 | |||
| 4161868bcf | |||
| 9ca39c89a6 | |||
| 99791ce01c | |||
| 0248a7b98e | |||
| dbc60d949f | |||
| d886cc91f3 | |||
| 4c5d901e2b | |||
| c8f92c1a61 | |||
| dec1d7b2dc | |||
| 45602e58f9 | |||
| cd72532fb9 | |||
| b170606052 | |||
| 65b295e826 | |||
| 89a0bc947f | |||
| c8967a335f | |||
| 2105145f55 | |||
| f7715ab6ce | |||
| 12fe614ddf | |||
| 0b5a2e199d | |||
| 09bb687918 | |||
| bb3ee752e5 | |||
| 6b2d321d18 | |||
| 2b9646097c | |||
| f58088ae61 | |||
| 397bc225b2 | |||
| d9d9ba8244 | |||
| eba4be18c2 | |||
| 4d2ed30b35 | |||
| f3dda30f8e | |||
| d95a5f219e | |||
| a5b65c1af4 | |||
| 3e6cdd1400 | |||
| dc7f1281b8 | |||
| 27c962dc3b | |||
| 2dd202cc76 | |||
| f2d8c37f27 | |||
| a4a45f1d9c | |||
| f57d194920 | |||
| 34b3fc2157 | |||
| 098861375b | |||
| 19b77857dc | |||
| bd9dc4886d | |||
| 9207f6540e | |||
| 736e063971 | |||
| 62928a1637 | |||
| c8dfe0c3de | |||
| 6a4bbddb3b | |||
| 2add18e013 | |||
| d0efd3a422 | |||
| f47cc0aab5 | |||
| 57872c8b60 | |||
| 4bff008777 | |||
| 153c771a6d | |||
| 313b8bc2fa | |||
| 5308ee67fa | |||
| c196025ea9 | |||
| bc11868986 | |||
| e4415735f2 | |||
| 98f27162ba | |||
| bdc117bf10 | |||
| b7ec720f91 | |||
| 47f16c0d70 | |||
| 76926b7fcf | |||
| 67ae2719a8 | |||
| 21893539cb | |||
| dd101db79c | |||
| 81ba181349 | |||
| e52a28f8af | |||
| 01dd0e173e | |||
| 1f8c4f2c62 | |||
| b73999ef21 | |||
| 1e16fed9ab | |||
| a062944de9 | |||
| a641289d5b | |||
| 6195b3c0f6 | |||
| de0fdbed6c | |||
| dea92fbf52 | |||
| 6db3bd87ee | |||
| e55fa9d320 | |||
| cbf3646806 | |||
| f5a99dece7 | |||
| 4784506ba9 | |||
| 270abff2a2 | |||
| b6c93f96cf | |||
| 7b7a5076d0 | |||
| 1536eb5de5 | |||
| f7a0a6eb70 | |||
| d80a6cbd31 | |||
| c4b37039ab | |||
| b52efa2850 | |||
| e88ff8d6f9 | |||
| 97edf90a73 | |||
| 12150ffa73 | |||
| 57aafba7c3 | |||
| cdfb1aa043 | |||
| b80752a40c | |||
| 79d5ca669d | |||
| 26c15140be | |||
| 5c985946d5 | |||
| 090c792d90 | |||
| c5ccbbeea7 | |||
| e2a1b666be | |||
| ad0ecfa507 | |||
| cf3f15b0a5 | |||
| 5fcc19777c | |||
| 1f4c550f9f | |||
| 24c00b1f7a | |||
| 5a0c3aea8a | |||
| c8aa06b959 | |||
| bdccdbf2c2 | |||
| 6d86697b3f | |||
| d1a0c040c9 | |||
| 892a3f8609 | |||
| de5883b7bb | |||
| b1615d1839 | |||
| aef2416ece | |||
| 00a78cfa1a | |||
| f5b8f722ee | |||
| 39e51df2c0 | |||
| c895df73d6 | |||
| 4dc1195cd8 | |||
| 35fd82b602 | |||
| c5ce3ffe60 | |||
| c9d41dbb47 | |||
| 1a80d4bc13 | |||
| aa1ce09b12 | |||
| f945d4567d | |||
| 44ccdb86df | |||
| 2e6a928aa3 | |||
| 6f66e6c454 | |||
| 822bffdfae | |||
| 6aa756968d | |||
| d671a04274 | |||
| bf7cff73d4 | |||
| 9e85b3178a | |||
| b11fe2eddb | |||
| 7ddcb6812b | |||
| 76cd61350d | |||
| fa3c0c61d6 | |||
| c46d5ff422 | |||
| dd67989c76 | |||
| 00aafef1a8 | |||
| 7175abcc71 | |||
| e34b20405c | |||
| 1d4d2155a2 | |||
| cee87d7a54 | |||
| 60e14f1490 | |||
| 81e7d4a942 | |||
| 13b804eeeb | |||
| 0b3f1b8a15 | |||
| 4041db8d1a | |||
| b209a4e246 | |||
| 27553283c3 | |||
| df56b2d6a4 | |||
| c6d923b6c8 | |||
| 6d24be8bb7 | |||
| 52bec0f380 | |||
| 8c16ea1bfc | |||
| c8741f3a01 | |||
| 2a7d2dee36 | |||
| 378989e065 | |||
| f68c6254d4 | |||
| da01be7c18 | |||
| 146aa4cdbd | |||
| 2f3747eb6e | |||
| 2bc6ad80d4 | |||
| f9a515efd3 | |||
| 5b55744209 | |||
| 0dc3cbaa8a | |||
| ce62c41252 | |||
| 4e97b57508 | |||
| 7f437d7690 | |||
| 77a628e4ef | |||
| f01103dd08 | |||
| 81f4d7ecb5 | |||
| 210a77c5a0 | |||
| e86b139817 | |||
| 3e9b41c6b7 | |||
| 6780c73907 | |||
| be25a7d9a4 | |||
| 691d1b730d | |||
| 95ece8a6c0 | |||
| b7b1257b01 | |||
| 30431d4edb | |||
| 8a7a831bd6 | |||
| c53a84a967 | |||
| b7b62f6893 | |||
| d2b0c287d2 | |||
| b3244f9c98 | |||
| 8bba29d91e | |||
| 135b1650f1 | |||
| 0a54c34e34 | |||
| a8f6a95cba | |||
| e0f9a7c34c | |||
| aaf17bde3f | |||
| 5ad8a3332d | |||
| ca7a3a6316 | |||
| 163ed27618 | |||
| 23ca0099f7 | |||
| 59ac6ef573 | |||
| 2fa16bcd4c | |||
| e84b6d8067 | |||
| 96d3712817 | |||
| b395ef00b4 | |||
| 5cd1dc93dc | |||
| d3169eeab3 | |||
| 71553cf732 | |||
| 93190a548a | |||
| 72f50c91ee | |||
| 408d9d99a9 | |||
| 8431ca5fec | |||
| 13f2d39f55 | |||
| 9bfd9267fa | |||
| 7d0d701eaf | |||
| 841a92c7fa | |||
| 85120842dd | |||
| 3ebf561e0d | |||
| ffb778cf9b | |||
| f3850da9fe | |||
| 7edb294b44 | |||
| e7d9aabca6 | |||
| 9695aa6092 | |||
| e3973796ba | |||
| c494ec35e2 | |||
| 6d0a228624 | |||
| 8e834d8be1 | |||
| 8f59c0e188 | |||
| acf6d54ec1 | |||
| 0427f6205e | |||
| 72419b6313 | |||
| da7a5f55d3 | |||
| 934cbbbeca | |||
| 2806f070a4 | |||
| 715c797df0 | |||
| fd6e11f821 | |||
| f7a243a4d9 | |||
| f0d286358e | |||
| 51a06334ad | |||
| aa5ea95a0f | |||
| 60c67b07dc | |||
| 0231cc38a3 | |||
| c3c9f357fd | |||
| 76fb4e0815 | |||
| d3fa882280 | |||
| 557e5b964a | |||
| 633ca33f2f | |||
| bc446bb8b0 | |||
| 6716de5320 | |||
| f2023431f6 | |||
| aa60ef6ed8 | |||
| a71f5a0c20 | |||
| 126d9cd3bc | |||
| 8d485ea128 | |||
| f4b6b67f6e | |||
| 8ed881947f | |||
| 74deeeca58 | |||
| c010edc4fd | |||
| 3d1d0c58c7 | |||
| e8e9ea8392 | |||
| 3449d42267 | |||
| c88d1e5510 | |||
| 427ca88dd4 | |||
| 1749d643c7 | |||
| f037f89f5f | |||
| d2f76ae394 | |||
| 84065dde21 | |||
| 488609a5fd | |||
| 01bcb79bdc | |||
| babba1870e | |||
| 355aad9691 | |||
| a99e3ef4f0 | |||
| c95db97b83 | |||
| ec42a60587 | |||
| f181a0bfab | |||
| 2961ba7ebb | |||
| e2ad4fa745 | |||
| acbc60319f | |||
| e6f5f77edf | |||
| 864fd9cd87 | |||
| 4d65c327f5 | |||
| 81f342aafa | |||
| c3d9786616 | |||
| 7ccb0d37cd | |||
| 03cd4c5255 | |||
| a9eaeb4d95 | |||
| 5cbaf7ca1d | |||
| 49b4cf9a77 | |||
| 49e6c2eb7d | |||
| 1b34bec81a | |||
| a92d792537 | |||
| 9df61b642e | |||
| 3c88b2a980 | |||
| 3c3baf34c4 | |||
| 8bc3184611 | |||
| 050a82af58 | |||
| 99f5f82b02 | |||
| a3885b78ad | |||
| 08c920029f | |||
| 2411192ab4 | |||
| 5ee2c31038 | |||
| 1c1a1db366 | |||
| 80e4448614 | |||
| 385c6f7f2b | |||
| fc1be074b2 | |||
| 7605f72c9a | |||
| 22ecd9b8d2 | |||
| 7dd5068740 | |||
| fa0f8a9e2a | |||
| d6f05ea309 | |||
| b6385d6ce2 | |||
| 2978cce8db | |||
| 9991f679ae | |||
| fc2e8b3c5e | |||
| bb87bd4ac7 | |||
| d50b62837b | |||
| c64424754d | |||
| c549a16a85 | |||
| 140182fb0b | |||
| 742eee1966 | |||
| 4812d4c659 | |||
| 95d9d32307 | |||
| f50a757dc6 | |||
| 01f5136584 | |||
| fa1f38596c | |||
| 23540cfc94 | |||
| fdb5ccefc7 | |||
| 629f112915 | |||
| acd315e97a | |||
| d7355801df | |||
| b15f75d37b | |||
| 5e841bfe15 | |||
| d079b2f758 | |||
| 54f2b02ac8 | |||
| 0a6e9c8bf6 | |||
| b85979503f | |||
| c7e218f310 | |||
| 335ef11a7b | |||
| 296e572e69 | |||
| d5dcb3d329 | |||
| c07adac22d | |||
| e4e1252152 | |||
| 842dc1b58c | |||
| 60faca2896 | |||
| a566419ca6 | |||
| fdd3d802f0 | |||
| a86b0d4c1b | |||
| 7f1789a0c4 | |||
| bfb449cec9 | |||
| 6b19016deb | |||
| cdac5f496c | |||
| 8c9db3ea00 | |||
| ea2b01e83b | |||
| 34fe2273f6 | |||
| 77c60189b8 | |||
| 1c6533e53d | |||
| 68206079da | |||
| ea4d11fc5e | |||
| 67a0183b33 | |||
| b96b6b9cd7 | |||
| da0dcbe0bb | |||
| 3c8e75ad59 | |||
| c51cadcc6c | |||
| 86497949f2 | |||
| b4b7310884 | |||
| 046900cd51 | |||
| 43cfa10ea4 | |||
| 6f24c58c1a | |||
| 611bb6f130 | |||
| 520ab26bd9 | |||
| efe60bf991 | |||
| 36cbe43978 | |||
| 2cf83d9fca | |||
| 6032b8846e | |||
| 98713680ec | |||
| ca4619e227 | |||
| 6c0b691882 | |||
| 035d0a80d7 | |||
| 178af2ec9e | |||
| 9e272cb393 | |||
| ad5481831f | |||
| 456926a321 | |||
| bceaa57614 | |||
| 4d4b6f66b7 | |||
| aedd7c57f3 | |||
| 2b2f3bd57c | |||
| c4c3d490c7 | |||
| e0021a3ff5 | |||
| ac4c35ce8d | |||
| ac64183ecf | |||
| 6ba59cb458 | |||
| fe82926c1f | |||
| 697b072552 | |||
| 5edbd63920 | |||
| bf4f0817d4 | |||
| 085958f065 | |||
| b3d6d9f8cf | |||
| 7041f75fce | |||
| 20ae05055d | |||
| 661bd37e15 | |||
| 0463923e33 | |||
| 28784a4ce2 | |||
| 5f0823172c | |||
| b418b46a03 | |||
| df95b2c566 | |||
| 969325bf44 | |||
| e598762857 | |||
| 8d793d4223 | |||
| 756c899564 | |||
| 3533df38d8 | |||
| f7bdf128ea | |||
| 7ed500e829 | |||
| 3c91f9734d | |||
| 4ad1c82fcf | |||
| ce94d7a4df | |||
| 2c93065786 | |||
| 20de98e898 | |||
| a68f3a93e5 | |||
| b3c46b7269 | |||
| fff43a4604 | |||
| 0cd3f0cd63 | |||
| 75670244bb | |||
| 64fdb1f528 | |||
| eb1a4d11dd | |||
| 1c749d5cf5 | |||
| a719f41426 | |||
| ba069fb755 | |||
| 4a7bc115cb | |||
| 5ea096d08c | |||
| ec192a95cb | |||
| f5b7361ef6 | |||
| acdb932c4e | |||
| ce9b3f4fcb | |||
| 7ebed717de | |||
| bdee2fa234 | |||
| bd7f4143e2 | |||
| f4a08ba4fc | |||
| 5925460a27 | |||
| d2cbfef13b | |||
| 4b4bc7dc3b | |||
| d5eceebf32 | |||
| b1b377cb59 | |||
| e908b8dbea | |||
| d6f6c6faf1 | |||
| 17c8e695a4 | |||
| c7eadfdefd | |||
| 6f71275db3 | |||
| 3298c37982 | |||
| 35e1cf1d6e | |||
| fc23f9cfe8 | |||
| 0ce5dc0234 | |||
| d01f09dce2 | |||
| de27305227 | |||
| 5b3101cb34 | |||
| b8c72c7bdb | |||
| 527a573026 | |||
| 3e3a24da48 | |||
| a7d1b571be | |||
| 4a6f27935d | |||
| a2c80d2cca | |||
| 886cc69dfb | |||
| 3e8cfb8247 | |||
| c2c22fc2ed | |||
| b35895ca12 | |||
| 635c448b61 | |||
| c1739cae97 | |||
| 0651ea7f69 | |||
| c468727db0 | |||
| a7e8550962 | |||
| 7e78921c96 | |||
| 27d6284ebe | |||
| f11b83ecd2 | |||
| 3820c5881d | |||
| 27d2e9bf56 | |||
| d95fbf3a5e | |||
| 5c6b0cc85c | |||
| 03c05537fb | |||
| 8210b25fb8 | |||
| 8c625a52de | |||
| ed089c34cf | |||
| 268e855a15 | |||
| 48ed963fd2 | |||
| 1025c25548 | |||
| 78a8f75a8f | |||
| 641bf72f20 | |||
| 6e26358ec3 | |||
| bf1794f59a | |||
| 0982331c71 | |||
| 3ae77e718a | |||
| b26a434a50 | |||
| 2b78ac2146 | |||
| 9736fb3be8 | |||
| a5507b291d | |||
| 3eba3e5a1b | |||
| e4b544f934 | |||
| 35ee24cfad | |||
| e4500859a3 | |||
| fd1523c756 | |||
| 21619b2976 | |||
| b053c367ea | |||
| c2e3a76225 | |||
| 6ea290a699 | |||
| c56e0692b9 | |||
| 71379487ab | |||
| f7a48719ad | |||
| a341a6bca9 | |||
| 2f04e87d07 | |||
| aecafecaa2 | |||
| 1db62a57b5 | |||
| 2dcbc805ba | |||
| b27cc8f474 | |||
| 8065d96761 | |||
| 01d0a5c4a2 | |||
| 5c6e7b12c6 | |||
| 19ffe59315 | |||
| 37810bdc53 | |||
| 7feb6c2853 | |||
| d1a0a3e1c3 | |||
| c2ee3285fc | |||
| 5289ec0b39 | |||
| e0bafa499d | |||
| 4b3197202b | |||
| ab32d136b9 | |||
| 151b3f552b | |||
| 52aaad907f | |||
| be166cb5bf | |||
| ee83b755ea | |||
| ce2da5068b | |||
| 641bb4bb16 | |||
| f73c9a43ab | |||
| 3dddeef365 | |||
| fb279a87f5 | |||
| e9d46f4e7a | |||
| e42678ed51 | |||
| ff2786c86c | |||
| 6384486764 | |||
| 0512e78860 | |||
| 2db66e49b4 | |||
| e76cad358b | |||
| 0a751c5901 | |||
| 83988a1026 | |||
| acc5bde0fe | |||
| 799d55e097 | |||
| 4e9c8f4962 | |||
| 2f32c1a9af | |||
| 4ac7a5d1f2 | |||
| 93d99ec8d0 | |||
| 4e8351d9c8 | |||
| f2d005fb8d | |||
| 0d57a1d831 | |||
| acba25c383 | |||
| 843f3a9192 | |||
| 2ea900df00 | |||
| 70fa9189a8 | |||
| 41d3903f5a | |||
| 43d61f313f | |||
| dc16228a60 | |||
| 96a43e8ef1 | |||
| dc9c2399b2 | |||
| b3e9006aef | |||
| a1f4551ac2 | |||
| f3c5919606 | |||
| ebe27c65e1 | |||
| 85c8db5f86 | |||
| be13ecfa17 | |||
| 6cc969db92 | |||
| 8050eb3aa8 | |||
| c617bc180a | |||
| 8e808f6c6b | |||
| 5897955e2e | |||
| f9bc81b924 | |||
| 0887ff1273 | |||
| 521f3df3d5 | |||
| 6d47cf350c | |||
| de6442d845 | |||
| 917ca19b34 | |||
| cf83ce4543 | |||
| 116ae9d0c4 | |||
| e05b132289 | |||
| 4f2fcee6df | |||
| 2d32fa8ccb | |||
| b38733e5a2 | |||
| 96636c7514 | |||
| 5569c4c130 | |||
| 8b4130c0cb | |||
| 91d68e26ef | |||
| 883385c8e4 | |||
| e3153e0b30 | |||
| 688df1c254 | |||
| 2b2998052c | |||
| dc1b94cdd2 | |||
| a42a666142 | |||
| f16f9393ef | |||
| 2a35fa7a4e | |||
| c15d6580da | |||
| 1ae53d59fa | |||
| aaa7dca21b | |||
| 6bd17be454 | |||
| 5b7ab135dd | |||
| 0635151e2d | |||
| cce10f6dff | |||
| 4dab6737ba | |||
| 0c3b942686 | |||
| f51ddf8450 | |||
| 3580e5409d | |||
| b7d0dc8440 | |||
| 52761aee0d | |||
| 5dcbbba4ce | |||
| fdb6b91e29 | |||
| 41804ff524 | |||
| c2bb20e60f | |||
| cb9fdf7801 | |||
| b5ff41f5ef | |||
| 6a9a0e8c33 | |||
| d65676e981 | |||
| 55aa91be6b | |||
| 5d5751be19 | |||
| e4673d7fa8 | |||
| c877c07491 | |||
| 4d5abe64d5 | |||
| afbc6fc628 | |||
| 21cde6261a | |||
| f995bb4335 | |||
| 6abefe7ef9 | |||
| 98c66089a9 | |||
| d26f1403cd | |||
| 1f6cfb1b31 | |||
| 001964ecd8 | |||
| 9807062594 | |||
| 26d50853e9 | |||
| 7201f003e5 | |||
| d8ddef37ed | |||
| ad1402562d | |||
| 70927d08e7 | |||
| a1ac2ae9b7 | |||
| 3941fe9ab7 | |||
| 318ab9a185 | |||
| 49d644ec3a | |||
| e5906dfba0 | |||
| 967cdd947e | |||
| 19f2d2d1ec | |||
| 332372dec2 | |||
| 8503ac22a8 | |||
| cc4040de10 | |||
| a4271ae8c5 | |||
| 79ed1b5258 | |||
| b5c7d44299 | |||
| fe3c98cdbb | |||
| 50df3da343 | |||
| ae0e882cde | |||
| 6d7607a6ad | |||
| e3ebd8e7f1 | |||
| dae132c770 | |||
| e632f8597a | |||
| 89795b3653 | |||
| 04e2f170a3 | |||
| 53e07996c6 | |||
| 66cdd3a708 | |||
| ccaa0506cb | |||
| f220b07625 | |||
| 2af10cb8da | |||
| cc1b55e031 | |||
| a36e563aa5 | |||
| a4ab877c46 | |||
| f6fe61196d | |||
| 163b61a32e | |||
| 26c21da45b | |||
| 807d9529da | |||
| 73326922d6 | |||
| 35803c75c9 | |||
| 07bee39002 | |||
| 889ee78f8b | |||
| f62a6fe5a5 | |||
| 6f51c3b75c | |||
| 99910fc432 | |||
| 000df6e1cf | |||
| 3f1f51c1c7 | |||
| 21bb603b93 | |||
| ac57f4721c | |||
| 5cae3eca8c | |||
| 8474453efd | |||
| cfa61b98ae | |||
| d93e3d1cee | |||
| f47a40b2e4 | |||
| a3c1d385e8 | |||
| d5f8f36442 | |||
| c0d6cbbdd3 | |||
| a58f7631c0 | |||
| a9d26b3f4a | |||
| cf4010474d | |||
| 766b3fa457 | |||
| ee4d1b340b | |||
| 07d9f9d66e | |||
| f209c8c129 | |||
| ef8d507338 | |||
| e59552c2ec | |||
| 7eb05b33fb | |||
| 3e2cd6d265 | |||
| 544e23f971 | |||
| 16b15a636c | |||
| d43bd57a40 | |||
| b912db5c73 | |||
| 765fe3cdfe | |||
| 031d4acde8 | |||
| d47c6b2761 | |||
| f93c62d3e2 | |||
| 1dbf6d443f | |||
| 5f78c2b6a5 | |||
| 45b85b1686 | |||
| 3f68d370b5 | |||
| 6e6776f396 | |||
| fe99fc287d | |||
| 6d94439cfe | |||
| 91e38720d5 | |||
| 7590791604 | |||
| 8f78157202 | |||
| 1d939231a4 | |||
| f040f15218 | |||
| f3d6ecf07b | |||
| 6f23f6535c |
21
.github/CODEOWNERS
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# This file contains file patterns that triggers automatic
|
||||||
|
# code review requests from users that are owners of these files
|
||||||
|
# Order matters, the last match has the highest precedence
|
||||||
|
|
||||||
|
# library folders
|
||||||
|
lib/colvars/* @giacomofiorin
|
||||||
|
lib/compress/* @akohlmey
|
||||||
|
lib/kokkos/* @stanmoore1
|
||||||
|
lib/molfile/* @akohlmey
|
||||||
|
lib/qmmm/* @akohlmey
|
||||||
|
lib/vtk/* @rbberger
|
||||||
|
|
||||||
|
# packages
|
||||||
|
src/KOKKOS @stanmoore1
|
||||||
|
src/USER-CGSDK @akohlmey
|
||||||
|
src/USER-COLVARS @giacomofiorin
|
||||||
|
src/USER-OMP @akohlmey
|
||||||
|
src/USER-QMMM @akohlmey
|
||||||
|
|
||||||
|
# tools
|
||||||
|
tools/msi2lmp/* @akohlmey
|
||||||
8
.gitignore
vendored
@ -32,3 +32,11 @@ log.cite
|
|||||||
.Trashes
|
.Trashes
|
||||||
ehthumbs.db
|
ehthumbs.db
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
|
|
||||||
|
#cmake
|
||||||
|
/build*
|
||||||
|
/CMakeCache.txt
|
||||||
|
/CMakeFiles/
|
||||||
|
/Makefile
|
||||||
|
/cmake_install.cmake
|
||||||
|
/lmp
|
||||||
|
|||||||
732
cmake/CMakeLists.txt
Normal file
@ -0,0 +1,732 @@
|
|||||||
|
########################################
|
||||||
|
# CMake build system
|
||||||
|
# This file is part of LAMMPS
|
||||||
|
# Created by Christoph Junghans and Richard Berger
|
||||||
|
cmake_minimum_required(VERSION 3.1)
|
||||||
|
|
||||||
|
project(lammps)
|
||||||
|
set(SOVERSION 0)
|
||||||
|
set(LAMMPS_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../src)
|
||||||
|
set(LAMMPS_LIB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib)
|
||||||
|
set(LAMMPS_LIB_BINARY_DIR ${CMAKE_BINARY_DIR}/lib)
|
||||||
|
|
||||||
|
#To not conflict with old Makefile build system, we build everything here
|
||||||
|
file(GLOB LIB_SOURCES ${LAMMPS_SOURCE_DIR}/*.cpp)
|
||||||
|
file(GLOB LMP_SOURCES ${LAMMPS_SOURCE_DIR}/main.cpp)
|
||||||
|
list(REMOVE_ITEM LIB_SOURCES ${LMP_SOURCES})
|
||||||
|
|
||||||
|
# Cmake modules/macros are in a subdirectory to keep this file cleaner
|
||||||
|
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules)
|
||||||
|
|
||||||
|
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CXX_FLAGS)
|
||||||
|
#release comes with -O3 by default
|
||||||
|
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
|
||||||
|
endif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CXX_FLAGS)
|
||||||
|
|
||||||
|
# remove any style headers in the src dir
|
||||||
|
file(GLOB SRC_STYLE_FILES ${LAMMPS_SOURCE_DIR}/style_*.h)
|
||||||
|
if(SRC_STYLE_FILES)
|
||||||
|
file(REMOVE ${SRC_STYLE_FILES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
enable_language(CXX)
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
# compiler tests
|
||||||
|
# these need ot be done early (before further tests).
|
||||||
|
#####################################################################
|
||||||
|
include(CheckCCompilerFlag)
|
||||||
|
|
||||||
|
if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
|
||||||
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -restrict")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# User input options #
|
||||||
|
########################################################################
|
||||||
|
option(BUILD_SHARED_LIBS "Build shared libs" OFF)
|
||||||
|
if(BUILD_SHARED_LIBS) # for all pkg libs, mpi_stubs and linalg
|
||||||
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
|
endif()
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
|
set(LAMMPS_LINK_LIBS)
|
||||||
|
set(LAMMPS_DEPS)
|
||||||
|
set(LAMMPS_API_DEFINES)
|
||||||
|
option(ENABLE_MPI "Build MPI version" OFF)
|
||||||
|
if(ENABLE_MPI)
|
||||||
|
find_package(MPI REQUIRED)
|
||||||
|
include_directories(${MPI_C_INCLUDE_PATH})
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS ${MPI_CXX_LIBRARIES})
|
||||||
|
option(LAMMPS_LONGLONG_TO_LONG "Workaround if your system or MPI version does not recognize 'long long' data types" OFF)
|
||||||
|
if(LAMMPS_LONGLONG_TO_LONG)
|
||||||
|
add_definitions(-DLAMMPS_LONGLONG_TO_LONG)
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
file(GLOB MPI_SOURCES ${LAMMPS_SOURCE_DIR}/STUBS/mpi.c)
|
||||||
|
add_library(mpi_stubs STATIC ${MPI_SOURCES})
|
||||||
|
include_directories(${LAMMPS_SOURCE_DIR}/STUBS)
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS mpi_stubs)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(LAMMPS_SIZE_LIMIT "LAMMPS_SMALLBIG" CACHE STRING "Lammps size limit")
|
||||||
|
set_property(CACHE LAMMPS_SIZE_LIMIT PROPERTY STRINGS LAMMPS_SMALLBIG LAMMPS_BIGBIG LAMMPS_SMALLSMALL)
|
||||||
|
add_definitions(-D${LAMMPS_SIZE_LIMIT})
|
||||||
|
set(LAMMPS_API_DEFINES "${LAMMPS_API_DEFINES} -D${LAMMPS_SIZE_LIMIT}")
|
||||||
|
|
||||||
|
set(LAMMPS_MEMALIGN "64" CACHE STRING "enables the use of the posix_memalign() call instead of malloc() when large chunks or memory are allocated by LAMMPS")
|
||||||
|
add_definitions(-DLAMMPS_MEMALIGN=${LAMMPS_MEMALIGN})
|
||||||
|
|
||||||
|
option(LAMMPS_EXCEPTIONS "enable the use of C++ exceptions for error messages (useful for library interface)" OFF)
|
||||||
|
if(LAMMPS_EXCEPTIONS)
|
||||||
|
add_definitions(-DLAMMPS_EXCEPTIONS)
|
||||||
|
set(LAMMPS_API_DEFINES "${LAMMPS_API_DEFINES} -DLAMMPS_EXCEPTIONS")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(LAMMPS_MACHINE "" CACHE STRING "Suffix to append to lmp binary and liblammps (WON'T enable any features automatically")
|
||||||
|
mark_as_advanced(LAMMPS_MACHINE)
|
||||||
|
if(LAMMPS_MACHINE)
|
||||||
|
set(LAMMPS_MACHINE "_${LAMMPS_MACHINE}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
option(CMAKE_VERBOSE_MAKEFILE "Verbose makefile" OFF)
|
||||||
|
|
||||||
|
option(ENABLE_TESTING "Enable testing" OFF)
|
||||||
|
if(ENABLE_TESTING)
|
||||||
|
enable_testing()
|
||||||
|
endif(ENABLE_TESTING)
|
||||||
|
|
||||||
|
option(ENABLE_ALL "Build all default packages" OFF)
|
||||||
|
set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GRANULAR
|
||||||
|
KSPACE MANYBODY MC MEAM MISC MOLECULE PERI QEQ
|
||||||
|
REAX REPLICA RIGID SHOCK SNAP SRD)
|
||||||
|
set(OTHER_PACKAGES KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE
|
||||||
|
USER-ATC USER-AWPMD USER-CGDNA USER-MESO
|
||||||
|
USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF
|
||||||
|
USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC
|
||||||
|
USER-MOFFF USER-MOLFILE USER-NETCDF USER-PHONON USER-QTB USER-REAXC USER-SMD
|
||||||
|
USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM)
|
||||||
|
set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU)
|
||||||
|
foreach(PKG ${DEFAULT_PACKAGES})
|
||||||
|
option(ENABLE_${PKG} "Build ${PKG} Package" ${ENABLE_ALL})
|
||||||
|
endforeach()
|
||||||
|
foreach(PKG ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
|
||||||
|
option(ENABLE_${PKG} "Build ${PKG} Package" OFF)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
macro(pkg_depends PKG1 PKG2)
|
||||||
|
if(ENABLE_${PKG1} AND NOT ENABLE_${PKG2})
|
||||||
|
message(FATAL_ERROR "${PKG1} package needs LAMMPS to be build with ${PKG2}")
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
pkg_depends(MPIIO MPI)
|
||||||
|
pkg_depends(QEQ MANYBODY)
|
||||||
|
pkg_depends(USER-ATC MANYBODY)
|
||||||
|
pkg_depends(USER-H5MD MPI)
|
||||||
|
pkg_depends(USER-LB MPI)
|
||||||
|
pkg_depends(USER-MISC MANYBODY)
|
||||||
|
pkg_depends(USER-PHONON KSPACE)
|
||||||
|
|
||||||
|
if(ENABLE_BODY AND ENABLE_POEMS)
|
||||||
|
message(FATAL_ERROR "BODY and POEMS cannot be enabled at the same time")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
######################################################
|
||||||
|
# packages with special compiler needs or external libs
|
||||||
|
######################################################
|
||||||
|
if(ENABLE_REAX OR ENABLE_MEAM OR ENABLE_USER-QUIP OR ENABLE_USER-QMMM OR ENABLE_LATTE)
|
||||||
|
enable_language(Fortran)
|
||||||
|
include(CheckFortranCompilerFlag)
|
||||||
|
check_Fortran_compiler_flag("-fno-second-underscore" FC_HAS_NO_SECOND_UNDERSCORE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_KOKKOS OR ENABLE_MSCG)
|
||||||
|
# starting with CMake 3.1 this is all you have to do to enforce C++11
|
||||||
|
set(CMAKE_CXX_STANDARD 11) # C++11...
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON) #...is required...
|
||||||
|
set(CMAKE_CXX_EXTENSIONS OFF) #...without compiler extensions like gnu++11
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_USER-OMP OR ENABLE_KOKKOS OR ENABLE_USER-INTEL)
|
||||||
|
find_package(OpenMP REQUIRED)
|
||||||
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
|
||||||
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_KSPACE)
|
||||||
|
set(FFT "KISSFFT" CACHE STRING "FFT library for KSPACE package")
|
||||||
|
set_property(CACHE FFT PROPERTY STRINGS KISSFFT FFTW3 MKL FFTW2)
|
||||||
|
if(NOT FFT STREQUAL "KISSFFT")
|
||||||
|
find_package(${FFT} REQUIRED)
|
||||||
|
add_definitions(-DFFT_${FFT})
|
||||||
|
include_directories(${${FFT}_INCLUDE_DIRS})
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS ${${FFT}_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
set(PACK_OPTIMIZATION "PACK_ARRAY" CACHE STRING "Optimization for FFT")
|
||||||
|
set_property(CACHE PACK_OPTIMIZATION PROPERTY STRINGS PACK_ARRAY PACK_POINTER PACK_MEMCPY)
|
||||||
|
if(NOT PACK_OPTIMIZATION STREQUAL "PACK_ARRAY")
|
||||||
|
add_definitions(-D${PACK_OPTIMIZATION})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_MSCG OR ENABLE_USER-ATC OR ENABLE_USER-AWPMD OR ENABLE_USER-QUIP OR ENABLE_LATTE)
|
||||||
|
find_package(LAPACK)
|
||||||
|
if(NOT LAPACK_FOUND)
|
||||||
|
enable_language(Fortran)
|
||||||
|
file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/*.f)
|
||||||
|
add_library(linalg STATIC ${LAPACK_SOURCES})
|
||||||
|
include(CheckFortranCompilerFlag)
|
||||||
|
check_Fortran_compiler_flag("-fno-second-underscore" FC_HAS_NO_SECOND_UNDERSCORE)
|
||||||
|
if(FC_HAS_NO_SECOND_UNDERSCORE)
|
||||||
|
target_compile_options(linalg PRIVATE -fno-second-underscore)
|
||||||
|
endif()
|
||||||
|
set(LAPACK_LIBRARIES linalg)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_PYTHON)
|
||||||
|
find_package(PythonInterp REQUIRED)
|
||||||
|
find_package(PythonLibs REQUIRED)
|
||||||
|
add_definitions(-DLMP_PYTHON)
|
||||||
|
include_directories(${PYTHON_INCLUDE_DIR})
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS ${PYTHON_LIBRARY})
|
||||||
|
if(BUILD_SHARED_LIBS)
|
||||||
|
if(NOT PYTHON_INSTDIR)
|
||||||
|
execute_process(COMMAND ${PYTHON_EXECUTABLE}
|
||||||
|
-c "import distutils.sysconfig as cg; print(cg.get_python_lib(1,0,prefix='${CMAKE_INSTALL_PREFIX}'))"
|
||||||
|
OUTPUT_VARIABLE PYTHON_INSTDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
endif()
|
||||||
|
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../python/lammps.py DESTINATION ${PYTHON_INSTDIR})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_package(JPEG)
|
||||||
|
if(JPEG_FOUND)
|
||||||
|
add_definitions(-DLAMMPS_JPEG)
|
||||||
|
include_directories(${JPEG_INCLUDE_DIR})
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS ${JPEG_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_package(PNG)
|
||||||
|
find_package(ZLIB)
|
||||||
|
if(PNG_FOUND AND ZLIB_FOUND)
|
||||||
|
include_directories(${PNG_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS})
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS ${PNG_LIBRARIES} ${ZLIB_LIBRARIES})
|
||||||
|
add_definitions(-DLAMMPS_PNG)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_program(GZIP_EXECUTABLE gzip)
|
||||||
|
find_package_handle_standard_args(GZIP REQUIRED_VARS GZIP_EXECUTABLE)
|
||||||
|
if(GZIP_FOUND)
|
||||||
|
add_definitions(-DLAMMPS_GZIP)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_program(FFMPEG_EXECUTABLE ffmpeg)
|
||||||
|
find_package_handle_standard_args(FFMPEG REQUIRED_VARS FFMPEG_EXECUTABLE)
|
||||||
|
if(FFMPEG_FOUND)
|
||||||
|
add_definitions(-DLAMMPS_FFMPEG)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_VORONOI)
|
||||||
|
find_package(VORO REQUIRED) #some distros
|
||||||
|
include_directories(${VORO_INCLUDE_DIRS})
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS ${VORO_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_LATTE)
|
||||||
|
find_package(LATTE QUIET)
|
||||||
|
if(NOT LATTE_FOUND)
|
||||||
|
message(STATUS "LATTE not found - we will build our own")
|
||||||
|
include(ExternalProject)
|
||||||
|
ExternalProject_Add(latte_build
|
||||||
|
URL https://github.com/lanl/LATTE/archive/v1.0.1.tar.gz
|
||||||
|
URL_MD5 5137e28cb1a64444bd571c98c98a6eee
|
||||||
|
SOURCE_SUBDIR cmake
|
||||||
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE}
|
||||||
|
)
|
||||||
|
ExternalProject_get_property(latte_build INSTALL_DIR)
|
||||||
|
set(LATTE_LIBRARIES ${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/liblatte.a)
|
||||||
|
list(APPEND LAMMPS_DEPS latte_build)
|
||||||
|
endif()
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS ${LATTE_LIBRARIES} ${LAPACK_LIBRARIES} ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_USER-MOLFILE)
|
||||||
|
add_library(molfile INTERFACE)
|
||||||
|
target_include_directories(molfile INTERFACE ${LAMMPS_LIB_SOURCE_DIR}/molfile)
|
||||||
|
target_link_libraries(molfile INTERFACE ${CMAKE_DL_LIBS})
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS molfile)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_USER-NETCDF)
|
||||||
|
find_package(NetCDF REQUIRED)
|
||||||
|
include_directories(NETCDF_INCLUDE_DIR)
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS ${NETCDF_LIBRARY})
|
||||||
|
add_definitions(-DLMP_HAS_NETCDF -DNC_64BIT_DATA=0x0020)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_USER-SMD)
|
||||||
|
find_package(Eigen3 REQUIRED)
|
||||||
|
include_directories(${EIGEN3_INCLUDE_DIR})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_USER-QUIP)
|
||||||
|
find_package(QUIP REQUIRED)
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS ${QUIP_LIBRARIES} ${LAPACK_LIBRARIES} ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_USER-QMMM)
|
||||||
|
find_package(QE REQUIRED)
|
||||||
|
include_directories(${QE_INCLUDE_DIRS})
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS ${QE_LIBRARIES} ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_USER-VTK)
|
||||||
|
find_package(VTK REQUIRED NO_MODULE)
|
||||||
|
include(${VTK_USE_FILE})
|
||||||
|
add_definitions(-DLAMMPS_VTK)
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS ${VTK_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_KIM)
|
||||||
|
find_package(KIM REQUIRED)
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS ${KIM_LIBRARIES})
|
||||||
|
include_directories(${KIM_INCLUDE_DIRS})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_MSCG)
|
||||||
|
find_package(GSL REQUIRED)
|
||||||
|
set(LAMMPS_LIB_MSCG_BIN_DIR ${LAMMPS_LIB_BINARY_DIR}/mscg)
|
||||||
|
set(MSCG_TARBALL ${LAMMPS_LIB_MSCG_BIN_DIR}/MS-CG-master.zip)
|
||||||
|
set(LAMMPS_LIB_MSCG_BIN_DIR ${LAMMPS_LIB_MSCG_BIN_DIR}/MSCG-release-master/src)
|
||||||
|
if(NOT EXISTS ${LAMMPS_LIB_MSCG_BIN_DIR})
|
||||||
|
if(NOT EXISTS ${MSCG_TARBALL})
|
||||||
|
message(STATUS "Downloading ${MSCG_TARBALL}")
|
||||||
|
file(DOWNLOAD
|
||||||
|
https://github.com/uchicago-voth/MSCG-release/archive/master.zip
|
||||||
|
${MSCG_TARBALL} SHOW_PROGRESS) #EXPECTED_MD5 cannot be due due to master
|
||||||
|
endif()
|
||||||
|
message(STATUS "Unpacking ${MSCG_TARBALL}")
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ${MSCG_TARBALL}
|
||||||
|
WORKING_DIRECTORY ${LAMMPS_LIB_BINARY_DIR}/mscg)
|
||||||
|
endif()
|
||||||
|
file(GLOB MSCG_SOURCES ${LAMMPS_LIB_MSCG_BIN_DIR}/*.cpp)
|
||||||
|
add_library(mscg STATIC ${MSCG_SOURCES})
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS mscg)
|
||||||
|
target_compile_options(mscg PRIVATE -DDIMENSION=3 -D_exclude_gromacs=1)
|
||||||
|
target_include_directories(mscg PUBLIC ${LAMMPS_LIB_MSCG_BIN_DIR})
|
||||||
|
target_link_libraries(mscg ${GSL_LIBRARIES} ${LAPACK_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# Basic system tests (standard libraries, headers, functions, types) #
|
||||||
|
########################################################################
|
||||||
|
include(CheckIncludeFile)
|
||||||
|
foreach(HEADER math.h)
|
||||||
|
check_include_file(${HEADER} FOUND_${HEADER})
|
||||||
|
if(NOT FOUND_${HEADER})
|
||||||
|
message(FATAL_ERROR "Could not find needed header - ${HEADER}")
|
||||||
|
endif(NOT FOUND_${HEADER})
|
||||||
|
endforeach(HEADER)
|
||||||
|
|
||||||
|
set(MATH_LIBRARIES "m" CACHE STRING "math library")
|
||||||
|
mark_as_advanced( MATH_LIBRARIES )
|
||||||
|
include(CheckLibraryExists)
|
||||||
|
foreach(FUNC sin cos)
|
||||||
|
check_library_exists(${MATH_LIBRARIES} ${FUNC} "" FOUND_${FUNC}_${MATH_LIBRARIES})
|
||||||
|
if(NOT FOUND_${FUNC}_${MATH_LIBRARIES})
|
||||||
|
message(FATAL_ERROR "Could not find needed math function - ${FUNC}")
|
||||||
|
endif(NOT FOUND_${FUNC}_${MATH_LIBRARIES})
|
||||||
|
endforeach(FUNC)
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS ${MATH_LIBRARIES})
|
||||||
|
|
||||||
|
######################################
|
||||||
|
# Generate Basic Style files
|
||||||
|
######################################
|
||||||
|
include(StyleHeaderUtils)
|
||||||
|
RegisterStyles(${LAMMPS_SOURCE_DIR})
|
||||||
|
|
||||||
|
##############################################
|
||||||
|
# add sources of enabled packages
|
||||||
|
############################################
|
||||||
|
foreach(PKG ${DEFAULT_PACKAGES} ${OTHER_PACKAGES})
|
||||||
|
set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG})
|
||||||
|
|
||||||
|
# ignore PKG files which were manually installed in src folder
|
||||||
|
# headers are ignored during RegisterStyles
|
||||||
|
file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/*.cpp)
|
||||||
|
file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/*.h)
|
||||||
|
|
||||||
|
foreach(PKG_FILE in ${${PKG}_SOURCES})
|
||||||
|
get_filename_component(FNAME ${PKG_FILE} NAME)
|
||||||
|
list(REMOVE_ITEM LIB_SOURCES ${LAMMPS_SOURCE_DIR}/${FNAME})
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
foreach(PKG_FILE in ${${PKG}_HEADERS})
|
||||||
|
get_filename_component(FNAME ${PKG_FILE} NAME)
|
||||||
|
DetectAndRemovePackageHeader(${LAMMPS_SOURCE_DIR}/${FNAME})
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
if(ENABLE_${PKG})
|
||||||
|
# detects styles in package and adds them to global list
|
||||||
|
RegisterStyles(${${PKG}_SOURCES_DIR})
|
||||||
|
|
||||||
|
list(APPEND LIB_SOURCES ${${PKG}_SOURCES})
|
||||||
|
include_directories(${${PKG}_SOURCES_DIR})
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
##############################################
|
||||||
|
# add lib sources of (simple) enabled packages
|
||||||
|
############################################
|
||||||
|
foreach(SIMPLE_LIB REAX MEAM POEMS USER-ATC USER-AWPMD USER-COLVARS USER-H5MD
|
||||||
|
USER-QMMM)
|
||||||
|
if(ENABLE_${SIMPLE_LIB})
|
||||||
|
string(REGEX REPLACE "^USER-" "" PKG_LIB "${SIMPLE_LIB}")
|
||||||
|
string(TOLOWER "${PKG_LIB}" PKG_LIB)
|
||||||
|
file(GLOB_RECURSE ${PKG_LIB}_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.F
|
||||||
|
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.c ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.cpp)
|
||||||
|
add_library(${PKG_LIB} STATIC ${${PKG_LIB}_SOURCES})
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS ${PKG_LIB})
|
||||||
|
if(PKG_LIB STREQUAL awpmd)
|
||||||
|
target_include_directories(awpmd PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/awpmd/systems/interact ${LAMMPS_LIB_SOURCE_DIR}/awpmd/ivutils/include)
|
||||||
|
elseif(PKG_LIB STREQUAL h5md)
|
||||||
|
target_include_directories(h5md PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/h5md/include)
|
||||||
|
elseif(PKG_LIB STREQUAL colvars)
|
||||||
|
target_compile_options(colvars PRIVATE -DLEPTON)
|
||||||
|
target_include_directories(colvars PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/colvars/lepton/include)
|
||||||
|
target_include_directories(colvars PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/colvars)
|
||||||
|
else()
|
||||||
|
target_include_directories(${PKG_LIB} PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
if(ENABLE_USER-AWPMD)
|
||||||
|
target_link_libraries(awpmd ${LAPACK_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_USER-ATC)
|
||||||
|
target_link_libraries(atc ${LAPACK_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_USER-H5MD)
|
||||||
|
find_package(HDF5 REQUIRED)
|
||||||
|
target_link_libraries(h5md ${HDF5_LIBRARIES})
|
||||||
|
target_include_directories(h5md PRIVATE ${HDF5_INCLUDE_DIRS})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_MEAM AND FC_HAS_NO_SECOND_UNDERSCORE)
|
||||||
|
foreach(FSRC ${meam_SOURCES})
|
||||||
|
string(REGEX REPLACE "^.*\\." "" FEXT "${FSRC}")
|
||||||
|
list(FIND CMAKE_Fortran_SOURCE_FILE_EXTENSIONS "${FEXT}" FINDEX)
|
||||||
|
if(FINDEX GREATER -1)
|
||||||
|
set_property(SOURCE ${FSRC} APPEND PROPERTY COMPILE_FLAGS "-fno-second-underscore")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_REAX AND FC_HAS_NO_SECOND_UNDERSCORE)
|
||||||
|
target_compile_options(reax PRIVATE -fno-second-underscore)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
# packages which selectively include variants based on enabled styles
|
||||||
|
# e.g. accelerator packages
|
||||||
|
######################################################################
|
||||||
|
if(ENABLE_USER-OMP)
|
||||||
|
set(USER-OMP_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-OMP)
|
||||||
|
set(USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/thr_data.cpp
|
||||||
|
${USER-OMP_SOURCES_DIR}/thr_omp.cpp
|
||||||
|
${USER-OMP_SOURCES_DIR}/fix_nh_omp.cpp
|
||||||
|
${USER-OMP_SOURCES_DIR}/fix_nh_sphere_omp.cpp)
|
||||||
|
set_property(GLOBAL PROPERTY "OMP_SOURCES" "${USER-OMP_SOURCES}")
|
||||||
|
|
||||||
|
# detects styles which have USER-OMP version
|
||||||
|
RegisterStylesExt(${USER-OMP_SOURCES_DIR} omp OMP_SOURCES)
|
||||||
|
|
||||||
|
get_property(USER-OMP_SOURCES GLOBAL PROPERTY OMP_SOURCES)
|
||||||
|
|
||||||
|
list(APPEND LIB_SOURCES ${USER-OMP_SOURCES})
|
||||||
|
include_directories(${USER-OMP_SOURCES_DIR})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_KOKKOS)
|
||||||
|
set(LAMMPS_LIB_KOKKOS_SRC_DIR ${LAMMPS_LIB_SOURCE_DIR}/kokkos)
|
||||||
|
set(LAMMPS_LIB_KOKKOS_BIN_DIR ${LAMMPS_LIB_BINARY_DIR}/kokkos)
|
||||||
|
add_definitions(-DLMP_KOKKOS)
|
||||||
|
add_subdirectory(${LAMMPS_LIB_KOKKOS_SRC_DIR} ${LAMMPS_LIB_KOKKOS_BIN_DIR})
|
||||||
|
|
||||||
|
set(Kokkos_INCLUDE_DIRS ${LAMMPS_LIB_KOKKOS_SRC_DIR}/core/src
|
||||||
|
${LAMMPS_LIB_KOKKOS_SRC_DIR}/containers/src
|
||||||
|
${LAMMPS_LIB_KOKKOS_SRC_DIR}/algorithms/src
|
||||||
|
${LAMMPS_LIB_KOKKOS_BIN_DIR})
|
||||||
|
include_directories(${Kokkos_INCLUDE_DIRS})
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS kokkos)
|
||||||
|
|
||||||
|
set(KOKKOS_PKG_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/KOKKOS)
|
||||||
|
set(KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/kokkos.cpp
|
||||||
|
${KOKKOS_PKG_SOURCES_DIR}/atom_kokkos.cpp
|
||||||
|
${KOKKOS_PKG_SOURCES_DIR}/atom_vec_kokkos.cpp
|
||||||
|
${KOKKOS_PKG_SOURCES_DIR}/comm_kokkos.cpp
|
||||||
|
${KOKKOS_PKG_SOURCES_DIR}/comm_tiled_kokkos.cpp
|
||||||
|
${KOKKOS_PKG_SOURCES_DIR}/neighbor_kokkos.cpp
|
||||||
|
${KOKKOS_PKG_SOURCES_DIR}/neigh_list_kokkos.cpp
|
||||||
|
${KOKKOS_PKG_SOURCES_DIR}/neigh_bond_kokkos.cpp
|
||||||
|
${KOKKOS_PKG_SOURCES_DIR}/fix_nh_kokkos.cpp
|
||||||
|
${KOKKOS_PKG_SOURCES_DIR}/nbin_kokkos.cpp
|
||||||
|
${KOKKOS_PKG_SOURCES_DIR}/npair_kokkos.cpp
|
||||||
|
${KOKKOS_PKG_SOURCES_DIR}/domain_kokkos.cpp
|
||||||
|
${KOKKOS_PKG_SOURCES_DIR}/modify_kokkos.cpp)
|
||||||
|
set_property(GLOBAL PROPERTY "KOKKOS_PKG_SOURCES" "${KOKKOS_PKG_SOURCES}")
|
||||||
|
|
||||||
|
# detects styles which have KOKKOS version
|
||||||
|
RegisterStylesExt(${KOKKOS_PKG_SOURCES_DIR} kokkos KOKKOS_PKG_SOURCES)
|
||||||
|
|
||||||
|
# register kokkos-only styles
|
||||||
|
RegisterNBinStyle(${KOKKOS_PKG_SOURCES_DIR}/nbin_kokkos.h)
|
||||||
|
RegisterNPairStyle(${KOKKOS_PKG_SOURCES_DIR}/npair_kokkos.h)
|
||||||
|
|
||||||
|
if(ENABLE_USER-DPD)
|
||||||
|
get_property(KOKKOS_PKG_SOURCES GLOBAL PROPERTY KOKKOS_PKG_SOURCES)
|
||||||
|
list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/npair_ssa_kokkos.cpp)
|
||||||
|
RegisterNPairStyle(${KOKKOS_PKG_SOURCES_DIR}/npair_ssa_kokkos.h)
|
||||||
|
set_property(GLOBAL PROPERTY "KOKKOS_PKG_SOURCES" "${KOKKOS_PKG_SOURCES}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
get_property(KOKKOS_PKG_SOURCES GLOBAL PROPERTY KOKKOS_PKG_SOURCES)
|
||||||
|
|
||||||
|
list(APPEND LIB_SOURCES ${KOKKOS_PKG_SOURCES})
|
||||||
|
include_directories(${KOKKOS_PKG_SOURCES_DIR})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_OPT)
|
||||||
|
set(OPT_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/OPT)
|
||||||
|
set(OPT_SOURCES)
|
||||||
|
set_property(GLOBAL PROPERTY "OPT_SOURCES" "${OPT_SOURCES}")
|
||||||
|
|
||||||
|
# detects styles which have OPT version
|
||||||
|
RegisterStylesExt(${OPT_SOURCES_DIR} opt OPT_SOURCES)
|
||||||
|
|
||||||
|
get_property(OPT_SOURCES GLOBAL PROPERTY OPT_SOURCES)
|
||||||
|
|
||||||
|
list(APPEND LIB_SOURCES ${OPT_SOURCES})
|
||||||
|
include_directories(${OPT_SOURCES_DIR})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_USER-INTEL)
|
||||||
|
set(USER-INTEL_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-INTEL)
|
||||||
|
set(USER-INTEL_SOURCES ${USER-INTEL_SOURCES_DIR}/intel_preprocess.h
|
||||||
|
${USER-INTEL_SOURCES_DIR}/intel_buffers.h
|
||||||
|
${USER-INTEL_SOURCES_DIR}/intel_buffers.cpp
|
||||||
|
${USER-INTEL_SOURCES_DIR}/math_extra_intel.h
|
||||||
|
${USER-INTEL_SOURCES_DIR}/nbin_intel.h
|
||||||
|
${USER-INTEL_SOURCES_DIR}/nbin_intel.cpp
|
||||||
|
${USER-INTEL_SOURCES_DIR}/npair_intel.h
|
||||||
|
${USER-INTEL_SOURCES_DIR}/npair_intel.cpp
|
||||||
|
${USER-INTEL_SOURCES_DIR}/intel_simd.h
|
||||||
|
${USER-INTEL_SOURCES_DIR}/intel_intrinsics.h)
|
||||||
|
|
||||||
|
set_property(GLOBAL PROPERTY "USER-INTEL_SOURCES" "${USER-INTEL_SOURCES}")
|
||||||
|
|
||||||
|
# detects styles which have USER-INTEL version
|
||||||
|
RegisterStylesExt(${USER-INTEL_SOURCES_DIR} opt USER-INTEL_SOURCES)
|
||||||
|
|
||||||
|
get_property(USER-INTEL_SOURCES GLOBAL PROPERTY USER-INTEL_SOURCES)
|
||||||
|
|
||||||
|
list(APPEND LIB_SOURCES ${USER-INTEL_SOURCES})
|
||||||
|
include_directories(${USER-INTEL_SOURCES_DIR})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_GPU)
|
||||||
|
set(GPU_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/GPU)
|
||||||
|
set(GPU_SOURCES ${GPU_SOURCES_DIR}/gpu_extra.h
|
||||||
|
${GPU_SOURCES_DIR}/fix_gpu.h
|
||||||
|
${GPU_SOURCES_DIR}/fix_gpu.cpp)
|
||||||
|
|
||||||
|
set(GPU_API "OpenCL" CACHE STRING "API used by GPU package")
|
||||||
|
set_property(CACHE GPU_API PROPERTY STRINGS OpenCL CUDA)
|
||||||
|
|
||||||
|
set(GPU_PREC "SINGLE_DOUBLE" CACHE STRING "LAMMPS GPU precision size")
|
||||||
|
set_property(CACHE GPU_PREC PROPERTY STRINGS SINGLE_DOUBLE SINGLE_SINGLE DOUBLE_DOUBLE)
|
||||||
|
|
||||||
|
file(GLOB GPU_LIB_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cpp)
|
||||||
|
file(MAKE_DIRECTORY ${LAMMPS_LIB_BINARY_DIR}/gpu)
|
||||||
|
|
||||||
|
if(GPU_API STREQUAL "CUDA")
|
||||||
|
find_package(CUDA REQUIRED)
|
||||||
|
find_program(BIN2C bin2c)
|
||||||
|
if(NOT BIN2C)
|
||||||
|
message(FATAL_ERROR "Couldn't find bin2c, use -DBIN2C helping cmake to find it.")
|
||||||
|
endif()
|
||||||
|
option(CUDPP_OPT "Enable CUDPP_OPT" ON)
|
||||||
|
|
||||||
|
set(GPU_ARCH "sm_30" CACHE STRING "LAMMPS GPU CUDA SM architecture")
|
||||||
|
set_property(CACHE GPU_ARCH PROPERTY STRINGS sm_10 sm_20 sm_30 sm_60)
|
||||||
|
|
||||||
|
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/*.cu)
|
||||||
|
list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_pppm.cu)
|
||||||
|
|
||||||
|
cuda_include_directories(${LAMMPS_LIB_SOURCE_DIR}/gpu ${LAMMPS_LIB_BINARY_DIR}/gpu)
|
||||||
|
|
||||||
|
if(CUDPP_OPT)
|
||||||
|
cuda_include_directories(${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini)
|
||||||
|
file(GLOB GPU_LIB_CUDPP_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/*.cpp)
|
||||||
|
file(GLOB GPU_LIB_CUDPP_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/*.cu)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
cuda_compile_cubin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS
|
||||||
|
-DUNIX -O3 -Xptxas -v --use_fast_math -DNV_KERNEL -DUCL_CUDADR -arch=${GPU_ARCH} -D_${GPU_PREC})
|
||||||
|
|
||||||
|
cuda_compile(GPU_OBJS ${GPU_LIB_CUDPP_CU} OPTIONS $<$<BOOL:${BUILD_SHARED_LIBS}>:-Xcompiler=-fPIC>
|
||||||
|
-DUNIX -O3 -Xptxas -v --use_fast_math -DUCL_CUDADR -arch=${GPU_ARCH} -D_${GPU_PREC})
|
||||||
|
|
||||||
|
foreach(CU_OBJ ${GPU_GEN_OBJS})
|
||||||
|
get_filename_component(CU_NAME ${CU_OBJ} NAME_WE)
|
||||||
|
string(REGEX REPLACE "^.*_lal_" "" CU_NAME "${CU_NAME}")
|
||||||
|
add_custom_command(OUTPUT ${LAMMPS_LIB_BINARY_DIR}/gpu/${CU_NAME}_cubin.h
|
||||||
|
COMMAND ${BIN2C} -c -n ${CU_NAME} ${CU_OBJ} > ${LAMMPS_LIB_BINARY_DIR}/gpu/${CU_NAME}_cubin.h
|
||||||
|
DEPENDS ${CU_OBJ}
|
||||||
|
COMMENT "Generating ${CU_NAME}_cubin.h")
|
||||||
|
list(APPEND GPU_LIB_SOURCES ${LAMMPS_LIB_BINARY_DIR}/gpu/${CU_NAME}_cubin.h)
|
||||||
|
endforeach()
|
||||||
|
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${LAMMPS_LIB_BINARY_DIR}/gpu/*_cubin.h")
|
||||||
|
|
||||||
|
|
||||||
|
add_library(gpu STATIC ${GPU_LIB_SOURCES} ${GPU_LIB_CUDPP_SOURCES} ${GPU_OBJS})
|
||||||
|
target_link_libraries(gpu ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY})
|
||||||
|
target_include_directories(gpu PRIVATE ${LAMMPS_LIB_BINARY_DIR}/gpu ${CUDA_INCLUDE_DIRS})
|
||||||
|
target_compile_definitions(gpu PRIVATE -D_${GPU_PREC} -DMPI_GERYON -DUCL_NO_EXIT)
|
||||||
|
if(CUDPP_OPT)
|
||||||
|
target_include_directories(gpu PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini)
|
||||||
|
target_compile_definitions(gpu PRIVATE -DUSE_CUDPP)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS gpu)
|
||||||
|
|
||||||
|
add_executable(nvc_get_devices ${LAMMPS_LIB_SOURCE_DIR}/gpu/geryon/ucl_get_devices.cpp)
|
||||||
|
target_compile_definitions(nvc_get_devices PRIVATE -DUCL_CUDADR)
|
||||||
|
target_link_libraries(nvc_get_devices PRIVATE ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY})
|
||||||
|
target_include_directories(nvc_get_devices PRIVATE ${CUDA_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
|
||||||
|
elseif(GPU_API STREQUAL "OpenCL")
|
||||||
|
find_package(OpenCL REQUIRED)
|
||||||
|
set(OCL_TUNE "GENERIC" CACHE STRING "OpenCL Device Tuning")
|
||||||
|
set_property(CACHE OCL_TUNE PROPERTY STRINGS INTEL FERMI KEPLER CYPRESS GENERIC)
|
||||||
|
|
||||||
|
include(OpenCLUtils)
|
||||||
|
set(OCL_COMMON_HEADERS ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_preprocessor.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_aux_fun1.h)
|
||||||
|
|
||||||
|
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cu)
|
||||||
|
list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne.cu ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne_lj.cu)
|
||||||
|
|
||||||
|
foreach(GPU_KERNEL ${GPU_LIB_CU})
|
||||||
|
get_filename_component(basename ${GPU_KERNEL} NAME_WE)
|
||||||
|
string(SUBSTRING ${basename} 4 -1 KERNEL_NAME)
|
||||||
|
GenerateOpenCLHeader(${KERNEL_NAME} ${CMAKE_CURRENT_BINARY_DIR}/gpu/${KERNEL_NAME}_cl.h ${OCL_COMMON_HEADERS} ${GPU_KERNEL})
|
||||||
|
list(APPEND GPU_LIB_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/gpu/${KERNEL_NAME}_cl.h)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
GenerateOpenCLHeader(gayberne ${CMAKE_CURRENT_BINARY_DIR}/gpu/gayberne_cl.h ${OCL_COMMON_HEADERS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_ellipsoid_extra.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne.cu)
|
||||||
|
GenerateOpenCLHeader(gayberne_lj ${CMAKE_CURRENT_BINARY_DIR}/gpu/gayberne_lj_cl.h ${OCL_COMMON_HEADERS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_ellipsoid_extra.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne_lj.cu)
|
||||||
|
list(APPEND GPU_LIB_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/gpu/gayberne_cl.h ${CMAKE_CURRENT_BINARY_DIR}/gpu/gayberne_lj_cl.h)
|
||||||
|
|
||||||
|
add_library(gpu STATIC ${GPU_LIB_SOURCES})
|
||||||
|
target_link_libraries(gpu ${OpenCL_LIBRARIES})
|
||||||
|
target_include_directories(gpu PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/gpu ${OpenCL_INCLUDE_DIRS})
|
||||||
|
target_compile_definitions(gpu PRIVATE -D_${GPU_PREC} -DMPI_GERYON -DUCL_NO_EXIT)
|
||||||
|
target_compile_definitions(gpu PRIVATE -DUSE_OPENCL)
|
||||||
|
|
||||||
|
list(APPEND LAMMPS_LINK_LIBS gpu)
|
||||||
|
|
||||||
|
add_executable(ocl_get_devices ${LAMMPS_LIB_SOURCE_DIR}/gpu/geryon/ucl_get_devices.cpp)
|
||||||
|
target_compile_definitions(ocl_get_devices PRIVATE -DUCL_OPENCL)
|
||||||
|
target_link_libraries(ocl_get_devices PRIVATE ${OpenCL_LIBRARIES})
|
||||||
|
target_include_directories(ocl_get_devices PRIVATE ${OpenCL_INCLUDE_DIRS})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# GPU package
|
||||||
|
FindStyleHeaders(${GPU_SOURCES_DIR} FIX_CLASS fix_ FIX)
|
||||||
|
|
||||||
|
set_property(GLOBAL PROPERTY "GPU_SOURCES" "${GPU_SOURCES}")
|
||||||
|
|
||||||
|
# detects styles which have GPU version
|
||||||
|
RegisterStylesExt(${GPU_SOURCES_DIR} gpu GPU_SOURCES)
|
||||||
|
|
||||||
|
get_property(GPU_SOURCES GLOBAL PROPERTY GPU_SOURCES)
|
||||||
|
|
||||||
|
list(APPEND LIB_SOURCES ${GPU_SOURCES})
|
||||||
|
include_directories(${GPU_SOURCES_DIR})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
######################################################
|
||||||
|
# Generate style headers based on global list of
|
||||||
|
# styles registered during package selection
|
||||||
|
######################################################
|
||||||
|
set(LAMMPS_STYLE_HEADERS_DIR ${CMAKE_CURRENT_BINARY_DIR}/styles)
|
||||||
|
|
||||||
|
GenerateStyleHeaders(${LAMMPS_STYLE_HEADERS_DIR})
|
||||||
|
|
||||||
|
include_directories(${LAMMPS_SOURCE_DIR})
|
||||||
|
include_directories(${LAMMPS_STYLE_HEADERS_DIR})
|
||||||
|
|
||||||
|
###########################################
|
||||||
|
# Actually add executable and lib to build
|
||||||
|
############################################
|
||||||
|
add_library(lammps ${LIB_SOURCES})
|
||||||
|
target_link_libraries(lammps ${LAMMPS_LINK_LIBS})
|
||||||
|
if(LAMMPS_DEPS)
|
||||||
|
add_dependencies(lammps ${LAMMPS_DEPS})
|
||||||
|
endif()
|
||||||
|
set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LAMMPS_MACHINE})
|
||||||
|
if(BUILD_SHARED_LIBS)
|
||||||
|
set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
|
||||||
|
install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps)
|
||||||
|
configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_MACHINE}.pc @ONLY)
|
||||||
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_MACHINE}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_executable(lmp ${LMP_SOURCES})
|
||||||
|
target_link_libraries(lmp lammps)
|
||||||
|
set_target_properties(lmp PROPERTIES OUTPUT_NAME lmp${LAMMPS_MACHINE})
|
||||||
|
install(TARGETS lmp DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||||
|
if(ENABLE_TESTING)
|
||||||
|
add_test(ShowHelp lmp${LAMMPS_MACHINE} -help)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
##################################
|
||||||
|
# Print package summary
|
||||||
|
##################################
|
||||||
|
foreach(PKG ${DEFAULT_PACKAGES} ${OTHER_PACKAGES} ${ACCEL_PACKAGES})
|
||||||
|
if(ENABLE_${PKG})
|
||||||
|
message(STATUS "Building package: ${PKG}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
string(TOUPPER "${CMAKE_BUILD_TYPE}" BTYPE)
|
||||||
|
message(STATUS "<<< Build configuration >>>
|
||||||
|
Build type ${CMAKE_BUILD_TYPE}
|
||||||
|
Install path ${CMAKE_INSTALL_PREFIX}
|
||||||
|
Compilers and Flags:
|
||||||
|
C++ Compiler ${CMAKE_CXX_COMPILER}
|
||||||
|
Type ${CMAKE_CXX_COMPILER_ID}
|
||||||
|
C++ Flags ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${BTYPE}}")
|
||||||
|
get_property(LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES)
|
||||||
|
if(LANGUAGES MATCHES ".*Fortran.*")
|
||||||
|
message(STATUS "Fortran Compiler ${CMAKE_Fortran_COMPILER}
|
||||||
|
Type ${CMAKE_Fortran_COMPILER_ID}
|
||||||
|
Fortran Flags ${CMAKE_Fortran_FLAGS} ${CMAKE_Fortran_FLAGS_${BTYPE}}")
|
||||||
|
endif()
|
||||||
|
message(STATUS "Linker flags:
|
||||||
|
Executable ${CMAKE_EXE_LINKER_FLAGS}")
|
||||||
|
if(BUILD_SHARED_LIBS)
|
||||||
|
message(STATUS "Shared libries ${CMAKE_SHARED_LINKER_FLAGS}")
|
||||||
|
else()
|
||||||
|
message(STATUS "Static libries ${CMAKE_STATIC_LINKER_FLAGS}")
|
||||||
|
endif()
|
||||||
|
message(STATUS "Link libraries: ${LAMMPS_LINK_LIBS}")
|
||||||
|
|
||||||
22
cmake/Modules/FindFFTW2.cmake
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# - Find fftw2
|
||||||
|
# Find the native FFTW2 headers and libraries.
|
||||||
|
#
|
||||||
|
# FFTW2_INCLUDE_DIRS - where to find fftw2.h, etc.
|
||||||
|
# FFTW2_LIBRARIES - List of libraries when using fftw2.
|
||||||
|
# FFTW2_FOUND - True if fftw2 found.
|
||||||
|
#
|
||||||
|
|
||||||
|
find_path(FFTW2_INCLUDE_DIR fftw.h)
|
||||||
|
|
||||||
|
find_library(FFTW2_LIBRARY NAMES fftw)
|
||||||
|
|
||||||
|
set(FFTW2_LIBRARIES ${FFTW2_LIBRARY})
|
||||||
|
set(FFTW2_INCLUDE_DIRS ${FFTW2_INCLUDE_DIR})
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
# handle the QUIETLY and REQUIRED arguments and set FFTW2_FOUND to TRUE
|
||||||
|
# if all listed variables are TRUE
|
||||||
|
|
||||||
|
find_package_handle_standard_args(FFTW2 DEFAULT_MSG FFTW2_LIBRARY FFTW2_INCLUDE_DIR)
|
||||||
|
|
||||||
|
mark_as_advanced(FFTW2_INCLUDE_DIR FFTW2_LIBRARY )
|
||||||
25
cmake/Modules/FindFFTW3.cmake
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# - Find fftw3
|
||||||
|
# Find the native FFTW3 headers and libraries.
|
||||||
|
#
|
||||||
|
# FFTW3_INCLUDE_DIRS - where to find fftw3.h, etc.
|
||||||
|
# FFTW3_LIBRARIES - List of libraries when using fftw3.
|
||||||
|
# FFTW3_FOUND - True if fftw3 found.
|
||||||
|
#
|
||||||
|
|
||||||
|
find_package(PkgConfig)
|
||||||
|
|
||||||
|
pkg_check_modules(PC_FFTW3 fftw3)
|
||||||
|
find_path(FFTW3_INCLUDE_DIR fftw3.h HINTS ${PC_FFTW3_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
find_library(FFTW3_LIBRARY NAMES fftw3 HINTS ${PC_FFTW3_LIBRARY_DIRS})
|
||||||
|
|
||||||
|
set(FFTW3_LIBRARIES ${FFTW3_LIBRARY})
|
||||||
|
set(FFTW3_INCLUDE_DIRS ${FFTW3_INCLUDE_DIR})
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
# handle the QUIETLY and REQUIRED arguments and set FFTW3_FOUND to TRUE
|
||||||
|
# if all listed variables are TRUE
|
||||||
|
|
||||||
|
find_package_handle_standard_args(FFTW3 DEFAULT_MSG FFTW3_LIBRARY FFTW3_INCLUDE_DIR)
|
||||||
|
|
||||||
|
mark_as_advanced(FFTW3_INCLUDE_DIR FFTW3_LIBRARY )
|
||||||
22
cmake/Modules/FindKIM.cmake
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# - Find kim
|
||||||
|
# Find the native KIM headers and libraries.
|
||||||
|
#
|
||||||
|
# KIM_INCLUDE_DIRS - where to find kim.h, etc.
|
||||||
|
# KIM_LIBRARIES - List of libraries when using kim.
|
||||||
|
# KIM_FOUND - True if kim found.
|
||||||
|
#
|
||||||
|
|
||||||
|
find_path(KIM_INCLUDE_DIR KIM_API.h PATH_SUFFIXES kim-api-v1)
|
||||||
|
|
||||||
|
find_library(KIM_LIBRARY NAMES kim-api-v1)
|
||||||
|
|
||||||
|
set(KIM_LIBRARIES ${KIM_LIBRARY})
|
||||||
|
set(KIM_INCLUDE_DIRS ${KIM_INCLUDE_DIR})
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
# handle the QUIETLY and REQUIRED arguments and set KIM_FOUND to TRUE
|
||||||
|
# if all listed variables are TRUE
|
||||||
|
|
||||||
|
find_package_handle_standard_args(KIM DEFAULT_MSG KIM_LIBRARY KIM_INCLUDE_DIR)
|
||||||
|
|
||||||
|
mark_as_advanced(KIM_INCLUDE_DIR KIM_LIBRARY )
|
||||||
18
cmake/Modules/FindLATTE.cmake
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# - Find latte
|
||||||
|
# Find the native LATTE libraries.
|
||||||
|
#
|
||||||
|
# LATTE_LIBRARIES - List of libraries when using latte.
|
||||||
|
# LATTE_FOUND - True if latte found.
|
||||||
|
#
|
||||||
|
|
||||||
|
find_library(LATTE_LIBRARY NAMES latte)
|
||||||
|
|
||||||
|
set(LATTE_LIBRARIES ${LATTE_LIBRARY})
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
# handle the QUIETLY and REQUIRED arguments and set LATTE_FOUND to TRUE
|
||||||
|
# if all listed variables are TRUE
|
||||||
|
|
||||||
|
find_package_handle_standard_args(LATTE DEFAULT_MSG LATTE_LIBRARY)
|
||||||
|
|
||||||
|
mark_as_advanced(LATTE_LIBRARY)
|
||||||
22
cmake/Modules/FindMKL.cmake
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# - Find mkl
|
||||||
|
# Find the native MKL headers and libraries.
|
||||||
|
#
|
||||||
|
# MKL_INCLUDE_DIRS - where to find mkl.h, etc.
|
||||||
|
# MKL_LIBRARIES - List of libraries when using mkl.
|
||||||
|
# MKL_FOUND - True if mkl found.
|
||||||
|
#
|
||||||
|
|
||||||
|
find_path(MKL_INCLUDE_DIR mkl_dfti.h HINTS $ENV{MKLROOT}/include)
|
||||||
|
|
||||||
|
find_library(MKL_LIBRARY NAMES mkl_rt HINTS $ENV{MKLROOT}/lib $ENV{MKLROOT}/lib/intel64)
|
||||||
|
|
||||||
|
set(MKL_LIBRARIES ${MKL_LIBRARY})
|
||||||
|
set(MKL_INCLUDE_DIRS ${MKL_INCLUDE_DIR})
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
# handle the QUIETLY and REQUIRED arguments and set MKL_FOUND to TRUE
|
||||||
|
# if all listed variables are TRUE
|
||||||
|
|
||||||
|
find_package_handle_standard_args(MKL DEFAULT_MSG MKL_LIBRARY MKL_INCLUDE_DIR)
|
||||||
|
|
||||||
|
mark_as_advanced(MKL_INCLUDE_DIR MKL_LIBRARY )
|
||||||
118
cmake/Modules/FindNetCDF.cmake
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
# - Find NetCDF
|
||||||
|
# Find the native NetCDF includes and library
|
||||||
|
#
|
||||||
|
# NETCDF_INCLUDE_DIR - user modifiable choice of where netcdf headers are
|
||||||
|
# NETCDF_LIBRARY - user modifiable choice of where netcdf libraries are
|
||||||
|
#
|
||||||
|
# Your package can require certain interfaces to be FOUND by setting these
|
||||||
|
#
|
||||||
|
# NETCDF_CXX - require the C++ interface and link the C++ library
|
||||||
|
# NETCDF_F77 - require the F77 interface and link the fortran library
|
||||||
|
# NETCDF_F90 - require the F90 interface and link the fortran library
|
||||||
|
#
|
||||||
|
# Or equivalently by calling FindNetCDF with a COMPONENTS argument containing one or
|
||||||
|
# more of "CXX;F77;F90".
|
||||||
|
#
|
||||||
|
# When interfaces are requested the user has access to interface specific hints:
|
||||||
|
#
|
||||||
|
# NETCDF_${LANG}_INCLUDE_DIR - where to search for interface header files
|
||||||
|
# NETCDF_${LANG}_LIBRARY - where to search for interface libraries
|
||||||
|
#
|
||||||
|
# This module returns these variables for the rest of the project to use.
|
||||||
|
#
|
||||||
|
# NETCDF_FOUND - True if NetCDF found including required interfaces (see below)
|
||||||
|
# NETCDF_LIBRARIES - All netcdf related libraries.
|
||||||
|
# NETCDF_INCLUDE_DIRS - All directories to include.
|
||||||
|
# NETCDF_HAS_INTERFACES - Whether requested interfaces were found or not.
|
||||||
|
# NETCDF_${LANG}_INCLUDE_DIRS/NETCDF_${LANG}_LIBRARIES - C/C++/F70/F90 only interface
|
||||||
|
#
|
||||||
|
# Normal usage would be:
|
||||||
|
# set (NETCDF_F90 "YES")
|
||||||
|
# find_package (NetCDF REQUIRED)
|
||||||
|
# target_link_libraries (uses_everthing ${NETCDF_LIBRARIES})
|
||||||
|
# target_link_libraries (only_uses_f90 ${NETCDF_F90_LIBRARIES})
|
||||||
|
|
||||||
|
#search starting from user editable cache var
|
||||||
|
if (NETCDF_INCLUDE_DIR AND NETCDF_LIBRARY)
|
||||||
|
# Already in cache, be silent
|
||||||
|
set (NETCDF_FIND_QUIETLY TRUE)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
set(USE_DEFAULT_PATHS "NO_DEFAULT_PATH")
|
||||||
|
if(NETCDF_USE_DEFAULT_PATHS)
|
||||||
|
set(USE_DEFAULT_PATHS "")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_path (NETCDF_INCLUDE_DIR netcdf.h
|
||||||
|
HINTS "${NETCDF_DIR}/include")
|
||||||
|
mark_as_advanced (NETCDF_INCLUDE_DIR)
|
||||||
|
set (NETCDF_C_INCLUDE_DIRS ${NETCDF_INCLUDE_DIR})
|
||||||
|
|
||||||
|
find_library (NETCDF_LIBRARY NAMES netcdf
|
||||||
|
HINTS "${NETCDF_DIR}/lib")
|
||||||
|
mark_as_advanced (NETCDF_LIBRARY)
|
||||||
|
|
||||||
|
set (NETCDF_C_LIBRARIES ${NETCDF_LIBRARY})
|
||||||
|
|
||||||
|
#start finding requested language components
|
||||||
|
set (NetCDF_libs "")
|
||||||
|
set (NetCDF_includes "${NETCDF_INCLUDE_DIR}")
|
||||||
|
|
||||||
|
get_filename_component (NetCDF_lib_dirs "${NETCDF_LIBRARY}" PATH)
|
||||||
|
set (NETCDF_HAS_INTERFACES "YES") # will be set to NO if we're missing any interfaces
|
||||||
|
|
||||||
|
macro (NetCDF_check_interface lang header libs)
|
||||||
|
if (NETCDF_${lang})
|
||||||
|
#search starting from user modifiable cache var
|
||||||
|
find_path (NETCDF_${lang}_INCLUDE_DIR NAMES ${header}
|
||||||
|
HINTS "${NETCDF_INCLUDE_DIR}"
|
||||||
|
HINTS "${NETCDF_${lang}_ROOT}/include"
|
||||||
|
${USE_DEFAULT_PATHS})
|
||||||
|
|
||||||
|
find_library (NETCDF_${lang}_LIBRARY NAMES ${libs}
|
||||||
|
HINTS "${NetCDF_lib_dirs}"
|
||||||
|
HINTS "${NETCDF_${lang}_ROOT}/lib"
|
||||||
|
${USE_DEFAULT_PATHS})
|
||||||
|
|
||||||
|
mark_as_advanced (NETCDF_${lang}_INCLUDE_DIR NETCDF_${lang}_LIBRARY)
|
||||||
|
|
||||||
|
#export to internal varS that rest of project can use directly
|
||||||
|
set (NETCDF_${lang}_LIBRARIES ${NETCDF_${lang}_LIBRARY})
|
||||||
|
set (NETCDF_${lang}_INCLUDE_DIRS ${NETCDF_${lang}_INCLUDE_DIR})
|
||||||
|
|
||||||
|
if (NETCDF_${lang}_INCLUDE_DIR AND NETCDF_${lang}_LIBRARY)
|
||||||
|
list (APPEND NetCDF_libs ${NETCDF_${lang}_LIBRARY})
|
||||||
|
list (APPEND NetCDF_includes ${NETCDF_${lang}_INCLUDE_DIR})
|
||||||
|
else ()
|
||||||
|
set (NETCDF_HAS_INTERFACES "NO")
|
||||||
|
message (STATUS "Failed to find NetCDF interface for ${lang}")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
list (FIND NetCDF_FIND_COMPONENTS "CXX" _nextcomp)
|
||||||
|
if (_nextcomp GREATER -1)
|
||||||
|
set (NETCDF_CXX 1)
|
||||||
|
endif ()
|
||||||
|
list (FIND NetCDF_FIND_COMPONENTS "F77" _nextcomp)
|
||||||
|
if (_nextcomp GREATER -1)
|
||||||
|
set (NETCDF_F77 1)
|
||||||
|
endif ()
|
||||||
|
list (FIND NetCDF_FIND_COMPONENTS "F90" _nextcomp)
|
||||||
|
if (_nextcomp GREATER -1)
|
||||||
|
set (NETCDF_F90 1)
|
||||||
|
endif ()
|
||||||
|
NetCDF_check_interface (CXX netcdfcpp.h netcdf_c++)
|
||||||
|
NetCDF_check_interface (F77 netcdf.inc netcdff)
|
||||||
|
NetCDF_check_interface (F90 netcdf.mod netcdff)
|
||||||
|
|
||||||
|
#export accumulated results to internal varS that rest of project can depend on
|
||||||
|
list (APPEND NetCDF_libs "${NETCDF_C_LIBRARIES}")
|
||||||
|
set (NETCDF_LIBRARIES ${NetCDF_libs})
|
||||||
|
set (NETCDF_INCLUDE_DIRS ${NetCDF_includes})
|
||||||
|
|
||||||
|
# handle the QUIETLY and REQUIRED arguments and set NETCDF_FOUND to TRUE if
|
||||||
|
# all listed variables are TRUE
|
||||||
|
include (FindPackageHandleStandardArgs)
|
||||||
|
find_package_handle_standard_args (NetCDF
|
||||||
|
DEFAULT_MSG NETCDF_LIBRARIES NETCDF_INCLUDE_DIRS NETCDF_HAS_INTERFACES)
|
||||||
29
cmake/Modules/FindQE.cmake
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# - Find quantum-espresso
|
||||||
|
# Find the native QE headers and libraries.
|
||||||
|
#
|
||||||
|
# QE_INCLUDE_DIRS - where to find quantum-espresso.h, etc.
|
||||||
|
# QE_LIBRARIES - List of libraries when using quantum-espresso.
|
||||||
|
# QE_FOUND - True if quantum-espresso found.
|
||||||
|
#
|
||||||
|
|
||||||
|
find_path(QE_INCLUDE_DIR libqecouple.h PATH_SUFFIXES COUPLE/include)
|
||||||
|
|
||||||
|
find_library(QECOUPLE_LIBRARY NAMES qecouple)
|
||||||
|
find_library(PW_LIBRARY NAMES pw)
|
||||||
|
find_library(QEMOD_LIBRARY NAMES qemod)
|
||||||
|
find_library(QEFFT_LIBRARY NAMES qefft)
|
||||||
|
find_library(QELA_LIBRARY NAMES qela)
|
||||||
|
find_library(CLIB_LIBRARY NAMES clib)
|
||||||
|
find_library(IOTK_LIBRARY NAMES iotk)
|
||||||
|
|
||||||
|
|
||||||
|
set(QE_LIBRARIES ${QECOUPLE_LIBRARY} ${PW_LIBRARY} ${QEMOD_LIBRARY} ${QEFFT_LIBRARY} ${QELA_LIBRARY} ${CLIB_LIBRARY} ${IOTK_LIBRARY})
|
||||||
|
set(QE_INCLUDE_DIRS ${QE_INCLUDE_DIR})
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
# handle the QUIETLY and REQUIRED arguments and set QE_FOUND to TRUE
|
||||||
|
# if all listed variables are TRUE
|
||||||
|
|
||||||
|
find_package_handle_standard_args(QE DEFAULT_MSG QECOUPLE_LIBRARY PW_LIBRARY QEMOD_LIBRARY QEFFT_LIBRARY QELA_LIBRARY CLIB_LIBRARY IOTK_LIBRARY QE_INCLUDE_DIR)
|
||||||
|
|
||||||
|
mark_as_advanced(QE_INCLUDE_DIR QECOUPLE_LIBRARY PW_LIBRARY QEMOD_LIBRARY QEFFT_LIBRARY QELA_LIBRARY CLIB_LIBRARY IOTK_LIBRARY)
|
||||||
18
cmake/Modules/FindQUIP.cmake
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# - Find quip
|
||||||
|
# Find the native QUIP libraries.
|
||||||
|
#
|
||||||
|
# QUIP_LIBRARIES - List of libraries when using fftw3.
|
||||||
|
# QUIP_FOUND - True if fftw3 found.
|
||||||
|
#
|
||||||
|
|
||||||
|
find_library(QUIP_LIBRARY NAMES quip)
|
||||||
|
|
||||||
|
set(QUIP_LIBRARIES ${QUIP_LIBRARY})
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
# handle the QUIETLY and REQUIRED arguments and set QUIP_FOUND to TRUE
|
||||||
|
# if all listed variables are TRUE
|
||||||
|
|
||||||
|
find_package_handle_standard_args(QUIP DEFAULT_MSG QUIP_LIBRARY)
|
||||||
|
|
||||||
|
mark_as_advanced(QUIP_LIBRARY)
|
||||||
22
cmake/Modules/FindVORO.cmake
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# - Find voro++
|
||||||
|
# Find the native VORO headers and libraries.
|
||||||
|
#
|
||||||
|
# VORO_INCLUDE_DIRS - where to find voro++.hh, etc.
|
||||||
|
# VORO_LIBRARIES - List of libraries when using voro++.
|
||||||
|
# VORO_FOUND - True if voro++ found.
|
||||||
|
#
|
||||||
|
|
||||||
|
find_path(VORO_INCLUDE_DIR voro++.hh PATH_SUFFIXES voro++)
|
||||||
|
|
||||||
|
find_library(VORO_LIBRARY NAMES voro++)
|
||||||
|
|
||||||
|
set(VORO_LIBRARIES ${VORO_LIBRARY})
|
||||||
|
set(VORO_INCLUDE_DIRS ${VORO_INCLUDE_DIR})
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
# handle the QUIETLY and REQUIRED arguments and set VORO_FOUND to TRUE
|
||||||
|
# if all listed variables are TRUE
|
||||||
|
|
||||||
|
find_package_handle_standard_args(VORO DEFAULT_MSG VORO_LIBRARY VORO_INCLUDE_DIR)
|
||||||
|
|
||||||
|
mark_as_advanced(VORO_INCLUDE_DIR VORO_LIBRARY )
|
||||||
18
cmake/Modules/OpenCLUtils.cmake
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
function(GenerateOpenCLHeader varname outfile files)
|
||||||
|
message("Creating ${outfile}...")
|
||||||
|
file(WRITE ${outfile} "const char * ${varname} = \n")
|
||||||
|
math(EXPR ARG_END "${ARGC}-1")
|
||||||
|
|
||||||
|
foreach(IDX RANGE 2 ${ARG_END})
|
||||||
|
list(GET ARGV ${IDX} filename)
|
||||||
|
file(READ ${filename} content)
|
||||||
|
string(REGEX REPLACE "\\s*//[^\n]*\n" "" content "${content}")
|
||||||
|
string(REGEX REPLACE "\\\\" "\\\\\\\\" content "${content}")
|
||||||
|
string(REGEX REPLACE "\"" "\\\\\"" content "${content}")
|
||||||
|
string(REGEX REPLACE "([^\n]+)\n" "\"\\1\\\\n\"\n" content "${content}")
|
||||||
|
string(REGEX REPLACE "\n+" "\n" content "${content}")
|
||||||
|
file(APPEND ${outfile} "${content}")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
file(APPEND ${outfile} ";\n")
|
||||||
|
endfunction(GenerateOpenCLHeader)
|
||||||
183
cmake/Modules/StyleHeaderUtils.cmake
Normal file
@ -0,0 +1,183 @@
|
|||||||
|
function(FindStyleHeaders path style_class file_pattern headers)
|
||||||
|
file(GLOB files "${path}/${file_pattern}*.h")
|
||||||
|
get_property(hlist GLOBAL PROPERTY ${headers})
|
||||||
|
|
||||||
|
foreach(file_name ${files})
|
||||||
|
file(STRINGS ${file_name} is_style LIMIT_COUNT 1 REGEX ${style_class})
|
||||||
|
if(is_style)
|
||||||
|
list(APPEND hlist ${file_name})
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
set_property(GLOBAL PROPERTY ${headers} "${hlist}")
|
||||||
|
endfunction(FindStyleHeaders)
|
||||||
|
|
||||||
|
function(AddStyleHeader path headers)
|
||||||
|
get_property(hlist GLOBAL PROPERTY ${headers})
|
||||||
|
list(APPEND hlist ${path})
|
||||||
|
set_property(GLOBAL PROPERTY ${headers} "${hlist}")
|
||||||
|
endfunction(AddStyleHeader)
|
||||||
|
|
||||||
|
function(FindStyleHeadersExt path style_class extension headers sources)
|
||||||
|
get_property(hlist GLOBAL PROPERTY ${headers})
|
||||||
|
get_property(slist GLOBAL PROPERTY ${sources})
|
||||||
|
set(ext_list)
|
||||||
|
get_filename_component(abs_path "${path}" ABSOLUTE)
|
||||||
|
|
||||||
|
foreach(file_name ${hlist})
|
||||||
|
get_filename_component(basename ${file_name} NAME_WE)
|
||||||
|
set(ext_file_name "${abs_path}/${basename}_${extension}.h")
|
||||||
|
if(EXISTS "${ext_file_name}")
|
||||||
|
file(STRINGS ${ext_file_name} is_style LIMIT_COUNT 1 REGEX ${style_class})
|
||||||
|
if(is_style)
|
||||||
|
list(APPEND ext_list ${ext_file_name})
|
||||||
|
|
||||||
|
set(source_file_name "${abs_path}/${basename}_${extension}.cpp")
|
||||||
|
if(EXISTS "${source_file_name}")
|
||||||
|
list(APPEND slist ${source_file_name})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
list(APPEND hlist ${ext_list})
|
||||||
|
set_property(GLOBAL PROPERTY ${headers} "${hlist}")
|
||||||
|
set_property(GLOBAL PROPERTY ${sources} "${slist}")
|
||||||
|
endfunction(FindStyleHeadersExt)
|
||||||
|
|
||||||
|
function(CreateStyleHeader path filename)
|
||||||
|
math(EXPR N "${ARGC}-2")
|
||||||
|
|
||||||
|
set(temp "")
|
||||||
|
if(N GREATER 0)
|
||||||
|
math(EXPR ARG_END "${ARGC}-1")
|
||||||
|
|
||||||
|
foreach(IDX RANGE 2 ${ARG_END})
|
||||||
|
list(GET ARGV ${IDX} FNAME)
|
||||||
|
get_filename_component(FNAME ${FNAME} NAME)
|
||||||
|
set(temp "${temp}#include \"${FNAME}\"\n")
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
message(STATUS "Generating ${filename}...")
|
||||||
|
file(WRITE "${path}/${filename}.tmp" "${temp}" )
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${path}/${filename}.tmp" "${path}/${filename}")
|
||||||
|
endfunction(CreateStyleHeader)
|
||||||
|
|
||||||
|
function(GenerateStyleHeader path property style)
|
||||||
|
get_property(files GLOBAL PROPERTY ${property})
|
||||||
|
#message("${property} = ${files}")
|
||||||
|
CreateStyleHeader("${path}" "style_${style}.h" ${files})
|
||||||
|
endfunction(GenerateStyleHeader)
|
||||||
|
|
||||||
|
function(RegisterNBinStyles search_path)
|
||||||
|
FindStyleHeaders(${search_path} NBIN_CLASS nbin_ NBIN ) # nbin ) # neighbor
|
||||||
|
endfunction(RegisterNBinStyles)
|
||||||
|
|
||||||
|
function(RegisterNPairStyles search_path)
|
||||||
|
FindStyleHeaders(${search_path} NPAIR_CLASS npair_ NPAIR ) # npair ) # neighbor
|
||||||
|
endfunction(RegisterNPairStyles)
|
||||||
|
|
||||||
|
function(RegisterNBinStyle path)
|
||||||
|
AddStyleHeader(${path} NBIN)
|
||||||
|
endfunction(RegisterNBinStyle)
|
||||||
|
|
||||||
|
function(RegisterNPairStyle path)
|
||||||
|
AddStyleHeader(${path} NPAIR)
|
||||||
|
endfunction(RegisterNPairStyle)
|
||||||
|
|
||||||
|
function(RegisterStyles search_path)
|
||||||
|
FindStyleHeaders(${search_path} ANGLE_CLASS angle_ ANGLE ) # angle ) # force
|
||||||
|
FindStyleHeaders(${search_path} ATOM_CLASS atom_vec_ ATOM_VEC ) # atom ) # atom atom_vec_hybrid
|
||||||
|
FindStyleHeaders(${search_path} BODY_CLASS body_ BODY ) # body ) # atom_vec_body
|
||||||
|
FindStyleHeaders(${search_path} BOND_CLASS bond_ BOND ) # bond ) # force
|
||||||
|
FindStyleHeaders(${search_path} COMMAND_CLASS "" COMMAND ) # command ) # input
|
||||||
|
FindStyleHeaders(${search_path} COMPUTE_CLASS compute_ COMPUTE ) # compute ) # modify
|
||||||
|
FindStyleHeaders(${search_path} DIHEDRAL_CLASS dihedral_ DIHEDRAL ) # dihedral ) # force
|
||||||
|
FindStyleHeaders(${search_path} DUMP_CLASS dump_ DUMP ) # dump ) # output write_dump
|
||||||
|
FindStyleHeaders(${search_path} FIX_CLASS fix_ FIX ) # fix ) # modify
|
||||||
|
FindStyleHeaders(${search_path} IMPROPER_CLASS improper_ IMPROPER ) # improper ) # force
|
||||||
|
FindStyleHeaders(${search_path} INTEGRATE_CLASS "" INTEGRATE ) # integrate ) # update
|
||||||
|
FindStyleHeaders(${search_path} KSPACE_CLASS "" KSPACE ) # kspace ) # force
|
||||||
|
FindStyleHeaders(${search_path} MINIMIZE_CLASS min_ MINIMIZE ) # minimize ) # update
|
||||||
|
FindStyleHeaders(${search_path} NBIN_CLASS nbin_ NBIN ) # nbin ) # neighbor
|
||||||
|
FindStyleHeaders(${search_path} NPAIR_CLASS npair_ NPAIR ) # npair ) # neighbor
|
||||||
|
FindStyleHeaders(${search_path} NSTENCIL_CLASS nstencil_ NSTENCIL ) # nstencil ) # neighbor
|
||||||
|
FindStyleHeaders(${search_path} NTOPO_CLASS ntopo_ NTOPO ) # ntopo ) # neighbor
|
||||||
|
FindStyleHeaders(${search_path} PAIR_CLASS pair_ PAIR ) # pair ) # force
|
||||||
|
FindStyleHeaders(${search_path} READER_CLASS reader_ READER ) # reader ) # read_dump
|
||||||
|
FindStyleHeaders(${search_path} REGION_CLASS region_ REGION ) # region ) # domain
|
||||||
|
endfunction(RegisterStyles)
|
||||||
|
|
||||||
|
function(RemovePackageHeader headers pkg_header)
|
||||||
|
get_property(hlist GLOBAL PROPERTY ${headers})
|
||||||
|
list(REMOVE_ITEM hlist ${pkg_header})
|
||||||
|
set_property(GLOBAL PROPERTY ${headers} "${hlist}")
|
||||||
|
endfunction(RemovePackageHeader)
|
||||||
|
|
||||||
|
function(DetectAndRemovePackageHeader fname)
|
||||||
|
RemovePackageHeader(ANGLE ${fname})
|
||||||
|
RemovePackageHeader(ATOM_VEC ${fname})
|
||||||
|
RemovePackageHeader(BODY ${fname})
|
||||||
|
RemovePackageHeader(BOND ${fname})
|
||||||
|
RemovePackageHeader(COMMAND ${fname})
|
||||||
|
RemovePackageHeader(COMPUTE ${fname})
|
||||||
|
RemovePackageHeader(DIHEDRAL ${fname})
|
||||||
|
RemovePackageHeader(DUMP ${fname})
|
||||||
|
RemovePackageHeader(FIX ${fname})
|
||||||
|
RemovePackageHeader(IMPROPER ${fname})
|
||||||
|
RemovePackageHeader(INTEGRATE ${fname})
|
||||||
|
RemovePackageHeader(KSPACE ${fname})
|
||||||
|
RemovePackageHeader(MINIMIZE ${fname})
|
||||||
|
RemovePackageHeader(NBIN ${fname})
|
||||||
|
RemovePackageHeader(NPAIR ${fname})
|
||||||
|
RemovePackageHeader(NSTENCIL ${fname})
|
||||||
|
RemovePackageHeader(NTOPO ${fname})
|
||||||
|
RemovePackageHeader(PAIR ${fname})
|
||||||
|
RemovePackageHeader(READER ${fname})
|
||||||
|
RemovePackageHeader(REGION ${fname})
|
||||||
|
endfunction(DetectAndRemovePackageHeader)
|
||||||
|
|
||||||
|
function(RegisterStylesExt search_path extension sources)
|
||||||
|
FindStyleHeadersExt(${search_path} ANGLE_CLASS ${extension} ANGLE ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} ATOM_CLASS ${extension} ATOM_VEC ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} BODY_CLASS ${extension} BODY ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} BOND_CLASS ${extension} BOND ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} COMMAND_CLASS ${extension} COMMAND ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} COMPUTE_CLASS ${extension} COMPUTE ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} DIHEDRAL_CLASS ${extension} DIHEDRAL ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} DUMP_CLASS ${extension} DUMP ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} FIX_CLASS ${extension} FIX ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} IMPROPER_CLASS ${extension} IMPROPER ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} INTEGRATE_CLASS ${extension} INTEGRATE ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} KSPACE_CLASS ${extension} KSPACE ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} MINIMIZE_CLASS ${extension} MINIMIZE ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} NBIN_CLASS ${extension} NBIN ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} NPAIR_CLASS ${extension} NPAIR ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} NSTENCIL_CLASS ${extension} NSTENCIL ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} NTOPO_CLASS ${extension} NTOPO ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} PAIR_CLASS ${extension} PAIR ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} READER_CLASS ${extension} READER ${sources})
|
||||||
|
FindStyleHeadersExt(${search_path} REGION_CLASS ${extension} REGION ${sources})
|
||||||
|
endfunction(RegisterStylesExt)
|
||||||
|
|
||||||
|
function(GenerateStyleHeaders output_path)
|
||||||
|
GenerateStyleHeader(${output_path} ANGLE angle ) # force
|
||||||
|
GenerateStyleHeader(${output_path} ATOM_VEC atom ) # atom atom_vec_hybrid
|
||||||
|
GenerateStyleHeader(${output_path} BODY body ) # atom_vec_body
|
||||||
|
GenerateStyleHeader(${output_path} BOND bond ) # force
|
||||||
|
GenerateStyleHeader(${output_path} COMMAND command ) # input
|
||||||
|
GenerateStyleHeader(${output_path} COMPUTE compute ) # modify
|
||||||
|
GenerateStyleHeader(${output_path} DIHEDRAL dihedral ) # force
|
||||||
|
GenerateStyleHeader(${output_path} DUMP dump ) # output write_dump
|
||||||
|
GenerateStyleHeader(${output_path} FIX fix ) # modify
|
||||||
|
GenerateStyleHeader(${output_path} IMPROPER improper ) # force
|
||||||
|
GenerateStyleHeader(${output_path} INTEGRATE integrate ) # update
|
||||||
|
GenerateStyleHeader(${output_path} KSPACE kspace ) # force
|
||||||
|
GenerateStyleHeader(${output_path} MINIMIZE minimize ) # update
|
||||||
|
GenerateStyleHeader(${output_path} NBIN nbin ) # neighbor
|
||||||
|
GenerateStyleHeader(${output_path} NPAIR npair ) # neighbor
|
||||||
|
GenerateStyleHeader(${output_path} NSTENCIL nstencil ) # neighbor
|
||||||
|
GenerateStyleHeader(${output_path} NTOPO ntopo ) # neighbor
|
||||||
|
GenerateStyleHeader(${output_path} PAIR pair ) # force
|
||||||
|
GenerateStyleHeader(${output_path} READER reader ) # read_dump
|
||||||
|
GenerateStyleHeader(${output_path} REGION region ) # domain
|
||||||
|
endfunction(GenerateStyleHeaders)
|
||||||
19
cmake/README.md
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
cmake-buildsystem
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
To use the cmake build system instead of the make-driven one, do:
|
||||||
|
```
|
||||||
|
cmake /path/to/lammps/source/cmake
|
||||||
|
```
|
||||||
|
(please note the cmake directory as the very end)
|
||||||
|
|
||||||
|
To enable package, e.g. GPU do
|
||||||
|
```
|
||||||
|
cmake /path/to/lammps/source/cmake -DENABLE_GPU=ON
|
||||||
|
```
|
||||||
|
|
||||||
|
cmake has many many options, do get an overview use the curses-based cmake interface, ccmake:
|
||||||
|
```
|
||||||
|
ccmake /path/to/lammps/source/cmake
|
||||||
|
```
|
||||||
|
(Don't forget to press "g" for generate once you are done with configuring)
|
||||||
4
cmake/gpu/lal_pppm_d.cu
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#define grdtyp double
|
||||||
|
#define grdtyp4 double4
|
||||||
|
|
||||||
|
#include "lal_pppm.cu"
|
||||||
4
cmake/gpu/lal_pppm_f.cu
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#define grdtyp float
|
||||||
|
#define grdtyp4 float4
|
||||||
|
|
||||||
|
#include "lal_pppm.cu"
|
||||||
18
cmake/pkgconfig/liblammps.pc.in
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# pkg-config file for lammps
|
||||||
|
# https://people.freedesktop.org/~dbn/pkg-config-guide.html
|
||||||
|
# Usage: cc `pkg-config --cflags --libs liblammps` -o myapp myapp.c
|
||||||
|
# after you added @CMAKE_INSTALL_FULL_LIBDIR@/pkg-config to PKG_CONFIG_PATH,
|
||||||
|
# e.g. export PKG_CONFIG_PATH=@CMAKE_INSTALL_FULL_LIBDIR@/pkgconfig
|
||||||
|
|
||||||
|
prefix=@CMAKE_INSTALL_FULL_PREFIX@
|
||||||
|
libdir=@CMAKE_INSTALL_FULL_LIBDIR@
|
||||||
|
includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
|
||||||
|
|
||||||
|
Name: liblammps@LAMMPS_MACHINE@
|
||||||
|
Description: Large-scale Atomic/Molecular Massively Parallel Simulator Library
|
||||||
|
URL: http://lammps.sandia.gov
|
||||||
|
Version:
|
||||||
|
Requires:
|
||||||
|
Libs: -L${libdir} -llammps@LAMMPS_MACHINE@
|
||||||
|
Libs.private: -lm
|
||||||
|
Cflags: -I${includedir} @LAMMPS_API_DEFINES@
|
||||||
@ -20,6 +20,7 @@ ifeq ($(shell which virtualenv >/dev/null 2>&1; echo $$?), 0)
|
|||||||
HAS_VIRTUALENV = YES
|
HAS_VIRTUALENV = YES
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
SPHINXEXTRA = -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocessing.cpu_count())')
|
||||||
SOURCES=$(wildcard src/*.txt)
|
SOURCES=$(wildcard src/*.txt)
|
||||||
OBJECTS=$(SOURCES:src/%.txt=$(RSTDIR)/%.rst)
|
OBJECTS=$(SOURCES:src/%.txt=$(RSTDIR)/%.rst)
|
||||||
|
|
||||||
@ -55,7 +56,7 @@ html: $(OBJECTS) $(ANCHORCHECK)
|
|||||||
@(\
|
@(\
|
||||||
. $(VENV)/bin/activate ;\
|
. $(VENV)/bin/activate ;\
|
||||||
cp -r src/* $(RSTDIR)/ ;\
|
cp -r src/* $(RSTDIR)/ ;\
|
||||||
sphinx-build -j 8 -b html -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\
|
sphinx-build $(SPHINXEXTRA) -b html -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\
|
||||||
echo "############################################" ;\
|
echo "############################################" ;\
|
||||||
doc_anchor_check src/*.txt ;\
|
doc_anchor_check src/*.txt ;\
|
||||||
echo "############################################" ;\
|
echo "############################################" ;\
|
||||||
@ -91,7 +92,7 @@ epub: $(OBJECTS)
|
|||||||
@(\
|
@(\
|
||||||
. $(VENV)/bin/activate ;\
|
. $(VENV)/bin/activate ;\
|
||||||
cp -r src/* $(RSTDIR)/ ;\
|
cp -r src/* $(RSTDIR)/ ;\
|
||||||
sphinx-build -j 8 -b epub -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) epub ;\
|
sphinx-build $(SPHINXEXTRA) -b epub -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) epub ;\
|
||||||
deactivate ;\
|
deactivate ;\
|
||||||
)
|
)
|
||||||
@mv epub/LAMMPS.epub .
|
@mv epub/LAMMPS.epub .
|
||||||
@ -159,7 +160,7 @@ $(VENV):
|
|||||||
@( \
|
@( \
|
||||||
virtualenv -p $(PYTHON) $(VENV); \
|
virtualenv -p $(PYTHON) $(VENV); \
|
||||||
. $(VENV)/bin/activate; \
|
. $(VENV)/bin/activate; \
|
||||||
pip install Sphinx==1.5.6; \
|
pip install Sphinx; \
|
||||||
pip install sphinxcontrib-images; \
|
pip install sphinxcontrib-images; \
|
||||||
deactivate;\
|
deactivate;\
|
||||||
)
|
)
|
||||||
|
|||||||
BIN
doc/src/Eqs/angle_class2_p6.jpg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
doc/src/Eqs/angle_cosine_buck6d.jpg
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
doc/src/Eqs/bond_gromos.jpg
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
10
doc/src/Eqs/bond_gromos.tex
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
\documentclass[12pt]{article}
|
||||||
|
\pagestyle{empty}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
$$
|
||||||
|
E = K (r^2 - r_0^2)^2
|
||||||
|
$$
|
||||||
|
|
||||||
|
\end{document}
|
||||||
BIN
doc/src/Eqs/fix_mvv_dpd.jpg
Normal file
|
After Width: | Height: | Size: 26 KiB |
21
doc/src/Eqs/fix_mvv_dpd.tex
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
\documentclass[12pt]{article}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
$$
|
||||||
|
v(t+\frac{\Delta t}{2}) = v(t) + \frac{\Delta t}{2}\cdot a(t),
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
r(t+\Delta t) = r(t) + \Delta t\cdot v(t+\frac{\Delta t}{2}),
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
a(t+\Delta t) = \frac{1}{m}\cdot F\left[ r(t+\Delta t), v(t) +\lambda \cdot \Delta t\cdot a(t)\right],
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
v(t+\Delta t) = v(t+\frac{\Delta t}{2}) + \frac{\Delta t}{2}\cdot a(t+\Delta t)
|
||||||
|
$$
|
||||||
|
|
||||||
|
\end{document}
|
||||||
BIN
doc/src/Eqs/fix_rhok.jpg
Normal file
|
After Width: | Height: | Size: 18 KiB |
11
doc/src/Eqs/fix_rhok.tex
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
\documentclass[12pt]{article}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
\begin{eqnarray*}
|
||||||
|
U &=& \frac{1}{2} K (|\rho_{\vec{k}}| - a)^2 \\
|
||||||
|
\rho_{\vec{k}} &=& \sum_j^N \exp(-i\vec{k} \cdot \vec{r}_j )/\sqrt{N} \\
|
||||||
|
\vec{k} &=& (2\pi n_x /L_x , 2\pi n_y /L_y , 2\pi n_z/L_z )
|
||||||
|
\end{eqnarray*}
|
||||||
|
|
||||||
|
\end{document}
|
||||||
BIN
doc/src/Eqs/improper_inversion_harmonic.jpg
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
doc/src/Eqs/pair_buck6d.jpg
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
9
doc/src/Eqs/pair_buck6d.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
\documentclass[12pt]{article}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
\begin{eqnarray*}
|
||||||
|
E = A e^{-\kappa r} - \frac{C}{r^6} \cdot \frac{1}{1 + D r^{14}} \qquad r < r_c \\
|
||||||
|
\end{eqnarray*}
|
||||||
|
|
||||||
|
\end{document}
|
||||||
BIN
doc/src/Eqs/pair_coul_gauss.jpg
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
doc/src/Eqs/pair_edpd_force.jpg
Normal file
|
After Width: | Height: | Size: 32 KiB |
33
doc/src/Eqs/pair_edpd_force.tex
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
\documentclass[12pt]{article}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
$$
|
||||||
|
\mathbf{F}_{ij}^{C} = \alpha_{ij}{\omega_{C}}(r_{ij})\mathbf{e}_{ij},
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
\mathbf{F}_{ij}^{D} = -\gamma {\omega_{D}}(r_{ij})(\mathbf{e}_{ij} \cdot \mathbf{v}_{ij})\mathbf{e}_{ij},
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
\mathbf{F}_{ij}^{R} = \sigma {\omega_{R}}(r_{ij}){\xi_{ij}}\Delta t^{-1/2} \mathbf{e}_{ij},
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
\omega_{C}(r) = 1 - r/r_c,
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
\alpha_{ij} = A\cdot k_B(T_i + T_j)/2,
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
\omega_{D}(r) = \omega^2_{R}(r) = (1-r/r_c)^s,
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
\sigma_{ij}^2 = 4\gamma k_B T_i T_j/(T_i + T_j),
|
||||||
|
$$
|
||||||
|
|
||||||
|
\end{document}
|
||||||
BIN
doc/src/Eqs/pair_edpd_gov.jpg
Normal file
|
After Width: | Height: | Size: 17 KiB |
15
doc/src/Eqs/pair_edpd_gov.tex
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
\documentclass[12pt]{article}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
$$
|
||||||
|
\frac{\mathrm{d}^2 \mathbf{r}_i}{\mathrm{d} t^2}=
|
||||||
|
\frac{\mathrm{d} \mathbf{v}_i}{\mathrm{d} t}
|
||||||
|
=\mathbf{F}_{i}=\sum_{i\neq j}(\mathbf{F}_{ij}^{C}+\mathbf{F}_{ij}^{D}+\mathbf{F}_{ij}^{R}),
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
C_v\frac{\mathrm{d} T_i}{\mathrm{d} t}= q_{i} = \sum_{i\neq j}(q_{ij}^{C}+q_{ij}^{V}+q_{ij}^{R}),
|
||||||
|
$$
|
||||||
|
|
||||||
|
\end{document}
|
||||||
BIN
doc/src/Eqs/pair_edpd_heat.jpg
Normal file
|
After Width: | Height: | Size: 46 KiB |
29
doc/src/Eqs/pair_edpd_heat.tex
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
\documentclass[12pt]{article}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
$$
|
||||||
|
q_i^C = \sum_{j \ne i} k_{ij} \omega_{CT}(r_{ij}) \left( \frac{1}{T_i} - \frac{1}{T_j} \right),
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
q_i^V = \frac{1}{2 C_v}\sum_{j \ne i}{ \left\{ \omega_D(r_{ij})\left[\gamma_{ij} \left( \mathbf{e}_{ij} \cdot \mathbf{v}_{ij} \right)^2 - \frac{\left( \sigma _{ij} \right)^2}{m}\right] - \sigma _{ij} \omega_R(r_{ij})\left( \mathbf{e}_{ij} \cdot \mathbf{v}_{ij} \right){\xi_{ij}} \right\} },
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
q_i^R = \sum_{j \ne i} \beta _{ij} \omega_{RT}(r_{ij}) d {t^{ - 1/2}} \xi_{ij}^e,
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
\omega_{CT}(r)=\omega_{RT}^2(r)=\left(1-r/r_{ct}\right)^{s_T},
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
k_{ij}=C_v^2\kappa(T_i + T_j)^2/4k_B,
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
\beta_{ij}^2=2k_Bk_{ij},
|
||||||
|
$$
|
||||||
|
|
||||||
|
\end{document}
|
||||||
BIN
doc/src/Eqs/pair_edpd_kappa.jpg
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
9
doc/src/Eqs/pair_edpd_kappa.tex
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
\documentclass[12pt]{article}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
$$
|
||||||
|
\kappa = \frac{315k_B\upsilon }{2\pi \rho C_v r_{ct}^5}\frac{1}{Pr},
|
||||||
|
$$
|
||||||
|
|
||||||
|
\end{document}
|
||||||
BIN
doc/src/Eqs/pair_mdpd_force.jpg
Normal file
|
After Width: | Height: | Size: 19 KiB |
17
doc/src/Eqs/pair_mdpd_force.tex
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
\documentclass[12pt]{article}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
$$
|
||||||
|
\mathbf{F}_{ij}^C = Aw_c(r_{ij})\mathbf{e}_{ij} + B(\rho_i+\rho_j)w_d(r_{ij})\mathbf{e}_{ij},
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
\mathbf{F}_{ij}^{D} = -\gamma {\omega_{D}}(r_{ij})(\mathbf{e}_{ij} \cdot \mathbf{v}_{ij})\mathbf{e}_{ij},
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
\mathbf{F}_{ij}^{R} = \sigma {\omega_{R}}(r_{ij}){\xi_{ij}}\Delta t^{-1/2} \mathbf{e}_{ij},
|
||||||
|
$$
|
||||||
|
|
||||||
|
\end{document}
|
||||||
BIN
doc/src/Eqs/pair_tdpd_flux.jpg
Normal file
|
After Width: | Height: | Size: 22 KiB |
21
doc/src/Eqs/pair_tdpd_flux.tex
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
\documentclass[12pt]{article}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
$$
|
||||||
|
Q_{ij}^D = -\kappa_{ij} w_{DC}(r_{ij}) \left( C_i - C_j \right),
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
Q_{ij}^R = \epsilon_{ij}\left( C_i + C_j \right) w_{RC}(r_{ij}) \xi_{ij},
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
w_{DC}(r_{ij})=w^2_{RC}(r_{ij}) = (1 - r/r_{cc})^{\rm power\_{cc}},
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
\epsilon_{ij}^2 = m_s^2\kappa_{ij}\rho,
|
||||||
|
$$
|
||||||
|
|
||||||
|
\end{document}
|
||||||
BIN
doc/src/Eqs/pair_tdpd_force.jpg
Normal file
|
After Width: | Height: | Size: 25 KiB |
29
doc/src/Eqs/pair_tdpd_force.tex
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
\documentclass[12pt]{article}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
$$
|
||||||
|
\mathbf{F}_{ij}^{C} = A{\omega_{C}}(r_{ij})\mathbf{e}_{ij},
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
\mathbf{F}_{ij}^{D} = -\gamma {\omega_{D}}(r_{ij})(\mathbf{e}_{ij} \cdot \mathbf{v}_{ij})\mathbf{e}_{ij},
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
\mathbf{F}_{ij}^{R} = \sigma {\omega_{R}}(r_{ij}){\xi_{ij}}\Delta t^{-1/2} \mathbf{e}_{ij},
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
\omega_{C}(r) = 1 - r/r_c,
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
\omega_{D}(r) = \omega^2_{R}(r) = (1-r/r_c)^{\rm power\_f},
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
\sigma^2 = 2\gamma k_B T,
|
||||||
|
$$
|
||||||
|
|
||||||
|
\end{document}
|
||||||
BIN
doc/src/Eqs/pair_tdpd_gov.jpg
Normal file
|
After Width: | Height: | Size: 18 KiB |
13
doc/src/Eqs/pair_tdpd_gov.tex
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
\documentclass[12pt]{article}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
$$
|
||||||
|
\frac{\mathrm{d}^2 \mathbf{r}_i}{\mathrm{d} t^2} = \frac{\mathrm{d} \mathbf{v}_i}{\mathrm{d} t}=\mathbf{F}_{i}=\sum_{i\neq j}(\mathbf{F}_{ij}^{C}+\mathbf{F}_{ij}^{D}+\mathbf{F}_{ij}^{R}),
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
\frac{\mathrm{d} C_{i}}{\mathrm{d} t}= Q_{i} = \sum_{i\neq j}(Q_{ij}^{D}+Q_{ij}^{R}) + Q_{i}^{S},
|
||||||
|
$$
|
||||||
|
|
||||||
|
\end{document}
|
||||||
BIN
doc/src/Eqs/pair_ufm.jpg
Normal file
|
After Width: | Height: | Size: 17 KiB |
14
doc/src/Eqs/pair_ufm.tex
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
\documentclass[12pt]{article}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
$$
|
||||||
|
E = -\varepsilon\, \ln{\left[1-\exp{\left(-r^{2}/\sigma^{2}\right)}\right]} \qquad r < r_c
|
||||||
|
$$
|
||||||
|
|
||||||
|
$$
|
||||||
|
\varepsilon = p\,k_B\,T
|
||||||
|
$$
|
||||||
|
|
||||||
|
\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/examples_edpd.jpg
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
doc/src/JPG/examples_mdpd.gif
Normal file
|
After Width: | Height: | Size: 895 KiB |
BIN
doc/src/JPG/examples_mdpd_first.jpg
Normal file
|
After Width: | Height: | Size: 113 KiB |
BIN
doc/src/JPG/examples_mdpd_last.jpg
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
doc/src/JPG/examples_tdpd.jpg
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
doc/src/JPG/uef_frames.jpg
Normal file
|
After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 19 KiB |
@ -1,7 +1,7 @@
|
|||||||
<!-- HTML_ONLY -->
|
<!-- HTML_ONLY -->
|
||||||
<HEAD>
|
<HEAD>
|
||||||
<TITLE>LAMMPS Users Manual</TITLE>
|
<TITLE>LAMMPS Users Manual</TITLE>
|
||||||
<META NAME="docnumber" CONTENT="24 Jul 2017 version">
|
<META NAME="docnumber" CONTENT="5 Feb 2018 version">
|
||||||
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
|
<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.">
|
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
|
||||||
</HEAD>
|
</HEAD>
|
||||||
@ -21,7 +21,7 @@
|
|||||||
<H1></H1>
|
<H1></H1>
|
||||||
|
|
||||||
LAMMPS Documentation :c,h3
|
LAMMPS Documentation :c,h3
|
||||||
24 Jul 2017 version :c,h4
|
5 Feb 2018 version :c,h4
|
||||||
|
|
||||||
Version info: :h4
|
Version info: :h4
|
||||||
|
|
||||||
@ -79,7 +79,7 @@ bug reports and feature requests are mainly coordinated through the
|
|||||||
"LAMMPS project on GitHub."_https://github.com/lammps/lammps
|
"LAMMPS project on GitHub."_https://github.com/lammps/lammps
|
||||||
The lammps.org domain, currently hosting "public continuous integration
|
The lammps.org domain, currently hosting "public continuous integration
|
||||||
testing"_https://ci.lammps.org/job/lammps/ and "precompiled Linux
|
testing"_https://ci.lammps.org/job/lammps/ and "precompiled Linux
|
||||||
RPM and Windows installer packages"_http://rpm.lammps.org is located
|
RPM and Windows installer packages"_http://packages.lammps.org is located
|
||||||
at Temple University and managed by Richard Berger,
|
at Temple University and managed by Richard Berger,
|
||||||
richard.berger at temple.edu.
|
richard.berger at temple.edu.
|
||||||
|
|
||||||
|
|||||||
@ -233,8 +233,8 @@ set any needed options for the package via "-pk" "command-line switch"_Section_s
|
|||||||
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
|
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=|)
|
:tb(c=2,s=|)
|
||||||
|
|
||||||
Note that the first 4 steps can be done as a single command, using the
|
Note that the first 4 steps can be done as a single command with
|
||||||
src/Make.py tool. This tool is discussed in "Section
|
suitable make command invocations. This is discussed in "Section
|
||||||
4"_Section_packages.html of the manual, and its use is
|
4"_Section_packages.html of the manual, and its use is
|
||||||
illustrated in the individual accelerator sections. Typically these
|
illustrated in the individual accelerator sections. Typically these
|
||||||
steps only need to be done once, to create an executable that uses one
|
steps only need to be done once, to create an executable that uses one
|
||||||
|
|||||||
@ -532,7 +532,8 @@ package"_Section_start.html#start_3.
|
|||||||
"dump vtk"_dump_vtk.html,
|
"dump vtk"_dump_vtk.html,
|
||||||
"group2ndx"_group2ndx.html,
|
"group2ndx"_group2ndx.html,
|
||||||
"ndx2group"_group2ndx.html,
|
"ndx2group"_group2ndx.html,
|
||||||
"temper/grem"_temper_grem.html :tb(c=3,ea=c)
|
"temper/grem"_temper_grem.html,
|
||||||
|
"temper/npt"_temper_npt.html :tb(c=3,ea=c)
|
||||||
|
|
||||||
:line
|
:line
|
||||||
|
|
||||||
@ -579,6 +580,7 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.
|
|||||||
"halt"_fix_halt.html,
|
"halt"_fix_halt.html,
|
||||||
"heat"_fix_heat.html,
|
"heat"_fix_heat.html,
|
||||||
"indent"_fix_indent.html,
|
"indent"_fix_indent.html,
|
||||||
|
"latte"_fix_latte.html,
|
||||||
"langevin (k)"_fix_langevin.html,
|
"langevin (k)"_fix_langevin.html,
|
||||||
"lineforce"_fix_lineforce.html,
|
"lineforce"_fix_lineforce.html,
|
||||||
"momentum (k)"_fix_momentum.html,
|
"momentum (k)"_fix_momentum.html,
|
||||||
@ -617,8 +619,9 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.
|
|||||||
"pour"_fix_pour.html,
|
"pour"_fix_pour.html,
|
||||||
"press/berendsen"_fix_press_berendsen.html,
|
"press/berendsen"_fix_press_berendsen.html,
|
||||||
"print"_fix_print.html,
|
"print"_fix_print.html,
|
||||||
"property/atom"_fix_property_atom.html,
|
"property/atom (k)"_fix_property_atom.html,
|
||||||
"python"_fix_python.html,
|
"python/invoke"_fix_python_invoke.html,
|
||||||
|
"python/move"_fix_python_move.html,
|
||||||
"qeq/comb (o)"_fix_qeq_comb.html,
|
"qeq/comb (o)"_fix_qeq_comb.html,
|
||||||
"qeq/dynamic"_fix_qeq.html,
|
"qeq/dynamic"_fix_qeq.html,
|
||||||
"qeq/fire"_fix_qeq.html,
|
"qeq/fire"_fix_qeq.html,
|
||||||
@ -635,10 +638,10 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.
|
|||||||
"rigid/nve (o)"_fix_rigid.html,
|
"rigid/nve (o)"_fix_rigid.html,
|
||||||
"rigid/nvt (o)"_fix_rigid.html,
|
"rigid/nvt (o)"_fix_rigid.html,
|
||||||
"rigid/small (o)"_fix_rigid.html,
|
"rigid/small (o)"_fix_rigid.html,
|
||||||
"rigid/small/nph (o)"_fix_rigid.html,
|
"rigid/small/nph"_fix_rigid.html,
|
||||||
"rigid/small/npt (o)"_fix_rigid.html,
|
"rigid/small/npt"_fix_rigid.html,
|
||||||
"rigid/small/nve (o)"_fix_rigid.html,
|
"rigid/small/nve"_fix_rigid.html,
|
||||||
"rigid/small/nvt (o)"_fix_rigid.html,
|
"rigid/small/nvt"_fix_rigid.html,
|
||||||
"setforce (k)"_fix_setforce.html,
|
"setforce (k)"_fix_setforce.html,
|
||||||
"shake"_fix_shake.html,
|
"shake"_fix_shake.html,
|
||||||
"spring"_fix_spring.html,
|
"spring"_fix_spring.html,
|
||||||
@ -666,7 +669,7 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.
|
|||||||
"wall/harmonic"_fix_wall.html,
|
"wall/harmonic"_fix_wall.html,
|
||||||
"wall/lj1043"_fix_wall.html,
|
"wall/lj1043"_fix_wall.html,
|
||||||
"wall/lj126"_fix_wall.html,
|
"wall/lj126"_fix_wall.html,
|
||||||
"wall/lj93"_fix_wall.html,
|
"wall/lj93 (k)"_fix_wall.html,
|
||||||
"wall/piston"_fix_wall_piston.html,
|
"wall/piston"_fix_wall_piston.html,
|
||||||
"wall/reflect (k)"_fix_wall_reflect.html,
|
"wall/reflect (k)"_fix_wall_reflect.html,
|
||||||
"wall/region"_fix_wall_region.html,
|
"wall/region"_fix_wall_region.html,
|
||||||
@ -681,13 +684,14 @@ package"_Section_start.html#start_3.
|
|||||||
"atc"_fix_atc.html,
|
"atc"_fix_atc.html,
|
||||||
"ave/correlate/long"_fix_ave_correlate_long.html,
|
"ave/correlate/long"_fix_ave_correlate_long.html,
|
||||||
"colvars"_fix_colvars.html,
|
"colvars"_fix_colvars.html,
|
||||||
"dpd/energy"_fix_dpd_energy.html,
|
"dpd/energy (k)"_fix_dpd_energy.html,
|
||||||
"drude"_fix_drude.html,
|
"drude"_fix_drude.html,
|
||||||
"drude/transform/direct"_fix_drude_transform.html,
|
"drude/transform/direct"_fix_drude_transform.html,
|
||||||
"drude/transform/reverse"_fix_drude_transform.html,
|
"drude/transform/reverse"_fix_drude_transform.html,
|
||||||
|
"edpd/source"_fix_dpd_source.html,
|
||||||
"eos/cv"_fix_eos_cv.html,
|
"eos/cv"_fix_eos_cv.html,
|
||||||
"eos/table"_fix_eos_table.html,
|
"eos/table"_fix_eos_table.html,
|
||||||
"eos/table/rx"_fix_eos_table_rx.html,
|
"eos/table/rx (k)"_fix_eos_table_rx.html,
|
||||||
"filter/corotate"_fix_filter_corotate.html,
|
"filter/corotate"_fix_filter_corotate.html,
|
||||||
"flow/gauss"_fix_flow_gauss.html,
|
"flow/gauss"_fix_flow_gauss.html,
|
||||||
"gle"_fix_gle.html,
|
"gle"_fix_gle.html,
|
||||||
@ -704,6 +708,9 @@ package"_Section_start.html#start_3.
|
|||||||
"meso"_fix_meso.html,
|
"meso"_fix_meso.html,
|
||||||
"manifoldforce"_fix_manifoldforce.html,
|
"manifoldforce"_fix_manifoldforce.html,
|
||||||
"meso/stationary"_fix_meso_stationary.html,
|
"meso/stationary"_fix_meso_stationary.html,
|
||||||
|
"mvv/dpd"_fix_mvv_dpd.html,
|
||||||
|
"mvv/edpd"_fix_mvv_dpd.html,
|
||||||
|
"mvv/tdpd"_fix_mvv_dpd.html,
|
||||||
"nve/dot"_fix_nve_dot.html,
|
"nve/dot"_fix_nve_dot.html,
|
||||||
"nve/dotc/langevin"_fix_nve_dotc_langevin.html,
|
"nve/dotc/langevin"_fix_nve_dotc_langevin.html,
|
||||||
"nve/manifold/rattle"_fix_nve_manifold_rattle.html,
|
"nve/manifold/rattle"_fix_nve_manifold_rattle.html,
|
||||||
@ -714,17 +721,20 @@ package"_Section_start.html#start_3.
|
|||||||
"nve/eff"_fix_nve_eff.html,
|
"nve/eff"_fix_nve_eff.html,
|
||||||
"nvt/eff"_fix_nh_eff.html,
|
"nvt/eff"_fix_nh_eff.html,
|
||||||
"nvt/sllod/eff"_fix_nvt_sllod_eff.html,
|
"nvt/sllod/eff"_fix_nvt_sllod_eff.html,
|
||||||
|
"npt/uef"_fix_nh_uef.html,
|
||||||
|
"nvt/uef"_fix_nh_uef.html,
|
||||||
"phonon"_fix_phonon.html,
|
"phonon"_fix_phonon.html,
|
||||||
"pimd"_fix_pimd.html,
|
"pimd"_fix_pimd.html,
|
||||||
"qbmsst"_fix_qbmsst.html,
|
"qbmsst"_fix_qbmsst.html,
|
||||||
"qeq/reax (ko)"_fix_qeq_reax.html,
|
"qeq/reax (ko)"_fix_qeq_reax.html,
|
||||||
"qmmm"_fix_qmmm.html,
|
"qmmm"_fix_qmmm.html,
|
||||||
"qtb"_fix_qtb.html,
|
"qtb"_fix_qtb.html,
|
||||||
"reax/c/bonds"_fix_reax_bonds.html,
|
"reax/c/bonds (k)"_fix_reax_bonds.html,
|
||||||
"reax/c/species"_fix_reaxc_species.html,
|
"reax/c/species (k)"_fix_reaxc_species.html,
|
||||||
"rx"_fix_rx.html,
|
"rhok"_fix_rhok.html,
|
||||||
|
"rx (k)"_fix_rx.html,
|
||||||
"saed/vtk"_fix_saed_vtk.html,
|
"saed/vtk"_fix_saed_vtk.html,
|
||||||
"shardlow"_fix_shardlow.html,
|
"shardlow (k)"_fix_shardlow.html,
|
||||||
"smd"_fix_smd.html,
|
"smd"_fix_smd.html,
|
||||||
"smd/adjust/dt"_fix_smd_adjust_dt.html,
|
"smd/adjust/dt"_fix_smd_adjust_dt.html,
|
||||||
"smd/integrate/tlsph"_fix_smd_integrate_tlsph.html,
|
"smd/integrate/tlsph"_fix_smd_integrate_tlsph.html,
|
||||||
@ -732,10 +742,11 @@ package"_Section_start.html#start_3.
|
|||||||
"smd/move/triangulated/surface"_fix_smd_move_triangulated_surface.html,
|
"smd/move/triangulated/surface"_fix_smd_move_triangulated_surface.html,
|
||||||
"smd/setvel"_fix_smd_setvel.html,
|
"smd/setvel"_fix_smd_setvel.html,
|
||||||
"smd/wall/surface"_fix_smd_wall_surface.html,
|
"smd/wall/surface"_fix_smd_wall_surface.html,
|
||||||
|
"tdpd/source"_fix_dpd_source.html,
|
||||||
"temp/rescale/eff"_fix_temp_rescale_eff.html,
|
"temp/rescale/eff"_fix_temp_rescale_eff.html,
|
||||||
"ti/spring"_fix_ti_spring.html,
|
"ti/spring"_fix_ti_spring.html,
|
||||||
"ttm/mod"_fix_ttm.html
|
"ttm/mod"_fix_ttm.html,
|
||||||
"wall/ees"_fix_wall_ees.html
|
"wall/ees"_fix_wall_ees.html,
|
||||||
"wall/region/ees"_fix_wall_ees.html :tb(c=6,ea=c)
|
"wall/region/ees"_fix_wall_ees.html :tb(c=6,ea=c)
|
||||||
|
|
||||||
:line
|
:line
|
||||||
@ -750,6 +761,7 @@ package"_Section_accelerate.html. This is indicated by additional
|
|||||||
letters in parenthesis: g = GPU, i = USER-INTEL, k =
|
letters in parenthesis: g = GPU, i = USER-INTEL, k =
|
||||||
KOKKOS, o = USER-OMP, t = OPT.
|
KOKKOS, o = USER-OMP, t = OPT.
|
||||||
|
|
||||||
|
"aggregate/atom"_compute_cluster_atom.html,
|
||||||
"angle"_compute_angle.html,
|
"angle"_compute_angle.html,
|
||||||
"angle/local"_compute_angle_local.html,
|
"angle/local"_compute_angle_local.html,
|
||||||
"angmom/chunk"_compute_angmom_chunk.html,
|
"angmom/chunk"_compute_angmom_chunk.html,
|
||||||
@ -775,6 +787,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
|||||||
"erotate/sphere"_compute_erotate_sphere.html,
|
"erotate/sphere"_compute_erotate_sphere.html,
|
||||||
"erotate/sphere/atom"_compute_erotate_sphere_atom.html,
|
"erotate/sphere/atom"_compute_erotate_sphere_atom.html,
|
||||||
"event/displace"_compute_event_displace.html,
|
"event/displace"_compute_event_displace.html,
|
||||||
|
"fragment/atom"_compute_cluster_atom.html,
|
||||||
"global/atom"_compute_global_atom.html,
|
"global/atom"_compute_global_atom.html,
|
||||||
"group/group"_compute_group_group.html,
|
"group/group"_compute_group_group.html,
|
||||||
"gyration"_compute_gyration.html,
|
"gyration"_compute_gyration.html,
|
||||||
@ -836,6 +849,7 @@ package"_Section_start.html#start_3.
|
|||||||
"cnp/atom"_compute_cnp_atom.html,
|
"cnp/atom"_compute_cnp_atom.html,
|
||||||
"dpd"_compute_dpd.html,
|
"dpd"_compute_dpd.html,
|
||||||
"dpd/atom"_compute_dpd_atom.html,
|
"dpd/atom"_compute_dpd_atom.html,
|
||||||
|
"edpd/temp/atom"_compute_edpd_temp_atom.html,
|
||||||
"fep"_compute_fep.html,
|
"fep"_compute_fep.html,
|
||||||
"force/tally"_compute_tally.html,
|
"force/tally"_compute_tally.html,
|
||||||
"heat/flux/tally"_compute_tally.html,
|
"heat/flux/tally"_compute_tally.html,
|
||||||
@ -846,6 +860,7 @@ package"_Section_start.html#start_3.
|
|||||||
"meso/t/atom"_compute_meso_t_atom.html,
|
"meso/t/atom"_compute_meso_t_atom.html,
|
||||||
"pe/tally"_compute_tally.html,
|
"pe/tally"_compute_tally.html,
|
||||||
"pe/mol/tally"_compute_tally.html,
|
"pe/mol/tally"_compute_tally.html,
|
||||||
|
"pressure/uef"_compute_pressure_uef.html,
|
||||||
"saed"_compute_saed.html,
|
"saed"_compute_saed.html,
|
||||||
"smd/contact/radius"_compute_smd_contact_radius.html,
|
"smd/contact/radius"_compute_smd_contact_radius.html,
|
||||||
"smd/damage"_compute_smd_damage.html,
|
"smd/damage"_compute_smd_damage.html,
|
||||||
@ -868,11 +883,13 @@ package"_Section_start.html#start_3.
|
|||||||
"smd/ulsph/stress"_compute_smd_ulsph_stress.html,
|
"smd/ulsph/stress"_compute_smd_ulsph_stress.html,
|
||||||
"smd/vol"_compute_smd_vol.html,
|
"smd/vol"_compute_smd_vol.html,
|
||||||
"stress/tally"_compute_tally.html,
|
"stress/tally"_compute_tally.html,
|
||||||
|
"tdpd/cc/atom"_compute_tdpd_cc_atom.html,
|
||||||
"temp/drude"_compute_temp_drude.html,
|
"temp/drude"_compute_temp_drude.html,
|
||||||
"temp/eff"_compute_temp_eff.html,
|
"temp/eff"_compute_temp_eff.html,
|
||||||
"temp/deform/eff"_compute_temp_deform_eff.html,
|
"temp/deform/eff"_compute_temp_deform_eff.html,
|
||||||
"temp/region/eff"_compute_temp_region_eff.html,
|
"temp/region/eff"_compute_temp_region_eff.html,
|
||||||
"temp/rotate"_compute_temp_rotate.html,
|
"temp/rotate"_compute_temp_rotate.html,
|
||||||
|
"temp/uef"_compute_temp_uef.html,
|
||||||
"xrd"_compute_xrd.html :tb(c=6,ea=c)
|
"xrd"_compute_xrd.html :tb(c=6,ea=c)
|
||||||
|
|
||||||
:line
|
:line
|
||||||
@ -890,10 +907,10 @@ KOKKOS, o = USER-OMP, t = OPT.
|
|||||||
"none"_pair_none.html,
|
"none"_pair_none.html,
|
||||||
"zero"_pair_zero.html,
|
"zero"_pair_zero.html,
|
||||||
"hybrid"_pair_hybrid.html,
|
"hybrid"_pair_hybrid.html,
|
||||||
"hybrid/overlay"_pair_hybrid.html,
|
"hybrid/overlay (k)"_pair_hybrid.html,
|
||||||
"adp (o)"_pair_adp.html,
|
"adp (o)"_pair_adp.html,
|
||||||
"airebo (o)"_pair_airebo.html,
|
"airebo (oi)"_pair_airebo.html,
|
||||||
"airebo/morse (o)"_pair_airebo.html,
|
"airebo/morse (oi)"_pair_airebo.html,
|
||||||
"beck (go)"_pair_beck.html,
|
"beck (go)"_pair_beck.html,
|
||||||
"body"_pair_body.html,
|
"body"_pair_body.html,
|
||||||
"bop"_pair_bop.html,
|
"bop"_pair_bop.html,
|
||||||
@ -904,11 +921,12 @@ KOKKOS, o = USER-OMP, t = OPT.
|
|||||||
"born/coul/long/cs"_pair_born.html,
|
"born/coul/long/cs"_pair_born.html,
|
||||||
"born/coul/msm (o)"_pair_born.html,
|
"born/coul/msm (o)"_pair_born.html,
|
||||||
"born/coul/wolf (go)"_pair_born.html,
|
"born/coul/wolf (go)"_pair_born.html,
|
||||||
|
"born/coul/wolf/cs"_pair_born.html,
|
||||||
"brownian (o)"_pair_brownian.html,
|
"brownian (o)"_pair_brownian.html,
|
||||||
"brownian/poly (o)"_pair_brownian.html,
|
"brownian/poly (o)"_pair_brownian.html,
|
||||||
"buck (gkio)"_pair_buck.html,
|
"buck (giko)"_pair_buck.html,
|
||||||
"buck/coul/cut (gkio)"_pair_buck.html,
|
"buck/coul/cut (giko)"_pair_buck.html,
|
||||||
"buck/coul/long (gkio)"_pair_buck.html,
|
"buck/coul/long (giko)"_pair_buck.html,
|
||||||
"buck/coul/long/cs"_pair_buck.html,
|
"buck/coul/long/cs"_pair_buck.html,
|
||||||
"buck/coul/msm (o)"_pair_buck.html,
|
"buck/coul/msm (o)"_pair_buck.html,
|
||||||
"buck/long/coul/long (o)"_pair_buck_long.html,
|
"buck/long/coul/long (o)"_pair_buck_long.html,
|
||||||
@ -923,12 +941,13 @@ KOKKOS, o = USER-OMP, t = OPT.
|
|||||||
"coul/msm"_pair_coul.html,
|
"coul/msm"_pair_coul.html,
|
||||||
"coul/streitz"_pair_coul.html,
|
"coul/streitz"_pair_coul.html,
|
||||||
"coul/wolf (ko)"_pair_coul.html,
|
"coul/wolf (ko)"_pair_coul.html,
|
||||||
"dpd (go)"_pair_dpd.html,
|
"coul/wolf/cs"_pair_coul.html,
|
||||||
|
"dpd (gio)"_pair_dpd.html,
|
||||||
"dpd/tstat (go)"_pair_dpd.html,
|
"dpd/tstat (go)"_pair_dpd.html,
|
||||||
"dsmc"_pair_dsmc.html,
|
"dsmc"_pair_dsmc.html,
|
||||||
"eam (gkiot)"_pair_eam.html,
|
"eam (gikot)"_pair_eam.html,
|
||||||
"eam/alloy (gkot)"_pair_eam.html,
|
"eam/alloy (gikot)"_pair_eam.html,
|
||||||
"eam/fs (gkot)"_pair_eam.html,
|
"eam/fs (gikot)"_pair_eam.html,
|
||||||
"eim (o)"_pair_eim.html,
|
"eim (o)"_pair_eim.html,
|
||||||
"gauss (go)"_pair_gauss.html,
|
"gauss (go)"_pair_gauss.html,
|
||||||
"gayberne (gio)"_pair_gayberne.html,
|
"gayberne (gio)"_pair_gayberne.html,
|
||||||
@ -942,7 +961,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
|||||||
"kim"_pair_kim.html,
|
"kim"_pair_kim.html,
|
||||||
"lcbop"_pair_lcbop.html,
|
"lcbop"_pair_lcbop.html,
|
||||||
"line/lj"_pair_line_lj.html,
|
"line/lj"_pair_line_lj.html,
|
||||||
"lj/charmm/coul/charmm (ko)"_pair_charmm.html,
|
"lj/charmm/coul/charmm (iko)"_pair_charmm.html,
|
||||||
"lj/charmm/coul/charmm/implicit (ko)"_pair_charmm.html,
|
"lj/charmm/coul/charmm/implicit (ko)"_pair_charmm.html,
|
||||||
"lj/charmm/coul/long (giko)"_pair_charmm.html,
|
"lj/charmm/coul/long (giko)"_pair_charmm.html,
|
||||||
"lj/charmm/coul/msm"_pair_charmm.html,
|
"lj/charmm/coul/msm"_pair_charmm.html,
|
||||||
@ -990,24 +1009,25 @@ KOKKOS, o = USER-OMP, t = OPT.
|
|||||||
"polymorphic"_pair_polymorphic.html,
|
"polymorphic"_pair_polymorphic.html,
|
||||||
"python"_pair_python.html,
|
"python"_pair_python.html,
|
||||||
"reax"_pair_reax.html,
|
"reax"_pair_reax.html,
|
||||||
"rebo (o)"_pair_airebo.html,
|
"rebo (oi)"_pair_airebo.html,
|
||||||
"resquared (go)"_pair_resquared.html,
|
"resquared (go)"_pair_resquared.html,
|
||||||
"snap"_pair_snap.html,
|
"snap"_pair_snap.html,
|
||||||
"soft (go)"_pair_soft.html,
|
"soft (go)"_pair_soft.html,
|
||||||
"sw (gkio)"_pair_sw.html,
|
"sw (giko)"_pair_sw.html,
|
||||||
"table (gko)"_pair_table.html,
|
"table (gko)"_pair_table.html,
|
||||||
"tersoff (gkio)"_pair_tersoff.html,
|
"tersoff (giko)"_pair_tersoff.html,
|
||||||
"tersoff/mod (gko)"_pair_tersoff_mod.html,
|
"tersoff/mod (gko)"_pair_tersoff_mod.html,
|
||||||
"tersoff/mod/c (o)"_pair_tersoff_mod.html,
|
"tersoff/mod/c (o)"_pair_tersoff_mod.html,
|
||||||
"tersoff/zbl (gko)"_pair_tersoff_zbl.html,
|
"tersoff/zbl (gko)"_pair_tersoff_zbl.html,
|
||||||
"tip4p/cut (o)"_pair_coul.html,
|
"tip4p/cut (o)"_pair_coul.html,
|
||||||
"tip4p/long (o)"_pair_coul.html,
|
"tip4p/long (o)"_pair_coul.html,
|
||||||
"tri/lj"_pair_tri_lj.html,
|
"tri/lj"_pair_tri_lj.html,
|
||||||
|
"ufm (got)"_pair_ufm.html,
|
||||||
"vashishta (ko)"_pair_vashishta.html,
|
"vashishta (ko)"_pair_vashishta.html,
|
||||||
"vashishta/table (o)"_pair_vashishta.html,
|
"vashishta/table (o)"_pair_vashishta.html,
|
||||||
"yukawa (go)"_pair_yukawa.html,
|
"yukawa (gok)"_pair_yukawa.html,
|
||||||
"yukawa/colloid (go)"_pair_yukawa_colloid.html,
|
"yukawa/colloid (go)"_pair_yukawa_colloid.html,
|
||||||
"zbl (go)"_pair_zbl.html :tb(c=4,ea=c)
|
"zbl (gok)"_pair_zbl.html :tb(c=4,ea=c)
|
||||||
|
|
||||||
These are additional pair styles in USER packages, which can be used
|
These are additional pair styles in USER packages, which can be used
|
||||||
if "LAMMPS is built with the appropriate
|
if "LAMMPS is built with the appropriate
|
||||||
@ -1020,12 +1040,14 @@ package"_Section_start.html#start_3.
|
|||||||
"coul/diel (o)"_pair_coul_diel.html,
|
"coul/diel (o)"_pair_coul_diel.html,
|
||||||
"coul/long/soft (o)"_pair_lj_soft.html,
|
"coul/long/soft (o)"_pair_lj_soft.html,
|
||||||
"dpd/fdt"_pair_dpd_fdt.html,
|
"dpd/fdt"_pair_dpd_fdt.html,
|
||||||
"dpd/fdt/energy"_pair_dpd_fdt.html,
|
"dpd/fdt/energy (k)"_pair_dpd_fdt.html,
|
||||||
"eam/cd (o)"_pair_eam.html,
|
"eam/cd (o)"_pair_eam.html,
|
||||||
"edip (o)"_pair_edip.html,
|
"edip (o)"_pair_edip.html,
|
||||||
"edip/multi"_pair_edip.html,
|
"edip/multi"_pair_edip.html,
|
||||||
|
"edpd"_pair_meso.html,
|
||||||
"eff/cut"_pair_eff.html,
|
"eff/cut"_pair_eff.html,
|
||||||
"exp6/rx"_pair_exp6_rx.html,
|
"exp6/rx (k)"_pair_exp6_rx.html,
|
||||||
|
"extep"_pair_extep.html,
|
||||||
"gauss/cut"_pair_gauss.html,
|
"gauss/cut"_pair_gauss.html,
|
||||||
"kolmogorov/crespi/z"_pair_kolmogorov_crespi_z.html,
|
"kolmogorov/crespi/z"_pair_kolmogorov_crespi_z.html,
|
||||||
"lennard/mdf"_pair_mdf.html,
|
"lennard/mdf"_pair_mdf.html,
|
||||||
@ -1041,6 +1063,8 @@ package"_Section_start.html#start_3.
|
|||||||
"lj/sdk (gko)"_pair_sdk.html,
|
"lj/sdk (gko)"_pair_sdk.html,
|
||||||
"lj/sdk/coul/long (go)"_pair_sdk.html,
|
"lj/sdk/coul/long (go)"_pair_sdk.html,
|
||||||
"lj/sdk/coul/msm (o)"_pair_sdk.html,
|
"lj/sdk/coul/msm (o)"_pair_sdk.html,
|
||||||
|
"mdpd"_pair_meso.html,
|
||||||
|
"mdpd/rhosum"_pair_meso.html,
|
||||||
"meam/c"_pair_meam.html,
|
"meam/c"_pair_meam.html,
|
||||||
"meam/spline (o)"_pair_meam_spline.html,
|
"meam/spline (o)"_pair_meam_spline.html,
|
||||||
"meam/sw/spline"_pair_meam_sw_spline.html,
|
"meam/sw/spline"_pair_meam_sw_spline.html,
|
||||||
@ -1049,7 +1073,7 @@ package"_Section_start.html#start_3.
|
|||||||
"morse/smooth/linear"_pair_morse.html,
|
"morse/smooth/linear"_pair_morse.html,
|
||||||
"morse/soft"_pair_morse.html,
|
"morse/soft"_pair_morse.html,
|
||||||
"multi/lucy"_pair_multi_lucy.html,
|
"multi/lucy"_pair_multi_lucy.html,
|
||||||
"multi/lucy/rx"_pair_multi_lucy_rx.html,
|
"multi/lucy/rx (k)"_pair_multi_lucy_rx.html,
|
||||||
"oxdna/coaxstk"_pair_oxdna.html,
|
"oxdna/coaxstk"_pair_oxdna.html,
|
||||||
"oxdna/excv"_pair_oxdna.html,
|
"oxdna/excv"_pair_oxdna.html,
|
||||||
"oxdna/hbond"_pair_oxdna.html,
|
"oxdna/hbond"_pair_oxdna.html,
|
||||||
@ -1066,6 +1090,7 @@ package"_Section_start.html#start_3.
|
|||||||
"smd/triangulated/surface"_pair_smd_triangulated_surface.html,
|
"smd/triangulated/surface"_pair_smd_triangulated_surface.html,
|
||||||
"smd/ulsph"_pair_smd_ulsph.html,
|
"smd/ulsph"_pair_smd_ulsph.html,
|
||||||
"smtbq"_pair_smtbq.html,
|
"smtbq"_pair_smtbq.html,
|
||||||
|
"snap (k)"_pair_snap.html,
|
||||||
"sph/heatconduction"_pair_sph_heatconduction.html,
|
"sph/heatconduction"_pair_sph_heatconduction.html,
|
||||||
"sph/idealgas"_pair_sph_idealgas.html,
|
"sph/idealgas"_pair_sph_idealgas.html,
|
||||||
"sph/lj"_pair_sph_lj.html,
|
"sph/lj"_pair_sph_lj.html,
|
||||||
@ -1073,7 +1098,8 @@ package"_Section_start.html#start_3.
|
|||||||
"sph/taitwater"_pair_sph_taitwater.html,
|
"sph/taitwater"_pair_sph_taitwater.html,
|
||||||
"sph/taitwater/morris"_pair_sph_taitwater_morris.html,
|
"sph/taitwater/morris"_pair_sph_taitwater_morris.html,
|
||||||
"srp"_pair_srp.html,
|
"srp"_pair_srp.html,
|
||||||
"table/rx"_pair_table_rx.html,
|
"table/rx (k)"_pair_table_rx.html,
|
||||||
|
"tdpd"_pair_meso.html,
|
||||||
"tersoff/table (o)"_pair_tersoff.html,
|
"tersoff/table (o)"_pair_tersoff.html,
|
||||||
"thole"_pair_thole.html,
|
"thole"_pair_thole.html,
|
||||||
"tip4p/long/soft (o)"_pair_lj_soft.html :tb(c=4,ea=c)
|
"tip4p/long/soft (o)"_pair_lj_soft.html :tb(c=4,ea=c)
|
||||||
@ -1096,6 +1122,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
|||||||
"class2 (ko)"_bond_class2.html,
|
"class2 (ko)"_bond_class2.html,
|
||||||
"fene (iko)"_bond_fene.html,
|
"fene (iko)"_bond_fene.html,
|
||||||
"fene/expand (o)"_bond_fene_expand.html,
|
"fene/expand (o)"_bond_fene_expand.html,
|
||||||
|
"gromos (o)"_bond_gromos.html,
|
||||||
"harmonic (ko)"_bond_harmonic.html,
|
"harmonic (ko)"_bond_harmonic.html,
|
||||||
"morse (o)"_bond_morse.html,
|
"morse (o)"_bond_morse.html,
|
||||||
"nonlinear (o)"_bond_nonlinear.html,
|
"nonlinear (o)"_bond_nonlinear.html,
|
||||||
@ -1162,7 +1189,7 @@ USER-OMP, t = OPT.
|
|||||||
"none"_dihedral_none.html,
|
"none"_dihedral_none.html,
|
||||||
"zero"_dihedral_zero.html,
|
"zero"_dihedral_zero.html,
|
||||||
"hybrid"_dihedral_hybrid.html,
|
"hybrid"_dihedral_hybrid.html,
|
||||||
"charmm (ko)"_dihedral_charmm.html,
|
"charmm (iko)"_dihedral_charmm.html,
|
||||||
"charmmfsw"_dihedral_charmm.html,
|
"charmmfsw"_dihedral_charmm.html,
|
||||||
"class2 (ko)"_dihedral_class2.html,
|
"class2 (ko)"_dihedral_class2.html,
|
||||||
"harmonic (io)"_dihedral_harmonic.html,
|
"harmonic (io)"_dihedral_harmonic.html,
|
||||||
@ -1175,7 +1202,7 @@ used if "LAMMPS is built with the appropriate
|
|||||||
package"_Section_start.html#start_3.
|
package"_Section_start.html#start_3.
|
||||||
|
|
||||||
"cosine/shift/exp (o)"_dihedral_cosine_shift_exp.html,
|
"cosine/shift/exp (o)"_dihedral_cosine_shift_exp.html,
|
||||||
"fourier (o)"_dihedral_fourier.html,
|
"fourier (io)"_dihedral_fourier.html,
|
||||||
"nharmonic (o)"_dihedral_nharmonic.html,
|
"nharmonic (o)"_dihedral_nharmonic.html,
|
||||||
"quadratic (o)"_dihedral_quadratic.html,
|
"quadratic (o)"_dihedral_quadratic.html,
|
||||||
"spherical (o)"_dihedral_spherical.html,
|
"spherical (o)"_dihedral_spherical.html,
|
||||||
@ -1198,7 +1225,7 @@ USER-OMP, t = OPT.
|
|||||||
"hybrid"_improper_hybrid.html,
|
"hybrid"_improper_hybrid.html,
|
||||||
"class2 (ko)"_improper_class2.html,
|
"class2 (ko)"_improper_class2.html,
|
||||||
"cvff (io)"_improper_cvff.html,
|
"cvff (io)"_improper_cvff.html,
|
||||||
"harmonic (ko)"_improper_harmonic.html,
|
"harmonic (iko)"_improper_harmonic.html,
|
||||||
"umbrella (o)"_improper_umbrella.html :tb(c=4,ea=c)
|
"umbrella (o)"_improper_umbrella.html :tb(c=4,ea=c)
|
||||||
|
|
||||||
These are additional improper styles in USER packages, which can be
|
These are additional improper styles in USER packages, which can be
|
||||||
@ -1226,7 +1253,7 @@ USER-OMP, t = OPT.
|
|||||||
"ewald/disp"_kspace_style.html,
|
"ewald/disp"_kspace_style.html,
|
||||||
"msm (o)"_kspace_style.html,
|
"msm (o)"_kspace_style.html,
|
||||||
"msm/cg (o)"_kspace_style.html,
|
"msm/cg (o)"_kspace_style.html,
|
||||||
"pppm (go)"_kspace_style.html,
|
"pppm (gok)"_kspace_style.html,
|
||||||
"pppm/cg (o)"_kspace_style.html,
|
"pppm/cg (o)"_kspace_style.html,
|
||||||
"pppm/disp (i)"_kspace_style.html,
|
"pppm/disp (i)"_kspace_style.html,
|
||||||
"pppm/disp/tip4p"_kspace_style.html,
|
"pppm/disp/tip4p"_kspace_style.html,
|
||||||
|
|||||||
@ -7886,8 +7886,8 @@ keyword to allow for additional bonds to be formed :dd
|
|||||||
|
|
||||||
{New bond exceeded special list size in fix bond/create} :dt
|
{New bond exceeded special list size in fix bond/create} :dt
|
||||||
|
|
||||||
See the "special_bonds extra" command
|
See the "read_data extra/special/per/atom" command
|
||||||
(or the "read_data extra/special/per/atom" command)
|
(or the "create_box extra/special/per/atom" command)
|
||||||
for info on how to leave space in the special bonds
|
for info on how to leave space in the special bonds
|
||||||
list to allow for additional bonds to be formed. :dd
|
list to allow for additional bonds to be formed. :dd
|
||||||
|
|
||||||
@ -9666,8 +9666,8 @@ you are running. :dd
|
|||||||
|
|
||||||
{Special list size exceeded in fix bond/create} :dt
|
{Special list size exceeded in fix bond/create} :dt
|
||||||
|
|
||||||
See the special_bonds extra command
|
See the "read_data extra/special/per/atom" command
|
||||||
(or the read_data extra/special/per/atom command)
|
(or the "create_box extra/special/per/atom" command)
|
||||||
for info on how to leave space in the special bonds
|
for info on how to leave space in the special bonds
|
||||||
list to allow for additional bonds to be formed. :dd
|
list to allow for additional bonds to be formed. :dd
|
||||||
|
|
||||||
|
|||||||
@ -49,6 +49,7 @@ Lists of both kinds of directories are given below.
|
|||||||
Lowercase directories :h4
|
Lowercase directories :h4
|
||||||
|
|
||||||
accelerate: run with various acceleration options (OpenMP, GPU, Phi)
|
accelerate: run with various acceleration options (OpenMP, GPU, Phi)
|
||||||
|
airebo: polyethylene with AIREBO potential
|
||||||
balance: dynamic load balancing, 2d system
|
balance: dynamic load balancing, 2d system
|
||||||
body: body particles, 2d system
|
body: body particles, 2d system
|
||||||
cmap: CMAP 5-body contributions to CHARMM force field
|
cmap: CMAP 5-body contributions to CHARMM force field
|
||||||
|
|||||||
@ -454,7 +454,7 @@ NOTE: By default, for 2d systems, granular particles are still modeled
|
|||||||
as 3d spheres, not 2d discs (circles), meaning their moment of inertia
|
as 3d spheres, not 2d discs (circles), meaning their moment of inertia
|
||||||
will be the same as in 3d. If you wish to model granular particles in
|
will be the same as in 3d. If you wish to model granular particles in
|
||||||
2d as 2d discs, see the note on this topic in "Section
|
2d as 2d discs, see the note on this topic in "Section
|
||||||
6.2"_Section_howto.html#howto_2, where 2d simulations are disussed.
|
6.2"_Section_howto.html#howto_2, where 2d simulations are discussed.
|
||||||
|
|
||||||
:line
|
:line
|
||||||
|
|
||||||
@ -2859,8 +2859,8 @@ The nature of the atoms (core, Drude particle or non-polarizable) is
|
|||||||
specified via the "fix drude"_fix_drude.html command. The special
|
specified via the "fix drude"_fix_drude.html command. The special
|
||||||
list of neighbors is automatically refactored to account for the
|
list of neighbors is automatically refactored to account for the
|
||||||
equivalence of core and Drude particles as regards special 1-2 to 1-4
|
equivalence of core and Drude particles as regards special 1-2 to 1-4
|
||||||
screening. It may be necessary to use the {extra} keyword of the
|
screening. It may be necessary to use the {extra/special/per/atom}
|
||||||
"special_bonds"_special_bonds.html command. If using "fix
|
keyword of the "read_data"_read_data.html command. If using "fix
|
||||||
shake"_fix_shake.html, make sure no Drude particle is in this fix
|
shake"_fix_shake.html, make sure no Drude particle is in this fix
|
||||||
group.
|
group.
|
||||||
|
|
||||||
|
|||||||
@ -25,6 +25,17 @@ There are two kinds of packages in LAMMPS, standard and user packages:
|
|||||||
"Table of standard packages"_#table_standard
|
"Table of standard packages"_#table_standard
|
||||||
"Table of user packages"_#table_user :ul
|
"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
|
Standard packages are supported by the LAMMPS developers and are
|
||||||
written in a syntax and style consistent with the rest of LAMMPS.
|
written in a syntax and style consistent with the rest of LAMMPS.
|
||||||
This means the developers will answer questions about them, debug and
|
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 packages have been contributed by users, and begin with the
|
||||||
"user" prefix. If they are a single command (single file), they are
|
"user" prefix. If they are a single command (single file), they are
|
||||||
typically in the user-misc package. User packages don't necessarily
|
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
|
using a feature provided in a user package, you may need to contact
|
||||||
the contributor directly to get help. Information on how to submit
|
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
|
additions you make to LAMMPS as single files or as a standard or user
|
||||||
@ -78,11 +91,12 @@ Package, Description, Doc page, Example, Library
|
|||||||
"COMPRESS"_#COMPRESS, I/O compression, "dump */gz"_dump.html, -, sys
|
"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, -
|
"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, -
|
"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, -
|
"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
|
"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, -
|
"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, -
|
"KSPACE"_#KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, -
|
||||||
|
"LATTE"_#LATTE, quantum DFTB forces via LATTE, "fix latte"_fix_latte.html, latte, ext
|
||||||
"MANYBODY"_#MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, -
|
"MANYBODY"_#MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, -
|
||||||
"MC"_#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, -
|
"MC"_#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, -
|
||||||
"MEAM"_#MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int
|
"MEAM"_#MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int
|
||||||
@ -90,7 +104,7 @@ Package, Description, Doc page, Example, Library
|
|||||||
"MOLECULE"_#MOLECULE, molecular system force fields, "Section 6.6.3"_Section_howto.html#howto_3, peptide, -
|
"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, -, -
|
"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
|
"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, -
|
"PERI"_#PERI, Peridynamics models, "pair_style peri"_pair_peri.html, peri, -
|
||||||
"POEMS"_#POEMS, coupled rigid body motion, "fix poems"_fix_poems.html, rigid, int
|
"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
|
"PYTHON"_#PYTHON, embed Python code in an input script, "python"_python.html, python, sys
|
||||||
@ -99,10 +113,9 @@ Package, Description, Doc page, Example, Library
|
|||||||
"REPLICA"_#REPLICA, multi-replica methods, "Section 6.6.5"_Section_howto.html#howto_5, tad, -
|
"REPLICA"_#REPLICA, multi-replica methods, "Section 6.6.5"_Section_howto.html#howto_5, tad, -
|
||||||
"RIGID"_#RIGID, rigid bodies and constraints, "fix rigid"_fix_rigid.html, rigid, -
|
"RIGID"_#RIGID, rigid bodies and constraints, "fix rigid"_fix_rigid.html, rigid, -
|
||||||
"SHOCK"_#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, -
|
"SHOCK"_#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, -
|
||||||
"SNAP"_#SNAP, quantum-fitted potential, "pair snap"_pair_snap.html, snap, -
|
"SNAP"_#SNAP, quantum-fitted potential, "pair_style snap"_pair_snap.html, snap, -
|
||||||
"SRD"_#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, -
|
"SRD"_#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, -
|
||||||
"VORONOI"_#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext
|
"VORONOI"_#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext :tb(ea=c,ca1=l)
|
||||||
:tb(ea=c,ca1=l)
|
|
||||||
|
|
||||||
[USER packages] :link(table_user),p
|
[USER packages] :link(table_user),p
|
||||||
|
|
||||||
@ -118,15 +131,17 @@ Package, Description, Doc page, Example, Library
|
|||||||
"USER-EFF"_#USER-EFF, electron force field,"pair_style eff/cut"_pair_eff.html, USER/eff, -
|
"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-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-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-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-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-MEAMC"_#USER-MEAMC, modified EAM potential (C++), "pair_style meam/c"_pair_meam.html, meam, -
|
||||||
|
"USER-MESO"_#USER-MESO, mesoscale DPD models, "pair_style edpd"_pair_meso.html, USER/meso, -
|
||||||
"USER-MGPT"_#USER-MGPT, fast MGPT multi-ion potentials, "pair_style mgpt"_pair_mgpt.html, USER/mgpt, -
|
"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-MISC"_#USER-MISC, single-file contributions, USER-MISC/README, USER/misc, -
|
||||||
|
"USER-MOFFF"_#USER-MOFFF, styles for "MOF-FF"_MOFplus force field, "pair_style buck6d/coul/gauss"_pair_buck6d_coul_gauss.html, USER/mofff, -
|
||||||
"USER-MOLFILE"_#USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, -, ext
|
"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-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-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-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, -
|
"USER-QTB"_#USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, -
|
||||||
@ -136,8 +151,8 @@ 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-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-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-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
|
"USER-UEF"_#USER-UEF, extensional flow,"fix nvt/uef"_fix_nh_uef.html, USER/uef, -
|
||||||
: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
|
||||||
:line
|
:line
|
||||||
@ -229,7 +244,7 @@ COLLOID package :link(COLLOID),h4
|
|||||||
|
|
||||||
[Contents:]
|
[Contents:]
|
||||||
|
|
||||||
Coarse-grained finite-size colloidal particles. Pair stayle and fix
|
Coarse-grained finite-size colloidal particles. Pair styles and fix
|
||||||
wall styles for colloidal interactions. Includes the Fast Lubrication
|
wall styles for colloidal interactions. Includes the Fast Lubrication
|
||||||
Dynamics (FLD) method for hydrodynamic interactions, which is a
|
Dynamics (FLD) method for hydrodynamic interactions, which is a
|
||||||
simplified approximation to Stokesian dynamics.
|
simplified approximation to Stokesian dynamics.
|
||||||
@ -364,9 +379,12 @@ GPU package :link(GPU),h4
|
|||||||
[Contents:]
|
[Contents:]
|
||||||
|
|
||||||
Dozens of pair styles and a version of the PPPM long-range Coulombic
|
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
|
solver optimized for GPUs. All such styles have a "gpu" as a
|
||||||
suffix in their style name. "Section 5.3.1"_accelerate_gpu.html gives
|
suffix in their style name. The GPU code can be compiled with either
|
||||||
details of what hardware and Cuda software is required on your system,
|
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
|
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
|
invoked at run time via the "-sf gpu" or "-suffix gpu" "command-line
|
||||||
switches"_Section_start.html#start_6. See also the "KOKKOS"_#KOKKOS
|
switches"_Section_start.html#start_6. See also the "KOKKOS"_#KOKKOS
|
||||||
@ -378,32 +396,41 @@ package, which has GPU-enabled styles.
|
|||||||
[Install or un-install:]
|
[Install or un-install:]
|
||||||
|
|
||||||
Before building LAMMPS with this package, you must first build the GPU
|
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
|
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
|
dir, using a command like these, which simply invoke the
|
||||||
lib/gpu/Install.py script with the specified args:
|
lib/gpu/Install.py script with the specified args:
|
||||||
|
|
||||||
make lib-gpu # print help message
|
make lib-gpu # print help message
|
||||||
make lib-gpu args="-m" # build GPU library with default Makefile.linux
|
make lib-gpu args="-b" # 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="-m 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="-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
|
Note that this procedure through the '-m machine' flag starts with one of
|
||||||
Makefile.machine files in lib/gpu. It allows you to alter 4 important
|
the existing Makefile.machine files in lib/gpu. For your convenience,
|
||||||
settings in that Makefile, via the -h, -a, -p, -e switches,
|
machine makefiles for "mpi" and "serial" are provided, which have the
|
||||||
and save the new Makefile, if desired:
|
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_ARCH = what GPU hardware you have (see help message for details)
|
||||||
CUDA_PRECISION = precision (double, mixed, single)
|
CUDA_PRECISION = precision (double, mixed, single)
|
||||||
EXTRAMAKE = which Makefile.lammps.* file to copy to Makefile.lammps :ul
|
EXTRAMAKE = which Makefile.lammps.* file to copy to Makefile.lammps :ul
|
||||||
|
|
||||||
If the library build is successful, 2 files should be created:
|
If the library build is successful, at least 3 files should be created:
|
||||||
lib/gpu/libgpu.a and lib/gpu/Makefile.lammps. The latter has settings
|
lib/gpu/libgpu.a, lib/gpu/nvc_get_devices, and lib/gpu/Makefile.lammps.
|
||||||
that enable LAMMPS to link with Cuda libraries. If the settings in
|
The latter has settings that enable LAMMPS to link with CUDA libraries.
|
||||||
Makefile.lammps for your machine are not correct, the LAMMPS build
|
If the settings in Makefile.lammps for your machine are not correct,
|
||||||
will fail.
|
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
|
You can then install/un-install the package and build LAMMPS in the
|
||||||
usual manner:
|
usual manner:
|
||||||
@ -492,14 +519,40 @@ Minnesota).
|
|||||||
|
|
||||||
[Install or un-install:]
|
[Install or un-install:]
|
||||||
|
|
||||||
Using this package requires the KIM library and its models
|
Before building LAMMPS with this package, you must first download and
|
||||||
(interatomic potentials) to be downloaded and installed on your
|
build the KIM library and include the KIM models that you want to
|
||||||
system. The library can be downloaded and built in lib/kim or
|
use. You can do this manually if you prefer; follow the instructions
|
||||||
elsewhere on your system. Details of the download, build, and install
|
in lib/kim/README. You can also do it in one step from the lammps/src
|
||||||
process for KIM are given in the lib/kim/README file.
|
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
|
make lib-kim # print help message
|
||||||
package and build LAMMPS in the usual manner:
|
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 yes-kim
|
||||||
make machine :pre
|
make machine :pre
|
||||||
@ -523,7 +576,7 @@ KOKKOS package :link(KOKKOS),h4
|
|||||||
|
|
||||||
Dozens of atom, pair, bond, angle, dihedral, improper, fix, compute
|
Dozens of atom, pair, bond, angle, dihedral, improper, fix, compute
|
||||||
styles adapted to compile using the Kokkos library which can convert
|
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
|
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
|
style name. "Section 5.3.3"_accelerate_kokkos.html gives details of
|
||||||
what hardware and software is required on your system, and how to
|
what hardware and software is required on your system, and how to
|
||||||
@ -553,28 +606,28 @@ files for examples.
|
|||||||
For multicore CPUs using OpenMP:
|
For multicore CPUs using OpenMP:
|
||||||
|
|
||||||
KOKKOS_DEVICES = 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:
|
For Intel KNLs using OpenMP:
|
||||||
|
|
||||||
KOKKOS_DEVICES = 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_DEVICES = Cuda
|
||||||
KOKKOS_ARCH = Pascal60,Power8 # P100 hosted by an IBM Power8, etc
|
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
|
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
|
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
|
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.
|
files.
|
||||||
|
|
||||||
KOKKOS_ABSOLUTE_PATH = $(shell cd $(KOKKOS_PATH); pwd)
|
KOKKOS_ABSOLUTE_PATH = $(shell cd $(KOKKOS_PATH); pwd)
|
||||||
export OMPI_CXX = $(KOKKOS_ABSOLUTE_PATH)/config/nvcc_wrapper
|
export OMPI_CXX = $(KOKKOS_ABSOLUTE_PATH)/config/nvcc_wrapper
|
||||||
CC = mpicxx
|
CC = mpicxx :pre
|
||||||
|
|
||||||
Once you have an appropriate Makefile.machine, you can
|
Once you have an appropriate Makefile.machine, you can
|
||||||
install/un-install the package and build LAMMPS in the usual manner.
|
install/un-install the package and build LAMMPS in the usual manner.
|
||||||
@ -645,6 +698,66 @@ bench/in.rhodo :ul
|
|||||||
|
|
||||||
:line
|
:line
|
||||||
|
|
||||||
|
LATTE package :link(LATTE),h4
|
||||||
|
|
||||||
|
[Contents:]
|
||||||
|
|
||||||
|
A fix command which wraps the LATTE DFTB code, so that molecular
|
||||||
|
dynamics can be run with LAMMPS using density-functional tight-binding
|
||||||
|
quantum forces calculated by LATTE.
|
||||||
|
|
||||||
|
More information on LATTE can be found at this web site:
|
||||||
|
"https://github.com/lanl/LATTE"_latte_home. A brief technical
|
||||||
|
description is given with the "fix latte"_fix_latte.html command.
|
||||||
|
|
||||||
|
:link(latte_home,https://github.com/lanl/LATTE)
|
||||||
|
|
||||||
|
[Authors:] Christian Negre (LANL) and Steve Plimpton (Sandia). LATTE
|
||||||
|
itself is developed at Los Alamos National Laboratory by Marc
|
||||||
|
Cawkwell, Anders Niklasson, and Christian Negre.
|
||||||
|
|
||||||
|
[Install or un-install:]
|
||||||
|
|
||||||
|
Before building LAMMPS with this package, you must first download and
|
||||||
|
build the LATTE library. You can do this manually if you prefer;
|
||||||
|
follow the instructions in lib/latte/README. You can also do it in
|
||||||
|
one step from the lammps/src dir, using a command like these, which
|
||||||
|
simply invokes the lib/latte/Install.py script with the specified
|
||||||
|
args:
|
||||||
|
|
||||||
|
make lib-latte # print help message
|
||||||
|
make lib-latte args="-b" # download and build in lib/latte/LATTE-master
|
||||||
|
make lib-latte args="-p $HOME/latte" # use existing LATTE installation in $HOME/latte
|
||||||
|
make lib-latte args="-b -m gfortran" # download and build in lib/latte and
|
||||||
|
# copy Makefile.lammps.gfortran to Makefile.lammps
|
||||||
|
:pre
|
||||||
|
|
||||||
|
Note that 3 symbolic (soft) links, "includelink" and "liblink" and
|
||||||
|
"filelink.o", are created in lib/latte to point into the LATTE home dir.
|
||||||
|
When LAMMPS builds in src it will use these links. You should
|
||||||
|
also check that the Makefile.lammps file you create is appropriate
|
||||||
|
for the compiler you use on your system to build LATTE.
|
||||||
|
|
||||||
|
You can then install/un-install the package and build LAMMPS in the
|
||||||
|
usual manner:
|
||||||
|
|
||||||
|
make yes-latte
|
||||||
|
make machine :pre
|
||||||
|
|
||||||
|
make no-latte
|
||||||
|
make machine :pre
|
||||||
|
|
||||||
|
[Supporting info:]
|
||||||
|
|
||||||
|
src/LATTE: filenames -> commands
|
||||||
|
src/LATTE/README
|
||||||
|
lib/latte/README
|
||||||
|
"fix latte"_fix_latte.html
|
||||||
|
examples/latte
|
||||||
|
"LAMMPS-LATTE tutorial"_https://github.com/lanl/LATTE/wiki/Using-LATTE-through-LAMMPS :ul
|
||||||
|
|
||||||
|
:line
|
||||||
|
|
||||||
MANYBODY package :link(MANYBODY),h4
|
MANYBODY package :link(MANYBODY),h4
|
||||||
|
|
||||||
[Contents:]
|
[Contents:]
|
||||||
@ -710,6 +823,12 @@ MEAM package :link(MEAM),h4
|
|||||||
|
|
||||||
A pair style for the modified embedded atom (MEAM) potential.
|
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.
|
[Author:] Greg Wagner (Northwestern U) while at Sandia.
|
||||||
|
|
||||||
[Install or un-install:]
|
[Install or un-install:]
|
||||||
@ -720,9 +839,10 @@ follow the instructions in lib/meam/README. You can also do it in one
|
|||||||
step from the lammps/src dir, using a command like these, which simply
|
step from the lammps/src dir, using a command like these, which simply
|
||||||
invoke the lib/meam/Install.py script with the specified args:
|
invoke the lib/meam/Install.py script with the specified args:
|
||||||
|
|
||||||
make lib-meam # print help message
|
make lib-meam # print help message
|
||||||
make lib-meam args="-m gfortran" # build with GNU Fortran compiler
|
make lib-meam args="-m mpi" # build with default Fortran compiler compatible with your MPI library
|
||||||
make lib-meam args="-m ifort" # build with Intel ifort compiler :pre
|
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
|
The build should produce two files: lib/meam/libmeam.a and
|
||||||
lib/meam/Makefile.lammps. The latter is copied from an existing
|
lib/meam/Makefile.lammps. The latter is copied from an existing
|
||||||
@ -765,6 +885,9 @@ A variety of compute, fix, pair, dump styles with specialized
|
|||||||
capabilities that don't align with other packages. Do a directory
|
capabilities that don't align with other packages. Do a directory
|
||||||
listing, "ls src/MISC", to see the list of commands.
|
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:]
|
[Install or un-install:]
|
||||||
|
|
||||||
make yes-misc
|
make yes-misc
|
||||||
@ -862,7 +985,7 @@ MSCG package :link(mscg),h4
|
|||||||
[Contents:]
|
[Contents:]
|
||||||
|
|
||||||
A "fix mscg"_fix_mscg.html command which can parameterize a
|
A "fix mscg"_fix_mscg.html command which can parameterize a
|
||||||
Mulit-Scale Coarse-Graining (MSCG) model using the open-source "MS-CG
|
Multi-Scale Coarse-Graining (MSCG) model using the open-source "MS-CG
|
||||||
library"_mscg_home.
|
library"_mscg_home.
|
||||||
|
|
||||||
:link(mscg_home,https://github.com/uchicago-voth/MSCG-release)
|
:link(mscg_home,https://github.com/uchicago-voth/MSCG-release)
|
||||||
@ -878,9 +1001,9 @@ University of Chicago.
|
|||||||
|
|
||||||
Before building LAMMPS with this package, you must first download and
|
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
|
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
|
LAMMPS requires a C++11 compatible compiler and that the GSL
|
||||||
(GNU Scientific Library) libraries be installed on your machine. See
|
(GNU Scientific Library) headers and libraries are installed on your
|
||||||
the lib/mscg/README and MSCG/Install files for more details.
|
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
|
Assuming these libraries are in place, you can do the download and
|
||||||
build of MS-CG manually if you prefer; follow the instructions in
|
build of MS-CG manually if you prefer; follow the instructions in
|
||||||
@ -888,15 +1011,16 @@ lib/mscg/README. You can also do it in one step from the lammps/src
|
|||||||
dir, using a command like these, which simply invoke the
|
dir, using a command like these, which simply invoke the
|
||||||
lib/mscg/Install.py script with the specified args:
|
lib/mscg/Install.py script with the specified args:
|
||||||
|
|
||||||
make lib-mscg # print help message
|
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="-b -m serial" # download and build in lib/mscg/MSCG-release-master
|
||||||
make lib-mscg args="-h . MSCG -g -b -l" # download and build in lib/mscg/MSCG
|
# with the settings compatible with "make serial"
|
||||||
make lib-mscg args="-h ~ MSCG -g -b -l" # download and build in ~/mscg :pre
|
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,
|
Note that 2 symbolic (soft) links, "includelink" and "liblink", will be created in lib/mscg
|
||||||
"includelink" and "liblink", in lib/mscg to point to the MS-CG src
|
to point to the MS-CG src/installation dir. When LAMMPS is built in src it will use these links.
|
||||||
dir. When LAMMPS builds it will use these links. You should not need
|
You should not need to edit the lib/mscg/Makefile.lammps file.
|
||||||
to edit the lib/mscg/Makefile.lammps file.
|
|
||||||
|
|
||||||
You can then install/un-install the package and build LAMMPS in the
|
You can then install/un-install the package and build LAMMPS in the
|
||||||
usual manner:
|
usual manner:
|
||||||
@ -942,11 +1066,11 @@ make no-opt
|
|||||||
make machine :pre
|
make machine :pre
|
||||||
|
|
||||||
NOTE: The compile flag "-restrict" must be used to build LAMMPS with
|
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
|
the OPT package when using Intel compilers. It should be added to
|
||||||
Makefile.machine. See Makefile.opt in src/MAKE/OPTIONS for an
|
the CCFLAGS line of your Makefile.machine. See Makefile.opt in
|
||||||
example.
|
src/MAKE/OPTIONS for an example.
|
||||||
|
|
||||||
CCFLAGS: add -restrict :ul
|
CCFLAGS: add -restrict for Intel compilers :ul
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
|
|
||||||
@ -1015,9 +1139,10 @@ follow the instructions in lib/poems/README. You can also do it in
|
|||||||
one step from the lammps/src dir, using a command like these, which
|
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:
|
simply invoke the lib/poems/Install.py script with the specified args:
|
||||||
|
|
||||||
make lib-poems # print help message
|
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 icc" # build with Intel icc compiler :pre
|
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
|
The build should produce two files: lib/poems/libpoems.a and
|
||||||
lib/poems/Makefile.lammps. The latter is copied from an existing
|
lib/poems/Makefile.lammps. The latter is copied from an existing
|
||||||
@ -1127,9 +1252,10 @@ follow the instructions in lib/reax/README. You can also do it in one
|
|||||||
step from the lammps/src dir, using a command like these, which simply
|
step from the lammps/src dir, using a command like these, which simply
|
||||||
invoke the lib/reax/Install.py script with the specified args:
|
invoke the lib/reax/Install.py script with the specified args:
|
||||||
|
|
||||||
make lib-reax # print help message
|
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 ifort" # build with Intel ifort compiler :pre
|
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
|
The build should produce two files: lib/reax/libreax.a and
|
||||||
lib/reax/Makefile.lammps. The latter is copied from an existing
|
lib/reax/Makefile.lammps. The latter is copied from an existing
|
||||||
@ -1280,7 +1406,7 @@ make machine :pre
|
|||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
|
|
||||||
src/SNAP: filenames -> commands
|
src/SNAP: filenames -> commands
|
||||||
"pair snap"_pair_snap.html
|
"pair_style snap"_pair_snap.html
|
||||||
"compute sna/atom"_compute_sna_atom.html
|
"compute sna/atom"_compute_sna_atom.html
|
||||||
"compute snad/atom"_compute_sna_atom.html
|
"compute snad/atom"_compute_sna_atom.html
|
||||||
"compute snav/atom"_compute_sna_atom.html
|
"compute snav/atom"_compute_sna_atom.html
|
||||||
@ -1346,15 +1472,15 @@ one step from the lammps/src dir, using a command like these, which
|
|||||||
simply invoke the lib/voronoi/Install.py script with the specified
|
simply invoke the lib/voronoi/Install.py script with the specified
|
||||||
args:
|
args:
|
||||||
|
|
||||||
make lib-voronoi # print help message
|
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="-b" # download and build the default version in lib/voronoi/voro++-<version>
|
||||||
make lib-voronoi args="-h . voro++ -g -b -l" # download and build in lib/voronoi/voro++
|
make lib-voronoi args="-p $HOME/voro++" # use existing Voro++ installation in $HOME/voro++
|
||||||
make lib-voronoi args="-h ~ voro++ -g -b -l" # download and build in ~/voro++ :pre
|
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,
|
Note that 2 symbolic (soft) links, "includelink" and "liblink", are
|
||||||
"includelink" and "liblink", in lib/voronoi to point to the Voro++ src
|
created in lib/voronoi to point to the Voro++ src dir. When LAMMPS
|
||||||
dir. When LAMMPS builds it will use these links. You should not need
|
builds in src it will use these links. You should not need to edit
|
||||||
to edit the lib/voronoi/Makefile.lammps file.
|
the lib/voronoi/Makefile.lammps file.
|
||||||
|
|
||||||
You can then install/un-install the package and build LAMMPS in the
|
You can then install/un-install the package and build LAMMPS in the
|
||||||
usual manner:
|
usual manner:
|
||||||
@ -1396,7 +1522,8 @@ from the lammps/src dir, using a command like these, which simply
|
|||||||
invoke the lib/atc/Install.py script with the specified args:
|
invoke the lib/atc/Install.py script with the specified args:
|
||||||
|
|
||||||
make lib-atc # print help message
|
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
|
make lib-atc args="-m icc" # build with Intel icc compiler :pre
|
||||||
|
|
||||||
The build should produce two files: lib/atc/libatc.a and
|
The build should produce two files: lib/atc/libatc.a and
|
||||||
@ -1413,8 +1540,10 @@ can either exist on your system, or you can use the files provided in
|
|||||||
lib/linalg. In the latter case you also need to build the library
|
lib/linalg. In the latter case you also need to build the library
|
||||||
in lib/linalg with a command like these:
|
in lib/linalg with a command like these:
|
||||||
|
|
||||||
make lib-linalg # print help message
|
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
|
You can then install/un-install the package and build LAMMPS in the
|
||||||
usual manner:
|
usual manner:
|
||||||
@ -1454,9 +1583,10 @@ follow the instructions in lib/awpmd/README. You can also do it in
|
|||||||
one step from the lammps/src dir, using a command like these, which
|
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:
|
simply invoke the lib/awpmd/Install.py script with the specified args:
|
||||||
|
|
||||||
make lib-awpmd # print help message
|
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 icc" # build with Intel icc compiler :pre
|
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
|
The build should produce two files: lib/awpmd/libawpmd.a and
|
||||||
lib/awpmd/Makefile.lammps. The latter is copied from an existing
|
lib/awpmd/Makefile.lammps. The latter is copied from an existing
|
||||||
@ -1472,8 +1602,10 @@ these can either exist on your system, or you can use the files
|
|||||||
provided in lib/linalg. In the latter case you also need to build the
|
provided in lib/linalg. In the latter case you also need to build the
|
||||||
library in lib/linalg with a command like these:
|
library in lib/linalg with a command like these:
|
||||||
|
|
||||||
make lib-linalg # print help message
|
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
|
You can then install/un-install the package and build LAMMPS in the
|
||||||
usual manner:
|
usual manner:
|
||||||
@ -1488,7 +1620,7 @@ make machine :pre
|
|||||||
|
|
||||||
src/USER-AWPMD: filenames -> commands
|
src/USER-AWPMD: filenames -> commands
|
||||||
src/USER-AWPMD/README
|
src/USER-AWPMD/README
|
||||||
"pair awpmd/cut"_pair_awpmd.html
|
"pair_style awpmd/cut"_pair_awpmd.html
|
||||||
examples/USER/awpmd :ul
|
examples/USER/awpmd :ul
|
||||||
|
|
||||||
:line
|
:line
|
||||||
@ -1566,9 +1698,11 @@ Restraints. A "fix colvars"_fix_colvars.html command is implemented
|
|||||||
which wraps a COLVARS library, which implements these methods.
|
which wraps a COLVARS library, which implements these methods.
|
||||||
simulations.
|
simulations.
|
||||||
|
|
||||||
[Authors:] Axel Kohlmeyer (Temple U). The COLVARS library was written
|
[Authors:] The COLVARS library is written and maintained by
|
||||||
by Giacomo Fiorin (ICMS, Temple University, Philadelphia, PA, USA) and
|
Giacomo Fiorin (ICMS, Temple University, Philadelphia, PA, USA)
|
||||||
Jerome Henin (LISM, CNRS, Marseille, France).
|
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:]
|
[Install or un-install:]
|
||||||
|
|
||||||
@ -1580,7 +1714,9 @@ which simply invoke the lib/colvars/Install.py script with the
|
|||||||
specified args:
|
specified args:
|
||||||
|
|
||||||
make lib-colvars # print help message
|
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
|
The build should produce two files: lib/colvars/libcolvars.a and
|
||||||
lib/colvars/Makefile.lammps. The latter is copied from an existing
|
lib/colvars/Makefile.lammps. The latter is copied from an existing
|
||||||
@ -1646,7 +1782,7 @@ coarse-grained DPD-based models for energetic, reactive molecular
|
|||||||
crystalline materials. It includes many pair styles specific to these
|
crystalline materials. It includes many pair styles specific to these
|
||||||
systems, including for reactive DPD, where each particle has internal
|
systems, including for reactive DPD, where each particle has internal
|
||||||
state for multiple species and a coupled set of chemical reaction ODEs
|
state for multiple species and a coupled set of chemical reaction ODEs
|
||||||
are integrated each timestep. Highly accurate time intergrators for
|
are integrated each timestep. Highly accurate time integrators for
|
||||||
isothermal, isoenergetic, isobaric and isenthalpic conditions are
|
isothermal, isoenergetic, isobaric and isenthalpic conditions are
|
||||||
included. These enable long timesteps via the Shardlow splitting
|
included. These enable long timesteps via the Shardlow splitting
|
||||||
algorithm.
|
algorithm.
|
||||||
@ -1673,12 +1809,12 @@ src/USER-DPD: filenames -> commands
|
|||||||
"fix eos/table/rx"_fix_eos_table_rx.html
|
"fix eos/table/rx"_fix_eos_table_rx.html
|
||||||
"fix shardlow"_fix_shardlow.html
|
"fix shardlow"_fix_shardlow.html
|
||||||
"fix rx"_fix_rx.html
|
"fix rx"_fix_rx.html
|
||||||
"pair table/rx"_pair_table_rx.html
|
"pair_style table/rx"_pair_table_rx.html
|
||||||
"pair dpd/fdt"_pair_dpd_fdt.html
|
"pair_style dpd/fdt"_pair_dpd_fdt.html
|
||||||
"pair dpd/fdt/energy"_pair_dpd_fdt.html
|
"pair_style dpd/fdt/energy"_pair_dpd_fdt.html
|
||||||
"pair exp6/rx"_pair_exp6_rx.html
|
"pair_style exp6/rx"_pair_exp6_rx.html
|
||||||
"pair multi/lucy"_pair_multi_lucy.html
|
"pair_style multi/lucy"_pair_multi_lucy.html
|
||||||
"pair multi/lucy/rx"_pair_multi_lucy_rx.html
|
"pair_style multi/lucy/rx"_pair_multi_lucy_rx.html
|
||||||
examples/USER/dpd :ul
|
examples/USER/dpd :ul
|
||||||
|
|
||||||
:line
|
:line
|
||||||
@ -1713,8 +1849,8 @@ src/USER-DRUDE/README
|
|||||||
"fix drude"_fix_drude.html
|
"fix drude"_fix_drude.html
|
||||||
"fix drude/transform/*"_fix_drude_transform.html
|
"fix drude/transform/*"_fix_drude_transform.html
|
||||||
"compute temp/drude"_compute_temp_drude.html
|
"compute temp/drude"_compute_temp_drude.html
|
||||||
"pair thole"_pair_thole.html
|
"pair_style thole"_pair_thole.html
|
||||||
"pair lj/cut/thole/long"_pair_thole.html
|
"pair_style lj/cut/thole/long"_pair_thole.html
|
||||||
examples/USER/drude
|
examples/USER/drude
|
||||||
tools/drude :ul
|
tools/drude :ul
|
||||||
|
|
||||||
@ -1752,8 +1888,8 @@ src/USER-EFF/README
|
|||||||
"fix npt/eff"_fix_nh_eff.html
|
"fix npt/eff"_fix_nh_eff.html
|
||||||
"fix langevin/eff"_fix_langevin_eff.html
|
"fix langevin/eff"_fix_langevin_eff.html
|
||||||
"compute temp/eff"_compute_temp_eff.html
|
"compute temp/eff"_compute_temp_eff.html
|
||||||
"pair eff/cut"_pair_eff.html
|
"pair_style eff/cut"_pair_eff.html
|
||||||
"pair eff/inline"_pair_eff.html
|
"pair_style eff/inline"_pair_eff.html
|
||||||
examples/USER/eff
|
examples/USER/eff
|
||||||
tools/eff/README
|
tools/eff/README
|
||||||
tools/eff
|
tools/eff
|
||||||
@ -1868,7 +2004,12 @@ Also see the "KOKKOS"_#KOKKOS, "OPT"_#OPT, and "USER-OMP"_#USER-OMP
|
|||||||
packages, which have styles optimized for CPUs and KNLs.
|
packages, which have styles optimized for CPUs and KNLs.
|
||||||
|
|
||||||
You need to have an Intel compiler, version 14 or higher to take full
|
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).
|
[Author:] Mike Brown (Intel).
|
||||||
|
|
||||||
@ -1885,17 +2026,17 @@ For CPUs:
|
|||||||
|
|
||||||
OPTFLAGS = -xHost -O2 -fp-model fast=2 -no-prec-div -qoverride-limits
|
OPTFLAGS = -xHost -O2 -fp-model fast=2 -no-prec-div -qoverride-limits
|
||||||
CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \
|
CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \
|
||||||
-fno-alias -ansi-alias -restrict $(OPTFLAGS)
|
-fno-alias -ansi-alias -restrict $(OPTFLAGS)
|
||||||
LINKFLAGS = -g -qopenmp $(OPTFLAGS)
|
LINKFLAGS = -g -qopenmp $(OPTFLAGS)
|
||||||
LIB = -ltbbmalloc -ltbbmalloc_proxy
|
LIB = -ltbbmalloc -ltbbmalloc_proxy :pre
|
||||||
|
|
||||||
For KNLs:
|
For KNLs:
|
||||||
|
|
||||||
OPTFLAGS = -xMIC-AVX512 -O2 -fp-model fast=2 -no-prec-div -qoverride-limits
|
OPTFLAGS = -xMIC-AVX512 -O2 -fp-model fast=2 -no-prec-div -qoverride-limits
|
||||||
CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \
|
CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \
|
||||||
-fno-alias -ansi-alias -restrict $(OPTFLAGS)
|
-fno-alias -ansi-alias -restrict $(OPTFLAGS)
|
||||||
LINKFLAGS = -g -qopenmp $(OPTFLAGS)
|
LINKFLAGS = -g -qopenmp $(OPTFLAGS)
|
||||||
LIB = -ltbbmalloc
|
LIB = -ltbbmalloc :pre
|
||||||
|
|
||||||
Once you have an appropriate Makefile.machine, you can
|
Once you have an appropriate Makefile.machine, you can
|
||||||
install/un-install the package and build LAMMPS in the usual manner.
|
install/un-install the package and build LAMMPS in the usual manner.
|
||||||
@ -2078,11 +2219,85 @@ make machine :pre
|
|||||||
|
|
||||||
src/USER-MEAMC: filenames -> commands
|
src/USER-MEAMC: filenames -> commands
|
||||||
src/USER-MEAMC/README
|
src/USER-MEAMC/README
|
||||||
"pair meam/c"_pair_meam.html
|
"pair_style meam/c"_pair_meam.html
|
||||||
examples/meam :ul
|
examples/meam :ul
|
||||||
|
|
||||||
:line
|
:line
|
||||||
|
|
||||||
|
USER-MESO package :link(USER-MESO),h4
|
||||||
|
|
||||||
|
[Contents:]
|
||||||
|
|
||||||
|
Several extensions of the the dissipative particle dynamics (DPD)
|
||||||
|
method. Specifically, energy-conserving DPD (eDPD) that can model
|
||||||
|
non-isothermal processes, many-body DPD (mDPD) for simulating
|
||||||
|
vapor-liquid coexistence, and transport DPD (tDPD) for modeling
|
||||||
|
advection-diffusion-reaction systems. The equations of motion of these
|
||||||
|
DPD extensions are integrated through a modified velocity-Verlet (MVV)
|
||||||
|
algorithm.
|
||||||
|
|
||||||
|
[Author:] Zhen Li (Division of Applied Mathematics, Brown University)
|
||||||
|
|
||||||
|
[Install or un-install:]
|
||||||
|
|
||||||
|
make yes-user-meso
|
||||||
|
make machine :pre
|
||||||
|
|
||||||
|
make no-user-meso
|
||||||
|
make machine :pre
|
||||||
|
|
||||||
|
[Supporting info:]
|
||||||
|
|
||||||
|
src/USER-MESO: filenames -> commands
|
||||||
|
src/USER-MESO/README
|
||||||
|
"atom_style edpd"_atom_style.html
|
||||||
|
"pair_style edpd"_pair_meso.html
|
||||||
|
"pair_style mdpd"_pair_meso.html
|
||||||
|
"pair_style tdpd"_pair_meso.html
|
||||||
|
"fix mvv/dpd"_fix_mvv_dpd.html
|
||||||
|
examples/USER/meso
|
||||||
|
http://lammps.sandia.gov/movies.html#mesodpd :ul
|
||||||
|
|
||||||
|
:line
|
||||||
|
|
||||||
|
USER-MOFFF package :link(USER-MOFFF),h4
|
||||||
|
|
||||||
|
[Contents:]
|
||||||
|
|
||||||
|
Pair, angle and improper styles needed to employ the MOF-FF
|
||||||
|
force field by Schmid and coworkers with LAMMPS.
|
||||||
|
MOF-FF is a first principles derived force field with the primary aim
|
||||||
|
to simulate MOFs and related porous framework materials, using spherical
|
||||||
|
Gaussian charges. It is described in S. Bureekaew et al., Phys. Stat. Sol. B
|
||||||
|
2013, 250, 1128-1141.
|
||||||
|
For the usage of MOF-FF see the example in the example directory as
|
||||||
|
well as the "MOF+"_MOFplus website.
|
||||||
|
|
||||||
|
:link(MOFplus,https://www.mofplus.org/content/show/MOF-FF)
|
||||||
|
|
||||||
|
[Author:] Hendrik Heenen (Technical U of Munich),
|
||||||
|
Rochus Schmid (Ruhr-University Bochum).
|
||||||
|
|
||||||
|
[Install or un-install:]
|
||||||
|
|
||||||
|
make yes-user-mofff
|
||||||
|
make machine :pre
|
||||||
|
|
||||||
|
make no-user-mofff
|
||||||
|
make machine :pre
|
||||||
|
|
||||||
|
[Supporting info:]
|
||||||
|
|
||||||
|
src/USER-MOFFF: filenames -> commands
|
||||||
|
src/USER-MOFFF/README
|
||||||
|
"pair_style buck6d/coul/gauss"_pair_buck6d_coul_gauss.html
|
||||||
|
"angle_style class2"_angle_class2.html
|
||||||
|
"angle_style cosine/buck6d"_angle_cosine_buck6d.html
|
||||||
|
"improper_style inversion/harmonic"_improper_inversion_harmonic.html
|
||||||
|
examples/USER/mofff :ul
|
||||||
|
|
||||||
|
:line
|
||||||
|
|
||||||
USER-MOLFILE package :link(USER-MOLFILE),h4
|
USER-MOLFILE package :link(USER-MOLFILE),h4
|
||||||
|
|
||||||
[Contents:]
|
[Contents:]
|
||||||
@ -2200,11 +2415,15 @@ CPUs.
|
|||||||
|
|
||||||
[Author:] Axel Kohlmeyer (Temple U).
|
[Author:] Axel Kohlmeyer (Temple U).
|
||||||
|
|
||||||
NOTE: The compile flags "-restrict" and "-fopenmp" must be used to
|
NOTE: To enable multi-threading support the compile flag "-fopenmp"
|
||||||
build LAMMPS with the USER-OMP package, as well as the link flag
|
and the link flag "-fopenmp" (for GNU compilers, you have to look up
|
||||||
"-fopenmp". They should be added to the CCFLAGS and LINKFLAGS lines
|
the equivalent flags for other compilers) must be used to build LAMMPS.
|
||||||
of your Makefile.machine. See src/MAKE/OPTIONS/Makefile.omp for an
|
When using Intel compilers, also the "-restrict" flag is required.
|
||||||
example.
|
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
|
Once you have an appropriate Makefile.machine, you can
|
||||||
install/un-install the package and build LAMMPS in the usual manner:
|
install/un-install the package and build LAMMPS in the usual manner:
|
||||||
@ -2217,7 +2436,7 @@ make machine :pre
|
|||||||
make no-user-omp
|
make no-user-omp
|
||||||
make machine :pre
|
make machine :pre
|
||||||
|
|
||||||
CCFLAGS: add -fopenmp and -restrict
|
CCFLAGS: add -fopenmp (and -restrict when using Intel compilers)
|
||||||
LINKFLAGS: add -fopenmp :ul
|
LINKFLAGS: add -fopenmp :ul
|
||||||
|
|
||||||
[Supporting info:]
|
[Supporting info:]
|
||||||
@ -2286,12 +2505,14 @@ without changes to LAMMPS itself.
|
|||||||
|
|
||||||
Before building LAMMPS with this package, you must first build the
|
Before building LAMMPS with this package, you must first build the
|
||||||
QMMM library in lib/qmmm. You can do this manually if you prefer;
|
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
|
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:
|
specified args:
|
||||||
|
|
||||||
make lib-qmmm # print help message
|
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
|
make lib-qmmm args="-m gfortran" # build with GNU Fortran compiler :pre
|
||||||
|
|
||||||
The build should produce two files: lib/qmmm/libqmmm.a and
|
The build should produce two files: lib/qmmm/libqmmm.a and
|
||||||
@ -2313,7 +2534,7 @@ make machine :pre
|
|||||||
|
|
||||||
NOTE: The LAMMPS executable these steps produce is not yet functional
|
NOTE: The LAMMPS executable these steps produce is not yet functional
|
||||||
for a QM/MM simulation. You must also build Quantum ESPRESSO and
|
for a QM/MM simulation. You must also build Quantum ESPRESSO and
|
||||||
create a new executable which links LAMMPS and Quanutm ESPRESSO
|
create a new executable which links LAMMPS and Quantum ESPRESSO
|
||||||
together. These are steps 3 and 4 described in the lib/qmmm/README
|
together. These are steps 3 and 4 described in the lib/qmmm/README
|
||||||
file.
|
file.
|
||||||
|
|
||||||
@ -2372,7 +2593,7 @@ developed by the Cambridge University group.
|
|||||||
|
|
||||||
:link(quip,https://github.com/libAtoms/QUIP)
|
:link(quip,https://github.com/libAtoms/QUIP)
|
||||||
|
|
||||||
To use this package you must have the QUIP libAatoms library available
|
To use this package you must have the QUIP libAtoms library available
|
||||||
on your system.
|
on your system.
|
||||||
|
|
||||||
[Author:] Albert Bartok (Cambridge University)
|
[Author:] Albert Bartok (Cambridge University)
|
||||||
@ -2468,15 +2689,13 @@ follow the instructions in lib/smd/README. You can also do it in one
|
|||||||
step from the lammps/src dir, using a command like these, which simply
|
step from the lammps/src dir, using a command like these, which simply
|
||||||
invoke the lib/smd/Install.py script with the specified args:
|
invoke the lib/smd/Install.py script with the specified args:
|
||||||
|
|
||||||
make lib-smd # print help message
|
make lib-smd # print help message
|
||||||
make lib-smd args="-g -l" # download in default lib/smd/eigen-eigen-*
|
make lib-smd args="-b" # download and build in default lib/smd/eigen-eigen-...
|
||||||
make lib-smd args="-h . eigen -g -l" # download in lib/smd/eigen
|
make lib-smd args="-p /usr/include/eigen3" # use existing Eigen installation in /usr/include/eigen3 :pre
|
||||||
make lib-smd args="-h ~ eigen -g -l" # download and build in ~/eigen :pre
|
|
||||||
|
|
||||||
Note that the final -l switch is to create a symbolic (soft) link
|
Note that a symbolic (soft) link named "includelink" is created in
|
||||||
named "includelink" in lib/smd to point to the Eigen dir. When LAMMPS
|
lib/smd to point to the Eigen dir. When LAMMPS builds it will use
|
||||||
builds it will use this link. You should not need to edit the
|
this link. You should not need to edit the lib/smd/Makefile.lammps file.
|
||||||
lib/smd/Makefile.lammps file.
|
|
||||||
|
|
||||||
You can then install/un-install the package and build LAMMPS in the
|
You can then install/un-install the package and build LAMMPS in the
|
||||||
usual manner:
|
usual manner:
|
||||||
@ -2592,13 +2811,44 @@ examples/USER/tally :ul
|
|||||||
|
|
||||||
:line
|
:line
|
||||||
|
|
||||||
|
USER-UEF package :link(USER-UEF),h4
|
||||||
|
|
||||||
|
[Contents:]
|
||||||
|
|
||||||
|
A fix style for the integration of the equations of motion under
|
||||||
|
extensional flow with proper boundary conditions, as well as several
|
||||||
|
supporting compute styles and an output option.
|
||||||
|
|
||||||
|
[Author:] David Nicholson (MIT).
|
||||||
|
|
||||||
|
[Install or un-install:]
|
||||||
|
|
||||||
|
make yes-user-uef
|
||||||
|
make machine :pre
|
||||||
|
|
||||||
|
make no-user-uef
|
||||||
|
make machine :pre
|
||||||
|
|
||||||
|
[Supporting info:]
|
||||||
|
|
||||||
|
src/USER-UEF: filenames -> commands
|
||||||
|
src/USER-UEF/README
|
||||||
|
"fix nvt/uef"_fix_nh_uef.html
|
||||||
|
"fix npt/uef"_fix_nh_uef.html
|
||||||
|
"compute pressure/uef"_compute_pressure_uef.html
|
||||||
|
"compute temp/uef"_compute_temp_uef.html
|
||||||
|
"dump cfg/uef"_dump_cfg_uef.html
|
||||||
|
examples/uef :ul
|
||||||
|
|
||||||
|
:line
|
||||||
|
|
||||||
USER-VTK package :link(USER-VTK),h4
|
USER-VTK package :link(USER-VTK),h4
|
||||||
|
|
||||||
[Contents:]
|
[Contents:]
|
||||||
|
|
||||||
A "dump vtk"_dump_vtk.html command which outputs
|
A "dump vtk"_dump_vtk.html command which outputs snapshot info in the
|
||||||
snapshot info in the "VTK format"_vtk, enabling visualization by
|
"VTK format"_vtk, enabling visualization by "Paraview"_paraview or
|
||||||
"Paraview"_paraview or other visuzlization packages.
|
other visualization packages.
|
||||||
|
|
||||||
:link(vtk,http://www.vtk.org)
|
:link(vtk,http://www.vtk.org)
|
||||||
:link(paraview,http://www.paraview.org)
|
:link(paraview,http://www.paraview.org)
|
||||||
|
|||||||
@ -123,7 +123,7 @@ code directly from an input script:
|
|||||||
|
|
||||||
"python"_python.html
|
"python"_python.html
|
||||||
"variable python"_variable.html
|
"variable python"_variable.html
|
||||||
"fix python"_fix_python.html
|
"fix python/invoke"_fix_python_invoke.html
|
||||||
"pair_style python"_pair_python.html :ul
|
"pair_style python"_pair_python.html :ul
|
||||||
|
|
||||||
The "python"_python.html command which can be used to define and
|
The "python"_python.html command which can be used to define and
|
||||||
@ -165,7 +165,7 @@ doc page for its python-style variables for more info, including
|
|||||||
examples of Python code you can write for both pure Python operations
|
examples of Python code you can write for both pure Python operations
|
||||||
and callbacks to LAMMPS.
|
and callbacks to LAMMPS.
|
||||||
|
|
||||||
The "fix python"_fix_python.html command can execute
|
The "fix python/invoke"_fix_python_invoke.html command can execute
|
||||||
Python code at selected timesteps during a simulation run.
|
Python code at selected timesteps during a simulation run.
|
||||||
|
|
||||||
The "pair_style python"_pair_python command allows you to define
|
The "pair_style python"_pair_python command allows you to define
|
||||||
|
|||||||
@ -79,7 +79,7 @@ This section has the following sub-sections:
|
|||||||
|
|
||||||
Read this first :h5,link(start_2_1)
|
Read this first :h5,link(start_2_1)
|
||||||
|
|
||||||
If you want to avoid building LAMMPS yourself, read the preceeding
|
If you want to avoid building LAMMPS yourself, read the preceding
|
||||||
section about options available for downloading and installing
|
section about options available for downloading and installing
|
||||||
executables. Details are discussed on the "download"_download page.
|
executables. Details are discussed on the "download"_download page.
|
||||||
|
|
||||||
@ -252,14 +252,13 @@ re-compile, after typing "make clean" (which will describe different
|
|||||||
clean options).
|
clean options).
|
||||||
|
|
||||||
The LMP_INC variable is used to include options that turn on ifdefs
|
The LMP_INC variable is used to include options that turn on ifdefs
|
||||||
within the LAMMPS code. The options that are currently recogized are:
|
within the LAMMPS code. The options that are currently recognized are:
|
||||||
|
|
||||||
-DLAMMPS_GZIP
|
-DLAMMPS_GZIP
|
||||||
-DLAMMPS_JPEG
|
-DLAMMPS_JPEG
|
||||||
-DLAMMPS_PNG
|
-DLAMMPS_PNG
|
||||||
-DLAMMPS_FFMPEG
|
-DLAMMPS_FFMPEG
|
||||||
-DLAMMPS_MEMALIGN
|
-DLAMMPS_MEMALIGN
|
||||||
-DLAMMPS_XDR
|
|
||||||
-DLAMMPS_SMALLBIG
|
-DLAMMPS_SMALLBIG
|
||||||
-DLAMMPS_BIGBIG
|
-DLAMMPS_BIGBIG
|
||||||
-DLAMMPS_SMALLSMALL
|
-DLAMMPS_SMALLSMALL
|
||||||
@ -308,11 +307,6 @@ has to be aligned on larger than default byte boundaries (e.g. 16
|
|||||||
bytes instead of 8 bytes on x86 type platforms) for optimal
|
bytes instead of 8 bytes on x86 type platforms) for optimal
|
||||||
performance.
|
performance.
|
||||||
|
|
||||||
If you use -DLAMMPS_XDR, the build will include XDR compatibility
|
|
||||||
files for doing particle dumps in XTC format. This is only necessary
|
|
||||||
if your platform does have its own XDR files available. See the
|
|
||||||
Restrictions section of the "dump"_dump.html command for details.
|
|
||||||
|
|
||||||
Use at most one of the -DLAMMPS_SMALLBIG, -DLAMMPS_BIGBIG,
|
Use at most one of the -DLAMMPS_SMALLBIG, -DLAMMPS_BIGBIG,
|
||||||
-DLAMMPS_SMALLSMALL settings. The default is -DLAMMPS_SMALLBIG. These
|
-DLAMMPS_SMALLSMALL settings. The default is -DLAMMPS_SMALLBIG. These
|
||||||
settings refer to use of 4-byte (small) vs 8-byte (big) integers
|
settings refer to use of 4-byte (small) vs 8-byte (big) integers
|
||||||
@ -363,7 +357,7 @@ installed on your platform. If MPI is installed on your system in the
|
|||||||
usual place (under /usr/local), you also may not need to specify these
|
usual place (under /usr/local), you also may not need to specify these
|
||||||
3 variables, assuming /usr/local is in your path. On some large
|
3 variables, assuming /usr/local is in your path. On some large
|
||||||
parallel machines which use "modules" for their compile/link
|
parallel machines which use "modules" for their compile/link
|
||||||
environements, you may simply need to include the correct module in
|
environments, you may simply need to include the correct module in
|
||||||
your build environment, before building LAMMPS. Or the parallel
|
your build environment, before building LAMMPS. Or the parallel
|
||||||
machine may have a vendor-provided MPI which the compiler has no
|
machine may have a vendor-provided MPI which the compiler has no
|
||||||
trouble finding.
|
trouble finding.
|
||||||
@ -431,7 +425,7 @@ use the KISS library described above.
|
|||||||
You may also need to set the FFT_INC, FFT_PATH, and FFT_LIB variables,
|
You may also need to set the FFT_INC, FFT_PATH, and FFT_LIB variables,
|
||||||
so the compiler and linker can find the needed FFT header and library
|
so the compiler and linker can find the needed FFT header and library
|
||||||
files. Note that on some large parallel machines which use "modules"
|
files. Note that on some large parallel machines which use "modules"
|
||||||
for their compile/link environements, you may simply need to include
|
for their compile/link environments, you may simply need to include
|
||||||
the correct module in your build environment. Or the parallel machine
|
the correct module in your build environment. Or the parallel machine
|
||||||
may have a vendor-provided FFT library which the compiler has no
|
may have a vendor-provided FFT library which the compiler has no
|
||||||
trouble finding. See the src/MAKE/OPTIONS/Makefile.fftw file for an
|
trouble finding. See the src/MAKE/OPTIONS/Makefile.fftw file for an
|
||||||
@ -470,7 +464,7 @@ precision.
|
|||||||
|
|
||||||
The FFT_INC variable also allows for a -DFFT_SINGLE setting that will
|
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
|
use single-precision FFTs with PPPM, which can speed-up long-range
|
||||||
calulations, particularly in parallel or on GPUs. Fourier transform
|
calculations, particularly in parallel or on GPUs. Fourier transform
|
||||||
and related PPPM operations are somewhat insensitive to floating point
|
and related PPPM operations are somewhat insensitive to floating point
|
||||||
truncation errors and thus do not always need to be performed in
|
truncation errors and thus do not always need to be performed in
|
||||||
double precision. Using the -DFFT_SINGLE setting trades off a little
|
double precision. Using the -DFFT_SINGLE setting trades off a little
|
||||||
@ -483,7 +477,7 @@ with support for single-precision, as explained above. For FFTW3 you
|
|||||||
also need to include -lfftw3f with the FFT_LIB setting, in addition to
|
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
|
-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
|
FFT_INC setting and -lsfftw with the FFT_LIB setting (in place of
|
||||||
-lfftw). Similarly, if FFTW2 has been preinstalled with an explicit
|
-lfftw). Similarly, if FFTW2 has been pre-installed with an explicit
|
||||||
double-precision library (libdfftw.a and not the default libfftw.a),
|
double-precision library (libdfftw.a and not the default libfftw.a),
|
||||||
then you can specify -DFFT_SIZE (and not -DFFT_SINGLE), and specify
|
then you can specify -DFFT_SIZE (and not -DFFT_SINGLE), and specify
|
||||||
-ldfftw to use double-precision FFTs.
|
-ldfftw to use double-precision FFTs.
|
||||||
@ -536,7 +530,7 @@ You should get the executable lmp_foo when the build is complete.
|
|||||||
|
|
||||||
:line
|
:line
|
||||||
|
|
||||||
Errors that can occur when making LAMMPS: h5 :link(start_2_3)
|
Errors that can occur when making LAMMPS :h5 :link(start_2_3)
|
||||||
|
|
||||||
If an error occurs when building LAMMPS, the compiler or linker will
|
If an error occurs when building LAMMPS, the compiler or linker will
|
||||||
state very explicitly what the problem is. The error message should
|
state very explicitly what the problem is. The error message should
|
||||||
@ -587,8 +581,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
|
files created when LAMMPS is built, for either all builds or for a
|
||||||
particular machine.
|
particular machine.
|
||||||
|
|
||||||
Changing the LAMMPS size limits via -DLAMMPS_SMALLBIG or
|
Changing the LAMMPS size limits via -DLAMMPS_SMALLBIG or -DLAMMPS_BIGBIG or -DLAMMPS_SMALLSMALL :h6
|
||||||
-DLAMMPS_BIGBIG or -DLAMMPS_SMALLSMALL :h6
|
|
||||||
|
|
||||||
As explained above, any of these 3 settings can be specified on the
|
As explained above, any of these 3 settings can be specified on the
|
||||||
LMP_INC line in your low-level src/MAKE/Makefile.foo.
|
LMP_INC line in your low-level src/MAKE/Makefile.foo.
|
||||||
@ -659,22 +652,29 @@ utilities.
|
|||||||
For Cygwin and the MinGW cross-compilers, suitable makefiles are
|
For Cygwin and the MinGW cross-compilers, suitable makefiles are
|
||||||
provided in src/MAKE/MACHINES. When using other compilers, like
|
provided in src/MAKE/MACHINES. When using other compilers, like
|
||||||
Visual C++ or Intel compilers for Windows, you may have to implement
|
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
|
||||||
has significant experience building executables on Windows, we are
|
and Windows system libraries to Unix-like environments like Linux
|
||||||
happy to distribute contributed instructions and modifications, but
|
or MacOS, when compiling for Windows a few adjustments may be needed:
|
||||||
we cannot provide support for those.
|
|
||||||
|
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 to improve the situation,
|
||||||
|
but we cannot provide support for those.
|
||||||
|
|
||||||
With the so-called "Anniversary Update" to Windows 10, there is a
|
With the so-called "Anniversary Update" to Windows 10, there is a
|
||||||
Ubuntu Linux subsystem available for Windows, that can be installed
|
Ubuntu Linux subsystem available for Windows, that can be installed
|
||||||
and then used to compile/install LAMMPS as if you are running on a
|
and then used to compile/install LAMMPS as if you are running on a
|
||||||
Ubuntu Linux system instead of Windows.
|
Ubuntu Linux system instead of Windows.
|
||||||
|
|
||||||
As an alternative, you can download "daily builds" (and some older
|
As an alternative, you can download pre-compiled installer packages from
|
||||||
versions) of the installer packages from
|
"packages.lammps.org/windows.html"_http://packages.lammps.org/windows.html.
|
||||||
"rpm.lammps.org/windows.html"_http://rpm.lammps.org/windows.html.
|
These executables are built with most optional packages included and the
|
||||||
These executables are built with most optional packages and the
|
download includes documentation, potential files, some tools and many
|
||||||
download includes documentation, potential files, some tools and
|
examples, but no source code.
|
||||||
many examples, but no source code.
|
|
||||||
|
|
||||||
:line
|
:line
|
||||||
|
|
||||||
@ -708,7 +708,7 @@ list various make commands that can be used to manage packages.
|
|||||||
If you use a command in a LAMMPS input script that is part of a
|
If you use a command in a LAMMPS input script that is part of a
|
||||||
package, you must have built LAMMPS with that package, else you will
|
package, you must have built LAMMPS with that package, else you will
|
||||||
get an error that the style is invalid or the command is unknown.
|
get an error that the style is invalid or the command is unknown.
|
||||||
Every command's doc page specfies if it is part of a package. You can
|
Every command's doc page specifies if it is part of a package. You can
|
||||||
type
|
type
|
||||||
|
|
||||||
lmp_machine -h :pre
|
lmp_machine -h :pre
|
||||||
@ -853,7 +853,7 @@ details for each package.
|
|||||||
[External libraries:]
|
[External libraries:]
|
||||||
|
|
||||||
Packages in the tables "Section 4"_Section_packages.html with an "ext"
|
Packages in the tables "Section 4"_Section_packages.html with an "ext"
|
||||||
in the last column link to exernal libraries whose source code is not
|
in the last column link to external libraries whose source code is not
|
||||||
included with LAMMPS. You must first download and install the library
|
included with LAMMPS. You must first download and install the library
|
||||||
before building LAMMPS with that package installed. E.g. the voronoi
|
before building LAMMPS with that package installed. E.g. the voronoi
|
||||||
package links to the freely available "Voro++ library"_voro_home2. You
|
package links to the freely available "Voro++ library"_voro_home2. You
|
||||||
@ -909,12 +909,12 @@ src/MAKE/OPTIONS, which include the settings. Note that the
|
|||||||
USER-INTEL and KOKKOS packages can use settings that build LAMMPS for
|
USER-INTEL and KOKKOS packages can use settings that build LAMMPS for
|
||||||
different hardware. The USER-INTEL package can be compiled for Intel
|
different hardware. The USER-INTEL package can be compiled for Intel
|
||||||
CPUs and KNLs; the KOKKOS package builds for CPUs (OpenMP), GPUs
|
CPUs and KNLs; the KOKKOS package builds for CPUs (OpenMP), GPUs
|
||||||
(Cuda), and Intel KNLs.
|
(CUDA), and Intel KNLs.
|
||||||
|
|
||||||
Makefile.intel_cpu
|
Makefile.intel_cpu
|
||||||
Makefile.intel_phi
|
Makefile.intel_phi
|
||||||
Makefile.kokkos_omp
|
Makefile.kokkos_omp
|
||||||
Makefile.kokkos_cuda
|
Makefile.kokkos_cuda_mpi
|
||||||
Makefile.kokkos_phi
|
Makefile.kokkos_phi
|
||||||
Makefile.omp
|
Makefile.omp
|
||||||
Makefile.opt :ul
|
Makefile.opt :ul
|
||||||
@ -957,7 +957,7 @@ src/MAKE/Makefile.foo and perform the build in the directory
|
|||||||
Obj_shared_foo. This is so that each file can be compiled with the
|
Obj_shared_foo. This is so that each file can be compiled with the
|
||||||
-fPIC flag which is required for inclusion in a shared library. The
|
-fPIC flag which is required for inclusion in a shared library. The
|
||||||
build will create the file liblammps_foo.so which another application
|
build will create the file liblammps_foo.so which another application
|
||||||
can link to dyamically. It will also create a soft link liblammps.so,
|
can link to dynamically. It will also create a soft link liblammps.so,
|
||||||
which will point to the most recently built shared library. This is
|
which will point to the most recently built shared library. This is
|
||||||
the file the Python wrapper loads by default.
|
the file the Python wrapper loads by default.
|
||||||
|
|
||||||
@ -1087,7 +1087,7 @@ LAMMPS to be built with one or more of its optional packages.
|
|||||||
:line
|
:line
|
||||||
|
|
||||||
On a Windows box, you can skip making LAMMPS and simply download an
|
On a Windows box, you can skip making LAMMPS and simply download an
|
||||||
installer package from "here"_http://rpm.lammps.org/windows.html
|
installer package from "here"_http://packages.lammps.org/windows.html
|
||||||
|
|
||||||
For running the non-MPI executable, follow these steps:
|
For running the non-MPI executable, follow these steps:
|
||||||
|
|
||||||
@ -1099,18 +1099,27 @@ the [in.lj] input from the bench folder. (e.g. by typing: cd "Documents"). :l
|
|||||||
|
|
||||||
At the command prompt, type "lmp_serial -in in.lj", replacing [in.lj]
|
At the command prompt, type "lmp_serial -in in.lj", replacing [in.lj]
|
||||||
with the name of your LAMMPS input script. :l
|
with the name of your LAMMPS input script. :l
|
||||||
|
|
||||||
|
The serial executable includes support for multi-threading
|
||||||
|
parallelization from the styles in the USER-OMP packages.
|
||||||
|
|
||||||
|
To run with, e.g. 4 threads, type "lmp_serial -in in.lj -pk omp 4 -sf omp"
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
For the MPI version, which allows you to run LAMMPS under Windows on
|
For the MPI version, which allows you to run LAMMPS under Windows with
|
||||||
multiple processors, follow these steps:
|
the more general message passing parallel library (LAMMPS has been
|
||||||
|
designed from ground up to use MPI efficiently), follow these steps:
|
||||||
|
|
||||||
Download and install
|
Download and install a compatible MPI library binary package:
|
||||||
"MPICH2"_http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads
|
for 32-bit Windows
|
||||||
for Windows. :ulb,l
|
"mpich2-1.4.1p1-win-ia32.msi"_download.lammps.org/thirdparty/mpich2-1.4.1p1-win-ia32.msi
|
||||||
|
and for 64-bit Windows
|
||||||
|
"mpich2-1.4.1p1-win-x86-64.msi"_download.lammps.org/thirdparty/mpich2-1.4.1p1-win-x86-64.msi
|
||||||
|
:ulb,l
|
||||||
|
|
||||||
The LAMMPS Windows installer packages will automatically adjust your
|
The LAMMPS Windows installer packages will automatically adjust your
|
||||||
path for the default location of this MPI package. After the installation
|
path for the default location of this MPI package. After the installation
|
||||||
of the MPICH software, it needs to be integrated into the system.
|
of the MPICH2 software, it needs to be integrated into the system.
|
||||||
For this you need to start a Command Prompt in {Administrator Mode}
|
For this you need to start a Command Prompt in {Administrator Mode}
|
||||||
(right click on the icon and select it). Change into the MPICH2
|
(right click on the icon and select it). Change into the MPICH2
|
||||||
installation directory, then into the subdirectory [bin] and execute
|
installation directory, then into the subdirectory [bin] and execute
|
||||||
@ -1129,7 +1138,7 @@ or
|
|||||||
|
|
||||||
mpiexec -np 4 lmp_mpi -in in.lj :pre
|
mpiexec -np 4 lmp_mpi -in in.lj :pre
|
||||||
|
|
||||||
replacing in.lj with the name of your LAMMPS input script. For the latter
|
replacing [in.lj] with the name of your LAMMPS input script. For the latter
|
||||||
case, you may be prompted to enter your password. :l
|
case, you may be prompted to enter your password. :l
|
||||||
|
|
||||||
In this mode, output may not immediately show up on the screen, so if
|
In this mode, output may not immediately show up on the screen, so if
|
||||||
@ -1141,6 +1150,11 @@ something like:
|
|||||||
|
|
||||||
lmp_mpi -in in.lj :pre
|
lmp_mpi -in in.lj :pre
|
||||||
|
|
||||||
|
And the parallel executable also includes OpenMP multi-threading, which
|
||||||
|
can be combined with MPI using something like:
|
||||||
|
|
||||||
|
mpiexec -localonly 2 lmp_mpi -in in.lj -pk omp 2 -sf omp :pre
|
||||||
|
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
:line
|
:line
|
||||||
@ -1309,8 +1323,8 @@ LAMMPS is compiled with CUDA=yes.
|
|||||||
numa Nm :pre
|
numa Nm :pre
|
||||||
|
|
||||||
This option is only relevant when using pthreads with hwloc support.
|
This option is only relevant when using pthreads with hwloc support.
|
||||||
In this case Nm defines the number of NUMA regions (typicaly sockets)
|
In this case Nm defines the number of NUMA regions (typically sockets)
|
||||||
on a node which will be utilizied by a single MPI rank. By default Nm
|
on a node which will be utilized by a single MPI rank. By default Nm
|
||||||
= 1. If this option is used the total number of worker-threads per
|
= 1. If this option is used the total number of worker-threads per
|
||||||
MPI rank is threads*numa. Currently it is always almost better to
|
MPI rank is threads*numa. Currently it is always almost better to
|
||||||
assign at least one MPI rank per NUMA region, and leave numa set to
|
assign at least one MPI rank per NUMA region, and leave numa set to
|
||||||
@ -1374,7 +1388,7 @@ replica runs on on one or a few processors. Note that with MPI
|
|||||||
installed on a machine (e.g. your desktop), you can run on more
|
installed on a machine (e.g. your desktop), you can run on more
|
||||||
(virtual) processors than you have physical processors.
|
(virtual) processors than you have physical processors.
|
||||||
|
|
||||||
To run multiple independent simulatoins from one input script, using
|
To run multiple independent simulations from one input script, using
|
||||||
multiple partitions, see "Section 6.4"_Section_howto.html#howto_4
|
multiple partitions, see "Section 6.4"_Section_howto.html#howto_4
|
||||||
of the manual. World- and universe-style "variables"_variable.html
|
of the manual. World- and universe-style "variables"_variable.html
|
||||||
are useful in this context.
|
are useful in this context.
|
||||||
@ -1653,7 +1667,7 @@ The first section provides a global loop timing summary. The {loop time}
|
|||||||
is the total wall time for the section. The {Performance} line is
|
is the total wall time for the section. The {Performance} line is
|
||||||
provided for convenience to help predicting the number of loop
|
provided for convenience to help predicting the number of loop
|
||||||
continuations required and for comparing performance with other,
|
continuations required and for comparing performance with other,
|
||||||
similar MD codes. The {CPU use} line provides the CPU utilzation per
|
similar MD codes. The {CPU use} line provides the CPU utilization per
|
||||||
MPI task; it should be close to 100% times the number of OpenMP
|
MPI task; it should be close to 100% times the number of OpenMP
|
||||||
threads (or 1 of no OpenMP). Lower numbers correspond to delays due
|
threads (or 1 of no OpenMP). Lower numbers correspond to delays due
|
||||||
to file I/O or insufficient thread utilization.
|
to file I/O or insufficient thread utilization.
|
||||||
|
|||||||
@ -48,6 +48,7 @@ own sub-directories with their own Makefiles and/or README files.
|
|||||||
"chain"_#chain
|
"chain"_#chain
|
||||||
"colvars"_#colvars
|
"colvars"_#colvars
|
||||||
"createatoms"_#createatoms
|
"createatoms"_#createatoms
|
||||||
|
"doxygen"_#doxygen
|
||||||
"drude"_#drude
|
"drude"_#drude
|
||||||
"eam database"_#eamdb
|
"eam database"_#eamdb
|
||||||
"eam generate"_#eamgn
|
"eam generate"_#eamgn
|
||||||
@ -110,14 +111,21 @@ back-and-forth between the CHARMM MD code and LAMMPS.
|
|||||||
They are intended to make it easy to use CHARMM as a builder and as a
|
They are intended to make it easy to use CHARMM as a builder and as a
|
||||||
post-processor for LAMMPS. Using charmm2lammps.pl, you can convert a
|
post-processor for LAMMPS. Using charmm2lammps.pl, you can convert a
|
||||||
PDB file with associated CHARMM info, including CHARMM force field
|
PDB file with associated CHARMM info, including CHARMM force field
|
||||||
data, into its LAMMPS equivalent. Using lammps2pdb.pl you can convert
|
data, into its LAMMPS equivalent. Support for the CMAP correction of
|
||||||
LAMMPS atom dumps into PDB files.
|
CHARMM22 and later is available as an option. This tool can also add
|
||||||
|
solvent water molecules and Na+ or Cl- ions to the system.
|
||||||
|
Using lammps2pdb.pl you can convert LAMMPS atom dumps into PDB files.
|
||||||
|
|
||||||
See the README file in the ch2lmp sub-directory for more information.
|
See the README file in the ch2lmp sub-directory for more information.
|
||||||
|
|
||||||
These tools were created by Pieter in't Veld (pjintve at sandia.gov)
|
These tools were created by Pieter in't Veld (pjintve at sandia.gov)
|
||||||
and Paul Crozier (pscrozi at sandia.gov) at Sandia.
|
and Paul Crozier (pscrozi at sandia.gov) at Sandia.
|
||||||
|
|
||||||
|
CMAP support added and tested by Xiaohu Hu (hux2 at ornl.gov) and
|
||||||
|
Robert A. Latour (latourr at clemson.edu), David Hyde-Volpe, and
|
||||||
|
Tigran Abramyan, (Clemson University) and
|
||||||
|
Chris Lorenz (chris.lorenz at kcl.ac.uk), King's College London.
|
||||||
|
|
||||||
:line
|
:line
|
||||||
|
|
||||||
chain tool :h4,link(chain)
|
chain tool :h4,link(chain)
|
||||||
@ -172,6 +180,18 @@ The tool is authored by Xiaowang Zhou (Sandia), xzhou at sandia.gov.
|
|||||||
|
|
||||||
:line
|
:line
|
||||||
|
|
||||||
|
doxygen tool :h4,link(doxygen)
|
||||||
|
|
||||||
|
The tools/doxygen directory contains a shell script called
|
||||||
|
doxygen.sh which can generate a call graph and API lists using
|
||||||
|
the "Doxygen"_http://doxygen.org software.
|
||||||
|
|
||||||
|
See the included README file for details.
|
||||||
|
|
||||||
|
The tool is authored by Nandor Tamaskovics, numericalfreedom at googlemail.com.
|
||||||
|
|
||||||
|
:line
|
||||||
|
|
||||||
drude tool :h4,link(drude)
|
drude tool :h4,link(drude)
|
||||||
|
|
||||||
The tools/drude directory contains a Python script called
|
The tools/drude directory contains a Python script called
|
||||||
|
|||||||
@ -62,7 +62,7 @@ respectively to your input script.
|
|||||||
[Required hardware/software:]
|
[Required hardware/software:]
|
||||||
|
|
||||||
To use this package, you currently need to have an NVIDIA GPU and
|
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
|
Check if you have an NVIDIA GPU: cat /proc/driver/nvidia/gpus/0/information
|
||||||
Go to http://www.nvidia.com/object/cuda_get.html
|
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
|
This requires two steps (a,b): build the GPU library, then build
|
||||||
LAMMPS with the GPU package.
|
LAMMPS with the GPU package.
|
||||||
|
|
||||||
You can do both these steps in one line, using the src/Make.py script,
|
You can do both these steps in one line as described in
|
||||||
described in "Section 4"_Section_packages.html of the manual.
|
"Section 4"_Section_packages.html 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
|
|
||||||
|
|
||||||
Or you can follow these two (a,b) steps:
|
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
|
lib/gpu) appropriate for your system. You should pay special
|
||||||
attention to 3 settings in this makefile.
|
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_ARCH = needs to be appropriate to your GPUs
|
||||||
CUDA_PREC = precision (double, mixed, single) you desire :ul
|
CUDA_PREC = precision (double, mixed, single) you desire :ul
|
||||||
|
|
||||||
|
|||||||
@ -25,12 +25,14 @@ LAMMPS to run on the CPU cores and coprocessor cores simultaneously.
|
|||||||
[Currently Available USER-INTEL Styles:]
|
[Currently Available USER-INTEL Styles:]
|
||||||
|
|
||||||
Angle Styles: charmm, harmonic :ulb,l
|
Angle Styles: charmm, harmonic :ulb,l
|
||||||
Bond Styles: fene, harmonic :l
|
Bond Styles: fene, fourier, harmonic :l
|
||||||
Dihedral Styles: charmm, harmonic, opls :l
|
Dihedral Styles: charmm, harmonic, opls :l
|
||||||
Fixes: nve, npt, nvt, nvt/sllod :l
|
Fixes: nve, npt, nvt, nvt/sllod, nve/asphere :l
|
||||||
Improper Styles: cvff, harmonic :l
|
Improper Styles: cvff, harmonic :l
|
||||||
Pair Styles: buck/coul/cut, buck/coul/long, buck, eam, gayberne,
|
Pair Styles: airebo, airebo/morse, buck/coul/cut, buck/coul/long,
|
||||||
charmm/coul/long, lj/cut, lj/cut/coul/long, lj/long/coul/long, sw, tersoff :l
|
buck, dpd, eam, eam/alloy, eam/fs, gayberne, lj/charmm/coul/charmm,
|
||||||
|
lj/charmm/coul/long, lj/cut, lj/cut/coul/long, lj/long/coul/long,
|
||||||
|
rebo, sw, tersoff :l
|
||||||
K-Space Styles: pppm, pppm/disp :l
|
K-Space Styles: pppm, pppm/disp :l
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
@ -52,11 +54,12 @@ warmup run (for use with offload benchmarks).
|
|||||||
:c,image(JPG/user_intel.png)
|
:c,image(JPG/user_intel.png)
|
||||||
|
|
||||||
Results are speedups obtained on Intel Xeon E5-2697v4 processors
|
Results are speedups obtained on Intel Xeon E5-2697v4 processors
|
||||||
(code-named Broadwell) and Intel Xeon Phi 7250 processors
|
(code-named Broadwell), Intel Xeon Phi 7250 processors (code-named
|
||||||
(code-named Knights Landing) with "June 2017" LAMMPS built with
|
Knights Landing), and Intel Xeon Gold 6148 processors (code-named
|
||||||
Intel Parallel Studio 2017 update 2. Results are with 1 MPI task
|
Skylake) with "June 2017" LAMMPS built with Intel Parallel Studio
|
||||||
per physical core. See {src/USER-INTEL/TEST/README} for the raw
|
2017 update 2. Results are with 1 MPI task per physical core. See
|
||||||
simulation rates and instructions to reproduce.
|
{src/USER-INTEL/TEST/README} for the raw simulation rates and
|
||||||
|
instructions to reproduce.
|
||||||
|
|
||||||
:line
|
:line
|
||||||
|
|
||||||
@ -75,11 +78,16 @@ order of operations compared to LAMMPS without acceleration:
|
|||||||
Neighbor lists can be created in a different order :ulb,l
|
Neighbor lists can be created in a different order :ulb,l
|
||||||
Bins used for sorting atoms can be oriented differently :l
|
Bins used for sorting atoms can be oriented differently :l
|
||||||
The default stencil order for PPPM is 7. By default, LAMMPS will
|
The default stencil order for PPPM is 7. By default, LAMMPS will
|
||||||
calculate other PPPM parameters to fit the desired acuracy with
|
calculate other PPPM parameters to fit the desired accuracy with
|
||||||
this order :l
|
this order :l
|
||||||
The {newton} setting applies to all atoms, not just atoms shared
|
The {newton} setting applies to all atoms, not just atoms shared
|
||||||
between MPI tasks :l
|
between MPI tasks :l
|
||||||
Vectorization can change the order for adding pairwise forces :l
|
Vectorization can change the order for adding pairwise forces :l
|
||||||
|
When using the -DLMP_USE_MKL_RNG define (all included intel optimized
|
||||||
|
makefiles do) at build time, the random number generator for
|
||||||
|
dissipative particle dynamics (pair style dpd/intel) uses the Mersenne
|
||||||
|
Twister generator included in the Intel MKL library (that should be
|
||||||
|
more robust than the default Masaglia random number generator) :l
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
The precision mode (described below) used with the USER-INTEL
|
The precision mode (described below) used with the USER-INTEL
|
||||||
@ -106,7 +114,7 @@ $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
|
For some of the simple 2-body potentials without long-range
|
||||||
electrostatics, performance and scalability can be better with
|
electrostatics, performance and scalability can be better with
|
||||||
the "newton off" setting added to the input script :l
|
the "newton off" setting added to the input script :l
|
||||||
For simulations on higher node counts, add "processors * * * grid
|
For simulations on higher node counts, add "processors * * * grid
|
||||||
numa" to the beginning of the input script for better scalability :l
|
numa" to the beginning of the input script for better scalability :l
|
||||||
If using {kspace_style pppm} in the input script, add
|
If using {kspace_style pppm} in the input script, add
|
||||||
"kspace_modify diff ad" for better performance :l
|
"kspace_modify diff ad" for better performance :l
|
||||||
@ -117,8 +125,8 @@ For Intel Xeon Phi CPUs:
|
|||||||
Runs should be performed using MCDRAM. :ulb,l
|
Runs should be performed using MCDRAM. :ulb,l
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
For simulations using {kspace_style pppm} on Intel CPUs
|
For simulations using {kspace_style pppm} on Intel CPUs supporting
|
||||||
supporting AVX-512:
|
AVX-512:
|
||||||
|
|
||||||
Add "kspace_modify diff ad" to the input script :ulb,l
|
Add "kspace_modify diff ad" to the input script :ulb,l
|
||||||
The command-line option should be changed to
|
The command-line option should be changed to
|
||||||
@ -225,11 +233,9 @@ source /opt/intel/parallel_studio_xe_2016.3.067/psxevars.sh
|
|||||||
# or psxevars.csh for C-shell
|
# or psxevars.csh for C-shell
|
||||||
make intel_cpu_intelmpi :pre
|
make intel_cpu_intelmpi :pre
|
||||||
|
|
||||||
Alternatively, the build can be accomplished with the src/Make.py
|
Alternatively this can be done as a single command with
|
||||||
script, described in "Section 4"_Section_packages.html of the
|
suitable make command invocations. This is discussed in "Section
|
||||||
manual. Type "Make.py -h" for help. For an example:
|
4"_Section_packages.html of the manual.
|
||||||
|
|
||||||
Make.py -v -p intel omp -intel cpu -a file intel_cpu_intelmpi :pre
|
|
||||||
|
|
||||||
Note that if you build with support for a Phi coprocessor, the same
|
Note that if you build with support for a Phi coprocessor, the same
|
||||||
binary can be used on nodes with or without coprocessors installed.
|
binary can be used on nodes with or without coprocessors installed.
|
||||||
@ -237,15 +243,17 @@ However, if you do not have coprocessors on your system, building
|
|||||||
without offload support will produce a smaller binary.
|
without offload support will produce a smaller binary.
|
||||||
|
|
||||||
The general requirements for Makefiles with the USER-INTEL package
|
The general requirements for Makefiles with the USER-INTEL package
|
||||||
are as follows. "-DLAMMPS_MEMALIGN=64" is required for CCFLAGS. When
|
are as follows. When using Intel compilers, "-restrict" is required
|
||||||
using Intel compilers, "-restrict" is required and "-qopenmp" is
|
and "-qopenmp" is highly recommended for CCFLAGS and LINKFLAGS.
|
||||||
highly recommended for CCFLAGS and LINKFLAGS. LIB should include
|
CCFLAGS should include "-DLMP_INTEL_USELRT" (unless POSIX Threads
|
||||||
"-ltbbmalloc". For builds supporting offload, "-DLMP_INTEL_OFFLOAD"
|
are not supported in the build environment) and "-DLMP_USE_MKL_RNG"
|
||||||
is required for CCFLAGS and "-qoffload" is required for LINKFLAGS.
|
(unless Intel Math Kernel Library (MKL) is not available in the build
|
||||||
Other recommended CCFLAG options for best performance are
|
environment). For Intel compilers, LIB should include "-ltbbmalloc"
|
||||||
"-O2 -fno-alias -ansi-alias -qoverride-limits fp-model fast=2
|
or if the library is not available, "-DLMP_INTEL_NO_TBB" can be added
|
||||||
-no-prec-div". The Make.py command will add all of these
|
to CCFLAGS. For builds supporting offload, "-DLMP_INTEL_OFFLOAD" is
|
||||||
automatically.
|
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".
|
||||||
|
|
||||||
NOTE: The vectorization and math capabilities can differ depending on
|
NOTE: The vectorization and math capabilities can differ depending on
|
||||||
the CPU. For Intel compilers, the "-x" flag specifies the type of
|
the CPU. For Intel compilers, the "-x" flag specifies the type of
|
||||||
@ -362,10 +370,14 @@ intel"_package.html command that can improve performance when using
|
|||||||
"PPPM"_kspace_style.html for long-range electrostatics on processors
|
"PPPM"_kspace_style.html for long-range electrostatics on processors
|
||||||
with SMT. It generates an extra pthread for each MPI task. The thread
|
with SMT. It generates an extra pthread for each MPI task. The thread
|
||||||
is dedicated to performing some of the PPPM calculations and MPI
|
is dedicated to performing some of the PPPM calculations and MPI
|
||||||
communications. On Intel Xeon Phi x200 series CPUs, this will likely
|
communications. This feature requires setting the preprocessor flag
|
||||||
always improve performance, even on a single node. On Intel Xeon
|
-DLMP_INTEL_USELRT in the makefile when compiling LAMMPS. It is unset
|
||||||
processors, using this mode might result in better performance when
|
in the default makefiles ({Makefile.mpi} and {Makefile.serial}) but
|
||||||
using multiple nodes, depending on the machine. To use this mode,
|
it is set in all makefiles tuned for the USER-INTEL package. On Intel
|
||||||
|
Xeon Phi x200 series CPUs, the LRT feature will likely improve
|
||||||
|
performance, even on a single node. On Intel Xeon processors, using
|
||||||
|
this mode might result in better performance when using multiple nodes,
|
||||||
|
depending on the specific machine configuration. To enable LRT mode,
|
||||||
specify that the number of OpenMP threads is one less than would
|
specify that the number of OpenMP threads is one less than would
|
||||||
normally be used for the run and add the "lrt yes" option to the "-pk"
|
normally be used for the run and add the "lrt yes" option to the "-pk"
|
||||||
command-line suffix or "package intel" command. For example, if a run
|
command-line suffix or "package intel" command. For example, if a run
|
||||||
|
|||||||
@ -11,339 +11,346 @@
|
|||||||
|
|
||||||
5.3.3 KOKKOS package :h5
|
5.3.3 KOKKOS package :h5
|
||||||
|
|
||||||
The KOKKOS package was developed primarily by Christian Trott (Sandia)
|
Kokkos is a templated C++ library that provides abstractions to allow
|
||||||
with contributions of various styles by others, including Sikandar
|
a single implementation of an application kernel (e.g. a pair style) to run efficiently on
|
||||||
Mashayak (UIUC), Stan Moore (Sandia), and Ray Shan (Sandia). The
|
different kinds of hardware, such as GPUs, Intel Xeon Phis, or many-core
|
||||||
underlying Kokkos library was written primarily by Carter Edwards,
|
CPUs. Kokkos maps the C++ kernel onto different backend languages such as CUDA, OpenMP, or Pthreads.
|
||||||
|
The Kokkos library also provides data abstractions to adjust (at
|
||||||
|
compile time) the memory layout of data structures like 2d and
|
||||||
|
3d arrays to optimize performance on different hardware. For more information on Kokkos, see
|
||||||
|
"Github"_https://github.com/kokkos/kokkos. Kokkos is part of
|
||||||
|
"Trilinos"_http://trilinos.sandia.gov/packages/kokkos. The Kokkos library was written primarily by Carter Edwards,
|
||||||
Christian Trott, and Dan Sunderland (all Sandia).
|
Christian Trott, and Dan Sunderland (all Sandia).
|
||||||
|
|
||||||
The KOKKOS package contains versions of pair, fix, and atom styles
|
The LAMMPS KOKKOS package contains versions of pair, fix, and atom styles
|
||||||
that use data structures and macros provided by the Kokkos library,
|
that use data structures and macros provided by the Kokkos library,
|
||||||
which is included with LAMMPS in lib/kokkos.
|
which is included with LAMMPS in /lib/kokkos. The KOKKOS package was developed primarily by Christian Trott (Sandia)
|
||||||
|
and Stan Moore (Sandia) with contributions of various styles by others, including Sikandar
|
||||||
The Kokkos library is part of
|
Mashayak (UIUC), Ray Shan (Sandia), and Dan Ibanez (Sandia). For more information on developing using Kokkos abstractions
|
||||||
"Trilinos"_http://trilinos.sandia.gov/packages/kokkos and can also be
|
see the Kokkos programmers' guide at /lib/kokkos/doc/Kokkos_PG.pdf.
|
||||||
downloaded from "Github"_https://github.com/kokkos/kokkos. Kokkos is a
|
|
||||||
templated C++ library that provides two key abstractions for an
|
|
||||||
application like LAMMPS. First, it allows a single implementation of
|
|
||||||
an application kernel (e.g. a pair style) to run efficiently on
|
|
||||||
different kinds of hardware, such as a GPU, Intel Phi, or many-core
|
|
||||||
CPU.
|
|
||||||
|
|
||||||
The Kokkos library also provides data abstractions to adjust (at
|
|
||||||
compile time) the memory layout of basic data structures like 2d and
|
|
||||||
3d arrays and allow the transparent utilization of special hardware
|
|
||||||
load and store operations. Such data structures are used in LAMMPS to
|
|
||||||
store atom coordinates or forces or neighbor lists. The layout is
|
|
||||||
chosen to optimize performance on different platforms. Again this
|
|
||||||
functionality is hidden from the developer, and does not affect how
|
|
||||||
the kernel is coded.
|
|
||||||
|
|
||||||
These abstractions are set at build time, when LAMMPS is compiled with
|
|
||||||
the KOKKOS package installed. All Kokkos operations occur within the
|
|
||||||
context of an individual MPI task running on a single node of the
|
|
||||||
machine. The total number of MPI tasks used by LAMMPS (one or
|
|
||||||
multiple per compute node) is set in the usual manner via the mpirun
|
|
||||||
or mpiexec commands, and is independent of Kokkos.
|
|
||||||
|
|
||||||
Kokkos currently provides support for 3 modes of execution (per MPI
|
Kokkos currently provides support for 3 modes of execution (per MPI
|
||||||
task). These are OpenMP (for many-core CPUs), Cuda (for NVIDIA GPUs),
|
task). These are Serial (MPI-only for CPUs and Intel Phi), OpenMP (threading
|
||||||
and OpenMP (for Intel Phi). Note that the KOKKOS package supports
|
for many-core CPUs and Intel Phi), and CUDA (for NVIDIA GPUs). You choose the mode at build time to
|
||||||
running on the Phi in native mode, not offload mode like the
|
|
||||||
USER-INTEL package supports. You choose the mode at build time to
|
|
||||||
produce an executable compatible with specific hardware.
|
produce an executable compatible with specific hardware.
|
||||||
|
|
||||||
Here is a quick overview of how to use the KOKKOS package
|
|
||||||
for CPU acceleration, assuming one or more 16-core nodes.
|
|
||||||
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
|
|
||||||
|
|
||||||
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
|
|
||||||
mpirun -np 2 lmp_mpi -k on t 8 -sf kk -in in.lj # 1 node, 2 MPI tasks/node, 8 threads/task
|
|
||||||
mpirun -np 32 -ppn 4 lmp_mpi -k on t 4 -sf kk -in in.lj # 8 nodes, 4 MPI tasks/node, 4 threads/task :pre
|
|
||||||
|
|
||||||
specify variables and settings in your Makefile.machine that enable OpenMP, GPU, or Phi support
|
|
||||||
include the KOKKOS package and build LAMMPS
|
|
||||||
enable the KOKKOS package and its hardware options via the "-k on" command-line switch use KOKKOS styles in your input script :ul
|
|
||||||
|
|
||||||
Here is a quick overview of how to use the KOKKOS package for GPUs,
|
|
||||||
assuming one or more nodes, each with 16 cores and a GPU. More
|
|
||||||
details follow.
|
|
||||||
|
|
||||||
discuss use of NVCC, which Makefiles to examine
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
mpirun -np 2 lmp_cuda -k on t 8 g 2 -sf kk -in in.lj # two MPI tasks, 8 threads per CPU
|
|
||||||
mpirun -np 32 -ppn 2 lmp_cuda -k on t 8 g 2 -sf kk -in in.lj # ditto on 16 nodes :pre
|
|
||||||
|
|
||||||
Here is a quick overview of how to use the KOKKOS package
|
|
||||||
for the Intel Phi:
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
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
|
|
||||||
mpirun -np 30 lmp_g++ -k on t 8 -sf kk -in in.lj # 30 MPI tasks on 1 Phi, 30*8 = 240
|
|
||||||
mpirun -np 12 lmp_g++ -k on t 20 -sf kk -in in.lj # 12 MPI tasks on 1 Phi, 12*20 = 240
|
|
||||||
mpirun -np 96 -ppn 12 lmp_g++ -k on t 20 -sf kk -in in.lj # ditto on 8 Phis :pre
|
|
||||||
|
|
||||||
[Required hardware/software:]
|
|
||||||
|
|
||||||
Kokkos support within LAMMPS must be built with a C++11 compatible
|
|
||||||
compiler. If using gcc, version 4.7.2 or later is required.
|
|
||||||
|
|
||||||
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
|
|
||||||
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.
|
|
||||||
|
|
||||||
NOTE: For good performance of the KOKKOS package on GPUs, you must
|
|
||||||
have Kepler generation GPUs (or later). The Kokkos library exploits
|
|
||||||
texture cache options not supported by Telsa generation GPUs (or
|
|
||||||
older).
|
|
||||||
|
|
||||||
To build with Kokkos support for Intel Xeon Phi coprocessors, your
|
|
||||||
sysmte must be configured to use them in "native" mode, not "offload"
|
|
||||||
mode like the USER-INTEL package supports.
|
|
||||||
|
|
||||||
[Building LAMMPS with the KOKKOS package:]
|
[Building LAMMPS with the KOKKOS package:]
|
||||||
|
|
||||||
You must choose at build time whether to build for CPUs (OpenMP),
|
NOTE: Kokkos support within LAMMPS must be built with a C++11 compatible
|
||||||
GPUs, or Phi.
|
compiler. This means GCC version 4.7.2 or later, Intel 14.0.4 or later, or
|
||||||
|
Clang 3.5.2 or later is required.
|
||||||
|
|
||||||
You can do any of these in one line, using the src/Make.py script,
|
The recommended method of building the KOKKOS package is to start with the provided Kokkos
|
||||||
described in "Section 4"_Section_packages.html of the manual.
|
Makefiles in /src/MAKE/OPTIONS/. You may need to modify the KOKKOS_ARCH variable in the Makefile
|
||||||
Type "Make.py -h" for help. If run from the src directory, these
|
to match your specific hardware. For example:
|
||||||
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
|
for Sandy Bridge CPUs, set KOKKOS_ARCH=SNB
|
||||||
"-sf kk" "command-line switches"_Section_start.html#start_6
|
for Broadwell CPUs, set KOKKOS_ARCH=BWD
|
||||||
respectively. Or the effect of the "-pk" or "-sf" switches can be
|
for K80 GPUs, set KOKKOS_ARCH=Kepler37
|
||||||
duplicated by adding the "package kokkos"_package.html or "suffix
|
for P100 GPUs and Power8 CPUs, set KOKKOS_ARCH=Pascal60,Power8 :ul
|
||||||
kk"_suffix.html commands respectively to your input script.
|
|
||||||
|
|
||||||
|
See the [Advanced Kokkos Options] section below for a listing of all KOKKOS_ARCH options.
|
||||||
|
|
||||||
Or you can follow these steps:
|
[Compile for CPU-only (MPI only, no threading):]
|
||||||
|
|
||||||
CPU-only (run all-MPI or with OpenMP threading):
|
use a C++11 compatible compiler and set KOKKOS_ARCH variable in
|
||||||
|
/src/MAKE/OPTIONS/Makefile.kokkos_mpi_only as described above. Then do the
|
||||||
|
following:
|
||||||
|
|
||||||
|
cd lammps/src
|
||||||
|
make yes-kokkos
|
||||||
|
make kokkos_mpi_only :pre
|
||||||
|
|
||||||
|
[Compile for CPU-only (MPI plus OpenMP threading):]
|
||||||
|
|
||||||
|
NOTE: To build with Kokkos support for OpenMP threading, 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.
|
||||||
|
|
||||||
|
use a C++11 compatible compiler and set KOKKOS_ARCH variable in
|
||||||
|
/src/MAKE/OPTIONS/Makefile.kokkos_omp as described above. Then do the
|
||||||
|
following:
|
||||||
|
|
||||||
cd lammps/src
|
cd lammps/src
|
||||||
make yes-kokkos
|
make yes-kokkos
|
||||||
make kokkos_omp :pre
|
make kokkos_omp :pre
|
||||||
|
|
||||||
CPU-only (only MPI, no threading):
|
[Compile for Intel KNL Xeon Phi (Intel Compiler, OpenMPI):]
|
||||||
|
|
||||||
cd lammps/src
|
use a C++11 compatible compiler and do the following:
|
||||||
make yes-kokkos
|
|
||||||
make kokkos_mpi :pre
|
|
||||||
|
|
||||||
Intel Xeon Phi (Intel Compiler, Intel MPI):
|
|
||||||
|
|
||||||
cd lammps/src
|
cd lammps/src
|
||||||
make yes-kokkos
|
make yes-kokkos
|
||||||
make kokkos_phi :pre
|
make kokkos_phi :pre
|
||||||
|
|
||||||
CPUs and GPUs (with MPICH):
|
[Compile for CPUs and GPUs (with OpenMPI or MPICH):]
|
||||||
|
|
||||||
|
NOTE: 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.
|
||||||
|
|
||||||
|
use a C++11 compatible compiler and set KOKKOS_ARCH variable in
|
||||||
|
/src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi for both GPU and CPU as described
|
||||||
|
above. Then do the following:
|
||||||
|
|
||||||
cd lammps/src
|
cd lammps/src
|
||||||
make yes-kokkos
|
make yes-kokkos
|
||||||
make kokkos_cuda_mpich :pre
|
make kokkos_cuda_mpi :pre
|
||||||
|
|
||||||
These examples set the KOKKOS-specific OMP, MIC, CUDA variables on the
|
[Alternative Methods of Compiling:]
|
||||||
make command line which requires a GNU-compatible make command. Try
|
|
||||||
|
Alternatively, the KOKKOS package can be built by specifying Kokkos variables
|
||||||
|
on the make command line. For example:
|
||||||
|
|
||||||
|
make mpi KOKKOS_DEVICES=OpenMP KOKKOS_ARCH=SNB # set the KOKKOS_DEVICES and KOKKOS_ARCH variable explicitly
|
||||||
|
make kokkos_cuda_mpi KOKKOS_ARCH=Pascal60,Power8 # set the KOKKOS_ARCH variable explicitly :pre
|
||||||
|
|
||||||
|
Setting the KOKKOS_DEVICES and KOKKOS_ARCH variables on the
|
||||||
|
make command line requires a GNU-compatible make command. Try
|
||||||
"gmake" if your system's standard make complains.
|
"gmake" if your system's standard make complains.
|
||||||
|
|
||||||
NOTE: If you build using make line variables and re-build LAMMPS twice
|
NOTE: If you build using make line variables and re-build LAMMPS twice
|
||||||
with different KOKKOS options and the *same* target, e.g. g++ in the
|
with different KOKKOS options and the *same* target, then you *must* perform a "make clean-all"
|
||||||
first two examples above, then you *must* perform a "make clean-all"
|
or "make clean-machine" before each build. This is to force all the
|
||||||
or "make clean-machine" before each build. This is to force all the
|
|
||||||
KOKKOS-dependent files to be re-compiled with the new options.
|
KOKKOS-dependent files to be re-compiled with the new options.
|
||||||
|
|
||||||
NOTE: Currently, there are no precision options with the KOKKOS
|
[Running LAMMPS with the KOKKOS package:]
|
||||||
package. All compilation and computation is performed in double
|
|
||||||
precision.
|
|
||||||
|
|
||||||
There are other allowed options when building with the KOKKOS package.
|
All Kokkos operations occur within the
|
||||||
As above, they can be set either as variables on the make command line
|
context of an individual MPI task running on a single node of the
|
||||||
or in Makefile.machine. This is the full list of options, including
|
machine. The total number of MPI tasks used by LAMMPS (one or
|
||||||
those discussed above, Each takes a value shown below. The
|
multiple per compute node) is set in the usual manner via the mpirun
|
||||||
default value is listed, which is set in the
|
or mpiexec commands, and is independent of Kokkos. E.g. the mpirun
|
||||||
lib/kokkos/Makefile.kokkos file.
|
command in OpenMPI does this via its
|
||||||
|
-np and -npernode switches. Ditto for MPICH via -np and -ppn.
|
||||||
|
|
||||||
#Default settings specific options
|
[Running on a multi-core CPU:]
|
||||||
#Options: force_uvm,use_ldg,rdc
|
|
||||||
|
|
||||||
KOKKOS_DEVICES, values = {OpenMP}, {Serial}, {Pthreads}, {Cuda}, default = {OpenMP}
|
Here is a quick overview of how to use the KOKKOS package
|
||||||
KOKKOS_ARCH, values = {KNC}, {SNB}, {HSW}, {Kepler}, {Kepler30}, {Kepler32}, {Kepler35}, {Kepler37}, {Maxwell}, {Maxwell50}, {Maxwell52}, {Maxwell53}, {ARMv8}, {BGQ}, {Power7}, {Power8}, default = {none}
|
for CPU acceleration, assuming one or more 16-core nodes.
|
||||||
KOKKOS_DEBUG, values = {yes}, {no}, default = {no}
|
|
||||||
KOKKOS_USE_TPLS, values = {hwloc}, {librt}, default = {none}
|
|
||||||
KOKKOS_CUDA_OPTIONS, values = {force_uvm}, {use_ldg}, {rdc} :ul
|
|
||||||
|
|
||||||
KOKKOS_DEVICE sets the parallelization method used for Kokkos code
|
mpirun -np 16 lmp_kokkos_mpi_only -k on -sf kk -in in.lj # 1 node, 16 MPI tasks/node, no multi-threading
|
||||||
(within LAMMPS). KOKKOS_DEVICES=OpenMP means that OpenMP will be
|
mpirun -np 2 -ppn 1 lmp_kokkos_omp -k on t 16 -sf kk -in in.lj # 2 nodes, 1 MPI task/node, 16 threads/task
|
||||||
used. KOKKOS_DEVICES=Pthreads means that pthreads will be used.
|
mpirun -np 2 lmp_kokkos_omp -k on t 8 -sf kk -in in.lj # 1 node, 2 MPI tasks/node, 8 threads/task
|
||||||
KOKKOS_DEVICES=Cuda means an NVIDIA GPU running CUDA will be used.
|
mpirun -np 32 -ppn 4 lmp_kokkos_omp -k on t 4 -sf kk -in in.lj # 8 nodes, 4 MPI tasks/node, 4 threads/task :pre
|
||||||
|
|
||||||
If KOKKOS_DEVICES=Cuda, then the lo-level Makefile in the src/MAKE
|
|
||||||
directory must use "nvcc" as its compiler, via its CC setting. For
|
|
||||||
best performance its CCFLAGS setting should use -O3 and have a
|
|
||||||
KOKKOS_ARCH setting that matches the compute capability of your NVIDIA
|
|
||||||
hardware and software installation, e.g. KOKKOS_ARCH=Kepler30. Note
|
|
||||||
the minimal required compute capability is 2.0, but this will give
|
|
||||||
significantly reduced performance compared to Kepler generation GPUs
|
|
||||||
with compute capability 3.x. For the LINK setting, "nvcc" should not
|
|
||||||
be used; instead use g++ or another compiler suitable for linking C++
|
|
||||||
applications. Often you will want to use your MPI compiler wrapper
|
|
||||||
for this setting (i.e. mpicxx). Finally, the lo-level Makefile must
|
|
||||||
also have a "Compilation rule" for creating *.o files from *.cu files.
|
|
||||||
See src/Makefile.cuda for an example of a lo-level Makefile with all
|
|
||||||
of these settings.
|
|
||||||
|
|
||||||
KOKKOS_USE_TPLS=hwloc binds threads to hardware cores, so they do not
|
|
||||||
migrate during a simulation. KOKKOS_USE_TPLS=hwloc should always be
|
|
||||||
used if running with KOKKOS_DEVICES=Pthreads for pthreads. It is not
|
|
||||||
necessary for KOKKOS_DEVICES=OpenMP for OpenMP, because OpenMP
|
|
||||||
provides alternative methods via environment variables for binding
|
|
||||||
threads to hardware cores. More info on binding threads to cores is
|
|
||||||
given in "Section 5.3"_Section_accelerate.html#acc_3.
|
|
||||||
|
|
||||||
KOKKOS_ARCH=KNC enables compiler switches needed when compiling for an
|
|
||||||
Intel Phi processor.
|
|
||||||
|
|
||||||
KOKKOS_USE_TPLS=librt enables use of a more accurate timer mechanism
|
|
||||||
on most Unix platforms. This library is not available on all
|
|
||||||
platforms.
|
|
||||||
|
|
||||||
KOKKOS_DEBUG is only useful when developing a Kokkos-enabled style
|
|
||||||
within LAMMPS. KOKKOS_DEBUG=yes enables printing of run-time
|
|
||||||
debugging information that can be useful. It also enables runtime
|
|
||||||
bounds checking on Kokkos data structures.
|
|
||||||
|
|
||||||
KOKKOS_CUDA_OPTIONS are additional options for CUDA.
|
|
||||||
|
|
||||||
For more information on Kokkos see the Kokkos programmers' guide here:
|
|
||||||
/lib/kokkos/doc/Kokkos_PG.pdf.
|
|
||||||
|
|
||||||
[Run with the KOKKOS package from the command line:]
|
|
||||||
|
|
||||||
The mpirun or mpiexec command sets the total number of MPI tasks used
|
|
||||||
by LAMMPS (one or multiple per compute node) and the number of MPI
|
|
||||||
tasks used per node. E.g. the mpirun command in MPICH does this via
|
|
||||||
its -np and -ppn switches. Ditto for OpenMPI via -np and -npernode.
|
|
||||||
|
|
||||||
When using KOKKOS built with host=OMP, you need to choose how many
|
|
||||||
OpenMP threads per MPI task will be used (via the "-k" command-line
|
|
||||||
switch discussed below). Note that the product of MPI tasks * OpenMP
|
|
||||||
threads/task should not exceed the physical number of cores (on a
|
|
||||||
node), otherwise performance will suffer.
|
|
||||||
|
|
||||||
When using the KOKKOS package built with device=CUDA, you must use
|
|
||||||
exactly one MPI task per physical GPU.
|
|
||||||
|
|
||||||
When using the KOKKOS package built with host=MIC for Intel Xeon Phi
|
|
||||||
coprocessor support you need to insure there are one or more MPI tasks
|
|
||||||
per coprocessor, and choose the number of coprocessor threads to use
|
|
||||||
per MPI task (via the "-k" command-line switch discussed below). The
|
|
||||||
product of MPI tasks * coprocessor threads/task should not exceed the
|
|
||||||
maximum number of threads the coprocessor is designed to run,
|
|
||||||
otherwise performance will suffer. This value is 240 for current
|
|
||||||
generation Xeon Phi(TM) chips, which is 60 physical cores * 4
|
|
||||||
threads/core. Note that with the KOKKOS package you do not need to
|
|
||||||
specify how many Phi coprocessors there are per node; each
|
|
||||||
coprocessors is simply treated as running some number of MPI tasks.
|
|
||||||
|
|
||||||
|
To run using the KOKKOS package, use the "-k on", "-sf kk" and "-pk kokkos" "command-line switches"_Section_start.html#start_7 in your mpirun command.
|
||||||
You must use the "-k on" "command-line
|
You must use the "-k on" "command-line
|
||||||
switch"_Section_start.html#start_6 to enable the KOKKOS package. It
|
switch"_Section_start.html#start_7 to enable the KOKKOS package. It
|
||||||
takes additional arguments for hardware settings appropriate to your
|
takes additional arguments for hardware settings appropriate to your
|
||||||
system. Those arguments are "documented
|
system. Those arguments are "documented
|
||||||
here"_Section_start.html#start_6. The two most commonly used
|
here"_Section_start.html#start_7. For OpenMP use:
|
||||||
options are:
|
|
||||||
|
|
||||||
-k on t Nt g Ng :pre
|
-k on t Nt :pre
|
||||||
|
|
||||||
The "t Nt" option applies to host=OMP (even if device=CUDA) and
|
|
||||||
host=MIC. For host=OMP, it specifies how many OpenMP threads per MPI
|
|
||||||
task to use with a node. For host=MIC, it specifies how many Xeon Phi
|
|
||||||
threads per MPI task to use within a node. The default is Nt = 1.
|
|
||||||
Note that for host=OMP this is effectively MPI-only mode which may be
|
|
||||||
fine. But for host=MIC you will typically end up using far less than
|
|
||||||
all the 240 available threads, which could give very poor performance.
|
|
||||||
|
|
||||||
The "g Ng" option applies to device=CUDA. It specifies how many GPUs
|
|
||||||
per compute node to use. The default is 1, so this only needs to be
|
|
||||||
specified is you have 2 or more GPUs per compute node.
|
|
||||||
|
|
||||||
|
The "t Nt" option specifies how many OpenMP threads per MPI
|
||||||
|
task to use with a node. The default is Nt = 1, which is MPI-only mode.
|
||||||
|
Note that the product of MPI tasks * OpenMP
|
||||||
|
threads/task should not exceed the physical number of cores (on a
|
||||||
|
node), otherwise performance will suffer. If hyperthreading is enabled, then
|
||||||
|
the product of MPI tasks * OpenMP threads/task should not exceed the
|
||||||
|
physical number of cores * hardware threads.
|
||||||
The "-k on" switch also issues a "package kokkos" command (with no
|
The "-k on" switch also issues a "package kokkos" command (with no
|
||||||
additional arguments) which sets various KOKKOS options to default
|
additional arguments) which sets various KOKKOS options to default
|
||||||
values, as discussed on the "package"_package.html command doc page.
|
values, as discussed on the "package"_package.html command doc page.
|
||||||
|
|
||||||
Use the "-sf kk" "command-line switch"_Section_start.html#start_6,
|
The "-sf kk" "command-line switch"_Section_start.html#start_7
|
||||||
which will automatically append "kk" to styles that support it. Use
|
will automatically append the "/kk" suffix to styles that support it.
|
||||||
the "-pk kokkos" "command-line switch"_Section_start.html#start_6 if
|
In this manner no modification to the input script is needed. Alternatively,
|
||||||
you wish to change any of the default "package kokkos"_package.html
|
one can run with the KOKKOS package by editing the input script as described below.
|
||||||
optionns set by the "-k on" "command-line
|
|
||||||
switch"_Section_start.html#start_6.
|
|
||||||
|
|
||||||
|
NOTE: The default for the "package kokkos"_package.html command is
|
||||||
|
|
||||||
Note that the default for the "package kokkos"_package.html command is
|
|
||||||
to use "full" neighbor lists and set the Newton flag to "off" for both
|
to use "full" neighbor lists and set the Newton flag to "off" for both
|
||||||
pairwise and bonded interactions. This typically gives fastest
|
pairwise and bonded interactions. However, when running on CPUs, it
|
||||||
performance. If the "newton"_newton.html command is used in the input
|
|
||||||
script, it can override the Newton flag defaults.
|
|
||||||
|
|
||||||
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
|
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
|
Newton flag to "on", just as is the case for non-accelerated pair
|
||||||
styles. You can do this with the "-pk" "command-line
|
styles. It can also be faster to use non-threaded communication.
|
||||||
switch"_Section_start.html#start_6.
|
Use the "-pk kokkos" "command-line switch"_Section_start.html#start_7 to
|
||||||
|
change the default "package kokkos"_package.html
|
||||||
|
options. See its doc page for details and default settings. Experimenting with
|
||||||
|
its options can provide a speed-up for specific calculations. For example:
|
||||||
|
|
||||||
[Or run with the KOKKOS package by editing an input script:]
|
mpirun -np 16 lmp_kokkos_mpi_only -k on -sf kk -pk kokkos newton on neigh half comm no -in in.lj # Newton on, Half neighbor list, non-threaded comm :pre
|
||||||
|
|
||||||
The discussion above for the mpirun/mpiexec command and setting
|
If the "newton"_newton.html command is used in the input
|
||||||
appropriate thread and GPU values for host=OMP or host=MIC or
|
script, it can also override the Newton flag defaults.
|
||||||
device=CUDA are the same.
|
|
||||||
|
[Core and Thread Affinity:]
|
||||||
|
|
||||||
|
When using multi-threading, it is important for
|
||||||
|
performance to bind both MPI tasks to physical cores, and threads to
|
||||||
|
physical cores, so they do not migrate during a simulation.
|
||||||
|
|
||||||
|
If you are not certain MPI tasks are being bound (check the defaults
|
||||||
|
for your MPI installation), binding can be forced with these flags:
|
||||||
|
|
||||||
|
OpenMPI 1.8: mpirun -np 2 --bind-to socket --map-by socket ./lmp_openmpi ...
|
||||||
|
Mvapich2 2.0: mpiexec -np 2 --bind-to socket --map-by socket ./lmp_mvapich ... :pre
|
||||||
|
|
||||||
|
For binding threads with KOKKOS OpenMP, use thread affinity
|
||||||
|
environment variables to force binding. With OpenMP 3.1 (gcc 4.7 or
|
||||||
|
later, intel 12 or later) setting the environment variable
|
||||||
|
OMP_PROC_BIND=true should be sufficient. In general, for best performance
|
||||||
|
with OpenMP 4.0 or better set OMP_PROC_BIND=spread and OMP_PLACES=threads.
|
||||||
|
For binding threads with the
|
||||||
|
KOKKOS pthreads option, compile LAMMPS the KOKKOS HWLOC=yes option
|
||||||
|
as described below.
|
||||||
|
|
||||||
|
[Running on Knight's Landing (KNL) Intel Xeon Phi:]
|
||||||
|
|
||||||
|
Here is a quick overview of how to use the KOKKOS package
|
||||||
|
for the Intel Knight's Landing (KNL) Xeon Phi:
|
||||||
|
|
||||||
|
KNL Intel Phi chips have 68 physical cores. Typically 1 to 4 cores
|
||||||
|
are reserved for the OS, and only 64 or 66 cores are used. Each core
|
||||||
|
has 4 hyperthreads,so there are effectively N = 256 (4*64) or
|
||||||
|
N = 264 (4*66) cores to run on. The product of MPI tasks * OpenMP threads/task should not exceed this limit,
|
||||||
|
otherwise performance will suffer. Note that with the KOKKOS package you do not need to
|
||||||
|
specify how many KNLs there are per node; each
|
||||||
|
KNL is simply treated as running some number of MPI tasks.
|
||||||
|
|
||||||
|
Examples of mpirun commands that follow these rules are shown below.
|
||||||
|
|
||||||
|
Intel KNL node with 68 cores (272 threads/node via 4x hardware threading):
|
||||||
|
mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -in in.lj # 1 node, 64 MPI tasks/node, 4 threads/task
|
||||||
|
mpirun -np 66 lmp_kokkos_phi -k on t 4 -sf kk -in in.lj # 1 node, 66 MPI tasks/node, 4 threads/task
|
||||||
|
mpirun -np 32 lmp_kokkos_phi -k on t 8 -sf kk -in in.lj # 1 node, 32 MPI tasks/node, 8 threads/task
|
||||||
|
mpirun -np 512 -ppn 64 lmp_kokkos_phi -k on t 4 -sf kk -in in.lj # 8 nodes, 64 MPI tasks/node, 4 threads/task :pre
|
||||||
|
|
||||||
|
The -np setting of the mpirun command sets the number of MPI
|
||||||
|
tasks/node. The "-k on t Nt" command-line switch sets the number of
|
||||||
|
threads/task as Nt. The product of these two values should be N, i.e.
|
||||||
|
256 or 264.
|
||||||
|
|
||||||
|
NOTE: The default for the "package kokkos"_package.html command is
|
||||||
|
to use "full" neighbor lists and set the Newton flag to "off" for both
|
||||||
|
pairwise and bonded interactions. When running on KNL, this
|
||||||
|
will typically be best for pair-wise potentials. For manybody potentials,
|
||||||
|
using "half" neighbor lists and setting the
|
||||||
|
Newton flag to "on" may be faster. It can also be faster to use non-threaded communication.
|
||||||
|
Use the "-pk kokkos" "command-line switch"_Section_start.html#start_7 to
|
||||||
|
change the default "package kokkos"_package.html
|
||||||
|
options. See its doc page for details and default settings. Experimenting with
|
||||||
|
its options can provide a speed-up for specific calculations. For example:
|
||||||
|
|
||||||
|
mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos comm no -in in.lj # Newton off, full neighbor list, non-threaded comm
|
||||||
|
mpirun -np 64 lmp_kokkos_phi -k on t 4 -sf kk -pk kokkos newton on neigh half comm no -in in.reax # Newton on, half neighbor list, non-threaded comm :pre
|
||||||
|
|
||||||
|
NOTE: MPI tasks and threads should be bound to cores as described above for CPUs.
|
||||||
|
|
||||||
|
NOTE: To build with Kokkos support for Intel Xeon Phi coprocessors such as Knight's Corner (KNC), your
|
||||||
|
system must be configured to use them in "native" mode, not "offload"
|
||||||
|
mode like the USER-INTEL package supports.
|
||||||
|
|
||||||
|
[Running on GPUs:]
|
||||||
|
|
||||||
|
Use the "-k" "command-line switch"_Section_commands.html#start_7 to
|
||||||
|
specify the number of GPUs per node. Typically the -np setting
|
||||||
|
of the mpirun command should set the number of MPI
|
||||||
|
tasks/node to be equal to the # of physical GPUs on the node.
|
||||||
|
You can assign multiple MPI tasks to the same GPU with the
|
||||||
|
KOKKOS package, but this is usually only faster if significant portions
|
||||||
|
of the input script have not been ported to use Kokkos. Using CUDA MPS
|
||||||
|
is recommended in this scenario. As above for multi-core CPUs (and no GPU), if N is the number
|
||||||
|
of physical cores/node, then the number of MPI tasks/node should not exceed N.
|
||||||
|
|
||||||
|
-k on g Ng :pre
|
||||||
|
|
||||||
|
Here are examples of how to use the KOKKOS package for GPUs,
|
||||||
|
assuming one or more nodes, each with two GPUs:
|
||||||
|
|
||||||
|
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -in in.lj # 1 node, 2 MPI tasks/node, 2 GPUs/node
|
||||||
|
mpirun -np 32 -ppn 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -in in.lj # 16 nodes, 2 MPI tasks/node, 2 GPUs/node (32 GPUs total) :pre
|
||||||
|
|
||||||
|
NOTE: The default for the "package kokkos"_package.html command is
|
||||||
|
to use "full" neighbor lists and set the Newton flag to "off" for both
|
||||||
|
pairwise and bonded interactions, along with threaded communication.
|
||||||
|
When running on Maxwell or Kepler GPUs, this will typically be best. For Pascal GPUs,
|
||||||
|
using "half" neighbor lists and setting the
|
||||||
|
Newton flag to "on" may be faster. For many pair styles, setting the neighbor binsize
|
||||||
|
equal to the ghost atom cutoff will give speedup.
|
||||||
|
Use the "-pk kokkos" "command-line switch"_Section_start.html#start_7 to
|
||||||
|
change the default "package kokkos"_package.html
|
||||||
|
options. See its doc page for details and default settings. Experimenting with
|
||||||
|
its options can provide a speed-up for specific calculations. For example:
|
||||||
|
|
||||||
|
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos binsize 2.8 -in in.lj # Set binsize = neighbor ghost cutoff
|
||||||
|
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighborlist, set binsize = neighbor ghost cutoff :pre
|
||||||
|
|
||||||
|
NOTE: For good performance of the KOKKOS package on GPUs, you must
|
||||||
|
have Kepler generation GPUs (or later). The Kokkos library exploits
|
||||||
|
texture cache options not supported by Telsa generation GPUs (or
|
||||||
|
older).
|
||||||
|
|
||||||
|
NOTE: When using a GPU, you will achieve the best performance if your
|
||||||
|
input script does not use fix or compute styles which are not yet
|
||||||
|
Kokkos-enabled. This allows data to stay on the GPU for multiple
|
||||||
|
timesteps, without being copied back to the host CPU. Invoking a
|
||||||
|
non-Kokkos fix or compute, or performing I/O for
|
||||||
|
"thermo"_thermo_style.html or "dump"_dump.html output will cause data
|
||||||
|
to be copied back to the CPU incurring a performance penalty.
|
||||||
|
|
||||||
|
NOTE: To get an accurate timing breakdown between time spend in pair,
|
||||||
|
kspace, etc., you must set the environment variable CUDA_LAUNCH_BLOCKING=1.
|
||||||
|
However, this will reduce performance and is not recommended for production runs.
|
||||||
|
|
||||||
|
[Run with the KOKKOS package by editing an input script:]
|
||||||
|
|
||||||
|
Alternatively the effect of the "-sf" or "-pk" switches can be
|
||||||
|
duplicated by adding the "package kokkos"_package.html or "suffix
|
||||||
|
kk"_suffix.html commands to your input script.
|
||||||
|
|
||||||
|
The discussion above for building LAMMPS with the KOKKOS package, the mpirun/mpiexec command, and setting
|
||||||
|
appropriate thread are the same.
|
||||||
|
|
||||||
You must still use the "-k on" "command-line
|
You must still use the "-k on" "command-line
|
||||||
switch"_Section_start.html#start_6 to enable the KOKKOS package, and
|
switch"_Section_start.html#start_7 to enable the KOKKOS package, and
|
||||||
specify its additional arguments for hardware options appropriate to
|
specify its additional arguments for hardware options appropriate to
|
||||||
your system, as documented above.
|
your system, as documented above.
|
||||||
|
|
||||||
Use the "suffix kk"_suffix.html command, or you can explicitly add a
|
You can use the "suffix kk"_suffix.html command, or you can explicitly add a
|
||||||
"kk" suffix to individual styles in your input script, e.g.
|
"kk" suffix to individual styles in your input script, e.g.
|
||||||
|
|
||||||
pair_style lj/cut/kk 2.5 :pre
|
pair_style lj/cut/kk 2.5 :pre
|
||||||
|
|
||||||
You only need to use the "package kokkos"_package.html command if you
|
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"
|
wish to change any of its option defaults, as set by the "-k on"
|
||||||
"command-line switch"_Section_start.html#start_6.
|
"command-line switch"_Section_start.html#start_7.
|
||||||
|
|
||||||
|
[Using OpenMP threading and CUDA together (experimental):]
|
||||||
|
|
||||||
|
With the KOKKOS package, both OpenMP multi-threading and GPUs can be used
|
||||||
|
together in a few special cases. In the Makefile, the KOKKOS_DEVICES variable must
|
||||||
|
include both "Cuda" and "OpenMP", as is the case for /src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi
|
||||||
|
|
||||||
|
KOKKOS_DEVICES=Cuda,OpenMP :pre
|
||||||
|
|
||||||
|
The suffix "/kk" is equivalent to "/kk/device", and for Kokkos CUDA,
|
||||||
|
using the "-sf kk" in the command line gives the default CUDA version everywhere.
|
||||||
|
However, if the "/kk/host" suffix is added to a specific style in the input
|
||||||
|
script, the Kokkos OpenMP (CPU) version of that specific style will be used instead.
|
||||||
|
Set the number of OpenMP threads as "t Nt" and the number of GPUs as "g Ng"
|
||||||
|
|
||||||
|
-k on t Nt g Ng :pre
|
||||||
|
|
||||||
|
For example, the command to run with 1 GPU and 8 OpenMP threads is then:
|
||||||
|
|
||||||
|
mpiexec -np 1 lmp_kokkos_cuda_openmpi -in in.lj -k on g 1 t 8 -sf kk :pre
|
||||||
|
|
||||||
|
Conversely, if the "-sf kk/host" is used in the command line and then the
|
||||||
|
"/kk" or "/kk/device" suffix is added to a specific style in your input script,
|
||||||
|
then only that specific style will run on the GPU while everything else will
|
||||||
|
run on the CPU in OpenMP mode. Note that the execution of the CPU and GPU
|
||||||
|
styles will NOT overlap, except for a special case:
|
||||||
|
|
||||||
|
A kspace style and/or molecular topology (bonds, angles, etc.) running on
|
||||||
|
the host CPU can overlap with a pair style running on the GPU. First compile
|
||||||
|
with "--default-stream per-thread" added to CCFLAGS in the Kokkos CUDA Makefile.
|
||||||
|
Then explicitly use the "/kk/host" suffix for kspace and bonds, angles, etc.
|
||||||
|
in the input file and the "kk" suffix (equal to "kk/device") on the command line.
|
||||||
|
Also make sure the environment variable CUDA_LAUNCH_BLOCKING is not set to "1"
|
||||||
|
so CPU/GPU overlap can occur.
|
||||||
|
|
||||||
[Speed-ups to expect:]
|
[Speed-ups to expect:]
|
||||||
|
|
||||||
@ -356,7 +363,7 @@ Generally speaking, the following rules of thumb apply:
|
|||||||
When running on CPUs only, with a single thread per MPI task,
|
When running on CPUs only, with a single thread per MPI task,
|
||||||
performance of a KOKKOS style is somewhere between the standard
|
performance of a KOKKOS style is somewhere between the standard
|
||||||
(un-accelerated) styles (MPI-only mode), and those provided by the
|
(un-accelerated) styles (MPI-only mode), and those provided by the
|
||||||
USER-OMP package. However the difference between all 3 is small (less
|
USER-OMP package. However the difference between all 3 is small (less
|
||||||
than 20%). :ulb,l
|
than 20%). :ulb,l
|
||||||
|
|
||||||
When running on CPUs only, with multiple threads per MPI task,
|
When running on CPUs only, with multiple threads per MPI task,
|
||||||
@ -366,7 +373,7 @@ package. :l
|
|||||||
When running large number of atoms per GPU, KOKKOS is typically faster
|
When running large number of atoms per GPU, KOKKOS is typically faster
|
||||||
than the GPU package. :l
|
than the GPU package. :l
|
||||||
|
|
||||||
When running on Intel Xeon Phi, KOKKOS is not as fast as
|
When running on Intel hardware, KOKKOS is not as fast as
|
||||||
the USER-INTEL package, which is optimized for that hardware. :l
|
the USER-INTEL package, which is optimized for that hardware. :l
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
@ -374,123 +381,78 @@ See the "Benchmark page"_http://lammps.sandia.gov/bench.html of the
|
|||||||
LAMMPS web site for performance of the KOKKOS package on different
|
LAMMPS web site for performance of the KOKKOS package on different
|
||||||
hardware.
|
hardware.
|
||||||
|
|
||||||
[Guidelines for best performance:]
|
[Advanced Kokkos options:]
|
||||||
|
|
||||||
Here are guidline for using the KOKKOS package on the different
|
There are other allowed options when building with the KOKKOS package.
|
||||||
hardware configurations listed above.
|
As above, they can be set either as variables on the make command line
|
||||||
|
or in Makefile.machine. This is the full list of options, including
|
||||||
|
those discussed above. Each takes a value shown below. The
|
||||||
|
default value is listed, which is set in the
|
||||||
|
/lib/kokkos/Makefile.kokkos file.
|
||||||
|
|
||||||
Many of the guidelines use the "package kokkos"_package.html command
|
KOKKOS_DEVICES, values = {Serial}, {OpenMP}, {Pthreads}, {Cuda}, default = {OpenMP}
|
||||||
See its doc page for details and default settings. Experimenting with
|
KOKKOS_ARCH, values = {KNC}, {SNB}, {HSW}, {Kepler30}, {Kepler32}, {Kepler35}, {Kepler37}, {Maxwell50}, {Maxwell52}, {Maxwell53}, {Pascal60}, {Pascal61}, {ARMv80}, {ARMv81}, {ARMv81}, {ARMv8-ThunderX}, {BGQ}, {Power7}, {Power8}, {Power9}, {KNL}, {BDW}, {SKX}, default = {none}
|
||||||
its options can provide a speed-up for specific calculations.
|
KOKKOS_DEBUG, values = {yes}, {no}, default = {no}
|
||||||
|
KOKKOS_USE_TPLS, values = {hwloc}, {librt}, {experimental_memkind}, default = {none}
|
||||||
|
KOKKOS_CXX_STANDARD, values = {c++11}, {c++1z}, default = {c++11}
|
||||||
|
KOKKOS_OPTIONS, values = {aggressive_vectorization}, {disable_profiling}, default = {none}
|
||||||
|
KOKKOS_CUDA_OPTIONS, values = {force_uvm}, {use_ldg}, {rdc}, {enable_lambda}, default = {enable_lambda} :ul
|
||||||
|
|
||||||
[Running on a multi-core CPU:]
|
KOKKOS_DEVICES sets the parallelization method used for Kokkos code
|
||||||
|
(within LAMMPS). KOKKOS_DEVICES=Serial means that no threading will be used.
|
||||||
|
KOKKOS_DEVICES=OpenMP means that OpenMP threading will be
|
||||||
|
used. KOKKOS_DEVICES=Pthreads means that pthreads will be used.
|
||||||
|
KOKKOS_DEVICES=Cuda means an NVIDIA GPU running CUDA will be used.
|
||||||
|
|
||||||
If N is the number of physical cores/node, then the number of MPI
|
KOKKOS_ARCH enables compiler switches needed when compiling for a
|
||||||
tasks/node * number of threads/task should not exceed N, and should
|
specific hardware:
|
||||||
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_6. If you do not change this, no
|
|
||||||
additional parallelism (beyond MPI) will be invoked on the host
|
|
||||||
CPU(s).
|
|
||||||
|
|
||||||
You can compare the performance running in different modes:
|
ARMv80 = ARMv8.0 Compatible CPU
|
||||||
|
ARMv81 = ARMv8.1 Compatible CPU
|
||||||
|
ARMv8-ThunderX = ARMv8 Cavium ThunderX CPU
|
||||||
|
SNB = Intel Sandy/Ivy Bridge CPUs
|
||||||
|
HSW = Intel Haswell CPUs
|
||||||
|
BDW = Intel Broadwell Xeon E-class CPUs
|
||||||
|
SKX = Intel Sky Lake Xeon E-class HPC CPUs (AVX512)
|
||||||
|
KNC = Intel Knights Corner Xeon Phi
|
||||||
|
KNL = Intel Knights Landing Xeon Phi
|
||||||
|
Kepler30 = NVIDIA Kepler generation CC 3.0
|
||||||
|
Kepler32 = NVIDIA Kepler generation CC 3.2
|
||||||
|
Kepler35 = NVIDIA Kepler generation CC 3.5
|
||||||
|
Kepler37 = NVIDIA Kepler generation CC 3.7
|
||||||
|
Maxwell50 = NVIDIA Maxwell generation CC 5.0
|
||||||
|
Maxwell52 = NVIDIA Maxwell generation CC 5.2
|
||||||
|
Maxwell53 = NVIDIA Maxwell generation CC 5.3
|
||||||
|
Pascal60 = NVIDIA Pascal generation CC 6.0
|
||||||
|
Pascal61 = NVIDIA Pascal generation CC 6.1
|
||||||
|
BGQ = IBM Blue Gene/Q CPUs
|
||||||
|
Power8 = IBM POWER8 CPUs
|
||||||
|
Power9 = IBM POWER9 CPUs :ul
|
||||||
|
|
||||||
run with 1 MPI task/node and N threads/task
|
KOKKOS_USE_TPLS=hwloc binds threads to hardware cores, so they do not
|
||||||
run with N MPI tasks/node and 1 thread/task
|
migrate during a simulation. KOKKOS_USE_TPLS=hwloc should always be
|
||||||
run with settings in between these extremes :ul
|
used if running with KOKKOS_DEVICES=Pthreads for pthreads. It is not
|
||||||
|
necessary for KOKKOS_DEVICES=OpenMP for OpenMP, because OpenMP
|
||||||
|
provides alternative methods via environment variables for binding
|
||||||
|
threads to hardware cores. More info on binding threads to cores is
|
||||||
|
given in "Section 5.3"_Section_accelerate.html#acc_3.
|
||||||
|
|
||||||
Examples of mpirun commands in these modes are shown above.
|
KOKKOS_USE_TPLS=librt enables use of a more accurate timer mechanism
|
||||||
|
on most Unix platforms. This library is not available on all
|
||||||
|
platforms.
|
||||||
|
|
||||||
When using KOKKOS to perform multi-threading, it is important for
|
KOKKOS_DEBUG is only useful when developing a Kokkos-enabled style
|
||||||
performance to bind both MPI tasks to physical cores, and threads to
|
within LAMMPS. KOKKOS_DEBUG=yes enables printing of run-time
|
||||||
physical cores, so they do not migrate during a simulation.
|
debugging information that can be useful. It also enables runtime
|
||||||
|
bounds checking on Kokkos data structures.
|
||||||
|
|
||||||
If you are not certain MPI tasks are being bound (check the defaults
|
KOKKOS_CXX_STANDARD and KOKKOS_OPTIONS are typically not changed when building LAMMPS.
|
||||||
for your MPI installation), binding can be forced with these flags:
|
|
||||||
|
|
||||||
OpenMPI 1.8: mpirun -np 2 -bind-to socket -map-by socket ./lmp_openmpi ...
|
KOKKOS_CUDA_OPTIONS are additional options for CUDA. The LAMMPS KOKKOS package must be compiled
|
||||||
Mvapich2 2.0: mpiexec -np 2 -bind-to socket -map-by socket ./lmp_mvapich ... :pre
|
with the {enable_lambda} option when using GPUs.
|
||||||
|
|
||||||
For binding threads with the KOKKOS OMP option, use thread affinity
|
|
||||||
environment variables to force binding. With OpenMP 3.1 (gcc 4.7 or
|
|
||||||
later, intel 12 or later) setting the environment variable
|
|
||||||
OMP_PROC_BIND=true should be sufficient. For binding threads with the
|
|
||||||
KOKKOS pthreads option, compile LAMMPS the KOKKOS HWLOC=yes option
|
|
||||||
(see "this section"_Section_packages.html#KOKKOS of the manual for
|
|
||||||
details).
|
|
||||||
|
|
||||||
[Running on GPUs:]
|
|
||||||
|
|
||||||
Insure the -arch setting in the machine makefile you are using,
|
|
||||||
e.g. src/MAKE/Makefile.cuda, is correct for your GPU hardware/software.
|
|
||||||
(see "this section"_Section_packages.html#KOKKOS of the manual for
|
|
||||||
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_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
|
|
||||||
threads/task should not exceed N. With one GPU (and one MPI task) it
|
|
||||||
may be faster to use less than all the available cores, by setting
|
|
||||||
threads/task to a smaller value. This is because using all the cores
|
|
||||||
on a dual-socket node will incur extra cost to copy memory from the
|
|
||||||
2nd socket to the GPU.
|
|
||||||
|
|
||||||
Examples of mpirun commands that follow these rules are shown above.
|
|
||||||
|
|
||||||
NOTE: When using a GPU, you will achieve the best performance if your
|
|
||||||
input script does not use any fix or compute styles which are not yet
|
|
||||||
Kokkos-enabled. This allows data to stay on the GPU for multiple
|
|
||||||
timesteps, without being copied back to the host CPU. Invoking a
|
|
||||||
non-Kokkos fix or compute, or performing I/O for
|
|
||||||
"thermo"_thermo_style.html or "dump"_dump.html output will cause data
|
|
||||||
to be copied back to the CPU.
|
|
||||||
|
|
||||||
You cannot yet assign multiple MPI tasks to the same GPU with the
|
|
||||||
KOKKOS package. We plan to support this in the future, similar to the
|
|
||||||
GPU package in LAMMPS.
|
|
||||||
|
|
||||||
You cannot yet use both the host (multi-threaded) and device (GPU)
|
|
||||||
together to compute pairwise interactions with the KOKKOS package. We
|
|
||||||
hope to support this in the future, similar to the GPU package in
|
|
||||||
LAMMPS.
|
|
||||||
|
|
||||||
[Running on an Intel Phi:]
|
|
||||||
|
|
||||||
Kokkos only uses Intel Phi processors in their "native" mode, i.e.
|
|
||||||
not hosted by a CPU.
|
|
||||||
|
|
||||||
As illustrated above, build LAMMPS with OMP=yes (the default) and
|
|
||||||
MIC=yes. The latter insures code is correctly compiled for the Intel
|
|
||||||
Phi. The OMP setting means OpenMP will be used for parallelization on
|
|
||||||
the Phi, which is currently the best option within Kokkos. In the
|
|
||||||
future, other options may be added.
|
|
||||||
|
|
||||||
Current-generation Intel Phi chips have either 61 or 57 cores. One
|
|
||||||
core should be excluded for running the OS, leaving 60 or 56 cores.
|
|
||||||
Each core is hyperthreaded, so there are effectively N = 240 (4*60) or
|
|
||||||
N = 224 (4*56) cores to run on.
|
|
||||||
|
|
||||||
The -np setting of the mpirun command sets the number of MPI
|
|
||||||
tasks/node. The "-k on t Nt" command-line switch sets the number of
|
|
||||||
threads/task as Nt. The product of these 2 values should be N, i.e.
|
|
||||||
240 or 224. Also, the number of threads/task should be a multiple of
|
|
||||||
4 so that logical threads from more than one MPI task do not run on
|
|
||||||
the same physical core.
|
|
||||||
|
|
||||||
Examples of mpirun commands that follow these rules are shown above.
|
|
||||||
|
|
||||||
[Restrictions:]
|
[Restrictions:]
|
||||||
|
|
||||||
As noted above, if using GPUs, the number of MPI tasks per compute
|
Currently, there are no precision options with the KOKKOS
|
||||||
node should equal to the number of GPUs per compute node. In the
|
package. All compilation and computation is performed in double
|
||||||
future Kokkos will support assigning multiple MPI tasks to a single
|
precision.
|
||||||
GPU.
|
|
||||||
|
|
||||||
Currently Kokkos does not support AMD GPUs due to limits in the
|
|
||||||
available backend programming models. Specifically, Kokkos requires
|
|
||||||
extensive C++ support from the Kernel language. This is expected to
|
|
||||||
change in the future.
|
|
||||||
|
|||||||
@ -23,8 +23,7 @@ one or more 16-core nodes. More details follow.
|
|||||||
use -fopenmp with CCFLAGS and LINKFLAGS in Makefile.machine
|
use -fopenmp with CCFLAGS and LINKFLAGS in Makefile.machine
|
||||||
make yes-user-omp
|
make yes-user-omp
|
||||||
make mpi # build with USER-OMP package, if settings added to Makefile.mpi
|
make mpi # build with USER-OMP package, if settings added to Makefile.mpi
|
||||||
make omp # or Makefile.omp already has settings
|
make omp # or Makefile.omp already has settings :pre
|
||||||
Make.py -v -p omp -o mpi -a file mpi # or one-line build via Make.py :pre
|
|
||||||
|
|
||||||
lmp_mpi -sf omp -pk omp 16 < in.script # 1 MPI task, 16 threads
|
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
|
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
|
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
|
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
|
one command as described in "Section 4"_Section_packages.html of the manual.
|
||||||
4"_Section_packages.html of the manual. Type "Make.py -h" for
|
|
||||||
help.
|
|
||||||
|
|
||||||
Note that the CCFLAGS and LINKFLAGS settings in Makefile.machine must
|
Note that the CCFLAGS and LINKFLAGS settings in Makefile.machine must
|
||||||
include "-fopenmp". Likewise, if you use an Intel compiler, the
|
include "-fopenmp". Likewise, if you use an Intel compiler, the
|
||||||
CCFLAGS setting must include "-restrict". The Make.py command will
|
CCFLAGS setting must include "-restrict".
|
||||||
add these automatically.
|
|
||||||
|
|
||||||
[Run with the USER-OMP package from the command line:]
|
[Run with the USER-OMP package from the command line:]
|
||||||
|
|
||||||
|
|||||||
@ -21,8 +21,7 @@ Here is a quick overview of how to use the OPT package. More details
|
|||||||
follow.
|
follow.
|
||||||
|
|
||||||
make yes-opt
|
make yes-opt
|
||||||
make mpi # build with the OPT package
|
make mpi # build with the OPT package :pre
|
||||||
Make.py -v -p opt -o mpi -a file mpi # or one-line build via Make.py :pre
|
|
||||||
|
|
||||||
lmp_mpi -sf opt -in in.script # run in serial
|
lmp_mpi -sf opt -in in.script # run in serial
|
||||||
mpirun -np 4 lmp_mpi -sf opt -in in.script # run in parallel :pre
|
mpirun -np 4 lmp_mpi -sf opt -in in.script # run in parallel :pre
|
||||||
@ -35,13 +34,10 @@ None.
|
|||||||
|
|
||||||
The lines above illustrate how to build LAMMPS with the OPT package in
|
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
|
two steps, using the "make" command. Or how to do it with one command
|
||||||
via the src/Make.py script, described in "Section
|
as described in "Section 4"_Section_packages.html of the manual.
|
||||||
4"_Section_packages.html of the manual. Type "Make.py -h" for
|
|
||||||
help.
|
|
||||||
|
|
||||||
Note that if you use an Intel compiler to build with the OPT package,
|
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 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:]
|
[Run with the OPT package from the command line:]
|
||||||
|
|
||||||
|
|||||||
@ -9,6 +9,7 @@
|
|||||||
angle_style class2 command :h3
|
angle_style class2 command :h3
|
||||||
angle_style class2/omp command :h3
|
angle_style class2/omp command :h3
|
||||||
angle_style class2/kk command :h3
|
angle_style class2/kk command :h3
|
||||||
|
angle_style class2/p6 command :h3
|
||||||
|
|
||||||
[Syntax:]
|
[Syntax:]
|
||||||
|
|
||||||
@ -102,11 +103,29 @@ more instructions on how to use the accelerated styles effectively.
|
|||||||
|
|
||||||
:line
|
:line
|
||||||
|
|
||||||
|
The {class2/p6} angle style uses the {class2} potential expanded to sixth order:
|
||||||
|
|
||||||
|
:c,image(Eqs/angle_class2_p6.jpg)
|
||||||
|
|
||||||
|
In this expanded term 6 coefficients for the Ea formula need to be set:
|
||||||
|
|
||||||
|
theta0 (degrees)
|
||||||
|
K2 (energy/radian^2)
|
||||||
|
K3 (energy/radian^3)
|
||||||
|
K4 (energy/radian^4)
|
||||||
|
K5 (energy/radian^5)
|
||||||
|
K6 (energy/radian^6) :ul
|
||||||
|
|
||||||
|
The bond-bond and bond-angle terms remain unchanged.
|
||||||
|
|
||||||
|
:line
|
||||||
|
|
||||||
[Restrictions:]
|
[Restrictions:]
|
||||||
|
|
||||||
This angle style can only be used if LAMMPS was built with the CLASS2
|
This angle style can only be used if LAMMPS was built with the CLASS2
|
||||||
package. See the "Making LAMMPS"_Section_start.html#start_3 section
|
package. For the {class2/p6} style LAMMPS needs to be built with the
|
||||||
for more info on packages.
|
USER-MOFFF package. See the "Making LAMMPS"_Section_start.html#start_3
|
||||||
|
section for more info on packages.
|
||||||
|
|
||||||
[Related commands:]
|
[Related commands:]
|
||||||
|
|
||||||
|
|||||||
65
doc/src/angle_cosine_buck6d.txt
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
"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
|
||||||
|
|
||||||
|
angle_style cosine/buck6d command :h3
|
||||||
|
|
||||||
|
[Syntax:]
|
||||||
|
|
||||||
|
angle_style cosine/buck6d :pre
|
||||||
|
|
||||||
|
[Examples:]
|
||||||
|
|
||||||
|
angle_style cosine/buck6d
|
||||||
|
angle_coeff 1 cosine/buck6d 1.978350 4 180.000000 :pre
|
||||||
|
|
||||||
|
[Description:]
|
||||||
|
|
||||||
|
The {cosine/buck6d} angle style uses the potential
|
||||||
|
|
||||||
|
:c,image(Eqs/angle_cosine_buck6d.jpg)
|
||||||
|
|
||||||
|
where K is the energy constant, n is the periodic multiplicity and
|
||||||
|
Theta0 is the equilibrium angle.
|
||||||
|
|
||||||
|
The coefficients must be defined for each angle type via the
|
||||||
|
"angle_coeff"_angle_coeff.html command as in the example above, or in
|
||||||
|
the data file or restart files read by the "read_data"_read_data.html
|
||||||
|
or "read_restart"_read_restart.html commands in the following order:
|
||||||
|
|
||||||
|
K (energy)
|
||||||
|
n
|
||||||
|
Theta0 (degrees) :ul
|
||||||
|
|
||||||
|
Theta0 is specified in degrees, but LAMMPS converts it to radians
|
||||||
|
internally.
|
||||||
|
|
||||||
|
Additional to the cosine term the {cosine/buck6d} angle style computes
|
||||||
|
the short range (vdW) interaction belonging to the
|
||||||
|
"pair_buck6d"_pair_buck6d_coul_gauss.html between the end atoms of
|
||||||
|
the angle. For this reason this angle style only works in combination
|
||||||
|
with the "pair_buck6d"_pair_buck6d_coul_gauss.html styles and needs
|
||||||
|
the "special_bonds"_special_bonds.html 1-3 interactions to be weighted
|
||||||
|
0.0 to prevent double counting.
|
||||||
|
|
||||||
|
:line
|
||||||
|
|
||||||
|
[Restrictions:]
|
||||||
|
|
||||||
|
{cosine/buck6d} can only be used in combination with the
|
||||||
|
"pair_buck6d"_pair_buck6d_coul_gauss.html style and with a
|
||||||
|
"special_bonds"_special_bonds.html 0.0 weighting of 1-3 interactions.
|
||||||
|
|
||||||
|
This angle style can only be used if LAMMPS was built with the
|
||||||
|
USER-MOFFF package. See the "Making
|
||||||
|
LAMMPS"_Section_start.html#start_3 section for more info on packages.
|
||||||
|
|
||||||
|
[Related commands:]
|
||||||
|
|
||||||
|
"angle_coeff"_angle_coeff.html
|
||||||
|
|
||||||
|
[Default:] none
|
||||||
@ -8,6 +8,7 @@ Angle Styles :h1
|
|||||||
angle_charmm
|
angle_charmm
|
||||||
angle_class2
|
angle_class2
|
||||||
angle_cosine
|
angle_cosine
|
||||||
|
angle_cosine_buck6d
|
||||||
angle_cosine_delta
|
angle_cosine_delta
|
||||||
angle_cosine_periodic
|
angle_cosine_periodic
|
||||||
angle_cosine_shift
|
angle_cosine_shift
|
||||||
|
|||||||
@ -16,7 +16,7 @@ atom_modify keyword values ... :pre
|
|||||||
one or more keyword/value pairs may be appended :ulb,l
|
one or more keyword/value pairs may be appended :ulb,l
|
||||||
keyword = {id} or {map} or {first} or {sort} :l
|
keyword = {id} or {map} or {first} or {sort} :l
|
||||||
{id} value = {yes} or {no}
|
{id} value = {yes} or {no}
|
||||||
{map} value = {array} or {hash}
|
{map} value = {yes} or {array} or {hash}
|
||||||
{first} value = group-ID = group whose atoms will appear first in internal atom lists
|
{first} value = group-ID = group whose atoms will appear first in internal atom lists
|
||||||
{sort} values = Nfreq binsize
|
{sort} values = Nfreq binsize
|
||||||
Nfreq = sort atoms spatially every this many time steps
|
Nfreq = sort atoms spatially every this many time steps
|
||||||
@ -25,8 +25,8 @@ keyword = {id} or {map} or {first} or {sort} :l
|
|||||||
|
|
||||||
[Examples:]
|
[Examples:]
|
||||||
|
|
||||||
atom_modify map hash
|
atom_modify map yes
|
||||||
atom_modify map array sort 10000 2.0
|
atom_modify map hash sort 10000 2.0
|
||||||
atom_modify first colloid :pre
|
atom_modify first colloid :pre
|
||||||
|
|
||||||
[Description:]
|
[Description:]
|
||||||
@ -62,29 +62,33 @@ switch. This is described in "Section 2.2"_Section_start.html#start_2
|
|||||||
of the manual. If atom IDs are not used, they must be specified as 0
|
of the manual. If atom IDs are not used, they must be specified as 0
|
||||||
for all atoms, e.g. in a data or restart file.
|
for all atoms, e.g. in a data or restart file.
|
||||||
|
|
||||||
The {map} keyword determines how atom ID lookup is done for molecular
|
The {map} keyword determines how atoms with specific IDs are found
|
||||||
atom styles. Lookups are performed by bond (angle, etc) routines in
|
when required. An example are the bond (angle, etc) methods which
|
||||||
LAMMPS to find the local atom index associated with a global atom ID.
|
need to find the local index of an atom with a specific global ID
|
||||||
|
which is a bond (angle, etc) partner. LAMMPS performs this operation
|
||||||
|
efficiently by creating a "map", which is either an {array} or {hash}
|
||||||
|
table, as descibed below.
|
||||||
|
|
||||||
When the {array} value is used, each processor stores a lookup table
|
When the {map} keyword is not specified in your input script, LAMMPS
|
||||||
of length N, where N is the largest atom ID in the system. This is a
|
only creates a map for "atom_styles"_atom_style.html for molecular
|
||||||
|
systems which have permanent bonds (angles, etc). No map is created
|
||||||
|
for atomic systems, since it is normally not needed. However some
|
||||||
|
LAMMPS commands require a map, even for atomic systems, and will
|
||||||
|
generate an error if one does not exist. The {map} keyword thus
|
||||||
|
allows you to force the creation of a map. The {yes} value will
|
||||||
|
create either an {array} or {hash} style map, as explained in the next
|
||||||
|
paragraph. The {array} and {hash} values create an atom-style or
|
||||||
|
hash-style map respectively.
|
||||||
|
|
||||||
|
For an {array}-style map, each processor stores a lookup table of
|
||||||
|
length N, where N is the largest atom ID in the system. This is a
|
||||||
fast, simple method for many simulations, but requires too much memory
|
fast, simple method for many simulations, but requires too much memory
|
||||||
for large simulations. The {hash} value uses a hash table to perform
|
for large simulations. For a {hash}-style map, a hash table is
|
||||||
the lookups. This can be slightly slower than the {array} method, but
|
created on each processor, which finds an atom ID in constant time
|
||||||
its memory cost is proportional to the number of atoms owned by a
|
(independent of the global number of atom IDs). It can be slightly
|
||||||
processor, i.e. N/P when N is the total number of atoms in the system
|
slower than the {array} map, but its memory cost is proportional to
|
||||||
and P is the number of processors.
|
the number of atoms owned by a processor, i.e. N/P when N is the total
|
||||||
|
number of atoms in the system and P is the number of processors.
|
||||||
When this setting is not specified in your input script, LAMMPS
|
|
||||||
creates a map, if one is needed, as an array or hash. See the
|
|
||||||
discussion of default values below for how LAMMPS chooses which kind
|
|
||||||
of map to build. Note that atomic systems do not normally need to
|
|
||||||
create a map. However, even in this case some LAMMPS commands will
|
|
||||||
create a map to find atoms (and then destroy it), or require a
|
|
||||||
permanent map. An example of the former is the "velocity loop
|
|
||||||
all"_velocity.html command, which uses a map when looping over all
|
|
||||||
atoms and insuring the same velocity values are assigned to an atom
|
|
||||||
ID, no matter which processor owns it.
|
|
||||||
|
|
||||||
The {first} keyword allows a "group"_group.html to be specified whose
|
The {first} keyword allows a "group"_group.html to be specified whose
|
||||||
atoms will be maintained as the first atoms in each processor's list
|
atoms will be maintained as the first atoms in each processor's list
|
||||||
|
|||||||
@ -13,17 +13,19 @@ atom_style command :h3
|
|||||||
atom_style style args :pre
|
atom_style style args :pre
|
||||||
|
|
||||||
style = {angle} or {atomic} or {body} or {bond} or {charge} or {dipole} or \
|
style = {angle} or {atomic} or {body} or {bond} or {charge} or {dipole} or \
|
||||||
{dpd} or {electron} or {ellipsoid} or {full} or {line} or {meso} or \
|
{dpd} or {edpd} or {mdpd} or {tdpd} or {electron} or {ellipsoid} or \
|
||||||
{molecular} or {peri} or {smd} or {sphere} or {tri} or \
|
{full} or {line} or {meso} or {molecular} or {peri} or {smd} or \
|
||||||
{template} or {hybrid} :ulb,l
|
{sphere} or {tri} or {template} or {hybrid} :ulb,l
|
||||||
args = none for any style except the following
|
args = none for any style except the following
|
||||||
{body} args = bstyle bstyle-args
|
{body} args = bstyle bstyle-args
|
||||||
bstyle = style of body particles
|
bstyle = style of body particles
|
||||||
bstyle-args = additional arguments specific to the bstyle
|
bstyle-args = additional arguments specific to the bstyle
|
||||||
see the "body"_body.html doc page for details
|
see the "body"_body.html doc page for details
|
||||||
{template} args = template-ID
|
{tdpd} arg = Nspecies
|
||||||
template-ID = ID of molecule template specified in a separate "molecule"_molecule.html command
|
Nspecies = # of chemical species
|
||||||
{hybrid} args = list of one or more sub-styles, each with their args :pre
|
{template} arg = template-ID
|
||||||
|
template-ID = ID of molecule template specified in a separate "molecule"_molecule.html command
|
||||||
|
{hybrid} args = list of one or more sub-styles, each with their args :pre
|
||||||
|
|
||||||
accelerated styles (with same args) = {angle/kk} or {atomic/kk} or {bond/kk} or {charge/kk} or {full/kk} or {molecular/kk} :l
|
accelerated styles (with same args) = {angle/kk} or {atomic/kk} or {bond/kk} or {charge/kk} or {full/kk} or {molecular/kk} :l
|
||||||
:ule
|
:ule
|
||||||
@ -36,7 +38,8 @@ atom_style full
|
|||||||
atom_style body nparticle 2 10
|
atom_style body nparticle 2 10
|
||||||
atom_style hybrid charge bond
|
atom_style hybrid charge bond
|
||||||
atom_style hybrid charge body nparticle 2 5
|
atom_style hybrid charge body nparticle 2 5
|
||||||
atom_style template myMols :pre
|
atom_style template myMols
|
||||||
|
atom_style tdpd 2 :pre
|
||||||
|
|
||||||
[Description:]
|
[Description:]
|
||||||
|
|
||||||
@ -74,6 +77,9 @@ quantities.
|
|||||||
{charge} | charge | atomic system with charges |
|
{charge} | charge | atomic system with charges |
|
||||||
{dipole} | charge and dipole moment | system with dipolar particles |
|
{dipole} | charge and dipole moment | system with dipolar particles |
|
||||||
{dpd} | internal temperature and internal energies | DPD particles |
|
{dpd} | internal temperature and internal energies | DPD particles |
|
||||||
|
{edpd} | temperature and heat capacity | eDPD particles |
|
||||||
|
{mdpd} | density | mDPD particles |
|
||||||
|
{tdpd} | chemical concentration | tDPD particles |
|
||||||
{electron} | charge and spin and eradius | electronic force field |
|
{electron} | charge and spin and eradius | electronic force field |
|
||||||
{ellipsoid} | shape, quaternion, angular momentum | aspherical particles |
|
{ellipsoid} | shape, quaternion, angular momentum | aspherical particles |
|
||||||
{full} | molecular + charge | bio-molecules |
|
{full} | molecular + charge | bio-molecules |
|
||||||
@ -145,6 +151,19 @@ properties with internal temperature (dpdTheta), internal conductive
|
|||||||
energy (uCond), internal mechanical energy (uMech), and internal
|
energy (uCond), internal mechanical energy (uMech), and internal
|
||||||
chemical energy (uChem).
|
chemical energy (uChem).
|
||||||
|
|
||||||
|
The {edpd} style is for energy-conserving dissipative particle
|
||||||
|
dynamics (eDPD) particles which store a temperature (edpd_temp), and
|
||||||
|
heat capacity(edpd_cv).
|
||||||
|
|
||||||
|
The {mdpd} style is for many-body dissipative particle dynamics (mDPD)
|
||||||
|
particles which store a density (rho) for considering
|
||||||
|
density-dependent many-body interactions.
|
||||||
|
|
||||||
|
The {tdpd} style is for transport dissipative particle dynamics (tDPD)
|
||||||
|
particles which store a set of chemical concentration. An integer
|
||||||
|
"cc_species" is required to specify the number of chemical species
|
||||||
|
involved in a tDPD system.
|
||||||
|
|
||||||
The {meso} style is for smoothed particle hydrodynamics (SPH)
|
The {meso} style is for smoothed particle hydrodynamics (SPH)
|
||||||
particles which store a density (rho), energy (e), and heat capacity
|
particles which store a density (rho), energy (e), and heat capacity
|
||||||
(cv).
|
(cv).
|
||||||
@ -284,6 +303,11 @@ force fields"_pair_eff.html.
|
|||||||
The {dpd} style is part of the USER-DPD package for dissipative
|
The {dpd} style is part of the USER-DPD package for dissipative
|
||||||
particle dynamics (DPD).
|
particle dynamics (DPD).
|
||||||
|
|
||||||
|
The {edpd}, {mdpd}, and {tdpd} styles are part of the USER-MESO package
|
||||||
|
for energy-conserving dissipative particle dynamics (eDPD), many-body
|
||||||
|
dissipative particle dynamics (mDPD), and transport dissipative particle
|
||||||
|
dynamics (tDPD), respectively.
|
||||||
|
|
||||||
The {meso} style is part of the USER-SPH package for smoothed particle
|
The {meso} style is part of the USER-SPH package for smoothed particle
|
||||||
hydrodynamics (SPH). See "this PDF
|
hydrodynamics (SPH). See "this PDF
|
||||||
guide"_USER/sph/SPH_LAMMPS_userguide.pdf to using SPH in LAMMPS.
|
guide"_USER/sph/SPH_LAMMPS_userguide.pdf to using SPH in LAMMPS.
|
||||||
|
|||||||
@ -261,7 +261,7 @@ For images created by the "dump image"_dump_image.html command, if the
|
|||||||
polygon consisting of N line segments. Note that the line segments
|
polygon consisting of N line segments. Note that the line segments
|
||||||
are drawn between the N vertices, which does not correspond exactly to
|
are drawn between the N vertices, which does not correspond exactly to
|
||||||
the physical extent of the body (because the "pair_style
|
the physical extent of the body (because the "pair_style
|
||||||
rounded/polygon"_pair_body_rounded_polygon.cpp defines finite-size
|
rounded/polygon"_pair_body_rounded_polygon.html defines finite-size
|
||||||
spheres at those point and the line segments between the spheres are
|
spheres at those point and the line segments between the spheres are
|
||||||
tangent to the spheres). The drawn diameter of each line segment is
|
tangent to the spheres). The drawn diameter of each line segment is
|
||||||
determined by the {bflag1} parameter for the {body} keyword. The
|
determined by the {bflag1} parameter for the {body} keyword. The
|
||||||
|
|||||||
73
doc/src/bond_gromos.txt
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
"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
|
||||||
|
|
||||||
|
bond_style gromos command :h3
|
||||||
|
bond_style gromos/omp command :h3
|
||||||
|
|
||||||
|
[Syntax:]
|
||||||
|
|
||||||
|
bond_style gromos :pre
|
||||||
|
|
||||||
|
[Examples:]
|
||||||
|
|
||||||
|
bond_style gromos
|
||||||
|
bond_coeff 5 80.0 1.2 :pre
|
||||||
|
|
||||||
|
[Description:]
|
||||||
|
|
||||||
|
The {gromos} bond style uses the potential
|
||||||
|
|
||||||
|
:c,image(Eqs/bond_gromos.jpg)
|
||||||
|
|
||||||
|
where r0 is the equilibrium bond distance. Note that the usual 1/4
|
||||||
|
factor is included in K.
|
||||||
|
|
||||||
|
The following coefficients must be defined for each bond type via the
|
||||||
|
"bond_coeff"_bond_coeff.html command as in the example above, or in
|
||||||
|
the data file or restart files read by the "read_data"_read_data.html
|
||||||
|
or "read_restart"_read_restart.html commands:
|
||||||
|
|
||||||
|
K (energy/distance^4)
|
||||||
|
r0 (distance) :ul
|
||||||
|
|
||||||
|
:line
|
||||||
|
|
||||||
|
Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
|
||||||
|
functionally the same as the corresponding style without the suffix.
|
||||||
|
They have been optimized to run faster, depending on your available
|
||||||
|
hardware, as discussed in "Section 5"_Section_accelerate.html
|
||||||
|
of the manual. The accelerated styles take the same arguments and
|
||||||
|
should produce the same results, except for round-off and precision
|
||||||
|
issues.
|
||||||
|
|
||||||
|
These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
|
||||||
|
USER-OMP and OPT packages, respectively. They are only enabled if
|
||||||
|
LAMMPS was built with those packages. See the "Making
|
||||||
|
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_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
|
||||||
|
more instructions on how to use the accelerated styles effectively.
|
||||||
|
|
||||||
|
:line
|
||||||
|
|
||||||
|
[Restrictions:]
|
||||||
|
|
||||||
|
This bond style 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.
|
||||||
|
|
||||||
|
[Related commands:]
|
||||||
|
|
||||||
|
"bond_coeff"_bond_coeff.html, "delete_bonds"_delete_bonds.html
|
||||||
|
|
||||||
|
[Default:] none
|
||||||
@ -8,6 +8,7 @@ Bond Styles :h1
|
|||||||
bond_class2
|
bond_class2
|
||||||
bond_fene
|
bond_fene
|
||||||
bond_fene_expand
|
bond_fene_expand
|
||||||
|
bond_gromos
|
||||||
bond_harmonic
|
bond_harmonic
|
||||||
bond_harmonic_shift
|
bond_harmonic_shift
|
||||||
bond_harmonic_shift_cut
|
bond_harmonic_shift_cut
|
||||||
|
|||||||
@ -32,6 +32,7 @@ Commands :h1
|
|||||||
dimension
|
dimension
|
||||||
displace_atoms
|
displace_atoms
|
||||||
dump
|
dump
|
||||||
|
dump_cfg_uef
|
||||||
dump_h5md
|
dump_h5md
|
||||||
dump_image
|
dump_image
|
||||||
dump_modify
|
dump_modify
|
||||||
@ -92,6 +93,7 @@ Commands :h1
|
|||||||
tad
|
tad
|
||||||
temper
|
temper
|
||||||
temper_grem
|
temper_grem
|
||||||
|
temper_npt
|
||||||
thermo
|
thermo
|
||||||
thermo_modify
|
thermo_modify
|
||||||
thermo_style
|
thermo_style
|
||||||
|
|||||||
@ -169,6 +169,7 @@ by users which are included in the LAMMPS distribution. The list of
|
|||||||
these with links to the individual styles are given in the compute
|
these with links to the individual styles are given in the compute
|
||||||
section of "this page"_Section_commands.html#cmd_5.
|
section of "this page"_Section_commands.html#cmd_5.
|
||||||
|
|
||||||
|
"aggregate/atom"_compute_cluster_atom.html - aggregate ID for each atom
|
||||||
"angle/local"_compute_bond_local.html - theta and energy of each angle
|
"angle/local"_compute_bond_local.html - theta and energy of each angle
|
||||||
"angmom/chunk"_compute_angmom_chunk.html - angular momentum for each chunk
|
"angmom/chunk"_compute_angmom_chunk.html - angular momentum for each chunk
|
||||||
"body/local"_compute_body_local.html - attributes of body sub-particles
|
"body/local"_compute_body_local.html - attributes of body sub-particles
|
||||||
@ -191,6 +192,7 @@ section of "this page"_Section_commands.html#cmd_5.
|
|||||||
"erotate/sphere"_compute_erotate_sphere.html - rotational energy of spherical particles
|
"erotate/sphere"_compute_erotate_sphere.html - rotational energy of spherical particles
|
||||||
"erotate/sphere/atom"_compute_erotate_sphere.html - rotational energy for each spherical particle
|
"erotate/sphere/atom"_compute_erotate_sphere.html - rotational energy for each spherical particle
|
||||||
"event/displace"_compute_event_displace.html - detect event on atom displacement
|
"event/displace"_compute_event_displace.html - detect event on atom displacement
|
||||||
|
"fragment/atom"_compute_cluster_atom.html - fragment ID for each atom
|
||||||
"group/group"_compute_group_group.html - energy/force between two groups of atoms
|
"group/group"_compute_group_group.html - energy/force between two groups of atoms
|
||||||
"gyration"_compute_gyration.html - radius of gyration of group of atoms
|
"gyration"_compute_gyration.html - radius of gyration of group of atoms
|
||||||
"gyration/chunk"_compute_gyration_chunk.html - radius of gyration for each chunk
|
"gyration/chunk"_compute_gyration_chunk.html - radius of gyration for each chunk
|
||||||
|
|||||||
@ -7,37 +7,62 @@
|
|||||||
:line
|
:line
|
||||||
|
|
||||||
compute cluster/atom command :h3
|
compute cluster/atom command :h3
|
||||||
|
compute fragment/atom command :h3
|
||||||
|
compute aggregate/atom command :h3
|
||||||
|
|
||||||
[Syntax:]
|
[Syntax:]
|
||||||
|
|
||||||
compute ID group-ID cluster/atom cutoff :pre
|
compute ID group-ID cluster/atom cutoff
|
||||||
|
compute ID group-ID fragment/atom
|
||||||
|
compute ID group-ID aggregate/atom cutoff :pre
|
||||||
|
|
||||||
ID, group-ID are documented in "compute"_compute.html command
|
ID, group-ID are documented in "compute"_compute.html command
|
||||||
cluster/atom = style name of this compute command
|
{cluster/atom} or {fragment/atom} or {aggregate/atom} = style name of this compute command
|
||||||
cutoff = distance within which to label atoms as part of same cluster (distance units) :ul
|
cutoff = distance within which to label atoms as part of same cluster (distance units) :ul
|
||||||
|
|
||||||
[Examples:]
|
[Examples:]
|
||||||
|
|
||||||
compute 1 all cluster/atom 1.0 :pre
|
compute 1 all cluster/atom 3.5
|
||||||
|
compute 1 all fragment/atom :pre
|
||||||
|
compute 1 all aggregate/atom 3.5 :pre
|
||||||
|
|
||||||
[Description:]
|
[Description:]
|
||||||
|
|
||||||
Define a computation that assigns each atom a cluster ID.
|
Define a computation that assigns each atom a cluster, fragment,
|
||||||
|
or aggregate ID.
|
||||||
|
|
||||||
A cluster is defined as a set of atoms, each of which is within the
|
A cluster is defined as a set of atoms, each of which is within the
|
||||||
cutoff distance from one or more other atoms in the cluster. If an
|
cutoff distance from one or more other atoms in the cluster. If an
|
||||||
atom has no neighbors within the cutoff distance, then it is a 1-atom
|
atom has no neighbors within the cutoff distance, then it is a 1-atom
|
||||||
cluster. The ID of every atom in the cluster will be the smallest
|
cluster.
|
||||||
atom ID of any atom in the cluster.
|
|
||||||
|
A fragment is similarly defined as a set of atoms, each of
|
||||||
|
which has an explicit bond (i.e. defined via a "data file"_read_data.html,
|
||||||
|
the "create_bonds"_create_bonds.html command, or through fixes like
|
||||||
|
"fix bond/create"_fix_bond_create.html, "fix bond/swap"_fix_bond_swap.html,
|
||||||
|
or "fix bond/break"_fix_bond_break.html). The cluster ID or fragment ID
|
||||||
|
of every atom in the cluster will be set to the smallest atom ID of any atom
|
||||||
|
in the cluster or fragment, respectively.
|
||||||
|
|
||||||
|
An aggregate is defined by combining the rules for clusters and
|
||||||
|
fragments, i.e. a set of atoms, where each of it is within the cutoff
|
||||||
|
distance from one or more atoms within a fragment that is part of
|
||||||
|
the same cluster. This measure can be used to track molecular assemblies
|
||||||
|
like micelles.
|
||||||
|
|
||||||
Only atoms in the compute group are clustered and assigned cluster
|
Only atoms in the compute group are clustered and assigned cluster
|
||||||
IDs. Atoms not in the compute group are assigned a cluster ID = 0.
|
IDs. Atoms not in the compute group are assigned a cluster ID = 0.
|
||||||
|
For fragments, only bonds where [both] atoms of the bond are included
|
||||||
|
in the compute group are assigned to fragments, so that only fragments
|
||||||
|
are detected where [all] atoms are in the compute group. Thus atoms
|
||||||
|
may be included in the compute group, yes still have a fragment ID of 0.
|
||||||
|
|
||||||
The neighbor list needed to compute this quantity is constructed each
|
For computes {cluster/atom} and {aggregate/atom} the neighbor list needed
|
||||||
time the calculation is performed (i.e. each time a snapshot of atoms
|
to compute this quantity is constructed each time the calculation is
|
||||||
is dumped). Thus it can be inefficient to compute/dump this quantity
|
performed (i.e. each time a snapshot of atoms is dumped). Thus it can be
|
||||||
too frequently or to have multiple compute/dump commands, each of a
|
inefficient to compute/dump this quantity too frequently or to have
|
||||||
{cluster/atom} style.
|
multiple compute/dump commands, each of a {cluster/atom} or
|
||||||
|
{aggregate/atom} style.
|
||||||
|
|
||||||
NOTE: If you have a bonded system, then the settings of
|
NOTE: If you have a bonded system, then the settings of
|
||||||
"special_bonds"_special_bonds.html command can remove pairwise
|
"special_bonds"_special_bonds.html command can remove pairwise
|
||||||
|
|||||||
@ -27,8 +27,8 @@ compute 1 all dihedral/local phi :pre
|
|||||||
|
|
||||||
Define a computation that calculates properties of individual dihedral
|
Define a computation that calculates properties of individual dihedral
|
||||||
interactions. The number of datums generated, aggregated across all
|
interactions. The number of datums generated, aggregated across all
|
||||||
processors, equals the number of angles in the system, modified by the
|
processors, equals the number of dihedral angles in the system, modified
|
||||||
group parameter as explained below.
|
by the group parameter as explained below.
|
||||||
|
|
||||||
The value {phi} is the dihedral angle, as defined in the diagram on
|
The value {phi} is the dihedral angle, as defined in the diagram on
|
||||||
the "dihedral_style"_dihedral_style.html doc page.
|
the "dihedral_style"_dihedral_style.html doc page.
|
||||||
|
|||||||
62
doc/src/compute_edpd_temp_atom.txt
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
"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 edpd/temp/atom command :h3
|
||||||
|
|
||||||
|
[Syntax:]
|
||||||
|
|
||||||
|
compute ID group-ID edpd/temp/atom :pre
|
||||||
|
|
||||||
|
ID, group-ID are documented in "compute"_compute.html command
|
||||||
|
edpd/temp/atom = style name of this compute command :ul
|
||||||
|
|
||||||
|
[Examples:]
|
||||||
|
|
||||||
|
compute 1 all edpd/temp/atom :pre
|
||||||
|
|
||||||
|
[Description:]
|
||||||
|
|
||||||
|
Define a computation that calculates the per-atom temperature
|
||||||
|
for each eDPD particle in a group.
|
||||||
|
|
||||||
|
The temperature is a local temperature derived from the internal energy
|
||||||
|
of each eDPD particle based on the local equilibrium hypothesis.
|
||||||
|
For more details please see "(Espanol1997)"_#Espanol1997 and
|
||||||
|
"(Li2014)"_#Li2014a.
|
||||||
|
|
||||||
|
[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 in temperature "units"_units.html.
|
||||||
|
|
||||||
|
[Restrictions:]
|
||||||
|
|
||||||
|
This compute is part of the USER-MESO 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:]
|
||||||
|
|
||||||
|
"pair_style edpd"_pair_meso.html
|
||||||
|
|
||||||
|
[Default:] none
|
||||||
|
|
||||||
|
:line
|
||||||
|
|
||||||
|
:link(Espanol1997)
|
||||||
|
[(Espanol1997)] Espanol, Europhys Lett, 40(6): 631-636 (1997). DOI:
|
||||||
|
10.1209/epl/i1997-00515-8
|
||||||
|
|
||||||
|
:link(Li2014a)
|
||||||
|
[(Li2014)] Li, Tang, Lei, Caswell, Karniadakis, J Comput Phys, 265:
|
||||||
|
113-127 (2014). DOI: 10.1016/j.jcp.2014.02.003.
|
||||||
|
|
||||||