Compare commits
753 Commits
patch_31Ma
...
patch_6Aug
| Author | SHA1 | Date | |
|---|---|---|---|
| 25b504d4fd | |||
| 34cc7ed5b1 | |||
| 3ef93d6e1b | |||
| 2092b2c010 | |||
| 16bf916dd0 | |||
| 3a4bce1e52 | |||
| 0bd5704107 | |||
| e39b85b62f | |||
| 97501f0946 | |||
| 51ba9bd520 | |||
| f2757eaf41 | |||
| 096c225594 | |||
| 58d27403f1 | |||
| b65ae605e5 | |||
| d82ae64d16 | |||
| 5b3423c60e | |||
| faefcc776a | |||
| 0774e92ece | |||
| 91fdd98fbc | |||
| bd87b67232 | |||
| eb7fa1b6cb | |||
| aff5f06e8f | |||
| bd3ffe1321 | |||
| 11198e9d29 | |||
| a857e7f790 | |||
| 9c691ddd0f | |||
| 828ddfd957 | |||
| 7ba6b8a06a | |||
| d750cc02c0 | |||
| 9ed43e55f0 | |||
| 8fd28cd78d | |||
| b5f19b93c2 | |||
| 5076f1a36c | |||
| f61cd68ca4 | |||
| 5b4b418289 | |||
| 8df7f51470 | |||
| f9e34825f0 | |||
| 52e2db44a1 | |||
| de366c27e2 | |||
| 5fd323fe32 | |||
| 64b682b9f9 | |||
| 083841ab2a | |||
| fa6a990536 | |||
| 73d2b824bd | |||
| e17e6bb45d | |||
| 2fe4a6490c | |||
| 5fe457667e | |||
| 02511a0ae5 | |||
| 76bac4cedc | |||
| 8f5cd8661f | |||
| e57c3c04d0 | |||
| c967c09561 | |||
| a6bd86eb77 | |||
| e3c91626c8 | |||
| 2a74832a1e | |||
| 86e3740fb3 | |||
| 892e4759df | |||
| 207976f4e9 | |||
| 074ae06b36 | |||
| 75c1e28566 | |||
| 58404946db | |||
| d09ca91627 | |||
| e89cedbd99 | |||
| 4011f6650d | |||
| 0fa9cd5004 | |||
| 3cc8508795 | |||
| da3b91a744 | |||
| bc79412203 | |||
| 8803183b8b | |||
| 11a3fd6ce4 | |||
| e3b1673c8c | |||
| 69a5ff2240 | |||
| 2b288bc9e0 | |||
| 882b2301bb | |||
| 528ec75f88 | |||
| f5bf86b32d | |||
| d4503a05a4 | |||
| 47fc31d005 | |||
| 2d93a713e2 | |||
| 6d94fc1b3d | |||
| 602b4a47c0 | |||
| 8fa4efa08e | |||
| 3eadfa15ef | |||
| 3548551479 | |||
| d1e8d7cbf8 | |||
| b0bccfd8a1 | |||
| 3559c25bd9 | |||
| 3fdadb5875 | |||
| 7ab7691c51 | |||
| 3ee86470bb | |||
| d201d6c2d1 | |||
| 88523fdd6e | |||
| c9f3f99ee8 | |||
| 4289dbb78d | |||
| d2c4989dbf | |||
| edf64ed16c | |||
| 9004ebc3fe | |||
| 90c678849a | |||
| 9f276be0e5 | |||
| 6833d6def6 | |||
| 5cb02781c2 | |||
| 180c90acfb | |||
| 2e6850835f | |||
| 7043b9f620 | |||
| 91e0bebdfa | |||
| d688624335 | |||
| 191044ab94 | |||
| c03e9c9711 | |||
| 2ffc35297b | |||
| 514608b82f | |||
| ea4107c4b4 | |||
| 0f059c56f9 | |||
| 0820ebc143 | |||
| 0beb39c1af | |||
| 2afc498a2b | |||
| e0b20c4fd4 | |||
| 6a1b61637b | |||
| 96e0b03ede | |||
| 5307558727 | |||
| a0abd270b5 | |||
| 838ea2eca1 | |||
| 2fba3d027a | |||
| 0f10c55c1c | |||
| 9477df4244 | |||
| 863ae35658 | |||
| 94126e5424 | |||
| a0e005f93c | |||
| a5a1e27fb1 | |||
| 35cee904d7 | |||
| f2dbe186ca | |||
| e816f0e7a6 | |||
| 0ba854b4ab | |||
| f4a984175c | |||
| 17d6b317a7 | |||
| 6a5902ec48 | |||
| 010cb0edf3 | |||
| 0bb9df76c2 | |||
| 8d4f189699 | |||
| ca1fece850 | |||
| e8d891c0dd | |||
| 47689b4ad3 | |||
| 179b507107 | |||
| 9bedd0d0d0 | |||
| 52e1755464 | |||
| 60dfa7daf8 | |||
| fe83e4de2e | |||
| fadb40051b | |||
| ab74bfef20 | |||
| 7c1fedff18 | |||
| 081780706c | |||
| d0b442aca1 | |||
| df139bf32b | |||
| ca291f1015 | |||
| 183d92cad7 | |||
| 4586fd50af | |||
| 18730e0f92 | |||
| f86d2c9934 | |||
| 5ca93e3651 | |||
| b1a5444815 | |||
| 114a754a72 | |||
| 6710cc4052 | |||
| 6e9252c847 | |||
| 1cebc5516e | |||
| 0be034ea46 | |||
| aec43304f4 | |||
| b5a066ecd0 | |||
| d08477cc5f | |||
| c098582df8 | |||
| eaf2b59b1b | |||
| 3c53efb1ca | |||
| d59737299c | |||
| 6ee38d4887 | |||
| 24d9c537c0 | |||
| cb9facea8b | |||
| afab7d99c1 | |||
| 1d310ad73e | |||
| 20843f7476 | |||
| be1522d16d | |||
| 985c959a91 | |||
| 4760cf868d | |||
| 4400257783 | |||
| 3887a7f3d7 | |||
| 2d2c1954db | |||
| 3bc4a07c74 | |||
| be86db9dd9 | |||
| dd4368dd1b | |||
| ce9c5e41a8 | |||
| b6b802d0b1 | |||
| 320be3bcef | |||
| 72797b3063 | |||
| 36ac47c2c6 | |||
| f5beb418e8 | |||
| 243ce8dbfc | |||
| c831cee21d | |||
| f2978475af | |||
| 03d26f6f6f | |||
| f4df51763d | |||
| 9239c9dedb | |||
| d52540ea31 | |||
| a50d57bceb | |||
| 981b9a1f7a | |||
| 895d4fa927 | |||
| 502fbfb78a | |||
| 276e3b2df1 | |||
| ceb2ce5814 | |||
| 67b74aea63 | |||
| e72aef2a96 | |||
| c7bccc5e7a | |||
| d730ef5b19 | |||
| 44c9d3c1be | |||
| 1de00aaab0 | |||
| 8526e7a4cd | |||
| 4f7c95d87e | |||
| 4c328bf846 | |||
| babbdaff2c | |||
| c2643a519e | |||
| 0ee0ea109c | |||
| 57fd9723a5 | |||
| e2a7cdc4f7 | |||
| 92b53c7bc2 | |||
| 7bf9757755 | |||
| 3acb09e3b1 | |||
| e5fffa59ef | |||
| 87154da7f5 | |||
| 8cf1084dec | |||
| 92518e53f4 | |||
| 22b73a316f | |||
| 60ebc08d0f | |||
| 856efa28aa | |||
| 02b0fb454f | |||
| bcf600d781 | |||
| 06275b03c0 | |||
| 354f4d19fd | |||
| 5b4f77b919 | |||
| b61b48235b | |||
| 658cda9b67 | |||
| 0a90032b4c | |||
| 2b5a6d3b7f | |||
| 68626f577b | |||
| 6742f371ad | |||
| 61220f9b6c | |||
| 3e90b82c8e | |||
| 3d157e5ab4 | |||
| a1f0c0079d | |||
| e832b5d50b | |||
| a51479a62b | |||
| 08ed046a69 | |||
| 2f64615087 | |||
| 3a10486a40 | |||
| b4f60ef477 | |||
| 944c3bc91d | |||
| 48c7356743 | |||
| 9718b99af9 | |||
| 9f6bbe1d8e | |||
| 3349ed0013 | |||
| 358cec9a0c | |||
| 8e2f3e4883 | |||
| dbd0158d3f | |||
| b1f8c3f38a | |||
| b5fea1f4a7 | |||
| 01524d9850 | |||
| ca4b26ddf8 | |||
| d05787ab99 | |||
| 7109c1013a | |||
| 1a0662c386 | |||
| 789d6a991e | |||
| 39873fb7a3 | |||
| 956d21ec0e | |||
| ea68db964a | |||
| 2ca2d053fd | |||
| a1a7754961 | |||
| 941607595a | |||
| 89af88bd10 | |||
| c5044d6484 | |||
| 872d43f02f | |||
| 0eba1c1cbc | |||
| 0f691de031 | |||
| 054ff97a51 | |||
| 93748a18ae | |||
| d6ed4ee1b1 | |||
| 39315268e8 | |||
| 5236497932 | |||
| 2fd327d057 | |||
| c2dc624ec9 | |||
| 06dcc9e283 | |||
| 691fc357a4 | |||
| 53b8e329a1 | |||
| 64faa6c667 | |||
| 0d15c57fee | |||
| 5013fd699f | |||
| 30086950b8 | |||
| 39c8a7de6e | |||
| 7a62717051 | |||
| 74414afdea | |||
| 1f47da6c51 | |||
| cbdc5dba13 | |||
| cfaa537296 | |||
| 31e19e0824 | |||
| 03418be645 | |||
| 60a808d25b | |||
| 5b7ae3713b | |||
| 65e281d661 | |||
| 13d4fbdcfb | |||
| b469ff6791 | |||
| 15e1b39531 | |||
| 57a5588549 | |||
| e5af9db84c | |||
| 35e2401099 | |||
| 61ed3b65b7 | |||
| 316554297c | |||
| a00d38572e | |||
| 4db4833395 | |||
| c00f2adb42 | |||
| e123b6f02e | |||
| b6bb980980 | |||
| 9f15ed1e61 | |||
| 2c0eeeb976 | |||
| 5d4016c285 | |||
| 5fffccb076 | |||
| 66390882fd | |||
| 46a9772a6d | |||
| d07a49aeea | |||
| 7efb42f0d3 | |||
| 0d4bb86183 | |||
| 8dcb42d49c | |||
| 2f72b9f120 | |||
| ce6fa0118a | |||
| b4cf4b1ed7 | |||
| 732bd937e0 | |||
| 49f27573a7 | |||
| fa15bf5edd | |||
| e63fe1fe84 | |||
| 95cb995336 | |||
| 416911aa7e | |||
| 6cf3bb3e4e | |||
| 5b3a15bd94 | |||
| 256531a29a | |||
| bb5a1c5205 | |||
| 00d820dcf9 | |||
| 63dcd999d8 | |||
| 7967cb1133 | |||
| 0c4af8b820 | |||
| 11708c8f96 | |||
| 9984cbc99a | |||
| 350d8f5812 | |||
| fc1d8f2cbf | |||
| 0761c4dbb9 | |||
| 968335d4fd | |||
| 6fc5810bb4 | |||
| 41e8cf3d69 | |||
| b727f0b126 | |||
| 63fa63fb1c | |||
| f7329c0f43 | |||
| 7547e1dae6 | |||
| 42c31227d9 | |||
| 559c187964 | |||
| 61a7730bb5 | |||
| a8d4ac74fa | |||
| e91539d4b5 | |||
| 2443c8ad13 | |||
| 32728375b9 | |||
| fb5e7e6f3b | |||
| e9e7d995b2 | |||
| 39f5b8c734 | |||
| af8103433c | |||
| 62bddd47ee | |||
| 483b1dbef5 | |||
| 44372f5236 | |||
| e0c04355bb | |||
| e8487ec0b9 | |||
| 78af594381 | |||
| e29361523f | |||
| 3e88dacd3f | |||
| 33d3bd7a8d | |||
| 8fdba2ded1 | |||
| 96744c4933 | |||
| 31cbccda85 | |||
| a720aedabc | |||
| 5e3a705911 | |||
| ea2e73119d | |||
| 5eabc82024 | |||
| d918432047 | |||
| 73968f10d5 | |||
| 400af0edac | |||
| 557a1274e4 | |||
| df7c56d881 | |||
| 378474c4e6 | |||
| a5cb6ddd4a | |||
| 2c119551f7 | |||
| 123bd57376 | |||
| 4ec3a508fc | |||
| 86a9e4fca2 | |||
| 9c53a5ca3f | |||
| 932f052cbf | |||
| 2c0a66b7f8 | |||
| 03099d6e54 | |||
| 121947e79d | |||
| 48220b39b5 | |||
| 1e2aeed2ac | |||
| 60adaa24cb | |||
| 333bec0222 | |||
| 84e156d380 | |||
| 312a1fa004 | |||
| 08ac695a06 | |||
| 17602b4c26 | |||
| f7507512b1 | |||
| ff36bad099 | |||
| 7f342b1cd0 | |||
| 2be0fd6180 | |||
| 8c3d18520d | |||
| f1dfcaf514 | |||
| f6319146b0 | |||
| e08146c31f | |||
| 2fd924562b | |||
| 61ddc98a5a | |||
| 6a6d08e18e | |||
| 8fd1aaba7e | |||
| 50e76ff7a1 | |||
| 423eebda25 | |||
| f6842e643e | |||
| 5f7c4fb668 | |||
| 483353a017 | |||
| 86d878a7eb | |||
| 4284a4fac4 | |||
| b653536750 | |||
| 1047d8f80e | |||
| c8a2f61c16 | |||
| 0ddcc023a5 | |||
| f2380a24ef | |||
| 13237155c8 | |||
| 7f26862f98 | |||
| 826a14f54a | |||
| 7afcfccf48 | |||
| a36d2573cf | |||
| 8b49cac86a | |||
| 2159a8c44a | |||
| 3e93881e44 | |||
| bfd0c4228d | |||
| cf008c163d | |||
| d150feb41a | |||
| db13fedb89 | |||
| 94e1f87cb8 | |||
| 881f9ff043 | |||
| b5d4cf4bfd | |||
| d10fdda676 | |||
| 6d54cf6a07 | |||
| bfe6cc29e8 | |||
| 36649f0534 | |||
| 171d74f2f2 | |||
| e42e1e64a8 | |||
| c9160e66f2 | |||
| b2ba0550d7 | |||
| f31faafeec | |||
| 493269431c | |||
| 3b6cc29f64 | |||
| c6d0f807b5 | |||
| 27d1f79fe3 | |||
| 065638edba | |||
| c557c7492b | |||
| ac82aa754b | |||
| c9cb6e3658 | |||
| 7f00cf8c12 | |||
| a6f6c9bed0 | |||
| 22e036a645 | |||
| d08867ce0a | |||
| c11caf4509 | |||
| 33be7f259b | |||
| 27d83b878d | |||
| 17fa2f787b | |||
| 4a22e3bf70 | |||
| f81c9c5322 | |||
| 58f9380c45 | |||
| dbfd1fd0e7 | |||
| f190647ab4 | |||
| 08cee18f32 | |||
| 88994d813a | |||
| 7a56a4be24 | |||
| 1bb18ebde4 | |||
| c79044c361 | |||
| c460d05bc6 | |||
| 0613c10395 | |||
| a01421db99 | |||
| 128d021c10 | |||
| f1034e982d | |||
| 6760866f44 | |||
| 17bfed3590 | |||
| bc224bc66e | |||
| c9fc83ef6f | |||
| f54ad09668 | |||
| 599ef78161 | |||
| 26347ec80c | |||
| 959da9de01 | |||
| f8f8e441b9 | |||
| bb11344424 | |||
| e754fb80a4 | |||
| 98fbaef406 | |||
| d98c105d34 | |||
| 961dcfc261 | |||
| 81cdce9b04 | |||
| 995b6b31a2 | |||
| e9666f585f | |||
| f4f4a7c850 | |||
| 5fc3081a55 | |||
| a39a35af20 | |||
| 1452d3d25b | |||
| 2dea4eb0e9 | |||
| 5d73b0790f | |||
| 93fd33aad9 | |||
| 6536399fc3 | |||
| 2f29bd29f4 | |||
| b1458ceebf | |||
| 92615bda3a | |||
| 4c0cd0a019 | |||
| fd93c27dcb | |||
| 4178c5167b | |||
| fd20a0606a | |||
| 75e2981bda | |||
| 98d9a9a4d2 | |||
| e73b34a5b1 | |||
| 3611cfdaf8 | |||
| 7fab12c36f | |||
| ac57b41b4d | |||
| 43e3c1520b | |||
| e7116c8680 | |||
| 4d7d3a5d53 | |||
| c1550ba29b | |||
| 5fb505ca8c | |||
| 67a1a63f5f | |||
| 65b87fa278 | |||
| c5c03230cb | |||
| be5d3d6a19 | |||
| f8e257d219 | |||
| 3f523ea906 | |||
| a973700295 | |||
| daa53e3008 | |||
| 7a33d1e328 | |||
| 0559e155f2 | |||
| 0b25d2feef | |||
| 1c1491eebf | |||
| 400751f30f | |||
| 4fbf96a353 | |||
| 1dc8bb163d | |||
| bb0240d8eb | |||
| fd592d510f | |||
| dbafb92dd5 | |||
| 83060f0902 | |||
| fd55d7d367 | |||
| 3d5db63381 | |||
| 42b0cb5e3e | |||
| 4cee333c07 | |||
| 7f4c611e21 | |||
| fe29572737 | |||
| 9421466f57 | |||
| 8d985e53f4 | |||
| e72ac92a7f | |||
| 3e2f3a8058 | |||
| 72b295d7f4 | |||
| fa76472135 | |||
| 664b938ed1 | |||
| 9a428217d9 | |||
| 22fd12b56c | |||
| b368b11d60 | |||
| 591e6836fd | |||
| 4ac100fe69 | |||
| 4ecd81f81b | |||
| 203c6d122b | |||
| e788d32678 | |||
| ae59ffe83e | |||
| 99a8d3c2ed | |||
| ca1445788e | |||
| 0908bd7aaf | |||
| 239dfe163c | |||
| cea1bd9cd9 | |||
| 31dc5dbb51 | |||
| 9e3dc26599 | |||
| 8da75c2040 | |||
| 85999fc4a7 | |||
| 73fa8d4055 | |||
| bd237a05b8 | |||
| 4941f11ad4 | |||
| afab5ef303 | |||
| a7c02e699e | |||
| 8fed39d726 | |||
| b9e10d55e2 | |||
| 1f1a0f95b2 | |||
| 61e9dc4c8d | |||
| b53df3dd63 | |||
| 56e3b1d1f4 | |||
| fde7e2de3c | |||
| e2391edce6 | |||
| f7026491f1 | |||
| 40a2f275c2 | |||
| e549f911f7 | |||
| 34dca6dc79 | |||
| 2ebc40deb3 | |||
| e9b4ab7363 | |||
| 8e43a45925 | |||
| 92f078cfff | |||
| 708052dc81 | |||
| 0849e03d1b | |||
| 045c312c49 | |||
| 47c6cd86f2 | |||
| 27cd78b96d | |||
| dd97a7540e | |||
| 272c536326 | |||
| 0b13fbe733 | |||
| 960a975e2a | |||
| 021f0c1fc6 | |||
| 5d96ecff25 | |||
| c76b79f021 | |||
| a981626948 | |||
| 5f79a9ef80 | |||
| 674e3975a8 | |||
| d0286b3de1 | |||
| 983f3adbb4 | |||
| 58a88dff95 | |||
| 0ba38aa072 | |||
| 2e63280f87 | |||
| 68eab23cf8 | |||
| 3b7c15a8b2 | |||
| 6175f2dce8 | |||
| 76900b8325 | |||
| 972a7a5c4d | |||
| 311aebf7ff | |||
| 16a254f6bd | |||
| 80d906d445 | |||
| edecd2b760 | |||
| df1308ad92 | |||
| c9fe5810c1 | |||
| 24a63f0f31 | |||
| 113b8b4be2 | |||
| b88158fc3b | |||
| 3b60686827 | |||
| e3e5a962b0 | |||
| 35be1724e3 | |||
| d717101e94 | |||
| e44c877738 | |||
| b3a01694b7 | |||
| eb6287d2e8 | |||
| 4619018ead | |||
| e133c60ff5 | |||
| 97be57be7b | |||
| 5523c9e7f6 | |||
| c2a200fe85 | |||
| 264f6e1630 | |||
| c3897212e2 | |||
| 5a929aff6e | |||
| ee5fa04732 | |||
| fc8a639d58 | |||
| b91b3c18cf | |||
| ce46d52c8a | |||
| eea67bf3bf | |||
| 1e2ceb88da | |||
| 439e7da03f | |||
| ed7c09ac81 | |||
| 0ee1daa46d | |||
| 2fbc4f504d | |||
| 95ab056576 | |||
| a0bc619550 | |||
| 82b50706bd | |||
| e90eed9120 | |||
| 5f2f7d1575 | |||
| 3e60ec9be1 | |||
| 92b042552e | |||
| 38a8c765f0 | |||
| 56cf97e497 | |||
| b779bf524a | |||
| 32379d2d84 | |||
| dc8b43a95f | |||
| 601746b565 | |||
| fbb78e7b78 | |||
| 803e0631c5 | |||
| 51a6bfd579 | |||
| 5b71b3fc57 | |||
| e2ed9330b7 | |||
| 41872e37e6 | |||
| 0c0b106924 | |||
| 98d9c45ad9 | |||
| 084bb3c35b | |||
| 31789ad03b | |||
| fd168068a1 | |||
| a0cc6b5b59 | |||
| f2d881470d | |||
| e13c661f77 | |||
| a1f421cd54 | |||
| 6d84bd6138 | |||
| 11407a165b | |||
| 99430767df | |||
| cb6b498127 | |||
| a243be2dc9 | |||
| a696b26301 | |||
| 4a4297591e | |||
| 1f43efc111 | |||
| c55009a0ac | |||
| 80431612c7 | |||
| e4e2249b63 | |||
| cf35ebe5fa | |||
| 073f003470 | |||
| 618547b72e | |||
| a01bce46bb | |||
| 82be3ee32c | |||
| 16b17f812c | |||
| 22b7e12baf | |||
| b8d3c9e01b | |||
| 149a57f3ae | |||
| 7f2c81657b | |||
| f2ef02b6d9 | |||
| c3adfcbc15 | |||
| 744a8215dd | |||
| 1f44dc2498 | |||
| d1e751d717 | |||
| 08273c40d7 | |||
| e2d28f5160 | |||
| b50ef59a19 | |||
| 36836598b1 | |||
| 8c4baac3f1 | |||
| 179026dd44 | |||
| 71a6227240 | |||
| aecef752e8 | |||
| e422e886de | |||
| 069853fd10 | |||
| 84773f9d1d | |||
| ff7276e494 | |||
| 553714b0bb | |||
| 5d8e3c6cb4 | |||
| 29073f7d0e | |||
| 38c6c1907b | |||
| 85a14ebcb8 | |||
| 0a02097e20 | |||
| a72f3cfb58 | |||
| 58905525bf | |||
| 7a2d326103 | |||
| ddd5e61254 | |||
| d66a1ac054 | |||
| 9727fdc473 | |||
| d5fe8857cc | |||
| a745a0aed0 | |||
| 19aaf294e5 | |||
| 6b4303c405 | |||
| 53a779067e | |||
| cce9fe4a34 | |||
| 407392f6bf | |||
| cdde878d60 | |||
| b9e33e631f | |||
| 82a5346ab1 | |||
| a76457ef22 | |||
| e6b5112ddc | |||
| 16911adcea | |||
| cf1d421e10 | |||
| 8d79db03d3 | |||
| 5e287033f7 | |||
| e1ab38439b | |||
| 062c1a04fc |
1279
cmake/CMakeLists.txt
28
cmake/Modules/CodeCoverage.cmake
Normal file
@ -0,0 +1,28 @@
|
||||
###############################################################################
|
||||
# Coverage
|
||||
#
|
||||
# Requires latest gcovr (for GCC 8.1 support):#
|
||||
# pip install git+https://github.com/gcovr/gcovr.git
|
||||
###############################################################################
|
||||
if(ENABLE_COVERAGE)
|
||||
find_program(GCOVR_BINARY gcovr)
|
||||
find_package_handle_standard_args(GCOVR DEFAULT_MSG GCOVR_BINARY)
|
||||
|
||||
if(GCOVR_FOUND)
|
||||
get_filename_component(ABSOLUTE_LAMMPS_SOURCE_DIR ${LAMMPS_SOURCE_DIR} ABSOLUTE)
|
||||
|
||||
add_custom_target(
|
||||
gen_coverage_xml
|
||||
COMMAND ${GCOVR_BINARY} -s -x -r ${ABSOLUTE_LAMMPS_SOURCE_DIR} --object-directory=${CMAKE_BINARY_DIR} -o coverage.xml
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMENT "Generating XML Coverage Report..."
|
||||
)
|
||||
|
||||
add_custom_target(
|
||||
gen_coverage_html
|
||||
COMMAND ${GCOVR_BINARY} -s --html --html-details -r ${ABSOLUTE_LAMMPS_SOURCE_DIR} --object-directory=${CMAKE_BINARY_DIR} -o coverage.html
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMENT "Generating HTML Coverage Report..."
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
59
cmake/Modules/Documentation.cmake
Normal file
@ -0,0 +1,59 @@
|
||||
###############################################################################
|
||||
# Build documentation
|
||||
###############################################################################
|
||||
option(BUILD_DOC "Build LAMMPS documentation" OFF)
|
||||
if(BUILD_DOC)
|
||||
include(ProcessorCount)
|
||||
ProcessorCount(NPROCS)
|
||||
find_package(PythonInterp 3 REQUIRED)
|
||||
|
||||
set(VIRTUALENV ${PYTHON_EXECUTABLE} -m virtualenv)
|
||||
|
||||
file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/[^.]*.txt)
|
||||
file(GLOB PDF_EXTRA_SOURCES ${LAMMPS_DOC_DIR}/src/lammps_commands*.txt ${LAMMPS_DOC_DIR}/src/lammps_support.txt ${LAMMPS_DOC_DIR}/src/lammps_tutorials.txt)
|
||||
list(REMOVE_ITEM DOC_SOURCES ${PDF_EXTRA_SOURCES})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT docenv
|
||||
COMMAND ${VIRTUALENV} docenv
|
||||
)
|
||||
|
||||
set(DOCENV_BINARY_DIR ${CMAKE_BINARY_DIR}/docenv/bin)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT requirements.txt
|
||||
DEPENDS docenv
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LAMMPS_DOC_DIR}/utils/requirements.txt requirements.txt
|
||||
COMMAND ${DOCENV_BINARY_DIR}/pip install -r requirements.txt --upgrade
|
||||
COMMAND ${DOCENV_BINARY_DIR}/pip install --upgrade ${LAMMPS_DOC_DIR}/utils/converters
|
||||
)
|
||||
|
||||
set(RST_FILES "")
|
||||
set(RST_DIR ${CMAKE_BINARY_DIR}/rst)
|
||||
file(MAKE_DIRECTORY ${RST_DIR})
|
||||
foreach(TXT_FILE ${DOC_SOURCES})
|
||||
get_filename_component(FILENAME ${TXT_FILE} NAME_WE)
|
||||
set(RST_FILE ${RST_DIR}/${FILENAME}.rst)
|
||||
list(APPEND RST_FILES ${RST_FILE})
|
||||
add_custom_command(
|
||||
OUTPUT ${RST_FILE}
|
||||
DEPENDS requirements.txt docenv ${TXT_FILE}
|
||||
COMMAND ${DOCENV_BINARY_DIR}/txt2rst -o ${RST_DIR} ${TXT_FILE}
|
||||
)
|
||||
endforeach()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT html
|
||||
DEPENDS ${RST_FILES}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LAMMPS_DOC_DIR}/src ${RST_DIR}
|
||||
COMMAND ${DOCENV_BINARY_DIR}/sphinx-build -j ${NPROCS} -b html -c ${LAMMPS_DOC_DIR}/utils/sphinx-config -d ${CMAKE_BINARY_DIR}/doctrees ${RST_DIR} html
|
||||
)
|
||||
|
||||
add_custom_target(
|
||||
doc ALL
|
||||
DEPENDS html
|
||||
SOURCES ${LAMMPS_DOC_DIR}/utils/requirements.txt ${DOC_SOURCES}
|
||||
)
|
||||
|
||||
install(DIRECTORY ${CMAKE_BINARY_DIR}/html DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
||||
endif()
|
||||
71
cmake/Modules/LAMMPSUtils.cmake
Normal file
@ -0,0 +1,71 @@
|
||||
# Utility functions
|
||||
function(list_to_bulletpoints result)
|
||||
list(REMOVE_AT ARGV 0)
|
||||
set(temp "")
|
||||
foreach(item ${ARGV})
|
||||
set(temp "${temp}* ${item}\n")
|
||||
endforeach()
|
||||
set(${result} "${temp}" PARENT_SCOPE)
|
||||
endfunction(list_to_bulletpoints)
|
||||
|
||||
function(validate_option name values)
|
||||
string(TOLOWER ${${name}} needle_lower)
|
||||
string(TOUPPER ${${name}} needle_upper)
|
||||
list(FIND ${values} ${needle_lower} IDX_LOWER)
|
||||
list(FIND ${values} ${needle_upper} IDX_UPPER)
|
||||
if(${IDX_LOWER} LESS 0 AND ${IDX_UPPER} LESS 0)
|
||||
list_to_bulletpoints(POSSIBLE_VALUE_LIST ${${values}})
|
||||
message(FATAL_ERROR "\n########################################################################\n"
|
||||
"Invalid value '${${name}}' for option ${name}\n"
|
||||
"\n"
|
||||
"Possible values are:\n"
|
||||
"${POSSIBLE_VALUE_LIST}"
|
||||
"########################################################################")
|
||||
endif()
|
||||
endfunction(validate_option)
|
||||
|
||||
function(get_lammps_version version_header variable)
|
||||
file(READ ${version_header} line)
|
||||
set(MONTHS x Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
|
||||
string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\1" day "${line}")
|
||||
string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\2" month "${line}")
|
||||
string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\3" year "${line}")
|
||||
string(STRIP ${day} day)
|
||||
string(STRIP ${month} month)
|
||||
string(STRIP ${year} year)
|
||||
list(FIND MONTHS "${month}" month)
|
||||
string(LENGTH ${day} day_length)
|
||||
string(LENGTH ${month} month_length)
|
||||
if(day_length EQUAL 1)
|
||||
set(day "0${day}")
|
||||
endif()
|
||||
if(month_length EQUAL 1)
|
||||
set(month "0${month}")
|
||||
endif()
|
||||
set(${variable} "${year}${month}${day}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(check_for_autogen_files source_dir)
|
||||
message(STATUS "Running check for auto-generated files from make-based build system")
|
||||
file(GLOB SRC_AUTOGEN_FILES ${source_dir}/style_*.h)
|
||||
file(GLOB SRC_AUTOGEN_PACKAGES ${source_dir}/packages_*.h)
|
||||
list(APPEND SRC_AUTOGEN_FILES ${SRC_AUTOGEN_PACKAGES} ${source_dir}/lmpinstalledpkgs.h ${source_dir}/lmpgitversion.h)
|
||||
foreach(_SRC ${SRC_AUTOGEN_FILES})
|
||||
get_filename_component(FILENAME "${_SRC}" NAME)
|
||||
if(EXISTS ${source_dir}/${FILENAME})
|
||||
message(FATAL_ERROR "\n########################################################################\n"
|
||||
"Found header file(s) generated by the make-based build system\n"
|
||||
"\n"
|
||||
"Please run\n"
|
||||
"make -C ${source_dir} purge\n"
|
||||
"to remove\n"
|
||||
"########################################################################")
|
||||
endif()
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
macro(pkg_depends PKG1 PKG2)
|
||||
if(PKG_${PKG1} AND NOT (PKG_${PKG2} OR BUILD_${PKG2}))
|
||||
message(FATAL_ERROR "${PKG1} package needs LAMMPS to be build with ${PKG2}")
|
||||
endif()
|
||||
endmacro()
|
||||
5
cmake/Modules/Packages/COMPRESS.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
if(PKG_COMPRESS)
|
||||
find_package(ZLIB REQUIRED)
|
||||
include_directories(${ZLIB_INCLUDE_DIRS})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${ZLIB_LIBRARIES})
|
||||
endif()
|
||||
13
cmake/Modules/Packages/CORESHELL.cmake
Normal file
@ -0,0 +1,13 @@
|
||||
if(PKG_CORESHELL)
|
||||
set(CORESHELL_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/CORESHELL)
|
||||
set(CORESHELL_SOURCES)
|
||||
set_property(GLOBAL PROPERTY "CORESHELL_SOURCES" "${CORESHELL_SOURCES}")
|
||||
|
||||
# detects styles which have a CORESHELL version
|
||||
RegisterStylesExt(${CORESHELL_SOURCES_DIR} cs CORESHELL_SOURCES)
|
||||
|
||||
get_property(CORESHELL_SOURCES GLOBAL PROPERTY CORESHELL_SOURCES)
|
||||
|
||||
list(APPEND LIB_SOURCES ${CORESHELL_SOURCES})
|
||||
include_directories(${CORESHELL_SOURCES_DIR})
|
||||
endif()
|
||||
194
cmake/Modules/Packages/GPU.cmake
Normal file
@ -0,0 +1,194 @@
|
||||
if(PKG_GPU)
|
||||
if (CMAKE_VERSION VERSION_LESS "3.1")
|
||||
message(FATAL_ERROR "For the GPU package you need at least cmake-3.1")
|
||||
endif()
|
||||
set(GPU_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/GPU)
|
||||
set(GPU_SOURCES ${GPU_SOURCES_DIR}/gpu_extra.h
|
||||
${GPU_SOURCES_DIR}/fix_gpu.h
|
||||
${GPU_SOURCES_DIR}/fix_gpu.cpp)
|
||||
|
||||
set(GPU_API "opencl" CACHE STRING "API used by GPU package")
|
||||
set(GPU_API_VALUES opencl cuda)
|
||||
set_property(CACHE GPU_API PROPERTY STRINGS ${GPU_API_VALUES})
|
||||
validate_option(GPU_API GPU_API_VALUES)
|
||||
string(TOUPPER ${GPU_API} GPU_API)
|
||||
|
||||
set(GPU_PREC "mixed" CACHE STRING "LAMMPS GPU precision")
|
||||
set(GPU_PREC_VALUES double mixed single)
|
||||
set_property(CACHE GPU_PREC PROPERTY STRINGS ${GPU_PREC_VALUES})
|
||||
validate_option(GPU_PREC GPU_PREC_VALUES)
|
||||
string(TOUPPER ${GPU_PREC} GPU_PREC)
|
||||
|
||||
if(GPU_PREC STREQUAL "DOUBLE")
|
||||
set(GPU_PREC_SETTING "DOUBLE_DOUBLE")
|
||||
elseif(GPU_PREC STREQUAL "MIXED")
|
||||
set(GPU_PREC_SETTING "SINGLE_DOUBLE")
|
||||
elseif(GPU_PREC STREQUAL "SINGLE")
|
||||
set(GPU_PREC_SETTING "SINGLE_SINGLE")
|
||||
endif()
|
||||
|
||||
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 "Could not find bin2c, use -DBIN2C=/path/to/bin2c to help cmake finding it.")
|
||||
endif()
|
||||
option(CUDPP_OPT "Enable CUDPP_OPT" ON)
|
||||
option(CUDA_MPS_SUPPORT "Enable tweaks to support CUDA Multi-process service (MPS)" OFF)
|
||||
if(CUDA_MPS_SUPPORT)
|
||||
set(GPU_CUDA_MPS_FLAGS "-DCUDA_PROXY")
|
||||
endif()
|
||||
|
||||
set(GPU_ARCH "sm_30" CACHE STRING "LAMMPS GPU CUDA SM primary architecture (e.g. sm_60)")
|
||||
|
||||
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/[^.]*.cu)
|
||||
list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_pppm.cu)
|
||||
|
||||
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()
|
||||
|
||||
# build arch/gencode commands for nvcc based on CUDA toolkit version and use choice
|
||||
# --arch translates directly instead of JIT, so this should be for the preferred or most common architecture
|
||||
set(GPU_CUDA_GENCODE "-arch=${GPU_ARCH} ")
|
||||
# Fermi (GPU Arch 2.x) is supported by CUDA 3.2 to CUDA 8.0
|
||||
if((CUDA_VERSION VERSION_GREATER "3.1") AND (CUDA_VERSION VERSION_LESS "9.0"))
|
||||
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_20,code=[sm_20,compute_20] ")
|
||||
endif()
|
||||
# Kepler (GPU Arch 3.x) is supported by CUDA 5 and later
|
||||
if(CUDA_VERSION VERSION_GREATER "4.9")
|
||||
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_30,code=[sm_30,compute_30] -gencode arch=compute_35,code=[sm_35,compute_35] ")
|
||||
endif()
|
||||
# Maxwell (GPU Arch 5.x) is supported by CUDA 6 and later
|
||||
if(CUDA_VERSION VERSION_GREATER "5.9")
|
||||
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52] ")
|
||||
endif()
|
||||
# Pascal (GPU Arch 6.x) is supported by CUDA 8 and later
|
||||
if(CUDA_VERSION VERSION_GREATER "7.9")
|
||||
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_60,code=[sm_60,compute_60] -gencode arch=compute_61,code=[sm_61,compute_61] ")
|
||||
endif()
|
||||
# Volta (GPU Arch 7.0) is supported by CUDA 9 and later
|
||||
if(CUDA_VERSION VERSION_GREATER "8.9")
|
||||
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_70,code=[sm_70,compute_70] ")
|
||||
endif()
|
||||
# Turing (GPU Arch 7.5) is supported by CUDA 10 and later
|
||||
if(CUDA_VERSION VERSION_GREATER "9.9")
|
||||
string(APPEND GPU_CUDA_GENCODE "-gencode arch=compute_75,code=[sm_75,compute_75] ")
|
||||
endif()
|
||||
|
||||
cuda_compile_fatbin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS
|
||||
-DUNIX -O3 --use_fast_math -Wno-deprecated-gpu-targets -DNV_KERNEL -DUCL_CUDADR ${GPU_CUDA_GENCODE} -D_${GPU_PREC_SETTING})
|
||||
|
||||
cuda_compile(GPU_OBJS ${GPU_LIB_CUDPP_CU} OPTIONS ${CUDA_REQUEST_PIC}
|
||||
-DUNIX -O3 --use_fast_math -Wno-deprecated-gpu-targets -DUCL_CUDADR ${GPU_CUDA_GENCODE} -D_${GPU_PREC_SETTING})
|
||||
|
||||
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_SETTING} -DMPI_GERYON -DUCL_NO_EXIT ${GPU_CUDA_MPS_FLAGS})
|
||||
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(OCL_TUNE_VALUES intel fermi kepler cypress generic)
|
||||
set_property(CACHE OCL_TUNE PROPERTY STRINGS ${OCL_TUNE_VALUES})
|
||||
validate_option(OCL_TUNE OCL_TUNE_VALUES)
|
||||
string(TOUPPER ${OCL_TUNE} OCL_TUNE)
|
||||
|
||||
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
|
||||
${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_re_squared.cu
|
||||
${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_re_squared_lj.cu
|
||||
${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_tersoff.cu
|
||||
${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_tersoff_zbl.cu
|
||||
${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_tersoff_mod.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)
|
||||
GenerateOpenCLHeader(re_squared ${CMAKE_CURRENT_BINARY_DIR}/gpu/re_squared_cl.h ${OCL_COMMON_HEADERS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_ellipsoid_extra.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_re_squared.cu)
|
||||
GenerateOpenCLHeader(re_squared_lj ${CMAKE_CURRENT_BINARY_DIR}/gpu/re_squared_lj_cl.h ${OCL_COMMON_HEADERS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_ellipsoid_extra.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_re_squared_lj.cu)
|
||||
GenerateOpenCLHeader(tersoff ${CMAKE_CURRENT_BINARY_DIR}/gpu/tersoff_cl.h ${OCL_COMMON_HEADERS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_tersoff_extra.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_tersoff.cu)
|
||||
GenerateOpenCLHeader(tersoff_zbl ${CMAKE_CURRENT_BINARY_DIR}/gpu/tersoff_zbl_cl.h ${OCL_COMMON_HEADERS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_tersoff_zbl_extra.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_tersoff_zbl.cu)
|
||||
GenerateOpenCLHeader(tersoff_mod ${CMAKE_CURRENT_BINARY_DIR}/gpu/tersoff_mod_cl.h ${OCL_COMMON_HEADERS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_tersoff_mod_extra.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_tersoff_mod.cu)
|
||||
|
||||
list(APPEND GPU_LIB_SOURCES
|
||||
${CMAKE_CURRENT_BINARY_DIR}/gpu/gayberne_cl.h
|
||||
${CMAKE_CURRENT_BINARY_DIR}/gpu/gayberne_lj_cl.h
|
||||
${CMAKE_CURRENT_BINARY_DIR}/gpu/re_squared_cl.h
|
||||
${CMAKE_CURRENT_BINARY_DIR}/gpu/re_squared_lj_cl.h
|
||||
${CMAKE_CURRENT_BINARY_DIR}/gpu/tersoff_cl.h
|
||||
${CMAKE_CURRENT_BINARY_DIR}/gpu/tersoff_zbl_cl.h
|
||||
${CMAKE_CURRENT_BINARY_DIR}/gpu/tersoff_mod_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_SETTING} -D${OCL_TUNE}_OCL -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()
|
||||
49
cmake/Modules/Packages/KIM.cmake
Normal file
@ -0,0 +1,49 @@
|
||||
if(PKG_KIM)
|
||||
find_package(CURL)
|
||||
if(CURL_FOUND)
|
||||
include_directories(${CURL_INCLUDE_DIRS})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${CURL_LIBRARIES})
|
||||
add_definitions(-DLMP_KIM_CURL)
|
||||
endif()
|
||||
find_package(KIM-API QUIET)
|
||||
if(KIM-API_FOUND)
|
||||
set(DOWNLOAD_KIM_DEFAULT OFF)
|
||||
else()
|
||||
if (NOT DOWNLOAD_KIM)
|
||||
message(WARNING "KIM-API package not found. We will download and build our own")
|
||||
endif()
|
||||
set(DOWNLOAD_KIM_DEFAULT ON)
|
||||
endif()
|
||||
option(DOWNLOAD_KIM "Download KIM-API from OpenKIM instead of using an already installed one" ${DOWNLOAD_KIM_DEFAULT})
|
||||
if(DOWNLOAD_KIM)
|
||||
if(CMAKE_GENERATOR STREQUAL "Ninja")
|
||||
message(FATAL_ERROR "Cannot build downloaded KIM-API library with Ninja build tool")
|
||||
endif()
|
||||
message(STATUS "KIM-API download requested - we will build our own")
|
||||
include(CheckLanguage)
|
||||
include(ExternalProject)
|
||||
enable_language(C)
|
||||
check_language(Fortran)
|
||||
if(NOT CMAKE_Fortran_COMPILER)
|
||||
message(FATAL_ERROR "Compiling the KIM-API library requires a Fortran compiler")
|
||||
endif()
|
||||
ExternalProject_Add(kim_build
|
||||
URL https://s3.openkim.org/kim-api/kim-api-2.1.2.txz
|
||||
URL_MD5 6ac52e14ef52967fc7858220b208cba5
|
||||
BINARY_DIR build
|
||||
CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
|
||||
-DCMAKE_Fortran_COMPILER=${CMAKE_Fortran_COMPILER}
|
||||
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
|
||||
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||
)
|
||||
ExternalProject_get_property(kim_build INSTALL_DIR)
|
||||
set(KIM-API_INCLUDE_DIRS ${INSTALL_DIR}/include/kim-api)
|
||||
set(KIM-API_LDFLAGS ${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/libkim-api${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||
list(APPEND LAMMPS_DEPS kim_build)
|
||||
else()
|
||||
find_package(KIM-API REQUIRED)
|
||||
endif()
|
||||
list(APPEND LAMMPS_LINK_LIBS "${KIM-API_LDFLAGS}")
|
||||
include_directories(${KIM-API_INCLUDE_DIRS})
|
||||
endif()
|
||||
53
cmake/Modules/Packages/KOKKOS.cmake
Normal file
@ -0,0 +1,53 @@
|
||||
if(PKG_KOKKOS)
|
||||
set(LAMMPS_LIB_KOKKOS_SRC_DIR ${LAMMPS_LIB_SOURCE_DIR}/kokkos)
|
||||
set(LAMMPS_LIB_KOKKOS_BIN_DIR ${LAMMPS_LIB_BINARY_DIR}/kokkos)
|
||||
add_definitions(-DLMP_KOKKOS)
|
||||
add_subdirectory(${LAMMPS_LIB_KOKKOS_SRC_DIR} ${LAMMPS_LIB_KOKKOS_BIN_DIR})
|
||||
|
||||
set(Kokkos_INCLUDE_DIRS ${LAMMPS_LIB_KOKKOS_SRC_DIR}/core/src
|
||||
${LAMMPS_LIB_KOKKOS_SRC_DIR}/containers/src
|
||||
${LAMMPS_LIB_KOKKOS_SRC_DIR}/algorithms/src
|
||||
${LAMMPS_LIB_KOKKOS_BIN_DIR})
|
||||
include_directories(${Kokkos_INCLUDE_DIRS})
|
||||
list(APPEND LAMMPS_LINK_LIBS kokkos)
|
||||
|
||||
set(KOKKOS_PKG_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/KOKKOS)
|
||||
set(KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/kokkos.cpp
|
||||
${KOKKOS_PKG_SOURCES_DIR}/atom_kokkos.cpp
|
||||
${KOKKOS_PKG_SOURCES_DIR}/atom_vec_kokkos.cpp
|
||||
${KOKKOS_PKG_SOURCES_DIR}/comm_kokkos.cpp
|
||||
${KOKKOS_PKG_SOURCES_DIR}/comm_tiled_kokkos.cpp
|
||||
${KOKKOS_PKG_SOURCES_DIR}/neighbor_kokkos.cpp
|
||||
${KOKKOS_PKG_SOURCES_DIR}/neigh_list_kokkos.cpp
|
||||
${KOKKOS_PKG_SOURCES_DIR}/neigh_bond_kokkos.cpp
|
||||
${KOKKOS_PKG_SOURCES_DIR}/fix_nh_kokkos.cpp
|
||||
${KOKKOS_PKG_SOURCES_DIR}/nbin_kokkos.cpp
|
||||
${KOKKOS_PKG_SOURCES_DIR}/npair_kokkos.cpp
|
||||
${KOKKOS_PKG_SOURCES_DIR}/domain_kokkos.cpp
|
||||
${KOKKOS_PKG_SOURCES_DIR}/modify_kokkos.cpp)
|
||||
|
||||
if(PKG_KSPACE)
|
||||
list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/gridcomm_kokkos.cpp)
|
||||
endif()
|
||||
|
||||
set_property(GLOBAL PROPERTY "KOKKOS_PKG_SOURCES" "${KOKKOS_PKG_SOURCES}")
|
||||
|
||||
# detects styles which have KOKKOS version
|
||||
RegisterStylesExt(${KOKKOS_PKG_SOURCES_DIR} kokkos KOKKOS_PKG_SOURCES)
|
||||
|
||||
# register kokkos-only styles
|
||||
RegisterNBinStyle(${KOKKOS_PKG_SOURCES_DIR}/nbin_kokkos.h)
|
||||
RegisterNPairStyle(${KOKKOS_PKG_SOURCES_DIR}/npair_kokkos.h)
|
||||
|
||||
if(PKG_USER-DPD)
|
||||
get_property(KOKKOS_PKG_SOURCES GLOBAL PROPERTY KOKKOS_PKG_SOURCES)
|
||||
list(APPEND KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/npair_ssa_kokkos.cpp)
|
||||
RegisterNPairStyle(${KOKKOS_PKG_SOURCES_DIR}/npair_ssa_kokkos.h)
|
||||
set_property(GLOBAL PROPERTY "KOKKOS_PKG_SOURCES" "${KOKKOS_PKG_SOURCES}")
|
||||
endif()
|
||||
|
||||
get_property(KOKKOS_PKG_SOURCES GLOBAL PROPERTY KOKKOS_PKG_SOURCES)
|
||||
|
||||
list(APPEND LIB_SOURCES ${KOKKOS_PKG_SOURCES})
|
||||
include_directories(${KOKKOS_PKG_SOURCES_DIR})
|
||||
endif()
|
||||
42
cmake/Modules/Packages/KSPACE.cmake
Normal file
@ -0,0 +1,42 @@
|
||||
if(PKG_KSPACE)
|
||||
option(FFT_SINGLE "Use single precision FFTs instead of double precision FFTs" OFF)
|
||||
set(FFTW "FFTW3")
|
||||
if(FFT_SINGLE)
|
||||
set(FFTW "FFTW3F")
|
||||
add_definitions(-DFFT_SINGLE)
|
||||
endif()
|
||||
find_package(${FFTW} QUIET)
|
||||
if(${FFTW}_FOUND)
|
||||
set(FFT "FFTW3" CACHE STRING "FFT library for KSPACE package")
|
||||
else()
|
||||
set(FFT "KISS" CACHE STRING "FFT library for KSPACE package")
|
||||
endif()
|
||||
set(FFT_VALUES KISS FFTW3 MKL)
|
||||
set_property(CACHE FFT PROPERTY STRINGS ${FFT_VALUES})
|
||||
validate_option(FFT FFT_VALUES)
|
||||
string(TOUPPER ${FFT} FFT)
|
||||
|
||||
if(FFT STREQUAL "FFTW3")
|
||||
find_package(${FFTW} REQUIRED)
|
||||
add_definitions(-DFFT_FFTW3)
|
||||
include_directories(${${FFTW}_INCLUDE_DIRS})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${${FFTW}_LIBRARIES})
|
||||
elseif(FFT STREQUAL "MKL")
|
||||
find_package(MKL REQUIRED)
|
||||
add_definitions(-DFFT_MKL)
|
||||
include_directories(${MKL_INCLUDE_DIRS})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${MKL_LIBRARIES})
|
||||
else()
|
||||
# last option is KISSFFT
|
||||
add_definitions(-DFFT_KISS)
|
||||
endif()
|
||||
|
||||
set(FFT_PACK "array" CACHE STRING "Optimization for FFT")
|
||||
set(FFT_PACK_VALUES array pointer memcpy)
|
||||
set_property(CACHE FFT_PACK PROPERTY STRINGS ${FFT_PACK_VALUES})
|
||||
validate_option(FFT_PACK FFT_PACK_VALUES)
|
||||
if(NOT FFT_PACK STREQUAL "array")
|
||||
string(TOUPPER ${FFT_PACK} FFT_PACK)
|
||||
add_definitions(-DFFT_PACK_${FFT_PACK})
|
||||
endif()
|
||||
endif()
|
||||
38
cmake/Modules/Packages/LATTE.cmake
Normal file
@ -0,0 +1,38 @@
|
||||
if(PKG_LATTE)
|
||||
enable_language(Fortran)
|
||||
find_package(LATTE)
|
||||
if(LATTE_FOUND)
|
||||
set(DOWNLOAD_LATTE_DEFAULT OFF)
|
||||
else()
|
||||
set(DOWNLOAD_LATTE_DEFAULT ON)
|
||||
endif()
|
||||
option(DOWNLOAD_LATTE "Download the LATTE library instead of using an already installed one" ${DOWNLOAD_LATTE_DEFAULT})
|
||||
if(DOWNLOAD_LATTE)
|
||||
if (CMAKE_VERSION VERSION_LESS "3.7") # due to SOURCE_SUBDIR
|
||||
message(FATAL_ERROR "For downlading LATTE you need at least cmake-3.7")
|
||||
endif()
|
||||
if(CMAKE_GENERATOR STREQUAL "Ninja")
|
||||
message(FATAL_ERROR "Cannot build downloaded LATTE library with Ninja build tool")
|
||||
endif()
|
||||
message(STATUS "LATTE download requested - we will build our own")
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(latte_build
|
||||
URL https://github.com/lanl/LATTE/archive/v1.2.1.tar.gz
|
||||
URL_MD5 85ac414fdada2d04619c8f936344df14
|
||||
SOURCE_SUBDIR cmake
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> ${CMAKE_REQUEST_PIC}
|
||||
-DBLAS_LIBRARIES=${BLAS_LIBRARIES} -DLAPACK_LIBRARIES=${LAPACK_LIBRARIES}
|
||||
-DCMAKE_Fortran_COMPILER=${CMAKE_Fortran_COMPILER} -DCMAKE_Fortran_FLAGS=${CMAKE_Fortran_FLAGS}
|
||||
-DCMAKE_Fortran_FLAGS_${BTYPE}=${CMAKE_Fortran_FLAGS_${BTYPE}} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||
)
|
||||
ExternalProject_get_property(latte_build INSTALL_DIR)
|
||||
set(LATTE_LIBRARIES ${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/liblatte.a)
|
||||
list(APPEND LAMMPS_DEPS latte_build)
|
||||
else()
|
||||
find_package(LATTE)
|
||||
if(NOT LATTE_FOUND)
|
||||
message(FATAL_ERROR "LATTE library not found, help CMake to find it by setting LATTE_LIBRARY, or set DOWNLOAD_LATTE=ON to download it")
|
||||
endif()
|
||||
endif()
|
||||
list(APPEND LAMMPS_LINK_LIBS ${LATTE_LIBRARIES} ${LAPACK_LIBRARIES})
|
||||
endif()
|
||||
29
cmake/Modules/Packages/MESSAGE.cmake
Normal file
@ -0,0 +1,29 @@
|
||||
if(PKG_MESSAGE)
|
||||
option(MESSAGE_ZMQ "Use ZeroMQ in MESSAGE package" OFF)
|
||||
file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.F
|
||||
${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.c
|
||||
${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.cpp)
|
||||
|
||||
add_library(cslib STATIC ${cslib_SOURCES})
|
||||
if(BUILD_MPI)
|
||||
target_compile_definitions(cslib PRIVATE -DMPI_YES)
|
||||
set_target_properties(cslib PROPERTIES OUTPUT_NAME "csmpi")
|
||||
else()
|
||||
target_compile_definitions(cslib PRIVATE -DMPI_NO)
|
||||
target_include_directories(cslib PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src/STUBS_MPI)
|
||||
set_target_properties(cslib PROPERTIES OUTPUT_NAME "csnompi")
|
||||
endif()
|
||||
|
||||
if(MESSAGE_ZMQ)
|
||||
target_compile_definitions(cslib PRIVATE -DZMQ_YES)
|
||||
find_package(ZMQ REQUIRED)
|
||||
target_include_directories(cslib PRIVATE ${ZMQ_INCLUDE_DIRS})
|
||||
target_link_libraries(cslib PUBLIC ${ZMQ_LIBRARIES})
|
||||
else()
|
||||
target_compile_definitions(cslib PRIVATE -DZMQ_NO)
|
||||
target_include_directories(cslib PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src/STUBS_ZMQ)
|
||||
endif()
|
||||
|
||||
list(APPEND LAMMPS_LINK_LIBS cslib)
|
||||
include_directories(${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src)
|
||||
endif()
|
||||
45
cmake/Modules/Packages/MSCG.cmake
Normal file
@ -0,0 +1,45 @@
|
||||
if(PKG_MSCG)
|
||||
find_package(GSL REQUIRED)
|
||||
find_package(MSCG QUIET)
|
||||
if(MSGC_FOUND)
|
||||
set(DOWNLOAD_MSCG_DEFAULT OFF)
|
||||
else()
|
||||
set(DOWNLOAD_MSCG_DEFAULT ON)
|
||||
endif()
|
||||
option(DOWNLOAD_MSCG "Download MSCG library instead of using an already installed one)" ${DOWNLOAD_MSCG_DEFAULT})
|
||||
if(DOWNLOAD_MSCG)
|
||||
if (CMAKE_VERSION VERSION_LESS "3.7") # due to SOURCE_SUBDIR
|
||||
message(FATAL_ERROR "For downlading MSCG you need at least cmake-3.7")
|
||||
endif()
|
||||
if(CMAKE_GENERATOR STREQUAL "Ninja")
|
||||
message(FATAL_ERROR "Cannot build downloaded MSCG library with Ninja build tool")
|
||||
endif()
|
||||
include(ExternalProject)
|
||||
if(NOT LAPACK_FOUND)
|
||||
set(EXTRA_MSCG_OPTS "-DLAPACK_LIBRARIES=${CMAKE_CURRENT_BINARY_DIR}/liblinalg.a")
|
||||
endif()
|
||||
ExternalProject_Add(mscg_build
|
||||
URL https://github.com/uchicago-voth/MSCG-release/archive/1.7.3.1.tar.gz
|
||||
URL_MD5 8c45e269ee13f60b303edd7823866a91
|
||||
SOURCE_SUBDIR src/CMake
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> ${CMAKE_REQUEST_PIC} ${EXTRA_MSCG_OPTS}
|
||||
BUILD_COMMAND make mscg INSTALL_COMMAND ""
|
||||
)
|
||||
ExternalProject_get_property(mscg_build BINARY_DIR)
|
||||
set(MSCG_LIBRARIES ${BINARY_DIR}/libmscg.a)
|
||||
ExternalProject_get_property(mscg_build SOURCE_DIR)
|
||||
set(MSCG_INCLUDE_DIRS ${SOURCE_DIR}/src)
|
||||
list(APPEND LAMMPS_DEPS mscg_build)
|
||||
if(NOT LAPACK_FOUND)
|
||||
file(MAKE_DIRECTORY ${MSCG_INCLUDE_DIRS})
|
||||
add_dependencies(mscg_build linalg)
|
||||
endif()
|
||||
else()
|
||||
find_package(MSCG)
|
||||
if(NOT MSCG_FOUND)
|
||||
message(FATAL_ERROR "MSCG not found, help CMake to find it by setting MSCG_LIBRARY and MSCG_INCLUDE_DIRS, or set DOWNLOAD_MSCG=ON to download it")
|
||||
endif()
|
||||
endif()
|
||||
list(APPEND LAMMPS_LINK_LIBS ${MSCG_LIBRARIES} ${GSL_LIBRARIES} ${LAPACK_LIBRARIES})
|
||||
include_directories(${MSCG_INCLUDE_DIRS})
|
||||
endif()
|
||||
13
cmake/Modules/Packages/OPT.cmake
Normal file
@ -0,0 +1,13 @@
|
||||
if(PKG_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()
|
||||
6
cmake/Modules/Packages/PYTHON.cmake
Normal file
@ -0,0 +1,6 @@
|
||||
if(PKG_PYTHON)
|
||||
find_package(PythonLibs REQUIRED)
|
||||
add_definitions(-DLMP_PYTHON)
|
||||
include_directories(${PYTHON_INCLUDE_DIR})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${PYTHON_LIBRARY})
|
||||
endif()
|
||||
20
cmake/Modules/Packages/QEQ.cmake
Normal file
@ -0,0 +1,20 @@
|
||||
# Fix qeq/fire requires MANYBODY (i.e. COMB and COMB3) to be installed
|
||||
if(PKG_QEQ)
|
||||
set(QEQ_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/QEQ)
|
||||
file(GLOB QEQ_HEADERS ${QEQ_SOURCES_DIR}/fix*.h)
|
||||
file(GLOB QEQ_SOURCES ${QEQ_SOURCES_DIR}/fix*.cpp)
|
||||
|
||||
if(NOT PKG_MANYBODY)
|
||||
list(REMOVE_ITEM QEQ_HEADERS ${QEQ_SOURCES_DIR}/fix_qeq_fire.h)
|
||||
list(REMOVE_ITEM QEQ_SOURCES ${QEQ_SOURCES_DIR}/fix_qeq_fire.cpp)
|
||||
endif()
|
||||
set_property(GLOBAL PROPERTY "QEQ_SOURCES" "${QEQ_SOURCES}")
|
||||
|
||||
foreach(MY_HEADER ${QEQ_HEADERS})
|
||||
AddStyleHeader(${MY_HEADER} FIX)
|
||||
endforeach()
|
||||
|
||||
get_property(QEQ_SOURCES GLOBAL PROPERTY QEQ_SOURCES)
|
||||
list(APPEND LIB_SOURCES ${QEQ_SOURCES})
|
||||
include_directories(${QEQ_SOURCES_DIR})
|
||||
endif()
|
||||
8
cmake/Modules/Packages/USER-H5MD.cmake
Normal file
@ -0,0 +1,8 @@
|
||||
if(PKG_USER-H5MD)
|
||||
enable_language(C)
|
||||
|
||||
find_package(HDF5 REQUIRED)
|
||||
target_link_libraries(h5md ${HDF5_LIBRARIES})
|
||||
target_include_directories(h5md PRIVATE ${HDF5_INCLUDE_DIRS})
|
||||
include_directories(${HDF5_INCLUDE_DIRS})
|
||||
endif()
|
||||
118
cmake/Modules/Packages/USER-INTEL.cmake
Normal file
@ -0,0 +1,118 @@
|
||||
if(PKG_USER-INTEL)
|
||||
check_include_file_cxx(immintrin.h FOUND_IMMINTRIN)
|
||||
if(NOT FOUND_IMMINTRIN)
|
||||
message(FATAL_ERROR "immintrin.h header not found, Intel package won't work without it")
|
||||
endif()
|
||||
|
||||
add_definitions(-DLMP_USER_INTEL)
|
||||
|
||||
set(INTEL_ARCH "cpu" CACHE STRING "Architectures used by USER-INTEL (cpu or knl)")
|
||||
set(INTEL_ARCH_VALUES cpu knl)
|
||||
set_property(CACHE INTEL_ARCH PROPERTY STRINGS ${INTEL_ARCH_VALUES})
|
||||
validate_option(INTEL_ARCH INTEL_ARCH_VALUES)
|
||||
string(TOUPPER ${INTEL_ARCH} INTEL_ARCH)
|
||||
|
||||
find_package(Threads QUIET)
|
||||
if(Threads_FOUND)
|
||||
set(INTEL_LRT_MODE "threads" CACHE STRING "Long-range threads mode (none, threads, or c++11)")
|
||||
else()
|
||||
set(INTEL_LRT_MODE "none" CACHE STRING "Long-range threads mode (none, threads, or c++11)")
|
||||
endif()
|
||||
set(INTEL_LRT_VALUES none threads c++11)
|
||||
set_property(CACHE INTEL_LRT_MODE PROPERTY STRINGS ${INTEL_LRT_VALUES})
|
||||
validate_option(INTEL_LRT_MODE INTEL_LRT_VALUES)
|
||||
string(TOUPPER ${INTEL_LRT_MODE} INTEL_LRT_MODE)
|
||||
if(INTEL_LRT_MODE STREQUAL "THREADS")
|
||||
if(Threads_FOUND)
|
||||
add_definitions(-DLMP_INTEL_USELRT)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${CMAKE_THREAD_LIBS_INIT})
|
||||
else()
|
||||
message(FATAL_ERROR "Must have working threads library for Long-range thread support")
|
||||
endif()
|
||||
endif()
|
||||
if(INTEL_LRT_MODE STREQUAL "C++11")
|
||||
add_definitions(-DLMP_INTEL_USERLRT -DLMP_INTEL_LRT11)
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
|
||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16)
|
||||
message(FATAL_ERROR "USER-INTEL needs at least a 2016 Intel compiler, found ${CMAKE_CXX_COMPILER_VERSION}")
|
||||
endif()
|
||||
else()
|
||||
message(WARNING "USER-INTEL gives best performance with Intel compilers")
|
||||
endif()
|
||||
|
||||
find_package(TBB QUIET)
|
||||
if(TBB_FOUND)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${TBB_MALLOC_LIBRARIES})
|
||||
else()
|
||||
add_definitions(-DLMP_INTEL_NO_TBB)
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
|
||||
message(WARNING "USER-INTEL with Intel compilers should use TBB malloc libraries")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_package(MKL QUIET)
|
||||
if(MKL_FOUND)
|
||||
add_definitions(-DLMP_USE_MKL_RNG)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${MKL_LIBRARIES})
|
||||
else()
|
||||
message(STATUS "Pair style dpd/intel will be faster with MKL libraries")
|
||||
endif()
|
||||
|
||||
if((NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows") AND (NOT ${LAMMPS_MEMALIGN} STREQUAL "64") AND (NOT ${LAMMPS_MEMALIGN} STREQUAL "128") AND (NOT ${LAMMPS_MEMALIGN} STREQUAL "256"))
|
||||
message(FATAL_ERROR "USER-INTEL only supports memory alignment of 64, 128 or 256 on this platform")
|
||||
endif()
|
||||
|
||||
if(INTEL_ARCH STREQUAL "KNL")
|
||||
if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
|
||||
message(FATAL_ERROR "Must use Intel compiler with USER-INTEL for KNL architecture")
|
||||
endif()
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -xHost -qopenmp -qoffload")
|
||||
set(MIC_OPTIONS "-qoffload-option,mic,compiler,\"-fp-model fast=2 -mGLOB_default_function_attrs=\\\"gather_scatter_loop_unroll=4\\\"\"")
|
||||
add_compile_options(-xMIC-AVX512 -qoffload -fno-alias -ansi-alias -restrict -qoverride-limits ${MIC_OPTIONS})
|
||||
add_definitions(-DLMP_INTEL_OFFLOAD)
|
||||
else()
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
|
||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.3 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 17.4)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -xCOMMON-AVX512")
|
||||
else()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -xHost")
|
||||
endif()
|
||||
include(CheckCXXCompilerFlag)
|
||||
foreach(_FLAG -O2 -fp-model fast=2 -no-prec-div -qoverride-limits -qopt-zmm-usage=high -qno-offload -fno-alias -ansi-alias -restrict)
|
||||
check_cxx_compiler_flag("${__FLAG}" COMPILER_SUPPORTS${_FLAG})
|
||||
if(COMPILER_SUPPORTS${_FLAG})
|
||||
add_compile_options(${_FLAG})
|
||||
endif()
|
||||
endforeach()
|
||||
else()
|
||||
add_compile_options(-O3 -ffast-math)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# collect sources
|
||||
set(USER-INTEL_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-INTEL)
|
||||
set(USER-INTEL_SOURCES ${USER-INTEL_SOURCES_DIR}/fix_intel.cpp
|
||||
${USER-INTEL_SOURCES_DIR}/fix_nh_intel.cpp
|
||||
${USER-INTEL_SOURCES_DIR}/intel_buffers.cpp
|
||||
${USER-INTEL_SOURCES_DIR}/nbin_intel.cpp
|
||||
${USER-INTEL_SOURCES_DIR}/npair_intel.cpp)
|
||||
|
||||
set_property(GLOBAL PROPERTY "USER-INTEL_SOURCES" "${USER-INTEL_SOURCES}")
|
||||
|
||||
# detect styles which have a USER-INTEL version
|
||||
RegisterStylesExt(${USER-INTEL_SOURCES_DIR} intel USER-INTEL_SOURCES)
|
||||
RegisterNBinStyle(${USER-INTEL_SOURCES_DIR}/nbin_intel.h)
|
||||
RegisterNPairStyle(${USER-INTEL_SOURCES_DIR}/npair_intel.h)
|
||||
RegisterFixStyle(${USER-INTEL_SOURCES_DIR}/fix_intel.h)
|
||||
|
||||
get_property(USER-INTEL_SOURCES GLOBAL PROPERTY USER-INTEL_SOURCES)
|
||||
if(PKG_KSPACE)
|
||||
list(APPEND USER-INTEL_SOURCES ${USER-INTEL_SOURCES_DIR}/verlet_lrt_intel.cpp)
|
||||
RegisterIntegrateStyle(${USER-INTEL_SOURCES_DIR}/verlet_lrt_intel.h)
|
||||
endif()
|
||||
|
||||
list(APPEND LIB_SOURCES ${USER-INTEL_SOURCES})
|
||||
include_directories(${USER-INTEL_SOURCES_DIR})
|
||||
endif()
|
||||
10
cmake/Modules/Packages/USER-MOLFILE.cmake
Normal file
@ -0,0 +1,10 @@
|
||||
if(PKG_USER-MOLFILE)
|
||||
set(MOLFILE_INCLUDE_DIRS "${LAMMPS_LIB_SOURCE_DIR}/molfile" CACHE STRING "Path to VMD molfile plugin headers")
|
||||
add_library(molfile INTERFACE)
|
||||
target_include_directories(molfile INTERFACE ${MOLFILE_INCLUDE_DIRS})
|
||||
# no need to link with -ldl on windows
|
||||
if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
|
||||
target_link_libraries(molfile INTERFACE ${CMAKE_DL_LIBS})
|
||||
endif()
|
||||
list(APPEND LAMMPS_LINK_LIBS molfile)
|
||||
endif()
|
||||
6
cmake/Modules/Packages/USER-NETCDF.cmake
Normal file
@ -0,0 +1,6 @@
|
||||
if(PKG_USER-NETCDF)
|
||||
find_package(NetCDF REQUIRED)
|
||||
include_directories(${NETCDF_INCLUDE_DIRS})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${NETCDF_LIBRARIES})
|
||||
add_definitions(-DLMP_HAS_NETCDF -DNC_64BIT_DATA=0x0020)
|
||||
endif()
|
||||
42
cmake/Modules/Packages/USER-OMP.cmake
Normal file
@ -0,0 +1,42 @@
|
||||
if(PKG_USER-OMP)
|
||||
set(USER-OMP_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-OMP)
|
||||
set(USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/thr_data.cpp
|
||||
${USER-OMP_SOURCES_DIR}/thr_omp.cpp
|
||||
${USER-OMP_SOURCES_DIR}/fix_omp.cpp
|
||||
${USER-OMP_SOURCES_DIR}/fix_nh_omp.cpp
|
||||
${USER-OMP_SOURCES_DIR}/fix_nh_sphere_omp.cpp
|
||||
${USER-OMP_SOURCES_DIR}/domain_omp.cpp)
|
||||
add_definitions(-DLMP_USER_OMP)
|
||||
set_property(GLOBAL PROPERTY "OMP_SOURCES" "${USER-OMP_SOURCES}")
|
||||
|
||||
# detects styles which have USER-OMP version
|
||||
RegisterStylesExt(${USER-OMP_SOURCES_DIR} omp OMP_SOURCES)
|
||||
RegisterFixStyle(${USER-OMP_SOURCES_DIR}/fix_omp.h)
|
||||
|
||||
get_property(USER-OMP_SOURCES GLOBAL PROPERTY OMP_SOURCES)
|
||||
|
||||
# manually add package dependent source files from USER-OMP that do not provide styles
|
||||
|
||||
if(PKG_ASPHERE)
|
||||
list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/fix_nh_asphere_omp.cpp)
|
||||
endif()
|
||||
|
||||
if(PKG_RIGID)
|
||||
list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/fix_rigid_nh_omp.cpp)
|
||||
endif()
|
||||
|
||||
if(PKG_USER-REAXC)
|
||||
list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/reaxc_bond_orders_omp.cpp
|
||||
${USER-OMP_SOURCES_DIR}/reaxc_hydrogen_bonds_omp.cpp
|
||||
${USER-OMP_SOURCES_DIR}/reaxc_nonbonded_omp.cpp
|
||||
${USER-OMP_SOURCES_DIR}/reaxc_bonds_omp.cpp
|
||||
${USER-OMP_SOURCES_DIR}/reaxc_init_md_omp.cpp
|
||||
${USER-OMP_SOURCES_DIR}/reaxc_torsion_angles_omp.cpp
|
||||
${USER-OMP_SOURCES_DIR}/reaxc_forces_omp.cpp
|
||||
${USER-OMP_SOURCES_DIR}/reaxc_multi_body_omp.cpp
|
||||
${USER-OMP_SOURCES_DIR}/reaxc_valence_angles_omp.cpp)
|
||||
endif()
|
||||
|
||||
list(APPEND LIB_SOURCES ${USER-OMP_SOURCES})
|
||||
include_directories(${USER-OMP_SOURCES_DIR})
|
||||
endif()
|
||||
91
cmake/Modules/Packages/USER-PLUMED.cmake
Normal file
@ -0,0 +1,91 @@
|
||||
if(PKG_USER-PLUMED)
|
||||
set(PLUMED_MODE "static" CACHE STRING "Linkage mode for Plumed2 library")
|
||||
set(PLUMED_MODE_VALUES static shared runtime)
|
||||
set_property(CACHE PLUMED_MODE PROPERTY STRINGS ${PLUMED_MODE_VALUES})
|
||||
validate_option(PLUMED_MODE PLUMED_MODE_VALUES)
|
||||
string(TOUPPER ${PLUMED_MODE} PLUMED_MODE)
|
||||
|
||||
set(PLUMED_LINK_LIBS "")
|
||||
if(PLUMED_MODE STREQUAL "STATIC")
|
||||
find_package(LAPACK REQUIRED)
|
||||
find_package(BLAS REQUIRED)
|
||||
find_package(GSL REQUIRED)
|
||||
list(APPEND LAPACK_LIBRARIES ${BLAS_LIBRARIES})
|
||||
list(APPEND PLUMED_LINK_LIBS ${LAPACK_LIBRARIES} ${GSL_LIBRARIES})
|
||||
find_package(ZLIB QUIET)
|
||||
if(ZLIB_FOUND)
|
||||
list(APPEND PLUMED_LINK_LIBS ${ZLIB_LIBRARIES})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_package(PkgConfig QUIET)
|
||||
set(DOWNLOAD_PLUMED_DEFAULT ON)
|
||||
if(PKG_CONFIG_FOUND)
|
||||
pkg_check_modules(PLUMED QUIET plumed)
|
||||
if(PLUMED_FOUND)
|
||||
set(DOWNLOAD_PLUMED_DEFAULT OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
option(DOWNLOAD_PLUMED "Download Plumed package instead of using an already installed one" ${DOWNLOAD_PLUMED_DEFAULT})
|
||||
if(DOWNLOAD_PLUMED)
|
||||
if(CMAKE_GENERATOR STREQUAL "Ninja")
|
||||
message(FATAL_ERROR "Cannot build downloaded Plumed library with Ninja build tool")
|
||||
endif()
|
||||
if(BUILD_MPI)
|
||||
set(PLUMED_CONFIG_MPI "--enable-mpi")
|
||||
set(PLUMED_CONFIG_CC ${CMAKE_MPI_C_COMPILER})
|
||||
set(PLUMED_CONFIG_CXX ${CMAKE_MPI_CXX_COMPILER})
|
||||
else()
|
||||
set(PLUMED_CONFIG_MPI "--disable-mpi")
|
||||
set(PLUMED_CONFIG_CC ${CMAKE_C_COMPILER})
|
||||
set(PLUMED_CONFIG_CXX ${CMAKE_CXX_COMPILER})
|
||||
endif()
|
||||
if(BUILD_OMP)
|
||||
set(PLUMED_CONFIG_OMP "--enable-openmp")
|
||||
else()
|
||||
set(PLUMED_CONFIG_OMP "--disable-openmp")
|
||||
endif()
|
||||
message(STATUS "PLUMED download requested - we will build our own")
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(plumed_build
|
||||
URL https://github.com/plumed/plumed2/releases/download/v2.5.2/plumed-src-2.5.2.tgz
|
||||
URL_MD5 bd2f18346c788eb54e1e52f4f6acf41a
|
||||
BUILD_IN_SOURCE 1
|
||||
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR>
|
||||
${CONFIGURE_REQUEST_PIC}
|
||||
--enable-modules=all
|
||||
${PLUMED_CONFIG_MPI}
|
||||
${PLUMED_CONFIG_OMP}
|
||||
CXX=${PLUMED_CONFIG_CXX}
|
||||
CC=${PLUMED_CONFIG_CC}
|
||||
)
|
||||
ExternalProject_get_property(plumed_build INSTALL_DIR)
|
||||
set(PLUMED_INSTALL_DIR ${INSTALL_DIR})
|
||||
list(APPEND LAMMPS_DEPS plumed_build)
|
||||
if(PLUMED_MODE STREQUAL "STATIC")
|
||||
add_definitions(-D__PLUMED_WRAPPER_CXX=1)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumed.a ${PLUMED_LINK_LIBS} ${CMAKE_DL_LIBS})
|
||||
elseif(PLUMED_MODE STREQUAL "SHARED")
|
||||
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumed${CMAKE_SHARED_LIBRARY_SUFFIX} ${PLUMED_INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_DL_LIBS})
|
||||
elseif(PLUMED_MODE STREQUAL "RUNTIME")
|
||||
add_definitions(-D__PLUMED_HAS_DLOPEN=1 -D__PLUMED_DEFAULT_KERNEL=${PLUMED_INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumedWrapper.a -rdynamic ${CMAKE_DL_LIBS})
|
||||
endif()
|
||||
set(PLUMED_INCLUDE_DIRS "${PLUMED_INSTALL_DIR}/include")
|
||||
else()
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(PLUMED REQUIRED plumed)
|
||||
if(PLUMED_MODE STREQUAL "STATIC")
|
||||
add_definitions(-D__PLUMED_WRAPPER_CXX=1)
|
||||
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.static)
|
||||
elseif(PLUMED_MODE STREQUAL "SHARED")
|
||||
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.shared)
|
||||
elseif(PLUMED_MODE STREQUAL "RUNTIME")
|
||||
add_definitions(-D__PLUMED_HAS_DLOPEN=1 -D__PLUMED_DEFAULT_KERNEL=${PLUMED_LIBDIR}/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.runtime)
|
||||
endif()
|
||||
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_LOAD})
|
||||
endif()
|
||||
include_directories(${PLUMED_INCLUDE_DIRS})
|
||||
endif()
|
||||
9
cmake/Modules/Packages/USER-QMMM.cmake
Normal file
@ -0,0 +1,9 @@
|
||||
if(PKG_USER-QMMM)
|
||||
enable_language(Fortran)
|
||||
enable_language(C)
|
||||
|
||||
message(WARNING "Building QMMM with CMake is still experimental")
|
||||
find_package(QE REQUIRED)
|
||||
include_directories(${QE_INCLUDE_DIRS})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${QE_LIBRARIES})
|
||||
endif()
|
||||
5
cmake/Modules/Packages/USER-QUIP.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
if(PKG_USER-QUIP)
|
||||
enable_language(Fortran)
|
||||
find_package(QUIP REQUIRED)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${QUIP_LIBRARIES} ${LAPACK_LIBRARIES})
|
||||
endif()
|
||||
62
cmake/Modules/Packages/USER-SCAFACOS.cmake
Normal file
@ -0,0 +1,62 @@
|
||||
if(PKG_USER-SCAFACOS)
|
||||
enable_language(Fortran)
|
||||
enable_language(C)
|
||||
|
||||
find_package(GSL REQUIRED)
|
||||
find_package(PkgConfig QUIET)
|
||||
set(DOWNLOAD_SCAFACOS_DEFAULT ON)
|
||||
if(PKG_CONFIG_FOUND)
|
||||
pkg_check_modules(SCAFACOS QUIET scafacos)
|
||||
if(SCAFACOS_FOUND)
|
||||
set(DOWNLOAD_SCAFACOS_DEFAULT OFF)
|
||||
endif()
|
||||
endif()
|
||||
option(DOWNLOAD_SCAFACOS "Download ScaFaCoS library instead of using an already installed one" ${DOWNLOAD_SCAFACOS_DEFAULT})
|
||||
if(DOWNLOAD_SCAFACOS)
|
||||
if(CMAKE_GENERATOR STREQUAL "Ninja")
|
||||
message(FATAL_ERROR "Cannot build downloaded ScaFaCoS library with Ninja build tool")
|
||||
endif()
|
||||
message(STATUS "ScaFaCoS download requested - we will build our own")
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(scafacos_build
|
||||
URL https://github.com/scafacos/scafacos/releases/download/v1.0.1/scafacos-1.0.1.tar.gz
|
||||
URL_MD5 bd46d74e3296bd8a444d731bb10c1738
|
||||
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR> --disable-doc
|
||||
--enable-fcs-solvers=fmm,p2nfft,direct,ewald,p3m
|
||||
--with-internal-fftw --with-internal-pfft
|
||||
--with-internal-pnfft ${CONFIGURE_REQUEST_PIC}
|
||||
FC=${CMAKE_MPI_Fortran_COMPILER}
|
||||
CXX=${CMAKE_MPI_CXX_COMPILER}
|
||||
CC=${CMAKE_MPI_C_COMPILER}
|
||||
F77=
|
||||
)
|
||||
ExternalProject_get_property(scafacos_build INSTALL_DIR)
|
||||
set(SCAFACOS_BUILD_DIR ${INSTALL_DIR})
|
||||
set(SCAFACOS_INCLUDE_DIRS ${SCAFACOS_BUILD_DIR}/include)
|
||||
list(APPEND LAMMPS_DEPS scafacos_build)
|
||||
# list and order from pkg_config file of ScaFaCoS build
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_direct.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_ewald.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_fmm.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_p2nfft.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_p3m.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${GSL_LIBRARIES})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_near.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_gridsort.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_resort.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_redist.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_common.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_pnfft.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_pfft.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_fftw3_mpi.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_fftw3.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${MPI_Fortran_LIBRARIES})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${MPI_C_LIBRARIES})
|
||||
else()
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(SCAFACOS REQUIRED scafacos)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_LDFLAGS})
|
||||
endif()
|
||||
include_directories(${SCAFACOS_INCLUDE_DIRS})
|
||||
endif()
|
||||
13
cmake/Modules/Packages/USER-SDPD.cmake
Normal file
@ -0,0 +1,13 @@
|
||||
# Fix rigid/meso requires RIGID to be installed
|
||||
if(PKG_USER-SDPD)
|
||||
set(USER-SDPD_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-SDPD)
|
||||
|
||||
get_property(hlist GLOBAL PROPERTY FIX)
|
||||
if(NOT PKG_RIGID)
|
||||
list(REMOVE_ITEM hlist ${USER-SDPD_SOURCES_DIR}/fix_rigid_meso.h)
|
||||
list(REMOVE_ITEM LIB_SOURCES ${USER-SDPD_SOURCES_DIR}/fix_rigid_meso.cpp)
|
||||
endif()
|
||||
set_property(GLOBAL PROPERTY FIX "${hlist}")
|
||||
|
||||
include_directories(${USER-SDPD_SOURCES_DIR})
|
||||
endif()
|
||||
28
cmake/Modules/Packages/USER-SMD.cmake
Normal file
@ -0,0 +1,28 @@
|
||||
if(PKG_USER-SMD)
|
||||
find_package(Eigen3 NO_MODULE)
|
||||
if(EIGEN3_FOUND)
|
||||
set(DOWNLOAD_EIGEN3_DEFAULT OFF)
|
||||
else()
|
||||
set(DOWNLOAD_EIGEN3_DEFAULT ON)
|
||||
endif()
|
||||
option(DOWNLOAD_EIGEN3 "Download Eigen3 instead of using an already installed one)" ${DOWNLOAD_EIGEN3_DEFAULT})
|
||||
if(DOWNLOAD_EIGEN3)
|
||||
message(STATUS "Eigen3 download requested - we will build our own")
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(Eigen3_build
|
||||
URL http://bitbucket.org/eigen/eigen/get/3.3.7.tar.gz
|
||||
URL_MD5 f2a417d083fe8ca4b8ed2bc613d20f07
|
||||
CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ""
|
||||
)
|
||||
ExternalProject_get_property(Eigen3_build SOURCE_DIR)
|
||||
set(EIGEN3_INCLUDE_DIR ${SOURCE_DIR})
|
||||
list(APPEND LAMMPS_DEPS Eigen3_build)
|
||||
else()
|
||||
find_package(Eigen3 NO_MODULE)
|
||||
mark_as_advanced(Eigen3_DIR)
|
||||
if(NOT EIGEN3_FOUND)
|
||||
message(FATAL_ERROR "Eigen3 not found, help CMake to find it by setting EIGEN3_INCLUDE_DIR, or set DOWNLOAD_EIGEN3=ON to download it")
|
||||
endif()
|
||||
endif()
|
||||
include_directories(${EIGEN3_INCLUDE_DIR})
|
||||
endif()
|
||||
6
cmake/Modules/Packages/USER-VTK.cmake
Normal file
@ -0,0 +1,6 @@
|
||||
if(PKG_USER-VTK)
|
||||
find_package(VTK REQUIRED NO_MODULE)
|
||||
include(${VTK_USE_FILE})
|
||||
add_definitions(-DLAMMPS_VTK)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${VTK_LIBRARIES})
|
||||
endif()
|
||||
45
cmake/Modules/Packages/VORONOI.cmake
Normal file
@ -0,0 +1,45 @@
|
||||
if(PKG_VORONOI)
|
||||
find_package(VORO)
|
||||
if(VORO_FOUND)
|
||||
set(DOWNLOAD_VORO_DEFAULT OFF)
|
||||
else()
|
||||
set(DOWNLOAD_VORO_DEFAULT ON)
|
||||
endif()
|
||||
option(DOWNLOAD_VORO "Download and compile the Voro++ library instead of using an already installed one" ${DOWNLOAD_VORO_DEFAULT})
|
||||
if(DOWNLOAD_VORO)
|
||||
if(CMAKE_GENERATOR STREQUAL "Ninja")
|
||||
message(FATAL_ERROR "Cannot build downloaded Voro++ library with Ninja build tool")
|
||||
endif()
|
||||
message(STATUS "Voro++ download requested - we will build our own")
|
||||
include(ExternalProject)
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
set(VORO_BUILD_CFLAGS "${CMAKE_SHARED_LIBRARY_CXX_FLAGS} ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${BTYPE}}")
|
||||
else()
|
||||
set(VORO_BUILD_CFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${BTYPE}}")
|
||||
endif()
|
||||
if(APPLE)
|
||||
get_filename_component(VORO_CXX ${CMAKE_CXX_COMPILER} NAME_WE)
|
||||
set(VORO_BUILD_OPTIONS CXX=${VORO_CXX} CFLAGS=${VORO_BUILD_CFLAGS})
|
||||
else()
|
||||
set(VORO_BUILD_OPTIONS CXX=${CMAKE_CXX_COMPILER} CFLAGS=${VORO_BUILD_CFLAGS})
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(voro_build
|
||||
URL https://download.lammps.org/thirdparty/voro++-0.4.6.tar.gz
|
||||
URL_MD5 2338b824c3b7b25590e18e8df5d68af9
|
||||
CONFIGURE_COMMAND "" BUILD_COMMAND make ${VORO_BUILD_OPTIONS} BUILD_IN_SOURCE 1 INSTALL_COMMAND ""
|
||||
)
|
||||
ExternalProject_get_property(voro_build SOURCE_DIR)
|
||||
set(VORO_LIBRARIES ${SOURCE_DIR}/src/libvoro++.a)
|
||||
set(VORO_INCLUDE_DIRS ${SOURCE_DIR}/src)
|
||||
list(APPEND LAMMPS_DEPS voro_build)
|
||||
else()
|
||||
find_package(VORO)
|
||||
if(NOT VORO_FOUND)
|
||||
message(FATAL_ERROR "Voro++ library not found. Help CMake to find it by setting VORO_LIBRARY and VORO_INCLUDE_DIR, or set DOWNLOAD_VORO=ON to download it")
|
||||
endif()
|
||||
endif()
|
||||
include_directories(${VORO_INCLUDE_DIRS})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${VORO_LIBRARIES})
|
||||
endif()
|
||||
52
cmake/Modules/Testing.cmake
Normal file
@ -0,0 +1,52 @@
|
||||
###############################################################################
|
||||
# Testing
|
||||
###############################################################################
|
||||
option(ENABLE_TESTING "Enable testing" OFF)
|
||||
if(ENABLE_TESTING AND BUILD_EXE)
|
||||
enable_testing()
|
||||
option(LAMMPS_TESTING_SOURCE_DIR "Location of lammps-testing source directory" "")
|
||||
option(LAMMPS_TESTING_GIT_TAG "Git tag of lammps-testing" "master")
|
||||
mark_as_advanced(LAMMPS_TESTING_SOURCE_DIR LAMMPS_TESTING_GIT_TAG)
|
||||
|
||||
if (CMAKE_VERSION VERSION_GREATER "3.10.3" AND NOT LAMMPS_TESTING_SOURCE_DIR)
|
||||
include(FetchContent)
|
||||
|
||||
FetchContent_Declare(lammps-testing
|
||||
GIT_REPOSITORY https://github.com/lammps/lammps-testing.git
|
||||
GIT_TAG ${LAMMPS_TESTING_GIT_TAG}
|
||||
)
|
||||
|
||||
FetchContent_GetProperties(lammps-testing)
|
||||
if(NOT lammps-testing_POPULATED)
|
||||
message(STATUS "Downloading tests...")
|
||||
FetchContent_Populate(lammps-testing)
|
||||
endif()
|
||||
|
||||
set(LAMMPS_TESTING_SOURCE_DIR ${lammps-testing_SOURCE_DIR})
|
||||
elseif(NOT LAMMPS_TESTING_SOURCE_DIR)
|
||||
message(WARNING "Full test-suite requires CMake >= 3.11 or copy of\n"
|
||||
"https://github.com/lammps/lammps-testing in LAMMPS_TESTING_SOURCE_DIR")
|
||||
endif()
|
||||
|
||||
add_test(ShowHelp ${CMAKE_BINARY_DIR}/${LAMMPS_BINARY} -help)
|
||||
|
||||
if(EXISTS ${LAMMPS_TESTING_SOURCE_DIR})
|
||||
message(STATUS "Running test discovery...")
|
||||
|
||||
file(GLOB_RECURSE TEST_SCRIPTS ${LAMMPS_TESTING_SOURCE_DIR}/tests/core/*/in.*)
|
||||
foreach(script_path ${TEST_SCRIPTS})
|
||||
get_filename_component(TEST_NAME ${script_path} EXT)
|
||||
get_filename_component(SCRIPT_NAME ${script_path} NAME)
|
||||
get_filename_component(PARENT_DIR ${script_path} DIRECTORY)
|
||||
string(SUBSTRING ${TEST_NAME} 1 -1 TEST_NAME)
|
||||
string(REPLACE "-" "_" TEST_NAME ${TEST_NAME})
|
||||
string(REPLACE "+" "_" TEST_NAME ${TEST_NAME})
|
||||
set(TEST_NAME "test_core_${TEST_NAME}_serial")
|
||||
add_test(${TEST_NAME} ${CMAKE_BINARY_DIR}/${LAMMPS_BINARY} -in ${SCRIPT_NAME})
|
||||
set_tests_properties(${TEST_NAME} PROPERTIES WORKING_DIRECTORY ${PARENT_DIR})
|
||||
endforeach()
|
||||
list(LENGTH TEST_SCRIPTS NUM_TESTS)
|
||||
|
||||
message(STATUS "Found ${NUM_TESTS} tests.")
|
||||
endif()
|
||||
endif()
|
||||
711
cmake/README.md
@ -33,12 +33,17 @@ tasks, act as a reference and provide examples of typical use cases.
|
||||
* [Package-Specific Configuration Options](#package-specific-configuration-options)
|
||||
* [KSPACE Package](#kspace-package)
|
||||
* [MKL](#mkl)
|
||||
* [FFTW2](#fftw2)
|
||||
* [FFTW3](#fftw3)
|
||||
* [BLAS](#blas)
|
||||
* [LAPACK](#lapack)
|
||||
* [PYTHON Package](#python-package)
|
||||
* [GPU Package](#gpu-package)
|
||||
* [MESSAGE Package](#message-package)
|
||||
* [MSCG Package](#mscg-package)
|
||||
* [VORONOI Package](#voronoi-package)
|
||||
* [USER-LATTE Package](#user-latte-package)
|
||||
* [USER-PLUMED Package](#user-plumed-package)
|
||||
* [USER-SCAFACOS Package](#user-scafacos-package)
|
||||
* [USER-SMD Package](#user-smd-package)
|
||||
* [Optional Features](#optional-features)
|
||||
* [zlib support](#zlib-support)
|
||||
@ -50,8 +55,6 @@ tasks, act as a reference and provide examples of typical use cases.
|
||||
* [Building with GNU Compilers](#building-with-gnu-compilers)
|
||||
* [Building with Intel Compilers](#building-with-intel-compilers)
|
||||
* [Building with LLVM/Clang Compilers](#building-with-llvmclang-compilers)
|
||||
* [Examples](#examples)
|
||||
|
||||
|
||||
## Quick Start for the Impatient
|
||||
If you want to skip ahead and just run the compilation using `cmake`, please
|
||||
@ -205,8 +208,10 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
|
||||
<td>Controls if debugging symbols are added to the generated binaries</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>Release</code> (default)</dt>
|
||||
<dt><code>RelWithDebInfo (default)</code></dt>
|
||||
<dt><code>Release</code></dt>
|
||||
<dt><code>Debug</code></dt>
|
||||
<dt><code>MinSizeRel</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
@ -249,6 +254,16 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>LAMMPS_LONGLONG_TO_LONG</code></td>
|
||||
<td>Workaround if your system or MPI version does not recognize <code>long long</code> data types</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>LAMMPS_MEMALIGN</code></td>
|
||||
<td>controls the alignment of blocks of memory allocated by LAMMPS</td>
|
||||
@ -271,7 +286,16 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>LAMMPS_MACHINE</code></td>
|
||||
<td>allows appending a machine suffix to the generate LAMMPS binary</td>
|
||||
<td>allows appending a machine suffix to the generated LAMMPS binary</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt>*none* (default)</dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>LAMMPS_LIB_SUFFIX</code></td>
|
||||
<td>allows appending a suffix to the generated LAMMPS library</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt>*none* (default)</dt>
|
||||
@ -319,8 +343,8 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>LAMMPS_LONGLONG_TO_LONG</code></td>
|
||||
<td>Workaround if your system or MPI version does not recognize <code>long long</code> data types</td>
|
||||
<td><code>BUILD_TOOLS</code></td>
|
||||
<td>control whether to build LAMMPS tools</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
@ -561,23 +585,6 @@ cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GP
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_MEAM</code></td>
|
||||
<td>
|
||||
<p>A pair style for the modified embedded atom (MEAM) potential.</p>
|
||||
|
||||
<p><strong>Please note that the MEAM package has been superseded by the USER-MEAMC package,
|
||||
which is a direct translation of the MEAM package to C++. USER-MEAMC contains
|
||||
additional optimizations making it run faster than MEAM on most machines, while
|
||||
providing the identical features and USER interface.</strong></p>
|
||||
</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_MISC</code></td>
|
||||
<td>
|
||||
@ -634,21 +641,6 @@ providing the identical features and USER interface.</strong></p>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_REAX</code></td>
|
||||
<td>
|
||||
A pair style which wraps a Fortran library which implements the ReaxFF
|
||||
potential, which is a universal reactive force field. See the USER-REAXC
|
||||
package for an alternate implementation in C/C++. Also a fix reax/bonds
|
||||
command for monitoring molecules as bonds are created and destroyed.
|
||||
</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_REPLICA</code></td>
|
||||
<td>
|
||||
@ -695,6 +687,16 @@ providing the identical features and USER interface.</strong></p>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_SPIN</code></td>
|
||||
<td>Model atomic magnetic spins classically, coupled to atoms moving in the usual manner via MD. Various pair, fix, and compute styles.</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_SNAP</code></td>
|
||||
<td>
|
||||
@ -757,6 +759,16 @@ providing the identical features and USER interface.</strong></p>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_MESSAGE</code></td>
|
||||
<td>Commands to use LAMMPS as either a client or server and couple it to another application.</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_MSCG</code></td>
|
||||
<td>
|
||||
@ -811,6 +823,18 @@ providing the identical features and USER interface.</strong></p>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_VORONOI</code></td>
|
||||
<td>
|
||||
A compute command which calculates the Voronoi tesselation of a collection of atoms by wrapping the Voro++ library. This can be used to calculate the local volume or each atoms or its near neighbors.
|
||||
</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@ -825,6 +849,16 @@ providing the identical features and USER interface.</strong></p>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>PKG_USER-ADIOS</code></td>
|
||||
<td>ADIOS is a high-performance I/O library. This package implements the dump “atom/adios” and dump “custom/adios” commands to write data using the ADIOS library.</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_USER-ATC</code></td>
|
||||
<td>
|
||||
@ -853,6 +887,18 @@ providing the identical features and USER interface.</strong></p>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_USER-BOCS</code></td>
|
||||
<td>
|
||||
This package provides fix bocs, a modified version of fix npt which includes the pressure correction to the barostat as outlined in: N. J. H. Dunn and W. G. Noid, “Bottom-up coarse-grained models that accurately describe the structure, pressure, and compressibility of molecular liquids,” J. Chem. Phys. 143, 243148 (2015).
|
||||
</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_USER-CGDNA</code></td>
|
||||
<td>
|
||||
@ -1142,6 +1188,30 @@ providing the identical features and USER interface.</strong></p>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_USER-PLUMED</code></td>
|
||||
<td>
|
||||
The fix plumed command allows you to use the PLUMED free energy plugin for molecular dynamics to analyze and bias your LAMMPS trajectory on the fly. The PLUMED library is called from within the LAMMPS input script by using the <code>fix plumed</code> command.
|
||||
</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_USER-PTM</code></td>
|
||||
<td>
|
||||
A <code>compute ptm/atom</code> command that calculates local structure characterization using the Polyhedral Template Matching methodology.
|
||||
</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_USER-QTB</code></td>
|
||||
<td>
|
||||
@ -1197,6 +1267,33 @@ providing the identical features and USER interface.</strong></p>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_USER-SCAFACOS</code></td>
|
||||
<td>
|
||||
A KSpace style which wraps the ScaFaCoS Coulomb solver library to compute long-range Coulombic interactions.
|
||||
</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_USER-SDPD</code></td>
|
||||
<td>
|
||||
A pair style for smoothed dissipative particle dynamics (SDPD), which is an
|
||||
extension of smoothed particle hydrodynamics (SPH) to mesoscale where thermal
|
||||
fluctuations are important (see the USER-SPH package). Also two fixes for
|
||||
moving and rigid body integration of SPH/SDPD particles (particles of
|
||||
<code>atom_style meso</code>).</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_USER-SMD</code></td>
|
||||
<td>
|
||||
@ -1280,6 +1377,23 @@ providing the identical features and USER interface.</strong></p>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PKG_USER-YAFF</code></td>
|
||||
<td>
|
||||
Some potentials that are also implemented in the Yet Another Force Field (YAFF) code.
|
||||
The expressions and their use are discussed in the following papers:
|
||||
<ul>
|
||||
<li><a href="http://dx.doi.org/10.1002/jcc.23877" target="_blank">Vanduyfhuys et al., J. Comput. Chem., 36 (13), 1015-1027 (2015)</a></li>
|
||||
<li><a href="http://dx.doi.org/10.1002/jcc.25173" target="_blank">Vanduyfhuys et al., J. Comput. Chem., 39 (16), 999-1011 (2018)</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@ -1300,14 +1414,27 @@ providing the identical features and USER interface.</strong></p>
|
||||
<td><code>FFT</code></td>
|
||||
<td>
|
||||
<p>FFT library for KSPACE package</p>
|
||||
<p>If either MKL or FFTW is selected <code>cmake</code> will try to locate these libraries automatically. To control which one should be used please see the options below for each FFT library.</p>
|
||||
<p>If either MKL or FFTW is selected <code>cmake</code> will try to locate
|
||||
these libraries automatically. To control which one should be used please see
|
||||
the options below for each FFT library. Otherwise it will default to KISS
|
||||
FFT.</p>
|
||||
</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>KISS</code></dt>
|
||||
<dt><code>FFTW3</code></dt>
|
||||
<dt><code>FFTW2</code></dt>
|
||||
<dt><code>MKL</code></dt>
|
||||
<dt><code>KISS</code> (default)</dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>FFT_SINGLE</code></td>
|
||||
<td>Use single-precision floating-point in FFT</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default = double precision)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
@ -1325,60 +1452,6 @@ providing the identical features and USER interface.</strong></p>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### MKL
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Option</th>
|
||||
<th>Description</th>
|
||||
<th>Values</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>MKL_INCLUDE_DIRS</code></td>
|
||||
<td></td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>MKL_LIBRARIES</code></td>
|
||||
<td></td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
TODO static vs dynamic linking
|
||||
|
||||
### FFTW2
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Option</th>
|
||||
<th>Description</th>
|
||||
<th>Values</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>FFTW2_INCLUDE_DIRS</code></td>
|
||||
<td></td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>FFTW2_LIBRARIES</code></td>
|
||||
<td></td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### FFTW3
|
||||
|
||||
<table>
|
||||
@ -1392,24 +1465,57 @@ TODO static vs dynamic linking
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>FFTW3_INCLUDE_DIRS</code></td>
|
||||
<td></td>
|
||||
<td>path to FFTW3 include files</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>FFTW3_LIBRARIES</code></td>
|
||||
<td></td>
|
||||
<td>list of paths to FFTW3 libraries</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### MKL
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Option</th>
|
||||
<th>Description</th>
|
||||
<th>Values</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>MKL_INCLUDE_DIRS</code></td>
|
||||
<td>path to MKL include files</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>MKL_LIBRARIES</code></td>
|
||||
<td>list of paths to MKL libraries</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### BLAS
|
||||
|
||||
See [FindBLAS documentation](https://cmake.org/cmake/help/latest/module/FindBLAS.html)
|
||||
|
||||
### LAPACK
|
||||
TODO
|
||||
|
||||
See [FindLAPACK documentation](https://cmake.org/cmake/help/latest/module/FindLAPACK.html)
|
||||
|
||||
### PYTHON Package
|
||||
|
||||
See [FindPYTHON documentation](https://cmake.org/cmake/help/latest/module/FindPython.html)
|
||||
|
||||
### USER-INTEL Package
|
||||
|
||||
<table>
|
||||
@ -1499,10 +1605,11 @@ target API.
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>sm_20</code> (Fermi)</dt>
|
||||
<dt><code>sm_30</code> (Kepler)</dt>
|
||||
<dt><code>sm_30</code> (Kepler) (default)</dt>
|
||||
<dt><code>sm_50</code> (Maxwell)</dt>
|
||||
<dt><code>sm_60</code> (Pascal)</dt>
|
||||
<dt><code>sm_70</code> (Volta)</dt>
|
||||
<dt><code>sm_75</code> (Turing)</dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
@ -1534,13 +1641,14 @@ target API.
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### VORONOI Package
|
||||
### KIM Package
|
||||
|
||||
TODO
|
||||
Requires installation of the KIM library with API v2
|
||||
|
||||
### USER-SMD Package
|
||||
|
||||
Requires a Eigen3 installation
|
||||
If `DOWNLOAD_KIM` is set, the KIM library will be downloaded and built inside
|
||||
the CMake build directory. If the KIM library is already on your system (in a
|
||||
location CMake cannot find it), set the `PKG_CONFIG_PATH` environment variable
|
||||
so that `libkim-api` can be found.
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
@ -1551,9 +1659,323 @@ Requires a Eigen3 installation
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>DOWNLOAD_KIM</code></td>
|
||||
<td>Download KIM API v2 and compile it as part of the build.</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### MESSAGE Package
|
||||
|
||||
This package can optionally include support for messaging via sockets, using the open-source [ZeroMQ library](http://zeromq.org/), which must be installed on your system.
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Option</th>
|
||||
<th>Description</th>
|
||||
<th>Values</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>MESSAGE_ZMQ</code></td>
|
||||
<td>Build with ZeroMQ support</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>ZMQ_LIBRARY</code></td>
|
||||
<td>
|
||||
ZMQ library file (only needed if at custom location)
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>ZMG_INCLUDE_DIR</code></td>
|
||||
<td>
|
||||
Provide include directory of existing ZMQ installation (only needed if at custom location)
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### MSCG Package
|
||||
|
||||
Requires installation of the MSCG library
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Option</th>
|
||||
<th>Description</th>
|
||||
<th>Values</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>DOWNLOAD_MSCG</code></td>
|
||||
<td>Download MSCG and compile it as part of the build</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>MSCG_LIBRARY</code></td>
|
||||
<td>
|
||||
MSCG library file (only needed if at custom location)
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>MSCG_INCLUDE_DIR</code></td>
|
||||
<td>
|
||||
Provide include directory of existing MSCG installation (only needed if at custom location)
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### VORONOI Package
|
||||
|
||||
Requires installation of the Voro++ library
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Option</th>
|
||||
<th>Description</th>
|
||||
<th>Values</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>DOWNLOAD_VORO</code></td>
|
||||
<td>Download Voro++ and compile it as part of the build</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>VORO_LIBRARY</code></td>
|
||||
<td>
|
||||
Voro++ library file (only needed if at custom location)
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>VORO_INCLUDE_DIR</code></td>
|
||||
<td>
|
||||
Provide include directory of existing Voro++ installation (only needed if at custom location)
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### USER-LATTE Package
|
||||
|
||||
Requires installation of the LATTE library
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Option</th>
|
||||
<th>Description</th>
|
||||
<th>Values</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>DOWNLOAD_LATTE</code></td>
|
||||
<td>Download LATTE and compile it as part of the build</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>LATTE_LIBRARY</code></td>
|
||||
<td>
|
||||
LATTE library file (only needed if at custom location)
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### USER-PLUMED Package
|
||||
|
||||
Requires installation of the PLUMED library
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Option</th>
|
||||
<th>Description</th>
|
||||
<th>Values</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>DOWNLOAD_PLUMED</code></td>
|
||||
<td>Download PLUMED and compile it as part of the build</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>PLUMED_MODE</code></td>
|
||||
<td>
|
||||
Determines the linkage mode for the PLUMED library.
|
||||
</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>static</code> (default)</dt>
|
||||
<dt><code>shared</code></dt>
|
||||
<dt><code>runtime</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### USER-LATTE Package
|
||||
|
||||
Requires installation of the LATTE library
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Option</th>
|
||||
<th>Description</th>
|
||||
<th>Values</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>DOWNLOAD_LATTE</code></td>
|
||||
<td>Download LATTE and compile it as part of the build</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>LATTE_LIBRARY</code></td>
|
||||
<td>
|
||||
LATTE library file (only needed if at custom location)
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### USER-SMD Package
|
||||
|
||||
Requires installation of the Eigen3 library
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Option</th>
|
||||
<th>Description</th>
|
||||
<th>Values</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>DOWNLOAD_EIGEN3</code></td>
|
||||
<td>Download Eigen3 and compile it as part of the build</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>EIGEN3_INCLUDE_DIR</code></td>
|
||||
<td></td>
|
||||
<td>
|
||||
Provide include directory of existing Eigen3 installation (only needed if at custom location)
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
### USER-SCAFACOS Package
|
||||
|
||||
To build with this package, you must download and build the [ScaFaCoS Coulomb solver library](http://www.scafacos.de/)
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Option</th>
|
||||
<th>Description</th>
|
||||
<th>Values</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>DOWNLOAD_SCAFACOS</code></td>
|
||||
<td>Download SCAFACOS and compile it as part of the build</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>SCAFACOS_LIBRARY</code></td>
|
||||
<td>
|
||||
SCAFACOS library file (only needed if at custom location)
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>SCAFACOS_INCLUDE_DIR</code></td>
|
||||
<td>
|
||||
SCAFACOS include directory (only needed if at custom location)
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
@ -1791,5 +2213,82 @@ cmake -D CMAKE_C_COMPILER=icc -D CMAKE_CXX_COMPILER=icpc -D CMAKE_Fortran_COMPIL
|
||||
cmake -D CMAKE_C_COMPILER=clang -D CMAKE_CXX_COMPILER=clang++ -D CMAKE_Fortran_COMPILER=flang ../cmake
|
||||
```
|
||||
|
||||
## LAMMPS Developer Options
|
||||
|
||||
## Examples
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Option</th>
|
||||
<th>Description</th>
|
||||
<th>Values</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>ENABLE_TESTING</code></td>
|
||||
<td>Control wheather to add tests via CTest</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>LAMMPS_TESTING_SOURCE_DIR</code></td>
|
||||
<td>Custom location of lammps-testing repository (optional). If not specified it will download it via Git</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>LAMMPS_TESTING_GIT_TAG</code></td>
|
||||
<td>If lammps-testing repository is cloned, this is the tag/commit that will be checked out</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>master</code> (default)</dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>ENABLE_COVERAGE</code></td>
|
||||
<td>Enables code coverage support via gcov and adds a gcovr build target to generate a coverage report.</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>ENABLE_SANITIZE_ADDRESS</code></td>
|
||||
<td>Enables Address Sanitizer support when compiling using GCC or Clang for detecting memory leaks in binaries while running them. See https://clang.llvm.org/docs/AddressSanitizer.html</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>ENABLE_SANITIZE_UNDEFINED</code></td>
|
||||
<td>Enables Undefined Behavior Sanitizer support when compiling using GCC or Clang for detecting code that is running into undefined behavior of the language. See https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>ENABLE_SANITIZE_THREAD</code></td>
|
||||
<td>Enables Thread Sanitizer support when compiling using GCC or Clang for detecting data races in binaries while running them. See https://clang.llvm.org/docs/ThreadSanitizer.html</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# set environment for LAMMPS and msi2lmp executables
|
||||
# to find potential and force field files
|
||||
if ( "$?LAMMPS_POTENTIALS" == 0 ) setenv LAMMPS_POTENTIALS @LAMMPS_POTENTIALS_DIR@
|
||||
if ( "$?MSI2LMP_LIBRARY" == 0 ) setenv MSI2LMP_LIBRARY @LAMMPS_FRC_FILES_DIR@
|
||||
if ( "$?LAMMPS_POTENTIALS" == 0 ) setenv LAMMPS_POTENTIALS @LAMMPS_INSTALL_DATADIR@/potentials
|
||||
if ( "$?MSI2LMP_LIBRARY" == 0 ) setenv MSI2LMP_LIBRARY @LAMMPS_INSTALL_DATADIR@/frc_files
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
# set environment for LAMMPS and msi2lmp executables
|
||||
# to find potential and force field files
|
||||
LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS-@LAMMPS_POTENTIALS_DIR@}
|
||||
MSI2LMP_LIBRARY=${MSI2LMP_LIBRARY-@LAMMPS_FRC_FILES_DIR@}
|
||||
LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS-@LAMMPS_INSTALL_DATADIR@/potentials}
|
||||
MSI2LMP_LIBRARY=${MSI2LMP_LIBRARY-@LAMMPS_INSTALL_DATADIR@/frc_files}
|
||||
export LAMMPS_POTENTIALS MSI2LMP_LIBRARY
|
||||
|
||||
@ -3,9 +3,9 @@ set(WIN_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
|
||||
REPLICA RIGID SHOCK SNAP SPIN SRD VORONOI USER-ATC USER-AWPMD
|
||||
USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS USER-DIFFRACTION
|
||||
USER-DPD USER-DRUDE USER-EFF USER-FEP USER-INTEL USER-MANIFOLD
|
||||
USER-MEAMC USER-MESO USER-MISC USER-MOFFF USER-MOLFILE USER-OMP
|
||||
USER-PHONON USER-PTM USER-QTB USER-REAXC USER-SDPD USER-SMD
|
||||
USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-YAFF)
|
||||
USER-MEAMC USER-MESO USER-MISC USER-MGPT USER-MOFFF USER-MOLFILE
|
||||
USER-OMP USER-PHONON USER-PTM USER-QTB USER-REAXC USER-SDPD
|
||||
USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-YAFF)
|
||||
|
||||
foreach(PKG ${WIN_PACKAGES})
|
||||
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
|
||||
@ -14,4 +14,4 @@ endforeach()
|
||||
set(DOWNLOAD_VORO ON CACHE BOOL "" FORCE)
|
||||
set(DOWNLOAD_EIGEN3 ON CACHE BOOL "" FORCE)
|
||||
set(LAMMPS_MEMALIGN "0" CACHE STRING "" FORCE)
|
||||
set(INTEL_LRT_MODE "none" CACHE STRING "" FORCE)
|
||||
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/lammps-installer")
|
||||
|
||||
133
doc/include-file-conventions.md
Normal file
@ -0,0 +1,133 @@
|
||||
# Outline of include file conventions in LAMMPS
|
||||
|
||||
This purpose of this document is to provide a point of reference
|
||||
for LAMMPS developers and contributors as to what include files
|
||||
and definitions to put where into LAMMPS source.
|
||||
Last change 2019-07-05
|
||||
|
||||
## Table of Contents
|
||||
|
||||
* [Motivation](#motivation)
|
||||
* [Rules](#rules)
|
||||
* [Tools](#tools)
|
||||
* [Legacy Code](#legacy-code)
|
||||
|
||||
## Motivation
|
||||
|
||||
The conventions outlined in this document are supposed to help make
|
||||
maintenance of the LAMMPS software easier. By trying to achieve
|
||||
consistency across files contributed by different developers, it will
|
||||
become easier for the code maintainers to modify and adjust files and,
|
||||
overall, the chance for errors or portability issues will be reduced.
|
||||
The rules employed are supposed to minimize naming conflicts and
|
||||
simplify dependencies between files and thus speed up compilation. They
|
||||
may, as well, make otherwise hidden dependencies visible.
|
||||
|
||||
## Rules
|
||||
|
||||
Below are the various rules that are applied. Not all are enforced
|
||||
strictly and automatically. If there are no significant side effects,
|
||||
exceptions may be possible for cases where a full compliance to the
|
||||
rules may require a large effort compared to the benefit.
|
||||
|
||||
### Core Files Versus Package Files
|
||||
|
||||
All rules listed below are most strictly observed for core LAMMPS files,
|
||||
which are the files that are not part of a package, and the files of the
|
||||
packages MOLECULE, MANYBODY, KSPACE, and RIGID. On the other end of
|
||||
the spectrum are USER packages and legacy packages that predate these
|
||||
rules and thus may not be fully compliant. Also, new contributions
|
||||
will be checked more closely, while existing code will be incrementally
|
||||
adapted to the rules as time and required effort permits.
|
||||
|
||||
### System Versus Local Header Files
|
||||
|
||||
All system- or library-provided include files are included with angular
|
||||
brackets (examples: `#include <cstring>` or `#include <mpi.h>`) while
|
||||
include files provided with LAMMPS are included with double quotes
|
||||
(examples: `#include "pointers.h"` or `#include "compute_temp.h"`).
|
||||
|
||||
For headers declaring functions of the C-library, the corresponding
|
||||
C++ versions should be included (examples: `#include <cstdlib>` or
|
||||
`#include <cctypes>`). However, these includes are limited to those defined
|
||||
in the C++98 standard. Some files thus must use the older style until
|
||||
the minimum C++ standard requirement of LAMMPS is lifted to C++11 or
|
||||
even beyond (examples: `#include <stdint.h>` versus `#include <cstdint>`
|
||||
or `#include <inttypes.h>` versus `#include <cinttypes>`).
|
||||
|
||||
### C++ Standard Compliance
|
||||
|
||||
LAMMPS core files currently correspond to the C++98 standard. Files
|
||||
requiring C++11 or later are only permitted in (optional) packages
|
||||
and particularly packages that are not part of the list of commonly
|
||||
used packages such as MOLECULE, KSPACE, MANYBODY, or RIGID.
|
||||
|
||||
Also, LAMMPS uses the C-style stdio library for I/O instead of iostreams.
|
||||
Since using both at the same time can cause problems, iostreams should
|
||||
be avoided where possible.
|
||||
|
||||
### Lean Header Files
|
||||
|
||||
Header files will typically contain the definition of a (single) class.
|
||||
These header files should have as few include statements as possible.
|
||||
This is particularly important for classes that implement a "style" and
|
||||
thus use a macro of the kind `SomeStyle(some/name,SomeName)`. These will
|
||||
all be included in the auto-generated `"some_style.h"` files which
|
||||
results in a high potential for direct or indirect symbol name clashes.
|
||||
|
||||
In the ideal case, the header would only include one file defining the
|
||||
parent class. That would typically be either `#include "pointers.h"` for
|
||||
the `Pointers` class, or a header of a class derived from it like
|
||||
`#include "pair.h"` for the `Pair` class and so on. References to other
|
||||
classes inside the class should be make through pointers, for which forward
|
||||
declarations (inside the `LAMMPS_NS` or the new class' namespace) can
|
||||
be employed. The full definition will then be included into the corresponding
|
||||
implementation file. In the given example from above, the header file
|
||||
would be called `some_name.h` and the implementation `some_name.cpp` (all
|
||||
lower case with underscores, while the class itself would be in camel case
|
||||
and no underscores `SomeName`, and the style name with lower case names separated by
|
||||
a forward slash).
|
||||
|
||||
### Implementation Files
|
||||
|
||||
In the implementation files (typically, those would have the same base name
|
||||
as the corresponding header with a .cpp extension instead of .h) include
|
||||
statements should follow the "include what you use" principle.
|
||||
|
||||
### Order of Include Statements
|
||||
|
||||
Include files should be included in this order:
|
||||
* the header matching the implementation (`some_class.h` for file `some_class.cpp`)
|
||||
* mpi.h
|
||||
* system and library headers (anything that is using angular brackets; C-library headers first, then C++)
|
||||
* LAMMPS local headers (preferably in alphabetical order)
|
||||
|
||||
### Special Cases and Exceptions
|
||||
|
||||
#### pointers.h
|
||||
|
||||
The `pointer.h` header file also includes `cstdio` and `lmptype.h`
|
||||
(and through it `stdint.h`, `intttypes.h`, cstdlib, and `climits`).
|
||||
This means any header including `pointers.h` can assume that `FILE`,
|
||||
`NULL`, `INT_MAX` are defined.
|
||||
|
||||
## Tools
|
||||
|
||||
The [Include What You Use tool](https://include-what-you-use.org/)
|
||||
can be used to provide supporting information about compliance with
|
||||
the rules listed here. There are some limitations and the IWYU tool
|
||||
may give incorrect advice. The tools is activated by setting the
|
||||
CMake variable `CMAKE_CXX_INCLUDE_WHAT_YOU_USE` variable to the
|
||||
path of the `include-what-you-use` command. When activated, the
|
||||
tool will be run after each compilation and provide suggestions for
|
||||
which include files should be added or removed.
|
||||
|
||||
## Legacy Code
|
||||
|
||||
A lot of code predates the application of the rules in this document
|
||||
and the rules themselves are a moving target. So there are going to be
|
||||
significant chunks of code that do not fully comply. This applies
|
||||
for example to the USER-REAXC, or the USER-ATC package. The LAMMPS
|
||||
developers are dedicated to make an effort to improve the compliance
|
||||
and welcome volunteers wanting to help with the process.
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
.TH LAMMPS "31 May 2019" "2019-05-31"
|
||||
.TH LAMMPS "6 August 2019" "2019-08-06"
|
||||
.SH NAME
|
||||
.B LAMMPS
|
||||
\- Molecular Dynamics Simulator.
|
||||
|
||||
@ -29,6 +29,7 @@ as described on the "Install"_Install.html doc page.
|
||||
Build_package
|
||||
Build_extras
|
||||
Build_windows
|
||||
Build_development
|
||||
|
||||
END_RST -->
|
||||
|
||||
@ -41,7 +42,8 @@ END_RST -->
|
||||
"Optional build settings"_Build_settings.html
|
||||
"Include packages in build"_Build_package.html
|
||||
"Packages with extra build options"_Build_extras.html
|
||||
"Notes for building LAMMPS on Windows"_Build_windows.html :all(b)
|
||||
"Notes for building LAMMPS on Windows"_Build_windows.html
|
||||
"Development build options (CMake only)"_Build_development.html :all(b)
|
||||
|
||||
If you have problems building LAMMPS, it is often due to software
|
||||
issues on your local machine. If you can, find a local expert to
|
||||
|
||||
@ -235,12 +235,16 @@ running LAMMPS from Python via its library interface.
|
||||
|
||||
-D BUILD_EXE=value # yes (default) or no
|
||||
-D BUILD_LIB=value # yes or no (default)
|
||||
-D BUILD_SHARED_LIBS=value # yes or no (default) :pre
|
||||
-D BUILD_SHARED_LIBS=value # yes or no (default)
|
||||
-D LAMMPS_LIB_SUFFIX=name # name = mpi, serial, mybox, titan, laptop, etc
|
||||
# no default value :pre
|
||||
|
||||
|
||||
Setting BUILD_EXE=no will not produce an executable. Setting
|
||||
BUILD_LIB=yes will produce a static library named liblammps.a.
|
||||
Setting both BUILD_LIB=yes and BUILD_SHARED_LIBS=yes will produce a
|
||||
shared library named liblammps.so.
|
||||
shared library named liblammps.so. If LAMMPS_LIB_SUFFIX is set the generated
|
||||
libraries will be named liblammps_name.a or liblammps_name.so instead.
|
||||
|
||||
[Traditional make]:
|
||||
|
||||
@ -310,6 +314,30 @@ current LAMMPS version (HTML and PDF files), from the website
|
||||
|
||||
:line
|
||||
|
||||
Build LAMMPS tools :h4,link(tools)
|
||||
|
||||
Some tools described in "Auxiliary tools"_Tools.html can be built directly
|
||||
using CMake or Make.
|
||||
|
||||
[CMake variable]:
|
||||
|
||||
-D BUILD_TOOLS=value # yes or no (default) :pre
|
||||
|
||||
The generated binaries will also become part of the LAMMPS installation (see below)
|
||||
|
||||
[Traditional make]:
|
||||
|
||||
cd lammps/tools
|
||||
make all # build all binaries of tools
|
||||
make binary2txt # build only binary2txt tool
|
||||
make chain # build only chain tool
|
||||
make micelle2d # build only micelle2d tool
|
||||
make thermo_extract # build only thermo_extract tool
|
||||
:pre
|
||||
|
||||
:line
|
||||
|
||||
|
||||
Install LAMMPS after a build :h4,link(install)
|
||||
|
||||
After building LAMMPS, you may wish to copy the LAMMPS executable of
|
||||
|
||||
@ -32,10 +32,18 @@ cmake \[options ...\] ../cmake # configuration with (command-line) cmake
|
||||
make # compilation :pre
|
||||
|
||||
The cmake command will detect available features, enable selected
|
||||
packages and options, and will generate the build environment. The make
|
||||
command will then compile and link LAMMPS, producing (by default) an
|
||||
executable called "lmp" and a library called "liblammps.a" in the
|
||||
"build" folder.
|
||||
packages and options, and will generate the build environment. By default
|
||||
this build environment will be created for "Unix Makefiles" on most
|
||||
platforms and particularly on Linux. However, alternate build tools
|
||||
(e.g. Ninja) and support files for Integrated Development Environments
|
||||
(IDE) like Eclipse, CodeBlocks, or Kate can be generated, too. This is
|
||||
selected via the "-G" command line flag. For the rest of the documentation
|
||||
we will assume that the build environment is generated for makefiles
|
||||
and thus the make command will be used to compile and link LAMMPS as
|
||||
indicated above, producing (by default) an executable called "lmp" and
|
||||
a library called "liblammps.a" in the "build" folder. When generating
|
||||
a build environment for the "Ninja" build tool, the build command would
|
||||
be "ninja" instead of "make".
|
||||
|
||||
If your machine has multiple CPU cores (most do these days), using a
|
||||
command like "make -jN" (with N being the number of available local
|
||||
@ -44,11 +52,17 @@ LAMMPS or need to re-compile LAMMPS repeatedly, installation of the
|
||||
ccache (= Compiler Cache) software may speed up repeated compilation
|
||||
even more.
|
||||
|
||||
After compilation, you can optionally copy the LAMMPS executable and
|
||||
library into your system folders (by default under $HOME/.local) with:
|
||||
After compilation, you may optionally install the LAMMPS executable into
|
||||
your system with:
|
||||
|
||||
make install # optional, copy LAMMPS executable & library elsewhere :pre
|
||||
|
||||
This will install the lammps executable and library (if requested), some
|
||||
tools (if configured) and additional files like library API headers,
|
||||
manpages, potential and force field files. The location of the installation
|
||||
tree is set by the CMake variable "CMAKE_INSTALL_PREFIX" which defaults
|
||||
to $\{HOME\}/.local
|
||||
|
||||
:line
|
||||
|
||||
There are 3 variants of CMake: a command-line version (cmake), a text mode
|
||||
@ -106,7 +120,7 @@ The argument can be preceeded or followed by various CMake
|
||||
command-line options. Several useful ones are:
|
||||
|
||||
-D CMAKE_INSTALL_PREFIX=path # where to install LAMMPS executable/lib if desired
|
||||
-D CMAKE_BUILD_TYPE=type # type = Release or Debug
|
||||
-D CMAKE_BUILD_TYPE=type # type = RelWithDebInfo (default), Release, MinSizeRel, or Debug
|
||||
-G output # style of output CMake generates
|
||||
-DVARIABLE=value # setting for a LAMMPS feature to enable
|
||||
-D VARIABLE=value # ditto, but cannot come after CMakeLists.txt dir
|
||||
|
||||
86
doc/src/Build_development.txt
Normal file
@ -0,0 +1,86 @@
|
||||
"Higher level section"_Build.html - "LAMMPS WWW Site"_lws - "LAMMPS
|
||||
Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Commands_all.html)
|
||||
|
||||
:line
|
||||
|
||||
Development build options (CMake only) :h3
|
||||
|
||||
The CMake build of LAMMPS has a few extra options which are useful during
|
||||
development, testing or debugging.
|
||||
|
||||
:line
|
||||
|
||||
Verify compilation flags :h4,link(compilation)
|
||||
|
||||
Sometimes it is necessary to verify the complete sequence of compilation flags
|
||||
generated by the CMake build. To enable a more verbose output during
|
||||
compilation you can use the following option.
|
||||
|
||||
-D CMAKE_VERBOSE_MAKEFILE=value # value = no (default) or yes :pre
|
||||
|
||||
Another way of doing this without reconfiguration is calling make with variable VERBOSE set to 1:
|
||||
|
||||
make VERBOSE=1 :pre
|
||||
|
||||
:line
|
||||
|
||||
Address, Undefined Behavior, and Thread Sanitizer Support :h4,link(sanitizer)
|
||||
|
||||
Compilers such as GCC and Clang support generating binaries which use different
|
||||
sanitizers to detect problems in code during run-time. They can detect "memory leaks"_https://clang.llvm.org/docs/AddressSanitizer.html,
|
||||
code that runs into "undefined behavior"_https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html of the
|
||||
language and "data races"_https://clang.llvm.org/docs/ThreadSanitizer.html in threaded code.
|
||||
|
||||
The following settings allow you enable these features if your compiler supports
|
||||
it. Please note that they come with a performance hit. However, they are
|
||||
usually faster than using tools like Valgrind.
|
||||
|
||||
-D ENABLE_SANITIZE_ADDRESS=value # enable Address Sanitizer, value = no (default) or yes
|
||||
-D ENABLE_SANITIZE_UNDEFINED=value # enable Undefined Behaviour Sanitizer, value = no (default) or yes
|
||||
-D ENABLE_SANITIZE_THREAD=value # enable Thread Sanitizer, value = no (default) or yes
|
||||
:pre
|
||||
|
||||
:line
|
||||
|
||||
Code Coverage and Testing :h4,link(testing)
|
||||
|
||||
We do extensive regression testing of the LAMMPS code base on a continuous
|
||||
basis. Some of the logic to do this has been added to the CMake build so
|
||||
developers can run the tests directly on their workstation.
|
||||
|
||||
NOTE: this is incomplete and only represents a small subset of tests that we run
|
||||
|
||||
-D ENABLE_TESTING=value # enable simple run tests of LAMMPS, value = no (default) or yes
|
||||
-D LAMMPS_TESTING_SOURCE_DIR=path # path to lammps-testing repository (option if in custom location)
|
||||
-D LAMMPS_TESTING_GIT_TAG=value # version of lammps-testing repository that should be used, value = master (default) or custom git commit or tag
|
||||
:pre
|
||||
|
||||
If you enable testing in the CMake build it will create an additional target called "test". You can run them with:
|
||||
|
||||
make test
|
||||
:pre
|
||||
|
||||
The test cases used come from the lammps-testing repository. They are
|
||||
derivatives of the examples folder with some modifications to make the run
|
||||
faster.
|
||||
|
||||
You can also collect code coverage metrics while running the tests by enabling
|
||||
coverage support during building.
|
||||
|
||||
-D ENABLE_COVERAGE=value # enable coverage measurements, value = no (default) or yes :pre
|
||||
|
||||
This will also add the following targets to generate coverage reports after running the LAMMPS executable:
|
||||
|
||||
make test # run tests first!
|
||||
make gen_coverage_html # generate coverage report in HTML format
|
||||
make gen_coverage_xml # generate coverage report in XML format
|
||||
:pre
|
||||
|
||||
These reports require GCOVR to be installed. The easiest way to do this to install it via pip:
|
||||
|
||||
pip install git+https://github.com/gcovr/gcovr.git :pre
|
||||
:pre
|
||||
@ -88,7 +88,7 @@ which GPU hardware to build for.
|
||||
# generic (default) or intel (Intel CPU) or fermi, kepler, cypress (NVIDIA)
|
||||
-D GPU_ARCH=value # primary GPU hardware choice for GPU_API=cuda
|
||||
# value = sm_XX, see below
|
||||
# default is Cuda-compiler dependent, but typically sm_20
|
||||
# default is sm_30
|
||||
-D CUDPP_OPT=value # optimization setting for GPU_API=cuda
|
||||
# enables CUDA Performance Primitives Optimizations
|
||||
# value = yes (default) or no
|
||||
@ -172,22 +172,17 @@ KIM package :h4,link(kim)
|
||||
|
||||
To build with this package, the KIM library with API v2 must be downloaded
|
||||
and built on your system. It must include the KIM models that you want to
|
||||
use with LAMMPS. If you want to use the "kim_query"_kim_query.html
|
||||
use with LAMMPS. If you want to use the "kim_query"_kim_commands.html
|
||||
command, you also need to have libcurl installed with the matching
|
||||
development headers and the curl-config tool.
|
||||
|
||||
Note that in LAMMPS lingo, a KIM model driver is a pair style
|
||||
(e.g. EAM or Tersoff). A KIM model is a pair style for a particular
|
||||
element or alloy and set of parameters, e.g. EAM for Cu with a
|
||||
specific EAM potential file. Also note that downloading and installing
|
||||
the KIM API library with all its models, may take a long time (10s of
|
||||
minutes to hours) to build. Of course you only need to do that once.
|
||||
See "Obtaining KIM Models"_http://openkim.org/doc/usage/obtaining-models to
|
||||
learn how to install a pre-build binary of the OpenKIM Repository of Models.
|
||||
See the list of all KIM models here: https://openkim.org/browse/models
|
||||
|
||||
See the list of KIM model drivers here:
|
||||
https://openkim.org/browse/model-drivers/alphabetical
|
||||
|
||||
See the list of all KIM models here:
|
||||
https://openkim.org/browse/models/by-model-drivers
|
||||
(Also note that when downloading and installing from source
|
||||
the KIM API library with all its models, may take a long time (tens of
|
||||
minutes to hours) to build. Of course you only need to do that once.)
|
||||
|
||||
[CMake build]:
|
||||
|
||||
@ -359,6 +354,9 @@ be installed on your system.
|
||||
[CMake build]:
|
||||
|
||||
-D MESSAGE_ZMQ=value # build with ZeroMQ support, value = no (default) or yes
|
||||
-D ZMQ_LIBRARY=path # ZMQ library file (only needed if a custom location)
|
||||
-D ZMQ_INCLUDE_DIR=path # ZMQ include directory (only needed if a custom location)
|
||||
:pre
|
||||
|
||||
[Traditional make]:
|
||||
|
||||
@ -371,6 +369,7 @@ simply invoke the lib/message/Install.py script with the specified args:
|
||||
make lib-message # print help message
|
||||
make lib-message args="-m -z" # build with MPI and socket (ZMQ) support
|
||||
make lib-message args="-s" # build as serial lib with no ZMQ support
|
||||
:pre
|
||||
|
||||
The build should produce two files: lib/message/cslib/src/libmessage.a
|
||||
and lib/message/Makefile.lammps. The latter is copied from an
|
||||
|
||||
@ -33,6 +33,11 @@ commands in it are used to define a LAMMPS simulation.
|
||||
Commands_bond
|
||||
Commands_kspace
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
Commands_removed
|
||||
|
||||
END_RST -->
|
||||
|
||||
<!-- HTML_ONLY -->
|
||||
@ -49,5 +54,7 @@ END_RST -->
|
||||
"Bond, angle, dihedral, improper commands"_Commands_bond.html
|
||||
"KSpace solvers"_Commands_kspace.html :all(b)
|
||||
|
||||
"Removed commands and packages"_Commands_removed.html :all(b)
|
||||
|
||||
<!-- END_HTML_ONLY -->
|
||||
|
||||
|
||||
@ -50,11 +50,11 @@ An alphabetic list of all general LAMMPS commands.
|
||||
"dump"_dump.html,
|
||||
"dump adios"_dump_adios.html,
|
||||
"dump image"_dump_image.html,
|
||||
"dump_modify"_dump_modify.html,
|
||||
"dump movie"_dump_image.html,
|
||||
"dump netcdf"_dump_netcdf.html,
|
||||
"dump netcdf/mpiio"_dump_netcdf.html,
|
||||
"dump vtk"_dump_vtk.html,
|
||||
"dump_modify"_dump_modify.html,
|
||||
"dynamical_matrix"_dynamical_matrix.html,
|
||||
"echo"_echo.html,
|
||||
"fix"_fix.html,
|
||||
@ -68,7 +68,9 @@ An alphabetic list of all general LAMMPS commands.
|
||||
"improper_style"_improper_style.html,
|
||||
"include"_include.html,
|
||||
"jump"_jump.html,
|
||||
"kim_query"_kim_query.html,
|
||||
"kim_init"_kim_commands.html,
|
||||
"kim_interactions"_kim_commands.html,
|
||||
"kim_query"_kim_commands.html,
|
||||
"kspace_modify"_kspace_modify.html,
|
||||
"kspace_style"_kspace_style.html,
|
||||
"label"_label.html,
|
||||
|
||||
@ -28,8 +28,12 @@ OPT.
|
||||
|
||||
"none"_bond_none.html,
|
||||
"zero"_bond_zero.html,
|
||||
"hybrid"_bond_hybrid.html :tb(c=3,ea=c)
|
||||
|
||||
"hybrid"_bond_hybrid.html,
|
||||
,
|
||||
,
|
||||
,
|
||||
,
|
||||
,
|
||||
"class2 (ko)"_bond_class2.html,
|
||||
"fene (iko)"_bond_fene.html,
|
||||
"fene/expand (o)"_bond_fene_expand.html,
|
||||
@ -56,8 +60,12 @@ OPT.
|
||||
|
||||
"none"_angle_none.html,
|
||||
"zero"_angle_zero.html,
|
||||
"hybrid"_angle_hybrid.html :tb(c=3,ea=c)
|
||||
|
||||
"hybrid"_angle_hybrid.html,
|
||||
,
|
||||
,
|
||||
,
|
||||
,
|
||||
,
|
||||
"charmm (iko)"_angle_charmm.html,
|
||||
"class2 (ko)"_angle_class2.html,
|
||||
"class2/p6"_angle_class2.html,
|
||||
@ -89,8 +97,12 @@ OPT.
|
||||
|
||||
"none"_dihedral_none.html,
|
||||
"zero"_dihedral_zero.html,
|
||||
"hybrid"_dihedral_hybrid.html :tb(c=3,ea=c)
|
||||
|
||||
"hybrid"_dihedral_hybrid.html,
|
||||
,
|
||||
,
|
||||
,
|
||||
,
|
||||
,
|
||||
"charmm (iko)"_dihedral_charmm.html,
|
||||
"charmmfsw"_dihedral_charmm.html,
|
||||
"class2 (ko)"_dihedral_class2.html,
|
||||
@ -117,8 +129,12 @@ OPT.
|
||||
|
||||
"none"_improper_none.html,
|
||||
"zero"_improper_zero.html,
|
||||
"hybrid"_improper_hybrid.html :tb(c=3,ea=c)
|
||||
|
||||
"hybrid"_improper_hybrid.html,
|
||||
,
|
||||
,
|
||||
,
|
||||
,
|
||||
,
|
||||
"class2 (ko)"_improper_class2.html,
|
||||
"cossq (o)"_improper_cossq.html,
|
||||
"cvff (io)"_improper_cvff.html,
|
||||
|
||||
@ -66,6 +66,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"group/group"_compute_group_group.html,
|
||||
"gyration"_compute_gyration.html,
|
||||
"gyration/chunk"_compute_gyration_chunk.html,
|
||||
"gyration/shape"_compute_gyration_shape.html,
|
||||
"heat/flux"_compute_heat_flux.html,
|
||||
"heat/flux/tally"_compute_tally.html,
|
||||
"hexorder/atom"_compute_hexorder_atom.html,
|
||||
@ -80,6 +81,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"meso/e/atom"_compute_meso_e_atom.html,
|
||||
"meso/rho/atom"_compute_meso_rho_atom.html,
|
||||
"meso/t/atom"_compute_meso_t_atom.html,
|
||||
"momentum"_compute_momentum.html,
|
||||
"msd"_compute_msd.html,
|
||||
"msd/chunk"_compute_msd_chunk.html,
|
||||
"msd/nongauss"_compute_msd_nongauss.html,
|
||||
|
||||
@ -27,8 +27,11 @@ OPT.
|
||||
"none"_pair_none.html,
|
||||
"zero"_pair_zero.html,
|
||||
"hybrid (k)"_pair_hybrid.html,
|
||||
"hybrid/overlay (k)"_pair_hybrid.html :tb(c=4,ea=c)
|
||||
|
||||
"hybrid/overlay (k)"_pair_hybrid.html,
|
||||
,
|
||||
,
|
||||
,
|
||||
,
|
||||
"adp (o)"_pair_adp.html,
|
||||
"agni (o)"_pair_agni.html,
|
||||
"airebo (io)"_pair_airebo.html,
|
||||
@ -219,6 +222,8 @@ OPT.
|
||||
"sph/rhosum"_pair_sph_rhosum.html,
|
||||
"sph/taitwater"_pair_sph_taitwater.html,
|
||||
"sph/taitwater/morris"_pair_sph_taitwater_morris.html,
|
||||
"spin/dipole/cut"_pair_spin_dipole.html,
|
||||
"spin/dipole/long"_pair_spin_dipole.html,
|
||||
"spin/dmi"_pair_spin_dmi.html,
|
||||
"spin/exchange"_pair_spin_exchange.html,
|
||||
"spin/magelec"_pair_spin_magelec.html,
|
||||
|
||||
66
doc/src/Commands_removed.txt
Normal file
@ -0,0 +1,66 @@
|
||||
"Higher level section"_Commands.html - "LAMMPS WWW Site"_lws - "LAMMPS
|
||||
Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Commands.html)
|
||||
|
||||
:line
|
||||
|
||||
Removed commands and packages :h3
|
||||
|
||||
This page lists LAMMPS commands and packages that have been removed from
|
||||
the distribution and provides suggestions for alternatives or replacements.
|
||||
LAMMPS has special dummy styles implemented, that will stop LAMMPS and
|
||||
print a suitable error message in most cases, when a style/command is used
|
||||
that has been removed.
|
||||
|
||||
Fix ave/spatial and fix ave/spatial/sphere :h4
|
||||
|
||||
The fixes ave/spatial and ave/spatial/sphere have been removed from LAMMPS
|
||||
since they were superseded by the more general and extensible "chunk
|
||||
infrastructure". Here the system is partitioned in one of many possible
|
||||
ways through the "compute chunk/atom"_compute_chunk_atom.html command
|
||||
and then averaging is done using "fix ave/chunk"_fix_ave_chunk.html.
|
||||
Please refer to the "chunk HOWTO"_Howto_chunk.html section for an overview.
|
||||
|
||||
MEAM package :h4
|
||||
|
||||
The MEAM package has been removed since it was superseded by the
|
||||
"USER-MEAMC package"_Package_details.html#PKG-USER-MEAMC. The code in
|
||||
the USER-MEAMC package is a translation of the Fortran code of MEAM into C++,
|
||||
which removes several restrictions (e.g. there can be multiple instances
|
||||
in hybrid pair styles) and allows for some optimizations leading
|
||||
to better performance. The new pair style "meam/c"_pair_meamc.html has
|
||||
the exact same syntax as the old "meam" pair style and thus pair style
|
||||
"meam"_pair_meamc.html is an alias to the new style and backward
|
||||
compatibility of old inputs is preserved.
|
||||
|
||||
REAX package :h4
|
||||
|
||||
The REAX package has been removed since it was superseded by the
|
||||
"USER-REAXC package"_Package_details.html#PKG-USER-REAXC. The USER-REAXC
|
||||
package has been tested to yield equivalent results to the REAX package,
|
||||
offers better performance, supports OpenMP multi-threading via USER-OMP,
|
||||
and GPU and threading parallelization through KOKKOS. The new pair styles
|
||||
are not syntax compatible with the removed reax pair style, so input
|
||||
files will have to be adapted.
|
||||
|
||||
USER-CUDA package :h4
|
||||
|
||||
The USER-CUDA package had been removed, since it had been unmaintained
|
||||
for a long time and had known bugs and problems. Significant parts of
|
||||
the design were transferred to the
|
||||
"KOKKOS package"_Package_details.html#PKG-KOKKOS, which has similar
|
||||
performance characteristics on Nvidia GPUs. Both, the KOKKOS
|
||||
and the "GPU package"_Package_details.html#PKG-GPU are maintained
|
||||
and allow running LAMMPS with GPU acceleration.
|
||||
|
||||
restart2data tool :h4
|
||||
|
||||
The functionality of the restart2data tool has been folded into the
|
||||
LAMMPS executable directly instead of having a separate tool. A
|
||||
combination of the commands "read_restart"_read_restart.html and
|
||||
"write_data"_write_data.html can be used to the same effect. For added
|
||||
convenience this conversion can also be triggered by "command line
|
||||
flags"_Run_options.html
|
||||
15
doc/src/Eqs/angle_class2_p6.tex
Normal file
@ -0,0 +1,15 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\pagestyle{empty}
|
||||
\begin{document}
|
||||
|
||||
$$
|
||||
E_{a} = K_2\left(\theta - \theta_0\right)^2 + K_3\left(\theta - \theta_0\right)^3 + K_4\left(\theta - \theta_0\right)^4 + K_5\left(\theta - \theta_0\right)^5 + K_6\left(\theta - \theta_0\right)^6
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
|
||||
%%% Local Variables:
|
||||
%%% mode: latex
|
||||
%%% TeX-master: t
|
||||
%%% End:
|
||||
15
doc/src/Eqs/angle_cosine_buck6d.tex
Normal file
@ -0,0 +1,15 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\pagestyle{empty}
|
||||
\begin{document}
|
||||
|
||||
$$
|
||||
E = K \left[ 1 + \cos(n\theta - \theta_0)\right]
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
|
||||
%%% Local Variables:
|
||||
%%% mode: latex
|
||||
%%% TeX-master: t
|
||||
%%% End:
|
||||
BIN
doc/src/Eqs/compute_shape_parameters.jpg
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
13
doc/src/Eqs/compute_shape_parameters.tex
Normal file
@ -0,0 +1,13 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\pagestyle{empty}
|
||||
\begin{document}
|
||||
|
||||
\begin{eqnarray*}
|
||||
c = l_z - 0.5(l_y+l_x) \\
|
||||
b = l_y - l_x \\
|
||||
k = \frac{3}{2} \frac{l_x^2+l_y^2+l_z^2}{(l_x+l_y+l_z)^2} - \frac{1}{2}
|
||||
\end{eqnarray*}
|
||||
|
||||
\end{document}
|
||||
|
||||
15
doc/src/Eqs/improper_inversion_harmonic.tex
Normal file
@ -0,0 +1,15 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\pagestyle{empty}
|
||||
\begin{document}
|
||||
|
||||
$$
|
||||
E = K \left(\theta - \theta_0\right)^2
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
|
||||
%%% Local Variables:
|
||||
%%% mode: latex
|
||||
%%% TeX-master: t
|
||||
%%% End:
|
||||
18
doc/src/Eqs/pair_agni.tex
Normal file
@ -0,0 +1,18 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\pagestyle{empty}
|
||||
\begin{document}
|
||||
|
||||
\begin{eqnarray*}
|
||||
F_i^u & = & \sum_t^{N_t}\alpha_t \cdot \exp\left[-\frac{\left(d_{i,t}^u\right)^2}{2l^2}\right] \\
|
||||
d_{i,t}^u & = & \left|\left| V_i^u(\eta) - V_t^u(\eta) \right|\right| \\
|
||||
V_i^u(\eta) & = & \sum_{j \neq i}\frac{r^u_{ij}}{r_{ij}} \cdot e^{-\left(\frac{r_{ij}}{\eta} \right)^2} \cdot f_d\left(r_{ij}\right) \\
|
||||
f_d\left(r_{ij}\right) & = & \frac{1}{2} \left[\cos\left(\frac{\pi r_{ij}}{R_c}\right) + 1 \right]
|
||||
\end{eqnarray*}
|
||||
|
||||
\end{document}
|
||||
|
||||
%%% Local Variables:
|
||||
%%% mode: latex
|
||||
%%% TeX-master: t
|
||||
%%% End:
|
||||
@ -1,6 +1,7 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
\pagestyle{empty}
|
||||
|
||||
\begin{eqnarray*}
|
||||
E = A e^{-\kappa r} - \frac{C}{r^6} \cdot \frac{1}{1 + D r^{14}} \qquad r < r_c \\
|
||||
15
doc/src/Eqs/pair_coul_gauss.tex
Normal file
@ -0,0 +1,15 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\pagestyle{empty}
|
||||
\begin{document}
|
||||
|
||||
$$
|
||||
E = \frac{C_{q_i q_j}}{\epsilon r_{ij}}\,\, \textrm{erf}\left(\alpha_{ij} r_{ij}\right)\quad\quad\quad r < r_c
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
|
||||
%%% Local Variables:
|
||||
%%% mode: latex
|
||||
%%% TeX-master: t
|
||||
%%% End:
|
||||
|
Before Width: | Height: | Size: 178 KiB After Width: | Height: | Size: 49 KiB |
@ -27,7 +27,7 @@
|
||||
V_{ij} & = & e^{-\lambda (r_{ij} -z_0)} \left [ C + f(\rho_{ij}) + f(\rho_{ji}) - A \left ( \frac{r_{ij}}{z_0}\right )^{-6} \right ] \\
|
||||
\rho_{ij}^2 & = & r_{ij}^2 - ({\bf r}_{ij}\cdot {\bf n}_{i})^2 \\[15pt]
|
||||
\rho_{ji}^2 & = & r_{ij}^2 - ({\bf r}_{ij}\cdot {\bf n}_{j})^2 \\[15pt]
|
||||
f(\rho) & = & e^{-(\rho/\delta)^2} \sum_{n=0}^2 C_{2n} { \rho/\delta }^{2n}
|
||||
f(\rho) & = & e^{-(\rho/\delta)^2} \sum_{n=0}^2 C_{2n} { (\rho/\delta) }^{2n}
|
||||
\end{eqnarray*}
|
||||
\endgroup
|
||||
\end{document}
|
||||
|
||||
BIN
doc/src/Eqs/pair_spin_dipole.jpg
Normal file
|
After Width: | Height: | Size: 38 KiB |
42
doc/src/Eqs/pair_spin_dipole.tex
Normal file
@ -0,0 +1,42 @@
|
||||
\documentclass[preview]{standalone}
|
||||
\usepackage{varwidth}
|
||||
\usepackage[utf8x]{inputenc}
|
||||
\usepackage{amsmath,amssymb,graphics,bm,setspace}
|
||||
|
||||
\begin{document}
|
||||
\begin{varwidth}{50in}
|
||||
\begin{equation}
|
||||
\mathcal{H}_{\rm long}=
|
||||
-\frac{\mu_{0} \left( \mu_B\right)^2}{4\pi}
|
||||
\sum_{i,j,i\neq j}^{N}
|
||||
\frac{g_i g_j}{r_{ij}^3}
|
||||
\Big(3
|
||||
\left(\bm{e}_{ij}\cdot \bm{s}_{i}\right)
|
||||
\left(\bm{e}_{ij}\cdot \bm{s}_{j}\right)
|
||||
-\bm{s}_i\cdot\bm{s}_j \Big)
|
||||
\nonumber
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\bm{\omega}_i =
|
||||
\frac{\mu_0 (\mu_B)^2}{4\pi\hbar}\sum_{j}
|
||||
\frac{g_i g_j}{r_{ij}^3}
|
||||
\, \Big(
|
||||
3\,(\bm{e}_{ij}\cdot\bm{s}_{j})\bm{e}_{ij}
|
||||
-\bm{s}_{j} \Big) \nonumber
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\bm{F}_i =
|
||||
\frac{3\, \mu_0 (\mu_B)^2}{4\pi} \sum_j
|
||||
\frac{g_i g_j}{r_{ij}^4}
|
||||
\Big[\big( (\bm{s}_i\cdot\bm{s}_j)
|
||||
-5(\bm{e}_{ij}\cdot\bm{s}_i)
|
||||
(\bm{e}_{ij}\cdot\bm{s}_j)\big) \bm{e}_{ij}+
|
||||
\big(
|
||||
(\bm{e}_{ij}\cdot\bm{s}_i)\bm{s}_j+
|
||||
(\bm{e}_{ij}\cdot\bm{s}_j)\bm{s}_i
|
||||
\big)
|
||||
\Big]
|
||||
\nonumber
|
||||
\end{equation}
|
||||
\end{varwidth}
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/pair_spin_long_range.jpg
Normal file
|
After Width: | Height: | Size: 12 KiB |
20
doc/src/Eqs/pair_spin_long_range.tex
Normal file
@ -0,0 +1,20 @@
|
||||
\documentclass[preview]{standalone}
|
||||
\usepackage{varwidth}
|
||||
\usepackage[utf8x]{inputenc}
|
||||
\usepackage{amsmath,amssymb,graphics,bm,setspace}
|
||||
|
||||
\begin{document}
|
||||
\begin{varwidth}{50in}
|
||||
\begin{equation}
|
||||
\mathcal{H}_{\rm long}=
|
||||
-\frac{\mu_{0} \left( \mu_B\right)^2}{4\pi}
|
||||
\sum_{i,j,i\neq j}^{N}
|
||||
\frac{g_i g_j}{r_{ij}^3}
|
||||
\Big(3
|
||||
\left(\bm{e}_{ij}\cdot \bm{s}_{i}\right)
|
||||
\left(\bm{e}_{ij}\cdot \bm{s}_{j}\right)
|
||||
-\bm{s}_i\cdot\bm{s}_j \Big)
|
||||
\nonumber
|
||||
\end{equation}
|
||||
\end{varwidth}
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/pair_spin_long_range_force.jpg
Normal file
|
After Width: | Height: | Size: 16 KiB |
23
doc/src/Eqs/pair_spin_long_range_force.tex
Normal file
@ -0,0 +1,23 @@
|
||||
\documentclass[preview]{standalone}
|
||||
\usepackage{varwidth}
|
||||
\usepackage[utf8x]{inputenc}
|
||||
\usepackage{amsmath,amssymb,graphics,bm,setspace}
|
||||
|
||||
\begin{document}
|
||||
\begin{varwidth}{50in}
|
||||
\begin{equation}
|
||||
\bm{F}_i =
|
||||
\frac{\mu_0 (\mu_B)^2}{4\pi} \sum_j
|
||||
\frac{g_i g_j}{r_{ij}^4}
|
||||
\Big[\big( (\bm{s}_i\cdot\bm{s}_j)
|
||||
-5(\bm{e}_{ij}\cdot\bm{s}_i)
|
||||
(\bm{e}_{ij}\cdot\bm{s}_j)\big) \bm{e}_{ij}+
|
||||
\big(
|
||||
(\bm{e}_{ij}\cdot\bm{s}_i)\bm{s}_j+
|
||||
(\bm{e}_{ij}\cdot\bm{s}_j)\bm{s}_i
|
||||
\big)
|
||||
\Big]
|
||||
\nonumber
|
||||
\end{equation}
|
||||
\end{varwidth}
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/pair_spin_long_range_magforce.jpg
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
17
doc/src/Eqs/pair_spin_long_range_magforce.tex
Normal file
@ -0,0 +1,17 @@
|
||||
\documentclass[preview]{standalone}
|
||||
\usepackage{varwidth}
|
||||
\usepackage[utf8x]{inputenc}
|
||||
\usepackage{amsmath,amssymb,graphics,bm,setspace}
|
||||
|
||||
\begin{document}
|
||||
\begin{varwidth}{50in}
|
||||
\begin{equation}
|
||||
\bm{\omega}_i =
|
||||
\frac{\mu_0 (\mu_B)^2}{4\pi\hbar}\sum_{j}
|
||||
\frac{g_i g_j}{r_{ij}^3}
|
||||
\, \Big(
|
||||
3\,(\bm{e}_{ij}\cdot\bm{s}_{j})\bm{e}_{ij}
|
||||
-\bm{s}_{j} \Big) \nonumber
|
||||
\end{equation}
|
||||
\end{varwidth}
|
||||
\end{document}
|
||||
@ -610,6 +610,62 @@ This means there is something invalid about the topology definitions. :dd
|
||||
|
||||
The data file header lists bonds but no bond types. :dd
|
||||
|
||||
{Bond/react: Cannot use fix bond/react with non-molecular systems} :dt
|
||||
|
||||
Only systems with bonds that can be changed can be used. Atom_style
|
||||
template does not qualify. :dd
|
||||
|
||||
{Bond/react: Rmax cutoff is longer than pairwise cutoff} :dt
|
||||
|
||||
This is not allowed because bond creation is done using the pairwise
|
||||
neighbor list. :dd
|
||||
|
||||
{Bond/react: Molecule template ID for fix bond/react does not exist} :dt
|
||||
|
||||
A valid molecule template must have been created with the molecule
|
||||
command. :dd
|
||||
|
||||
{Bond/react: Reaction templates must contain the same number of atoms} :dt
|
||||
|
||||
There should be a one-to-one correspondence between atoms in the
|
||||
pre-reacted and post-reacted templates, as specified by the map file. :dd
|
||||
|
||||
{Bond/react: Unknown section in map file} :dt
|
||||
|
||||
Please ensure reaction map files are properly formatted. :dd
|
||||
|
||||
{Bond/react: Atom affected by reaction too close to template edge} :dt
|
||||
|
||||
This means an atom which changes type or connectivity during the
|
||||
reaction is too close to an 'edge' atom defined in the superimpose
|
||||
file. This could cause incorrect assignment of bonds, angle, etc.
|
||||
Generally, this means you must include more atoms in your templates,
|
||||
such that there are at least two atoms between each atom involved in
|
||||
the reaction and an edge atom. :dd
|
||||
|
||||
{Bond/react: Fix bond/react needs ghost atoms from farther away} :dt
|
||||
|
||||
This is because a processor needs to superimpose the entire unreacted
|
||||
molecule template onto simulation atoms it knows about. The
|
||||
comm_modify cutoff command can be used to extend the communication
|
||||
range. :dd
|
||||
|
||||
{Bond/react: A deleted atom cannot remain bonded to an atom that is not deleted} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Bond/react special bond generation overflow} :dt
|
||||
|
||||
The number of special bonds per-atom created by a reaction exceeds the
|
||||
system setting. See the read_data or create_box command for how to
|
||||
specify this value. :dd
|
||||
|
||||
{Bond/react topology/atom exceed system topology/atom} :dt
|
||||
|
||||
The number of bonds, angles etc per-atom created by a reaction exceeds
|
||||
the system setting. See the read_data or create_box command for how to
|
||||
specify this value. :dd
|
||||
|
||||
{Both restart files must use % or neither} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
@ -2146,10 +2202,6 @@ Self-explanatory. :dd
|
||||
|
||||
This is a current restriction in LAMMPS. :dd
|
||||
|
||||
{Cannot use pair hybrid with GPU neighbor list builds} :dt
|
||||
|
||||
Neighbor list builds must be done on the CPU for this pair style. :dd
|
||||
|
||||
{Cannot use pair tail corrections with 2d simulations} :dt
|
||||
|
||||
The correction factors are only currently defined for 3d systems. :dd
|
||||
@ -2386,6 +2438,14 @@ Self-explanatory. :dd
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Compute gyration ID does not exist for compute gyration/shape} :dt
|
||||
|
||||
Self-explanatory. Provide a valid compute ID. :dd
|
||||
|
||||
{Compute gyration/shape compute ID does not point to a gyration compute} :dt
|
||||
|
||||
Self-explanatory. Provide and ID of a compute gyration command. :dd
|
||||
|
||||
{Compute ID for compute reduce does not exist} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
@ -5467,10 +5527,6 @@ Self-explanatory. :dd
|
||||
For this pair style, you cannot run part of the force calculation on
|
||||
the host. See the package command. :dd
|
||||
|
||||
{GPU split param must be positive for hybrid pair styles} :dt
|
||||
|
||||
See the package gpu command. :dd
|
||||
|
||||
{GPUs are requested but Kokkos has not been compiled for CUDA} :dt
|
||||
|
||||
Re-compile Kokkos with CUDA support to use GPUs. :dd
|
||||
@ -5729,6 +5785,16 @@ definitions. :dd
|
||||
|
||||
The data file header lists improper but no improper types. :dd
|
||||
|
||||
{Incompatible KIM Simulator Model} :dt
|
||||
|
||||
The requested KIM Simulator Model was defined for a different MD code
|
||||
and thus is not compatible with LAMMPS. :dd
|
||||
|
||||
{Incompatible units for KIM Simulator Model} :dt
|
||||
|
||||
The selected unit style is not compatible with the requested KIM
|
||||
Simulator Model. :dd
|
||||
|
||||
{Incomplete use of variables in create_atoms command} :dt
|
||||
|
||||
The var and set options must be used together. :dd
|
||||
@ -5842,6 +5908,11 @@ The element names in the ADP file do not match those requested. :dd
|
||||
|
||||
The element names in the EAM file do not match those requested. :dd
|
||||
|
||||
{Incorrect format of ... section in data file} :dt
|
||||
|
||||
Number or type of values per line in the given section of the data file
|
||||
is not consistent with the requirements for this section. :dd
|
||||
|
||||
{Incorrect format in COMB potential file} :dt
|
||||
|
||||
Incorrect number of words per line in the potential file. :dd
|
||||
@ -6994,6 +7065,12 @@ The atom style defined does not have this attribute. :dd
|
||||
|
||||
The atom style defined does not have these attributes. :dd
|
||||
|
||||
{KIM Simulator Model has no Model definition} :dt
|
||||
|
||||
There is no model definition (key: model-defn) in the KIM Simulator
|
||||
Model. Please contact the OpenKIM database maintainers to verify
|
||||
and potentially correct this. :dd
|
||||
|
||||
{KOKKOS package does not yet support comm_style tiled} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
@ -7041,6 +7118,18 @@ Self-explanatory. :dd
|
||||
|
||||
One or more GPUs must be used when Kokkos is compiled for CUDA. :dd
|
||||
|
||||
{Kspace_modify mesh parameter must be all zero or all positive} :dt
|
||||
|
||||
Valid kspace mesh parameters are >0. The code will try to auto-detect
|
||||
suitable values when all three mesh sizes are set to zero (the default). :dd
|
||||
|
||||
{Kspace_modify mesh/disp parameter must be all zero or all positive} :dt
|
||||
|
||||
Valid kspace mesh/disp parameters are >0. The code will try to auto-detect
|
||||
suitable values when all three mesh sizes are set to zero [and]
|
||||
the required accuracy via {force/disp/real} as well as
|
||||
{force/disp/kspace} is set. :dd
|
||||
|
||||
{Kspace style does not support compute group/group} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
@ -7486,6 +7575,18 @@ Self-explanatory. :dd
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Must use 'kim_style init' command before simulation box is defined} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Must use 'kim_style define' command after simulation box is defined} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Must use 'kim_style init' command before 'kim_style define'} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Must use 'kspace_modify pressure/scalar no' for rRESPA with kspace_style MSM} :dt
|
||||
|
||||
The kspace scalar pressure option cannot (yet) be used with rRESPA. :dd
|
||||
@ -9429,6 +9530,11 @@ See the "read_data extra/special/per/atom" command
|
||||
for info on how to leave space in the special bonds
|
||||
list to allow for additional bonds to be formed. :dd
|
||||
|
||||
{Species XXX is not supported by this KIM Simulator Model} :dt
|
||||
|
||||
The kim_style define command was referencing a species that is not
|
||||
present in the requested KIM Simulator Model. :dd
|
||||
|
||||
{Specified processors != physical processors} :dt
|
||||
|
||||
The 3d grid of processors defined by the processors command does not
|
||||
|
||||
@ -82,6 +82,15 @@ bond/angle/dihedral. LAMMPS computes this by taking the maximum bond
|
||||
length, multiplying by the number of bonds in the interaction (e.g. 3
|
||||
for a dihedral) and adding a small amount of stretch. :dd
|
||||
|
||||
{Bond/react: Atom affected by reaction too close to template edge} :dt
|
||||
|
||||
This means an atom which changes type or connectivity during the
|
||||
reaction is too close to an 'edge' atom defined in the superimpose
|
||||
file. This could cause incorrect assignment of bonds, angle, etc.
|
||||
Generally, this means you must include more atoms in your templates,
|
||||
such that there are at least two atoms between each atom involved in
|
||||
the reaction and an edge atom. :dd
|
||||
|
||||
{Both groups in compute group/group have a net charge; the Kspace boundary correction to energy will be non-zero} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
@ -120,6 +129,16 @@ Self-explanatory. :dd
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost} :dt
|
||||
|
||||
The communication cutoff defaults to the maximum of what is inferred from
|
||||
pair and bond styles (will be zero, if none are defined) and what is specified
|
||||
via "comm_modify cutoff"_comm_modify.html (defaults to 0.0). If this results
|
||||
to 0.0, no ghost atoms will be generated and LAMMPS may lose atoms or use
|
||||
incorrect periodic images of atoms in interaction lists. To avoid, either use
|
||||
"pair style zero"_pair_zero.html with a suitable cutoff or use "comm_modify
|
||||
cutoff"_comm_modify.html. :dd
|
||||
|
||||
{Communication cutoff is too small for SNAP micro load balancing, increased to %lf} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
@ -73,7 +73,7 @@ granregion: use of fix wall/region/gran as boundary on granular particles
|
||||
hugoniostat: Hugoniostat shock dynamics
|
||||
hyper: global and local hyperdynamics of diffusion on Pt surface
|
||||
indent: spherical indenter into a 2d solid
|
||||
kim: use of potentials in Knowledge Base for Interatomic Models (KIM)
|
||||
kim: use of potentials from the "OpenKIM Repository"_openkim
|
||||
latte: examples for using fix latte for DFTB via the LATTE library
|
||||
meam: MEAM test for SiC and shear (same as shear examples)
|
||||
melt: rapid melt of 3d LJ system
|
||||
@ -153,3 +153,5 @@ illustrate how to use the command(s) provided in that package. Many
|
||||
of the sub-directories have their own README files which give further
|
||||
instructions. See the "Packages_details"_Packages_details.html doc
|
||||
page for more info on specific USER packages.
|
||||
|
||||
:link(openkim,https://openkim.org)
|
||||
|
||||
@ -15,7 +15,8 @@ Binaries are available for different versions of Linux:
|
||||
"Pre-built Fedora Linux executables"_#fedora
|
||||
"Pre-built EPEL Linux executables (RHEL, CentOS)"_#epel
|
||||
"Pre-built OpenSuse Linux executables"_#opensuse
|
||||
"Gentoo Linux executable"_#gentoo :all(b)
|
||||
"Gentoo Linux executable"_#gentoo
|
||||
"Arch Linux build-script"_#arch :all(b)
|
||||
|
||||
:line
|
||||
|
||||
@ -168,3 +169,31 @@ for details.
|
||||
|
||||
Thanks to Nicolas Bock and Christoph Junghans (LANL) for setting up
|
||||
this Gentoo capability.
|
||||
|
||||
:line
|
||||
|
||||
Archlinux build-script :h4,link(arch)
|
||||
|
||||
LAMMPS is available via Arch's unofficial Arch User repository (AUR).
|
||||
|
||||
There are three scripts available, named lammps, lammps-beta and lammps-git.
|
||||
They respectively package the stable, patch and git releases.
|
||||
|
||||
To install, you will need to have the git package installed. You may use
|
||||
any of the above names in-place of lammps.
|
||||
|
||||
$ git clone https://aur.archlinux.org/lammps.git :pre
|
||||
$ cd lammps :pre
|
||||
$ makepkg -s :pre
|
||||
# makepkg -i :pre
|
||||
|
||||
To update, you may repeat the above, or change into the cloned directory,
|
||||
and execute the following, after which, if there are any changes, you may
|
||||
use makepkg as above.
|
||||
|
||||
$ git pull :pre
|
||||
|
||||
Alternatively, you may use an AUR helper to install these packages.
|
||||
|
||||
Note that the AUR provides build-scripts that download the source and
|
||||
the build the package on your machine.
|
||||
|
||||
@ -10,47 +10,34 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
Download an executable for Mac :h3
|
||||
|
||||
LAMMPS can be downloaded, built, and configured for OS X on a Mac with
|
||||
"Homebrew"_homebrew. Only four of the LAMMPS packages are unavailable
|
||||
at this time because of additional needs not yet met: KIM, GPU,
|
||||
USER-INTEL, USER-ATC.
|
||||
"Homebrew"_homebrew. The following LAMMPS packages are unavailable at this
|
||||
time because of additional needs not yet met: GPU, KOKKOS, LATTE, MSCG,
|
||||
MESSAGE, MPIIO POEMS VORONOI.
|
||||
|
||||
After installing Homebrew, you can install LAMMPS on your system with
|
||||
the following commands:
|
||||
|
||||
% brew tap homebrew/science
|
||||
% brew install lammps # serial version
|
||||
% brew install lammps --with-mpi # mpi support :pre
|
||||
% brew install lammps :pre
|
||||
|
||||
This will install the executable "lammps", a python module named
|
||||
"lammps", and additional resources with all the standard packages. To
|
||||
get the location of the additional resources type this:
|
||||
|
||||
% brew info lammps :pre
|
||||
|
||||
This command also tells you additional installation options available.
|
||||
The user-packages are available as options, just install them like
|
||||
this example for the USER-OMP package:
|
||||
|
||||
% brew install lammps --enable-user-omp :pre
|
||||
|
||||
It is usually best to install LAMMPS with the most up to date source
|
||||
files, which can be done with the "--HEAD" option:
|
||||
|
||||
% brew install lammps --HEAD :pre
|
||||
|
||||
To re-install the LAMMPS HEAD, run this command occasionally (make sure
|
||||
to use the desired options).
|
||||
|
||||
% brew install --force lammps --HEAD $\{options\} :pre
|
||||
This will install the executables "lammps_serial" and "lammps_mpi", as well as
|
||||
the LAMMPS "doc", "potentials", "tools", "bench", and "examples" directories.
|
||||
|
||||
Once LAMMPS is installed, you can test the installation with the
|
||||
Lennard-Jones benchmark file:
|
||||
|
||||
% brew test lammps -v :pre
|
||||
|
||||
The LAMMPS binary is built with the "KIM package"_Build_extras#kim which
|
||||
results in Homebrew also installing the `kim-api` binaries when LAMMPS is
|
||||
installed. In order to use potentials from "openkim.org"_openkim, you can
|
||||
install the `openkim-models` package
|
||||
|
||||
% brew install openkim-models :pre
|
||||
|
||||
If you have problems with the installation you can post issues to
|
||||
"this link"_homebrew.
|
||||
|
||||
Thanks to Derek Thomas (derekt at cello.t.u-tokyo.ac.jp) for setting
|
||||
up the Homebrew capability.
|
||||
:link(homebrew,https://github.com/Homebrew/homebrew-science/issues)
|
||||
:link(homebrew,https://github.com/Homebrew/homebrew-core/issues)
|
||||
:link(openkim,https://openkim.org)
|
||||
|
||||
@ -92,8 +92,8 @@ commands)
|
||||
implicit solvent potentials: hydrodynamic lubrication, Debye
|
||||
force-field compatibility with common CHARMM, AMBER, DREIDING, \
|
||||
OPLS, GROMACS, COMPASS options
|
||||
access to "KIM archive"_http://openkim.org of potentials via \
|
||||
"pair kim"_pair_kim.html
|
||||
access to the "OpenKIM Repository"_http://openkim.org of potentials via \
|
||||
"kim_init, kim_interactions, and kim_query"_kim_commands.html commands
|
||||
hybrid potentials: multiple pair, bond, angle, dihedral, improper \
|
||||
potentials can be used in one simulation
|
||||
overlaid potentials: superposition of multiple pair potentials :ul
|
||||
|
||||
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
@ -1,7 +1,7 @@
|
||||
<!-- HTML_ONLY -->
|
||||
<HEAD>
|
||||
<TITLE>LAMMPS Users Manual</TITLE>
|
||||
<META NAME="docnumber" CONTENT="31 May 2019 version">
|
||||
<META NAME="docnumber" CONTENT="6 Aug 2019 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 @@
|
||||
:line
|
||||
|
||||
LAMMPS Documentation :c,h1
|
||||
31 May 2019 version :c,h2
|
||||
6 Aug 2019 version :c,h2
|
||||
|
||||
"What is a LAMMPS version?"_Manual_version.html
|
||||
|
||||
|
||||
@ -338,22 +338,37 @@ KIM package :link(PKG-KIM),h4
|
||||
|
||||
[Contents:]
|
||||
|
||||
A "pair_style kim"_pair_kim.html command which is a wrapper on the
|
||||
Knowledge Base for Interatomic Models (KIM) repository of interatomic
|
||||
potentials, enabling any of them to be used in LAMMPS simulations.
|
||||
Also a "kim_query"_kim_query.html command, which allows to query
|
||||
the OpenKIM database for stored properties.
|
||||
This package contains a set of commands that serve as a wrapper on the
|
||||
"Open Knowledgebase of Interatomic Models (OpenKIM)"_https://openkim.org
|
||||
repository of interatomic models (IMs)
|
||||
enabling compatible ones to be used in LAMMPS simulations.
|
||||
This includes "kim_init and kim_interactions"_kim_commands.html
|
||||
commands to select, initialize and instantiate the IM, and a
|
||||
"kim_query"_kim_commands.html command to perform web queries
|
||||
for material property predictions of OpenKIM IMs.
|
||||
Support for KIM IMs that conform to the
|
||||
"KIM Application Programming Interface (API)"_https://openkim.org/kim-api/
|
||||
is provided by the "pair_style kim"_pair_kim.html command.
|
||||
|
||||
To use this package you must have the KIM library available on your
|
||||
system.
|
||||
NOTE: The command {pair_style kim} is called by {kim_interactions} and
|
||||
is not recommended to be directly used in input scripts.
|
||||
|
||||
To use this package you must have the KIM API library available on your
|
||||
system. The KIM API is available for download on the
|
||||
"OpenKIM website"_https://openkim.org/kim-api/.
|
||||
When installing LAMMPS from binary, the kim-api package
|
||||
is a dependency that is automatically downloaded and installed.
|
||||
|
||||
Information about the KIM project can be found at its website:
|
||||
https://openkim.org. The KIM project is led by Ellad Tadmor and Ryan
|
||||
Elliott (U Minnesota).
|
||||
"https://openkim.org"_https://openkim.org.
|
||||
The KIM project is led by Ellad Tadmor and Ryan Elliott (U Minnesota)
|
||||
and is funded by the "National Science Foundation"_https://www.nsf.gov/.
|
||||
|
||||
[Authors:] Ryan Elliott (U Minnesota) is the main developer for the KIM
|
||||
API which the "pair_style kim"_pair_kim.html command uses. He
|
||||
developed the pair style.
|
||||
API and the {pair_style kim} command. Axel Kohlmeyer (Temple U) and
|
||||
Ellad Tadmor (U Minnesota) contributed to the "kim_commands"_kim_commands.html
|
||||
interface in close collaboration with Ryan Elliott.
|
||||
|
||||
|
||||
[Install:]
|
||||
|
||||
@ -363,10 +378,11 @@ extras"_Build_extras.html doc page.
|
||||
|
||||
[Supporting info:]
|
||||
|
||||
"kim_commands"_kim_commands.html
|
||||
"pair_style kim"_pair_kim.html
|
||||
src/KIM: filenames -> commands
|
||||
src/KIM/README
|
||||
lib/kim/README
|
||||
"pair_style kim"_pair_kim.html
|
||||
examples/kim :ul
|
||||
|
||||
:line
|
||||
@ -911,6 +927,8 @@ the usual manner via MD. Various pair, fix, and compute styles.
|
||||
|
||||
src/SPIN: filenames -> commands
|
||||
"Howto spins"_Howto_spins.html
|
||||
"pair_style spin/dipole/cut"_pair_spin_dipole.html
|
||||
"pair_style spin/dipole/long"_pair_spin_dipole.html
|
||||
"pair_style spin/dmi"_pair_spin_dmi.html
|
||||
"pair_style spin/exchange"_pair_spin_exchange.html
|
||||
"pair_style spin/magelec"_pair_spin_magelec.html
|
||||
@ -982,9 +1000,9 @@ USER-ADIOS package :link(PKG-USER-ADIOS),h4
|
||||
|
||||
[Contents:]
|
||||
|
||||
ADIOS is a high-performance I/O library. This package implements the
|
||||
ADIOS is a high-performance I/O library. This package implements the
|
||||
dump "atom/adios" and dump "custom/adios" commands to write data using
|
||||
the ADIOS library.
|
||||
the ADIOS library.
|
||||
|
||||
[Authors:] Norbert Podhorszki (ORNL) from the ADIOS developer team.
|
||||
|
||||
@ -1173,7 +1191,7 @@ USER-PLUMED package :link(PKG-USER-PLUMED),h4
|
||||
The fix plumed command allows you to use the PLUMED free energy plugin
|
||||
for molecular dynamics to analyze and bias your LAMMPS trajectory on
|
||||
the fly. The PLUMED library is called from within the LAMMPS input
|
||||
script by using the "fix plumed _fix_plumed.html command.
|
||||
script by using the "fix plumed"_fix_plumed.html command.
|
||||
|
||||
[Authors:] The "PLUMED library"_#PLUMED is written and maintained by
|
||||
Massimilliano Bonomi, Giovanni Bussi, Carlo Camiloni and Gareth
|
||||
|
||||
@ -104,7 +104,7 @@ code (with a performance penalty due to having data transfers between
|
||||
host and GPU). :ulb,l
|
||||
|
||||
The GPU package requires neighbor lists to be built on the CPU when using
|
||||
exclusion lists, hybrid pair styles, or a triclinic simulation box. :l
|
||||
exclusion lists, or a triclinic simulation box. :l
|
||||
|
||||
The GPU package can be compiled for CUDA or OpenCL and thus supports
|
||||
both, Nvidia and AMD GPUs well. On Nvidia hardware, using CUDA is typically
|
||||
|
||||
@ -46,16 +46,15 @@ software version 7.5 or later must be installed on your system. See
|
||||
the discussion for the "GPU package"_Speed_gpu.html for details of how
|
||||
to check and do this.
|
||||
|
||||
NOTE: Kokkos with CUDA currently implicitly assumes, that the MPI
|
||||
library is CUDA-aware and has support for GPU-direct. This is not
|
||||
always the case, especially when using pre-compiled MPI libraries
|
||||
provided by a Linux distribution. This is not a problem when using
|
||||
only a single GPU and a single MPI rank on a desktop. When running
|
||||
with multiple MPI ranks, you may see segmentation faults without
|
||||
GPU-direct support. These can be avoided by adding the flags "-pk
|
||||
kokkos gpu/direct off"_Run_options.html to the LAMMPS command line or
|
||||
by using the command "package kokkos gpu/direct off"_package.html in
|
||||
the input file.
|
||||
NOTE: Kokkos with CUDA currently implicitly assumes that the MPI library
|
||||
is CUDA-aware. This is not always the case, especially when using
|
||||
pre-compiled MPI libraries provided by a Linux distribution. This is not
|
||||
a problem when using only a single GPU with a single MPI rank. When
|
||||
running with multiple MPI ranks, you may see segmentation faults without
|
||||
CUDA-aware MPI support. These can be avoided by adding the flags "-pk
|
||||
kokkos cuda/aware off"_Run_options.html to the LAMMPS command line or by
|
||||
using the command "package kokkos cuda/aware off"_package.html in the
|
||||
input file.
|
||||
|
||||
[Building LAMMPS with the KOKKOS package:]
|
||||
|
||||
@ -207,19 +206,20 @@ supports.
|
||||
|
||||
[Running on GPUs:]
|
||||
|
||||
Use the "-k" "command-line switch"_Run_options.html to
|
||||
specify the number of GPUs per node. Typically the -np setting of the
|
||||
mpirun command should set the number of MPI tasks/node to be equal to
|
||||
the number of physical GPUs on the node. You can assign multiple MPI
|
||||
tasks to the same GPU with the KOKKOS package, but this is usually
|
||||
only faster if significant portions of the input script have not
|
||||
been ported to use Kokkos. Using CUDA MPS is recommended in this
|
||||
scenario. Using a CUDA-aware MPI library with support for GPU-direct
|
||||
is highly recommended. GPU-direct use can be avoided by using
|
||||
"-pk kokkos gpu/direct no"_package.html.
|
||||
As above for multi-core CPUs (and no GPU), if N is the number of
|
||||
physical cores/node, then the number of MPI tasks/node should not
|
||||
exceed N.
|
||||
Use the "-k" "command-line switch"_Run_options.html to specify the
|
||||
number of GPUs per node. Typically the -np setting of the mpirun command
|
||||
should set the number of MPI tasks/node to be equal to the number of
|
||||
physical GPUs on the node. You can assign multiple MPI tasks to the same
|
||||
GPU with the KOKKOS package, but this is usually only faster if some
|
||||
portions of the input script have not been ported to use Kokkos. In this
|
||||
case, also packing/unpacking communication buffers on the host may give
|
||||
speedup (see the KOKKOS "package"_package.html command). Using CUDA MPS
|
||||
is recommended in this scenario.
|
||||
|
||||
Using a CUDA-aware MPI library is highly recommended. CUDA-aware MPI use can be
|
||||
avoided by using "-pk kokkos cuda/aware no"_package.html. As above for
|
||||
multi-core CPUs (and no GPU), if N is the number of physical cores/node,
|
||||
then the number of MPI tasks/node should not exceed N.
|
||||
|
||||
-k on g Ng :pre
|
||||
|
||||
|
||||
@ -143,6 +143,16 @@ instructions on how to use the accelerated styles effectively.
|
||||
|
||||
:line
|
||||
|
||||
[Restart info:]
|
||||
|
||||
This angle style writes the settings for the "angle_style table"
|
||||
command to "binary restart files"_restart.html, so a angle_style
|
||||
command does not need to specified in an input script that reads a
|
||||
restart file. However, the coefficient information is not stored in
|
||||
the restart file, since it is tabulated in the potential files. Thus,
|
||||
angle_coeff commands do need to be specified in the restart input
|
||||
script.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This angle style can only be used if LAMMPS was built with the
|
||||
|
||||
@ -140,6 +140,16 @@ instructions on how to use the accelerated styles effectively.
|
||||
|
||||
:line
|
||||
|
||||
[Restart info:]
|
||||
|
||||
This bond style writes the settings for the "bond_style table"
|
||||
command to "binary restart files"_restart.html, so a bond_style
|
||||
command does not need to specified in an input script that reads a
|
||||
restart file. However, the coefficient information is not stored in
|
||||
the restart file, since it is tabulated in the potential files. Thus,
|
||||
bond_coeff commands do need to be specified in the restart input
|
||||
script.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This bond style can only be used if LAMMPS was built with the MOLECULE
|
||||
|
||||
@ -69,9 +69,15 @@ processors. By default the ghost cutoff = neighbor cutoff = pairwise
|
||||
force cutoff + neighbor skin. See the "neighbor"_neighbor.html command
|
||||
for more information about the skin distance. If the specified Rcut is
|
||||
greater than the neighbor cutoff, then extra ghost atoms will be acquired.
|
||||
If the provided cutoff is smaller, the provided value will be ignored
|
||||
and the ghost cutoff is set to the neighbor cutoff. Specifying a
|
||||
cutoff value of 0.0 will reset any previous value to the default.
|
||||
If the provided cutoff is smaller, the provided value will be ignored,
|
||||
the ghost cutoff is set to the neighbor cutoff and a warning will be
|
||||
printed. Specifying a cutoff value of 0.0 will reset any previous value
|
||||
to the default. If bonded interactions exist and equilibrium bond length
|
||||
information is available, then also a heuristic based on that bond length
|
||||
is computed. It is used as communication cutoff, if there is no pair
|
||||
style present and no {comm_modify cutoff} command used. Otherwise a
|
||||
warning is printed, if this bond based estimate is larger than the
|
||||
communication cutoff used. A
|
||||
|
||||
The {cutoff/multi} option is equivalent to {cutoff}, but applies to
|
||||
communication mode {multi} instead. Since in this case the communication
|
||||
|
||||
@ -53,7 +53,7 @@ Commands :h1
|
||||
include
|
||||
info
|
||||
jump
|
||||
kim_query
|
||||
kim_commands
|
||||
kspace_modify
|
||||
kspace_style
|
||||
label
|
||||
|
||||
@ -171,42 +171,40 @@ The individual style names on the "Commands
|
||||
compute"_Commands_compute.html doc page are followed by one or more of
|
||||
(g,i,k,o,t) to indicate which accelerated styles exist.
|
||||
|
||||
"ackland/atom"_compute_ackland_atom.html -
|
||||
"ackland/atom"_compute_ackland_atom.html - determines the local lattice structure based on the Ackland formulation
|
||||
"adf"_compute_adf.html - angular distribution function of triples of atoms
|
||||
"aggregate/atom"_compute_cluster_atom.html - aggregate ID for each atom
|
||||
"angle"_compute_angle.html -
|
||||
"angle/local"_compute_angle_local.html -
|
||||
"angle/local"_compute_bond_local.html - theta and energy of each angle
|
||||
"angle"_compute_angle.html - energy of each angle sub-style
|
||||
"angle/local"_compute_angle_local.html - theta and energy of each angle
|
||||
"angmom/chunk"_compute_angmom_chunk.html - angular momentum for each chunk
|
||||
"basal/atom"_compute_basal_atom.html -
|
||||
"basal/atom"_compute_basal_atom.html - calculates the hexagonal close-packed "c" lattice vector of each atom
|
||||
"body/local"_compute_body_local.html - attributes of body sub-particles
|
||||
"bond"_compute_bond.html - values computed by a bond style
|
||||
"bond"_compute_bond.html - energy of each bond sub-style
|
||||
"bond/local"_compute_bond_local.html - distance and energy of each bond
|
||||
"centro/atom"_compute_centro_atom.html - centro-symmetry parameter for each atom
|
||||
"chunk/atom"_compute_chunk_atom.html - assign chunk IDs to each atom
|
||||
"chunk/spread/atom"_compute_chunk_spread_atom.html - spreads chunk values to each atom in chunk
|
||||
"cluster/atom"_compute_cluster_atom.html - cluster ID for each atom
|
||||
"cna/atom"_compute_cna_atom.html - common neighbor analysis (CNA) for each atom
|
||||
"cnp/atom"_compute_cnp_atom.html -
|
||||
"cnp/atom"_compute_cnp_atom.html - common neighborhood parameter (CNP) for each atom
|
||||
"com"_compute_com.html - center-of-mass of group of atoms
|
||||
"com/chunk"_compute_com_chunk.html - center-of-mass for each chunk
|
||||
"contact/atom"_compute_contact_atom.html - contact count for each spherical particle
|
||||
"coord/atom"_compute_coord_atom.html - coordination number for each atom
|
||||
"damage/atom"_compute_damage_atom.html - Peridynamic damage for each atom
|
||||
"dihedral"_compute_dihedral.html -
|
||||
"dihedral"_compute_dihedral.html - energy of each dihedral sub-style
|
||||
"dihedral/local"_compute_dihedral_local.html - angle of each dihedral
|
||||
"dilatation/atom"_compute_dilatation_atom.html - Peridynamic dilatation for each atom
|
||||
"dipole/chunk"_compute_dipole_chunk.html -
|
||||
"dipole/chunk"_compute_dipole_chunk.html - dipole vector and total dipole for each chunk
|
||||
"displace/atom"_compute_displace_atom.html - displacement of each atom
|
||||
"dpd"_compute_dpd.html -
|
||||
"dpd/atom"_compute_dpd_atom.html -
|
||||
"edpd/temp/atom"_compute_edpd_temp_atom.html -
|
||||
"entropy/atom"_compute_entropy_atom.html -
|
||||
"edpd/temp/atom"_compute_edpd_temp_atom.html - per-atom temperature for each eDPD particle in a group
|
||||
"entropy/atom"_compute_entropy_atom.html - pair entropy fingerprint of each atom
|
||||
"erotate/asphere"_compute_erotate_asphere.html - rotational energy of aspherical particles
|
||||
"erotate/rigid"_compute_erotate_rigid.html - rotational energy of rigid bodies
|
||||
"erotate/sphere"_compute_erotate_sphere.html - rotational energy of spherical particles
|
||||
"erotate/sphere/atom"_compute_erotate_sphere.html - rotational energy for each spherical particle
|
||||
"erotate/sphere/atom"_compute_erotate_sphere_atom.html -
|
||||
"erotate/sphere/atom"_compute_erotate_sphere_atom.html - rotational energy for each spherical particle
|
||||
"event/displace"_compute_event_displace.html - detect event on atom displacement
|
||||
"fep"_compute_fep.html -
|
||||
"force/tally"_compute_tally.html -
|
||||
@ -215,20 +213,22 @@ compute"_Commands_compute.html doc page are followed by one or more of
|
||||
"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
|
||||
"gyration/shape"_compute_gyration_shape.html - compute shape parameters from radius of gyration tensor
|
||||
"heat/flux"_compute_heat_flux.html - heat flux through a group of atoms
|
||||
"heat/flux/tally"_compute_tally.html -
|
||||
"hexorder/atom"_compute_hexorder_atom.html - bond orientational order parameter q6
|
||||
"improper"_compute_improper.html -
|
||||
"improper"_compute_improper.html - energy of each improper sub-style
|
||||
"improper/local"_compute_improper_local.html - angle of each improper
|
||||
"inertia/chunk"_compute_inertia_chunk.html - inertia tensor for each chunk
|
||||
"ke"_compute_ke.html - translational kinetic energy
|
||||
"ke/atom"_compute_ke_atom.html - kinetic energy for each atom
|
||||
"ke/atom/eff"_compute_ke_atom_eff.html -
|
||||
"ke/eff"_compute_ke_eff.html -
|
||||
"ke/atom/eff"_compute_ke_atom_eff.html - per-atom translational and radial kinetic energy in the electron force field model
|
||||
"ke/eff"_compute_ke_eff.html - kinetic energy of a group of nuclei and electrons in the electron force field model
|
||||
"ke/rigid"_compute_ke_rigid.html - translational kinetic energy of rigid bodies
|
||||
"meso/e/atom"_compute_meso_e_atom.html -
|
||||
"meso/rho/atom"_compute_meso_rho_atom.html -
|
||||
"meso/t/atom"_compute_meso_t_atom.html -
|
||||
"meso/e/atom"_compute_meso_e_atom.html - per-atom internal energy of Smooth-Particle Hydrodynamics atoms
|
||||
"meso/rho/atom"_compute_meso_rho_atom.html - per-atom mesoscopic density of Smooth-Particle Hydrodynamics atoms
|
||||
"meso/t/atom"_compute_meso_t_atom.html - per-atom internal temperature of Smooth-Particle Hydrodynamics atoms
|
||||
"momentum"_compute_momentum.html - translational momentum
|
||||
"msd"_compute_msd.html - mean-squared displacement of group of atoms
|
||||
"msd/chunk"_compute_msd_chunk.html - mean-squared displacement for each chunk
|
||||
"msd/nongauss"_compute_msd_nongauss.html - MSD and non-Gaussian parameter of group of atoms
|
||||
@ -242,73 +242,72 @@ compute"_Commands_compute.html doc page are followed by one or more of
|
||||
"pe/tally"_compute_tally.html -
|
||||
"plasticity/atom"_compute_plasticity_atom.html - Peridynamic plasticity for each atom
|
||||
"pressure"_compute_pressure.html - total pressure and pressure tensor
|
||||
"pressure/cylinder"_compute_pressure_cylinder.html -
|
||||
"pressure/uef"_compute_pressure_uef.html -
|
||||
"pressure/cylinder"_compute_pressure_cylinder.html - pressure tensor in cylindrical coordinates
|
||||
"pressure/uef"_compute_pressure_uef.html - pressure tensor in the reference frame of an applied flow field
|
||||
"property/atom"_compute_property_atom.html - convert atom attributes to per-atom vectors/arrays
|
||||
"property/chunk"_compute_property_chunk.html - extract various per-chunk attributes
|
||||
"property/local"_compute_property_local.html - convert local attributes to localvectors/arrays
|
||||
"ptm/atom"_compute_ptm_atom.html -
|
||||
"ptm/atom"_compute_ptm_atom.html - determines the local lattice structure based on the Polyhedral Template Matching method
|
||||
"rdf"_compute_rdf.html - radial distribution function g(r) histogram of group of atoms
|
||||
"reduce"_compute_reduce.html - combine per-atom quantities into a single global value
|
||||
"reduce/chunk"_compute_reduce_chunk.html - reduce per-atom quantities within each chunk
|
||||
"reduce/region"_compute_reduce.html - same as compute reduce, within a region
|
||||
"rigid/local"_compute_rigid_local.html - extract rigid body attributes
|
||||
"saed"_compute_saed.html -
|
||||
"saed"_compute_saed.html - electron diffraction intensity on a mesh of reciprocal lattice nodes
|
||||
"slice"_compute_slice.html - extract values from global vector or array
|
||||
"smd/contact/radius"_compute_smd_contact_radius.html -
|
||||
"smd/damage"_compute_smd_damage.html -
|
||||
"smd/damage"_compute_smd_damage.html - damage status of SPH particles in Smooth Mach Dynamics
|
||||
"smd/hourglass/error"_compute_smd_hourglass_error.html -
|
||||
"smd/internal/energy"_compute_smd_internal_energy.html -
|
||||
"smd/plastic/strain"_compute_smd_plastic_strain.html -
|
||||
"smd/plastic/strain/rate"_compute_smd_plastic_strain_rate.html -
|
||||
"smd/rho"_compute_smd_rho.html -
|
||||
"smd/tlsph/defgrad"_compute_smd_tlsph_defgrad.html -
|
||||
"smd/tlsph/dt"_compute_smd_tlsph_dt.html -
|
||||
"smd/internal/energy"_compute_smd_internal_energy.html - per-particle enthalpy in Smooth Mach Dynamics
|
||||
"smd/plastic/strain"_compute_smd_plastic_strain.html - equivalent plastic strain per particle in Smooth Mach Dynamics
|
||||
"smd/plastic/strain/rate"_compute_smd_plastic_strain_rate.html - time rate of the equivalent plastic strain in Smooth Mach Dynamics
|
||||
"smd/rho"_compute_smd_rho.html - per-particle mass density in Smooth Mach Dynamics
|
||||
"smd/tlsph/defgrad"_compute_smd_tlsph_defgrad.html - deformation gradient in Smooth Mach Dynamics
|
||||
"smd/tlsph/dt"_compute_smd_tlsph_dt.html - CFL-stable time increment per particle in Smooth Mach Dynamics
|
||||
"smd/tlsph/num/neighs"_compute_smd_tlsph_num_neighs.html -
|
||||
"smd/tlsph/shape"_compute_smd_tlsph_shape.html -
|
||||
"smd/tlsph/strain"_compute_smd_tlsph_strain.html -
|
||||
"smd/tlsph/strain/rate"_compute_smd_tlsph_strain_rate.html -
|
||||
"smd/tlsph/stress"_compute_smd_tlsph_stress.html -
|
||||
"smd/triangle/vertices"_compute_smd_triangle_vertices.html -
|
||||
"smd/tlsph/stress"_compute_smd_tlsph_stress.html - per-particle Cauchy stress tensor for SPH particles
|
||||
"smd/triangle/vertices"_compute_smd_triangle_vertices.html -
|
||||
"smd/ulsph/num/neighs"_compute_smd_ulsph_num_neighs.html -
|
||||
"smd/ulsph/strain"_compute_smd_ulsph_strain.html -
|
||||
"smd/ulsph/strain/rate"_compute_smd_ulsph_strain_rate.html -
|
||||
"smd/ulsph/stress"_compute_smd_ulsph_stress.html -
|
||||
"smd/vol"_compute_smd_vol.html -
|
||||
"smd/ulsph/stress"_compute_smd_ulsph_stress.html - per-particle Cauchy stress tensor and von Mises equivalent stress in Smooth Mach Dynamics
|
||||
"smd/vol"_compute_smd_vol.html - per-particle volumes and their sum in Smooth Mach Dynamics
|
||||
"sna/atom"_compute_sna_atom.html - calculate bispectrum coefficients for each atom
|
||||
"snad/atom"_compute_sna_atom.html - derivative of bispectrum coefficients for each atom
|
||||
"snav/atom"_compute_sna_atom.html - virial contribution from bispectrum coefficients for each atom
|
||||
"spin"_compute_spin.html -
|
||||
"spin"_compute_spin.html - magnetic quantities for a system of atoms having spins
|
||||
"stress/atom"_compute_stress_atom.html - stress tensor for each atom
|
||||
"stress/mop"_compute_stress_mop.html -
|
||||
"stress/mop/profile"_compute_stress_mop.html -
|
||||
"stress/mop"_compute_stress_mop.html - normal components of the local stress tensor using the method of planes
|
||||
"stress/mop/profile"_compute_stress_mop.html - profile of the normal components of the local stress tensor using the method of planes
|
||||
"stress/tally"_compute_tally.html -
|
||||
"tdpd/cc/atom"_compute_tdpd_cc_atom.html -
|
||||
"tdpd/cc/atom"_compute_tdpd_cc_atom.html - per-atom chemical concentration of a specified species for each tDPD particle
|
||||
"temp"_compute_temp.html - temperature of group of atoms
|
||||
"temp/asphere"_compute_temp_asphere.html - temperature of aspherical particles
|
||||
"temp/body"_compute_temp_body.html - temperature of body particles
|
||||
"temp/chunk"_compute_temp_chunk.html - temperature of each chunk
|
||||
"temp/com"_compute_temp_com.html - temperature after subtracting center-of-mass velocity
|
||||
"temp/cs"_compute_temp_cs.html -
|
||||
"temp/cs"_compute_temp_cs.html - temperature based on the center-of-mass velocity of atom pairs that are bonded to each other
|
||||
"temp/deform"_compute_temp_deform.html - temperature excluding box deformation velocity
|
||||
"temp/deform/eff"_compute_temp_deform_eff.html -
|
||||
"temp/drude"_compute_temp_drude.html -
|
||||
"temp/eff"_compute_temp_eff.html -
|
||||
"temp/deform/eff"_compute_temp_deform_eff.html - temperature excluding box deformation velocity in the electron force field model
|
||||
"temp/drude"_compute_temp_drude.html - temperature of Core-Drude pairs
|
||||
"temp/eff"_compute_temp_eff.html - temperature of a group of nuclei and electrons in the electron force field model
|
||||
"temp/partial"_compute_temp_partial.html - temperature excluding one or more dimensions of velocity
|
||||
"temp/profile"_compute_temp_profile.html - temperature excluding a binned velocity profile
|
||||
"temp/ramp"_compute_temp_ramp.html - temperature excluding ramped velocity component
|
||||
"temp/region"_compute_temp_region.html - temperature of a region of atoms
|
||||
"temp/region/eff"_compute_temp_region_eff.html -
|
||||
"temp/rotate"_compute_temp_rotate.html -
|
||||
"temp/region/eff"_compute_temp_region_eff.html - temperature of a region of nuclei and electrons in the electron force field model
|
||||
"temp/rotate"_compute_temp_rotate.html - temperature of a group of atoms after subtracting out their center-of-mass and angular velocities
|
||||
"temp/sphere"_compute_temp_sphere.html - temperature of spherical particles
|
||||
"temp/uef"_compute_temp_uef.html -
|
||||
"temp/uef"_compute_temp_uef.html - kinetic energy tensor in the reference frame of an applied flow field
|
||||
"ti"_compute_ti.html - thermodynamic integration free energy values
|
||||
"torque/chunk"_compute_torque_chunk.html - torque applied on each chunk
|
||||
"vacf"_compute_vacf.html - velocity auto-correlation function of group of atoms
|
||||
"vcm/chunk"_compute_vcm_chunk.html - velocity of center-of-mass for each chunk
|
||||
"voronoi/atom"_compute_voronoi_atom.html - Voronoi volume and neighbors for each atom
|
||||
"xrd"_compute_xrd.html - :ul
|
||||
"xrd"_compute_xrd.html - x-ray diffraction intensity on a mesh of reciprocal lattice nodes :ul
|
||||
|
||||
[Restrictions:] none
|
||||
|
||||
|
||||
@ -67,6 +67,7 @@ distance^2 "units"_units.html respectively.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"compute gyration/chunk"_compute_gyration_chunk.html
|
||||
"compute gyration/chunk"_compute_gyration_chunk.html,
|
||||
"compute gyration/shape"_compute_gyration_shape.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
86
doc/src/compute_gyration_shape.txt
Normal file
@ -0,0 +1,86 @@
|
||||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Commands_all.html)
|
||||
|
||||
:line
|
||||
|
||||
compute gyration/shape command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
compute ID group-ID gyration compute-ID :pre
|
||||
|
||||
ID, group-ID are documented in "compute"_compute.html command
|
||||
gyration/shape = style name of this compute command
|
||||
compute-ID = ID of "compute gyration"_compute_gyration.html command :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
compute 1 molecule gyration/shape pe :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Define a computation that calculates the eigenvalues of the gyration tensor of a
|
||||
group of atoms and three shape parameters. The computation includes all effects
|
||||
due to atoms passing thru periodic boundaries.
|
||||
|
||||
The three computed shape parameters are the asphericity, b, the acylindricity, c,
|
||||
and the relative shape anisotropy, k:
|
||||
|
||||
:c,image(Eqs/compute_shape_parameters.jpg)
|
||||
|
||||
where lx <= ly <= lz are the three eigenvalues of the gyration tensor.
|
||||
The asphericity is always non-negative and zero only when the three principal
|
||||
moments are equal. This zero condition is met when the distribution of particles
|
||||
is spherically symmetric (hence the name asphericity) but also whenever the particle
|
||||
distribution is symmetric with respect to the three coordinate axes, e.g.,
|
||||
when the particles are distributed uniformly on a cube, tetrahedron or other Platonic
|
||||
solid. The acylindricity is always non-negative and zero only when the two principal
|
||||
moments are equal. This zero condition is met when the distribution of particles is
|
||||
cylindrically symmetric (hence the name, acylindricity), but also whenever the particle
|
||||
distribution is symmetric with respect to the two coordinate axes, e.g., when the
|
||||
particles are distributed uniformly on a regular prism. the relative shape anisotropy
|
||||
is bounded between zero (if all points are spherically symmetric) and one
|
||||
(if all points lie on a line).
|
||||
|
||||
NOTE: The coordinates of an atom contribute to the gyration tensor in
|
||||
"unwrapped" form, by using the image flags associated with each atom.
|
||||
See the "dump custom"_dump.html command for a discussion of "unwrapped"
|
||||
coordinates. See the Atoms section of the "read_data"_read_data.html
|
||||
command for a discussion of image flags and how they are set for each
|
||||
atom. You can reset the image flags (e.g. to 0) before invoking this
|
||||
compute by using the "set image"_set.html command.
|
||||
|
||||
[Output info:]
|
||||
|
||||
This compute calculates a global vector of
|
||||
length 6, which can be accessed by indices 1-6. The first three values are the
|
||||
eigenvalues of the gyration tensor followed by the asphericity, the acylindricity
|
||||
and the relative shape anisotropy. The computed values can be used by any command
|
||||
that uses global vector values from a compute as input. See the "Howto
|
||||
output"_Howto_output.html doc page for an overview of LAMMPS output
|
||||
options.
|
||||
|
||||
The vector values calculated by this compute are
|
||||
"intensive". The first five vector values will be in
|
||||
distance^2 "units"_units.html while the sixth one is dimensionless.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This compute is part of the USER-MISC package. It is only enabled if
|
||||
LAMMPS was built with that package. See the "Build
|
||||
package"_Build_package.html doc page for more info.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"compute gyration"_compute_gyration.html
|
||||
|
||||
[Default:] none
|
||||
|
||||
:line
|
||||
|
||||
:link(Theodorou)
|
||||
[(Theodorou)] Theodorou, Suter, Macromolecules, 18, 1206 (1985).
|
||||
|
||||
@ -65,7 +65,7 @@ In an isotropic liquid, local neighborhoods may still exhibit
|
||||
weak hexagonal symmetry, but because the orientational correlation
|
||||
decays quickly with distance, the value of phi will be different for
|
||||
different atoms, and so when {q}6 is averaged over all the atoms
|
||||
in the system, \|<{q}6>\| << 1.
|
||||
in the system, |<{q}6>| << 1.
|
||||
|
||||
The value of {qn} is set to zero for atoms not in the
|
||||
specified compute group, as well as for atoms that have less than
|
||||
|
||||
49
doc/src/compute_momentum.txt
Normal file
@ -0,0 +1,49 @@
|
||||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Commands_all.html)
|
||||
|
||||
:line
|
||||
|
||||
compute momentum command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
compute ID group-ID momentum :pre
|
||||
|
||||
ID, group-ID are documented in "compute"_compute.html command
|
||||
momentum = style name of this compute command :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
compute 1 all momentum :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Define a computation that calculates the translational momentum
|
||||
of a group of particles.
|
||||
|
||||
The momentum of each particles is computed as m v, where m and v are
|
||||
the mass and velocity of the particle.
|
||||
|
||||
[Output info:]
|
||||
|
||||
This compute calculates a global vector (the summed momentum) of
|
||||
length 3. This value can be used by any command that uses a global
|
||||
vector value from a compute as input. See the "Howto
|
||||
output"_Howto_output.html doc page for an overview of LAMMPS output
|
||||
options.
|
||||
|
||||
The vector value calculated by this compute is "extensive". The vector
|
||||
value will be in mass*velocity "units"_units.html.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This compute is part of the USER-MISC package. It is only enabled if
|
||||
LAMMPS was built with that package. See the "Build
|
||||
package"_Build_package.html doc page for more info.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
[Default:] none
|
||||
@ -16,12 +16,13 @@ ID, group-ID are documented in "compute"_compute.html command
|
||||
pressure = 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
|
||||
keyword = {ke} or {pair} or {bond} or {angle} or {dihedral} or {improper} or {kspace} or {fix} or {virial} or {pair/hybrid} :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
compute 1 all pressure thermo_temp
|
||||
compute 1 all pressure NULL pair bond :pre
|
||||
compute 1 all pressure NULL pair bond
|
||||
compute 1 all pressure NULL pair/hybrid lj/cut :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -67,6 +68,9 @@ extra keywords are listed, then only those components are summed to
|
||||
compute temperature or ke and/or the virial. The {virial} keyword
|
||||
means include all terms except the kinetic energy {ke}.
|
||||
|
||||
The {pair/hybrid} keyword means to only include contribution
|
||||
from a sub-style in a {hybrid} or {hybrid/overlay} pair style.
|
||||
|
||||
Details of how LAMMPS computes the virial efficiently for the entire
|
||||
system, including for many-body potentials and accounting for the
|
||||
effects of periodic boundary conditions are discussed in
|
||||
|
||||
@ -24,12 +24,7 @@ twojmax = band limit for bispectrum components (non-negative integer) :l
|
||||
R_1, R_2,... = list of cutoff radii, one for each type (distance units) :l
|
||||
w_1, w_2,... = list of neighbor weights, one for each type :l
|
||||
zero or more keyword/value pairs may be appended :l
|
||||
keyword = {diagonal} or {rmin0} or {switchflag} or {bzeroflag} or {quadraticflag} :l
|
||||
{diagonal} value = {0} or {1} or {2} or {3}
|
||||
{0} = all j1, j2, j <= twojmax, j2 <= j1
|
||||
{1} = subset satisfying j1 == j2
|
||||
{2} = subset satisfying j1 == j2 == j3
|
||||
{3} = subset satisfying j2 <= j1 <= j
|
||||
keyword = {rmin0} or {switchflag} or {bzeroflag} or {quadraticflag} :l
|
||||
{rmin0} value = parameter in distance to angle conversion (distance units)
|
||||
{switchflag} value = {0} or {1}
|
||||
{0} = do not use switching function
|
||||
@ -44,7 +39,7 @@ keyword = {diagonal} or {rmin0} or {switchflag} or {bzeroflag} or {quadraticflag
|
||||
|
||||
[Examples:]
|
||||
|
||||
compute b all sna/atom 1.4 0.99363 6 2.0 2.4 0.75 1.0 diagonal 3 rmin0 0.0
|
||||
compute b all sna/atom 1.4 0.99363 6 2.0 2.4 0.75 1.0 rmin0 0.0
|
||||
compute db all sna/atom 1.4 0.95 6 2.0 1.0
|
||||
compute vb all sna/atom 1.4 0.95 6 2.0 1.0 :pre
|
||||
|
||||
@ -151,7 +146,7 @@ The argument {rfac0} and the optional keyword {rmin0} define the
|
||||
linear mapping from radial distance to polar angle {theta0} on the
|
||||
3-sphere.
|
||||
|
||||
The argument {twojmax} and the keyword {diagonal} define which
|
||||
The argument {twojmax} defines which
|
||||
bispectrum components are generated. See section below on output for a
|
||||
detailed explanation of the number of bispectrum components and the
|
||||
ordered in which they are listed.
|
||||
@ -192,23 +187,18 @@ command that includes all pairs in the neighbor list.
|
||||
Compute {sna/atom} calculates a per-atom array, each column
|
||||
corresponding to a particular bispectrum component. The total number
|
||||
of columns and the identity of the bispectrum component contained in
|
||||
each column depend on the values of {twojmax} and {diagonal}, as
|
||||
each column depend of the value of {twojmax}, as
|
||||
described by the following piece of python code:
|
||||
|
||||
for j1 in range(0,twojmax+1):
|
||||
if(diagonal==2):
|
||||
print j1/2.,j1/2.,j1/2.
|
||||
elif(diagonal==1):
|
||||
for j in range(0,min(twojmax,2*j1)+1,2):
|
||||
print j1/2.,j1/2.,j/2.
|
||||
elif(diagonal==0):
|
||||
for j2 in range(0,j1+1):
|
||||
for j in range(j1-j2,min(twojmax,j1+j2)+1,2):
|
||||
print j1/2.,j2/2.,j/2.
|
||||
elif(diagonal==3):
|
||||
for j2 in range(0,j1+1):
|
||||
for j in range(j1-j2,min(twojmax,j1+j2)+1,2):
|
||||
if (j>=j1): print j1/2.,j2/2.,j/2. :pre
|
||||
for j2 in range(0,j1+1):
|
||||
for j in range(j1-j2,min(twojmax,j1+j2)+1,2):
|
||||
if (j>=j1): print j1/2.,j2/2.,j/2. :pre
|
||||
|
||||
NOTE: the {diagonal} keyword allowing other possible choices
|
||||
for the number of bispectrum components was removed in 2019,
|
||||
since all potentials use the value of 3, corresponding to the
|
||||
above set of bispectrum components.
|
||||
|
||||
Compute {snad/atom} evaluates a per-atom array. The columns are
|
||||
arranged into {ntypes} blocks, listed in order of atom type {I}. Each
|
||||
@ -259,7 +249,7 @@ package"_Build_package.html doc page for more info.
|
||||
|
||||
[Default:]
|
||||
|
||||
The optional keyword defaults are {diagonal} = 0, {rmin0} = 0,
|
||||
The optional keyword defaults are {rmin0} = 0,
|
||||
{switchflag} = 1, {bzeroflag} = 1, {quadraticflag} = 0,
|
||||
|
||||
:line
|
||||
|
||||
@ -88,6 +88,8 @@ potentials only include the pair potential portion of the EAM
|
||||
interaction when used by this compute, not the embedding term. Also
|
||||
bonded or Kspace interactions do not contribute to this compute.
|
||||
|
||||
The computes in this package are not compatible with dynamic groups.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
{compute group/group}_compute_group_group.html, {compute
|
||||
|
||||
@ -44,6 +44,7 @@ Computes :h1
|
||||
compute_group_group
|
||||
compute_gyration
|
||||
compute_gyration_chunk
|
||||
compute_gyration_shape
|
||||
compute_heat_flux
|
||||
compute_hexorder_atom
|
||||
compute_improper
|
||||
@ -57,6 +58,7 @@ Computes :h1
|
||||
compute_meso_e_atom
|
||||
compute_meso_rho_atom
|
||||
compute_meso_t_atom
|
||||
compute_momentum
|
||||
compute_msd
|
||||
compute_msd_chunk
|
||||
compute_msd_nongauss
|
||||
|
||||
@ -242,9 +242,8 @@ write_dump all atom sinusoid.lammpstrj :pre
|
||||
|
||||
:c,image(JPG/sinusoid_small.jpg,JPG/sinusoid.jpg)
|
||||
|
||||
The {rotate} keyword can only be used with the {single} style and
|
||||
when adding a single molecule. It allows to specify the orientation
|
||||
at which the molecule is inserted. The axis of rotation is
|
||||
The {rotate} keyword allows specification of the orientation
|
||||
at which molecules are inserted. The axis of rotation is
|
||||
determined by the rotation vector (Rx,Ry,Rz) that goes through the
|
||||
insertion point. The specified {theta} determines the angle of
|
||||
rotation around that axis. Note that the direction of rotation for
|
||||
|
||||
@ -191,6 +191,16 @@ switch"_Run_options.html when you invoke LAMMPS, or you can use the
|
||||
See the "Speed packages"_Speed_packages.html doc page for more
|
||||
instructions on how to use the accelerated styles effectively.
|
||||
|
||||
[Restart info:]
|
||||
|
||||
This dihedral style writes the settings for the "dihedral_style table"
|
||||
command to "binary restart files"_restart.html, so a dihedral_style
|
||||
command does not need to specified in an input script that reads a
|
||||
restart file. However, the coefficient information is not stored in
|
||||
the restart file, since it is tabulated in the potential files. Thus,
|
||||
dihedral_coeff commands do need to be specified in the restart input
|
||||
script.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This dihedral style can only be used if LAMMPS was built with the
|
||||
|
||||
@ -189,6 +189,16 @@ Note that one file can contain many sections, each with a tabulated
|
||||
potential. LAMMPS reads the file section by section until it finds one
|
||||
that matches the specified keyword.
|
||||
|
||||
[Restart info:]
|
||||
|
||||
This dihedral style writes the settings for the "dihedral_style table/cut"
|
||||
command to "binary restart files"_restart.html, so a dihedral_style
|
||||
command does not need to specified in an input script that reads a
|
||||
restart file. However, the coefficient information is not stored in
|
||||
the restart file, since it is tabulated in the potential files. Thus,
|
||||
dihedral_coeff commands do need to be specified in the restart input
|
||||
script.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This dihedral style can only be used if LAMMPS was built with the
|
||||
|
||||
137
doc/src/fix.txt
@ -165,40 +165,40 @@ page are followed by one or more of (g,i,k,o,t) to indicate which
|
||||
accelerated styles exist.
|
||||
|
||||
"adapt"_fix_adapt.html - change a simulation parameter over time
|
||||
"adapt/fep"_fix_adapt_fep.html -
|
||||
"adapt/fep"_fix_adapt_fep.html - enhanced version of fix adapt
|
||||
"addforce"_fix_addforce.html - add a force to each atom
|
||||
"addtorque"_fix_addtorque.html -
|
||||
"addtorque"_fix_addtorque.html - add a torque to a group of atoms
|
||||
"append/atoms"_fix_append_atoms.html - append atoms to a running simulation
|
||||
"atc"_fix_atc.html -
|
||||
"atc"_fix_atc.html - initiates a coupled MD/FE simulation
|
||||
"atom/swap"_fix_atom_swap.html - Monte Carlo atom type swapping
|
||||
"ave/atom"_fix_ave_atom.html - compute per-atom time-averaged quantities
|
||||
"ave/chunk"_fix_ave_chunk.html - compute per-chunk time-averaged quantities
|
||||
"ave/correlate"_fix_ave_correlate.html - compute/output time correlations
|
||||
"ave/correlate/long"_fix_ave_correlate_long.html -
|
||||
"ave/histo"_fix_ave_histo.html - compute/output time-averaged histograms
|
||||
"ave/histo/weight"_fix_ave_histo.html -
|
||||
"ave/histo/weight"_fix_ave_histo.html - weighted version of fix ave/histo
|
||||
"ave/time"_fix_ave_time.html - compute/output global time-averaged quantities
|
||||
"aveforce"_fix_aveforce.html - add an averaged force to each atom
|
||||
"balance"_fix_balance.html - perform dynamic load-balancing
|
||||
"bocs"_fix_bocs.html -
|
||||
"bocs"_fix_bocs.html - NPT style time integration with pressure correction
|
||||
"bond/break"_fix_bond_break.html - break bonds on the fly
|
||||
"bond/create"_fix_bond_create.html - create bonds on the fly
|
||||
"bond/react"_fix_bond_react.html -
|
||||
"bond/react"_fix_bond_react.html - apply topology changes to model reactions
|
||||
"bond/swap"_fix_bond_swap.html - Monte Carlo bond swapping
|
||||
"box/relax"_fix_box_relax.html - relax box size during energy minimization
|
||||
"client/md"_fix_client_md.html -
|
||||
"cmap"_fix_cmap.html -
|
||||
"colvars"_fix_colvars.html -
|
||||
"controller"_fix_controller.html -
|
||||
"client/md"_fix_client_md.html - MD client for client/server simulations
|
||||
"cmap"_fix_cmap.html - enables CMAP cross-terms of the CHARMM force field
|
||||
"colvars"_fix_colvars.html - interface to the collective variables “Colvars” library
|
||||
"controller"_fix_controller.html - apply control loop feedback mechanism
|
||||
"deform"_fix_deform.html - change the simulation box size/shape
|
||||
"deposit"_fix_deposit.html - add new atoms above a surface
|
||||
"dpd/energy"_fix_dpd_energy.html -
|
||||
"dpd/energy"_fix_dpd_energy.html - constant energy dissipative particle dynamics
|
||||
"drag"_fix_drag.html - drag atoms towards a defined coordinate
|
||||
"drude"_fix_drude.html -
|
||||
"drude/transform/direct"_fix_drude_transform.html -
|
||||
"drude/transform/inverse"_fix_drude_transform.html -
|
||||
"drude"_fix_drude.html - part of Drude oscillator polarization model
|
||||
"drude/transform/direct"_fix_drude_transform.html - part of Drude oscillator polarization model
|
||||
"drude/transform/inverse"_fix_drude_transform.html - part of Drude oscillator polarization model
|
||||
"dt/reset"_fix_dt_reset.html - reset the timestep based on velocity, forces
|
||||
"edpd/source"_fix_dpd_source.html -
|
||||
"edpd/source"_fix_dpd_source.html - add heat source to eDPD simulations
|
||||
"efield"_fix_efield.html - impose electric field on system
|
||||
"ehex"_fix_ehex.html - enhanced heat exchange algorithm
|
||||
"electron/stopping"_fix_electron_stopping.html - electronic stopping power as a friction force
|
||||
@ -208,27 +208,26 @@ accelerated styles exist.
|
||||
"eos/table/rx"_fix_eos_table_rx.html -
|
||||
"evaporate"_fix_evaporate.html - remove atoms from simulation periodically
|
||||
"external"_fix_external.html - callback to an external driver program
|
||||
"ffl"_fix_ffl.html -
|
||||
"filter/corotate"_fix_filter_corotate.html -
|
||||
"flow/gauss"_fix_flow_gauss.html -
|
||||
"ffl"_fix_ffl.html - apply a Fast-Forward Langevin equation thermostat
|
||||
"filter/corotate"_fix_filter_corotate.html - implement corotation filter to allow larger timesteps with r-RESPA
|
||||
"flow/gauss"_fix_flow_gauss.html - Gaussian dynamics for constant mass flux
|
||||
"freeze"_fix_freeze.html - freeze atoms in a granular simulation
|
||||
"gcmc"_fix_gcmc.html - grand canonical insertions/deletions
|
||||
"gld"_fix_gcmc.html - generalized Langevin dynamics integrator
|
||||
"gld"_fix_gld.html -
|
||||
"gle"_fix_gle.html -
|
||||
"gld"_fix_gld.html - generalized Langevin dynamics integrator
|
||||
"gle"_fix_gle.html - generalized Langevin equation thermostat
|
||||
"gravity"_fix_gravity.html - add gravity to atoms in a granular simulation
|
||||
"grem"_fix_grem.html -
|
||||
"grem"_fix_grem.html - implements the generalized replica exchange method
|
||||
"halt"_fix_halt.html - terminate a dynamics run or minimization
|
||||
"heat"_fix_heat.html - add/subtract momentum-conserving heat
|
||||
"hyper/global"_fix_hyper_global.html - global hyperdynamics
|
||||
"hyper/local"_fix_hyper_local.html - local hyperdynamics
|
||||
"imd"_fix_imd.html -
|
||||
"imd"_fix_imd.html - implements the “Interactive MD” (IMD) protocol
|
||||
"indent"_fix_indent.html - impose force due to an indenter
|
||||
"ipi"_fix_ipi.html -
|
||||
"ipi"_fix_ipi.html - enable LAMMPS to run as a client for i-PI path-integral simulations
|
||||
"langevin"_fix_langevin.html - Langevin temperature control
|
||||
"langevin/drude"_fix_langevin_drude.html -
|
||||
"langevin/eff"_fix_langevin_eff.html -
|
||||
"langevin/spin"_fix_langevin_spin.html -
|
||||
"langevin/drude"_fix_langevin_drude.html - Langevin temperature control of Drude oscillators
|
||||
"langevin/eff"_fix_langevin_eff.html - Langevin temperature control for the electron force field model
|
||||
"langevin/spin"_fix_langevin_spin.html - Langevin temperature control for a spin or spin-lattice system
|
||||
"latte"_fix_latte.html - wrapper on LATTE density-functional tight-binding code
|
||||
"lb/fluid"_fix_lb_fluid.html -
|
||||
"lb/momentum"_fix_lb_momentum.html -
|
||||
@ -236,64 +235,60 @@ accelerated styles exist.
|
||||
"lb/rigid/pc/sphere"_fix_lb_rigid_pc_sphere.html -
|
||||
"lb/viscous"_fix_lb_viscous.html -
|
||||
"lineforce"_fix_lineforce.html - constrain atoms to move in a line
|
||||
"manifoldforce"_fix_manifoldforce.html -
|
||||
"meso"_fix_meso.html -
|
||||
"meso"_fix_meso_move.html - move mesoscopic SPH/SDPD particles in a prescribed fashion
|
||||
"meso/move"_fix_meso_move.html -
|
||||
"manifoldforce"_fix_manifoldforce.html - restrain atoms to a manifold during minimization
|
||||
"meso"_fix_meso.html - time integration for SPH/DPDE particles
|
||||
"meso/move"_fix_meso_move.html - move mesoscopic SPH/SDPD particles in a prescribed fashion
|
||||
"meso/stationary"_fix_meso_stationary.html -
|
||||
"momentum"_fix_momentum.html - zero the linear and/or angular momentum of a group of atoms
|
||||
"move"_fix_move.html - move atoms in a prescribed fashion
|
||||
"mscg"_fix_mscg.html -
|
||||
"mscg"_fix_mscg.html - apply MSCG method for force-matching to generate coarse grain models
|
||||
"msst"_fix_msst.html - multi-scale shock technique (MSST) integration
|
||||
"mvv/dpd"_fix_mvv_dpd.html -
|
||||
"mvv/edpd"_fix_mvv_dpd.html -
|
||||
"mvv/tdpd"_fix_mvv_dpd.html -
|
||||
"mvv/dpd"_fix_mvv_dpd.html - DPD using the modified velocity-Verlet integration algorithm
|
||||
"mvv/edpd"_fix_mvv_dpd.html - constant energy DPD using the modified velocity-Verlet algrithm
|
||||
"mvv/tdpd"_fix_mvv_dpd.html - constant temperature DPD using the modified velocity-Verlet algorithm
|
||||
"neb"_fix_neb.html - nudged elastic band (NEB) spring forces
|
||||
"nph"_fix_nh.html - constant NPH time integration via Nose/Hoover
|
||||
"nph/asphere"_fix_nph_asphere.html - NPH for aspherical particles
|
||||
"nph/body"_fix_nph_body.html -
|
||||
"nph/body"_fix_nve_body.html - NPH for body particles
|
||||
"nph/eff"_fix_nh_eff.html -
|
||||
"nph/body"_fix_nph_body.html - NPH for body particles
|
||||
"nph/eff"_fix_nh_eff.html - NPH for nuclei and electrons in the electron force field model
|
||||
"nph/sphere"_fix_nph_sphere.html - NPH for spherical particles
|
||||
"nphug"_fix_nphug.html - constant-stress Hugoniostat integration
|
||||
"npt"_fix_nh.html - constant NPT time integration via Nose/Hoover
|
||||
"npt/asphere"_fix_npt_asphere.html - NPT for aspherical particles
|
||||
"npt/body"_fix_npt_body.html -
|
||||
"npt/body"_fix_nve_body.html - NPT for body particles
|
||||
"npt/eff"_fix_nh_eff.html -
|
||||
"npt/body"_fix_npt_body.html - NPT for body particles
|
||||
"npt/eff"_fix_nh_eff.html - NPT for nuclei and electrons in the electron force field model
|
||||
"npt/sphere"_fix_npt_sphere.html - NPT for spherical particles
|
||||
"npt/uef"_fix_nh_uef.html -
|
||||
"npt/uef"_fix_nh_uef.html - NPT style time integration with diagonal flow
|
||||
"nve"_fix_nve.html - constant NVE time integration
|
||||
"nve/asphere"_fix_nve_asphere.html - NVE for aspherical particles
|
||||
"nve/asphere/noforce"_fix_nve_asphere_noforce.html - NVE for aspherical particles without forces"
|
||||
"nve/awpmd"_fix_nve_awpmd.html -
|
||||
"nve/asphere/noforce"_fix_nve_asphere_noforce.html - NVE for aspherical particles without forces
|
||||
"nve/awpmd"_fix_nve_awpmd.html - NVE for the Antisymmetrized Wave Packet Molecular Dynamics model
|
||||
"nve/body"_fix_nve_body.html - NVE for body particles
|
||||
"nve/dot"_fix_nve_dot.html -
|
||||
"nve/dotc/langevin"_fix_nve_dotc_langevin.html -
|
||||
"nve/eff"_fix_nve_eff.html -
|
||||
"nve/dot"_fix_nve_dot.html - rigid body constant energy time integrator for coarse grain models
|
||||
"nve/dotc/langevin"_fix_nve_dotc_langevin.html - Langevin style rigid body time integrator for coarse grain models
|
||||
"nve/eff"_fix_nve_eff.html - NVE for nuclei and electrons in the electron force field model
|
||||
"nve/limit"_fix_nve_limit.html - NVE with limited step length
|
||||
"nve/line"_fix_nve_line.html - NVE for line segments
|
||||
"nve/manifold/rattle"_fix_nve_manifold_rattle.html -
|
||||
"nve/noforce"_fix_nve_noforce.html - NVE without forces (v only)
|
||||
"nve/sphere"_fix_nve_sphere.html - NVE for spherical particles
|
||||
"nve/spin"_fix_nve_spin.html -
|
||||
"nve/spin"_fix_nve_spin.html - NVE for a spin or spin-lattice system
|
||||
"nve/tri"_fix_nve_tri.html - NVE for triangles
|
||||
"nvk"_fix_nvk.html -
|
||||
"nvt"_fix_nh.html - constant NVT time integration via Nose/Hoover
|
||||
"nvk"_fix_nvk.html - constant kinetic energy time integration
|
||||
"nvt"_fix_nh.html - NVT time integration via Nose/Hoover
|
||||
"nvt/asphere"_fix_nvt_asphere.html - NVT for aspherical particles
|
||||
"nvt/body"_fix_nve_body.html - NVT for body particles
|
||||
"nvt/body"_fix_nvt_body.html -
|
||||
"nvt/eff"_fix_nh_eff.html -
|
||||
"nvt/body"_fix_nvt_body.html - NVT for body particles
|
||||
"nvt/eff"_fix_nh_eff.html - NVE for nuclei and electrons in the electron force field model
|
||||
"nvt/manifold/rattle"_fix_nvt_manifold_rattle.html -
|
||||
"nvt/sllod"_fix_nvt_sllod.html - NVT for NEMD with SLLOD equations
|
||||
"nvt/sllod/eff"_fix_nvt_sllod_eff.html -
|
||||
"nvt/sllod/eff"_fix_nvt_sllod_eff.html - NVT for NEMD with SLLOD equations for the electron force field model
|
||||
"nvt/sphere"_fix_nvt_sphere.html - NVT for spherical particles
|
||||
"nvt/uef"_fix_nh_uef.html -
|
||||
"nvt/uef"_fix_nh_uef.html - NVT style time integration with diagonal flow
|
||||
"oneway"_fix_oneway.html - constrain particles on move in one direction
|
||||
"orient/bcc"_fix_orient.html - add grain boundary migration force for BCC
|
||||
"orient/fcc"_fix_orient.html - add grain boundary migration force for FCC
|
||||
"phonon"_fix_phonon.html -
|
||||
"pimd"_fix_pimd.html -
|
||||
"phonon"_fix_phonon.html - calculate dynamical matrix from MD simulations
|
||||
"pimd"_fix_pimd.html - Feynman path integral molecular dynamics
|
||||
"planeforce"_fix_planeforce.html - constrain atoms to move in a plane
|
||||
"plumed"_fix_plumed.html - wrapper on PLUMED free energy library
|
||||
"poems"_fix_poems.html - constrain clusters of atoms to move as coupled rigid bodies
|
||||
@ -302,24 +297,24 @@ accelerated styles exist.
|
||||
"press/berendsen"_fix_press_berendsen.html - pressure control by Berendsen barostat
|
||||
"print"_fix_print.html - print text and variables during a simulation
|
||||
"property/atom"_fix_property_atom.html - add customized per-atom values
|
||||
"python/invoke"_fix_python_invoke.html -
|
||||
"python/move"_fix_python_move.html -
|
||||
"qbmsst"_fix_qbmsst.html -
|
||||
"python/invoke"_fix_python_invoke.html - call a Python function during a simulation
|
||||
"python/move"_fix_python_move.html - call a Python function during a simulation run
|
||||
"qbmsst"_fix_qbmsst.html - quantum bath multi-scale shock technique time integrator
|
||||
"qeq/comb"_fix_qeq_comb.html - charge equilibration for COMB potential
|
||||
"qeq/dynamic"_fix_qeq.html - charge equilibration via dynamic method
|
||||
"qeq/fire"_fix_qeq.html - charge equilibration via FIRE minimizer
|
||||
"qeq/point"_fix_qeq.html - charge equilibration via point method
|
||||
"qeq/reax"_fix_qeq_reax.html -
|
||||
"qeq/reax"_fix_qeq_reax.html - charge equilibration for ReaxFF potential
|
||||
"qeq/shielded"_fix_qeq.html - charge equilibration via shielded method
|
||||
"qeq/slater"_fix_qeq.html - charge equilibration via Slater method
|
||||
"qmmm"_fix_qmmm.html -
|
||||
"qtb"_fix_qtb.html -
|
||||
"qmmm"_fix_qmmm.html - functionality to enable a quantum mechanics/molecular mechanics coupling
|
||||
"qtb"_fix_qtb.html - implement quantum thermal bath scheme
|
||||
"rattle"_fix_shake.html - RATTLE constraints on bonds and/or angles
|
||||
"reax/c/bonds"_fix_reaxc_bonds.html - write out ReaxFF bond information
|
||||
"reax/c/species"_fix_reaxc_species.html - write out ReaxFF molecule information
|
||||
"recenter"_fix_recenter.html - constrain the center-of-mass position of a group of atoms
|
||||
"restrain"_fix_restrain.html - constrain a bond, angle, dihedral
|
||||
"rhok"_fix_rhok.html -
|
||||
"rhok"_fix_rhok.html - add bias potential for long-range ordered systems
|
||||
"rigid"_fix_rigid.html - constrain one or more clusters of atoms to move as a rigid body with NVE integration
|
||||
"rigid/meso"_fix_rigid_meso.html - constrain clusters of mesoscopic SPH/SDPD particles to move as a rigid body
|
||||
"rigid/nph"_fix_rigid.html - constrain one or more clusters of atoms to move as a rigid body with NPH integration
|
||||
@ -332,11 +327,11 @@ accelerated styles exist.
|
||||
"rigid/nvt/small"_fix_rigid.html - constrain many small clusters of atoms to move as a rigid body with NVT integration
|
||||
"rigid/small"_fix_rigid.html - constrain many small clusters of atoms to move as a rigid body with NVE integration
|
||||
"rx"_fix_rx.html -
|
||||
"saed/vtk"_fix_saed_vtk.html -
|
||||
"saed/vtk"_fix_saed_vtk.html -
|
||||
"setforce"_fix_setforce.html - set the force on each atom
|
||||
"shake"_fix_shake.html - SHAKE constraints on bonds and/or angles
|
||||
"shardlow"_fix_shardlow.html -
|
||||
"smd"_fix_smd.html -
|
||||
"shardlow"_fix_shardlow.html - integration of DPD equations of motion using the Shardlow splitting
|
||||
"smd"_fix_smd.html - applied a steered MD force to a group
|
||||
"smd/adjust_dt"_fix_smd_adjust_dt.html -
|
||||
"smd/integrate_tlsph"_fix_smd_integrate_tlsph.html -
|
||||
"smd/integrate_ulsph"_fix_smd_integrate_ulsph.html -
|
||||
@ -355,13 +350,13 @@ accelerated styles exist.
|
||||
"temp/csld"_fix_temp_csvr.html - canonical sampling thermostat with Langevin dynamics
|
||||
"temp/csvr"_fix_temp_csvr.html - canonical sampling thermostat with Hamiltonian dynamics
|
||||
"temp/rescale"_fix_temp_rescale.html - temperature control by velocity rescaling
|
||||
"temp/rescale/eff"_fix_temp_rescale_eff.html -
|
||||
"temp/rescale/eff"_fix_temp_rescale_eff.html - temperature control by velocity rescaling in the electron force field model
|
||||
"tfmc"_fix_tfmc.html - perform force-bias Monte Carlo with time-stamped method
|
||||
"thermal/conductivity"_fix_thermal_conductivity.html - Muller-Plathe kinetic energy exchange for thermal conductivity calculation
|
||||
"ti/spring"_fix_ti_spring.html -
|
||||
"tmd"_fix_tmd.html - guide a group of atoms to a new configuration
|
||||
"ttm"_fix_ttm.html - two-temperature model for electronic/atomic coupling
|
||||
"ttm/mod"_fix_ttm.html -
|
||||
"ttm/mod"_fix_ttm.html - enhanced two-temperature model with additional options
|
||||
"tune/kspace"_fix_tune_kspace.html - auto-tune KSpace parameters
|
||||
"vector"_fix_vector.html - accumulate a global vector every N timesteps
|
||||
"viscosity"_fix_viscosity.html - Muller-Plathe momentum exchange for viscosity calculation
|
||||
@ -369,7 +364,7 @@ accelerated styles exist.
|
||||
"wall/body/polygon"_fix_wall_body_polygon.html -
|
||||
"wall/body/polyhedron"_fix_wall_body_polyhedron.html -
|
||||
"wall/colloid"_fix_wall.html - Lennard-Jones wall interacting with finite-size particles
|
||||
"wall/ees"_fix_wall_ees.html -
|
||||
"wall/ees"_fix_wall_ees.html - wall for ellipsoidal particles
|
||||
"wall/gran"_fix_wall_gran.html - frictional wall(s) for granular simulations
|
||||
"wall/gran/region"_fix_wall_gran_region.html -
|
||||
"wall/harmonic"_fix_wall.html - harmonic spring wall
|
||||
@ -379,7 +374,7 @@ accelerated styles exist.
|
||||
"wall/piston"_fix_wall_piston.html - moving reflective piston wall
|
||||
"wall/reflect"_fix_wall_reflect.html - reflecting wall(s)
|
||||
"wall/region"_fix_wall_region.html - use region surface as wall
|
||||
"wall/region/ees"_fix_wall_ees.html -
|
||||
"wall/region/ees"_fix_wall_ees.html - use region surface as wall for ellipsoidal particles
|
||||
"wall/srd"_fix_wall_srd.html - slip/no-slip wall for SRD particles :ul
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
@ -149,8 +149,7 @@ meaning of these parameters:
|
||||
"spin/neel"_pair_spin_neel.html: coulombic_cutoff: type global:
|
||||
"table"_pair_table.html: table_cutoff: type pairs:
|
||||
"ufm"_pair_ufm.html: epsilon,sigma: type pairs:
|
||||
"soft"_pair_soft.html: a: type pairs:
|
||||
"kim"_pair_kim.html: PARAM_FREE_*:i,j,...: global :tb(c=3,s=:)
|
||||
"soft"_pair_soft.html: a: type pairs: :tb(c=3,s=:)
|
||||
|
||||
NOTE: It is easy to add new pairwise potentials and their parameters
|
||||
to this list. All it typically takes is adding an extract() method to
|
||||
|
||||
@ -47,13 +47,13 @@ or {cubic_spline}.
|
||||
|
||||
With either spline method, the only argument that needs to follow it
|
||||
is the name of a file that contains the desired pressure correction
|
||||
as a function of volume. The file should be formatted so each line has:
|
||||
as a function of volume. The file must be formatted so each line has:
|
||||
|
||||
Volume_i, PressureCorrection_i :pre
|
||||
|
||||
Note both the COMMA and the SPACE separating the volume's
|
||||
value and its corresponding pressure correction. The volumes in the file
|
||||
should be uniformly spaced. Both the volumes and the pressure corrections
|
||||
must be uniformly spaced. Both the volumes and the pressure corrections
|
||||
should be provided in the proper units, e.g. if you are using {units real},
|
||||
the volumes should all be in cubic angstroms, and the pressure corrections
|
||||
should all be in atmospheres. Furthermore, the table should start/end at a
|
||||
|
||||
@ -18,13 +18,13 @@ fix ID group-ID bond/react common_keyword values ...
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command. Group-ID is ignored. :ulb,l
|
||||
bond/react = style name of this fix command :l
|
||||
zero or more common keyword/value pairs may be appended directly after 'bond/react' :l
|
||||
these apply to all reaction specifications (below) :l
|
||||
the common keyword/values may be appended directly after 'bond/react' :l
|
||||
this applies to all reaction specifications (below) :l
|
||||
common_keyword = {stabilization} :l
|
||||
{stabilization} values = {no} or {yes} {group-ID} {xmax}
|
||||
{no} = no reaction site stabilization
|
||||
{yes} = perform reaction site stabilization
|
||||
{group-ID} = user-assigned prefix for the dynamic group of non-reacting atoms
|
||||
{group-ID} = user-assigned prefix for the dynamic group of atoms not currently involved in a reaction
|
||||
{xmax} = xmax value that is used by an internally-created "nve/limit"_fix_nve_limit.html integrator :pre
|
||||
react = mandatory argument indicating new reaction specification :l
|
||||
react-ID = user-assigned name for the reaction :l
|
||||
@ -52,6 +52,8 @@ react = mandatory argument indicating new reaction specification :l
|
||||
|
||||
[Examples:]
|
||||
|
||||
For unabridged example scripts and files, see examples/USER/misc/bond_react.
|
||||
|
||||
molecule mol1 pre_reacted_topology.txt
|
||||
molecule mol2 post_reacted_topology.txt
|
||||
fix 5 all bond/react react myrxn1 all 1 0 3.25 mol1 mol2 map_file.txt :pre
|
||||
@ -106,6 +108,20 @@ involved in any new reactions. The {xmax} value keyword should
|
||||
typically be set to the maximum distance that non-reacting atoms move
|
||||
during the simulation.
|
||||
|
||||
Fix bond/react creates and maintains two important dynamic groups of
|
||||
atoms when using the {stabilization} keyword. The first group contains
|
||||
all atoms currently involved in a reaction; this group is
|
||||
automatically thermostatted by an internally-created
|
||||
"nve/limit"_fix_nve_limit.html integrator. The second group contains
|
||||
all atoms currently not involved in a reaction. This group should be
|
||||
used by a thermostat in order to time integrate the system. The name
|
||||
of this group of non-reacting atoms is created by appending '_REACT'
|
||||
to the group-ID argument of the {stabilization} keyword, as shown in
|
||||
the second example above.
|
||||
|
||||
NOTE: When using reaction stabilization, you should generally not have
|
||||
a separate thermostat which acts on the 'all' group.
|
||||
|
||||
The group-ID set using the {stabilization} keyword can be an existing
|
||||
static group or a previously-unused group-ID. It cannot be specified
|
||||
as 'all'. If the group-ID is previously unused, the fix bond/react
|
||||
@ -116,30 +132,29 @@ internally-created dynamic group. In both cases, this new dynamic
|
||||
group is named by appending '_REACT' to the group-ID, e.g.
|
||||
nvt_grp_REACT. By specifying an existing group, you may thermostat
|
||||
constant-topology parts of your system separately. The dynamic group
|
||||
contains only non-reacting atoms at a given timestep, and therefore
|
||||
should be used by a subsequent system-wide time integrator such as
|
||||
nvt, npt, or nve, as shown in the second example above. The time
|
||||
integration command should be placed after the fix bond/react command
|
||||
due to the internal dynamic grouping performed by fix bond/react.
|
||||
contains only atoms not involved in a reaction at a given timestep,
|
||||
and therefore should be used by a subsequent system-wide time
|
||||
integrator such as nvt, npt, or nve, as shown in the second example
|
||||
above (full examples can be found at examples/USER/misc/bond_react).
|
||||
The time integration command should be placed after the fix bond/react
|
||||
command due to the internal dynamic grouping performed by fix
|
||||
bond/react.
|
||||
|
||||
NOTE: If the group-ID is an existing static group, react-group-IDs
|
||||
should also be specified as this static group, or a subset.
|
||||
|
||||
NOTE: If the group-ID is previously unused, the internally-created
|
||||
group applies to all atoms in the system, i.e. you should generally
|
||||
not have a separate thermostat which acts on the 'all' group, or any
|
||||
other group.
|
||||
|
||||
The following comments pertain to each {react} argument (in other
|
||||
words, can be customized for each reaction, or reaction step):
|
||||
|
||||
A check for possible new reaction sites is performed every {Nevery}
|
||||
timesteps.
|
||||
|
||||
Two conditions must be met for a reaction to occur. First a bonding
|
||||
atom pair must be identified. Second, the topology surrounding the
|
||||
bonding atom pair must match the topology of the pre-reaction
|
||||
template. If both these conditions are met, the reaction site is
|
||||
Three physical conditions must be met for a reaction to occur. First,
|
||||
a bonding atom pair must be identified within the reaction distance
|
||||
cutoffs. Second, the topology surrounding the bonding atom pair must
|
||||
match the topology of the pre-reaction template. Finally, any reaction
|
||||
constraints listed in the map file (see below) must be satisfied. If
|
||||
all of these conditions are met, the reaction site is eligible to be
|
||||
modified to match the post-reaction template.
|
||||
|
||||
A bonding atom pair will be identified if several conditions are met.
|
||||
@ -203,14 +218,24 @@ new types must also be defined during the setup of a given simulation.
|
||||
A discussion of correctly handling this is also provided on the
|
||||
"molecule"_molecule.html command page.
|
||||
|
||||
NOTE: When a reaction occurs, it is possible that the resulting
|
||||
topology/atom (e.g. special bonds, dihedrals, etc.) exceeds that of
|
||||
the existing system and reaction templates. As when inserting
|
||||
molecules, enough space for this increased topology/atom must be
|
||||
reserved by using the relevant "extra" keywords to the
|
||||
"read_data"_read_data.html or "create_box"_create_box.html commands.
|
||||
|
||||
The map file is a text document with the following format:
|
||||
|
||||
A map file has a header and a body. The header of map file the
|
||||
contains one mandatory keyword and three optional keywords. The
|
||||
mandatory keyword is 'equivalences' and the optional keywords are
|
||||
'edgeIDs' and 'deleteIDs' and 'customIDs':
|
||||
contains one mandatory keyword and four optional keywords. The
|
||||
mandatory keyword is 'equivalences':
|
||||
|
||||
N {equivalences} = # of atoms N in the reaction molecule templates :pre
|
||||
|
||||
The optional keywords are 'edgeIDs', 'deleteIDs', 'customIDs' and
|
||||
'constraints':
|
||||
|
||||
N {equivalences} = # of atoms N in the reaction molecule templates
|
||||
N {edgeIDs} = # of edge atoms N in the pre-reacted molecule template
|
||||
N {deleteIDs} = # of atoms N that are specified for deletion
|
||||
N {customIDs} = # of atoms N that are specified for a custom update
|
||||
@ -244,8 +269,8 @@ A sample map file is given below:
|
||||
|
||||
# this is a map file :pre
|
||||
|
||||
2 edgeIDs
|
||||
7 equivalences :pre
|
||||
7 equivalences
|
||||
2 edgeIDs :pre
|
||||
|
||||
BondingIDs :pre
|
||||
|
||||
@ -297,26 +322,25 @@ can allow for the possibility of one or more reverse reactions.
|
||||
|
||||
The optional keywords deal with the probability of a given reaction
|
||||
occurring as well as the stable equilibration of each reaction site as
|
||||
it occurs.
|
||||
it occurs:
|
||||
|
||||
The {prob} keyword can affect whether an eligible reaction actually
|
||||
occurs. The fraction setting must be a value between 0.0 and 1.0. A
|
||||
uniform random number between 0.0 and 1.0 is generated and the
|
||||
The {prob} keyword can affect whether or not an eligible reaction
|
||||
actually occurs. The fraction setting must be a value between 0.0 and
|
||||
1.0. A uniform random number between 0.0 and 1.0 is generated and the
|
||||
eligible reaction only occurs if the random number is less than the
|
||||
fraction. Up to N reactions are permitted to occur, as optionally
|
||||
specified by the {max_rxn} keyword.
|
||||
|
||||
The {stabilize_steps} keyword allows for the specification of how many
|
||||
timesteps a reaction site is stabilized before being returned to the
|
||||
overall system thermostat.
|
||||
|
||||
In order to produce the most physical behavior, this 'reaction site
|
||||
equilibration time' should be tuned to be as small as possible while
|
||||
retaining stability for a given system or reaction step. After a
|
||||
limited number of case studies, this number has been set to a default
|
||||
of 60 timesteps. Ideally, it should be individually tuned for each fix
|
||||
reaction step. Note that in some situations, decreasing rather than
|
||||
increasing this parameter will result in an increase in stability.
|
||||
overall system thermostat. In order to produce the most physical
|
||||
behavior, this 'reaction site equilibration time' should be tuned to
|
||||
be as small as possible while retaining stability for a given system
|
||||
or reaction step. After a limited number of case studies, this number
|
||||
has been set to a default of 60 timesteps. Ideally, it should be
|
||||
individually tuned for each fix reaction step. Note that in some
|
||||
situations, decreasing rather than increasing this parameter will
|
||||
result in an increase in stability.
|
||||
|
||||
The {update_edges} keyword can increase the number of atoms whose
|
||||
atomic charges are updated, when the pre-reaction template contains
|
||||
@ -324,11 +348,11 @@ edge atoms. When the value is set to 'charges,' all atoms' atomic
|
||||
charges are updated to those specified by the post-reaction template,
|
||||
including atoms near the edge of reaction templates. When the value is
|
||||
set to 'custom,' an additional section must be included in the map
|
||||
file that specifies whether to update charges, on a per-atom basis.
|
||||
The format of this section is detailed above. Listing a pre-reaction
|
||||
atom ID with a value of 'charges' will force the update of the atom's
|
||||
charge, even if it is near a template edge. Atoms not near a template
|
||||
edge are unaffected by this setting.
|
||||
file that specifies whether or not to update charges, on a per-atom
|
||||
basis. The format of this section is detailed above. Listing a
|
||||
pre-reaction atom ID with a value of 'charges' will force the update
|
||||
of the atom's charge, even if it is near a template edge. Atoms not
|
||||
near a template edge are unaffected by this setting.
|
||||
|
||||
A few other considerations:
|
||||
|
||||
@ -341,12 +365,13 @@ an atom that is not deleted. In addition to deleting unwanted reaction
|
||||
by-products, this feature can be used to remove specific topologies,
|
||||
such as small rings, that may be otherwise indistinguishable.
|
||||
|
||||
Also, it may be beneficial to ensure reacting atoms are at a certain
|
||||
temperature before being released to the overall thermostat. For this,
|
||||
you can use the internally-created dynamic group named
|
||||
"bond_react_MASTER_group." For example, adding the following command
|
||||
would thermostat the group of all atoms currently involved in a
|
||||
reaction:
|
||||
Optionally, you can enforce additional behaviors on reacting atoms.
|
||||
For example, it may be beneficial to force reacting atoms to remain at
|
||||
a certain temperature. For this, you can use the internally-created
|
||||
dynamic group named "bond_react_MASTER_group", which consists of all
|
||||
atoms currently involved in a reaction. For example, adding the
|
||||
following command would add an additional thermostat to the group of
|
||||
all currently-reacting atoms:
|
||||
|
||||
fix 1 bond_react_MASTER_group temp/rescale 1 300 300 10 1 :pre
|
||||
|
||||
|
||||
@ -114,5 +114,5 @@ The default options are plumedfile = NULL and outfile = NULL
|
||||
:link(PLUMED)
|
||||
[(PLUMED)] G.A. Tribello, M. Bonomi, D. Branduardi, C. Camilloni and G. Bussi, Comp. Phys. Comm 185, 604 (2014)
|
||||
|
||||
:link(plumeddocs,http://www.plumed.org/documentation)
|
||||
:link(plumeddocs,http://www.plumed.org/doc.html)
|
||||
:link(plumedhome,http://www.plumed.org/)
|
||||
|
||||