Compare commits
903 Commits
patch_11Au
...
patch_23Oc
| Author | SHA1 | Date | |
|---|---|---|---|
| 39df9f5d94 | |||
| 68d04119d3 | |||
| 0148c2ac81 | |||
| 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 | |||
| 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 | |||
| 4041db8d1a | |||
| 8c16ea1bfc | |||
| c8741f3a01 | |||
| 2a7d2dee36 | |||
| 378989e065 | |||
| da01be7c18 | |||
| e86b139817 | |||
| 3e9b41c6b7 | |||
| 8a7a831bd6 | |||
| 5cd1dc93dc | |||
| 93190a548a | |||
| 72f50c91ee | |||
| 408d9d99a9 | |||
| 8431ca5fec | |||
| 13f2d39f55 | |||
| 7edb294b44 | |||
| 9695aa6092 | |||
| 8e834d8be1 | |||
| 8f59c0e188 | |||
| 0231cc38a3 | |||
| c3c9f357fd | |||
| 76fb4e0815 | |||
| d3fa882280 | |||
| 557e5b964a | |||
| 633ca33f2f | |||
| bc446bb8b0 | |||
| 6716de5320 | |||
| f2023431f6 | |||
| aa60ef6ed8 | |||
| a71f5a0c20 | |||
| 126d9cd3bc | |||
| 8d485ea128 | |||
| f4b6b67f6e | |||
| 8ed881947f | |||
| 74deeeca58 | |||
| c010edc4fd | |||
| 3d1d0c58c7 | |||
| e8e9ea8392 | |||
| c88d1e5510 | |||
| 427ca88dd4 | |||
| 1749d643c7 | |||
| f037f89f5f | |||
| 488609a5fd | |||
| 01bcb79bdc | |||
| babba1870e | |||
| a99e3ef4f0 | |||
| c95db97b83 | |||
| 2961ba7ebb | |||
| e2ad4fa745 | |||
| acbc60319f | |||
| e6f5f77edf | |||
| 864fd9cd87 | |||
| 4d65c327f5 | |||
| c3d9786616 | |||
| a9eaeb4d95 | |||
| 1b34bec81a | |||
| 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 | |||
| b15f75d37b | |||
| 5e841bfe15 | |||
| d079b2f758 | |||
| 54f2b02ac8 | |||
| 0a6e9c8bf6 | |||
| b85979503f | |||
| c7e218f310 | |||
| 335ef11a7b | |||
| 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
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
|
||||
#cmake
|
||||
/build*
|
||||
/CMakeCache.txt
|
||||
/CMakeFiles/
|
||||
/Makefile
|
||||
/cmake_install.cmake
|
||||
/lmp
|
||||
|
||||
723
cmake/CMakeLists.txt
Normal file
@ -0,0 +1,723 @@
|
||||
########################################
|
||||
# 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-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_MISC)
|
||||
option(LAMMPS_XDR "include XDR compatibility files for doing particle dumps in XTC format" OFF)
|
||||
if(LAMMPS_XDR)
|
||||
add_definitions(-DLAMMPS_XDR) # for liblammps
|
||||
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(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})
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
message(FATAL_ERROR "Python package need lammps to be build shared, use -DBUILD_SHARED_LIBS=ON")
|
||||
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)
|
||||
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}/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)
|
||||
|
||||
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)
|
||||
161
cmake/Modules/StyleHeaderUtils.cmake
Normal file
@ -0,0 +1,161 @@
|
||||
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(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(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@
|
||||
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/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/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 -->
|
||||
<HEAD>
|
||||
<TITLE>LAMMPS Users Manual</TITLE>
|
||||
<META NAME="docnumber" CONTENT="11 Aug 2017 version">
|
||||
<META NAME="docnumber" CONTENT="23 Oct 2017 version">
|
||||
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
|
||||
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
|
||||
</HEAD>
|
||||
@ -21,7 +21,7 @@
|
||||
<H1></H1>
|
||||
|
||||
LAMMPS Documentation :c,h3
|
||||
11 Aug 2017 version :c,h4
|
||||
23 Oct 2017 version :c,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
|
||||
The lammps.org domain, currently hosting "public continuous integration
|
||||
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,
|
||||
richard.berger at temple.edu.
|
||||
|
||||
|
||||
@ -532,7 +532,8 @@ package"_Section_start.html#start_3.
|
||||
"dump vtk"_dump_vtk.html,
|
||||
"group2ndx"_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
|
||||
|
||||
@ -579,6 +580,7 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.
|
||||
"halt"_fix_halt.html,
|
||||
"heat"_fix_heat.html,
|
||||
"indent"_fix_indent.html,
|
||||
"latte"_fix_latte.html,
|
||||
"langevin (k)"_fix_langevin.html,
|
||||
"lineforce"_fix_lineforce.html,
|
||||
"momentum (k)"_fix_momentum.html,
|
||||
@ -685,6 +687,7 @@ package"_Section_start.html#start_3.
|
||||
"drude"_fix_drude.html,
|
||||
"drude/transform/direct"_fix_drude_transform.html,
|
||||
"drude/transform/reverse"_fix_drude_transform.html,
|
||||
"edpd/source"_fix_dpd_source.html,
|
||||
"eos/cv"_fix_eos_cv.html,
|
||||
"eos/table"_fix_eos_table.html,
|
||||
"eos/table/rx"_fix_eos_table_rx.html,
|
||||
@ -704,6 +707,9 @@ package"_Section_start.html#start_3.
|
||||
"meso"_fix_meso.html,
|
||||
"manifoldforce"_fix_manifoldforce.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/dotc/langevin"_fix_nve_dotc_langevin.html,
|
||||
"nve/manifold/rattle"_fix_nve_manifold_rattle.html,
|
||||
@ -714,6 +720,8 @@ package"_Section_start.html#start_3.
|
||||
"nve/eff"_fix_nve_eff.html,
|
||||
"nvt/eff"_fix_nh_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,
|
||||
"pimd"_fix_pimd.html,
|
||||
"qbmsst"_fix_qbmsst.html,
|
||||
@ -722,6 +730,7 @@ package"_Section_start.html#start_3.
|
||||
"qtb"_fix_qtb.html,
|
||||
"reax/c/bonds"_fix_reax_bonds.html,
|
||||
"reax/c/species"_fix_reaxc_species.html,
|
||||
"rhok"_fix_rhok.html,
|
||||
"rx"_fix_rx.html,
|
||||
"saed/vtk"_fix_saed_vtk.html,
|
||||
"shardlow"_fix_shardlow.html,
|
||||
@ -732,6 +741,7 @@ package"_Section_start.html#start_3.
|
||||
"smd/move/triangulated/surface"_fix_smd_move_triangulated_surface.html,
|
||||
"smd/setvel"_fix_smd_setvel.html,
|
||||
"smd/wall/surface"_fix_smd_wall_surface.html,
|
||||
"tdpd/source"_fix_dpd_source.html,
|
||||
"temp/rescale/eff"_fix_temp_rescale_eff.html,
|
||||
"ti/spring"_fix_ti_spring.html,
|
||||
"ttm/mod"_fix_ttm.html,
|
||||
@ -750,6 +760,7 @@ package"_Section_accelerate.html. This is indicated by additional
|
||||
letters in parenthesis: g = GPU, i = USER-INTEL, k =
|
||||
KOKKOS, o = USER-OMP, t = OPT.
|
||||
|
||||
"aggregate/atom"_compute_cluster_atom.html,
|
||||
"angle"_compute_angle.html,
|
||||
"angle/local"_compute_angle_local.html,
|
||||
"angmom/chunk"_compute_angmom_chunk.html,
|
||||
@ -775,6 +786,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"erotate/sphere"_compute_erotate_sphere.html,
|
||||
"erotate/sphere/atom"_compute_erotate_sphere_atom.html,
|
||||
"event/displace"_compute_event_displace.html,
|
||||
"fragment/atom"_compute_cluster_atom.html,
|
||||
"global/atom"_compute_global_atom.html,
|
||||
"group/group"_compute_group_group.html,
|
||||
"gyration"_compute_gyration.html,
|
||||
@ -836,6 +848,7 @@ package"_Section_start.html#start_3.
|
||||
"cnp/atom"_compute_cnp_atom.html,
|
||||
"dpd"_compute_dpd.html,
|
||||
"dpd/atom"_compute_dpd_atom.html,
|
||||
"edpd/temp/atom"_compute_edpd_temp_atom.html,
|
||||
"fep"_compute_fep.html,
|
||||
"force/tally"_compute_tally.html,
|
||||
"heat/flux/tally"_compute_tally.html,
|
||||
@ -846,6 +859,7 @@ package"_Section_start.html#start_3.
|
||||
"meso/t/atom"_compute_meso_t_atom.html,
|
||||
"pe/tally"_compute_tally.html,
|
||||
"pe/mol/tally"_compute_tally.html,
|
||||
"pressure/uef"_compute_pressure_uef.html,
|
||||
"saed"_compute_saed.html,
|
||||
"smd/contact/radius"_compute_smd_contact_radius.html,
|
||||
"smd/damage"_compute_smd_damage.html,
|
||||
@ -868,11 +882,13 @@ package"_Section_start.html#start_3.
|
||||
"smd/ulsph/stress"_compute_smd_ulsph_stress.html,
|
||||
"smd/vol"_compute_smd_vol.html,
|
||||
"stress/tally"_compute_tally.html,
|
||||
"tdpd/cc/atom"_compute_tdpd_cc_atom.html,
|
||||
"temp/drude"_compute_temp_drude.html,
|
||||
"temp/eff"_compute_temp_eff.html,
|
||||
"temp/deform/eff"_compute_temp_deform_eff.html,
|
||||
"temp/region/eff"_compute_temp_region_eff.html,
|
||||
"temp/rotate"_compute_temp_rotate.html,
|
||||
"temp/uef"_compute_temp_uef.html,
|
||||
"xrd"_compute_xrd.html :tb(c=6,ea=c)
|
||||
|
||||
:line
|
||||
@ -892,8 +908,8 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"hybrid"_pair_hybrid.html,
|
||||
"hybrid/overlay"_pair_hybrid.html,
|
||||
"adp (o)"_pair_adp.html,
|
||||
"airebo (o)"_pair_airebo.html,
|
||||
"airebo/morse (o)"_pair_airebo.html,
|
||||
"airebo (oi)"_pair_airebo.html,
|
||||
"airebo/morse (oi)"_pair_airebo.html,
|
||||
"beck (go)"_pair_beck.html,
|
||||
"body"_pair_body.html,
|
||||
"bop"_pair_bop.html,
|
||||
@ -904,11 +920,12 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"born/coul/long/cs"_pair_born.html,
|
||||
"born/coul/msm (o)"_pair_born.html,
|
||||
"born/coul/wolf (go)"_pair_born.html,
|
||||
"born/coul/wolf/cs"_pair_born.html,
|
||||
"brownian (o)"_pair_brownian.html,
|
||||
"brownian/poly (o)"_pair_brownian.html,
|
||||
"buck (gkio)"_pair_buck.html,
|
||||
"buck/coul/cut (gkio)"_pair_buck.html,
|
||||
"buck/coul/long (gkio)"_pair_buck.html,
|
||||
"buck (giko)"_pair_buck.html,
|
||||
"buck/coul/cut (giko)"_pair_buck.html,
|
||||
"buck/coul/long (giko)"_pair_buck.html,
|
||||
"buck/coul/long/cs"_pair_buck.html,
|
||||
"buck/coul/msm (o)"_pair_buck.html,
|
||||
"buck/long/coul/long (o)"_pair_buck_long.html,
|
||||
@ -923,12 +940,13 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"coul/msm"_pair_coul.html,
|
||||
"coul/streitz"_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,
|
||||
"dsmc"_pair_dsmc.html,
|
||||
"eam (gkiot)"_pair_eam.html,
|
||||
"eam/alloy (gkot)"_pair_eam.html,
|
||||
"eam/fs (gkot)"_pair_eam.html,
|
||||
"eam (gikot)"_pair_eam.html,
|
||||
"eam/alloy (gikot)"_pair_eam.html,
|
||||
"eam/fs (gikot)"_pair_eam.html,
|
||||
"eim (o)"_pair_eim.html,
|
||||
"gauss (go)"_pair_gauss.html,
|
||||
"gayberne (gio)"_pair_gayberne.html,
|
||||
@ -942,7 +960,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"kim"_pair_kim.html,
|
||||
"lcbop"_pair_lcbop.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/long (giko)"_pair_charmm.html,
|
||||
"lj/charmm/coul/msm"_pair_charmm.html,
|
||||
@ -990,13 +1008,13 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"polymorphic"_pair_polymorphic.html,
|
||||
"python"_pair_python.html,
|
||||
"reax"_pair_reax.html,
|
||||
"rebo (o)"_pair_airebo.html,
|
||||
"rebo (oi)"_pair_airebo.html,
|
||||
"resquared (go)"_pair_resquared.html,
|
||||
"snap"_pair_snap.html,
|
||||
"soft (go)"_pair_soft.html,
|
||||
"sw (gkio)"_pair_sw.html,
|
||||
"sw (giko)"_pair_sw.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/c (o)"_pair_tersoff_mod.html,
|
||||
"tersoff/zbl (gko)"_pair_tersoff_zbl.html,
|
||||
@ -1024,6 +1042,7 @@ package"_Section_start.html#start_3.
|
||||
"eam/cd (o)"_pair_eam.html,
|
||||
"edip (o)"_pair_edip.html,
|
||||
"edip/multi"_pair_edip.html,
|
||||
"edpd"_pair_meso.html,
|
||||
"eff/cut"_pair_eff.html,
|
||||
"exp6/rx"_pair_exp6_rx.html,
|
||||
"gauss/cut"_pair_gauss.html,
|
||||
@ -1041,6 +1060,8 @@ package"_Section_start.html#start_3.
|
||||
"lj/sdk (gko)"_pair_sdk.html,
|
||||
"lj/sdk/coul/long (go)"_pair_sdk.html,
|
||||
"lj/sdk/coul/msm (o)"_pair_sdk.html,
|
||||
"mdpd"_pair_meso.html,
|
||||
"mdpd/rhosum"_pair_meso.html,
|
||||
"meam/c"_pair_meam.html,
|
||||
"meam/spline (o)"_pair_meam_spline.html,
|
||||
"meam/sw/spline"_pair_meam_sw_spline.html,
|
||||
@ -1074,6 +1095,7 @@ package"_Section_start.html#start_3.
|
||||
"sph/taitwater/morris"_pair_sph_taitwater_morris.html,
|
||||
"srp"_pair_srp.html,
|
||||
"table/rx"_pair_table_rx.html,
|
||||
"tdpd"_pair_meso.html,
|
||||
"tersoff/table (o)"_pair_tersoff.html,
|
||||
"thole"_pair_thole.html,
|
||||
"tip4p/long/soft (o)"_pair_lj_soft.html :tb(c=4,ea=c)
|
||||
@ -1096,6 +1118,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"class2 (ko)"_bond_class2.html,
|
||||
"fene (iko)"_bond_fene.html,
|
||||
"fene/expand (o)"_bond_fene_expand.html,
|
||||
"gromos (o)"_bond_gromos.html,
|
||||
"harmonic (ko)"_bond_harmonic.html,
|
||||
"morse (o)"_bond_morse.html,
|
||||
"nonlinear (o)"_bond_nonlinear.html,
|
||||
@ -1162,7 +1185,7 @@ USER-OMP, t = OPT.
|
||||
"none"_dihedral_none.html,
|
||||
"zero"_dihedral_zero.html,
|
||||
"hybrid"_dihedral_hybrid.html,
|
||||
"charmm (ko)"_dihedral_charmm.html,
|
||||
"charmm (iko)"_dihedral_charmm.html,
|
||||
"charmmfsw"_dihedral_charmm.html,
|
||||
"class2 (ko)"_dihedral_class2.html,
|
||||
"harmonic (io)"_dihedral_harmonic.html,
|
||||
@ -1175,7 +1198,7 @@ used if "LAMMPS is built with the appropriate
|
||||
package"_Section_start.html#start_3.
|
||||
|
||||
"cosine/shift/exp (o)"_dihedral_cosine_shift_exp.html,
|
||||
"fourier (o)"_dihedral_fourier.html,
|
||||
"fourier (io)"_dihedral_fourier.html,
|
||||
"nharmonic (o)"_dihedral_nharmonic.html,
|
||||
"quadratic (o)"_dihedral_quadratic.html,
|
||||
"spherical (o)"_dihedral_spherical.html,
|
||||
@ -1198,7 +1221,7 @@ USER-OMP, t = OPT.
|
||||
"hybrid"_improper_hybrid.html,
|
||||
"class2 (ko)"_improper_class2.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)
|
||||
|
||||
These are additional improper styles in USER packages, which can be
|
||||
|
||||
@ -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
|
||||
|
||||
See the "special_bonds extra" command
|
||||
(or the "read_data extra/special/per/atom" command)
|
||||
See 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
|
||||
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
|
||||
|
||||
See the special_bonds extra command
|
||||
(or the read_data extra/special/per/atom command)
|
||||
See 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
|
||||
list to allow for additional bonds to be formed. :dd
|
||||
|
||||
|
||||
@ -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
|
||||
list of neighbors is automatically refactored to account for the
|
||||
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
|
||||
"special_bonds"_special_bonds.html command. If using "fix
|
||||
screening. It may be necessary to use the {extra/special/per/atom}
|
||||
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
|
||||
group.
|
||||
|
||||
|
||||
@ -96,6 +96,7 @@ Package, Description, Doc page, Example, Library
|
||||
"KIM"_#KIM, OpenKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext
|
||||
"KOKKOS"_#KOKKOS, Kokkos-enabled styles, "Section 5.3.3"_accelerate_kokkos.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
|
||||
"KSPACE"_#KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, -
|
||||
"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, -
|
||||
"MC"_#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, -
|
||||
"MEAM"_#MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int
|
||||
@ -112,7 +113,7 @@ Package, Description, Doc page, Example, Library
|
||||
"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, -
|
||||
"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, -
|
||||
"VORONOI"_#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext :tb(ea=c,ca1=l)
|
||||
|
||||
@ -134,6 +135,7 @@ Package, Description, Doc page, Example, Library
|
||||
"USER-LB"_#USER-LB, Lattice Boltzmann fluid,"fix lb/fluid"_fix_lb_fluid.html, USER/lb, -
|
||||
"USER-MANIFOLD"_#USER-MANIFOLD, motion on 2d surfaces,"fix manifoldforce"_fix_manifoldforce.html, USER/manifold, -
|
||||
"USER-MEAMC"_#USER-MEAMC, modified EAM potential (C++), "pair_style meam/c"_pair_meam.html, meam, -
|
||||
"USER-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-MISC"_#USER-MISC, single-file contributions, USER-MISC/README, USER/misc, -
|
||||
"USER-MOLFILE"_#USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, -, ext
|
||||
@ -148,6 +150,7 @@ Package, Description, Doc page, Example, Library
|
||||
"USER-SMTBQ"_#USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, -
|
||||
"USER-SPH"_#USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, -
|
||||
"USER-TALLY"_#USER-TALLY, pairwise tally computes,"compute XXX/tally"_compute_tally.html, USER/tally, -
|
||||
"USER-UEF"_#USER-UEF, extensional flow,"fix nvt/uef"_fix_nh_uef.html, USER/uef, -
|
||||
"USER-VTK"_#USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, -, ext :tb(ea=c,ca1=l)
|
||||
|
||||
:line
|
||||
@ -694,6 +697,66 @@ bench/in.rhodo :ul
|
||||
|
||||
: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", 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 apporpriate
|
||||
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
|
||||
|
||||
[Contents:]
|
||||
@ -1342,7 +1405,7 @@ make machine :pre
|
||||
[Supporting info:]
|
||||
|
||||
src/SNAP: filenames -> commands
|
||||
"pair snap"_pair_snap.html
|
||||
"pair_style snap"_pair_snap.html
|
||||
"compute sna/atom"_compute_sna_atom.html
|
||||
"compute snad/atom"_compute_sna_atom.html
|
||||
"compute snav/atom"_compute_sna_atom.html
|
||||
@ -1556,7 +1619,7 @@ make machine :pre
|
||||
|
||||
src/USER-AWPMD: filenames -> commands
|
||||
src/USER-AWPMD/README
|
||||
"pair awpmd/cut"_pair_awpmd.html
|
||||
"pair_style awpmd/cut"_pair_awpmd.html
|
||||
examples/USER/awpmd :ul
|
||||
|
||||
:line
|
||||
@ -1745,12 +1808,12 @@ src/USER-DPD: filenames -> commands
|
||||
"fix eos/table/rx"_fix_eos_table_rx.html
|
||||
"fix shardlow"_fix_shardlow.html
|
||||
"fix rx"_fix_rx.html
|
||||
"pair table/rx"_pair_table_rx.html
|
||||
"pair dpd/fdt"_pair_dpd_fdt.html
|
||||
"pair dpd/fdt/energy"_pair_dpd_fdt.html
|
||||
"pair exp6/rx"_pair_exp6_rx.html
|
||||
"pair multi/lucy"_pair_multi_lucy.html
|
||||
"pair multi/lucy/rx"_pair_multi_lucy_rx.html
|
||||
"pair_style table/rx"_pair_table_rx.html
|
||||
"pair_style dpd/fdt"_pair_dpd_fdt.html
|
||||
"pair_style dpd/fdt/energy"_pair_dpd_fdt.html
|
||||
"pair_style exp6/rx"_pair_exp6_rx.html
|
||||
"pair_style multi/lucy"_pair_multi_lucy.html
|
||||
"pair_style multi/lucy/rx"_pair_multi_lucy_rx.html
|
||||
examples/USER/dpd :ul
|
||||
|
||||
:line
|
||||
@ -1785,8 +1848,8 @@ src/USER-DRUDE/README
|
||||
"fix drude"_fix_drude.html
|
||||
"fix drude/transform/*"_fix_drude_transform.html
|
||||
"compute temp/drude"_compute_temp_drude.html
|
||||
"pair thole"_pair_thole.html
|
||||
"pair lj/cut/thole/long"_pair_thole.html
|
||||
"pair_style thole"_pair_thole.html
|
||||
"pair_style lj/cut/thole/long"_pair_thole.html
|
||||
examples/USER/drude
|
||||
tools/drude :ul
|
||||
|
||||
@ -1824,8 +1887,8 @@ src/USER-EFF/README
|
||||
"fix npt/eff"_fix_nh_eff.html
|
||||
"fix langevin/eff"_fix_langevin_eff.html
|
||||
"compute temp/eff"_compute_temp_eff.html
|
||||
"pair eff/cut"_pair_eff.html
|
||||
"pair eff/inline"_pair_eff.html
|
||||
"pair_style eff/cut"_pair_eff.html
|
||||
"pair_style eff/inline"_pair_eff.html
|
||||
examples/USER/eff
|
||||
tools/eff/README
|
||||
tools/eff
|
||||
@ -2155,11 +2218,47 @@ make machine :pre
|
||||
|
||||
src/USER-MEAMC: filenames -> commands
|
||||
src/USER-MEAMC/README
|
||||
"pair meam/c"_pair_meam.html
|
||||
"pair_style meam/c"_pair_meam.html
|
||||
examples/meam :ul
|
||||
|
||||
: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-diffuion-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-MOLFILE package :link(USER-MOLFILE),h4
|
||||
|
||||
[Contents:]
|
||||
@ -2673,13 +2772,44 @@ examples/USER/tally :ul
|
||||
|
||||
: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
|
||||
|
||||
[Contents:]
|
||||
|
||||
A "dump vtk"_dump_vtk.html command which outputs
|
||||
snapshot info in the "VTK format"_vtk, enabling visualization by
|
||||
"Paraview"_paraview or other visuzlization packages.
|
||||
A "dump vtk"_dump_vtk.html command which outputs snapshot info in the
|
||||
"VTK format"_vtk, enabling visualization by "Paraview"_paraview or
|
||||
other visuzlization packages.
|
||||
|
||||
:link(vtk,http://www.vtk.org)
|
||||
:link(paraview,http://www.paraview.org)
|
||||
|
||||
@ -536,7 +536,7 @@ You should get the executable lmp_foo when the build is complete.
|
||||
|
||||
: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
|
||||
state very explicitly what the problem is. The error message should
|
||||
@ -662,27 +662,25 @@ your own build system. Due to differences between the Windows OS
|
||||
and Windows system libraries to Unix-like environments like Linux
|
||||
or MacOS, when compiling for Windows a few adjustments may be needed:
|
||||
|
||||
Do not set the -DLAMMPS_MEMALIGN define (see LMP_INC makefile variable)
|
||||
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
|
||||
Try adding -static-libgcc or -static or both to the linker flags when your LAMMPS executable complains about missing .dll files :ul
|
||||
|
||||
Since none of the current LAMMPS core developers
|
||||
has significant experience building executables on Windows, we are
|
||||
happy to distribute contributed instructions and modifications, but
|
||||
we cannot provide support for those.
|
||||
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
|
||||
Ubuntu Linux subsystem available for Windows, that can be installed
|
||||
and then used to compile/install LAMMPS as if you are running on a
|
||||
Ubuntu Linux system instead of Windows.
|
||||
|
||||
As an alternative, you can download "daily builds" (and some older
|
||||
versions) of the installer packages from
|
||||
"rpm.lammps.org/windows.html"_http://rpm.lammps.org/windows.html.
|
||||
These executables are built with most optional packages and the
|
||||
download includes documentation, potential files, some tools and
|
||||
many examples, but no source code.
|
||||
As an alternative, you can download pre-compiled installer packages from
|
||||
"packages.lammps.org/windows.html"_http://packages.lammps.org/windows.html.
|
||||
These executables are built with most optional packages included and the
|
||||
download includes documentation, potential files, some tools and many
|
||||
examples, but no source code.
|
||||
|
||||
:line
|
||||
|
||||
@ -922,7 +920,7 @@ CPUs and KNLs; the KOKKOS package builds for CPUs (OpenMP), GPUs
|
||||
Makefile.intel_cpu
|
||||
Makefile.intel_phi
|
||||
Makefile.kokkos_omp
|
||||
Makefile.kokkos_cuda
|
||||
Makefile.kokkos_cuda_mpi
|
||||
Makefile.kokkos_phi
|
||||
Makefile.omp
|
||||
Makefile.opt :ul
|
||||
@ -1095,7 +1093,7 @@ LAMMPS to be built with one or more of its optional packages.
|
||||
:line
|
||||
|
||||
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:
|
||||
|
||||
@ -1107,18 +1105,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]
|
||||
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
|
||||
|
||||
For the MPI version, which allows you to run LAMMPS under Windows on
|
||||
multiple processors, follow these steps:
|
||||
For the MPI version, which allows you to run LAMMPS under Windows with
|
||||
the more general message passing parallel library (LAMMPS has been
|
||||
designed from ground up to use MPI efficiently), follow these steps:
|
||||
|
||||
Download and install
|
||||
"MPICH2"_http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads
|
||||
for Windows. :ulb,l
|
||||
Download and install a compatible MPI library binary package:
|
||||
for 32-bit Windows
|
||||
"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
|
||||
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}
|
||||
(right click on the icon and select it). Change into the MPICH2
|
||||
installation directory, then into the subdirectory [bin] and execute
|
||||
@ -1137,7 +1144,7 @@ or
|
||||
|
||||
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
|
||||
|
||||
In this mode, output may not immediately show up on the screen, so if
|
||||
@ -1149,6 +1156,11 @@ something like:
|
||||
|
||||
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
|
||||
|
||||
:line
|
||||
|
||||
@ -25,12 +25,14 @@ LAMMPS to run on the CPU cores and coprocessor cores simultaneously.
|
||||
[Currently Available USER-INTEL Styles:]
|
||||
|
||||
Angle Styles: charmm, harmonic :ulb,l
|
||||
Bond Styles: fene, harmonic :l
|
||||
Bond Styles: fene, fourier, harmonic :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
|
||||
Pair Styles: buck/coul/cut, buck/coul/long, buck, eam, gayberne,
|
||||
charmm/coul/long, lj/cut, lj/cut/coul/long, lj/long/coul/long, sw, tersoff :l
|
||||
Pair Styles: airebo, airebo/morse, buck/coul/cut, buck/coul/long,
|
||||
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
|
||||
:ule
|
||||
|
||||
@ -52,11 +54,12 @@ warmup run (for use with offload benchmarks).
|
||||
:c,image(JPG/user_intel.png)
|
||||
|
||||
Results are speedups obtained on Intel Xeon E5-2697v4 processors
|
||||
(code-named Broadwell) and Intel Xeon Phi 7250 processors
|
||||
(code-named Knights Landing) with "June 2017" LAMMPS built with
|
||||
Intel Parallel Studio 2017 update 2. Results are with 1 MPI task
|
||||
per physical core. See {src/USER-INTEL/TEST/README} for the raw
|
||||
simulation rates and instructions to reproduce.
|
||||
(code-named Broadwell), Intel Xeon Phi 7250 processors (code-named
|
||||
Knights Landing), and Intel Xeon Gold 6148 processors (code-named
|
||||
Skylake) with "June 2017" LAMMPS built with Intel Parallel Studio
|
||||
2017 update 2. Results are with 1 MPI task per physical core. See
|
||||
{src/USER-INTEL/TEST/README} for the raw simulation rates and
|
||||
instructions to reproduce.
|
||||
|
||||
:line
|
||||
|
||||
@ -80,6 +83,11 @@ this order :l
|
||||
The {newton} setting applies to all atoms, not just atoms shared
|
||||
between MPI tasks :l
|
||||
Vectorization can change the order for adding pairwise forces :l
|
||||
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
|
||||
|
||||
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
|
||||
electrostatics, performance and scalability can be better with
|
||||
the "newton off" setting added to the input script :l
|
||||
For simulations on higher node counts, add "processors * * * grid
|
||||
For simulations on higher node counts, add "processors * * * grid
|
||||
numa" to the beginning of the input script for better scalability :l
|
||||
If using {kspace_style pppm} in the input script, add
|
||||
"kspace_modify diff ad" for better performance :l
|
||||
@ -117,8 +125,8 @@ For Intel Xeon Phi CPUs:
|
||||
Runs should be performed using MCDRAM. :ulb,l
|
||||
:ule
|
||||
|
||||
For simulations using {kspace_style pppm} on Intel CPUs
|
||||
supporting AVX-512:
|
||||
For simulations using {kspace_style pppm} on Intel CPUs supporting
|
||||
AVX-512:
|
||||
|
||||
Add "kspace_modify diff ad" to the input script :ulb,l
|
||||
The command-line option should be changed to
|
||||
@ -235,14 +243,17 @@ However, if you do not have coprocessors on your system, building
|
||||
without offload support will produce a smaller binary.
|
||||
|
||||
The general requirements for Makefiles with the USER-INTEL package
|
||||
are as follows. "-DLAMMPS_MEMALIGN=64" is required for CCFLAGS. When
|
||||
using Intel compilers, "-restrict" is required and "-qopenmp" is
|
||||
highly recommended for CCFLAGS and LINKFLAGS. LIB should include
|
||||
"-ltbbmalloc". For builds supporting offload, "-DLMP_INTEL_OFFLOAD"
|
||||
is required for CCFLAGS and "-qoffload" is required for LINKFLAGS.
|
||||
Other recommended CCFLAG options for best performance are
|
||||
"-O2 -fno-alias -ansi-alias -qoverride-limits fp-model fast=2
|
||||
-no-prec-div".
|
||||
are as follows. When using Intel compilers, "-restrict" is required
|
||||
and "-qopenmp" is highly recommended for CCFLAGS and LINKFLAGS.
|
||||
CCFLAGS should include "-DLMP_INTEL_USELRT" (unless POSIX Threads
|
||||
are not supported in the build environment) and "-DLMP_USE_MKL_RNG"
|
||||
(unless Intel Math Kernel Library (MKL) is not available in the build
|
||||
environment). For Intel compilers, LIB should include "-ltbbmalloc"
|
||||
or if the library is not available, "-DLMP_INTEL_NO_TBB" can be added
|
||||
to CCFLAGS. For builds supporting offload, "-DLMP_INTEL_OFFLOAD" is
|
||||
required for CCFLAGS and "-qoffload" is required for LINKFLAGS. Other
|
||||
recommended CCFLAG options for best performance are "-O2 -fno-alias
|
||||
-ansi-alias -qoverride-limits fp-model fast=2 -no-prec-div".
|
||||
|
||||
NOTE: The vectorization and math capabilities can differ depending on
|
||||
the CPU. For Intel compilers, the "-x" flag specifies the type of
|
||||
@ -359,10 +370,14 @@ intel"_package.html command that can improve performance when using
|
||||
"PPPM"_kspace_style.html for long-range electrostatics on processors
|
||||
with SMT. It generates an extra pthread for each MPI task. The thread
|
||||
is dedicated to performing some of the PPPM calculations and MPI
|
||||
communications. On Intel Xeon Phi x200 series CPUs, this will likely
|
||||
always 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 machine. To use this mode,
|
||||
communications. This feature requires setting the preprocessor flag
|
||||
-DLMP_INTEL_USELRT in the makefile when compiling LAMMPS. It is unset
|
||||
in the default makefiles ({Makefile.mpi} and {Makefile.serial}) but
|
||||
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
|
||||
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
|
||||
|
||||
@ -135,10 +135,10 @@ GPUs, or Phi.
|
||||
You can do any of these in one line, using the suitable make command
|
||||
line flags as described in "Section 4"_Section_packages.html of the
|
||||
manual. If run from the src directory, these
|
||||
commands will create src/lmp_kokkos_omp, lmp_kokkos_cuda, and
|
||||
commands will create src/lmp_kokkos_omp, lmp_kokkos_cuda_mpi, 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.
|
||||
option uses src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi.
|
||||
|
||||
The latter two steps can be done using the "-k on", "-pk kokkos" and
|
||||
"-sf kk" "command-line switches"_Section_start.html#start_6
|
||||
@ -159,7 +159,7 @@ CPU-only (only MPI, no threading):
|
||||
|
||||
cd lammps/src
|
||||
make yes-kokkos
|
||||
make kokkos_mpi :pre
|
||||
make kokkos_mpi_only :pre
|
||||
|
||||
Intel Xeon Phi (Intel Compiler, Intel MPI):
|
||||
|
||||
@ -167,11 +167,11 @@ cd lammps/src
|
||||
make yes-kokkos
|
||||
make kokkos_phi :pre
|
||||
|
||||
CPUs and GPUs (with MPICH):
|
||||
CPUs and GPUs (with MPICH or OpenMPI):
|
||||
|
||||
cd lammps/src
|
||||
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
|
||||
make command line which requires a GNU-compatible make command. Try
|
||||
|
||||
@ -16,7 +16,7 @@ atom_modify keyword values ... :pre
|
||||
one or more keyword/value pairs may be appended :ulb,l
|
||||
keyword = {id} or {map} or {first} or {sort} :l
|
||||
{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
|
||||
{sort} values = Nfreq binsize
|
||||
Nfreq = sort atoms spatially every this many time steps
|
||||
@ -25,8 +25,8 @@ keyword = {id} or {map} or {first} or {sort} :l
|
||||
|
||||
[Examples:]
|
||||
|
||||
atom_modify map hash
|
||||
atom_modify map array sort 10000 2.0
|
||||
atom_modify map yes
|
||||
atom_modify map hash sort 10000 2.0
|
||||
atom_modify first colloid :pre
|
||||
|
||||
[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
|
||||
for all atoms, e.g. in a data or restart file.
|
||||
|
||||
The {map} keyword determines how atom ID lookup is done for molecular
|
||||
atom styles. Lookups are performed by bond (angle, etc) routines in
|
||||
LAMMPS to find the local atom index associated with a global atom ID.
|
||||
The {map} keyword determines how atoms with specific IDs are found
|
||||
when required. An example are the bond (angle, etc) methods which
|
||||
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
|
||||
of length N, where N is the largest atom ID in the system. This is a
|
||||
When the {map} keyword is not specified in your input script, LAMMPS
|
||||
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
|
||||
for large simulations. The {hash} value uses a hash table to perform
|
||||
the lookups. This can be slightly slower than the {array} method, but
|
||||
its memory cost is proportional to 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.
|
||||
for large simulations. For a {hash}-style map, a hash table is
|
||||
created on each processor, which finds an atom ID in constant time
|
||||
(independent of the global number of atom IDs). It can be slightly
|
||||
slower than the {array} map, but its memory cost is proportional to
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
@ -13,17 +13,19 @@ atom_style command :h3
|
||||
atom_style style args :pre
|
||||
|
||||
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 \
|
||||
{molecular} or {peri} or {smd} or {sphere} or {tri} or \
|
||||
{template} or {hybrid} :ulb,l
|
||||
{dpd} or {edpd} or {mdpd} or {tdpd} or {electron} or {ellipsoid} or \
|
||||
{full} or {line} or {meso} or {molecular} or {peri} or {smd} or \
|
||||
{sphere} or {tri} or {template} or {hybrid} :ulb,l
|
||||
args = none for any style except the following
|
||||
{body} args = bstyle bstyle-args
|
||||
bstyle = style of body particles
|
||||
bstyle-args = additional arguments specific to the bstyle
|
||||
see the "body"_body.html doc page for details
|
||||
{template} args = 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
|
||||
{body} args = bstyle bstyle-args
|
||||
bstyle = style of body particles
|
||||
bstyle-args = additional arguments specific to the bstyle
|
||||
see the "body"_body.html doc page for details
|
||||
{tdpd} arg = Nspecies
|
||||
Nspecies = # of chemical species
|
||||
{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
|
||||
:ule
|
||||
@ -36,7 +38,8 @@ atom_style full
|
||||
atom_style body nparticle 2 10
|
||||
atom_style hybrid charge bond
|
||||
atom_style hybrid charge body nparticle 2 5
|
||||
atom_style template myMols :pre
|
||||
atom_style template myMols
|
||||
atom_style tdpd 2 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -74,6 +77,9 @@ quantities.
|
||||
{charge} | charge | atomic system with charges |
|
||||
{dipole} | charge and dipole moment | system with dipolar 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 |
|
||||
{ellipsoid} | shape, quaternion, angular momentum | aspherical particles |
|
||||
{full} | molecular + charge | bio-molecules |
|
||||
@ -145,6 +151,19 @@ properties with internal temperature (dpdTheta), internal conductive
|
||||
energy (uCond), internal mechanical energy (uMech), and internal
|
||||
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)
|
||||
particles which store a density (rho), energy (e), and heat capacity
|
||||
(cv).
|
||||
@ -284,6 +303,11 @@ force fields"_pair_eff.html.
|
||||
The {dpd} style is part of the USER-DPD package for dissipative
|
||||
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
|
||||
hydrodynamics (SPH). See "this PDF
|
||||
guide"_USER/sph/SPH_LAMMPS_userguide.pdf to using SPH in LAMMPS.
|
||||
|
||||
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_fene
|
||||
bond_fene_expand
|
||||
bond_gromos
|
||||
bond_harmonic
|
||||
bond_harmonic_shift
|
||||
bond_harmonic_shift_cut
|
||||
|
||||
@ -32,6 +32,7 @@ Commands :h1
|
||||
dimension
|
||||
displace_atoms
|
||||
dump
|
||||
dump_cfg_uef
|
||||
dump_h5md
|
||||
dump_image
|
||||
dump_modify
|
||||
@ -92,6 +93,7 @@ Commands :h1
|
||||
tad
|
||||
temper
|
||||
temper_grem
|
||||
temper_npt
|
||||
thermo
|
||||
thermo_modify
|
||||
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
|
||||
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
|
||||
"angmom/chunk"_compute_angmom_chunk.html - angular momentum for each chunk
|
||||
"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/atom"_compute_erotate_sphere.html - rotational energy for each spherical particle
|
||||
"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
|
||||
"gyration"_compute_gyration.html - radius of gyration of group of atoms
|
||||
"gyration/chunk"_compute_gyration_chunk.html - radius of gyration for each chunk
|
||||
|
||||
@ -7,37 +7,62 @@
|
||||
:line
|
||||
|
||||
compute cluster/atom command :h3
|
||||
compute fragment/atom command :h3
|
||||
compute aggregate/atom command :h3
|
||||
|
||||
[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
|
||||
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
|
||||
|
||||
[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:]
|
||||
|
||||
Define a computation that assigns each atom a cluster ID.
|
||||
Define a computation that assigns each atom a cluster, fragement,
|
||||
or aggregate ID.
|
||||
|
||||
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
|
||||
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
|
||||
atom ID of any atom in the cluster.
|
||||
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
|
||||
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 fragmets
|
||||
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
|
||||
time the calculation is performed (i.e. each time a snapshot of atoms
|
||||
is dumped). Thus it can be inefficient to compute/dump this quantity
|
||||
too frequently or to have multiple compute/dump commands, each of a
|
||||
{cluster/atom} style.
|
||||
For computes {cluster/atom} and {aggregate/atom} the neighbor list needed
|
||||
to compute this quantity is constructed each time the calculation is
|
||||
performed (i.e. each time a snapshot of atoms is dumped). Thus it can be
|
||||
inefficient to compute/dump this quantity too frequently or to have
|
||||
multiple compute/dump commands, each of a {cluster/atom} or
|
||||
{aggregate/atom} style.
|
||||
|
||||
NOTE: If you have a bonded system, then the settings of
|
||||
"special_bonds"_special_bonds.html command can remove pairwise
|
||||
|
||||
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.
|
||||
|
||||
61
doc/src/compute_pressure_uef.txt
Normal file
@ -0,0 +1,61 @@
|
||||
"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 pressure/uef command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
compute ID group-ID pressure/uef temp-ID keyword ... :pre
|
||||
|
||||
ID, group-ID are documented in "compute"_compute.html command
|
||||
pressure/uef = style name of this compute command
|
||||
temp-ID = ID of compute that calculates temperature, can be NULL if not needed
|
||||
zero or more keywords may be appended
|
||||
keyword = {ke} or {pair} or {bond} or {angle} or {dihedral} or {improper} or {kspace} or {fix} or {virial} :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
compute 1 all pressure/uef my_temp_uef
|
||||
compute 2 all pressure/uef my_temp_uef virial :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
This command is used to compute the pressure tensor in
|
||||
the reference frame of the applied flow field when
|
||||
"fix nvt/uef"_fix_nh_uef.html" or
|
||||
"fix npt/uef"_fix_nh_uef.html" is used.
|
||||
It is not necessary to use this command to compute the scalar
|
||||
value of the pressure. A "compute pressure"_compute_pressure.html
|
||||
may be used for that purpose.
|
||||
|
||||
The keywords and output information are documented in
|
||||
"compute_pressure"_compute_pressure.html.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This fix is part of the USER-UEF package. It is only enabled if
|
||||
LAMMPS was built with that package. See the
|
||||
"Making LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
This command can only be used when "fix nvt/uef"_fix_nh_uef.html
|
||||
or "fix npt/uef"_fix_nh_uef.html is active.
|
||||
|
||||
The kinetic contribution to the pressure tensor
|
||||
will be accurate only when
|
||||
the compute specificed by {temp-ID} is a
|
||||
"compute temp/uef"_compute_temp_uef.html.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"compute pressure"_compute_pressure.html,
|
||||
"fix nvt/uef"_fix_nh_uef.html,
|
||||
"compute temp/uef"_compute_temp_uef.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
|
||||
60
doc/src/compute_tdpd_cc_atom.txt
Normal file
@ -0,0 +1,60 @@
|
||||
"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 tdpd/cc/atom command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
compute ID group-ID tdpd/cc/atom index :pre
|
||||
|
||||
ID, group-ID are documented in "compute"_compute.html command
|
||||
tdpd/cc/atom = style name of this compute command
|
||||
index = index of chemical species (1 to Nspecies) :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
compute 1 all tdpd/cc/atom 2 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Define a computation that calculates the per-atom chemical
|
||||
concentration of a specified species for each tDPD particle in a
|
||||
group.
|
||||
|
||||
The chemical concentration of each species is defined as the number of
|
||||
molecules carried by a tDPD particle for dilute solution. For more
|
||||
details see "(Li2015)"_#Li2015a.
|
||||
|
||||
[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 the units of chemical species
|
||||
per unit mass.
|
||||
|
||||
[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 tdpd"_pair_meso.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
:line
|
||||
|
||||
:link(Li2015a)
|
||||
[(Li2015)] Li, Yazdani, Tartakovsky, Karniadakis, J Chem Phys, 143:
|
||||
014101 (2015). DOI: 10.1063/1.4923254
|
||||
|
||||
52
doc/src/compute_temp_uef.txt
Normal file
@ -0,0 +1,52 @@
|
||||
"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 temp/uef command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
compute ID group-ID temp/uef :pre
|
||||
|
||||
ID, group-ID are documented in "compute"_compute.html command
|
||||
temp/uef = style name of this compute command :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
compute 1 all temp/uef
|
||||
compute 2 sel temp/uef :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
This command is used to compute the kinetic energy tensor in
|
||||
the reference frame of the applied flow field when
|
||||
"fix nvt/uef"_fix_nh_uef.html" or
|
||||
"fix npt/uef"_fix_nh_uef.html" is used.
|
||||
It is not necessary to use this command to compute the scalar
|
||||
value of the temperature. A "compute temp"_compute_temp.html
|
||||
may be used for that purpose.
|
||||
|
||||
Output information for this command can be found in the
|
||||
documentation for "compute temp"_compute_temp.html.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This fix is part of the USER-UEF package. It is only enabled if
|
||||
LAMMPS was built with that package. See the
|
||||
"Making LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
This command can only be used when "fix nvt/uef"_fix_nh_uef.html
|
||||
or "fix npt/uef"_fix_nh_uef.html is active.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"compute temp"_compute_temp.html,
|
||||
"fix nvt/uef"_fix_nh_uef.html,
|
||||
"compute pressure/uef"_compute_pressure_uef.html
|
||||
|
||||
|
||||
[Default:] none
|
||||
@ -30,6 +30,7 @@ Computes :h1
|
||||
compute_displace_atom
|
||||
compute_dpd
|
||||
compute_dpd_atom
|
||||
compute_edpd_temp_atom
|
||||
compute_erotate_asphere
|
||||
compute_erotate_rigid
|
||||
compute_erotate_sphere
|
||||
@ -64,6 +65,7 @@ Computes :h1
|
||||
compute_pe_atom
|
||||
compute_plasticity_atom
|
||||
compute_pressure
|
||||
compute_pressure_uef
|
||||
compute_property_atom
|
||||
compute_property_chunk
|
||||
compute_property_local
|
||||
@ -95,6 +97,7 @@ Computes :h1
|
||||
compute_sna_atom
|
||||
compute_stress_atom
|
||||
compute_tally
|
||||
compute_tdpd_cc_atom
|
||||
compute_temp
|
||||
compute_temp_asphere
|
||||
compute_temp_body
|
||||
@ -112,6 +115,7 @@ Computes :h1
|
||||
compute_temp_region_eff
|
||||
compute_temp_rotate
|
||||
compute_temp_sphere
|
||||
compute_temp_uef
|
||||
compute_ti
|
||||
compute_torque_chunk
|
||||
compute_vacf
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
:line
|
||||
|
||||
dihedral_style fourier command :h3
|
||||
dihedral_style fourier/intel command :h3
|
||||
dihedral_style fourier/omp command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
53
doc/src/dump_cfg_uef.txt
Normal file
@ -0,0 +1,53 @@
|
||||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
dump cfg/uef command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
dump ID group-ID cfg/uef N file mass type xs ys zs args :pre
|
||||
|
||||
ID = user-assigned name for the dump :ulb,l
|
||||
group-ID = ID of the group of atoms to be dumped :l
|
||||
N = dump every this many timesteps :l
|
||||
file = name of file to write dump info to :l
|
||||
args = same as args for "dump custom"_dump.html :pre
|
||||
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
dump 1 all cfg/uef 10 dump.*.cfg mass type xs ys zs
|
||||
dump 2 all cfg/uef 100 dump.*.cfg mass type xs ys zs id c_stress :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
This command is used to dump atomic coordinates in the
|
||||
reference frame of the applied flow field when
|
||||
"fix nvt/uef"_fix_nh_uef.html or
|
||||
"fix npt/uef"_fix_nh_uef.html or is used. Only the atomic
|
||||
coordinates and frame-invariant scalar quantities
|
||||
will be in the flow frame. If velocities are selected
|
||||
as output, for example, they will not be in the same
|
||||
reference frame as the atomic positions.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This fix is part of the USER-UEF package. It is only enabled if
|
||||
LAMMPS was built with that package. See the
|
||||
"Making LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
This command can only be used when "fix nvt/uef"_fix_nh_uef.html
|
||||
or "fix npt/uef"_fix_nh_uef.html is active.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"dump"_dump.html,
|
||||
"fix nvt/uef"_fix_nh_uef.html
|
||||
|
||||
[Default:] none
|
||||
@ -15,8 +15,9 @@ dump_modify dump-ID keyword values ... :pre
|
||||
dump-ID = ID of dump to modify :ulb,l
|
||||
one or more keyword/value pairs may be appended :l
|
||||
these keywords apply to various dump styles :l
|
||||
keyword = {append} or {buffer} or {element} or {every} or {fileper} or {first} or {flush} or {format} or {image} or {label} or {nfile} or {pad} or {precision} or {region} or {scale} or {sort} or {thresh} or {unwrap} :l
|
||||
{append} arg = {yes} or {no} or {at} N
|
||||
keyword = {append} or {at} or {buffer} or {element} or {every} or {fileper} or {first} or {flush} or {format} or {image} or {label} or {nfile} or {pad} or {precision} or {region} or {scale} or {sort} or {thresh} or {unwrap} :l
|
||||
{append} arg = {yes} or {no}
|
||||
{at} arg = N
|
||||
N = index of frame written upon first dump
|
||||
{buffer} arg = {yes} or {no}
|
||||
{element} args = E1 E2 ... EN, where N = # of atom types
|
||||
@ -141,13 +142,18 @@ and {dcd}. It also applies only to text output files, not to binary
|
||||
or gzipped or image/movie files. If specified as {yes}, then dump
|
||||
snapshots are appended to the end of an existing dump file. If
|
||||
specified as {no}, then a new dump file will be created which will
|
||||
overwrite an existing file with the same name. If the {at} option is present
|
||||
({netcdf} only), then the frame to append to can be specified. Negative values
|
||||
are counted from the end of the file. This keyword can only take effect if the
|
||||
dump_modify command is used after the "dump"_dump.html command, but before the
|
||||
first command that causes dump snapshots to be output, e.g. a "run"_run.html or
|
||||
"minimize"_minimize.html command. Once the dump file has been opened, this
|
||||
keyword has no further effect.
|
||||
overwrite an existing file with the same name.
|
||||
|
||||
:line
|
||||
|
||||
The {at} keyword only applies to the {netcdf} dump style. It can only
|
||||
be used if the {append yes} keyword is also used. The {N} argument is
|
||||
the index of which frame to append to. A negative value can be
|
||||
specified for {N}, which means a frame counted from the end of the
|
||||
file. The {at} keyword can only be used if the dump_modify command is
|
||||
before the first command that causes dump snapshots to be output,
|
||||
e.g. a "run"_run.html or "minimize"_minimize.html command. Once the
|
||||
dump file has been opened, this keyword has no further effect.
|
||||
|
||||
:line
|
||||
|
||||
|
||||
@ -25,7 +25,8 @@ args = list of atom attributes, same as for "dump_style custom"_dump.html :l,ule
|
||||
|
||||
dump 1 all netcdf 100 traj.nc type x y z vx vy vz
|
||||
dump_modify 1 append yes at -1 thermo yes
|
||||
dump 1 all netcdf/mpiio 1000 traj.nc id type x y z :pre
|
||||
dump 1 all netcdf/mpiio 1000 traj.nc id type x y z
|
||||
dump 1 all netcdf 1000 traj.*.nc id type x y z :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -73,4 +74,3 @@ section for more info.
|
||||
[Related commands:]
|
||||
|
||||
"dump"_dump.html, "dump_modify"_dump_modify.html, "undump"_undump.html
|
||||
|
||||
|
||||
@ -193,6 +193,7 @@ of "this page"_Section_commands.html#cmd_5.
|
||||
"halt"_fix_halt.html - terminate a dynamics run or minimization
|
||||
"heat"_fix_heat.html - add/subtract momentum-conserving heat
|
||||
"indent"_fix_indent.html - impose force due to an indenter
|
||||
"latte"_fix_latte.html - wrapper on LATTE density-functional tight-binding code
|
||||
"langevin"_fix_langevin.html - Langevin temperature control
|
||||
"lineforce"_fix_lineforce.html - constrain atoms to move in a line
|
||||
"momentum"_fix_momentum.html - zero the linear and/or angular momentum of a group of atoms
|
||||
|
||||
@ -139,6 +139,11 @@ forces added by this fix in a consistent manner. I.e. there is a
|
||||
decrease in potential energy when atoms move in the direction of the
|
||||
added force.
|
||||
|
||||
The "fix_modify"_fix_modify.html {virial} option is supported by this
|
||||
fix to add the contribution due to the added forces on atoms to the
|
||||
system's virial as part of "thermodynamic output"_thermo_style.html.
|
||||
The default is {virial no}
|
||||
|
||||
The "fix_modify"_fix_modify.html {respa} option is supported by this
|
||||
fix. This allows to set at which level of the "r-RESPA"_run_style.html
|
||||
integrator the fix is adding its forces. Default is the outermost
|
||||
|
||||
@ -150,10 +150,9 @@ atoms. Note that adding a single bond always adds a new 1st neighbor
|
||||
but may also induce *many* new 2nd and 3rd neighbors, depending on the
|
||||
molecular topology of your system. The "extra special per atom"
|
||||
parameter must typically be set to allow for the new maximum total
|
||||
size (1st + 2nd + 3rd neighbors) of this per-atom list. There are 3
|
||||
size (1st + 2nd + 3rd neighbors) of this per-atom list. There are 2
|
||||
ways to do this. See the "read_data"_read_data.html or
|
||||
"create_box"_create_box.html or "special_bonds extra" commands for
|
||||
details.
|
||||
"create_box"_create_box.html commands for details.
|
||||
|
||||
NOTE: Even if you do not use the {atype}, {dtype}, or {itype}
|
||||
keywords, the list of topological neighbors is updated for atoms
|
||||
|
||||
@ -97,6 +97,11 @@ The "fix_modify"_fix_modify.html {energy} option is supported by this
|
||||
fix to add the potential "energy" of the CMAP interactions system's
|
||||
potential energy as part of "thermodynamic output"_thermo_style.html.
|
||||
|
||||
The "fix_modify"_fix_modify.html {virial} option is supported by this
|
||||
fix to add the contribution due to the interaction between atoms to
|
||||
the system's virial as part of "thermodynamic output"_thermo_style.html.
|
||||
The default is {virial yes}
|
||||
|
||||
This fix computes a global scalar which can be accessed by various
|
||||
"output commands"_Section_howto.html#howto_15. The scalar is the
|
||||
potential energy discussed above. The scalar value calculated by this
|
||||
|
||||
@ -86,11 +86,16 @@ Change the volume and/or shape of the simulation box during a dynamics
|
||||
run. Orthogonal simulation boxes have 3 adjustable parameters
|
||||
(x,y,z). Triclinic (non-orthogonal) simulation boxes have 6
|
||||
adjustable parameters (x,y,z,xy,xz,yz). Any or all of them can be
|
||||
adjusted independently and simultaneously by this command. This fix
|
||||
can be used to perform non-equilibrium MD (NEMD) simulations of a
|
||||
continuously strained system. See the "fix
|
||||
adjusted independently and simultaneously by this command.
|
||||
|
||||
This fix can be used to perform non-equilibrium MD (NEMD) simulations
|
||||
of a continuously strained system. See the "fix
|
||||
nvt/sllod"_fix_nvt_sllod.html and "compute
|
||||
temp/deform"_compute_temp_deform.html commands for more details.
|
||||
temp/deform"_compute_temp_deform.html commands for more details. Note
|
||||
that simulation of a continuously extended system (extensional flow)
|
||||
can be modeled using the "USER-UEF
|
||||
package"_Section_packages.html#USER-UEF and its "fix
|
||||
commands"_fix_nh_uef.html.
|
||||
|
||||
For the {x}, {y}, {z} parameters, the associated dimension cannot be
|
||||
shrink-wrapped. For the {xy}, {yz}, {xz} parameters, the associated
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
:line
|
||||
|
||||
fix dpd/energy command :h3
|
||||
fix dpd/energy/kk command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
@ -46,6 +47,29 @@ examples/USER/dpd directory.
|
||||
|
||||
: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 command is part of the USER-DPD package. It is only enabled if
|
||||
|
||||
101
doc/src/fix_dpd_source.txt
Normal file
@ -0,0 +1,101 @@
|
||||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
fix edpd/source command :h3
|
||||
fix tdpd/source command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID edpd/source keyword values ...
|
||||
fix ID group-ID tdpd/source cc_index keyword values ... :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||||
edpd/source or tdpd/source = style name of this fix command :l
|
||||
index (only specified for tdpd/source) = index of chemical species (1 to Nspecies) :l
|
||||
keyword = {sphere} or {cuboid} :l
|
||||
{sphere} values = cx,cy,cz,radius,source
|
||||
cx,cy,cz = x,y,z center of spherical domain (distance units)
|
||||
radius = radius of a spherical domain (distance units)
|
||||
source = heat source or concentration source (flux units, see below)
|
||||
{cuboid} values = cx,cy,cz,dLx,dLy,dLz,source
|
||||
cx,cy,cz = x,y,z lower left corner of a cuboid domain (distance units)
|
||||
dLx,dLy,dLz = x,y,z side length of a cuboid domain (distance units)
|
||||
source = heat source or concentration source (flux units, see below) :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 1 all edpd/source sphere 0.0 0.0 0.0 5.0 0.01
|
||||
fix 1 all edpd/source cuboid 0.0 0.0 0.0 20.0 10.0 10.0 -0.01
|
||||
fix 1 all tdpd/source 1 sphere 5.0 0.0 0.0 5.0 0.01
|
||||
fix 1 all tdpd/source 2 cuboid 0.0 0.0 0.0 20.0 10.0 10.0 0.01 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Fix {edpd/source} adds a heat source as an external heat flux to each
|
||||
atom in a spherical or cuboid domain, where the {source} is in units
|
||||
of energy/time. Fix {tdpd/source} adds an external concentration
|
||||
source of the chemical species specified by {index} as an external
|
||||
concentration flux for each atom in a spherical or cuboid domain,
|
||||
where the {source} is in units of mole/volume/time.
|
||||
|
||||
This command can be used to give an additional heat/concentration
|
||||
source term to atoms in a simulation, such as for a simulation of a
|
||||
heat conduction with a source term (see Fig.12 in "(Li2014)"_#Li2014b)
|
||||
or diffusion with a source term (see Fig.1 in "(Li2015)"_#Li2015b), as
|
||||
an analog of a periodic Poiseuille flow problem.
|
||||
|
||||
If the {sphere} keyword is used, the {cx,cy,cz,radius} defines a
|
||||
spherical domain to apply the source flux to.
|
||||
|
||||
If the {cuboid} keyword is used, the {cx,cy,cz,dLx,dLy,dLz} defines a
|
||||
cuboid domain to apply the source flux to.
|
||||
|
||||
:line
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
No information about this fix is written to "binary restart
|
||||
files"_restart.html. None of the "fix_modify"_fix_modify.html options
|
||||
are relevant to this fix. No global or per-atom quantities are stored
|
||||
by this fix for access by various "output
|
||||
commands"_Section_howto.html#howto_15. No parameter of this fix can
|
||||
be used with the {start/stop} keywords of the "run"_run.html command.
|
||||
This fix is not invoked during "energy minimization"_minimize.html.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This fix 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.
|
||||
|
||||
Fix {edpd/source} must be used with the "pair_style
|
||||
edpd"_pair_meso.html command. Fix {tdpd/source} must be used with the
|
||||
"pair_style tdpd"_pair_meso.html command.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"pair_style edpd"_pair_meso.html, "pair_style tdpd"_pair_meso.html,
|
||||
"compute edpd/temp/atom"_compute_edpd_temp_atom.html, "compute
|
||||
tdpd/cc/atom"_compute_tdpd_cc_atom.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
:line
|
||||
|
||||
:link(Li2014b)
|
||||
[(Li2014)] Z. Li, Y.-H. Tang, H. Lei, B. Caswell and G.E. Karniadakis,
|
||||
"Energy-conserving dissipative particle dynamics with
|
||||
temperature-dependent properties", J. Comput. Phys., 265: 113-127
|
||||
(2014). DOI: 10.1016/j.jcp.2014.02.003
|
||||
|
||||
:link(Li2015b)
|
||||
[(Li2015)] Z. Li, A. Yazdani, A. Tartakovsky and G.E. Karniadakis,
|
||||
"Transport dissipative particle dynamics model for mesoscopic
|
||||
advection-diffusion-reaction problems", J. Chem. Phys., 143: 014101
|
||||
(2015). DOI: 10.1063/1.4923254
|
||||
@ -124,6 +124,11 @@ can include the forces added by this fix in a consistent manner.
|
||||
I.e. there is a decrease in potential energy when atoms move in the
|
||||
direction of the added force due to the electric field.
|
||||
|
||||
The "fix_modify"_fix_modify.html {virial} option is supported by this
|
||||
fix to add the contribution due to the added forces on atoms to the
|
||||
system's virial as part of "thermodynamic output"_thermo_style.html.
|
||||
The default is {virial no}
|
||||
|
||||
The "fix_modify"_fix_modify.html {respa} option is supported by this
|
||||
fix. This allows to set at which level of the "r-RESPA"_run_style.html
|
||||
integrator the fix adding its forces. Default is the outermost level.
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
:line
|
||||
|
||||
fix eos/table/rx command :h3
|
||||
fix eos/table/rx/kk command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
@ -152,6 +153,29 @@ no 0.93 0.00 0.000 -1.76 :pre
|
||||
|
||||
: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 command is part of the USER-DPD package. It is only enabled if
|
||||
|
||||
@ -131,6 +131,11 @@ forces added by this fix in a consistent manner. I.e. there is a
|
||||
decrease in potential energy when atoms move in the direction of the
|
||||
added force.
|
||||
|
||||
The "fix_modify"_fix_modify.html {virial} option is supported by this
|
||||
fix to add the contribution due to the interactions computed by the
|
||||
external program to the system's virial as part of "thermodynamic
|
||||
output"_thermo_style.html. The default is {virial yes}
|
||||
|
||||
This fix computes a global scalar which can be accessed by various
|
||||
"output commands"_Section_howto.html#howto_15. The scalar is the
|
||||
potential energy discussed above. The scalar stored by this fix
|
||||
|
||||
210
doc/src/fix_latte.txt
Normal file
@ -0,0 +1,210 @@
|
||||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
fix latte command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID latte peID :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command
|
||||
latte = style name of this fix command
|
||||
peID = NULL or ID of compute used to calculate per-atom energy :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix dftb all latte NULL :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
This fix style is a wrapper on the self-consistent charge transfer
|
||||
density functional based tight binding (DFTB) code LATTE. If you
|
||||
download and build LATTE, it can be called as a library by LAMMPS via
|
||||
this fix to run dynamics or perform energy minimization using DFTB
|
||||
forces and energies computed by LATTE.
|
||||
|
||||
LATTE is principally developed and supported by Marc Cawkwell and
|
||||
co-workers at Los Alamos National Laboratory (LANL). See the full
|
||||
list of contributors in the src/LATTE/README file.
|
||||
|
||||
To use this fix, the LATTE program needs to be compiled as a library
|
||||
and linked with LAMMPS. LATTE can be downloaded (or cloned) from
|
||||
"https://github.com/lanl/LATTE"_https://github.com/lanl/LATTE.
|
||||
Instructions on how to download and build LATTE on your system can be
|
||||
found in the lib/latte/README. Note that you can also use the "make
|
||||
lib-latte" command from the LAMMPS src directory to automate this
|
||||
process.
|
||||
|
||||
Once LAMMPS is built with the LATTE package, you can run the example
|
||||
input scripts for molecular dynamics or energy minimization that are
|
||||
found in examples/latte.
|
||||
|
||||
A step-by-step tutorial can be follwed at: "LAMMPS-LATTE
|
||||
tutorial"_https://github.com/lanl/LATTE/wiki/Using-LATTE-through-LAMMPS
|
||||
|
||||
The {peID} argument is not yet supported by fix latte, so it must be
|
||||
specified as NULL. Eventually it will be used to enable LAMMPS to
|
||||
calculate a Coulomb potential as an alternative to LATTE performing
|
||||
the calculation.
|
||||
|
||||
:line
|
||||
|
||||
LATTE is a code for performing self-consistent charge transfer
|
||||
tight-binding (SC-TB) calculations of total energies and the forces
|
||||
acting on atoms in molecules and solids. This tight-binding method is
|
||||
becoming more and more popular and widely used in chemistry,
|
||||
biochemistry, material science, etc.
|
||||
|
||||
The SC-TB formalism is derived from an expansion of the Kohn-Sham
|
||||
density functional to second order in charge fluctuations about a
|
||||
reference charge of overlapping atom-centered densities and bond
|
||||
integrals are parameterized using a Slater-Koster tight-binding
|
||||
approach. This procedure, which usually is referred to as the DFTB
|
||||
method has been described in detail by ("Elstner"_#Elstner) and
|
||||
("Finnis"_#Finnis2) and coworkers.
|
||||
|
||||
The work of the LATTE developers follows that of Elstner closely with
|
||||
respect to the physical model. However, the development of LATTE is
|
||||
geared principally toward large-scale, long duration, microcanonical
|
||||
quantum-based Born-Oppenheimer molecular dynamics (QMD) simulations.
|
||||
One of the main bottlenecks of an electronic structure calculation is
|
||||
the solution of the generalized eigenvalue problem which scales with
|
||||
the cube of the system size O(N^3).
|
||||
|
||||
The Theoretical and Computer sciences divisions at Los Alamos National
|
||||
Laboratory have accumulated large experience addressing this issue by
|
||||
calculating the density matrix directly instead of using
|
||||
diagonalization. We typically use a recursive sparse Fermi-operator
|
||||
expansion using second-order spectral projection functions
|
||||
(SP2-algorithm), which was introduced by Niklasson in 2002
|
||||
("Niklasson2002"_#Niklasson2002), ("Rubensson"_#Rubensson),
|
||||
("Mniszewski"_#Mniszewski). When the matrices involved in the
|
||||
recursive expansion are sufficiently sparse, the calculation of the
|
||||
density matrix scales linearly as a function of the system size O(N).
|
||||
|
||||
Another important feature is the extended Lagrangian framework for
|
||||
Born-Oppenheimer molecular dynamics (XL-BOMD)
|
||||
("Niklasson2008"_#Niklasson2008) ("Niklasson2014"_#Niklasson2014),
|
||||
("Niklasson2017"_#Niklasson2017) that allows for a drastic reduction
|
||||
or even a complete removal of the iterative self-consistent field
|
||||
optimization. Often only a single density matrix calculation per
|
||||
molecular dynamics time step is required, yet total energy stability
|
||||
is well maintained. The SP2 and XL-BOMD techniques enables stable
|
||||
linear scaling MD simulations with a very small computational
|
||||
overhead. This opens a number of opportunities in many different
|
||||
areas of chemistry and materials science, as we now can simulate
|
||||
larger system sizes and longer time scales
|
||||
("Cawkwell2012"_#Cawkwell2012), ("Negre2016"_#Negre2016).
|
||||
|
||||
:line
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
No information about this fix is written to "binary restart
|
||||
files"_restart.html.
|
||||
|
||||
The "fix_modify"_fix_modify.html {energy} option is supported by this
|
||||
fix to add the potential energy computed by LATTE to the system's
|
||||
potential energy as part of "thermodynamic output"_thermo_style.html.
|
||||
|
||||
The "fix_modify"_fix_modify.html {virial} option is supported by this
|
||||
fix to add the LATTE DFTB contribution to the system's virial as part
|
||||
of "thermodynamic output"_thermo_style.html. The default is {virial
|
||||
yes}
|
||||
|
||||
This fix computes a global scalar which can be accessed by various
|
||||
"output commands"_Section_howto.html#howto_15. The scalar is the
|
||||
potential energy discussed above. The scalar value calculated by this
|
||||
fix is "extensive".
|
||||
|
||||
No parameter of this fix can be used with the {start/stop} keywords of
|
||||
the "run"_run.html command.
|
||||
|
||||
The DFTB forces computed by LATTE via this fix are imposed during an
|
||||
energy minimization, invoked by the "minimize"_minimize.html command.
|
||||
|
||||
NOTE: If you want the potential energy associated with the DFTB
|
||||
forces to be included in the total potential energy of the system (the
|
||||
quantity being minimized), you MUST enable the
|
||||
"fix_modify"_fix_modify.html {energy} option for this fix.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This fix is part of the LATTE 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.
|
||||
|
||||
You must use metal units, as set by the "units"_units command to use
|
||||
this fix.
|
||||
|
||||
LATTE does not currently compute per-atom energy or per-atom virial
|
||||
contributions. So they will not show up as part of the calculations
|
||||
performed by the "compute pe/atom"_compute_pe_atom.html or "compute
|
||||
stress/atom"_compute_stress_atom.html commands.
|
||||
|
||||
Currently, LAMMPS must be run in serial or as a single MPI task, to
|
||||
use this fix. This is typically not a bottleneck, since LATTE will be
|
||||
doing 99% or more of the work to compute quantum-accurate forces.
|
||||
|
||||
NOTE: NEB calculations can be done using this fix using multiple
|
||||
replicas and running LAMMPS in parallel. However, each replica must
|
||||
be run on a single MPI task. For details, see the "neb"_neb.html
|
||||
command and -partition command-line explained in "Section
|
||||
2.6"_Section_start.html#start_6 of the manual.
|
||||
|
||||
[Related commands:] none
|
||||
|
||||
[Default:] none
|
||||
|
||||
:line
|
||||
|
||||
:link(Elstner)
|
||||
[(Elstner)] M. Elstner, D. Poresag, G. Jungnickel, J. Elsner,
|
||||
M. Haugk, T. Frauenheim, S. Suhai, and G. Seifert, Phys. Rev. B, 58,
|
||||
7260 (1998).
|
||||
|
||||
:link(Elstner1)
|
||||
[(Elstner)] M. Elstner, D. Poresag, G. Jungnickel, J. Elsner,
|
||||
M. Haugk, T. Frauenheim, S. Suhai, and G. Seifert, Phys. Rev. B, 58,
|
||||
7260 (1998).
|
||||
|
||||
:link(Finnis2)
|
||||
[(Finnis)] M. W. Finnis, A. T. Paxton, M. Methfessel, and M. van
|
||||
Schilfgarde, Phys. Rev. Lett., 81, 5149 (1998).
|
||||
|
||||
:link(Mniszewski)
|
||||
[(Mniszewski)] S. M. Mniszewski, M. J. Cawkwell, M. E. Wall,
|
||||
J. Mohd-Yusof, N. Bock, T. C. Germann, and A. M. N. Niklasson,
|
||||
J. Chem. Theory Comput., 11, 4644 (2015).
|
||||
|
||||
:link(Niklasson2002)
|
||||
[(Niklasson2002)] A. M. N. Niklasson, Phys. Rev. B, 66, 155115 (2002).
|
||||
|
||||
:link(Rubensson)
|
||||
[(Rubensson)] E. H. Rubensson, A. M. N. Niklasson, SIAM
|
||||
J. Sci. Comput. 36 (2), 147-170, (2014).
|
||||
|
||||
:link(Niklasson2008)
|
||||
[(Niklasson2008)] A. M. N. Niklasson, Phys. Rev. Lett., 100, 123004
|
||||
(2008).
|
||||
|
||||
:link(Niklasson2014)
|
||||
[(Niklasson2014)] A. M. N. Niklasson and M. Cawkwell, J. Chem. Phys.,
|
||||
141, 164123, (2014).
|
||||
|
||||
:link(Niklasson2017)
|
||||
[(Niklasson2017)] A. M. N. Niklasson, J. Chem. Phys., 147, 054103 (2017).
|
||||
|
||||
:link(Cawkwell2012)
|
||||
[(Cawkwell2012)] A. M. N. Niklasson, M. J. Cawkwell, Phys. Rev. B, 86
|
||||
(17), 174308 (2012).
|
||||
|
||||
:link(Negre2016)
|
||||
[(Negre2016)] C. F. A. Negre, S. M. Mniszewski, M. J. Cawkwell,
|
||||
N. Bock, M. E. Wall, and A. M. N. Niklasson, J. Chem. Theory Comp.,
|
||||
12, 3063 (2016).
|
||||
@ -14,10 +14,11 @@ fix_modify fix-ID keyword value ... :pre
|
||||
|
||||
fix-ID = ID of the fix to modify :ulb,l
|
||||
one or more keyword/value pairs may be appended :l
|
||||
keyword = {temp} or {press} or {energy} or {respa} or {dynamic/dof} :l
|
||||
keyword = {temp} or {press} or {energy} or {virial} or {respa} or {dynamic/dof} :l
|
||||
{temp} value = compute ID that calculates a temperature
|
||||
{press} value = compute ID that calculates a pressure
|
||||
{energy} value = {yes} or {no}
|
||||
{virial} value = {yes} or {no}
|
||||
{respa} value = {1} to {max respa level} or {0} (for outermost level)
|
||||
{dynamic/dof} value = {yes} or {no}
|
||||
yes/no = do or do not recompute the number of degrees of freedom (DOF) contributing to the temperature :pre
|
||||
@ -52,11 +53,10 @@ define their own compute by default, as described in their
|
||||
documentation. Thus this option allows the user to override the
|
||||
default method for computing P.
|
||||
|
||||
For fixes that calculate a contribution to the potential energy of the
|
||||
system, the {energy} keyword will include that contribution in
|
||||
thermodynamic output of potential energy. This is because the {energy
|
||||
yes} setting must be specified to include the fix's global or per-atom
|
||||
energy in the calculation performed by the "compute
|
||||
The {energy} keyword can be used with fixes that support it.
|
||||
{energy yes} adds a contribution to the potential energy of the
|
||||
system. The fix's global and per-atom
|
||||
energy is included in the calculation performed by the "compute
|
||||
pe"_compute_pe.html or "compute pe/atom"_compute_pe_atom.html
|
||||
commands. See the "thermo_style"_thermo_style.html command for info
|
||||
on how potential energy is output. For fixes that tally a global
|
||||
@ -69,6 +69,25 @@ are using it when performing an "energy minimization"_minimize.html
|
||||
and if you want the energy and forces it produces to be part of the
|
||||
optimization criteria.
|
||||
|
||||
The {virial} keyword can be used with fixes that support it.
|
||||
{virial yes} adds a contribution to the virial of the
|
||||
system. The fix's global and per-atom
|
||||
virial is included in the calculation performed by the "compute
|
||||
pressure"_compute_pressure.html or
|
||||
"compute stress/atom"_compute_stress_atom.html
|
||||
commands. See the "thermo_style"_thermo_style.html command for info
|
||||
on how pressure is output.
|
||||
|
||||
NOTE: You must specify the {virial yes} setting for a fix if you
|
||||
are doing "box relaxation"_fix_box_relax.html and
|
||||
if you want virial contribution of the fix to be part of the
|
||||
relaxation criteria, although this seems unlikely.
|
||||
|
||||
NOTE: This option is only supported by fixes that explicitly say
|
||||
so. For some of these (e.g. the
|
||||
"fix shake"_fix_shake.html command) the default setting is
|
||||
{virial yes}, for others it is {virial no}.
|
||||
|
||||
For fixes that set or modify forces, it may be possible to select at
|
||||
which "r-RESPA"_run_style.html level the fix operates via the {respa}
|
||||
keyword. The RESPA level at which the fix is active can be selected.
|
||||
@ -111,4 +130,4 @@ pressure"_compute_pressure.html, "thermo_style"_thermo_style.html
|
||||
[Default:]
|
||||
|
||||
The option defaults are temp = ID defined by fix, press = ID defined
|
||||
by fix, energy = no, respa = 0.
|
||||
by fix, energy = no, virial = different for each fix style, respa = 0.
|
||||
|
||||
97
doc/src/fix_mvv_dpd.txt
Normal file
@ -0,0 +1,97 @@
|
||||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
fix mvv/dpd command :h3
|
||||
fix mvv/edpd command :h3
|
||||
fix mvv/tdpd command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID mvv/dpd lambda :pre
|
||||
fix ID group-ID mvv/edpd lambda :pre
|
||||
fix ID group-ID mvv/tdpd lambda :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command
|
||||
mvv/dpd, mvv/edpd, mvv/tdpd = style name of this fix command
|
||||
lambda = (optional) relaxation parameter (unitless) :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 1 all mvv/dpd
|
||||
fix 1 all mvv/dpd 0.5
|
||||
fix 1 all mvv/edpd
|
||||
fix 1 all mvv/edpd 0.5
|
||||
fix 1 all mvv/tdpd
|
||||
fix 1 all mvv/tdpd 0.5 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Perform time integration using the modified velocity-Verlet (MVV)
|
||||
algorithm to update position and velocity (fix mvv/dpd), or position,
|
||||
velocity and temperature (fix mvv/edpd), or position, velocity and
|
||||
concentration (fix mvv/tdpd) for particles in the group each timestep.
|
||||
|
||||
The modified velocity-Verlet (MVV) algorithm aims to improve the
|
||||
stability of the time integrator by using an extrapolated version of
|
||||
the velocity for the force evaluation:
|
||||
|
||||
:c,image(Eqs/fix_mvv_dpd.jpg)
|
||||
|
||||
where the parameter <font size="4">λ</font> depends on the
|
||||
specific choice of DPD parameters, and needs to be tuned on a
|
||||
case-by-case basis. Specification of a {lambda} value is opttional.
|
||||
If specified, the setting must be from 0.0 to 1.0. If not specified,
|
||||
a default value of 0.5 is used, which effectively reproduces the
|
||||
standard velocity-Verlet (VV) scheme. For more details, see
|
||||
"Groot"_#Groot2.
|
||||
|
||||
Fix {mvv/dpd} updates the position and velocity of each atom. It can
|
||||
be used with the "pair_style mdpd"_pair_meso.html command or other
|
||||
pair styles such as "pair dpd"_pair_dpd.html.
|
||||
|
||||
Fix {mvv/edpd} updates the per-atom temperature, in addition to
|
||||
position and velocity, and must be used with the "pair_style
|
||||
edpd"_pair_meso.html command.
|
||||
|
||||
Fix {mvv/tdpd} updates the per-atom chemical concentration, in
|
||||
addition to position and velocity, and must be used with the
|
||||
"pair_style tdpd"_pair_meso.html command.
|
||||
|
||||
:line
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
No information about this fix is written to "binary restart
|
||||
files"_restart.html. None of the "fix_modify"_fix_modify.html options
|
||||
are relevant to this fix. No global or per-atom quantities are stored
|
||||
by this fix for access by various "output
|
||||
commands"_Section_howto.html#howto_15. No parameter of this fix can
|
||||
be used with the {start/stop} keywords of the "run"_run.html command.
|
||||
This fix is not invoked during "energy minimization"_minimize.html.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This fix 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 mdpd"_pair_meso.html, "pair_style edpd"_pair_meso.html,
|
||||
"pair_style tdpd"_pair_meso.html
|
||||
|
||||
[Default:]
|
||||
|
||||
The default value for the optional {lambda} parameter is 0.5.
|
||||
|
||||
:line
|
||||
|
||||
:link(Groot2)
|
||||
[(Groot)] Groot and Warren, J Chem Phys, 107: 4423-4435 (1997). DOI:
|
||||
10.1063/1.474784
|
||||
|
||||
@ -93,7 +93,7 @@ intermediate replica with the previous and the next image:
|
||||
|
||||
Fnudge_parallel = {Kspring} * (|Ri+1 - Ri| - |Ri - Ri-1|) :pre
|
||||
|
||||
Note that in this case the specified {Kspring) is in force/distance
|
||||
Note that in this case the specified {Kspring} is in force/distance
|
||||
units.
|
||||
|
||||
With a value of {ideal}, the spring force is computed as suggested in
|
||||
@ -105,7 +105,7 @@ where RD is the "reaction coordinate" see "neb"_neb.html section, and
|
||||
RDideal is the ideal RD for which all the images are equally spaced.
|
||||
I.e. RDideal = (I-1)*meanDist when the climbing replica is off, where
|
||||
I is the replica number). The meanDist is the average distance
|
||||
between replicas. Note that in this case the specified {Kspring) is
|
||||
between replicas. Note that in this case the specified {Kspring} is
|
||||
in force units.
|
||||
|
||||
Note that the {ideal} form of nudging can often be more effective at
|
||||
|
||||
@ -393,32 +393,36 @@ thermostatting and barostatting.
|
||||
:line
|
||||
|
||||
These fixes compute a temperature and pressure each timestep. To do
|
||||
this, the fix creates its own computes of style "temp" and "pressure",
|
||||
as if one of these two sets of commands had been issued:
|
||||
this, the thermostat and barostat fixes create their own computes of
|
||||
style "temp" and "pressure", as if one of these sets of commands had
|
||||
been issued:
|
||||
|
||||
For fix nvt:
|
||||
compute fix-ID_temp group-ID temp
|
||||
compute fix-ID_press group-ID pressure fix-ID_temp :pre
|
||||
|
||||
For fix npt and fix nph:
|
||||
compute fix-ID_temp all temp
|
||||
compute fix-ID_press all pressure fix-ID_temp :pre
|
||||
|
||||
See the "compute temp"_compute_temp.html and "compute
|
||||
pressure"_compute_pressure.html commands for details. Note that the
|
||||
IDs of the new computes are the fix-ID + underscore + "temp" or fix_ID
|
||||
+ underscore + "press". For fix nvt, the group for the new computes
|
||||
is the same as the fix group. For fix nph and fix npt, the group for
|
||||
the new computes is "all" since pressure is computed for the entire
|
||||
system.
|
||||
For fix nvt, the group for the new temperature compute is the same as
|
||||
the fix group. For fix npt and fix nph, the group for both the new
|
||||
temperature and pressure compute is "all" since pressure is computed
|
||||
for the entire system. In the case of fix nph, the temperature
|
||||
compute is not used for thermostatting, but just for a kinetic-energy
|
||||
contribution to the pressure. See the "compute
|
||||
temp"_compute_temp.html and "compute pressure"_compute_pressure.html
|
||||
commands for details. Note that the IDs of the new computes are the
|
||||
fix-ID + underscore + "temp" or fix_ID + underscore + "press".
|
||||
|
||||
Note that these are NOT the computes used by thermodynamic output (see
|
||||
the "thermo_style"_thermo_style.html command) with ID = {thermo_temp}
|
||||
and {thermo_press}. This means you can change the attributes of this
|
||||
and {thermo_press}. This means you can change the attributes of these
|
||||
fix's temperature or pressure via the
|
||||
"compute_modify"_compute_modify.html command or print this temperature
|
||||
or pressure during thermodynamic output via the "thermo_style
|
||||
custom"_thermo_style.html command using the appropriate compute-ID.
|
||||
It also means that changing attributes of {thermo_temp} or
|
||||
{thermo_press} will have no effect on this fix.
|
||||
"compute_modify"_compute_modify.html command. Or you can print this
|
||||
temperature or pressure during thermodynamic output via the
|
||||
"thermo_style custom"_thermo_style.html command using the appropriate
|
||||
compute-ID. It also means that changing attributes of {thermo_temp}
|
||||
or {thermo_press} will have no effect on this fix.
|
||||
|
||||
Like other fixes that perform thermostatting, fix nvt and fix npt can
|
||||
be used with "compute commands"_compute.html that calculate a
|
||||
|
||||
228
doc/src/fix_nh_uef.txt
Normal file
@ -0,0 +1,228 @@
|
||||
<"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
fix nvt/uef command :h3
|
||||
fix npt/uef command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID style_name erate edot_x edot_y temp Tstart Tstop Tdamp keyword value ... :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||||
style_name = {nvt/uef} or {npt/uef} :l
|
||||
{Tstart}, {Tstop}, and {Tdamp} are documented in the "fix npt"_fix_nh.html command :l
|
||||
{edot_x} and {edot_y} are the strain rates in the x and y directions (1/(time units)) :l
|
||||
one or more keyword/value pairs may be appended :l
|
||||
keyword = {ext} or {strain} or {iso} or {x} or {y} or {z} or {tchain} or {pchain} or {tloop} or {ploop} or {mtk}
|
||||
{ext} value = {x} or {y} or {z} or {xy} or {yz} or {xz} = external dimensions
|
||||
sets the external dimensions used to calculate the scalar pressure
|
||||
{strain} values = e_x e_y = initial strain
|
||||
usually not needed, but may be needed to resume a run with a data file.
|
||||
{iso}, {x}, {y}, {z}, {tchain}, {pchain}, {tloop}, {ploop}, {mtk} keywords
|
||||
documented by the "fix npt"_fix_nh.html command :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix uniax_nvt all nvt/uef temp 400 400 100 erate 0.00001 -0.000005
|
||||
fix biax_nvt all nvt/uef temp 400 400 100 erate 0.000005 0.000005
|
||||
fix uniax_npt all npt/uef temp 400 400 300 iso 1 1 3000 erate 0.00001 -0.000005 ext yz
|
||||
fix biax_npt all npt/uef temp 400 400 100 erate -0.00001 0.000005 x 1 1 3000 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
This fix can be used to simulate non-equilibrium molecular dynamics
|
||||
(NEMD) under diagonal flow fields, including uniaxial and biaxial
|
||||
flow. Simulations under continuous extensional flow may be carried
|
||||
out for an indefinite amount of time. It is an implementation of the
|
||||
boundary conditions from "(Dobson)"_#Dobson, and also uses numerical
|
||||
lattice reduction as was proposed by "(Hunt)"_#Hunt. The lattice
|
||||
reduction algorithm is from "(Semaev)"_Semaev. The fix is intended for
|
||||
simulations of homogeneous flows, and integrates the SLLOD equations
|
||||
of motion, originally proposed by Hoover and Ladd (see "(Evans and
|
||||
Morriss)"_#Sllod). Additional detail about this implementation can be
|
||||
found in "(Nicholson and Rutledge)"_#Nicholson.
|
||||
|
||||
Note that NEMD simulations of a continuously strained system can be
|
||||
performed using the "fix deform"_fix_deform.html, "fix
|
||||
nvt/sllod"_fix_nvt_sllod.html, and "compute
|
||||
temp/deform"_compute_temp_deform.html commands.
|
||||
|
||||
The applied flow field is set by the {eps} keyword. The values
|
||||
{edot_x} and {edot_y} correspond to the strain rates in the xx and yy
|
||||
directions. It is implicitly assumed that the flow field is
|
||||
traceless, and therefore the strain rate in the zz direction is eqal
|
||||
to -({edot_x} + {edot_y}).
|
||||
|
||||
NOTE: Due to an instability in the SLLOD equations under extension,
|
||||
"fix momentum"_fix_momentum.html should be used to regularly reset the
|
||||
linear momentum.
|
||||
|
||||
The boundary conditions require a simulation box that does not have a
|
||||
consistent alignment relative to the applied flow field. Since LAMMPS
|
||||
utilizes an upper-triangular simulation box, it is not possible to
|
||||
express the evolving simulation box in the same coordinate system as
|
||||
the flow field. This fix keeps track of two coordinate systems: the
|
||||
flow frame, and the upper triangular LAMMPS frame. The coordinate
|
||||
systems are related to each other through the QR decomposition, as is
|
||||
illustrated in the image below.
|
||||
|
||||
:c,image(JPG/uef_frames.jpg)
|
||||
|
||||
During most molecular dynamics operations, the system is represented
|
||||
in the LAMMPS frame. Only when the positions and velocities are
|
||||
updated is the system rotated to the flow frame, and it is rotated
|
||||
back to the LAMMPS frame immediately afterwards. For this reason, all
|
||||
vector-valued quantities (except for the tensors from
|
||||
"compute_pressure/uef"_compute_pressure_uef.html and
|
||||
"compute_temp/uef"_compute_temp_uef.html) will be computed in the
|
||||
LAMMPS frame. Rotationally invariant scalar quantities like the
|
||||
temperature and hydrostatic pressure are frame-invariant and will be
|
||||
computed correctly. Additionally, the system is in the LAMMPS frame
|
||||
during all of the output steps, and therefore trajectory files made
|
||||
using the dump command will be in the LAMMPS frame unless the
|
||||
"dump_cfg/uef"_dump_cfg_uef.html command is used.
|
||||
|
||||
:line
|
||||
|
||||
Temperature control is achieved with the default Nose-Hoover style
|
||||
thermostat documented in "fix npt"_fix_nh.html. When this fix is
|
||||
active, only the peculiar velocity of each atom is stored, defined as
|
||||
the velocity relative to the streaming velocity. This is in contrast
|
||||
to "fix nvt/sllod"_fix_nvt_sllod.html, which uses a lab-frame
|
||||
velocity, and removes the contribution from the streaming velocity in
|
||||
order to compute the temperature.
|
||||
|
||||
Pressure control is achieved using the default Nose-Hoover barostat
|
||||
documented in "fix npt"_fix_nh.html. There are two ways to control the
|
||||
pressure using this fix. The first method involves using the {ext}
|
||||
keyword along with the {iso} pressure style. With this method, the
|
||||
pressure is controlled by scaling the simulation box isotropically to
|
||||
achieve the average pressure only in the directions specified by
|
||||
{ext}. For example, if the {ext} value is set to {xy}, the average
|
||||
pressure (Pxx+Pyy)/2 will be controlled.
|
||||
|
||||
This example command will control the total hydrostatic pressure under
|
||||
uniaxial tension:
|
||||
|
||||
fix f1 all npt/uef temp 0.7 0.7 0.5 iso 1 1 5 erate -0.5 -0.5 ext xyz :pre
|
||||
|
||||
This example command will control the average stress in compression
|
||||
directions, which would typically correspond to free surfaces under
|
||||
drawing with uniaxial tension:
|
||||
|
||||
fix f2 all npt/uef temp 0.7 0.7 0.5 iso 1 1 5 erate -0.5 -0.5 ext xy :pre
|
||||
|
||||
The second method for pressure control involves setting the normal
|
||||
stresses using the {x}, {y} , and/or {z} keywords. When using this
|
||||
method, the same pressure must be specified via {Pstart} and {Pstop}
|
||||
for all dimensions controlled. Any choice of pressure conditions that
|
||||
would cause LAMMPS to compute a deviatoric stress are not permissible
|
||||
and will result in an error. Additionally, all dimensions with
|
||||
controlled stress must have the same applied strain rate. The {ext}
|
||||
keyword must be set to the default value ({xyz}) when using this
|
||||
method.
|
||||
|
||||
For example, the following commands will work:
|
||||
|
||||
fix f3 all npt/uef temp 0.7 0.7 0.5 x 1 1 5 y 1 1 5 erate -0.5 -0.5
|
||||
fix f4 all npt/uef temp 0.7 0.7 0.5 z 1 1 5 erate 0.5 0.5 :pre
|
||||
|
||||
The following commands will not work:
|
||||
|
||||
fix f5 all npt/uef temp 0.7 0.7 0.5 x 1 1 5 z 1 1 5 erate -0.5 -0.5
|
||||
fix f6 all npt/uef temp 0.7 0.7 0.5 x 1 1 5 z 2 2 5 erate 0.5 0.5 :pre
|
||||
|
||||
:line
|
||||
|
||||
These fix computes a temperature and pressure each timestep. To do
|
||||
this, it creates its own computes of style "temp/uef" and
|
||||
"pressure/uef", as if one of these two sets of commands had been
|
||||
issued:
|
||||
|
||||
compute fix-ID_temp group-ID temp/uef
|
||||
compute fix-ID_press group-ID pressure/uef fix-ID_temp :pre
|
||||
|
||||
compute fix-ID_temp all temp/uef
|
||||
compute fix-ID_press all pressure/uef fix-ID_temp :pre
|
||||
|
||||
See the "compute temp/uef"_compute_temp_uef.html and "compute
|
||||
pressure/uef"_compute_pressure_uef.html commands for details. Note
|
||||
that the IDs of the new computes are the fix-ID + underscore + "temp"
|
||||
or fix_ID + underscore + "press".
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
The fix writes the state of all the thermostat and barostat variables,
|
||||
as well as the cumulative strain applied, to "binary restart
|
||||
files"_restart.html. See the "read_restart"_read_restart.html command
|
||||
for info on how to re-specify a fix in an input script that reads a
|
||||
restart file, so that the operation of the fix continues in an
|
||||
uninterrupted fashion.
|
||||
|
||||
NOTE: It is not necessary to set the {strain} keyword when resuming a
|
||||
run from a restart file. Only for resuming from data files, which do
|
||||
not contain the cumulative applied strain, will this keyword be
|
||||
necessary.
|
||||
|
||||
This fix can be used with the "fix_modify"_fix_modify.html {temp} and
|
||||
{press} options. The temperature and pressure computes used must be of
|
||||
type {temp/uef} and {pressure/uef}.
|
||||
|
||||
This fix computes the same global scalar and vecor quantities as "fix
|
||||
npt"_fix_nh.html.
|
||||
|
||||
The fix is not invoked during "energy minimization"_minimize.html.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This fix is part of the USER-UEF 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.
|
||||
|
||||
Due to requirements of the boundary conditions, when the {strain}
|
||||
keyword is set to zero (or unset), the initial simulation box must be
|
||||
cubic and have style triclinic. If the box is initially of type ortho,
|
||||
use "change_box"_change_box.html before invoking the fix.
|
||||
|
||||
NOTE: When resuming from restart files, you may need to use "box tilt
|
||||
large"_box.html since lammps has internal criteria from lattice
|
||||
reduction that are not the same as the criteria in the numerical
|
||||
lattice reduction algorithm.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"fix nvt"_fix_nh.html, "fix nvt/sllod"_fix_nvt_sllod.html, "compute
|
||||
temp/uef"_compute_temp_uef.html, "compute
|
||||
pressure/uef"_compute_pressure_uef.html, "dump
|
||||
cfg/uef"_dump_cfg_uef.html
|
||||
|
||||
[Default:]
|
||||
|
||||
The default keyword values specific to this fix are exy = xyz, strain
|
||||
= 0 0. The remaining defaults are the same as for {fix
|
||||
npt}_fix_nh.html except tchain = 1. The reason for this change is
|
||||
given in "fix nvt/sllod"_fix_nvt_sllod.html.
|
||||
|
||||
:line
|
||||
|
||||
:link(Dobson)
|
||||
[(Dobson)] Dobson, J Chem Phys, 141, 184103 (2014).
|
||||
|
||||
:link(Hunt)
|
||||
[(Hunt)] Hunt, Mol Simul, 42, 347 (2016).
|
||||
|
||||
:link(Semaev)
|
||||
[(Semaev)] Semaev, Cryptography and Lattices, 181 (2001).
|
||||
|
||||
:link(Sllod)
|
||||
[(Evans and Morriss)] Evans and Morriss, Phys Rev A, 30, 1528 (1984).
|
||||
|
||||
:link(Nicholson)
|
||||
[(Nicholson and Rutledge)] Nicholson and Rutledge, J Chem Phys, 145,
|
||||
244903 (2016).
|
||||
@ -44,7 +44,7 @@ A technical report with more information on this integrator can be found
|
||||
[Restrictions:]
|
||||
|
||||
These pair styles can only be used if LAMMPS was built with the
|
||||
USER-CGDNA package and the MOLECULE and ASPHERE package. See the "Making
|
||||
"USER-CGDNA"_#USER-CGDNA package and the MOLECULE and ASPHERE package. See the "Making
|
||||
LAMMPS"_Section_start.html#start_3 section for more info on packages.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
@ -24,7 +24,8 @@ keyword = {angmom} :l
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 1 all nve/dotc/langevin 1.0 1.0 0.03 457145 angmom 10 :pre
|
||||
fix 1 all nve/dotc/langevin 1.0 1.0 0.03 457145 angmom 10
|
||||
fix 1 all nve/dotc/langevin 0.1 0.1 78.9375 457145 angmom 10 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -78,7 +79,9 @@ a Gaussian random number) for speed.
|
||||
:line
|
||||
|
||||
{Tstart} and {Tstop} have to be constant values, i.e. they cannot
|
||||
be variables.
|
||||
be variables. If used together with the oxDNA force field for
|
||||
coarse-grained simulation of DNA please note that T = 0.1 in oxDNA units
|
||||
corresponds to T = 300 K.
|
||||
|
||||
The {damp} parameter is specified in time units and determines how
|
||||
rapidly the temperature is relaxed. For example, a value of 0.03
|
||||
@ -89,6 +92,10 @@ viscosity of the solvent, i.e. a small relaxation time implies a
|
||||
hi-viscosity solvent and vice versa. See the discussion about gamma
|
||||
and viscosity in the documentation for the "fix
|
||||
viscous"_fix_viscous.html command for more details.
|
||||
Note that the value 78.9375 in the second example above corresponds
|
||||
to a diffusion constant, which is about an order of magnitude larger
|
||||
than realistic ones. This has been used to sample configurations faster
|
||||
in Brownian dynamics simulations.
|
||||
|
||||
The random # {seed} must be a positive integer. A Marsaglia random
|
||||
number generator is used. Each processor uses the input seed to
|
||||
@ -115,12 +122,12 @@ A technical report with more information on this integrator can be found
|
||||
[Restrictions:]
|
||||
|
||||
These pair styles can only be used if LAMMPS was built with the
|
||||
USER-CGDNA package and the MOLECULE and ASPHERE package. See the "Making
|
||||
"USER-CGDNA"_#USER-CGDNA package and the MOLECULE and ASPHERE package. See the "Making
|
||||
LAMMPS"_Section_start.html#start_3 section for more info on packages.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"fix nve"_fix_nve.html, "fix langevin"_fix_langevin.html, "fix nve/dot"_fix_nve_dot.html,
|
||||
"fix nve"_fix_nve.html, "fix langevin"_fix_langevin.html, "fix nve/dot"_fix_nve_dot.html, "bond_style oxdna/fene"_bond_oxdna.html, "bond_style oxdna2/fene"_bond_oxdna.html, "pair_style oxdna/excv"_pair_oxdna.html, "pair_style oxdna2/excv"_pair_oxdna2.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
|
||||
@ -90,9 +90,14 @@ file specified by {qfile}. The file has the following format
|
||||
...
|
||||
Ntype chi eta gamma zeta qcore :pre
|
||||
|
||||
There is one line per atom type with the following parameters.
|
||||
There have to be parameters given for every atom type. Wildcard entries
|
||||
are possible using the same syntax as elsewhere in LAMMPS
|
||||
(i.e., n*m, n*, *m, *). Later entries will overwrite previous ones.
|
||||
Empty lines or any text following the pound sign (#) are ignored.
|
||||
Each line starts with the atom type followed by five parameters.
|
||||
Only a subset of the parameters is used by each QEq style as described
|
||||
below, thus the others can be set to 0.0 if desired.
|
||||
below, thus the others can be set to 0.0 if desired, but all five
|
||||
entries per line are required.
|
||||
|
||||
{chi} = electronegativity in energy units
|
||||
{eta} = self-Coulomb potential in energy units
|
||||
|
||||
56
doc/src/fix_rhok.txt
Normal file
@ -0,0 +1,56 @@
|
||||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
fix rhok command :h3
|
||||
|
||||
fix ID group-ID rhok nx ny nz K a :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command
|
||||
nx, ny, nz = k-vektor of collective density field
|
||||
K = spring constant of bias potential
|
||||
a = anchor point of bias potential :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix bias all rhok 16 0 0 4.0 16.0
|
||||
fix 1 all npt temp 0.8 0.8 4.0 z 2.2 2.2 8.0
|
||||
# output of 4 values from fix rhok: U_bias rho_k_RE rho_k_IM |rho_k|
|
||||
thermo_style custom step temp pzz lz f_bias f_bias\[1\] f_bias\[2\] f_bias\[3\] :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
The fix applies a force to atoms given by the potential
|
||||
|
||||
:c,image(Eqs/fix_rhok.jpg)
|
||||
|
||||
as described in "(Pedersen)"_#Pedersen.
|
||||
|
||||
This field, which biases configurations with long-range order, can be
|
||||
used to study crystal-liquid interfaces and determine melting
|
||||
temperatures "(Pedersen)"_#Pedersen.
|
||||
|
||||
An example of using the interface pinning method is located in the
|
||||
{examples/USER/misc/rhok} directory.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This fix is part of the MISC package. It is only enabled if LAMMPS
|
||||
was built with that package. See the "Making
|
||||
LAMMPS"_Section_start.html#start_3 section for more info.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"thermo_style"_thermo_style.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
:line
|
||||
|
||||
:link(Pedersen)
|
||||
[(Pedersen)] Pedersen, J. Chem. Phys., 139, 104102 (2013).
|
||||
|
||||
@ -26,6 +26,9 @@ style = {rigid} or {rigid/nve} or {rigid/nvt} or {rigid/npt} or {rigid/nph} or {
|
||||
bodystyle = {single} or {molecule} or {group} :l
|
||||
{single} args = none
|
||||
{molecule} args = none
|
||||
{custom} args = {i_propname} or {v_varname}
|
||||
i_propname = an integer property defined via fix property/atom
|
||||
v_varname = an atom-style or atomfile-style variable
|
||||
{group} args = N groupID1 groupID2 ...
|
||||
N = # of groups
|
||||
groupID1, groupID2, ... = list of N group IDs :pre
|
||||
@ -80,6 +83,16 @@ fix 1 rods rigid/npt molecule temp 300.0 300.0 100.0 iso 0.5 0.5 10.0
|
||||
fix 1 particles rigid/npt molecule temp 1.0 1.0 5.0 x 0.5 0.5 1.0 z 0.5 0.5 1.0 couple xz
|
||||
fix 1 water rigid/nph molecule iso 0.5 0.5 1.0
|
||||
fix 1 particles rigid/npt/small molecule temp 1.0 1.0 1.0 iso 0.5 0.5 1.0 :pre
|
||||
|
||||
variable bodyid atom 1.0*gmask(clump1)+2.0*gmask(clump2)+3.0*gmask(clump3)
|
||||
fix 1 clump rigid custom v_bodyid :pre
|
||||
|
||||
variable bodyid atomfile bodies.txt
|
||||
fix 1 clump rigid custom v_bodyid :pre
|
||||
|
||||
fix 0 all property/atom i_bodyid
|
||||
read_restart data.rigid fix 0 NULL Bodies
|
||||
fix 1 clump rigid/small custom i_bodyid :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -100,7 +113,7 @@ of a biomolecule such as a protein.
|
||||
|
||||
Example of small rigid bodies are patchy nanoparticles, such as those
|
||||
modeled in "this paper"_#Zhang1 by Sharon Glotzer's group, clumps of
|
||||
granular particles, lipid molecules consiting of one or more point
|
||||
granular particles, lipid molecules consisting of one or more point
|
||||
dipoles connected to other spheroids or ellipsoids, irregular
|
||||
particles built from line segments (2d) or triangles (3d), and
|
||||
coarse-grain models of nano or colloidal particles consisting of a
|
||||
@ -203,11 +216,11 @@ most one rigid body. Which atoms are in which bodies can be defined
|
||||
via several options.
|
||||
|
||||
NOTE: With the {rigid/small} styles, which require that {bodystyle} be
|
||||
specified as {molecule}, you can define a system that has no rigid
|
||||
bodies initially. This is useful when you are using the {mol} keyword
|
||||
in conjunction with another fix that is adding rigid bodies on-the-fly
|
||||
as molecules, such as "fix deposit"_fix_deposit.html or "fix
|
||||
pour"_fix_pour.html.
|
||||
specified as {molecule} or {custom}, you can define a system that has
|
||||
no rigid bodies initially. This is useful when you are using the {mol}
|
||||
keyword in conjunction with another fix that is adding rigid bodies
|
||||
on-the-fly as molecules, such as "fix deposit"_fix_deposit.html or
|
||||
"fix pour"_fix_pour.html.
|
||||
|
||||
For bodystyle {single} the entire fix group of atoms is treated as one
|
||||
rigid body. This option is only allowed for the {rigid} styles.
|
||||
@ -222,6 +235,15 @@ molecule ID = 0) surrounding rigid bodies, this may not be what you
|
||||
want. Thus you should be careful to use a fix group that only
|
||||
includes atoms you want to be part of rigid bodies.
|
||||
|
||||
Bodystyle {custom} is similar to bodystyle {molecule}, however some
|
||||
custom properties are used to group atoms into rigid bodies. The
|
||||
special case for molecule/body ID = 0 is not available. Possible
|
||||
custom properties are an integer property associated with atoms through
|
||||
"fix property/atom"_fix_property_atom.html or an atom style variable
|
||||
or an atomfile style variable. For the latter two, the variable value
|
||||
will be rounded to an integer and then rigid bodies defined from
|
||||
those values.
|
||||
|
||||
For bodystyle {group}, each of the listed groups is treated as a
|
||||
separate rigid body. Only atoms that are also in the fix group are
|
||||
included in each rigid body. This option is only allowed for the
|
||||
@ -703,6 +725,11 @@ NVT, NPT, NPH rigid styles to add the energy change induced by the
|
||||
thermostatting to the system's potential energy as part of
|
||||
"thermodynamic output"_thermo_style.html.
|
||||
|
||||
The "fix_modify"_fix_modify.html {virial} option is supported by this
|
||||
fix to add the contribution due to keeping the objects rigid to the
|
||||
system's virial as part of "thermodynamic output"_thermo_style.html.
|
||||
The default is {virial yes}
|
||||
|
||||
The "fix_modify"_fix_modify.html {temp} and {press} options are
|
||||
supported by the 4 NPT and NPH rigid styles to change the computes
|
||||
used to calculate the instantaneous pressure tensor. Note that the 2
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
:line
|
||||
|
||||
fix rx command :h3
|
||||
fix rx/kk command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
@ -182,6 +183,29 @@ read_data data.dpd fix foo_SPECIES NULL Species
|
||||
|
||||
: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 command is part of the USER-DPD package. It is only enabled if
|
||||
|
||||
@ -37,8 +37,8 @@ keyword = {file} or {ave} or {start} or {file} or {overwrite}:l
|
||||
compute 1 all saed 0.0251 Al O Kmax 1.70 Zone 0 0 1 dR_Ewald 0.01 c 0.5 0.5 0.5
|
||||
compute 2 all saed 0.0251 Ni Kmax 1.70 Zone 0 0 0 c 0.05 0.05 0.05 manual echo :pre
|
||||
|
||||
fix saed/vtk 1 1 1 c_1 file Al2O3_001.saed
|
||||
fix saed/vtk 1 1 1 c_2 file Ni_000.saed :pre
|
||||
fix 1 all saed/vtk 1 1 1 c_1 file Al2O3_001.saed
|
||||
fix 2 all saed/vtk 1 1 1 c_2 file Ni_000.saed :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
|
||||
@ -186,6 +186,11 @@ to 1 and recompiling LAMMPS.
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
The "fix_modify"_fix_modify.html {virial} option is supported by this
|
||||
fix to add the contribution due to keeping the constraints to the
|
||||
system's virial as part of "thermodynamic output"_thermo_style.html.
|
||||
The default is {virial yes}
|
||||
|
||||
No information about these fixes is written to "binary restart
|
||||
files"_restart.html. None of the "fix_modify"_fix_modify.html options
|
||||
are relevant to these fixes. No global or per-atom quantities are
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
:line
|
||||
|
||||
fix shardlow command :h3
|
||||
fix shardlow/kk command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
@ -52,6 +53,29 @@ examples/USER/dpd directory.
|
||||
|
||||
: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 command is part of the USER-DPD package. It is only enabled if
|
||||
|
||||
@ -101,6 +101,11 @@ See the "read_restart"_read_restart.html command for info on how to
|
||||
re-specify a fix in an input script that reads a restart file, so that
|
||||
the operation of the fix continues in an uninterrupted fashion.
|
||||
|
||||
The "fix_modify"_fix_modify.html {virial} option is supported by this
|
||||
fix to add the contribution due to the added forces on atoms to the
|
||||
system's virial as part of "thermodynamic output"_thermo_style.html.
|
||||
The default is {virial no}
|
||||
|
||||
The "fix_modify"_fix_modify.html {respa} option is supported by
|
||||
this fix. This allows to set at which level of the "r-RESPA"_run_style.html
|
||||
integrator the fix is adding its forces. Default is the outermost level.
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
:line
|
||||
|
||||
fix wall/lj93 command :h3
|
||||
fix wall/lj93/kk command :h3
|
||||
fix wall/lj126 command :h3
|
||||
fix wall/lj1043 command :h3
|
||||
fix wall/colloid command :h3
|
||||
@ -251,6 +252,11 @@ fix to add the energy of interaction between atoms and each wall to
|
||||
the system's potential energy as part of "thermodynamic
|
||||
output"_thermo_style.html.
|
||||
|
||||
The "fix_modify"_fix_modify.html {virial} option is supported by this
|
||||
fix to add the contribution due to the interaction between
|
||||
atoms and each wall to the system's virial as part of "thermodynamic
|
||||
output"_thermo_style.html. The default is {virial no}
|
||||
|
||||
The "fix_modify"_fix_modify.html {respa} option is supported by this
|
||||
fix. This allows to set at which level of the "r-RESPA"_run_style.html
|
||||
integrator the fix is adding its forces. Default is the outermost level.
|
||||
@ -277,6 +283,31 @@ the total potential energy of the system (the quantity being
|
||||
minimized), you MUST enable the "fix_modify"_fix_modify.html {energy}
|
||||
option for this fix.
|
||||
|
||||
: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:] none
|
||||
|
||||
[Related commands:]
|
||||
|
||||