Compare commits
878 Commits
patch_28Fe
...
patch_18Ju
| Author | SHA1 | Date | |
|---|---|---|---|
| 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 | |||
| 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 | |||
| 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 | |||
| dc1e31506e | |||
| 68d69955d0 | |||
| 5f657b9184 | |||
| 76900b8325 | |||
| 3e4fd3dade | |||
| 3e05b983c1 | |||
| d8a30a9697 | |||
| 972a7a5c4d | |||
| 311aebf7ff | |||
| 16a254f6bd | |||
| 80d906d445 | |||
| 8b169d97f5 | |||
| f73c848ee4 | |||
| 4243af30d7 | |||
| 9d51ee17b0 | |||
| c903a110fe | |||
| 02e7dd5716 | |||
| 1a5c3c6dcb | |||
| daac3f7102 | |||
| 3bf0a4ba63 | |||
| 9cc16c4f33 | |||
| 8dcd6fc48c | |||
| a48f1cbf00 | |||
| d3cbccff35 | |||
| 29d36ffec0 | |||
| fec2f8f69b | |||
| c0cfceb95c | |||
| 12fcf5f5ef | |||
| cb8d89855d | |||
| b88158fc3b | |||
| 3b60686827 | |||
| c8d50c04a4 | |||
| e3e5a962b0 | |||
| 35be1724e3 | |||
| d717101e94 | |||
| e44c877738 | |||
| e133c60ff5 | |||
| 97be57be7b | |||
| 5523c9e7f6 | |||
| c2a200fe85 | |||
| e82e1c695a | |||
| 2ee02cfadd | |||
| eea67bf3bf | |||
| cfad0634ac | |||
| bd05228c71 | |||
| 0f1e4b0504 | |||
| 439e7da03f | |||
| ed7c09ac81 | |||
| 0ee1daa46d | |||
| 2fbc4f504d | |||
| 95ab056576 | |||
| a0bc619550 | |||
| 82b50706bd | |||
| e90eed9120 | |||
| 5f2f7d1575 | |||
| 3e60ec9be1 | |||
| d0c6484fb0 | |||
| 0349e9fee9 | |||
| 55116db8fb | |||
| 1041934568 | |||
| 50082c287d | |||
| e3823a521c | |||
| dc8b43a95f | |||
| 601746b565 | |||
| 35bb2ac2a3 | |||
| fbb78e7b78 | |||
| c7eb9a8626 | |||
| 803e0631c5 | |||
| 51a6bfd579 | |||
| 5b71b3fc57 | |||
| e2ed9330b7 | |||
| 41872e37e6 | |||
| fb8d31422d | |||
| 27a2d0cbd4 | |||
| 0c0b106924 | |||
| 98d9c45ad9 | |||
| 7b264d35fa | |||
| 084bb3c35b | |||
| 267782d689 | |||
| 31789ad03b | |||
| fd168068a1 | |||
| f2b293d93b | |||
| 6e842ba84a | |||
| 30dc7f70b5 | |||
| 98702cc0b9 | |||
| 67532684f9 | |||
| 2c51511325 | |||
| 1d5ada136a | |||
| 4a4dcef7b7 | |||
| 4dc90b367e | |||
| 091dbfa265 | |||
| a26dc1b356 | |||
| d8fb17e2cb | |||
| 322c244bec | |||
| 60f6c3f3dc | |||
| c911a44298 | |||
| 52e3aeab33 | |||
| 3a8b3a119f | |||
| 8e18f2bf7e | |||
| 11f223416c | |||
| d3d4b420ba | |||
| 805cc18b2d | |||
| e228555aed | |||
| 8eeb92b82b | |||
| c581e9349a | |||
| a0cc6b5b59 | |||
| f2d881470d | |||
| e13c661f77 | |||
| a1f421cd54 | |||
| b2942cbafa | |||
| c86359966c | |||
| a7c9560dc1 | |||
| 03505a6c48 | |||
| 6d84bd6138 | |||
| 238382e0ca | |||
| 2bc089db27 | |||
| 799f4061f4 | |||
| 2f580380a4 | |||
| 47cf17e5c8 | |||
| 928600a878 | |||
| 7b2d526f86 | |||
| 0034473e66 | |||
| da75fc3eaa | |||
| 711cd4122f | |||
| 45e6ed018e | |||
| 8c193b8c42 | |||
| 12f8834b80 | |||
| 6c3cae8823 | |||
| 1d1611ce44 | |||
| a87d8e124f | |||
| cc30688137 | |||
| b3f4e2055e | |||
| 8212dca609 | |||
| 319ed5dd48 | |||
| bac8b267df | |||
| da6e576ffd | |||
| f163d7dc9b | |||
| a354b52e3c | |||
| 0a4b0cf019 | |||
| 4d4219ca3e | |||
| d86a7b95de | |||
| db54b03751 | |||
| 24e41bc085 | |||
| c28cf9f742 | |||
| fd3eade6d2 | |||
| 1214e6ea79 | |||
| c2b2be5d6f | |||
| 81d3fa77bb | |||
| a7226bd93d | |||
| 66f7f2a5ef | |||
| a70f9c4f95 | |||
| 3baf15ed6f | |||
| d7dd78126c | |||
| 97ce76e759 | |||
| d7da1db745 | |||
| 4f3c87f8c4 | |||
| 02d5f17a18 | |||
| 7e00acce53 | |||
| 7fbd409f5b | |||
| faa0da9976 | |||
| e08080cae5 | |||
| 7b7f405d2c | |||
| 66d94572e0 | |||
| 8145c5028d | |||
| 0005ee3e93 | |||
| 8d9697dbf6 | |||
| f052509015 | |||
| 97baee4931 | |||
| 96e51d11ad | |||
| 0bb2e004ab | |||
| 98daf8f825 | |||
| af8a71b1ad | |||
| 0fac0e18d1 | |||
| 8102fdcf24 | |||
| 5d9e85d840 | |||
| d190b76075 | |||
| 930748f6f2 | |||
| 6fc2bda01c | |||
| 8c6e1e2448 | |||
| 809bd3d1bb | |||
| d9fc4a152b | |||
| d3327ffd16 | |||
| 795cdf456f | |||
| e481c5f35b | |||
| 5df8a42e24 | |||
| 21d0a16b6f | |||
| a9388e86e3 | |||
| 80af0281d1 | |||
| 0e7d647aeb | |||
| 8882436078 | |||
| ceff147fc0 | |||
| 8d9a44a837 | |||
| e3d7b52b80 | |||
| c55174ac1d | |||
| b93d9e6f7f | |||
| 16fd5904ed | |||
| 7c3f619e13 | |||
| 47d4aa6803 | |||
| f548e2717e | |||
| 6088f2a6a2 | |||
| 0673f6f2b9 | |||
| 4c19eab64c | |||
| cb6b498127 | |||
| a243be2dc9 | |||
| a696b26301 | |||
| c6d0f7ca87 | |||
| ba7882c1ff | |||
| d3c5d7e423 | |||
| dec1ad19b5 | |||
| 37d84de09c | |||
| 941281e9e9 | |||
| e700ccd4df | |||
| 4621af4b9d | |||
| f27ed871f9 | |||
| 16bb8a1439 | |||
| 4a4297591e | |||
| d6f3a95599 | |||
| cb30414820 | |||
| 1f43efc111 | |||
| c55009a0ac | |||
| ebee2b588c | |||
| 4b2388339e | |||
| 1d4372c24d | |||
| 82a87322ed | |||
| 5fb164d586 | |||
| 4c565db9af | |||
| 0eebb31903 | |||
| 69e7a2a237 | |||
| 835fce7a5e | |||
| fdaa3f48e9 | |||
| 2bdd9b7544 | |||
| 100f17077c | |||
| 0b24a3d830 | |||
| 2e9404acdf | |||
| 80431612c7 | |||
| d0826f2838 | |||
| d33a30806a | |||
| 14d3d09de3 | |||
| 5e3929de56 | |||
| 70c816aa02 | |||
| e4e2249b63 | |||
| 3d7b387786 | |||
| 4af22a723d | |||
| cf35ebe5fa | |||
| 073f003470 | |||
| 618547b72e | |||
| a01bce46bb | |||
| 82be3ee32c | |||
| 16b17f812c | |||
| 915c3a6001 | |||
| 8ec231a8e5 | |||
| 22b7e12baf | |||
| c11b1edc1f | |||
| b8d3c9e01b | |||
| 149a57f3ae | |||
| db74f14f33 | |||
| 69c1a7954a | |||
| 7f2c81657b | |||
| b8ae466999 | |||
| fbda72891c | |||
| ece46dbfa5 | |||
| 2bb69773d3 | |||
| 77d80c84c9 | |||
| aa336c2bb4 | |||
| 814b9b9378 | |||
| 1501e9ba8a | |||
| 57247142d2 | |||
| 1e07ef6f87 | |||
| 898860328b | |||
| fcb4b75589 | |||
| f2113ab04a | |||
| dc40886d23 | |||
| 6ee002d6cf | |||
| d640c712f8 | |||
| 9166001041 | |||
| 2fbf86a58d | |||
| cb559659f8 | |||
| 5c5b57be5a | |||
| 8c4a497af4 | |||
| e57c4c60bd | |||
| 13cf357f66 | |||
| 6f7b3643ef | |||
| e57e4a730b | |||
| b40c4d1641 | |||
| 1dd21e6e0c | |||
| a6c9a782a4 | |||
| 3b43fc3ea7 | |||
| 0d8d8dc0da | |||
| ce1040a103 | |||
| b25657c67b | |||
| 494e76da7d | |||
| cb398bd026 | |||
| 72b69783de | |||
| 8c02ce7302 | |||
| f98aed419c | |||
| 86f4080b71 | |||
| 59a4d42231 | |||
| e8289b0024 | |||
| 3070a11041 | |||
| 47b7437976 | |||
| 6643a4ec92 | |||
| cb27d03c79 | |||
| 8683e1ebf8 | |||
| d6a12f6c3e | |||
| efa8c8d58b | |||
| bcb6e1be4f | |||
| bca7364ba3 | |||
| 9334c72c04 | |||
| e629733d0b | |||
| f10534a721 | |||
| de0938da39 | |||
| f8018a8bba | |||
| 3d7a4fb945 | |||
| d17553d8d2 | |||
| e56d69a267 | |||
| 67f8c83661 | |||
| 542d8aaf07 | |||
| 6e6d350572 | |||
| 4f459a59a1 | |||
| ac7312caf1 | |||
| ed90596849 | |||
| 7f040a3676 | |||
| da16a7e50b | |||
| 815ad4dab2 | |||
| 05993a79b8 | |||
| 175f3ee648 | |||
| 2e1da2958d | |||
| 2757e4e6e6 | |||
| 85a0461a48 | |||
| 20cbe1edff | |||
| cb272159ba | |||
| 73b2e1f47c | |||
| 5d3801cb12 | |||
| 383e206cc2 | |||
| 8b2a8ad08b | |||
| 42e8a7613e | |||
| 4f026b9b38 | |||
| 76dfcc1dfd | |||
| 9543335613 | |||
| f4159ff592 | |||
| e359e80118 | |||
| dbbf198edb | |||
| df94e80bb1 | |||
| 4003387fb1 | |||
| ab5c3b0386 | |||
| 78bab6ee39 | |||
| c52a330a79 | |||
| 265ad4512d | |||
| 605524ab66 | |||
| 968ac3d8d7 | |||
| 81dd96f970 | |||
| 50427ce05d | |||
| a9c376f20d | |||
| 88d160f86e | |||
| 8c03f51020 | |||
| 2aa7a150b4 | |||
| 6679469220 | |||
| da77dde04d | |||
| 6ff1fee6d6 | |||
| 619c2322e5 | |||
| 0d78c7b43d | |||
| 8820467a8b | |||
| d4a495151e | |||
| e45e92b1cb | |||
| 501558743b | |||
| d7a5bf4e16 | |||
| 1a105253c1 | |||
| f2f49e60bf | |||
| f73ccc3025 | |||
| 1696432e82 | |||
| 7372e8fde1 | |||
| f17aff6331 | |||
| 537704fdaa | |||
| 52a13f31b3 | |||
| f02b364e6e | |||
| 40f1662c93 | |||
| 6cb120d691 | |||
| a149fdb420 | |||
| b1070f4703 | |||
| 778537e734 | |||
| 921d3dadf8 | |||
| bd923d8bd4 | |||
| 6411ff8359 | |||
| 4a003644fe | |||
| 365166fef0 | |||
| 34b023456b | |||
| 978b52ee8c | |||
| 98bd720c68 | |||
| 4824992a1e | |||
| 5a75125426 | |||
| cb5c3f900e | |||
| 74ce164457 | |||
| 3eab343821 | |||
| fd7c680654 | |||
| 764fb2522b | |||
| ef184c9b1b | |||
| 0ab65c0343 | |||
| 800f3a81b1 | |||
| 91f3a94851 | |||
| d1cb8970d5 | |||
| d3ea115436 | |||
| c044eeb482 | |||
| 2fc7395c14 | |||
| 719a74a02f | |||
| b1badb6555 | |||
| 0b8332cedf | |||
| 200aa2d06f | |||
| 3a0b108f91 | |||
| 677974573a | |||
| 76b848bb0a | |||
| a0e5d14990 | |||
| 35129c0881 | |||
| 70ae5f41e3 | |||
| a7bb772db7 | |||
| 8d8f0af7a6 | |||
| d5aa60dbfe | |||
| b7aecc0d59 | |||
| 799c16a8b2 | |||
| adbc64b45e | |||
| 2e7316a9e3 | |||
| a8e5af3cb4 | |||
| 053bdea234 | |||
| 7688ead60f | |||
| 61d4b7a47f | |||
| 3bf4cd9c01 | |||
| 4d3c1785c6 | |||
| fa407c05a1 | |||
| 971bce7428 | |||
| 5065350081 | |||
| 74489621c4 | |||
| 585403d650 | |||
| a28ae7c2c0 | |||
| 560ccb2719 | |||
| dd22b80a9d | |||
| ff7f129a5d | |||
| 17cd650622 | |||
| 4eafb624b7 | |||
| 677753731f | |||
| 30929d95e2 | |||
| 75382cf265 | |||
| ff819be807 | |||
| 13255d6338 | |||
| 6a60dad2c3 | |||
| 1bf5047c7a | |||
| 747ddf2642 | |||
| 9d0e518cc5 | |||
| 088a672196 | |||
| 30bca9f91e | |||
| 93f531441a | |||
| d71d12d2de | |||
| 74bfd78b06 | |||
| 4aff7191e7 | |||
| eab939af23 | |||
| 16f66dc561 | |||
| 61483da58b | |||
| ab12a7c95b | |||
| 196b8c6eab | |||
| b9bddd7ba6 | |||
| 2fa6e913ef | |||
| 3cc740b9d3 | |||
| 03ee03c043 | |||
| 5d7c52e114 | |||
| 5210c4c3a4 | |||
| 6b09f6d490 | |||
| 28a6dcd1c3 | |||
| 2ad9355140 | |||
| 44fe8330b9 | |||
| e63d2cee87 | |||
| b685a0a7b8 | |||
| c4fd658e9d | |||
| 8a384df5c3 | |||
| 8ba1d76055 | |||
| af8f06141f | |||
| 03e86c4d17 | |||
| 9d22f82ba7 | |||
| 3867972ae8 | |||
| 77e323d28c | |||
| 1926c95625 | |||
| b6b0d0b30e | |||
| dbd458e9e3 | |||
| 5a6a8a9e57 | |||
| 07a6749ddc | |||
| 3cabfd13cd | |||
| 26b90727b3 | |||
| cf349633f7 | |||
| b8747ce8fb | |||
| efad31f474 | |||
| e2e4fe2cf7 | |||
| 89bc79f657 | |||
| fff28a8666 | |||
| 1266b866e0 | |||
| 1ca0c78a2e | |||
| 0bf6b91576 | |||
| 62045a9c52 | |||
| bbe6c9bb63 | |||
| fc002e30d3 | |||
| 981f12ebeb | |||
| b370a61b60 | |||
| a3a16acead | |||
| 17817fc290 | |||
| 3f9d59294e | |||
| 9912c44413 | |||
| 676370ade7 | |||
| 8c99752cec | |||
| d7a2949d1a | |||
| 6e7f13e6f9 | |||
| 4e74ccbbbe | |||
| b0a07f189c | |||
| 19d25203ad | |||
| 82d646cede | |||
| 7b3f952990 | |||
| 36b645d238 | |||
| b8c4e09b27 | |||
| 81a4d293db | |||
| cb92bccdff | |||
| 0edb82eb5e | |||
| b0a741fc58 | |||
| 30be5e94d9 | |||
| 7a00997a14 | |||
| a726362888 | |||
| 3e8c1c801b | |||
| 2f20581b29 | |||
| 5d54e888d5 | |||
| 1bd47f0318 | |||
| b055837f49 | |||
| 34d1ed9b54 | |||
| eedc88eb9b | |||
| 88755aefca | |||
| ab748ffe48 | |||
| a20d58312d | |||
| e04ab51970 | |||
| 5554deda39 | |||
| de99dc8974 | |||
| e9384b6b17 | |||
| a89a2de9d4 | |||
| b2a7205abe | |||
| 881cc71a44 | |||
| 83e458af0b | |||
| 99acb4ac54 | |||
| f557b12e03 | |||
| 111ff4475e | |||
| 414f9b25d1 | |||
| d5074b39a0 | |||
| 3464464ea9 | |||
| 22be3bd37e | |||
| f69173f410 | |||
| 52f9e4a960 | |||
| c23ace9c97 | |||
| e50c269a6b | |||
| 04f999fdd6 | |||
| 817a851a30 | |||
| 0f030acc59 | |||
| cd6b23d104 | |||
| 75d63df4e0 | |||
| 8916aeb36d | |||
| b975d59d9f | |||
| 8f90d6c6d0 | |||
| 1e8ccb1774 | |||
| f2ef02b6d9 | |||
| c3adfcbc15 | |||
| 76b9c0049d | |||
| 744a8215dd | |||
| 1f44dc2498 | |||
| d1e751d717 | |||
| 2cbf56846a | |||
| 86810c2d7c | |||
| a508f1de6c | |||
| 08273c40d7 | |||
| 2dbc2c5916 | |||
| 1c3e3ce548 | |||
| fed48427be | |||
| 38c373a0e4 | |||
| 741a7fe630 | |||
| 7a8bb5baaf | |||
| 02b800a3bb | |||
| a626efbca0 | |||
| 487671c46b | |||
| e87e215bcc | |||
| c0c61268ee | |||
| cf8bee9b46 | |||
| 0d4dbb8d73 | |||
| 194e11c329 | |||
| e2d28f5160 | |||
| b50ef59a19 | |||
| 36836598b1 | |||
| ac20d1ab41 | |||
| 8c4baac3f1 | |||
| 2bac365081 | |||
| a7a1fd4ee5 | |||
| 4cd0ea61f2 | |||
| 05a5ecd4d4 | |||
| 27510f313c | |||
| d278cfe230 | |||
| b6459b3f74 | |||
| 28607f156e | |||
| c26068a57a | |||
| 8845a1a0ae | |||
| 3f0f2383b4 | |||
| 3abfce01ca | |||
| 2558509b70 | |||
| 179026dd44 | |||
| 71a6227240 | |||
| d66b07dabe | |||
| a3c936d283 | |||
| 033a5c2721 | |||
| 5608f87c15 | |||
| 5556567e91 | |||
| 8c50c3d7c8 | |||
| aca8ce1f53 | |||
| 985fc86aa3 | |||
| ff2d8e55c9 | |||
| fbd600592b | |||
| 6e6f903818 | |||
| c7af948dfc | |||
| 17c81295c2 | |||
| 06a57dd659 | |||
| 7fe1cceb76 | |||
| e8efa01006 | |||
| bb8398b22b | |||
| d30e69e871 | |||
| adcd46da55 | |||
| 3b234c167f | |||
| 2cc35ee777 | |||
| f6fb8b220d | |||
| 0d73fe99fd | |||
| b51d06b3ea | |||
| 75ddde438c | |||
| 3a4bb6f980 | |||
| cc2b5fbb80 | |||
| e0c935b52d | |||
| aecef752e8 | |||
| 5fff18932d | |||
| 14a00662e6 | |||
| e422e886de | |||
| 069853fd10 | |||
| c3acb3e4ef | |||
| 84773f9d1d | |||
| 4e2ebf7feb | |||
| 2077df5465 | |||
| e62746ef27 | |||
| a5c93e75a5 | |||
| 3bc815efe8 | |||
| 9cb2a56194 | |||
| 0edc588458 | |||
| f0e48931e4 | |||
| ff7276e494 | |||
| 553714b0bb | |||
| 9408dd6e92 | |||
| 4e632d1b79 | |||
| 2918dae87e | |||
| fe56cf04bc | |||
| 436e02aa6e | |||
| 4ee98d18da | |||
| 9a6dc2ff11 | |||
| c0ce8591e7 | |||
| b628e3b1b6 | |||
| 4a17cb3467 | |||
| c5a3b034ce | |||
| bfa950a7e9 | |||
| 390fc873bc | |||
| 6b8a768f6c | |||
| 146e2f283a | |||
| 1c7d191988 | |||
| 1e573bd557 | |||
| bc4a80d9e8 | |||
| fa7b5ecfa3 | |||
| 6ed8fbbd51 | |||
| 0d1524526a | |||
| ab0c35be93 | |||
| 849e52040a | |||
| edd4b0cf25 | |||
| f0ec2e3279 | |||
| 5ecbb8bd01 | |||
| 30ee2f3d78 | |||
| 0f0a65bb48 | |||
| d8845b6817 | |||
| 87a243203b | |||
| 47b0c77dd9 | |||
| fbc9cf8354 | |||
| c555f7e2ed | |||
| 5d8e3c6cb4 | |||
| eea30c5b76 | |||
| 29073f7d0e | |||
| 38c6c1907b | |||
| 85a14ebcb8 | |||
| 0a02097e20 | |||
| 4e26ca29f7 | |||
| ff795e761a | |||
| d8e8a0d2d2 | |||
| 6ff1557af8 | |||
| b7413226e0 | |||
| a72f3cfb58 | |||
| 58905525bf | |||
| e96878a70e | |||
| 9fcd69921f | |||
| 9915a6725f | |||
| e195d6faee | |||
| 08b1728a96 | |||
| a278df586d | |||
| 4ce68cf5fd | |||
| 9de0262155 | |||
| 26eb17aa50 | |||
| 6e4e244e65 | |||
| ef803be08e | |||
| 29dcdec875 | |||
| 18f8f68e67 | |||
| 7a2d326103 | |||
| faa716e348 | |||
| dced4c1fca | |||
| 41ccf832bf | |||
| 6d5ab3dac1 | |||
| 7b4d0092b0 | |||
| 71ed60ced3 | |||
| 009d8c8ebf | |||
| 7861de03a2 | |||
| fd8130859b | |||
| 67782d71a8 | |||
| 7cdb4675ee | |||
| e538fd5c6d | |||
| 7c3d6dc051 | |||
| ece1aff7e9 | |||
| 3021189cc9 | |||
| 2e0d69b005 | |||
| ab1c3f6498 | |||
| e51720a2de | |||
| dcffeb546f | |||
| 1235e77199 | |||
| c59b3439c6 | |||
| ddd5e61254 | |||
| d66a1ac054 | |||
| 9727fdc473 | |||
| 52cb8cf51b | |||
| d5fe8857cc | |||
| a745a0aed0 | |||
| 19aaf294e5 | |||
| 6b4303c405 | |||
| 53a779067e | |||
| cce9fe4a34 | |||
| 407392f6bf | |||
| cdde878d60 | |||
| b9e33e631f | |||
| 82a5346ab1 | |||
| a76457ef22 | |||
| e6b5112ddc | |||
| 16911adcea | |||
| cf1d421e10 | |||
| 8d79db03d3 | |||
| 5e287033f7 | |||
| e1ab38439b | |||
| 062c1a04fc | |||
| 286a284c5a | |||
| 5dafd03d1f | |||
| 158c7531fe | |||
| f94c5b7637 | |||
| 85e934681d |
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -4,7 +4,7 @@ _Briefly describe the new feature(s), enhancement(s), or bugfix(es) included in
|
||||
|
||||
**Related Issues**
|
||||
|
||||
__If this addresses an open GitHub Issue, mention the issue number here. Use the phrases `fixes #221` or `closes #135`, when you want those issues to be automatically closed when the pull request is merged_
|
||||
_If this addresses an open GitHub issue for this project, please mention the issue number here, and describe the relation. Use the phrases `fixes #221` or `closes #135`, when you want an issue to be automatically closed when the pull request is merged_
|
||||
|
||||
**Author(s)**
|
||||
|
||||
@ -16,7 +16,7 @@ By submitting this pull request, I agree, that my contribution will be included
|
||||
|
||||
**Backward Compatibility**
|
||||
|
||||
_Please state whether any changes in the pull request break backward compatibility for inputs, and - if yes - explain what has been changed and why_
|
||||
_Please state whether any changes in the pull request will break backward compatibility for inputs, and - if yes - explain what has been changed and why_
|
||||
|
||||
**Implementation Notes**
|
||||
|
||||
@ -24,7 +24,7 @@ _Provide any relevant details about how the changes are implemented, how correct
|
||||
|
||||
**Post Submission Checklist**
|
||||
|
||||
_Please check the fields below as they are completed **after** the pull request has been submitted_
|
||||
_Please check the fields below as they are completed **after** the pull request has been submitted. Delete lines that don't apply_
|
||||
|
||||
- [ ] The feature or features in this pull request is complete
|
||||
- [ ] Licensing information is complete
|
||||
|
||||
1180
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()
|
||||
@ -19,7 +19,7 @@
|
||||
#
|
||||
|
||||
#
|
||||
# Copyright (c) 2013--2018, Regents of the University of Minnesota.
|
||||
# Copyright (c) 2013--2019, Regents of the University of Minnesota.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Contributors:
|
||||
@ -28,23 +28,32 @@
|
||||
# Ryan S. Elliott
|
||||
#
|
||||
|
||||
# - Find KIM-API-V2
|
||||
# - Find KIM-API
|
||||
#
|
||||
# sets standard pkg_check_modules variables plus:
|
||||
#
|
||||
# KIM-API-V2-CMAKE_C_COMPILER
|
||||
# KIM-API-V2-CMAKE_CXX_COMPILER
|
||||
# KIM-API-V2-CMAKE_Fortran_COMPILER
|
||||
# KIM-API-CMAKE_C_COMPILER
|
||||
# KIM-API-CMAKE_CXX_COMPILER
|
||||
# KIM-API-CMAKE_Fortran_COMPILER
|
||||
#
|
||||
find_package(PkgConfig REQUIRED)
|
||||
|
||||
if(KIM-API_FIND_QUIETLY)
|
||||
set(REQ_OR_QUI "QUIET")
|
||||
else()
|
||||
set(REQ_OR_QUI "REQUIRED")
|
||||
endif()
|
||||
|
||||
find_package(PkgConfig ${REQ_OR_QUI})
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
pkg_check_modules(KIM-API-V2 REQUIRED libkim-api-v2>=2.0)
|
||||
pkg_check_modules(KIM-API ${REQ_OR_QUI} libkim-api>=2.0)
|
||||
|
||||
pkg_get_variable(KIM-API-V2-CMAKE_C_COMPILER libkim-api-v2 CMAKE_C_COMPILER)
|
||||
pkg_get_variable(KIM-API-V2-CMAKE_CXX_COMPILER libkim-api-v2 CMAKE_CXX_COMPILER)
|
||||
pkg_get_variable(KIM-API-V2_CMAKE_Fortran_COMPILER libkim-api-v2 CMAKE_Fortran_COMPILER)
|
||||
if(KIM-API_FOUND)
|
||||
pkg_get_variable(KIM-API-CMAKE_C_COMPILER libkim-api CMAKE_C_COMPILER)
|
||||
pkg_get_variable(KIM-API-CMAKE_CXX_COMPILER libkim-api CMAKE_CXX_COMPILER)
|
||||
pkg_get_variable(KIM-API_CMAKE_Fortran_COMPILER libkim-api CMAKE_Fortran_COMPILER)
|
||||
endif()
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set KIM-API-V2_FOUND to TRUE
|
||||
# handle the QUIETLY and REQUIRED arguments and set KIM-API_FOUND to TRUE
|
||||
# if all listed variables are TRUE
|
||||
find_package_handle_standard_args(KIM-API-V2 REQUIRED_VARS KIM-API-V2_LIBRARIES)
|
||||
find_package_handle_standard_args(KIM-API REQUIRED_VARS KIM-API_LIBRARIES)
|
||||
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()
|
||||
@ -6,7 +6,7 @@ function(GenerateOpenCLHeader varname outfile files)
|
||||
foreach(IDX RANGE 2 ${ARG_END})
|
||||
list(GET ARGV ${IDX} filename)
|
||||
file(READ ${filename} content)
|
||||
string(REGEX REPLACE "\\s*//[^\n]*\n" "" content "${content}")
|
||||
string(REGEX REPLACE "\\s*//[^\n]*\n" "\n" content "${content}")
|
||||
string(REGEX REPLACE "\\\\" "\\\\\\\\" content "${content}")
|
||||
string(REGEX REPLACE "\"" "\\\\\"" content "${content}")
|
||||
string(REGEX REPLACE "([^\n]+)\n" "\"\\1\\\\n\"\n" content "${content}")
|
||||
|
||||
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()
|
||||
42
cmake/Modules/Packages/KIM.cmake
Normal file
@ -0,0 +1,42 @@
|
||||
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()
|
||||
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")
|
||||
enable_language(C)
|
||||
enable_language(Fortran)
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(kim_build
|
||||
URL https://s3.openkim.org/kim-api/kim-api-2.0.2.txz
|
||||
URL_MD5 537d9c0abd30f85b875ebb584f9143fa
|
||||
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()
|
||||
38
cmake/Modules/Packages/KSPACE.cmake
Normal file
@ -0,0 +1,38 @@
|
||||
if(PKG_KSPACE)
|
||||
option(FFT_SINGLE "Use single precision FFT instead of double" OFF)
|
||||
set(FFTW "FFTW3")
|
||||
if(FFT_SINGLE)
|
||||
set(FFTW "FFTW3F")
|
||||
add_definitions(-DFFT_SINGLE)
|
||||
endif()
|
||||
find_package(${FFTW} QUIET)
|
||||
if(${FFTW}_FOUND)
|
||||
set(FFT "${FFTW}" CACHE STRING "FFT library for KSPACE package")
|
||||
else()
|
||||
set(FFT "KISS" CACHE STRING "FFT library for KSPACE package")
|
||||
endif()
|
||||
set(FFT_VALUES KISS ${FFTW} MKL)
|
||||
set_property(CACHE FFT PROPERTY STRINGS ${FFT_VALUES})
|
||||
validate_option(FFT FFT_VALUES)
|
||||
string(TOUPPER ${FFT} FFT)
|
||||
if(NOT FFT STREQUAL "KISS")
|
||||
find_package(${FFT} REQUIRED)
|
||||
if(NOT FFT STREQUAL "FFTW3F")
|
||||
add_definitions(-DFFT_FFTW)
|
||||
else()
|
||||
add_definitions(-DFFT_${FFT})
|
||||
endif()
|
||||
include_directories(${${FFT}_INCLUDE_DIRS})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${${FFT}_LIBRARIES})
|
||||
else()
|
||||
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()
|
||||
79
cmake/Modules/Packages/USER-PLUMED.cmake
Normal file
@ -0,0 +1,79 @@
|
||||
if(PKG_USER-PLUMED)
|
||||
find_package(GSL REQUIRED)
|
||||
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)
|
||||
|
||||
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.1/plumed-src-2.5.1.tgz
|
||||
URL_MD5 c2a7b519e32197a120cdf47e0f194f81
|
||||
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 ${GSL_LIBRARIES} ${LAPACK_LIBRARIES} ${CMAKE_DL_LIBS})
|
||||
elseif(PLUMED_MODE STREQUAL "SHARED")
|
||||
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumed.so ${PLUMED_INSTALL_DIR}/lib/libplumedKernel.so ${CMAKE_DL_LIBS})
|
||||
elseif(PLUMED_MODE STREQUAL "RUNTIME")
|
||||
add_definitions(-D__PLUMED_HAS_DLOPEN=1 -D__PLUMED_DEFAULT_KERNEL=${PLUMED_INSTALL_DIR}/lib/libplumedKernel.so)
|
||||
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.so)
|
||||
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()
|
||||
41
cmake/Modules/Packages/VORONOI.cmake
Normal file
@ -0,0 +1,41 @@
|
||||
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()
|
||||
string(APPEND VORO_BUILD_CFLAGS ${CMAKE_CXX_FLAGS})
|
||||
set(VORO_BUILD_OPTIONS CXX=${CMAKE_CXX_COMPILER} CFLAGS=${VORO_BUILD_CFLAGS})
|
||||
|
||||
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()
|
||||
@ -91,6 +91,10 @@ function(RegisterFixStyle path)
|
||||
AddStyleHeader(${path} FIX)
|
||||
endfunction(RegisterFixStyle)
|
||||
|
||||
function(RegisterIntegrateStyle path)
|
||||
AddStyleHeader(${path} INTEGRATE)
|
||||
endfunction(RegisterIntegrateStyle)
|
||||
|
||||
function(RegisterStyles search_path)
|
||||
FindStyleHeaders(${search_path} ANGLE_CLASS angle_ ANGLE ) # angle ) # force
|
||||
FindStyleHeaders(${search_path} ATOM_CLASS atom_vec_ ATOM_VEC ) # atom ) # atom atom_vec_hybrid
|
||||
@ -177,3 +181,88 @@ function(DetectBuildSystemConflict lammps_src_dir)
|
||||
endforeach()
|
||||
endif()
|
||||
endfunction(DetectBuildSystemConflict)
|
||||
|
||||
|
||||
function(FindPackagesHeaders path style_class file_pattern headers)
|
||||
file(GLOB files "${path}/${file_pattern}*.h")
|
||||
get_property(plist GLOBAL PROPERTY ${headers})
|
||||
|
||||
foreach(file_name ${files})
|
||||
file(STRINGS ${file_name} is_style LIMIT_COUNT 1 REGEX ${style_class})
|
||||
if(is_style)
|
||||
list(APPEND plist ${file_name})
|
||||
endif()
|
||||
endforeach()
|
||||
set_property(GLOBAL PROPERTY ${headers} "${plist}")
|
||||
endfunction(FindPackagesHeaders)
|
||||
|
||||
function(RegisterPackages search_path)
|
||||
FindPackagesHeaders(${search_path} ANGLE_CLASS angle_ PKGANGLE ) # angle ) # force
|
||||
FindPackagesHeaders(${search_path} ATOM_CLASS atom_vec_ PKGATOM_VEC ) # atom ) # atom atom_vec_hybrid
|
||||
FindPackagesHeaders(${search_path} BODY_CLASS body_ PKGBODY ) # body ) # atom_vec_body
|
||||
FindPackagesHeaders(${search_path} BOND_CLASS bond_ PKGBOND ) # bond ) # force
|
||||
FindPackagesHeaders(${search_path} COMMAND_CLASS "[^.]" PKGCOMMAND ) # command ) # input
|
||||
FindPackagesHeaders(${search_path} COMPUTE_CLASS compute_ PKGCOMPUTE ) # compute ) # modify
|
||||
FindPackagesHeaders(${search_path} DIHEDRAL_CLASS dihedral_ PKGDIHEDRAL ) # dihedral ) # force
|
||||
FindPackagesHeaders(${search_path} DUMP_CLASS dump_ PKGDUMP ) # dump ) # output write_dump
|
||||
FindPackagesHeaders(${search_path} FIX_CLASS fix_ PKGFIX ) # fix ) # modify
|
||||
FindPackagesHeaders(${search_path} IMPROPER_CLASS improper_ PKGIMPROPER ) # improper ) # force
|
||||
FindPackagesHeaders(${search_path} INTEGRATE_CLASS "[^.]" PKGINTEGRATE ) # integrate ) # update
|
||||
FindPackagesHeaders(${search_path} KSPACE_CLASS "[^.]" PKGKSPACE ) # kspace ) # force
|
||||
FindPackagesHeaders(${search_path} MINIMIZE_CLASS min_ PKGMINIMIZE ) # minimize ) # update
|
||||
FindPackagesHeaders(${search_path} NBIN_CLASS nbin_ PKGNBIN ) # nbin ) # neighbor
|
||||
FindPackagesHeaders(${search_path} NPAIR_CLASS npair_ PKGNPAIR ) # npair ) # neighbor
|
||||
FindPackagesHeaders(${search_path} NSTENCIL_CLASS nstencil_ PKGNSTENCIL ) # nstencil ) # neighbor
|
||||
FindPackagesHeaders(${search_path} NTOPO_CLASS ntopo_ PKGNTOPO ) # ntopo ) # neighbor
|
||||
FindPackagesHeaders(${search_path} PAIR_CLASS pair_ PKGPAIR ) # pair ) # force
|
||||
FindPackagesHeaders(${search_path} READER_CLASS reader_ PKGREADER ) # reader ) # read_dump
|
||||
FindPackagesHeaders(${search_path} REGION_CLASS region_ PKGREGION ) # region ) # domain
|
||||
endfunction(RegisterPackages)
|
||||
|
||||
function(CreatePackagesHeader path filename)
|
||||
set(temp "")
|
||||
if(ARGC GREATER 2)
|
||||
list(REMOVE_AT ARGV 0 1)
|
||||
foreach(FNAME ${ARGV})
|
||||
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${FNAME}")
|
||||
get_filename_component(DNAME ${FNAME} DIRECTORY)
|
||||
get_filename_component(DNAME ${DNAME} NAME)
|
||||
get_filename_component(FNAME ${FNAME} NAME)
|
||||
set(temp "${temp}#undef PACKAGE\n#define PACKAGE \"${DNAME}\"\n")
|
||||
set(temp "${temp}#include \"${DNAME}/${FNAME}\"\n")
|
||||
endforeach()
|
||||
endif()
|
||||
message(STATUS "Generating ${filename}...")
|
||||
file(WRITE "${path}/${filename}.tmp" "${temp}" )
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${path}/${filename}.tmp" "${path}/${filename}")
|
||||
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${path}/${filename}")
|
||||
endfunction(CreatePackagesHeader)
|
||||
|
||||
function(GeneratePackagesHeader path property style)
|
||||
get_property(files GLOBAL PROPERTY ${property})
|
||||
CreatePackagesHeader("${path}" "packages_${style}.h" ${files})
|
||||
endfunction(GeneratePackagesHeader)
|
||||
|
||||
function(GeneratePackagesHeaders output_path)
|
||||
GeneratePackagesHeader(${output_path} PKGANGLE angle ) # force
|
||||
GeneratePackagesHeader(${output_path} PKGATOM_VEC atom ) # atom atom_vec_hybrid
|
||||
GeneratePackagesHeader(${output_path} PKGBODY body ) # atom_vec_body
|
||||
GeneratePackagesHeader(${output_path} PKGBOND bond ) # force
|
||||
GeneratePackagesHeader(${output_path} PKGCOMMAND command ) # input
|
||||
GeneratePackagesHeader(${output_path} PKGCOMPUTE compute ) # modify
|
||||
GeneratePackagesHeader(${output_path} PKGDIHEDRAL dihedral ) # force
|
||||
GeneratePackagesHeader(${output_path} PKGDUMP dump ) # output write_dump
|
||||
GeneratePackagesHeader(${output_path} PKGFIX fix ) # modify
|
||||
GeneratePackagesHeader(${output_path} PKGIMPROPER improper ) # force
|
||||
GeneratePackagesHeader(${output_path} PKGINTEGRATE integrate ) # update
|
||||
GeneratePackagesHeader(${output_path} PKGKSPACE kspace ) # force
|
||||
GeneratePackagesHeader(${output_path} PKGMINIMIZE minimize ) # update
|
||||
GeneratePackagesHeader(${output_path} PKGNBIN nbin ) # neighbor
|
||||
GeneratePackagesHeader(${output_path} PKGNPAIR npair ) # neighbor
|
||||
GeneratePackagesHeader(${output_path} PKGNSTENCIL nstencil ) # neighbor
|
||||
GeneratePackagesHeader(${output_path} PKGNTOPO ntopo ) # neighbor
|
||||
GeneratePackagesHeader(${output_path} PKGPAIR pair ) # force
|
||||
GeneratePackagesHeader(${output_path} PKGREADER reader ) # read_dump
|
||||
GeneratePackagesHeader(${output_path} PKGREGION region ) # domain
|
||||
endfunction(GeneratePackagesHeaders)
|
||||
|
||||
|
||||
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()
|
||||
30
cmake/Modules/generate_lmpgitversion.cmake
Normal file
@ -0,0 +1,30 @@
|
||||
set(temp "#ifndef LMP_GIT_VERSION_H\n#define LMP_GIT_VERSION_H\n")
|
||||
set(temp_git_commit "(unknown)")
|
||||
set(temp_git_branch "(unknown)")
|
||||
set(temp_git_describe "(unknown)")
|
||||
set(temp_git_info "false")
|
||||
if(GIT_FOUND AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.git)
|
||||
set(temp_git_info "true")
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} -C ${CMAKE_CURRENT_SOURCE_DIR}/.. rev-parse HEAD
|
||||
OUTPUT_VARIABLE temp_git_commit
|
||||
ERROR_QUIET
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} -C ${CMAKE_CURRENT_SOURCE_DIR}/.. rev-parse --abbrev-ref HEAD
|
||||
OUTPUT_VARIABLE temp_git_branch
|
||||
ERROR_QUIET
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} -C ${CMAKE_CURRENT_SOURCE_DIR}/.. describe --dirty=-modified
|
||||
OUTPUT_VARIABLE temp_git_describe
|
||||
ERROR_QUIET
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
endif()
|
||||
|
||||
set(temp "${temp}const bool LAMMPS_NS::LAMMPS::has_git_info = ${temp_git_info};\n")
|
||||
set(temp "${temp}const char LAMMPS_NS::LAMMPS::git_commit[] = \"${temp_git_commit}\";\n")
|
||||
set(temp "${temp}const char LAMMPS_NS::LAMMPS::git_branch[] = \"${temp_git_branch}\";\n")
|
||||
set(temp "${temp}const char LAMMPS_NS::LAMMPS::git_descriptor[] = \"${temp_git_describe}\";\n")
|
||||
set(temp "${temp}#endif\n\n")
|
||||
|
||||
message(STATUS "Generating lmpgitversion.h...")
|
||||
file(WRITE "${LAMMPS_STYLE_HEADERS_DIR}/lmpgitversion.h.tmp" "${temp}" )
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${LAMMPS_STYLE_HEADERS_DIR}/lmpgitversion.h.tmp" "${LAMMPS_STYLE_HEADERS_DIR}/lmpgitversion.h")
|
||||
@ -155,11 +155,13 @@ make
|
||||
|
||||
The CMake build exposes a lot of different options. In the old build system
|
||||
some of the package selections were possible by using special make target like
|
||||
`make yes-std` or `make no-lib`. Achieving the same result with cmake requires
|
||||
`make yes-std` or `make no-lib`. Achieving a similar result with cmake requires
|
||||
specifying all options manually. This can quickly become a very long command
|
||||
line that is hard to handle. While these could be stored in a simple script
|
||||
file, there is another way of defining "presets" to compile LAMMPS in a certain
|
||||
way.
|
||||
way. Since the cmake build process - contrary to the conventional build system -
|
||||
includes the compilation of the bundled libraries into the standard build process,
|
||||
the grouping of those presets is somewhat different.
|
||||
|
||||
A preset is a regular CMake script file that can use constructs such as
|
||||
variables, lists and for-loops to manipulate configuration options and create
|
||||
@ -171,10 +173,10 @@ Such a file can then be passed to cmake via the `-C` flag. Several examples of
|
||||
presets can be found in the `cmake/presets` folder.
|
||||
|
||||
```bash
|
||||
# build LAMMPS with all "standard" packages which don't use libraries and enable GPU package
|
||||
# build LAMMPS with all packages enabled which don't use external libraries and enable GPU package
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -C ../cmake/presets/std_nolib.cmake -D PKG_GPU=on ../cmake
|
||||
cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GPU=on ../cmake
|
||||
```
|
||||
|
||||
# Reference
|
||||
@ -209,7 +211,7 @@ cmake -C ../cmake/presets/std_nolib.cmake -D PKG_GPU=on ../cmake
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code><CMAKE_VERBOSE_MAKEFILE/code></td>
|
||||
<td><code>CMAKE_VERBOSE_MAKEFILE</code></td>
|
||||
<td>Enable verbose output from Makefile builds (useful for debugging), the same can be achived by adding `VERBOSE=1` to the `make` call.</td>
|
||||
<td>
|
||||
<dl>
|
||||
@ -1429,6 +1431,17 @@ TODO
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>INTEL_LRT_MODE</code></td>
|
||||
<td>How to support Long-range thread mode in Verlet integration</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>threads</code> (default, if pthreads available)</dt>
|
||||
<dt><code>none</code> (default, if pthreads not available)</dt>
|
||||
<dt><code>c++11</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@ -1503,6 +1516,16 @@ target API.
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>CUDA_MPS_SUPPORT</code> (CUDA only)</td>
|
||||
<td>Enable tweaks for running with Nvidia CUDA Multi-process services daemon</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>on</code></dt>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>BIN2C</code> (CUDA only)</td>
|
||||
<td>Path to bin2c executable, will automatically pick up the first one in your $PATH.</td>
|
||||
|
||||
@ -1,2 +1,4 @@
|
||||
# set environment for LAMMPS executables to find potential files
|
||||
# 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@
|
||||
|
||||
@ -1,2 +1,5 @@
|
||||
# set environment for LAMMPS executables to find potential files
|
||||
export LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS-@LAMMPS_POTENTIALS_DIR@}
|
||||
# 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@}
|
||||
export LAMMPS_POTENTIALS MSI2LMP_LIBRARY
|
||||
|
||||
@ -1,21 +1,17 @@
|
||||
set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
|
||||
GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MEAM MISC
|
||||
MOLECULE MPIIO MSCG OPT PERI POEMS
|
||||
PYTHON QEQ REAX REPLICA RIGID SHOCK SNAP SRD VORONOI)
|
||||
# preset that turns on all existing packages off. can be used to reset
|
||||
# an existing package selection without losing any other settings
|
||||
|
||||
set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS
|
||||
USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
|
||||
USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
|
||||
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
|
||||
USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB
|
||||
USER-QUIP USER-REAXC USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY
|
||||
USER-UEF USER-VTK)
|
||||
|
||||
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI
|
||||
USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE
|
||||
USER-NETCDF USER-PLUMED USER-QMMM USER-QUIP USER-SMD USER-VTK)
|
||||
|
||||
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})
|
||||
set(ALL_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
|
||||
GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MISC MESSAGE MOLECULE
|
||||
MPIIO MSCG OPT PERI POEMS PYTHON QEQ REPLICA RIGID SHOCK SNAP SPIN
|
||||
SRD VORONOI
|
||||
USER-ADIOS USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK
|
||||
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP
|
||||
USER-H5MD USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
|
||||
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-OMP
|
||||
USER-PHONON USER-PLUMED USER-PTM USER-QMMM USER-QTB USER-QUIP
|
||||
USER-REAXC USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH
|
||||
USER-TALLY USER-UEF USER-VTK USER-YAFF)
|
||||
|
||||
foreach(PKG ${ALL_PACKAGES})
|
||||
set(PKG_${PKG} OFF CACHE BOOL "" FORCE)
|
||||
|
||||
@ -1,21 +1,19 @@
|
||||
set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
|
||||
GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MEAM MISC
|
||||
MOLECULE MPIIO MSCG OPT PERI POEMS
|
||||
PYTHON QEQ REAX REPLICA RIGID SHOCK SNAP SRD VORONOI)
|
||||
# preset that turns on all existing packages. using the combination
|
||||
# this preset followed by the nolib.cmake preset should configure a
|
||||
# LAMMPS binary, with as many packages included, that can be compiled
|
||||
# with just a working C++ compiler and an MPI library.
|
||||
|
||||
set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS
|
||||
USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
|
||||
USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
|
||||
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
|
||||
USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB
|
||||
USER-QUIP USER-REAXC USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY
|
||||
USER-UEF USER-VTK)
|
||||
|
||||
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI
|
||||
USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE
|
||||
USER-NETCDF USER-PLUMED USER-QMMM USER-QUIP USER-SMD USER-VTK)
|
||||
|
||||
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})
|
||||
set(ALL_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
|
||||
GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MISC MESSAGE MOLECULE
|
||||
MPIIO MSCG OPT PERI POEMS PYTHON QEQ REPLICA RIGID SHOCK SNAP SPIN
|
||||
SRD VORONOI
|
||||
USER-ADIOS USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK
|
||||
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP
|
||||
USER-H5MD USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
|
||||
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-OMP
|
||||
USER-PHONON USER-PLUMED USER-PTM USER-QMMM USER-QTB USER-QUIP
|
||||
USER-REAXC USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH
|
||||
USER-TALLY USER-UEF USER-VTK USER-YAFF)
|
||||
|
||||
foreach(PKG ${ALL_PACKAGES})
|
||||
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
|
||||
|
||||
17
cmake/presets/clang.cmake
Normal file
@ -0,0 +1,17 @@
|
||||
# preset that will enable clang/clang++ with support for MPI and OpenMP (on Linux boxes)
|
||||
|
||||
set(CMAKE_CXX_COMPILER "clang++" CACHE STRING "" FORCE)
|
||||
set(CMAKE_C_COMPILER "clang" CACHE STRING "" FORCE)
|
||||
set(CMAKE_CXX_FLAGS "-Wall -Wextra -g -O2 -DNDEBG" CACHE STRING "" FORCE)
|
||||
set(MPI_CXX "clang++" CACHE STRING "" FORCE)
|
||||
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
|
||||
unset(HAVE_OMP_H_INCLUDE CACHE)
|
||||
|
||||
set(OpenMP_C "clang" CACHE STRING "" FORCE)
|
||||
set(OpenMP_C_FLAGS "-fopenmp" CACHE STRING "" FORCE)
|
||||
set(OpenMP_C_LIB_NAMES "omp" CACHE STRING "" FORCE)
|
||||
set(OpenMP_CXX "clang++" CACHE STRING "" FORCE)
|
||||
set(OpenMP_CXX_FLAGS "-fopenmp" CACHE STRING "" FORCE)
|
||||
set(OpenMP_CXX_LIB_NAMES "omp" CACHE STRING "" FORCE)
|
||||
set(OpenMP_omp_LIBRARY "/usr/lib64/libomp.so" CACHE PATH "" FORCE)
|
||||
|
||||
@ -1,71 +0,0 @@
|
||||
set(PKG_ASPHERE OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_BODY OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_CLASS2 OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_COLLOID OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_COMPRESS OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_CORESHELL OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_DIPOLE OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_GPU OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_GRANULAR OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_KIM OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_KOKKOS OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_KSPACE OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_LATTE OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_LIB OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_MANYBODY OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_MC OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_MEAM OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_MISC OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_MOLECULE OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_MPIIO OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_MSCG OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_OPT OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_PERI OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_POEMS OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_PYTHOFF OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_QEQ OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_REAX OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_REPLICA OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_RIGID OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_SHOCK OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_SNAP OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_SRD OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_VOROFFOI OFF CACHE BOOL "" FORCE)
|
||||
|
||||
set(PKG_USER OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-ATC OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-AWPMD OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-BOCS OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-CGDNA OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-CGSDK OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-COLVARS OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-DIFFRACTIOFF OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-DPD OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-DRUDE OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-EFF OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-FEP OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-H5MD OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-INTEL OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-LB OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-MANIFOLD OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-MEAMC OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-MESO OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-MGPT OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-MISC OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-MOFFF OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-MOLFILE OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-NETCDF OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-OMP OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-PHONON OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-PLUMED OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-QMMM OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-QTB OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-QUIP OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-REAXC OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-SDPD OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-SMD OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-SMTBQ OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-SPH OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-TALLY OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-UEF OFF CACHE BOOL "" FORCE)
|
||||
set(PKG_USER-VTK OFF CACHE BOOL "" FORCE)
|
||||
17
cmake/presets/mingw-cross.cmake
Normal file
@ -0,0 +1,17 @@
|
||||
set(WIN_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
|
||||
GRANULAR KSPACE MANYBODY MC MISC MOLECULE OPT PERI POEMS QEQ
|
||||
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)
|
||||
|
||||
foreach(PKG ${WIN_PACKAGES})
|
||||
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
|
||||
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)
|
||||
8
cmake/presets/minimal.cmake
Normal file
@ -0,0 +1,8 @@
|
||||
# preset that turns on just a few, frequently used packages
|
||||
# this will be compiled quickly and handle a lot of common inputs.
|
||||
|
||||
set(ALL_PACKAGES KSPACE MANYBODY MOLECULE RIGID)
|
||||
|
||||
foreach(PKG ${ALL_PACKAGES})
|
||||
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
|
||||
endforeach()
|
||||
15
cmake/presets/most.cmake
Normal file
@ -0,0 +1,15 @@
|
||||
# preset that turns on a wide range of packages, some of which require
|
||||
# external libraries. Compared to all_on.cmake some more unusual packages
|
||||
# are removed. The resulting binary should be able to run most inputs.
|
||||
|
||||
set(ALL_PACKAGES ASPHERE CLASS2 COLLOID CORESHELL DIPOLE
|
||||
GRANULAR KSPACE MANYBODY MC MISC MOLECULE OPT PERI
|
||||
PYTHON QEQ REPLICA RIGID SHOCK SRD VORONOI
|
||||
USER-CGDNA USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD
|
||||
USER-DRUDE USER-FEP USER-MEAMC USER-MESO
|
||||
USER-MISC USER-MOFFF USER-OMP USER-PLUMED USER-PHONON USER-REAXC
|
||||
USER-SPH USER-SMD USER-UEF USER-YAFF)
|
||||
|
||||
foreach(PKG ${ALL_PACKAGES})
|
||||
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
|
||||
endforeach()
|
||||
@ -1,21 +1,10 @@
|
||||
set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
|
||||
GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MEAM MISC
|
||||
MOLECULE MPIIO MSCG OPT PERI POEMS
|
||||
PYTHON QEQ REAX REPLICA RIGID SHOCK SNAP SRD VORONOI)
|
||||
# preset that turns off all packages that require some form of external
|
||||
# library or special compiler (fortran or cuda) or equivalent.
|
||||
|
||||
set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS
|
||||
USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
|
||||
USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
|
||||
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
|
||||
USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB
|
||||
USER-QUIP USER-REAXC USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY
|
||||
USER-UEF USER-VTK)
|
||||
|
||||
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI
|
||||
USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE
|
||||
USER-NETCDF USER-PLUMED USER-QMMM USER-QUIP USER-SMD USER-VTK)
|
||||
|
||||
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})
|
||||
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MPIIO MSCG PYTHON
|
||||
VORONOI USER-ADIOS USER-ATC USER-AWPMD USER-H5MD USER-LB
|
||||
USER-MOLFILE USER-NETCDF USER-PLUMED USER-QMMM USER-QUIP
|
||||
USER-SCAFACOS USER-SMD USER-VTK)
|
||||
|
||||
foreach(PKG ${PACKAGES_WITH_LIB})
|
||||
set(PKG_${PKG} OFF CACHE BOOL "" FORCE)
|
||||
|
||||
@ -1,22 +0,0 @@
|
||||
set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
|
||||
GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MEAM MISC
|
||||
MOLECULE MPIIO MSCG OPT PERI POEMS
|
||||
PYTHON QEQ REAX REPLICA RIGID SHOCK SNAP SRD VORONOI)
|
||||
|
||||
set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS
|
||||
USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
|
||||
USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
|
||||
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
|
||||
USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB
|
||||
USER-QUIP USER-REAXC USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY
|
||||
USER-UEF USER-VTK)
|
||||
|
||||
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI
|
||||
USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE
|
||||
USER-NETCDF USER-QMMM USER-QUIP USER-SMD USER-VTK)
|
||||
|
||||
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})
|
||||
|
||||
foreach(PKG ${STANDARD_PACKAGES})
|
||||
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
|
||||
endforeach()
|
||||
@ -1,26 +0,0 @@
|
||||
set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
|
||||
GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MEAM MISC
|
||||
MOLECULE MPIIO MSCG OPT PERI POEMS
|
||||
PYTHON QEQ REAX REPLICA RIGID SHOCK SNAP SRD VORONOI)
|
||||
|
||||
set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS
|
||||
USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
|
||||
USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
|
||||
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
|
||||
USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB
|
||||
USER-QUIP USER-REAXC USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY
|
||||
USER-UEF USER-VTK)
|
||||
|
||||
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI
|
||||
USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE
|
||||
USER-NETCDF USER-QMMM USER-QUIP USER-SMD USER-VTK)
|
||||
|
||||
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})
|
||||
|
||||
foreach(PKG ${STANDARD_PACKAGES})
|
||||
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
|
||||
endforeach()
|
||||
|
||||
foreach(PKG ${PACKAGES_WITH_LIB})
|
||||
set(PKG_${PKG} OFF CACHE BOOL "" FORCE)
|
||||
endforeach()
|
||||
@ -1,22 +0,0 @@
|
||||
set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
|
||||
GRANULAR KIM KOKKOS KSPACE LATTE MANYBODY MC MEAM MISC
|
||||
MOLECULE MPIIO MSCG OPT PERI POEMS
|
||||
PYTHON QEQ REAX REPLICA RIGID SHOCK SNAP SRD VORONOI)
|
||||
|
||||
set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVARS
|
||||
USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
|
||||
USER-INTEL USER-LB USER-MANIFOLD USER-MEAMC USER-MESO
|
||||
USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
|
||||
USER-NETCDF USER-OMP USER-PHONON USER-QMMM USER-QTB
|
||||
USER-QUIP USER-REAXC USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY
|
||||
USER-UEF USER-VTK)
|
||||
|
||||
set(PACKAGES_WITH_LIB COMPRESS GPU KIM KOKKOS LATTE MEAM MPIIO MSCG POEMS PYTHON REAX VORONOI
|
||||
USER-ATC USER-AWPMD USER-COLVARS USER-H5MD USER-LB USER-MOLFILE
|
||||
USER-NETCDF USER-PLUMED USER-QMMM USER-QUIP USER-SMD USER-VTK)
|
||||
|
||||
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})
|
||||
|
||||
foreach(PKG ${USER_PACKAGES})
|
||||
set(PKG_${PKG} ON CACHE BOOL "" FORCE)
|
||||
endforeach()
|
||||
16
doc/Makefile
@ -116,6 +116,13 @@ mobi: epub
|
||||
@echo "Conversion finished. The MOBI manual file is created."
|
||||
|
||||
pdf: $(OBJECTS) $(ANCHORCHECK)
|
||||
@(\
|
||||
cd src/Developer; \
|
||||
pdflatex developer; \
|
||||
pdflatex developer; \
|
||||
mv developer.pdf ../../Developer.pdf; \
|
||||
cd ../../; \
|
||||
)
|
||||
@(\
|
||||
. $(VENV)/bin/activate ;\
|
||||
cp -r src/* $(RSTDIR)/ ;\
|
||||
@ -135,14 +142,7 @@ pdf: $(OBJECTS) $(ANCHORCHECK)
|
||||
make && \
|
||||
make && \
|
||||
mv LAMMPS.pdf ../Manual.pdf && \
|
||||
cd ../;
|
||||
@(\
|
||||
cd src/Developer; \
|
||||
pdflatex developer; \
|
||||
pdflatex developer; \
|
||||
mv developer.pdf ../../Developer.pdf; \
|
||||
cd ../../; \
|
||||
)
|
||||
cd ../;
|
||||
@rm -rf latex/_sources
|
||||
@rm -rf latex/PDF
|
||||
@rm -rf latex/USER
|
||||
|
||||
259
doc/lammps.1
@ -1,40 +1,259 @@
|
||||
.TH LAMMPS "2018-08-22"
|
||||
.TH LAMMPS "18 June 2019" "2019-06-18"
|
||||
.SH NAME
|
||||
.B LAMMPS
|
||||
\- Molecular Dynamics Simulator.
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B lmp
|
||||
-in in.file
|
||||
.B lmp
|
||||
\-in <input file> [OPTIONS] ...
|
||||
|
||||
or
|
||||
|
||||
mpirun \-np 2
|
||||
.B lmp
|
||||
-in in.file
|
||||
mpirun \-np 2
|
||||
.B lmp
|
||||
<input file> [OPTIONS] ...
|
||||
|
||||
or
|
||||
|
||||
.B lmp
|
||||
\-r2data file.restart file.data
|
||||
|
||||
.SH DESCRIPTION
|
||||
.B LAMMPS
|
||||
LAMMPS is a classical molecular dynamics code, and an acronym for Large-scale
|
||||
Atomic/Molecular Massively Parallel Simulator. LAMMPS has potentials for soft
|
||||
materials (biomolecules, polymers) and solid-state materials (metals,
|
||||
semiconductors) and coarse-grained or mesoscopic systems. It can be used to
|
||||
model atoms or, more generically, as a parallel particle simulator at the
|
||||
.B LAMMPS
|
||||
is a classical molecular dynamics code, and an acronym for \fBL\fRarge-scale
|
||||
\fBA\fRtomic/\fBM\fRolecular \fBM\fRassively \fBP\fRarallel \fBS\fRimulator.
|
||||
.B LAMMPS
|
||||
has potentials for soft
|
||||
materials (bio-molecules, polymers) and solid-state materials (metals,
|
||||
semiconductors) and coarse-grained or mesoscopic systems. It can be used to
|
||||
model atoms or, more generically, as a parallel particle simulator at the
|
||||
atomic, meso, or continuum scale.
|
||||
|
||||
See http://lammps.sandia.gov/ for documentation.
|
||||
See https://lammps.sandia.gov/ for more information and documentation.
|
||||
|
||||
.SH EXECUTABLE NAME
|
||||
The
|
||||
.B LAMMPS
|
||||
executable can have different names depending on how it was configured,
|
||||
compiled and installed. It will be either
|
||||
.B lmp
|
||||
or
|
||||
.B lmp_<machine name>.
|
||||
The <machine name> suffix corresponds to the (machine specific) makefile
|
||||
used to compile
|
||||
.B LAMMPS
|
||||
when using the conventional build process. When building
|
||||
.B LAMMPS
|
||||
using
|
||||
.B CMake
|
||||
this <machine name> parameter can be chosen arbitrarily at configuration
|
||||
time, but more common is to just use
|
||||
.B lmp
|
||||
without a suffix. In this manpage we will use
|
||||
.B lmp
|
||||
to represent any of those names.
|
||||
|
||||
.SH OPTIONS
|
||||
See https://lammps.sandia.gov/doc/Run_options.html for details on
|
||||
command-line options.
|
||||
|
||||
.SH COPYRIGHT
|
||||
© 2003--2018 Sandia Corporation
|
||||
.TP
|
||||
\fB\-h\fR or \fB\-help\fR
|
||||
Print a brief help summary and a list of settings and options compiled
|
||||
into this executable. It also explicitly lists all LAMMPS styles
|
||||
(atom_style, fix, compute, pair_style, bond_style, etc) available in
|
||||
the specific executable. This can tell you if the command you want to
|
||||
use was included via the appropriate package at compile time.
|
||||
LAMMPS will print the info and immediately exit if this switch is used.
|
||||
.TP
|
||||
\fB\-e\fR or \fB\-echo\fR
|
||||
Set the style of command echoing. The style can be
|
||||
.B none
|
||||
or
|
||||
.B screen
|
||||
or
|
||||
.B log
|
||||
or
|
||||
.B both.
|
||||
Depending on the style, each command read from the input script will
|
||||
be echoed to the screen and/or logfile. This can be useful to figure
|
||||
out which line of your script is causing an input error.
|
||||
The default value is
|
||||
.B log.
|
||||
.TP
|
||||
\fB\-i <input file>\fR or \fB\-in <input file>\fR
|
||||
Specify a file to use as an input script. If it is not specified,
|
||||
LAMMPS reads its script from standard input. This is a required
|
||||
switch when running LAMMPS in multi-partition mode.
|
||||
.TP
|
||||
\fB\-k on/off [keyword value]\fR or \fB\-kokkos on/off [keyword value]\fR
|
||||
Enable or disable general KOKKOS support, as provided by the KOKKOS
|
||||
package. Even if LAMMPS is built with this package, this switch must
|
||||
be set to \fBon\fR to enable running with KOKKOS-enabled styles. More
|
||||
details on this switch and its optional keyword value pairs are discussed
|
||||
at: https://lammps.sandia.gov/doc/Run_options.html
|
||||
.TP
|
||||
\fB\-l <log file>\fR or \fB\-log <log file>\fR
|
||||
Specify a log file for LAMMPS to write status information to.
|
||||
The default value is "log.lammps". If the file name "none" is used,
|
||||
\fBLAMMPS\fR will not write a log file. In multi-partition mode only
|
||||
some high-level all-partition information is written to the "<log file>"
|
||||
file, the remainder is written in a per-partition file "<log file>.N"
|
||||
with "N" being the respective partition number, unless overridden
|
||||
by the \-plog flag (see below).
|
||||
.TP
|
||||
\fB\-m <number>\fR or \fB\-mpicolor <number>\fR
|
||||
If used, this must be the first command-line argument after the
|
||||
.B LAMMPS
|
||||
executable name. It is only used when
|
||||
.B LAMMPS
|
||||
is launched by an mpirun command which also launches one or more
|
||||
other executable(s) at the same time.
|
||||
.B LAMMPS
|
||||
and the other executable(s) perform an MPI_Comm_split(), each with
|
||||
their own different colors, to split the MPI_COMM_WORLD communicator
|
||||
for each executable to the subset of processors they are supposed to
|
||||
be actually running on. Currently, this is only used in
|
||||
.B LAMMPS
|
||||
to perform client/server messaging with another application.
|
||||
.B LAMMPS
|
||||
can act as either a client or server (or both).
|
||||
.TP
|
||||
\fB\-nc\fR or \fB\-nocite\fR
|
||||
Disable writing the "log.cite" file which is normally written to
|
||||
list references for specific cite-able features used during a
|
||||
.B LAMMPS
|
||||
run.
|
||||
.TP
|
||||
\fB\-pk <style> [options]\fR or \fB\-package <style> [options]\fR
|
||||
Invoke the \fBpackage\R command with <style> and optional arguments.
|
||||
The syntax is the same as if the command appeared in an input script.
|
||||
For example "-pk gpu 2" is the same as "package gpu 2" in the input
|
||||
script. The possible styles and options are discussed in the
|
||||
.B LAMMPS
|
||||
manual for the "package" command. This switch can be used multiple
|
||||
times, e.g. to set options for the USER-INTEL and USER-OMP packages
|
||||
when used together. Along with the "-sf" or "-suffix" switch, this
|
||||
is a convenient mechanism for invoking accelerator packages and their
|
||||
options without having to edit an input script.
|
||||
.TP
|
||||
\fB\-p\fR or \fB\-partition\fR
|
||||
Invoke
|
||||
.B LAMMPS
|
||||
in multi-partition mode. Without this,
|
||||
.B LAMMPS
|
||||
uses all P processors allocated via MPI to run a single simulation.
|
||||
If this switch is used, the P processors are split into separate
|
||||
partitions and each partition runs its own simulation. The arguments
|
||||
to the switch specify the number of processors in each partition.
|
||||
Arguments of the form "MxN" mean M partitions, each with N processors.
|
||||
Arguments of the form "N" mean a single partition with N processors.
|
||||
The sum of processors in all partitions must be equal P. Thus the
|
||||
command “-partition 8x2 4 5” has 10 partitions and runs on a total
|
||||
of 25 processors. Running with multiple partitions is required for
|
||||
multi-replica simulations, where each replica runs on on one or more
|
||||
few processors.
|
||||
.TP
|
||||
\fB\-pl <basename>\fR or \fB\-plog <basename>\fR
|
||||
Specify the base name for the per-partition log files in multi-partition
|
||||
runs, where partition N writes log information to <basename>.N.
|
||||
If basename is set to "none", then no per-partition log files are created.
|
||||
This overrides the name specified in the \-log command-line option.
|
||||
.TP
|
||||
\fB\-ps <basename>\fR or \fB\-pscreen <basename>\fR
|
||||
Specify the base name for the per-partition screen files in multi-partition
|
||||
runs, where partition N writes screen output to <basename>.N.
|
||||
If basename is set to "none", then no per-partition screen files are created.
|
||||
The default value is "screen" or whatever is set by the \-screen flag.
|
||||
.TP
|
||||
\fB\-r2data <restart file> [remap] <data file>\fR or
|
||||
\fB\-restart2data <restart file> [remap] <data file>\fR
|
||||
Convert <restart file> previously written by
|
||||
.B LAMMPS
|
||||
into a data file and immediately exit. This option has replaced the
|
||||
external restart2data executable. Following <restart file>
|
||||
argument, the optional word "remap" may be used. This has the
|
||||
same effect like adding it to a "read_restart" command.
|
||||
The syntax following the <data file> name is identical to the
|
||||
arguments of the "write_data" command. See the
|
||||
.B LAMMPS
|
||||
manual for details on either of the two commands.
|
||||
.TP
|
||||
\fB\-r2dump <restart file> [remap] <dump file>\fR or
|
||||
\fB\-restart2dump <restart file> [remap] <dump file>\fR
|
||||
Convert <restart file> previously written by
|
||||
.B LAMMPS
|
||||
into a dump file and immediately exit. Following <restart file>
|
||||
argument, the optional word "remap" may be used. This has the
|
||||
same effect like adding it to a "read_restart" command.
|
||||
The syntax following the <dump file> name is identical to the
|
||||
arguments of the "dump" command. See the
|
||||
.B LAMMPS
|
||||
manual for details on either of the two commands.
|
||||
.TP
|
||||
\fB\-sc <file name>\fR or \fB\-screen <file name>\fR
|
||||
Specify a file for
|
||||
.B LAMMPS
|
||||
to write its screen information to. By default, this will be
|
||||
the standard output. If <file name> is "none", (most) screen
|
||||
output will be suppressed. In multi-partition mode only
|
||||
some high-level all-partition information is written to the
|
||||
screen or "<file name>" file, the remainder is written in a
|
||||
per-partition file "screen.N" or "<file name>.N"
|
||||
with "N" being the respective partition number, and unless
|
||||
overridden by the \-pscreen flag (see above).
|
||||
.TP
|
||||
\fB\-sf <suffix>\fR or \fB\-suffix <suffix>\fR
|
||||
Use variants of various styles in the input, if they exist. This is
|
||||
achieved by transparently trying to convert a style named <my/style>
|
||||
into <my/style/suffix> if that latter style exists, but otherwise
|
||||
fall back to the former. The most useful suffixes are "gpu",
|
||||
"intel", "kk", "omp", "opt", or "hybrid". These refer to styles from
|
||||
optional packages that LAMMPS can be built with. The hybrid suffix is
|
||||
special, as it enables, having two suffixes tried (e.g. first "intel"
|
||||
and then "omp") and thus requires two arguments. Along with the
|
||||
"-package" command-line switch, this is a convenient mechanism for
|
||||
invoking styles from accelerator packages and setting their options
|
||||
without having to edit an input script.
|
||||
|
||||
See https://lammps.sandia.gov/doc/Run_options.html for additional
|
||||
details and discussions on command-line options.
|
||||
|
||||
.SH LAMMPS BASICS
|
||||
LAMMPS executes by reading commands from a input script (text file),
|
||||
one line at a time. When the input script ends, LAMMPS exits. Each
|
||||
command causes LAMMPS to take some action. It may set or change an
|
||||
internal, read and parse a file, or run a simulation. Most commands
|
||||
have default settings, which means you only need to use the command
|
||||
if you wish to change the default.
|
||||
|
||||
The ordering of commands in an input script is usually not very important
|
||||
unless a command like "run" is encountered, which starts some calculation
|
||||
using the current internal state. Also, if a "pair_style" or "bond_style"
|
||||
other similar style command is issued that has a different name from what
|
||||
was previously active, it will replace the previous style and wipe out
|
||||
all corresponding "pair_coeff" or "bond_coeff" or equivalent settings.
|
||||
Some commands are only valid when they follow other commands. For
|
||||
example you cannot set the temperature of a group of atoms until atoms
|
||||
have been defined and a group command is used to define which atoms
|
||||
belong to the group of a given name. Sometimes command B will use values
|
||||
that can be set by command A. This means command A must precede command
|
||||
B in the input to have the desired effect. Some commands must be issued
|
||||
.B before
|
||||
the simulation box is defined and others can only be issued
|
||||
.B after.
|
||||
Many input script errors are detected by
|
||||
.B LAMMPS
|
||||
and an ERROR or WARNING message is printed. The documentation for
|
||||
each command lists restrictions on how the command can be used, and
|
||||
the chapter on errors in the
|
||||
.B LAMMPS
|
||||
manual gives some additional information about error messages, if possible.
|
||||
|
||||
.SH COPYRIGHT
|
||||
© 2003--2019 Sandia Corporation
|
||||
|
||||
This package is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
it under the terms of the GNU General Public License version 2 as
|
||||
published by the Free Software Foundation.
|
||||
|
||||
This package is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
|
||||
111
doc/msi2lmp.1
Normal file
@ -0,0 +1,111 @@
|
||||
.TH MSI2LMP "v3.9.9" "2018-11-05"
|
||||
.SH NAME
|
||||
.B MSI2LMP
|
||||
\- Converter for Materials Studio files to LAMMPS
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B msi2lmp
|
||||
<ROOTNAME> [-class <I|1|II|2|O|0>] [-frc <path to frc file>] [-print #] [-ignore] [-nocenter] [-oldstyle] [-shift <x> <y> <z>]
|
||||
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
.B MSI2LMP
|
||||
is a tool bundled with LAMMPS to aide in the conversion of simulation
|
||||
inputs from Biovia's Materials Studio software for use with LAMMPS.
|
||||
It is a standalone program that generates a LAMMPS data file based on
|
||||
the information in an MS .car file (atom coordinates), an .mdf file
|
||||
(molecular topology and atom types) and an .frc (forcefield parameters)
|
||||
file. The .car and .mdf files are specific to a molecular system while
|
||||
the .frc file is specific to a forcefield (variant). The only coherency
|
||||
needed between .frc and .car/.mdf files are the atom types.
|
||||
.PP
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\<ROOTNAME>\fR
|
||||
This has to be the first argument and is a
|
||||
.B mandatory
|
||||
argument. It defines the root of the file names; i.e. for a
|
||||
.B <ROOTNAME>
|
||||
of benzene, you have to provide the files 'benzene.car' and 'benzene.mdf'
|
||||
in the current working directory.
|
||||
.B msi2lmp
|
||||
will then read and process those files according to its remaining settings.
|
||||
All other settins are optional and have defaults as listed.
|
||||
.TP
|
||||
\fB\-c <I,1,II,2,O,0>\fR, \fB\-class <I,1,II,2,O,0>\fR
|
||||
The \-c or \-class option selects the force field class, i.e which pair
|
||||
styles and bond styles and so on are required in the LAMMPS input file.
|
||||
Class I or class 1 uses similar combination of functional forms as Amber
|
||||
and Charmm force field and support the force fields
|
||||
.B cvff
|
||||
and
|
||||
.B clayff.
|
||||
Class II or class 2 corresponds to the more complex force fields
|
||||
.B COMPASS
|
||||
and
|
||||
.B pcff.
|
||||
Class O or class 0 finally is an experimental and incomplete extension
|
||||
and supports generating output for
|
||||
.B OPLS-AA
|
||||
.TP
|
||||
\fB\-f <ffname>\fR, \fB\-frc <ffname>\fR
|
||||
The \-c or \-frc option allows the selection of the force field parameter
|
||||
file
|
||||
.B<ffname>.frc.
|
||||
Valid names for <ffname> with this distribution are: cvff, clayff, cvff_aug,
|
||||
pcff, compass_published, cff91, and oplsaa. If the argument is a pathname,
|
||||
i.e. it starts with a '.' or a '/', then this absolute path is used to read
|
||||
the force field, otherwise
|
||||
.B msi2lmp
|
||||
will look in the folder pointed to by the environment variable
|
||||
$MSI2LMP_LIBRARY. If the variable is not set, then it will look in the current
|
||||
directory. The extension '.frc' is appended, if missing.
|
||||
Default is to look for the cvff.frc force field file.
|
||||
.TP
|
||||
\fB\-p <loglevel>\fR, \fB\-print <loglevel>\fR,
|
||||
Selects the amount of information messages about the progress of the
|
||||
conversion printed to the screen.
|
||||
.B <loglevel>
|
||||
can be a number from 0 (silent except for errors) to 3 (very detailed).
|
||||
.TP
|
||||
\fB\-i\fR, \fB\-ignore\fR,
|
||||
Ignore errors about missing parameters and use 0.0 for the respective
|
||||
force constants making these no-ops. Is correct to be used for a few
|
||||
molecules and settings, but often an indication, that either the atom
|
||||
type assignment have errors, or the force field file is missing entries.
|
||||
.TP
|
||||
\fB\-n\fR, \fB\-nocenter\fR,
|
||||
Do not center the box around the (geometrical) center of the atoms,
|
||||
but around the origin. Default is to recenter.
|
||||
.TP
|
||||
\fB\-o\fR, \fB\-oldstyle\fR,
|
||||
Write out a data file without style hint comments to be compatible
|
||||
with old LAMMPS versions. Default is to write out those comments.
|
||||
.TP
|
||||
\fB-s <x> <y> <z>\fR, \fB-shift <x> <y> <z>\fR,
|
||||
Shift the entire system (box and coordinates) by a vector
|
||||
(default: 0.0 0.0 0.0).
|
||||
.TP
|
||||
|
||||
.SH EXAMPLES
|
||||
|
||||
msi2lmp benzene -c 2 -p 1 -f ../frc_files/pcff.frc
|
||||
|
||||
msi2lmp benzene-class1 -c I
|
||||
|
||||
msi2lmp decane -c 0 -f oplsaa
|
||||
|
||||
|
||||
.SH COPYRIGHT
|
||||
© 2003--2019 Sandia Corporation
|
||||
|
||||
This package is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License version 2 as
|
||||
published by the Free Software Foundation.
|
||||
|
||||
This package is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
@ -28,20 +28,29 @@ Makefile(s). Example:
|
||||
|
||||
cd lammps # change to the LAMMPS distribution directory
|
||||
mkdir build; cd build # create a new directory (folder) for build
|
||||
cmake ../cmake \[options ...\] # configuration with (command-line) cmake
|
||||
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
|
||||
CPU cores) can be much faster. If you plan to do development on
|
||||
LAMMPS or need to re-compile LAMMPS repeatedly, installation of the
|
||||
ccache (= Compiler Cache) software may speed up compilation even more.
|
||||
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:
|
||||
@ -108,7 +117,8 @@ command-line options. Several useful ones are:
|
||||
-D CMAKE_BUILD_TYPE=type # type = Release 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 :pre
|
||||
-D VARIABLE=value # ditto, but cannot come after CMakeLists.txt dir
|
||||
-C path/to/preset/file # load some CMake settings before configuring :pre
|
||||
|
||||
All the LAMMPS-specific -D variables that a LAMMPS build supports are
|
||||
described on the pages linked to from the "Build"_Build.html doc page.
|
||||
|
||||
@ -30,7 +30,6 @@ This is the list of packages that may require additional steps.
|
||||
"KIM"_#kim,
|
||||
"KOKKOS"_#kokkos,
|
||||
"LATTE"_#latte,
|
||||
"MEAM"_#meam,
|
||||
"MESSAGE"_#message,
|
||||
"MSCG"_#mscg,
|
||||
"OPT"_#opt,
|
||||
@ -82,17 +81,19 @@ which GPU hardware to build for.
|
||||
|
||||
[CMake build]:
|
||||
|
||||
-D GPU_API=value # value = opencl (default) or cuda
|
||||
-D GPU_PREC=value # precision setting
|
||||
# value = double or mixed (default) or single
|
||||
-D OCL_TUNE=value # hardware choice for GPU_API=opencl
|
||||
# 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
|
||||
-D CUDPP_OPT=value # optimization setting for GPU_API=cuda
|
||||
# enables CUDA Performance Primitives Optimizations
|
||||
# yes (default) or no :pre
|
||||
-D GPU_API=value # value = opencl (default) or cuda
|
||||
-D GPU_PREC=value # precision setting
|
||||
# value = double or mixed (default) or single
|
||||
-D OCL_TUNE=value # hardware choice for GPU_API=opencl
|
||||
# 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
|
||||
-D CUDPP_OPT=value # optimization setting for GPU_API=cuda
|
||||
# enables CUDA Performance Primitives Optimizations
|
||||
# value = yes (default) or no
|
||||
-D CUDA_MPS_SUPPORT=value # enables some tweaks required to run with active nvidia-cuda-mps daemon
|
||||
# value = yes or no (default) :pre
|
||||
|
||||
GPU_ARCH settings for different GPU hardware is as follows:
|
||||
|
||||
@ -169,26 +170,24 @@ used to build the GPU library.
|
||||
|
||||
KIM package :h4,link(kim)
|
||||
|
||||
To build with this package, the KIM library must be downloaded and
|
||||
built on your system. It must include the KIM models that you want to
|
||||
use with LAMMPS.
|
||||
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
|
||||
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 installing the KIM API
|
||||
library with all its models, may take around 30 min to build. Of
|
||||
course you only need to do that once.
|
||||
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 the list of KIM model drivers here:
|
||||
https://openkim.org/kim-items/model-drivers/alphabetical
|
||||
https://openkim.org/browse/model-drivers/alphabetical
|
||||
|
||||
See the list of all KIM models here:
|
||||
https://openkim.org/kim-items/models/by-model-drivers
|
||||
|
||||
See the list of example KIM models included by default here:
|
||||
https://openkim.org/kim-api on the "What is in the KIM API source
|
||||
package?" page.
|
||||
https://openkim.org/browse/models/by-model-drivers
|
||||
|
||||
[CMake build]:
|
||||
|
||||
@ -197,7 +196,7 @@ package?" page.
|
||||
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-v2 can be found.
|
||||
environment variable so that libkim-api can be found.
|
||||
|
||||
[Traditional make]:
|
||||
|
||||
@ -247,7 +246,10 @@ Maxwell50 = NVIDIA Maxwell generation CC 5.0
|
||||
Maxwell52 = NVIDIA Maxwell generation CC 5.2
|
||||
Maxwell53 = NVIDIA Maxwell generation CC 5.3
|
||||
Pascal60 = NVIDIA Pascal generation CC 6.0
|
||||
Pascal61 = NVIDIA Pascal generation CC 6.1 :ul
|
||||
Pascal61 = NVIDIA Pascal generation CC 6.1
|
||||
Volta70 = NVIDIA Volta generation CC 7.0
|
||||
Volta72 = NVIDIA Volta generation CC 7.2
|
||||
Turing75 = NVIDIA Turing generation CC 7.5 :ul
|
||||
|
||||
[CMake build]:
|
||||
|
||||
@ -348,49 +350,6 @@ the compiler you use on your system to build LATTE.
|
||||
|
||||
:line
|
||||
|
||||
MEAM package :h4,link(meam)
|
||||
|
||||
NOTE: the use of the MEAM package is discouraged, as it has been
|
||||
superseded by the USER-MEAMC package, which is a direct translation of
|
||||
the Fortran code in the MEAM library to C++. The code in USER-MEAMC
|
||||
should be functionally equivalent to the MEAM package, fully supports
|
||||
use of "pair_style hybrid"_pair_hybrid.html (the MEAM package does
|
||||
not), and has optimizations that make it significantly faster than the
|
||||
MEAM package.
|
||||
|
||||
[CMake build]:
|
||||
|
||||
No additional settings are needed besides "-D PKG_MEAM=yes".
|
||||
|
||||
[Traditional make]:
|
||||
|
||||
Before building LAMMPS, you must build the MEAM library in lib/meam.
|
||||
You can build the MEAM library manually if you prefer; follow the
|
||||
instructions in lib/meam/README. You can also do it in one step from
|
||||
the lammps/src dir, using a command like these, which simply invoke
|
||||
the lib/meam/Install.py script with the specified args:
|
||||
|
||||
make lib-meam # print help message
|
||||
make lib-meam args="-m mpi" # build with default Fortran compiler compatible with your MPI library
|
||||
make lib-meam args="-m serial" # build with compiler compatible with "make serial" (GNU Fortran)
|
||||
make lib-meam args="-m ifort" # build with Intel Fortran compiler using Makefile.ifort :pre
|
||||
|
||||
NOTE: You should test building the MEAM library with both the Intel
|
||||
and GNU compilers to see if a simulation runs faster with one versus
|
||||
the other on your system.
|
||||
|
||||
The build should produce two files: lib/meam/libmeam.a and
|
||||
lib/meam/Makefile.lammps. The latter is copied from an existing
|
||||
Makefile.lammps.* and has settings needed to link C++ (LAMMPS) with
|
||||
Fortran (MEAM library). Typically the two compilers used for LAMMPS
|
||||
and the MEAM library need to be consistent (e.g. both Intel or both
|
||||
GNU compilers). If necessary, you can edit/create a new
|
||||
lib/meam/Makefile.machine file for your system, which should define an
|
||||
EXTRAMAKE variable to specify a corresponding Makefile.lammps.machine
|
||||
file.
|
||||
|
||||
:line
|
||||
|
||||
MESSAGE package :h4,link(message)
|
||||
|
||||
This package can optionally include support for messaging via sockets,
|
||||
@ -859,23 +818,34 @@ file.
|
||||
USER-INTEL package :h4,link(user-intel)
|
||||
|
||||
To build with this package, you must choose which hardware you want to
|
||||
build for, either Intel CPUs or Intel KNLs. You should also typically
|
||||
"install the USER-OMP package"_#user-omp, as it can be used in tandem
|
||||
with the USER-INTEL package to good effect, as explained on the "Speed
|
||||
intel"_Speed_intel.html doc page.
|
||||
build for, either x86 CPUs or Intel KNLs in offload mode. You should
|
||||
also typically "install the USER-OMP package"_#user-omp, as it can be
|
||||
used in tandem with the USER-INTEL package to good effect, as explained
|
||||
on the "Speed intel"_Speed_intel.html doc page.
|
||||
|
||||
[CMake build]:
|
||||
|
||||
-D INTEL_ARCH=value # value = cpu (default) or knl
|
||||
-D BUILD_OMP=yes # also required to build with the USER-INTEl package :pre
|
||||
-D INTEL_LRT_MODE=value # value = threads, none, or c++11 :pre
|
||||
|
||||
Requires an Intel compiler as well as the Intel TBB and MKL libraries.
|
||||
In Long-range thread mode (LRT) a modified verlet style is used, that
|
||||
operates the Kspace calculation in a separate thread concurrently to
|
||||
other calculations. This has to be enabled in the "package intel"_package.html
|
||||
command at runtime. With the setting "threads" it used the pthreads
|
||||
library, while c++11 will use the built-in thread support of C++11
|
||||
compilers. The option "none" skips compilation of this feature. The
|
||||
default is to use "threads" if pthreads is available and otherwise "none".
|
||||
|
||||
Best performance is achieved with Intel hardware, Intel compilers, as well as
|
||||
the Intel TBB and MKL libraries. However, the code also compiles, links, and
|
||||
runs with other compilers and without TBB and MKL.
|
||||
|
||||
[Traditional make]:
|
||||
|
||||
Choose which hardware to compile for in Makefile.machine via the
|
||||
following settings. See src/MAKE/OPTIONS/Makefile.intel_cpu* and
|
||||
Makefile.knl files for examples.
|
||||
Makefile.knl files for examples. and src/USER-INTEL/README for
|
||||
additional information.
|
||||
|
||||
For CPUs:
|
||||
|
||||
@ -897,7 +867,17 @@ USER-MOLFILE package :h4,link(user-molfile)
|
||||
|
||||
[CMake build]:
|
||||
|
||||
No additional settings are needed besides "-D PKG_USER-MOLFILE=yes".
|
||||
-D MOLFILE_INCLUDE_DIRS=path # (optional) path where VMD molfile plugin headers are installed
|
||||
-D PKG_USER-MOLFILE=yes :pre
|
||||
|
||||
|
||||
Using "-D PKG_USER-MOLFILE=yes" enables the package, and setting
|
||||
"-D MOLFILE_INCLUDE DIRS" allows to provide a custom location for
|
||||
the molfile plugin header files. These should match the ABI of the
|
||||
plugin files used, and thus one typically sets them to include
|
||||
folder of the local VMD installation in use. LAMMPS ships with a
|
||||
couple of default header files that correspond to a popular VMD
|
||||
version, usually the latest release.
|
||||
|
||||
[Traditional make]:
|
||||
|
||||
@ -906,7 +886,11 @@ loading library libdl.a that is typically present on all systems. It
|
||||
is required for LAMMPS to link with this package. If the setting is
|
||||
not valid for your system, you will need to edit the Makefile.lammps
|
||||
file. See lib/molfile/README and lib/molfile/Makefile.lammps for
|
||||
details.
|
||||
details. It is also possible to configure a different folder with
|
||||
the VMD molfile plugin header files. LAMMPS ships with a couple of
|
||||
default headers, but these are not compatible with all VMD versions,
|
||||
so it is often best to change this setting to the location of the
|
||||
same include files of the local VMD installation in use.
|
||||
|
||||
:line
|
||||
|
||||
|
||||
@ -41,7 +41,6 @@ packages:
|
||||
"KIM"_Build_extras.html#kim,
|
||||
"KOKKOS"_Build_extras.html#kokkos,
|
||||
"LATTE"_Build_extras.html#latte,
|
||||
"MEAM"_Build_extras.html#meam,
|
||||
"MESSAGE"_Build_extras.html#message,
|
||||
"MSCG"_Build_extras.html#mscg,
|
||||
"OPT"_Build_extras.html#opt,
|
||||
@ -149,26 +148,41 @@ system. Using these files you can enable/disable portions of the
|
||||
available packages in LAMMPS. If you need a custom preset you can take
|
||||
one of them as a starting point and customize it to your needs.
|
||||
|
||||
cmake -C ../cmake/presets/all_on.cmake \[OPTIONS\] ../cmake | enable all packages
|
||||
cmake -C ../cmake/presets/all_off.cmake \[OPTIONS\] ../cmake | disable all packages
|
||||
cmake -C ../cmake/presets/std.cmake \[OPTIONS\] ../cmake | enable standard packages
|
||||
cmake -C ../cmake/presets/user.cmake \[OPTIONS\] ../cmake | enable user packages
|
||||
cmake -C ../cmake/presets/std_nolib.cmake \[OPTIONS\] ../cmake | enable standard packages that do not require extra libraries
|
||||
cmake -C ../cmake/presets/nolib.cmake \[OPTIONS\] ../cmake | disable all packages that do not require extra libraries
|
||||
cmake -C ../cmake/presets/manual_selection.cmake \[OPTIONS\] ../cmake | example of how to create a manual selection of packages :tb(s=|,a=l)
|
||||
cmake -C ../cmake/presets/all_on.cmake \[OPTIONS\] ../cmake |
|
||||
enable all packages |
|
||||
cmake -C ../cmake/presets/all_off.cmake \[OPTIONS\] ../cmake |
|
||||
disable all packages |
|
||||
cmake -C ../cmake/presets/minimal.cmake \[OPTIONS\] ../cmake |
|
||||
enable just a few core packages |
|
||||
cmake -C ../cmake/presets/most.cmake \[OPTIONS\] ../cmake |
|
||||
enable most common packages |
|
||||
cmake -C ../cmake/presets/nolib.cmake \[OPTIONS\] ../cmake |
|
||||
disable packages that do require extra libraries or tools |
|
||||
cmake -C ../cmake/presets/clang.cmake \[OPTIONS\] ../cmake |
|
||||
change settings to use the Clang compilers by default |
|
||||
cmake -C ../cmake/presets/mingw.cmake \[OPTIONS\] ../cmake |
|
||||
enable all packages compatible with MinGW compilers :tb(c=2,s=|,a=l)
|
||||
|
||||
NOTE: Running cmake this way manipulates the variable cache in your
|
||||
current build directory. You can combine presets and options with
|
||||
multiple cmake runs.
|
||||
current build directory. You can combine multiple presets and options
|
||||
in a single cmake run, or change settings incrementally by running
|
||||
cmake with new flags.
|
||||
|
||||
[Example:]
|
||||
|
||||
# build LAMMPS with all "standard" packages which don't
|
||||
# use libraries and enable GPU package
|
||||
# build LAMMPS with most commonly used packages, but then remove
|
||||
# those requiring additional library or tools, but still enable
|
||||
# GPU package and configure it for using CUDA. You can run.
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -C ../cmake/presets/std_nolib.cmake -D PKG_GPU=on ../cmake :pre
|
||||
cmake -C ../cmake/presets/most.cmake -C ../cmake/presets/nolib.cmake -D PKG_GPU=on -D GPU_API=cuda ../cmake :pre
|
||||
|
||||
# to add another package, say BODY to the previous configuration you can run:
|
||||
cmake -D PKG_BODY=on . :pre
|
||||
|
||||
# to reset the package selection from above to the default of no packages
|
||||
# but leaving all other settings untouched. You can run:
|
||||
cmake -C ../cmake/presets/no_all.cmake . :pre
|
||||
:line
|
||||
|
||||
[Make shortcuts for installing many packages]:
|
||||
|
||||
@ -57,10 +57,10 @@ FFT_INC = -DFFT_SINGLE # do not specify for double precision
|
||||
FFT_INC = -DFFT_PACK_ARRAY # or -DFFT_PACK_POINTER or -DFFT_PACK_MEMCPY :pre
|
||||
# default is FFT_PACK_ARRAY if not specified
|
||||
|
||||
FFT_INC = -I/usr/local/include
|
||||
FFT_INC = -I/usr/local/include
|
||||
FFT_PATH = -L/usr/local/lib
|
||||
FFT_LIB = -lfftw3 # FFTW3 double precision
|
||||
FFT_LIB = -lfftw3 -lfftw3f # FFTW3 single precision
|
||||
FFT_LIB = -lfftw3 # FFTW3 double precision
|
||||
FFT_LIB = -lfftw3 -lfftw3f # FFTW3 single precision
|
||||
FFT_LIB = -lmkl_intel_lp64 -lmkl_sequential -lmkl_core # MKL with Intel compiler
|
||||
FFT_LIB = -lmkl_gf_lp64 -lmkl_sequential -lmkl_core # MKL with GNU compier :pre
|
||||
|
||||
@ -179,8 +179,11 @@ e.g. from 511 to -512, which can cause diagnostics like the
|
||||
mean-squared displacement, as calculated by the "compute
|
||||
msd"_compute_msd.html command, to be faulty.
|
||||
|
||||
Note that the USER-ATC package is not currently compatible with the
|
||||
"bigbig" setting.
|
||||
Note that the USER-ATC package and the USER-INTEL package are currently
|
||||
not compatible with the "bigbig" setting. Also, there are limitations
|
||||
when using the library interface. Some functions with known issues
|
||||
have been replaced by dummy calls printing a corresponding error rather
|
||||
than crashing randomly or corrupting data.
|
||||
|
||||
Also note that the GPU package requires its lib/gpu library to be
|
||||
compiled with the same size setting, or the link will fail. A CMake
|
||||
|
||||
@ -51,11 +51,10 @@ provides a unix/linux interface to low-level Windows functions, so LAMMPS
|
||||
can be compiled on Windows. The necessary (minor) modifications to LAMMPS
|
||||
are included, but may not always up-to-date for recently added functionality
|
||||
and the corresponding new code. A machine makefile for using cygwin for
|
||||
the old build system is provided. The CMake build system is untested
|
||||
for this; you will have to request that makefiles are generated and
|
||||
manually set the compiler.
|
||||
the old build system is provided. Using CMake for this mode of compilation
|
||||
is untested and not likely to work.
|
||||
|
||||
When compiling for Windows [not] set the -DLAMMPS_MEMALIGN define
|
||||
When compiling for Windows do [not] set the -DLAMMPS_MEMALIGN define
|
||||
in the LMP_INC makefile variable and add -lwsock32 -lpsapi to the linker
|
||||
flags in LIB makefile variable. Try adding -static-libgcc or -static or
|
||||
both to the linker flags when your resulting LAMMPS Windows executable
|
||||
@ -79,7 +78,13 @@ probably the currently best tested and supported way to build LAMMPS
|
||||
executables for Windows. There are makefiles provided for the
|
||||
traditional build system, but CMake has also been successfully tested
|
||||
using the mingw32-cmake and mingw64-cmake wrappers that are bundled
|
||||
with the cross-compiler environment on Fedora machines.
|
||||
with the cross-compiler environment on Fedora machines. A CMake preset
|
||||
selecting all packages compatible with this cross-compilation build
|
||||
is provided. You likely need to disable the GPU package unless you
|
||||
download and install the contents of the pre-compiled "OpenCL ICD loader
|
||||
library"_https://download.lammps.org/thirdparty/opencl-win-devel.tar.gz
|
||||
into your MinGW64 cross-compiler environment. The cross-compilation
|
||||
currently will only produce non-MPI serial binaries.
|
||||
|
||||
Please keep in mind, though, that this only applies to compiling LAMMPS.
|
||||
Whether the resulting binaries do work correctly is no tested by the
|
||||
|
||||
@ -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 -->
|
||||
|
||||
|
||||
@ -68,6 +68,7 @@ An alphabetic list of all general LAMMPS commands.
|
||||
"improper_style"_improper_style.html,
|
||||
"include"_include.html,
|
||||
"jump"_jump.html,
|
||||
"kim_query"_kim_query.html,
|
||||
"kspace_modify"_kspace_modify.html,
|
||||
"kspace_style"_kspace_style.html,
|
||||
"label"_label.html,
|
||||
@ -78,9 +79,11 @@ An alphabetic list of all general LAMMPS commands.
|
||||
"minimize"_minimize.html,
|
||||
"min_modify"_min_modify.html,
|
||||
"min_style"_min_style.html,
|
||||
"min_style spin"_min_spin.html,
|
||||
"molecule"_molecule.html,
|
||||
"ndx2group"_group2ndx.html,
|
||||
"neb"_neb.html,
|
||||
"neb/spin"_neb_spin.html,
|
||||
"neigh_modify"_neigh_modify.html,
|
||||
"neighbor"_neighbor.html,
|
||||
"newton"_newton.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,
|
||||
|
||||
@ -116,6 +116,7 @@ Actions:
|
||||
|
||||
"minimize"_minimize.html,
|
||||
"neb"_neb.html,
|
||||
"neb_spin"_neb_spin.html,
|
||||
"prd"_prd.html,
|
||||
"rerun"_rerun.html,
|
||||
"run"_run.html,
|
||||
|
||||
@ -61,6 +61,7 @@ OPT.
|
||||
"edpd/source"_fix_dpd_source.html,
|
||||
"efield"_fix_efield.html,
|
||||
"ehex"_fix_ehex.html,
|
||||
"electron/stopping"_fix_electron_stopping.html,
|
||||
"enforce2d (k)"_fix_enforce2d.html,
|
||||
"eos/cv"_fix_eos_cv.html,
|
||||
"eos/table"_fix_eos_table.html,
|
||||
@ -106,6 +107,7 @@ OPT.
|
||||
"mvv/edpd"_fix_mvv_dpd.html,
|
||||
"mvv/tdpd"_fix_mvv_dpd.html,
|
||||
"neb"_fix_neb.html,
|
||||
"neb_spin"_fix_neb_spin.html,
|
||||
"nph (ko)"_fix_nh.html,
|
||||
"nph/asphere (o)"_fix_nph_asphere.html,
|
||||
"nph/body"_fix_nph_body.html,
|
||||
@ -224,7 +226,7 @@ OPT.
|
||||
"wall/body/polyhedron"_fix_wall_body_polyhedron.html,
|
||||
"wall/colloid"_fix_wall.html,
|
||||
"wall/ees"_fix_wall_ees.html,
|
||||
"wall/gran (o)"_fix_wall_gran.html,
|
||||
"wall/gran"_fix_wall_gran.html,
|
||||
"wall/gran/region"_fix_wall_gran_region.html,
|
||||
"wall/harmonic"_fix_wall.html,
|
||||
"wall/lj1043"_fix_wall.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,
|
||||
@ -80,6 +83,8 @@ OPT.
|
||||
"dpd/fdt/energy (k)"_pair_dpd_fdt.html,
|
||||
"dpd/tstat (go)"_pair_dpd.html,
|
||||
"dsmc"_pair_dsmc.html,
|
||||
"e3b"_pair_e3b.html,
|
||||
"drip"_pair_drip.html,
|
||||
"eam (gikot)"_pair_eam.html,
|
||||
"eam/alloy (gikot)"_pair_eam.html,
|
||||
"eam/cd (o)"_pair_eam.html,
|
||||
@ -98,6 +103,7 @@ OPT.
|
||||
"gran/hertz/history (o)"_pair_gran.html,
|
||||
"gran/hooke (o)"_pair_gran.html,
|
||||
"gran/hooke/history (ko)"_pair_gran.html,
|
||||
"granular"_pair_granular.html,
|
||||
"gw"_pair_gw.html,
|
||||
"gw/zbl"_pair_gw.html,
|
||||
"hbond/dreiding/lj (o)"_pair_hbond_dreiding.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
|
||||
BIN
doc/src/Eqs/e3b.jpg
Normal file
|
After Width: | Height: | Size: 28 KiB |
15
doc/src/Eqs/e3b.tex
Normal file
@ -0,0 +1,15 @@
|
||||
\documentclass[12pt]{article}
|
||||
\usepackage{amsmath}
|
||||
\begin{document}
|
||||
|
||||
\begin{align*}
|
||||
E =& E_2 \sum_{i,j}e^{-k_2 r_{ij}} + E_A \sum_{\substack{i,j,k,\ell \\\in \textrm{type A}}} f(r_{ij})f(r_{k\ell}) + E_B \sum_{\substack{i,j,k,\ell \\\in \textrm{type B}}} f(r_{ij})f(r_{k\ell}) + E_C \sum_{\substack{i,j,k,\ell \\\in \textrm{type C}}} f(r_{ij})f(r_{k\ell}) \\
|
||||
f(r) =& e^{-k_3 r}s(r) \\
|
||||
s(r) =& \begin{cases}
|
||||
1 & r<R_s \\
|
||||
\displaystyle\frac{(R_f-r)^2(R_f-3R_s+2r)}{(R_f-R_s)^3} & R_s\leq r\leq R_f \\
|
||||
0 & r>R_f\\
|
||||
\end{cases}
|
||||
\end{align*}
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/fix_spin_cubic.jpg
Normal file
|
After Width: | Height: | Size: 25 KiB |
21
doc/src/Eqs/fix_spin_cubic.tex
Normal file
@ -0,0 +1,21 @@
|
||||
\documentclass[preview]{standalone}
|
||||
\usepackage{varwidth}
|
||||
\usepackage[utf8x]{inputenc}
|
||||
\usepackage{amsmath,amssymb,amsthm,bm}
|
||||
\begin{document}
|
||||
\begin{varwidth}{50in}
|
||||
\begin{equation}
|
||||
\bm{H}_{cubic} = -\sum_{{ i}=1}^{N} K_{1}
|
||||
\Big[
|
||||
\left(\vec{s}_{i} \cdot \vec{n1} \right)^2
|
||||
\left(\vec{s}_{i} \cdot \vec{n2} \right)^2 +
|
||||
\left(\vec{s}_{i} \cdot \vec{n2} \right)^2
|
||||
\left(\vec{s}_{i} \cdot \vec{n3} \right)^2 +
|
||||
\left(\vec{s}_{i} \cdot \vec{n1} \right)^2
|
||||
\left(\vec{s}_{i} \cdot \vec{n3} \right)^2 \Big]
|
||||
+K_{2}^{(c)} \left(\vec{s}_{i} \cdot \vec{n1} \right)^2
|
||||
\left(\vec{s}_{i} \cdot \vec{n2} \right)^2
|
||||
\left(\vec{s}_{i} \cdot \vec{n3} \right)^2 \nonumber
|
||||
\end{equation}
|
||||
\end{varwidth}
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/min_spin_damping.jpg
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
13
doc/src/Eqs/min_spin_damping.tex
Normal file
@ -0,0 +1,13 @@
|
||||
\documentclass[preview]{standalone}
|
||||
\usepackage{varwidth}
|
||||
\usepackage[utf8x]{inputenc}
|
||||
\usepackage{amsmath, amssymb, graphics, setspace}
|
||||
|
||||
\begin{document}
|
||||
\begin{varwidth}{50in}
|
||||
\begin{equation}
|
||||
\frac{d \vec{s}_{i}}{dt} = \lambda\, \vec{s}_{i} \times\left( \vec{\omega}_{i} \times\vec{s}_{i} \right)
|
||||
\nonumber
|
||||
\end{equation}
|
||||
\end{varwidth}
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/min_spin_timestep.jpg
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
14
doc/src/Eqs/min_spin_timestep.tex
Normal file
@ -0,0 +1,14 @@
|
||||
\documentclass[preview]{standalone}
|
||||
\usepackage{varwidth}
|
||||
\usepackage[utf8x]{inputenc}
|
||||
\usepackage{amsmath, amssymb, graphics, setspace}
|
||||
|
||||
\begin{document}
|
||||
\begin{varwidth}{50in}
|
||||
\begin{equation}
|
||||
{\Delta t}_{\rm max} = \frac{2\pi}{\kappa
|
||||
\left|\vec{\omega}_{\rm max} \right|}
|
||||
\nonumber
|
||||
\end{equation}
|
||||
\end{varwidth}
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/neb_spin_angle.jpg
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
15
doc/src/Eqs/neb_spin_angle.tex
Normal file
@ -0,0 +1,15 @@
|
||||
\documentclass[preview]{standalone}
|
||||
\usepackage{varwidth}
|
||||
\usepackage[utf8x]{inputenc}
|
||||
\usepackage{amsmath, amssymb, graphics, setspace}
|
||||
|
||||
\begin{document}
|
||||
\begin{varwidth}{50in}
|
||||
\begin{equation}
|
||||
\omega_i^{\nu} =
|
||||
(\nu - 1) \Delta \omega_i
|
||||
{\rm ~~and~~} \Delta \omega_i = \frac{\omega_i}{Q-1}
|
||||
, \nonumber
|
||||
\end{equation}
|
||||
\end{varwidth}
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/neb_spin_k.jpg
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
16
doc/src/Eqs/neb_spin_k.tex
Normal file
@ -0,0 +1,16 @@
|
||||
\documentclass[preview]{standalone}
|
||||
\usepackage{varwidth}
|
||||
\usepackage[utf8x]{inputenc}
|
||||
\usepackage{amsmath, amssymb, graphics, setspace}
|
||||
|
||||
\begin{document}
|
||||
\begin{varwidth}{50in}
|
||||
\begin{equation}
|
||||
\vec{k}_i =
|
||||
\frac{\vec{m}_i^I \times \vec{m}_i^F}{\left|\vec{m}_i^I
|
||||
\times \vec{m}_i^F\right|}
|
||||
%&{\rm ~if~}& \vec{m}_i^I \times \vec{m}_i^F
|
||||
, \nonumber
|
||||
\end{equation}
|
||||
\end{varwidth}
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/neb_spin_rodrigues_formula.jpg
Normal file
|
After Width: | Height: | Size: 20 KiB |
16
doc/src/Eqs/neb_spin_rodrigues_formula.tex
Normal file
@ -0,0 +1,16 @@
|
||||
\documentclass[preview]{standalone}
|
||||
\usepackage{varwidth}
|
||||
\usepackage[utf8x]{inputenc}
|
||||
\usepackage{amsmath, amssymb, graphics, setspace}
|
||||
|
||||
\begin{document}
|
||||
\begin{varwidth}{50in}
|
||||
\begin{equation}
|
||||
\vec{m}_i^{\nu} = \vec{m}_i^{I} \cos(\omega_i^{\nu})
|
||||
+ (\vec{k}_i \times \vec{m}_i^{I}) \sin(\omega_i^{\nu})
|
||||
+ (1.0-\cos(\omega_i^{\nu})) \vec{k}_i (\vec{k}_i\cdot
|
||||
\vec{m}_i^{I})
|
||||
, \nonumber
|
||||
\end{equation}
|
||||
\end{varwidth}
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/pair_drip.jpg
Normal file
|
After Width: | Height: | Size: 58 KiB |
14
doc/src/Eqs/pair_drip.tex
Normal file
@ -0,0 +1,14 @@
|
||||
\documentclass[12pt]{article}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{bm}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{eqnarray*}
|
||||
E &=& \frac{1}{2} \sum_{i} \sum_{j\notin\text{layer}\,i} \phi_{ij} \\\phi_{ij} &=& f_\text{c}(x_r) \left[ e^{-\lambda(r_{ij} - z_0 )} \left[C+f(\rho_{ij})+ g(\rho_{ij}, \{\alpha_{ij}^{(m)}\}) \right]- A\left (\frac{z_0}{r_{ij}} \right)^6 \right] \\
|
||||
\end{eqnarray*}
|
||||
|
||||
|
||||
|
||||
|
||||
\end{document}
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.5 KiB |
@ -1,9 +1,9 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\pagestyle{empty}
|
||||
\begin{document}
|
||||
|
||||
$$
|
||||
E(r) = \frac{A}{r^{12}} - \frac{A}{r^{6}}
|
||||
E(r) = \frac{A}{r^{12}} - \frac{B}{r^{6}}
|
||||
$$
|
||||
|
||||
\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
|
||||
@ -5467,10 +5519,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
|
||||
@ -5828,6 +5876,12 @@ Must have periodic x,y dimensions and non-periodic z dimension to use
|
||||
Must have periodic x,y dimensions and non-periodic z dimension to use
|
||||
2d slab option with pppm/disp. :dd
|
||||
|
||||
{Incorrect conversion in format string} :dt
|
||||
|
||||
A format style variable was not using either a %f, a %g, or a %e conversion.
|
||||
Or an immediate variable with format suffix was not using either
|
||||
a %f, a %g or a %e conversion in the format suffix. :dd
|
||||
|
||||
{Incorrect element names in ADP potential file} :dt
|
||||
|
||||
The element names in the ADP file do not match those requested. :dd
|
||||
@ -7035,6 +7089,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
|
||||
@ -7448,6 +7514,11 @@ The Atoms section of a data file must come before a Triangles section. :dd
|
||||
The Atoms section of a data file must come before a Velocities
|
||||
section. :dd
|
||||
|
||||
{Must re-specify non-restarted pair style (xxx) after read_restart} :dt
|
||||
|
||||
For pair styles, that do not store their settings in a restart file,
|
||||
it must be defined with a new 'pair_style' command after read_restart. :dd
|
||||
|
||||
{Must set both respa inner and outer} :dt
|
||||
|
||||
Cannot use just the inner or outer option with respa without using the
|
||||
@ -9990,25 +10061,25 @@ quote. :dd
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Unexpected end of AngleCoeffs section} :dt
|
||||
{Unexpected empty line in AngleCoeffs section} :dt
|
||||
|
||||
Read a blank line. :dd
|
||||
Read a blank line where there should be coefficient data. :dd
|
||||
|
||||
{Unexpected end of BondCoeffs section} :dt
|
||||
{Unexpected empty line in BondCoeffs section} :dt
|
||||
|
||||
Read a blank line. :dd
|
||||
Read a blank line where there should be coefficient data. :dd
|
||||
|
||||
{Unexpected end of DihedralCoeffs section} :dt
|
||||
{Unexpected empty line in DihedralCoeffs section} :dt
|
||||
|
||||
Read a blank line. :dd
|
||||
Read a blank line where there should be coefficient data. :dd
|
||||
|
||||
{Unexpected end of ImproperCoeffs section} :dt
|
||||
{Unexpected empty line in ImproperCoeffs section} :dt
|
||||
|
||||
Read a blank line. :dd
|
||||
Read a blank line where there should be coefficient data. :dd
|
||||
|
||||
{Unexpected end of PairCoeffs section} :dt
|
||||
{Unexpected empty line in PairCoeffs section} :dt
|
||||
|
||||
Read a blank line. :dd
|
||||
Read a blank line where there should be coefficient data. :dd
|
||||
|
||||
{Unexpected end of custom file} :dt
|
||||
|
||||
@ -10049,19 +10120,19 @@ create_box command. :dd
|
||||
A universe or uloop style variable must specify a number of values >= to the
|
||||
number of processor partitions. :dd
|
||||
|
||||
{Unknown angle style} :dt
|
||||
{Unrecognized angle style} :dt
|
||||
|
||||
The choice of angle style is unknown. :dd
|
||||
|
||||
{Unknown atom style} :dt
|
||||
{Unrecognized atom style} :dt
|
||||
|
||||
The choice of atom style is unknown. :dd
|
||||
|
||||
{Unknown body style} :dt
|
||||
{Unrecognized body style} :dt
|
||||
|
||||
The choice of body style is unknown. :dd
|
||||
|
||||
{Unknown bond style} :dt
|
||||
{Unrecognized bond style} :dt
|
||||
|
||||
The choice of bond style is unknown. :dd
|
||||
|
||||
@ -10077,23 +10148,23 @@ Self-explanatory. :dd
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Unknown command: %s} :dt
|
||||
{Unrecognized command: %s} :dt
|
||||
|
||||
The command is not known to LAMMPS. Check the input script. :dd
|
||||
|
||||
{Unknown compute style} :dt
|
||||
{Unrecognized compute style} :dt
|
||||
|
||||
The choice of compute style is unknown. :dd
|
||||
|
||||
{Unknown dihedral style} :dt
|
||||
{Unrecognized dihedral style} :dt
|
||||
|
||||
The choice of dihedral style is unknown. :dd
|
||||
|
||||
{Unknown dump reader style} :dt
|
||||
{Unrecognized dump reader style} :dt
|
||||
|
||||
The choice of dump reader style via the format keyword is unknown. :dd
|
||||
|
||||
{Unknown dump style} :dt
|
||||
{Unrecognized dump style} :dt
|
||||
|
||||
The choice of dump style is unknown. :dd
|
||||
|
||||
@ -10101,7 +10172,7 @@ The choice of dump style is unknown. :dd
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Unknown fix style} :dt
|
||||
{Unrecognized fix style} :dt
|
||||
|
||||
The choice of fix style is unknown. :dd
|
||||
|
||||
@ -10109,7 +10180,7 @@ The choice of fix style is unknown. :dd
|
||||
|
||||
A section of the data file cannot be read by LAMMPS. :dd
|
||||
|
||||
{Unknown improper style} :dt
|
||||
{Unrecognized improper style} :dt
|
||||
|
||||
The choice of improper style is unknown. :dd
|
||||
|
||||
@ -10117,7 +10188,7 @@ The choice of improper style is unknown. :dd
|
||||
|
||||
One or more specified keywords are not recognized. :dd
|
||||
|
||||
{Unknown kspace style} :dt
|
||||
{Unrecognized kspace style} :dt
|
||||
|
||||
The choice of kspace style is unknown. :dd
|
||||
|
||||
@ -10133,7 +10204,7 @@ Self-explanatory. :dd
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Unknown pair style} :dt
|
||||
{Unrecognized pair style} :dt
|
||||
|
||||
The choice of pair style is unknown. :dd
|
||||
|
||||
@ -10141,7 +10212,7 @@ The choice of pair style is unknown. :dd
|
||||
|
||||
The choice of sub-style is unknown. :dd
|
||||
|
||||
{Unknown region style} :dt
|
||||
{Unrecognized region style} :dt
|
||||
|
||||
The choice of region style is unknown. :dd
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -11,7 +11,7 @@ Section"_Tools.html :c
|
||||
Example scripts :h3
|
||||
|
||||
The LAMMPS distribution includes an examples sub-directory with many
|
||||
sample problems. Many are 2d models that run quickly are are
|
||||
sample problems. Many are 2d models that run quickly and are
|
||||
straightforward to visualize, requiring at most a couple of minutes to
|
||||
run on a desktop machine. Each problem has an input script (in.*) and
|
||||
produces a log file (log.*) when it runs. Some use a data file
|
||||
@ -52,13 +52,14 @@ Lowercase directories :h4
|
||||
|
||||
accelerate: run with various acceleration options (OpenMP, GPU, Phi)
|
||||
airebo: polyethylene with AIREBO potential
|
||||
atm: Axilrod-Teller-Muto potential example
|
||||
balance: dynamic load balancing, 2d system
|
||||
body: body particles, 2d system
|
||||
cmap: CMAP 5-body contributions to CHARMM force field
|
||||
colloid: big colloid particles in a small particle solvent, 2d system
|
||||
comb: models using the COMB potential
|
||||
coreshell: core/shell model using CORESHELL package
|
||||
controller: use of fix controller as a thermostat
|
||||
coreshell: core/shell model using CORESHELL package
|
||||
crack: crack propagation in a 2d solid
|
||||
deposit: deposit atoms and molecules on a surface
|
||||
dipole: point dipolar particles, 2d system
|
||||
@ -70,10 +71,13 @@ friction: frictional contact of spherical asperities between 2d surfaces
|
||||
gcmc: Grand Canonical Monte Carlo (GCMC) via the fix gcmc command
|
||||
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)
|
||||
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
|
||||
message: demos for LAMMPS client/server coupling with the MESSAGE package
|
||||
micelle: self-assembly of small lipid-like molecules into 2d bilayers
|
||||
min: energy minimization of 2d LJ melt
|
||||
mscg: parameterize a multi-scale coarse-graining (MSCG) model
|
||||
@ -88,6 +92,7 @@ pour: pouring of granular particles into a 3d box, then chute flow
|
||||
prd: parallel replica dynamics of vacancy diffusion in bulk Si
|
||||
python: using embedded Python in a LAMMPS input script
|
||||
qeq: use of the QEQ package for charge equilibration
|
||||
rdf-adf: computing radial and angle distribution functions for water
|
||||
reax: RDX and TATB models using the ReaxFF
|
||||
rigid: rigid bodies modeled as independent or coupled
|
||||
shear: sideways shear applied to 2d solid, with and without a void
|
||||
@ -95,6 +100,7 @@ snap: NVE dynamics for BCC tantalum crystal using SNAP potential
|
||||
srd: stochastic rotation dynamics (SRD) particles as solvent
|
||||
streitz: use of Streitz/Mintmire potential with charge equilibration
|
||||
tad: temperature-accelerated dynamics of vacancy diffusion in bulk Si
|
||||
threebody: regression test input for a variety of manybody potentials
|
||||
vashishta: use of the Vashishta potential
|
||||
voronoi: Voronoi tesselation via compute voronoi/atom command :tb(s=:)
|
||||
|
||||
@ -131,8 +137,10 @@ COUPLE: examples of how to use LAMMPS as a library
|
||||
DIFFUSE: compute diffusion coefficients via several methods
|
||||
ELASTIC: compute elastic constants at zero temperature
|
||||
ELASTIC_T: compute elastic constants at finite temperature
|
||||
HEAT: compute thermal conductivity for LJ and water via fix ehex
|
||||
KAPPA: compute thermal conductivity via several methods
|
||||
MC: using LAMMPS in a Monte Carlo mode to relax the energy of a system
|
||||
SPIN: examples for features of the SPIN package
|
||||
USER: examples for USER packages and USER-contributed commands
|
||||
VISCOSITY: compute viscosity via several methods :tb(s=:)
|
||||
|
||||
|
||||
@ -148,7 +148,7 @@ END_RST -->
|
||||
|
||||
<!-- HTML_ONLY -->
|
||||
|
||||
"CHARMM, AMBER, and DREIDING force fields"_Howto_bioFF.html
|
||||
"CHARMM, AMBER, COMPASS, and DREIDING force fields"_Howto_bioFF.html
|
||||
"TIP3P water model"_Howto_tip3p.html
|
||||
"TIP4P water model"_Howto_tip4p.html
|
||||
"SPC water model"_Howto_spc.html :all(b)
|
||||
|
||||
@ -7,29 +7,31 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:line
|
||||
|
||||
CHARMM, AMBER, and DREIDING force fields :h3
|
||||
CHARMM, AMBER, COMPASS, and DREIDING force fields :h3
|
||||
|
||||
A force field has 2 parts: the formulas that define it and the
|
||||
coefficients used for a particular system. Here we only discuss
|
||||
formulas implemented in LAMMPS that correspond to formulas commonly
|
||||
used in the CHARMM, AMBER, and DREIDING force fields. Setting
|
||||
coefficients is done in the input data file via the
|
||||
"read_data"_read_data.html command or in the input script with
|
||||
used in the CHARMM, AMBER, COMPASS, and DREIDING force fields. Setting
|
||||
coefficients is done either from special sections in an input data file
|
||||
via the "read_data"_read_data.html command or in the input script with
|
||||
commands like "pair_coeff"_pair_coeff.html or
|
||||
"bond_coeff"_bond_coeff.html. See the "Tools"_Tools.html doc page for
|
||||
additional tools that can use CHARMM or AMBER to assign force field
|
||||
coefficients and convert their output into LAMMPS input.
|
||||
"bond_coeff"_bond_coeff.html and so on. See the "Tools"_Tools.html doc
|
||||
page for additional tools that can use CHARMM, AMBER, or Materials
|
||||
Studio generated files to assign force field coefficients and convert
|
||||
their output into LAMMPS input.
|
||||
|
||||
See "(MacKerell)"_#howto-MacKerell for a description of the CHARMM force
|
||||
field. See "(Cornell)"_#howto-Cornell for a description of the AMBER force
|
||||
field.
|
||||
field. See "(Cornell)"_#howto-Cornell for a description of the AMBER
|
||||
force field. See "(Sun)"_#howto-Sun for a description of the COMPASS
|
||||
force field.
|
||||
|
||||
:link(charmm,http://www.scripps.edu/brooks)
|
||||
:link(amber,http://amber.scripps.edu)
|
||||
|
||||
These style choices compute force field formulas that are consistent
|
||||
with common options in CHARMM or AMBER. See each command's
|
||||
documentation for the formula it computes.
|
||||
The interaction styles listed below compute force field formulas that
|
||||
are consistent with common options in CHARMM or AMBER. See each
|
||||
command's documentation for the formula it computes.
|
||||
|
||||
"bond_style"_bond_harmonic.html harmonic
|
||||
"angle_style"_angle_charmm.html charmm
|
||||
@ -44,28 +46,54 @@ documentation for the formula it computes.
|
||||
"special_bonds"_special_bonds.html charmm
|
||||
"special_bonds"_special_bonds.html amber :ul
|
||||
|
||||
NOTE: For CHARMM, newer {charmmfsw} or {charmmfsh} styles were
|
||||
released in March 2017. We recommend they be used instead of the
|
||||
older {charmm} styles. See discussion of the differences on the "pair
|
||||
charmm"_pair_charmm.html and "dihedral charmm"_dihedral_charmm.html
|
||||
doc pages.
|
||||
NOTE: For CHARMM, newer {charmmfsw} or {charmmfsh} styles were released
|
||||
in March 2017. We recommend they be used instead of the older {charmm}
|
||||
styles. See discussion of the differences on the "pair
|
||||
charmm"_pair_charmm.html and "dihedral charmm"_dihedral_charmm.html doc
|
||||
pages.
|
||||
|
||||
COMPASS is a general force field for atomistic simulation of common
|
||||
organic molecules, inorganic small molecules, and polymers which was
|
||||
developed using ab initio and empirical parameterization techniques.
|
||||
See the "Tools"_Tools.html doc page for the msi2lmp tool for creating
|
||||
LAMMPS template input and data files from BIOVIA's Materials Studio
|
||||
files. Please note that the msi2lmp tool is very old and largely
|
||||
unmaintained, so it does not support all features of Materials Studio
|
||||
provided force field files, especially additions during the last decade.
|
||||
You should watch the output carefully and compare results, where
|
||||
possible. See "(Sun)"_#howto-Sun for a description of the COMPASS force
|
||||
field.
|
||||
|
||||
These interaction styles listed below compute force field formulas that
|
||||
are consistent with the COMPASS force field. See each command's
|
||||
documentation for the formula it computes.
|
||||
|
||||
"bond_style"_bond_class2.html class2
|
||||
"angle_style"_angle_class2.html class2
|
||||
"dihedral_style"_dihedral_class2.html class2
|
||||
"improper_style"_improper_class2.html class2 :ul
|
||||
|
||||
"pair_style"_pair_class2.html lj/class2
|
||||
"pair_style"_pair_class2.html lj/class2/coul/cut
|
||||
"pair_style"_pair_class2.html lj/class2/coul/long :ul
|
||||
|
||||
"special_bonds"_special_bonds.html lj/coul 0 0 1 :ul
|
||||
|
||||
DREIDING is a generic force field developed by the "Goddard
|
||||
group"_http://www.wag.caltech.edu at Caltech and is useful for
|
||||
predicting structures and dynamics of organic, biological and
|
||||
main-group inorganic molecules. The philosophy in DREIDING is to use
|
||||
general force constants and geometry parameters based on simple
|
||||
hybridization considerations, rather than individual force constants
|
||||
and geometric parameters that depend on the particular combinations of
|
||||
atoms involved in the bond, angle, or torsion terms. DREIDING has an
|
||||
"explicit hydrogen bond term"_pair_hbond_dreiding.html to describe
|
||||
interactions involving a hydrogen atom on very electronegative atoms
|
||||
(N, O, F).
|
||||
predicting structures and dynamics of organic, biological and main-group
|
||||
inorganic molecules. The philosophy in DREIDING is to use general force
|
||||
constants and geometry parameters based on simple hybridization
|
||||
considerations, rather than individual force constants and geometric
|
||||
parameters that depend on the particular combinations of atoms involved
|
||||
in the bond, angle, or torsion terms. DREIDING has an "explicit hydrogen
|
||||
bond term"_pair_hbond_dreiding.html to describe interactions involving a
|
||||
hydrogen atom on very electronegative atoms (N, O, F).
|
||||
|
||||
See "(Mayo)"_#howto-Mayo for a description of the DREIDING force field
|
||||
|
||||
These style choices compute force field formulas that are consistent
|
||||
with the DREIDING force field. See each command's
|
||||
The interaction styles listed below compute force field formulas that
|
||||
are consistent with the DREIDING force field. See each command's
|
||||
documentation for the formula it computes.
|
||||
|
||||
"bond_style"_bond_harmonic.html harmonic
|
||||
@ -100,6 +128,9 @@ Fischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998).
|
||||
[(Cornell)] Cornell, Cieplak, Bayly, Gould, Merz, Ferguson,
|
||||
Spellmeyer, Fox, Caldwell, Kollman, JACS 117, 5179-5197 (1995).
|
||||
|
||||
:link(howto-Sun)
|
||||
[(Sun)] Sun, J. Phys. Chem. B, 102, 7338-7364 (1998).
|
||||
|
||||
:link(howto-Mayo)
|
||||
[(Mayo)] Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909
|
||||
(1990).
|
||||
|
||||
@ -29,3 +29,5 @@ diffusion coefficient. The instantaneous VACF values can be
|
||||
accumulated in a vector via the "fix vector"_fix_vector.html command,
|
||||
and time integrated via the "variable trap"_variable.html function,
|
||||
and thus extract D.
|
||||
|
||||
:line
|
||||
|
||||
@ -274,7 +274,7 @@ crash. Even without reaching this extreme case, the correlation
|
||||
between nearby dipoles on the same molecule may be exaggerated. Often,
|
||||
special bond relations prevent bonded neighboring atoms to see the
|
||||
charge of each other's DP, so that the problem does not always appear.
|
||||
It is possible to use screened dipole dipole interactions by using the
|
||||
It is possible to use screened dipole-dipole interactions by using the
|
||||
"{pair_style thole}"_pair_thole.html. This is implemented as a
|
||||
correction to the Coulomb pair_styles, which dampens at short distance
|
||||
the interactions between the charges representing the induced dipoles.
|
||||
|
||||
@ -166,9 +166,6 @@ void lammps_gather_atoms_subset(void *, char *, int, int, int, int *, void *)
|
||||
void lammps_scatter_atoms(void *, char *, int, int, void *)
|
||||
void lammps_scatter_atoms_subset(void *, char *, int, int, int, int *, void *) :pre
|
||||
|
||||
void lammps_create_atoms(void *, int, tagint *, int *, double *, double *,
|
||||
imageint *, int) :pre
|
||||
|
||||
The gather functions collect peratom info of the requested type (atom
|
||||
coords, atom types, forces, etc) from all processors, and returns the
|
||||
same vector of values to each calling processor. The scatter
|
||||
@ -176,6 +173,11 @@ functions do the inverse. They distribute a vector of peratom values,
|
||||
passed by all calling processors, to individual atoms, which may be
|
||||
owned by different processors.
|
||||
|
||||
IMPORTANT NOTE: These functions are not compatible with the
|
||||
-DLAMMPS_BIGBIG setting when compiling LAMMPS. Dummy functions
|
||||
that result in an error message and abort will be substituted
|
||||
instead of resulting in random crashes and memory corruption.
|
||||
|
||||
The lammps_gather_atoms() function does this for all N atoms in the
|
||||
system, ordered by atom ID, from 1 to N. The
|
||||
lammps_gather_atoms_concat() function does it for all N atoms, but
|
||||
@ -196,6 +198,9 @@ those values to each atom in the system. The
|
||||
lammps_scatter_atoms_subset() function takes a subset of IDs as an
|
||||
argument and only scatters those values to the owning atoms.
|
||||
|
||||
void lammps_create_atoms(void *, int, tagint *, int *, double *, double *,
|
||||
imageint *, int) :pre
|
||||
|
||||
The lammps_create_atoms() function takes a list of N atoms as input
|
||||
with atom types and coords (required), an optionally atom IDs and
|
||||
velocities and image flags. It uses the coords of each atom to assign
|
||||
|
||||
@ -57,6 +57,17 @@ library is then loaded by the Python interface. In this example we enable the
|
||||
MOLECULE package and compile LAMMPS with C++ exceptions, PNG, JPEG and FFMPEG
|
||||
output support enabled.
|
||||
|
||||
Step 1a: For the CMake based build system, the steps are:
|
||||
|
||||
mkdir $LAMMPS_DIR/build-shared
|
||||
cd $LAMMPS_DIR/build-shared :pre
|
||||
|
||||
# MPI, PNG, Jpeg, FFMPEG are auto-detected
|
||||
cmake ../cmake -DPKG_MOLECULE=yes -DLAMMPS_EXCEPTIONS=yes -DBUILD_LIB=yes -DBUILD_SHARED_LIBS=yes
|
||||
make :pre
|
||||
|
||||
Step 1b: For the legacy, make based build system, the steps are:
|
||||
|
||||
cd $LAMMPS_DIR/src :pre
|
||||
|
||||
# add packages if necessary
|
||||
@ -68,10 +79,9 @@ make mpi mode=shlib LMP_INC="-DLAMMPS_PNG -DLAMMPS_JPEG -DLAMMPS_FFMPEG -DLAMMPS
|
||||
Step 2: Installing the LAMMPS Python package :h6
|
||||
|
||||
PyLammps is part of the lammps Python package. To install it simply install
|
||||
that package into your current Python installation.
|
||||
that package into your current Python installation with:
|
||||
|
||||
cd $LAMMPS_DIR/python
|
||||
python install.py :pre
|
||||
make install-python :pre
|
||||
|
||||
NOTE: Recompiling the shared library requires re-installing the Python package
|
||||
|
||||
@ -94,14 +104,21 @@ apt-get install python-virtualenv :pre
|
||||
|
||||
Creating a virtualenv with lammps installed :h6
|
||||
|
||||
# create virtualenv name 'testing' :pre
|
||||
# create virtualenv named 'testing'
|
||||
virtualenv $HOME/python/testing :pre
|
||||
|
||||
# activate 'testing' environment
|
||||
source testing/bin/activate :pre
|
||||
source $HOME/python/testing/bin/activate :pre
|
||||
|
||||
Now configure and compile the LAMMPS shared library as outlined above.
|
||||
When using CMake and the shared library has already been build, you
|
||||
need to re-run CMake to update the location of the python executable
|
||||
to the location in the virtual environment with:
|
||||
|
||||
cmake . -DPYTHON_EXECUTABLE=$(which python) :pre
|
||||
|
||||
# install LAMMPS package in virtualenv
|
||||
(testing) cd $LAMMPS_DIR/python
|
||||
(testing) python install.py :pre
|
||||
(testing) make install-python :pre
|
||||
|
||||
# install other useful packages
|
||||
(testing) pip install matplotlib jupyter mpi4py :pre
|
||||
|
||||
@ -17,6 +17,7 @@ periodically.
|
||||
These are the relevant commands:
|
||||
|
||||
"neb"_neb.html for nudged elastic band calculations
|
||||
"neb_spin"_neb_spin.html for magnetic nudged elastic band calculations
|
||||
"prd"_prd.html for parallel replica dynamics
|
||||
"tad"_tad.html for temperature accelerated dynamics
|
||||
"temper"_temper.html for parallel tempering
|
||||
|
||||