Compare commits

..

424 Commits

Author SHA1 Message Date
938175d2bc Merge pull request #2242 from akohlmey/next_lammps_version
Update version strings for next patch release
2020-07-20 22:33:37 -04:00
472de2e85a Merge pull request #2238 from yafshar/kim_fix
KIM package corrections and refactoring
2020-07-20 21:22:59 -04:00
cbdf1d3a64 consolidate mpi4py link 2020-07-20 20:59:47 -04:00
68df62b869 support verbose option 2020-07-20 20:40:20 -04:00
cac4c5d930 fix merge artifact 2020-07-20 20:40:02 -04:00
5b4275002c Merge branch 'master' into kim_fix 2020-07-20 20:27:41 -04:00
39cefc4eb3 Merge pull request #2241 from yafshar/cmake
Update the deprecated property and fix the empty value on macOS
2020-07-20 12:23:20 -04:00
6d70c393e1 Merge pull request #2239 from akohlmey/collected-small-changes
Collected small changes and fixes for the next patch release
2020-07-20 11:35:11 -04:00
1f819ca333 update the kim_param command test 2020-07-19 18:35:20 -05:00
3390e1d4c5 starting of the kim_property command test 2020-07-19 18:10:00 -05:00
02ff2068cd cosmetic changes 2020-07-19 15:19:53 -04:00
78cfd3ff79 refactor fix tune/kspace
- make use of std::string to simplify code
- skip over trying MSM, if no suitable pair style present
2020-07-19 12:15:07 -04:00
b162cefc5f for ewald we also have evflag_atom that needs to be initialized 2020-07-19 12:12:50 -04:00
0008c0eca3 need to setup bins again if binning style has be reset 2020-07-19 12:12:20 -04:00
674514f822 update the kim_param command test 2020-07-19 10:35:00 -05:00
419404a9b5 Update the KIM error messages 2020-07-19 09:24:01 -05:00
c215278ad1 Update the KIM error messages 2020-07-19 08:41:52 -05:00
c73f8a5500 Update the KIM error messages 2020-07-19 08:13:03 -05:00
c844de03ef Update the KIM error messages 2020-07-19 08:08:30 -05:00
5fec11a0db Update the KIM error messages 2020-07-19 08:04:13 -05:00
262ce37eed silence compiler warning 2020-07-19 07:19:44 -04:00
65bf187a39 update version string for patch release 2020-07-18 21:51:01 -04:00
0246feb1c2 Merge branch 'kim_fix' of github.com:yafshar/lammps into kim_fix 2020-07-18 20:47:28 -05:00
bba7e3554c simplify building aligned mutable parameter trable using fmtlib 2020-07-18 21:42:33 -04:00
82f5bbf859 update the kim_interactions command test 2020-07-18 20:31:36 -05:00
894a7e4bce update test 2020-07-18 21:10:22 -04:00
c1a650d50d Update the error messages
Update the error messages and removing an extra Error word at the
start of each message.
2020-07-18 20:00:11 -05:00
610fea20dd clean up the code 2020-07-18 19:14:00 -05:00
40a053000d update output formatting of info command 2020-07-18 18:54:03 -04:00
bc47ec5027 update the kim_init command test 2020-07-18 17:23:24 -05:00
05c0b5d5ce Update the deprecated property and fix the empty value on macOS
The `IMPORTED_LINK_INTERFACE_LIBRARIES` is deprecated and is
updated to `INTERFACE_LINK_LIBRARIES` instead.
On macOS `CMAKE_THREAD_LIBS_INIT` is empty since empty the thread
functions are provided by the system libraries. To avoid getting
`set_target_properties called with incorrect number of arguments` error
message, we put it inside double quotes.
2020-07-18 15:12:31 -05:00
859da19869 consistently skip death tests at runtime when using OpenMPI without exceptions 2020-07-18 13:09:17 -04:00
e0200cf3d7 consistently skip death tests at runtime when using OpenMPI without exceptions 2020-07-18 13:02:38 -04:00
211beaee48 Merge pull request #2230 from evoyiatzis/widom
Implementation of Widom insertions through a new fix widom command
2020-07-18 11:40:04 -04:00
55c3d139c1 add Widom spc/e example 2020-07-17 21:42:00 -04:00
bf5c1dbc9e accept const std::string as argument in Group::find() 2020-07-17 21:29:16 -04:00
eff159baf4 work around issue of the Intel compiler disguising as clang on macos 2020-07-17 21:28:35 -04:00
4d4ae93ef8 add missing group names in fix widom. refactor group definition in fix widom and gcmc 2020-07-17 21:27:58 -04:00
93ed07f445 accept const std::string as argument in Group::find() 2020-07-17 21:26:53 -04:00
0e6531e2b6 whitespace cleanup 2020-07-17 15:02:53 -04:00
117499e847 avoid floating point exception (log(0)) 2020-07-17 15:02:47 -04:00
c9342aec31 add lj example for fix widom 2020-07-17 15:02:11 -04:00
c5698ac994 Merge branch 'collected-small-fixes' of github.com:rbberger/lammps into collected-small-changes 2020-07-17 14:03:17 -04:00
95c215d5d3 silence compiler warnings 2020-07-17 14:02:18 -04:00
65f9c1abf5 bugfix: reorder instructions 2020-07-17 14:00:16 -04:00
0748b12472 when processing quoted strings, the quotes need to be removed 2020-07-17 13:58:15 -04:00
b3bd36947d add convenience function to allow variable->set() command with a single string argument 2020-07-17 13:57:54 -04:00
5c191e1e6e fix the return call status 2020-07-17 11:21:25 -05:00
cdbcacffce when processing quoted strings, the quotes need to be removed 2020-07-17 10:23:07 -04:00
a0bfe932b5 quote argument that needs to be kept intact 2020-07-17 10:08:26 -04:00
5fe83755b8 start tester tool for KIM commands 2020-07-17 02:23:48 -04:00
2fb6a61f2a refactor code to make better use of std::string and simplify using changes to Variable class API 2020-07-17 01:23:17 -04:00
63bebf58fd add convenience function to allow variable->set() command with a single string argument 2020-07-17 00:46:31 -04:00
dd7bc1d34e use const char * instead of char * so we don't need a cast for string constants 2020-07-17 00:45:58 -04:00
e2efabc6c4 Revert "simplify"
This reverts commit 2be20f424f
as this change has been integrated into a different branch
with additional changes.
2020-07-17 00:35:13 -04:00
0af7fbe98e use const char * instead of char * so we don't need a cast for string constants 2020-07-17 00:34:23 -04:00
abc9cfe30f silence compiler warnings 2020-07-17 00:30:13 -04:00
4743bf4ea0 silence compiler warning 2020-07-17 00:27:03 -04:00
b61276b59d Merge branch 'master' into kim_fix 2020-07-17 00:10:02 -04:00
74c9c15589 simplify and get rid of strtok() 2020-07-17 00:08:07 -04:00
5df8be2ca4 Replace macro with std::to_string
Following the C++ Core Guidelines, Macros must go.
2020-07-16 20:21:12 -05:00
1b0f35c241 Replace macro with std::to_string
Following the C++ Core Guidelines, Macros must go.
2020-07-16 20:19:51 -05:00
168fe438a5 Replace macro with std::to_string
Following the C++ Core Guidelines, Macros must go.
2020-07-16 20:17:59 -05:00
2ba7abe57e silence compiler warnings 2020-07-16 21:14:31 -04:00
fb7923df06 dead code removal 2020-07-16 21:14:22 -04:00
2be20f424f simplify 2020-07-16 21:13:47 -04:00
78ddce5de1 Replace macro with std::to_string
Following the C++ Core Guidelines, Macros must go.
2020-07-16 20:13:40 -05:00
08dd79b1ce Clean up the code 2020-07-16 20:09:17 -05:00
dbbc60b4b8 Clean up the code 2020-07-16 20:04:55 -05:00
dff117fe53 Clean up the code 2020-07-16 20:02:26 -05:00
f163477d3a Clean up the code 2020-07-16 20:00:09 -05:00
54b47212a1 Clean up the code & replace tabs with white spaces 2020-07-16 19:56:22 -05:00
81f8590df1 Clean up the code 2020-07-16 19:49:22 -05:00
96615ea97e Clean up the code 2020-07-16 19:47:31 -05:00
91f97fa74c Remove the previously created KIM log file. 2020-07-16 19:23:51 -05:00
585ed5e1dc Merge pull request #2228 from athomps/compute-mliap
Compute mliap updates
2020-07-16 20:20:45 -04:00
882210613e Fix the write_log_cite interface.
Fix the interface by correcting the data type. The `model_name`
variable is a `char *` and not a `string`.
2020-07-16 19:20:30 -05:00
e98056c0e8 whitespace fixes 2020-07-16 19:03:30 -04:00
31cfc99ad9 add missing empty line 2020-07-16 18:37:16 -04:00
52715cc804 Merge branch 'master' into compute-mliap 2020-07-16 18:35:49 -04:00
ad02d7a5e0 Merge pull request #2219 from lammps/write-bonus-data
Enable write_data for atom styles with bonus data. Add tester code for that and many related cleanups and bugfixes.
2020-07-16 18:21:15 -04:00
34fdfb6b81 allow fix nvt/body npt/body and nph/body to be used for groups other than "all" 2020-07-16 17:56:56 -04:00
92f194ac93 make sure output buffer is initialized 2020-07-16 17:32:17 -04:00
f344629a29 simplify 2020-07-16 17:31:54 -04:00
209d3ff3ff fix typo 2020-07-16 17:31:46 -04:00
35b030015d Merge branch 'master' into write-bonus-data 2020-07-16 12:15:59 -04:00
9a13ad5230 Merge pull request #2206 from ohenrich/mc-fix-bond-create-angle
New fix_bond_create_angle class
2020-07-16 11:54:04 -04:00
ee10b200e0 Merge branch 'master' into write-bonus-data 2020-07-15 22:10:38 -04:00
25a836b729 reformat and rephrase text about availability of fix bond/create/angle only keyword 2020-07-15 21:32:22 -04:00
52b30b11ec add fix bond/create/angle to list in Fix command page 2020-07-15 21:31:22 -04:00
d7ef1b007d Merge branch 'master' into mc-fix-bond-create-angle 2020-07-15 21:21:35 -04:00
29e2c82d71 fix broken line wrap. 2020-07-15 21:00:43 -04:00
4dc61f7f2a make frenkel book anchors globally unique 2020-07-15 20:56:50 -04:00
300beb819b change from DOS/Windows CR/LF to LF 2020-07-15 20:54:58 -04:00
3287f1cddc fully integrate fix widom into manual. fix some style issues and reindent 2020-07-15 20:54:17 -04:00
94464f5390 Merge branch 'master' into widom 2020-07-15 20:46:39 -04:00
581d47a10a move fix widom from USER-MISC to MC package 2020-07-15 20:46:31 -04:00
438346a936 Merge pull request #2237 from yafshar/memory
Fix the system-dependent function call to `malloc_usable_size`.
2020-07-15 20:42:49 -04:00
dff2e93e2a Merge pull request #2236 from stanmoore1/kk_qeq_nevery
Fix issues in Kokkos fix qeq/reax
2020-07-15 20:41:00 -04:00
508a38a7fa Fix the system-dependent function call to malloc_usable_size.
Fix the system-dependent function call to get the size of the
block of memory allocated from the heap.
2020-07-15 17:49:49 -05:00
71344aaa28 Merge branch 'master' of https://github.com/lammps/lammps into kk_qeq_nevery 2020-07-15 16:18:56 -06:00
181b7cf34f Merge branch 'master' into write-bonus-data 2020-07-15 18:14:49 -04:00
0105d1caa5 Merge pull request #2212 from akohlmey/compute-chunk-scalar
Get number of chunks from compute chunk/atom
2020-07-15 18:13:48 -04:00
1021f5753b Merge pull request #2218 from lammps/reset-molecules
new reset_mol_ids command
2020-07-15 18:09:02 -04:00
dee38c26b3 Changed paragraph as per request 2020-07-15 22:51:51 +01:00
a392f212ee Fix issues in Kokkos fix qeq/reax 2020-07-15 15:49:26 -06:00
73a076daf3 don't set CMAKE_TUNE_FLAGS to anything by default 2020-07-15 16:19:48 -04:00
8949b2f165 add recently added names to false positives list 2020-07-15 15:31:12 -04:00
bf37e6aae1 Merge branch 'master' into write-bonus-data 2020-07-15 15:20:34 -04:00
7a312ca8d8 Merge pull request #2231 from stanmoore1/reax_hybrid
Fix issue with Kokkos ReaxFF and pair hybrid
2020-07-15 14:35:35 -04:00
28ee835103 Update fix_widom.rst 2020-07-15 20:35:15 +02:00
1a738f80e2 Update false_positives.txt 2020-07-15 20:14:17 +02:00
4cbe095444 Merge pull request #2234 from akohlmey/collected-small-fixes
Collected small fixes and unittest updates
2020-07-15 14:13:21 -04:00
41a7557cc9 first attempt of a documentation file 2020-07-15 18:53:04 +02:00
74aa1d482a Add missing sync 2020-07-15 10:48:39 -06:00
b37b45c817 use fmtlib to remove BIGINT_FORMAT 2020-07-15 11:55:08 -04:00
aa82608142 print warning for unknown/unsupported CUDA versions 2020-07-15 11:28:33 -04:00
a082895b90 update CMake script for GPU package to include handling of Arch 8.0 and CUDA 11 2020-07-15 11:08:06 -04:00
2580ca78f4 guard better against 32-bit overflows for reax/c lists 2020-07-15 00:13:33 -04:00
e3818f031b don't use error class if pointer variable has not been initialized 2020-07-15 00:12:31 -04:00
2fb0f95324 check against BODY package for body styles 2020-07-14 18:41:52 -04:00
ad818717cc complete tester module for atom style body/nparticle 2020-07-14 18:36:50 -04:00
a7a63ee3fb Merge branch 'write-bonus-data' of github.com:lammps/lammps into write-bonus-data 2020-07-14 16:48:01 -04:00
d37bb0fd6f update intel compiler requirements and document alignment issues 2020-07-14 16:24:17 -04:00
449d7be8f8 updated rules for rounded body particles 2020-07-14 13:25:17 -06:00
1ddd8aa97c Merge branch 'master' into collected-small-fixes 2020-07-14 14:00:24 -04:00
d3392dba45 update tester some more 2020-07-14 13:59:55 -04:00
fd2b5b1cd8 switch completed section from EXPECT to ASSERT 2020-07-14 12:45:54 -04:00
bc3860b462 must advance buffer while package bonus items, but only when a buffer is given 2020-07-14 12:45:22 -04:00
b33974cd19 add code to check for duplicate atom IDs in Bodies section 2020-07-14 12:44:50 -04:00
be440c7125 revert incorrect zeroing of non-existing inertia array elements 2020-07-14 12:44:24 -04:00
dcbdc7452b Don't need virtual keyword 2020-07-14 09:57:04 -06:00
d6e6b840e9 update body/nparticle tester 2020-07-14 11:06:06 -04:00
548629958e zero all six moments of inertia if small. 2020-07-14 11:05:44 -04:00
001dcb6bb1 Fix issue with Kokkos ReaxFF and pair hybrid 2020-07-14 09:02:57 -06:00
9068d17afc Merge pull request #2229 from ellio167/pair_kim_before_box
Update pair_kim.cpp so settings() may come before box is defined
2020-07-14 10:24:05 -04:00
113825f8fc silence compiler warning 2020-07-14 08:12:51 -04:00
20824203ab Merge branch 'write-bonus-data' of github.com:lammps/lammps into write-bonus-data 2020-07-14 08:11:29 -04:00
18928c6602 start writing tester for body/nparticle 2020-07-14 08:11:18 -04:00
4b9c2ab1f1 start writing tester for body/nparticle 2020-07-14 07:21:25 -04:00
a88237df99 source code for fix widom 2020-07-14 13:17:20 +02:00
ea1d447703 fix bug in tester for atom style tri 2020-07-13 21:49:18 -04:00
5a73b1de98 fix typo, reformat paragraph 2020-07-13 21:48:15 -04:00
e5d532c2c1 simplify and make more readable using utils:: functions 2020-07-13 18:59:21 -04:00
40e3fcd750 tweak output format 2020-07-13 18:58:43 -04:00
46675361a6 remove unused class members 2020-07-13 18:58:35 -04:00
315c829bd2 tweak box output format to include decimal point 2020-07-13 15:59:47 -04:00
c589dd5894 consistent initialization and setting of _nthreads and comm->nthreads 2020-07-13 15:59:29 -04:00
6c28adcf3b make sure _need_tag is initialized 2020-07-13 15:59:05 -04:00
da66516dec use references when creating styles 2020-07-13 09:40:58 -04:00
3847a3000c paranoia 2020-07-12 21:40:30 -04:00
f8ad39e7d1 simplify fix generation for package commands 2020-07-12 21:40:22 -04:00
1c5c2d8f22 Merge branch 'master' into reset-molecules 2020-07-12 20:36:34 -04:00
db289ba0b3 update all force style reference results after refactoring of test codes 2020-07-12 20:36:10 -04:00
24b5cd7dec rename test programs to be consistent with the other programs in the unittest tree 2020-07-12 19:22:14 -04:00
9cbb2e9df5 refactor force-style tester programs to get rid of stringstream and local buffers
this uses now fmtlib and also outputs forces sorted by atom id
similarly, for all tests it is make certain that the local tag variable is updated
2020-07-12 19:17:51 -04:00
38011f6ac4 add test for pair style kim 2020-07-12 17:21:35 -04:00
b65f6b3b61 Merge branch 'pair_kim_before_box' of github.com:ellio167/lammps into collected-small-fixes 2020-07-12 16:36:00 -04:00
ed1bdb8ed4 update output formatting 2020-07-12 16:33:47 -04:00
00413ae956 add test for atom style tri 2020-07-12 16:32:59 -04:00
8f95b4a5d9 add tests for deleted bonds and angles to bond/angle tests suites 2020-07-12 15:48:21 -04:00
60f078a8f9 fix buffer size and format bugs in atom_vec_tri.cpp 2020-07-12 15:46:56 -04:00
66274e7863 Update pair_kim.cpp so settings() may come before box is defined
Addresses #2215
2020-07-12 14:23:47 -05:00
116c2a56ca Removed old files 2020-07-11 21:00:41 -06:00
031cae8e49 Fixed spelling errors 2020-07-11 20:31:38 -06:00
38d9c0bedf tweak output formatting 2020-07-11 21:44:31 -04:00
9e1d560fda refactor using fmtlib and utils:: 2020-07-11 21:44:13 -04:00
095c6a9850 Finished cleaning up and testing. MLIAPData class is now fully integrated with ComputeMLIAP and PairMLIAP 2020-07-11 19:01:16 -06:00
5f14d5c87f must not override flag for negative angles and bonds 2020-07-11 18:36:19 -04:00
25e54bd68e Merge branch 'master' into write-bonus-data 2020-07-11 18:31:44 -04:00
284b1618f9 Merge pull request #2227 from akohlmey/collected-small-fixes
Collected small updates and bugfixes
2020-07-11 18:30:27 -04:00
83291fdd67 may not use pair_style kim before box is defined
NOTE: this will not happen when the kim_init and kim_interactions commands are used.
2020-07-11 18:07:25 -04:00
f969d9ab72 add space for terminating NULL byte in MPIIO dump styles.
closes #2225
2020-07-11 13:19:08 -04:00
f307d7f5f9 count total number of styles including aliases, suffixes, and undocumented 2020-07-11 13:18:44 -04:00
cd0b034cab adjust regex for removed styles to correctly handle command styles 2020-07-11 13:18:33 -04:00
b3060bc48e add suppressions for googletest 2020-07-11 13:18:14 -04:00
e42342ff51 zero out additionally allocated struct Param storage 2020-07-11 13:18:04 -04:00
8359a4384a more OpenMPI suppressions 2020-07-11 13:17:51 -04:00
c6dc8b5414 fix initialition issue 2020-07-11 13:17:39 -04:00
9fe0b1cb5e ewald_order needs to be saved in restart 2020-07-11 13:17:24 -04:00
4778887243 fix memory leak in pair style sw/intel for good 2020-07-11 13:17:10 -04:00
510d5277c1 fix typo 2020-07-11 13:16:58 -04:00
b49f0a6a09 avoid memory leak in pair style sw/intel 2020-07-11 13:16:36 -04:00
4b2c1f5edd some more OpenMPI suppressions 2020-07-11 13:16:25 -04:00
d4da99562f use fmtlib for writing data file coefficients. use mixed coefficients for PairIJCoeffs 2020-07-11 13:16:01 -04:00
26e21852ff several fixes to address issues detected by valgrind
- make sure g_ewald_6 is not accessed uninitialized
- fix memory leak
- do not override g_ewald_6 if it is explicitly set
2020-07-11 13:15:37 -04:00
8eb7791342 avoid googletest stalling on exit tests when using OpenMPI 2020-07-11 13:15:16 -04:00
207232c1a3 avoid illegal free() 2020-07-11 13:12:50 -04:00
ed452c3624 synchronize exception based and non-exception based code paths 2020-07-11 13:12:34 -04:00
e6a8f3c8c0 use parenthesis to correct precedence 2020-07-11 13:10:37 -04:00
17d59a4342 small tweak 2020-07-11 13:06:58 -04:00
6f775f6592 fix typo 2020-07-11 13:06:43 -04:00
d0c544224f avoid exception when having a command fail due to an empty string 2020-07-11 13:06:31 -04:00
40e59b27a7 add prototypes for exception handling functions 2020-07-11 13:06:05 -04:00
f8321d77d8 add missing symlink 2020-07-11 13:05:41 -04:00
d32000239b refactor tester 2020-07-11 13:05:03 -04:00
e2e4305fe9 Merge pull request #2226 from akohlmey/ubuntu-stable
Update documentation to recommend lammps-stable packages for Ubuntu
2020-07-11 13:02:00 -04:00
8396ade280 update information about the ubuntu binaries to recommend the new stable packages 2020-07-10 22:50:47 -04:00
6c6c47ce9c Converted pair mliap to use mliap class 2020-07-10 17:19:02 -06:00
6c08503dff Created MLIAP class for data, passes all tests 2020-07-10 16:25:28 -06:00
64dad33c12 whitespace fixes 2020-07-10 18:22:11 -04:00
a5a1706f82 Merge branch 'write-bonus-data' of github.com:lammps/lammps into write-bonus-data 2020-07-10 16:17:22 -06:00
92d225a68c write_data support for body style rounded/polyhedron 2020-07-10 16:17:07 -06:00
07e05300c9 Created MLIAP class for data 2020-07-10 16:08:19 -06:00
f360cca1a3 Created MLIAP class for data 2020-07-10 16:04:04 -06:00
a28db101cc add checks for atom style bond with newton off. add basic test for atom style angle 2020-07-10 17:44:05 -04:00
0825e71a5a whitespace fixes 2020-07-10 13:21:22 -04:00
9b3ffa5487 enables body style rounded/polygon to write to data files 2020-07-10 10:42:36 -06:00
a402de41b7 finalize atom style tester changes 2020-07-10 10:47:30 -04:00
772d75a63a update tester for renaming reset_ids to reset_atom_ids 2020-07-10 10:29:55 -04:00
df63d4147d Merge branch 'reset-molecules' into write-bonus-data 2020-07-10 10:25:08 -04:00
8102045fdb add initial implementation for atom style bond tester 2020-07-10 10:24:54 -04:00
9be30dcf61 add space for terminating NULL byte in MPIIO dump styles.
closes #2225
2020-07-10 09:22:44 -04:00
0c89b517a5 avoid segfaults if fewer than 10 atoms or bounding box length is zero 2020-07-10 08:25:37 -04:00
ab683a03ad start tester for atom style hybrid full ellipsoid 2020-07-10 00:12:57 -04:00
f0af7c686a more death tests to reach 100% coverage 2020-07-09 21:39:55 -04:00
e38f970676 Extended to handle gradgradflag 0/1 options 2020-07-09 19:23:57 -06:00
0d570f5577 Removed a lot of LAMMPS dependence from Descriptor and Model classes 2020-07-09 19:22:41 -06:00
d15264a668 update and expand tester code for reset_mol_ids changes 2020-07-09 21:18:58 -04:00
bade009b6c remove debug code 2020-07-09 20:58:39 -04:00
49780480a8 count total number of styles including aliases, suffixes, and undocumented 2020-07-09 20:52:57 -04:00
9ec77585ea make compress yes the default 2020-07-09 20:46:45 -04:00
9c97ca11fe adjust regex for removed styles to correctly handle command styles 2020-07-09 20:46:31 -04:00
e0e24799c2 simplify formulations a little bit. update example command lines 2020-07-09 19:52:49 -04:00
4a1acffde9 whitespace fixes 2020-07-09 19:36:58 -04:00
9e83279887 minor adjustments to new reset_mol_ids command 2020-07-09 15:40:24 -06:00
f71513f483 update for atom style ellipsoid tester 2020-07-09 11:56:07 -04:00
cc9df9a76d add test module for atom style line 2020-07-09 11:55:52 -04:00
71f13cee9d add missing aspherical particle info to restart files 2020-07-09 11:21:59 -04:00
d7efa8d523 don't do zero byte allocations 2020-07-09 09:26:25 -04:00
0679c01c4b add suppressions for googletest 2020-07-09 09:26:07 -04:00
2b1ca89b57 zero out additionally allocated struct Param storage 2020-07-09 00:31:08 -04:00
ea5015c630 more OpenMPI suppressions 2020-07-09 00:05:18 -04:00
d0cfb0ccae fix initialition issue 2020-07-08 23:49:18 -04:00
e18a11d6bd ewald_order needs to be saved in restart 2020-07-08 23:48:58 -04:00
bebd10712a fix memory leak in pair style sw/intel for good 2020-07-08 22:04:55 -04:00
909bc5a801 fix typo 2020-07-08 21:35:54 -04:00
7ee73e44ad will need ellipsoid field in restart file 2020-07-08 21:18:09 -04:00
4da8ec39de complete testing ellipsoids short of having restart support. 2020-07-08 21:13:28 -04:00
ecc5d3e353 must copy/multiply the numbers of ellipsoids,lines,tris,bodies 2020-07-08 21:12:29 -04:00
7071cff481 avoid memory leak in pair style sw/intel 2020-07-08 20:11:17 -04:00
240c33b503 some more OpenMPI suppressions 2020-07-08 20:10:52 -04:00
f59e391713 avoid leaking empty allocations 2020-07-08 20:10:40 -04:00
2016333cf0 use fmtlib for writing data file coefficients. use mixed coefficients for PairIJCoeffs 2020-07-08 20:09:23 -04:00
7591343702 several fixes to address issues detected by valgrind
- make sure g_ewald_6 is not accessed uninitialized
- fix memory leak
- do not override g_ewald_6 if it is explicitly set
2020-07-08 20:07:54 -04:00
5918d9e6c7 avoid googletest stalling on exit tests when using OpenMPI 2020-07-08 16:31:36 -04:00
bda245339e avoid illegal free() 2020-07-08 16:29:40 -04:00
6cd2c8d117 synchronize exception based and non-exception based code paths 2020-07-08 10:18:01 -04:00
d6665aba99 refactor tester 2020-07-08 10:08:00 -04:00
a98d21f002 Added gradgradflag option to compute mliap 2020-07-07 20:43:40 -06:00
a7369e76cd Added gradgradflag option to compute mliap 2020-07-07 20:42:03 -06:00
06a199f7d0 Added gradgradflag option to compute mliap 2020-07-07 20:28:18 -06:00
a43428fd1b use auto to simplify 2020-07-07 22:19:07 -04:00
cd739c2782 silence compiler warnings 2020-07-07 22:18:52 -04:00
1898fae3f6 simplify 2020-07-07 22:18:37 -04:00
5cef86d7b7 add missing MPI call 2020-07-07 21:37:33 -04:00
8fbc8a7148 make more use of fmtlib and replace fprintf with fputs where possible 2020-07-07 21:34:34 -04:00
c0f1472385 use parenthesis to correct precedence 2020-07-07 21:21:32 -04:00
6e3e13f2a8 remove unused variable 2020-07-07 20:53:50 -04:00
9a268da7de remove unneeded typecasts and use fmt::print() instead of fprintf() 2020-07-07 20:53:42 -04:00
4c67822e6b remove unneeded typecasts 2020-07-07 20:27:01 -04:00
e459ee8a58 whitespace fixes 2020-07-07 20:25:59 -04:00
61e3b41908 Merge pull request #2220 from lammps/doc-radians
clarify units for energy terms with angles
2020-07-07 20:13:56 -04:00
6239a579e8 clarify units for energy terms with angles 2020-07-07 15:19:17 -06:00
416467a154 update reset_mol_ids tests for the latest changes 2020-07-07 17:14:54 -04:00
fd95fc98c5 add support for auto offset and singlezero option 2020-07-07 17:14:29 -04:00
d3853af4be add singlezero keyword to compute fragment/atom to give all single non-bonded atoms an ID of 0 2020-07-07 17:13:43 -04:00
12f62583f9 whitespace cleanup 2020-07-07 13:56:50 -04:00
5c59f6af87 Merge branch 'reset-molecules' of github.com:lammps/lammps into reset-molecules 2020-07-07 13:48:25 -04:00
88fc9360c0 resolve conflicts 2020-07-07 11:46:05 -06:00
37d56a6bf6 small cleanup in "deprecated" styles 2020-07-07 13:40:15 -04:00
955bff7c4e add body support, change bonus buf to 1d so can be variable length 2020-07-07 11:34:30 -06:00
94e9b3bc82 rename reset_ids command to reset_atom_ids 2020-07-07 13:32:00 -04:00
7e140399db add (initial) testing for ellipsoid atom style 2020-07-07 12:36:17 -04:00
f16c6f40a7 shape is converted from diameter to radius, so we have to scale back on writing 2020-07-07 12:24:04 -04:00
94d98b6aea no typecasts needed when outputting ubuf integers with fmtlib auto format 2020-07-07 11:40:01 -04:00
bdac1ae3e7 add missing return statements 2020-07-07 11:14:52 -04:00
0944eda391 final details for offset keyword added to reset_mol_ids 2020-07-07 09:07:48 -06:00
7870a89133 added note to doc page 2020-07-07 08:48:24 -06:00
d6ebf3cd46 Merge branch 'reset-molecules' of github.com:lammps/lammps into reset-molecules 2020-07-07 08:38:03 -06:00
fcc6ed3a58 add offset option to reset_mol_ids command 2020-07-07 08:37:48 -06:00
169206790a small tweak 2020-07-07 10:29:43 -04:00
de7f02e48b fix typo 2020-07-07 09:54:16 -04:00
bb9ab025c1 avoid exception when having a command fail due to an empty string 2020-07-07 09:51:39 -04:00
0b1443ed23 add prototypes for exception handling functions 2020-07-07 09:51:02 -04:00
53d20c9ebc add missing symlink 2020-07-06 21:44:39 -04:00
960addcc2c simplify code string/fmtlib code some more 2020-07-06 21:26:49 -04:00
2351f99bef add (incomplete) tester for reset_mol_ids (with a little use of reset_ids, too) 2020-07-06 21:26:11 -04:00
89f0116eab fix communication data conversion bug corrupting bond list 2020-07-06 21:12:55 -04:00
7918919d30 enable write_data for atom styles with bonus data 2020-07-06 17:30:45 -06:00
91a8df1903 Modified files according to request 2020-07-06 20:20:28 +01:00
d37e943e8d refactor tester 2020-07-06 14:12:50 -04:00
836570ec26 update docs 2020-07-06 14:12:37 -04:00
58cd6a160c Merge branch 'master' into reset-molecules 2020-07-06 14:07:48 -04:00
6bf329098e Merge pull request #2216 from ndtrung81/tersoff-gpu
Cleanup and bugfixes for some 3-body pair styles in the GPU package
2020-07-06 13:35:12 -04:00
a1011b606e new reset_mol_ids command 2020-07-06 10:50:34 -06:00
9e96b71703 Merge pull request #2214 from akohlmey/kspace-tests
Add unit tests for some kspace styles and more pair styles
2020-07-06 12:48:09 -04:00
2977a8aa15 Merge pull request #2211 from athomps/compute-mliap
Add compute style mliap to MLIAP package
2020-07-06 12:47:41 -04:00
d1b5b0a168 Merge pull request #2210 from ohenrich/user-cgdna
Update of example input and log files
2020-07-06 12:47:09 -04:00
d768069cfe Merge pull request #2205 from akohlmey/collected-small-changes
Collected small changes for the next patch release
2020-07-06 12:46:16 -04:00
5d0800beef Merge pull request #2204 from rbberger/doc-changes
Documentation Changes: split pair_lj.rst
2020-07-06 12:19:06 -04:00
47d77530e2 updated as requested by @sjplimp 2020-07-06 11:45:16 -04:00
022252dde0 add a paragraph to the output howto explaining how ambiguity is resolved 2020-07-06 11:13:23 -04:00
9ec72d1406 add tests for unknown commands, quit, and reset_timestep 2020-07-06 10:26:04 -04:00
f1abfe2411 avoid segfault when calling the log command without arguments 2020-07-06 10:25:37 -04:00
461633e6f6 add unit tests for the suffix, thermo, and timestep commands 2020-07-06 00:11:13 -04:00
83d58ba57d we may not use "suffix on" before a suffix is defined. switching back to a non-hybrid suffix must set suffix2 to NULL 2020-07-06 00:10:43 -04:00
1df59c4b95 change lammps2pdb.pl to only ignore the first line of a data file. whitespace fixes 2020-07-05 23:36:00 -04:00
fe12ea2734 simplify compute creation 2020-07-05 22:46:48 -04:00
134a2e8dd6 use fmtlib and utils::logmesg() in fix msst 2020-07-05 22:37:59 -04:00
759797733d Generalized the variable and function names 2020-07-05 18:58:32 -06:00
a0157f8063 use fmtlib consistently when writing data files 2020-07-05 17:16:58 -04:00
443cc4445e have compute property/atom output shape parameters as diameters not radii consistent with the manual 2020-07-05 16:44:44 -04:00
e2a07acb71 add test for units command 2020-07-05 13:20:23 -04:00
ca24cd5006 simplify tests for failures with a varyadic macro 2020-07-05 12:48:52 -04:00
ebfe7f68af More cleanup 2020-07-05 00:20:28 -05:00
c488e6208d Similar bug fixes to vashishta/gpu 2020-07-04 23:52:32 -05:00
69052fa337 add test for lj/mdf 2020-07-05 00:28:02 -04:00
4dee43cc2d adjust accepted relative error for compiler optimization, make pppm/disp inputs 3x faster 2020-07-05 00:10:47 -04:00
84ded03e24 add tests for some core-shell package pair styles 2020-07-04 23:43:15 -04:00
8f6e454522 single functions for CORESHELL styles are not implemented 2020-07-04 23:40:28 -04:00
585466929f add tests for pppm/disp/tip4p and lj/long/tip4p/long 2020-07-04 23:21:57 -04:00
a314b40aa0 skip testing broken pppm/disp/intel style 2020-07-04 23:07:50 -04:00
6e580bbdb5 add tests for long-range dispersion styles 2020-07-04 22:55:59 -04:00
3f068f7671 partial reformat, fix bug in single function 2020-07-04 22:55:38 -04:00
adacc7f2a4 Similar bug fixes for tersoff/mod/gpu and tersoff/zbl/gpu; some cleanup for sw/gpu 2020-07-04 19:08:55 -05:00
11099bb3f7 silence compiler warnings 2020-07-04 19:23:06 -04:00
2eec6c7f65 exclude MSM tests when compiling with single precision 2020-07-04 18:26:00 -04:00
0461599d0a reduce base precision as required when running tests with pppm and FFT_SINGLE 2020-07-04 18:13:55 -04:00
37b2da637d fix KOKKOS bug for FFT_KISSFFT and FFT_SINGLE 2020-07-04 17:39:07 -04:00
df40ffddf3 add some more tests for pair styles 2020-07-04 17:24:28 -04:00
ffe8e1c0e9 add tests for kspace styles using the pair style tester tool 2020-07-04 17:22:27 -04:00
fcec94579c skip tests for single and extract when testing kspace styles (and pair styles are disabled) 2020-07-04 17:21:51 -04:00
75977367a1 fix memory leak 2020-07-04 17:21:19 -04:00
34cfe07f97 fix energy computation bug in pair style nm/cut/omp 2020-07-04 17:20:47 -04:00
37b2778d4b Remove debug output 2020-07-04 13:34:35 -04:00
cfaa3be898 reduce screen output precision 2020-07-04 08:26:00 -04:00
6f8b8c2f71 more application of fmtlib and utils::logmesg() 2020-07-04 08:25:24 -04:00
9de3077b19 change misleading source code formatting 2020-07-04 05:12:35 -04:00
de815ed6ba must not pass NULL pointer now that we use const std::string references 2020-07-04 04:48:16 -04:00
fac3c70d02 update style 2020-07-04 04:47:38 -04:00
9f733fb305 Removed unused variables 2020-07-04 00:23:34 -05:00
6de020805f Fixed a bug with tersoff/gpu with building the short neighbor list 2020-07-03 23:55:26 -05:00
c37b5e50b1 flag error when trying to compute an average of an empty vector 2020-07-03 22:35:53 -04:00
53415592d2 compute gyration/shape/chunk did not update the number of local array rows 2020-07-03 22:20:28 -04:00
14321d1fa0 add option to compute chunk/atom to access the number of chunks as a global scalar 2020-07-03 22:19:44 -04:00
c3f8644613 Merge branch 'master' into compute-mliap 2020-07-03 14:26:38 -06:00
7fe2df423f Added a package README 2020-07-03 14:22:43 -06:00
8dae5d5fc7 Added special_bonds command to input files 2020-07-03 21:03:24 +01:00
feec9673d8 Fixed html and spelling warnings 2020-07-03 14:03:00 -06:00
9d0aee7426 Added doc page for compute mliap and updated examples 2020-07-03 13:43:51 -06:00
def0cf8a7b Corrected typo 2020-07-03 17:54:31 +01:00
59aa8a5e12 Modified files according to PR 2020-07-03 17:48:49 +01:00
fadfb1b482 Allow changing CMAKE_CXX_EXTENSIONS option to resolve #2079 2020-07-03 12:41:49 -04:00
543371374a typo fix 2020-07-03 11:42:31 -04:00
ab785e8a89 Add Coulomb sections in TIP4P page 2020-07-03 11:37:11 -04:00
52b92e743e Add missing reference 2020-07-03 11:33:51 -04:00
1815ab610e remove hard dependency and configure spelling extension only if it can load enchant properly 2020-07-03 11:26:43 -04:00
735f9ad592 address logic error with check for KOKKOS version of hybrid styles 2020-07-03 09:01:59 -04:00
f9dc2b7ca8 Added fix_bond_create_angle files 2020-07-03 13:42:16 +01:00
089c4ed5d9 Added fix/bond/create/angle class and docu 2020-07-03 09:21:00 +01:00
17e419e251 Merge branch 'master' into user-cgdna 2020-07-03 08:19:48 +01:00
2c64809cd8 enlarge buffer for guessed file name 2020-07-02 23:35:25 -04:00
7e16a17f31 use consistently the name of the (unaccelerated) pair style in the potential file reader error messages 2020-07-02 23:23:25 -04:00
0b298c7193 add tests for supported and unsupported unit conversion when opening potentials 2020-07-02 23:07:01 -04:00
d331e75a14 tweak test name 2020-07-02 22:39:08 -04:00
28bbb6afbc Doc page for compute mliap 2020-07-02 17:09:10 -06:00
07afe1c66d Added basic element map 2020-07-02 16:14:15 -06:00
40088f558c Revert "Added fix bond/create/angle code and docu"
This reverts commit 16eab647d4.
2020-07-02 23:11:50 +01:00
db43aadf09 Got compute working for quadratic model 2020-07-02 15:05:14 -06:00
cae9788d42 Changed the compute examples to expose effect of different list orderings 2020-07-02 14:43:48 -06:00
307f54611f use doubles to avoid multiple integer overflows in slope() function 2020-07-02 16:43:00 -04:00
f598ae7ebf update/add error message for using hybrid pair styles with KOKKOS 2020-07-02 16:40:47 -04:00
bf8043fdb8 Correctly reproduced examples/in.snap.compute, not yet for quadratic case 2020-07-02 14:34:11 -06:00
bc36511767 Correctly reproduced examples/in.snap.compute, not yet for quadratic case 2020-07-02 14:32:47 -06:00
3a014a5430 add unit tests for some file operations 2020-07-02 14:50:56 -04:00
4660c043d8 fix typo 2020-07-02 13:31:02 -04:00
a524eaf424 add a few more tests 2020-07-02 10:27:35 -04:00
8929ba42cd enable exceptions by default when testing is enabled, so we can test for failures 2020-07-02 09:50:15 -04:00
c3fe0e77c2 expose guesspath function and add unit test 2020-07-02 09:13:57 -04:00
2a4e51fa38 Fixed a few problems, still not quite matching compute snap 2020-07-01 17:11:02 -06:00
84ee52a6e5 add false positive 2020-07-01 19:09:11 -04:00
7350dd61d5 Tweaked input to match snap/in.snap.compute 2020-07-01 17:06:55 -06:00
70d3d56944 add minimal doc page for compute smd/ulsph/effm 2020-07-01 18:44:24 -04:00
ed56878271 remove specific dump styles from overview page 2020-07-01 18:43:53 -04:00
791bb9f6d5 Update mentions of soft variants 2020-07-01 17:14:30 -04:00
c57564252c Added descriptor file for compute mliap 2020-07-01 15:07:37 -06:00
aee3d9f2cd Generated working example, not quite correct 2020-07-01 15:03:45 -06:00
0a18c52414 Split pair_lj.rst into three files 2020-07-01 14:27:06 -04:00
c7a31aea97 force environment variable 2020-07-01 09:39:47 -04:00
8d12581f16 silence compiler warnings 2020-07-01 09:39:37 -04:00
558d2eb84f Merge pull request #2203 from akohlmey/collected-small-changes
Various small fixes and cleanups. Bugfixes for atom style hybrid
2020-07-01 06:24:28 -04:00
0a9dd81288 silence compiler warnings 2020-07-01 05:53:46 -04:00
0363fe9b17 revive (some) dead code and add missing force computation/addition 2020-07-01 05:42:53 -04:00
9c7005a91c It compiles, but not yet working 2020-06-30 19:14:01 -06:00
971ca4fe44 add missing lines for atom_vec comm bugfix 2020-06-30 19:20:34 -04:00
503a1f2246 still more dead code 2020-06-30 18:44:00 -04:00
8fd46095ae remove more dead code 2020-06-30 18:41:09 -04:00
9279431593 bugfix for hybrid atom styles from @sjplimp fixing bug reported by @ohenrich 2020-06-30 18:34:46 -04:00
4492d61625 dead code removal 2020-06-30 18:14:47 -04:00
778d431d4c reduce compiler warnings about unused parameters 2020-06-30 18:08:25 -04:00
10dcb08760 remove unused variable 2020-06-30 18:08:06 -04:00
6af407d01e remove trailing whitespace 2020-06-30 17:48:18 -04:00
1035dcd4cc fix possible bug in compute sna 2020-06-30 16:33:57 -04:00
19ee89fa10 use a hard error instead of changing settings without updating the underlying data structures controlled by it 2020-06-30 16:33:32 -04:00
ad38b5d306 whitespace fixes 2020-06-30 16:32:41 -04:00
edfb4076ff remove dead code and unused variables 2020-06-30 16:32:30 -04:00
eafcc06670 secs -> seconds 2020-06-30 13:56:35 -04:00
d4c7455197 reduce output precision 2020-06-30 13:49:50 -04:00
b34b58c713 must not delete atom substyles twice 2020-06-30 13:27:27 -04:00
cccd04f46b Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes 2020-06-30 12:36:06 -04:00
7488f22981 reduce excess precision in some output data 2020-06-30 10:11:52 -04:00
0f094c2501 Add PyYAML to Fedora 32 container 2020-06-30 10:05:14 -04:00
af2e1bf7c6 Update Ubuntu 18.04 GPU container 2020-06-30 09:38:28 -04:00
2a2219d049 reduce excess precision in some output data 2020-06-30 00:37:32 -04:00
911b95fdc9 std::string.find_last_of() wants a string not a character as argument 2020-06-29 23:26:01 -04:00
f958cacbb4 temporarily add atom style full to list of dependencies for Pair::single() test 2020-06-29 19:36:06 -04:00
ce4ca0e640 tweak epsilon to make test pass with optimization 2020-06-29 19:35:02 -04:00
cfa12bc1cf Merge remote-tracking branch 'origin' into compute-mliap 2020-06-25 16:33:51 -06:00
73ed317254 Added compute_mliap.cpp/h to MLIAP package 2020-06-22 11:38:02 -06:00
f0a3256151 Merge branch 'master' into user-cgdna 2020-06-15 08:41:42 +01:00
65b4d87f99 Merge branch 'master' into user-cgdna 2020-06-02 19:04:33 +01:00
711f875001 Added fix bond/create/angle code and docu 2020-06-01 15:45:40 +01:00
16eab647d4 Added fix bond/create/angle code and docu 2020-06-01 15:42:45 +01:00
519 changed files with 50247 additions and 16266 deletions

