Compare commits
1193 Commits
patch_22Au
...
patch_8Feb
| Author | SHA1 | Date | |
|---|---|---|---|
| b29d526632 | |||
| 77c24f1b79 | |||
| b4765683da | |||
| f286155dd3 | |||
| f04d97e66e | |||
| b871b4e13d | |||
| 8b449e569b | |||
| be6c2d781b | |||
| a35f407dfc | |||
| 82355342bf | |||
| 773476634b | |||
| 1b4ed9cb8d | |||
| 997727d26c | |||
| a71159578e | |||
| ae85ca18fc | |||
| 4d192e541e | |||
| 8da5289638 | |||
| ad8aeb8b00 | |||
| f80c577b3c | |||
| 510641c065 | |||
| 019e534f80 | |||
| ebcbc5bdbd | |||
| c9a7513dc6 | |||
| 17cd92a3f2 | |||
| 0c4e76ce84 | |||
| 7e1f760b72 | |||
| b417cfda9b | |||
| 64834e4a3d | |||
| d6eaf73db1 | |||
| 2b5073fb90 | |||
| f2a977884c | |||
| bc2eeaf22a | |||
| 5c927d484e | |||
| 8ee1fefe19 | |||
| 763dda64af | |||
| a9f8b17cbd | |||
| f28ab59695 | |||
| 2e60e461a0 | |||
| d6a918f4fd | |||
| 7606529f03 | |||
| cdb07f9f06 | |||
| 0cce3387bb | |||
| a93d8dda3c | |||
| 327ca344ff | |||
| c5256624e8 | |||
| ae6fb92478 | |||
| 14ab0ec459 | |||
| 8338969af5 | |||
| ef5c327f74 | |||
| 06d5c1d62f | |||
| 0e1c6082b0 | |||
| a59a385d6e | |||
| d2846404bd | |||
| ee5f39d895 | |||
| 1d6bf1ea7d | |||
| ccdfde4978 | |||
| 136e247cd8 | |||
| 8cc593fe6b | |||
| f7bb48102f | |||
| bad6c8aa35 | |||
| 1465352454 | |||
| 0cae619320 | |||
| 54b9a1335c | |||
| b7ab017a76 | |||
| 4fcfa4987a | |||
| 53f600ea35 | |||
| 8c323a7056 | |||
| 21dac57c7c | |||
| 6c72d15c31 | |||
| f2aab01e96 | |||
| fb30d2d078 | |||
| 1927659fb1 | |||
| 272ff1dbdf | |||
| 06c8a67247 | |||
| 1e3cc7784b | |||
| e83600eee3 | |||
| 5c09732dc3 | |||
| 82905dc62d | |||
| 89a3f60289 | |||
| a6ecd3d08c | |||
| 1be589fb33 | |||
| 536e34974a | |||
| 4464f62c8f | |||
| 57b804eecf | |||
| a432b668f6 | |||
| 985913bce2 | |||
| f88c5e147a | |||
| 48542f1832 | |||
| 098f2906e0 | |||
| f2544fa738 | |||
| 0bfb34389b | |||
| bdbb36e570 | |||
| 012d5a55bf | |||
| 5f3a7cbc33 | |||
| fbee21f495 | |||
| 7a10ac2019 | |||
| a5248090fa | |||
| ade023861d | |||
| 24bede9fff | |||
| 54a481ef1f | |||
| dd3dbfaee2 | |||
| 9caf0ce3e1 | |||
| ca31147d00 | |||
| 7ec6e4b262 | |||
| 874e4fdafc | |||
| 60b137f241 | |||
| 794bf5084c | |||
| fb6942a325 | |||
| e789715d92 | |||
| 0fde0f99bc | |||
| 49da946398 | |||
| 53673cd99c | |||
| cab3380b55 | |||
| bd3b712902 | |||
| e5b86910e9 | |||
| b3747ce99b | |||
| 037cdfe046 | |||
| 3609a33eb8 | |||
| 94dc5e1133 | |||
| 683f8854c2 | |||
| f8a8704ef4 | |||
| 6702f65fbb | |||
| 1ae112e563 | |||
| cea0855fe4 | |||
| d01c28002f | |||
| 54679b69f4 | |||
| dc5385b290 | |||
| 659bec582e | |||
| 2604b60eb8 | |||
| 718428df68 | |||
| 4eb141391b | |||
| 23ad82a074 | |||
| b20be581c1 | |||
| ef25afcedb | |||
| e4cf409d69 | |||
| c3a15e221d | |||
| 59559f74e6 | |||
| 1e1f754d0c | |||
| 8d4bfa1aa7 | |||
| 3aacea671e | |||
| 4e7329151d | |||
| aad8dd1462 | |||
| 1dbdadcf89 | |||
| 7a4b6526de | |||
| 16b8c94aae | |||
| 62b4c69360 | |||
| 261122d59c | |||
| a5ce656c32 | |||
| b0af54ac37 | |||
| 4ec21e1b31 | |||
| a3b45d789a | |||
| 15b475690c | |||
| cf00346db4 | |||
| 4155b88468 | |||
| bedbf408f7 | |||
| 6f8c544a7d | |||
| 6fbd0c08cc | |||
| 3cbf009ce6 | |||
| 48cbfc2b1b | |||
| 8387b2953b | |||
| e82999ecb4 | |||
| 4377662a1e | |||
| 31a712b510 | |||
| 57df2d81e4 | |||
| e572235ecf | |||
| 60693a5f8a | |||
| 61c36dd768 | |||
| 7fe7dd95d0 | |||
| 06f9933c55 | |||
| 3d374aa8b3 | |||
| 98e0d6eab2 | |||
| 5ec9623294 | |||
| 43edcf4c02 | |||
| 9ae84bc367 | |||
| ca6c1c4b41 | |||
| 0cc9a445e8 | |||
| c26b2078ee | |||
| 856c325ac4 | |||
| 7323179de3 | |||
| 19e12aada5 | |||
| abcba913ab | |||
| f96f98241c | |||
| fd18660463 | |||
| 1991ff6c48 | |||
| f25bfd5931 | |||
| 6e866f82a7 | |||
| 01163c9ae8 | |||
| e7361728a1 | |||
| 37a597cc0f | |||
| 2e70541134 | |||
| 991ca25dd7 | |||
| 444dcca433 | |||
| 25a4fd4793 | |||
| dd6688609d | |||
| 4725d4be20 | |||
| 9355e7e5cc | |||
| cf3aee06f3 | |||
| bad7be4126 | |||
| 08455b9cc3 | |||
| c588b44cf1 | |||
| 31427a2380 | |||
| 7177c541d4 | |||
| dd028e9071 | |||
| 484b4f2f0e | |||
| 89ca07c76e | |||
| 92e1cbe788 | |||
| 3a7350575c | |||
| 99ace5b435 | |||
| b19ee27f86 | |||
| 2d4411130f | |||
| cc1c93a3d9 | |||
| f8a5a78c2c | |||
| e2d871ac23 | |||
| 6ebef96c23 | |||
| 8cc4354894 | |||
| 685ed827d7 | |||
| 5fb8f23cb4 | |||
| ba3ee71edf | |||
| caba050f29 | |||
| 6c839eb667 | |||
| 6dcd0ccfc3 | |||
| 68b62bec29 | |||
| 90e125a73a | |||
| 96eb0ad527 | |||
| d91c7f38f6 | |||
| 968e56694f | |||
| 0ad44efe24 | |||
| 6625a066b6 | |||
| 980f7e3b36 | |||
| 34e0c05b09 | |||
| 5508438ba1 | |||
| f7a2cd689b | |||
| 24e2d4bb49 | |||
| 875f7776c6 | |||
| 94a4b59961 | |||
| ea8376b3fa | |||
| deb21ad4e2 | |||
| 4f38878cf4 | |||
| 6f33ce9dba | |||
| e39ba20e42 | |||
| 5b0c43108d | |||
| 0ed4da0bf9 | |||
| 96c7f256f9 | |||
| 02bdda0d05 | |||
| be3c80829a | |||
| 0a610cb482 | |||
| 5362b1cfde | |||
| f2f7bcfa5a | |||
| d15e4b1546 | |||
| c4f7b36dc5 | |||
| ba98cff5a8 | |||
| 04b365818e | |||
| 35cfedab39 | |||
| 3ad4c0db35 | |||
| 113a2e328e | |||
| ad1b1897d8 | |||
| bbe863f1ac | |||
| eeaeab0832 | |||
| 264dd59c75 | |||
| 8422bf64fa | |||
| 70868ca070 | |||
| 30017697e3 | |||
| 0b5c273e2d | |||
| 052828284d | |||
| 1933c2eb5f | |||
| e2c39a1acd | |||
| e86b933862 | |||
| 52a1f257c5 | |||
| dedc6cf20c | |||
| 93efe3e40e | |||
| 3f49eb8515 | |||
| 1de2f5fc01 | |||
| a9c3b8aca0 | |||
| 054c525842 | |||
| 8b5887bfb1 | |||
| fb08d3ea46 | |||
| 7d3caaa1a4 | |||
| b6b813459b | |||
| 8f95cdcb27 | |||
| 802bf4bc1f | |||
| 4078c7897e | |||
| e6321e1020 | |||
| 0165f18d59 | |||
| c36f8390d2 | |||
| 57204a0f66 | |||
| 4f00984bbc | |||
| f02eab3990 | |||
| 4792ff1dc2 | |||
| 998a512143 | |||
| 29dcf8348b | |||
| 1bd81db9b3 | |||
| a30e1b2670 | |||
| 4a4dbc7da5 | |||
| 0244841b27 | |||
| ee98dc0b96 | |||
| e61b553bb3 | |||
| f8da830c07 | |||
| 20eca799b1 | |||
| d802817cca | |||
| 8ce60d8761 | |||
| c44620f00e | |||
| a5f75bbabd | |||
| 685a8bfc62 | |||
| cd0924ca4c | |||
| afaaf442d3 | |||
| 18f7e96e8a | |||
| 984f415196 | |||
| e01ba84fd2 | |||
| e37436d646 | |||
| 00d719459f | |||
| 9ee076e4c7 | |||
| fa7e02ea71 | |||
| cf3aee9083 | |||
| 45b6b4bf52 | |||
| be721fe75a | |||
| 4168855ba3 | |||
| 4adbacf8e5 | |||
| d603d084c4 | |||
| 46c0be57de | |||
| db2c8887cf | |||
| e5c555fa7d | |||
| ee82143a29 | |||
| a0bd1bd755 | |||
| aeb7854aca | |||
| ac51d0fb89 | |||
| 22f99be57e | |||
| 55077cea4d | |||
| 98728cddbe | |||
| e1aff27cd4 | |||
| 4af7e706d7 | |||
| 1c795a6be3 | |||
| d14404254e | |||
| 4ec05a3389 | |||
| c69fc90588 | |||
| 53e66dcd15 | |||
| 482e120af4 | |||
| 67041a5446 | |||
| f380a03a07 | |||
| 7b68655c4d | |||
| dd84b5c975 | |||
| 1f210a246e | |||
| 5d2730f055 | |||
| e4ca5b1889 | |||
| 4e9b987fec | |||
| f92e61c58d | |||
| cda3227b05 | |||
| 6705777f7b | |||
| 4b8c6d40e2 | |||
| 46bf4b7efb | |||
| cef4164460 | |||
| 074a9663cb | |||
| d67dad9d67 | |||
| 41e24f6e8b | |||
| e3ddefb38b | |||
| ea6d8a5dca | |||
| 09abc0c75a | |||
| 6be4ce7137 | |||
| 78f86d5f16 | |||
| cb2964af4c | |||
| c42776e4e1 | |||
| c763916f9e | |||
| eda79bd1c2 | |||
| 798f098e4a | |||
| 3508eca337 | |||
| 9646d4614f | |||
| 48a408bb19 | |||
| a4d21370bf | |||
| 9702899d1c | |||
| 8e07aaf005 | |||
| 4a8f1a7a08 | |||
| 37289f7476 | |||
| 3ce61c42d6 | |||
| 98c8f22046 | |||
| 296cab0b09 | |||
| ab924e4f1d | |||
| 852916983a | |||
| d0a83e9e12 | |||
| 2ed90c1669 | |||
| c428088554 | |||
| 77e7362168 | |||
| 22e774adef | |||
| 8213287966 | |||
| a4684e2629 | |||
| 0d9e3779b8 | |||
| 1616886c97 | |||
| 2d0d08093b | |||
| 3d5423f5da | |||
| 55654ca68e | |||
| 32abe35201 | |||
| c87bdda9a8 | |||
| 1b50ad02fb | |||
| c0ab126e77 | |||
| f254b8e3a3 | |||
| ebacd5ca6b | |||
| 79fafcb12c | |||
| dbc798e286 | |||
| 6e8c537564 | |||
| d43f229162 | |||
| 00b138f542 | |||
| 1fdfc89d25 | |||
| d6ea31e143 | |||
| 91b96fa0c9 | |||
| c980dd0a56 | |||
| 3ad74985eb | |||
| aa0b9684dc | |||
| 05fb2d7587 | |||
| 5df2f92651 | |||
| 55359789fb | |||
| e0ff230268 | |||
| b3975f4b14 | |||
| c61da28f0a | |||
| 1ddbd24a4e | |||
| 6745c37741 | |||
| 4434481c91 | |||
| c42d07d907 | |||
| 79b3e9e27d | |||
| cce874dfb4 | |||
| 4004b8f161 | |||
| 96b971875f | |||
| bfaa2e9ee1 | |||
| a010780808 | |||
| 32b3ff6cd7 | |||
| 179e84f282 | |||
| f50ff9a9e3 | |||
| 5af7f52370 | |||
| b76c7ddc84 | |||
| d1255ab572 | |||
| 5efd8c06b1 | |||
| 900ecc170a | |||
| b1b6980d32 | |||
| 689334706f | |||
| a91d89b516 | |||
| 385cf2e1fc | |||
| 090fc7bc8a | |||
| d359beb170 | |||
| 719f719496 | |||
| 421f97e444 | |||
| 9f960baa4f | |||
| 981f56840e | |||
| 4c021dad37 | |||
| 4251c70e93 | |||
| 0bcb1bd301 | |||
| c6c00ee7ee | |||
| 6f7b052e24 | |||
| 9b401b6ed0 | |||
| b34dac41c2 | |||
| 13ae678f39 | |||
| 8a94a32551 | |||
| b6f0fe4c2d | |||
| 809bd855b6 | |||
| 4dc2f9c6c4 | |||
| c49c35e41d | |||
| 1597e78d5a | |||
| a7bfb30043 | |||
| 1d4e1f1425 | |||
| d7abb8cf4d | |||
| da88305f4d | |||
| 177a5ddb7a | |||
| bbcb659158 | |||
| dc6054fc2d | |||
| 0264edfcec | |||
| a66384cfea | |||
| fd4262805d | |||
| 0d72c3769d | |||
| 177733ecdd | |||
| 0b60bf65d1 | |||
| c5c26abdd3 | |||
| 5974741eea | |||
| d8f540a433 | |||
| 0a96b891ef | |||
| 11de8dafe3 | |||
| 2c979e878f | |||
| cf79751f4f | |||
| e4dee3de17 | |||
| 6e225d90fc | |||
| 1fc3b4618c | |||
| eae9d27f6d | |||
| db29ec7eee | |||
| 090778c42b | |||
| db935dba5e | |||
| e160376365 | |||
| d5f222464b | |||
| 4d9e2a014b | |||
| 8a4983e4bc | |||
| 82d6aa9add | |||
| 4231ab3d57 | |||
| 25914ea3f3 | |||
| 47bf9f73be | |||
| 003bb28471 | |||
| a557644939 | |||
| 04520e627d | |||
| 952e52982e | |||
| a942d8b3ba | |||
| 7a22b8aa62 | |||
| 4c1fbc359a | |||
| 2c644c5f2e | |||
| b1186a971e | |||
| 2dbd575a4b | |||
| 4805e1df22 | |||
| 380f0e4971 | |||
| a026ce9669 | |||
| 7e779d16de | |||
| b776f0f29f | |||
| 443644025f | |||
| c4c90a96ec | |||
| 5cb2463204 | |||
| 5a4e44b75a | |||
| 0ca02b6f41 | |||
| 2b96dfd6cc | |||
| c22c6e4d34 | |||
| b2d67bcbb5 | |||
| b3f08b38a2 | |||
| 8e9d4f5bce | |||
| fe07ad279d | |||
| 5062c43aea | |||
| 90caf0019c | |||
| 3b7ebbb8df | |||
| d7a479d2f6 | |||
| 0c8ce199af | |||
| 4a6f088c0b | |||
| 56598fcd0b | |||
| 265c11dca9 | |||
| d6631266ce | |||
| fbd610b8a9 | |||
| 86d1304176 | |||
| f68d77c7af | |||
| 7a4f534676 | |||
| 729201ab93 | |||
| ab8215a669 | |||
| fe04147ee0 | |||
| 62b1159673 | |||
| adeb0c2b54 | |||
| 1651a21f92 | |||
| cbae3b5afa | |||
| f2a29880e2 | |||
| e0955f6434 | |||
| 3681bc853d | |||
| a6e9b99295 | |||
| 893a51ce14 | |||
| 80ee08482c | |||
| bbb371134d | |||
| a1e8992eac | |||
| baa7b705b8 | |||
| 2d12260ade | |||
| 31277349c6 | |||
| df232c1cf6 | |||
| bdf73f7adb | |||
| 84fcf01bed | |||
| cc0d685e8e | |||
| 5196fa37e0 | |||
| 4e6253254c | |||
| 562296bdb7 | |||
| 91c4ef6f64 | |||
| f46d6a4312 | |||
| cb828e9579 | |||
| ed77701e56 | |||
| 7ed6cab040 | |||
| ce7f76de1d | |||
| 58d2f0cc57 | |||
| ab7aa9dfda | |||
| 6d1ea2d0b1 | |||
| a3ca177d20 | |||
| a3c0fe7726 | |||
| a051d61e1f | |||
| 8cb665f013 | |||
| cb8c51e353 | |||
| a37d718ed1 | |||
| f7aa01d74a | |||
| badfdd7433 | |||
| ac11d66d5a | |||
| 18216de084 | |||
| 3cb2291a5a | |||
| 54c52c3bdf | |||
| df3390e224 | |||
| d185b34b19 | |||
| 30518a993b | |||
| b7e507a258 | |||
| ea9746f26d | |||
| 2635f7d160 | |||
| 85a5cab663 | |||
| b1c50e3bbe | |||
| 0c7c344e19 | |||
| b67e54dd7d | |||
| 5821a5ecc8 | |||
| 20b9c7fd79 | |||
| a66d4c7451 | |||
| 7514838700 | |||
| 1fccb391a6 | |||
| 688945a0ef | |||
| 50b99c8450 | |||
| 446b05ebc1 | |||
| 2a5cd1d31e | |||
| 3faecc4d28 | |||
| e992bf935b | |||
| 42068944aa | |||
| e3b89b60dc | |||
| e70a9b0f26 | |||
| 113539b053 | |||
| ba6f6f73f1 | |||
| c838a9fd48 | |||
| fb4df86d3d | |||
| 1bae30c295 | |||
| 044507640f | |||
| bcc7a4c32f | |||
| 283096d1d5 | |||
| 079134255d | |||
| 25b425dbb0 | |||
| bee2cb96fa | |||
| 360aca581c | |||
| 21661f84db | |||
| a662afe970 | |||
| 3a082e227e | |||
| 54d728c0c7 | |||
| ae499b980d | |||
| 925d6d37b9 | |||
| bdf3764905 | |||
| bfbf5695fd | |||
| e788ffe210 | |||
| 3cc9384488 | |||
| a60b6d1ab8 | |||
| 174b180a41 | |||
| 7bbd8644c8 | |||
| f36b7e38a8 | |||
| f70af61b35 | |||
| a2671f8943 | |||
| 0a4007c55b | |||
| 85c8877aeb | |||
| 4fa78a78de | |||
| ff9f836be4 | |||
| 2e79d9f340 | |||
| 2428c1c1f3 | |||
| 0e213b80e9 | |||
| 2c1f420a48 | |||
| 07f92d225e | |||
| 7e5ec96bcd | |||
| c8870f1b78 | |||
| 7069b52a44 | |||
| 45f28517ef | |||
| fccc26758b | |||
| b6b6270716 | |||
| 0293dee9b2 | |||
| 6107f00e9d | |||
| 1d38f2d725 | |||
| 4a5c14f60d | |||
| aa27c8f733 | |||
| da38ae0370 | |||
| 527ec61586 | |||
| 8649081904 | |||
| c0dd187802 | |||
| 3661836a3b | |||
| 76a2a9ab0a | |||
| 8223f5e0a3 | |||
| 07a499fcc1 | |||
| 8aecefe233 | |||
| 2140caa6f5 | |||
| fb6f019a11 | |||
| 79da210dc4 | |||
| 348febdf4b | |||
| 0783f8ad2f | |||
| 3a735d15d4 | |||
| 04a4a29fcf | |||
| 52f02f2bbb | |||
| f82a8493fa | |||
| 8cd70f7d78 | |||
| 27a46cec8c | |||
| 15de09683e | |||
| f542590090 | |||
| 01c3ab5979 | |||
| 709013be5a | |||
| db32373b32 | |||
| 9d7c4ac5f2 | |||
| 0ec94b2ad6 | |||
| 83c830fd8a | |||
| 3a4bef351c | |||
| da84138475 | |||
| 2f52eee6bf | |||
| 80e0dddae0 | |||
| 1c994bda46 | |||
| f5206d2f7b | |||
| 9bca5ae607 | |||
| d1f260a765 | |||
| 36a1ca7e72 | |||
| 5f1c77ced2 | |||
| dc89bdd924 | |||
| a979c6eeec | |||
| cc6f1be82d | |||
| 9090fd0255 | |||
| 7deb1df2b6 | |||
| d9dd80b368 | |||
| 4015b36a1a | |||
| dcde84eb53 | |||
| 7bb5821baf | |||
| 2b0e474729 | |||
| 65ebbdada3 | |||
| b71f530bd0 | |||
| 0ec9b9a71a | |||
| 2273604533 | |||
| 6e99b3d8ff | |||
| bea0a3091d | |||
| 7968d2ed22 | |||
| 382e91cf5b | |||
| ce63a22783 | |||
| 00c75ecb74 | |||
| 8224c89f93 | |||
| a223338b47 | |||
| 8eb74d8fb3 | |||
| e5c6b6987a | |||
| 8cbee78725 | |||
| c37deebffa | |||
| c142288eb3 | |||
| 7faa48b4c3 | |||
| a1266a1a1e | |||
| 7cce002cf9 | |||
| 2def00d4c9 | |||
| 3d0722b974 | |||
| 747f72aca2 | |||
| 1b76e14224 | |||
| 9a0c02a845 | |||
| 70bee26641 | |||
| 7416e113ff | |||
| 791024586e | |||
| 962fd1df90 | |||
| dc6123fafc | |||
| 3c41295e70 | |||
| e7ca200e97 | |||
| 8b944e06f0 | |||
| 8960774b16 | |||
| 1e9778b81e | |||
| d805796cd7 | |||
| 0c1ff5ac3e | |||
| 43ae9656d7 | |||
| 61e2cd3f61 | |||
| e024658cec | |||
| 17853aef20 | |||
| 7f8302b65b | |||
| fd20eb93b2 | |||
| b16a83cddc | |||
| b02d3b1b94 | |||
| a1a9f34c18 | |||
| c3abf13af1 | |||
| cdea8968c2 | |||
| 9e9b97231c | |||
| a549752764 | |||
| 590ab1661e | |||
| 08b135ce6b | |||
| a6ba55080f | |||
| e3b80e734a | |||
| 177044cd07 | |||
| ff7449b29a | |||
| 13d3903e8d | |||
| f81836d605 | |||
| 57b2f60556 | |||
| c7c0defa77 | |||
| ac658a17fc | |||
| b5a5270f4a | |||
| b481af51d6 | |||
| 69c3ff560e | |||
| af5ac6bcdf | |||
| 89c0655809 | |||
| 3a0cfc1d57 | |||
| dba8f9c62b | |||
| ca3a64ea3e | |||
| 4b4f7d6ee0 | |||
| 66bfdd20d4 | |||
| 990a93f9d9 | |||
| d5e71e7099 | |||
| 14251948f3 | |||
| 799ffc58d9 | |||
| a333fdac30 | |||
| ffbc33bea5 | |||
| 12d2dd201a | |||
| 497af2ebb9 | |||
| 21c59d4cf0 | |||
| 4fe23c3854 | |||
| 1de76c33fd | |||
| 2da999d864 | |||
| e4d4f3a775 | |||
| f58aa05e02 | |||
| 9ae6cb5c4f | |||
| f23b638d47 | |||
| e1627caf04 | |||
| 5481e99331 | |||
| 91286ddb0e | |||
| cf0f3b6b61 | |||
| 8e7ddff6dc | |||
| 7987f3319e | |||
| b07adbf98c | |||
| a9b8a6521d | |||
| 5a6226caa5 | |||
| 37fe03c0ab | |||
| 93e56c113a | |||
| e5ddc909ad | |||
| aefdcd0f94 | |||
| 36c5fb2ec6 | |||
| 918030bf1c | |||
| de010551cf | |||
| 6e546ef5af | |||
| dd39bc44ee | |||
| 5aeba421bb | |||
| 37201beda5 | |||
| c705e8d0e6 | |||
| cda89283aa | |||
| c2758a0b55 | |||
| 9c58834af2 | |||
| 4bfac61b1a | |||
| 8dff5fd5d7 | |||
| e9ed95c2db | |||
| 33e33048bf | |||
| d753c51c45 | |||
| e2293cc7df | |||
| 0c287a55cd | |||
| 5f6b5c5400 | |||
| 494b149272 | |||
| 39ee7876c4 | |||
| 8fa80081df | |||
| e14db00d52 | |||
| 7054800932 | |||
| 01beaf38a1 | |||
| 83b6d6ae96 | |||
| 6ae4bdead5 | |||
| 1f5885fc45 | |||
| 92b508f14c | |||
| b7c75b6c4e | |||
| c3ece2f086 | |||
| 7f328d3f79 | |||
| 983e8bb110 | |||
| 0305cca1df | |||
| 3d2c731709 | |||
| 02b653c0ce | |||
| a33f45f176 | |||
| a903e64947 | |||
| 46b87518b8 | |||
| 45682f8695 | |||
| 2faa34b2be | |||
| 075d366051 | |||
| 3b073de357 | |||
| 6f379f54d6 | |||
| e325c78628 | |||
| b488f1072e | |||
| 0384ef8967 | |||
| 25907c856e | |||
| 861a7acdf0 | |||
| f7cdf2a7b8 | |||
| aea148a86a | |||
| dd64c063cf | |||
| 44fcdc4024 | |||
| 947f574503 | |||
| 5c4434b283 | |||
| 8f8aee65d2 | |||
| d7b00f86f8 | |||
| efd582fb21 | |||
| b915716b60 | |||
| b3079f3aec | |||
| 84657f1531 | |||
| db510af582 | |||
| 9c27548a5c | |||
| 4d52cb9245 | |||
| fbc1c1cfdd | |||
| ca04e8f31c | |||
| ba1c5d3191 | |||
| 0b951840f2 | |||
| 95c3d2fc8e | |||
| ad498811b1 | |||
| 510e09f4ef | |||
| 5003354fba | |||
| 9b38a5b359 | |||
| 1c8feed69f | |||
| 84de0d38ea | |||
| c192236a7e | |||
| 779f1bd0b1 | |||
| a28990ed8d | |||
| 0c92c22755 | |||
| 4a5e28af81 | |||
| d3d16882ca | |||
| ae7b18fb77 | |||
| efd81a2854 | |||
| a5f7b418de | |||
| 09ef2bc829 | |||
| f8b8ebed5b | |||
| ff2e13e063 | |||
| 8608b4f93c | |||
| db7c2549d0 | |||
| 037420b611 | |||
| bcecc0389e | |||
| 5edff5d970 | |||
| af4b2b9354 | |||
| 842136afc8 | |||
| 990f733d22 | |||
| f18f12d1a6 | |||
| a6dfab6f27 | |||
| 1d3116d7c2 | |||
| cb4ffaf95c | |||
| c9cf3fba8f | |||
| a797a0d193 | |||
| 0af80bbbe0 | |||
| f6f4b58167 | |||
| 7b423c6d4b | |||
| ba4ff7744b | |||
| 9e03bf7db9 | |||
| 754036462f | |||
| 5f0423b97d | |||
| a299a7fa28 | |||
| 78301e5e93 | |||
| f66ce801ad | |||
| bc62002b1c | |||
| a989d04d09 | |||
| e3ce702eec | |||
| c4c5f9a32e | |||
| 41f0951d0c | |||
| 8f5512eafe | |||
| 4f30842ac4 | |||
| 3f07adb765 | |||
| b0f5400d52 | |||
| db180209b3 | |||
| 47b8a116a6 | |||
| 054abe280e | |||
| 499ffa198d | |||
| c5861307f6 | |||
| 447a6c3373 | |||
| 40e7ea83a3 | |||
| ed61ed5b56 | |||
| a8f1fe8f96 | |||
| c61f9248f4 | |||
| 0860b9e674 | |||
| a7e9076bc0 | |||
| 4c32a551bd | |||
| 6ea33e3e89 | |||
| 944574232e | |||
| 83d453e78b | |||
| 30d45e6773 | |||
| 03654b2b7f | |||
| eb850c5326 | |||
| cb318f55e9 | |||
| a404da02d5 | |||
| 71bc72ec13 | |||
| 02f131c544 | |||
| a103bd4de2 | |||
| aac238503b | |||
| a2ec8d3f21 | |||
| 62a1dcba55 | |||
| 41fff2979e | |||
| 31ed3f7178 | |||
| dbc0f0eea0 | |||
| 5189bc4f4b | |||
| b05aa62c49 | |||
| c471902db1 | |||
| c477129165 | |||
| 9ed6d0a9d1 | |||
| 38a998c03c | |||
| 0661a800a7 | |||
| c01fb5f701 | |||
| d8b087aeb4 | |||
| 735ec9de0b | |||
| 92a4dc25b1 | |||
| 19976bb94f | |||
| 7a2cb10864 | |||
| fd6792c6be | |||
| 1abeec3a43 | |||
| 33d5fe457c | |||
| 44bda245a6 | |||
| 413fdbbf23 | |||
| 1c4d68a92e | |||
| bd1e89ac4c | |||
| e1ef158b36 | |||
| 9b4f7090d3 | |||
| 3622cb9b28 | |||
| a10bb4b96f | |||
| 9eacabd821 | |||
| e9bc939098 | |||
| 7238d4af94 | |||
| 2eeb8cecb2 | |||
| 9388ed8cd0 | |||
| dd923edf15 | |||
| 59d3af44f2 | |||
| a04008cdfd | |||
| 648d8c3d2a | |||
| c5d3274222 | |||
| 4f36f077ff | |||
| 929185da07 | |||
| 440338d769 | |||
| af35c3bcca | |||
| c0d9d96e09 | |||
| 0cd71ee582 | |||
| b00046fd34 | |||
| 4b2629d8ba | |||
| 193f46dd9f | |||
| 96bde51ae4 | |||
| 683c87347c | |||
| fe6debfe9a | |||
| 9a8c09288f | |||
| eca0487daf | |||
| 4278a284e4 | |||
| 5da714bcc8 | |||
| 2d6d635ce0 | |||
| e632acec29 | |||
| 1bd5626140 | |||
| ffb1a9c46a | |||
| 9e37ea16ac | |||
| c8ac88dd87 | |||
| 0e292b397f | |||
| 01fe356904 | |||
| d5089858bd | |||
| 357ffef09c | |||
| 2aa4770e0d | |||
| 4074c4c67f | |||
| a1098d5796 | |||
| 8930a88e99 | |||
| fd56124a94 | |||
| 03b880a31c | |||
| 4e13ce1d25 | |||
| 89a3670fb5 | |||
| c4b55385e2 | |||
| cb8482b0e6 | |||
| a9fb8636ad | |||
| 9a15d0bd83 | |||
| f466c64071 | |||
| bfd711ad12 | |||
| c23534019c | |||
| 3573970e4a | |||
| fc7d9ff558 | |||
| cca1e0a399 | |||
| 937d4707dc | |||
| f8e6e4275a | |||
| e0fc050bf4 | |||
| 781ddc07c7 | |||
| 9765a9a430 | |||
| 165fa01a97 | |||
| 8f665a5a0f | |||
| 6f1986a8f1 | |||
| eb4d586493 | |||
| 9f058f19bc | |||
| 44d7c79fdc | |||
| 12ecc45b6a | |||
| ebc0abbb8d | |||
| faa21a0591 | |||
| d9fb37e25e | |||
| 120fdbb9fc | |||
| b0183de7ca | |||
| e08aaa7e39 | |||
| 2a5e550bda | |||
| fc93a79fdd | |||
| 7f5476b408 | |||
| 64cd37b6ed | |||
| 76ad2b35a9 | |||
| 74633ce28f | |||
| 48fd8b46ee | |||
| eb86ec3eea | |||
| cdde51d8af | |||
| a944d1c913 | |||
| bf2a942f36 | |||
| ba693a74be | |||
| 0a27b7065b | |||
| 953b283773 | |||
| b97195d48f | |||
| 4d75d2d611 | |||
| c1dffe40dc | |||
| 446a8da8e7 | |||
| 94bf221258 | |||
| e8774dce97 | |||
| 463e34cef5 | |||
| cdd85b0749 | |||
| 3e962c9729 | |||
| b2d1332d46 | |||
| efaebe0eb0 | |||
| 5412204ff7 | |||
| a8f0200fe9 | |||
| ac0ab4ba34 | |||
| ae04fd0bea | |||
| 649d0167c8 | |||
| ed96958915 | |||
| a2303e5a15 | |||
| 7cae80b6d8 | |||
| b2c75cc0b9 | |||
| a4dbac63d3 | |||
| 37a0a7b49b | |||
| 8846f97868 | |||
| 655bd10db6 | |||
| 1aa8307fa1 | |||
| 81abd8bc0a | |||
| ab1cc706cc | |||
| 2e93202519 | |||
| c2c654c87b | |||
| b08a2fcd3b | |||
| 7702114e25 | |||
| 8495fb62f4 | |||
| ae2d43031b | |||
| 1b7af5d93b | |||
| a90e019ec7 | |||
| ef3fd1374a | |||
| 2f55981224 | |||
| 0e0afdeb51 | |||
| 5c934cdb6f | |||
| 407708dcd2 | |||
| fba165d6b2 | |||
| 591e782415 | |||
| a62b65096b | |||
| b0c9fde1dd | |||
| 1a959a5683 | |||
| eebd075a15 | |||
| 54e33bd72b | |||
| dbd0d2180e | |||
| d4385ade15 | |||
| 406aaf011f | |||
| e7f4e059cf | |||
| eeaf907227 | |||
| b461967e91 | |||
| bf5fbc92df | |||
| 6cfdcd1000 | |||
| cdf091f228 | |||
| c442166ded | |||
| 6d9face1ec | |||
| 4734bc09dc | |||
| 8cca44ae45 | |||
| 88d3233b66 | |||
| 56c2127127 | |||
| b5816f2637 | |||
| 492e945b5a | |||
| 0d1e55c99d | |||
| c83b5ec226 | |||
| 687a4427da | |||
| af0eb52410 | |||
| a49f946f2f | |||
| 8c3cbad7ae | |||
| 4d5635a3c4 | |||
| ca8b109a1c | |||
| 55980294f1 | |||
| ee98d026dc | |||
| 75ec0a6a99 | |||
| 3a824b3a4b | |||
| dd38318f5f | |||
| 4c4d8372e4 | |||
| dbfea0e617 | |||
| f698e37bf2 | |||
| 4743bb3c30 | |||
| 400ae72267 | |||
| b259de95d2 | |||
| c84ae38e34 | |||
| 43cdca80f2 | |||
| ee98daeba5 | |||
| 2cd95d1a99 | |||
| 13d562e969 | |||
| 228caa3fab | |||
| 64fb7674b1 | |||
| cce0755ee9 | |||
| 67ed11a960 | |||
| acb0436057 | |||
| 2f3343b7ed | |||
| 13efc1b76d | |||
| dc93d4ceea | |||
| 7260bb58e1 | |||
| a6df61a637 | |||
| f394ed94f3 | |||
| 11a5ed0e03 | |||
| a365246e3a | |||
| 8ebe38474d | |||
| 0a5b027bac | |||
| 7f5a83cb1d | |||
| b299bfa821 | |||
| 2c5f2a6683 | |||
| 9b44529591 | |||
| f5642ac292 | |||
| ef0f9c0451 | |||
| 30f8bb059f | |||
| 52254fe155 | |||
| d8e0f48864 | |||
| 385e1e5adf | |||
| 28b894a1d7 | |||
| f72d38e0c3 | |||
| 2dcee75ae4 | |||
| 968587ac1e | |||
| 6dd8efd0b4 | |||
| ed494b295f | |||
| dbc308f352 | |||
| 4ec99edcc6 | |||
| c2477ce522 | |||
| f10c988903 | |||
| 81331e2a34 | |||
| dbbfacc598 | |||
| 2fc8da08f4 | |||
| 5886cadeef | |||
| 2b99a26b47 | |||
| 7156d49b8d | |||
| dce6c9edce | |||
| b0f9ae049d | |||
| a5790ef68f | |||
| 8e68015a6f | |||
| 95aec46b99 | |||
| 8a9a7f4e50 | |||
| d2da1f5797 | |||
| 9f08cec07a | |||
| ee9ba99cde | |||
| 41202c3627 | |||
| 54f2493018 |
72
.github/CODEOWNERS
vendored
@ -17,6 +17,7 @@ src/GPU/* @ndtrung81
|
||||
src/KOKKOS/* @stanmoore1
|
||||
src/KIM/* @ellio167
|
||||
src/LATTE/* @cnegre
|
||||
src/MESSAGE/* @sjplimp
|
||||
src/SPIN/* @julient31
|
||||
src/USER-CGDNA/* @ohenrich
|
||||
src/USER-CGSDK/* @akohlmey
|
||||
@ -28,20 +29,88 @@ src/USER-MEAMC/* @martok
|
||||
src/USER-MOFFF/* @hheenen
|
||||
src/USER-MOLFILE/* @akohlmey
|
||||
src/USER-NETCDF/* @pastewka
|
||||
src/USER-PLUMED/* @gtribello
|
||||
src/USER-PHONON/* @lingtikong
|
||||
src/USER-PTM/* @pmla
|
||||
src/USER-OMP/* @akohlmey
|
||||
src/USER-QMMM/* @akohlmey
|
||||
src/USER-REAXC/* @hasanmetin
|
||||
src/USER-SCAFACOS/* @rhalver
|
||||
src/USER-TALLY/* @akohlmey
|
||||
src/USER-UEF/* @danicholson
|
||||
src/USER-VTK/* @rbberger
|
||||
|
||||
|
||||
# individual files in packages
|
||||
src/GPU/pair_vashishta_gpu.* @andeplane
|
||||
src/KOKKOS/pair_vashishta_kokkos.* @andeplane
|
||||
src/MANYBODY/pair_vashishta_table.* @andeplane
|
||||
src/MANYBODY/pair_atm.* @sergeylishchuk
|
||||
src/USER-MISC/fix_bond_react.* @jrgissing
|
||||
src/USER-MISC/*_grem.* @dstelter92
|
||||
src/USER-MISC/compute_stress_mop*.* @RomainVermorel
|
||||
|
||||
# core LAMMPS classes
|
||||
src/lammps.* @sjplimp
|
||||
src/pointers.h @sjplimp
|
||||
src/atom.* @sjplimp
|
||||
src/atom_vec.* @sjplimp
|
||||
src/angle.* @sjplimp
|
||||
src/bond.* @sjplimp
|
||||
src/comm*.* @sjplimp
|
||||
src/compute.* @sjplimp
|
||||
src/dihedral.* @sjplimp
|
||||
src/domain.* @sjplimp
|
||||
src/dump*.* @sjplimp
|
||||
src/error.* @sjplimp
|
||||
src/finish.* @sjplimp
|
||||
src/fix.* @sjplimp
|
||||
src/force.* @sjplimp
|
||||
src/group.* @sjplimp
|
||||
src/improper.* @sjplimp
|
||||
src/kspace.* @sjplimp
|
||||
src/lmptyp.h @sjplimp
|
||||
src/library.* @sjplimp
|
||||
src/main.cpp @sjplimp
|
||||
src/memory.* @sjplimp
|
||||
src/modify.* @sjplimp
|
||||
src/molecule.* @sjplimp
|
||||
src/my_page.h @sjplimp
|
||||
src/my_pool_chunk.h @sjplimp
|
||||
src/npair*.* @sjplimp
|
||||
src/ntopo*.* @sjplimp
|
||||
src/nstencil*.* @sjplimp
|
||||
src/neighbor.* @sjplimp
|
||||
src/nbin*.* @sjplimp
|
||||
src/neigh_*.* @sjplimp
|
||||
src/output.* @sjplimp
|
||||
src/pair.* @sjplimp
|
||||
src/rcb.* @sjplimp
|
||||
src/random_*.* @sjplimp
|
||||
src/region*.* @sjplimp
|
||||
src/rcb.* @sjplimp
|
||||
src/read*.* @sjplimp
|
||||
src/rerun.* @sjplimp
|
||||
src/run.* @sjplimp
|
||||
src/respa.* @sjplimp
|
||||
src/set.* @sjplimp
|
||||
src/special.* @sjplimp
|
||||
src/suffix.h @sjplimp
|
||||
src/thermo.* @sjplimp
|
||||
src/universe.* @sjplimp
|
||||
src/update.* @sjplimp
|
||||
src/variable.* @sjplimp
|
||||
src/verlet.* @sjplimp
|
||||
src/velocity.* @sjplimp
|
||||
src/write_data.* @sjplimp
|
||||
src/write_restart.* @sjplimp
|
||||
|
||||
# overrides for specific files
|
||||
src/dump_movie.* @akohlmey
|
||||
src/exceptions.h @rbberger
|
||||
src/fix_nh.* @athomps
|
||||
src/info.* @akohlmey @rbberger
|
||||
src/timer.* @akohlmey
|
||||
|
||||
# tools
|
||||
tools/msi2lmp/* @akohlmey
|
||||
@ -57,3 +126,6 @@ python/* @rbberger
|
||||
doc/utils/*/* @rbberger
|
||||
doc/Makefile @rbberger
|
||||
doc/README @rbberger
|
||||
|
||||
# for releases
|
||||
src/version.h @sjplimp
|
||||
|
||||
67
.github/CODE_OF_CONDUCT.md
vendored
Normal file
@ -0,0 +1,67 @@
|
||||
# Code of Conduct for the LAMMPS Project on GitHub
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as LAMMPS
|
||||
developers, contributors, and maintainers pledge to making participation in
|
||||
our project a harassment-free experience for everyone.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of explicit language or imagery
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, issues, and other contributions that are not
|
||||
aligned to this Code of Conduct, or to ban temporarily or permanently any
|
||||
developer, maintainer, or contributor for this or other behaviors that they
|
||||
deem inappropriate, threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies to all public exchanges in the LAMMPS project
|
||||
on GitHub and in submitted code.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project team at developer@lammps.org. All
|
||||
complaints will be reviewed and investigated and will result in a response
|
||||
that is deemed necessary and appropriate to the circumstances. The project
|
||||
team is obligated to maintain confidentiality with regard to the reporter
|
||||
of an incident.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see
|
||||
https://www.contributor-covenant.org/faq
|
||||
|
||||
30
.github/CONTRIBUTING.md
vendored
@ -2,11 +2,11 @@
|
||||
|
||||
Thank your for considering to contribute to the LAMMPS software project.
|
||||
|
||||
The following is a set of guidelines as well as explanations of policies and workflows for contributing to the LAMMPS molecular dynamics software project. These guidelines focus on submitting issues or pull requests on the LAMMPS GitHub project.
|
||||
The following is a set of guidelines as well as explanations of policies and work flows for contributing to the LAMMPS molecular dynamics software project. These guidelines focus on submitting issues or pull requests on the LAMMPS GitHub project.
|
||||
|
||||
Thus please also have a look at:
|
||||
* [The Section on submitting new features for inclusion in LAMMPS of the Manual](http://lammps.sandia.gov/doc/Section_modify.html#mod-15)
|
||||
* [The LAMMPS GitHub Tutorial in the Manual](http://lammps.sandia.gov/doc/tutorial_github.html)
|
||||
* [The Section on submitting new features for inclusion in LAMMPS of the Manual](https://lammps.sandia.gov/doc/Modify_contribute.html)
|
||||
* [The LAMMPS GitHub Tutorial in the Manual](http://lammps.sandia.gov/doc/Howto_github.html)
|
||||
|
||||
## Table of Contents
|
||||
|
||||
@ -18,7 +18,7 @@ Thus please also have a look at:
|
||||
* [Suggesting Enhancements](#suggesting-enhancements)
|
||||
* [Contributing Code](#contributing-code)
|
||||
|
||||
[GitHub Workflows](#github-workflows)
|
||||
[GitHub Work flows](#github-workflows)
|
||||
* [Issues](#issues)
|
||||
* [Pull Requests](#pull-requests)
|
||||
|
||||
@ -26,17 +26,17 @@ __
|
||||
|
||||
## I don't want to read this whole thing I just have a question!
|
||||
|
||||
> **Note:** Please do not file an issue to ask a general question about LAMMPS, its features, how to use specific commands, or how perform simulations or analysis in LAMMPS. Instead post your question to the ['lammps-users' mailing list](http://lammps.sandia.gov/mail.html). You do not need to be subscribed to post to the list (but a mailing list subscription avoids having your post delayed until it is approved by a mailing list moderator). Most posts to the mailing list receive a response within less than 24 hours. Before posting to the mailing list, please read the [mailing list guidelines](http://lammps.sandia.gov/guidelines.html). Following those guidelines will help greatly to get a helpful response. Always mention which LAMMPS version you are using.
|
||||
> **Note:** Please do not file an issue to ask a general question about LAMMPS, its features, how to use specific commands, or how perform simulations or analysis in LAMMPS. Instead post your question to the ['lammps-users' mailing list](https://lammps.sandia.gov/mail.html). You do not need to be subscribed to post to the list (but a mailing list subscription avoids having your post delayed until it is approved by a mailing list moderator). Most posts to the mailing list receive a response within less than 24 hours. Before posting to the mailing list, please read the [mailing list guidelines](https://lammps.sandia.gov/guidelines.html). Following those guidelines will help greatly to get a helpful response. Always mention which LAMMPS version you are using.
|
||||
|
||||
## How Can I Contribute?
|
||||
|
||||
There are several ways how you can actively contribute to the LAMMPS project: you can discuss compiling and using LAMMPS, and solving LAMMPS related problems with other LAMMPS users on the lammps-users mailing list, you can report bugs or suggest enhancements by creating issues on GitHub (or posting them to the lammps-users mailing list), and you can contribute by submitting pull requests on GitHub or e-mail your code
|
||||
to one of the [LAMMPS core developers](http://lammps.sandia.gov/authors.html). As you may see from the aforementioned developer page, the LAMMPS software package includes the efforts of a very large number of contributors beyond the principal authors and maintainers.
|
||||
to one of the [LAMMPS core developers](https://lammps.sandia.gov/authors.html). As you may see from the aforementioned developer page, the LAMMPS software package includes the efforts of a very large number of contributors beyond the principal authors and maintainers.
|
||||
|
||||
### Discussing How To Use LAMMPS
|
||||
|
||||
The LAMMPS mailing list is hosted at SourceForge. The mailing list began in 2005, and now includes tens of thousands of messages in thousands of threads. LAMMPS developers try to respond to posted questions in a timely manner, but there are no guarantees. Please consider that people live in different timezone and may not have time to answer e-mails outside of their work hours.
|
||||
You can post to list by sending your email to lammps-users at lists.sourceforge.net (no subscription required), but before posting, please read the [mailing list guidelines](http://lammps.sandia.gov/guidelines.html) to maximize your chances to receive a helpful response.
|
||||
You can post to list by sending your email to lammps-users at lists.sourceforge.net (no subscription required), but before posting, please read the [mailing list guidelines](https://lammps.sandia.gov/guidelines.html) to maximize your chances to receive a helpful response.
|
||||
|
||||
Anyone can browse/search previous questions/answers in the archives. You do not have to subscribe to the list to post questions, receive answers (to your questions), or browse/search the archives. You **do** need to subscribe to the list if you want emails for **all** the posts (as individual messages or in digest form), or to answer questions yourself. Feel free to sign up and help us out! Answering questions from fellow LAMMPS users is a great way to pay back the community for providing you a useful tool for free, and to pass on the advice you have received yourself to others. It improves your karma and helps you understand your own research better.
|
||||
|
||||
@ -44,7 +44,7 @@ If you post a message and you are a subscriber, your message will appear immedia
|
||||
|
||||
### Reporting Bugs
|
||||
|
||||
While developers writing code for LAMMPS are careful to test their code, LAMMPS is such a large and complex software, that it is impossible to test for all combinations of features under all normal and not so normal circumstances. Thus bugs do happen, and if you suspect, that you have encountered one, please try to document it and report it as an [Issue](https://github.com/lammps/lammps/issues) on the LAMMPS GitHub project web page. However, before reporting a bug, you need to check whether this is something that may have already been corrected. The [Latest Features and Bug Fixes in LAMMPS](http://lammps.sandia.gov/bug.html) web page lists all significant changes to LAMMPS over the years. It also tells you what the current latest development version of LAMMPS is, and you should test whether your issue still applies to that version.
|
||||
While developers writing code for LAMMPS are careful to test their code, LAMMPS is such a large and complex software, that it is impossible to test for all combinations of features under all normal and not so normal circumstances. Thus bugs do happen, and if you suspect, that you have encountered one, please try to document it and report it as an [Issue](https://github.com/lammps/lammps/issues) on the LAMMPS GitHub project web page. However, before reporting a bug, you need to check whether this is something that may have already been corrected. The [Latest Features and Bug Fixes in LAMMPS](https://lammps.sandia.gov/bug.html) web page lists all significant changes to LAMMPS over the years. It also tells you what the current latest development version of LAMMPS is, and you should test whether your issue still applies to that version.
|
||||
|
||||
When you click on the green "New Issue" button, you will be provided with a text field, where you can enter your message. That text field with contain a template with several headlines and some descriptions. Keep the headlines that are relevant to your reported potential bug and replace the descriptions with the information as suggested by the descriptions.
|
||||
You can also attach small text files (please add the file name extension `.txt` or it will be rejected), images, or small compressed text files (using gzip, do not use RAR or 7-ZIP or similar tools that are uncommon outside of Windows machines). In many cases, bugs are best illustrated by providing a small input deck (do **not** attach your entire production input, but remove everything that is not required to reproduce the issue, and scale down your system size, that the resulting calculation runs fast and can be run on small desktop quickly).
|
||||
@ -62,13 +62,13 @@ To be able to submit an issue on GitHub, you have to register for an account (fo
|
||||
|
||||
We encourage users to submit new features or modifications for LAMMPS to the core developers so they can be added to the LAMMPS distribution. The preferred way to manage and coordinate this is by submitting a pull request at the LAMMPS project on GitHub. For any larger modifications or programming project, you are encouraged to contact the LAMMPS developers ahead of time, in order to discuss implementation strategies and coding guidelines, that will make it easier to integrate your contribution and result in less work for everybody involved. You are also encouraged to search through the list of open issues on GitHub and submit a new issue for a planned feature, so you would not duplicate the work of others (and possibly get scooped by them) or have your work duplicated by others.
|
||||
|
||||
How quickly your contribution will be integrated depends largely on how much effort it will cause to integrate and test it, how much it requires changes to the core code base, and of how much interest it is to the larger LAMMPS community. Please see below for a checklist of typical requirements. Once you have prepared everything, see [this tutorial](http://lammps.sandia.gov/doc/tutorial_github.html)
|
||||
How quickly your contribution will be integrated depends largely on how much effort it will cause to integrate and test it, how much it requires changes to the core code base, and of how much interest it is to the larger LAMMPS community. Please see below for a checklist of typical requirements. Once you have prepared everything, see [this tutorial](https://lammps.sandia.gov/doc/Howto_github.html)
|
||||
for instructions on how to submit your changes or new files through a GitHub pull request
|
||||
|
||||
Here is a checklist of steps you need to follow to submit a single file or user package for our consideration. Following these steps will save both you and us time. See existing files in packages in the source directory for examples. If you are uncertain, please ask on the lammps-users mailing list.
|
||||
|
||||
* All source files you provide must compile with the most current version of LAMMPS with multiple configurations. In particular you need to test compiling LAMMPS from scratch with `-DLAMMPS_BIGBIG` set in addition to the default `-DLAMMPS_SMALLBIG` setting. Your code will need to work correctly in serial and in parallel using MPI.
|
||||
* For consistency with the rest of LAMMPS and especially, if you want your contribution(s) to be added to main LAMMPS code or one of its standard packages, it needs to be written in a style compatible with other LAMMPS source files. This means: 2-character indentation per level, no tabs, no lines over 80 characters. I/O is done via the C-style stdio library, class header files should not import any system headers outside <stdio.h>, STL containers should be avoided in headers, and forward declarations used where possible or needed. All added code should be placed into the LAMMPS_NS namespace or a sub-namespace; global or static variables should be avoided, as they conflict with the modular nature of LAMMPS and the C++ class structure. Header files must not import namespaces with using. This all is so the developers can more easily understand, integrate, and maintain your contribution and reduce conflicts with other parts of LAMMPS. This basically means that the code accesses data structures, performs its operations, and is formatted similar to other LAMMPS source files, including the use of the error class for error and warning messages.
|
||||
* For consistency with the rest of LAMMPS and especially, if you want your contribution(s) to be added to main LAMMPS code or one of its standard packages, it needs to be written in a style compatible with other LAMMPS source files. This means: 2-character indentation per level, no tabs, no lines over 80 characters. I/O is done via the C-style stdio library, style class header files should not import any system headers outside of <cstdio>, STL containers should be avoided in headers, and forward declarations used where possible or needed. All added code should be placed into the LAMMPS_NS namespace or a sub-namespace; global or static variables should be avoided, as they conflict with the modular nature of LAMMPS and the C++ class structure. There MUST NOT be any "using namespace XXX;" statements in headers. In the implementation file (<name>.cpp) system includes should be placed in angular brackets (<>) and for c-library functions the C++ style header files should be included (<cstdio> instead of <stdio.h>, or <cstring> instead of <string.h>). This all is so the developers can more easily understand, integrate, and maintain your contribution and reduce conflicts with other parts of LAMMPS. This basically means that the code accesses data structures, performs its operations, and is formatted similar to other LAMMPS source files, including the use of the error class for error and warning messages.
|
||||
* If you want your contribution to be added as a user-contributed feature, and it is a single file (actually a `<name>.cpp` and `<name>.h` file) it can be rapidly added to the USER-MISC directory. Include the one-line entry to add to the USER-MISC/README file in that directory, along with the 2 source files. You can do this multiple times if you wish to contribute several individual features.
|
||||
* If you want your contribution to be added as a user-contribution and it is several related features, it is probably best to make it a user package directory with a name like USER-FOO. In addition to your new files, the directory should contain a README text file. The README should contain your name and contact information and a brief description of what your new package does. If your files depend on other LAMMPS style files also being installed (e.g. because your file is a derived class from the other LAMMPS class), then an Install.sh file is also needed to check for those dependencies. See other README and Install.sh files in other USER directories as examples. Send us a tarball of this USER-FOO directory.
|
||||
* Your new source files need to have the LAMMPS copyright, GPL notice, and your name and email address at the top, like other user-contributed LAMMPS source files. They need to create a class that is inside the LAMMPS namespace. If the file is for one of the USER packages, including USER-MISC, then we are not as picky about the coding style (see above). I.e. the files do not need to be in the same stylistic format and syntax as other LAMMPS files, though that would be nice for developers as well as users who try to read your code.
|
||||
@ -102,11 +102,11 @@ For bug reports, the next step is that one of the core LAMMPS developers will se
|
||||
|
||||
### Pull Requests
|
||||
|
||||
For submitting pull requests, there is a [detailed tutorial](http://lammps.sandia.gov/doc/tutorial_github.html) in the LAMMPS manual. Thus only a brief breakdown of the steps is presented here.
|
||||
For submitting pull requests, there is a [detailed tutorial](https://lammps.sandia.gov/doc/Howto_github.html) in the LAMMPS manual. Thus only a brief breakdown of the steps is presented here. Please note, that the LAMMPS developers are still reviewing and trying to improve the process. If you are unsure about something, do not hesitate to post a question on the lammps-users mailing list or contact one fo the core LAMMPS developers.
|
||||
Immediately after the submission, the LAMMPS continuing integration server at ci.lammps.org will download your submitted branch and perform a simple compilation test, i.e. will test whether your submitted code can be compiled under various conditions. It will also do a check on whether your included documentation translates cleanly. Whether these tests are successful or fail will be recorded. If a test fails, please inspect the corresponding output on the CI server and take the necessary steps, if needed, so that the code can compile cleanly again. The test will be re-run each the pull request is updated with a push to the remote branch on GitHub.
|
||||
Next a LAMMPS core developer will self-assign and do an overall technical assessment of the submission. If you are not yet registered as a LAMMPS collaborator, you will receive an invitation for that.
|
||||
You may also receive comments and suggestions on the overall submission or specific details. If permitted, additional changes may be pushed into your pull request branch or a pull request may be filed in your LAMMPS fork on GitHub to include those changes.
|
||||
Next a LAMMPS core developer will self-assign and do an overall technical assessment of the submission. If you are not yet registered as a LAMMPS collaborator, you will receive an invitation for that. As part of the assesment, the pull request will be categorized with labels. There are two special labels: `needs_work` (indicates that work from the submitter of the pull request is needed) and `work_in_progress` (indicates, that the assigned LAMMPS developer will make changes, if not done by the contributor who made the submit).
|
||||
You may also receive comments and suggestions on the overall submission or specific details and on occasion specific requests for changes as part of the review. If permitted, also additional changes may be pushed into your pull request branch or a pull request may be filed in your LAMMPS fork on GitHub to include those changes.
|
||||
The LAMMPS developer may then decide to assign the pull request to another developer (e.g. when that developer is more knowledgeable about the submitted feature or enhancement or has written the modified code). It may also happen, that additional developers are requested to provide a review and approve the changes. For submissions, that may change the general behavior of LAMMPS, or where a possibility of unwanted side effects exists, additional tests may be requested by the assigned developer.
|
||||
If the assigned developer is satisfied and considers the submission ready for inclusion into LAMMPS, the pull request will be assigned to the LAMMPS lead developer, Steve Plimpton (@sjplimp), who will then have the final decision on whether the submission will be included, additional changes are required or it will be ultimately rejected. After the pull request is merged, you may delete the pull request branch in your personal LAMMPS fork.
|
||||
Since the learning curve for git is quite steep for efficiently managing remote repositories, local and remote branches, pull requests and more, do not hesitate to ask questions, if you are not sure about how to do certain steps that are asked of you. Even if the changes asked of you do not make sense to you, they may be important for the LAMMPS developers. Please also note, that these all are guidelines and not set in stone.
|
||||
If the assigned developer is satisfied and considers the submission ready for inclusion into LAMMPS, the pull request will receive approvals and be merged into the master branch by one of the core LAMMPS developers. After the pull request is merged, you may delete the feature branch used for the pull request in your personal LAMMPS fork.
|
||||
Since the learning curve for git is quite steep for efficiently managing remote repositories, local and remote branches, pull requests and more, do not hesitate to ask questions, if you are not sure about how to do certain steps that are asked of you. Even if the changes asked of you do not make sense to you, they may be important for the LAMMPS developers. Please also note, that these all are guidelines and nothing set in stone. So depending on the nature of the contribution, the workflow may be adjusted.
|
||||
|
||||
|
||||
31
.github/ISSUE_TEMPLATE.md
vendored
@ -1,31 +0,0 @@
|
||||
## Summary
|
||||
|
||||
_Please provide a brief description of the issue_
|
||||
|
||||
## Type of Issue
|
||||
|
||||
_Is this a 'Bug Report' or a 'Suggestion for an Enhancement'?_
|
||||
|
||||
## Detailed Description (Enhancement Suggestion)
|
||||
|
||||
_Explain how you would like to see LAMMPS enhanced, what feature(s) you are looking for, provide references to relevant background information, and whether you are willing to implement the enhancement yourself or would like to participate in the implementation_
|
||||
|
||||
## LAMMPS Version (Bug Report)
|
||||
|
||||
_Please specify which LAMMPS version this issue was detected with. If this is not the latest development version, please stop and test that version, too, and report it here if the bug persists_
|
||||
|
||||
## Expected Behavior (Bug Report)
|
||||
|
||||
_Describe the expected behavior. Quote from the LAMMPS manual where needed or explain why the expected behavior is meaningful, especially when it differs from the manual_
|
||||
|
||||
## Actual Behavior (Bug Report)
|
||||
|
||||
_Describe the actual behavior, how it differs from the expected behavior, and how this can be observed. Try to be specific and do **not* use vague terms like "doesn't work" or "wrong result". Do not assume that the person reading this has any experience with or knowledge of your specific research._
|
||||
|
||||
## Steps to Reproduce (Bug Report)
|
||||
|
||||
_Describe the steps required to quickly reproduce the issue. You can attach (small) files to the section below or add URLs where to download an archive with all necessary files. Please try to create input that are as small as possible and run as fast as possible. NOTE: the less effort and time it takes to reproduce your issue, the more likely, that somebody will look into it._
|
||||
|
||||
## Further Information, Files, and Links
|
||||
|
||||
_Put any additional information here, attach relevant text or image files and URLs to external sites, e.g. relevant publications_
|
||||
32
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a bug report to help us eliminate issues and improve LAMMPS
|
||||
title: "[BUG] _Replace With Suitable Title_"
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Summary**
|
||||
|
||||
_Please provide a clear and concise description of what the bug is._
|
||||
|
||||
**LAMMPS Version and Platform**
|
||||
|
||||
_Please specify precisely which LAMMPS version this issue was detected with (the first line of the output) and what platform (operating system and its version, hardware) you are running on. If possible, test with the most recent LAMMPS patch version_
|
||||
|
||||
**Expected Behavior**
|
||||
|
||||
_Describe the expected behavior. Quote from the LAMMPS manual where needed, or explain why the expected behavior is meaningful, especially when it differs from the manual_
|
||||
|
||||
**Actual Behavior**
|
||||
|
||||
_Describe the actual behavior, how it differs from the expected behavior, and how this can be observed. Try to be specific and do **not** use vague terms like "doesn't work" or "wrong result". Do not assume that the person reading this has any experience with or knowledge of your specific area of research._
|
||||
|
||||
**Steps to Reproduce**
|
||||
|
||||
_Describe the steps required to (quickly) reproduce the issue. You can attach (small) files to the section below or add URLs where to download an archive with all necessary files. Please try to create an input set that is as minimal and small as possible and reproduces the bug as quickly as possible. **NOTE:** the less effort and time it takes to reproduce your reported bug, the more likely it becomes, that somebody will look into it and fix the problem._
|
||||
|
||||
**Further Information, Files, and Links**
|
||||
|
||||
_Put any additional information here, attach relevant text or image files and URLs to external sites, e.g. relevant publications_
|
||||
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Make a suggestion for a new feature or a change to LAMMPS
|
||||
title: "[Feature Request] _Replace with Title_"
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Summary**
|
||||
|
||||
_Please provide a brief and concise description of the suggested feature or change_
|
||||
|
||||
**Detailed Description**
|
||||
|
||||
_Please explain how you would like to see LAMMPS enhanced, what feature(s) you are looking for, what specific problems this will solve. If possible, provide references to relevant background information like publications or web pages, and whether you are planning to implement the enhancement yourself or would like to participate in the implementation. If applicable add a reference to an existing bug report or issue that this will address._
|
||||
|
||||
**Further Information, Files, and Links**
|
||||
|
||||
_Put any additional information here, attach relevant text or image files and URLs to external sites, e.g. relevant publications_
|
||||
40
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -1,28 +1,46 @@
|
||||
## Purpose
|
||||
**Summary**
|
||||
|
||||
_Briefly describe the new feature(s), enhancement(s), or bugfix(es) included in this pull request. If this addresses an open GitHub Issue, mention the issue number, e.g. with `fixes #221` or `closes #135`, so that issue will be automatically closed when the pull request is merged_
|
||||
_Briefly describe the new feature(s), enhancement(s), or bugfix(es) included in this pull request._
|
||||
|
||||
## Author(s)
|
||||
**Related Issues**
|
||||
|
||||
_Please state name and affiliation of the author or authors that should be credited with the changes in this pull request_
|
||||
__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_
|
||||
|
||||
## Backward Compatibility
|
||||
**Author(s)**
|
||||
|
||||
_Please state name and affiliation of the author or authors that should be credited with the changes in this pull request. If this pull request adds new files to the distribution, please also provide a suitable "long-lived" e-mail address (e.g. from gmail, yahoo, outlook, etc.) for the *corresponding* author, i.e. the person the LAMMPS developers can contact directly with questions and requests related to maintenance and support of this code. now and in the future_
|
||||
|
||||
**Licensing**
|
||||
|
||||
By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under the GNU General Public License version 2.
|
||||
|
||||
_Please complete the following statement by adding "yes" or "no":_
|
||||
My contribution may be re-licensed as LGPL (for use of LAMMPS as a library linked to proprietary software):
|
||||
|
||||
**Backward Compatibility**
|
||||
|
||||
_Please state whether any changes in the pull request break backward compatibility for inputs, and - if yes - explain what has been changed and why_
|
||||
|
||||
## Implementation Notes
|
||||
**Implementation Notes**
|
||||
|
||||
_Provide any relevant details about how the changes are implemented, how correctness was verified, how other features - if any - in LAMMPS are affected_
|
||||
|
||||
## Post Submission Checklist
|
||||
**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_
|
||||
- [ ] The feature or features in this pull request is complete
|
||||
- [ ] Suitable new documentation files and/or updates to the existing docs are included
|
||||
- [ ] One or more example input decks are included
|
||||
- [ ] Licensing information is complete
|
||||
- [ ] Corresponding author information is complete
|
||||
- [ ] The source code follows the LAMMPS formatting guidelines
|
||||
- [ ] Suitable new documentation files and/or updates to the existing docs are included
|
||||
- [ ] The added/updated documentation is integrated and tested with the documentation build system
|
||||
- [ ] The feature has been verified to work with the conventional build system
|
||||
- [ ] The feature has been verified to work with the CMake based build system
|
||||
- [ ] A package specific README file has been included or updated
|
||||
- [ ] One or more example input decks are included
|
||||
|
||||
## Further Information, Files, and Links
|
||||
**Further Information, Files, and Links**
|
||||
|
||||
_Put any additional information here, attach relevant text or image files, and URLs to external sites (e.g. DOIs or webpages)_
|
||||
|
||||
|
||||
42
.github/PULL_REQUEST_TEMPLATE/bug_fix.md
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
name: Bug fix
|
||||
about: Submit a pull request that fixes one or more bugs
|
||||
title: "[BUGFIX] _Replace With Suitable Title_"
|
||||
labels: bugfix
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Summary**
|
||||
|
||||
_Briefly describe the bug or bugs, that are eliminated by this pull request._
|
||||
|
||||
**Related Issue(s)**
|
||||
|
||||
_If this request addresses or is related to an existing (open) GitHub issue, e.g. a bug report, mention the issue number number here following a pound sign (aka hashmark), e.g.`#222`._
|
||||
|
||||
**Author(s)**
|
||||
|
||||
_Please state name and affiliation of the author or authors that should be credited with the changes in this pull request_
|
||||
|
||||
**Licensing**
|
||||
|
||||
By submitting this pull request I implicitly accept, that my submission is subject to the same licensing terms as the files that are modified.
|
||||
|
||||
**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_
|
||||
|
||||
**Detailed Description**
|
||||
|
||||
_Provide any relevant details about how the fixed bug can be reproduced, how the changes are implemented, how correctness was verified, how other features - if any - in LAMMPS are affected_
|
||||
|
||||
## Post Submission Checklist
|
||||
|
||||
_Please check the fields below as they are completed *after* the pull request is submitted_
|
||||
- [ ] The code in this pull request is complete
|
||||
- [ ] The source code follows the LAMMPS formatting guidelines
|
||||
|
||||
## Further Information, Files, and Links
|
||||
|
||||
_Put any additional information here, attach relevant text or image files, and URLs to external sites (e.g. to download input decks for testing)_
|
||||
35
.github/PULL_REQUEST_TEMPLATE/maintenance_refactoring.md
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
name: Maintenance or Refactoring
|
||||
about: Submit a pull request that does code refactoring or other maintenance changes
|
||||
title: "[MAINTENANCE] _Replace With Suitable Title_"
|
||||
labels: maintenance
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Summary**
|
||||
|
||||
_Briefly describe the included changes._
|
||||
|
||||
**Related Issue(s)**
|
||||
|
||||
_If this request addresses or is related to an existing (open) GitHub issue, e.g. a bug report, mention the issue number number here following a pound sign (aka hashmark), e.g.`#222`.
|
||||
|
||||
**Author(s)**
|
||||
|
||||
_Please state name and affiliation of the author or authors that should be credited with the changes in this pull request_
|
||||
|
||||
**Licensing**
|
||||
|
||||
By submitting this pull request I implicitly accept, that my submission is subject to the same licensing terms as the files that are modified.
|
||||
|
||||
**Detailed Description**
|
||||
|
||||
_Provide any relevant details about the included changes._
|
||||
|
||||
## Post Submission Checklist
|
||||
|
||||
_Please check the fields below as they are completed *after* the pull request is submitted_
|
||||
- [ ] The pull request is complete
|
||||
- [ ] The source code follows the LAMMPS formatting guidelines
|
||||
|
||||
56
.github/PULL_REQUEST_TEMPLATE/new_feature.md
vendored
Normal file
@ -0,0 +1,56 @@
|
||||
---
|
||||
name: New Feature
|
||||
about: Submit a pull request that adds new Features (complete files) to LAMMPS
|
||||
title: "[New Feature] _Replace With Suitable Title_"
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Summary**
|
||||
|
||||
_Briefly describe the new feature(s) included in this pull request._
|
||||
|
||||
**Related Issues**
|
||||
|
||||
_If this addresses an existing (open) GitHub issue, e.g. a feature request, mention the issue number here following a pound sign (aka hashmark), e.g. `#331`._
|
||||
|
||||
**Author(s)**
|
||||
|
||||
_Please state name and affiliation of the author or authors that should be credited with the features added in this pull request. Please provide a suitable "long-lived" e-mail address (e.g. from gmail, yahoo, outlook, etc.) for the *corresponding* author, i.e. the person the LAMMPS developers can contact directly with questions and requests related to maintenance and support of this code. now and in the future_
|
||||
|
||||
**Licensing**
|
||||
|
||||
_Please add *yes* or *no* to the following two statements (please contact @lammps/core if you have questions about this)_
|
||||
|
||||
My contribution may be licensed as GPL v2 (default LAMMPS license):
|
||||
My contribution may be licensed as LGPL (for use as a library with proprietary software):
|
||||
|
||||
**Backward Compatibility**
|
||||
|
||||
_Please state if any of the changes in this pull request will affect backward compatibility for inputs, and - if yes - explain what has been changed and why_
|
||||
|
||||
**Implementation Notes**
|
||||
|
||||
_Provide any relevant details about how the new features are implemented, how correctness was verified, what platforms (OS, compiler, MPI, hardware, number of processors, accelerator(s)) it was tested on_
|
||||
|
||||
## Post Submission Checklist
|
||||
|
||||
_Please check the fields below as they are completed *after* the pull request has been submitted_
|
||||
|
||||
- [ ] The feature or features in this pull request is complete
|
||||
- [ ] Licensing information is complete
|
||||
- [ ] Corresponding author information is complete
|
||||
- [ ] The source code follows the LAMMPS formatting guidelines
|
||||
- [ ] Suitable new documentation files and/or updates to the existing docs are included
|
||||
- [ ] The added/updated documentation is integrated and tested with the documentation build system
|
||||
- [ ] The feature has been verified to work with the conventional build system
|
||||
- [ ] The feature has been verified to work with the CMake based build system
|
||||
- [ ] A package specific README file has been included or updated
|
||||
- [ ] One or more example input decks are included
|
||||
|
||||
## Further Information, Files, and Links
|
||||
|
||||
_Put any additional information here, attach relevant text or image files, and URLs to external sites (e.g. DOIs or webpages)_
|
||||
|
||||
|
||||
42
.github/PULL_REQUEST_TEMPLATE/update_enhancement.md
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
name: Update or Enhancement
|
||||
about: Submit a pull request that provides update or enhancements for a package or feature in LAMMPS
|
||||
title: "[UPDATE] _Replace With Suitable Title_"
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Summary**
|
||||
|
||||
_Briefly describe what kind of updates or enhancements for a package or feature are included. If you are not the original author of the package or feature, please mention, whether your contribution was created independently or in collaboration/cooperation with the original author._
|
||||
|
||||
**Author(s)**
|
||||
|
||||
_Please state name and affiliation of the author or authors that should be credited with the changes in this pull request_
|
||||
|
||||
**Licensing**
|
||||
|
||||
By submitting this pull request I implicitly accept, that my submission is subject to the same licensing terms as the original package or feature(s) that are updated or amended by this pull request.
|
||||
|
||||
**Backward Compatibility**
|
||||
|
||||
_Please state whether any changes in the pull request break backward compatibility for inputs, and - if yes - explain what has been changed and why_
|
||||
|
||||
**Implementation Notes**
|
||||
|
||||
_Provide any relevant details about how the changes are implemented, how correctness was verified, how other features - if any - in LAMMPS are affected_
|
||||
|
||||
**Post Submission Checklist**
|
||||
|
||||
_Please check the fields below as they are completed_
|
||||
- [ ] The feature or features in this pull request is complete
|
||||
- [ ] Suitable updates to the existing docs are included
|
||||
- [ ] One or more example input decks are included
|
||||
- [ ] The source code follows the LAMMPS formatting guidelines
|
||||
|
||||
**Further Information, Files, and Links**
|
||||
|
||||
_Put any additional information here, attach relevant text or image files, and URLs to external sites (e.g. DOIs or webpages)_
|
||||
|
||||
|
||||
3
.gitignore
vendored
@ -1,6 +1,7 @@
|
||||
*~
|
||||
*.o
|
||||
*.so
|
||||
*.lo
|
||||
*.cu_o
|
||||
*.ptx
|
||||
*_ptx.h
|
||||
@ -21,6 +22,7 @@ log.cite
|
||||
.*.swp
|
||||
*.orig
|
||||
*.rej
|
||||
vgcore.*
|
||||
.vagrant
|
||||
\#*#
|
||||
.#*
|
||||
@ -32,6 +34,7 @@ log.cite
|
||||
.Trashes
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
.clang-format
|
||||
|
||||
#cmake
|
||||
/build*
|
||||
|
||||
@ -11,9 +11,13 @@ get_filename_component(LAMMPS_LIB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib
|
||||
get_filename_component(LAMMPS_LIB_BINARY_DIR ${CMAKE_BINARY_DIR}/lib ABSOLUTE)
|
||||
get_filename_component(LAMMPS_DOC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../doc ABSOLUTE)
|
||||
|
||||
# by default, install into $HOME/.local (not /usr/local), so that no root access (and sudo!!) is needed
|
||||
if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||
set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/.local" CACHE PATH "default install path" FORCE )
|
||||
endif()
|
||||
|
||||
# To avoid conflicts with the conventional Makefile build system, we build everything here
|
||||
file(GLOB LIB_SOURCES ${LAMMPS_SOURCE_DIR}/*.cpp)
|
||||
file(GLOB LIB_SOURCES ${LAMMPS_SOURCE_DIR}/[^.]*.cpp)
|
||||
file(GLOB LMP_SOURCES ${LAMMPS_SOURCE_DIR}/main.cpp)
|
||||
list(REMOVE_ITEM LIB_SOURCES ${LMP_SOURCES})
|
||||
|
||||
@ -43,13 +47,39 @@ function(validate_option name values)
|
||||
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()
|
||||
|
||||
get_lammps_version(${LAMMPS_SOURCE_DIR}/version.h LAMMPS_VERSION)
|
||||
|
||||
# Cmake modules/macros are in a subdirectory to keep this file cleaner
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules)
|
||||
|
||||
include(PreventInSourceBuilds)
|
||||
|
||||
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CXX_FLAGS)
|
||||
#release comes with -O3 by default
|
||||
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
|
||||
endif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CXX_FLAGS)
|
||||
string(TOUPPER "${CMAKE_BUILD_TYPE}" BTYPE)
|
||||
|
||||
# check for files auto-generated by make-based buildsystem
|
||||
# this is fast, so check for it all the time
|
||||
@ -113,6 +143,7 @@ if(BUILD_EXE)
|
||||
if(LAMMPS_MACHINE)
|
||||
set(LAMMPS_MACHINE "_${LAMMPS_MACHINE}")
|
||||
endif()
|
||||
set(LAMMPS_BINARY lmp${LAMMPS_MACHINE})
|
||||
endif()
|
||||
|
||||
option(BUILD_LIB "Build LAMMPS library" OFF)
|
||||
@ -121,10 +152,10 @@ if(BUILD_LIB)
|
||||
if(BUILD_SHARED_LIBS) # for all pkg libs, mpi_stubs and linalg
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
set(LIB_SUFFIX "" CACHE STRING "Suffix to append to liblammps and pkg-config file")
|
||||
mark_as_advanced(LIB_SUFFIX)
|
||||
if(LIB_SUFFIX)
|
||||
set(LIB_SUFFIX "_${LIB_SUFFIX}")
|
||||
set(LAMMPS_LIB_SUFFIX "" CACHE STRING "Suffix to append to liblammps and pkg-config file")
|
||||
mark_as_advanced(LAMMPS_LIB_SUFFIX)
|
||||
if(LAMMPS_LIB_SUFFIX)
|
||||
set(LAMMPS_LIB_SUFFIX "_${LAMMPS_LIB_SUFFIX}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@ -139,6 +170,38 @@ set(LAMMPS_LINK_LIBS)
|
||||
set(LAMMPS_DEPS)
|
||||
set(LAMMPS_API_DEFINES)
|
||||
|
||||
set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR
|
||||
KSPACE MANYBODY MC MESSAGE MISC MOLECULE PERI REPLICA RIGID SHOCK
|
||||
SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD
|
||||
USER-BOCS USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION
|
||||
USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD
|
||||
USER-MEAMC USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF
|
||||
USER-PHONON USER-PLUMED USER-PTM USER-QTB USER-REAXC USER-SCAFACOS
|
||||
USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK
|
||||
USER-QUIP USER-QMMM USER-YAFF)
|
||||
set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU)
|
||||
set(OTHER_PACKAGES CORESHELL QEQ)
|
||||
foreach(PKG ${DEFAULT_PACKAGES})
|
||||
option(PKG_${PKG} "Build ${PKG} Package" OFF)
|
||||
endforeach()
|
||||
foreach(PKG ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
|
||||
option(PKG_${PKG} "Build ${PKG} Package" OFF)
|
||||
endforeach()
|
||||
|
||||
######################################################
|
||||
# packages with special compiler needs or external libs
|
||||
######################################################
|
||||
if(PKG_USER-QUIP OR PKG_USER-QMMM OR PKG_LATTE OR PKG_USER-SCAFACOS)
|
||||
enable_language(Fortran)
|
||||
endif()
|
||||
|
||||
if(PKG_USER-H5MD OR PKG_USER-QMMM OR PKG_USER-SCAFACOS)
|
||||
enable_language(C)
|
||||
endif()
|
||||
|
||||
include_directories(${LAMMPS_SOURCE_DIR})
|
||||
|
||||
# do MPI detection after language activation, if MPI for these language is required
|
||||
find_package(MPI QUIET)
|
||||
option(BUILD_MPI "Build MPI version" ${MPI_FOUND})
|
||||
if(BUILD_MPI)
|
||||
@ -158,7 +221,7 @@ else()
|
||||
endif()
|
||||
|
||||
|
||||
set(LAMMPS_SIZES "smallbig" CACHE STRING "LAMMPS size limit")
|
||||
set(LAMMPS_SIZES "smallbig" CACHE STRING "LAMMPS integer sizes (smallsmall: all 32-bit, smallbig: 64-bit #atoms #timesteps, bigbig: also 64-bit imageint, 64-bit atom ids)")
|
||||
set(LAMMPS_SIZES_VALUES smallbig bigbig smallsmall)
|
||||
set_property(CACHE LAMMPS_SIZES PROPERTY STRINGS ${LAMMPS_SIZES_VALUES})
|
||||
validate_option(LAMMPS_SIZES LAMMPS_SIZES_VALUES)
|
||||
@ -183,25 +246,52 @@ endif()
|
||||
option(CMAKE_VERBOSE_MAKEFILE "Verbose makefile" OFF)
|
||||
|
||||
option(ENABLE_TESTING "Enable testing" OFF)
|
||||
if(ENABLE_TESTING)
|
||||
if(ENABLE_TESTING AND BUILD_EXE)
|
||||
enable_testing()
|
||||
endif(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)
|
||||
|
||||
set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR
|
||||
KSPACE MANYBODY MC MEAM MISC MOLECULE PERI REAX REPLICA RIGID SHOCK SPIN SNAP
|
||||
SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD USER-BOCS
|
||||
USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE
|
||||
USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC
|
||||
USER-MOFFF USER-MOLFILE USER-NETCDF USER-PHONON USER-QTB USER-REAXC USER-SMD
|
||||
USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM)
|
||||
set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU)
|
||||
set(OTHER_PACKAGES CORESHELL QEQ)
|
||||
foreach(PKG ${DEFAULT_PACKAGES})
|
||||
option(PKG_${PKG} "Build ${PKG} Package" OFF)
|
||||
endforeach()
|
||||
foreach(PKG ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
|
||||
option(PKG_${PKG} "Build ${PKG} Package" OFF)
|
||||
endforeach()
|
||||
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()
|
||||
|
||||
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()
|
||||
|
||||
macro(pkg_depends PKG1 PKG2)
|
||||
if(PKG_${PKG1} AND NOT (PKG_${PKG2} OR BUILD_${PKG2}))
|
||||
@ -215,21 +305,11 @@ pkg_depends(MPIIO MPI)
|
||||
pkg_depends(USER-ATC MANYBODY)
|
||||
pkg_depends(USER-LB MPI)
|
||||
pkg_depends(USER-PHONON KSPACE)
|
||||
|
||||
######################################################
|
||||
# packages with special compiler needs or external libs
|
||||
######################################################
|
||||
if(PKG_REAX OR PKG_MEAM OR PKG_USER-QUIP OR PKG_USER-QMMM OR PKG_LATTE)
|
||||
enable_language(Fortran)
|
||||
endif()
|
||||
|
||||
if(PKG_MEAM OR PKG_USER-H5MD OR PKG_USER-QMMM)
|
||||
enable_language(C)
|
||||
endif()
|
||||
pkg_depends(USER-SCAFACOS MPI)
|
||||
|
||||
find_package(OpenMP QUIET)
|
||||
option(BUILD_OMP "Build with OpenMP support" ${OpenMP_FOUND})
|
||||
if(BUILD_OMP OR PKG_USER-OMP OR PKG_KOKKOS OR PKG_USER-INTEL)
|
||||
if(BUILD_OMP OR PKG_KOKKOS OR PKG_USER-INTEL)
|
||||
find_package(OpenMP REQUIRED)
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
||||
@ -276,11 +356,14 @@ endif()
|
||||
|
||||
if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE)
|
||||
find_package(LAPACK)
|
||||
if(NOT LAPACK_FOUND)
|
||||
find_package(BLAS)
|
||||
if(NOT LAPACK_FOUND OR NOT BLAS_FOUND)
|
||||
enable_language(Fortran)
|
||||
file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/*.[fF])
|
||||
file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/[^.]*.[fF])
|
||||
add_library(linalg STATIC ${LAPACK_SOURCES})
|
||||
set(LAPACK_LIBRARIES linalg)
|
||||
else()
|
||||
list(APPEND LAPACK_LIBRARIES ${BLAS_LIBRARIES})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@ -344,16 +427,30 @@ if(WITH_FFMPEG)
|
||||
add_definitions(-DLAMMPS_FFMPEG)
|
||||
endif()
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
set(CONFIGURE_REQUEST_PIC "--with-pic")
|
||||
set(CMAKE_REQUEST_PIC "-DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE}")
|
||||
set(CUDA_REQUEST_PIC "-Xcompiler ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}")
|
||||
else()
|
||||
set(CONFIGURE_REQUEST_PIC)
|
||||
set(CMAKE_REQUEST_PIC)
|
||||
set(CUDA_REQUEST_PIC)
|
||||
endif()
|
||||
|
||||
|
||||
if(PKG_VORONOI)
|
||||
option(DOWNLOAD_VORO "Download voro++ (instead of using the system's one)" OFF)
|
||||
option(DOWNLOAD_VORO "Download and compile the Voro++ library instead of using an already installed one" OFF)
|
||||
if(DOWNLOAD_VORO)
|
||||
message(STATUS "Voro++ download requested - we will build our own")
|
||||
include(ExternalProject)
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
set(VORO_BUILD_OPTIONS "CFLAGS=-fPIC")
|
||||
set(VORO_BUILD_CFLAGS "${CMAKE_SHARED_LIBRARY_CXX_FLAGS} ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${BTYPE}}")
|
||||
else()
|
||||
set(VORO_BUILD_OPTIONS)
|
||||
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 http://math.lbl.gov/voro++/download/dir/voro++-0.4.6.tar.gz
|
||||
@ -367,7 +464,7 @@ if(PKG_VORONOI)
|
||||
else()
|
||||
find_package(VORO)
|
||||
if(NOT VORO_FOUND)
|
||||
message(FATAL_ERROR "VORO not found, help CMake to find it by setting VORO_LIBRARY and VORO_INCLUDE_DIR, or set DOWNLOAD_VORO=ON to download it")
|
||||
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})
|
||||
@ -375,31 +472,133 @@ if(PKG_VORONOI)
|
||||
endif()
|
||||
|
||||
if(PKG_LATTE)
|
||||
option(DOWNLOAD_LATTE "Download latte (instead of using the system's one)" OFF)
|
||||
option(DOWNLOAD_LATTE "Download the LATTE library instead of using an already installed one" OFF)
|
||||
if(DOWNLOAD_LATTE)
|
||||
if (CMAKE_VERSION VERSION_LESS "3.7") # due to SOURCE_SUBDIR
|
||||
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()
|
||||
message(STATUS "LATTE not found - we will build our own")
|
||||
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> -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE}
|
||||
)
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> ${CMAKE_REQUEST_PIC}
|
||||
)
|
||||
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 not found, help CMake to find it by setting LATTE_LIBRARY, or set DOWNLOAD_LATTE=ON to download it")
|
||||
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()
|
||||
|
||||
if(PKG_USER-SCAFACOS)
|
||||
find_package(GSL REQUIRED)
|
||||
option(DOWNLOAD_SCAFACOS "Download ScaFaCoS library instead of using an already installed one" OFF)
|
||||
if(DOWNLOAD_SCAFACOS)
|
||||
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 scafacos REQUIRED)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_LDFLAGS})
|
||||
endif()
|
||||
include_directories(${SCAFACOS_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
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)
|
||||
|
||||
option(DOWNLOAD_PLUMED "Download Plumed package instead of using an already installed one" OFF)
|
||||
if(DOWNLOAD_PLUMED)
|
||||
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.4.4/plumed-src-2.4.4.tgz
|
||||
URL_MD5 71ed465bdc7c2059e282dbda8d564e71
|
||||
BUILD_IN_SOURCE 1
|
||||
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR>
|
||||
${CONFIGURE_REQUEST_PIC}
|
||||
--enable-modules=all
|
||||
CXX=${CMAKE_MPI_CXX_COMPILER}
|
||||
CC=${CMAKE_MPI_C_COMPILER}
|
||||
)
|
||||
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/plumed/obj/kernel.o
|
||||
"${PLUMED_INSTALL_DIR}/lib/plumed/obj/PlumedStatic.o" ${GSL_LIBRARIES} ${CMAKE_DL_LIBS})
|
||||
elseif(PLUMED_MODE STREQUAL "SHARED")
|
||||
list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumed.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 plumed REQUIRED)
|
||||
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()
|
||||
|
||||
if(PKG_USER-MOLFILE)
|
||||
add_library(molfile INTERFACE)
|
||||
target_include_directories(molfile INTERFACE ${LAMMPS_LIB_SOURCE_DIR}/molfile)
|
||||
@ -409,26 +608,28 @@ endif()
|
||||
|
||||
if(PKG_USER-NETCDF)
|
||||
find_package(NetCDF REQUIRED)
|
||||
include_directories(NETCDF_INCLUDE_DIR)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${NETCDF_LIBRARY})
|
||||
include_directories(${NETCDF_INCLUDE_DIRS})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${NETCDF_LIBRARIES})
|
||||
add_definitions(-DLMP_HAS_NETCDF -DNC_64BIT_DATA=0x0020)
|
||||
endif()
|
||||
|
||||
if(PKG_USER-SMD)
|
||||
option(DOWNLOAD_EIGEN3 "Download Eigen3 (instead of using the system's one)" OFF)
|
||||
option(DOWNLOAD_EIGEN3 "Download Eigen3 instead of using an already installed one)" OFF)
|
||||
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.4.tar.gz
|
||||
URL_MD5 1a47e78efe365a97de0c022d127607c3
|
||||
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)
|
||||
if(NOT Eigen3_FOUND)
|
||||
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()
|
||||
@ -455,8 +656,9 @@ if(PKG_USER-VTK)
|
||||
endif()
|
||||
|
||||
if(PKG_KIM)
|
||||
option(DOWNLOAD_KIM "Download kim-api (instead of using the system's one)" OFF)
|
||||
option(DOWNLOAD_KIM "Download KIM-API v1 from OpenKIM instead of using an already installed one)" OFF)
|
||||
if(DOWNLOAD_KIM)
|
||||
message(STATUS "KIM-API v1 download requested - we will build our own")
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(kim_build
|
||||
URL https://github.com/openkim/kim-api/archive/v1.9.5.tar.gz
|
||||
@ -471,19 +673,48 @@ if(PKG_KIM)
|
||||
else()
|
||||
find_package(KIM)
|
||||
if(NOT KIM_FOUND)
|
||||
message(FATAL_ERROR "KIM not found, help CMake to find it by setting KIM_LIBRARY and KIM_INCLUDE_DIR, or set DOWNLOAD_KIM=ON to download it")
|
||||
message(FATAL_ERROR "KIM-API v1 not found, help CMake to find it by setting KIM_LIBRARY and KIM_INCLUDE_DIR, or set DOWNLOAD_KIM=ON to download it")
|
||||
endif()
|
||||
endif()
|
||||
list(APPEND LAMMPS_LINK_LIBS ${KIM_LIBRARIES})
|
||||
include_directories(${KIM_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
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)
|
||||
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()
|
||||
|
||||
if(PKG_MSCG)
|
||||
find_package(GSL REQUIRED)
|
||||
option(DOWNLOAD_MSCG "Download latte (instead of using the system's one)" OFF)
|
||||
option(DOWNLOAD_MSCG "Download MSCG library instead of using an already installed one)" OFF)
|
||||
if(DOWNLOAD_MSCG)
|
||||
if (CMAKE_VERSION VERSION_LESS "3.7") # due to SOURCE_SUBDIR
|
||||
message(FATAL_ERROR "For downlading LATTE you need at least cmake-3.7")
|
||||
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()
|
||||
include(ExternalProject)
|
||||
if(NOT LAPACK_FOUND)
|
||||
@ -493,7 +724,7 @@ if(PKG_MSCG)
|
||||
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> -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} ${EXTRA_MSCG_OPTS}
|
||||
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)
|
||||
@ -530,7 +761,7 @@ endif()
|
||||
# Basic system tests (standard libraries, headers, functions, types) #
|
||||
########################################################################
|
||||
include(CheckIncludeFileCXX)
|
||||
foreach(HEADER math.h)
|
||||
foreach(HEADER cmath)
|
||||
check_include_file_cxx(${HEADER} FOUND_${HEADER})
|
||||
if(NOT FOUND_${HEADER})
|
||||
message(FATAL_ERROR "Could not find needed header - ${HEADER}")
|
||||
@ -541,7 +772,7 @@ set(MATH_LIBRARIES "m" CACHE STRING "math library")
|
||||
mark_as_advanced( MATH_LIBRARIES )
|
||||
include(CheckLibraryExists)
|
||||
if (CMAKE_VERSION VERSION_LESS "3.4")
|
||||
enable_language(C) # check_library_exists isn't supported without a c compiler before v3.4
|
||||
enable_language(C) # check_library_exists isn't supported without a C compiler before v3.4
|
||||
endif()
|
||||
# RB: disabled this check because it breaks with KOKKOS CUDA enabled
|
||||
#foreach(FUNC sin cos)
|
||||
@ -564,8 +795,8 @@ RegisterStyles(${LAMMPS_SOURCE_DIR})
|
||||
foreach(PKG ${DEFAULT_PACKAGES})
|
||||
set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG})
|
||||
|
||||
file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/*.cpp)
|
||||
file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/*.h)
|
||||
file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/[^.]*.cpp)
|
||||
file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/[^.]*.h)
|
||||
|
||||
# check for package files in src directory due to old make system
|
||||
DetectBuildSystemConflict(${LAMMPS_SOURCE_DIR} ${${PKG}_SOURCES} ${${PKG}_HEADERS})
|
||||
@ -579,12 +810,19 @@ foreach(PKG ${DEFAULT_PACKAGES})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# packages that need defines set
|
||||
foreach(PKG MPIIO)
|
||||
if(PKG_${PKG})
|
||||
add_definitions(-DLMP_${PKG})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# dedicated check for entire contents of accelerator packages
|
||||
foreach(PKG ${ACCEL_PACKAGES})
|
||||
set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG})
|
||||
|
||||
file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/*.cpp)
|
||||
file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/*.h)
|
||||
file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/[^.]*.cpp)
|
||||
file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/[^.]*.h)
|
||||
|
||||
# check for package files in src directory due to old make system
|
||||
DetectBuildSystemConflict(${LAMMPS_SOURCE_DIR} ${${PKG}_SOURCES} ${${PKG}_HEADERS})
|
||||
@ -593,19 +831,21 @@ endforeach()
|
||||
##############################################
|
||||
# add lib sources of (simple) enabled packages
|
||||
############################################
|
||||
foreach(SIMPLE_LIB REAX MEAM POEMS USER-ATC USER-AWPMD USER-COLVARS USER-H5MD
|
||||
foreach(SIMPLE_LIB POEMS USER-ATC USER-AWPMD USER-COLVARS USER-H5MD
|
||||
USER-QMMM)
|
||||
if(PKG_${SIMPLE_LIB})
|
||||
string(REGEX REPLACE "^USER-" "" PKG_LIB "${SIMPLE_LIB}")
|
||||
string(TOLOWER "${PKG_LIB}" PKG_LIB)
|
||||
file(GLOB_RECURSE ${PKG_LIB}_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.F
|
||||
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.c ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.cpp)
|
||||
file(GLOB_RECURSE ${PKG_LIB}_SOURCES
|
||||
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.F
|
||||
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.c
|
||||
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.cpp)
|
||||
add_library(${PKG_LIB} STATIC ${${PKG_LIB}_SOURCES})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${PKG_LIB})
|
||||
if(PKG_LIB STREQUAL awpmd)
|
||||
target_include_directories(awpmd PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/awpmd/systems/interact ${LAMMPS_LIB_SOURCE_DIR}/awpmd/ivutils/include)
|
||||
elseif(PKG_LIB STREQUAL h5md)
|
||||
target_include_directories(h5md PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/h5md/include)
|
||||
target_include_directories(h5md PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/h5md/include ${HDF5_INCLUDE_DIRS})
|
||||
elseif(PKG_LIB STREQUAL colvars)
|
||||
target_compile_options(colvars PRIVATE -DLEPTON)
|
||||
target_include_directories(colvars PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/colvars/lepton/include)
|
||||
@ -621,6 +861,9 @@ if(PKG_USER-AWPMD)
|
||||
endif()
|
||||
|
||||
if(PKG_USER-ATC)
|
||||
if(LAMMPS_SIZES STREQUAL BIGBIG)
|
||||
message(FATAL_ERROR "The USER-ATC Package is not compatible with -DLAMMPS_BIGBIG")
|
||||
endif()
|
||||
target_link_libraries(atc ${LAPACK_LIBRARIES})
|
||||
endif()
|
||||
|
||||
@ -628,6 +871,7 @@ if(PKG_USER-H5MD)
|
||||
find_package(HDF5 REQUIRED)
|
||||
target_link_libraries(h5md ${HDF5_LIBRARIES})
|
||||
target_include_directories(h5md PRIVATE ${HDF5_INCLUDE_DIRS})
|
||||
include_directories(${HDF5_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
|
||||
@ -674,13 +918,16 @@ 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}/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)
|
||||
|
||||
@ -710,6 +957,20 @@ if(PKG_USER-OMP)
|
||||
include_directories(${USER-OMP_SOURCES_DIR})
|
||||
endif()
|
||||
|
||||
# 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()
|
||||
|
||||
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)
|
||||
@ -787,7 +1048,7 @@ if(PKG_USER-INTEL)
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16)
|
||||
message(FATAL_ERROR "USER-INTEL is needed at least 2016 intel compiler, found ${CMAKE_CXX_COMPILER_VERSION}")
|
||||
message(FATAL_ERROR "USER-INTEL needs at least a 2016 intel compiler, found ${CMAKE_CXX_COMPILER_VERSION}")
|
||||
endif()
|
||||
|
||||
if(NOT BUILD_OMP)
|
||||
@ -852,7 +1113,7 @@ if(PKG_USER-INTEL)
|
||||
endif()
|
||||
|
||||
if(PKG_GPU)
|
||||
if (CMAKE_VERSION VERSION_LESS "3.1")
|
||||
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)
|
||||
@ -880,35 +1141,63 @@ if(PKG_GPU)
|
||||
set(GPU_PREC_SETTING "SINGLE_SINGLE")
|
||||
endif()
|
||||
|
||||
file(GLOB GPU_LIB_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cpp)
|
||||
file(GLOB GPU_LIB_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cpp)
|
||||
file(MAKE_DIRECTORY ${LAMMPS_LIB_BINARY_DIR}/gpu)
|
||||
|
||||
if(GPU_API STREQUAL "CUDA")
|
||||
find_package(CUDA REQUIRED)
|
||||
find_program(BIN2C bin2c)
|
||||
if(NOT BIN2C)
|
||||
message(FATAL_ERROR "Couldn't find bin2c, use -DBIN2C helping cmake to find it.")
|
||||
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)
|
||||
|
||||
set(GPU_ARCH "sm_30" CACHE STRING "LAMMPS GPU CUDA SM architecture (e.g. sm_60)")
|
||||
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)
|
||||
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)
|
||||
file(GLOB GPU_LIB_CUDPP_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/[^.]*.cpp)
|
||||
file(GLOB GPU_LIB_CUDPP_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/[^.]*.cu)
|
||||
endif()
|
||||
|
||||
cuda_compile_cubin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS
|
||||
-DUNIX -O3 -Xptxas -v --use_fast_math -DNV_KERNEL -DUCL_CUDADR -arch=${GPU_ARCH} -D_${GPU_PREC_SETTING})
|
||||
# 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(GPU_OBJS ${GPU_LIB_CUDPP_CU} OPTIONS $<$<BOOL:${BUILD_SHARED_LIBS}>:-Xcompiler=-fPIC>
|
||||
-DUNIX -O3 -Xptxas -v --use_fast_math -DUCL_CUDADR -arch=${GPU_ARCH} -D_${GPU_PREC_SETTING})
|
||||
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)
|
||||
@ -950,7 +1239,7 @@ if(PKG_GPU)
|
||||
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)
|
||||
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu)
|
||||
list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne.cu ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne_lj.cu)
|
||||
|
||||
foreach(GPU_KERNEL ${GPU_LIB_CU})
|
||||
@ -1000,7 +1289,6 @@ set(LAMMPS_STYLE_HEADERS_DIR ${CMAKE_CURRENT_BINARY_DIR}/styles)
|
||||
|
||||
GenerateStyleHeaders(${LAMMPS_STYLE_HEADERS_DIR})
|
||||
|
||||
include_directories(${LAMMPS_SOURCE_DIR})
|
||||
include_directories(${LAMMPS_STYLE_HEADERS_DIR})
|
||||
|
||||
######################################
|
||||
@ -1008,7 +1296,9 @@ include_directories(${LAMMPS_STYLE_HEADERS_DIR})
|
||||
######################################
|
||||
set(temp "#ifndef LMP_INSTALLED_PKGS_H\n#define LMP_INSTALLED_PKGS_H\n")
|
||||
set(temp "${temp}const char * LAMMPS_NS::LAMMPS::installed_packages[] = {\n")
|
||||
foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
|
||||
set(temp_PKG_LIST ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
|
||||
list(SORT temp_PKG_LIST)
|
||||
foreach(PKG ${temp_PKG_LIST})
|
||||
if(PKG_${PKG})
|
||||
set(temp "${temp} \"${PKG}\",\n")
|
||||
endif()
|
||||
@ -1033,14 +1323,14 @@ if(BUILD_LIB)
|
||||
if(LAMMPS_DEPS)
|
||||
add_dependencies(lammps ${LAMMPS_DEPS})
|
||||
endif()
|
||||
set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LIB_SUFFIX})
|
||||
if(BUILD_SHARED_LIBS)
|
||||
set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
|
||||
install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps)
|
||||
configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc @ONLY)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||
endif()
|
||||
set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LAMMPS_LIB_SUFFIX})
|
||||
set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
|
||||
install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps)
|
||||
configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_LIB_SUFFIX}.pc @ONLY)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||
configure_file(FindLAMMPS.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LAMMPS_LIB_SUFFIX}.cmake @ONLY)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LAMMPS_LIB_SUFFIX}.cmake DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/Modules)
|
||||
else()
|
||||
list(APPEND LMP_SOURCES ${LIB_SOURCES})
|
||||
endif()
|
||||
@ -1055,11 +1345,12 @@ if(BUILD_EXE)
|
||||
add_dependencies(lmp ${LAMMPS_DEPS})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set_target_properties(lmp PROPERTIES OUTPUT_NAME lmp${LAMMPS_MACHINE})
|
||||
|
||||
set_target_properties(lmp PROPERTIES OUTPUT_NAME ${LAMMPS_BINARY})
|
||||
install(TARGETS lmp DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(FILES ${LAMMPS_DOC_DIR}/lammps.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 RENAME ${LAMMPS_BINARY}.1)
|
||||
if(ENABLE_TESTING)
|
||||
add_test(ShowHelp lmp${LAMMPS_MACHINE} -help)
|
||||
add_test(ShowHelp ${LAMMPS_BINARY} -help)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@ -1074,7 +1365,7 @@ if(BUILD_DOC)
|
||||
|
||||
set(VIRTUALENV ${PYTHON_EXECUTABLE} -m virtualenv)
|
||||
|
||||
file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/*.txt)
|
||||
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})
|
||||
|
||||
@ -1127,7 +1418,7 @@ endif()
|
||||
# Install potential files in data directory
|
||||
###############################################################################
|
||||
set(LAMMPS_POTENTIALS_DIR ${CMAKE_INSTALL_FULL_DATADIR}/lammps/potentials)
|
||||
install(DIRECTORY ${LAMMPS_SOURCE_DIR}/../potentials DESTINATION ${CMAKE_INSTALL_DATADIR}/lammps/potentials)
|
||||
install(DIRECTORY ${LAMMPS_SOURCE_DIR}/../potentials/ DESTINATION ${LAMMPS_POTENTIALS_DIR})
|
||||
|
||||
configure_file(etc/profile.d/lammps.sh.in ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.sh @ONLY)
|
||||
configure_file(etc/profile.d/lammps.csh.in ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.csh @ONLY)
|
||||
@ -1169,13 +1460,12 @@ endif()
|
||||
###############################################################################
|
||||
# Print package summary
|
||||
###############################################################################
|
||||
foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES})
|
||||
foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
|
||||
if(PKG_${PKG})
|
||||
message(STATUS "Building package: ${PKG}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
string(TOUPPER "${CMAKE_BUILD_TYPE}" BTYPE)
|
||||
get_directory_property(CPPFLAGS DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS)
|
||||
include(FeatureSummary)
|
||||
feature_summary(DESCRIPTION "The following packages have been found:" WHAT PACKAGES_FOUND)
|
||||
@ -1191,14 +1481,14 @@ message(STATUS "<<< Build configuration >>>
|
||||
get_property(LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES)
|
||||
list (FIND LANGUAGES "Fortran" _index)
|
||||
if (${_index} GREATER -1)
|
||||
message(STATUS "Fortran Compiler ${CMAKE_Fortran_COMPILER}
|
||||
message(STATUS "Fortran Compiler ${CMAKE_Fortran_COMPILER}
|
||||
Type ${CMAKE_Fortran_COMPILER_ID}
|
||||
Version ${CMAKE_Fortran_COMPILER_VERSION}
|
||||
Fortran Flags ${CMAKE_Fortran_FLAGS} ${CMAKE_Fortran_FLAGS_${BTYPE}}")
|
||||
endif()
|
||||
list (FIND LANGUAGES "C" _index)
|
||||
if (${_index} GREATER -1)
|
||||
message(STATUS "C Compiler ${CMAKE_C_COMPILER}
|
||||
message(STATUS "C Compiler ${CMAKE_C_COMPILER}
|
||||
Type ${CMAKE_C_COMPILER_ID}
|
||||
Version ${CMAKE_C_COMPILER_VERSION}
|
||||
C Flags ${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${BTYPE}}")
|
||||
@ -1206,7 +1496,7 @@ endif()
|
||||
if(CMAKE_EXE_LINKER_FLAGS)
|
||||
message(STATUS "Linker flags:
|
||||
Executable ${CMAKE_EXE_LINKER_FLAGS}")
|
||||
endif()
|
||||
endif()
|
||||
if(BUILD_SHARED_LIBS)
|
||||
message(STATUS "Shared libraries ${CMAKE_SHARED_LINKER_FLAGS}")
|
||||
else()
|
||||
|
||||
48
cmake/FindLAMMPS.cmake.in
Normal file
@ -0,0 +1,48 @@
|
||||
# - Find liblammps
|
||||
# Find the native liblammps headers and libraries.
|
||||
#
|
||||
# The following variables will set:
|
||||
# LAMMPS_INCLUDE_DIRS - where to find lammps/library.h, etc.
|
||||
# LAMMPS_LIBRARIES - List of libraries when using lammps.
|
||||
# LAMMPS_API_DEFINES - lammps library api defines
|
||||
# LAMMPS_VERSION - lammps library version
|
||||
# LAMMPS_FOUND - True if liblammps found.
|
||||
#
|
||||
# In addition a LAMMPS::LAMMPS imported target is getting created.
|
||||
#
|
||||
# LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
# http://lammps.sandia.gov, Sandia National Laboratories
|
||||
# Steve Plimpton, sjplimp@sandia.gov
|
||||
#
|
||||
# Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
# DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
# certain rights in this software. This software is distributed under
|
||||
# the GNU General Public License.
|
||||
#
|
||||
# See the README file in the top-level LAMMPS directory.
|
||||
#
|
||||
|
||||
find_package(PkgConfig)
|
||||
|
||||
pkg_check_modules(PC_LAMMPS liblammps@LAMMPS_LIB_SUFFIX@)
|
||||
find_path(LAMMPS_INCLUDE_DIR lammps/library.h HINTS ${PC_LAMMPS_INCLUDE_DIRS} @CMAKE_INSTALL_FULL_INCLUDEDIR@)
|
||||
|
||||
set(LAMMPS_VERSION @LAMMPS_VERSION@)
|
||||
set(LAMMPS_API_DEFINES @LAMMPS_API_DEFINES@)
|
||||
|
||||
find_library(LAMMPS_LIBRARY NAMES lammps@LAMMPS_LIB_SUFFIX@ HINTS ${PC_LAMMPS_LIBRARY_DIRS} @CMAKE_INSTALL_FULL_LIBDIR@)
|
||||
|
||||
set(LAMMPS_INCLUDE_DIRS "${LAMMPS_INCLUDE_DIR}")
|
||||
set(LAMMPS_LIBRARIES "${LAMMPS_LIBRARY}")
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
# handle the QUIETLY and REQUIRED arguments and set LAMMPS_FOUND to TRUE
|
||||
# if all listed variables are TRUE
|
||||
find_package_handle_standard_args(LAMMPS REQUIRED_VARS LAMMPS_LIBRARY LAMMPS_INCLUDE_DIR VERSION_VAR LAMMPS_VERSION)
|
||||
|
||||
mark_as_advanced(LAMMPS_INCLUDE_DIR LAMMPS_LIBRARY)
|
||||
|
||||
if(LAMMPS_FOUND AND NOT TARGET LAMMPS::LAMMPS)
|
||||
add_library(LAMMPS::LAMMPS UNKNOWN IMPORTED)
|
||||
set_target_properties(LAMMPS::LAMMPS PROPERTIES IMPORTED_LOCATION "${LAMMPS_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${LAMMPS_INCLUDE_DIR}" INTERFACE_COMPILE_DEFINITIONS "${LAMMPS_API_DEFINES}")
|
||||
endif()
|
||||
8
cmake/Modules/FindZMQ.cmake
Normal file
@ -0,0 +1,8 @@
|
||||
find_path(ZMQ_INCLUDE_DIR zmq.h)
|
||||
find_library(ZMQ_LIBRARY NAMES zmq)
|
||||
|
||||
set(ZMQ_LIBRARIES ${ZMQ_LIBRARY})
|
||||
set(ZMQ_INCLUDE_DIRS ${ZMQ_INCLUDE_DIR})
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(ZMQ DEFAULT_MSG ZMQ_LIBRARY ZMQ_INCLUDE_DIR)
|
||||
23
cmake/Modules/PreventInSourceBuilds.cmake
Normal file
@ -0,0 +1,23 @@
|
||||
# - Prevent in-source builds.
|
||||
# https://stackoverflow.com/questions/1208681/with-cmake-how-would-you-disable-in-source-builds/
|
||||
|
||||
function(prevent_in_source_builds)
|
||||
# make sure the user doesn't play dirty with symlinks
|
||||
get_filename_component(srcdir "${CMAKE_SOURCE_DIR}" REALPATH)
|
||||
get_filename_component(srcdir2 "${CMAKE_SOURCE_DIR}/.." REALPATH)
|
||||
get_filename_component(srcdir3 "${CMAKE_SOURCE_DIR}/../src" REALPATH)
|
||||
get_filename_component(bindir "${CMAKE_BINARY_DIR}" REALPATH)
|
||||
|
||||
# disallow in-source builds
|
||||
if("${srcdir}" STREQUAL "${bindir}" OR "${srcdir2}" STREQUAL "${bindir}" OR "${srcdir3}" STREQUAL "${bindir}")
|
||||
message(FATAL_ERROR "\
|
||||
|
||||
CMake must not to be run in the source directory. \
|
||||
Rather create a dedicated build directory and run CMake there. \
|
||||
To clean up after this aborted in-place compilation:
|
||||
rm -r CMakeCache.txt CMakeFiles
|
||||
")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
prevent_in_source_builds()
|
||||
@ -48,8 +48,13 @@ function(CreateStyleHeader path filename)
|
||||
set(temp "")
|
||||
if(ARGC GREATER 2)
|
||||
list(REMOVE_AT ARGV 0 1)
|
||||
set(header_list)
|
||||
foreach(FNAME ${ARGV})
|
||||
get_filename_component(FNAME ${FNAME} NAME)
|
||||
list(APPEND header_list ${FNAME})
|
||||
endforeach()
|
||||
list(SORT header_list)
|
||||
foreach(FNAME ${header_list})
|
||||
set(temp "${temp}#include \"${FNAME}\"\n")
|
||||
endforeach()
|
||||
endif()
|
||||
@ -80,19 +85,23 @@ function(RegisterNPairStyle path)
|
||||
AddStyleHeader(${path} NPAIR)
|
||||
endfunction(RegisterNPairStyle)
|
||||
|
||||
function(RegisterFixStyle path)
|
||||
AddStyleHeader(${path} FIX)
|
||||
endfunction(RegisterFixStyle)
|
||||
|
||||
function(RegisterStyles search_path)
|
||||
FindStyleHeaders(${search_path} ANGLE_CLASS angle_ ANGLE ) # angle ) # force
|
||||
FindStyleHeaders(${search_path} ATOM_CLASS atom_vec_ ATOM_VEC ) # atom ) # atom atom_vec_hybrid
|
||||
FindStyleHeaders(${search_path} BODY_CLASS body_ BODY ) # body ) # atom_vec_body
|
||||
FindStyleHeaders(${search_path} BOND_CLASS bond_ BOND ) # bond ) # force
|
||||
FindStyleHeaders(${search_path} COMMAND_CLASS "" COMMAND ) # command ) # input
|
||||
FindStyleHeaders(${search_path} COMMAND_CLASS "[^.]" COMMAND ) # command ) # input
|
||||
FindStyleHeaders(${search_path} COMPUTE_CLASS compute_ COMPUTE ) # compute ) # modify
|
||||
FindStyleHeaders(${search_path} DIHEDRAL_CLASS dihedral_ DIHEDRAL ) # dihedral ) # force
|
||||
FindStyleHeaders(${search_path} DUMP_CLASS dump_ DUMP ) # dump ) # output write_dump
|
||||
FindStyleHeaders(${search_path} FIX_CLASS fix_ FIX ) # fix ) # modify
|
||||
FindStyleHeaders(${search_path} IMPROPER_CLASS improper_ IMPROPER ) # improper ) # force
|
||||
FindStyleHeaders(${search_path} INTEGRATE_CLASS "" INTEGRATE ) # integrate ) # update
|
||||
FindStyleHeaders(${search_path} KSPACE_CLASS "" KSPACE ) # kspace ) # force
|
||||
FindStyleHeaders(${search_path} INTEGRATE_CLASS "[^.]" INTEGRATE ) # integrate ) # update
|
||||
FindStyleHeaders(${search_path} KSPACE_CLASS "[^.]" KSPACE ) # kspace ) # force
|
||||
FindStyleHeaders(${search_path} MINIMIZE_CLASS min_ MINIMIZE ) # minimize ) # update
|
||||
FindStyleHeaders(${search_path} NBIN_CLASS nbin_ NBIN ) # nbin ) # neighbor
|
||||
FindStyleHeaders(${search_path} NPAIR_CLASS npair_ NPAIR ) # npair ) # neighbor
|
||||
|
||||
@ -24,7 +24,7 @@ tasks, act as a reference and provide examples of typical use cases.
|
||||
* [Build directory vs. Source Directory](#build-directory-vs-source-directory)
|
||||
* [Defining and using presets](#defining-and-using-presets)
|
||||
* [Reference](#reference)
|
||||
* [Common CMAKE Configuration Options](#common-cmake-configuration-options)
|
||||
* [Common CMake Configuration Options](#common-cmake-configuration-options)
|
||||
* [LAMMPS Configuration Options](#lammps-configuration-options)
|
||||
* [Parallelization and Accelerator Packages](#parallelization-and-accelerator-packages)
|
||||
* [Default Packages](#default-packages)
|
||||
@ -179,7 +179,7 @@ cmake -C ../cmake/presets/std_nolib.cmake -D PKG_GPU=on ../cmake
|
||||
|
||||
# Reference
|
||||
|
||||
## Common CMAKE Configuration Options
|
||||
## Common CMake Configuration Options
|
||||
|
||||
|
||||
<table>
|
||||
@ -195,6 +195,7 @@ cmake -C ../cmake/presets/std_nolib.cmake -D PKG_GPU=on ../cmake
|
||||
<td><code>CMAKE_INSTALL_PREFIX</code></td>
|
||||
<td>Install location where LAMMPS files will be copied to. In the Unix/Linux case with Makefiles this controls what `make install` will do.</td>
|
||||
<td>
|
||||
Default setting is <code>$HOME/.local</code>.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -207,6 +208,16 @@ cmake -C ../cmake/presets/std_nolib.cmake -D PKG_GPU=on ../cmake
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<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>
|
||||
<dt><code>off</code> (default)</dt>
|
||||
<dt><code>on</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@ -1492,6 +1503,11 @@ target API.
|
||||
</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>
|
||||
<td>(automatic)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@ -1647,9 +1663,8 @@ requires `gzip` to be in your `PATH`
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>GZIP_EXECUTABLE</code></td>
|
||||
<td></td>
|
||||
<td>
|
||||
</td>
|
||||
<td>Path to gzip executable, will automatically pick up the first one in your $PATH.</td>
|
||||
<td>(automatic)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@ -1679,9 +1694,8 @@ requires `ffmpeg` to be in your `PATH`
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>FFMPEG_EXECUTABLE</code></td>
|
||||
<td></td>
|
||||
<td>
|
||||
</td>
|
||||
<td>Path to ffmpeg executable, will automatically pick up the first one in your $PATH.</td>
|
||||
<td>(automatic)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@ -1725,6 +1739,13 @@ cache by setting the `CMAKE_C_COMPILER`, `CMAKE_CXX_COMPILER`,
|
||||
value of `FC` environment variable at first `cmake` run
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>CXX_COMPILER_LAUNCHER</code></td>
|
||||
<td>CMake will run this tool and pass the compiler and its arguments to the tool. Some example tools are distcc and ccache.</td>
|
||||
<td>
|
||||
(empty)
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
@ -1,18 +1,38 @@
|
||||
# pkg-config file for lammps
|
||||
# https://people.freedesktop.org/~dbn/pkg-config-guide.html
|
||||
# Usage: cc `pkg-config --cflags --libs liblammps` -o myapp myapp.c
|
||||
# after you added @CMAKE_INSTALL_FULL_LIBDIR@/pkg-config to PKG_CONFIG_PATH,
|
||||
|
||||
# Add the directory where lammps.pc got installed to your PKG_CONFIG_PATH
|
||||
# e.g. export PKG_CONFIG_PATH=@CMAKE_INSTALL_FULL_LIBDIR@/pkgconfig
|
||||
|
||||
prefix=@CMAKE_INSTALL_FULL_PREFIX@
|
||||
# Use this on commandline with:
|
||||
# c++ `pkg-config --cflags --libs lammps` -o myapp myapp.cpp
|
||||
|
||||
# Use this in a Makefile:
|
||||
# myapp: myapp.cpp
|
||||
# $(CC) `pkg-config --cflags --libs lammps` -o $@ $<
|
||||
|
||||
# Use this in autotools:
|
||||
# configure.ac:
|
||||
# PKG_CHECK_MODULES([LAMMPS], [lammps])
|
||||
# Makefile.am:
|
||||
# myapp_CFLAGS = $(LAMMPS_CFLAGS)
|
||||
# myapp_LDADD = $(LAMMPS_LIBS)
|
||||
|
||||
# Use this in CMake:
|
||||
# CMakeLists.txt:
|
||||
# find_package(PkgConfig)
|
||||
# pkg_check_modules(LAMMPS IMPORTED_TARGET lammps)
|
||||
# target_link_libraries(<lib> PkgConfig::LAMMPS)
|
||||
|
||||
prefix=@CMAKE_INSTALL_PREFIX@
|
||||
libdir=@CMAKE_INSTALL_FULL_LIBDIR@
|
||||
includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
|
||||
|
||||
Name: liblammps@LAMMPS_MACHINE@
|
||||
Description: Large-scale Atomic/Molecular Massively Parallel Simulator Library
|
||||
URL: http://lammps.sandia.gov
|
||||
Version:
|
||||
Version: @LAMMPS_VERSION@
|
||||
Requires:
|
||||
Libs: -L${libdir} -llammps@LIB_SUFFIX@@
|
||||
Libs: -L${libdir} -llammps@LAMMPS_LIB_SUFFIX@
|
||||
Libs.private: -lm
|
||||
Cflags: -I${includedir} @LAMMPS_API_DEFINES@
|
||||
|
||||
@ -8,12 +8,12 @@ set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVA
|
||||
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-SMD USER-SMTBQ USER-SPH USER-TALLY
|
||||
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)
|
||||
USER-NETCDF USER-PLUMED USER-QMMM USER-QUIP USER-SMD USER-VTK)
|
||||
|
||||
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})
|
||||
|
||||
|
||||
@ -8,12 +8,12 @@ set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVA
|
||||
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-SMD USER-SMTBQ USER-SPH USER-TALLY
|
||||
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)
|
||||
USER-NETCDF USER-PLUMED USER-QMMM USER-QUIP USER-SMD USER-VTK)
|
||||
|
||||
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})
|
||||
|
||||
|
||||
@ -56,11 +56,13 @@ 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-PHOFFOFF 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)
|
||||
|
||||
@ -8,12 +8,12 @@ set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVA
|
||||
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-SMD USER-SMTBQ USER-SPH USER-TALLY
|
||||
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)
|
||||
USER-NETCDF USER-PLUMED USER-QMMM USER-QUIP USER-SMD USER-VTK)
|
||||
|
||||
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@ set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVA
|
||||
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-SMD USER-SMTBQ USER-SPH USER-TALLY
|
||||
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
|
||||
|
||||
@ -8,7 +8,7 @@ set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVA
|
||||
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-SMD USER-SMTBQ USER-SPH USER-TALLY
|
||||
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
|
||||
|
||||
@ -8,12 +8,12 @@ set(USER_PACKAGES USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-CGSDK USER-COLVA
|
||||
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-SMD USER-SMTBQ USER-SPH USER-TALLY
|
||||
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)
|
||||
USER-NETCDF USER-PLUMED USER-QMMM USER-QUIP USER-SMD USER-VTK)
|
||||
|
||||
set(ALL_PACKAGES ${STANDARD_PACKAGES} ${USER_PACKAGES})
|
||||
|
||||
|
||||
1
doc/.gitignore
vendored
@ -1,4 +1,5 @@
|
||||
/html
|
||||
/latex
|
||||
/spelling
|
||||
/LAMMPS.epub
|
||||
/LAMMPS.mobi
|
||||
|
||||
36
doc/Makefile
@ -1,7 +1,7 @@
|
||||
# Makefile for LAMMPS documentation
|
||||
|
||||
SHELL = /bin/bash
|
||||
SHA1 = $(shell echo $USER-$PWD | python utils/sha1sum.py)
|
||||
SHELL = /bin/bash
|
||||
SHA1 = $(shell echo ${USER}-${PWD} | python utils/sha1sum.py)
|
||||
BUILDDIR = /tmp/lammps-docs-$(SHA1)
|
||||
RSTDIR = $(BUILDDIR)/rst
|
||||
VENV = $(BUILDDIR)/docenv
|
||||
@ -31,21 +31,24 @@ SPHINXEXTRA = -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocess
|
||||
SOURCES=$(filter-out $(wildcard src/lammps_commands*.txt) src/lammps_support.txt src/lammps_tutorials.txt,$(wildcard src/*.txt))
|
||||
OBJECTS=$(SOURCES:src/%.txt=$(RSTDIR)/%.rst)
|
||||
|
||||
.PHONY: help clean-all clean epub html pdf old venv spelling anchor_check
|
||||
.PHONY: help clean-all clean epub mobi html pdf old venv spelling anchor_check
|
||||
|
||||
# ------------------------------------------
|
||||
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo " html create HTML doc pages in html dir"
|
||||
@echo " pdf create Manual.pdf and Developer.pdf in this dir"
|
||||
@echo " pdf create Developer.pdf and Manual.pdf in this dir"
|
||||
@echo " old create old-style HTML doc pages in old dir"
|
||||
@echo " fetch fetch HTML and PDF files from LAMMPS web site"
|
||||
@echo " epub create ePUB format manual for e-book readers"
|
||||
@echo " mobi convert ePUB to MOBI format manual for e-book readers (e.g. Kindle)"
|
||||
@echo " (requires ebook-convert tool from calibre)"
|
||||
@echo " clean remove all intermediate RST files"
|
||||
@echo " clean-all reset the entire build environment"
|
||||
@echo " txt2html build txt2html tool"
|
||||
@echo " anchor_check scan for duplicate anchor labels"
|
||||
@echo " spelling spell-check the manual"
|
||||
|
||||
# ------------------------------------------
|
||||
|
||||
@ -93,9 +96,10 @@ spelling: $(OBJECTS) utils/sphinx-config/false_positives.txt
|
||||
@echo "Spell check finished."
|
||||
|
||||
epub: $(OBJECTS)
|
||||
@mkdir -p epub
|
||||
@mkdir -p epub/JPG
|
||||
@rm -f LAMMPS.epub
|
||||
@cp src/JPG/lammps-logo.png epub/
|
||||
@cp src/JPG/*.* epub/JPG
|
||||
@(\
|
||||
. $(VENV)/bin/activate ;\
|
||||
cp -r src/* $(RSTDIR)/ ;\
|
||||
@ -106,20 +110,25 @@ epub: $(OBJECTS)
|
||||
@rm -rf epub
|
||||
@echo "Build finished. The ePUB manual file is created."
|
||||
|
||||
mobi: epub
|
||||
@rm -f LAMMPS.mobi
|
||||
@ebook-convert LAMMPS.epub LAMMPS.mobi
|
||||
@echo "Conversion finished. The MOBI manual file is created."
|
||||
|
||||
pdf: utils/txt2html/txt2html.exe
|
||||
@(\
|
||||
set -e; \
|
||||
cd src; \
|
||||
../utils/txt2html/txt2html.exe -b *.txt; \
|
||||
htmldoc --batch lammps.book; \
|
||||
for s in `echo *.txt | sed -e 's,\.txt,\.html,g'` ; \
|
||||
do grep -q $$s lammps.book || \
|
||||
echo doc file $$s missing in src/lammps.book; done; \
|
||||
rm *.html; \
|
||||
cd Developer; \
|
||||
cd src/Developer; \
|
||||
pdflatex developer; \
|
||||
pdflatex developer; \
|
||||
mv developer.pdf ../../Developer.pdf; \
|
||||
cd ..; \
|
||||
../utils/txt2html/txt2html.exe -b *.txt; \
|
||||
htmldoc --batch lammps.book; \
|
||||
for s in `echo *.txt | sed -e 's/ \(pairs\|bonds\|angles\|dihedrals\|impropers\|commands_list\|fixes\|computes\).txt/ /g' | sed -e 's,\.txt,\.html,g'` ; \
|
||||
do grep -q ^$$s lammps.book || \
|
||||
echo WARNING: doc file $$s missing in src/lammps.book; done; \
|
||||
rm *.html; \
|
||||
)
|
||||
|
||||
old: utils/txt2html/txt2html.exe
|
||||
@ -168,7 +177,6 @@ $(VENV):
|
||||
$(VIRTUALENV) -p $(PYTHON) $(VENV); \
|
||||
. $(VENV)/bin/activate; \
|
||||
pip install Sphinx; \
|
||||
pip install sphinxcontrib-images; \
|
||||
deactivate;\
|
||||
)
|
||||
|
||||
|
||||
196
doc/github-development-workflow.md
Normal file
@ -0,0 +1,196 @@
|
||||
# Outline of the GitHub Development Workflow
|
||||
|
||||
This purpose of this document is to provide a point of reference for the
|
||||
core LAMMPS developers and other LAMMPS contributors to understand the
|
||||
choices the LAMMPS developers have agreed on. Git and GitHub provide the
|
||||
tools, but do not set policies, so it is up to the developers to come to
|
||||
an agreement as to how to define and interpret policies. This document
|
||||
is likely to change as our experiences and needs change and we try to
|
||||
adapt accordingly. Last change 2018-12-19.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
* [GitHub Merge Management](#github-merge-management)
|
||||
* [Pull Requests](#pull-requests)
|
||||
* [Pull Request Assignments](#pull-request-assignments)
|
||||
* [Pull Request Reviews](#pull-request-reviews)
|
||||
* [Pull Request Discussions](#pull-request-discussions)
|
||||
* [Checklist for Pull Requests](#checklist-for-pull-requests)
|
||||
* [GitHub Issues](#github-issues)
|
||||
* [Milestones and Release Planning](#milestones-and-release-planning)
|
||||
|
||||
## GitHub Merge Management
|
||||
|
||||
In the interest of consistency, ONLY ONE of the core LAMMPS developers
|
||||
should doing the merging itself. This is currently
|
||||
[@akohlmey](https://github.com/akohlmey) (Axel Kohlmeyer).
|
||||
If this assignment needs to be changed, it shall be done right after a
|
||||
stable release. If the currently assigned developer cannot merge outstanding pull
|
||||
requests in a timely manner, or in other extenuating circumstances,
|
||||
other core LAMMPS developers with merge rights can merge pull requests,
|
||||
when necessary.
|
||||
|
||||
## Pull Requests
|
||||
|
||||
ALL changes to the LAMMPS code and documentation, however trivial, MUST
|
||||
be submitted as a pull request to GitHub. All changes to the "master"
|
||||
branch must be made exclusively through merging pull requests. The
|
||||
"unstable" and "stable" branches, respectively are only to be updated
|
||||
upon patch or stable releases with fast-forward merges based on the
|
||||
associated tags. Pull requests may also be submitted to (long-running)
|
||||
feature branches created by LAMMPS developers inside the LAMMPS project,
|
||||
if needed. Those are not subject to the merge and review restrictions
|
||||
discussed in this document, though, but get managed as needed on a
|
||||
case-by-case basis.
|
||||
|
||||
### Pull Request Assignments
|
||||
|
||||
Pull requests can be "chaperoned" by one of the LAMMPS core developers.
|
||||
This is indicated by who the pull request is assigned to. LAMMPS core
|
||||
developers can self-assign or they can decide to assign a pull request
|
||||
to a different LAMMPS developer. Being assigned to a pull request means,
|
||||
that this pull request may need some work and the assignee is tasked to
|
||||
determine whether this might be needed or not, and may either implement
|
||||
the required changes or ask the submitter of the pull request to implement
|
||||
them. Even though, all LAMMPS developers may have write access to pull
|
||||
requests (if enabled by the submitter, which is the default), only the
|
||||
submitter or the assignee of a pull request may do so. During this
|
||||
period the `work_in_progress` label shall be applied to the pull
|
||||
request. The assignee gets to decide what happens to the pull request
|
||||
next, e.g. whether it should be assigned to a different developer for
|
||||
additional checks and changes, or is recommended to be merged. Removing
|
||||
the `work_in_progress` label and assigning the pull request to the
|
||||
developer tasked with merging signals that a pull request is ready to be
|
||||
merged.
|
||||
|
||||
### Pull Request Reviews
|
||||
|
||||
People can be assigned to review a pull request in two ways:
|
||||
|
||||
* They can be assigned manually to review a pull request
|
||||
by the submitter or a LAMMPS developer
|
||||
* They can be automatically assigned, because a developers matches
|
||||
a file pattern in the `.github/CODEOWNERS` file, which associates
|
||||
developers with the code they contributed and maintain.
|
||||
|
||||
Reviewers are requested to state their appraisal of the proposed changes
|
||||
and either approve or request changes. People may unassign themselves
|
||||
from review, if they feel not competent about the changes proposed. At
|
||||
least two approvals from LAMMPS developers with write access are required
|
||||
before merging in addition to the automated compilation tests.
|
||||
Merging counts as implicit approval, so does submission of a pull request
|
||||
(by a LAMMPS developer). So the person doing the merge may not also submit
|
||||
an approving review. The feature, that reviews from code owners are "hard"
|
||||
reviews (i.e. they must all be approved before merging is allowed), is
|
||||
currently disabled and it is in the discretion of the merge maintainer to
|
||||
assess when a sufficient degree of approval, especially from external
|
||||
contributors, has been reached in these cases. Reviews may be
|
||||
(automatically) dismissed, when the reviewed code has been changed,
|
||||
and then approval is required a second time.
|
||||
|
||||
### Pull Request Discussions
|
||||
|
||||
All discussions about a pull request should be kept as much as possible
|
||||
on the pull request discussion page on GitHub, so that other developers
|
||||
can later review the entire discussion after the fact and understand the
|
||||
rationale behind choices made. Exceptions to this policy are technical
|
||||
discussions, that are centered on tools or policies themselves
|
||||
(git, github, c++) rather than on the content of the pull request.
|
||||
|
||||
### Checklist for Pull Requests
|
||||
|
||||
Here are some items to check:
|
||||
* source and text files should not have CR/LF line endings (use dos2unix to remove)
|
||||
* every new command or style should have documentation. The names of
|
||||
source files (c++ and manual) should follow the name of the style.
|
||||
(example: `src/fix_nve.cpp`, `src/fix_nve.h` for `fix nve` command,
|
||||
implementing the class `FixNVE`, documented in `doc/src/fix_nve.txt`)
|
||||
* all new style names should be lower case, the must be no dashes,
|
||||
blanks, or underscores separating words, only forward slashes.
|
||||
* new style docs should be added to the "overview" files in
|
||||
`doc/src/Commands_*.txt`, `doc/src/{fixes,computes,pairs,bonds,...}.txt`
|
||||
and `doc/src/lammps.book`
|
||||
* check whether manual cleanly translates with `make html` and `make pdf`
|
||||
* check spelling of manual with `make spelling` in doc folder
|
||||
* new source files in packages should be added to `src/.gitignore`
|
||||
* removed or renamed files in packages should be added to `src/Purge.list`
|
||||
* C++ source files should use C++ style include files for accessing
|
||||
C-library APIs, e.g. `#include <cstdlib>` instead of `#include <stdlib.h>`.
|
||||
And they should use angular brackets instead of double quotes. Full list:
|
||||
* assert.h -> cassert
|
||||
* ctype.h -> cctype
|
||||
* errno.h -> cerrno
|
||||
* float.h -> cfloat
|
||||
* limits.h -> climits
|
||||
* math.h -> cmath
|
||||
* complex.h -> complex
|
||||
* setjmp.h -> csetjmp
|
||||
* signal.h -> csignal
|
||||
* stddef.h -> cstddef
|
||||
* stdint.h -> cstdint
|
||||
* stdio.h -> cstdio
|
||||
* stdlib.h -> cstdlib
|
||||
* string.h -> cstring
|
||||
* time.h -> ctime
|
||||
* Do NOT replace (as they are C++-11): `inttypes.h` and `stdint.h`.
|
||||
* Code should follow the C++-98 standard. C++-11 is only accepted
|
||||
in individual special purpose packages
|
||||
* indentation is 2 spaces per level
|
||||
* there should be NO tabs and no trailing whitespace
|
||||
* header files, especially of new styles, should not include any
|
||||
other headers, except the header with the base class or cstdio.
|
||||
Forward declarations should be used instead when possible.
|
||||
* iostreams should be avoided. LAMMPS uses stdio from the C-library.
|
||||
* use of STL in headers and class definitions should be avoided.
|
||||
* there MUST NOT be any "using namespace XXX;" statements in headers.
|
||||
* static class members should be avoided at all cost.
|
||||
* anything storing atom IDs should be using `tagint` and not `int`.
|
||||
This can be flagged by the compiler only for pointers and only when
|
||||
compiling LAMMPS with `-DLAMMPS_BIGBIG`.
|
||||
* when including both `lmptype.h` (and using defines or macros from it)
|
||||
and `mpi.h`, `lmptype.h` must be included first.
|
||||
* when pair styles are added, check if settings for flags like
|
||||
`single_enable`, `writedata`, `reinitflag`, `manybody_flag`
|
||||
and others are correctly set and supported.
|
||||
|
||||
## GitHub Issues
|
||||
|
||||
The GitHub issue tracker is the location where the LAMMPS developers
|
||||
and other contributors or LAMMPS users can report issues or bugs with
|
||||
the LAMMPS code or request new features to be added. Feature requests
|
||||
are usually indicated by a `[Feature Request]` marker in the subject.
|
||||
Issues are assigned to a person, if this person is working on this
|
||||
feature or working to resolve an issue. Issues that have nobody working
|
||||
on them at the moment, have the label `volunteer needed` attached.
|
||||
|
||||
When an issue, say `#125` is resolved by a specific pull request,
|
||||
the comment for the pull request shall contain the text `closes #125`
|
||||
or `fixes #125`, so that the issue is automatically deleted when
|
||||
the pull request is merged.
|
||||
|
||||
## Milestones and Release Planning
|
||||
|
||||
LAMMPS uses a continuous release development model with incremental
|
||||
changes, i.e. significant effort is made - including automated pre-merge
|
||||
testing - that the code in the branch "master" does not get broken.
|
||||
More extensive testing (including regression testing) is performed after
|
||||
code is merged to the "master" branch. There are patch releases of
|
||||
LAMMPS every 1-3 weeks at a point, when the LAMMPS developers feel, that
|
||||
a sufficient amount of changes have happened, and the post-merge testing
|
||||
has been successful. These patch releases are marked with a
|
||||
`patch_<version date>` tag and the "unstable" branch follows only these
|
||||
versions (and thus is always supposed to be of production quality,
|
||||
unlike "master", which may be temporary broken, in the case of larger
|
||||
change sets or unexpected incompatibilities or side effects.
|
||||
|
||||
About 3-4 times each year, there are going to be "stable" releases
|
||||
of LAMMPS. These have seen additional, manual testing and review of
|
||||
results from testing with instrumented code and static code analysis.
|
||||
Also, in the last 2-3 patch releases before a stable release are
|
||||
"release candidate" versions which only contain bugfixes and
|
||||
documentation updates. For release planning and the information of
|
||||
code contributors, issues and pull requests being actively worked on
|
||||
are assigned a "milestone", which corresponds to the next stable
|
||||
release or the stable release after that, with a tentative release
|
||||
date.
|
||||
|
||||
45
doc/lammps.1
Normal file
@ -0,0 +1,45 @@
|
||||
.TH LAMMPS "2018-08-22"
|
||||
.SH NAME
|
||||
.B LAMMPS
|
||||
\- Molecular Dynamics Simulator.
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B lmp
|
||||
-in in.file
|
||||
|
||||
or
|
||||
|
||||
mpirun \-np 2
|
||||
.B lmp
|
||||
-in in.file
|
||||
|
||||
.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
|
||||
atomic, meso, or continuum scale.
|
||||
|
||||
See http://lammps.sandia.gov/ for documentation.
|
||||
|
||||
.SH OPTIONS
|
||||
See https://lammps.sandia.gov/doc/Run_options.html for details on
|
||||
command-line options.
|
||||
|
||||
.SH COPYRIGHT
|
||||
© 2003--2018 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.
|
||||
|
||||
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.
|
||||
|
||||
On Debian systems, the complete text of the GNU General
|
||||
Public License can be found in `/usr/share/common-licenses/GPL-2'.
|
||||
@ -49,7 +49,7 @@ make mybox :pre # uses Makefile.mybox to produce lmp_mybox :pre
|
||||
|
||||
Serial build (see src/MAKE/Makefile.serial):
|
||||
|
||||
MPI_INC = -I../STUBS
|
||||
MPI_INC = -I../STUBS
|
||||
MPI_PATH = -L../STUBS
|
||||
MPI_LIB = -lmpi_stubs :pre
|
||||
|
||||
@ -61,7 +61,7 @@ library files. Failing this, these 3 variables can be used to specify
|
||||
where the mpi.h file (MPI_INC), and the MPI library files (MPI_PATH)
|
||||
are found, and the name of the library files (MPI_LIB).
|
||||
|
||||
For a serial build, you need to specify the 3 varaibles, as shown
|
||||
For a serial build, you need to specify the 3 variables, as shown
|
||||
above.
|
||||
|
||||
For a serial LAMMPS build, use the dummy MPI library provided in
|
||||
@ -137,15 +137,15 @@ simply loading the appropriate module before building LAMMPS.
|
||||
-D CMAKE_C_COMPILER=name # name of C compiler
|
||||
-D CMAKE_Fortran_COMPILER=name # name of Fortran compiler :pre
|
||||
|
||||
-D CMAKE_CXX_FlAGS=string # flags to use with C++ compiler
|
||||
-D CMAKE_C_FlAGS=string # flags to use with C compiler
|
||||
-D CMAKE_Fortran_FlAGS=string # flags to use with Fortran compiler :pre
|
||||
-D CMAKE_CXX_FLAGS=string # flags to use with C++ compiler
|
||||
-D CMAKE_C_FLAGS=string # flags to use with C compiler
|
||||
-D CMAKE_Fortran_FLAGS=string # flags to use with Fortran compiler :pre
|
||||
|
||||
By default CMake will use a compiler it finds and it will add
|
||||
optimization flags appropriate to that compiler and any "accelerator
|
||||
packages"_Speed_packages.html you have included in the build.
|
||||
|
||||
You can tell CMake to look for a specific compiler with these varaible
|
||||
You can tell CMake to look for a specific compiler with these variable
|
||||
settings. Likewise you can specify the FLAGS variables if you want to
|
||||
experiment with alternate optimization flags. You should specify all
|
||||
3 compilers, so that the small number of LAMMPS source files written
|
||||
@ -172,7 +172,7 @@ want.
|
||||
Parallel build (see src/MAKE/Makefile.mpi):
|
||||
|
||||
CC = mpicxx
|
||||
CCFLAGS = -g -O3
|
||||
CCFLAGS = -g -O3
|
||||
LINK = mpicxx
|
||||
LINKFLAGS = -g -O :pre
|
||||
|
||||
@ -216,8 +216,8 @@ LAMMPS can be built as either an executable or as a static or shared
|
||||
library. The LAMMPS library can be called from another application or
|
||||
a scripting language. See the "Howto couple"_Howto_couple.html doc
|
||||
page for more info on coupling LAMMPS to other codes. See the
|
||||
"Python"_Python doc page for more info on wrapping and running LAMMPS
|
||||
from Python via its library interface.
|
||||
"Python"_Python_head.html doc page for more info on wrapping and
|
||||
running LAMMPS from Python via its library interface.
|
||||
|
||||
[CMake variables]:
|
||||
|
||||
@ -247,7 +247,7 @@ Note that for a shared library to be usable by a calling program, all
|
||||
the auxiliary libraries it depends on must also exist as shared
|
||||
libraries. This will be the case for libraries included with LAMMPS,
|
||||
such as the dummy MPI library in src/STUBS or any package libraries in
|
||||
the lib/packages directroy, since they are always built as shared
|
||||
the lib/packages directory, since they are always built as shared
|
||||
libraries using the -fPIC switch. However, if a library like MPI or
|
||||
FFTW does not exist as a shared library, the shared library build will
|
||||
generate an error. This means you will need to install a shared
|
||||
@ -292,6 +292,10 @@ This will create a lammps/doc/html dir with the HTML doc pages so that
|
||||
you can browse them locally on your system. Type "make" from the
|
||||
lammps/doc dir to see other options.
|
||||
|
||||
NOTE: You can also download a tarball of the documentation for the
|
||||
current LAMMPS version (HTML and PDF files), from the website
|
||||
"download page"_http://lammps.sandia.gov/download.html.
|
||||
|
||||
:line
|
||||
|
||||
Install LAMMPS after a build :h4,link(install)
|
||||
@ -299,7 +303,7 @@ Install LAMMPS after a build :h4,link(install)
|
||||
After building LAMMPS, you may wish to copy the LAMMPS executable of
|
||||
library, along with other LAMMPS files (library header, doc files) to
|
||||
a globally visible place on your system, for others to access. Note
|
||||
that you may need super-user priveleges (e.g. sudo) if the directory
|
||||
that you may need super-user privileges (e.g. sudo) if the directory
|
||||
you want to copy files to is protected.
|
||||
|
||||
[CMake variable]:
|
||||
|
||||
@ -27,7 +27,7 @@ make command to build LAMMPS, which uses the created
|
||||
Makefile(s). Example:
|
||||
|
||||
cd lammps # change to the LAMMPS distribution directory
|
||||
mkdir build; cd build # create a new directory (folder) for build
|
||||
mkdir build; cd build # create a new directory (folder) for build
|
||||
cmake ../cmake \[options ...\] # configuration with (command-line) cmake
|
||||
make # compilation :pre
|
||||
|
||||
@ -40,17 +40,17 @@ executable called "lmp" and a library called "liblammps.a" in the
|
||||
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 recompile LAMMPS repeatedly, installation of the
|
||||
LAMMPS or need to re-compile LAMMPS repeatedly, installation of the
|
||||
ccache (= Compiler Cache) software may speed up compilation even more.
|
||||
|
||||
After compilation, you can optionally copy the LAMMPS executable and
|
||||
library into your system folders (by default under /usr/local) with:
|
||||
library into your system folders (by default under $HOME/.local) with:
|
||||
|
||||
make install # optional, copy LAMMPS executable & library elsewhere :pre
|
||||
|
||||
:line
|
||||
|
||||
There are 3 variants of CMake: a command-line verison (cmake), a text mode
|
||||
There are 3 variants of CMake: a command-line version (cmake), a text mode
|
||||
UI version (ccmake), and a graphical GUI version (cmake-GUI). You can use
|
||||
any of them interchangeably to configure and create the LAMMPS build
|
||||
environment. On Linux all the versions produce a Makefile as their
|
||||
@ -188,7 +188,7 @@ module list # is a cmake module already loaded?
|
||||
module avail # is a cmake module available?
|
||||
module load cmake3 # load cmake module with appropriate name :pre
|
||||
|
||||
Most Linux distributions offer precompiled cmake packages through
|
||||
Most Linux distributions offer pre-compiled cmake packages through
|
||||
their package management system. If you do not have CMake or a new
|
||||
enough version, you can download the latest version at
|
||||
"https://cmake.org/download/"_https://cmake.org/download/.
|
||||
|
||||
@ -31,11 +31,11 @@ This is the list of packages that may require additional steps.
|
||||
"KOKKOS"_#kokkos,
|
||||
"LATTE"_#latte,
|
||||
"MEAM"_#meam,
|
||||
"MESSAGE"_#message,
|
||||
"MSCG"_#mscg,
|
||||
"OPT"_#opt,
|
||||
"POEMS"_#poems,
|
||||
"PYTHON"_#python,
|
||||
"REAX"_#reax,
|
||||
"VORONOI"_#voronoi,
|
||||
"USER-ATC"_#user-atc,
|
||||
"USER-AWPMD"_#user-awpmd,
|
||||
@ -44,9 +44,11 @@ This is the list of packages that may require additional steps.
|
||||
"USER-INTEL"_#user-intel,
|
||||
"USER-MOLFILE"_#user-molfile,
|
||||
"USER-NETCDF"_#user-netcdf,
|
||||
"USER-PLUMED"_#user-plumed,
|
||||
"USER-OMP"_#user-omp,
|
||||
"USER-QMMM"_#user-qmmm,
|
||||
"USER-QUIP"_#user-quip,
|
||||
"USER-SCAFACOS"_#user-scafacos,
|
||||
"USER-SMD"_#user-smd,
|
||||
"USER-VTK"_#user-vtk :tb(c=6,ea=c,a=l)
|
||||
|
||||
@ -61,7 +63,7 @@ available on your system.
|
||||
|
||||
If CMake cannot find the library, you can set these variables:
|
||||
|
||||
-D ZLIB_INCLUDE_DIR=path # path to zlib.h header file
|
||||
-D ZLIB_INCLUDE_DIR=path # path to zlib.h header file
|
||||
-D ZLIB_LIBRARIES=path # path to libz.a (.so) file :pre
|
||||
|
||||
[Traditional make]:
|
||||
@ -84,22 +86,31 @@ which GPU hardware to build for.
|
||||
# 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 # hardware choice for GPU_API=cuda
|
||||
-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=cudea
|
||||
-D CUDPP_OPT=value # optimization setting for GPU_API=cuda
|
||||
# enables CUDA Performance Primitives Optimizations
|
||||
# yes (default) or no :pre
|
||||
|
||||
GPU_ARCH settings for different GPU hardware is as follows:
|
||||
|
||||
sm_20 for Fermi (C2050/C2070, deprecated as of CUDA 8.0) or GeForce GTX 580 or similar
|
||||
sm_30 for Kepler (K10)
|
||||
sm_35 for Kepler (K40) or GeForce GTX Titan or similar
|
||||
sm_37 for Kepler (dual K80)
|
||||
sm_50 for Maxwell
|
||||
sm_60 for Pascal (P100)
|
||||
sm_70 for Volta :ul
|
||||
sm_12 or sm_13 for GT200 (supported by CUDA 3.2 until CUDA 6.5)
|
||||
sm_20 or sm_21 for Fermi (supported by CUDA 3.2 until CUDA 7.5)
|
||||
sm_30 or sm_35 or sm_37 for Kepler (supported since CUDA 5)
|
||||
sm_50 or sm_52 for Maxwell (supported since CUDA 6)
|
||||
sm_60 or sm_61 for Pascal (supported since CUDA 8)
|
||||
sm_70 for Volta (supported since CUDA 9)
|
||||
sm_75 for Turing (supported since CUDA 10) :ul
|
||||
|
||||
A more detailed list can be found, for example,
|
||||
at "Wikipedia's CUDA article"_https://en.wikipedia.org/wiki/CUDA#GPUs_supported
|
||||
|
||||
CMake can detect which version of the CUDA toolkit is used and thus can
|
||||
include support for [all] major GPU architectures supported by this toolkit.
|
||||
Thus the GPU_ARCH setting is merely an optimization, to have code for
|
||||
the preferred GPU architecture directly included rather than having to wait
|
||||
for the JIT compiler of the CUDA driver to translate it.
|
||||
|
||||
[Traditional make]:
|
||||
|
||||
@ -125,7 +136,7 @@ specified by the "-m" switch. For your convenience, machine makefiles
|
||||
for "mpi" and "serial" are provided, which have the same settings as
|
||||
the corresponding machine makefiles in the main LAMMPS source
|
||||
folder. In addition you can alter 4 important settings in the
|
||||
Makefile.machine you start from via the corresponding -h, -a, -p, -e
|
||||
Makefile.machine you start from via the corresponding -c, -a, -p, -e
|
||||
switches (as in the examples above), and also save a copy of the new
|
||||
Makefile if desired:
|
||||
|
||||
@ -134,6 +145,11 @@ CUDA_ARCH = sm_XX, what GPU hardware you have, same as CMake GPU_ARCH above
|
||||
CUDA_PRECISION = precision (double, mixed, single)
|
||||
EXTRAMAKE = which Makefile.lammps.* file to copy to Makefile.lammps :ul
|
||||
|
||||
The file Makefile.linux_multi is set up to include support for multiple
|
||||
GPU architectures as supported by the CUDA toolkit in use. This is done
|
||||
through using the "--gencode " flag, which can be used multiple times and
|
||||
thus support all GPU architectures supported by your CUDA compiler.
|
||||
|
||||
If the library build is successful, 3 files should be created:
|
||||
lib/gpu/libgpu.a, lib/gpu/nvc_get_devices, and
|
||||
lib/gpu/Makefile.lammps. The latter has settings that enable LAMMPS
|
||||
@ -147,8 +163,9 @@ re-build LAMMPS. This is because the compilation of files in the GPU
|
||||
package uses the library settings from the lib/gpu/Makefile.machine
|
||||
used to build the GPU library.
|
||||
|
||||
|
||||
:line
|
||||
|
||||
|
||||
KIM package :h4,link(kim)
|
||||
|
||||
To build with this package, the KIM library must be downloaded and
|
||||
@ -175,7 +192,7 @@ package?" page.
|
||||
[CMake build]:
|
||||
|
||||
-D DOWNLOAD_KIM=value # download OpenKIM API v1 for build, value = no (default) or yes
|
||||
-D KIM_LIBRARY=path # KIM library file (only needed if a custom location)
|
||||
-D KIM_LIBRARY=path # KIM library file (only needed if a custom location)
|
||||
-D KIM_INCLUDE_DIR=path # KIM include directory (only needed if a custom location) :pre
|
||||
|
||||
If DOWNLOAD_KIM is set, the KIM library will be downloaded and built
|
||||
@ -252,7 +269,7 @@ For NVIDIA GPUs using CUDA, set these 4 variables:
|
||||
-D KOKKOS_ARCH="archCPU;archGPU" # archCPU = CPU from list above that is hosting the GPU
|
||||
# archGPU = GPU from list above
|
||||
-D KOKKOS_ENABLE_CUDA=yes
|
||||
-D KOKKOS_ENABLE_OPENMP=yes
|
||||
-D KOKKOS_ENABLE_OPENMP=yes
|
||||
-D CMAKE_CXX_COMPILER=wrapper # wrapper = full path to Cuda nvcc wrapper :pre
|
||||
|
||||
The wrapper value is the Cuda nvcc compiler wrapper provided in the
|
||||
@ -294,7 +311,7 @@ export OMPI_CXX = $(KOKKOS_ABSOLUTE_PATH)/config/nvcc_wrapper
|
||||
CC = mpicxx :pre
|
||||
|
||||
:line
|
||||
|
||||
|
||||
LATTE package :h4,link(latte)
|
||||
|
||||
To build with this package, you must download and build the LATTE
|
||||
@ -322,7 +339,7 @@ args:
|
||||
make lib-latte # print help message
|
||||
make lib-latte args="-b" # download and build in lib/latte/LATTE-master
|
||||
make lib-latte args="-p $HOME/latte" # use existing LATTE installation in $HOME/latte
|
||||
make lib-latte args="-b -m gfortran" # download and build in lib/latte and
|
||||
make lib-latte args="-b -m gfortran" # download and build in lib/latte and
|
||||
# copy Makefile.lammps.gfortran to Makefile.lammps
|
||||
:pre
|
||||
|
||||
@ -333,14 +350,14 @@ also check that the Makefile.lammps file you create is appropriate for
|
||||
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 packaged doesn
|
||||
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.
|
||||
|
||||
@ -361,6 +378,10 @@ make lib-meam args="-m mpi" # build with default Fortran compiler compatible
|
||||
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
|
||||
@ -372,7 +393,36 @@ 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,
|
||||
using the open-source "ZeroMQ library"_http://zeromq.org, which must
|
||||
be installed on your system.
|
||||
|
||||
[CMake build]:
|
||||
|
||||
-D MESSAGE_ZMQ=value # build with ZeroMQ support, value = no (default) or yes
|
||||
|
||||
[Traditional make]:
|
||||
|
||||
Before building LAMMPS, you must build the CSlib library in
|
||||
lib/message. You can build the CSlib library manually if you prefer;
|
||||
follow the instructions in lib/message/README. You can also do it in
|
||||
one step from the lammps/src dir, using a command like these, which
|
||||
simply invoke the lib/message/Install.py script with the specified args:
|
||||
|
||||
make lib-message # print help message
|
||||
make lib-message args="-m -z" # build with MPI and socket (ZMQ) support
|
||||
make lib-message args="-s" # build as serial lib with no ZMQ support
|
||||
|
||||
The build should produce two files: lib/message/cslib/src/libmessage.a
|
||||
and lib/message/Makefile.lammps. The latter is copied from an
|
||||
existing Makefile.lammps.* and has settings to link with the ZeroMQ
|
||||
library if requested in the build.
|
||||
|
||||
:line
|
||||
|
||||
MSCG package :h4,link(mscg)
|
||||
|
||||
To build with this package, you must download and build the MS-CG
|
||||
@ -384,7 +434,7 @@ lib/mscg/README and MSCG/Install files for more details.
|
||||
[CMake build]:
|
||||
|
||||
-D DOWNLOAD_MSCG=value # download MSCG for build, value = no (default) or yes
|
||||
-D MSCG_LIBRARY=path # MSCG library file (only needed if a custom location)
|
||||
-D MSCG_LIBRARY=path # MSCG library file (only needed if a custom location)
|
||||
-D MSCG_INCLUDE_DIR=path # MSCG include directory (only needed if a custom location) :pre
|
||||
|
||||
If DOWNLOAD_MSCG is set, the MSCG library will be downloaded and built
|
||||
@ -429,7 +479,7 @@ line of your Makefile.machine. See src/MAKE/OPTIONS/Makefile.opt for
|
||||
an example.
|
||||
|
||||
:line
|
||||
|
||||
|
||||
POEMS package :h4,link(poems)
|
||||
|
||||
[CMake build]:
|
||||
@ -458,7 +508,7 @@ for your system, which should define an EXTRAMAKE variable to specify
|
||||
a corresponding Makefile.lammps.machine file.
|
||||
|
||||
:line
|
||||
|
||||
|
||||
PYTHON package :h4,link(python)
|
||||
|
||||
Building with the PYTHON package requires you have a Python shared
|
||||
@ -470,7 +520,7 @@ lib/python/README for more details.
|
||||
|
||||
-D PYTHON_EXECUTABLE=path # path to Python executable to use :pre
|
||||
|
||||
Without this setting, CMake will ues the default Python on your
|
||||
Without this setting, CMake will guess the default Python on your
|
||||
system. To use a different Python version, you can either create a
|
||||
virtualenv, activate it and then run cmake. Or you can set the
|
||||
PYTHON_EXECUTABLE variable to specify which Python interpreter should
|
||||
@ -484,58 +534,19 @@ process to find Python. You should only need to create a new
|
||||
Makefile.lammps.* file (and copy it to Makefile.lammps) if the LAMMPS
|
||||
build fails.
|
||||
|
||||
:line
|
||||
|
||||
REAX package :h4,link(reax)
|
||||
|
||||
NOTE: the use of the REAX package and its "pair_style
|
||||
reax"_pair_reax.html command is discouraged, as it is no longer
|
||||
maintained. Please use the USER-REAXC package and its "pair_style
|
||||
reax/c"_pair_reaxc.html command instead, and possibly its KOKKOS
|
||||
enabled variant (pair_style reax/c/kk), which has a more robust memory
|
||||
management. See the "pair_style reax/c"_pair_reaxc.html doc page for
|
||||
details.
|
||||
|
||||
[CMake build]:
|
||||
|
||||
No additional settings are needed besides "-D PKG_REAX=yes".
|
||||
|
||||
[Traditional make]:
|
||||
|
||||
Before building LAMMPS, you must build the REAX library in lib/reax.
|
||||
You can do this manually if you prefer; follow the instructions in
|
||||
lib/reax/README. You can also do it in one step from the lammps/src
|
||||
dir, using a command like these, which simply invoke the
|
||||
lib/reax/Install.py script with the specified args:
|
||||
|
||||
make lib-reax # print help message
|
||||
make lib-reax args="-m serial" # build with GNU Fortran compiler (settings as with "make serial")
|
||||
make lib-reax args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
|
||||
make lib-reax args="-m ifort" # build with Intel ifort compiler :pre
|
||||
|
||||
The build should produce two files: lib/reax/libreax.a and
|
||||
lib/reax/Makefile.lammps. The latter is copied from an existing
|
||||
Makefile.lammps.* and has settings needed to link C++ (LAMMPS) with
|
||||
Fortran (REAX library). Typically the two compilers used for LAMMPS
|
||||
and the REAX library need to be consistent (e.g. both Intel or both
|
||||
GNU compilers). If necessary, you can edit/create a new
|
||||
lib/reax/Makefile.machine file for your system, which should define an
|
||||
EXTRAMAKE variable to specify a corresponding Makefile.lammps.machine
|
||||
file.
|
||||
|
||||
:line
|
||||
|
||||
VORONOI package :h4,link(voronoi)
|
||||
|
||||
To build with this package, you must download and build the "Voro++
|
||||
library"_voro_home.
|
||||
library"_voro-home.
|
||||
|
||||
:link(voro_home,http://math.lbl.gov/voro++)
|
||||
:link(voro-home,http://math.lbl.gov/voro++)
|
||||
|
||||
[CMake build]:
|
||||
|
||||
-D DOWNLOAD_VORO=value # download Voro++ for build, value = no (default) or yes
|
||||
-D VORO_LIBRARY=path # Voro++ library file (only needed if at custom location)
|
||||
-D VORO_LIBRARY=path # Voro++ library file (only needed if at custom location)
|
||||
-D VORO_INCLUDE_DIR=path # Voro++ include directory (only needed if at custom location) :pre
|
||||
|
||||
If DOWNLOAD_VORO is set, the Voro++ library will be downloaded and
|
||||
@ -571,8 +582,8 @@ The USER-ATC package requires the MANYBODY package also be installed.
|
||||
|
||||
[CMake build]:
|
||||
|
||||
No additional settings are needed besides "-D PKG_REAX=yes" and "-D
|
||||
PKG_MANYBODY=yes".
|
||||
No additional settings are needed besides "-D PKG_USER-ATC=yes"
|
||||
and "-D PKG_MANYBODY=yes".
|
||||
|
||||
[Traditional make]:
|
||||
|
||||
@ -677,6 +688,114 @@ a corresponding Makefile.lammps.machine file.
|
||||
|
||||
:line
|
||||
|
||||
USER-PLUMED package :h4,link(user-plumed)
|
||||
|
||||
Before building LAMMPS with this package, you must first build PLUMED.
|
||||
PLUMED can be built as part of the LAMMPS build or installed separately
|
||||
from LAMMPS using the generic "plumed installation instructions"_plumedinstall.
|
||||
:link(plumedinstall,http://plumed.github.io/doc-master/user-doc/html/_installation.html)
|
||||
|
||||
PLUMED can be linked into MD codes in three different modes: static,
|
||||
shared, and runtime. With the "static" mode, all the code that PLUMED
|
||||
requires is linked statically into LAMMPS. LAMMPS is then fully
|
||||
independent from the PLUMED installation, but you have to rebuild/relink
|
||||
it in order to update the PLUMED code inside it. With the "shared"
|
||||
linkage mode, LAMMPS is linked to a shared library that contains the
|
||||
PLUMED code. This library should preferably be installed in a globally
|
||||
accessible location. When PLUMED is linked in this way the same library
|
||||
can be used by multiple MD packages. Furthermore, the PLUMED library
|
||||
LAMMPS uses can be updated without the need for a recompile of LAMMPS
|
||||
for as long as the shared PLUMED library is ABI-compatible.
|
||||
|
||||
The third linkage mode is "runtime" which allows the user to specify
|
||||
which PLUMED kernel should be used at runtime by using the PLUMED_KERNEL
|
||||
environment variable. This variable should point to the location of the
|
||||
libplumedKernel.so dynamical shared object, which is then loaded at
|
||||
runtime. This mode of linking is particularly convenient for doing
|
||||
PLUMED development and comparing multiple PLUMED versions as these sorts
|
||||
of comparisons can be done without recompiling the hosting MD code. All
|
||||
three linkage modes are supported by LAMMPS on selected operating
|
||||
systems (e.g. Linux) and using either CMake or traditional make
|
||||
build. The "static" mode should be the most portable, while the
|
||||
"runtime" mode support in LAMMPS makes the most assumptions about
|
||||
operating system and compiler environment. If one mode does not work,
|
||||
try a different one, switch to a different build system, consider a
|
||||
global PLUMED installation or consider downloading PLUMED during the
|
||||
LAMMPS build.
|
||||
|
||||
[CMake build]:
|
||||
|
||||
When the "-D PKG_USER-PLUMED" flag is included in the cmake command you
|
||||
must ensure that GSL is installed in locations that are specified in
|
||||
your environment. There are then two additional commands that control
|
||||
the manner in which PLUMED is obtained and linked into LAMMPS.
|
||||
|
||||
-D DOWNLOAD_PLUMED=value # download PLUMED for build, value = no (default) or yes
|
||||
-D PLUMED_MODE=value # Linkage mode for PLUMED, value = static (default), shared, or runtime :pre
|
||||
|
||||
If DOWNLOAD_PLUMED is set to "yes", the PLUMED library will be
|
||||
downloaded (the version of PLUMED that will be downloaded is hard-coded
|
||||
to a vetted version of PLUMED, usually a recent stable release version)
|
||||
and built inside the CMake build directory. If DOWNLOAD_PLUMED is set
|
||||
to "no" (the default), CMake will try to detect and link to an installed
|
||||
version of PLUMED. For this to work, the PLUMED library has to be
|
||||
installed into a location where the pkg-config tool can find it or the
|
||||
PKG_CONFIG_PATH environment variable has to be set up accordingly.
|
||||
PLUMED should be installed in such a location if you compile it using
|
||||
the default make; make install commands.
|
||||
|
||||
The PLUMED_MODE setting determines the linkage mode for the PLUMED
|
||||
library. The allowed values for this flag are "static" (default),
|
||||
"shared", or "runtime". For a discussion of PLUMED linkage modes,
|
||||
please see above. When DOWNLOAD_PLUMED is enabled the static linkage
|
||||
mode is recommended.
|
||||
|
||||
[Traditional make]:
|
||||
|
||||
PLUMED needs to be installed before the USER-PLUMED package is installed
|
||||
so that LAMMPS can find the right settings when compiling and linking
|
||||
the LAMMPS executable. You can either download and build PLUMED inside
|
||||
the LAMMPS plumed library folder or use a previously installed PLUMED
|
||||
library and point LAMMPS to its location. You also have to choose the
|
||||
linkage mode: "static" (default), "shared" or "runtime". For a
|
||||
discussion of PLUMED linkage modes, please see above.
|
||||
|
||||
Download/compilation/configuration of the plumed library can be done
|
||||
from the src folder through the following make args:
|
||||
|
||||
make lib-plumed # print help message
|
||||
make lib-plumed args="-b" # download and build PLUMED in lib/plumed/plumed2
|
||||
make lib-plumed args="-p $HOME/.local" # use existing PLUMED installation in $HOME/.local
|
||||
make lib-plumed args="-p /usr/local -m shared" # use existing PLUMED installation in
|
||||
# /usr/local and use shared linkage mode
|
||||
:pre
|
||||
|
||||
Note that 2 symbolic (soft) links, "includelink" and "liblink" are
|
||||
created in lib/plumed that point to the location of the PLUMED build to
|
||||
use. A new file lib/plumed/Makefile.lammps is also created with settings
|
||||
suitable for LAMMPS to compile and link PLUMED using the desired linkage
|
||||
mode. After this step is completed, you can install the USER-PLUMED
|
||||
package and compile LAMMPS in the usual manner:
|
||||
|
||||
make yes-user-plumed
|
||||
make machine :pre
|
||||
|
||||
Once this compilation completes you should be able to run LAMMPS in the
|
||||
usual way. For shared linkage mode, libplumed.so must be found by the
|
||||
LAMMPS executable, which on many operating systems means, you have to
|
||||
set the LD_LIBRARY_PATH environment variable accordingly.
|
||||
|
||||
Support for the different linkage modes in LAMMPS varies for different
|
||||
operating systems, using the static linkage is expected to be the most
|
||||
portable, and thus set to be the default.
|
||||
|
||||
If you want to change the linkage mode, you have to re-run "make
|
||||
lib-plumed" with the desired settings [and] do a re-install if the
|
||||
USER-PLUMED package with "make yes-user-plumed" to update the required
|
||||
makefile settings with the changes in the lib/plumed folder.
|
||||
|
||||
:line
|
||||
|
||||
USER-H5MD package :h4,link(user-h5md)
|
||||
|
||||
To build with this package you must have the HDF5 software package
|
||||
@ -687,7 +806,7 @@ the HDF5 library.
|
||||
|
||||
No additional settings are needed besides "-D PKG_USER-H5MD=yes".
|
||||
|
||||
This should autodetect the H5MD library on your system. Several
|
||||
This should auto-detect the H5MD library on your system. Several
|
||||
advanced CMake H5MD options exist if you need to specify where it is
|
||||
installed. Use the ccmake (terminal window) or cmake-gui (graphical)
|
||||
tools to see these options and set them interactively from their user
|
||||
@ -777,7 +896,7 @@ on your system.
|
||||
|
||||
No additional settings are needed besides "-D PKG_USER-NETCDF=yes".
|
||||
|
||||
This should autodetect the NETCDF library if it is installed on your
|
||||
This should auto-detect the NETCDF library if it is installed on your
|
||||
system at standard locations. Several advanced CMake NETCDF options
|
||||
exist if you need to specify where it was installed. Use the ccmake
|
||||
(terminal window) or cmake-gui (graphical) tools to see these options
|
||||
@ -834,7 +953,7 @@ Quantum ESPRESSO known to work with this QM/MM interface was version
|
||||
[CMake build]:
|
||||
|
||||
The CMake build system currently does not support building the full
|
||||
QM/MM-capable hybrid executable of LAMMPS and QE called pwqmmm.x.
|
||||
QM/MM-capable hybrid executable of LAMMPS and QE called pwqmmm.x.
|
||||
You must use the traditional make build for this package.
|
||||
|
||||
[Traditional make]:
|
||||
@ -894,6 +1013,45 @@ successfully build on your system.
|
||||
|
||||
:line
|
||||
|
||||
USER-SCAFACOS package :h4,link(user-scafacos)
|
||||
|
||||
To build with this package, you must download and build the "ScaFaCoS
|
||||
Coulomb solver library"_scafacos-home
|
||||
|
||||
:link(scafacos-home,http://www.scafacos.de)
|
||||
|
||||
[CMake build]:
|
||||
|
||||
-D DOWNLOAD_SCAFACOS=value # download ScaFaCoS for build, value = no (default) or yes
|
||||
-D SCAFACOS_LIBRARY=path # ScaFaCos library file (only needed if at custom location)
|
||||
-D SCAFACOS_INCLUDE_DIR=path # ScaFaCoS include directory (only needed if at custom location) :pre
|
||||
|
||||
If DOWNLOAD_SCAFACOS is set, the ScaFaCoS library will be downloaded
|
||||
and built inside the CMake build directory. If the ScaFaCoS library
|
||||
is already on your system (in a location CMake cannot find it),
|
||||
SCAFACOS_LIBRARY is the filename (plus path) of the ScaFaCoS library
|
||||
file, not the directory the library file is in. SCAFACOS_INCLUDE_DIR
|
||||
is the directory the ScaFaCoS include file is in.
|
||||
|
||||
[Traditional make]:
|
||||
|
||||
You can download and build the ScaFaCoS library manually if you
|
||||
prefer; follow the instructions in lib/scafacos/README. You can also
|
||||
do it in one step from the lammps/src dir, using a command like these,
|
||||
which simply invoke the lib/scafacos/Install.py script with the
|
||||
specified args:
|
||||
|
||||
make lib-scafacos # print help message
|
||||
make lib-scafacos args="-b" # download and build in lib/scafacos/scafacos-<version>
|
||||
make lib-scafacos args="-p $HOME/scafacos # use existing ScaFaCoS installation in $HOME/scafacos
|
||||
|
||||
Note that 2 symbolic (soft) links, "includelink" and "liblink", are
|
||||
created in lib/scafacos to point to the ScaFaCoS src dir. When LAMMPS
|
||||
builds in src it will use these links. You should not need to edit
|
||||
the lib/scafacos/Makefile.lammps file.
|
||||
|
||||
:line
|
||||
|
||||
USER-SMD package :h4,link(user-smd)
|
||||
|
||||
To build with this package, you must download the Eigen3 library.
|
||||
@ -905,7 +1063,7 @@ Eigen3 is a template library, so you do not need to build it.
|
||||
-D EIGEN3_INCLUDE_DIR=path # path to Eigen library (only needed if a custom location) :pre
|
||||
|
||||
If DOWNLOAD_EIGEN3 is set, the Eigen3 library will be downloaded and
|
||||
inside the CMake build directory. If the Eig3n3 library is already on
|
||||
inside the CMake build directory. If the Eigen3 library is already on
|
||||
your system (in a location CMake cannot find it), EIGEN3_INCLUDE_DIR
|
||||
is the directory the Eigen3++ include file is in.
|
||||
|
||||
@ -936,7 +1094,7 @@ your system.
|
||||
|
||||
No additional settings are needed besides "-D PKG_USER-VTK=yes".
|
||||
|
||||
This should autodetect the VTK library if it is installed on your
|
||||
This should auto-detect the VTK library if it is installed on your
|
||||
system at standard locations. Several advanced VTK options exist if
|
||||
you need to specify where it was installed. Use the ccmake (terminal
|
||||
window) or cmake-gui (graphical) tools to see these options and set
|
||||
|
||||
@ -78,7 +78,7 @@ description of the Python interface to LAMMPS, which wraps the C-style
|
||||
interface.
|
||||
|
||||
See the sample codes in examples/COUPLE/simple for examples of C++ and
|
||||
C and Fortran codes that invoke LAMMPS thru its library interface.
|
||||
C and Fortran codes that invoke LAMMPS through its library interface.
|
||||
Other examples in the COUPLE directory use coupling ideas discussed on
|
||||
the "Howto couple"_Howto_couple.html doc page.
|
||||
|
||||
|
||||
@ -35,16 +35,16 @@ This initial compilation can take a long time, since LAMMPS is a large
|
||||
project with many features. If your machine has multiple CPU cores
|
||||
(most do these days), using a command like "make -jN mpi" (with N =
|
||||
the number of available CPU cores) can be much faster. If you plan to
|
||||
do development on LAMMPS or need to recompile LAMMPS repeatedly, the
|
||||
do development on LAMMPS or need to re-compile LAMMPS repeatedly, the
|
||||
installation of the ccache (= Compiler Cache) software may speed up
|
||||
compilation even more.
|
||||
|
||||
After the initial build, whenever you edit LAMMPS source files, or add
|
||||
or remove new files to the source directory (e.g. by installing or
|
||||
uninstalling packages), you must recompile and relink the LAMMPS
|
||||
uninstalling packages), you must re-compile and relink the LAMMPS
|
||||
executable with the same "make" command. This makefiles dependencies
|
||||
should insure that only the subset of files that need to be are
|
||||
recompiled.
|
||||
re-compiled.
|
||||
|
||||
NOTE: When you build LAMMPS for the first time, a long list of *.d
|
||||
files will be printed out rapidly. This is not an error; it is the
|
||||
@ -71,8 +71,8 @@ Makefiles you may wish to try include these (some require a package
|
||||
first be installed). Many of these include specific compiler flags
|
||||
for optimized performance. Please note, however, that some of these
|
||||
customized machine Makefile are contributed by users. Since both
|
||||
compilers, OS configs, and LAMMPS itself keep changing, their settings
|
||||
may become outdated:
|
||||
compilers, OS configurations, and LAMMPS itself keep changing, their
|
||||
settings may become outdated:
|
||||
|
||||
make mac # build serial LAMMPS on a Mac
|
||||
make mac_mpi # build parallel LAMMPS on a Mac
|
||||
|
||||
@ -42,11 +42,11 @@ packages:
|
||||
"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,
|
||||
"POEMS"_Build_extras.html#poems,
|
||||
"PYTHON"_Build_extras.html#python,
|
||||
"REAX"_Build_extras.html#reax,
|
||||
"VORONOI"_Build_extras.html#voronoi,
|
||||
"USER-ATC"_Build_extras.html#user-atc,
|
||||
"USER-AWPMD"_Build_extras.html#user-awpmd,
|
||||
@ -55,9 +55,11 @@ packages:
|
||||
"USER-INTEL"_Build_extras.html#user-intel,
|
||||
"USER-MOLFILE"_Build_extras.html#user-molfile,
|
||||
"USER-NETCDF"_Build_extras.html#user-netcdf,
|
||||
"USER-PLUMED"_Build_extras.html#user-plumed,
|
||||
"USER-OMP"_Build_extras.html#user-omp,
|
||||
"USER-QMMM"_Build_extras.html#user-qmmm,
|
||||
"USER-QUIP"_Build_extras.html#user-quip,
|
||||
"USER-SCAFACOS"_Build_extras.html#user-scafacos,
|
||||
"USER-SMD"_Build_extras.html#user-smd,
|
||||
"USER-VTK"_Build_extras.html#user-vtk :tb(c=6,ea=c,a=l)
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ explain how to do this for building both with CMake and make.
|
||||
"Error handling exceptions"_#exceptions when using LAMMPS as a library :all(b)
|
||||
|
||||
:line
|
||||
|
||||
|
||||
FFT library :h4,link(fft)
|
||||
|
||||
When the KSPACE package is included in a LAMMPS build, the
|
||||
@ -73,15 +73,15 @@ FFT_LIB with the appropriate FFT libraries to include in the link.
|
||||
The "KISS FFT library"_http://kissfft.sf.net is included in the LAMMPS
|
||||
distribution. It is portable across all platforms. Depending on the
|
||||
size of the FFTs and the number of processors used, the other
|
||||
libraries listed here can be faster.
|
||||
libraries listed here can be faster.
|
||||
|
||||
However, note that long-range Coulombics are only a portion of the
|
||||
per-timestep CPU cost, FFTs are only a portion of long-range
|
||||
Coulombics, and 1d FFTs are only a portion of the FFT cost (parallel
|
||||
communication can be costly). A breakdown of these timings is printed
|
||||
to the screen at the end of a run using the "kspace_style
|
||||
pppm"_kspace_style.html command. The "Run output"_doc page gives more
|
||||
details.
|
||||
pppm"_kspace_style.html command. The "Run output"_Run_output.html
|
||||
doc page gives more details.
|
||||
|
||||
FFTW is a fast, portable FFT library that should also work on any
|
||||
platform and can be faster than the KISS FFT library. You can
|
||||
@ -92,7 +92,7 @@ Building FFTW for your box should be as simple as ./configure; make;
|
||||
make install. The install command typically requires root privileges
|
||||
(e.g. invoke it via sudo), unless you specify a local directory with
|
||||
the "--prefix" option of configure. Type "./configure --help" to see
|
||||
various options.
|
||||
various options.
|
||||
|
||||
The Intel MKL math library is part of the Intel compiler suite. It
|
||||
can be used with the Intel or GNU compiler (see FFT_LIB setting above).
|
||||
@ -101,7 +101,7 @@ Performing 3d FFTs in parallel can be time consuming due to data
|
||||
access and required communication. This cost can be reduced by
|
||||
performing single-precision FFTs instead of double precision. Single
|
||||
precision means the real and imaginary parts of a complex datum are
|
||||
4-byte floats. Double precesion means they are 8-byte doubles. Note
|
||||
4-byte floats. Double precision means they are 8-byte doubles. Note
|
||||
that Fourier transform and related PPPM operations are somewhat less
|
||||
sensitive to floating point truncation errors and thus the resulting
|
||||
error is less than the difference in precision. Using the -DFFT_SINGLE
|
||||
@ -139,16 +139,16 @@ adequate.
|
||||
[Makefile.machine setting]:
|
||||
|
||||
LMP_INC = -DLAMMPS_SMALLBIG # or -DLAMMPS_BIGBIG or -DLAMMPS_SMALLSMALL :pre
|
||||
# default is LAMMMPS_SMALLBIG if not specified
|
||||
# default is LAMMPS_SMALLBIG if not specified
|
||||
[CMake and make info]:
|
||||
|
||||
The default "smallbig" setting allows for simulations with:
|
||||
|
||||
|
||||
total atom count = 2^63 atoms (about 9e18)
|
||||
total timesteps = 2^63 (about 9e18)
|
||||
atom IDs = 2^31 (about 2 billion)
|
||||
image flags = roll over at 512 :ul
|
||||
|
||||
|
||||
The "bigbig" setting increases the latter two limits. It allows for:
|
||||
|
||||
total atom count = 2^63 atoms (about 9e18)
|
||||
@ -193,7 +193,7 @@ Output of JPG, PNG, and movie files :h4,link(graphics)
|
||||
|
||||
The "dump image"_dump_image.html command has options to output JPEG or
|
||||
PNG image files. Likewise the "dump movie"_dump_image.html command
|
||||
ouputs movie files in MPEG format. Using these options requires the
|
||||
outputs movie files in MPEG format. Using these options requires the
|
||||
following settings:
|
||||
|
||||
[CMake variables]:
|
||||
@ -206,15 +206,15 @@ following settings:
|
||||
# default = yes if CMake can find ffmpeg, else no :pre
|
||||
|
||||
Usually these settings are all that is needed. If CMake cannot find
|
||||
the graphics header, library, executuable files, you can set these
|
||||
the graphics header, library, executable files, you can set these
|
||||
variables:
|
||||
|
||||
-D JPEG_INCLUDE_DIR=path # path to jpeglib.h header file
|
||||
-D JPEG_LIBRARIES=path # path to libjpeg.a (.so) file
|
||||
-D PNG_INCLUDE_DIR=path # path to png.h header file
|
||||
-D PNG_LIBRARIES=path # path to libpng.a (.so) file
|
||||
-D ZLIB_INCLUDE_DIR=path # path to zlib.h header file
|
||||
-D ZLIB_LIBRARIES=path # path to libz.a (.so) file
|
||||
-D JPEG_INCLUDE_DIR=path # path to jpeglib.h header file
|
||||
-D JPEG_LIBRARIES=path # path to libjpeg.a (.so) file
|
||||
-D PNG_INCLUDE_DIR=path # path to png.h header file
|
||||
-D PNG_LIBRARIES=path # path to libpng.a (.so) file
|
||||
-D ZLIB_INCLUDE_DIR=path # path to zlib.h header file
|
||||
-D ZLIB_LIBRARIES=path # path to libz.a (.so) file
|
||||
-D FFMPEG_EXECUTABLE=path # path to ffmpeg executable :pre
|
||||
|
||||
[Makefile.machine settings]:
|
||||
|
||||
@ -53,20 +53,20 @@ 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.
|
||||
manually set the compiler.
|
||||
|
||||
When compiling for Windows [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
|
||||
flags in LIB makefile variable. Try adding -static-libgcc or -static or
|
||||
both to the linker flags when your resulting LAMMPS Windows executable
|
||||
complains about missing .dll files. The CMake configuration should set
|
||||
this up automatically, but is untested.
|
||||
this up automatically, but is untested.
|
||||
|
||||
In case of problems, you are recommended to contact somebody with
|
||||
experience in using cygwin. If you do come across portability problems
|
||||
requiring changes to the LAMMPS source code, or figure out corrections
|
||||
yourself, please report them on the lammps-users mailing list, or file
|
||||
them as an issue or pull request on the LAMMPS github project.
|
||||
them as an issue or pull request on the LAMMPS GitHub project.
|
||||
|
||||
|
||||
Using a cross-compiler :h4,link(cross)
|
||||
@ -84,7 +84,7 @@ with the cross-compiler environment on Fedora machines.
|
||||
Please keep in mind, though, that this only applies to compiling LAMMPS.
|
||||
Whether the resulting binaries do work correctly is no tested by the
|
||||
LAMMPS developers. We instead rely on the feedback of the users
|
||||
of these precompiled LAMMPS packages for Windows. We will try to resolve
|
||||
of these pre-compiled LAMMPS packages for Windows. We will try to resolve
|
||||
issues to the best of our abilities if we become aware of them. However
|
||||
this is subject to time constraints and focus on HPC platforms.
|
||||
|
||||
|
||||
@ -42,10 +42,10 @@ END_RST -->
|
||||
"Input script structure"_Commands_structure.html
|
||||
"Commands by category"_Commands_category.html :all(b)
|
||||
|
||||
"All commands"_Commands_all.html
|
||||
"Fix commands"_Commands_fix.html
|
||||
"Compute commands"_Commands_compute.html
|
||||
"Pair commands"_Commands_pair.html
|
||||
"General commands"_Commands_all.html
|
||||
"Fix commands"_Commands_fix.html
|
||||
"Compute commands"_Commands_compute.html
|
||||
"Pair commands"_Commands_pair.html
|
||||
"Bond, angle, dihedral, improper commands"_Commands_bond.html
|
||||
"KSpace solvers"_Commands_kspace.html :all(b)
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:line
|
||||
|
||||
"All commands"_Commands_all.html,
|
||||
"General commands"_Commands_all.html,
|
||||
"Fix styles"_Commands_fix.html,
|
||||
"Compute styles"_Commands_compute.html,
|
||||
"Pair styles"_Commands_pair.html,
|
||||
@ -17,9 +17,9 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
"Improper styles"_Commands_bond.html#improper,
|
||||
"KSpace styles"_Commands_kspace.html :tb(c=3,ea=c)
|
||||
|
||||
All commands :h3
|
||||
General commands :h3
|
||||
|
||||
An alphabetic list of all LAMMPS commmands.
|
||||
An alphabetic list of all general LAMMPS commands.
|
||||
|
||||
"angle_coeff"_angle_coeff.html,
|
||||
"angle_style"_angle_style.html,
|
||||
@ -59,6 +59,7 @@ An alphabetic list of all LAMMPS commmands.
|
||||
"fix_modify"_fix_modify.html,
|
||||
"group"_group.html,
|
||||
"group2ndx"_group2ndx.html,
|
||||
"hyper"_hyper.html,
|
||||
"if"_if.html,
|
||||
"info"_info.html,
|
||||
"improper_coeff"_improper_coeff.html,
|
||||
@ -71,6 +72,7 @@ An alphabetic list of all LAMMPS commmands.
|
||||
"lattice"_lattice.html,
|
||||
"log"_log.html,
|
||||
"mass"_mass.html,
|
||||
"message"_message.html,
|
||||
"minimize"_minimize.html,
|
||||
"min_modify"_min_modify.html,
|
||||
"min_style"_min_style.html,
|
||||
@ -103,6 +105,7 @@ An alphabetic list of all LAMMPS commmands.
|
||||
"restart"_restart.html,
|
||||
"run"_run.html,
|
||||
"run_style"_run_style.html,
|
||||
"server"_server.html,
|
||||
"set"_set.html,
|
||||
"shell"_shell.html,
|
||||
"special_bonds"_special_bonds.html,
|
||||
|
||||
@ -5,7 +5,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Commands_all.html)
|
||||
|
||||
"All commands"_Commands_all.html,
|
||||
"General commands"_Commands_all.html,
|
||||
"Fix styles"_Commands_fix.html,
|
||||
"Compute styles"_Commands_compute.html,
|
||||
"Pair styles"_Commands_pair.html,
|
||||
@ -34,9 +34,10 @@ OPT.
|
||||
"fene (iko)"_bond_fene.html,
|
||||
"fene/expand (o)"_bond_fene_expand.html,
|
||||
"gromos (o)"_bond_gromos.html,
|
||||
"harmonic (ko)"_bond_harmonic.html,
|
||||
"harmonic (iko)"_bond_harmonic.html,
|
||||
"harmonic/shift (o)"_bond_harmonic_shift.html,
|
||||
"harmonic/shift/cut (o)"_bond_harmonic_shift_cut.html,
|
||||
"mm3"_bond_mm3.html,
|
||||
"morse (o)"_bond_morse.html,
|
||||
"nonlinear (o)"_bond_nonlinear.html,
|
||||
"oxdna/fene"_bond_oxdna.html,
|
||||
@ -57,20 +58,24 @@ OPT.
|
||||
"zero"_angle_zero.html,
|
||||
"hybrid"_angle_hybrid.html :tb(c=3,ea=c)
|
||||
|
||||
"charmm (ko)"_angle_charmm.html,
|
||||
"charmm (iko)"_angle_charmm.html,
|
||||
"class2 (ko)"_angle_class2.html,
|
||||
"cosine (o)"_angle_cosine.html,
|
||||
"class2/p6"_angle_class2.html,
|
||||
"cosine (ko)"_angle_cosine.html,
|
||||
"cosine/buck6d"_angle_cosine_buck6d.html,
|
||||
"cosine/delta (o)"_angle_cosine_delta.html,
|
||||
"cosine/periodic (o)"_angle_cosine_periodic.html,
|
||||
"cosine/shift (o)"_angle_cosine_shift.html,
|
||||
"cosine/shift/exp (o)"_angle_cosine_shift_exp.html,
|
||||
"cosine/squared (o)"_angle_cosine_squared.html,
|
||||
"cross"_angle_cross.html,
|
||||
"dipole (o)"_angle_dipole.html,
|
||||
"fourier (o)"_angle_fourier.html,
|
||||
"fourier/simple (o)"_angle_fourier_simple.html,
|
||||
"harmonic (iko)"_angle_harmonic.html,
|
||||
"mm3"_angle_mm3.html,
|
||||
"quartic (o)"_angle_quartic.html,
|
||||
"sdk"_angle_sdk.html,
|
||||
"sdk (o)"_angle_sdk.html,
|
||||
"table (o)"_angle_table.html :tb(c=4,ea=c)
|
||||
|
||||
:line
|
||||
@ -95,9 +100,9 @@ OPT.
|
||||
"helix (o)"_dihedral_helix.html,
|
||||
"multi/harmonic (o)"_dihedral_multi_harmonic.html,
|
||||
"nharmonic (o)"_dihedral_nharmonic.html,
|
||||
"opls (iko)"_dihedral_opls.htm;,
|
||||
"opls (iko)"_dihedral_opls.html,
|
||||
"quadratic (o)"_dihedral_quadratic.html,
|
||||
"spherical (o)"_dihedral_spherical.html,
|
||||
"spherical"_dihedral_spherical.html,
|
||||
"table (o)"_dihedral_table.html,
|
||||
"table/cut"_dihedral_table_cut.html :tb(c=4,ea=c)
|
||||
|
||||
@ -112,13 +117,16 @@ OPT.
|
||||
|
||||
"none"_improper_none.html,
|
||||
"zero"_improper_zero.html,
|
||||
"hybrid"_improper_hybrid.html :tb(c=3,ea=c)
|
||||
"hybrid"_improper_hybrid.html :tb(c=3,ea=c)
|
||||
|
||||
"class2 (ko)"_improper_class2.html,
|
||||
"cossq (o)"_improper_cossq.html,
|
||||
"cvff (io)"_improper_cvff.html,
|
||||
"distance"_improper_distance.html,
|
||||
"distharm"_improper_distharm.html,
|
||||
"fourier (o)"_improper_fourier.html,
|
||||
"harmonic (iko)"_improper_harmonic.html,
|
||||
"inversion/harmonic"_improper_inversion_harmonic.html,
|
||||
"ring (o)"_improper_ring.html,
|
||||
"sqdistharm"_improper_sqdistharm.html,
|
||||
"umbrella (o)"_improper_umbrella.html :tb(c=4,ea=c)
|
||||
|
||||
@ -10,10 +10,9 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
Commands by category :h3
|
||||
|
||||
This page lists most of the LAMMPS commands, grouped by category. The
|
||||
"Commands all"_Commands_all.html doc page lists all commands
|
||||
alphabetically. It also includes long lists of style options for
|
||||
entries that appear in the following categories as a single command
|
||||
(fix, compute, pair, etc).
|
||||
"General commands"_Commands_all.html doc page lists all general commands
|
||||
alphabetically. Style options for entries like fix, compute, pair etc.
|
||||
have their own pages where they are listed alphabetically.
|
||||
|
||||
Initialization:
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:line
|
||||
|
||||
"All commands"_Commands_all.html,
|
||||
"General commands"_Commands_all.html,
|
||||
"Fix styles"_Commands_fix.html,
|
||||
"Compute styles"_Commands_compute.html,
|
||||
"Pair styles"_Commands_pair.html,
|
||||
@ -25,6 +25,7 @@ additional letters in parenthesis: g = GPU, i = USER-INTEL, k =
|
||||
KOKKOS, o = USER-OMP, t = OPT.
|
||||
|
||||
"ackland/atom"_compute_ackland_atom.html,
|
||||
"adf"_compute_adf.html,
|
||||
"aggregate/atom"_compute_cluster_atom.html,
|
||||
"angle"_compute_angle.html,
|
||||
"angle/local"_compute_angle_local.html,
|
||||
@ -35,6 +36,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"bond/local"_compute_bond_local.html,
|
||||
"centro/atom"_compute_centro_atom.html,
|
||||
"chunk/atom"_compute_chunk_atom.html,
|
||||
"chunk/spread/atom"_compute_chunk_spread_atom.html,
|
||||
"cluster/atom"_compute_cluster_atom.html,
|
||||
"cna/atom"_compute_cna_atom.html,
|
||||
"cnp/atom"_compute_cnp_atom.html,
|
||||
@ -91,12 +93,15 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"pe/tally"_compute_tally.html,
|
||||
"plasticity/atom"_compute_plasticity_atom.html,
|
||||
"pressure"_compute_pressure.html,
|
||||
"pressure/cylinder"_compute_pressure_cylinder.html,
|
||||
"pressure/uef"_compute_pressure_uef.html,
|
||||
"property/atom"_compute_property_atom.html,
|
||||
"property/chunk"_compute_property_chunk.html,
|
||||
"property/local"_compute_property_local.html,
|
||||
"ptm/atom"_compute_ptm_atom.html,
|
||||
"rdf"_compute_rdf.html,
|
||||
"reduce"_compute_reduce.html,
|
||||
"reduce/chunk"_compute_reduce_chunk.html,
|
||||
"reduce/region"_compute_reduce.html,
|
||||
"rigid/local"_compute_rigid_local.html,
|
||||
"saed"_compute_saed.html,
|
||||
@ -115,7 +120,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"smd/tlsph/strain"_compute_smd_tlsph_strain.html,
|
||||
"smd/tlsph/strain/rate"_compute_smd_tlsph_strain_rate.html,
|
||||
"smd/tlsph/stress"_compute_smd_tlsph_stress.html,
|
||||
"smd/triangle/mesh/vertices"_compute_smd_triangle_mesh_vertices.html,
|
||||
"smd/triangle/vertices"_compute_smd_triangle_vertices.html,
|
||||
"smd/ulsph/num/neighs"_compute_smd_ulsph_num_neighs.html,
|
||||
"smd/ulsph/strain"_compute_smd_ulsph_strain.html,
|
||||
"smd/ulsph/strain/rate"_compute_smd_ulsph_strain_rate.html,
|
||||
@ -126,6 +131,8 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"snav/atom"_compute_sna_atom.html,
|
||||
"spin"_compute_spin.html,
|
||||
"stress/atom"_compute_stress_atom.html,
|
||||
"stress/mop"_compute_stress_mop.html,
|
||||
"stress/mop/profile"_compute_stress_mop.html,
|
||||
"stress/tally"_compute_tally.html,
|
||||
"tdpd/cc/atom"_compute_tdpd_cc_atom.html,
|
||||
"temp (k)"_compute_temp.html,
|
||||
@ -133,6 +140,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
||||
"temp/body"_compute_temp_body.html,
|
||||
"temp/chunk"_compute_temp_chunk.html,
|
||||
"temp/com"_compute_temp_com.html,
|
||||
"temp/cs"_compute_temp_cs.html,
|
||||
"temp/deform"_compute_temp_deform.html,
|
||||
"temp/deform/eff"_compute_temp_deform_eff.html,
|
||||
"temp/drude"_compute_temp_drude.html,
|
||||
|
||||
@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:line
|
||||
|
||||
"All commands"_Commands_all.html,
|
||||
"General commands"_Commands_all.html,
|
||||
"Fix styles"_Commands_fix.html,
|
||||
"Compute styles"_Commands_compute.html,
|
||||
"Pair styles"_Commands_pair.html,
|
||||
@ -40,11 +40,13 @@ OPT.
|
||||
"ave/time"_fix_ave_time.html,
|
||||
"aveforce"_fix_aveforce.html,
|
||||
"balance"_fix_balance.html,
|
||||
"bocs"_fix_bocs.html,
|
||||
"bond/break"_fix_bond_break.html,
|
||||
"bond/create"_fix_bond_create.html,
|
||||
"bond/react"_fix_bond_react.html,
|
||||
"bond/swap"_fix_bond_swap.html,
|
||||
"box/relax"_fix_box_relax.html,
|
||||
"client/md"_fix_client_md.html,
|
||||
"cmap"_fix_cmap.html,
|
||||
"colvars"_fix_colvars.html,
|
||||
"controller"_fix_controller.html,
|
||||
@ -54,7 +56,7 @@ OPT.
|
||||
"drag"_fix_drag.html,
|
||||
"drude"_fix_drude.html,
|
||||
"drude/transform/direct"_fix_drude_transform.html,
|
||||
"drude/transform/reverse"_fix_drude_transform.html,
|
||||
"drude/transform/inverse"_fix_drude_transform.html,
|
||||
"dt/reset"_fix_dt_reset.html,
|
||||
"edpd/source"_fix_dpd_source.html,
|
||||
"efield"_fix_efield.html,
|
||||
@ -65,16 +67,19 @@ OPT.
|
||||
"eos/table/rx (k)"_fix_eos_table_rx.html,
|
||||
"evaporate"_fix_evaporate.html,
|
||||
"external"_fix_external.html,
|
||||
"ffl"_fix_ffl.html,
|
||||
"filter/corotate"_fix_filter_corotate.html,
|
||||
"flow/gauss"_fix_flow_gauss.html,
|
||||
"freeze"_fix_freeze.html,
|
||||
"freeze (k)"_fix_freeze.html,
|
||||
"gcmc"_fix_gcmc.html,
|
||||
"gld"_fix_gld.html,
|
||||
"gle"_fix_gle.html,
|
||||
"gravity (o)"_fix_gravity.html,
|
||||
"gravity (ko)"_fix_gravity.html,
|
||||
"grem"_fix_grem.html,
|
||||
"halt"_fix_halt.html,
|
||||
"heat"_fix_heat.html,
|
||||
"hyper/global"_fix_hyper_global.html,
|
||||
"hyper/local"_fix_hyper_local.html,
|
||||
"imd"_fix_imd.html,
|
||||
"indent"_fix_indent.html,
|
||||
"ipi"_fix_ipi.html,
|
||||
@ -91,6 +96,7 @@ OPT.
|
||||
"lineforce"_fix_lineforce.html,
|
||||
"manifoldforce"_fix_manifoldforce.html,
|
||||
"meso"_fix_meso.html,
|
||||
"meso/move"_fix_meso_move.html,
|
||||
"meso/stationary"_fix_meso_stationary.html,
|
||||
"momentum (k)"_fix_momentum.html,
|
||||
"move"_fix_move.html,
|
||||
@ -106,15 +112,16 @@ OPT.
|
||||
"nph/eff"_fix_nh_eff.html,
|
||||
"nph/sphere (o)"_fix_nph_sphere.html,
|
||||
"nphug (o)"_fix_nphug.html,
|
||||
"npt (kio)"_fix_nh.html,
|
||||
"npt (iko)"_fix_nh.html,
|
||||
"npt/asphere (o)"_fix_npt_asphere.html,
|
||||
"npt/body"_fix_npt_body.html,
|
||||
"npt/eff"_fix_nh_eff.html,
|
||||
"npt/sphere (o)"_fix_npt_sphere.html,
|
||||
"npt/uef"_fix_nh_uef.html,
|
||||
"nve (kio)"_fix_nve.html,
|
||||
"nve (iko)"_fix_nve.html,
|
||||
"nve/asphere (i)"_fix_nve_asphere.html,
|
||||
"nve/asphere/noforce"_fix_nve_asphere_noforce.html,
|
||||
"nve/awpmd"_fix_nve_awpmd.html,
|
||||
"nve/body"_fix_nve_body.html,
|
||||
"nve/dot"_fix_nve_dot.html,
|
||||
"nve/dotc/langevin"_fix_nve_dotc_langevin.html,
|
||||
@ -123,7 +130,7 @@ OPT.
|
||||
"nve/line"_fix_nve_line.html,
|
||||
"nve/manifold/rattle"_fix_nve_manifold_rattle.html,
|
||||
"nve/noforce"_fix_nve_noforce.html,
|
||||
"nve/sphere (o)"_fix_nve_sphere.html,
|
||||
"nve/sphere (ko)"_fix_nve_sphere.html,
|
||||
"nve/spin"_fix_nve_spin.html,
|
||||
"nve/tri"_fix_nve_tri.html,
|
||||
"nvk"_fix_nvk.html,
|
||||
@ -142,6 +149,7 @@ OPT.
|
||||
"phonon"_fix_phonon.html,
|
||||
"pimd"_fix_pimd.html,
|
||||
"planeforce"_fix_planeforce.html,
|
||||
"plumed"_fix_plumed.html,
|
||||
"poems"_fix_poems.html,
|
||||
"pour"_fix_pour.html,
|
||||
"precession/spin"_fix_precession_spin.html,
|
||||
@ -161,34 +169,34 @@ OPT.
|
||||
"qmmm"_fix_qmmm.html,
|
||||
"qtb"_fix_qtb.html,
|
||||
"rattle"_fix_shake.html,
|
||||
"reax/bonds"_fix_reax_bonds.html,
|
||||
"reax/c/bonds (k)"_fix_reax_bonds.html,
|
||||
"reax/c/bonds (k)"_fix_reaxc_bonds.html,
|
||||
"reax/c/species (k)"_fix_reaxc_species.html,
|
||||
"recenter"_fix_recenter.html,
|
||||
"restrain"_fix_restrain.html,
|
||||
"rhok"_fix_rhok.html,
|
||||
"rigid (o)"_fix_rigid.html,
|
||||
"rigid/meso"_fix_rigid_meso.html,
|
||||
"rigid/nph (o)"_fix_rigid.html,
|
||||
"rigid/nph/small"_fix_rigid.html,
|
||||
"rigid/npt (o)"_fix_rigid.html,
|
||||
"rigid/npt/small"_fix_rigid.html,
|
||||
"rigid/nve (o)"_fix_rigid.html,
|
||||
"rigid/nve/small"_fix_rigid.html,
|
||||
"rigid/nvt (o)"_fix_rigid.html,
|
||||
"rigid/nvt/small"_fix_rigid.html,
|
||||
"rigid/small (o)"_fix_rigid.html,
|
||||
"rigid/small/nph"_fix_rigid.html,
|
||||
"rigid/small/npt"_fix_rigid.html,
|
||||
"rigid/small/nve"_fix_rigid.html,
|
||||
"rigid/small/nvt"_fix_rigid.html,
|
||||
"rx (k)"_fix_rx.html,
|
||||
"saed/vtk"_fix_saed_vtk.html,
|
||||
"setforce (k)"_fix_setforce.html,
|
||||
"shake"_fix_shake.html,
|
||||
"shardlow (k)"_fix_shardlow.html,
|
||||
"smd"_fix_smd.html,
|
||||
"smd/adjust/dt"_fix_smd_adjust_dt.html,
|
||||
"smd/integrate/tlsph"_fix_smd_integrate_tlsph.html,
|
||||
"smd/integrate/ulsph"_fix_smd_integrate_ulsph.html,
|
||||
"smd/move/triangulated/surface"_fix_smd_move_triangulated_surface.html,
|
||||
"smd/adjust_dt"_fix_smd_adjust_dt.html,
|
||||
"smd/integrate_tlsph"_fix_smd_integrate_tlsph.html,
|
||||
"smd/integrate_ulsph"_fix_smd_integrate_ulsph.html,
|
||||
"smd/move_tri_surf"_fix_smd_move_triangulated_surface.html,
|
||||
"smd/setvel"_fix_smd_setvel.html,
|
||||
"smd/wall/surface"_fix_smd_wall_surface.html,
|
||||
"smd/wall_surface"_fix_smd_wall_surface.html,
|
||||
"spring"_fix_spring.html,
|
||||
"spring/chunk"_fix_spring_chunk.html,
|
||||
"spring/rg"_fix_spring_rg.html,
|
||||
@ -216,7 +224,7 @@ OPT.
|
||||
"wall/body/polyhedron"_fix_wall_body_polyhedron.html,
|
||||
"wall/colloid"_fix_wall.html,
|
||||
"wall/ees"_fix_wall_ees.html,
|
||||
"wall/gran"_fix_wall_gran.html,
|
||||
"wall/gran (o)"_fix_wall_gran.html,
|
||||
"wall/gran/region"_fix_wall_gran_region.html,
|
||||
"wall/harmonic"_fix_wall.html,
|
||||
"wall/lj1043"_fix_wall.html,
|
||||
@ -226,4 +234,4 @@ OPT.
|
||||
"wall/reflect (k)"_fix_wall_reflect.html,
|
||||
"wall/region"_fix_wall_region.html,
|
||||
"wall/region/ees"_fix_wall_ees.html,
|
||||
"wall/srd"_fix_wall_srd.html :tb(c=8,ea=c)
|
||||
"wall/srd"_fix_wall_srd.html :tb(c=6,ea=c)
|
||||
|
||||
@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:line
|
||||
|
||||
"All commands"_Commands_all.html,
|
||||
"General commands"_Commands_all.html,
|
||||
"Fix styles"_Commands_fix.html,
|
||||
"Compute styles"_Commands_compute.html,
|
||||
"Pair styles"_Commands_pair.html,
|
||||
@ -33,4 +33,5 @@ OPT.
|
||||
"pppm/disp (i)"_kspace_style.html,
|
||||
"pppm/disp/tip4p"_kspace_style.html,
|
||||
"pppm/stagger"_kspace_style.html,
|
||||
"pppm/tip4p (o)"_kspace_style.html :tb(c=4,ea=c)
|
||||
"pppm/tip4p (o)"_kspace_style.html,
|
||||
"scafacos"_kspace_style.html :tb(c=4,ea=c)
|
||||
|
||||
@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:line
|
||||
|
||||
"All commands"_Commands_all.html,
|
||||
"General commands"_Commands_all.html,
|
||||
"Fix styles"_Commands_fix.html,
|
||||
"Compute styles"_Commands_compute.html,
|
||||
"Pair styles"_Commands_pair.html,
|
||||
@ -26,13 +26,14 @@ OPT.
|
||||
|
||||
"none"_pair_none.html,
|
||||
"zero"_pair_zero.html,
|
||||
"hybrid"_pair_hybrid.html,
|
||||
"hybrid (k)"_pair_hybrid.html,
|
||||
"hybrid/overlay (k)"_pair_hybrid.html :tb(c=4,ea=c)
|
||||
|
||||
"adp (o)"_pair_adp.html,
|
||||
"agni (o)"_pair_agni.html,
|
||||
"airebo (oi)"_pair_airebo.html,
|
||||
"airebo/morse (oi)"_pair_airebo.html,
|
||||
"airebo (io)"_pair_airebo.html,
|
||||
"airebo/morse (io)"_pair_airebo.html,
|
||||
"atm"_pair_atm.html,
|
||||
"awpmd/cut"_pair_awpmd.html,
|
||||
"beck (go)"_pair_beck.html,
|
||||
"body/nparticle"_pair_body_nparticle.html,
|
||||
@ -41,37 +42,39 @@ OPT.
|
||||
"bop"_pair_bop.html,
|
||||
"born (go)"_pair_born.html,
|
||||
"born/coul/dsf"_pair_born.html,
|
||||
"born/coul/dsf/cs"_pair_born.html,
|
||||
"born/coul/dsf/cs"_pair_cs.html,
|
||||
"born/coul/long (go)"_pair_born.html,
|
||||
"born/coul/long/cs"_pair_born.html,
|
||||
"born/coul/long/cs (g)"_pair_cs.html,
|
||||
"born/coul/msm (o)"_pair_born.html,
|
||||
"born/coul/wolf (go)"_pair_born.html,
|
||||
"born/coul/wolf/cs"_pair_born.html,
|
||||
"born/coul/wolf/cs (g)"_pair_cs.html,
|
||||
"brownian (o)"_pair_brownian.html,
|
||||
"brownian/poly (o)"_pair_brownian.html,
|
||||
"buck (giko)"_pair_buck.html,
|
||||
"buck/coul/cut (giko)"_pair_buck.html,
|
||||
"buck/coul/long (giko)"_pair_buck.html,
|
||||
"buck/coul/long/cs"_pair_buck.html,
|
||||
"buck/coul/long/cs"_pair_cs.html,
|
||||
"buck/coul/msm (o)"_pair_buck.html,
|
||||
"buck/long/coul/long (o)"_pair_buck_long.html,
|
||||
"buck/mdf"_pair_mdf.html,
|
||||
"buck6d/coul/gauss/dsf"_pair_buck6d_coul_gauss.html,
|
||||
"buck6d/coul/gauss/long"_pair_buck6d_coul_gauss.html,
|
||||
"colloid (go)"_pair_colloid.html,
|
||||
"comb (o)"_pair_comb.html,
|
||||
"comb3"_pair_comb.html,
|
||||
"coul/cut (gko)"_pair_coul.html,
|
||||
"coul/cut/soft (o)"_pair_lj_soft.html,
|
||||
"coul/cut/soft (o)"_pair_fep_soft.html,
|
||||
"coul/debye (gko)"_pair_coul.html,
|
||||
"coul/diel (o)"_pair_coul_diel.html,
|
||||
"coul/dsf (gko)"_pair_coul.html,
|
||||
"coul/long (gko)"_pair_coul.html,
|
||||
"coul/long/cs"_pair_coul.html,
|
||||
"coul/long/soft (o)"_pair_lj_soft.html,
|
||||
"coul/msm"_pair_coul.html,
|
||||
"coul/long/cs (g)"_pair_cs.html,
|
||||
"coul/long/soft (o)"_pair_fep_soft.html,
|
||||
"coul/msm (o)"_pair_coul.html,
|
||||
"coul/shield"_pair_coul_shield.html,
|
||||
"coul/streitz"_pair_coul.html,
|
||||
"coul/wolf (ko)"_pair_coul.html,
|
||||
"coul/wolf/cs"_pair_coul.html,
|
||||
"coul/wolf/cs"_pair_cs.html,
|
||||
"dpd (gio)"_pair_dpd.html,
|
||||
"dpd/fdt"_pair_dpd_fdt.html,
|
||||
"dpd/fdt/energy (k)"_pair_dpd_fdt.html,
|
||||
@ -80,6 +83,7 @@ OPT.
|
||||
"eam (gikot)"_pair_eam.html,
|
||||
"eam/alloy (gikot)"_pair_eam.html,
|
||||
"eam/cd (o)"_pair_eam.html,
|
||||
"eam/cd/old (o)"_pair_eam.html,
|
||||
"eam/fs (gikot)"_pair_eam.html,
|
||||
"edip (o)"_pair_edip.html,
|
||||
"edip/multi"_pair_edip.html,
|
||||
@ -89,11 +93,11 @@ OPT.
|
||||
"exp6/rx (k)"_pair_exp6_rx.html,
|
||||
"extep"_pair_extep.html,
|
||||
"gauss (go)"_pair_gauss.html,
|
||||
"gauss/cut"_pair_gauss.html,
|
||||
"gauss/cut (o)"_pair_gauss.html,
|
||||
"gayberne (gio)"_pair_gayberne.html,
|
||||
"gran/hertz/history (o)"_pair_gran.html,
|
||||
"gran/hooke (o)"_pair_gran.html,
|
||||
"gran/hooke/history (o)"_pair_gran.html,
|
||||
"gran/hooke/history (ko)"_pair_gran.html,
|
||||
"gw"_pair_gw.html,
|
||||
"gw/zbl"_pair_gw.html,
|
||||
"hbond/dreiding/lj (o)"_pair_hbond_dreiding.html,
|
||||
@ -103,50 +107,57 @@ OPT.
|
||||
"kolmogorov/crespi/full"_pair_kolmogorov_crespi_full.html,
|
||||
"kolmogorov/crespi/z"_pair_kolmogorov_crespi_z.html,
|
||||
"lcbop"_pair_lcbop.html,
|
||||
"lebedeva/z"_pair_lebedeva_z.html,
|
||||
"lennard/mdf"_pair_mdf.html,
|
||||
"line/lj"_pair_line_lj.html,
|
||||
"list"_pair_list.html,
|
||||
"lj/charmm/coul/charmm (iko)"_pair_charmm.html,
|
||||
"lj/charmm/coul/charmm/implicit (ko)"_pair_charmm.html,
|
||||
"lj/charmm/coul/long (giko)"_pair_charmm.html,
|
||||
"lj/charmm/coul/long/soft (o)"_pair_charmm.html,
|
||||
"lj/charmm/coul/msm"_pair_charmm.html,
|
||||
"lj/charmm/coul/long (gikot)"_pair_charmm.html,
|
||||
"lj/charmm/coul/long/soft (o)"_pair_fep_soft.html,
|
||||
"lj/charmm/coul/msm (o)"_pair_charmm.html,
|
||||
"lj/charmmfsw/coul/charmmfsh"_pair_charmm.html,
|
||||
"lj/charmmfsw/coul/long"_pair_charmm.html,
|
||||
"lj/class2 (gko)"_pair_class2.html,
|
||||
"lj/class2/coul/cut (ko)"_pair_class2.html,
|
||||
"lj/class2/coul/cut/soft"_pair_fep_soft.html,
|
||||
"lj/class2/coul/long (gko)"_pair_class2.html,
|
||||
"lj/class2/coul/long/soft"_pair_fep_soft.html,
|
||||
"lj/class2/soft"_pair_fep_soft.html,
|
||||
"lj/cubic (go)"_pair_lj_cubic.html,
|
||||
"lj/cut (gikot)"_pair_lj.html,
|
||||
"lj/cut/coul/cut (gko)"_pair_lj.html,
|
||||
"lj/cut/coul/cut/soft (o)"_pair_lj_soft.html,
|
||||
"lj/cut/coul/cut/soft (o)"_pair_fep_soft.html,
|
||||
"lj/cut/coul/debye (gko)"_pair_lj.html,
|
||||
"lj/cut/coul/dsf (gko)"_pair_lj.html,
|
||||
"lj/cut/coul/long (gikot)"_pair_lj.html,
|
||||
"lj/cut/coul/long/cs"_pair_lj.html,
|
||||
"lj/cut/coul/long/soft (o)"_pair_lj_soft.html,
|
||||
"lj/cut/coul/long/cs"_pair_cs.html,
|
||||
"lj/cut/coul/long/soft (o)"_pair_fep_soft.html,
|
||||
"lj/cut/coul/msm (go)"_pair_lj.html,
|
||||
"lj/cut/coul/wolf (o)"_pair_lj.html,
|
||||
"lj/cut/dipole/cut (go)"_pair_dipole.html,
|
||||
"lj/cut/dipole/long"_pair_dipole.html,
|
||||
"lj/cut/dipole/long (g)"_pair_dipole.html,
|
||||
"lj/cut/dipole/sf (go)"_pair_dipole.html,
|
||||
"lj/cut/soft (o)"_pair_lj_soft.html,
|
||||
"lj/cut/soft (o)"_pair_fep_soft.html,
|
||||
"lj/cut/thole/long (o)"_pair_thole.html,
|
||||
"lj/cut/tip4p/cut (o)"_pair_lj.html,
|
||||
"lj/cut/tip4p/long (ot)"_pair_lj.html,
|
||||
"lj/cut/tip4p/long/soft (o)"_pair_lj_soft.html,
|
||||
"lj/cut/tip4p/long/soft (o)"_pair_fep_soft.html,
|
||||
"lj/expand (gko)"_pair_lj_expand.html,
|
||||
"lj/expand/coul/long (g)"_pair_lj_expand.html,
|
||||
"lj/gromacs (gko)"_pair_gromacs.html,
|
||||
"lj/gromacs/coul/gromacs (ko)"_pair_gromacs.html,
|
||||
"lj/long/coul/long (io)"_pair_lj_long.html,
|
||||
"lj/long/coul/long (iot)"_pair_lj_long.html,
|
||||
"lj/long/dipole/long"_pair_dipole.html,
|
||||
"lj/long/tip4p/long"_pair_lj_long.html,
|
||||
"lj/long/tip4p/long (o)"_pair_lj_long.html,
|
||||
"lj/mdf"_pair_mdf.html,
|
||||
"lj/sdk (gko)"_pair_sdk.html,
|
||||
"lj/sdk/coul/long (go)"_pair_sdk.html,
|
||||
"lj/sdk/coul/msm (o)"_pair_sdk.html,
|
||||
"lj/sf/dipole/sf (go)"_pair_dipole.html,
|
||||
"lj/smooth (o)"_pair_lj_smooth.html,
|
||||
"lj/smooth/linear (o)"_pair_lj_smooth_linear.html,
|
||||
"lj/switch3/coulgauss/long"_pair_lj_switch3_coulgauss.html,
|
||||
"lj96/cut (go)"_pair_lj96.html,
|
||||
"lubricate (o)"_pair_lubricate.html,
|
||||
"lubricate/poly (o)"_pair_lubricate.html,
|
||||
@ -154,19 +165,18 @@ OPT.
|
||||
"lubricateU/poly"_pair_lubricateU.html,
|
||||
"mdpd"_pair_meso.html,
|
||||
"mdpd/rhosum"_pair_meso.html,
|
||||
"meam"_pair_meam.html,
|
||||
"meam/c"_pair_meam.html,
|
||||
"meam/c"_pair_meamc.html,
|
||||
"meam/spline (o)"_pair_meam_spline.html,
|
||||
"meam/sw/spline"_pair_meam_sw_spline.html,
|
||||
"mgpt"_pair_mgpt.html,
|
||||
"mie/cut (o)"_pair_mie.html,
|
||||
"mie/cut (g)"_pair_mie.html,
|
||||
"momb"_pair_momb.html,
|
||||
"morse (gkot)"_pair_morse.html,
|
||||
"morse/smooth/linear"_pair_morse.html,
|
||||
"morse/soft"_pair_morse.html,
|
||||
"morse/smooth/linear (o)"_pair_morse.html,
|
||||
"morse/soft"_pair_fep_soft.html,
|
||||
"multi/lucy"_pair_multi_lucy.html,
|
||||
"multi/lucy/rx (k)"_pair_multi_lucy_rx.html,
|
||||
"nb3b/harmonic (o)"_pair_nb3b_harmonic.html,
|
||||
"nb3b/harmonic"_pair_nb3b_harmonic.html,
|
||||
"nm/cut (o)"_pair_nm.html,
|
||||
"nm/cut/coul/cut (o)"_pair_nm.html,
|
||||
"nm/cut/coul/long (o)"_pair_nm.html,
|
||||
@ -178,7 +188,9 @@ OPT.
|
||||
"oxdna2/coaxstk"_pair_oxdna2.html,
|
||||
"oxdna2/dh"_pair_oxdna2.html,
|
||||
"oxdna2/excv"_pair_oxdna2.html,
|
||||
"oxdna2/hbond"_pair_oxdna2.html,
|
||||
"oxdna2/stk"_pair_oxdna2.html,
|
||||
"oxdna2/xstk"_pair_oxdna2.html,
|
||||
"peri/eps"_pair_peri.html,
|
||||
"peri/lps (o)"_pair_peri.html,
|
||||
"peri/pmb (o)"_pair_peri.html,
|
||||
@ -186,13 +198,13 @@ OPT.
|
||||
"polymorphic"_pair_polymorphic.html,
|
||||
"python"_pair_python.html,
|
||||
"quip"_pair_quip.html,
|
||||
"reax"_pair_reax.html,
|
||||
"reax/c (ko)"_pair_reaxc.html,
|
||||
"rebo (oi)"_pair_airebo.html,
|
||||
"rebo (io)"_pair_airebo.html,
|
||||
"resquared (go)"_pair_resquared.html,
|
||||
"sdpd/taitwater/isothermal"_pair_sdpd_taitwater_isothermal.html,
|
||||
"smd/hertz"_pair_smd_hertz.html,
|
||||
"smd/tlsph"_pair_smd_tlsph.html,
|
||||
"smd/triangulated/surface"_pair_smd_triangulated_surface.html,
|
||||
"smd/tri_surface"_pair_smd_triangulated_surface.html,
|
||||
"smd/ulsph"_pair_smd_ulsph.html,
|
||||
"smtbq"_pair_smtbq.html,
|
||||
"snap (k)"_pair_snap.html,
|
||||
@ -221,11 +233,11 @@ OPT.
|
||||
"thole"_pair_thole.html,
|
||||
"tip4p/cut (o)"_pair_coul.html,
|
||||
"tip4p/long (o)"_pair_coul.html,
|
||||
"tip4p/long/soft (o)"_pair_lj_soft.html,
|
||||
"tip4p/long/soft (o)"_pair_fep_soft.html,
|
||||
"tri/lj"_pair_tri_lj.html,
|
||||
"ufm (got)"_pair_ufm.html,
|
||||
"vashishta (ko)"_pair_vashishta.html,
|
||||
"vashishta (gko)"_pair_vashishta.html,
|
||||
"vashishta/table (o)"_pair_vashishta.html,
|
||||
"yukawa (gok)"_pair_yukawa.html,
|
||||
"yukawa (gko)"_pair_yukawa.html,
|
||||
"yukawa/colloid (go)"_pair_yukawa_colloid.html,
|
||||
"zbl (gok)"_pair_zbl.html :tb(c=4,ea=c)
|
||||
"zbl (gko)"_pair_zbl.html :tb(c=4,ea=c)
|
||||
|
||||
@ -14,7 +14,7 @@ LAMMPS commands are case sensitive. Command names are lower-case, as
|
||||
are specified command arguments. Upper case letters may be used in
|
||||
file names or user-chosen ID strings.
|
||||
|
||||
Here are 6 rulse for how each line in the input script is parsed by
|
||||
Here are 6 rules for how each line in the input script is parsed by
|
||||
LAMMPS:
|
||||
|
||||
(1) If the last printable character on the line is a "&" character,
|
||||
@ -71,7 +71,7 @@ floating-point value. The format string is used to output the result
|
||||
of the variable expression evaluation. If a format string is not
|
||||
specified a high-precision "%.20g" is used as the default.
|
||||
|
||||
This can be useful for formatting print output to a desired precion:
|
||||
This can be useful for formatting print output to a desired precision:
|
||||
|
||||
print "Final energy per atom: $(pe/atoms:%10.3f) eV/atom" :pre
|
||||
|
||||
@ -91,7 +91,7 @@ See the "variable"_variable.html command for more details of how
|
||||
strings are assigned to variables and evaluated, and how they can be
|
||||
used in input script commands.
|
||||
|
||||
(4) The line is broken into "words" separated by whitespace (tabs,
|
||||
(4) The line is broken into "words" separated by white-space (tabs,
|
||||
spaces). Note that words can thus contain letters, digits,
|
||||
underscores, or punctuation characters.
|
||||
|
||||
|
||||
3
doc/src/Developer/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
/developer.aux
|
||||
/developer.log
|
||||
/developer.toc
|
||||
@ -22,10 +22,10 @@ users.
|
||||
LAMMPS source files are in two directories of the distribution
|
||||
tarball. The src directory has the majority of them, all of which are
|
||||
C++ files (*.cpp and *.h). Many of these files are in the src
|
||||
directory itself. There are also dozens of "packages", which can be
|
||||
directory itself. There are also dozens of ``packages'', which can be
|
||||
included or excluded when LAMMPS is built. See the
|
||||
doc/Section\_build.html section of the manual for more information
|
||||
about packages, or type "make" from within the src directory, which
|
||||
about packages, or type ``make'' from within the src directory, which
|
||||
lists package-related commands, such as ``make package-status''. The
|
||||
source files for each package are in an all-uppercase sub-directory of
|
||||
src, like src/MOLECULE or src/USER-CUDA. If the package is currently
|
||||
@ -38,17 +38,17 @@ The lib directory also contains source code for external libraries,
|
||||
used by a few of the packages. Each sub-directory, like meam or gpu,
|
||||
contains the source files, some of which are in different languages
|
||||
such as Fortran. The files are compiled into libraries from within
|
||||
each sub-directory, e.g. performing a "make" in the lib/meam directory
|
||||
each sub-directory, e.g. performing a ``make'' in the lib/meam directory
|
||||
creates a libmeam.a file. These libraries are linked to during a
|
||||
LAMMPS build, if the corresponding package is installed.
|
||||
|
||||
LAMMPS C++ source files almost always come in pairs, such as run.cpp
|
||||
and run.h. The pair of files defines a C++ class, the Run class in
|
||||
this case, which contains the code invoked by the "run" command in a
|
||||
this case, which contains the code invoked by the ``run'' command in a
|
||||
LAMMPS input script. As this example illustrates, source file and
|
||||
class names often have a one-to-one correspondence with a command used
|
||||
in a LAMMPS input script. Some source files and classes do not have a
|
||||
corresponding input script command, e.g. force.cpp and the Force
|
||||
corresponding input script command, e.g. ``force.cpp'' and the Force
|
||||
class. They are discussed in the next section.
|
||||
|
||||
\pagebreak
|
||||
@ -57,12 +57,12 @@ class. They are discussed in the next section.
|
||||
Though LAMMPS has a lot of source files and classes, its class
|
||||
hierarchy is quite simple, as outlined in Fig \ref{fig:classes}. Each
|
||||
boxed name refers to a class and has a pair of associated source files
|
||||
in lammps/src, e.g. memory.cpp and memory.h. More details on the
|
||||
in lammps/src, e.g. ``memory.cpp'' and ``memory.h''. More details on the
|
||||
class and its methods and data structures can be found by examining
|
||||
its *.h file.
|
||||
|
||||
LAMMPS (lammps.cpp/h) is the top-level class for the entire code. It
|
||||
holds an "instance" of LAMMPS and can be instantiated one or more
|
||||
holds an ``instance'' of LAMMPS and can be instantiated one or more
|
||||
times by a calling code. For example, the file src/main.cpp simply
|
||||
instantiates one instance of LAMMPS and passes it the input script.
|
||||
|
||||
@ -81,7 +81,7 @@ enabled by a bit of cleverness in the Pointers class (see
|
||||
src/pointers.h) which every class inherits from.
|
||||
|
||||
There are a handful of virtual parent classes in LAMMPS that define
|
||||
what LAMMPS calls "styles". They are shaded red in Fig
|
||||
what LAMMPS calls ``styles''. They are shaded red in Fig
|
||||
\ref{fig:classes}. Each of these are parents of a number of child
|
||||
classes that implement the interface defined by the parent class. For
|
||||
example, the fix style has around 100 child classes. They are the
|
||||
@ -89,17 +89,17 @@ possible fixes that can be specified by the fix command in an input
|
||||
script, e.g. fix nve, fix shake, fix ave/time, etc. The corresponding
|
||||
classes are Fix (for the parent class), FixNVE, FixShake, FixAveTime,
|
||||
etc. The source files for these classes are easy to identify in the
|
||||
src directory, since they begin with the word "fix", e,g,
|
||||
src directory, since they begin with the word ``fix'', e,g,
|
||||
fix\_nve.cpp, fix\_shake,cpp, fix\_ave\_time.cpp, etc.
|
||||
|
||||
The one exception is child class files for the "command" style. These
|
||||
The one exception is child class files for the ``command'' style. These
|
||||
implement specific commands in the input script that can be invoked
|
||||
before/after/between runs or which launch a simulation. Examples are
|
||||
the create\_box, minimize, run, and velocity commands which encode the
|
||||
CreateBox, Minimize, Run, and Velocity classes. The corresponding
|
||||
files are create\_box,cpp, minimize.cpp, run.cpp, and velocity.cpp.
|
||||
The list of command style files can be found by typing "grep
|
||||
COMMAND\_CLASS *.h" from within the src directory, since that word in
|
||||
The list of command style files can be found by typing ``grep
|
||||
COMMAND\_CLASS *.h'' from within the src directory, since that word in
|
||||
the header file identifies the class as an input script command.
|
||||
Similar words can be grepped to list files for the other LAMMPS
|
||||
styles. E.g. ATOM\_CLASS, PAIR\_CLASS, BOND\_CLASS, REGION\_CLASS,
|
||||
@ -471,13 +471,13 @@ FixStyle(your/fix/name,FixMine)
|
||||
\end{verbatim}
|
||||
\end{center}
|
||||
|
||||
Where "your/fix/name" is a name of your fix in the script and FixMine
|
||||
Where ``your/fix/name'' is a name of your fix in the script and FixMine
|
||||
is the name of the class. This code allows LAMMPS to find your fix
|
||||
when it parses input script. In addition, your fix header must be
|
||||
included in the file "style\_fix.h". In case if you use LAMMPS make,
|
||||
included in the file ``style\_fix.h''. In case if you use LAMMPS make,
|
||||
this file is generated automatically - all files starting with prefix
|
||||
fix\_ are included, so call your header the same way. Otherwise, don't
|
||||
forget to add your include into "style\_fix.h".
|
||||
forget to add your include into ``style\_fix.h''.
|
||||
|
||||
Let's write a simple fix which will print average velocity at the end
|
||||
of each timestep. First of all, implement a constructor:
|
||||
@ -567,11 +567,11 @@ void FixPrintVel::end_of_step()
|
||||
\end{center}
|
||||
|
||||
In the code above, we use MathExtra routines defined in
|
||||
"math\_extra.h". There are bunch of math functions to work with
|
||||
``math\_extra.h''. There are bunch of math functions to work with
|
||||
arrays of doubles as with math vectors.
|
||||
|
||||
In this code we use an instance of Atom class. This object is stored
|
||||
in the Pointers class (see "pointers.h"). This object contains all
|
||||
in the Pointers class (see ``pointers.h''). This object contains all
|
||||
global information about the simulation system. Data from Pointers
|
||||
class available to all classes inherited from it using protected
|
||||
inheritance. Hence when you write you own class, which is going to use
|
||||
@ -689,7 +689,7 @@ int FixSavePos::unpack_exchange(int nlocal, double *buf)
|
||||
|
||||
Now, a little bit about memory allocation. We used Memory class which
|
||||
is just a bunch of template functions for allocating 1D and 2D
|
||||
arrays. So you need to add include "memory.h" to have access to them.
|
||||
arrays. So you need to add include ``memory.h'' to have access to them.
|
||||
|
||||
Finally, if you need to write/read some global information used in
|
||||
your fix to the restart file, you might do it by setting flag
|
||||
|
||||
BIN
doc/src/Eqs/angle_cross.jpg
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
9
doc/src/Eqs/angle_cross.tex
Normal file
@ -0,0 +1,9 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
\thispagestyle{empty}
|
||||
$$
|
||||
E = K_{SS} \left(r_{12}-r_{12,0}\right)\left(r_{32}-r_{32,0}\right) + K_{BS0}\left(r_{12}-r_{12,0}\right)\left(\theta-\theta_0\right) + K_{BS1}\left(r_{32}-r_{32,0}\right)\left(\theta-\theta_0\right)
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/angle_mm3.jpg
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
9
doc/src/Eqs/angle_mm3.tex
Normal file
@ -0,0 +1,9 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
\thispagestyle{empty}
|
||||
$$
|
||||
E = K (\theta - \theta_0)^2 \left[ 1 - 0.014(\theta - \theta_0) + 5.6(10)^{-5} (\theta - \theta_0)^2 - 7.0(10)^{-7} (\theta - \theta_0)^3 + 9(10)^{-10} (\theta - \theta_0)^4 \right]
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/bond_mm3.jpg
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
9
doc/src/Eqs/bond_mm3.tex
Normal file
@ -0,0 +1,9 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
\thispagestyle{empty}
|
||||
$$
|
||||
E = K (r - r_0)^2 \left[ 1 - 2.55(r-r_0) + (7/12) 2.55^2(r-r_0)^2 \right]
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/improper_distharm.jpg
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
9
doc/src/Eqs/improper_distharm.tex
Normal file
@ -0,0 +1,9 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
\thispagestyle{empty}
|
||||
$$
|
||||
E = K (d - d_0)^2
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/improper_sqdistharm.jpg
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
9
doc/src/Eqs/improper_sqdistharm.tex
Normal file
@ -0,0 +1,9 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
\thispagestyle{empty}
|
||||
$$
|
||||
E = K (d^2 - d_0^2)^2
|
||||
$$
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/pair_atm.jpg
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
9
doc/src/Eqs/pair_atm.tex
Normal file
@ -0,0 +1,9 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{equation}
|
||||
E=\nu\frac{1+3\cos\gamma_1\cos\gamma_2\cos\gamma_3}{r_{12}^3r_{23}^3r_{31}^3}
|
||||
\end{equation}
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/pair_coulgauss.jpg
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
9
doc/src/Eqs/pair_coulgauss.tex
Normal file
@ -0,0 +1,9 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
\thispagestyle{empty}
|
||||
\begin{eqnarray*}
|
||||
E &=& \frac{q_i q_j \mathrm{erf}\left( r/\sqrt{\gamma_1^2+\gamma_2^2} \right) }{\epsilon r_{ij}}
|
||||
\end{eqnarray*}
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/pair_lebedeva.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
doc/src/Eqs/pair_lj_switch3.jpg
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
11
doc/src/Eqs/pair_lj_switch3.tex
Normal file
@ -0,0 +1,11 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\begin{eqnarray*}
|
||||
E = 4\epsilon \left[ \left(\frac{\sigma}{r}\right)^{12}-\left(\frac{\sigma}{r}\right)^{6} \right]
|
||||
% \qquad r < r_c \\
|
||||
\end{eqnarray*}
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/pair_mm3_switch3.jpg
Normal file
|
After Width: | Height: | Size: 11 KiB |
11
doc/src/Eqs/pair_mm3_switch3.tex
Normal file
@ -0,0 +1,11 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
\thispagestyle{empty}
|
||||
\begin{eqnarray*}
|
||||
E &=& \epsilon_{ij} \left[ -2.25 \left(\frac{r_{v,ij}}{r_{ij}}\right)^6 + 1.84(10)^5 \exp\left[-12.0 r_{ij}/r_{v,ij}\right] \right] S_3(r_{ij}) \\
|
||||
r_{v,ij} &=& r_{v,i} + r_{v,j} \\
|
||||
\epsilon_{ij} &=& \sqrt{\epsilon_i \epsilon_j}
|
||||
\end{eqnarray*}
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/pair_switch3.jpg
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
14
doc/src/Eqs/pair_switch3.tex
Normal file
@ -0,0 +1,14 @@
|
||||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
\thispagestyle{empty}
|
||||
|
||||
\begin{eqnarray*}
|
||||
S_3(r) = \left\lbrace \begin{array}{ll}
|
||||
1 & \quad\mathrm{if}\quad r < r_\mathrm{c} - w \\
|
||||
3x^2 - 2x^3 & \quad\mathrm{if}\quad r < r_\mathrm{c} \quad\mathrm{with\quad} x=\frac{r_\mathrm{c} - r}{w} \\
|
||||
0 & \quad\mathrm{if}\quad r >= r_\mathrm{c}
|
||||
\end{array} \right.
|
||||
\end{eqnarray*}
|
||||
|
||||
\end{document}
|
||||
BIN
doc/src/Eqs/ptm_rmsd.jpg
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
21
doc/src/Eqs/ptm_rmsd.tex
Normal file
@ -0,0 +1,21 @@
|
||||
\documentclass[12pt,article]{article}
|
||||
|
||||
\usepackage{indentfirst}
|
||||
\usepackage{amsmath}
|
||||
|
||||
\newcommand{\set}[1]{\ensuremath{\mathbf{#1}}}
|
||||
\newcommand{\mean}[1]{\ensuremath{\overline{#1}}}
|
||||
\newcommand{\norm}[1]{\ensuremath{\left|\left|{#1}\right|\right|}}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{equation*}
|
||||
\text{RMSD}(\set{u}, \set{v}) = \min_{s, \set{Q}} \sqrt{\frac{1}{N} \sum\limits_{i=1}^{N}
|
||||
\norm{
|
||||
s[\vec{u_i} - \mean{\set{u}}]
|
||||
-
|
||||
\set{Q} \vec{v_i}
|
||||
}^2}
|
||||
\end{equation*}
|
||||
|
||||
\end{document}
|
||||
@ -32,7 +32,7 @@ END_RST -->
|
||||
|
||||
"Common problems"_Errors_common.html
|
||||
"Reporting bugs"_Errors_bugs.html
|
||||
"Error messages"_Errors_messages.html
|
||||
"Error messages"_Errors_messages.html
|
||||
"Warning messages"_Errors_warnings.html :all(b)
|
||||
|
||||
<!-- END_HTML_ONLY -->
|
||||
|
||||
@ -74,7 +74,7 @@ is an integer or floating-point number, respectively, and reject the
|
||||
input with an error message (for instance, when an integer is required,
|
||||
but a floating-point number 1.0 is provided):
|
||||
|
||||
ERROR: Expected integer parameter in input script or data file :pre
|
||||
ERROR: Expected integer parameter instead of '1.0' in input script or data file :pre
|
||||
|
||||
Some commands allow for using variable references in place of numeric
|
||||
constants so that the value can be evaluated and may change over the
|
||||
@ -85,6 +85,9 @@ reading the input and before parsing commands,
|
||||
|
||||
NOTE: Using a variable reference (i.e. {v_name}) is only allowed if
|
||||
the documentation of the corresponding command explicitly says it is.
|
||||
Otherwise, you will receive an error message of this kind:
|
||||
|
||||
ERROR: Expected floating point parameter instead of 'v_name' in input script or data file :pre
|
||||
|
||||
Generally, LAMMPS will print a message to the screen and logfile and
|
||||
exit gracefully when it encounters a fatal error. Sometimes it will
|
||||
|
||||
@ -279,12 +279,6 @@ multibody joint). The bodies you have defined exceed this limit. :dd
|
||||
This is an internal LAMMPS error. Please report it to the
|
||||
developers. :dd
|
||||
|
||||
{Atom sorting has bin size = 0.0} :dt
|
||||
|
||||
The neighbor cutoff is being used as the bin size, but it is zero.
|
||||
Thus you must explicitly list a bin size in the atom_modify sort
|
||||
command or turn off sorting. :dd
|
||||
|
||||
{Atom style hybrid cannot have hybrid as an argument} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
@ -421,9 +415,9 @@ This is an internal error. It should normally not occur. :dd
|
||||
|
||||
This is an internal error. It should normally not occur. :dd
|
||||
|
||||
{Bad real space Coulomb cutoff in fix tune/kspace} :dt
|
||||
{Bad real space Coulombic cutoff in fix tune/kspace} :dt
|
||||
|
||||
Fix tune/kspace tried to find the optimal real space Coulomb cutoff using
|
||||
Fix tune/kspace tried to find the optimal real space Coulombic cutoff using
|
||||
the Newton-Rhaphson method, but found a non-positive or NaN cutoff :dd
|
||||
|
||||
{Balance command before simulation box is defined} :dt
|
||||
@ -460,7 +454,7 @@ compute. :dd
|
||||
|
||||
{Big particle in fix srd cannot be point particle} :dt
|
||||
|
||||
Big particles must be extended spheriods or ellipsoids. :dd
|
||||
Big particles must be extended spheroids or ellipsoids. :dd
|
||||
|
||||
{Bigint setting in lmptype.h is invalid} :dt
|
||||
|
||||
@ -743,7 +737,7 @@ Self-explanatory. :dd
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Cannot (yet) use single precision with MSM (remove -DFFT_SINGLE from Makefile and recompile)} :dt
|
||||
{Cannot (yet) use single precision with MSM (remove -DFFT_SINGLE from Makefile and re-compile)} :dt
|
||||
|
||||
Single precision cannot be used with MSM. :dd
|
||||
|
||||
@ -780,7 +774,7 @@ Cannot use tilt factors unless the simulation box is non-orthogonal. :dd
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Cannot change box z boundary to nonperiodic for a 2d simulation} :dt
|
||||
{Cannot change box z boundary to non-periodic for a 2d simulation} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
@ -1092,11 +1086,6 @@ correct. :dd
|
||||
The specified file cannot be opened. Check that the path and name are
|
||||
correct. :dd
|
||||
|
||||
{Cannot open fix ave/spatial file %s} :dt
|
||||
|
||||
The specified file cannot be opened. Check that the path and name are
|
||||
correct. :dd
|
||||
|
||||
{Cannot open fix ave/time file %s} :dt
|
||||
|
||||
The specified file cannot be opened. Check that the path and name are
|
||||
@ -1293,7 +1282,7 @@ are defined. :dd
|
||||
You cannot reset the timestep when a fix that keeps track of elapsed
|
||||
time is in place. :dd
|
||||
|
||||
{Cannot run 2d simulation with nonperiodic Z dimension} :dt
|
||||
{Cannot run 2d simulation with non-periodic Z dimension} :dt
|
||||
|
||||
Use the boundary command to make the z dimension periodic in order to
|
||||
run a 2d simulation. :dd
|
||||
@ -1677,10 +1666,6 @@ provided by an atom map. An atom map does not exist (by default) for
|
||||
non-molecular problems. Using the atom_modify map command will force
|
||||
an atom map to be created. :dd
|
||||
|
||||
{Cannot use fix ave/spatial z for 2 dimensional model} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Cannot use fix bond/break with non-molecular systems} :dt
|
||||
|
||||
Only systems with bonds that can be changed can be used. Atom_style
|
||||
@ -2125,29 +2110,29 @@ Self-explanatory. :dd
|
||||
Fix setforce cannot be used in this manner. Use fix addforce
|
||||
instead. :dd
|
||||
|
||||
{Cannot use nonperiodic boundares with fix ttm} :dt
|
||||
{Cannot use non-periodic boundares with fix ttm} :dt
|
||||
|
||||
This fix requires a fully periodic simulation box. :dd
|
||||
|
||||
{Cannot use nonperiodic boundaries with Ewald} :dt
|
||||
{Cannot use non-periodic boundaries with Ewald} :dt
|
||||
|
||||
For kspace style ewald, all 3 dimensions must have periodic boundaries
|
||||
unless you use the kspace_modify command to define a 2d slab with a
|
||||
non-periodic z dimension. :dd
|
||||
|
||||
{Cannot use nonperiodic boundaries with EwaldDisp} :dt
|
||||
{Cannot use non-periodic boundaries with EwaldDisp} :dt
|
||||
|
||||
For kspace style ewald/disp, all 3 dimensions must have periodic
|
||||
boundaries unless you use the kspace_modify command to define a 2d
|
||||
slab with a non-periodic z dimension. :dd
|
||||
|
||||
{Cannot use nonperiodic boundaries with PPPM} :dt
|
||||
{Cannot use non-periodic boundaries with PPPM} :dt
|
||||
|
||||
For kspace style pppm, all 3 dimensions must have periodic boundaries
|
||||
unless you use the kspace_modify command to define a 2d slab with a
|
||||
non-periodic z dimension. :dd
|
||||
|
||||
{Cannot use nonperiodic boundaries with PPPMDisp} :dt
|
||||
{Cannot use non-periodic boundaries with PPPMDisp} :dt
|
||||
|
||||
For kspace style pppm/disp, all 3 dimensions must have periodic
|
||||
boundaries unless you use the kspace_modify command to define a 2d
|
||||
@ -2425,10 +2410,6 @@ Self-explanatory. :dd
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Compute ID for fix ave/spatial does not exist} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Compute ID for fix ave/time does not exist} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
@ -3364,21 +3345,21 @@ probably due to errors in the Python code. :dd
|
||||
The default minimum order is 2. This can be reset by the
|
||||
kspace_modify minorder command. :dd
|
||||
|
||||
{Coulomb cut not supported in pair_style buck/long/coul/coul} :dt
|
||||
{Coulombic cutoff not supported in pair_style buck/long/coul/coul} :dt
|
||||
|
||||
Must use long-range Coulombic interactions. :dd
|
||||
|
||||
{Coulomb cut not supported in pair_style lj/long/coul/long} :dt
|
||||
{Coulombic cutoff not supported in pair_style lj/long/coul/long} :dt
|
||||
|
||||
Must use long-range Coulombic interactions. :dd
|
||||
|
||||
{Coulomb cut not supported in pair_style lj/long/tip4p/long} :dt
|
||||
{Coulombic cutoff not supported in pair_style lj/long/tip4p/long} :dt
|
||||
|
||||
Must use long-range Coulombic interactions. :dd
|
||||
|
||||
{Coulomb cutoffs of pair hybrid sub-styles do not match} :dt
|
||||
{Coulombic cutoffs of pair hybrid sub-styles do not match} :dt
|
||||
|
||||
If using a Kspace solver, all Coulomb cutoffs of long pair styles must
|
||||
If using a Kspace solver, all Coulombic cutoffs of long pair styles must
|
||||
be the same. :dd
|
||||
|
||||
{Coulombic cut not supported in pair_style lj/long/dipole/long} :dt
|
||||
@ -4074,10 +4055,6 @@ Self-explanatory. :dd
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Fix ID for fix ave/spatial does not exist} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Fix ID for fix ave/time does not exist} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
@ -4379,51 +4356,6 @@ same style. :dd
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Fix ave/spatial compute does not calculate a per-atom array} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Fix ave/spatial compute does not calculate a per-atom vector} :dt
|
||||
|
||||
A compute used by fix ave/spatial must generate per-atom values. :dd
|
||||
|
||||
{Fix ave/spatial compute does not calculate per-atom values} :dt
|
||||
|
||||
A compute used by fix ave/spatial must generate per-atom values. :dd
|
||||
|
||||
{Fix ave/spatial compute vector is accessed out-of-range} :dt
|
||||
|
||||
The index for the vector is out of bounds. :dd
|
||||
|
||||
{Fix ave/spatial fix does not calculate a per-atom array} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Fix ave/spatial fix does not calculate a per-atom vector} :dt
|
||||
|
||||
A fix used by fix ave/spatial must generate per-atom values. :dd
|
||||
|
||||
{Fix ave/spatial fix does not calculate per-atom values} :dt
|
||||
|
||||
A fix used by fix ave/spatial must generate per-atom values. :dd
|
||||
|
||||
{Fix ave/spatial fix vector is accessed out-of-range} :dt
|
||||
|
||||
The index for the vector is out of bounds. :dd
|
||||
|
||||
{Fix ave/spatial for triclinic boxes requires units reduced} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Fix ave/spatial settings invalid with changing box size} :dt
|
||||
|
||||
If the box size changes, only the units reduced option can be
|
||||
used. :dd
|
||||
|
||||
{Fix ave/spatial variable is not atom-style variable} :dt
|
||||
|
||||
A variable used by fix ave/spatial must generate per-atom values. :dd
|
||||
|
||||
{Fix ave/time cannot set output array intensive/extensive from these inputs} :dt
|
||||
|
||||
One of more of the vector inputs has individual elements which are
|
||||
@ -5078,7 +5010,7 @@ Self-explanatory. :dd
|
||||
|
||||
Occurs when number of neighbor atoms for an atom increased too much
|
||||
during a run. Increase SAFE_ZONE and MIN_CAP in fix_qeq.h and
|
||||
recompile. :dd
|
||||
re-compile. :dd
|
||||
|
||||
{Fix qeq/point requires atom attribute q} :dt
|
||||
|
||||
@ -5092,7 +5024,7 @@ Self-explanatory. :dd
|
||||
|
||||
Occurs when number of neighbor atoms for an atom increased too much
|
||||
during a run. Increase SAFE_ZONE and MIN_CAP in fix_qeq.h and
|
||||
recompile. :dd
|
||||
re-compile. :dd
|
||||
|
||||
{Fix qeq/shielded requires atom attribute q} :dt
|
||||
|
||||
@ -5110,7 +5042,7 @@ Self-explanatory. :dd
|
||||
|
||||
Occurs when number of neighbor atoms for an atom increased too much
|
||||
during a run. Increase SAFE_ZONE and MIN_CAP in fix_qeq.h and
|
||||
recompile. :dd
|
||||
re-compile. :dd
|
||||
|
||||
{Fix qeq/slater requires atom attribute q} :dt
|
||||
|
||||
@ -5541,7 +5473,7 @@ See the package gpu command. :dd
|
||||
|
||||
{GPUs are requested but Kokkos has not been compiled for CUDA} :dt
|
||||
|
||||
Recompile Kokkos with CUDA support to use GPUs. :dd
|
||||
Re-compile Kokkos with CUDA support to use GPUs. :dd
|
||||
|
||||
{Ghost velocity forward comm not yet implemented with Kokkos} :dt
|
||||
|
||||
@ -6000,9 +5932,9 @@ map command will force an atom map to be created. :dd
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Input line quote not followed by whitespace} :dt
|
||||
{Input line quote not followed by white-space} :dt
|
||||
|
||||
An end quote must be followed by whitespace. :dd
|
||||
An end quote must be followed by white-space. :dd
|
||||
|
||||
{Insertion region extends outside simulation box} :dt
|
||||
|
||||
@ -6985,7 +6917,7 @@ types. :dd
|
||||
|
||||
{Invalid use of library file() function} :dt
|
||||
|
||||
This function is called thru the library interface. This
|
||||
This function is called through the library interface. This
|
||||
error should not occur. Contact the developers if it does. :dd
|
||||
|
||||
{Invalid value in set command} :dt
|
||||
@ -7076,7 +7008,7 @@ The kspace accuracy designated in the input must be greater than zero. :dd
|
||||
|
||||
{KSpace accuracy too large to estimate G vector} :dt
|
||||
|
||||
Reduce the accuracy request or specify gwald explicitly
|
||||
Reduce the accuracy request or specify gewald explicitly
|
||||
via the kspace_modify command. :dd
|
||||
|
||||
{KSpace accuracy too low} :dt
|
||||
@ -8076,7 +8008,7 @@ Self-explanatory. :dd
|
||||
|
||||
{Package command after simulation box is defined} :dt
|
||||
|
||||
The package command cannot be used afer a read_data, read_restart, or
|
||||
The package command cannot be used after a read_data, read_restart, or
|
||||
create_box command. :dd
|
||||
|
||||
{Package gpu command without GPU package installed} :dt
|
||||
@ -9260,7 +9192,7 @@ creates one large file for all processors. :dd
|
||||
{Restart file byte ordering is not recognized} :dt
|
||||
|
||||
The file does not appear to be a LAMMPS restart file since it doesn't
|
||||
contain a recognized byte-orderomg flag at the beginning. :dd
|
||||
contain a recognized byte-ordering flag at the beginning. :dd
|
||||
|
||||
{Restart file byte ordering is swapped} :dt
|
||||
|
||||
@ -9472,7 +9404,7 @@ You may also want to boost the page size. :dd
|
||||
|
||||
{Small to big integers are not sized correctly} :dt
|
||||
|
||||
This error occurs whenthe sizes of smallint, imageint, tagint, bigint,
|
||||
This error occurs when the sizes of smallint, imageint, tagint, bigint,
|
||||
as defined in src/lmptype.h are not what is expected. Contact
|
||||
the developers if this occurs. :dd
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ This is an alphabetic list of the WARNING messages LAMMPS prints out
|
||||
and the reason why. If the explanation here is not sufficient, the
|
||||
documentation for the offending command may help. Warning messages
|
||||
also list the source file and line number where the warning was
|
||||
generated. For example, a message lile this:
|
||||
generated. For example, a message like this:
|
||||
|
||||
WARNING: Bond atom missing in box size check (domain.cpp:187) :pre
|
||||
|
||||
@ -291,24 +291,6 @@ This may cause accuracy problems. :dd
|
||||
|
||||
This may cause accuracy problems. :dd
|
||||
|
||||
{Fix thermal/conductivity comes before fix ave/spatial} :dt
|
||||
|
||||
The order of these 2 fixes in your input script is such that fix
|
||||
thermal/conductivity comes first. If you are using fix ave/spatial to
|
||||
measure the temperature profile induced by fix viscosity, then this
|
||||
may cause a glitch in the profile since you are averaging immediately
|
||||
after swaps have occurred. Flipping the order of the 2 fixes
|
||||
typically helps. :dd
|
||||
|
||||
{Fix viscosity comes before fix ave/spatial} :dt
|
||||
|
||||
The order of these 2 fixes in your input script is such that
|
||||
fix viscosity comes first. If you are using fix ave/spatial
|
||||
to measure the velocity profile induced by fix viscosity, then
|
||||
this may cause a glitch in the profile since you are averaging
|
||||
immediately after swaps have occurred. Flipping the order
|
||||
of the 2 fixes typically helps. :dd
|
||||
|
||||
{Fixes cannot send data in Kokkos communication, switching to classic communication} :dt
|
||||
|
||||
This is current restriction with Kokkos. :dd
|
||||
@ -775,7 +757,7 @@ Self-explanatory. :dd
|
||||
|
||||
This may indicate the shell command did not operate as expected. :dd
|
||||
|
||||
{Should not allow rigid bodies to bounce off relecting walls} :dt
|
||||
{Should not allow rigid bodies to bounce off reflecting walls} :dt
|
||||
|
||||
LAMMPS allows this, but their dynamics are not computed correctly. :dd
|
||||
|
||||
@ -868,10 +850,10 @@ Most FENE models need this setting for the special_bonds command. :dd
|
||||
|
||||
Most FENE models need this setting for the special_bonds command. :dd
|
||||
|
||||
{Using a manybody potential with bonds/angles/dihedrals and special_bond exclusions} :dt
|
||||
{Using a many-body potential with bonds/angles/dihedrals and special_bond exclusions} :dt
|
||||
|
||||
This is likely not what you want to do. The exclusion settings will
|
||||
eliminate neighbors in the neighbor list, which the manybody potential
|
||||
eliminate neighbors in the neighbor list, which the many-body potential
|
||||
needs to calculated its terms correctly. :dd
|
||||
|
||||
{Using compute temp/deform with inconsistent fix deform remap option} :dt
|
||||
|
||||
@ -78,7 +78,7 @@ 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
|
||||
msst: MSST shock dynamics
|
||||
nb3b: use of nonbonded 3-body harmonic pair style
|
||||
nb3b: use of non-bonded 3-body harmonic pair style
|
||||
neb: nudged elastic band (NEB) calculation for barrier finding
|
||||
nemd: non-equilibrium MD of 2d sheared system
|
||||
obstacle: flow around two voids in a 2d channel
|
||||
|
||||
@ -45,7 +45,7 @@ General howto :h3
|
||||
<!-- RST
|
||||
|
||||
.. toctree::
|
||||
:name: general
|
||||
:name: general_howto
|
||||
:maxdepth: 1
|
||||
|
||||
Howto_restart
|
||||
@ -54,6 +54,7 @@ General howto :h3
|
||||
Howto_replica
|
||||
Howto_library
|
||||
Howto_couple
|
||||
Howto_client_server
|
||||
|
||||
END_RST -->
|
||||
|
||||
@ -64,7 +65,8 @@ END_RST -->
|
||||
"Run multiple simulations from one input script"_Howto_multiple.html
|
||||
"Multi-replica simulations"_Howto_replica.html
|
||||
"Library interface to LAMMPS"_Howto_library.html
|
||||
"Couple LAMMPS to other codes"_Howto_couple.html :all(b)
|
||||
"Couple LAMMPS to other codes"_Howto_couple.html
|
||||
"Using LAMMPS in client/server mode"_Howto_client_server.html :all(b)
|
||||
|
||||
<!-- END_HTML_ONLY -->
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ barostat attempts to equilibrate the system to the requested T and/or
|
||||
P.
|
||||
|
||||
Barostatting in LAMMPS is performed by "fixes"_fix.html. Two
|
||||
barosttating methods are currently available: Nose-Hoover (npt and
|
||||
barostatting methods are currently available: Nose-Hoover (npt and
|
||||
nph) and Berendsen:
|
||||
|
||||
"fix npt"_fix_nh.html
|
||||
@ -64,11 +64,11 @@ Thermodynamic output, which can be setup via the
|
||||
"thermo_style"_thermo_style.html command, often includes pressure
|
||||
values. As explained on the doc page for the
|
||||
"thermo_style"_thermo_style.html command, the default pressure is
|
||||
setup by the thermo command itself. It is NOT the presure associated
|
||||
setup by the thermo command itself. It is NOT the pressure associated
|
||||
with any barostatting fix you have defined or with any compute you
|
||||
have defined that calculates a presure. The doc pages for the
|
||||
have defined that calculates a pressure. The doc pages for the
|
||||
barostatting fixes explain the ID of the pressure compute they create.
|
||||
Thus if you want to view these pressurse, you need to specify them
|
||||
Thus if you want to view these pressures, you need to specify them
|
||||
explicitly via the "thermo_style custom"_thermo_style.html command.
|
||||
Or you can use the "thermo_modify"_thermo_modify.html command to
|
||||
re-define what pressure compute is used for default thermodynamic
|
||||
|
||||
6
doc/src/Howto_bash.txt
Executable file → Normal file
@ -40,7 +40,7 @@ Install Windows Subsystem for Linux :h5
|
||||
Next you must ensure that the Window Subsystem for Linux is installed. Again,
|
||||
search for "enable windows features" in the Settings dialog. This opens a
|
||||
dialog with a list of features you can install. Add a checkmark to Windows
|
||||
Subsystem for Linux (Beta) and press OK.
|
||||
Subsystem for Linux (Beta) and press OK.
|
||||
|
||||
:image(JPG/bow_tutorial_04_small.png,JPG/bow_tutorial_04.png)
|
||||
:image(JPG/bow_tutorial_05.png,JPG/bow_tutorial_05.png)
|
||||
@ -54,12 +54,12 @@ enter. This will then download Ubuntu for Windows.
|
||||
|
||||
:image(JPG/bow_tutorial_06.png)
|
||||
:image(JPG/bow_tutorial_07.png)
|
||||
|
||||
|
||||
During installation, you will be asked for a new password. This will be used
|
||||
for installing new software and running commands with sudo.
|
||||
|
||||
:image(JPG/bow_tutorial_08.png)
|
||||
|
||||
|
||||
Type exit to close the command-line window.
|
||||
|
||||
Go to the Start menu and type "bash" again. This time you will see a "Bash on
|
||||
|
||||
@ -132,7 +132,7 @@ x1 y1 z1
|
||||
xN yN zN :pre
|
||||
|
||||
where M = 6 + 3*N, and N is the number of sub-particles in the body
|
||||
particle.
|
||||
particle.
|
||||
|
||||
The integer line has a single value N. The floating point line(s)
|
||||
list 6 moments of inertia followed by the coordinates of the N
|
||||
@ -315,7 +315,7 @@ x1 y1 z1
|
||||
...
|
||||
xN yN zN
|
||||
0 1
|
||||
1 2
|
||||
1 2
|
||||
2 3
|
||||
...
|
||||
0 1 2 -1
|
||||
@ -337,7 +337,7 @@ the sphere that surrounds each vertex. The diameter value can be
|
||||
different for each body particle. These floating-point values can be
|
||||
listed on as many lines as you wish; see the
|
||||
"read_data"_read_data.html command for more details. Because the
|
||||
maxmimum vertices per face is hard-coded to be 4
|
||||
maximum number of vertices per face is hard-coded to be 4
|
||||
(i.e. quadrilaterals), faces with more than 4 vertices need to be
|
||||
split into triangles or quadrilaterals. For triangular faces, the
|
||||
last vertex index should be set to -1.
|
||||
|
||||
@ -22,8 +22,8 @@ commands, to calculate various properties of a system:
|
||||
"fix ave/chunk"_fix_ave_chunk.html
|
||||
any of the "compute */chunk"_compute.html commands :ul
|
||||
|
||||
Here, each of the 3 kinds of chunk-related commands is briefly
|
||||
overviewed. Then some examples are given of how to compute different
|
||||
Here a brief overview for each of the 4 kinds of chunk-related commands
|
||||
is provided. Then some examples are given of how to compute different
|
||||
properties with chunk commands.
|
||||
|
||||
Compute chunk/atom command: :h4
|
||||
@ -83,8 +83,9 @@ chunk.
|
||||
|
||||
Compute */chunk commands: :h4
|
||||
|
||||
Currently the following computes operate on chunks of atoms to produce
|
||||
per-chunk values.
|
||||
The following computes operate on chunks of atoms to produce per-chunk
|
||||
values. Any compute whose style name ends in "/chunk" is in this
|
||||
category:
|
||||
|
||||
"compute com/chunk"_compute_com_chunk.html
|
||||
"compute gyration/chunk"_compute_gyration_chunk.html
|
||||
@ -111,8 +112,8 @@ of a center of mass, which requires summing mass*position over the
|
||||
atoms and then dividing by summed mass.
|
||||
|
||||
All of these computes produce a global vector or global array as
|
||||
output, wih one or more values per chunk. They can be used
|
||||
in various ways:
|
||||
output, wih one or more values per chunk. The output can be used in
|
||||
various ways:
|
||||
|
||||
As input to the "fix ave/time"_fix_ave_time.html command, which can
|
||||
write the values to a file and optionally time average them. :ulb,l
|
||||
@ -122,9 +123,27 @@ histogram values across chunks. E.g. a histogram of cluster sizes or
|
||||
molecule diffusion rates. :l
|
||||
|
||||
As input to special functions of "equal-style
|
||||
variables"_variable.html, like sum() and max(). E.g. to find the
|
||||
largest cluster or fastest diffusing molecule. :l
|
||||
:ule
|
||||
variables"_variable.html, like sum() and max() and ave(). E.g. to
|
||||
find the largest cluster or fastest diffusing molecule or average
|
||||
radius-of-gyration of a set of molecules (chunks). :l,ule
|
||||
|
||||
Other chunk commands: :h4
|
||||
|
||||
"compute chunk/spread/atom"_compute_chunk_spread_atom.html
|
||||
"compute reduce/chunk"_compute_reduce_chunk.html :ul
|
||||
|
||||
The "compute chunk/spread/atom"_compute_chunk_spread_atom.html command
|
||||
spreads per-chunk values to each atom in the chunk, producing per-atom
|
||||
values as its output. This can be useful for outputting per-chunk
|
||||
values to a per-atom "dump file"_dump.html. Or for using an atom's
|
||||
associated chunk value in an "atom-style variable"_variable.html.
|
||||
|
||||
The "compute reduce/chunk"_compute_reduce_chunk.html command reduces a
|
||||
peratom value across the atoms in each chunk to produce a value per
|
||||
chunk. When used with the "compute
|
||||
chunk/spread/atom"_compute_chunk_spread_atom.html command it can
|
||||
create peratom values that induce a new set of chunks with a second
|
||||
"compute chunk/atom"_compute_chunk_atom.html command.
|
||||
|
||||
Example calculations with chunks :h4
|
||||
|
||||
@ -164,3 +183,13 @@ compute cluster all cluster/atom 1.0
|
||||
compute cc1 all chunk/atom c_cluster compress yes
|
||||
compute size all property/chunk cc1 count
|
||||
fix 1 all ave/histo 100 1 100 0 20 20 c_size mode vector ave running beyond ignore file tmp.histo :pre
|
||||
|
||||
(6) An example of using a per-chunk value to apply per-atom forces to
|
||||
compress individual polymer chains (molecules) in a mixture, is
|
||||
explained on the "compute
|
||||
chunk/spread/atom"_compute_chunk_spread_atom.html command doc page.
|
||||
|
||||
(7) An example of using one set of per-chunk values for molecule
|
||||
chunks, to create a 2nd set of micelle-scale chunks (clustered
|
||||
molecules, due to hydrophobicity), is explained on the "compute
|
||||
chunk/reduce"_compute_reduce_chunk.html command doc page.
|
||||
|
||||
131
doc/src/Howto_client_server.txt
Normal file
@ -0,0 +1,131 @@
|
||||
"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS
|
||||
Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Commands_all.html)
|
||||
|
||||
:line
|
||||
|
||||
Using LAMMPS in client/server mode :h3
|
||||
|
||||
Client/server coupling of two codes is where one code is the "client"
|
||||
and sends request messages to a "server" code. The server responds to
|
||||
each request with a reply message. This enables the two codes to work
|
||||
in tandem to perform a simulation. LAMMPS can act as either a client
|
||||
or server code.
|
||||
|
||||
Some advantages of client/server coupling are that the two codes run
|
||||
as stand-alone executables; they are not linked together. Thus
|
||||
neither code needs to have a library interface. This often makes it
|
||||
easier to run the two codes on different numbers of processors. If a
|
||||
message protocol (format and content) is defined for a particular kind
|
||||
of simulation, then in principle any code that implements the
|
||||
client-side protocol can be used in tandem with any code that
|
||||
implements the server-side protocol, without the two codes needing to
|
||||
know anything more specific about each other.
|
||||
|
||||
A simple example of client/server coupling is where LAMMPS is the
|
||||
client code performing MD timestepping. Each timestep it sends a
|
||||
message to a server quantum code containing current coords of all the
|
||||
atoms. The quantum code computes energy and forces based on the
|
||||
coords. It returns them as a message to LAMMPS, which completes the
|
||||
timestep.
|
||||
|
||||
Alternate methods for code coupling with LAMMPS are described on
|
||||
the "Howto couple"_Howto_couple.html doc page.
|
||||
|
||||
LAMMPS support for client/server coupling is in its "MESSAGE
|
||||
package"_Packages_details.html#PKG-MESSAGE which implements several
|
||||
commands that enable LAMMPS to act as a client or server, as discussed
|
||||
below. The MESSAGE package also wraps a client/server library called
|
||||
CSlib which enables two codes to exchange messages in different ways,
|
||||
either via files, sockets, or MPI. The CSlib is provided with LAMMPS
|
||||
in the lib/message dir. The CSlib has its own
|
||||
"website"_http://cslib.sandia.gov with documentation and test
|
||||
programs.
|
||||
|
||||
NOTE: For client/server coupling to work between LAMMPS and another
|
||||
code, the other code also has to use the CSlib. This can sometimes be
|
||||
done without any modifications to the other code by simply wrapping it
|
||||
with a Python script that exchanges CSlib messages with LAMMPS and
|
||||
prepares input for or processes output from the other code. The other
|
||||
code also has to implement a matching protocol for the format and
|
||||
content of messages that LAMMPS exchanges with it.
|
||||
|
||||
These are the commands currently in the MESSAGE package for two
|
||||
protocols, MD and MC (Monte Carlo). New protocols can easily be
|
||||
defined and added to this directory, where LAMMPS acts as either the
|
||||
client or server.
|
||||
|
||||
"message"_message.html
|
||||
"fix client md"_fix_client_md.html = LAMMPS is a client for running MD
|
||||
"server md"_server_md.html = LAMMPS is a server for computing MD forces
|
||||
"server mc"_server_mc.html = LAMMPS is a server for computing a Monte Carlo energy :ul
|
||||
|
||||
The server doc files give details of the message protocols
|
||||
for data that is exchanged between the client and server.
|
||||
|
||||
These example directories illustrate how to use LAMMPS as either a
|
||||
client or server code:
|
||||
|
||||
examples/message
|
||||
examples/COUPLE/README
|
||||
examples/COUPLE/lammps_mc
|
||||
examples/COUPLE/lammps_vasp :ul
|
||||
|
||||
The examples/message dir couples a client instance of LAMMPS to a
|
||||
server instance of LAMMPS.
|
||||
|
||||
The lammps_mc dir shows how to couple LAMMPS as a server to a simple
|
||||
Monte Carlo client code as the driver.
|
||||
|
||||
The lammps_vasp dir shows how to couple LAMMPS as a client code
|
||||
running MD timestepping to VASP acting as a server providing quantum
|
||||
DFT forces, through a Python wrapper script on VASP.
|
||||
|
||||
Here is how to launch a client and server code together for any of the
|
||||
4 modes of message exchange that the "message"_message.html command
|
||||
and the CSlib support. Here LAMMPS is used as both the client and
|
||||
server code. Another code could be substituted for either.
|
||||
|
||||
The examples below show launching both codes from the same window (or
|
||||
batch script), using the "&" character to launch the first code in the
|
||||
background. For all modes except {mpi/one}, you could also launch the
|
||||
codes in separate windows on your desktop machine. It does not
|
||||
matter whether you launch the client or server first.
|
||||
|
||||
In these examples either code can be run on one or more processors.
|
||||
If running in a non-MPI mode (file or zmq) you can launch a code on a
|
||||
single processor without using mpirun.
|
||||
|
||||
IMPORTANT: If you run in mpi/two mode, you must launch both codes via
|
||||
mpirun, even if one or both of them runs on a single processor. This
|
||||
is so that MPI can figure out how to connect both MPI processes
|
||||
together to exchange MPI messages between them.
|
||||
|
||||
For message exchange in {file}, {zmq}, or {mpi/two} modes:
|
||||
|
||||
% mpirun -np 1 lmp_mpi -log log.client < in.client &
|
||||
% mpirun -np 2 lmp_mpi -log log.server < in.server :pre
|
||||
|
||||
% mpirun -np 4 lmp_mpi -log log.client < in.client &
|
||||
% mpirun -np 1 lmp_mpi -log log.server < in.server :pre
|
||||
|
||||
% mpirun -np 2 lmp_mpi -log log.client < in.client &
|
||||
% mpirun -np 4 lmp_mpi -log log.server < in.server :pre
|
||||
|
||||
For message exchange in {mpi/one} mode:
|
||||
|
||||
Launch both codes in a single mpirun command:
|
||||
|
||||
mpirun -np 2 lmp_mpi -mpicolor 0 -in in.message.client -log log.client : -np 4 lmp_mpi -mpicolor 1 -in in.message.server -log log.server :pre
|
||||
|
||||
The two -np values determine how many procs the client and the server
|
||||
run on.
|
||||
|
||||
A LAMMPS executable run in this manner must use the -mpicolor color
|
||||
command-line option as their its option, where color is an integer
|
||||
label that will be used to distinguish one executable from another in
|
||||
the multiple executables that the mpirun command launches. In this
|
||||
example the client was colored with a 0, and the server with a 1.
|
||||
@ -19,7 +19,7 @@ polarizable"_Howto_polarizable.html doc page for a discussion of all
|
||||
the polarizable models available in LAMMPS.
|
||||
|
||||
Technically, shells are attached to the cores by a spring force f =
|
||||
k*r where k is a parametrized spring constant and r is the distance
|
||||
k*r where k is a parameterized spring constant and r is the distance
|
||||
between the core and the shell. The charges of the core and the shell
|
||||
add up to the ion charge, thus q(ion) = q(core) + q(shell). This
|
||||
setup introduces the ion polarizability (alpha) given by
|
||||
@ -111,7 +111,7 @@ the core and shell particles corresponds to the polarization,
|
||||
hereby an instantaneous relaxation of the shells is approximated
|
||||
and a fast core/shell spring frequency ensures a nearly constant
|
||||
internal kinetic energy during the simulation.
|
||||
Thermostats can alter this polarization behaviour, by scaling the
|
||||
Thermostats can alter this polarization behavior, by scaling the
|
||||
internal kinetic energy, meaning the shell will not react freely to
|
||||
its electrostatic environment.
|
||||
Therefore it is typically desirable to decouple the relative motion of
|
||||
@ -165,7 +165,7 @@ fix_modify press_bar temp CSequ press thermo_press_lmp # pressure modification
|
||||
If "compute temp/cs"_compute_temp_cs.html is used, the decoupled
|
||||
relative motion of the core and the shell should in theory be
|
||||
stable. However numerical fluctuation can introduce a small
|
||||
momentum to the system, which is noticable over long trajectories.
|
||||
momentum to the system, which is noticeable over long trajectories.
|
||||
Therefore it is recommendable to use the "fix
|
||||
momentum"_fix_momentum.html command in combination with "compute
|
||||
temp/cs"_compute_temp_cs.html when equilibrating the system to
|
||||
|
||||
@ -16,10 +16,12 @@ atoms and pass those forces to LAMMPS. Or a continuum finite element
|
||||
nodal points, compute a FE solution, and return interpolated forces on
|
||||
MD atoms.
|
||||
|
||||
LAMMPS can be coupled to other codes in at least 3 ways. Each has
|
||||
LAMMPS can be coupled to other codes in at least 4 ways. Each has
|
||||
advantages and disadvantages, which you'll have to think about in the
|
||||
context of your application.
|
||||
|
||||
:line
|
||||
|
||||
(1) Define a new "fix"_fix.html command that calls the other code. In
|
||||
this scenario, LAMMPS is the driver code. During its timestepping,
|
||||
the fix is invoked, and can make library calls to the other code,
|
||||
@ -32,6 +34,8 @@ LAMMPS.
|
||||
|
||||
:link(poems,http://www.rpi.edu/~anderk5/lab)
|
||||
|
||||
:line
|
||||
|
||||
(2) Define a new LAMMPS command that calls the other code. This is
|
||||
conceptually similar to method (1), but in this case LAMMPS and the
|
||||
other code are on a more equal footing. Note that now the other code
|
||||
@ -46,12 +50,14 @@ In this scenario, the other code can be called as a library, as in
|
||||
(1), or it could be a stand-alone code, invoked by a system() call
|
||||
made by the command (assuming your parallel machine allows one or more
|
||||
processors to start up another program). In the latter case the
|
||||
stand-alone code could communicate with LAMMPS thru files that the
|
||||
stand-alone code could communicate with LAMMPS through files that the
|
||||
command writes and reads.
|
||||
|
||||
See the "Modify command"_Modify_command.html doc page for info on how
|
||||
to add a new command to LAMMPS.
|
||||
|
||||
:line
|
||||
|
||||
(3) Use LAMMPS as a library called by another code. In this case the
|
||||
other code is the driver and calls LAMMPS as needed. Or a wrapper
|
||||
code could link and call both LAMMPS and another code as libraries.
|
||||
@ -102,3 +108,9 @@ on all the processors. Or it might allocate half the processors to
|
||||
LAMMPS and half to the other code and run both codes simultaneously
|
||||
before syncing them up periodically. Or it might instantiate multiple
|
||||
instances of LAMMPS to perform different calculations.
|
||||
|
||||
:line
|
||||
|
||||
(4) Couple LAMMPS with another code in a client/server mode. This is
|
||||
described on the "Howto client/server"_Howto_client_server.html doc
|
||||
page.
|
||||
|
||||
@ -74,7 +74,7 @@ command.
|
||||
A reasonable approach that combines the upsides of both methods is to
|
||||
make the first run using the {kspace_modify force/disp/real} and
|
||||
{kspace_modify force/disp/kspace} commands, write down the PPPM
|
||||
parameters from the outut, and specify these parameters using the
|
||||
parameters from the output, and specify these parameters using the
|
||||
second approach in subsequent runs (which have the same composition,
|
||||
force field, and approximately the same volume).
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ for a discussion of all the polarizable models available in LAMMPS.
|
||||
The Drude model has a number of features aimed at its use in
|
||||
molecular systems ("Lamoureux and Roux"_#howto-Lamoureux):
|
||||
|
||||
Thermostating of the additional degrees of freedom associated with the
|
||||
Thermostatting of the additional degrees of freedom associated with the
|
||||
induced dipoles at very low temperature, in terms of the reduced
|
||||
coordinates of the Drude particles with respect to their cores. This
|
||||
makes the trajectory close to that of relaxed induced dipoles. :ulb,l
|
||||
|
||||
@ -82,7 +82,7 @@ decouple the degrees of freedom associated with the Drude oscillators
|
||||
from those of the normal atoms. Thermalizing the Drude dipoles at
|
||||
temperatures comparable to the rest of the simulation leads to several
|
||||
problems (kinetic energy transfer, very short timestep, etc.), which
|
||||
can be remediate by the "cold Drude" technique ("Lamoureux and
|
||||
can be remedied by the "cold Drude" technique ("Lamoureux and
|
||||
Roux"_#Lamoureux2).
|
||||
|
||||
Two closely related models are used to represent polarization through
|
||||
@ -213,7 +213,7 @@ of mass of the DC-DP pairs, with relaxation time 100 and with random
|
||||
seed 12345. This fix applies also a Langevin thermostat at temperature
|
||||
1. to the relative motion of the DPs around their DCs, with relaxation
|
||||
time 20 and random seed 13977. Only the DCs and non-polarizable
|
||||
atoms need to be in this fix's group. LAMMPS will thermostate the DPs
|
||||
atoms need to be in this fix's group. LAMMPS will thermostat the DPs
|
||||
together with their DC. For this, ghost atoms need to know their
|
||||
velocities. Thus you need to add the following command:
|
||||
|
||||
@ -360,7 +360,7 @@ fix NPH all nph iso 1. 1. 500 :pre
|
||||
It is also possible to use a Nose-Hoover instead of a Langevin
|
||||
thermostat. This requires to use "{fix
|
||||
drude/transform}"_fix_drude_transform.html just before and after the
|
||||
time intergation fixes. The {fix drude/transform/direct} converts the
|
||||
time integration fixes. The {fix drude/transform/direct} converts the
|
||||
atomic masses, positions, velocities and forces into a reduced
|
||||
representation, where the DCs transform into the centers of mass of
|
||||
the DC-DP pairs and the DPs transform into their relative position
|
||||
@ -396,7 +396,7 @@ global pressure and thus a global temperature whatever the fix group.
|
||||
We do want the pressure to correspond to the whole system, but we want
|
||||
the temperature to correspond to the fix group only. We must then use
|
||||
the {fix_modify} command for this. In the end, the block of
|
||||
instructions for thermostating and barostating will look like
|
||||
instructions for thermostatting and barostatting will look like
|
||||
|
||||
compute TATOMS ATOMS temp
|
||||
fix DIRECT all drude/transform/direct
|
||||
|
||||
@ -30,7 +30,7 @@ examples/elastic directory described on the "Examples"_Examples.html
|
||||
doc page.
|
||||
|
||||
Calculating elastic constants at finite temperature is more
|
||||
challenging, because it is necessary to run a simulation that perfoms
|
||||
challenging, because it is necessary to run a simulation that performs
|
||||
time averages of differential properties. One way to do this is to
|
||||
measure the change in average stress tensor in an NVT simulations when
|
||||
the cell volume undergoes a finite deformation. In order to balance
|
||||
|
||||
@ -96,7 +96,7 @@ machine to a directory with the name you chose. If none is given, it will
|
||||
default to "lammps". Typical names are "mylammps" or something similar.
|
||||
|
||||
You can use this local clone to make changes and
|
||||
test them without interfering with the repository on Github.
|
||||
test them without interfering with the repository on GitHub.
|
||||
|
||||
To pull changes from upstream into this copy, you can go to the directory
|
||||
and use git pull:
|
||||
@ -150,7 +150,7 @@ After the commit, the changes can be pushed to the same branch on GitHub:
|
||||
$ git push :pre
|
||||
|
||||
Git will ask you for your user name and password on GitHub if you have
|
||||
not configured anything. If your local branch is not present on Github yet,
|
||||
not configured anything. If your local branch is not present on GitHub yet,
|
||||
it will ask you to add it by running
|
||||
|
||||
$ git push --set-upstream origin github-tutorial-update :pre
|
||||
@ -254,20 +254,53 @@ them, or if a developer has requested that something needs to be changed
|
||||
before the feature can be accepted into the official LAMMPS version.
|
||||
After each push, the automated checks are run again.
|
||||
|
||||
[Labels]
|
||||
|
||||
LAMMPS developers may add labels to your pull request to assign it to
|
||||
categories (mostly for bookkeeping purposes), but a few of them are
|
||||
important: needs_work, work_in_progress, test-for-regression, and
|
||||
full-regression-test. The first two indicate, that your pull request
|
||||
is not considered to be complete. With "needs_work" the burden is on
|
||||
exclusively on you; while "work_in_progress" can also mean, that a
|
||||
LAMMPS developer may want to add changes. Please watch the comments
|
||||
to the pull requests. The two "test" labels are used to trigger
|
||||
extended tests before the code is merged. This is sometimes done by
|
||||
LAMMPS developers, if they suspect that there may be some subtle
|
||||
side effects from your changes. It is not done by default, because
|
||||
those tests are very time consuming.
|
||||
|
||||
[Reviews]
|
||||
|
||||
As of Summer 2018, a pull request needs at least 1 approving review
|
||||
from a LAMMPS developer with write access to the repository.
|
||||
In case your changes touch code that certain developers are associated
|
||||
with, they are auto-requested by the GitHub software. Those associations
|
||||
are set in the file
|
||||
".github/CODEOWNERS"_https://github.com/lammps/lammps/blob/master/.github/CODEOWNERS
|
||||
Thus if you want to be automatically notified to review when anybody
|
||||
changes files or packages, that you have contributed to LAMMPS, you can
|
||||
add suitable patterns to that file, or a LAMMPS developer may add you.
|
||||
|
||||
Otherwise, you can also manually request reviews from specific developers,
|
||||
or LAMMPS developers - in their assessment of your pull request - may
|
||||
determine who else should be reviewing your contribution and add that person.
|
||||
Through reviews, LAMMPS developers also may request specific changes from you.
|
||||
If those are not addressed, your pull requests cannot be merged.
|
||||
|
||||
[Assignees]
|
||||
|
||||
There is an assignee label for pull requests. If the request has not
|
||||
There is an assignee property for pull requests. If the request has not
|
||||
been reviewed by any developer yet, it is not assigned to anyone. After
|
||||
revision, a developer can choose to assign it to either a) you, b) a
|
||||
LAMMPS developer (including him/herself) or c) Steve Plimpton (sjplimp).
|
||||
LAMMPS developer (including him/herself) or c) Axel Kohlmeyer (akohlmey).
|
||||
|
||||
Case a) happens if changes are required on your part :ulb,l
|
||||
Case b) means that at the moment, it is being tested and reviewed by a
|
||||
LAMMPS developer with the expectation that some changes would be required.
|
||||
After the review, the developer can choose to implement changes directly
|
||||
or suggest them to you. :l
|
||||
Case c) means that the pull request has been assigned to the lead
|
||||
developer Steve Plimpton and means it is considered ready for merging. :ule,l
|
||||
Case c) means that the pull request has been assigned to the developer
|
||||
overseeing the merging of pull requests into the master branch. :ule,l
|
||||
|
||||
In this case, Axel assigned the tutorial to Steve:
|
||||
|
||||
@ -336,7 +369,7 @@ commit and push again:
|
||||
$ git commit -m "Merged Axel's suggestions and updated text"
|
||||
$ git push git@github.com:Pakketeretet2/lammps :pre
|
||||
|
||||
This merge also shows up on the lammps Github page:
|
||||
This merge also shows up on the lammps GitHub page:
|
||||
|
||||
:c,image(JPG/tutorial_reverse_pull_request7.png)
|
||||
|
||||
@ -381,3 +414,6 @@ Furthermore, the naming of the patches now follow the pattern
|
||||
"patch_<Day><Month><Year>" to simplify comparisons between releases.
|
||||
Finally, all patches and submissions are subject to automatic testing
|
||||
and code checks to make sure they at the very least compile.
|
||||
|
||||
A discussion of the LAMMPS developer GitHub workflow can be found in the file
|
||||
"doc/github-development-workflow.md"_https://github.com/lammps/lammps/blob/master/doc/github-development-workflow.md
|
||||
|
||||
@ -87,7 +87,7 @@ commands to LAMMPS to execute, the same as if they were coming from an
|
||||
input script.
|
||||
|
||||
Via these functions, the calling code can read or generate a series of
|
||||
LAMMPS commands one or multiple at a time and pass it thru the library
|
||||
LAMMPS commands one or multiple at a time and pass it through the library
|
||||
interface to setup a problem and then run it in stages. The caller
|
||||
can interleave the command function calls with operations it performs,
|
||||
calls to extract information from or set information within LAMMPS, or
|
||||
@ -171,21 +171,21 @@ void lammps_create_atoms(void *, int, tagint *, int *, double *, double *,
|
||||
|
||||
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 callling processor. The scatter
|
||||
same vector of values to each calling processor. The scatter
|
||||
functions do the inverse. They distribute a vector of peratom values,
|
||||
passed by all calling processors, to invididual atoms, which may be
|
||||
owned by different processos.
|
||||
passed by all calling processors, to individual atoms, which may be
|
||||
owned by different processors.
|
||||
|
||||
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
|
||||
simply concatenates the subset of atoms owned by each processor. The
|
||||
resulting vector is not ordered by atom ID. Atom IDs can be requetsed
|
||||
resulting vector is not ordered by atom ID. Atom IDs can be requested
|
||||
by the same function if the caller needs to know the ordering. The
|
||||
lammps_gather_subset() function allows the caller to request values
|
||||
for only a subset of atoms (identified by ID).
|
||||
For all 3 gather function, per-atom image flags can be retrieved in 2 ways.
|
||||
If the count is specified as 1, they are returned
|
||||
If the count is specified as 1, they are returned
|
||||
in a packed format with all three image flags stored in a single integer.
|
||||
If the count is specified as 3, the values are unpacked into xyz flags
|
||||
by the library before returning them.
|
||||
|
||||
@ -31,8 +31,8 @@ plane @ a b c x0 y0 z0 @ a*(x-x0) + b*(y-y0) + c*(z-z0) = 0 @ A plane with norma
|
||||
plane_wiggle @ a w @ z - a*sin(w*x) = 0 @ A plane with a sinusoidal modulation on z along x.
|
||||
sphere @ R @ x^2 + y^2 + z^2 - R^2 = 0 @ A sphere of radius R
|
||||
supersphere @ R q @ | x |^q + | y |^q + | z |^q - R^q = 0 @ A supersphere of hyperradius R
|
||||
spine @ a, A, B, B2, c @ -(x^2 + y^2) + (a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^4), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ An approximation to a dendtritic spine
|
||||
spine_two @ a, A, B, B2, c @ -(x^2 + y^2) + (a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^2), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ Another approximation to a dendtritic spine
|
||||
spine @ a, A, B, B2, c @ -(x^2 + y^2) + (a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^4), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ An approximation to a dendritic spine
|
||||
spine_two @ a, A, B, B2, c @ -(x^2 + y^2) + (a^2 - z^2/f(z)^2)*(1 + (A*sin(g(z)*z^2))^2), f(z) = c if z > 0, 1 otherwise; g(z) = B if z > 0, B2 otherwise @ Another approximation to a dendritic spine
|
||||
thylakoid @ wB LB lB @ Various, see "(Paquay)"_#Paquay1 @ A model grana thylakoid consisting of two block-like compartments connected by a bridge of width wB, length LB and taper length lB
|
||||
torus @ R r @ (R - sqrt( x^2 + y^2 ) )^2 + z^2 - r^2 @ A torus with large radius R and small radius r, centered on (0,0,0) :tb(s=@)
|
||||
|
||||
|
||||
@ -24,6 +24,11 @@ by subtracting out the streaming velocity of the shearing atoms. The
|
||||
velocity profile or other properties of the fluid can be monitored via
|
||||
the "fix ave/chunk"_fix_ave_chunk.html command.
|
||||
|
||||
NOTE: A recent (2017) book by "(Daivis and Todd)"_#Daivis-nemd
|
||||
discusses use of the SLLOD method and non-equilibrium MD (NEMD)
|
||||
thermostatting generally, for both simple and complex fluids,
|
||||
e.g. molecular systems. The latter can be tricky to do correctly.
|
||||
|
||||
As discussed in the previous section on non-orthogonal simulation
|
||||
boxes, the amount of tilt or skew that can be applied is limited by
|
||||
LAMMPS for computational efficiency to be 1/2 of the parallel box
|
||||
@ -46,3 +51,9 @@ An alternative method for calculating viscosities is provided via the
|
||||
NEMD simulations can also be used to measure transport properties of a fluid
|
||||
through a pore or channel. Simulations of steady-state flow can be performed
|
||||
using the "fix flow/gauss"_fix_flow_gauss.html command.
|
||||
|
||||
:line
|
||||
|
||||
:link(Daivis-nemd)
|
||||
[(Daivis and Todd)] Daivis and Todd, Nonequilibrium Molecular Dynamics (book),
|
||||
Cambridge University Press, https://doi.org/10.1017/9781139017848, (2017).
|
||||
|
||||
@ -45,8 +45,8 @@ high symmetry around each site leads to stable trajectories of the
|
||||
core-shell pairs. However, bonded atoms in molecules can be so close
|
||||
that a core would interact too strongly or even capture the Drude
|
||||
particle of a neighbor. The Drude dipole model is relatively more
|
||||
complex in order to remediate this and other issues. Specifically, the
|
||||
Drude model includes specific thermostating of the core-Drude pairs
|
||||
complex in order to remedy this and other issues. Specifically, the
|
||||
Drude model includes specific thermostatting of the core-Drude pairs
|
||||
and short-range damping of the induced dipoles.
|
||||
|
||||
The three polarization methods can be implemented through a
|
||||
@ -77,5 +77,5 @@ motion of the Drude particles with respect to their cores is kept
|
||||
approaching the self-consistent regime. In both models the
|
||||
temperature is regulated using the velocities of the center of mass of
|
||||
core+shell (or Drude) pairs, but in the Drude model the actual
|
||||
relative core-Drude particle motion is thermostated separately as
|
||||
relative core-Drude particle motion is thermostatted separately as
|
||||
well.
|
||||
|
||||
@ -73,7 +73,7 @@ that package into your current Python installation.
|
||||
cd $LAMMPS_DIR/python
|
||||
python install.py :pre
|
||||
|
||||
NOTE: Recompiling the shared library requires reinstalling the Python package
|
||||
NOTE: Recompiling the shared library requires re-installing the Python package
|
||||
|
||||
|
||||
Installation inside of a virtualenv :h5
|
||||
@ -141,16 +141,16 @@ Python code if {L} was a lammps instance:
|
||||
L.command("region box block 0 10 0 5 -0.5 0.5") :pre
|
||||
|
||||
With the PyLammps interface, any command can be split up into arbitrary parts
|
||||
separated by whitespace, passed as individual arguments to a region method.
|
||||
separated by white-space, passed as individual arguments to a region method.
|
||||
|
||||
L.region("box block", 0, 10, 0, 5, -0.5, 0.5) :pre
|
||||
|
||||
Note that each parameter is set as Python literal floating-point number. In the
|
||||
PyLammps interface, each command takes an arbitrary parameter list and transparently
|
||||
merges it to a single command string, separating individual parameters by whitespace.
|
||||
merges it to a single command string, separating individual parameters by white-space.
|
||||
|
||||
The benefit of this approach is avoiding redundant command calls and easier
|
||||
parameterization. In the original interface parametrization needed to be done
|
||||
parameterization. In the original interface parameterization needed to be done
|
||||
manually by creating formatted strings.
|
||||
|
||||
L.command("region box block %f %f %f %f %f %f" % (xlo, xhi, ylo, yhi, zlo, zhi)) :pre
|
||||
@ -328,7 +328,7 @@ jupyter notebook :pre
|
||||
IPyLammps Examples :h4
|
||||
|
||||
Examples of IPython notebooks can be found in the python/examples/pylammps
|
||||
subdirectory. To open these notebooks launch {jupyter notebook} inside this
|
||||
sub-directory. To open these notebooks launch {jupyter notebook} inside this
|
||||
directory and navigate to one of them. If you compiled and installed
|
||||
a LAMMPS shared library with exceptions, PNG, JPEG and FFMPEG support
|
||||
you should be able to rerun all of these notebooks.
|
||||
|
||||
@ -9,7 +9,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
Multi-replica simulations :h3
|
||||
|
||||
Several commands in LAMMPS run mutli-replica simulations, meaning
|
||||
Several commands in LAMMPS run multi-replica simulations, meaning
|
||||
that multiple instances (replicas) of your simulation are run
|
||||
simultaneously, with small amounts of data exchanged between replicas
|
||||
periodically.
|
||||
|
||||
@ -30,7 +30,7 @@ r0 of OH bond = 1.0
|
||||
theta of HOH angle = 109.47 :all(b),p
|
||||
|
||||
Note that as originally proposed, the SPC model was run with a 9
|
||||
Angstrom cutoff for both LJ and Coulommbic terms. It can also be used
|
||||
Angstrom cutoff for both LJ and Coulombic terms. It can also be used
|
||||
with long-range Coulombics (Ewald or PPPM in LAMMPS), without changing
|
||||
any of the parameters above, though it becomes a different model in
|
||||
that mode of usage.
|
||||
|
||||
@ -35,7 +35,7 @@ There are several "atom styles"_atom_style.html that allow for
|
||||
definition of finite-size particles: sphere, dipole, ellipsoid, line,
|
||||
tri, peri, and body.
|
||||
|
||||
The sphere style defines particles that are spheriods and each
|
||||
The sphere style defines particles that are spheroids and each
|
||||
particle can have a unique diameter and mass (or density). These
|
||||
particles store an angular velocity (omega) and can be acted upon by
|
||||
torque. The "set" command can be used to modify the diameter and mass
|
||||
@ -159,7 +159,7 @@ ellipsoidal particles:
|
||||
|
||||
The advantage of these fixes is that those which thermostat the
|
||||
particles include the rotational degrees of freedom in the temperature
|
||||
calculation and thermostatting. The "fix langevin"_fix_langevin
|
||||
calculation and thermostatting. The "fix langevin"_fix_langevin.html
|
||||
command can also be used with its {omgea} or {angmom} options to
|
||||
thermostat the rotational degrees of freedom for spherical or
|
||||
ellipsoidal particles. Other thermostatting fixes only operate on the
|
||||
@ -236,7 +236,7 @@ particles are point masses.
|
||||
Also note that body particles cannot be modeled with the "fix
|
||||
rigid"_fix_rigid.html command. Body particles are treated by LAMMPS
|
||||
as single particles, though they can store internal state, such as a
|
||||
list of sub-particles. Individual body partices are typically treated
|
||||
list of sub-particles. Individual body particles are typically treated
|
||||
as rigid bodies, and their motion integrated with a command like "fix
|
||||
nve/body"_fix_nve_body.html. Interactions between pairs of body
|
||||
particles are computed via a command like "pair_style
|
||||
|
||||
@ -9,51 +9,51 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
Magnetic spins :h3
|
||||
|
||||
The magnetic spin simualtions are enabled by the SPIN package, whose
|
||||
The magnetic spin simulations are enabled by the SPIN package, whose
|
||||
implementation is detailed in "Tranchida"_#Tranchida7.
|
||||
|
||||
The model representents the simulation of atomic magnetic spins coupled
|
||||
to lattice vibrations. The dynamics of those magnetic spins can be used
|
||||
to simulate a broad range a phenomena related to magneto-elasticity, or
|
||||
or to study the influence of defects on the magnetic properties of
|
||||
materials.
|
||||
The model represents the simulation of atomic magnetic spins coupled
|
||||
to lattice vibrations. The dynamics of those magnetic spins can be used
|
||||
to simulate a broad range a phenomena related to magneto-elasticity, or
|
||||
or to study the influence of defects on the magnetic properties of
|
||||
materials.
|
||||
|
||||
The magnetic spins are interacting with each others and with the
|
||||
lattice via pair interactions. Typically, the magnetic exchange
|
||||
interaction can be defined using the
|
||||
The magnetic spins are interacting with each others and with the
|
||||
lattice via pair interactions. Typically, the magnetic exchange
|
||||
interaction can be defined using the
|
||||
"pair/spin/exchange"_pair_spin_exchange.html command. This exchange
|
||||
applies a magnetic torque to a given spin, considering the orientation
|
||||
of its neighboring spins and their relative distances.
|
||||
It also applies a force on the atoms as a function of the spin
|
||||
orientations and their associated inter-atomic distances.
|
||||
|
||||
of its neighboring spins and their relative distances.
|
||||
It also applies a force on the atoms as a function of the spin
|
||||
orientations and their associated inter-atomic distances.
|
||||
|
||||
The command "fix precession/spin"_fix_precession_spin.html allows to
|
||||
apply a constant magnetic torque on all the spins in the system. This
|
||||
torque can be an external magnetic field (Zeeman interaction), or an
|
||||
uniaxial magnetic anisotropy.
|
||||
uniaxial magnetic anisotropy.
|
||||
|
||||
A Langevin thermostat can be applied to those magnetic spins using
|
||||
"fix langevin/spin"_fix_langevin_spin.html. Typically, this thermostat
|
||||
can be coupled to another Langevin thermostat applied to the atoms
|
||||
using "fix langevin"_fix_langevin.html in order to simulate
|
||||
thermostated spin-lattice system.
|
||||
A Langevin thermostat can be applied to those magnetic spins using
|
||||
"fix langevin/spin"_fix_langevin_spin.html. Typically, this thermostat
|
||||
can be coupled to another Langevin thermostat applied to the atoms
|
||||
using "fix langevin"_fix_langevin.html in order to simulate
|
||||
thermostatted spin-lattice system.
|
||||
|
||||
The magnetic Gilbert damping can also be applied using "fix
|
||||
langevin/spin"_fix_langevin_spin.html. It allows to either dissipate
|
||||
the thermal energy of the Langevin thermostat, or to perform a
|
||||
The magnetic Gilbert damping can also be applied using "fix
|
||||
langevin/spin"_fix_langevin_spin.html. It allows to either dissipate
|
||||
the thermal energy of the Langevin thermostat, or to perform a
|
||||
relaxation of the magnetic configuration toward an equilibrium state.
|
||||
|
||||
All the computed magnetic properties can be outputed by two main
|
||||
commands. The first one is "compute spin"_compute_spin.html, that
|
||||
enables to evaluate magnetic averaged quantities, such as the total
|
||||
All the computed magnetic properties can be output by two main
|
||||
commands. The first one is "compute spin"_compute_spin.html, that
|
||||
enables to evaluate magnetic averaged quantities, such as the total
|
||||
magnetization of the system along x, y, or z, the spin temperature, or
|
||||
the magnetic energy. The second command is "compute
|
||||
the magnetic energy. The second command is "compute
|
||||
property/atom"_compute_property_atom.html. It enables to output all the
|
||||
per atom magnetic quantities. Typically, the orientation of a given
|
||||
per atom magnetic quantities. Typically, the orientation of a given
|
||||
magnetic spin, or the magnetic force acting on this spin.
|
||||
|
||||
:line
|
||||
|
||||
:link(Tranchida7)
|
||||
[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson,
|
||||
[(Tranchida)] Tranchida, Plimpton, Thibaudeau and Thompson,
|
||||
arXiv preprint arXiv:1801.10233, (2018).
|
||||
|
||||
@ -43,6 +43,11 @@ nvt/asphere"_fix_nvt_asphere.html thermostat not only translation
|
||||
velocities but also rotational velocities for spherical and aspherical
|
||||
particles.
|
||||
|
||||
NOTE: A recent (2017) book by "(Daivis and Todd)"_#Daivis-thermostat
|
||||
discusses use of the SLLOD method and non-equilibrium MD (NEMD)
|
||||
thermostatting generally, for both simple and complex fluids,
|
||||
e.g. molecular systems. The latter can be tricky to do correctly.
|
||||
|
||||
DPD thermostatting alters pairwise interactions in a manner analogous
|
||||
to the per-particle thermostatting of "fix
|
||||
langevin"_fix_langevin.html.
|
||||
@ -87,3 +92,9 @@ specify them explicitly via the "thermo_style
|
||||
custom"_thermo_style.html command. Or you can use the
|
||||
"thermo_modify"_thermo_modify.html command to re-define what
|
||||
temperature compute is used for default thermodynamic output.
|
||||
|
||||
:line
|
||||
|
||||
:link(Daivis-thermostat)
|
||||
[(Daivis and Todd)] Daivis and Todd, Nonequilibrium Molecular Dynamics (book),
|
||||
Cambridge University Press, https://doi.org/10.1017/9781139017848, (2017).
|
||||
|
||||