View File

@ -69,18 +69,10 @@ if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
endif()
endif()
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
set(CMAKE_TUNE_DEFAULT "-march=native")
endif()
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
set(CMAKE_TUNE_DEFAULT "-march=native")
endif()
# we require C++11 without extensions
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_EXTENSIONS OFF CACHE BOOL "Use compiler extensions")
########################################################################
# User input options #
@ -193,7 +185,7 @@ if(NOT ${LAMMPS_MEMALIGN} STREQUAL "0")
target_compile_definitions(lammps PRIVATE -DLAMMPS_MEMALIGN=${LAMMPS_MEMALIGN})
endif()
option(LAMMPS_EXCEPTIONS "enable the use of C++ exceptions for error messages (useful for library interface)" OFF)
option(LAMMPS_EXCEPTIONS "enable the use of C++ exceptions for error messages (useful for library interface)" ${ENABLE_TESTING})
if(LAMMPS_EXCEPTIONS)
target_compile_definitions(lammps PUBLIC -DLAMMPS_EXCEPTIONS)
endif()
@ -366,7 +358,7 @@ foreach(PKG_WITH_INCL KSPACE PYTHON VORONOI USER-COLVARS USER-MOLFILE USER-NETCD
endif()
endforeach()
set(CMAKE_TUNE_FLAGS "${CMAKE_TUNE_DEFAULT}" CACHE STRING "Compiler specific optimization or instrumentation")
set(CMAKE_TUNE_FLAGS "${CMAKE_TUNE_DEFAULT}" CACHE STRING "Compiler and machine specific optimization flags (compilation only)")
separate_arguments(CMAKE_TUNE_FLAGS)
foreach(_FLAG ${CMAKE_TUNE_FLAGS})
target_compile_options(lammps PRIVATE ${_FLAG})

View File

@ -52,26 +52,26 @@ add_library(GTest::GTest UNKNOWN IMPORTED)
set_target_properties(GTest::GTest PROPERTIES
IMPORTED_LOCATION ${GTEST_LIBRARY_PATH}
INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIR}
IMPORTED_LINK_INTERFACE_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
INTERFACE_LINK_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
add_dependencies(GTest::GTest googletest)
add_library(GTest::GMock UNKNOWN IMPORTED)
set_target_properties(GTest::GMock PROPERTIES
IMPORTED_LOCATION ${GMOCK_LIBRARY_PATH}
INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIR}
IMPORTED_LINK_INTERFACE_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
INTERFACE_LINK_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
add_dependencies(GTest::GMock googletest)
add_library(GTest::GTestMain UNKNOWN IMPORTED)
set_target_properties(GTest::GTestMain PROPERTIES
IMPORTED_LOCATION ${GTEST_MAIN_LIBRARY_PATH}
INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIR}
IMPORTED_LINK_INTERFACE_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
INTERFACE_LINK_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
add_dependencies(GTest::GTestMain googletest)
add_library(GTest::GMockMain UNKNOWN IMPORTED)
set_target_properties(GTest::GMockMain PROPERTIES
IMPORTED_LOCATION ${GMOCK_MAIN_LIBRARY_PATH}
INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIR}
IMPORTED_LINK_INTERFACE_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
INTERFACE_LINK_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
add_dependencies(GTest::GMockMain googletest)

View File

@ -64,30 +64,41 @@ if(GPU_API STREQUAL "CUDA")
# 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} ")
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] ")
if((CUDA_VERSION VERSION_GREATER_EQUAL "3.2") 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] ")
# Kepler (GPU Arch 3.0) is supported by CUDA 5 to CUDA 10.2
if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "11.0"))
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_30,code=[sm_30,compute_30] ")
endif()
# Kepler (GPU Arch 3.5) is supported by CUDA 5 to CUDA 11
if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "12.0"))
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] ")
if(CUDA_VERSION VERSION_GREATER_EQUAL "6.0")
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] ")
if(CUDA_VERSION VERSION_GREATER_EQUAL "8.0")
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] ")
if(CUDA_VERSION VERSION_GREATER_EQUAL "9.0")
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] ")
if(CUDA_VERSION VERSION_GREATER_EQUAL "10.0")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_75,code=[sm_75,compute_75]")
endif()
# Ampere (GPU Arch 8.0) is supported by CUDA 11 and later
if(CUDA_VERSION VERSION_GREATER_EQUAL "11.0")
string(APPEND GPU_CUDA_GENCODE " -gencode arch=compute_80,code=[sm_80,compute_80]")
endif()
if(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
message(WARNING "Unsupported CUDA version. Use at your own risk.")
endif()
cuda_compile_fatbin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS ${CUDA_REQUEST_PIC}
@ -226,30 +237,41 @@ elseif(GPU_API STREQUAL "HIP")
# 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(HIP_CUDA_GENCODE "-arch=${HIP_ARCH} ")
set(HIP_CUDA_GENCODE "-arch=${HIP_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 HIP_CUDA_GENCODE "-gencode arch=compute_20,code=[sm_20,compute_20] ")
if((CUDA_VERSION VERSION_GREATER_EQUAL "3.2") AND (CUDA_VERSION VERSION_LESS "9.0"))
string(APPEND HIP_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 HIP_CUDA_GENCODE "-gencode arch=compute_30,code=[sm_30,compute_30] -gencode arch=compute_35,code=[sm_35,compute_35] ")
# Kepler (GPU Arch 3.0) is supported by CUDA 5 to CUDA 10.2
if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "11.0"))
string(APPEND HIP_CUDA_GENCODE " -gencode arch=compute_30,code=[sm_30,compute_30]")
endif()
# Kepler (GPU Arch 3.5) is supported by CUDA 5 to CUDA 11.0
if((CUDA_VERSION VERSION_GREATER_EQUAL "5.0") AND (CUDA_VERSION VERSION_LESS "12.0"))
string(APPEND HIP_CUDA_GENCODE " -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 HIP_CUDA_GENCODE "-gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52] ")
if(CUDA_VERSION VERSION_GREATER_EQUAL "6.0")
string(APPEND HIP_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 HIP_CUDA_GENCODE "-gencode arch=compute_60,code=[sm_60,compute_60] -gencode arch=compute_61,code=[sm_61,compute_61] ")
if(CUDA_VERSION VERSION_GREATER_EQUAL "8.0")
string(APPEND HIP_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 HIP_CUDA_GENCODE "-gencode arch=compute_70,code=[sm_70,compute_70] ")
if(CUDA_VERSION VERSION_GREATER_EQUAL "9.0")
string(APPEND HIP_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 HIP_CUDA_GENCODE "-gencode arch=compute_75,code=[sm_75,compute_75] ")
if(CUDA_VERSION VERSION_GREATER_EQUAL "10.0")
string(APPEND HIP_CUDA_GENCODE " -gencode arch=compute_75,code=[sm_75,compute_75]")
endif()
# Ampere (GPU Arch 8.0) is supported by CUDA 11 and later
if(CUDA_VERSION VERSION_GREATER_EQUAL "11.0")
string(APPEND HIP_CUDA_GENCODE " -gencode arch=compute_80,code=[sm_80,compute_80]")
endif()
if(CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
message(WARNING "Unsupported CUDA version. Use at your own risk.")
endif()
endif()

View File

@ -1,4 +1,4 @@
.TH LAMMPS "30 June 2020" "2020-06-30"
.TH LAMMPS "21 July 2020" "2020-07-21"
.SH NAME
.B LAMMPS
\- Molecular Dynamics Simulator.

View File

@ -193,14 +193,17 @@ compiler and any :doc:`accelerator packages <Speed_packages>` you have
included in the build.
You can tell CMake to look for a specific compiler with setting CMake
variable during configuration. For a few common choices, there are also
presets in the ``cmake/presets`` folder. For convenience, there is a
``CMAKE_TUNE_FLAGS`` variable that can be set to apply global compiler
options. More on that below, but you can also specify the corresponding
``CMAKE_*_FLAGS`` variables individually if you want to experiment with
alternate optimization flags. You should specify all 3 compilers, so
that the (few) LAMMPS source files written in C or Fortran are built
with a compiler consistent with the one used for the C++ files:
variables (listed below) during configuration. For a few common
choices, there are also presets in the ``cmake/presets`` folder. For
convenience, there is a ``CMAKE_TUNE_FLAGS`` variable that can be set to
apply global compiler options (applied to compilation only), to be used
for adding compiler or host specific optimization flags in addition to
the "flags" variables listed below. You may also specify the
corresponding ``CMAKE_*_FLAGS`` variables individually, if you want to
experiment with alternate optimization flags. You should specify all 3
compilers, so that the (few) LAMMPS source files written in C or Fortran
are built with a compiler consistent with the one used for the C++
files:
.. code-block:: bash
@ -229,11 +232,7 @@ can be loaded with `-C ../cmake/presets/clang.cmake`. Similarly,
In addition you can set ``CMAKE_TUNE_FLAGS`` to specifically add
compiler flags to tune for optimal performance on given hosts. By
default these are initialized to some compiler specific flags, to
optimize the LAMMPS executable with optimizations and instructions
available on the host where LAMMPS is compiled. For example, for Intel
compilers this would be ``-xHost`` and for GNU compilers this would be
``-march=native``. To turn these flags off, do ``-D CMAKE_TUNE_FLAGS=``.
default this variable is empty.
.. note::

View File

@ -105,10 +105,10 @@ CMake build
# generic (default) or intel (Intel CPU) or fermi, kepler, cypress (NVIDIA)
-D GPU_ARCH=value # primary GPU hardware choice for GPU_API=cuda
# value = sm_XX, see below
# default is sm_30
# default is sm_50
-D HIP_ARCH=value # primary GPU hardware choice for GPU_API=hip
# value depends on selected HIP_PLATFORM
# default is 'gfx906' for HIP_PLATFORM=hcc and 'sm_30' for HIP_PLATFORM=nvcc
# default is 'gfx906' for HIP_PLATFORM=hcc and 'sm_50' for HIP_PLATFORM=nvcc
-D HIP_USE_DEVICE_SORT=value # enables GPU sorting
# value = yes (default) or no
-D CUDPP_OPT=value # optimization setting for GPU_API=cuda
@ -1255,6 +1255,15 @@ also typically :ref:`install the USER-OMP package <user-omp>`, as it can be
used in tandem with the USER-INTEL package to good effect, as explained
on the :doc:`Speed intel <Speed_intel>` doc page.
When using Intel compilers version 16.0 or later is required. You can
also use the GNU or Clang compilers and they will provide performance
improvements over regular styles and USER-OMP styles, but less so than
with the Intel compilers. Please also note, that some compilers have
been found to apply memory alignment constraints incompletely or
incorrectly and thus can cause segmentation faults in otherwise correct
code when using features from the USER-INTEL package.
CMake build
^^^^^^^^^^^

View File

@ -46,13 +46,6 @@ An alphabetic list of all general LAMMPS commands.
* :doc:`dimension <dimension>`
* :doc:`displace_atoms <displace_atoms>`
* :doc:`dump <dump>`
* :doc:`dump atom/adios <dump_adios>`
* :doc:`dump custom/adios <dump_adios>`
* :doc:`dump image <dump_image>`
* :doc:`dump movie <dump_image>`
* :doc:`dump netcdf <dump_netcdf>`
* :doc:`dump netcdf/mpiio <dump_netcdf>`
* :doc:`dump vtk <dump_vtk>`
* :doc:`dump_modify <dump_modify>`
* :doc:`dynamical_matrix <dynamical_matrix>`
* :doc:`echo <echo>`
@ -108,7 +101,8 @@ An alphabetic list of all general LAMMPS commands.
* :doc:`region <region>`
* :doc:`replicate <replicate>`
* :doc:`rerun <rerun>`
* :doc:`reset_ids <reset_ids>`
* :doc:`reset_atom_ids <reset_atom_ids>`
* :doc:`reset_mol_ids <reset_mol_ids>`
* :doc:`reset_timestep <reset_timestep>`
* :doc:`restart <restart>`
* :doc:`run <run>`

View File

@ -80,6 +80,7 @@ KOKKOS, o = USER-OMP, t = OPT.
* :doc:`ke/eff <compute_ke_eff>`
* :doc:`ke/rigid <compute_ke_rigid>`
* :doc:`mesont <compute_mesont>`
* :doc:`mliap <compute_mliap>`
* :doc:`momentum <compute_momentum>`
* :doc:`msd <compute_msd>`
* :doc:`msd/chunk <compute_msd_chunk>`
@ -122,6 +123,7 @@ KOKKOS, o = USER-OMP, t = OPT.
* :doc:`smd/tlsph/strain/rate <compute_smd_tlsph_strain_rate>`
* :doc:`smd/tlsph/stress <compute_smd_tlsph_stress>`
* :doc:`smd/triangle/vertices <compute_smd_triangle_vertices>`
* :doc:`smd/ulsph/effm <compute_smd_ulsph_effm>`
* :doc:`smd/ulsph/num/neighs <compute_smd_ulsph_num_neighs>`
* :doc:`smd/ulsph/strain <compute_smd_ulsph_strain>`
* :doc:`smd/ulsph/strain/rate <compute_smd_ulsph_strain_rate>`

View File

@ -42,6 +42,7 @@ OPT.
* :doc:`bocs <fix_bocs>`
* :doc:`bond/break <fix_bond_break>`
* :doc:`bond/create <fix_bond_create>`
* :doc:`bond/create/angle <fix_bond_create>`
* :doc:`bond/react <fix_bond_react>`
* :doc:`bond/swap <fix_bond_swap>`
* :doc:`box/relax <fix_box_relax>`
@ -243,3 +244,4 @@ OPT.
* :doc:`wall/region <fix_wall_region>`
* :doc:`wall/region/ees <fix_wall_ees>`
* :doc:`wall/srd <fix_wall_srd>`
* :doc:`widom <fix_widom>`

View File

@ -136,22 +136,22 @@ OPT.
* :doc:`lj/class2/soft <pair_fep_soft>`
* :doc:`lj/cubic (go) <pair_lj_cubic>`
* :doc:`lj/cut (gikot) <pair_lj>`
* :doc:`lj/cut/coul/cut (gko) <pair_lj>`
* :doc:`lj/cut/coul/cut (gko) <pair_lj_cut_coul>`
* :doc:`lj/cut/coul/cut/soft (o) <pair_fep_soft>`
* :doc:`lj/cut/coul/debye (gko) <pair_lj>`
* :doc:`lj/cut/coul/dsf (gko) <pair_lj>`
* :doc:`lj/cut/coul/long (gikot) <pair_lj>`
* :doc:`lj/cut/coul/debye (gko) <pair_lj_cut_coul>`
* :doc:`lj/cut/coul/dsf (gko) <pair_lj_cut_coul>`
* :doc:`lj/cut/coul/long (gikot) <pair_lj_cut_coul>`
* :doc:`lj/cut/coul/long/cs <pair_cs>`
* :doc:`lj/cut/coul/long/soft (o) <pair_fep_soft>`
* :doc:`lj/cut/coul/msm (go) <pair_lj>`
* :doc:`lj/cut/coul/wolf (o) <pair_lj>`
* :doc:`lj/cut/coul/msm (go) <pair_lj_cut_coul>`
* :doc:`lj/cut/coul/wolf (o) <pair_lj_cut_coul>`
* :doc:`lj/cut/dipole/cut (go) <pair_dipole>`
* :doc:`lj/cut/dipole/long (g) <pair_dipole>`
* :doc:`lj/cut/dipole/sf (go) <pair_dipole>`
* :doc:`lj/cut/soft (o) <pair_fep_soft>`
* :doc:`lj/cut/thole/long (o) <pair_thole>`
* :doc:`lj/cut/tip4p/cut (o) <pair_lj>`
* :doc:`lj/cut/tip4p/long (got) <pair_lj>`
* :doc:`lj/cut/tip4p/cut (o) <pair_lj_cut_tip4p>`
* :doc:`lj/cut/tip4p/long (got) <pair_lj_cut_tip4p>`
* :doc:`lj/cut/tip4p/long/soft (o) <pair_fep_soft>`
* :doc:`lj/expand (gko) <pair_lj_expand>`
* :doc:`lj/expand/coul/long (g) <pair_lj_expand>`

View File

@ -102,8 +102,8 @@ documentation for the formula it computes.
* :doc:`pair_style <pair_buck>` buck/coul/cut
* :doc:`pair_style <pair_buck>` buck/coul/long
* :doc:`pair_style <pair_lj>` lj/cut
* :doc:`pair_style <pair_lj>` lj/cut/coul/cut
* :doc:`pair_style <pair_lj>` lj/cut/coul/long
* :doc:`pair_style <pair_lj_cut_coul>` lj/cut/coul/cut
* :doc:`pair_style <pair_lj_cut_coul>` lj/cut/coul/long
* :doc:`pair_style <pair_hbond_dreiding>` hbond/dreiding/lj
* :doc:`pair_style <pair_hbond_dreiding>` hbond/dreiding/morse

View File

@ -9,13 +9,15 @@ surface meshes of discrete points, collections of sub-particles,
deformable objects, etc. Note that other kinds of finite-size
spherical and aspherical particles are also supported by LAMMPS, such
as spheres, ellipsoids, line segments, and triangles, but they are
simpler entities that body particles. See the :doc:`Howto spherical <Howto_spherical>` doc page for a general overview of all
these particle types.
simpler entities than body particles. See the :doc:`Howto spherical
<Howto_spherical>` doc page for a general overview of all these
particle types.
Body particles are used via the :doc:`atom_style body <atom_style>`
command. It takes a body style as an argument. The current body
styles supported by LAMMPS are as follows. The name in the first
column is used as the *bstyle* argument for the :doc:`atom_style body <atom_style>` command.
column is used as the *bstyle* argument for the :doc:`atom_style body
<atom_style>` command.
+----------------------+---------------------------------------------------+
| *nparticle* | rigid body with N sub-particles |
@ -30,8 +32,9 @@ thus how they can be used to compute pairwise body/body or
bond/non-body (point particle) interactions. More details of each
style are described below.
More styles may be added in the future. See the :doc:`Modify body <Modify_body>` doc page for details on how to add a new body
style to the code.
More styles may be added in the future. See the :doc:`Modify body
<Modify_body>` doc page for details on how to add a new body style to
the code.
----------
@ -55,10 +58,10 @@ interactions, building neighbor lists, migrating particles between
processors, output of particles to a dump file, etc. This means that
interactions between pairs of bodies or between a body and non-body
(point) particle need to be encoded in an appropriate pair style. If
such a pair style were to mimic the :doc:`fix rigid <fix_rigid>` model,
it would need to loop over the entire collection of interactions
between pairs of simple particles within the two bodies, each time a
single body/body interaction was computed.
such a pair style were to mimic the :doc:`fix rigid <fix_rigid>`
model, it would need to loop over the entire collection of
interactions between pairs of simple particles within the two bodies,
each time a single body/body interaction was computed.
Thus it only makes sense to use body particles and develop such a pair
style, when particle/particle interactions are more complex than what
@ -160,27 +163,6 @@ of the body particle.
The :doc:`pair_style body/nparticle <pair_body_nparticle>` command can be used
with this body style to compute body/body and body/non-body interactions.
For output purposes via the :doc:`compute body/local <compute_body_local>` and :doc:`dump local <dump>`
commands, this body style produces one datum for each of the N
sub-particles in a body particle. The datum has 3 values:
.. parsed-literal::
1 = x position of sub-particle
2 = y position of sub-particle
3 = z position of sub-particle
These values are the current position of the sub-particle within the
simulation domain, not a displacement from the center-of-mass (COM) of
the body particle itself. These values are calculated using the
current COM and orientation of the body particle.
For images created by the :doc:`dump image <dump_image>` command, if the
*body* keyword is set, then each body particle is drawn as a
collection of spheres, one for each sub-particle. The size of each
sphere is determined by the *bflag1* parameter for the *body* keyword.
The *bflag2* argument is ignored.
----------
**Specifics of body style rounded/polygon:**
@ -208,7 +190,7 @@ The Nmin and Nmax arguments are used to bound the size of data
structures used internally by each particle.
When the :doc:`read_data <read_data>` command reads a data file for this
body style, the following information must be provided for each entry
body style, the following information must be provided for each body
in the *Bodies* section of the data file:
.. parsed-literal::
@ -219,21 +201,25 @@ in the *Bodies* section of the data file:
x1 y1 z1
...
xN yN zN
i j j k k ...
diameter
where M = 6 + 3\*N + 2\*N + 1, and N is the number of vertices in the
body particle.
where M = 6 + 3\*N + 1, and N is the number of vertices in the body
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
list 6 moments of inertia, followed by the coordinates of the N
vertices (x1 to zN) as 3N values (with z = 0.0 for each), followed by
2N vertex indices corresponding to the end points of the N edges,
followed by a single diameter value = the rounded diameter of the
circle 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 :doc:`read_data <read_data>` command
for more details.
a diameter value = the rounded diameter of the circle 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 :doc:`read_data <read_data>` command for more
details.
.. note::
It is important that the vertices for each polygonal body particle be
listed in order around its perimeter, so that edges can be inferred.
LAMMPS does not check that this is the case.
The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the
values consistent with the current orientation of the rigid body
@ -260,10 +246,6 @@ is consistent with the 6 moments of inertia: ixx iyy izz ixy ixz iyz =
-0.7071 0.7071 0
0.7071 0.7071 0
0.7071 -0.7071 0
0 1
1 2
2 3
3 0
1.0
A rod in 2D, whose length is 4.0, mass 1.0, rounded at two ends
@ -345,8 +327,10 @@ in the *Bodies* section of the data file:
1 2 3 4
diameter
where M = 6 + 3\*N + 2\*E + 4\*F + 1, and N is the number of vertices in
the body particle, E = number of edges, F = number of faces.
where M = 6 + 3\*N + 2\*E + 4\*F + 1, and N is the number of vertices
in the body particle, E = number of edges, F = number of faces. For N
= 1 or 2, the format is simpler. E and F are ignored and no edges or
faces are listed, so that M = 6 + 3\*N + 1.
The integer line has three values: number of vertices (N), number of
edges (E) and number of faces (F). The floating point line(s) list 6
@ -356,16 +340,26 @@ the end points of the E edges, then 4\*F vertex indices defining F
faces. The last value is the diameter value = the rounded diameter of
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
:doc:`read_data <read_data>` command for more details. Because the
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.
listed on as many lines as you wish; see the :doc:`read_data
<read_data>` command for more details.
The ordering of the 4 vertices within a face should follow
the right-hand rule so that the normal vector of the face points
outwards from the center of mass.
Note that vertices are numbered from 0 to N-1 inclusive. The order of
the 2 vertices in each edge does not matter. Faces can be triangles
or quadrilaterals. In both cases 4 vertices must be specified. For a
triangle the 4th vertex is -1. The 4 vertices within each triangle or
quadrilateral face should be ordered by the right-hand rule so that
the normal vector of the face points outwards from the center of mass.
For polyhedron with faces with more than 4 vertices, you should split
the complex face into multiple simple faces, each of which is a
triangle or quadrilateral.
.. note::
If a face is a quadrilateral then its 4 vertices must be co-planar.
LAMMPS does not check that this is the case. If you have a quad-face
of a polyhedron that is not planar (e.g. a cube whose vertices have
been randomly displaced), then you should represent the single quad
face as two triangle faces instead.
The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the
values consistent with the current orientation of the rigid body
@ -421,8 +415,8 @@ by circles of diameter 0.5, is specified as follows:
.. parsed-literal::
1 1 13
2
1 3 13
2 1 1
0 1.33333 1.33333 0 0 0
-2 0 0
2 0 0
@ -432,27 +426,34 @@ A sphere whose diameter is 3.0 and mass 1.0, is specified as follows:
.. parsed-literal::
1 1 10
1
1 3 10
1 1 1
0.9 0.9 0.9 0 0 0
0 0 0
3.0
The :doc:`pair_style body/rounded/polhedron <pair_body_rounded_polyhedron>` command can
be used with this body style to compute body/body interactions. The
:doc:`fix wall/body/polyhedron <fix_wall_body_polygon>` command can be
used with this body style to compute the interaction of body particles
with a wall.
The number of edges and faces for a rod or sphere must be listed,
but is ignored.
The :doc:`pair_style body/rounded/polhedron
<pair_body_rounded_polyhedron>` command can be used with this body
style to compute body/body interactions. The :doc:`fix
wall/body/polyhedron <fix_wall_body_polygon>` command can be used with
this body style to compute the interaction of body particles with a
wall.
----------
For output purposes via the :doc:`compute body/local <compute_body_local>` and :doc:`dump local <dump>`
commands, this body style produces one datum for each of the N
sub-particles in a body particle. The datum has 3 values:
**Output specifics for all body styles:**
For the :doc:`compute body/local <compute_body_local>` and :doc:`dump
local <dump>` commands, all 3 of the body styles described on his page
produces one datum for each of the N vertices (of sub-particles) in a
body particle. The datum has 3 values:
.. parsed-literal::
1 = x position of vertex
1 = x position of vertex (or sub-particle)
2 = y position of vertex
3 = z position of vertex
@ -461,15 +462,29 @@ simulation domain, not a displacement from the center-of-mass (COM) of
the body particle itself. These values are calculated using the
current COM and orientation of the body particle.
For images created by the :doc:`dump image <dump_image>` command, if the
*body* keyword is set, then each body particle is drawn as a polygon
consisting of N line segments. Note that the line segments are drawn
between the N vertices, which does not correspond exactly to the
physical extent of the body (because the :doc:`pair_style rounded/polygon <pair_body_rounded_polygon>` defines finite-size
spheres at those point and the line segments between the spheres are
tangent to the spheres). The drawn diameter of each line segment is
determined by the *bflag1* parameter for the *body* keyword. The
*bflag2* argument is ignored.
The :doc:`dump image <dump_image>` command and its *body* keyword can
be used to render body particles.
For the *nparticle* body style, each body is drawn as a
collection of spheres, one for each sub-particle. The size of each
sphere is determined by the *bflag1* parameter for the *body* keyword.
The *bflag2* argument is ignored.
For the *rounded/polygon* body style, each body is drawn as a polygon
with N line segments. For the *rounded/polyhedron* body style, each
face of each body is drawn as a polygon with N line segments. The
drawn diameter of each line segment is determined by the *bflag1*
parameter for the *body* keyword. The *bflag2* argument is ignored.
Note that for both the *rounded/polygon* and *rounded/polyhedron*
styles, line segments are drawn between the pairs of vertices.
Depending on the diameters of the line segments this may be slightly
different than the physical extent of the body as calculated by the
:doc:`pair_style rounded/polygon <pair_body_rounded_polygon>` or
:doc:`pair_style rounded/polyhedron <pair_body_rounded_polyhedron>`
commands. Conceptually, the pair styles define the surface of a 2d or
3d body by lines or planes that are tangent to the finite-size spheres
of specified diameter which are placed on each vertex position.
----------

View File

@ -331,7 +331,7 @@ Some common LAMMPS specific variables
* - ``BUILD_DOC``
- include building the HTML format documentation for packaging/installing (default: ``off``)
* - ``CMAKE_TUNE_FLAGS``
- common compiler flags, for optimization or instrumentation (default: compiler specific)
- common compiler flags, for optimization or instrumentation (default:)
* - ``LAMMPS_MACHINE``
- when set to ``name`` the LAMMPS executable and library will be called ``lmp_name`` and ``liblammps_name.a``
* - ``LAMMPS_EXCEPTIONS``

View File

@ -3,13 +3,15 @@ Output from LAMMPS (thermo, dumps, computes, fixes, variables)
There are four basic kinds of LAMMPS output:
* :doc:`Thermodynamic output <thermo_style>`, which is a list
of quantities printed every few timesteps to the screen and logfile.
* :doc:`Thermodynamic output <thermo_style>`, which is a list of
quantities printed every few timesteps to the screen and logfile.
* :doc:`Dump files <dump>`, which contain snapshots of atoms and various
per-atom values and are written at a specified frequency.
* Certain fixes can output user-specified quantities to files: :doc:`fix ave/time <fix_ave_time>` for time averaging, :doc:`fix ave/chunk <fix_ave_chunk>` for spatial or other averaging, and :doc:`fix print <fix_print>` for single-line output of
:doc:`variables <variable>`. Fix print can also output to the
screen.
* Certain fixes can output user-specified quantities to files:
:doc:`fix ave/time <fix_ave_time>` for time averaging,
:doc:`fix ave/chunk <fix_ave_chunk>` for spatial or other averaging, and
:doc:`fix print <fix_print>` for single-line output of
:doc:`variables <variable>`. Fix print can also output to the screen.
* :doc:`Restart files <restart>`.
A simulation prints one set of thermodynamic output and (optionally)
@ -41,7 +43,7 @@ to output and the kind of data they operate on and produce:
.. _global:
Global/per-atom/local data
---------------------------------------
--------------------------
Various output-related commands work with three different styles of
data: global, per-atom, or local. A global datum is one or more
@ -54,7 +56,7 @@ bond distances.
.. _scalar:
Scalar/vector/array data
-------------------------------------
------------------------
Global, per-atom, and local datums can each come in three kinds: a
single scalar value, a vector of values, or a 2d array of values. The
@ -81,10 +83,27 @@ the dimension twice (array -> scalar). Thus a command that uses
scalar values as input can typically also process elements of a vector
or array.
.. _disambiguation:
Disambiguation
--------------
Some computes and fixes produce data in multiple styles, e.g. a global
scalar and a per-atom vector. Usually the context in which the input
script references the data determines which style is meant. Example: if
a compute provides both a global scalar and a per-atom vector, the
former will be accessed by using ``c_ID`` in an equal-style variable,
while the latter will be accessed by using ``c_ID`` in an atom-style
variable. Note that atom-style variable formulas can also access global
scalars, but in this case it is not possible to do directly because of
the ambiguity. Instead, an equal-style variable can be defined which
accesses the global scalar, and that variable used in the atom-style
variable formula in place of ``c_ID``.
.. _thermo:
Thermodynamic output
---------------------------------
--------------------
The frequency and format of thermodynamic output is set by the
:doc:`thermo <thermo>`, :doc:`thermo_style <thermo_style>`, and
@ -112,7 +131,7 @@ intensive result.
.. _dump:
Dump file output
---------------------------
----------------
Dump file output is specified by the :doc:`dump <dump>` and
:doc:`dump_modify <dump_modify>` commands. There are several
@ -138,7 +157,7 @@ command.
.. _fixoutput:
Fixes that write output files
---------------------------------------------
-----------------------------
Several fixes take various quantities as input and can write output
files: :doc:`fix ave/time <fix_ave_time>`, :doc:`fix ave/chunk <fix_ave_chunk>`, :doc:`fix ave/histo <fix_ave_histo>`,
@ -192,7 +211,7 @@ from normal thermodynamic or dump file output.
.. _computeoutput:
Computes that process output quantities
-----------------------------------------------------------
---------------------------------------
The :doc:`compute reduce <compute_reduce>` and :doc:`compute reduce/region <compute_reduce>` commands take one or more per-atom
or local vector quantities as inputs and "reduce" them (sum, min, max,
@ -219,7 +238,7 @@ output commands.
.. _fixprocoutput:
Fixes that process output quantities
--------------------------------------------------------
------------------------------------
The :doc:`fix vector <fix_vector>` command can create global vectors as
output from global scalars as input, accumulating them one element at
@ -244,7 +263,7 @@ The output of this fix can be used as input to other output commands.
.. _compute:
Computes that generate values to output
-----------------------------------------------------
---------------------------------------
Every :doc:`compute <compute>` in LAMMPS produces either global or
per-atom or local values. The values can be scalars or vectors or
@ -257,7 +276,7 @@ without the word "atom" or "local" produce global values.
.. _fix:
Fixes that generate values to output
----------------------------------------------
------------------------------------
Some :doc:`fixes <fix>` in LAMMPS produces either global or per-atom or
local values which can be accessed by other commands. The values can
@ -269,7 +288,7 @@ describes them.
.. _variable:
Variables that generate values to output
-------------------------------------------------------
----------------------------------------
:doc:`Variables <variable>` defined in an input script can store one or
more strings. But equal-style, vector-style, and atom-style or
@ -284,7 +303,7 @@ commands described in this section.
.. _table:
Summary table of output options and data flow between commands
--------------------------------------------------------------------------
--------------------------------------------------------------
This table summarizes the various commands that can be used for
generating output from LAMMPS. Each command produces output data of

View File

@ -11,11 +11,11 @@ angle style of *harmonic* or *charmm* should also be used.
A TIP4P model is run with LAMMPS using either this command
for a cutoff model:
* :doc:`pair_style lj/cut/tip4p/cut <pair_lj>`
* :doc:`pair_style lj/cut/tip4p/cut <pair_lj_cut_tip4p>`
or these two commands for a long-range model:
* :doc:`pair_style lj/cut/tip4p/long <pair_lj>`
* :doc:`pair_style lj/cut/tip4p/long <pair_lj_cut_tip4p>`
* :doc:`kspace_style pppm/tip4p <kspace_style>`
For both models, the bond lengths and bond angles should be held fixed
@ -95,7 +95,7 @@ typically best in an efficiency sense to use a LJ cutoff >= Coulomb
cutoff + 2\*(OM distance), to shrink the size of the neighbor list.
This leads to slightly larger cost for the long-range calculation, so
you can test the trade-off for your model. The OM distance and the LJ
and Coulombic cutoffs are set in the :doc:`pair_style lj/cut/tip4p/long <pair_lj>` command.
and Coulombic cutoffs are set in the :doc:`pair_style lj/cut/tip4p/long <pair_lj_cut_tip4p>` command.
Wikipedia also has a nice article on `water models <http://en.wikipedia.org/wiki/Water_model>`_.

View File

@ -21,8 +21,14 @@ Pre-built Ubuntu Linux executables
A pre-built LAMMPS executable suitable for running on the latest
Ubuntu Linux versions, can be downloaded as a Debian package. This
allows you to install LAMMPS with a single command, and stay
up-to-date with the current version of LAMMPS by simply updating your
operating system.
up-to-date with the current stable version of LAMMPS by simply updating
your operating system. Please note, that the repository below offers
two LAMMPS packages, ``lammps-daily`` and ``lammps-stable``. The
LAMMPS developers recommend to use the ``lammps-stable`` package for
any production simulations. The ``lammps-daily`` package is built
from the LAMMPS development sources, and those versions may have known
issues and bugs when new features are added and the software has not
undergone full release testing.
To install the appropriate personal-package archives (PPAs), do the
following once:
@ -37,16 +43,16 @@ To install LAMMPS do the following once:
.. code-block:: bash
$ sudo apt-get install lammps-daily
$ sudo apt-get install lammps-stable
This downloads an executable named ``lmp_daily`` to your box, which
This downloads an executable named ``lmp_stable`` to your box, which
can then be used in the usual way to run input scripts:
.. code-block:: bash
$ lmp_daily -in in.lj
$ lmp_stable -in in.lj
To update LAMMPS to the most current version, do the following:
To update LAMMPS to the most current stable version, do the following:
.. code-block:: bash
@ -58,25 +64,25 @@ To get a copy of the current documentation and examples:
.. code-block:: bash
$ sudo apt-get install lammps-daily-doc
$ sudo apt-get install lammps-stable-doc
which will download the doc files in
``/usr/share/doc/lammps-daily-doc/doc`` and example problems in
``/usr/share/doc/lammps-stable-doc/doc`` and example problems in
``/usr/share/doc/lammps-doc/examples``.
To get a copy of the current potentials files:
.. code-block:: bash
$ sudo apt-get install lammps-daily-data
$ sudo apt-get install lammps-stable-data
which will download the potentials files to
``/usr/share/lammps-daily/potentials``. The ``lmp_daily`` binary is
``/usr/share/lammps-stable/potentials``. The ``lmp_stable`` binary is
hard-coded to look for potential files in this directory (it does not
use the `LAMMPS_POTENTIALS` environment variable, as described
in :doc:`pair_coeff <pair_coeff>` command).
The ``lmp_daily`` binary is built with the :ref:`KIM package <kim>` which
The ``lmp_stable`` binary is built with the :ref:`KIM package <kim>` which
results in the above command also installing the `kim-api` binaries when LAMMPS
is installed. In order to use potentials from `openkim.org <openkim_>`_, you
can install the `openkim-models` package
@ -89,9 +95,9 @@ To un-install LAMMPS, do the following:
.. code-block:: bash
$ sudo apt-get remove lammps-daily
$ sudo apt-get remove lammps-stable
Please use ``lmp_daily -help`` to see which compilation options, packages,
Please use ``lmp_stable -help`` to see which compilation options, packages,
and styles are included in the binary.
Thanks to Anton Gladky (gladky.anton at gmail.com) for setting up this

View File

@ -306,7 +306,8 @@ gpu" or "-suffix gpu" :doc:`command-line switches <Run_options>`. See
also the :ref:`KOKKOS <PKG-KOKKOS>` package, which has GPU-enabled styles.
**Authors:** Mike Brown (Intel) while at Sandia and ORNL and Trung Nguyen
(Northwestern U) while at ORNL.
(Northwestern U) while at ORNL and later. AMD HIP support by Evgeny
Kuznetsov, Vladimir Stegailov, and Vsevolod Nikolskiy (HSE University).
**Install:**

View File

@ -78,7 +78,7 @@ above, create a test.py file containing these lines:
pypar.finalize()
To run LAMMPS in parallel, assuming you have installed the
`mpi4py <https://bitbucket.org/mpi4py/mpi4py>`_ package as discussed
`mpi4py <https://mpi4py.readthedocs.io>`_ package as discussed
above, create a test.py file containing these lines:
.. code-block:: python

View File

@ -50,6 +50,10 @@ but this can be overridden using the device option of the :doc:`package <package
command. run lammps/lib/gpu/ocl_get_devices to get a list of available
platforms and devices with a suitable ICD available.
To compute and use this package in HIP mode, you have to have the AMD ROCm
software installed. Versions of ROCm older than 3.5 are currently deprecated
by AMD.
**Building LAMMPS with the GPU package:**
See the :ref:`Build extras <gpu>` doc page for

View File

@ -138,10 +138,10 @@ For Intel Xeon Phi co-processors (Offload):
**Required hardware/software:**
When using Intel compilers version 16.0 or later is required.
In order to use offload to co-processors, an Intel Xeon Phi
co-processor and an Intel compiler are required. For this, the
recommended version of the Intel compiler is 14.0.1.106 or
versions 15.0.2.044 and higher.
co-processor and an Intel compiler are required.
Although any compiler can be used with the USER-INTEL package,
currently, vectorization directives are disabled by default when

View File

@ -49,13 +49,14 @@ The following coefficients must be defined for each angle type via the
the data file or restart files read by the :doc:`read_data <read_data>`
or :doc:`read_restart <read_restart>` commands:
* :math:`K` (energy/radian\^2)
* :math:`K` (energy)
* :math:`\theta_0` (degrees)
* :math:`K_{ub}` (energy/distance\^2)
* :math:`r_{ub}` (distance)
:math:`\theta_0` is specified in degrees, but LAMMPS converts it to radians
internally; hence the units of :math:`K` are in energy/radian\^2.
:math:`\theta_0` is specified in degrees, but LAMMPS converts it to
radians internally; hence :math:`K` is effectively energy per
radian\^2.
----------

View File

@ -41,27 +41,29 @@ The *class2* angle style uses the potential
E_{bb} & = M (r_{ij} - r_1) (r_{jk} - r_2) \\
E_{ba} & = N_1 (r_{ij} - r_1) (\theta - \theta_0) + N_2(r_{jk} - r_2)(\theta - \theta_0)
where :math:`E_a` is the angle term, :math:`E_{bb}` is a bond-bond term, and :math:`E_{ba}` is a
bond-angle term. :math:`\theta_0` is the equilibrium angle and :math:`r_1` and :math:`r_2` are
the equilibrium bond lengths.
where :math:`E_a` is the angle term, :math:`E_{bb}` is a bond-bond
term, and :math:`E_{ba}` is a bond-angle term. :math:`\theta_0` is
the equilibrium angle and :math:`r_1` and :math:`r_2` are the
equilibrium bond lengths.
See :ref:`(Sun) <angle-Sun>` for a description of the COMPASS class2 force field.
Coefficients for the :math:`E_a`, :math:`E_{bb}`, and :math:`E_{ba}` formulas must be defined for
each angle type via the :doc:`angle_coeff <angle_coeff>` command as in
the example above, or in the data file or restart files read by the
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
commands.
Coefficients for the :math:`E_a`, :math:`E_{bb}`, and :math:`E_{ba}`
formulas must be defined for each angle type via the :doc:`angle_coeff
<angle_coeff>` command as in the example above, or in the data file or
restart files read by the :doc:`read_data <read_data>` or
:doc:`read_restart <read_restart>` commands.
These are the 4 coefficients for the :math:`E_a` formula:
* :math:`\theta_0` (degrees)
* :math:`K_2` (energy/radian\^2)
* :math:`K_3` (energy/radian\^3)
* :math:`K_4` (energy/radian\^4)
* :math:`K_2` (energy)
* :math:`K_3` (energy)
* :math:`K_4` (energy)
:math:`\theta_0` is specified in degrees, but LAMMPS converts it to radians
internally; hence the units of the various :math:`K` are in per-radian.
:math:`\theta_0` is specified in degrees, but LAMMPS converts it to
radians internally; hence the various :math:`K` are effectively energy
per radian\^2 or radian\^3 or radian\^4.
For the :math:`E_{bb}` formula, each line in a :doc:`angle_coeff <angle_coeff>`
command in the input script lists 4 coefficients, the first of which
@ -122,11 +124,15 @@ The *class2/p6* angle style uses the *class2* potential expanded to sixth order:
In this expanded term 6 coefficients for the :math:`E_a` formula need to be set:
* :math:`\theta_0` (degrees)
* :math:`K_2` (energy/radian\^2)
* :math:`K_3` (energy/radian\^3)
* :math:`K_4` (energy/radian\^4)
* :math:`K_5` (energy/radian\^5)
* :math:`K_6` (energy/radian\^6)
* :math:`K_2` (energy)
* :math:`K_3` (energy)
* :math:`K_4` (energy)
* :math:`K_5` (energy)
* :math:`K_6` (energy)
:math:`\theta_0` is specified in degrees, but LAMMPS converts it to
radians internally; hence the various :math:`K` are effectively energy
per radian\^2 or radian\^3 or radian\^4 or radian\^5 or radian\^6.
The bond-bond and bond-angle terms remain unchanged.

View File

@ -40,14 +40,15 @@ the data file or restart files read by the :doc:`read_data <read_data>`
or :doc:`read_restart <read_restart>` commands:
* :math:`K_{SS}` (energy/distance\^2)
* :math:`K_{BS0}` (energy/distance/rad)
* :math:`K_{BS1}` (energy/distance/rad)
* :math:`K_{BS0}` (energy/distance)
* :math:`K_{BS1}` (energy/distance)
* :math:`r_{12,0}` (distance)
* :math:`r_{32,0}` (distance)
* :math:`\theta_0` (degrees)
:math:`\theta_0` is specified in degrees, but LAMMPS converts it to radians
internally; hence the units of :math:`K_{BS0}` and :math:`K_{BS1}` are in energy/distance/radian.
:math:`\theta_0` is specified in degrees, but LAMMPS converts it to
radians internally; hence the :math:`K_{BS0}` and :math:`K_{BS1}` are
effectively energy/distance per radian.
Restrictions
""""""""""""

View File

@ -44,11 +44,12 @@ The following coefficients must be defined for each angle type via the
the data file or restart files read by the :doc:`read_data <read_data>`
or :doc:`read_restart <read_restart>` commands:
* :math:`K` (energy/radian\^2)
* :math:`K` (energy)
* :math:`\theta_0` (degrees)
:math:`\theta_0` is specified in degrees, but LAMMPS converts it to radians
internally; hence the units of :math:`K` are in energy/radian\^2.
:math:`\theta_0` is specified in degrees, but LAMMPS converts it to
radians internally; hence :math:`K` is effectively energy per
radian\^2.
----------
@ -61,11 +62,13 @@ produce the same results, except for round-off and precision issues.
These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
USER-OMP and OPT packages, respectively. They are only enabled if
LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` doc page for more info.
LAMMPS was built with those packages. See the :doc:`Build package
<Build_package>` doc page for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the :doc:`-suffix command-line switch <Run_options>` when you invoke LAMMPS, or you can use the
:doc:`suffix <suffix>` command in your input script.
by including their suffix, or you can use the :doc:`-suffix
command-line switch <Run_options>` when you invoke LAMMPS, or you can
use the :doc:`suffix <suffix>` command in your input script.
See the :doc:`Speed packages <Speed_packages>` doc page for more
instructions on how to use the accelerated styles effectively.

View File

@ -28,20 +28,22 @@ as defined in :ref:`(Allinger) <mm3-allinger1989>`
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]
where :math:`\theta_0` is the equilibrium value of the angle, and :math:`K` is a
prefactor. The anharmonic prefactors have units :math:`\deg^{-n}`, for example
:math:`-0.014 \deg^{-1}`, :math:`5.6 \cdot 10^{-5} \deg^{-2}`, ...
where :math:`\theta_0` is the equilibrium value of the angle, and
:math:`K` is a prefactor. The anharmonic prefactors have units
:math:`\deg^{-n}`, for example :math:`-0.014 \deg^{-1}`, :math:`5.6
\cdot 10^{-5} \deg^{-2}`, ...
The following coefficients must be defined for each angle type via the
:doc:`angle_coeff <angle_coeff>` command as in the example above, or in
the data file or restart files read by the :doc:`read_data <read_data>`
or :doc:`read_restart <read_restart>` commands:
* :math:`K` (energy/radian\^2)
* :math:`K` (energy)
* :math:`\theta_0` (degrees)
:math:`\theta_0` is specified in degrees, but LAMMPS converts it to radians
internally; hence the units of :math:`K` are in energy/radian\^2.
:math:`\theta_0` is specified in degrees, but LAMMPS converts it to
radians internally; hence :math:`K` is effectively energy per
radian\^2.
Restrictions
""""""""""""

View File

@ -39,12 +39,13 @@ the data file or restart files read by the :doc:`read_data <read_data>`
or :doc:`read_restart <read_restart>` commands:
* :math:`\theta_0` (degrees)
* :math:`K_2` (energy/radian\^2)
* :math:`K_3` (energy/radian\^3)
* :math:`K_4` (energy/radian\^4)
* :math:`K_2` (energy)
* :math:`K_3` (energy)
* :math:`K_4` (energy)
:math:`\theta_0` is specified in degrees, but LAMMPS converts it to radians
internally; hence the units of :math:`K` are in energy/radian\^2.
:math:`\theta_0` is specified in degrees, but LAMMPS converts it to
radians internally; hence the various :math:`K` are effectively energy
per radian\^2 or radian\^3 or radian\^4.
----------

View File

@ -44,13 +44,15 @@ is included in :math:`K`.
The following coefficients must be defined for each angle type via the
:doc:`angle_coeff <angle_coeff>` command as in the example above:
* :math:`K` (energy/radian\^2)
* :math:`K` (energy)
* :math:`\theta_0` (degrees)
:math:`\theta_0` is specified in degrees, but LAMMPS converts it to radians
internally; hence the units of :math:`K` are in energy/radian\^2.
The also required *lj/sdk* parameters will be extracted automatically
from the pair_style.
:math:`\theta_0` is specified in degrees, but LAMMPS converts it to
radians internally; hence :math:`K` is effectively energy per
radian\^2.
The required *lj/sdk* parameters are extracted automatically from the
pair_style.
----------
@ -63,7 +65,8 @@ produce the same results, except for round-off and precision issues.
These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
USER-OMP and OPT packages, respectively. They are only enabled if
LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` doc page for more info.
LAMMPS was built with those packages. See the :doc:`Build package
<Build_package>` doc page for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the :doc:`-suffix command-line switch <Run_options>` when you invoke LAMMPS, or you can use the

View File

@ -88,7 +88,8 @@ Commands
region
replicate
rerun
reset_ids
reset_atom_ids
reset_mol_ids
reset_timestep
restart
run

View File

@ -225,6 +225,7 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` doc
* :doc:`ke/atom/eff <compute_ke_atom_eff>` - per-atom translational and radial kinetic energy in the electron force field model
* :doc:`ke/eff <compute_ke_eff>` - kinetic energy of a group of nuclei and electrons in the electron force field model
* :doc:`ke/rigid <compute_ke_rigid>` - translational kinetic energy of rigid bodies
* :doc:`mliap <compute_mliap>` - gradients of energy and forces w.r.t. model parameters and related quantities for training machine learning interatomic potentials
* :doc:`momentum <compute_momentum>` - translational momentum
* :doc:`msd <compute_msd>` - mean-squared displacement of group of atoms
* :doc:`msd/chunk <compute_msd_chunk>` - mean-squared displacement for each chunk
@ -268,12 +269,13 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` doc
* :doc:`smd/tlsph/strain/rate <compute_smd_tlsph_strain_rate>` -
* :doc:`smd/tlsph/stress <compute_smd_tlsph_stress>` - per-particle Cauchy stress tensor for SPH particles
* :doc:`smd/triangle/vertices <compute_smd_triangle_vertices>` -
* :doc:`smd/ulsph/effm <compute_smd_ulsph_effm>` - per-particle effective shear modulus
* :doc:`smd/ulsph/num/neighs <compute_smd_ulsph_num_neighs>` -
* :doc:`smd/ulsph/strain <compute_smd_ulsph_strain>` -
* :doc:`smd/ulsph/strain/rate <compute_smd_ulsph_strain_rate>` -
* :doc:`smd/ulsph/stress <compute_smd_ulsph_stress>` - per-particle Cauchy stress tensor and von Mises equivalent stress in Smooth Mach Dynamics
* :doc:`smd/vol <compute_smd_vol>` - per-particle volumes and their sum in Smooth Mach Dynamics
* :doc:`snap <compute_sna_atom>` - bispectrum components and related quantities for a group of atoms
* :doc:`snap <compute_sna_atom>` - gradients of SNAP energy and forces w.r.t. linear coefficients and related quantities for fitting SNAP potentials
* :doc:`sna/atom <compute_sna_atom>` - bispectrum components for each atom
* :doc:`snad/atom <compute_sna_atom>` - derivative of bispectrum components for each atom
* :doc:`snav/atom <compute_sna_atom>` - virial contribution from bispectrum components for each atom

View File

@ -622,14 +622,16 @@ cylinder, x for a y-axis cylinder, and x for a z-axis cylinder.
**Output info:**
This compute calculates a per-atom vector, which can be accessed by
any command that uses per-atom values from a compute as input. See
the :doc:`Howto output <Howto_output>` doc page for an overview of
This compute calculates a per-atom vector (the chunk ID), which can
be accessed by any command that uses per-atom values from a compute
as input. It also calculates a global scalar (the number of chunks),
which can be similarly accessed everywhere outside of a per-atom context.
See the :doc:`Howto output <Howto_output>` doc page for an overview of
LAMMPS output options.
The per-atom vector values are unitless chunk IDs, ranging from 1 to
*Nchunk* (inclusive) for atoms assigned to chunks, and 0 for atoms not
belonging to a chunk.
belonging to a chunk. The scalar contains the value of *Nchunk*.
Restrictions
""""""""""""

View File

@ -15,12 +15,18 @@ Syntax
.. parsed-literal::
compute ID group-ID cluster/atom cutoff
compute ID group-ID fragment/atom
compute ID group-ID fragment/atom keyword value ...
compute ID group-ID aggregate/atom cutoff
* ID, group-ID are documented in :doc:`compute <compute>` command
* *cluster/atom* or *fragment/atom* or *aggregate/atom* = style name of this compute command
* cutoff = distance within which to label atoms as part of same cluster (distance units)
* zero or more keyword/value pairs may be appended to *fragment/atom*
* keyword = *single*
.. parsed-literal::
*single* value = *yes* or *no* to treat single atoms (no bonds) as fragments
Examples
""""""""
@ -29,27 +35,36 @@ Examples
compute 1 all cluster/atom 3.5
compute 1 all fragment/atom
compute 1 all fragment/atom single no
compute 1 all aggregate/atom 3.5
Description
"""""""""""
Define a computation that assigns each atom a cluster, fragment,
or aggregate ID.
Define a computation that assigns each atom a cluster, fragment, or
aggregate ID. Only atoms in the compute group are clustered and
assigned cluster IDs. Atoms not in the compute group are assigned an
ID = 0.
A cluster is defined as a set of atoms, each of which is within the
cutoff distance from one or more other atoms in the cluster. If an
atom has no neighbors within the cutoff distance, then it is a 1-atom
cluster.
A fragment is similarly defined as a set of atoms, each of
which has an explicit bond (i.e. defined via a :doc:`data file <read_data>`,
the :doc:`create_bonds <create_bonds>` command, or through fixes like
:doc:`fix bond/create <fix_bond_create>`, :doc:`fix bond/swap <fix_bond_swap>`,
or :doc:`fix bond/break <fix_bond_break>`). The cluster ID or fragment ID
of every atom in the cluster will be set to the smallest atom ID of any atom
in the cluster or fragment, respectively.
A fragment is similarly defined as a set of atoms, each of which has a
bond to another atom in the fragment. Bonds can be defined initially
via the :doc:`data file <read_data>` or :doc:`create_bonds
<create_bonds>` commands, or dynamically by fixes which create or
break bonds like :doc:`fix bond/react <fix_bond_react>`, :doc:`fix
bond/create <fix_bond_create>`, :doc:`fix bond/swap <fix_bond_swap>`,
or :doc:`fix bond/break <fix_bond_break>`. The cluster ID or fragment
ID of every atom in the cluster will be set to the smallest atom ID of
any atom in the cluster or fragment, respectively.
For the *fragment/atom* style, the *single* keyword determines whether
single atoms (not bonded to another atom) are treated as one-atom
fragments or not, based on the *yes* or *no* setting. If the setting
is *no* (the default), their fragment IDs are set to 0.
An aggregate is defined by combining the rules for clusters and
fragments, i.e. a set of atoms, where each of it is within the cutoff
@ -57,19 +72,11 @@ distance from one or more atoms within a fragment that is part of
the same cluster. This measure can be used to track molecular assemblies
like micelles.
Only atoms in the compute group are clustered and assigned cluster
IDs. Atoms not in the compute group are assigned a cluster ID = 0.
For fragments, only bonds where **both** atoms of the bond are included
in the compute group are assigned to fragments, so that only fragments
are detected where **all** atoms are in the compute group. Thus atoms
may be included in the compute group, yes still have a fragment ID of 0.
For computes *cluster/atom* and *aggregate/atom* the neighbor list needed
to compute this quantity is constructed each time the calculation is
performed (i.e. each time a snapshot of atoms is dumped). Thus it can be
inefficient to compute/dump this quantity too frequently or to have
multiple compute/dump commands, each of a *cluster/atom* or
*aggregate/atom* style.
For computes *cluster/atom* and *aggregate/atom* a neighbor list
needed to compute cluster IDs is constructed each time the compute is
invoked. Thus it can be inefficient to compute/dump this quantity too
frequently or to have multiple *cluster/atom* or *aggregate/atom*
style computes.
.. note::
@ -89,6 +96,14 @@ multiple compute/dump commands, each of a *cluster/atom* or
:doc:`special_bonds <special_bonds>` command that includes all pairs in
the neighbor list.
.. note::
For the compute fragment/atom style, each fragment is identified
using the current bond topology. This will not account for bonds
broken by the :doc:`bond_style quartic <bond_quartic>` command
because it does not perform a full update of the bond topology data
structures within LAMMPS.
**Output info:**
This compute calculates a per-atom vector, which can be accessed by
@ -107,4 +122,7 @@ Related commands
:doc:`compute coord/atom <compute_coord_atom>`
**Default:** none
**Default:**
The default for fragment/atom is single no.

View File

@ -160,63 +160,63 @@ pair styles and parameters that can be used with this compute. See
the doc pages for individual pair styles and their energy formulas for
the meaning of these parameters:
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`born <pair_born>` | a,b,c | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`buck <pair_buck>` | a,c | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`buck/mdf <pair_mdf>` | a,c | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`coul/cut <pair_coul>` | scale | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`coul/cut/soft <pair_fep_soft>` | lambda | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`coul/long, coul/msm <pair_coul>` | scale | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`coul/long/soft <pair_fep_soft>` | scale, lambda | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`eam <pair_eam>` | scale | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`gauss <pair_gauss>` | a | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lennard/mdf <pair_mdf>` | a,b | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/class2 <pair_class2>` | epsilon,sigma | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/class2/coul/cut, lj/class2/coul/long <pair_class2>` | epsilon,sigma | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut <pair_lj>` | epsilon,sigma | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/soft <pair_fep_soft>` | epsilon,sigma,lambda | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/coul/cut, lj/cut/coul/long, lj/cut/coul/msm <pair_lj>` | epsilon,sigma | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/coul/cut/soft, lj/cut/coul/long/soft <pair_fep_soft>` | epsilon,sigma,lambda | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/tip4p/cut, lj/cut/tip4p/long <pair_lj>` | epsilon,sigma | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/tip4p/long/soft <pair_fep_soft>` | epsilon,sigma,lambda | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/expand <pair_lj_expand>` | epsilon,sigma,delta | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/mdf <pair_mdf>` | epsilon,sigma | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/sf/dipole/sf <pair_dipole>` | epsilon,sigma,scale | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`mie/cut <pair_mie>` | epsilon,sigma,gamR,gamA | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`morse, morse/smooth/linear <pair_morse>` | d0,r0,alpha | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`morse/soft <pair_morse>` | d0,r0,alpha,lambda | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`nm/cut <pair_nm>` | e0,r0,nn,mm | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`nm/cut/coul/cut, nm/cut/coul/long <pair_nm>` | e0,r0,nn,mm | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`ufm <pair_ufm>` | epsilon,sigma,scale | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`soft <pair_soft>` | a | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`born <pair_born>` | a,b,c | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`buck <pair_buck>` | a,c | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`buck/mdf <pair_mdf>` | a,c | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`coul/cut <pair_coul>` | scale | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`coul/cut/soft <pair_fep_soft>` | lambda | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`coul/long, coul/msm <pair_coul>` | scale | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`coul/long/soft <pair_fep_soft>` | scale, lambda | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`eam <pair_eam>` | scale | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`gauss <pair_gauss>` | a | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lennard/mdf <pair_mdf>` | a,b | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/class2 <pair_class2>` | epsilon,sigma | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/class2/coul/cut, lj/class2/coul/long <pair_class2>` | epsilon,sigma | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut <pair_lj>` | epsilon,sigma | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/soft <pair_fep_soft>` | epsilon,sigma,lambda | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/coul/cut, lj/cut/coul/long, lj/cut/coul/msm <pair_lj_cut_coul>` | epsilon,sigma | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/coul/cut/soft, lj/cut/coul/long/soft <pair_fep_soft>` | epsilon,sigma,lambda | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/tip4p/cut, lj/cut/tip4p/long <pair_lj_cut_tip4p>` | epsilon,sigma | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/tip4p/long/soft <pair_fep_soft>` | epsilon,sigma,lambda | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/expand <pair_lj_expand>` | epsilon,sigma,delta | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/mdf <pair_mdf>` | epsilon,sigma | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/sf/dipole/sf <pair_dipole>` | epsilon,sigma,scale | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`mie/cut <pair_mie>` | epsilon,sigma,gamR,gamA | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`morse, morse/smooth/linear <pair_morse>` | d0,r0,alpha | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`morse/soft <pair_morse>` | d0,r0,alpha,lambda | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`nm/cut <pair_nm>` | e0,r0,nn,mm | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`nm/cut/coul/cut, nm/cut/coul/long <pair_nm>` | e0,r0,nn,mm | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`ufm <pair_ufm>` | epsilon,sigma,scale | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`soft <pair_soft>` | a | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
Note that it is easy to add new potentials and their parameters to
this list. All it typically takes is adding an extract() method to

177
doc/src/compute_mliap.rst Normal file
View File

@ -0,0 +1,177 @@
.. index:: compute mliap
compute mliap command
=====================
Syntax
""""""
.. code-block:: LAMMPS
compute ID group-ID mliap ... keyword values ...
* ID, group-ID are documented in :doc:`compute <compute>` command
* mliap = style name of this compute command
* two or more keyword/value pairs must be appended
* keyword = *model* or *descriptor* or *gradgradflag*
.. parsed-literal::
*model* values = style
style = *linear* or *quadratic*
*descriptor* values = style filename
style = *sna*
filename = name of file containing descriptor definitions
*gradgradflag* value = 0/1
toggle gradgrad method for force gradient
Examples
""""""""
.. code-block:: LAMMPS
compute mliap model linear descriptor sna Ta06A.mliap.descriptor
Description
"""""""""""
Compute style *mliap* provides a general interface to the gradient
of machine-learning interatomic potentials w.r.t. model parameters.
It is used primarily for calculating the gradient of energy, force, and
stress components w.r.t. model parameters, which is useful when training
:doc:`mliap pair_style <pair_mliap>` models to match target data.
It provides separate
definitions of the interatomic potential functional form (*model*)
and the geometric quantities that characterize the atomic positions
(*descriptor*). By defining *model* and *descriptor* separately,
it is possible to use many different models with a given descriptor,
or many different descriptors with a given model. Currently, the
compute supports just two models, *linear* and *quadratic*,
and one descriptor, *sna*, the SNAP descriptor used by
:doc:`pair_style snap <pair_snap>`, including the linear, quadratic,
and chem variants. Work is currently underway to extend
the interface to handle neural network energy models,
and it is also straightforward to add new descriptor styles.
The compute *mliap* command must be followed by two keywords
*model* and *descriptor* in either order.
The *model* keyword is followed by a model style, currently limited to
either *linear* or *quadratic*.
The *descriptor* keyword is followed by a descriptor style, and additional arguments.
Currently the only descriptor style is *sna*, indicating the bispectrum component
descriptors used by the Spectral Neighbor Analysis Potential (SNAP) potentials of
:doc:`pair_style snap <pair_snap>`.
A single additional argument specifies the descriptor filename
containing the parameters and setting used by the SNAP descriptor.
The descriptor filename usually ends in the *.mliap.descriptor* extension.
The format of this file is identical to the descriptor file in the
:doc:`pair_style mliap <pair_mliap>`, and is described in detail
there.
.. note::
The number of LAMMPS atom types (and the value of *nelems* in the model)
must match the value of *nelems* in the descriptor file.
Compute *mliap* calculates a global array containing gradient information.
The number of columns in the array is :math:`nelems \times nparams + 1`.
The first row of the array contain the derivative of potential energy w.r.t. to
each parameter and each element. The last six rows
of the array contain the corresponding derivatives of the
virial stress tensor, listed in Voigt notation: *pxx*, *pyy*, *pzz*,
*pyz*, *pxz*, *pxy*. In between the energy and stress rows are
the 3\*\ *N* rows containing the derivatives of the force components.
See section below on output for a detailed description of how
rows and columns are ordered.
The element in the last column of each row contains
the potential energy, force, or stress, according to the row.
These quantities correspond to the user-specified reference potential
that must be subtracted from the target data when training a model.
The potential energy calculation uses the built in compute *thermo_pe*.
The stress calculation uses a compute called *mliap_press* that is
automatically created behind the scenes, according to the following
command:
.. code-block:: LAMMPS
compute mliap_press all pressure NULL virial
See section below on output for a detailed explanation of the data
layout in the global array.
The optional keyword *gradgradflag* controls how the force
gradient is calculated. A value of 1 requires that the model provide
the matrix of double gradients of energy w.r.t. both parameters
and descriptors. For the linear and quadratic models this matrix is
sparse and so is easily calculated and stored. For other models, this
matrix may be prohibitively expensive to calculate and store.
A value of 0 requires that the descriptor provide the derivative
of the descriptors w.r.t. the position of every neighbor atom.
This is not optimal for linear and quadratic models, but may be
a better choice for more complex models.
Atoms not in the group do not contribute to this compute.
Neighbor atoms not in the group do not contribute to this compute.
The neighbor list needed to compute this quantity is constructed each
time the calculation is performed (i.e. each time a snapshot of atoms
is dumped). Thus it can be inefficient to compute/dump this quantity
too frequently.
.. note::
If the user-specified reference potentials includes bonded and
non-bonded pairwise interactions, then the settings of
:doc:`special_bonds <special_bonds>` command can remove pairwise
interactions between atoms in the same bond, angle, or dihedral. This
is the default setting for the :doc:`special_bonds <special_bonds>`
command, and means those pairwise interactions do not appear in the
neighbor list. Because this fix uses the neighbor list, it also means
those pairs will not be included in the calculation. The :doc:`rerun <rerun>`
command is not an option here, since the reference potential is required
for the last column of the global array. A work-around is to prevent
pairwise interactions from being removed by explicitly adding a
*tiny* positive value for every pairwise interaction that would otherwise be
set to zero in the :doc:`special_bonds <special_bonds>` command.
----------
**Output info:**
Compute *mliap* evaluates a global array.
The columns are arranged into
*nelems* blocks, listed in order of element *I*\ . Each block
contains one column for each of the *nparams* model parameters.
A final column contains the corresponding energy, force component
on an atom, or virial stress component. The rows of the array appear
in the following order:
* 1 row: Derivatives of potential energy w.r.t. each parameter of each element.
* 3\*\ *N* rows: Derivatives of force components. x, y, and z components of force on atom *i* appearing in consecutive rows. The atoms are sorted based on atom ID.
* 6 rows: Derivatives of virial stress tensor w.r.t. each parameter of each element. The ordering of the rows follows Voigt notation: *pxx*, *pyy*, *pzz*, *pyz*, *pxz*, *pxy*.
These values can be accessed by any command that uses a global array
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
page for an overview of LAMMPS output options. To see how this command
can be used within a Python workflow to train machine-learning interatomic
potentials, see the examples in `FitSNAP <https://github.com/FitSNAP/FitSNAP>`_.
Restrictions
""""""""""""
This compute is part of the MLIAP package. It is only enabled if
LAMMPS was built with that package. In addition, building LAMMPS with the MLIAP package
requires building LAMMPS with the SNAP package.
See the :doc:`Build package <Build_package>` doc page for more info.
Related commands
""""""""""""""""
:doc:`pair_style mliap <pair_mliap>`
Default
"""""""
The keyword defaults are gradgradflag = 1

View File

@ -61,8 +61,8 @@ The summation is over the *nnn* nearest
neighbors of the central atom.
The angles :math:`theta` and :math:`phi` are the standard spherical polar angles
defining the direction of the bond vector :math:`r_{ij}`.
The phase and sign of :math:`Y_{lm}` follow the standard conventions,
so that :math:`{\rm sign}(Y_{ll}(0,0)) = (-1)^l`.
The phase and sign of :math:`Y_{lm}` follow the standard conventions,
so that :math:`{\rm sign}(Y_{ll}(0,0)) = (-1)^l`.
The second equation defines :math:`Q_l`, which is a
rotationally invariant non-negative amplitude obtained by summing
over all the components of degree *l*\ .
@ -181,13 +181,13 @@ values for each atom will be added to the output array, which are real numbers.
If the keyword *components* is set, then the real and imaginary parts
of each component of *normalized* :math:`\hat{Y}_{lm}` will be added to the
output array in the following order: :math:`{\rm Re}(\hat{Y}_{-m}), {\rm Im}(\hat{Y}_{-m}),
{\rm Re}(\hat{Y}_{-m+1}), {\rm Im}(\hat{Y}_{-m+1}), \dots , {\rm Re}(\hat{Y}_m), {\rm Im}(\hat{Y}_m)`.
output array in the following order: :math:`{\rm Re}(\hat{Y}_{-m}), {\rm Im}(\hat{Y}_{-m}),
{\rm Re}(\hat{Y}_{-m+1}), {\rm Im}(\hat{Y}_{-m+1}), \dots , {\rm Re}(\hat{Y}_m), {\rm Im}(\hat{Y}_m)`.
In summary, the per-atom array will contain *nlvalues* columns, followed by
an additional *nlvalues* columns if *wl* is set to yes, followed by
an additional *nlvalues* columns if *wl/hat* is set to yes, followed
by an additional 2\*(2\* *ldegree*\ +1) columns if the *components*
by an additional 2\*(2\* *ldegree*\ +1) columns if the *components*
keyword is set.
These values can be accessed by any command that uses per-atom values

View File

@ -0,0 +1,56 @@
.. index:: compute smd/ulsph/effm
compute smd/ulsph/effm command
================================
Syntax
""""""
.. code-block:: LAMMPS
compute ID group-ID smd/ulsph/effm
* ID, group-ID are documented in :doc:`compute <compute>` command
* smd/ulsph/effm = style name of this compute command
Examples
""""""""
.. code-block:: LAMMPS
compute 1 all smd/ulsph/effm
Description
"""""""""""
Define a computation that outputs the effective shear modulus for
particles interacting via the updated Lagrangian SPH pair style.
See `this PDF guide <PDF/SMD_LAMMPS_userguide.pdf>`_ to using Smooth
Mach Dynamics in LAMMPS.
**Output info:**
This compute calculates a per-particle vector, which can be accessed
by any command that uses per-particle values from a compute as input.
See the :doc:`Howto output <Howto_output>` doc page for an overview of
LAMMPS output options.
The per-particle vector contains the current effective per atom shear
modulus as computed by the :doc:`pair smd/ulsph <pair_smd_ulsph>` pair
style.
Restrictions
""""""""""""
This compute is part of the USER-SMD package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info. This compute can
only be used for particles which interact with the updated Lagrangian
SPH pair style.
Related commands
""""""""""""""""
:doc:`pair smd/ulsph <pair_smd_ulsph>`
**Default:** none

View File

@ -391,7 +391,9 @@ of :math:`K N_{elem}^3` columns.
These values can be accessed by any command that uses per-atom values
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
page for an overview of LAMMPS output options.
page for an overview of LAMMPS output options. To see how this command
can be used within a Python workflow to train SNAP potentials,
see the examples in `FitSNAP <https://github.com/FitSNAP/FitSNAP>`_.
Restrictions
""""""""""""

View File

@ -89,7 +89,7 @@ number of atoms in the system. Note that this is not done for
molecular systems (see the :doc:`atom_style <atom_style>` command),
regardless of the *compress* setting, since it would foul up the bond
connectivity that has already been assigned. However, the
:doc:`reset_ids <reset_ids>` command can be used after this command to
:doc:`reset_atom_ids <reset_atom_ids>` command can be used after this command to
accomplish the same thing.
Note that the re-assignment of IDs is not really a compression, where
@ -157,7 +157,7 @@ using molecule template files via the :doc:`molecule <molecule>` and
Related commands
""""""""""""""""
:doc:`create_atoms <create_atoms>`, :doc:`reset_ids <reset_ids>`
:doc:`create_atoms <create_atoms>`, :doc:`reset_atom_ids <reset_atom_ids>`
Default
"""""""

View File

@ -111,34 +111,34 @@ be listed under a *AngleTorsion Coeffs* heading and you must leave out
the *at*, i.e. only list 8 coefficients after the dihedral type.
* *at*
* :math:`D_1` (energy/radian)
* :math:`D_2` (energy/radian)
* :math:`D_3` (energy/radian)
* :math:`E_1` (energy/radian)
* :math:`E_2` (energy/radian)
* :math:`E_3` (energy/radian)
* :math:`D_1` (energy)
* :math:`D_2` (energy)
* :math:`D_3` (energy)
* :math:`E_1` (energy)
* :math:`E_2` (energy)
* :math:`E_3` (energy)
* :math:`\theta_1` (degrees)
* :math:`\theta_2` (degrees)
:math:`\theta_1` and :math:`\theta_2` are specified in degrees, but LAMMPS converts
them to radians internally; hence the units of :math:`D` and :math:`E` are in
energy/radian.
:math:`\theta_1` and :math:`\theta_2` are specified in degrees, but
LAMMPS converts them to radians internally; hence the various
:math:`D` and :math:`E` are effectively energy per radian.
For the :math:`E_{aat}` formula, each line in a
:doc:`dihedral_coeff <dihedral_coeff>` command in the input script lists
4 coefficients, the first of which is *aat* to indicate they are
AngleAngleTorsion coefficients. In a data file, these coefficients
should be listed under a *AngleAngleTorsion Coeffs* heading and you
must leave out the *aat*, i.e. only list 3 coefficients after the
dihedral type.
For the :math:`E_{aat}` formula, each line in a :doc:`dihedral_coeff
<dihedral_coeff>` command in the input script lists 4 coefficients,
the first of which is *aat* to indicate they are AngleAngleTorsion
coefficients. In a data file, these coefficients should be listed
under a *AngleAngleTorsion Coeffs* heading and you must leave out the
*aat*, i.e. only list 3 coefficients after the dihedral type.
* *aat*
* :math:`M` (energy/radian\^2)
* :math:`M` (energy)
* :math:`\theta_1` (degrees)
* :math:`\theta_2` (degrees)
:math:`\theta_1` and :math:`\theta_2` are specified in degrees, but LAMMPS converts
them to radians internally; hence the units of M are in energy/radian\^2.
:math:`\theta_1` and :math:`\theta_2` are specified in degrees, but
LAMMPS converts them to radians internally; hence :math:`M` is
effectively energy per radian\^2.
For the :math:`E_{bb13}` formula, each line in a
:doc:`dihedral_coeff <dihedral_coeff>` command in the input script lists

View File

@ -39,9 +39,13 @@ above, or in the data file or restart files read by the
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
commands:
* :math:`K` (energy/radian\^2)
* :math:`K` (energy)
* :math:`\phi_0` (degrees)
:math:`\phi_0` is specified in degrees, but LAMMPS converts it to
radians internally; hence :math:`K` is effectively energy per
radian\^2.
----------
Styles with a *gpu*\ , *intel*\ , *kk*\ , *omp*\ , or *opt* suffix are

View File

@ -185,6 +185,7 @@ accelerated styles exist.
* :doc:`bocs <fix_bocs>` - NPT style time integration with pressure correction
* :doc:`bond/break <fix_bond_break>` - break bonds on the fly
* :doc:`bond/create <fix_bond_create>` - create bonds on the fly
* :doc:`bond/create/angle <fix_bond_create>` - create bonds on the fly with angle constraints
* :doc:`bond/react <fix_bond_react>` - apply topology changes to model reactions
* :doc:`bond/swap <fix_bond_swap>` - Monte Carlo bond swapping
* :doc:`box/relax <fix_box_relax>` - relax box size during energy minimization
@ -386,6 +387,7 @@ accelerated styles exist.
* :doc:`wall/region <fix_wall_region>` - use region surface as wall
* :doc:`wall/region/ees <fix_wall_ees>` - use region surface as wall for ellipsoidal particles
* :doc:`wall/srd <fix_wall_srd>` - slip/no-slip wall for SRD particles
* :doc:`widom <fix_widom>` - Widom insertions of atoms or molecules
Restrictions
""""""""""""

View File

@ -123,87 +123,85 @@ current list of pair styles and parameters that can be varied by this
fix. See the doc pages for individual pair styles and their energy
formulas for the meaning of these parameters:
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`born <pair_born>` | a,b,c | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`born/coul/long, born/coul/msm <pair_born>` | coulombic_cutoff | type global |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`buck <pair_buck>` | a,c | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`buck/coul/long, buck/coul/msm <pair_buck>` | coulombic_cutoff | type global |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`buck/mdf <pair_mdf>` | a,c | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`coul/cut <pair_coul>` | scale | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`coul/cut/soft <pair_fep_soft>` | lambda | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`coul/debye <pair_coul>` | scale | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`coul/dsf <pair_coul>` | coulombic_cutoff | type global |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`coul/long, coul/msm <pair_coul>` | coulombic_cutoff, scale | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`coul/long/soft <pair_fep_soft>` | scale, lambda, coulombic_cutoff | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`eam, eam/alloy, eam/fs <pair_eam>` | scale | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`gauss <pair_gauss>` | a | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lennard/mdf <pair_mdf>` | A,B | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/class2 <pair_class2>` | epsilon,sigma | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/class2/coul/cut, lj/class2/coul/long <pair_class2>` | epsilon,sigma,coulombic_cutoff | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/cut <pair_lj>` | epsilon,sigma | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/cut/coul/cut, lj/cut/coul/long, lj/cut/coul/msm <pair_lj>` | epsilon,sigma,coulombic_cutoff | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/cut/coul/cut/soft, lj/cut/coul/long/soft <pair_fep_soft>` | epsilon,sigma,lambda,coulombic_cutoff | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/cut/coul/dsf <pair_lj>` | cutoff | type global |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/cut/tip4p/cut <pair_lj>` | epsilon,sigma,coulombic_cutoff | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/cut/soft <pair_fep_soft>` | epsilon,sigma,lambda | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/expand <pair_lj_expand>` | epsilon,sigma,delta | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/mdf <pair_mdf>` | epsilon,sigma | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/sf/dipole/sf <pair_dipole>` | epsilon,sigma,scale | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lubricate <pair_lubricate>` | mu | global |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`mie/cut <pair_mie>` | epsilon,sigma,gamma_repulsive,gamma_attractive | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`morse, morse/smooth/linear <pair_morse>` | D0,R0,alpha | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`morse/soft <pair_morse>` | D0,R0,alpha,lambda | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`nm/cut <pair_nm>` | E0,R0,m,n | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`nm/cut/coul/cut, nm/cut/coul/long <pair_nm>` | E0,R0,m,n,coulombic_cutoff | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`reax/c <pair_reaxc>` | chi, eta, gamma | type global |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`spin/dmi <pair_spin_dmi>` | coulombic_cutoff | type global |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`spin/exchange <pair_spin_exchange>` | coulombic_cutoff | type global |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`spin/magelec <pair_spin_magelec>` | coulombic_cutoff | type global |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`spin/neel <pair_spin_neel>` | coulombic_cutoff | type global |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`table <pair_table>` | table_cutoff | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`ufm <pair_ufm>` | epsilon,sigma | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`soft <pair_soft>` | a | type pairs |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
| | | |
+---------------------------------------------------------------------+--------------------------------------------------+-------------+
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`born <pair_born>` | a,b,c | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`born/coul/long, born/coul/msm <pair_born>` | coulombic_cutoff | type global |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`buck <pair_buck>` | a,c | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`buck/coul/long, buck/coul/msm <pair_buck>` | coulombic_cutoff | type global |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`buck/mdf <pair_mdf>` | a,c | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`coul/cut <pair_coul>` | scale | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`coul/cut/soft <pair_fep_soft>` | lambda | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`coul/debye <pair_coul>` | scale | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`coul/dsf <pair_coul>` | coulombic_cutoff | type global |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`coul/long, coul/msm <pair_coul>` | coulombic_cutoff, scale | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`coul/long/soft <pair_fep_soft>` | scale, lambda, coulombic_cutoff | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`eam, eam/alloy, eam/fs <pair_eam>` | scale | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`gauss <pair_gauss>` | a | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lennard/mdf <pair_mdf>` | A,B | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/class2 <pair_class2>` | epsilon,sigma | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/class2/coul/cut, lj/class2/coul/long <pair_class2>` | epsilon,sigma,coulombic_cutoff | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/cut <pair_lj>` | epsilon,sigma | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/cut/coul/cut, lj/cut/coul/long, lj/cut/coul/msm <pair_lj_cut_coul>` | epsilon,sigma,coulombic_cutoff | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/cut/coul/cut/soft, lj/cut/coul/long/soft <pair_fep_soft>` | epsilon,sigma,lambda,coulombic_cutoff | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/cut/coul/dsf <pair_lj_cut_coul>` | cutoff | type global |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/cut/tip4p/cut <pair_lj_cut_tip4p>` | epsilon,sigma,coulombic_cutoff | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/cut/soft <pair_fep_soft>` | epsilon,sigma,lambda | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/expand <pair_lj_expand>` | epsilon,sigma,delta | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/mdf <pair_mdf>` | epsilon,sigma | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lj/sf/dipole/sf <pair_dipole>` | epsilon,sigma,scale | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`lubricate <pair_lubricate>` | mu | global |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`mie/cut <pair_mie>` | epsilon,sigma,gamma_repulsive,gamma_attractive | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`morse, morse/smooth/linear <pair_morse>` | D0,R0,alpha | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`morse/soft <pair_morse>` | D0,R0,alpha,lambda | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`nm/cut <pair_nm>` | E0,R0,m,n | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`nm/cut/coul/cut, nm/cut/coul/long <pair_nm>` | E0,R0,m,n,coulombic_cutoff | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`reax/c <pair_reaxc>` | chi, eta, gamma | type global |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`spin/dmi <pair_spin_dmi>` | coulombic_cutoff | type global |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`spin/exchange <pair_spin_exchange>` | coulombic_cutoff | type global |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`spin/magelec <pair_spin_magelec>` | coulombic_cutoff | type global |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`spin/neel <pair_spin_neel>` | coulombic_cutoff | type global |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`table <pair_table>` | table_cutoff | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`ufm <pair_ufm>` | epsilon,sigma | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
| :doc:`soft <pair_soft>` | a | type pairs |
+------------------------------------------------------------------------------+--------------------------------------------------+-------------+
.. note::

View File

@ -117,63 +117,63 @@ change. This is the current list of pair styles and parameters that
can be varied by this fix. See the doc pages for individual pair
styles and their energy formulas for the meaning of these parameters:
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`born <pair_born>` | a,b,c | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`buck <pair_buck>` | a,c | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`buck/mdf <pair_mdf>` | a,c | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`coul/cut <pair_coul>` | scale | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`coul/cut/soft <pair_fep_soft>` | lambda | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`coul/long, coul/msm <pair_coul>` | scale | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`coul/long/soft <pair_fep_soft>` | scale, lambda | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`eam <pair_eam>` | scale | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`gauss <pair_gauss>` | a | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lennard/mdf <pair_mdf>` | a,b | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/class2 <pair_class2>` | epsilon,sigma | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/class2/coul/cut, lj/class2/coul/long <pair_class2>` | epsilon,sigma | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut <pair_lj>` | epsilon,sigma | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/soft <pair_fep_soft>` | epsilon,sigma,lambda | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/coul/cut, lj/cut/coul/long, lj/cut/coul/msm <pair_lj>` | epsilon,sigma | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/coul/cut/soft, lj/cut/coul/long/soft <pair_fep_soft>` | epsilon,sigma,lambda | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/tip4p/cut, lj/cut/tip4p/long <pair_lj>` | epsilon,sigma | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/tip4p/long/soft <pair_fep_soft>` | epsilon,sigma,lambda | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/expand <pair_lj_expand>` | epsilon,sigma,delta | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/mdf <pair_mdf>` | epsilon,sigma | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/sf/dipole/sf <pair_dipole>` | epsilon,sigma,scale | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`mie/cut <pair_mie>` | epsilon,sigma,gamR,gamA | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`morse, morse/smooth/linear <pair_morse>` | d0,r0,alpha | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`morse/soft <pair_morse>` | d0,r0,alpha,lambda | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`nm/cut <pair_nm>` | e0,r0,nn,mm | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`nm/cut/coul/cut, nm/cut/coul/long <pair_nm>` | e0,r0,nn,mm | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`ufm <pair_ufm>` | epsilon,sigma,scale | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
| :doc:`soft <pair_soft>` | a | type pairs |
+---------------------------------------------------------------------+-------------------------+------------+
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`born <pair_born>` | a,b,c | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`buck <pair_buck>` | a,c | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`buck/mdf <pair_mdf>` | a,c | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`coul/cut <pair_coul>` | scale | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`coul/cut/soft <pair_fep_soft>` | lambda | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`coul/long, coul/msm <pair_coul>` | scale | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`coul/long/soft <pair_fep_soft>` | scale, lambda | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`eam <pair_eam>` | scale | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`gauss <pair_gauss>` | a | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lennard/mdf <pair_mdf>` | a,b | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/class2 <pair_class2>` | epsilon,sigma | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/class2/coul/cut, lj/class2/coul/long <pair_class2>` | epsilon,sigma | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut <pair_lj>` | epsilon,sigma | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/soft <pair_fep_soft>` | epsilon,sigma,lambda | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/coul/cut, lj/cut/coul/long, lj/cut/coul/msm <pair_lj_cut_coul>` | epsilon,sigma | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/coul/cut/soft, lj/cut/coul/long/soft <pair_fep_soft>` | epsilon,sigma,lambda | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/tip4p/cut, lj/cut/tip4p/long <pair_lj_cut_tip4p>` | epsilon,sigma | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/cut/tip4p/long/soft <pair_fep_soft>` | epsilon,sigma,lambda | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/expand <pair_lj_expand>` | epsilon,sigma,delta | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/mdf <pair_mdf>` | epsilon,sigma | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`lj/sf/dipole/sf <pair_dipole>` | epsilon,sigma,scale | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`mie/cut <pair_mie>` | epsilon,sigma,gamR,gamA | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`morse, morse/smooth/linear <pair_morse>` | d0,r0,alpha | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`morse/soft <pair_morse>` | d0,r0,alpha,lambda | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`nm/cut <pair_nm>` | e0,r0,nn,mm | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`nm/cut/coul/cut, nm/cut/coul/long <pair_nm>` | e0,r0,nn,mm | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`ufm <pair_ufm>` | epsilon,sigma,scale | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
| :doc:`soft <pair_soft>` | a | type pairs |
+------------------------------------------------------------------------------+-------------------------+------------+
.. note::

View File

@ -3,6 +3,9 @@
fix bond/create command
=======================
fix bond/create/angle command
=============================
Syntax
""""""
@ -17,7 +20,7 @@ Syntax
* Rmin = 2 atoms separated by less than Rmin can bond (distance units)
* bondtype = type of created bonds
* zero or more keyword/value pairs may be appended to args
* keyword = *iparam* or *jparam* or *prob* or *atype* or *dtype* or *itype*
* keyword = *iparam* or *jparam* or *prob* or *atype* or *dtype* or *itype* or *aconstrain*
.. parsed-literal::
@ -36,6 +39,9 @@ Syntax
dihedraltype = type of created dihedrals
*itype* value = impropertype
impropertype = type of created impropers
*aconstrain* value = amin amax
amin = minimal angle at which new bonds can be created
amax = maximal angle at which new bonds can be created
Examples
""""""""
@ -45,6 +51,7 @@ Examples
fix 5 all bond/create 10 1 2 0.8 1
fix 5 all bond/create 1 3 3 0.8 1 prob 0.5 85784 iparam 2 3
fix 5 all bond/create 1 3 3 0.8 1 prob 0.5 85784 iparam 2 3 atype 1 dtype 2
fix 5 all bond/create/angle 10 1 2 1.122 1 aconstrain 120 180 prob 1 4928459 iparam 2 1 jparam 2 2
Description
"""""""""""
@ -110,7 +117,16 @@ actually created. The *fraction* setting must be a value between 0.0
and 1.0. A uniform random number between 0.0 and 1.0 is generated and
the eligible bond is only created if the random number < fraction.
Any bond that is created is assigned a bond type of *bondtype*
The *aconstrain* keyword is only available with the fix
bond/create/angle command. It allows to specify a minimal and maximal
angle *amin* and *amax* between the two prospective bonding partners and
a third particle that is already bonded to one of the two partners.
Such a criterion can be important when new angles are defined together
with the formation of a new bond. Without a restriction on the
permissible angle, and for stiffer angle potentials, very large energies
can arise and lead to uncontrolled behavior.
Any bond that is created is assigned a bond type of *bondtype*.
When a bond is created, data structures within LAMMPS that store bond
topology are updated to reflect the creation. If the bond is part of
@ -218,12 +234,14 @@ You can dump out snapshots of the current bond topology via the :doc:`dump local
**Restart, fix_modify, output, run start/stop, minimize info:**
No information about this fix is written to :doc:`binary restart files <restart>`. None of the :doc:`fix_modify <fix_modify>` options
are relevant to this fix.
No information about this fix is written to :doc:`binary restart files
<restart>`. None of the :doc:`fix_modify <fix_modify>` options are
relevant to this fix.
This fix computes two statistics which it stores in a global vector of
length 2, which can be accessed by various :doc:`output commands <Howto_output>`. The vector values calculated by this fix
are "intensive".
length 2, which can be accessed by various :doc:`output commands
<Howto_output>`. The vector values calculated by this fix are
"intensive".
These are the 2 quantities:

View File

@ -68,7 +68,7 @@ Description
This fix performs grand canonical Monte Carlo (GCMC) exchanges of
atoms or molecules with an imaginary ideal gas
reservoir at the specified T and chemical potential (mu) as discussed
in :ref:`(Frenkel) <Frenkel>`. It also
in :ref:`(Frenkel) <Frenkel2>`. It also
attempts Monte Carlo (MC) moves (translations and molecule
rotations) within the simulation cell or
region. If used with the :doc:`fix nvt <fix_nh>`
@ -481,7 +481,7 @@ listed above.
----------
.. _Frenkel:
.. _Frenkel2:
**(Frenkel)** Frenkel and Smit, Understanding Molecular Simulation,
Academic Press, London, 2002.

View File

@ -15,7 +15,7 @@ Syntax
* dir = *x* or *y* or *z*
* shockvel = shock velocity (strictly positive, velocity units)
* zero or more keyword/value pairs may be appended
* keyword = *q* or *mu* or *p0* or *v0* or *e0* or *tscale* or *damp* or *seed*\ or *f_max* or *N_f* or *eta* or *beta* or *T_init*
* keyword = *q* or *mu* or *p0* or *v0* or *e0* or *tscale* or *damp* or *seed* or *f_max* or *N_f* or *eta* or *beta* or *T_init*
.. parsed-literal::

View File

@ -183,11 +183,13 @@ the restraint is
with the following coefficients:
* :math:`K` (energy/radian\^2)
* :math:`K` (energy)
* :math:`\theta_0` (degrees)
:math:`K` and :math:`\theta_0` are specified with the fix. Note that the usual 1/2
factor is included in :math:`K`.
:math:`K` and :math:`\theta_0` are specified with the fix.
:math:`\theta_0` is specified in degrees, but LAMMPS converts it to
radians internally; hence :math:`K` is effectively energy per
radian\^2. Note that the usual 1/2 factor is included in :math:`K`.
----------

View File

@ -93,7 +93,7 @@ Related commands
""""""""""""""""
:doc:`kspace_style <kspace_style>`, :doc:`boundary <boundary>`
:doc:`kspace_modify <kspace_modify>`, :doc:`pair_style lj/cut/coul/long <pair_lj>`, :doc:`pair_style lj/charmm/coul/long <pair_charmm>`, :doc:`pair_style lj/long <pair_lj_long>`, :doc:`pair_style lj/long/coul/long <pair_lj_long>`,
:doc:`kspace_modify <kspace_modify>`, :doc:`pair_style lj/cut/coul/long <pair_lj_cut_coul>`, :doc:`pair_style lj/charmm/coul/long <pair_charmm>`, :doc:`pair_style lj/long <pair_lj_long>`, :doc:`pair_style lj/long/coul/long <pair_lj_long>`,
:doc:`pair_style buck/coul/long <pair_buck>`
Default

227
doc/src/fix_widom.rst Normal file
View File

@ -0,0 +1,227 @@
.. index:: fix widom
fix widom command
=================
Syntax
""""""
.. parsed-literal::
fix ID group-ID widom N M type seed T keyword values ...
* ID, group-ID are documented in :doc:`fix <fix>` command
* widom = style name of this fix command
* N = invoke this fix every N steps
* M = number of Widom insertions to attempt every N steps
* type = atom type for inserted atoms (must be 0 if mol keyword used)
* seed = random # seed (positive integer)
* T = temperature of the system (temperature units)
* zero or more keyword/value pairs may be appended to args
.. parsed-literal::
keyword = *mol*\ , *region*\ , *full_energy*, *charge*\ , *intra_energy*
*mol* value = template-ID
template-ID = ID of molecule template specified in a separate :doc:`molecule <molecule>` command
*region* value = region-ID
region-ID = ID of region where Widom insertions are allowed
*full_energy* = compute the entire system energy when performing Widom insertions
*charge* value = charge of inserted atoms (charge units)
*intra_energy* value = intramolecular energy (energy units)
Examples
""""""""
.. code-block:: LAMMPS
fix 2 gas widom 1 50000 1 19494 2.0
fix 3 water widom 1000 100 0 29494 300.0 mol h2omol full_energy
Description
"""""""""""
This fix performs Widom insertions of atoms or molecules at the given
temperature as discussed in :ref:`(Frenkel) <Frenkel1>`. Specific uses
include computation of Henry constants of small molecules in microporous
materials or amorphous systems.
Every N timesteps the fix attempts M number of Widom insertions of atoms
or molecules.
If the *mol* keyword is used, only molecule insertions are performed.
Conversely, if the *mol* keyword is not used, only atom insertions are
performed.
This command may optionally use the *region* keyword to define an
insertion volume. The specified region must have been previously
defined with a :doc:`region <region>` command. It must be defined with
side = *in*\ . Insertion attempts occur only within the specified
region. For non-rectangular regions, random trial points are generated
within the rectangular bounding box until a point is found that lies
inside the region. If no valid point is generated after 1000 trials, no
insertion is performed. If an attempted insertion places the atom or
molecule center-of-mass outside the specified region, a new attempted
insertion is generated. This process is repeated until the atom or
molecule center-of-mass is inside the specified region.
Note that neighbor lists are re-built every timestep that this fix is
invoked, so you should not set N to be too small. See the :doc:`neighbor
<neighbor>` command for details.
When an atom or molecule is to be inserted, its coordinates are chosen
at a random position within the current simulation cell or region.
Relative coordinates for atoms in a molecule are taken from the
template molecule provided by the user. The center of mass of the
molecule is placed at the insertion point. The orientation of the
molecule is chosen at random by rotating about this point.
Individual atoms are inserted, unless the *mol* keyword is used. It
specifies a *template-ID* previously defined using the :doc:`molecule
<molecule>` command, which reads a file that defines the molecule. The
coordinates, atom types, charges, etc., as well as any bonding and
special neighbor information for the molecule can be specified in the
molecule file. See the :doc:`molecule <molecule>` command for details.
The only settings required to be in this file are the coordinates and
types of atoms in the molecule.
If you wish to insert molecules via the *mol* keyword, that will have
their bonds or angles constrained via SHAKE, use the *shake* keyword,
specifying as its value the ID of a separate :doc:`fix shake
<fix_shake>` command which also appears in your input script.
Note that fix widom does not use configurational bias MC or any other
kind of sampling of intramolecular degrees of freedom. Inserted
molecules can have different orientations, but they will all have the
same intramolecular configuration, which was specified in the molecule
command input.
For atoms, inserted particles have the specified atom type. For
molecules, they use the same atom types as in the template molecule
supplied by the user.
The excess chemical potential mu_ex is defined as:
.. math::
\mu_{ex} = -kT \ln(<\exp(-(U_{N+1}-U_{N})/{kT})>)
where *k* is Boltzman's constant, *T* is the user-specified temperature,
U_N and U_{N+1} is the potential energy of the system with N and N+1
particles.
The *full_energy* option means that the fix calculates the total
potential energy of the entire simulated system, instead of just the
energy of the part that is changed. By default, this option is off, in
which case only partial energies are computed to determine the energy
difference due to the proposed change.
The *full_energy* option is needed for systems with complicated
potential energy calculations, including the following:
* long-range electrostatics (kspace)
* many-body pair styles
* hybrid pair styles
* eam pair styles
* tail corrections
* need to include potential energy contributions from other fixes
In these cases, LAMMPS will automatically apply the *full_energy*
keyword and issue a warning message.
When the *mol* keyword is used, the *full_energy* option also includes
the intramolecular energy of inserted and deleted molecules, whereas
this energy is not included when *full_energy* is not used. If this is
not desired, the *intra_energy* keyword can be used to define an amount
of energy that is subtracted from the final energy when a molecule is
inserted, and subtracted from the initial energy when a molecule is
deleted. For molecules that have a non-zero intramolecular energy, this
will ensure roughly the same behavior whether or not the *full_energy*
option is used.
Some fixes have an associated potential energy. Examples of such fixes
include: :doc:`efield <fix_efield>`, :doc:`gravity <fix_gravity>`,
:doc:`addforce <fix_addforce>`, :doc:`restrain <fix_restrain>`, and
:doc:`wall fixes <fix_wall>`. For that energy to be included in the
total potential energy of the system (the quantity used when performing
Widom insertions), you MUST enable the :doc:`fix_modify <fix_modify>`
*energy* option for that fix. The doc pages for individual :doc:`fix
<fix>` commands specify if this should be done.
Use the *charge* option to insert atoms with a user-specified point
charge. Note that doing so will cause the system to become non-neutral.
LAMMPS issues a warning when using long-range electrostatics (kspace)
with non-neutral systems. See the :doc:`compute group/group
<compute_group_group>` documentation for more details about simulating
non-neutral systems with kspace on.
**Restart, fix_modify, output, run start/stop, minimize info:**
This fix writes the state of the fix to :doc:`binary restart files
<restart>`. This includes information about the random number generator
seed, the next timestep for Widom insertions etc. See the
:doc:`read_restart <read_restart>` command for info on how to re-specify
a fix in an input script that reads a restart file, so that the
operation of the fix continues in an uninterrupted fashion.
.. note::
For this to work correctly, the timestep must **not** be changed
after reading the restart with :doc:`reset_timestep
<reset_timestep>`. The fix will try to detect it and stop with an
error.
None of the :doc:`fix_modify <fix_modify>` options are relevant to this
fix.
This fix computes a global vector of length 3, which can be accessed by
various :doc:`output commands <Howto_output>`. The vector values are
the following global cumulative quantities:
* 1 = average excess chemical potential on each timestep
* 2 = average difference in potential energy on each timestep
* 3 = volume of the insertion region
The vector values calculated by this fix are "extensive".
No parameter of this fix can be used with the *start/stop* keywords of
the :doc:`run <run>` command. This fix is not invoked during
:doc:`energy minimization <minimize>`.
Restrictions
""""""""""""
This fix is part of the MC package. It is only enabled if LAMMPS was
built with that package. See the :doc:`Build package <Build_package>`
doc page for more info.
Do not set "neigh_modify once yes" or else this fix will never be
called. Reneighboring is **required**.
Can be run in parallel, but aspects of the GCMC part will not scale well
in parallel. Only usable for 3D simulations.
Related commands
""""""""""""""""
:doc:`fix gcmc <fix_gcmc>`
:doc:`fix atom/swap <fix_atom_swap>`,
:doc:`neighbor <neighbor>`,
:doc:`fix deposit <fix_deposit>`, :doc:`fix evaporate <fix_evaporate>`,
Default
"""""""
The option defaults are mol = no, intra_energy = 0.0 and full_energy =
no, except for the situations where full_energy is required, as listed
above.
----------
.. _Frenkel1:
**(Frenkel)** Frenkel and Smit, Understanding Molecular Simulation,
Academic Press, London, 2002.

View File

@ -74,29 +74,31 @@ commands.
These are the 2 coefficients for the :math:`E_i` formula:
* :math:`K` (energy/radian\^2)
* :math:`K` (energy)
* :math:`\chi_0` (degrees)
:math:`\chi_0` is specified in degrees, but LAMMPS converts it to radians
internally; hence the units of K are in energy/radian\^2.
:math:`\chi_0` is specified in degrees, but LAMMPS converts it to
radians internally; hence :math:`K` is effectively energy per
radian\^2.
For the :math:`E_{aa}` formula, each line in a
:doc:`improper_coeff <improper_coeff>` command in the input script lists
7 coefficients, the first of which is *aa* to indicate they are
AngleAngle coefficients. In a data file, these coefficients should be
listed under a *AngleAngle Coeffs* heading and you must leave out the
*aa*, i.e. only list 6 coefficients after the improper type.
For the :math:`E_{aa}` formula, each line in a :doc:`improper_coeff
<improper_coeff>` command in the input script lists 7 coefficients,
the first of which is *aa* to indicate they are AngleAngle
coefficients. In a data file, these coefficients should be listed
under a *AngleAngle Coeffs* heading and you must leave out the *aa*,
i.e. only list 6 coefficients after the improper type.
* *aa*
* :math:`M_1` (energy/distance)
* :math:`M_2` (energy/distance)
* :math:`M_3` (energy/distance)
* :math:`M_1` (energy)
* :math:`M_2` (energy)
* :math:`M_3` (energy)
* :math:`\theta_1` (degrees)
* :math:`\theta_2` (degrees)
* :math:`\theta_3` (degrees)
The theta values are specified in degrees, but LAMMPS converts them to
radians internally; hence the units of M are in energy/radian\^2.
The :math:`\theta` values are specified in degrees, but LAMMPS
converts them to radians internally; hence the hence the various
:math:`M` are effectively energy per radian\^2.
----------
@ -109,7 +111,8 @@ produce the same results, except for round-off and precision issues.
These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
USER-OMP and OPT packages, respectively. They are only enabled if
LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` doc page for more info.
LAMMPS was built with those packages. See the :doc:`Build package
<Build_package>` doc page for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the :doc:`-suffix command-line switch <Run_options>` when you invoke LAMMPS, or you can use the

View File

@ -59,11 +59,12 @@ above, or in the data file or restart files read by the
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
commands:
* :math:`K` (energy/radian\^2)
* :math:`K` (energy)
* :math:`\chi_0` (degrees)
:math:`\chi_0` is specified in degrees, but LAMMPS converts it to radians
internally; hence the units of K are in energy/radian\^2.
:math:`\chi_0` is specified in degrees, but LAMMPS converts it to
radians internally; hence :math:`K` is effectively energy per
radian\^2.
----------
@ -76,11 +77,13 @@ produce the same results, except for round-off and precision issues.
These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
USER-OMP and OPT packages, respectively. They are only enabled if
LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` doc page for more info.
LAMMPS was built with those packages. See the :doc:`Build package
<Build_package>` doc page for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the :doc:`-suffix command-line switch <Run_options>` when you invoke LAMMPS, or you can use the
:doc:`suffix <suffix>` command in your input script.
by including their suffix, or you can use the :doc:`-suffix
command-line switch <Run_options>` when you invoke LAMMPS, or you can
use the :doc:`suffix <suffix>` command in your input script.
See the :doc:`Speed packages <Speed_packages>` doc page for more
instructions on how to use the accelerated styles effectively.

View File

@ -437,7 +437,7 @@ virial, so this contribution is not included.
Related commands
""""""""""""""""
:doc:`kspace_modify <kspace_modify>`, :doc:`pair_style lj/cut/coul/long <pair_lj>`, :doc:`pair_style lj/charmm/coul/long <pair_charmm>`, :doc:`pair_style lj/long/coul/long <pair_lj_long>`, :doc:`pair_style buck/coul/long <pair_buck>`
:doc:`kspace_modify <kspace_modify>`, :doc:`pair_style lj/cut/coul/long <pair_lj_cut_coul>`, :doc:`pair_style lj/charmm/coul/long <pair_charmm>`, :doc:`pair_style lj/long/coul/long <pair_lj_long>`, :doc:`pair_style buck/coul/long <pair_buck>`
Default
"""""""

View File

@ -231,7 +231,7 @@ so that its energy is 0.0 at the cutoff via the
:doc:`pair_modify <pair_modify>` command. See the doc pages for
individual :doc:`pair styles <pair_style>` for details. Note that
Coulombic potentials always have a cutoff, unless versions with a
long-range component are used (e.g. :doc:`pair_style lj/cut/coul/long <pair_lj>`). The CHARMM potentials go to 0.0 at
long-range component are used (e.g. :doc:`pair_style lj/cut/coul/long <pair_lj_cut_coul>`). The CHARMM potentials go to 0.0 at
the cutoff (e.g. :doc:`pair_style lj/charmm/coul/charmm <pair_charmm>`),
as do the GROMACS potentials (e.g. :doc:`pair_style lj/gromacs <pair_gromacs>`).

View File

@ -518,7 +518,7 @@ script are supported by the KOKKOS package. In this case data can stay
on the GPU for many timesteps without being moved between the host and
GPU, if you use the *device* value. If your script uses styles (e.g.
fixes) which are not yet supported by the KOKKOS package, then data has
to be move between the host and device anyway, so it is typically faster
to be moved between the host and device anyway, so it is typically faster
to let the host handle communication, by using the *host* value. Using
*host* instead of *no* will enable use of multiple threads to
pack/unpack communicated data. When running small systems on a GPU,

View File

@ -120,7 +120,7 @@ the "/cs" in the name:
* :doc:`pair_style buck/coul/long <pair_buck>`
* :doc:`pair_style coul/long <pair_coul>`
* :doc:`pair_style coul/wolf <pair_coul>`
* :doc:`pair_style lj/cut/coul/long <pair_lj>`
* :doc:`pair_style lj/cut/coul/long <pair_lj_cut_coul>`
* :doc:`pair_style lj/class2/coul/long <pair_class2>`
except that they correctly treat the special case where the distance

View File

@ -1,109 +1,15 @@
.. index:: pair_style lj/cut
.. index:: pair_style lj/cut/gpu
.. index:: pair_style lj/cut/intel
.. index:: pair_style lj/cut/kk
.. index:: pair_style lj/cut/opt
.. index:: pair_style lj/cut/omp
pair_style lj/cut command
=========================
pair_style lj/cut/gpu command
=============================
pair_style lj/cut/intel command
===============================
pair_style lj/cut/kk command
============================
pair_style lj/cut/opt command
=============================
pair_style lj/cut/omp command
=============================
pair_style lj/cut/coul/cut command
==================================
pair_style lj/cut/coul/cut/gpu command
======================================
pair_style lj/cut/coul/cut/kk command
=====================================
pair_style lj/cut/coul/cut/omp command
======================================
pair_style lj/cut/coul/debye command
====================================
pair_style lj/cut/coul/debye/gpu command
========================================
pair_style lj/cut/coul/debye/kk command
=======================================
pair_style lj/cut/coul/debye/omp command
========================================
pair_style lj/cut/coul/dsf command
==================================
pair_style lj/cut/coul/dsf/gpu command
======================================
pair_style lj/cut/coul/dsf/kk command
=====================================
pair_style lj/cut/coul/dsf/omp command
======================================
pair_style lj/cut/coul/long command
===================================
pair_style lj/cut/coul/long/gpu command
=======================================
pair_style lj/cut/coul/long/kk command
======================================
pair_style lj/cut/coul/long/intel command
=========================================
pair_style lj/cut/coul/long/opt command
=======================================
pair_style lj/cut/coul/long/omp command
=======================================
pair_style lj/cut/coul/msm command
==================================
pair_style lj/cut/coul/msm/gpu command
======================================
pair_style lj/cut/coul/msm/omp command
======================================
pair_style lj/cut/coul/wolf command
===================================
pair_style lj/cut/coul/wolf/omp command
=======================================
pair_style lj/cut/tip4p/cut command
===================================
pair_style lj/cut/tip4p/cut/omp command
=======================================
pair_style lj/cut/tip4p/long command
====================================
pair_style lj/cut/tip4p/long/gpu command
========================================
pair_style lj/cut/tip4p/long/omp command
========================================
pair_style lj/cut/tip4p/long/opt command
========================================
Accelerator Variants: *lj/cut/gpu*, *lj/cut/intel*, *lj/cut/kk*, *lj/cut/opt*, *lj/cut/omp*
Syntax
""""""
@ -112,46 +18,13 @@ Syntax
pair_style style args
* style = *lj/cut* or *lj/cut/coul/cut* or *lj/cut/coul/debye* or *lj/cut/coul/dsf* or *lj/cut/coul/long* *lj/cut/coul/msm* or *lj/cut/tip4p/long*
* style = *lj/cut*
* args = list of arguments for a particular style
.. parsed-literal::
*lj/cut* args = cutoff
cutoff = global cutoff for Lennard Jones interactions (distance units)
*lj/cut/coul/cut* args = cutoff (cutoff2)
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
*lj/cut/coul/debye* args = kappa cutoff (cutoff2)
kappa = inverse of the Debye length (inverse distance units)
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
*lj/cut/coul/dsf* args = alpha cutoff (cutoff2)
alpha = damping parameter (inverse distance units)
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (distance units)
*lj/cut/coul/long* args = cutoff (cutoff2)
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
*lj/cut/coul/msm* args = cutoff (cutoff2)
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
*lj/cut/coul/wolf* args = alpha cutoff (cutoff2)
alpha = damping parameter (inverse distance units)
cutoff = global cutoff for LJ (and Coulombic if only 2 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
*lj/cut/tip4p/cut* args = otype htype btype atype qdist cutoff (cutoff2)
otype,htype = atom types for TIP4P O and H
btype,atype = bond and angle types for TIP4P waters
qdist = distance from O atom to massless charge (distance units)
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
*lj/cut/tip4p/long* args = otype htype btype atype qdist cutoff (cutoff2)
otype,htype = atom types for TIP4P O and H
btype,atype = bond and angle types for TIP4P waters
qdist = distance from O atom to massless charge (distance units)
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
Examples
""""""""
@ -162,46 +35,6 @@ Examples
pair_coeff * * 1 1
pair_coeff 1 1 1 1.1 2.8
pair_style lj/cut/coul/cut 10.0
pair_style lj/cut/coul/cut 10.0 8.0
pair_coeff * * 100.0 3.0
pair_coeff 1 1 100.0 3.5 9.0
pair_coeff 1 1 100.0 3.5 9.0 9.0
pair_style lj/cut/coul/debye 1.5 3.0
pair_style lj/cut/coul/debye 1.5 2.5 5.0
pair_coeff * * 1.0 1.0
pair_coeff 1 1 1.0 1.5 2.5
pair_coeff 1 1 1.0 1.5 2.5 5.0
pair_style lj/cut/coul/dsf 0.05 2.5 10.0
pair_coeff * * 1.0 1.0
pair_coeff 1 1 1.0 1.0 2.5
pair_style lj/cut/coul/long 10.0
pair_style lj/cut/coul/long 10.0 8.0
pair_coeff * * 100.0 3.0
pair_coeff 1 1 100.0 3.5 9.0
pair_style lj/cut/coul/msm 10.0
pair_style lj/cut/coul/msm 10.0 8.0
pair_coeff * * 100.0 3.0
pair_coeff 1 1 100.0 3.5 9.0
pair_style lj/cut/tip4p/cut 1 2 7 8 0.15 12.0
pair_style lj/cut/tip4p/cut 1 2 7 8 0.15 12.0 10.0
pair_coeff * * 100.0 3.0
pair_coeff 1 1 100.0 3.5 9.0
pair_style lj/cut/coul/wolf 0.2 5. 10.0
pair_coeff * * 1.0 1.0
pair_coeff 1 1 1.0 1.0 2.5
pair_style lj/cut/tip4p/long 1 2 7 8 0.15 12.0
pair_style lj/cut/tip4p/long 1 2 7 8 0.15 12.0 10.0
pair_coeff * * 100.0 3.0
pair_coeff 1 1 100.0 3.5 9.0
Description
"""""""""""
@ -214,150 +47,36 @@ given by
\left(\frac{\sigma}{r}\right)^6 \right]
\qquad r < r_c
Rc is the cutoff.
:math:`r_c` is the cutoff.
Style *lj/cut/coul/cut* adds a Coulombic pairwise interaction given by
See the :doc:`lj/cut/coul <pair_lj_cut_coul>` styles to add a Coulombic
pairwise interaction and the :doc:`lj/cut/tip4p <pair_lj_cut_tip4p>` styles to
add the TIP4P water model.
.. math::
Coefficients
""""""""""""
E = \frac{C q_i q_j}{\epsilon r} \qquad r < r_c
where C is an energy-conversion constant, :math:`q_i` and :math:`q_j`
are the charges on the 2 atoms, and :math:`\epsilon` is the dielectric
constant which can be set by the :doc:`dielectric <dielectric>` command.
If one cutoff is specified in the pair_style command, it is used for
both the LJ and Coulombic terms. If two cutoffs are specified, they are
used as cutoffs for the LJ and Coulombic terms respectively.
Style *lj/cut/coul/debye* adds an additional exp() damping factor
to the Coulombic term, given by
.. math::
E = \frac{C q_i q_j}{\epsilon r} \exp(- \kappa r) \qquad r < r_c
where :math:`\kappa` is the inverse of the Debye length. This potential
is another way to mimic the screening effect of a polar solvent.
Style *lj/cut/coul/dsf* computes the Coulombic term via the damped
shifted force model described in :ref:`Fennell <Fennell2>`, given by:
.. math::
E =
q_iq_j \left[ \frac{\mbox{erfc} (\alpha r)}{r} - \frac{\mbox{erfc} (\alpha r_c)}{r_c} +
\left( \frac{\mbox{erfc} (\alpha r_c)}{r_c^2} + \frac{2\alpha}{\sqrt{\pi}}\frac{\exp (-\alpha^2 r^2_c)}{r_c} \right)(r-r_c) \right] \qquad r < r_c
where :math:`\alpha` is the damping parameter and erfc() is the complementary
error-function. This potential is essentially a short-range,
spherically-truncated, charge-neutralized, shifted, pairwise *1/r*
summation. The potential is based on Wolf summation, proposed as an
alternative to Ewald summation for condensed phase systems where
charge screening causes electrostatic interactions to become
effectively short-ranged. In order for the electrostatic sum to be
absolutely convergent, charge neutralization within the cutoff radius
is enforced by shifting the potential through placement of image
charges on the cutoff sphere. Convergence can often be improved by
setting :math:`\alpha` to a small non-zero value.
Styles *lj/cut/coul/long* and *lj/cut/coul/msm* compute the same
Coulombic interactions as style *lj/cut/coul/cut* except that an
additional damping factor is applied to the Coulombic term so it can
be used in conjunction with the :doc:`kspace_style <kspace_style>`
command and its *ewald* or *pppm* option. The Coulombic cutoff
specified for this style means that pairwise interactions within this
distance are computed directly; interactions outside that distance are
computed in reciprocal space.
Style *coul/wolf* adds a Coulombic pairwise interaction via the Wolf
summation method, described in :ref:`Wolf <Wolf1>`, given by:
.. math::
E_i = \frac{1}{2} \sum_{j \neq i}
\frac{q_i q_j {\rm erfc}(\alpha r_{ij})}{r_{ij}} +
\frac{1}{2} \sum_{j \neq i}
\frac{q_i q_j {\rm erf}(\alpha r_{ij})}{r_{ij}} \qquad r < r_c
where :math:`\alpha` is the damping parameter, and erfc() is the
complementary error-function terms. This potential is essentially a
short-range, spherically-truncated, charge-neutralized, shifted,
pairwise *1/r* summation. With a manipulation of adding and subtracting
a self term (for i = j) to the first and second term on the
right-hand-side, respectively, and a small enough :math:`\alpha` damping
parameter, the second term shrinks and the potential becomes a
rapidly-converging real-space summation. With a long enough cutoff and
small enough :math:`\alpha` parameter, the energy and forces calculated by the
Wolf summation method approach those of the Ewald sum. So it is a means
of getting effective long-range interactions with a short-range
potential.
Styles *lj/cut/tip4p/cut* and *lj/cut/tip4p/long* implement the TIP4P
water model of :ref:`(Jorgensen) <Jorgensen2>`, which introduces a massless
site located a short distance away from the oxygen atom along the
bisector of the HOH angle. The atomic types of the oxygen and
hydrogen atoms, the bond and angle types for OH and HOH interactions,
and the distance to the massless charge site are specified as
pair_style arguments. Style *lj/cut/tip4p/cut* uses a cutoff for
Coulomb interactions; style *lj/cut/tip4p/long* is for use with a
long-range Coulombic solver (Ewald or PPPM).
.. note::
For each TIP4P water molecule in your system, the atom IDs for
the O and 2 H atoms must be consecutive, with the O atom first. This
is to enable LAMMPS to "find" the 2 H atoms associated with each O
atom. For example, if the atom ID of an O atom in a TIP4P water
molecule is 500, then its 2 H atoms must have IDs 501 and 502.
See the :doc:`Howto tip4p <Howto_tip4p>` doc page for more information
on how to use the TIP4P pair styles and lists of parameters to set.
Note that the neighbor list cutoff for Coulomb interactions is
effectively extended by a distance 2\*qdist when using the TIP4P pair
style, to account for the offset distance of the fictitious charges on
O atoms in water molecules. Thus it is typically best in an
efficiency sense to use a LJ cutoff >= Coulombic cutoff + 2\*qdist, to
shrink the size of the neighbor list. This leads to slightly larger
cost for the long-range calculation, so you can test the trade-off for
your model.
For all of the *lj/cut* pair styles, the following coefficients must
be defined for each pair of atoms types via the
:doc:`pair_coeff <pair_coeff>` command as in the examples above, or in
the data file or restart files read by the :doc:`read_data <read_data>`
or :doc:`read_restart <read_restart>` commands, or by mixing as
described below:
The following coefficients must be defined for each pair of atoms types via the
:doc:`pair_coeff <pair_coeff>` command as in the examples above, or in the data
file or restart files read by the :doc:`read_data <read_data>` or
:doc:`read_restart <read_restart>` commands, or by mixing as described below:
* :math:`\epsilon` (energy units)
* :math:`\sigma` (distance units)
* cutoff1 (distance units)
* cutoff2 (distance units)
* LJ cutoff (distance units)
Note that :math:`\sigma` is defined in the LJ formula as the zero-crossing
distance for the potential, not as the energy minimum at :math:`2^{\frac{1}{6}} \sigma`.
The latter 2 coefficients are optional. If not specified, the global
LJ and Coulombic cutoffs specified in the pair_style command are used.
If only one cutoff is specified, it is used as the cutoff for both LJ
and Coulombic interactions for this type pair. If both coefficients
are specified, they are used as the LJ and Coulombic cutoffs for this
type pair. You cannot specify 2 cutoffs for style *lj/cut*\ , since it
has no Coulombic terms.
For *lj/cut/coul/long* and *lj/cut/coul/msm* and *lj/cut/tip4p/cut*
and *lj/cut/tip4p/long* only the LJ cutoff can be specified since a
Coulombic cutoff cannot be specified for an individual I,J type pair.
All type pairs use the same global Coulombic cutoff specified in the
pair_style command.
The last coefficient is optional. If not specified, the global
LJ cutoff specified in the pair_style command are used.
----------
A version of these styles with a soft core, *lj/cut/soft*\ , suitable
for use in free energy calculations, is part of the USER-FEP package and
is documented with the :doc:`pair_style */soft <pair_fep_soft>`
styles. The version with soft core is only available if LAMMPS was built
with that package. See the :doc:`Build package <Build_package>` doc page
for more info.
styles.
----------
@ -381,21 +100,17 @@ instructions on how to use the accelerated styles effectively.
----------
**Mixing, shift, table, tail correction, restart, rRESPA info**\ :
**Mixing, shift, table, tail correction, restart, rRESPA info:**
For atom type pairs I,J and I != J, the epsilon and sigma coefficients
and cutoff distance for all of the lj/cut pair styles can be mixed.
The default mix value is *geometric*\ . See the "pair_modify" command
The default mix value is *geometric*. See the "pair_modify" command
for details.
All of the *lj/cut* pair styles support the
:doc:`pair_modify <pair_modify>` shift option for the energy of the
Lennard-Jones portion of the pair interaction.
The *lj/cut/coul/long* and *lj/cut/tip4p/long* pair styles support the
:doc:`pair_modify <pair_modify>` table option since they can tabulate
the short-range portion of the long-range Coulombic interaction.
All of the *lj/cut* pair styles support the
:doc:`pair_modify <pair_modify>` tail option for adding a long-range
tail correction to the energy and pressure for the Lennard-Jones
@ -404,7 +119,7 @@ portion of the pair interaction.
All of the *lj/cut* pair styles write their information to :doc:`binary restart files <restart>`, so pair_style and pair_coeff commands do
not need to be specified in an input script that reads a restart file.
The *lj/cut* and *lj/cut/coul/long* pair styles support the use of the
The *lj/cut* pair styles support the use of the
*inner*\ , *middle*\ , and *outer* keywords of the :doc:`run_style respa <run_style>` command, meaning the pairwise forces can be
partitioned by distance at different levels of the rRESPA hierarchy.
The other styles only support the *pair* keyword of run_style respa.
@ -412,30 +127,17 @@ See the :doc:`run_style <run_style>` command for details.
----------
Restrictions
""""""""""""
The *lj/cut/coul/long* and *lj/cut/tip4p/long* styles are part of the
KSPACE package. The *lj/cut/tip4p/cut* style is part of the MOLECULE
package. These styles are only enabled if LAMMPS was built with those
packages. See the :doc:`Build package <Build_package>` doc page for
more info.
Related commands
""""""""""""""""
:doc:`pair_coeff <pair_coeff>`
* :doc:`pair_coeff <pair_coeff>`
* :doc:`pair_style lj/cut/coul/cut <pair_lj_cut_coul>`
* :doc:`pair_style lj/cut/coul/debye <pair_lj_cut_coul>`
* :doc:`pair_style lj/cut/coul/dsf <pair_lj_cut_coul>`
* :doc:`pair_style lj/cut/coul/long <pair_lj_cut_coul>`
* :doc:`pair_style lj/cut/coul/msm <pair_lj_cut_coul>`
* :doc:`pair_style lj/cut/coul/wolf <pair_lj_cut_coul>`
* :doc:`pair_style lj/cut/tip4p/cut <pair_lj_cut_tip4p>`
* :doc:`pair_style lj/cut/tip4p/long <pair_lj_cut_tip4p>`
**Default:** none
----------
.. _Jorgensen2:
**(Jorgensen)** Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem
Phys, 79, 926 (1983).
.. _Fennell2:
**(Fennell)** C. J. Fennell, J. D. Gezelter, J Chem Phys, 124,
234104 (2006).

View File

@ -0,0 +1,328 @@
.. index:: pair_style lj/cut/coul/cut
.. index:: pair_style lj/cut/coul/cut/gpu
.. index:: pair_style lj/cut/coul/cut/kk
.. index:: pair_style lj/cut/coul/cut/omp
.. index:: pair_style lj/cut/coul/debye
.. index:: pair_style lj/cut/coul/debye/gpu
.. index:: pair_style lj/cut/coul/debye/kk
.. index:: pair_style lj/cut/coul/debye/omp
.. index:: pair_style lj/cut/coul/dsf
.. index:: pair_style lj/cut/coul/dsf/gpu
.. index:: pair_style lj/cut/coul/dsf/kk
.. index:: pair_style lj/cut/coul/dsf/omp
.. index:: pair_style lj/cut/coul/long
.. index:: pair_style lj/cut/coul/long/gpu
.. index:: pair_style lj/cut/coul/long/kk
.. index:: pair_style lj/cut/coul/long/intel
.. index:: pair_style lj/cut/coul/long/opt
.. index:: pair_style lj/cut/coul/long/omp
.. index:: pair_style lj/cut/coul/msm
.. index:: pair_style lj/cut/coul/msm/gpu
.. index:: pair_style lj/cut/coul/msm/omp
.. index:: pair_style lj/cut/coul/wolf
.. index:: pair_style lj/cut/coul/wolf/omp
pair_style lj/cut/coul/cut command
==================================
Accelerator Variants: *lj/cut/coul/cut/gpu*, *lj/cut/coul/cut/kk*, *lj/cut/coul/cut/omp*
pair_style lj/cut/coul/debye command
====================================
Accelerator Variants: *lj/cut/coul/debye/gpu*, lj/cut/coul/debye/kk, *lj/cut/coul/debye/omp*
pair_style lj/cut/coul/dsf command
==================================
Accelerator Variants: *lj/cut/coul/dsf/gpu*, *lj/cut/coul/dsf/kk*, *lj/cut/coul/dsf/omp*
pair_style lj/cut/coul/long command
===================================
Accelerator Variants: *lj/cut/coul/long/gpu*, *lj/cut/coul/long/kk*, *lj/cut/coul/long/intel*, *lj/cut/coul/long/opt*, *lj/cut/coul/long/omp*
pair_style lj/cut/coul/msm command
==================================
Accelerator Variants: *lj/cut/coul/msm/gpu*, *lj/cut/coul/msm/omp*
pair_style lj/cut/coul/wolf command
===================================
Accelerator Variants: *lj/cut/coul/wolf/omp*
Syntax
""""""
.. code-block:: LAMMPS
pair_style style args
* style = *lj/cut/coul/cut* or *lj/cut/coul/debye* or *lj/cut/coul/dsf* or *lj/cut/coul/long* *lj/cut/coul/msm* or *lj/cut/coul/wolf*
* args = list of arguments for a particular style
.. parsed-literal::
*lj/cut/coul/cut* args = cutoff (cutoff2)
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
*lj/cut/coul/debye* args = kappa cutoff (cutoff2)
kappa = inverse of the Debye length (inverse distance units)
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
*lj/cut/coul/dsf* args = alpha cutoff (cutoff2)
alpha = damping parameter (inverse distance units)
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (distance units)
*lj/cut/coul/long* args = cutoff (cutoff2)
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
*lj/cut/coul/msm* args = cutoff (cutoff2)
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
*lj/cut/coul/wolf* args = alpha cutoff (cutoff2)
alpha = damping parameter (inverse distance units)
cutoff = global cutoff for LJ (and Coulombic if only 2 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
Examples
""""""""
.. code-block:: LAMMPS
pair_style lj/cut/coul/cut 10.0
pair_style lj/cut/coul/cut 10.0 8.0
pair_coeff * * 100.0 3.0
pair_coeff 1 1 100.0 3.5 9.0
pair_coeff 1 1 100.0 3.5 9.0 9.0
pair_style lj/cut/coul/debye 1.5 3.0
pair_style lj/cut/coul/debye 1.5 2.5 5.0
pair_coeff * * 1.0 1.0
pair_coeff 1 1 1.0 1.5 2.5
pair_coeff 1 1 1.0 1.5 2.5 5.0
pair_style lj/cut/coul/dsf 0.05 2.5 10.0
pair_coeff * * 1.0 1.0
pair_coeff 1 1 1.0 1.0 2.5
pair_style lj/cut/coul/long 10.0
pair_style lj/cut/coul/long 10.0 8.0
pair_coeff * * 100.0 3.0
pair_coeff 1 1 100.0 3.5 9.0
pair_style lj/cut/coul/msm 10.0
pair_style lj/cut/coul/msm 10.0 8.0
pair_coeff * * 100.0 3.0
pair_coeff 1 1 100.0 3.5 9.0
pair_style lj/cut/coul/wolf 0.2 5. 10.0
pair_coeff * * 1.0 1.0
pair_coeff 1 1 1.0 1.0 2.5
Description
"""""""""""
The *lj/cut/coul* styles compute the standard 12/6 Lennard-Jones potential,
given by
.. math::
E = 4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} -
\left(\frac{\sigma}{r}\right)^6 \right]
\qquad r < r_c
:math:`r_c` is the cutoff.
Style *lj/cut/coul/cut* adds a Coulombic pairwise interaction given by
.. math::
E = \frac{C q_i q_j}{\epsilon r} \qquad r < r_c
where :math:`C` is an energy-conversion constant, :math:`q_i` and :math:`q_j`
are the charges on the 2 atoms, and :math:`\epsilon` is the dielectric
constant which can be set by the :doc:`dielectric <dielectric>` command.
If one cutoff is specified in the pair_style command, it is used for
both the LJ and Coulombic terms. If two cutoffs are specified, they are
used as cutoffs for the LJ and Coulombic terms respectively.
Style *lj/cut/coul/debye* adds an additional exp() damping factor
to the Coulombic term, given by
.. math::
E = \frac{C q_i q_j}{\epsilon r} \exp(- \kappa r) \qquad r < r_c
where :math:`\kappa` is the inverse of the Debye length. This potential
is another way to mimic the screening effect of a polar solvent.
Style *lj/cut/coul/dsf* computes the Coulombic term via the damped
shifted force model described in :ref:`Fennell <Fennell2>`, given by:
.. math::
E =
q_iq_j \left[ \frac{\mbox{erfc} (\alpha r)}{r} - \frac{\mbox{erfc} (\alpha r_c)}{r_c} +
\left( \frac{\mbox{erfc} (\alpha r_c)}{r_c^2} + \frac{2\alpha}{\sqrt{\pi}}\frac{\exp (-\alpha^2 r^2_c)}{r_c} \right)(r-r_c) \right] \qquad r < r_c
where :math:`\alpha` is the damping parameter and erfc() is the complementary
error-function. This potential is essentially a short-range,
spherically-truncated, charge-neutralized, shifted, pairwise *1/r*
summation. The potential is based on Wolf summation, proposed as an
alternative to Ewald summation for condensed phase systems where
charge screening causes electrostatic interactions to become
effectively short-ranged. In order for the electrostatic sum to be
absolutely convergent, charge neutralization within the cutoff radius
is enforced by shifting the potential through placement of image
charges on the cutoff sphere. Convergence can often be improved by
setting :math:`\alpha` to a small non-zero value.
Styles *lj/cut/coul/long* and *lj/cut/coul/msm* compute the same
Coulombic interactions as style *lj/cut/coul/cut* except that an
additional damping factor is applied to the Coulombic term so it can
be used in conjunction with the :doc:`kspace_style <kspace_style>`
command and its *ewald* or *pppm* option. The Coulombic cutoff
specified for this style means that pairwise interactions within this
distance are computed directly; interactions outside that distance are
computed in reciprocal space.
Style *coul/wolf* adds a Coulombic pairwise interaction via the Wolf
summation method, described in :ref:`Wolf <Wolf3>`, given by:
.. math::
E_i = \frac{1}{2} \sum_{j \neq i}
\frac{q_i q_j {\rm erfc}(\alpha r_{ij})}{r_{ij}} +
\frac{1}{2} \sum_{j \neq i}
\frac{q_i q_j {\rm erf}(\alpha r_{ij})}{r_{ij}} \qquad r < r_c
where :math:`\alpha` is the damping parameter, and erfc() is the
complementary error-function terms. This potential is essentially a
short-range, spherically-truncated, charge-neutralized, shifted,
pairwise *1/r* summation. With a manipulation of adding and subtracting
a self term (for i = j) to the first and second term on the
right-hand-side, respectively, and a small enough :math:`\alpha` damping
parameter, the second term shrinks and the potential becomes a
rapidly-converging real-space summation. With a long enough cutoff and
small enough :math:`\alpha` parameter, the energy and forces calculated by the
Wolf summation method approach those of the Ewald sum. So it is a means
of getting effective long-range interactions with a short-range
potential.
Coefficients
""""""""""""
For all of the *lj/cut/coul* pair styles, the following coefficients must
be defined for each pair of atoms types via the
:doc:`pair_coeff <pair_coeff>` command as in the examples above, or in
the data file or restart files read by the :doc:`read_data <read_data>`
or :doc:`read_restart <read_restart>` commands, or by mixing as
described below:
* :math:`\epsilon` (energy units)
* :math:`\sigma` (distance units)
* cutoff1 (distance units)
* cutoff2 (distance units)
Note that :math:`\sigma` is defined in the LJ formula as the zero-crossing
distance for the potential, not as the energy minimum at :math:`2^{\frac{1}{6}} \sigma`.
The latter 2 coefficients are optional. If not specified, the global
LJ and Coulombic cutoffs specified in the pair_style command are used.
If only one cutoff is specified, it is used as the cutoff for both LJ
and Coulombic interactions for this type pair. If both coefficients
are specified, they are used as the LJ and Coulombic cutoffs for this
type pair.
For *lj/cut/coul/long* and *lj/cut/coul/msm* only the LJ cutoff can be
specified since a Coulombic cutoff cannot be specified for an individual I,J
type pair. All type pairs use the same global Coulombic cutoff specified in
the pair_style command.
----------
A version of these styles with a soft core, *lj/cut/coul/soft*\ and
*lj/cut/coul/long/soft*\ , suitable for use in free energy calculations, is
part of the USER-FEP package and is documented with the :doc:`pair_style */soft <pair_fep_soft>` styles.
----------
Styles with a *gpu*\ , *intel*\ , *kk*\ , *omp*\ , or *opt* suffix are
functionally the same as the corresponding style without the suffix.
They have been optimized to run faster, depending on your available
hardware, as discussed on the :doc:`Speed packages <Speed_packages>` doc
page. The accelerated styles take the same arguments and should
produce the same results, except for round-off and precision issues.
These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
USER-OMP and OPT packages, respectively. They are only enabled if
LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` doc page for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the :doc:`-suffix command-line switch <Run_options>` when you invoke LAMMPS, or you can use the
:doc:`suffix <suffix>` command in your input script.
See the :doc:`Speed packages <Speed_packages>` doc page for more
instructions on how to use the accelerated styles effectively.
----------
**Mixing, shift, table, tail correction, restart, rRESPA info**\ :
For atom type pairs I,J and I != J, the epsilon and sigma coefficients
and cutoff distance for all of the lj/cut pair styles can be mixed.
The default mix value is *geometric*\ . See the "pair_modify" command
for details.
All of the *lj/cut* pair styles support the
:doc:`pair_modify <pair_modify>` shift option for the energy of the
Lennard-Jones portion of the pair interaction.
The *lj/cut/coul/long* pair styles support the
:doc:`pair_modify <pair_modify>` table option since they can tabulate
the short-range portion of the long-range Coulombic interaction.
All of the *lj/cut* pair styles support the
:doc:`pair_modify <pair_modify>` tail option for adding a long-range
tail correction to the energy and pressure for the Lennard-Jones
portion of the pair interaction.
All of the *lj/cut* pair styles write their information to :doc:`binary restart files <restart>`, so pair_style and pair_coeff commands do
not need to be specified in an input script that reads a restart file.
The *lj/cut/coul/long* pair styles support the use of the
*inner*\ , *middle*\ , and *outer* keywords of the :doc:`run_style respa <run_style>` command, meaning the pairwise forces can be
partitioned by distance at different levels of the rRESPA hierarchy.
The other styles only support the *pair* keyword of run_style respa.
See the :doc:`run_style <run_style>` command for details.
----------
Restrictions
""""""""""""
The *lj/cut/coul/long* styles are part of the KSPACE package.
These styles are only enabled if LAMMPS was built with those
packages. See the :doc:`Build package <Build_package>` doc page for
more info.
Related commands
""""""""""""""""
:doc:`pair_coeff <pair_coeff>`
**Default:** none
----------
.. _Wolf3:
**(Wolf)** D. Wolf, P. Keblinski, S. R. Phillpot, J. Eggebrecht, J Chem
Phys, 110, 8254 (1999).
.. _Fennell2:
**(Fennell)** C. J. Fennell, J. D. Gezelter, J Chem Phys, 124,
234104 (2006).

View File

@ -0,0 +1,230 @@
.. index:: pair_style lj/cut/tip4p/cut
.. index:: pair_style lj/cut/tip4p/cut/omp
.. index:: pair_style lj/cut/tip4p/long
.. index:: pair_style lj/cut/tip4p/long/gpu
.. index:: pair_style lj/cut/tip4p/long/omp
.. index:: pair_style lj/cut/tip4p/long/opt
pair_style lj/cut/tip4p/cut command
===================================
Accelerator Variants: *lj/cut/tip4p/cut/omp*
pair_style lj/cut/tip4p/long command
====================================
Accelerator Variants: *lj/cut/tip4p/long/gpu*, *lj/cut/tip4p/long/omp*, *lj/cut/tip4p/long/opt*
Syntax
""""""
.. code-block:: LAMMPS
pair_style style args
* style = *lj/cut/tip4p/cut* or *lj/cut/tip4p/long*
* args = list of arguments for a particular style
.. parsed-literal::
*lj/cut/tip4p/cut* args = otype htype btype atype qdist cutoff (cutoff2)
otype,htype = atom types for TIP4P O and H
btype,atype = bond and angle types for TIP4P waters
qdist = distance from O atom to massless charge (distance units)
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
*lj/cut/tip4p/long* args = otype htype btype atype qdist cutoff (cutoff2)
otype,htype = atom types for TIP4P O and H
btype,atype = bond and angle types for TIP4P waters
qdist = distance from O atom to massless charge (distance units)
cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units)
cutoff2 = global cutoff for Coulombic (optional) (distance units)
Examples
""""""""
.. code-block:: LAMMPS
pair_style lj/cut/tip4p/cut 1 2 7 8 0.15 12.0
pair_style lj/cut/tip4p/cut 1 2 7 8 0.15 12.0 10.0
pair_coeff * * 100.0 3.0
pair_coeff 1 1 100.0 3.5 9.0
pair_style lj/cut/tip4p/long 1 2 7 8 0.15 12.0
pair_style lj/cut/tip4p/long 1 2 7 8 0.15 12.0 10.0
pair_coeff * * 100.0 3.0
pair_coeff 1 1 100.0 3.5 9.0
Description
"""""""""""
The *lj/cut/tip4p* styles compute the standard 12/6 Lennard-Jones potential,
given by
.. math::
E = 4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} -
\left(\frac{\sigma}{r}\right)^6 \right]
\qquad r < r_c
:math:`r_c` is the cutoff.
They add Coulombic pairwise interactions given by
.. math::
E = \frac{C q_i q_j}{\epsilon r} \qquad r < r_c
where :math:`C` is an energy-conversion constant, :math:`q_i` and :math:`q_j`
are the charges on the 2 atoms, and :math:`\epsilon` is the dielectric
constant which can be set by the :doc:`dielectric <dielectric>` command.
If one cutoff is specified in the pair_style command, it is used for
both the LJ and Coulombic terms. If two cutoffs are specified, they are
used as cutoffs for the LJ and Coulombic terms respectively.
Style *lj/cut/tip4p/long* compute the same
Coulombic interactions as style *lj/cut/tip4p/cut* except that an
additional damping factor is applied to the Coulombic term so it can
be used in conjunction with the :doc:`kspace_style <kspace_style>`
command and its *ewald* or *pppm* option. The Coulombic cutoff
specified for this style means that pairwise interactions within this
distance are computed directly; interactions outside that distance are
computed in reciprocal space.
The *lj/cut/tip4p* styles implement the TIP4P
water model of :ref:`(Jorgensen) <Jorgensen2>`, which introduces a massless
site located a short distance away from the oxygen atom along the
bisector of the HOH angle. The atomic types of the oxygen and
hydrogen atoms, the bond and angle types for OH and HOH interactions,
and the distance to the massless charge site are specified as
pair_style arguments. Style *lj/cut/tip4p/cut* uses a cutoff for
Coulomb interactions; style *lj/cut/tip4p/long* is for use with a
long-range Coulombic solver (Ewald or PPPM).
.. note::
For each TIP4P water molecule in your system, the atom IDs for
the O and 2 H atoms must be consecutive, with the O atom first. This
is to enable LAMMPS to "find" the 2 H atoms associated with each O
atom. For example, if the atom ID of an O atom in a TIP4P water
molecule is 500, then its 2 H atoms must have IDs 501 and 502.
See the :doc:`Howto tip4p <Howto_tip4p>` doc page for more information
on how to use the TIP4P pair styles and lists of parameters to set.
Note that the neighbor list cutoff for Coulomb interactions is
effectively extended by a distance 2\*qdist when using the TIP4P pair
style, to account for the offset distance of the fictitious charges on
O atoms in water molecules. Thus it is typically best in an
efficiency sense to use a LJ cutoff >= Coulombic cutoff + 2\*qdist, to
shrink the size of the neighbor list. This leads to slightly larger
cost for the long-range calculation, so you can test the trade-off for
your model.
Coefficients
""""""""""""
For all of the *lj/cut* pair styles, the following coefficients must
be defined for each pair of atoms types via the
:doc:`pair_coeff <pair_coeff>` command as in the examples above, or in
the data file or restart files read by the :doc:`read_data <read_data>`
or :doc:`read_restart <read_restart>` commands, or by mixing as
described below:
* :math:`\epsilon` (energy units)
* :math:`\sigma` (distance units)
* LJ cutoff (distance units)
Note that :math:`\sigma` is defined in the LJ formula as the zero-crossing
distance for the potential, not as the energy minimum at :math:`2^{\frac{1}{6}} \sigma`.
The last coefficient is optional. If not specified, the global
LJ cutoff specified in the pair_style command is used.
For *lj/cut/tip4p/cut* and *lj/cut/tip4p/long* only the LJ cutoff can be
specified since a Coulombic cutoff cannot be specified for an individual I,J
type pair. All type pairs use the same global Coulombic cutoff specified in
the pair_style command.
----------
A version of these styles with a soft core, *lj/cut/tip4p/long/soft*\ , suitable
for use in free energy calculations, is part of the USER-FEP package and
is documented with the :doc:`pair_style */soft <pair_fep_soft>`
styles.
----------
Styles with a *gpu*\ , *intel*\ , *kk*\ , *omp*\ , or *opt* suffix are
functionally the same as the corresponding style without the suffix.
They have been optimized to run faster, depending on your available
hardware, as discussed on the :doc:`Speed packages <Speed_packages>` doc
page. The accelerated styles take the same arguments and should
produce the same results, except for round-off and precision issues.
These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
USER-OMP and OPT packages, respectively. They are only enabled if
LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` doc page for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the :doc:`-suffix command-line switch <Run_options>` when you invoke LAMMPS, or you can use the
:doc:`suffix <suffix>` command in your input script.
See the :doc:`Speed packages <Speed_packages>` doc page for more
instructions on how to use the accelerated styles effectively.
----------
**Mixing, shift, table, tail correction, restart, rRESPA info**\ :
For atom type pairs I,J and I != J, the epsilon and sigma coefficients
and cutoff distance for all of the lj/cut pair styles can be mixed.
The default mix value is *geometric*\ . See the "pair_modify" command
for details.
All of the *lj/cut* pair styles support the
:doc:`pair_modify <pair_modify>` shift option for the energy of the
Lennard-Jones portion of the pair interaction.
The *lj/cut/coul/long* and *lj/cut/tip4p/long* pair styles support the
:doc:`pair_modify <pair_modify>` table option since they can tabulate
the short-range portion of the long-range Coulombic interaction.
All of the *lj/cut* pair styles support the
:doc:`pair_modify <pair_modify>` tail option for adding a long-range
tail correction to the energy and pressure for the Lennard-Jones
portion of the pair interaction.
All of the *lj/cut* pair styles write their information to :doc:`binary restart files <restart>`, so pair_style and pair_coeff commands do
not need to be specified in an input script that reads a restart file.
The *lj/cut* and *lj/cut/coul/long* pair styles support the use of the
*inner*\ , *middle*\ , and *outer* keywords of the :doc:`run_style respa <run_style>` command, meaning the pairwise forces can be
partitioned by distance at different levels of the rRESPA hierarchy.
The other styles only support the *pair* keyword of run_style respa.
See the :doc:`run_style <run_style>` command for details.
----------
Restrictions
""""""""""""
The *lj/cut/tip4p/long* styles are part of the
KSPACE package. The *lj/cut/tip4p/cut* style is part of the MOLECULE
package. These styles are only enabled if LAMMPS was built with those
packages. See the :doc:`Build package <Build_package>` doc page for
more info.
Related commands
""""""""""""""""
:doc:`pair_coeff <pair_coeff>`
**Default:** none
----------
.. _Jorgensen2:
**(Jorgensen)** Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem
Phys, 79, 926 (1983).

View File

@ -8,7 +8,19 @@ Syntax
.. code-block:: LAMMPS
pair_style mliap
pair_style mliap ... keyword values ...
* two keyword/value pairs must be appended
* keyword = *model* or *descriptor*
.. parsed-literal::
*model* values = style filename
style = *linear* or *quadratic*
filename = name of file containing model definitions
*descriptor* values = style filename
style = *sna*
filename = name of file containing descriptor definitions
Examples
""""""""
@ -16,68 +28,70 @@ Examples
.. code-block:: LAMMPS
pair_style mliap model linear InP.mliap.model descriptor sna InP.mliap.descriptor
pair_style mliap model quadratic W.mliap.model descriptor sna W.mliap.descriptor
pair_style mliap model quadratic W.mliap.model descriptor sna W.mliap.descriptor
pair_coeff * * In P
Description
"""""""""""
Pair style *mliap* provides a general interface to families of
machine-learning interatomic potentials. It provides separate
Pair style *mliap* provides a general interface to families of
machine-learning interatomic potentials. It allows separate
definitions of the interatomic potential functional form (*model*)
and the geometric quantities that characterize the atomic positions
(*descriptor*). By defining *model* and *descriptor* separately,
(*descriptor*). By defining *model* and *descriptor* separately,
it is possible to use many different models with a given descriptor,
or many different descriptors with a given model. Currently, the pair_style
or many different descriptors with a given model. Currently, the pair_style
supports just two models, *linear* and *quadratic*,
and one descriptor, *sna*, the SNAP descriptor used by :doc:`pair_style snap <pair_snap>`, including the linear, quadratic,
and chem variants. Work is currently underway to extend
the interface to handle neural network energy models,
and it is also straightforward to add new descriptor styles.
In order to train a model, it is useful to know the gradient or derivative
of energy, force, and stress w.r.t. model parameters. This information
can be accessed using the related :doc:`compute mliap <compute_mliap>` command.
The pair_style *mliap* command must be followed by two keywords
*model* and *descriptor* in either order. A single
*pair_coeff* command is also required. The first 2 arguments
*pair_coeff* command is also required. The first 2 arguments
must be \* \* so as to span all LAMMPS atom types.
This is followed by a list of N arguments
that specify the mapping of MLIAP
element names to LAMMPS atom types,
element names to LAMMPS atom types,
where N is the number of LAMMPS atom types.
The *model* keyword is followed by a model style, currently limited to
either *linear* or *quadratic*. In both cases,
this is followed by a single argument specifying the model filename containing the
linear or quadratic coefficients for a set of elements.
this is followed by a single argument specifying the model filename containing the
parameters for a set of elements.
The model filename usually ends in the *.mliap.model* extension.
It may contain coefficients for many elements. The only requirement is that it
It may contain parameters for many elements. The only requirement is that it
contain at least those element names appearing in the
*pair_coeff* command.
The top of the model file can contain any number of blank and comment lines (start with #),
The top of the model file can contain any number of blank and comment lines (start with #),
but follows a strict format after that. The first non-blank non-comment
line must contain two integers:
* nelems = Number of elements
* ncoeff = Number of coefficients
* nparams = Number of parameters
This is followed by one block for each of the *nelem* elements.
Each block consists of *ncoeff* coefficients, one per line.
Each block consists of *nparams* parameters, one per line.
Note that this format is similar, but not identical to that used
for the :doc:`pair_style snap <pair_snap>` coefficient file.
Specifically, the line containing the element weight and radius is omitted,
Specifically, the line containing the element weight and radius is omitted,
since these are handled by the *descriptor*.
The *descriptor* keyword is followed by a descriptor style, and additional arguments.
Currently the only descriptor style is *sna*, indicating the bispectrum component
descriptors used by the Spectral Neighbor Analysis Potential (SNAP) potentials of
Currently the only descriptor style is *sna*, indicating the bispectrum component
descriptors used by the Spectral Neighbor Analysis Potential (SNAP) potentials of
:doc:`pair_style snap <pair_snap>`.
The \'p\' in SNAP is dropped, because keywords that match pair_styles are silently stripped
out by the LAMMPS command parser. A single additional argument specifies the descriptor filename
containing the parameters and setting used by the SNAP descriptor.
A single additional argument specifies the descriptor filename
containing the parameters and setting used by the SNAP descriptor.
The descriptor filename usually ends in the *.mliap.descriptor* extension.
The SNAP descriptor file closely follows the format of the
:doc:`pair_style snap <pair_snap>` parameter file.
The SNAP descriptor file closely follows the format of the
:doc:`pair_style snap <pair_snap>` parameter file.
The file can contain blank and comment lines (start
with #) anywhere. Each non-blank non-comment line must contain one
keyword/value pair. The required keywords are *rcutfac* and
@ -87,7 +101,7 @@ In addition, the SNAP descriptor file must contain
the *nelems*, *elems*, *radelems*, and *welems* keywords.
The *nelems* keyword specifies the number of elements
provided in the other three keywords.
The *elems* keyword is followed by a list of *nelems*
The *elems* keyword is followed by a list of *nelems*
element names that must include the element
names appearing in the *pair_coeff* command,
but can contain other names too.
@ -131,6 +145,6 @@ See the :doc:`Build package <Build_package>` doc page for more info.
Related commands
""""""""""""""""
:doc:`pair_style snap <pair_snap>`,
:doc:`pair_style snap <pair_snap>`, :doc:`compute mliap <compute_mliap>`
**Default:** none

View File

@ -25,9 +25,9 @@ Description
"""""""""""
Pair style *snap* defines the spectral
neighbor analysis potential (SNAP), a machine-learning
neighbor analysis potential (SNAP), a machine-learning
interatomic potential :ref:`(Thompson) <Thompson20142>`.
Like the GAP framework of Bartok et al. :ref:`(Bartok2010) <Bartok20102>`,
Like the GAP framework of Bartok et al. :ref:`(Bartok2010) <Bartok20102>`,
SNAP uses bispectrum components
to characterize the local neighborhood of each atom
in a very general way. The mathematical definition of the
@ -139,7 +139,7 @@ The SNAP parameter file can contain blank and comment lines (start
with #) anywhere. Each non-blank non-comment line must contain one
keyword/value pair. The required keywords are *rcutfac* and
*twojmax*\ . Optional keywords are *rfac0*\ , *rmin0*\ ,
*switchflag*\ , *bzeroflag*\ , *quadraticflag*\ , *chemflag*\ ,
*switchflag*\ , *bzeroflag*\ , *quadraticflag*\ , *chemflag*\ ,
*bnormflag*\ , *wselfallflag*\ , and *chunksize*\ .
The default values for these keywords are
@ -154,34 +154,34 @@ The default values for these keywords are
* *wselfallflag* = 0
* *chunksize* = 2000
If *quadraticflag* is set to 1, then the SNAP energy expression includes additional quadratic terms
If *quadraticflag* is set to 1, then the SNAP energy expression includes additional quadratic terms
that have been shown to increase the overall accuracy of the potential without much increase
in computational cost :ref:`(Wood) <Wood20182>`.
in computational cost :ref:`(Wood) <Wood20182>`.
.. math::
E^i_{SNAP}(\mathbf{B}^i) = \beta^{\mu_i}_0 + \boldsymbol{\beta}^{\mu_i} \cdot \mathbf{B}_i + \frac{1}{2}\mathbf{B}^t_i \cdot \boldsymbol{\alpha}^{\mu_i} \cdot \mathbf{B}_i
where :math:`\mathbf{B}_i` is the *K*-vector of bispectrum components,
:math:`\boldsymbol{\beta}^{\mu_i}` is the *K*-vector of linear coefficients
for element :math:`\mu_i`, and :math:`\boldsymbol{\alpha}^{\mu_i}`
where :math:`\mathbf{B}_i` is the *K*-vector of bispectrum components,
:math:`\boldsymbol{\beta}^{\mu_i}` is the *K*-vector of linear coefficients
for element :math:`\mu_i`, and :math:`\boldsymbol{\alpha}^{\mu_i}`
is the symmetric *K* by *K* matrix of quadratic coefficients.
The SNAP element file should contain *K*\ (\ *K*\ +1)/2 additional coefficients
for each element, the upper-triangular elements of :math:`\boldsymbol{\alpha}^{\mu_i}`.
If *chemflag* is set to 1, then the energy expression is written in terms of explicit multi-element bispectrum
components indexed on ordered triplets of elements, which has been shown to increase the ability of the SNAP
potential to capture energy differences in chemically complex systems,
potential to capture energy differences in chemically complex systems,
at the expense of a significant increase in computational cost :ref:`(Cusentino) <Cusentino20202>`.
.. math::
E^i_{SNAP}(\mathbf{B}^i) = \beta^{\mu_i}_0 + \sum_{\kappa,\lambda,\mu} \boldsymbol{\beta}^{\kappa\lambda\mu}_{\mu_i} \cdot \mathbf{B}^{\kappa\lambda\mu}_i
E^i_{SNAP}(\mathbf{B}^i) = \beta^{\mu_i}_0 + \sum_{\kappa,\lambda,\mu} \boldsymbol{\beta}^{\kappa\lambda\mu}_{\mu_i} \cdot \mathbf{B}^{\kappa\lambda\mu}_i
where :math:`\mathbf{B}^{\kappa\lambda\mu}_i` is the *K*-vector of bispectrum components
for neighbors of elements :math:`\kappa`, :math:`\lambda`, and :math:`\mu` and
:math:`\boldsymbol{\beta}^{\kappa\lambda\mu}_{\mu_i}` is the corresponding *K*-vector
of linear coefficients for element :math:`\mu_i`. The SNAP element file should contain
where :math:`\mathbf{B}^{\kappa\lambda\mu}_i` is the *K*-vector of bispectrum components
for neighbors of elements :math:`\kappa`, :math:`\lambda`, and :math:`\mu` and
:math:`\boldsymbol{\beta}^{\kappa\lambda\mu}_{\mu_i}` is the corresponding *K*-vector
of linear coefficients for element :math:`\mu_i`. The SNAP element file should contain
a total of :math:`K N_{elem}^3` coefficients for each of the :math:`N_{elem}` elements.
The keyword *chunksize* is only applicable when using the

View File

@ -201,21 +201,21 @@ accelerated styles exist.
* :doc:`lj/class2/soft <pair_fep_soft>` - COMPASS (class 2) force field with no Coulomb with a soft core
* :doc:`lj/cubic <pair_lj_cubic>` - LJ with cubic after inflection point
* :doc:`lj/cut <pair_lj>` - cutoff Lennard-Jones potential without Coulomb
* :doc:`lj/cut/coul/cut <pair_lj>` - LJ with cutoff Coulomb
* :doc:`lj/cut/coul/cut <pair_lj_cut_coul>` - LJ with cutoff Coulomb
* :doc:`lj/cut/coul/cut/soft <pair_fep_soft>` - LJ with cutoff Coulomb with a soft core
* :doc:`lj/cut/coul/debye <pair_lj>` - LJ with Debye screening added to Coulomb
* :doc:`lj/cut/coul/dsf <pair_lj>` - LJ with Coulomb via damped shifted forces
* :doc:`lj/cut/coul/long <pair_lj>` - LJ with long-range Coulomb
* :doc:`lj/cut/coul/debye <pair_lj_cut_coul>` - LJ with Debye screening added to Coulomb
* :doc:`lj/cut/coul/dsf <pair_lj_cut_coul>` - LJ with Coulomb via damped shifted forces
* :doc:`lj/cut/coul/long <pair_lj_cut_coul>` - LJ with long-range Coulomb
* :doc:`lj/cut/coul/long/cs <pair_cs>` - LJ with long-range Coulomb with core/shell adjustments
* :doc:`lj/cut/coul/long/soft <pair_fep_soft>` - LJ with long-range Coulomb with a soft core
* :doc:`lj/cut/coul/msm <pair_lj>` - LJ with long-range MSM Coulomb
* :doc:`lj/cut/coul/wolf <pair_lj>` - LJ with Coulomb via Wolf potential
* :doc:`lj/cut/coul/msm <pair_lj_cut_coul>` - LJ with long-range MSM Coulomb
* :doc:`lj/cut/coul/wolf <pair_lj_cut_coul>` - LJ with Coulomb via Wolf potential
* :doc:`lj/cut/dipole/cut <pair_dipole>` - point dipoles with cutoff
* :doc:`lj/cut/dipole/long <pair_dipole>` - point dipoles with long-range Ewald
* :doc:`lj/cut/soft <pair_fep_soft>` - LJ with a soft core
* :doc:`lj/cut/thole/long <pair_thole>` - LJ with Coulomb with thole damping
* :doc:`lj/cut/tip4p/cut <pair_lj>` - LJ with cutoff Coulomb for TIP4P water
* :doc:`lj/cut/tip4p/long <pair_lj>` - LJ with long-range Coulomb for TIP4P water
* :doc:`lj/cut/tip4p/cut <pair_lj_cut_tip4p>` - LJ with cutoff Coulomb for TIP4P water
* :doc:`lj/cut/tip4p/long <pair_lj_cut_tip4p>` - LJ with long-range Coulomb for TIP4P water
* :doc:`lj/cut/tip4p/long/soft <pair_fep_soft>` - LJ with cutoff Coulomb for TIP4P water with a soft core
* :doc:`lj/expand <pair_lj_expand>` - Lennard-Jones for variable size particles
* :doc:`lj/expand/coul/long <pair_lj_expand>` - Lennard-Jones for variable size particles with long-range Coulomb

View File

@ -98,7 +98,7 @@ more of the optional keywords listed above for the pair_style command.
These are *ewald* or *pppm* or *msm* or *dispersion* or *tip4p*\ . This
is so LAMMPS can insure the short-range potential and long-range
solver are compatible with each other, as it does for other
short-range pair styles, such as :doc:`pair_style lj/cut/coul/long <pair_lj>`. Note that it is up to you to insure
short-range pair styles, such as :doc:`pair_style lj/cut/coul/long <pair_lj_cut_coul>`. Note that it is up to you to insure
the tabulated values for each pair of atom types has the correct
functional form to be compatible with the matching long-range solver.

View File

@ -182,7 +182,7 @@ Related commands
""""""""""""""""
:doc:`fix drude <fix_drude>`, :doc:`fix langevin/drude <fix_langevin_drude>`, :doc:`fix drude/transform <fix_drude_transform>`, :doc:`compute temp/drude <compute_temp_drude>`
:doc:`pair_style lj/cut/coul/long <pair_lj>`
:doc:`pair_style lj/cut/coul/long <pair_lj_cut_coul>`
**Default:** none

View File

@ -1,14 +1,14 @@
.. index:: reset_ids
.. index:: reset_atom_ids
reset_ids command
=================
reset_atom_ids command
======================
Syntax
""""""
.. code-block:: LAMMPS
reset_ids keyword values ...
reset_atom_ids keyword values ...
* zero or more keyword/value pairs may be appended
* keyword = *sort*
@ -22,8 +22,8 @@ Examples
.. code-block:: LAMMPS
reset_ids
reset_ids sort yes
reset_atom_ids
reset_atom_ids sort yes
Description
"""""""""""
@ -77,7 +77,7 @@ processor have consecutive IDs, as the :doc:`create_atoms
that are owned by other processors. The :doc:`comm_modify cutoff <comm_modify>` command can be used to correct this issue.
Or you can define a pair style before using this command. If you do
the former, you should unset the comm_modify cutoff after using
reset_ids so that subsequent communication is not inefficient.
reset_atom_ids so that subsequent communication is not inefficient.
Restrictions
""""""""""""

116
doc/src/reset_mol_ids.rst Normal file
View File

@ -0,0 +1,116 @@
.. index:: reset_mol_ids
reset_mol_ids command
=====================
Syntax
""""""
.. parsed-literal::
reset_mol_ids group-ID keyword value ...
* group-ID = ID of group of atoms whose molecule IDs will be reset
* zero or more keyword/value pairs may be appended
* keyword = *compress* or *offset* or *single*
.. parsed-literal::
*compress* value = *yes* or *no*
*offset* value = *Noffset* >= -1
*single* value = *yes* or *no* to treat single atoms (no bonds) as molecules
Examples
""""""""
.. code-block:: LAMMPS
reset_mol_ids all
reset_mol_ids all offset 10 single yes
reset_mol_ids solvent compress yes offset 100
reset_mol_ids solvent compress no
Description
"""""""""""
Reset molecule IDs for a group of atoms based on current bond
connectivity. This will typically create a new set of molecule IDs
for atoms in the group. Only molecule IDs for atoms in the specified
group are reset; molecule IDs for atoms not in the group are not
changed.
For purposes of this operation, molecules are identified by the current
bond connectivity in the system, which may or may not be consistent with
the current molecule IDs. A molecule in this context is a set of atoms
connected to each other with explicit bonds. The specific algorithm
used is the one of :doc:`compute fragment/atom <compute_cluster_atom>`
Once the molecules are identified and a new molecule ID computed for
each, this command will update the current molecule ID for all atoms in
the group with the new molecule ID. Note that if the group excludes
atoms within molecules, one (physical) molecule may become two or more
(logical) molecules. For example if the group excludes atoms in the
middle of a linear chain, then each end of the chain is considered an
independent molecule and will be assigned a different molecule ID.
This can be a useful operation to perform after running reactive
molecular dynamics run with :doc:`fix bond/react <fix_bond_react>`,
:doc:`fix bond/create <fix_bond_create>`, or :doc:`fix bond/break
<fix_bond_break>`, all of which can change molecule topologies. It can
also be useful after molecules have been deleted with the
:doc:`delete_atoms <delete_atoms>` command or after a simulation which
has lost molecules, e.g. via the :doc:`fix evaporate <fix_evaporate>`
command.
The *compress* keyword determines how new molecule IDs are computed. If
the setting is *yes* (the default) and there are N molecules in the
group, the new molecule IDs will be a set of N contiguous values. See
the *offset* keyword for details on selecting the range of these values.
If the setting is *no*, the molecule ID of every atom in the molecule
will be set to the smallest atom ID of any atom in the molecule.
The *single* keyword determines whether single atoms (not bonded to
another atom) are treated as one-atom molecules or not, based on the
*yes* or *no* setting. If the setting is *no* (the default), their
molecule IDs are set to 0. This setting can be important if the new
molecule IDs will be used as input to other commands such as
:doc:`compute chunk/atom molecule <compute_chunk_atom>` or :doc:`fix
rigid molecule <fix_rigid>`.
The *offset* keyword is only used if the *compress* setting is *yes*.
Its default value is *Noffset* = -1. In that case, if the specified
group is *all*, then the new compressed molecule IDs will range from 1
to N. If the specified group is not *all* and the largest molecule ID
of atoms outside that group is M, then the new compressed molecule IDs will
range from M+1 to M+N, to avoid collision with existing molecule
IDs. If an *Noffset* >= 0 is specified, then the new compressed
molecule IDs will range from *Noffset*\ +1 to *Noffset*\ +N. If the group
is not *all* there may be collisions with the molecule IDs of other atoms.
.. note::
The same as explained for the :doc:`compute fragment/atom
<compute_cluster_atom>` command, molecules are identified using the
current bond topology. This will not account for bonds broken by
the :doc:`bond_style quartic <bond_quartic>` command because it
does not perform a full update of the bond topology data structures
within LAMMPS.
Restrictions
""""""""""""
none
Related commands
""""""""""""""""
:doc:`reset_atom_ids <reset_atom_ids>`, :doc:`fix bond/react <fix_bond_react>`,
:doc:`fix bond/create <fix_bond_create>`,
:doc:`fix bond/break <fix_bond_break>`,
:doc:`fix evaporate <fix_evaporate>`,
:doc:`delete_atoms <delete_atoms>`,
:doc:`compute fragment/atom <compute_cluster_atom>`
Default
"""""""
The default keyword settings are compress = yes, single = no, and
offset = -1.

View File

@ -52,6 +52,7 @@ minimize = {}
pair = {}
reader = {}
region = {}
total = 0
upper = re.compile("[A-Z]+")
gpu = re.compile("(.+)/gpu$")
@ -60,7 +61,7 @@ kokkos = re.compile("(.+)/kk$")
kokkos_skip = re.compile("(.+)/kk/(host|device)$")
omp = re.compile("(.+)/omp$")
opt = re.compile("(.+)/opt$")
removed = re.compile("(.+)Deprecated$")
removed = re.compile("(.*)Deprecated$")
def register_style(list,style,info):
if style in list.keys():
@ -119,6 +120,7 @@ for h in headers:
# skip over internal styles w/o explicit documentation
style = m[1]
total += 1
if upper.match(style):
continue
@ -197,12 +199,13 @@ print("""Parsed style names w/o suffixes from C++ tree in %s:
Fix styles: %3d Improper styles: %3d
Integrate styles: %3d Kspace styles: %3d
Minimize styles: %3d Pair styles: %3d
Reader styles: %3d Region styles: %3d""" \
Reader styles: %3d Region styles: %3d
----------------------------------------------------
Total number of styles (including suffixes): %d""" \
% (src, len(angle), len(atom), len(body), len(bond), \
len(command), len(compute), len(dihedral), len(dump), \
len(fix), len(improper), len(integrate), len(kspace), \
len(minimize), len(pair), len(reader), len(region)))
len(minimize), len(pair), len(reader), len(region), total))
counter = 0

View File

@ -16,6 +16,13 @@
import sys
import os
has_enchant = False
try:
import enchant
has_enchant = True
except:
pass
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
@ -321,7 +328,7 @@ epub_author = 'The LAMMPS Developers'
# configure spelling extension if present
import importlib.util
spelling_spec = importlib.util.find_spec("sphinxcontrib.spelling")
if spelling_spec:
if spelling_spec and has_enchant:
extensions.append('sphinxcontrib.spelling')
spelling_lang='en_US'

View File

@ -748,6 +748,7 @@ Eebt
ees
eFF
efield
effm
eflux
eg
Eggebrecht
@ -869,6 +870,7 @@ evalue
Evanseck
evdwl
Everaers
Evgeny
evirials
ewald
Ewald
@ -1073,6 +1075,7 @@ GPa
gpu
gpuID
gpus
gradgradflag
gradV
GradVidottan
graining
@ -1483,6 +1486,7 @@ Kumar
Kuronen
Kusters
Kutta
Kuznetsov
kx
Lackmann
Ladd
@ -2029,6 +2033,7 @@ nhc
NiAlH
Nicklas
Niklasson
Nikolskiy
Nimpropertype
Ninteger
Nissila
@ -2057,6 +2062,7 @@ nodeless
nodeset
nodesets
Noehring
Noffset
noforce
Noid
nolib
@ -2082,6 +2088,7 @@ Novint
np
Npair
Npairs
nparams
nparticle
npernode
nph
@ -3201,6 +3208,7 @@ Voth
vpz
vratio
Vries
Vsevolod
Vsmall
Vstream
vtarget
@ -3242,6 +3250,8 @@ whitesmoke
whitespace
Wi
Wicaksono
Widom
widom
Wijk
Wikipedia
wildcard

View File

@ -75,7 +75,7 @@ eim: NaCl using the EIM potential
ellipse: ellipsoidal particles in spherical solvent, 2d system
flow: Couette and Poiseuille flow in a 2d channel
friction: frictional contact of spherical asperities between 2d surfaces
gcmc: Grand Canonical Monte Carlo (GCMC) via the fix gcmc command
gcmc: Grand Canonical MC with fix gcmc, Widom insertion with fix widom
gjf: use of fix langevin Gronbech-Jensen/Farago option
granregion: use of fix wall/region/gran as boundary on granular particles
hugoniostat: Hugoniostat shock dynamics

View File

@ -27,6 +27,7 @@ group all type 1 4
# oxDNA bond interactions - FENE backbone
bond_style oxdna/fene
bond_coeff * 2.0 0.25 0.7525
special_bonds lj 0 1 1
# oxDNA pair interactions
pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk
@ -48,6 +49,7 @@ timestep 1e-5
#comm_style tiled
#fix 3 all balance 10000 1.1 rcb
comm_modify cutoff 2.5
#compute mol all chunk/atom molecule
#compute mychunk all vcm/chunk mol

View File

@ -1,4 +1,4 @@
LAMMPS (7 Aug 2019)
LAMMPS (30 Jun 2020)
variable number equal 1
variable ofreq equal 1000
variable efreq equal 1000
@ -12,7 +12,10 @@ newton off
boundary p p p
atom_style hybrid bond ellipsoid
WARNING: Atom_style hybrid defines both pertype and peratom masses - both must be set, only peratom masses will be used (../atom_vec_hybrid.cpp:156)
atom_modify sort 0 1.0
# Pair interactions require lists of neighbours to be calculated
@ -35,9 +38,8 @@ read_data data.duplex1
2 = max # of 1-3 neighbors
2 = max # of 1-4 neighbors
4 = max # of special neighbors
special bonds CPU = 9.5e-05 secs
read_data CPU = 0.001865 secs
special bonds CPU = 0.000 seconds
read_data CPU = 0.002 seconds
set atom * mass 3.1575
10 settings made for mass
@ -47,6 +49,12 @@ group all type 1 4
# oxDNA bond interactions - FENE backbone
bond_style oxdna/fene
bond_coeff * 2.0 0.25 0.7525
special_bonds lj 0 1 1
2 = max # of 1-2 neighbors
2 = max # of 1-3 neighbors
2 = max # of 1-4 neighbors
4 = max # of special neighbors
special bonds CPU = 0.000 seconds
# oxDNA pair interactions
pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk
@ -69,6 +77,7 @@ timestep 1e-5
#comm_style tiled
#fix 3 all balance 10000 1.1 rcb
comm_modify cutoff 2.5
#compute mol all chunk/atom molecule
#compute mychunk all vcm/chunk mol
@ -99,9 +108,9 @@ run 1000000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 1.956
ghost atom cutoff = 1.956
binsize = 0.978, bins = 41 41 41
master list distance cutoff = 1.9560004
ghost atom cutoff = 2.5
binsize = 0.97800022, bins = 41 41 41
5 neighbor lists, perpetual/occasional/extra = 5 0 0
(1) pair oxdna/excv, perpetual
attributes: half, newton off
@ -128,8 +137,8 @@ Neighbor list info ...
pair build: copy
stencil: none
bin: none
WARNING: Communication cutoff 1.956 is shorter than a bond length based estimate of 2.12875. This may lead to errors. (../comm.cpp:685)
Per MPI rank memory allocation (min/avg/max) = 2.836 | 2.836 | 2.836 Mbytes
0 ekin = 0 | erot = 0 | epot = -14.6424332448164 | etot = -14.6424332448164
Per MPI rank memory allocation (min/avg/max) = 7.883 | 7.883 | 7.883 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 -1.4711818 0.0069384985 -1.4642433 2.5836586e-06
1000 ekin = 0.00113448721737003 | erot = 0.00413455947734281 | epot = -14.6477022915193 | etot = -14.6424332448246
@ -1133,34 +1142,34 @@ Step Temp E_pair E_mol TotEng Press
999000 ekin = 0.188315843917336 | erot = 0.335221830001114 | epot = -15.1659709188676 | etot = -14.6424332449491
1000000 ekin = 0.1816243230724 | erot = 0.33096613964385 | epot = -15.155023707645 | etot = -14.6424332449287
1000000 0.013453654 -1.5270261 0.011523695 -1.4973399 -8.4815516e-05
Loop time of 17.1797 on 1 procs for 1000000 steps with 10 atoms
Loop time of 15.696 on 1 procs for 1000000 steps with 10 atoms
Performance: 50291.944 tau/day, 58208.268 timesteps/s
Performance: 55045.770 tau/day, 63710.382 timesteps/s
99.6% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 13.871 | 13.871 | 13.871 | 0.0 | 80.74
Bond | 0.52454 | 0.52454 | 0.52454 | 0.0 | 3.05
Pair | 11.973 | 11.973 | 11.973 | 0.0 | 76.28
Bond | 0.57492 | 0.57492 | 0.57492 | 0.0 | 3.66
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.14987 | 0.14987 | 0.14987 | 0.0 | 0.87
Output | 7e-06 | 7e-06 | 7e-06 | 0.0 | 0.00
Modify | 2.4075 | 2.4075 | 2.4075 | 0.0 | 14.01
Other | | 0.227 | | | 1.32
Comm | 0.18391 | 0.18391 | 0.18391 | 0.0 | 1.17
Output | 8e-06 | 8e-06 | 8e-06 | 0.0 | 0.00
Modify | 2.7068 | 2.7068 | 2.7068 | 0.0 | 17.25
Other | | 0.2573 | | | 1.64
Nlocal: 10 ave 10 max 10 min
Nlocal: 10.0 ave 10.0 max 10.0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Nghost: 0.0 ave 0.0 max 0.0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 45 ave 45 max 45 min
Neighs: 37.0 ave 37.0 max 37.0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 45
Ave neighs/atom = 4.5
Total # of neighbors = 37
Ave neighs/atom = 3.7
Ave special neighs/atom = 3.6
Neighbor list builds = 0
Dangerous builds = 0
#write_restart config.${number}.*
Total wall time: 0:00:17
Total wall time: 0:00:15

View File

@ -1,4 +1,4 @@
LAMMPS (7 Aug 2019)
LAMMPS (30 Jun 2020)
variable number equal 1
variable ofreq equal 1000
variable efreq equal 1000
@ -12,7 +12,10 @@ newton off
boundary p p p
atom_style hybrid bond ellipsoid
WARNING: Atom_style hybrid defines both pertype and peratom masses - both must be set, only peratom masses will be used (../atom_vec_hybrid.cpp:156)
atom_modify sort 0 1.0
# Pair interactions require lists of neighbours to be calculated
@ -35,9 +38,8 @@ read_data data.duplex1
2 = max # of 1-3 neighbors
2 = max # of 1-4 neighbors
4 = max # of special neighbors
special bonds CPU = 0.000216 secs
read_data CPU = 0.003061 secs
special bonds CPU = 0.001 seconds
read_data CPU = 0.003 seconds
set atom * mass 3.1575
10 settings made for mass
@ -47,6 +49,12 @@ group all type 1 4
# oxDNA bond interactions - FENE backbone
bond_style oxdna/fene
bond_coeff * 2.0 0.25 0.7525
special_bonds lj 0 1 1
2 = max # of 1-2 neighbors
2 = max # of 1-3 neighbors
2 = max # of 1-4 neighbors
4 = max # of special neighbors
special bonds CPU = 0.000 seconds
# oxDNA pair interactions
pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk
@ -69,6 +77,7 @@ timestep 1e-5
#comm_style tiled
#fix 3 all balance 10000 1.1 rcb
comm_modify cutoff 2.5
#compute mol all chunk/atom molecule
#compute mychunk all vcm/chunk mol
@ -99,9 +108,9 @@ run 1000000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 1.956
ghost atom cutoff = 1.956
binsize = 0.978, bins = 41 41 41
master list distance cutoff = 1.9560004
ghost atom cutoff = 2.5
binsize = 0.97800022, bins = 41 41 41
5 neighbor lists, perpetual/occasional/extra = 5 0 0
(1) pair oxdna/excv, perpetual
attributes: half, newton off
@ -128,8 +137,8 @@ Neighbor list info ...
pair build: copy
stencil: none
bin: none
WARNING: Communication cutoff 1.956 is shorter than a bond length based estimate of 2.12875. This may lead to errors. (../comm.cpp:685)
Per MPI rank memory allocation (min/avg/max) = 7.33 | 7.512 | 7.694 Mbytes
0 ekin = 0 | erot = 0 | epot = -14.6424332448164 | etot = -14.6424332448164
Per MPI rank memory allocation (min/avg/max) = 7.605 | 7.662 | 7.719 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 -1.4711818 0.0069384985 -1.4642433 2.5836586e-06
1000 ekin = 0.00113448721737009 | erot = 0.0041345594773427 | epot = -14.6477022915193 | etot = -14.6424332448246
@ -1133,34 +1142,34 @@ Step Temp E_pair E_mol TotEng Press
999000 ekin = 0.18831584391307 | erot = 0.335221830005501 | epot = -15.1659709188615 | etot = -14.642433244943
1000000 ekin = 0.181624323067755 | erot = 0.330966139649165 | epot = -15.1550237076395 | etot = -14.6424332449226
1000000 0.013453654 -1.5270261 0.011523695 -1.4973399 -8.4815516e-05
Loop time of 18.6281 on 4 procs for 1000000 steps with 10 atoms
Loop time of 16.5005 on 4 procs for 1000000 steps with 10 atoms
Performance: 46381.610 tau/day, 53682.419 timesteps/s
Performance: 52362.058 tau/day, 60604.234 timesteps/s
99.5% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.50691 | 7.0285 | 12.641 | 197.6 | 37.73
Bond | 0.081876 | 0.27627 | 0.44175 | 28.5 | 1.48
Pair | 0.51373 | 5.7702 | 10.408 | 174.5 | 34.97
Bond | 0.084405 | 0.27056 | 0.44162 | 28.3 | 1.64
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 1.7692 | 2.0629 | 2.3468 | 17.0 | 11.07
Output | 1.8e-05 | 2.625e-05 | 3e-05 | 0.0 | 0.00
Modify | 0.17309 | 0.88362 | 1.5352 | 58.4 | 4.74
Other | | 8.377 | | | 44.97
Comm | 1.7403 | 2.0946 | 2.4247 | 18.8 | 12.69
Output | 4e-05 | 6e-05 | 7.1e-05 | 0.0 | 0.00
Modify | 0.17451 | 0.87938 | 1.53 | 58.2 | 5.33
Other | | 7.486 | | | 45.37
Nlocal: 2.5 ave 5 max 0 min
Nlocal: 2.5 ave 5.0 max 0.0 min
Histogram: 1 0 1 0 0 0 0 0 1 1
Nghost: 7.5 ave 10 max 5 min
Nghost: 7.5 ave 10.0 max 5.0 min
Histogram: 1 0 1 0 0 0 0 0 1 1
Neighs: 18.5 ave 35 max 0 min
Neighs: 16.0 ave 30.0 max 0.0 min
Histogram: 1 0 1 0 0 0 0 0 1 1
Total # of neighbors = 74
Ave neighs/atom = 7.4
Total # of neighbors = 64
Ave neighs/atom = 6.4
Ave special neighs/atom = 3.6
Neighbor list builds = 0
Dangerous builds = 0
#write_restart config.${number}.*
Total wall time: 0:00:18
Total wall time: 0:00:16

View File

@ -27,6 +27,7 @@ group all type 1 4
# oxDNA bond interactions - FENE backbone
bond_style oxdna/fene
bond_coeff * 2.0 0.25 0.7525
special_bonds lj 0 1 1
# oxDNA pair interactions
pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk
@ -48,6 +49,7 @@ timestep 1e-5
#comm_style tiled
#fix 3 all balance 10000 1.1 rcb
comm_modify cutoff 2.5
#compute mol all chunk/atom molecule
#compute mychunk all vcm/chunk mol

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -27,6 +27,7 @@ group all type 1 4
# oxDNA2 bond interactions - FENE backbone
bond_style oxdna2/fene
bond_coeff * 2.0 0.25 0.7564
special_bonds lj 0 1 1
# oxDNA2 pair interactions
pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh
@ -49,6 +50,7 @@ timestep 1e-5
#comm_style tiled
#fix 3 all balance 10000 1.1 rcb
comm_modify cutoff 2.5
#compute mol all chunk/atom molecule
#compute mychunk all vcm/chunk mol

View File

@ -1,4 +1,4 @@
LAMMPS (7 Aug 2019)
LAMMPS (30 Jun 2020)
variable number equal 1
variable ofreq equal 1000
variable efreq equal 1000
@ -13,6 +13,7 @@ newton off
boundary p p p
atom_style hybrid bond ellipsoid
WARNING: Atom_style hybrid defines both pertype and peratom masses - both must be set, only peratom masses will be used (../atom_vec_hybrid.cpp:156)
atom_modify sort 0 1.0
# Pair interactions require lists of neighbours to be calculated
@ -35,8 +36,8 @@ read_data data.duplex1
2 = max # of 1-3 neighbors
2 = max # of 1-4 neighbors
4 = max # of special neighbors
special bonds CPU = 0.000116 secs
read_data CPU = 0.002026 secs
special bonds CPU = 0.000 seconds
read_data CPU = 0.003 seconds
set atom * mass 3.1575
10 settings made for mass
@ -47,6 +48,12 @@ group all type 1 4
# oxDNA2 bond interactions - FENE backbone
bond_style oxdna2/fene
bond_coeff * 2.0 0.25 0.7564
special_bonds lj 0 1 1
2 = max # of 1-2 neighbors
2 = max # of 1-3 neighbors
2 = max # of 1-4 neighbors
4 = max # of special neighbors
special bonds CPU = 0.000 seconds
# oxDNA2 pair interactions
pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh
@ -71,6 +78,7 @@ timestep 1e-5
#comm_style tiled
#fix 3 all balance 10000 1.1 rcb
comm_modify cutoff 2.5
#compute mol all chunk/atom molecule
#compute mychunk all vcm/chunk mol
@ -101,9 +109,9 @@ run 1000000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.6274
ghost atom cutoff = 2.6274
binsize = 1.3137, bins = 31 31 31
master list distance cutoff = 2.6274048
ghost atom cutoff = 2.6274048
binsize = 1.3137024, bins = 31 31 31
6 neighbor lists, perpetual/occasional/extra = 6 0 0
(1) pair oxdna2/excv, perpetual
attributes: half, newton off
@ -135,7 +143,9 @@ Neighbor list info ...
pair build: copy
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 3.024 | 3.024 | 3.024 Mbytes
WARNING: Communication cutoff adjusted to 2.627404783947349 (../comm.cpp:690)
0 ekin = 0 | erot = 0 | epot = -14.6175140343334 | etot = -14.6175140343334
Per MPI rank memory allocation (min/avg/max) = 8.021 | 8.021 | 8.021 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 -1.4712768 0.009525411 -1.4617514 4.663076e-06
1000 ekin = 0.00113086229080528 | erot = 0.0043101016040658 | epot = -14.6229549982368 | etot = -14.617514034342
@ -1139,34 +1149,34 @@ Step Temp E_pair E_mol TotEng Press
999000 ekin = 0.190992053959174 | erot = 0.320462575795008 | epot = -15.1289686644104 | etot = -14.6175140346562
1000000 ekin = 0.179708146665509 | erot = 0.311553394429298 | epot = -15.1087755756885 | etot = -14.6175140345937
1000000 0.013311715 -1.5443684 0.033490821 -1.4929067 -3.7544839e-05
Loop time of 18.4193 on 1 procs for 1000000 steps with 10 atoms
Loop time of 17.0535 on 1 procs for 1000000 steps with 10 atoms
Performance: 46907.305 tau/day, 54290.862 timesteps/s
Performance: 50663.947 tau/day, 58638.827 timesteps/s
99.5% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 14.935 | 14.935 | 14.935 | 0.0 | 81.08
Bond | 0.55556 | 0.55556 | 0.55556 | 0.0 | 3.02
Pair | 13.135 | 13.135 | 13.135 | 0.0 | 77.02
Bond | 0.6362 | 0.6362 | 0.6362 | 0.0 | 3.73
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.16028 | 0.16028 | 0.16028 | 0.0 | 0.87
Output | 7e-06 | 7e-06 | 7e-06 | 0.0 | 0.00
Modify | 2.5402 | 2.5402 | 2.5402 | 0.0 | 13.79
Other | | 0.2285 | | | 1.24
Comm | 0.18919 | 0.18919 | 0.18919 | 0.0 | 1.11
Output | 8e-06 | 8e-06 | 8e-06 | 0.0 | 0.00
Modify | 2.8399 | 2.8399 | 2.8399 | 0.0 | 16.65
Other | | 0.2536 | | | 1.49
Nlocal: 10 ave 10 max 10 min
Nlocal: 10.0 ave 10.0 max 10.0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Nghost: 0.0 ave 0.0 max 0.0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 45 ave 45 max 45 min
Neighs: 37.0 ave 37.0 max 37.0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 45
Ave neighs/atom = 4.5
Total # of neighbors = 37
Ave neighs/atom = 3.7
Ave special neighs/atom = 3.6
Neighbor list builds = 0
Dangerous builds = 0
#write_restart config.${number}.*
Total wall time: 0:00:18
Total wall time: 0:00:17

View File

@ -1,4 +1,4 @@
LAMMPS (7 Aug 2019)
LAMMPS (30 Jun 2020)
variable number equal 1
variable ofreq equal 1000
variable efreq equal 1000
@ -13,6 +13,7 @@ newton off
boundary p p p
atom_style hybrid bond ellipsoid
WARNING: Atom_style hybrid defines both pertype and peratom masses - both must be set, only peratom masses will be used (../atom_vec_hybrid.cpp:156)
atom_modify sort 0 1.0
# Pair interactions require lists of neighbours to be calculated
@ -35,8 +36,8 @@ read_data data.duplex1
2 = max # of 1-3 neighbors
2 = max # of 1-4 neighbors
4 = max # of special neighbors
special bonds CPU = 0.000198 secs
read_data CPU = 0.004522 secs
special bonds CPU = 0.001 seconds
read_data CPU = 0.004 seconds
set atom * mass 3.1575
10 settings made for mass
@ -47,6 +48,12 @@ group all type 1 4
# oxDNA2 bond interactions - FENE backbone
bond_style oxdna2/fene
bond_coeff * 2.0 0.25 0.7564
special_bonds lj 0 1 1
2 = max # of 1-2 neighbors
2 = max # of 1-3 neighbors
2 = max # of 1-4 neighbors
4 = max # of special neighbors
special bonds CPU = 0.000 seconds
# oxDNA2 pair interactions
pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh
@ -71,6 +78,7 @@ timestep 1e-5
#comm_style tiled
#fix 3 all balance 10000 1.1 rcb
comm_modify cutoff 2.5
#compute mol all chunk/atom molecule
#compute mychunk all vcm/chunk mol
@ -101,9 +109,9 @@ run 1000000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.6274
ghost atom cutoff = 2.6274
binsize = 1.3137, bins = 31 31 31
master list distance cutoff = 2.6274048
ghost atom cutoff = 2.6274048
binsize = 1.3137024, bins = 31 31 31
6 neighbor lists, perpetual/occasional/extra = 6 0 0
(1) pair oxdna2/excv, perpetual
attributes: half, newton off
@ -135,7 +143,9 @@ Neighbor list info ...
pair build: copy
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 7.653 | 7.835 | 8.018 Mbytes
WARNING: Communication cutoff adjusted to 2.627404783947349 (../comm.cpp:690)
0 ekin = 0 | erot = 0 | epot = -14.6175140343334 | etot = -14.6175140343334
Per MPI rank memory allocation (min/avg/max) = 7.903 | 7.96 | 8.018 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 -1.4712768 0.009525411 -1.4617514 4.663076e-06
1000 ekin = 0.00113086229080478 | erot = 0.00431010160406708 | epot = -14.6229549982368 | etot = -14.617514034342
@ -1139,34 +1149,34 @@ Step Temp E_pair E_mol TotEng Press
999000 ekin = 0.190992053959209 | erot = 0.320462575794744 | epot = -15.1289686644103 | etot = -14.6175140346563
1000000 ekin = 0.179708146665587 | erot = 0.311553394428757 | epot = -15.1087755756882 | etot = -14.6175140345938
1000000 0.013311715 -1.5443684 0.033490821 -1.4929067 -3.7544839e-05
Loop time of 20.7945 on 4 procs for 1000000 steps with 10 atoms
Loop time of 17.7119 on 4 procs for 1000000 steps with 10 atoms
Performance: 41549.361 tau/day, 48089.538 timesteps/s
99.6% CPU use with 4 MPI tasks x no OpenMP threads
Performance: 48780.802 tau/day, 56459.261 timesteps/s
99.5% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.66725 | 7.9254 | 14.304 | 209.9 | 38.11
Bond | 0.095496 | 0.30973 | 0.49863 | 30.5 | 1.49
Pair | 0.59564 | 6.28 | 11.307 | 181.3 | 35.46
Bond | 0.083757 | 0.28777 | 0.47668 | 30.6 | 1.62
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 1.8943 | 2.1825 | 2.4604 | 15.6 | 10.50
Output | 2e-05 | 2.9e-05 | 3.2e-05 | 0.0 | 0.00
Modify | 0.18231 | 0.95644 | 1.673 | 62.4 | 4.60
Other | | 9.421 | | | 45.30
Comm | 1.8539 | 2.1875 | 2.4877 | 17.3 | 12.35
Output | 2.1e-05 | 3.85e-05 | 4.5e-05 | 0.0 | 0.00
Modify | 0.18254 | 0.92719 | 1.638 | 61.5 | 5.23
Other | | 8.029 | | | 45.33
Nlocal: 2.5 ave 5 max 0 min
Nlocal: 2.5 ave 5.0 max 0.0 min
Histogram: 1 0 1 0 0 0 0 0 1 1
Nghost: 7.5 ave 10 max 5 min
Nghost: 7.5 ave 10.0 max 5.0 min
Histogram: 1 0 1 0 0 0 0 0 1 1
Neighs: 18.5 ave 35 max 0 min
Neighs: 16.0 ave 30.0 max 0.0 min
Histogram: 1 0 1 0 0 0 0 0 1 1
Total # of neighbors = 74
Ave neighs/atom = 7.4
Total # of neighbors = 64
Ave neighs/atom = 6.4
Ave special neighs/atom = 3.6
Neighbor list builds = 0
Dangerous builds = 0
#write_restart config.${number}.*
Total wall time: 0:00:20
Total wall time: 0:00:17

View File

@ -27,6 +27,7 @@ group all type 1 4
# oxDNA2 bond interactions - FENE backbone
bond_style oxdna2/fene
bond_coeff * 2.0 0.25 0.7564
special_bonds lj 0 1 1
# oxDNA2 pair interactions
pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh
@ -49,6 +50,7 @@ timestep 1e-5
#comm_style tiled
#fix 3 all balance 10000 1.1 rcb
comm_modify cutoff 2.5
#compute mol all chunk/atom molecule
#compute mychunk all vcm/chunk mol

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -27,6 +27,7 @@ group all type 1 4
# oxDNA2 bond interactions - FENE backbone
bond_style oxdna2/fene
bond_coeff * 2.0 0.25 0.7564
special_bonds lj 0 1 1
# oxDNA2 pair interactions
pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh
@ -49,6 +50,7 @@ timestep 1e-5
#comm_style tiled
#fix 3 all balance 10000 1.1 rcb
comm_modify cutoff 2.5
#compute mol all chunk/atom molecule
#compute mychunk all vcm/chunk mol

View File

@ -1,4 +1,4 @@
LAMMPS (7 Aug 2019)
LAMMPS (30 Jun 2020)
variable number equal 3
variable ofreq equal 1000
variable efreq equal 1000
@ -13,6 +13,7 @@ newton off
boundary p p p
atom_style hybrid bond ellipsoid
WARNING: Atom_style hybrid defines both pertype and peratom masses - both must be set, only peratom masses will be used (../atom_vec_hybrid.cpp:156)
atom_modify sort 0 1.0
# Pair interactions require lists of neighbours to be calculated
@ -35,8 +36,8 @@ read_data data.duplex3
2 = max # of 1-3 neighbors
2 = max # of 1-4 neighbors
4 = max # of special neighbors
special bonds CPU = 0.000145 secs
read_data CPU = 0.001965 secs
special bonds CPU = 0.000 seconds
read_data CPU = 0.002 seconds
set atom * mass 1.0
10 settings made for mass
@ -47,6 +48,12 @@ group all type 1 4
# oxDNA2 bond interactions - FENE backbone
bond_style oxdna2/fene
bond_coeff * 2.0 0.25 0.7564
special_bonds lj 0 1 1
2 = max # of 1-2 neighbors
2 = max # of 1-3 neighbors
2 = max # of 1-4 neighbors
4 = max # of special neighbors
special bonds CPU = 0.000 seconds
# oxDNA2 pair interactions
pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh
@ -71,6 +78,7 @@ timestep 1e-5
#comm_style tiled
#fix 3 all balance 10000 1.1 rcb
comm_modify cutoff 2.5
#compute mol all chunk/atom molecule
#compute mychunk all vcm/chunk mol
@ -101,9 +109,9 @@ run 1000000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.6274
ghost atom cutoff = 2.6274
binsize = 1.3137, bins = 31 31 31
master list distance cutoff = 2.6274048
ghost atom cutoff = 2.6274048
binsize = 1.3137024, bins = 31 31 31
6 neighbor lists, perpetual/occasional/extra = 6 0 0
(1) pair oxdna2/excv, perpetual
attributes: half, newton off
@ -135,7 +143,9 @@ Neighbor list info ...
pair build: copy
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 3.024 | 3.024 | 3.024 Mbytes
WARNING: Communication cutoff adjusted to 2.627404783947349 (../comm.cpp:690)
0 ekin = 0 | erot = 0 | epot = -14.6249037416652 | etot = -14.6249037416652
Per MPI rank memory allocation (min/avg/max) = 8.021 | 8.021 | 8.021 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 -1.4720158 0.009525411 -1.4624904 3.1370518e-06
1000 ekin = 0.00366431201929618 | erot = 0.00193726360267488 | epot = -14.630505317301 | etot = -14.624903741679
@ -1139,34 +1149,34 @@ Step Temp E_pair E_mol TotEng Press
999000 ekin = 0.330110494517114 | erot = 0.658973630822449 | epot = -15.6139878677246 | etot = -14.624903742385
1000000 ekin = 0.345190458650495 | erot = 0.661138339466907 | epot = -15.6312325406154 | etot = -14.624903742498
1000000 0.025569664 -1.5839232 0.020799898 -1.5286042 -3.5789082e-06
Loop time of 25.9663 on 1 procs for 1000000 steps with 10 atoms
Loop time of 16.5683 on 1 procs for 1000000 steps with 10 atoms
Performance: 33273.840 tau/day, 38511.388 timesteps/s
99.6% CPU use with 1 MPI tasks x no OpenMP threads
Performance: 52147.644 tau/day, 60356.069 timesteps/s
99.7% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 21.428 | 21.428 | 21.428 | 0.0 | 82.52
Bond | 0.76981 | 0.76981 | 0.76981 | 0.0 | 2.96
Pair | 12.734 | 12.734 | 12.734 | 0.0 | 76.86
Bond | 0.62259 | 0.62259 | 0.62259 | 0.0 | 3.76
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.25709 | 0.25709 | 0.25709 | 0.0 | 0.99
Output | 9e-06 | 9e-06 | 9e-06 | 0.0 | 0.00
Modify | 3.1584 | 3.1584 | 3.1584 | 0.0 | 12.16
Other | | 0.3534 | | | 1.36
Comm | 0.18386 | 0.18386 | 0.18386 | 0.0 | 1.11
Output | 7e-06 | 7e-06 | 7e-06 | 0.0 | 0.00
Modify | 2.7788 | 2.7788 | 2.7788 | 0.0 | 16.77
Other | | 0.2491 | | | 1.50
Nlocal: 10 ave 10 max 10 min
Nlocal: 10.0 ave 10.0 max 10.0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Nghost: 0.0 ave 0.0 max 0.0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 45 ave 45 max 45 min
Neighs: 37.0 ave 37.0 max 37.0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 45
Ave neighs/atom = 4.5
Total # of neighbors = 37
Ave neighs/atom = 3.7
Ave special neighs/atom = 3.6
Neighbor list builds = 0
Dangerous builds = 0
#write_restart config.${number}.*
Total wall time: 0:00:25
Total wall time: 0:00:16

View File

@ -1,4 +1,4 @@
LAMMPS (7 Aug 2019)
LAMMPS (30 Jun 2020)
variable number equal 3
variable ofreq equal 1000
variable efreq equal 1000
@ -13,6 +13,7 @@ newton off
boundary p p p
atom_style hybrid bond ellipsoid
WARNING: Atom_style hybrid defines both pertype and peratom masses - both must be set, only peratom masses will be used (../atom_vec_hybrid.cpp:156)
atom_modify sort 0 1.0
# Pair interactions require lists of neighbours to be calculated
@ -35,8 +36,8 @@ read_data data.duplex3
2 = max # of 1-3 neighbors
2 = max # of 1-4 neighbors
4 = max # of special neighbors
special bonds CPU = 0.000188 secs
read_data CPU = 0.002791 secs
special bonds CPU = 0.001 seconds
read_data CPU = 0.004 seconds
set atom * mass 1.0
10 settings made for mass
@ -47,6 +48,12 @@ group all type 1 4
# oxDNA2 bond interactions - FENE backbone
bond_style oxdna2/fene
bond_coeff * 2.0 0.25 0.7564
special_bonds lj 0 1 1
2 = max # of 1-2 neighbors
2 = max # of 1-3 neighbors
2 = max # of 1-4 neighbors
4 = max # of special neighbors
special bonds CPU = 0.000 seconds
# oxDNA2 pair interactions
pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh
@ -71,6 +78,7 @@ timestep 1e-5
#comm_style tiled
#fix 3 all balance 10000 1.1 rcb
comm_modify cutoff 2.5
#compute mol all chunk/atom molecule
#compute mychunk all vcm/chunk mol
@ -101,9 +109,9 @@ run 1000000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.6274
ghost atom cutoff = 2.6274
binsize = 1.3137, bins = 31 31 31
master list distance cutoff = 2.6274048
ghost atom cutoff = 2.6274048
binsize = 1.3137024, bins = 31 31 31
6 neighbor lists, perpetual/occasional/extra = 6 0 0
(1) pair oxdna2/excv, perpetual
attributes: half, newton off
@ -135,7 +143,9 @@ Neighbor list info ...
pair build: copy
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 7.653 | 7.835 | 8.018 Mbytes
WARNING: Communication cutoff adjusted to 2.627404783947349 (../comm.cpp:690)
0 ekin = 0 | erot = 0 | epot = -14.6249037416652 | etot = -14.6249037416652
Per MPI rank memory allocation (min/avg/max) = 7.903 | 7.96 | 8.018 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 -1.4720158 0.009525411 -1.4624904 3.1370518e-06
1000 ekin = 0.00366431201929595 | erot = 0.00193726360268106 | epot = -14.630505317301 | etot = -14.624903741679
@ -1139,34 +1149,34 @@ Step Temp E_pair E_mol TotEng Press
999000 ekin = 0.330110494517446 | erot = 0.658973630822486 | epot = -15.613987867725 | etot = -14.6249037423851
1000000 ekin = 0.345190458651126 | erot = 0.66113833946702 | epot = -15.6312325406162 | etot = -14.624903742498
1000000 0.025569664 -1.5839232 0.020799898 -1.5286042 -3.5789082e-06
Loop time of 20.0167 on 4 procs for 1000000 steps with 10 atoms
Loop time of 17.6535 on 4 procs for 1000000 steps with 10 atoms
Performance: 43164.007 tau/day, 49958.342 timesteps/s
Performance: 48942.073 tau/day, 56645.918 timesteps/s
99.5% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.59089 | 7.5652 | 13.908 | 205.5 | 37.79
Bond | 0.090803 | 0.29363 | 0.47758 | 29.6 | 1.47
Pair | 0.58208 | 6.2309 | 11.391 | 182.5 | 35.30
Bond | 0.087981 | 0.28429 | 0.45668 | 28.3 | 1.61
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 1.7298 | 2.0312 | 2.2983 | 16.6 | 10.15
Output | 1.4e-05 | 2.075e-05 | 2.3e-05 | 0.0 | 0.00
Modify | 0.17638 | 0.90613 | 1.5893 | 60.1 | 4.53
Other | | 9.22 | | | 46.06
Comm | 1.8415 | 2.1564 | 2.4456 | 17.3 | 12.21
Output | 1.5e-05 | 2.275e-05 | 2.6e-05 | 0.0 | 0.00
Modify | 0.1751 | 0.91094 | 1.6034 | 60.5 | 5.16
Other | | 8.071 | | | 45.72
Nlocal: 2.5 ave 5 max 0 min
Nlocal: 2.5 ave 5.0 max 0.0 min
Histogram: 1 0 1 0 0 0 0 0 1 1
Nghost: 7.5 ave 10 max 5 min
Nghost: 7.5 ave 10.0 max 5.0 min
Histogram: 1 0 1 0 0 0 0 0 1 1
Neighs: 18.5 ave 35 max 0 min
Neighs: 16.0 ave 30.0 max 0.0 min
Histogram: 1 0 1 0 0 0 0 0 1 1
Total # of neighbors = 74
Ave neighs/atom = 7.4
Total # of neighbors = 64
Ave neighs/atom = 6.4
Ave special neighs/atom = 3.6
Neighbor list builds = 0
Dangerous builds = 0
#write_restart config.${number}.*
Total wall time: 0:00:20
Total wall time: 0:00:17

View File

@ -18,17 +18,19 @@ atom_style hybrid bond ellipsoid
atom_modify sort 0 1.0
# Pair interactions require lists of neighbours to be calculated
neighbor 2.0 bin
neighbor 1.0 bin
neigh_modify every 10 delay 0 check yes
read_data data.duplex4.4type
mass * 3.1575
mass * 3.1575 # sets per-type mass if not in data file
set atom * mass 3.1575 # sets per-atom mass
group all type 1 4
# oxDNA bond interactions - FENE backbone
bond_style oxdna2/fene
bond_coeff * 2.0 0.25 0.7564
special_bonds lj 0 1 1
# oxDNA pair interactions
pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh
@ -60,6 +62,7 @@ timestep 1e-4
#comm_style tiled
#fix 3 all balance 10000 1.1 rcb
comm_modify cutoff 2.5
#compute mol all chunk/atom molecule
#compute mychunk all vcm/chunk mol

View File

@ -10,7 +10,7 @@ units lj
dimension 3
newton on
newton off
boundary p p p
@ -22,13 +22,15 @@ neighbor 1.0 bin
neigh_modify every 10 delay 0 check yes
read_data data.duplex4.8type
mass * 3.1575
mass * 3.1575 # sets per-type mass if not in data file
set atom * mass 3.1575 # sets per-atom mass
group all type 1 8
# oxDNA bond interactions - FENE backbone
bond_style oxdna2/fene
bond_coeff * 2.0 0.25 0.7564
special_bonds lj 0 1 1
# oxDNA pair interactions
pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh
@ -60,6 +62,7 @@ timestep 1e-4
#comm_style tiled
#fix 3 all balance 10000 1.1 rcb
comm_modify cutoff 2.5
#compute mol all chunk/atom molecule
#compute mychunk all vcm/chunk mol

View File

@ -1,4 +1,4 @@
LAMMPS (7 Aug 2019)
LAMMPS (30 Jun 2020)
variable number equal 1
variable ofreq equal 10000
variable efreq equal 10000
@ -16,10 +16,11 @@ newton off
boundary p p p
atom_style hybrid bond ellipsoid
WARNING: Atom_style hybrid defines both pertype and peratom masses - both must be set, only peratom masses will be used (../atom_vec_hybrid.cpp:156)
atom_modify sort 0 1.0
# Pair interactions require lists of neighbours to be calculated
neighbor 2.0 bin
neighbor 1.0 bin
neigh_modify every 10 delay 0 check yes
read_data data.duplex4.4type
@ -38,9 +39,11 @@ read_data data.duplex4.4type
2 = max # of 1-3 neighbors
4 = max # of 1-4 neighbors
6 = max # of special neighbors
special bonds CPU = 6.2e-05 secs
read_data CPU = 0.001124 secs
mass * 3.1575
special bonds CPU = 0.000 seconds
read_data CPU = 0.003 seconds
mass * 3.1575 # sets per-type mass if not in data file
set atom * mass 3.1575 # sets per-atom mass
26 settings made for mass
group all type 1 4
26 atoms in group all
@ -48,6 +51,12 @@ group all type 1 4
# oxDNA bond interactions - FENE backbone
bond_style oxdna2/fene
bond_coeff * 2.0 0.25 0.7564
special_bonds lj 0 1 1
2 = max # of 1-2 neighbors
2 = max # of 1-3 neighbors
4 = max # of 1-4 neighbors
6 = max # of special neighbors
special bonds CPU = 0.000 seconds
# oxDNA pair interactions
pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh
@ -115,6 +124,7 @@ timestep 1e-4
#comm_style tiled
#fix 3 all balance 10000 1.1 rcb
comm_modify cutoff 2.5
#compute mol all chunk/atom molecule
#compute mychunk all vcm/chunk mol
@ -149,9 +159,9 @@ run 100000
Neighbor list info ...
update every 10 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5.63899
ghost atom cutoff = 5.63899
binsize = 2.81949, bins = 15 15 15
master list distance cutoff = 4.6389877
ghost atom cutoff = 4.6389877
binsize = 2.3194939, bins = 18 18 18
6 neighbor lists, perpetual/occasional/extra = 6 0 0
(1) pair oxdna2/excv, perpetual
attributes: half, newton off
@ -183,47 +193,49 @@ Neighbor list info ...
pair build: copy
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 3.89 | 3.89 | 3.89 Mbytes
WARNING: Communication cutoff adjusted to 4.638987723814632 (../comm.cpp:690)
0 ekin = 0 | erot = 0 | epot = -41.6285382417448 | etot = -41.6285382417448
Per MPI rank memory allocation (min/avg/max) = 9.771 | 9.771 | 9.771 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 -1.6384018 0.037304147 -1.6010976 6.7769766e-05
10000 ekin = 1.01296379553452 | erot = 1.38476360245491 | epot = -41.9785360036035 | etot = -39.5808086056141
20000 ekin = 1.75607695499755 | erot = 1.86620102096623 | epot = -41.9558496477913 | etot = -38.3335716718275
30000 ekin = 2.25878673688255 | erot = 2.60035907744906 | epot = -41.2869827431736 | etot = -36.427836928842
40000 ekin = 2.11105717434601 | erot = 3.16611217122795 | epot = -40.2762731426449 | etot = -34.999103797071
50000 ekin = 3.05379083545185 | erot = 2.45050275456902 | epot = -40.3032957287999 | etot = -34.799002138779
60000 ekin = 3.05154113920288 | erot = 2.52539576708931 | epot = -39.6800099891302 | etot = -34.103073082838
70000 ekin = 3.23212209366503 | erot = 3.28914763888578 | epot = -40.1240667487288 | etot = -33.602797016178
80000 ekin = 2.82623224207568 | erot = 2.91292948677805 | epot = -39.0983962904507 | etot = -33.3592345615969
90000 ekin = 3.05995314905566 | erot = 3.5429982411034 | epot = -39.1646070343971 | etot = -32.561655644238
100000 ekin = 3.46139546969836 | erot = 4.11704803295073 | epot = -38.5124679837256 | etot = -30.9340244810765
100000 0.092303879 -1.5243833 0.043134544 -1.3481182 6.862374e-06
Loop time of 7.99505 on 1 procs for 100000 steps with 26 atoms
10000 ekin = 0.876675896491307 | erot = 3.01631310953192 | epot = -43.6949424313443 | etot = -39.8019534253211
20000 ekin = 1.02178060459022 | erot = 1.54107635735041 | epot = -40.2257383206528 | etot = -37.6628813587121
30000 ekin = 1.77819697871127 | erot = 2.67180081099997 | epot = -40.9840548186678 | etot = -36.5340570289565
40000 ekin = 2.55095642638533 | erot = 2.97955929579275 | epot = -40.0756048400153 | etot = -34.5450891178372
50000 ekin = 2.43321388920862 | erot = 3.63137266285959 | epot = -39.3718897377946 | etot = -33.3073031857264
60000 ekin = 2.51123200110303 | erot = 3.95693243683571 | epot = -38.8877878920178 | etot = -32.4196234540791
70000 ekin = 3.33444097207872 | erot = 4.12593683683079 | epot = -38.7679893452499 | etot = -31.3076115363404
80000 ekin = 3.41969296989344 | erot = 3.46589964095079 | epot = -37.5712487729465 | etot = -30.6856561621023
90000 ekin = 3.53106755106414 | erot = 3.40955821292295 | epot = -35.9319384430368 | etot = -28.9913126790497
100000 ekin = 3.47860763041501 | erot = 3.95117534418391 | epot = -37.6128506757402 | etot = -30.1830677011413
100000 0.09276287 -1.4972391 0.050590991 -1.3128555 0.00017815014
Loop time of 7.33046 on 1 procs for 100000 steps with 26 atoms
Performance: 108066.893 tau/day, 12507.742 timesteps/s
Performance: 117864.395 tau/day, 13641.712 timesteps/s
99.8% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 7.2072 | 7.2072 | 7.2072 | 0.0 | 90.15
Bond | 0.14292 | 0.14292 | 0.14292 | 0.0 | 1.79
Neigh | 1.9e-05 | 1.9e-05 | 1.9e-05 | 0.0 | 0.00
Comm | 0.015676 | 0.015676 | 0.015676 | 0.0 | 0.20
Output | 0.001372 | 0.001372 | 0.001372 | 0.0 | 0.02
Modify | 0.61071 | 0.61071 | 0.61071 | 0.0 | 7.64
Other | | 0.01714 | | | 0.21
Pair | 6.4814 | 6.4814 | 6.4814 | 0.0 | 88.42
Bond | 0.16262 | 0.16262 | 0.16262 | 0.0 | 2.22
Neigh | 4.2e-05 | 4.2e-05 | 4.2e-05 | 0.0 | 0.00
Comm | 0.019555 | 0.019555 | 0.019555 | 0.0 | 0.27
Output | 0.00131 | 0.00131 | 0.00131 | 0.0 | 0.02
Modify | 0.64596 | 0.64596 | 0.64596 | 0.0 | 8.81
Other | | 0.01961 | | | 0.27
Nlocal: 26 ave 26 max 26 min
Nlocal: 26.0 ave 26.0 max 26.0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Nghost: 0.0 ave 0.0 max 0.0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 325 ave 325 max 325 min
Neighs: 299.0 ave 299.0 max 299.0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 325
Ave neighs/atom = 12.5
Ave special neighs/atom = 5.07692
Neighbor list builds = 1
Total # of neighbors = 299
Ave neighs/atom = 11.5
Ave special neighs/atom = 5.076923076923077
Neighbor list builds = 2
Dangerous builds = 0
#write_restart config.${number}.*

View File

@ -1,4 +1,4 @@
LAMMPS (7 Aug 2019)
LAMMPS (30 Jun 2020)
variable number equal 1
variable ofreq equal 10000
variable efreq equal 10000
@ -16,10 +16,11 @@ newton off
boundary p p p
atom_style hybrid bond ellipsoid
WARNING: Atom_style hybrid defines both pertype and peratom masses - both must be set, only peratom masses will be used (../atom_vec_hybrid.cpp:156)
atom_modify sort 0 1.0
# Pair interactions require lists of neighbours to be calculated
neighbor 2.0 bin
neighbor 1.0 bin
neigh_modify every 10 delay 0 check yes
read_data data.duplex4.4type
@ -38,9 +39,11 @@ read_data data.duplex4.4type
2 = max # of 1-3 neighbors
4 = max # of 1-4 neighbors
6 = max # of special neighbors
special bonds CPU = 0.000173 secs
read_data CPU = 0.00242 secs
mass * 3.1575
special bonds CPU = 0.001 seconds
read_data CPU = 0.004 seconds
mass * 3.1575 # sets per-type mass if not in data file
set atom * mass 3.1575 # sets per-atom mass
26 settings made for mass
group all type 1 4
26 atoms in group all
@ -48,6 +51,12 @@ group all type 1 4
# oxDNA bond interactions - FENE backbone
bond_style oxdna2/fene
bond_coeff * 2.0 0.25 0.7564
special_bonds lj 0 1 1
2 = max # of 1-2 neighbors
2 = max # of 1-3 neighbors
4 = max # of 1-4 neighbors
6 = max # of special neighbors
special bonds CPU = 0.000 seconds
# oxDNA pair interactions
pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh
@ -115,6 +124,7 @@ timestep 1e-4
#comm_style tiled
#fix 3 all balance 10000 1.1 rcb
comm_modify cutoff 2.5
#compute mol all chunk/atom molecule
#compute mychunk all vcm/chunk mol
@ -149,9 +159,9 @@ run 100000
Neighbor list info ...
update every 10 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5.63899
ghost atom cutoff = 5.63899
binsize = 2.81949, bins = 15 15 15
master list distance cutoff = 4.6389877
ghost atom cutoff = 4.6389877
binsize = 2.3194939, bins = 18 18 18
6 neighbor lists, perpetual/occasional/extra = 6 0 0
(1) pair oxdna2/excv, perpetual
attributes: half, newton off
@ -183,50 +193,52 @@ Neighbor list info ...
pair build: copy
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 9.499 | 9.682 | 9.864 Mbytes
WARNING: Communication cutoff adjusted to 4.638987723814632 (../comm.cpp:690)
0 ekin = 0 | erot = 0 | epot = -41.6285382417448 | etot = -41.6285382417448
Per MPI rank memory allocation (min/avg/max) = 9.756 | 9.813 | 9.871 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 -1.6384018 0.037304147 -1.6010976 6.7769766e-05
10000 ekin = 1.20524984175817 | erot = 1.2679122962101 | epot = -41.9183873815797 | etot = -39.4452252436114
20000 ekin = 1.60856540355485 | erot = 2.64140880508964 | epot = -41.0106168994545 | etot = -36.76064269081
30000 ekin = 2.821101638199 | erot = 3.06373823252434 | epot = -40.9348041675027 | etot = -35.0499642967793
40000 ekin = 2.36296917392486 | erot = 3.53353555114673 | epot = -39.5591676362755 | etot = -33.6626629112039
50000 ekin = 2.93383938780818 | erot = 3.39920211088179 | epot = -40.3602175538497 | etot = -34.0271760551597
60000 ekin = 2.42811021532829 | erot = 2.75130045540831 | epot = -39.3178531324554 | etot = -34.1384424617188
70000 ekin = 2.7282200818863 | erot = 3.76502037022117 | epot = -40.5673105068195 | etot = -34.074070054712
80000 ekin = 2.90877851656705 | erot = 2.43617899356904 | epot = -38.4099618426175 | etot = -33.0650043324814
90000 ekin = 3.89203816080263 | erot = 2.67194811393274 | epot = -39.1880466354802 | etot = -32.6240603607448
100000 ekin = 3.98445325397832 | erot = 2.77079124049636 | epot = -39.2805505658488 | etot = -32.5253060713741
100000 0.10625209 -1.5603519 0.049561514 -1.3575422 -1.7755557e-05
Loop time of 7.14827 on 4 procs for 100000 steps with 26 atoms
10000 ekin = 0.705506935391957 | erot = 3.21864563172922 | epot = -44.0640899615318 | etot = -40.1399373944106
20000 ekin = 1.16547426389222 | erot = 1.69259899672632 | epot = -41.827511978894 | etot = -38.9694387182755
30000 ekin = 2.07592540045025 | erot = 2.81661265099434 | epot = -41.8258727293348 | etot = -36.9333346778902
40000 ekin = 3.0352692177735 | erot = 2.43995587980307 | epot = -41.3155342467788 | etot = -35.8403091492022
50000 ekin = 2.69044710203348 | erot = 2.86176633025683 | epot = -40.5544750556414 | etot = -35.0022616233511
60000 ekin = 2.90956639769978 | erot = 2.84679944563592 | epot = -39.7474408128141 | etot = -33.9910749694784
70000 ekin = 1.89941118514544 | erot = 3.71508585194422 | epot = -38.9575890625426 | etot = -33.3430920254529
80000 ekin = 2.43472912058895 | erot = 3.11589280920166 | epot = -39.844809532279 | etot = -34.2941876024883
90000 ekin = 2.3759389593227 | erot = 3.25835921096947 | epot = -38.913072246407 | etot = -33.2787740761149
100000 ekin = 3.23901515322217 | erot = 3.3464944524431 | epot = -38.6302041314432 | etot = -32.044694525778
100000 0.086373737 -1.5432369 0.057459797 -1.3611996 7.7958353e-05
Loop time of 6.09292 on 4 procs for 100000 steps with 26 atoms
Performance: 120868.376 tau/day, 13989.395 timesteps/s
Performance: 141803.976 tau/day, 16412.497 timesteps/s
99.7% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.047776 | 3.0726 | 6.3143 | 172.8 | 42.98
Bond | 0.00736 | 0.056846 | 0.10864 | 20.7 | 0.80
Neigh | 1.9e-05 | 1.9e-05 | 1.9e-05 | 0.0 | 0.00
Comm | 0.30925 | 3.451 | 6.3739 | 157.5 | 48.28
Output | 0.000896 | 0.0010197 | 0.001301 | 0.5 | 0.01
Modify | 0.015512 | 0.18417 | 0.37845 | 39.4 | 2.58
Other | | 0.3826 | | | 5.35
Pair | 0.047712 | 2.5625 | 5.2874 | 157.3 | 42.06
Bond | 0.007398 | 0.053166 | 0.10097 | 19.8 | 0.87
Neigh | 1.8e-05 | 1.8e-05 | 1.8e-05 | 0.0 | 0.00
Comm | 0.29205 | 2.9624 | 5.4188 | 143.0 | 48.62
Output | 0.000866 | 0.00099325 | 0.001303 | 0.0 | 0.02
Modify | 0.016247 | 0.18354 | 0.37524 | 39.2 | 3.01
Other | | 0.3303 | | | 5.42
Nlocal: 6.5 ave 13 max 0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 19.5 ave 26 max 13 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 123.5 ave 247 max 0 min
Nlocal: 6.5 ave 14.0 max 0.0 min
Histogram: 2 0 0 0 0 0 0 0 1 1
Nghost: 18.5 ave 24.0 max 12.0 min
Histogram: 1 1 0 0 0 0 0 0 0 2
Neighs: 113.75 ave 239.0 max 0.0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 494
Ave neighs/atom = 19
Ave special neighs/atom = 5.07692
Total # of neighbors = 455
Ave neighs/atom = 17.5
Ave special neighs/atom = 5.076923076923077
Neighbor list builds = 1
Dangerous builds = 0
#write_restart config.${number}.*
Total wall time: 0:00:07
Total wall time: 0:00:06

View File

@ -1,4 +1,4 @@
LAMMPS (7 Aug 2019)
LAMMPS (30 Jun 2020)
variable number equal 1
variable ofreq equal 10000
variable efreq equal 10000
@ -11,11 +11,12 @@ units lj
dimension 3
newton on
newton off
boundary p p p
atom_style hybrid bond ellipsoid
WARNING: Atom_style hybrid defines both pertype and peratom masses - both must be set, only peratom masses will be used (../atom_vec_hybrid.cpp:156)
atom_modify sort 0 1.0
# Pair interactions require lists of neighbours to be calculated
@ -31,16 +32,18 @@ read_data data.duplex4.8type
26 velocities
26 ellipsoids
scanning bonds ...
1 = max bonds/atom
2 = max bonds/atom
reading bonds ...
24 bonds
2 = max # of 1-2 neighbors
2 = max # of 1-3 neighbors
4 = max # of 1-4 neighbors
6 = max # of special neighbors
special bonds CPU = 6.5e-05 secs
read_data CPU = 0.001139 secs
mass * 3.1575
special bonds CPU = 0.000 seconds
read_data CPU = 0.002 seconds
mass * 3.1575 # sets per-type mass if not in data file
set atom * mass 3.1575 # sets per-atom mass
26 settings made for mass
group all type 1 8
26 atoms in group all
@ -48,6 +51,12 @@ group all type 1 8
# oxDNA bond interactions - FENE backbone
bond_style oxdna2/fene
bond_coeff * 2.0 0.25 0.7564
special_bonds lj 0 1 1
2 = max # of 1-2 neighbors
2 = max # of 1-3 neighbors
4 = max # of 1-4 neighbors
6 = max # of special neighbors
special bonds CPU = 0.000 seconds
# oxDNA pair interactions
pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh
@ -157,6 +166,7 @@ timestep 1e-4
#comm_style tiled
#fix 3 all balance 10000 1.1 rcb
comm_modify cutoff 2.5
#compute mol all chunk/atom molecule
#compute mychunk all vcm/chunk mol
@ -191,81 +201,83 @@ run 100000
Neighbor list info ...
update every 10 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 4.63899
ghost atom cutoff = 4.63899
binsize = 2.31949, bins = 18 18 18
master list distance cutoff = 4.6389877
ghost atom cutoff = 4.6389877
binsize = 2.3194939, bins = 18 18 18
6 neighbor lists, perpetual/occasional/extra = 6 0 0
(1) pair oxdna2/excv, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
attributes: half, newton off
pair build: half/bin/newtoff
stencil: half/bin/3d/newtoff
bin: standard
(2) pair oxdna2/stk, perpetual, copy from (1)
attributes: half, newton on
attributes: half, newton off
pair build: copy
stencil: none
bin: none
(3) pair oxdna2/hbond, perpetual, copy from (1)
attributes: half, newton on
attributes: half, newton off
pair build: copy
stencil: none
bin: none
(4) pair oxdna2/xstk, perpetual, copy from (1)
attributes: half, newton on
attributes: half, newton off
pair build: copy
stencil: none
bin: none
(5) pair oxdna2/coaxstk, perpetual, copy from (1)
attributes: half, newton on
attributes: half, newton off
pair build: copy
stencil: none
bin: none
(6) pair oxdna2/dh, perpetual, copy from (1)
attributes: half, newton on
attributes: half, newton off
pair build: copy
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 3.905 | 3.905 | 3.905 Mbytes
WARNING: Communication cutoff adjusted to 4.638987723814632 (../comm.cpp:690)
0 ekin = 0 | erot = 0 | epot = -41.6285382417448 | etot = -41.6285382417448
Per MPI rank memory allocation (min/avg/max) = 9.771 | 9.771 | 9.771 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 -1.6384018 0.037304147 -1.6010976 6.7769766e-05
10000 ekin = 1.0129637955345 | erot = 1.38476360245492 | epot = -41.9785360036034 | etot = -39.580808605614
20000 ekin = 1.75607695499755 | erot = 1.86620102096618 | epot = -41.9558496477911 | etot = -38.3335716718274
30000 ekin = 2.25878673688259 | erot = 2.60035907744898 | epot = -41.2869827431736 | etot = -36.427836928842
40000 ekin = 2.11105717434584 | erot = 3.16611217122799 | epot = -40.2762731426449 | etot = -34.9991037970711
50000 ekin = 3.05379083545187 | erot = 2.45050275456888 | epot = -40.3032957287998 | etot = -34.7990021387791
60000 ekin = 3.05154113920291 | erot = 2.5253957670889 | epot = -39.6800099891299 | etot = -34.1030730828381
70000 ekin = 3.23212209366464 | erot = 3.28914763888543 | epot = -40.1240667487278 | etot = -33.6027970161777
80000 ekin = 2.82623224207591 | erot = 2.91292948677732 | epot = -39.0983962904496 | etot = -33.3592345615963
90000 ekin = 3.05995314905694 | erot = 3.54299824110274 | epot = -39.164607034397 | etot = -32.5616556442373
100000 ekin = 3.46139546969892 | erot = 4.11704803295143 | epot = -38.512467983727 | etot = -30.9340244810767
100000 0.092303879 -1.5243833 0.043134544 -1.3481182 6.862374e-06
Loop time of 7.94086 on 1 procs for 100000 steps with 26 atoms
10000 ekin = 0.876675896491307 | erot = 3.01631310953192 | epot = -43.6949424313443 | etot = -39.8019534253211
20000 ekin = 1.02178060459022 | erot = 1.54107635735041 | epot = -40.2257383206528 | etot = -37.6628813587121
30000 ekin = 1.77819697871127 | erot = 2.67180081099997 | epot = -40.9840548186678 | etot = -36.5340570289565
40000 ekin = 2.55095642638533 | erot = 2.97955929579275 | epot = -40.0756048400153 | etot = -34.5450891178372
50000 ekin = 2.43321388920862 | erot = 3.63137266285959 | epot = -39.3718897377946 | etot = -33.3073031857264
60000 ekin = 2.51123200110303 | erot = 3.95693243683571 | epot = -38.8877878920178 | etot = -32.4196234540791
70000 ekin = 3.33444097207872 | erot = 4.12593683683079 | epot = -38.7679893452499 | etot = -31.3076115363404
80000 ekin = 3.41969296989344 | erot = 3.46589964095079 | epot = -37.5712487729465 | etot = -30.6856561621023
90000 ekin = 3.53106755106414 | erot = 3.40955821292295 | epot = -35.9319384430368 | etot = -28.9913126790497
100000 ekin = 3.47860763041501 | erot = 3.95117534418391 | epot = -37.6128506757402 | etot = -30.1830677011413
100000 0.09276287 -1.4972391 0.050590991 -1.3128555 0.00017815014
Loop time of 7.44606 on 1 procs for 100000 steps with 26 atoms
Performance: 108804.336 tau/day, 12593.094 timesteps/s
99.8% CPU use with 1 MPI tasks x no OpenMP threads
Performance: 116034.458 tau/day, 13429.914 timesteps/s
99.7% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 7.1507 | 7.1507 | 7.1507 | 0.0 | 90.05
Bond | 0.14487 | 0.14487 | 0.14487 | 0.0 | 1.82
Neigh | 6.4e-05 | 6.4e-05 | 6.4e-05 | 0.0 | 0.00
Comm | 0.032259 | 0.032259 | 0.032259 | 0.0 | 0.41
Output | 0.003484 | 0.003484 | 0.003484 | 0.0 | 0.04
Modify | 0.59013 | 0.59013 | 0.59013 | 0.0 | 7.43
Other | | 0.01934 | | | 0.24
Pair | 6.5843 | 6.5843 | 6.5843 | 0.0 | 88.43
Bond | 0.16149 | 0.16149 | 0.16149 | 0.0 | 2.17
Neigh | 4.3e-05 | 4.3e-05 | 4.3e-05 | 0.0 | 0.00
Comm | 0.022595 | 0.022595 | 0.022595 | 0.0 | 0.30
Output | 0.001492 | 0.001492 | 0.001492 | 0.0 | 0.02
Modify | 0.65313 | 0.65313 | 0.65313 | 0.0 | 8.77
Other | | 0.02299 | | | 0.31
Nlocal: 26 ave 26 max 26 min
Nlocal: 26.0 ave 26.0 max 26.0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Nghost: 0.0 ave 0.0 max 0.0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 323 ave 323 max 323 min
Neighs: 299.0 ave 299.0 max 299.0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 323
Ave neighs/atom = 12.4231
Ave special neighs/atom = 5.07692
Neighbor list builds = 4
Total # of neighbors = 299
Ave neighs/atom = 11.5
Ave special neighs/atom = 5.076923076923077
Neighbor list builds = 2
Dangerous builds = 0
#write_restart config.${number}.*

View File

@ -1,4 +1,4 @@
LAMMPS (7 Aug 2019)
LAMMPS (30 Jun 2020)
variable number equal 1
variable ofreq equal 10000
variable efreq equal 10000
@ -11,11 +11,12 @@ units lj
dimension 3
newton on
newton off
boundary p p p
atom_style hybrid bond ellipsoid
WARNING: Atom_style hybrid defines both pertype and peratom masses - both must be set, only peratom masses will be used (../atom_vec_hybrid.cpp:156)
atom_modify sort 0 1.0
# Pair interactions require lists of neighbours to be calculated
@ -31,16 +32,18 @@ read_data data.duplex4.8type
26 velocities
26 ellipsoids
scanning bonds ...
1 = max bonds/atom
2 = max bonds/atom
reading bonds ...
24 bonds
2 = max # of 1-2 neighbors
2 = max # of 1-3 neighbors
4 = max # of 1-4 neighbors
6 = max # of special neighbors
special bonds CPU = 0.000232 secs
read_data CPU = 0.002447 secs
mass * 3.1575
special bonds CPU = 0.001 seconds
read_data CPU = 0.004 seconds
mass * 3.1575 # sets per-type mass if not in data file
set atom * mass 3.1575 # sets per-atom mass
26 settings made for mass
group all type 1 8
26 atoms in group all
@ -48,6 +51,12 @@ group all type 1 8
# oxDNA bond interactions - FENE backbone
bond_style oxdna2/fene
bond_coeff * 2.0 0.25 0.7564
special_bonds lj 0 1 1
2 = max # of 1-2 neighbors
2 = max # of 1-3 neighbors
4 = max # of 1-4 neighbors
6 = max # of special neighbors
special bonds CPU = 0.000 seconds
# oxDNA pair interactions
pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh
@ -157,6 +166,7 @@ timestep 1e-4
#comm_style tiled
#fix 3 all balance 10000 1.1 rcb
comm_modify cutoff 2.5
#compute mol all chunk/atom molecule
#compute mychunk all vcm/chunk mol
@ -191,84 +201,86 @@ run 100000
Neighbor list info ...
update every 10 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 4.63899
ghost atom cutoff = 4.63899
binsize = 2.31949, bins = 18 18 18
master list distance cutoff = 4.6389877
ghost atom cutoff = 4.6389877
binsize = 2.3194939, bins = 18 18 18
6 neighbor lists, perpetual/occasional/extra = 6 0 0
(1) pair oxdna2/excv, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
attributes: half, newton off
pair build: half/bin/newtoff
stencil: half/bin/3d/newtoff
bin: standard
(2) pair oxdna2/stk, perpetual, copy from (1)
attributes: half, newton on
attributes: half, newton off
pair build: copy
stencil: none
bin: none
(3) pair oxdna2/hbond, perpetual, copy from (1)
attributes: half, newton on
attributes: half, newton off
pair build: copy
stencil: none
bin: none
(4) pair oxdna2/xstk, perpetual, copy from (1)
attributes: half, newton on
attributes: half, newton off
pair build: copy
stencil: none
bin: none
(5) pair oxdna2/coaxstk, perpetual, copy from (1)
attributes: half, newton on
attributes: half, newton off
pair build: copy
stencil: none
bin: none
(6) pair oxdna2/dh, perpetual, copy from (1)
attributes: half, newton on
attributes: half, newton off
pair build: copy
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 9.381 | 9.563 | 9.746 Mbytes
WARNING: Communication cutoff adjusted to 4.638987723814632 (../comm.cpp:690)
0 ekin = 0 | erot = 0 | epot = -41.6285382417448 | etot = -41.6285382417448
Per MPI rank memory allocation (min/avg/max) = 9.756 | 9.813 | 9.871 Mbytes
Step Temp E_pair E_mol TotEng Press
0 0 -1.6384018 0.037304147 -1.6010976 6.7769766e-05
10000 ekin = 1.20524984175816 | erot = 1.26791229621008 | epot = -41.9183873815797 | etot = -39.4452252436115
20000 ekin = 1.6085654035548 | erot = 2.6414088050897 | epot = -41.0106168994546 | etot = -36.7606426908101
30000 ekin = 2.82110163819891 | erot = 3.06373823252419 | epot = -40.9348041675026 | etot = -35.0499642967795
40000 ekin = 2.35553603700794 | erot = 3.60405945883761 | epot = -39.5418687902286 | etot = -33.5822732943831
50000 ekin = 3.06061403125833 | erot = 3.35548669087246 | epot = -40.3236585928169 | etot = -33.9075578706861
60000 ekin = 2.7347216991605 | erot = 4.23926242244084 | epot = -39.5379959923263 | etot = -32.564011870725
70000 ekin = 3.46562604991873 | erot = 2.8521307045909 | epot = -38.7237000550356 | etot = -32.4059433005259
80000 ekin = 3.17815543267806 | erot = 3.11078099027451 | epot = -39.7525036398366 | etot = -33.463567216884
90000 ekin = 3.51635117668857 | erot = 2.58384069017333 | epot = -39.4762533092413 | etot = -33.3760614423795
100000 ekin = 3.64218174280962 | erot = 2.88607181210736 | epot = -37.6002449519119 | etot = -31.0719913969949
100000 0.097124846 -1.5164679 0.070304678 -1.3060794 -2.9111933e-05
Loop time of 5.64462 on 4 procs for 100000 steps with 26 atoms
10000 ekin = 0.705506935391957 | erot = 3.21864563172922 | epot = -44.0640899615318 | etot = -40.1399373944106
20000 ekin = 1.16547426389222 | erot = 1.69259899672632 | epot = -41.827511978894 | etot = -38.9694387182755
30000 ekin = 2.07592540045025 | erot = 2.81661265099434 | epot = -41.8258727293348 | etot = -36.9333346778902
40000 ekin = 3.0352692177735 | erot = 2.43995587980307 | epot = -41.3155342467788 | etot = -35.8403091492022
50000 ekin = 2.69044710203348 | erot = 2.86176633025683 | epot = -40.5544750556414 | etot = -35.0022616233511
60000 ekin = 2.90956639769978 | erot = 2.84679944563592 | epot = -39.7474408128141 | etot = -33.9910749694784
70000 ekin = 1.89941118514544 | erot = 3.71508585194422 | epot = -38.9575890625426 | etot = -33.3430920254529
80000 ekin = 2.43472912058895 | erot = 3.11589280920166 | epot = -39.844809532279 | etot = -34.2941876024883
90000 ekin = 2.3759389593227 | erot = 3.25835921096947 | epot = -38.913072246407 | etot = -33.2787740761149
100000 ekin = 3.23901515322217 | erot = 3.3464944524431 | epot = -38.6302041314432 | etot = -32.044694525778
100000 0.086373737 -1.5432369 0.057459797 -1.3611996 7.7958353e-05
Loop time of 6.15993 on 4 procs for 100000 steps with 26 atoms
Performance: 153066.031 tau/day, 17715.976 timesteps/s
99.0% CPU use with 4 MPI tasks x no OpenMP threads
Performance: 140261.437 tau/day, 16233.963 timesteps/s
99.7% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.069668 | 2.1601 | 4.2189 | 138.7 | 38.27
Bond | 0.008542 | 0.052544 | 0.095929 | 18.7 | 0.93
Neigh | 4.8e-05 | 5.6e-05 | 6.4e-05 | 0.0 | 0.00
Comm | 0.90402 | 3.1443 | 5.4155 | 124.9 | 55.70
Output | 0.001003 | 0.0011317 | 0.001468 | 0.6 | 0.02
Modify | 0.021098 | 0.20024 | 0.38154 | 39.2 | 3.55
Other | | 0.0863 | | | 1.53
Pair | 0.049533 | 2.573 | 5.3124 | 157.6 | 41.77
Bond | 0.007709 | 0.055244 | 0.10383 | 20.2 | 0.90
Neigh | 1.8e-05 | 1.875e-05 | 1.9e-05 | 0.0 | 0.00
Comm | 0.32774 | 3.0114 | 5.4815 | 142.5 | 48.89
Output | 0.000925 | 0.0010595 | 0.00137 | 0.6 | 0.02
Modify | 0.016369 | 0.18492 | 0.37491 | 39.3 | 3.00
Other | | 0.3343 | | | 5.43
Nlocal: 6.5 ave 13 max 0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 17.5 ave 22 max 13 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 80.25 ave 167 max 0 min
Nlocal: 6.5 ave 14.0 max 0.0 min
Histogram: 2 0 0 0 0 0 0 0 1 1
Nghost: 18.5 ave 24.0 max 12.0 min
Histogram: 1 1 0 0 0 0 0 0 0 2
Neighs: 113.75 ave 239.0 max 0.0 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 321
Ave neighs/atom = 12.3462
Ave special neighs/atom = 5.07692
Neighbor list builds = 3
Total # of neighbors = 455
Ave neighs/atom = 17.5
Ave special neighs/atom = 5.076923076923077
Neighbor list builds = 1
Dangerous builds = 0
#write_restart config.${number}.*
Total wall time: 0:00:05
Total wall time: 0:00:06

View File

@ -27,6 +27,7 @@ group all type 1 4
# oxRNA2 bond interactions - FENE backbone
bond_style oxrna2/fene
bond_coeff * 2.0 0.25 0.761070781051
special_bonds lj 0 1 1
# oxRNA2 pair interactions
pair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh
@ -50,6 +51,7 @@ timestep 1e-5
#comm_style tiled
#fix 3 all balance 10000 1.1 rcb
comm_modify cutoff 2.5
#compute mol all chunk/atom molecule
#compute mychunk all vcm/chunk mol

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

17322
examples/gcmc/data.spce Normal file

File diff suppressed because it is too large Load Diff

2019
examples/gcmc/data.widom.lj Normal file

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More