Compare commits

..

1227 Commits

Author SHA1 Message Date
39df9f5d94 patch 23Oct17 2017-10-23 16:07:21 -06:00
68d04119d3 Merge pull request #707 from akohlmey/granular-omp-refactor
Updated neighbor list history processing for USER-OMP
2017-10-23 13:35:43 -06:00
0148c2ac81 updated neighbor list history processing for USER-OMP 2017-10-23 14:12:19 -04:00
a7ad12491f Merge pull request #706 from lammps/doc-cs
update to doc pages for new coreshell pair styles
2017-10-21 16:12:23 -06:00
2137be3219 update to doc pages for new coreshell pair styles 2017-10-21 15:50:27 -06:00
ce78f6943d Merge pull request #705 from akohlmey/fix_rigid_bugfix
fix segfault bug in fix rigid/small found by regression testing
2017-10-20 17:01:50 -06:00
998aedc6c1 Merge pull request #670 from vishalkenchan/pair_style/coul_wolf_cs
add coul/wolf/cs and born/coul/wolf/cs pair styles for CORESHELL package
2017-10-20 16:09:33 -06:00
0a02c3c78c fix segfault bug for in fix rigid/small found by regression testing 2017-10-20 16:56:06 -04:00
aaf5e87c84 Merge pull request #703 from akohlmey/custom-rigid-body-generation
Allow rigid body generation from custom properties
2017-10-20 14:08:15 -06:00
2d0f5e277c Merge pull request #704 from akohlmey/bond-gromos-bugfix
Compute energy correctly for bond style gromos
2017-10-20 14:06:35 -06:00
260bbc6f9f Merge pull request #702 from giacomofiorin/colvars-fix-the-fix
Fix a Colvars error that was hidden by the previous segfault
2017-10-20 14:06:15 -06:00
6b34a30528 compute energy correctly for bond style gromos 2017-10-20 14:53:22 -04:00
83c7d3a1d2 update fix rigid documentation 2017-10-20 14:18:50 -04:00
961b976374 add/correct code to define rigid bodies with atomstyle/atomfile variables and via custom per-atom properties 2017-10-20 13:56:09 -04:00
ac6434e496 add input examples for custom rigid body definition 2017-10-20 13:54:45 -04:00
f479f02589 Fix a Colvars error that was hidden by the previous segfault 2017-10-20 13:41:31 -04:00
e284545c5b added some documentation and reference example 2017-10-20 12:03:22 +02:00
e368acdaeb Merge pull request #700 from giacomofiorin/colvars-fix
Import segfault fix in Colvars module
2017-10-19 11:45:36 -06:00
6e7504f153 Import segfault fix in Colvars module 2017-10-19 08:09:44 -04:00
71c4edda51 add coul/wolf/cs and born/coul/wolf/cs pair styles for CORESHELL package 2017-10-19 13:21:13 +02:00
40147a7a64 Merge pull request #699 from lammps/doc-update2
cross ref fix deform and new fix nvt/uef in doc pages
2017-10-18 16:44:18 -06:00
f709a723cd cross ref fix deform and new fix nvt/uef 2017-10-18 15:26:15 -06:00
6dd55e49cb Merge pull request #698 from lammps/doc-update
small updates to recently added docs and rename of an example dir
2017-10-18 15:24:54 -06:00
281b1dc375 small updates to recently added docs and rename of an example dir 2017-10-18 14:56:47 -06:00
e93f8f8889 Merge pull request #671 from danicholson/user-uef
USER-UEF package for extensional flow
2017-10-18 13:38:56 -06:00
35f2cfa0bf Merge pull request #669 from urpedersen/master
fix rhok - biasing long-range order
2017-10-18 13:31:15 -06:00
e44196c011 Merge pull request #694 from akohlmey/bond-gromos
Add gromos bond style
2017-10-18 13:27:15 -06:00
2fe1d1b904 Merge pull request #697 from andeplane/fix_heat_bug
Avoid checking region when not specified
2017-10-18 13:26:19 -06:00
b1b4a52b14 Merge pull request #695 from timattox/USER-DPD_small_updates
USER-DPD small updates
2017-10-18 13:25:48 -06:00
382de50341 Merge pull request #696 from wmbrownIntel/intel-update-oct17
Bug fix for unexpected case where a Intel bonded style is specified but there are no types
2017-10-18 13:25:07 -06:00
7dfc6b7eab Merge pull request #688 from lammps/history
refactoring of neighbor history
2017-10-18 13:24:36 -06:00
19eb5d3897 Avoid checking region when not specified 2017-10-18 18:05:34 +02:00
17c17ac409 update multi-threaded neighbor list build for neighbor list refactor 2017-10-18 11:25:15 -04:00
39ededd46c update respa/omp integrator style for neighbor list refactor 2017-10-18 11:24:44 -04:00
2c7528811d update several pair styles to be compliant with refactored respa lists data structures 2017-10-18 11:24:12 -04:00
0966e14e73 more changes to rRESPA neighbor lists 2017-10-17 17:33:01 -06:00
bb141aaae0 USER-INTEL: Bug fix for case where a bond/angle/dihedral/improper style is specified, but there are no bond/... types and therefore no allocation. 2017-10-16 22:51:56 -07:00
374d619769 add gromos bond style 2017-10-16 14:57:12 -04:00
59de1a71c8 Merge branch 'history' of github.com:lammps/lammps into history 2017-10-16 14:37:30 -04:00
4c6779cb0d USER-DPD Kokkos: propagate the new neigh_modify options from efaa4c67
Propogate the efaa4c67 changes to npair_ssa_kokkos from npair_kokkos that
support the new neigh_modify exclude molecule/intra and /inter options.
Note: npair_ssa_kokkos could inherit from npair_kokkos to avoid this kind
of missed change. Unfortunately, inheritance from templated classes is
both tricky and messy, and not worth the complexity in this case, IMHO.
2017-10-16 13:37:27 -05:00
5fb5f70ec6 update USER-OMP code for shear history neighbor refactoring 2017-10-16 14:37:20 -04:00
b0bba1976b USER-DPD: remove unused coord2bin() variants, and add ISFINITE checks 2017-10-16 13:36:44 -05:00
f8f13d929f Merge pull request #693 from giacomofiorin/colvars-update
Update Colvars to version 2017-10-11
2017-10-13 17:25:06 -06:00
3e89b270fd Update Colvars to version 2017-10-11
Notable features are the umbrella-integration based free energy estimator for
eABF, and the traditional thermodynamic integration estimator now available
for umbrella sampling, SMD, metadynamics.  Also included are several small fixes.

Below is a list of relevant commits in the Colvars repository since the last update.

321d06a 2017-10-10 Add macros to manage colvarscript commands [Giacomo Fiorin]
26c3bec 2017-10-09 Document coming availability of Lepton in LAMMPS [Giacomo Fiorin]
cc8f249 2017-10-04 Clarify that SMP depends on code build [Giacomo Fiorin]
0b2ffac 2017-10-04 Summarize colvar definition options, clarify some details [Giacomo Fiorin]
28002e0 2017-10-01 Separate writing of restart file from other output (e.g. PMFs) [Giacomo Fiorin]
92f7c1d 2017-10-01 Deprecate colvarsTrajAppend [Giacomo Fiorin]
12a707f 2017-09-26 Accurate Jacobian calculation for RMSD variants [Jérôme Hénin]
fe389c9 2017-09-21 Allow subtractAppliedForce with extended-L again [Jérôme Hénin]
c050ce0 2017-09-18 Silence compiler warnings, remove Tabs [Giacomo Fiorin]
cb41905 2017-01-11 Add base class for TI estimator in other biases than ABF [Giacomo Fiorin]
a1bc676 2017-09-14 Avoid writing to unopened traj file [Jérôme Hénin]
b58d8cd 2017-09-08 Function to check for overlapping groups [Jérôme Hénin]
1e5efec 2017-09-07 Check for overlapping groups in coordNum [Jérôme Hénin]
03a61a4 2017-04-06 Add UI-based estimator [fhh2626]
ae43754 2017-08-17 Fix outputCenters parsing [Josh Vermaas]
1619e0e 2017-08-14 Delete static feature arrays in cvm destructor [Jérôme Hénin]
2017-10-13 13:45:10 -04:00
f6ddc8c7c9 Fix compile errors from neigh history refactor 2017-10-13 10:49:31 -06:00
a973c65d67 Merge pull request #691 from akohlmey/collected-fixes
Collected small changes for next patch
2017-10-13 09:50:03 -06:00
1a200588bd Merge pull request #689 from rbberger/pylammps_autocomplete_fix
Limit IPython autocomplete to known commands and properties
2017-10-13 09:49:03 -06:00
18ca2292c2 Merge pull request #686 from giacomofiorin/lepton-library
Add Lepton library within lib/colvars
2017-10-13 09:48:42 -06:00
d3ef4bd594 Merge pull request #685 from ellio167/kim-api-v1.9.2
Update lib/kim for kim-api-v1.9.2
2017-10-13 09:48:16 -06:00
3df9caf435 drop const qualifier to allow bracketing of lookup index 2017-10-13 10:29:49 -04:00
fa2e5ac2d9 handle lookup exceptions consistently across energy and energy+force lookup in bond/angle style table 2017-10-13 10:13:34 -04:00
b7c7492608 handle invalid lookup for bond/angle tabulation 2017-10-13 09:50:56 -04:00
cee94da85e bugfix. avoiding operating on uninitialize data. closes #690 2017-10-13 00:15:15 -04:00
45aa7de171 Limit IPython autocomplete to known commands and properties 2017-10-12 14:43:17 -04:00
53aa92cfaf add support for neighbor list history refactoring in USER-OMP part 2 2017-10-11 10:30:29 -04:00
7e35042c42 add support for neighbor list history refactoring in USER-OMP part 1 2017-10-11 10:29:41 -04:00
01051e4cb1 refactoring of neighbor history 2017-10-10 16:53:51 -06:00
d90aad887e Add Lepton library within lib/colvars 2017-10-09 15:25:43 -04:00
775a15b9da Update lib/kim for kim-api-v1.9.2 2017-10-09 14:06:30 -05:00
93c9a92743 Merge pull request #684 from irisTa56/bugfix-in-domain.cpp
Bugfix for checking image flags
2017-10-09 08:30:48 -06:00
14dc1c698c Merge pull request #683 from wmbrownIntel/pppm_intel_fix
Fixing bug in pppm/intel for AVX-512 with single precision and ik diff.
2017-10-09 08:29:52 -06:00
a1f5693fe0 Merge pull request #681 from lammps/dump-modify
remove dependence of dump modify 'at' and 'append'
2017-10-09 08:29:12 -06:00
534b7adde4 Bugfix for checking image flags 2017-10-09 21:29:07 +09:00
02646100e9 correct handling of "at" keyword for netcdf dumps as suggested by @pastewka in PR #681 review 2017-10-09 07:49:29 -04:00
7e58f084d2 Fixing bug in pppm/intel for AVX-512 with single precision and ik diff.
This commit simplifies the code by eliminating packing optimizations that were slower
under typical parameters and had some memory bugs.
2017-10-08 08:33:07 -07:00
0f5d7dcc0f cmake: added USER-UEF 2017-10-07 12:38:41 -06:00
b6187173e6 Merge branch 'master' into HEAD 2017-10-07 12:35:51 -06:00
88a33edb50 Merge pull request #680 from lammps/map-yes
add atom_modify map yes, also timers to create_atoms and replicate
2017-10-06 17:43:52 -06:00
6820db99e2 avoid merge conflict 2017-10-06 14:41:38 -04:00
58e1969de2 rename misleading "CPU time" into "Time spent" 2017-10-06 14:34:10 -04:00
e91e505fb3 remove dependence of dump modify 'at' and 'append' 2017-10-06 09:44:29 -06:00
f7cbdcf995 Merge pull request #673 from pastewka/17_dump_nc2
Multi file support for NetCDF dump style
2017-10-06 09:14:12 -06:00
4cfa88b70f Merge pull request #674 from wmbrownIntel/user-intel-update
Mike Brown has added DPD to the USER-INTEL package with speedups over 3X for Xeon Phi and over 1.7X for some Xeon processors.
2017-10-06 09:12:39 -06:00
352a20fc1c DOC: Updated doc to separate description of 'append' and 'at' keywords. 2017-10-06 16:38:15 +02:00
dc0e20947e MAINT: Return error when 'at' keyword is used without 'append yes'. 2017-10-06 16:37:52 +02:00
05847a0e87 Merge branch 'master' into user-intel-update 2017-10-06 10:18:38 -04:00
439c2fd980 Merge pull request #677 from stanmoore1/kk_update
Update to Kokkos r2.04.04 and add workaround for performance regression
2017-10-05 17:10:00 -06:00
15853a0e38 Merge pull request #676 from stanmoore1/kokkos_reverse_comm
Add Kokkos threaded reverse communication
2017-10-05 17:08:49 -06:00
bd17ee5df7 Merge pull request #675 from wesbarnett/master
cmake: Add -restrict for Intel compilers
2017-10-05 17:08:35 -06:00
a9b7ff1154 Merge pull request #679 from stanmoore1/kk_reax_comm
ReaxC optimizations
2017-10-05 17:08:17 -06:00
0dd7ba26c0 Merge pull request #672 from akohlmey/phana-w-tricubic
Streamline compilation of "phana" tool for fix phonon
2017-10-05 17:01:37 -06:00
7a90eef527 Merge pull request #668 from ovilab/modify_deallocation_fix
Fixed proper deletion of fixes if fix is NULL
2017-10-05 17:00:10 -06:00
5d0626e50e Merge pull request #665 from akohlmey/collected-small-fixes
Collected small fixes
2017-10-05 16:58:49 -06:00
4b7ca0383a Merge pull request #664 from timattox/kokkos_atom2bin
Kokkos atom2bin
2017-10-05 16:58:16 -06:00
0ed987dc61 Merge pull request #663 from jdevemy/master
Authorize hybrid/overlay for fix srp
2017-10-05 16:56:20 -06:00
55a3fdca80 Merge pull request #660 from junghans/latte_fix
cmake: fix build with system latte
2017-10-05 16:55:22 -06:00
214c0cfb2b add atom_modify map yes, also timers to create_atoms and replicate 2017-10-05 16:44:24 -06:00
e0efdd50fa Switch to classic comm if ghost_velocity. The check_forward and check_reverse tests aren't necessary because the fix/pair/etc. comm is done in a separate routine. 2017-10-05 15:47:46 -06:00
44d2e8ff74 Add pre_reverse to verlet_kokkos and comment out timer 2017-10-05 15:28:35 -06:00
6bf2c60c07 Fix issues in Kokkos comm 2017-10-05 14:58:05 -06:00
eecd2fbaee Remove hardcoded value in fix_qeq_reax 2017-10-05 11:23:31 -06:00
2b0bfcb10f Fix memory leak in pair_reaxc_kokkos 2017-10-05 10:35:09 -06:00
3653f40120 Reduce unnecessary communication in fix_qeq_reax 2017-10-04 12:10:13 -06:00
bda0ee3aa1 Destroy unneeded fix in pair_reaxc_kokkos 2017-10-04 12:06:03 -06:00
957263431a Ensure consistency with documentation 2017-10-04 09:38:43 +02:00
f12031f84d add support for building rigid bodies from custom atom properties or atom style variables 2017-10-04 01:14:57 -04:00
c522b1b7a9 add call to fftw_cleanup() before exiting to avoid bogus leak reports when compiling with FFTW v3.x 2017-10-04 00:22:56 -04:00
a55adf4a68 Update to Kokkos r2.04.04 and add workaround for performance regression 2017-10-03 11:30:00 -06:00
2876baafd0 Use -restrict whenever Intel is used, no matter the package 2017-10-03 13:08:56 -04:00
ca032f21fb Add Kokkos threaded reverse comm option 2017-10-03 10:14:24 -06:00
197f082784 cmake: Add -restrict for Intel compilers for some packages
Some packages (USER-OMP, OPT, and USER-INTEL) require the -restrict
flag when using the Intel compiler.
2017-10-03 11:28:33 -04:00
1bb7af9ef9 integrate fix rhok into the LAMMPS source code management and documentation system 2017-10-03 10:45:08 -04:00
251f28049a make fix rhok more similar to other LAMMPS sources
- re-indent to 2 blanks
- white space cleanup
- use force->numeric() and force->inumeric() instead of atof() and atoi()
- include system headers before local LAMMPS headers
2017-10-03 10:10:38 -04:00
f07719e924 make fix rhok examples more consistent with LAMMPS conventions:
- move example folder to examples/USER/misc/
- comment out writing of trajectory files
- reduce run length (for easier testing for regressions)
- record example outputs for 1 and 4 MPI processes
- rename readme.md to README.md for visibility
2017-10-03 10:08:38 -04:00
5f527091b8 Update readme.md 2017-10-03 12:02:01 +02:00
30aaa7e47b Update readme.md 2017-10-03 12:00:43 +02:00
74dcf0bf9b Update readme.md 2017-10-03 11:54:46 +02:00
e9b07a7a10 Update readme.md 2017-10-03 11:52:48 +02:00
fd8f5f8f9e Update readme.md 2017-10-03 11:52:08 +02:00
5c59eb637b Update readme.md 2017-10-03 11:49:57 +02:00
250ef9f837 Update readme.md 2017-10-03 11:46:08 +02:00
e44f370d49 Update readme.md 2017-10-03 11:44:52 +02:00
1e790fbafe Update readme.md
Now use the standard namings.
Corrected spelling errors.
2017-10-03 11:44:23 +02:00
35cc795972 Update in.setup 2017-10-03 11:17:43 +02:00
245bf74552 Rename setup.lmp to in.setup 2017-10-03 11:16:54 +02:00
7e8bbe8481 Rename pinning.lmp to in.pinning 2017-10-03 11:16:29 +02:00
e6d687faac Rename crystal.lmp to in.crystal 2017-10-03 11:15:49 +02:00
8a2cf5ce8e reformatting and use citeme class 2017-10-03 11:13:10 +02:00
8f79f5ddb9 add the LAMMPS copyright 2017-10-03 10:59:46 +02:00
40ae6f215b add the usual LAMMPS copyright 2017-10-03 10:58:21 +02:00
4dcc49ebe2 Delete fix_rhok.cpp 2017-10-03 10:56:07 +02:00
fe14eeccac Delete fix_rhok.h 2017-10-03 10:54:22 +02:00
9dc42fd4db intel_simd.h is currently also needed by dihedral/charmm, not just sw. 2017-10-02 23:53:05 -07:00
5e89269631 Minor adjustments to intel makefiles and documentation based on the reversed
preprocessor logic and default memory align. Removing knl_coprocessor makefile.
2017-10-02 23:41:14 -07:00
11eed234f0 include dump cfg/uef in commands toctree 2017-10-03 00:14:34 -04:00
af1fc45db0 added citation to doc 2017-10-03 00:04:52 -04:00
b34109af60 formatting changes 2017-10-02 23:43:31 -04:00
1dffb0cf82 reran npt_biaxial examples 2017-10-02 23:27:10 -04:00
588b2534c9 Minor fix for FixNHUef constructor 2017-10-02 23:26:21 -04:00
d2aa05cb36 update README in USER-INTEL for recent LRT logic reversal 2017-10-02 21:24:51 -04:00
466fde6443 update documentation for the reversal in the INTEL_MKL_RNG define 2017-10-02 21:20:26 -04:00
2a24cbfe0c reverse logic for using MKL pRNG: this way, make serial and make mpi will compile LAMMPS with USER-INTEL installed 2017-10-02 21:13:51 -04:00
00aef0fe00 rerun logfiles for USER-UEF example inputs 2017-10-02 17:40:46 -04:00
92d9b361fc include USER-UEF styles in PDF version of manual 2017-10-02 17:39:59 -04:00
8acdc8020d add USER-UEF classes to .gitignore 2017-10-02 17:24:36 -04:00
cc09a633a2 small code refactor for FixNHUef class
- use forward declaration for UEFBox to avoid having to include custom header
- remove uef_arg_kludge() thanks to changes in 0c7879e902
2017-10-02 17:19:42 -04:00
81be9b37de formatting, whitespace and include file/constants cleanup 2017-10-02 17:15:13 -04:00
0c7879e902 provide compatibility entries in FixNH option parsing for new USER-UEF package 2017-10-02 16:31:41 -04:00
8d384b9149 whitespace cleanup 2017-10-02 15:03:48 -04:00
529eeb6039 Reduce GPU data transfer 2017-10-02 09:31:39 -06:00
cf24dd0265 Adding pair style dpd/intel and dihedral style fourier/intel
Adding raw performance numbers for Skylake xeon server.
Fixes for using older Intel compilers and compiling without OpenMP.
Fix adding in hooks for using USER-INTEL w/ minimization.
2017-10-02 04:53:17 -07:00
a7b0d1f521 DOC: Corrected syntax for appending at certain frame (NetCDF only) 2017-10-01 14:40:19 +02:00
fbe42cda2d MAINT: Only set append flag when not in multifile mode. 2017-10-01 14:31:33 +02:00
da7be99cc4 DOC: Added multi file example. 2017-10-01 14:28:20 +02:00
56d21bfb05 MAINT: Removed obsolete prmtop writer. 2017-10-01 14:22:04 +02:00
100231bba8 ENH: Enable multi file writes. 2017-10-01 14:21:09 +02:00
84378f8ae2 MAINT: Renamed _put_var1_x to _put_var1_bigint 2017-10-01 14:05:12 +02:00
6e342d2e45 MAINT: bigint (int64) maps onto either long or long long, depending on platform. Automatically choose the correct one. 2017-10-01 14:03:52 +02:00
091d058090 Fix typo 2017-09-30 17:44:15 -04:00
4c71beb024 cleanup/simplification of compilation for fix phonon analysis tool "phana"
- include the used tricubic functions directly as static functions
- silence compiler warnings
- define f2c.h imported data types directly or use C equivalents
- since the direct LAPACK API was called and not cLAPACK, declare LAPACK interface and depend only on LAPACK
- add proper dependencies
- disable automatic minor version number generation. step version manually.
- comment out optional spglib functionality by default
2017-09-30 12:12:15 -04:00
a86572f4fc Reduce memory churn in Kokkos package 2017-09-29 16:20:19 -06:00
4524b0fa83 rename arg_kludge to uef_arg_kludge 2017-09-29 16:54:46 -04:00
4ef63feea7 reran examples 2017-09-29 15:50:31 -04:00
9f2740b7f1 Partially revert 01d0a5c, avoid atomics, safe because of the while loop. Worst case is the resize will happen again because max wasn't accurate 2017-09-29 13:41:35 -06:00
2a06b75af8 doc revisions 2017-09-29 15:36:41 -04:00
d7aac2fed5 Add sync/modify to nbin_kokkos 2017-09-29 13:26:02 -06:00
d898afaafb use <> for system includes not "" 2017-09-29 09:19:38 -04:00
c66ddf9ac0 Update fix_rhok.txt 2017-09-29 08:03:02 +02:00
a64040ce2d citeme 2017-09-28 18:33:04 -04:00
480b087c93 doc edits, README, and citeme 2017-09-28 18:31:51 -04:00
0029583463 doc edits i missed in earlier commit 2017-09-28 17:46:39 -04:00
c0f1a32661 fixed namespace issue 2017-09-28 17:43:59 -04:00
80898b8695 first draft of doc done 2017-09-28 17:42:02 -04:00
855b6000ef initial commit. doc is in the works 2017-09-28 16:34:18 -04:00
285a123c90 Update fix_rhok.cpp 2017-09-28 18:42:15 +02:00
0f52dd7c5f Update fix_rhok.h 2017-09-28 18:41:06 +02:00
10d1741e7f Update fix_rhok.txt 2017-09-28 18:38:25 +02:00
d11733d3a0 typo in equation 2017-09-28 18:28:46 +02:00
348c4eb7f3 add .cpp and .h to root src 2017-09-28 18:18:28 +02:00
75b3f34a58 Update documentation 2017-09-28 18:16:06 +02:00
fe80c57bde more documentation 2017-09-28 17:01:12 +02:00
e49f0e396b Create fix_rhok.txt 2017-09-28 16:24:26 +02:00
37e55a825b Create fix_rhok.txt 2017-09-28 16:20:03 +02:00
67e48264d9 Update fix_rhok.cpp 2017-09-28 16:02:20 +02:00
4e1eeca869 Update fix_rhok.cpp 2017-09-28 16:02:00 +02:00
2fda041972 Update fix_rhok.cpp 2017-09-28 16:00:16 +02:00
34c1adb4dd Merge https://github.com/lammps/lammps 2017-09-28 12:28:58 +02:00
23e283f135 Fixed proper deletion of fixes if fix is NULL 2017-09-27 16:20:07 +02:00
de45fa6e71 correct bogus links in LATTE docs 2017-09-26 18:25:37 -04:00
bfdc4acb8b add missing entry for pdf version of manual 2017-09-26 16:53:36 -04:00
fd3ecd0481 fix typo in formatting 2017-09-26 16:52:24 -04:00
8bba6d3e8c correct formatting and broken/colliding link issues with LATTE package related documentation 2017-09-26 16:52:10 -04:00
53e4ee4f2d need to re-init timers after initial setup 2017-09-25 23:20:42 -04:00
b60cff7e77 USER-OMP package depends on USER-DRUDE 2017-09-25 23:15:49 -04:00
38530415c8 -ltbbmalloc is required 2017-09-25 20:03:53 -04:00
0573aaa6da update src/.gitignore for LATTE package 2017-09-25 19:37:55 -04:00
e6969002ce having plain filelink instead of filelink.o confuses KOKKOS linking with nvcc 2017-09-25 19:37:37 -04:00
836a6d292c whitespace fixes, silence compiler warning about too few format specifiers 2017-09-25 16:31:39 -04:00
32e0de7a67 first pass at implementing atom2bin for KOKKOS neighbor lists 2017-09-25 14:06:20 -05:00
789812ec3d KOKKOS: minor typo fix 2017-09-25 14:06:20 -05:00
88a882b457 Added reference to fix rhok implimentation 2017-09-25 18:59:23 +02:00
f1aea57e30 Update readme.md 2017-09-25 18:48:21 +02:00
b35f2ff8b4 Example of Interface Pinning Computation 2017-09-25 18:44:24 +02:00
4beccf508f Move fix to USER-MISH 2017-09-25 18:35:53 +02:00
78a486c0fd Authorize hybrid/overlay for fix srp 2017-09-25 16:18:08 +02:00
f2c1172741 patch 22Sep17 2017-09-22 15:46:34 -06:00
d6316c40d9 cmake: fix build with system latte 2017-09-22 15:36:14 -06:00
bcde318ccb Merge pull request #659 from stanmoore1/kk_border_comm
Enhance Kokkos communication logic
2017-09-22 13:47:44 -06:00
3ed39ca844 Make Kokkos comm give warning and switch to classic comm instead of erroring out 2017-09-22 13:03:24 -06:00
ee487ef4aa Merge pull request #652 from junghans/latte
Add LATTE fix
2017-09-22 10:32:19 -06:00
a8ae886667 update fix latte examples and virial 2017-09-21 10:40:54 -06:00
fe8244c1c2 Rename fix 2017-09-21 16:49:46 +02:00
3381a43378 Added readme.m 2017-09-21 16:20:06 +02:00
73708b091c Added readme file, and removed old files 2017-09-21 16:17:26 +02:00
9a9af2ca5e Delete README 2017-09-21 13:58:51 +02:00
491d5f3410 Added USER-PINNING package 2017-09-21 11:38:59 +02:00
5e35ab251b fixed sucrose 2017-09-20 17:11:49 -06:00
d708e34ba6 cmake: download/build latte if not found 2017-09-20 12:01:26 -06:00
638b91bf74 Merge pull request #657 from lammps/snap-potentials
new SNAP potentials and examples
2017-09-20 09:34:51 -06:00
ad25a95297 whitespace cleanup 2017-09-20 11:13:13 -04:00
e7d042ba1a convert DOS/Windows CR-LF line endings to native format 2017-09-20 11:12:58 -04:00
dd49d54889 new SNAP potentials and examples 2017-09-20 08:54:30 -06:00
fbaa7ab8fa Merge pull request #655 from akohlmey/fixes-for-patch
collected small bugfixes for the next patch release
2017-09-20 08:51:47 -06:00
2e9803efb3 Merge pull request #645 from akohlmey/kokkos-makefile-updates
Some small kokkos makefile updates
2017-09-20 08:40:20 -06:00
59d2e13d48 add .gitignore and add Makefile.lammps.* symlinks to stay consistent with other libraries 2017-09-19 19:06:02 -04:00
76d93f21dd add fix latte command to doc pages 2017-09-19 16:55:08 -06:00
ac897ea645 LATTE package doc update and some small code changes 2017-09-19 16:27:25 -06:00
19f1f3a3e0 correct USER-INTEL installer script for verlet_lrt_intel files 2017-09-19 11:48:27 -04:00
be96486d66 compile all objects in the GPU library with -fPIC for building shared object 2017-09-19 11:24:48 -04:00
48dd824b26 ignore generated header files with OpenCL kernels 2017-09-19 11:24:38 -04:00
cdb6ec7419 reverse the pre-processor logic of the LRT mode define
with this change, the USER-INTEL package can be installed and
compiled without having to alter makefiles for adding -lpthread.
All "intel optimized" makefiles have been updated to have the
LRT feature enabled. This change will allow us to include the
USER-INTEL package in several automated testing configurations
and thus allows to detect incompatibilities and compilation issus faster.
2017-09-19 11:24:05 -04:00
aad8cd10ff allow fix viscous to be used with dynamic groups 2017-09-18 18:08:57 -04:00
1ac90815f3 fix external only needs to collect virial in case it is requested 2017-09-17 23:59:34 -04:00
5f1842829e activate virial contribution in fix lb/rigid/pc/sphere by default and protect virial computation with evflag 2017-09-17 21:10:41 -04:00
66130f5557 whether virial contributions from fixes are included depend on thermo_virial, not virial_flag. 2017-09-17 20:50:22 -04:00
388eab5eeb correctly initialize thermo_virial in fix poems and protect access to vflag_XXX by checking for evflag !=0 2017-09-17 20:49:41 -04:00
a500048c9c remove bogus version of temper/npt command 2017-09-17 19:25:22 -04:00
b4ecad7fbf remove another couple of purge items from long ago 2017-09-17 19:22:43 -04:00
b5894e2190 automatically call 'make purge' before calling 'make package-update' or 'make package-overwrite' 2017-09-17 19:19:45 -04:00
6f1935ea40 correct embarrassing typo
this always happens after too much exposure to fortran codes. :-(
2017-09-15 21:58:47 -04:00
02665e45a4 fix doc in lib/latte/Makefile.lammps.* 2017-09-15 17:52:14 -06:00
cc2a53a8da Merge branch 'exaalt' of gitlab.com:exaalt/lammps into latte 2017-09-15 17:43:48 -06:00
d614d56c34 Merge branch 'exaalt' of gitlab.com:exaalt/lammps into exaalt 2017-09-15 17:41:02 -06:00
39daf3c6f6 added fix_latte.txt 2017-09-15 17:40:34 -06:00
17aeccf19f Merge remote-tracking branch 'origin/master' into latte 2017-09-15 16:18:13 -06:00
d101fe3e79 Merge pull request #649 from akohlmey/fix-virial-aidan
Add support for selected fixes to optionally contribute to the virial
2017-09-15 15:25:09 -06:00
27f99534ec Merge pull request #654 from giacomofiorin/colvars-small-fix
Fix small typo to calculation of accumulated work in Colvars
2017-09-15 15:22:09 -06:00
5f6937dadd Merge pull request #653 from jdevemy/master
Bugfix for the limit keyword
2017-09-15 15:21:53 -06:00
3b39694f23 Merge pull request #628 from lammps/cmake_improvements
CMake improvements
2017-09-15 15:19:46 -06:00
99e5dc7104 add support for fix_modify virial yes to fix smd 2017-09-15 01:21:16 -04:00
ccb67d8dc5 correct cut-n-paste errors in the documentation of fix_modify virial 2017-09-15 01:20:56 -04:00
2cd7cbd964 correct cut-n-paste error, add docs 2017-09-15 00:54:19 -04:00
8776b81033 add virial support to fix addforce 2017-09-15 00:46:18 -04:00
f1fce64ff9 Fix small typo to calculation of accumulated work in Colvars 2017-09-14 12:58:00 -04:00
da7776f818 Bugfix for the limit keyword 2017-09-14 11:00:55 +02:00
66f59f9ec0 FindLATTE.cmake: fixed a typo 2017-09-13 15:51:03 -06:00
d84825fd7f remove useless files 2017-09-13 14:37:24 -06:00
f971cd6e45 Merge pull request #647 from rbberger/gpu_opencl_2
Use OpenCL 2.x API in GPU package when supported
2017-09-12 10:56:13 -06:00
0cb3a3821f Merge pull request #644 from akohlmey/collected-small-fixes
Collected small fixes for next patch
2017-09-12 10:31:51 -06:00
e927794696 Merge pull request #643 from andeplane/gpu_opencl_compile_fix
Fixed OpenCL compilation issues with __global keywords
2017-09-12 10:31:22 -06:00
e196a2b9e5 import changes to various fixes by aidan to include virial contributions 2017-09-11 22:24:06 -04:00
cb19ef547e update src/.gitignore 2017-09-11 22:00:58 -04:00
95d8492853 the original fix qeq went away over 7 years ago, we don't need to purge it 2017-09-11 21:59:22 -04:00
b3547a9eca add infrastructure for enabling fixes to contribute to the virial by aidan 2017-09-11 11:09:59 -04:00
84b84c10db Use OpenCL 2.x API in GPU package when supported 2017-09-09 19:53:56 -04:00
0be7f46750 cmake: added USER-MESO 2017-09-09 08:25:57 -06:00
4738fedca3 Merge remote-tracking branch 'origin/master' into cmake_improvements 2017-09-09 08:22:30 -06:00
1601433ca1 cmake: fix lib suffix 2017-09-09 07:05:51 -06:00
3fdb6f10fa cmake: OpenCL is always found if required 2017-09-09 06:51:24 -06:00
ff18cff46b Merge branch 'cmake_pkg_libs' into cmake_improvements 2017-09-08 23:34:59 -04:00
8a06a7bc6b Add OpenCL support to CMake build 2017-09-08 22:20:47 -04:00
b861ea342e cmake: fix LATTE linkage 2017-09-08 11:54:32 -06:00
fce633aa5f cmake: tweaks for EXAALT superbuild, add latte_fix 2017-09-08 11:33:49 -06:00
2f6be88c4a Merge remote-tracking branch 'origin/master' into exaalt 2017-09-08 07:04:12 -06:00
7b1542a0ba merging stable and exaalt branches into exaaltstable 2017-09-07 16:31:50 -06:00
366d087027 update docs for changes to makefiles 2017-09-06 14:20:24 -04:00
3a5d8362ff have only one common MPI makefile for KOKKOS with CUDA 2017-09-06 14:16:17 -04:00
5089b263b2 make kokkos_cuda_mpi compatible with both MPICH and OpenMPI 2017-09-06 14:15:27 -04:00
de8297ea19 recover ability to compile USER-INTEL without OpenMP enabled 2017-09-06 12:02:14 -04:00
fe557cb882 fix typo in commands table 2017-09-06 11:35:52 -04:00
c80203cb01 Merge pull request #641 from lammps/doc-tweak
small update to docs for new commands
2017-09-06 08:52:51 -06:00
4161868bcf Merge pull request #640 from ohenrich/user-cgdna
USER-CGDNA - sequence-dependent stacking and h-bonding strength
2017-09-06 08:52:05 -06:00
9ca39c89a6 Merge pull request #639 from rbberger/python_interface_improvements
Python interface improvements
2017-09-06 08:51:27 -06:00
99791ce01c Merge pull request #632 from timattox/USER-DPD_kokkos_merge
Add Kokkos version of the USER-DPD package
2017-09-06 08:50:43 -06:00
0248a7b98e remove duplicate listing of deleted USER-DPD files from Purge.list 2017-09-06 09:24:05 -05:00
dbc60d949f Fixed OpenCL compilation issues with __global keywords 2017-09-06 15:08:02 +02:00
d886cc91f3 fix syntax error in fix saed/vtk docs example
This addresses the issue reported on github
by @subhammridha closes thus clodes #642
2017-09-05 17:45:56 -04:00
4c5d901e2b fix stupid typo (too much compiling of fortran codes...) 2017-09-05 16:45:03 -04:00
c8f92c1a61 add a couple deleted files from USER-DPD to Purge.list 2017-09-05 16:42:58 -04:00
dec1d7b2dc re-indent so that gcc no longer complains about inconsistent indentation 2017-09-05 16:41:19 -04:00
45602e58f9 fix another couple of typos 2017-09-05 12:48:28 -04:00
cd72532fb9 fix typo 2017-09-05 12:47:34 -04:00
b170606052 Merge pull request #620 from amilumas/master
Temper_NPT
2017-09-05 10:08:55 -06:00
65b295e826 Merge pull request #638 from jdevemy/master
Mods for extra/special/per/atom and add toluene
2017-09-05 10:05:49 -06:00
89a0bc947f small update to docs for new commands 2017-09-05 10:04:20 -06:00
c8967a335f Included hyperlink to package 2017-09-05 11:45:32 +01:00
2105145f55 More minor changes 2017-09-05 11:40:36 +01:00
f7715ab6ce Added comment about optimised damping coefficient for BD 2017-09-05 11:35:26 +01:00
12fe614ddf Added sequence-dependent stacking and base-pairing strength 2017-09-05 10:48:38 +01:00
0b5a2e199d Add way of getting correct ctypes integer type for bigint, tagint, and imageint 2017-09-04 20:01:31 -04:00
09bb687918 Correct indentation 2017-09-04 20:01:04 -04:00
bb3ee752e5 Added optional numpy access to atom data
The library interface was extended to provide direct access to atom data using
numpy arrays. No data copies are made and numpy operations directly manipulate
memory of the native code.

To keep this numpy dependency optional, all functions are wrapped into the
lammps.numpy sub-object which is only loaded when accessed.
2017-09-04 19:59:50 -04:00
6b2d321d18 Add missing globals in library interface 2017-09-04 19:57:02 -04:00
2b9646097c Merge branch 'master' of github.com:lammps/lammps 2017-09-01 09:16:11 -06:00
f58088ae61 patch 1Sep17 2017-09-01 09:15:37 -06:00
397bc225b2 add temper/npt to src/USER-MISC/README 2017-08-31 14:56:43 -04:00
d9d9ba8244 update .gitignore 2017-08-31 14:52:56 -04:00
eba4be18c2 adapt formatting and naming conventions to fully match LAMMPS style. allow rigid and accelerated integrators. 2017-08-31 14:48:30 -04:00
4d2ed30b35 add reference outputs to temper/npt example 2017-08-31 14:13:02 -04:00
f3dda30f8e fully integrate temper/npt command into manual 2017-08-31 13:53:40 -04:00
d95a5f219e Remove all thread fences except one in verlet_kokkos 2017-08-31 10:38:36 -06:00
a5b65c1af4 Mods for extra/special/per/atom and add toluene 2017-08-31 15:03:04 +02:00
3e6cdd1400 USER-DPD: finish renaming #ifdef DEBUG_PAIR_CT to DEBUG_SSA_PAIR_CT 2017-08-30 14:58:38 -05:00
dc7f1281b8 USER-DPD: Kokkos version of Const Temperature DPD isn't implemented yet
The Constant Energy DPD (DPDE) was our primary usage case, so only stubs
for the Constant Temperature case were included in Kokkos code so far.
The non-Kokkos version works fine for Constant Temperature DPD.
2017-08-30 11:01:17 -05:00
27c962dc3b link cuda in gpu only, remove duplicated incl. dir 2017-08-30 09:45:01 -06:00
2dd202cc76 USER-DPD: remove some out-of-date FIXME comments in fix_shardlow_kokkos.cpp 2017-08-30 10:34:09 -05:00
f2d8c37f27 Rename SSA specific debug #ifdef to DEBUG_SSA_PAIR_CT 2017-08-30 10:24:29 -05:00
a4a45f1d9c Remove unnecessary check in npair_kokkos 2017-08-29 17:25:13 -06:00
f57d194920 Add files via upload
documentation for temper/npt
2017-08-29 10:40:37 -04:00
34b3fc2157 Fix GPU CMake compilation 2017-08-29 01:20:34 -04:00
098861375b SOVERSION not needed for STATIC libs 2017-08-28 16:18:58 -06:00
19b77857dc fix Fortran flags for MEAM 2017-08-28 14:59:01 -06:00
bd9dc4886d cmake: README is markdown 2017-08-28 14:27:12 -06:00
9207f6540e fix liblammps install 2017-08-28 14:11:21 -06:00
736e063971 Merge branch 'master' (21893539cb Aug 25) into USER-DPD_kokkos_merge
Resolved conflicts in src/KOKKOS/npair_kokkos.cpp
2017-08-28 14:46:50 -05:00
62928a1637 make GPU flags local to libgpu 2017-08-28 13:24:41 -06:00
c8dfe0c3de drop BUILD_SHARED_PKG_LIBS and make all pkglibs static 2017-08-28 13:17:27 -06:00
6a4bbddb3b Add files via upload
data file for example
2017-08-28 14:56:37 -04:00
2add18e013 Create in.temper_npt
example for temper/npt
2017-08-28 14:55:43 -04:00
d0efd3a422 Add files via upload
Updated command to temper/npt instead of temper_npt
2017-08-28 14:48:00 -04:00
f47cc0aab5 simpilfy pkg lib build 2017-08-27 18:55:28 -06:00
57872c8b60 drop INSTALL_LIB option 2017-08-27 18:42:32 -06:00
4bff008777 enable PIC globally 2017-08-27 18:40:55 -06:00
153c771a6d Use PIC in mpi_stubs when BUILD_SHARED_LIBS=on 2017-08-27 17:27:43 -04:00
313b8bc2fa build lib/gpu as a library 2017-08-27 17:00:56 -04:00
5308ee67fa fix shared build and mscg install 2017-08-27 13:45:48 -06:00
c196025ea9 make molfile less special 2017-08-27 12:23:30 -06:00
bc11868986 cmake: fixed a typo 2017-08-27 12:13:35 -06:00
e4415735f2 check for '-fno-second-underscore' 2017-08-27 12:10:46 -06:00
98f27162ba make libmpi_stubs 2017-08-27 11:37:57 -06:00
bdc117bf10 cmake: convert mscg into a lib 2017-08-27 07:15:00 -06:00
b7ec720f91 link QUIP against LAPACK_LIB too 2017-08-27 07:13:55 -06:00
47f16c0d70 cmake: move shared libs install warning in one place 2017-08-27 07:06:08 -06:00
76926b7fcf Compile linalg as library and track link dependencies for correct link order 2017-08-27 03:54:40 -04:00
67ae2719a8 Simplify lib build by using target_include_directories 2017-08-27 03:04:32 -04:00
21893539cb Merge pull request #633 from lammps/doc-user-meso
tweak an eq in USER-MESO, also allow neigh to be built w/out styles
2017-08-25 17:41:00 -06:00
dd101db79c Merge pull request #582 from stanmoore1/kk_changes
Fixing execution space issues in KOKKOS package
2017-08-25 17:06:26 -06:00
81ba181349 tweak an eq in USER-MESO, also allow neigh to be built w/out styles 2017-08-25 17:04:36 -06:00
e52a28f8af Update docs for Kokkos version of USER-DPD package 2017-08-25 16:20:42 -06:00
01dd0e173e Merge branch 'master' into USER-DPD_kokkos_merge 2017-08-25 16:02:27 -06:00
1f8c4f2c62 Remove hardcoded map variables and debug output 2017-08-25 15:31:00 -06:00
b73999ef21 Revert change to read_data.cpp 2017-08-25 15:25:41 -06:00
1e16fed9ab Error out if using pair hybrid with Kokkos, but not pair hybrid/overlay 2017-08-25 15:16:19 -06:00
a062944de9 Fix execution space issues 2017-08-25 14:45:47 -06:00
a641289d5b Must use atomics for GPUs in pair_exp6_rx_kokkos 2017-08-25 12:36:53 -06:00
6195b3c0f6 Merge pull request #631 from akohlmey/small-fixes-and-updates
Small fixes and updates for patch release
2017-08-24 08:35:32 -06:00
de0fdbed6c moltemplate bugfix update 2017-08-24 07:12:45 -04:00
dea92fbf52 print write dump systen init warning only on MPI rank 0 2017-08-23 21:01:55 -04:00
6db3bd87ee correct typo in header formatting 2017-08-23 17:52:09 -04:00
e55fa9d320 Merge branch 'USER-DPD_kokkos' into USER-DPD_GBhacks 2017-08-23 15:21:39 -06:00
cbf3646806 Merge branch 'master' into USER-DPD_kokkos 2017-08-23 15:20:56 -06:00
f5a99dece7 Remove unnecessary thread fences 2017-08-23 15:08:44 -06:00
4784506ba9 Remove unused function in rand_pool_wrap_kokkos 2017-08-23 15:02:26 -06:00
270abff2a2 Fix compile error for CUDA in pair_exp6_rx_kokkos 2017-08-23 14:59:19 -06:00
b6c93f96cf Merge pull request #629 from stanmoore1/kokkos_update
Update Kokkos library to v2.04.00
2017-08-23 14:39:42 -06:00
7b7a5076d0 Merge pull request #624 from akohlmey/compute-fragment
Add computes fragment/atom and aggregate/atom
2017-08-23 14:14:33 -06:00
1536eb5de5 Merge pull request #630 from akohlmey/moltemplate-update
Update for moltemplate to version 2017-8-22
2017-08-23 14:13:07 -06:00
f7a0a6eb70 Merge pull request #622 from akohlmey/collected-small-fixes
Collected small fixes
2017-08-23 14:12:45 -06:00
d80a6cbd31 Merge pull request #621 from lammps/user-meso
new USER-MESO package
2017-08-23 14:12:18 -06:00
c4b37039ab Merge pull request #619 from jrgissing/molecule_maxspecial
molecule maxspecial value corrected when specials autogenerated
2017-08-23 14:11:47 -06:00
b52efa2850 add compatibility to NetCDF 4.3.3 as bundled with RHEL 7.x 2017-08-23 15:28:27 -04:00
e88ff8d6f9 correct embedded help for GPU lib Install.py 2017-08-23 15:20:30 -04:00
97edf90a73 update fix qeq docs for the new, more flexible parameter file format 2017-08-23 11:22:09 -04:00
12150ffa73 add moltemplate version 2017-8-22 2017-08-23 07:54:56 -04:00
57aafba7c3 remove old moltemplate version 2017-08-23 07:54:05 -04:00
cdfb1aa043 make links unique, fix doc format warnings and add entries to administrative files 2017-08-23 00:39:52 -04:00
b80752a40c restore changes to read_data docs, that would have been lost due to merging an outdated version 2017-08-23 00:01:19 -04:00
79d5ca669d fix issues indicated by compiler warnings 2017-08-22 23:46:32 -04:00
26c15140be add USER-MESO files to .gitignore 2017-08-22 23:46:09 -04:00
5c985946d5 Merge branch 'master' into USER-DPD_kokkos 2017-08-22 13:50:19 -06:00
090c792d90 Update Kokkos library to v2.04.00 2017-08-22 13:42:02 -06:00
c5ccbbeea7 cmake: fix 'make test' 2017-08-22 07:13:04 -06:00
e2a1b666be Merge remote-tracking branch 'junghans/cmake_flags_summary' into cmake_improvements 2017-08-21 20:54:24 -04:00
ad0ecfa507 Merge remote-tracking branch 'junghans/lammps_suffix' into cmake_improvements 2017-08-21 20:53:53 -04:00
cf3f15b0a5 cmake: make h5md includes local 2017-08-21 15:04:03 -06:00
5fcc19777c cmake: fix molfile compile 2017-08-21 14:24:00 -06:00
1f4c550f9f cmake: make awpmd includes local 2017-08-21 13:09:52 -06:00
24c00b1f7a fix typo 2017-08-21 13:12:48 -04:00
5a0c3aea8a add a compute aggregate/atom, that combines the rules for compute cluster/atom and fragment/atom 2017-08-21 13:12:43 -04:00
c8aa06b959 cmake: build libs separate 2017-08-21 11:12:36 -06:00
bdccdbf2c2 cmake: make linker flags more clear 2017-08-21 10:20:56 -06:00
6d86697b3f cmake: move option in user options block 2017-08-21 10:18:20 -06:00
d1a0c040c9 add initializers for nmatch/nwant variables in molecule file parser 2017-08-20 23:28:13 -04:00
892a3f8609 cmake: make _ in LAMMPS_MACHINE implicit 2017-08-20 09:39:51 -06:00
de5883b7bb cmake: LAMMPS_SUFFIX -> LAMMPS_MACHINE 2017-08-20 09:27:12 -06:00
b1615d1839 cmake: print flag summary 2017-08-20 09:17:49 -06:00
aef2416ece Simplify CMake script 2017-08-20 10:49:30 -04:00
00a78cfa1a cmake: add LAMMPS_SUFFIX 2017-08-20 08:30:09 -06:00
f5b8f722ee remove non-portable non-ascii blanks from fix wall/ees docs 2017-08-20 10:09:21 -04:00
39e51df2c0 add missing entry in pdf manual 2017-08-20 10:02:11 -04:00
c895df73d6 skip over disabled bonds 2017-08-20 09:49:01 -04:00
4dc1195cd8 add docs for compute fragment/atom 2017-08-20 09:41:49 -04:00
35fd82b602 trim unneeded includes 2017-08-20 09:19:04 -04:00
c5ce3ffe60 use list of bonds per atom instead of bondlist, as that will work with shake as well 2017-08-20 09:18:04 -04:00
c9d41dbb47 Ignore installed package files when using cmake 2017-08-19 06:33:27 -04:00
1a80d4bc13 Remove style files in src dir while running cmake 2017-08-19 05:55:51 -04:00
aa1ce09b12 more cleanup, checks and generalization of QEQ parameter file parsing 2017-08-18 20:03:47 -04:00
f945d4567d new USER-MESO package 2017-08-18 17:33:42 -06:00
44ccdb86df add checks when reading QEQ parameter file to avoid segfaults and memory corruption on incorrect files 2017-08-18 19:24:39 -04:00
2e6a928aa3 ignore file recently added to USER-INTEL 2017-08-18 19:23:33 -04:00
6f66e6c454 add new compute fragment/atom 2017-08-18 19:07:32 -04:00
822bffdfae Merge pull request #1 from amilumas/temper_npt
Temper_NPT and example
2017-08-18 15:29:59 -04:00
6aa756968d Temper_NPT and example
New function that allows for parallel tempering (replica exchange) in MD in LAMMPS in the isothermal-isobaric ensemble (NPT)
Similar to temper which works in the canonical (NVT) ensemble.
An example is included that uses temper_npt
2017-08-18 15:21:49 -04:00
d671a04274 whitespace cleanup 2017-08-18 14:24:09 -04:00
bf7cff73d4 allocate the temporary special array on the heap and not the stack (it may get too big quickly) and clear the array before use. 2017-08-18 14:23:48 -04:00
9e85b3178a molecule maxspecial value corrected when specials autogenerated 2017-08-17 21:39:25 -06:00
b11fe2eddb Merge pull request #573 from junghans/cmake
Add secondary, cmake based build system
2017-08-17 16:06:19 -06:00
7ddcb6812b patch 17Aug17 2017-08-17 16:02:20 -06:00
76cd61350d Merge pull request #613 from akohlmey/collected-small-changes
Collected small changes and bug fixes
2017-08-17 11:34:52 -06:00
fa3c0c61d6 Merge pull request #618 from lammps/intel
USER-INTEL add-ons from Mike
2017-08-17 11:32:53 -06:00
c46d5ff422 Merge pull request #612 from giacomofiorin/colvars-update-2017-08-10
Minor fixes to Colvars module
2017-08-17 11:32:38 -06:00
dd67989c76 Merge pull request #601 from stanmoore1/kokkos_update
Update Kokkos library to v2.03.13
2017-08-17 11:32:18 -06:00
00aafef1a8 Merge pull request #597 from ndtrung81/three-body-short-nlist
Implementing short neighbor lists for three-body gpu styles
2017-08-17 11:31:59 -06:00
7175abcc71 flag more pair styles as supporting USER-INTEL to match newly added code 2017-08-16 13:58:46 -04:00
e34b20405c Fix a couple of typos in the docs 2017-08-15 21:10:05 -04:00
1d4d2155a2 USER-INTEL add-ons from Mike 2017-08-15 17:12:07 -06:00
cee87d7a54 update manual to point to packages.lammps.org instead of rpm.lammps.org 2017-08-15 16:19:09 -04:00
60e14f1490 add comment to msi2lmp README about symmetry limitations 2017-08-14 08:54:26 -04:00
81e7d4a942 fix incorrect preprocessor define for windows 2017-08-12 00:35:50 -04:00
13b804eeeb Merge branch 'USER-DPD_kokkos' into USER-DPD_GBhacks as of patch 10Aug17 2017-08-11 14:53:44 -04:00
0b3f1b8a15 patch 11Aug17 2017-08-11 12:19:02 -06:00
4041db8d1a Merge branch 'master' into USER-DPD_kokkos as of patch 10Aug17 2017-08-11 13:25:28 -04:00
b209a4e246 Merge pull request #614 from akohlmey/fixes-for-stable
Fixes for stable
2017-08-11 08:35:20 -06:00
27553283c3 fix bug with pair_modify <style> compute not triggering the correct global change 2017-08-11 08:28:37 -04:00
df56b2d6a4 trigger relink after package library build through updating the time stamp on main.cpp 2017-08-11 08:16:20 -04:00
c6d923b6c8 make download function more resilient by also catching failed execution 2017-08-10 21:15:35 -04:00
6d24be8bb7 whitespace cleanup 2017-08-10 21:14:40 -04:00
52bec0f380 patch 10Aug17 2017-08-10 16:44:09 -06:00
8c16ea1bfc add automatic triggering of review requests with a code owners file 2017-08-10 15:58:51 -04:00
c8741f3a01 remove special_bonds extra keyword and refer to read_data and create_box instead 2017-08-10 15:12:56 -04:00
2a7d2dee36 add more strict checking of data when parsing molecule files to detect format errors 2017-08-10 14:49:51 -04:00
378989e065 Merge pull request #27 from timattox/USER-DPD_kokkos_update
Merge changes thru July 27, 2017 from master 6d0a2286 into USER-DPD_kokkos

Includes 67a0183b which partially reverted 7f9a331c (from May 16, 2017) in USER-DPD,
since SSA neighbor lists use ghost info, so they can't currently be used as "occasional" lists.
2017-08-10 13:21:53 -04:00
f68c6254d4 Merge pull request #611 from akohlmey/final-tweaks
More tweaks for stable release
2017-08-10 08:02:55 -06:00
da01be7c18 More robust change from initial to target restraint centers in Colvars 2017-08-10 09:22:53 -04:00
146aa4cdbd fall back to wget when curl is not available 2017-08-10 09:05:23 -04:00
2f3747eb6e we need to override compiler flags in lib/voronoi/Install.py
The default compiler flags in voro++'s config.mk file do not include
-fPIC, which makes it incompatible with building the shared object for
the python wrapper.
2017-08-10 08:34:46 -04:00
2bc6ad80d4 avoid writable string and deprecated implicit conversion warning 2017-08-10 07:45:21 -04:00
f9a515efd3 add some remarks about makefile settings on windows 2017-08-10 07:24:24 -04:00
5b55744209 fix a header line formatting issue 2017-08-10 07:21:39 -04:00
0dc3cbaa8a Revert "remove -DLAMMPS_MEMALIGN from "make mpi" and "make serial" for increased portability"
This reverts commit 4e97b57508.
2017-08-10 06:51:57 -04:00
ce62c41252 when recomputing special bonds, make certain we do not shrink atom->maxspecial and add force->special_extra only once 2017-08-10 06:47:26 -04:00
4e97b57508 remove -DLAMMPS_MEMALIGN from "make mpi" and "make serial" for increased portability 2017-08-10 05:46:42 -04:00
7f437d7690 Merge pull request #609 from akohlmey/doc-changes-for-stable
Final tweaks and doc changes for stable release
2017-08-09 17:37:35 -06:00
77a628e4ef make the deprecation warning nicer looking 2017-08-09 19:13:40 -04:00
f01103dd08 correctly use the term CUDA (instead of Cuda) when not referring to the KOKKOS device flag (which is Cuda) 2017-08-09 19:08:23 -04:00
81f4d7ecb5 rework section 4 (Packages) in the manual to match Install.py scripts 2017-08-09 19:07:20 -04:00
210a77c5a0 add a deprecation warning to pair style meam and make the reax one consistent with it 2017-08-09 16:36:51 -04:00
e86b139817 Merge pull request #25 from timattox/USER-DPD_GBhacks_cudafix
Fix CUDA runtime issues for USER-DPD Kokkos code.
2017-08-09 15:32:03 -04:00
3e9b41c6b7 Added references to GPU package citations 2017-08-09 10:09:40 -05:00
6780c73907 restore mpic++ makefile to resolve regression test failure 2017-08-09 07:10:08 -04:00
be25a7d9a4 updated comment for fix neb by steve 2017-08-08 20:37:20 -04:00
691d1b730d Merge pull request #607 from akohlmey/final-changes-for-stable
Final build system changes for stable release
2017-08-08 17:26:22 -06:00
95ece8a6c0 consistently use $(PYTHON) in the master makefile (which defaults to "python") 2017-08-08 17:03:52 -04:00
b7b1257b01 remove attempts to use urllib and use curl for all downloading. restore printing help with no flags. 2017-08-08 17:00:09 -04:00
30431d4edb rework Install.py for gpu library. make it consistent with other lib folders and support python3 2017-08-08 16:57:27 -04:00
8a7a831bd6 Remove redundant check in Makefile.kokkos 2017-08-08 12:57:22 -06:00
c53a84a967 update README file for lib/mscg 2017-08-08 13:55:12 -04:00
b7b62f6893 do not pollute global namespace by including mscg header in fix header 2017-08-08 13:20:25 -04:00
d2b0c287d2 add local makefile overrides to be compatible with standard suffixes 2017-08-08 13:19:44 -04:00
b3244f9c98 more lib compilation updates 2017-08-08 07:20:33 -04:00
8bba29d91e more lib installation cleanup 2017-08-07 17:21:45 -04:00
135b1650f1 revamp of library builds
- remove cross compiler stuff
- make use of Install.py consistent
- provide options for Makefile.serial and Makefile.mpi that match those in src
2017-08-07 17:13:01 -04:00
0a54c34e34 Merge pull request #600 from akohlmey/install-and-docs-reviewed
Installation scripts and docs reviewed for release
2017-08-07 08:02:04 -06:00
a8f6a95cba Merge pull request #605 from rbberger/bash_on_windows
Adds tutorial for using LAMMPS in Bash on Windows
2017-08-07 08:00:56 -06:00
e0f9a7c34c Adds BOW tutorial link in main menu 2017-08-07 00:06:53 -04:00
aaf17bde3f Added tutorial for using LAMMPS in Bash on Windows 2017-08-07 00:06:12 -04:00
5ad8a3332d Merge pull request #55 from GarrettTow/patch-1
Fixed typo in "compute_voronoi_atom.txt"
2017-08-04 19:18:57 -04:00
ca7a3a6316 Fixed typo in "compute_voronoi_atom.txt"
There was the typo "requiers" in the Restrictions section of compute_voronoi_atom.txt.
2017-08-04 17:48:27 -04:00
163ed27618 update .gitignore 2017-08-04 16:10:59 -04:00
23ca0099f7 more updates to kim/Install.py to restore missing functionality and align with other scripts
- build into local directory to replace existing installation is now default
- add wrapper function that calls curl in case python package has not ssl support
- have to specify -n flag to avoid wiping out the existing installation
- can specify -p to point to an existing kim-api installation (implies -n)
2017-08-04 14:47:32 -04:00
59ac6ef573 correct a link and a name for OpenKIM 2017-08-04 11:19:09 -04:00
2fa16bcd4c make overlapping links to references unique to avoid anchor label errors 2017-08-04 11:11:41 -04:00
e84b6d8067 Merge pull request #602 from rbberger/pylammps_fixes
PyLammps corrections
2017-08-04 08:35:00 -06:00
96d3712817 Add missing link flag 2017-07-31 15:52:44 -06:00
b395ef00b4 Update tutorial_pylammps.txt 2017-07-31 15:50:14 -06:00
5cd1dc93dc Revert 7edb294b44 temporarily 2017-07-31 15:32:20 -06:00
d3169eeab3 Remove Make.py reference in PyLammps examples
Also fixes some regressions due to command syntax changes
2017-07-31 13:56:20 -06:00
71553cf732 Fix PyLammps regression after output.cpp change 2017-07-31 13:53:41 -06:00
93190a548a Merge branch 'cmake' of github.com:junghans/lammps into cmake 2017-07-31 11:48:27 -06:00
72f50c91ee Add -DLAMMPS_EXCEPTIONS flag 2017-07-31 11:48:22 -06:00
408d9d99a9 cmake: improve some error messages 2017-07-31 11:35:41 -06:00
8431ca5fec Remove tpls directory 2017-07-31 10:54:07 -06:00
13f2d39f55 Update Kokkos library to v2.03.13 2017-07-31 10:34:21 -06:00
9bfd9267fa update and automate the QUIP configuration so that no environment variables are needed 2017-07-28 16:11:13 -04:00
7d0d701eaf add reference outputs for QUIP/GAP example 2017-07-28 16:05:16 -04:00
841a92c7fa remove unused variable 2017-07-28 16:03:24 -04:00
85120842dd update QUIP examples to closer match typical LAMMPS examples 2017-07-28 15:20:33 -04:00
3ebf561e0d remove tarball after unpacking 2017-07-28 14:25:47 -04:00
ffb778cf9b make Install.py for lib/smd and lib/voronoi consistent 2017-07-28 14:03:29 -04:00
f3850da9fe clean up makefiles provide "serial" and "mpi" targets for atc and awpmd 2017-07-28 13:36:06 -04:00
7edb294b44 Fix execution space issues in comm_kokkos 2017-07-28 10:44:08 -06:00
e7d9aabca6 Merge branch 'kim-install' into install-and-docs-reviewed 2017-07-28 11:25:08 -04:00
9695aa6092 Merge branch 'master' into USER-DPD_kokkos_testing 2017-07-27 15:51:56 -06:00
e3973796ba fix bug in power operator in LAMMPS variable expressions 2017-07-27 15:51:45 -04:00
c494ec35e2 correct symbolic links to shared Install.py file 2017-07-27 12:48:32 -04:00
6d0a228624 Merge pull request #599 from lammps/kim-doc
restore lost KIM doc section in Section packages
2017-07-27 10:34:44 -06:00
8e834d8be1 Add missing sync to neigh_bond_kokkos 2017-07-27 09:37:16 -06:00
8f59c0e188 Fix modify/sync issue in neigh_bond_kokkos 2017-07-27 08:51:17 -06:00
acf6d54ec1 python3 port, yet untested 2017-07-27 09:25:39 -04:00
0427f6205e fix typo 2017-07-27 09:25:02 -04:00
72419b6313 Merge remote-tracking branch 'github/kim-doc' into install-and-docs-reviewed 2017-07-26 19:35:15 -04:00
da7a5f55d3 Merge branch 'kim-install' into install-and-docs-reviewed 2017-07-26 19:32:55 -04:00
934cbbbeca restore lost KIM doc section in Section packages 2017-07-26 16:07:08 -06:00
2806f070a4 Merge pull request #598 from akohlmey/last-minute-changes
last minute changes for stable release
2017-07-26 15:46:51 -06:00
715c797df0 simplify Install.py for voronoi 2017-07-26 15:14:12 -04:00
fd6e11f821 convert copies of Install.py files to symlinks 2017-07-26 14:29:52 -04:00
f7a243a4d9 convert explicit copies back into symbolic links 2017-07-26 14:20:03 -04:00
f0d286358e must not include system headers within 'extern "C"' blocks. breaks with MPICH 2017-07-26 14:02:02 -04:00
51a06334ad avoid invalid calls to memcpy(): when ndot == 0, pointers may be NULL 2017-07-26 12:08:42 -04:00
aa5ea95a0f avoid integer overflow and remove unused function argument causing it 2017-07-26 11:55:50 -04:00
60c67b07dc import updated fix msst file with some additional cleanup and simplification 2017-07-26 10:45:11 -04:00
0231cc38a3 cmake: some more typo fixes 2017-07-25 19:09:20 -06:00
c3c9f357fd Fix concurrent modification issue in comm_kokkos 2017-07-25 14:37:41 -06:00
76fb4e0815 Merge branch 'master' into kk_changes 2017-07-25 14:16:31 -06:00
d3fa882280 Fix execution space issues in Kokkos EAM pairstyles 2017-07-25 13:49:23 -06:00
557e5b964a Fixing Kokkos execution space issue with regions 2017-07-25 13:37:01 -06:00
633ca33f2f Fix issue in Kokkos neighborlist 2017-07-25 13:08:24 -06:00
bc446bb8b0 Merge branch 'master' into USER-DPD_kokkos_testing 2017-07-25 12:12:30 -06:00
6716de5320 allow user to override PYTHON_INSTDIR 2017-07-24 20:17:17 -06:00
f2023431f6 cmake: fixed another typo 2017-07-24 12:54:26 -06:00
a59b7e4d56 patch 24Jul17 2017-07-24 09:09:22 -06:00
2eaea2d274 Merge pull request #594 from junghans/license
LICENSE: update address of Free Software Foundation
2017-07-24 08:56:11 -06:00
1ddace4dba Merge pull request #595 from libAtoms/idces2quip
Add a (contrived) molecular example for USER-QUIP
2017-07-24 08:55:03 -06:00
af3d0ca381 Merge pull request #593 from akohlmey/collected-bug-fixes-and-small-updates
Collected bug fixes and small updates
2017-07-24 08:54:16 -06:00
aa60ef6ed8 Cleaned up 3-body kernels, reverted some mistaken changes to vashishta 2017-07-23 00:08:55 -05:00
a71f5a0c20 Enabled again neigh no with tpa > 1 for 3-body gpu styles for backward compatibility, could be slower than neigh no tpa 1 in many cases 2017-07-22 22:57:37 -05:00
c24e316baa avoid floating point overflows in iterative solvers of fix shake 2017-07-22 23:15:01 -04:00
2c6e177d5c avoid reporting negative memory allocation when memory_usage() is called before initialized 2017-07-22 23:14:17 -04:00
126d9cd3bc add GZIP and FFMPEG status 2017-07-22 13:57:15 -06:00
7b2182833f disallow binary output with dump style local. fixes #596 2017-07-22 10:35:16 -04:00
1afab981b0 Clarified some points in in.molecular example 2017-07-22 14:40:33 +01:00
1af937e99d Update in.molecular
- expand comments to provide more details on the choice of exclusion settings
- comment out dump file generation
2017-07-21 22:00:29 -04:00
4e0a249e27 Add a (contrived) molecular example for USER-QUIP
This example showcases the use of different 'special_bonds' settings for
different pair styles, so quip gets all the bonded neighbours but lj can
exclude them if it needs to.

The results have been checked against a pure quip implementation of the
potential; the expected lammps output is included.

DISCLAIMER: This example mixes parameters for methane and silane and is
NOT intended to be a realistic representation of either system.
2017-07-22 01:33:15 +01:00
edc756a65f LICENSE: update address of Free Software Foundation 2017-07-21 17:13:28 -06:00
8d485ea128 Remove hardcoded execution spaces 2017-07-21 16:04:18 -06:00
f4b6b67f6e Fixing more execution space issues in KOKKOS package 2017-07-21 15:04:14 -06:00
8ed881947f Fix execution space in manybody potentials 2017-07-21 14:28:13 -06:00
a477f26477 add support for trapping floating point exception as an optional compile time feature
we may make this a run time setting by connecting this code to a command.
2017-07-21 15:37:40 -04:00
b1b399d5c3 update readme for examples 2017-07-21 15:06:15 -04:00
74deeeca58 cmake: fixed another typo 2017-07-21 11:50:13 -06:00
c010edc4fd cmake: fixed two typos 2017-07-21 11:38:02 -06:00
3d1d0c58c7 Cleaned up 3-body gpu styles, and fixed a bug for tersoff/zbl/gpu.
There is a unresolved bug for neigh no with tpa > 1 with BaseThree, enforce tpa = 1 for neigh no in BaseThree for now.
2017-07-21 12:08:04 -05:00
00474ab09d handle one more case where allowing shifted potential with cutoff 0.0 would create NaNs 2017-07-21 10:30:11 -04:00
733ea61bf1 correct typo in USER-REAXC code 2017-07-21 01:15:24 -04:00
5c13b087e4 Merge pull request #592 from akohlmey/reaxc-bugfix
Bugfix for USER-REAXC and reaxc in KOKKOS and USER-OMP
2017-07-20 16:26:20 -06:00
ec23aef20b fix reaxc division by zero bug also for USER-OMP variant 2017-07-20 18:19:53 -04:00
61b1487cbd avoid division by zero in reaxff bond interaction computations in very rare cases
this addresses the issue reported by stan and ishan
2017-07-20 18:17:19 -04:00
e8e9ea8392 added one trivial test 2017-07-20 16:14:02 -06:00
3449d42267 include pair style kim doc changes that were accidentally included in PR #590 2017-07-20 17:58:49 -04:00
e53583d9c6 Merge pull request #590 from lammps/fortran-dftb
update of Fortran-DFTB interface to be compatible with fix msst
2017-07-20 15:30:23 -06:00
c88d1e5510 make ENABLE_ALL work out of the box 2017-07-20 15:15:29 -06:00
551001f172 revert change, that is part of the kim-install branch and changeset 2017-07-20 17:08:19 -04:00
5dbe2df854 revert change that accidentally undoes part of PRs #583 and #588 2017-07-20 17:07:31 -04:00
427ca88dd4 cmake: error for POEMS + BODY package 2017-07-20 15:02:41 -06:00
3f83396837 Merge pull request #588 from akohlmey/colvars-quickfix
avoid makefile failure, if LAMMPS has not been configured yet
2017-07-20 14:45:25 -06:00
59db5f6a17 update of Fortran-DFTB interface to be compatible with fix msst 2017-07-20 14:40:35 -06:00
1749d643c7 GPU: bring back CUDPP_OPT 2017-07-20 14:30:52 -06:00
f037f89f5f fix GPU + BUILD_SHARED_LIBS
X-Thanks: Robert Maynard <robert.maynard@kitware.com>
2017-07-20 14:12:23 -06:00
1b704bab18 Merge branch 'colvars-safer-makefiles' of https://github.com/giacomofiorin/lammps into colvars-quickfix 2017-07-20 15:59:23 -04:00
c98f6140e7 Change order of targets in Makefiles for Colvars 2017-07-20 15:49:31 -04:00
5031f5b807 Comment out use by Colvars of Makefile.lammps from other packages 2017-07-20 15:48:10 -04:00
9d0d90c038 README clarification from giacomo 2017-07-20 15:25:27 -04:00
66154e8a8b avoid makefile failure, if LAMMPS has not been configured yet 2017-07-20 15:05:58 -04:00
d2f76ae394 Merge pull request #586 from ellio167/kim-install
Refactor lib/kim/Install.py; works with python 3 and 2.7
2017-07-20 14:40:57 -04:00
3cd597e948 Merge pull request #585 from akohlmey/make-py-manual-cleanup
Make.py removal and manual cleanup
2017-07-20 12:05:04 -06:00
eca61226c2 Merge pull request #583 from giacomofiorin/colvars-update-2017-07-19
Update Colvars to version 2017-07-15 and support automated builds for it
2017-07-20 12:04:49 -06:00
fac3e3daa2 Merge pull request #581 from libAtoms/idces2quip
Modified USER-QUIP interface to pass lammps atom IDs
2017-07-20 12:04:32 -06:00
72e5f537c8 Merge pull request #576 from akohlmey/sanitizer-changes
Collected changes for issues detected by gcc -fsanitize
2017-07-20 12:03:40 -06:00
84065dde21 Refactor lib/kim/Install.py; works with phtyon 3 2.7 2017-07-20 12:02:50 -05:00
bdd2f3a6b2 remove references to Make.py and USER-CUDA 2017-07-20 12:25:42 -04:00
a351977c59 update manual links that got broken when removing and renumbering a section 2017-07-20 12:25:42 -04:00
8499e72cdc updates to USER-REAXC code in USER-OMP from Chris Knight. addresses issues with multiple threads in use 2017-07-20 12:11:46 -04:00
ef9fb944c7 Detect number of processors for make 2017-07-20 10:53:08 -04:00
187a80be77 Add forgotten decode() in Install.py 2017-07-19 22:21:49 -04:00
488609a5fd make FFT a selective option 2017-07-19 18:54:15 -06:00
01bcb79bdc cmake: clean up and updated comments 2017-07-19 18:34:07 -06:00
babba1870e added FFTW2 support 2017-07-19 15:33:02 -06:00
355aad9691 restore python3 support. this now can run with python 2.7.13 and 3.5.3. 2017-07-19 17:19:44 -04:00
a99e3ef4f0 cmake: fix typo and pkg info 2017-07-19 15:15:59 -06:00
c95db97b83 fix PYTHON install 2017-07-19 15:15:24 -06:00
ec42a60587 Merge pull request #584 from ellio167/kim-install
Update lib/kim/Install.py for phthon 2.7 conversion
2017-07-19 16:21:04 -04:00
ee6cac826e Update Colvars to version 2017-07-15 and support automated builds for it 2017-07-19 14:24:07 -04:00
f181a0bfab Update lib/kim/Install.py for phthon 2.7 conversion 2017-07-19 12:54:33 -05:00
52a1c54d50 support QUIP wrapper API version query, relax hybrid restriction to allow hybrid/overlay, update docs 2017-07-19 13:17:35 -04:00
fcf9607a66 Update USER_QUIP docs to clarify use of "special_bonds" 2017-07-19 17:47:21 +01:00
2961ba7ebb added MKL support 2017-07-19 10:35:48 -06:00
e2ad4fa745 GPU: cubin not needed 2017-07-18 19:29:40 -06:00
acbc60319f GPU: clean up part 2 2017-07-18 18:43:51 -06:00
e6f5f77edf GPU: clean up 2017-07-18 18:38:36 -06:00
864fd9cd87 remove cubin_headers hack 2017-07-18 18:20:23 -06:00
4d65c327f5 added minimal README 2017-07-18 16:06:29 -06:00
81f342aafa fix variable name bug and synchronize with other ported Install.py files 2017-07-18 18:06:18 -04:00
c3d9786616 GPU compiles 2017-07-18 16:01:35 -06:00
7ccb0d37cd port USER-SMD folder. make voronoi consistent with it 2017-07-18 17:37:48 -04:00
03cd4c5255 ported lib/voronoi/Install.py to python 3.x and tested with 2.7 2017-07-18 17:16:10 -04:00
148364949e fix memory corruption issue in fix reax/c/species 2017-07-18 16:11:49 -04:00
17aff29fe2 fix off-by-one bug when copying strings 2017-07-18 15:48:31 -04:00
f96b9e0dcf add various checks and improvements to identify incompatible uses and warn or exit with error message 2017-07-18 15:48:18 -04:00
a9eaeb4d95 working on GPU build 2017-07-18 13:47:03 -06:00
5cbaf7ca1d correct commands table format issue 2017-07-18 14:47:54 -04:00
02572a4099 add workaround that allows pair style quip to work with -DLAMMPS_BIGBIG, assuming tags are still only 32-bit signed integer 2017-07-18 14:41:38 -04:00
49b4cf9a77 remove references to Make.py and USER-CUDA 2017-07-18 13:24:32 -04:00
49e6c2eb7d remove references to Make.py from the manual and instead refer to section 4 2017-07-18 13:14:03 -04:00
1b34bec81a Prefer DeviceType specification over RangePolicy 2017-07-18 10:59:34 -06:00
a92d792537 update manual links that got broken when removing and renumbering a section 2017-07-18 12:55:55 -04:00
9df61b642e Removing stray file 2017-07-18 10:44:45 -06:00
3c88b2a980 Fixing execution space issues in KOKKOS package 2017-07-18 09:53:26 -06:00
085cbee116 protect LAMMPS from calling incompatible QUIP library with -DLAMMPS_BIGBIG 2017-07-18 11:17:25 -04:00
4ad9528999 safer handling of memory management for lists in reax/c 2017-07-18 07:37:14 -04:00
358915d16e avoid division by zero in peri pair styles 2017-07-18 07:26:45 -04:00
d9186c8fde Revert "use neighbor list exclusions instead of a zero cutoff"
This reverts commit bbb4d63db9.
2017-07-18 01:17:34 -04:00
bc5186bc30 fix unitialized pointer issue in USER-OMP with pppm/disp 2017-07-18 00:44:24 -04:00
c083d5d6f3 fix memory leak in list of neighbor list requests 2017-07-18 00:18:03 -04:00
c3a2ed0d1b plug small memory leak in USER-OMP variants of pppm kspace styles 2017-07-17 23:56:38 -04:00
23033404b0 skip table consistency check for bitmapped tables 2017-07-17 18:18:21 -04:00
3c3baf34c4 GPU: added cuda includedir 2017-07-17 15:04:07 -06:00
8bc3184611 added support for LAMMPS_FFMPEG 2017-07-17 14:01:05 -06:00
050a82af58 fix LAMMPS_LONGLONG_TO_LONG description 2017-07-17 13:28:34 -06:00
99f5f82b02 added support for LAMMPS_MEMALIGN and LAMMPS_LONGLONG_TO_LONG 2017-07-17 13:26:46 -06:00
a3885b78ad added support -DLAMMPS_XDR and -DPACK_* 2017-07-17 13:21:42 -06:00
08c920029f added lammps size option 2017-07-17 12:22:28 -06:00
2411192ab4 cmake: add cross-configure warning 2017-07-17 11:52:06 -06:00
5ee2c31038 split PACKAGES, get ENABLE-ALL right 2017-07-17 11:01:08 -06:00
bda0730169 Modified the quip/lammps interface to pass lammps atom ids 2017-07-17 16:55:05 +01:00
1c1a1db366 Fix typo 2017-07-17 11:55:05 -04:00
80e4448614 added GPU 2017-07-16 23:03:11 -06:00
385c6f7f2b cmake: clean up 2017-07-16 22:53:53 -06:00
fc1be074b2 added USER-INTEL 2017-07-16 22:52:59 -06:00
7605f72c9a finish USER-QMMM 2017-07-16 22:37:51 -06:00
22ecd9b8d2 started on USER-QMMM 2017-07-16 22:07:21 -06:00
7dd5068740 allow internal lapack 2017-07-16 21:43:29 -06:00
fa0f8a9e2a added USER-QUIP 2017-07-16 21:31:57 -06:00
d6f05ea309 USER_OMP -> USER-OMP 2017-07-16 20:19:20 -06:00
b6385d6ce2 add OpenKIM support 2017-07-16 20:17:41 -06:00
2978cce8db Added OPT 2017-07-16 20:52:38 -04:00
9991f679ae added USER-VTK 2017-07-16 20:41:42 -04:00
fc2e8b3c5e more USER packages 2017-07-16 17:52:43 -06:00
bb87bd4ac7 enable more user packages 2017-07-16 17:01:28 -06:00
d50b62837b add USER-AWPMD 2017-07-16 16:45:28 -06:00
c64424754d added USER-ATC 2017-07-16 16:18:58 -06:00
992ce79701 add sanity checks to EAM potential file reader subroutine 2017-07-16 14:37:30 -04:00
c549a16a85 enable REPLICA RIGID SHOCK SNAP SRD VORONOI 2017-07-16 11:30:09 -06:00
140182fb0b added support for QEQ 2017-07-16 11:14:08 -06:00
742eee1966 added support for POEMS 2017-07-16 11:07:36 -06:00
4812d4c659 enable PERI 2017-07-16 10:48:29 -06:00
95d9d32307 add support for MSCG 2017-07-16 10:37:24 -06:00
f50a757dc6 added MPIIO support 2017-07-16 08:32:14 -06:00
01f5136584 cmake: clean up 2017-07-16 08:22:19 -06:00
fa1f38596c Add support for PYTHON in CMake build 2017-07-15 18:29:33 -05:00
23540cfc94 enable MISC 2017-07-15 16:54:27 -06:00
fdb5ccefc7 Merge branch 'cmake' of github.com:junghans/lammps into cmake 2017-07-15 17:47:53 -05:00
629f112915 add support for MEAM 2017-07-15 16:44:03 -06:00
acd315e97a Add basic KOKKOS support to CMake build 2017-07-15 15:33:36 -05:00
d7355801df Make KIM Install.py Python 3 compatible 2017-07-15 12:03:04 -05:00
4ec07422f0 avoid division by zero when using cutoff 0.0 with pair_modify shift yes 2017-07-14 23:33:00 -04:00
b15f75d37b Merge branch 'cmake' of github.com:junghans/lammps into cmake 2017-07-14 22:08:06 -05:00
5e841bfe15 Added USER-OMP support to CMake build 2017-07-14 22:07:53 -05:00
3f297382ac Revert "do not allow pairwise cutoffs <= 0.0. avoids undefined behavior and division by zero errors"
This reverts commit a04711b21f.
2017-07-14 22:41:59 -04:00
d079b2f758 CreateStyleHeader: use temp file 2017-07-14 18:37:06 -06:00
54f2b02ac8 cmake: fix install 2017-07-14 18:33:27 -06:00
0a6e9c8bf6 added ENABLE_ALL option 2017-07-14 17:41:13 -06:00
b85979503f Add CMake support for more packages
BODY, COLLOID, CLASS2, COMPRESS, CORESHELL, DIPOLE, GRANULAR, MC, MOLECULE, MANYBODY, RIGID
2017-07-14 18:19:59 -05:00
c7e218f310 Merge branch 'cmake' of github.com:junghans/lammps into cmake 2017-07-14 18:06:27 -05:00
335ef11a7b Added style header generation with CMake 2017-07-14 17:49:05 -05:00
296e572e69 better Install.py script for KIM from Ryan Elliott 2017-07-14 16:25:16 -06:00
cc9b3864bf Merge pull request #577 from v0i0/airebo-kim-difference
AIREBO: Add doc about OpenKIM issue
2017-07-14 16:22:15 -06:00
d5dcb3d329 add support for KSPACE 2017-07-14 15:55:36 -06:00
c07adac22d add support for LAMMPS_GZIP 2017-07-14 14:49:53 -06:00
e4e1252152 fix LAMMPS_PNG 2017-07-14 14:44:44 -06:00
842dc1b58c cmake: collect link libs 2017-07-14 14:21:21 -06:00
bbb4d63db9 use neighbor list exclusions instead of a zero cutoff 2017-07-14 14:52:08 -04:00
1c92eecea7 move updated gauss_flow example to the correct folder 2017-07-14 14:01:41 -04:00
a04711b21f do not allow pairwise cutoffs <= 0.0. avoids undefined behavior and division by zero errors 2017-07-14 13:49:28 -04:00
e084d4dad6 print warnings in Pair::init() only on MPI rank 0 2017-07-14 13:48:21 -04:00
522bc13d67 avoid casts to the wrong derived class, which upsets code analysis tools. seems to improve performance, too. 2017-07-14 13:47:49 -04:00
14f1d646ad provide working examples for all four peridynamics models and reference outputs 2017-07-14 13:46:19 -04:00
3b1134c164 correct formatting error in peridynamics pair style docs 2017-07-14 13:42:02 -04:00
4d4c03a1e4 restore gaussian flow example that was lost. tweak input to make it usable for comparing 2017-07-14 12:33:40 -04:00
60faca2896 added tilt factors 2017-07-14 10:05:38 -06:00
e5405cdb04 AIREBO: Add doc about OpenKIM issue 2017-07-14 17:57:25 +02:00
8a1db83b73 silence static code analysis warning 2017-07-14 10:31:51 -04:00
a566419ca6 Add LAMMPS_LIB_SOURCE_DIR variable in CMakeLists.txt 2017-07-14 04:36:52 -05:00
fdd3d802f0 Clean up CMakeList.txt by introducing LAMMPS_SOURCE_DIR variable 2017-07-14 04:00:38 -05:00
a86b0d4c1b Add PNG library detection to CMakeList.txt 2017-07-14 03:53:07 -05:00
7f1789a0c4 cmake: add support for REAX and hence Fortran 2017-07-13 23:30:46 -06:00
bfb449cec9 cmake: furhter improvments
* Add support for one package
* Add support for JPEG as external package
* Use pre-generated style header
  * TODO write a script to generate them
2017-07-13 22:54:51 -06:00
de45a46529 Merge branch 'compute_rdf_dynamic' into sanitizer-changes 2017-07-13 17:39:12 -04:00
32ca58bdf2 whitespace cleanup 2017-07-13 17:34:30 -04:00
111786e92e avoid trying to free NULL pointers and reallocate storage for OpenMP, when not using OpenMP styles 2017-07-13 17:33:56 -04:00
132cee9840 protect warning printf()s to be only printed on rank 0 2017-07-13 17:33:00 -04:00
609c8b1e87 add flag to reax/c system struct to signaling, whether OpenMP is active 2017-07-13 17:32:27 -04:00
9988030409 Merge pull request #563 from akohlmey/airebo-example
Add AIREBO and AIREBO-M example input deck
2017-07-13 13:12:30 -06:00
fc36754ca2 Merge pull request #561 from v0i0/fix-airebo-various
Fix Various AIREBO issues
2017-07-13 13:10:42 -06:00
3a46c34c2f Merge pull request #574 from lammps/snap-virial
changes to SNAP virial from Aidan
2017-07-13 13:07:29 -06:00
cb935730c0 Merge branch 'master' into compute_rdf_dynamic 2017-07-13 15:02:50 -04:00
983eb0e80d Merge pull request #572 from junghans/data2xmovie
tools/Makefile: remove remains of data2xmovie
2017-07-13 11:27:46 -06:00
fc6c10c9a9 Merge pull request #571 from hasanmetin/reaxc-omp-credits-update
updated the credits and citations for pair style reaxc/omp and qeq/reax/omp
2017-07-13 11:27:18 -06:00
a3a0c9b144 Merge pull request #570 from akohlmey/collected-small-changes
Collected small changes
2017-07-13 11:26:47 -06:00
b64849d574 Merge pull request #569 from ellio167/kim-install-py
Kim install py
2017-07-13 11:24:43 -06:00
e58bcd8b4a Merge pull request #568 from akohlmey/fix_gcmc_parallel_workaround
Workaround for data corruption when using fix gcmc in parallel with shake or fix rigid
2017-07-13 11:23:49 -06:00
ef2f4980e9 Merge pull request #566 from akohlmey/compute_rdf_dynamic
Dynamic group and normalization support for compute rdf
2017-07-13 11:23:22 -06:00
d3a45f6d50 Merge pull request #560 from aershadinia/master
EES wall potential
2017-07-13 11:22:47 -06:00
d0cc1dfbb8 changes to SNAP virial from Aidan 2017-07-13 11:19:35 -06:00
de8d417aec fix off-by-one memory allocation bug 2017-07-13 10:55:13 -04:00
0af9203fdc remove useless and incorrect neighbor list request in fix qeq/comb/omp 2017-07-12 18:32:04 -04:00
6b19016deb cmake: initial commit 2017-07-12 16:23:38 -06:00
c24fca61f3 fix possible uninitialized data access with pppm and pppm/disp 2017-07-12 18:14:11 -04:00
01e848387a avoid accessing uninitialized data when exiting LAMMPS early 2017-07-12 18:00:38 -04:00
734729b0a4 avoid small memory leak with USER-REAXC + USER-OMP, spotted by GCC's address sanitizer 2017-07-12 17:27:49 -04:00
a419c7c57c update src/.gitignore for fix wall*/ees sources 2017-07-12 11:40:35 -04:00
69d97fa60c fix enforce2d has to be defined after fixes with enforce2d_flag set
this check currently only applies to rigid fixes and is needed
so that their respective enforce2d function is called _after_
the post force functions. this is required in combination with
commit a9ff593763 to allow rigid
fixes use the langevin option correctly for 2d systems
2017-07-12 11:26:16 -04:00
a9ff593763 avoid segfault when calling enforce2d before langevin data has been initialized 2017-07-12 09:48:07 -04:00
ddc9621325 remove absolutely last reference to xmovie 2017-07-11 18:30:41 -04:00
f717a70638 tools/Makefile: remove remains of data2xmovie
data2xmovie was removed in e110d6961a
2017-07-11 16:16:03 -06:00
f7f4a24930 whitspace cleanup 2017-07-11 15:01:15 -04:00
338fc28970 combine citeme.log entry for pair reax/c/omp and fix qeq/reax/omp 2017-07-11 14:59:08 -04:00
5a1e020bf0 updated the credits and citations for pair style reaxc/omp and qeq/reax/omp 2017-07-11 08:05:36 -07:00
c8939d8df6 clarify explanation of body style molecule in rigid fixes 2017-07-11 09:43:54 -04:00
cdac5f496c Built 3-body short neighbor list for the 3-body kernels using per-pair cutoffs for vashishta gpu style 2017-07-11 00:13:56 -05:00
8c9db3ea00 Built 2-body short neighbor list and used for 2-body kernels in tersoff gpu styles 2017-07-10 23:50:21 -05:00
e30c5fc956 Fixed shebang and renamed to lib/kim/Install.py 2017-07-10 21:05:29 -05:00
c29e8fba9b Updated lib/kim/README file to go along with new install.py 2017-07-10 17:00:30 -05:00
8d592f4b9e Finalized code for lib/kim/install.py 2017-07-10 16:43:23 -05:00
c9a0d38a3e mention restriction for use with fix shake or fix rigid in fix gcmc docs 2017-07-10 17:34:00 -04:00
b5e9e90bb6 white space cleanup 2017-07-10 17:21:20 -04:00
92395e9bb4 disallow MC moves with fix rigid and fix shake active. update examples and add shake example 2017-07-10 17:19:37 -04:00
ea2b01e83b Refactored 3-body gpu styles to remove code duplication 2017-07-08 20:17:31 -05:00
34fe2273f6 Added short neighbor list implementation for tersoff/zbl/gpu and tersoff/mod/gpu 2017-07-08 14:59:48 -05:00
77c60189b8 Minor cleanups for tersoff/gpu 2017-07-08 14:43:53 -05:00
1c6533e53d Working on short neighbor list for tersoff/gpu 2017-07-08 14:15:26 -05:00
68206079da Supported short neighbor lists for 3-body kernels in sw/gpu and vashishta/gpu 2017-07-07 16:47:24 -05:00
71ddcaf0b6 whitespace cleanup 2017-07-07 15:50:19 -04:00
fe888e4622 add support for recomputing normalization factors and finite size correction during 2017-07-07 15:39:25 -04:00
b0be8b24ea Further work on lib/kim/install.py 2017-07-06 15:50:03 -05:00
16fc2d6fe1 Add install.py and update config for kim lib 2017-07-06 15:49:58 -05:00
7193fffe0d make example input / output conform with LAMMPS conventions (no dump files, no log command) and update reference outputs 2017-07-06 16:08:25 -04:00
4339379948 patch 6Jul17 2017-07-06 13:58:26 -06:00
23925b3a57 update fix wall/ees and wall/region/ees file to conform more to common formatting
also fix some typos and formatting issues
2017-07-06 14:47:44 -04:00
423e3b6389 integrate fix wall/ees and wall/region/ees into doc system 2017-07-06 14:45:51 -04:00
87af3b1fd9 Merge pull request #564 from lammps/fix-external
bugfix for fix msst
2017-07-06 08:58:20 -06:00
8be6d5bfd8 Merged two doc files 2017-07-06 20:21:55 +09:00
a62eb43791 Delete "fix_wall_region_ees.txt" 2017-07-06 20:20:12 +09:00
33be51af54 Deleted "fix wall/region/ees" doc file 2017-07-06 20:19:40 +09:00
47649ff50f some edits to make examples more illustrative. 2017-07-06 15:35:06 +09:00
0423971205 whitespace cleanup 2017-07-06 00:24:00 -04:00
4ee7c6f5ca remove code without effect 2017-07-06 00:23:50 -04:00
7f63c09667 correct comment for Fix::ev_setup() 2017-07-05 22:35:58 -04:00
a5234d7aea fix bug reported by richard berger via https://ci.lammps.org/job/lammps/job/master/job/regression/160/testReport/junit/examples/msst/msst/ 2017-07-05 22:34:34 -04:00
fa469ae1d0 add polyethylene airebo example for future reference 2017-07-05 17:44:18 -04:00
e493b6a648 Fix sigcut class variable actually used 2017-07-05 22:52:29 +02:00
be8360ac4b Merge pull request #562 from lammps/fix-external
additional fix external hooks for calling programs
2017-07-05 14:46:10 -06:00
4de9cec1b6 make old_velocities allocation safer while retaining the test for nlocal 2017-07-05 16:22:39 -04:00
8c3f6947ad remove unused variables to silence compiler warnings 2017-07-05 16:19:59 -04:00
894e0c3cf5 simplify parsing of optional arguments 2017-07-05 16:19:24 -04:00
09ad293425 remove dead code 2017-07-05 15:04:35 -04:00
e625e79171 safer handling of processors w/o local atoms 2017-07-05 15:04:27 -04:00
f1088a5003 changes requested by @sjplimp 2017-07-05 15:03:58 -04:00
d451dbb1a0 adjust EES wall input example to print out some thermodynamic info that can be used for testing 2017-07-05 13:54:56 -04:00
6eddc1a2ee coding style and whitespace cleanup to match LAMMPS style 2017-07-05 12:33:41 -04:00
1bf1cb150f Updated credits 2017-07-05 18:26:32 +02:00
ea4f16bd79 additional fix external hooks for calling programs 2017-07-05 10:01:19 -06:00
9fa4588eb7 fixed a typo 2017-07-05 23:46:48 +09:00
f5440a777b Merge branch 'master' of https://github.com/aershadinia/lammps
hello
2017-07-05 23:25:03 +09:00
92831f185b Merge branch 'master' of https://github.com/aershadinia/lammps 2017-07-05 23:23:09 +09:00
8e279d4ec8 Examples moved 2017-07-05 23:16:42 +09:00
cbd8f99754 Restrictions Added 2017-07-05 23:15:27 +09:00
b720f39163 Restrictions Added 2017-07-05 23:15:23 +09:00
ff761d639a Sync AIREBO USER-OMP implementation. 2017-07-05 15:29:40 +02:00
d2f7f4843a AIREBO Fix Credits 2017-07-05 15:16:45 +02:00
7e42af18bc Feature: AIREBO parametrize cutoff switching
In #514 it has been raised that the switching function that
ensures a smooth transition to the cutoff is only correct if
cutlj = 3.0. This patch gives users an opportunity to configure
the switching function together with the cutoff by specifying
the start of the transition region. Behaviour in the default case
remaing unchanged.
This allows users to specify larger cutoffs than 3 (which used to
have no effect) and get correct cutoff behaviour for values less
then 3.
2017-07-05 15:11:58 +02:00
74d63c24fd Fix AIREBO missing derivative in bondorderLJ
This change replaces the bondorderLJ() function with code provided
by Github user CF17, which is based on the bondorder() code.
It could be fixed with a shorter patch [1], but layering fix upon
fix seems to be unwise in this case.
While the code at this point departs from following the Fortran
code closely, the reason is that the bug is present in the Fortran
code as well.
Instead, the new code follows closely the bondorder() code that
already exists, which should be easier to maintain in the future.
This patch makes the two functions consistent with each other,
and makes outside contributions easier.
Since it uses a different approach to compute its value, some
explanation of that reasoning has been added on top.

1: e8c5c662b2
2017-07-05 14:51:34 +02:00
769870cfc9 Proper spline coefficient calculation for AIREBO 2017-07-05 12:55:53 +02:00
e0521f27b4 Added reference to example directory. 2017-07-05 15:08:07 +09:00
5eb5391b20 Add reference to example 2017-07-05 15:06:34 +09:00
d3b8e688c9 Files Added to MISC 2017-07-05 14:57:43 +09:00
67d474df2a deleteing USER-EES 2017-07-05 14:39:37 +09:00
d0a397d6cb Merge pull request #559 from lammps/fortran3
3rd variant of Fortran wrapper for DFTB+ calling LAMMPS
2017-07-03 14:50:33 -06:00
f670dba3d0 3rd variant of Fortran wrapper for DFTB+ calling LAMMPS 2017-07-03 14:24:16 -06:00
6fc0a94e87 Merge pull request #524 from martok/package-meamc
Package USER-MEAMC
2017-07-03 12:30:01 -06:00
5c0c8bb4cd Merge pull request #558 from lammps/intel
memory allocation bugfix for USER-INTEL pppm from M Brown
2017-07-03 12:25:12 -06:00
9eeb97b039 Merge pull request #544 from akohlmey/tip4p-triclinic
Correct handling of triclinic box support in pppm/tip4p and pppm/tip4p/omp
2017-07-03 12:24:18 -06:00
9ca9b5e2ff add authors tag to pull request template 2017-07-03 12:06:36 -04:00
db73eca29f correct example inputs for recent changes to create_bonds command 2017-07-03 11:43:55 -04:00
2d1941ed9b make USER-INTEL compilable again with gcc and without OpenMP active 2017-07-03 11:33:08 -04:00
e634c5a2de memory allocation bugfix for USER-INTEL pppm from M Brown 2017-07-03 08:53:53 -06:00
22f3db4723 remove some dead code and prune argument lists accordingly 2017-07-01 18:16:36 -04:00
a1574fc03d remove unused variables 2017-07-01 17:55:13 -04:00
d68fb1cbb8 avoid repeated computation of deltaik and deltajk, calls to pow() 2017-07-01 17:49:14 -04:00
060e32973e another speedup by folding dsij() into meam_force() 2017-07-01 17:07:56 -04:00
a4a15f24bd fold screen() function into getscreen() and avoid some repeated operations 2017-06-30 18:44:51 -04:00
883b7aaa0e Merge pull request #557 from lammps/create-bonds
add single options to create_bonds command
2017-06-30 14:18:15 -06:00
1fff30af90 update or create example outputs for meam and meam/c 2017-06-30 15:30:06 -04:00
a490e04d24 add backward compatibility item to pull request template 2017-06-30 15:07:43 -04:00
b445f8eadf spell-check new additions to create_bonds doc page 2017-06-30 14:59:08 -04:00
b79044d4f6 Merge pull request #554 from jewettaij/master
Have extra/XXX/per/atom set by keyword to the read_data command
2017-06-30 11:47:46 -06:00
711afe5062 add single options to create_bonds command 2017-06-30 11:30:43 -06:00
3bf2c60276 Merge pull request #553 from Pakketeretet2/USER-MANIFOLD-gaussian-bump
Update to USER-MANIFOLD gaussian bump
2017-06-30 11:08:47 -06:00
d5119b2d75 Merge pull request #550 from stanmoore1/kokkos_leakfix
Fix Memory Leak in Kokkos NeighList
2017-06-30 11:08:30 -06:00
b2b621a2e1 Merge pull request #547 from akohlmey/collected-bugfixes
Collected small bugfixes and updates
2017-06-30 11:08:02 -06:00
b5250d11f6 Merge pull request #545 from akohlmey/issue-and-pull-request-templates
Add folder .github containing administrative files for use with GitHub
2017-06-30 11:06:58 -06:00
9dad95d101 performance improvement through moving inlinable functions to header file 2017-06-30 13:04:09 -04:00
f6faad335c update documentation for nb3/harmonic pair style according to e-mail to lammps-users 2017-06-30 11:37:18 -04:00
5548704700 Move stateless functions to separate module, improve style
- use static/const
- return instead of ptr-parameter, &ref if more than one return
- replace macros from header with inline functions
- remove useless/old comments
2017-06-30 15:37:26 +02:00
e0939ac795 Re-Run clang-format 2017-06-30 12:28:22 +02:00
d5921e9fb9 consolidate and update error message and read_data documentation for the updated read_data command 2017-06-29 16:30:49 -04:00
aa3f4b7690 change the handling of reading "extra XXX per atom", so that the final choice is the larger of the value in the file and the keyword 2017-06-29 16:09:23 -04:00
38075455b6 new keywords for read_data: extra/X/per/atoms + changes to docs 2017-06-28 17:55:30 -07:00
fa30635465 Revert "added feature to write_data.cpp to support "extra bonds" (angles,dihedrals,impropers,special)."
This reverts commit 0c2f7c74be.
2017-06-28 17:48:32 -07:00
0c2f7c74be added feature to write_data.cpp to support "extra bonds" (angles,dihedrals,impropers,special). 2017-06-28 14:12:03 -07:00
91bce7ccf9 Replaced std::fabs with fabs. 2017-06-28 09:48:00 -04:00
d0470799ac consistently check for all per-atom-type masses being set only when per-atom masses are not set
rather than placing an if statement around every incidence of calling atom->check_mass() to ensure it is only called when per atom masses are not set, we place that check _inside_ Atom::check_mass(). This avoids unexpected error messages.
2017-06-28 06:26:21 -04:00
076990c28a Updated Gaussian bump so that it has a better taper function. 2017-06-27 16:48:33 -04:00
661e51b607 remove non-ascii characters and spell check 2017-06-27 00:38:53 -04:00
d076040471 use itemized list instead of paragraphs for links at the top 2017-06-27 00:24:04 -04:00
2f9c0a3b8e more formatting issues addressed 2017-06-27 00:23:10 -04:00
b9d213ee2b update formatting for contributing ToC 2017-06-27 00:21:29 -04:00
fa3c7727e1 contributing guidelines, issue and pull request template are now feature complete
This is still a draft and in need of editing, proofreading and testing for formatting.
2017-06-27 00:17:37 -04:00
9fec8a0470 Remove clean_copy function from pair_vashishta_kokkos 2017-06-26 10:56:03 -06:00
b889776557 Fixing memory leak in Kokkos neighborlist 2017-06-26 10:51:26 -06:00
8fca667e4b Change indexing of remaining variables and locals
- Voigt index tables
- local variables
- remove shims from header
2017-06-26 18:09:11 +02:00
ea4d11fc5e Merge branch 'master' into USER-DPD_kokkos_testing 2017-06-26 09:36:30 -06:00
f7077d9672 Merge branch 'collected-bugfixes' of github.com:akohlmey/lammps into collected-bugfixes 2017-06-26 11:27:31 -04:00
f89a7266bf make USER-INTEL compilable again with gcc and without OpenMP active 2017-06-25 23:57:42 -04:00
1257955662 Merge branch 'master' of https://www.github.com/lammps/lammps 2017-06-23 19:31:43 -04:00
c2c6dc1458 remove spurious comment line 2017-06-23 16:24:37 -04:00
18983c307e fix qeq/reax/omp bugfix from metin 2017-06-23 16:24:00 -04:00
05fbf93455 skip deleting internal data before setup has been run 2017-06-23 10:37:00 -04:00
73b948dcfc pppm must be fully reinitialized after switching to triclinic box to avoid memory corruption 2017-06-23 10:01:45 -04:00
374eef2b17 add first draft of issue template 2017-06-23 01:13:10 -04:00
dc7243838b first draft of a contributor's guide file 2017-06-23 00:54:20 -04:00
57d5cfede3 add first draft of a pull request template 2017-06-22 23:07:09 -04:00
c081d383d1 Merge branch 'master' of https://www.github.com/lammps/lammps 2017-06-22 18:37:37 -04:00
f8364342c2 port corrected triclinic handling from pppm/tip4p to pppm/tip4p/omp 2017-06-22 18:12:28 -04:00
488d1b7a79 correct find_M() function in pppm/tip4p to properly account for ghost atoms not being in lamda space with triclinic cells 2017-06-22 17:36:18 -04:00
dadd1c8b4d Remove neigh_f2c/c2f, related cleanup
- neighbour lists now use C indexing
- removed many arr*v() macros
- removed some unneccessary pointers
- minor reformatting
2017-06-22 19:02:14 +02:00
f092da80a9 Fix some shadowing warnings 2017-06-22 13:28:12 +02:00
b9029ada77 fix bug in incorrect use of O coordinate instead of M coordinate in pppm/tip4p 2017-06-22 00:07:59 -04:00
f47aaa5f3c Merge branch 'master' of https://www.github.com/lammps/lammps 2017-06-21 14:11:12 -04:00
5e165e6782 fix array bounds issue due to typo. spotted by GCC. 2017-06-21 13:33:26 -04:00
02625b2855 fix typos introduced in original translation: results are correct again 2017-06-21 18:54:21 +02:00
bb47fa8783 Change indexing of all MEAM element arrays
- arrays in MEAM class
- eltind setting
- remove fmap translation
2017-06-20 19:56:14 +02:00
c79dc53c6a code improvement, less pointer params 2017-06-20 19:36:07 +02:00
72a1364d85 Merge branch 'master' into package-meamc 2017-06-20 13:21:46 -04:00
198fe7ecd7 fix storing of invalid memory pointer 2017-06-20 19:00:57 +02:00
67a0183b33 Removing atom2bin change since ssa neighlists aren't be used for occasional lists 2017-06-19 15:23:33 -06:00
b96b6b9cd7 Fixing error checks 2017-06-19 14:04:16 -06:00
da0dcbe0bb Updating to master 2017-06-19 10:56:24 -06:00
a9f3f90025 fix uninitialized members 2017-06-19 12:51:18 +02:00
3d066283b6 fix compilation, move meam_cleanup to destructor 2017-06-13 19:41:29 +02:00
29e60fa53a Move rho/gamma arrays to fields of MEAM, remove arguments and arrdim macros 2017-06-13 18:39:40 +02:00
078f2a0a47 Convert/Reindex phir* arrays 2017-06-12 17:41:09 +02:00
bdd908c303 update documentation for USER-MEAMC package and pair style meam/c 2017-06-11 21:54:18 -04:00
b45a95107d remove ambiguous access conflict to fm_exp() in pair style agni/omp after moving fm_exp() to math_special.h 2017-06-11 18:45:40 -04:00
9f852f5f58 Improve C++-ness, eliminate some macros
- fm_exp moved to math_special (exp2 was already there)
- use std::min/max template instead of macros
- use memory->create for dynamic arrays (still 1-indexed with macro)
- remove _ from function names, adjust method visibility
2017-06-11 16:55:41 +02:00
fea28d8028 ensure that allocatable_double_2d types are initialized 2017-06-11 07:29:44 -04:00
afed8bb978 make changes to pass compilation test
- move MEAM class into LAMMPS_NS namespace
- move inclusion of meam.h header to pair_meamc.cpp to reduce namespace pollution
- use forward declaration for MEAM class reference
- make that class reference a pointer and add a destructor
- replace MAX/MIN macros with versions compatible with older compilers
2017-06-11 07:18:13 -04:00
03c93b31d6 Convert to C++, allow multiple instances 2017-06-11 11:29:24 +02:00
d3f31547f9 Reformat code with clang-format (Mozilla style guide) 2017-06-11 11:29:24 +02:00
7c7468ffc2 Change c->cpp for better integration with makefile 2017-06-11 11:29:23 +02:00
bab292b551 Create package USER-MEAMC
Step 1: very literal translation of lib/meam
2017-06-11 11:29:23 +02:00
3c8e75ad59 Add missing sync/modify to fix_shardlow_kokkos 2017-06-09 10:57:35 -06:00
c51cadcc6c Fixing CUDA runtime issues in fix_shardlow_kokkos 2017-06-09 09:31:37 -06:00
86497949f2 Fixing CUDA runtime issues in fix_shardlow_kokkos 2017-06-08 13:40:20 -06:00
b4b7310884 Fixing CUDA runtime issues in pair_exp6_rx_kokkos 2017-06-08 13:33:23 -06:00
046900cd51 Merge pull request #26 from timattox/USER-DPD_GBhacks_optimize
Reduce memory churn in several files
2017-06-08 10:50:36 -06:00
43cfa10ea4 Reduce memory churn in pair_multi_lucy_rx_kokkos 2017-06-08 09:58:10 -06:00
6f24c58c1a Reduce memory churn in fix_rx_kokkos 2017-06-08 09:52:00 -06:00
611bb6f130 Reduce memory churn in pair_table_rx_kokkos 2017-06-08 09:31:51 -06:00
520ab26bd9 Fixing more CUDA runtime issues 2017-06-07 15:07:53 -06:00
13643e185c Merge branch 'USER-MANIFOLD-gaussian-bump' 2017-06-06 15:47:41 -04:00
efe60bf991 Fixing more CUDA runtime issues 2017-06-06 13:10:04 -06:00
36cbe43978 Fixing some CUDA runtime issues in npair_ssa_kokkos 2017-06-06 10:51:26 -06:00
2cf83d9fca Updating from master to 19May17 2017-05-25 11:21:10 -06:00
6032b8846e Merge branch 'exaalt' of gitlab.com:exaalt/lammps into exaalt 2017-05-17 11:36:50 -06:00
98713680ec added alternative linking line for intel mkl 2017-05-17 11:36:31 -06:00
ca4619e227 Fix format issue in pair_exp6_rx_kokkos 2017-04-11 09:14:21 -06:00
6c0b691882 Removing more memory churn in pair_exp6_rx_kokkos 2017-04-11 09:12:46 -06:00
035d0a80d7 Reducing memory churn in pair_exp6_rx_kokkos 2017-04-10 16:38:58 -06:00
178af2ec9e USER-DPD Kokkos: use a parallel_for() to build the ghosts workplan for SSA 2017-04-06 03:53:57 -04:00
9e272cb393 USER-DPD Kokkos: use a parallel_for() to build the locals workplan for SSA 2017-04-06 02:31:45 -04:00
ad5481831f Merge branch 'USER-DPD_GBhacks' into USER-DPD_GBhacks_ssa_mem as of patch 31March17 2017-04-05 16:38:44 -04:00
456926a321 Merge branch 'USER-DPD_kokkos' into USER-DPD_GBhacks as of patch 31March17 2017-04-05 16:18:39 -04:00
bceaa57614 Merge branch 'master' into USER-DPD_kokkos as of patch 31Mar17 2017-04-05 15:05:47 -04:00
4d4b6f66b7 Changing default gb/test to on 2017-04-05 11:42:25 -06:00
aedd7c57f3 Reset atom map values from restart file 2017-04-03 16:42:18 -06:00
2b2f3bd57c USER-DPD Kokkos: #ifdef DEBUG_SSA_BUILD_LOCALS the new debug output 2017-04-02 00:07:24 -04:00
c4c3d490c7 USER-DPD Kokkos: preflight storage needed for SSA threaded neigh list build 2017-04-01 23:52:14 -04:00
e0021a3ff5 USER-DPD Kokkos: preflight SSA neigh list workplan to reduce allocated storage 2017-04-01 14:41:52 -04:00
ac4c35ce8d USER-DPD Kokkos: more WIP on preflighting SSA neighbor list build, with debugging 2017-04-01 13:45:29 -04:00
ac64183ecf USER-DPD Kokkos: WIP on preflighting SSA neighbor list build, with debugging 2017-04-01 12:11:55 -04:00
6ba59cb458 fix memory leak in fix_shardlow_kokkos 2017-03-31 17:04:39 -06:00
fe82926c1f fix memory leaks in pair_tabl_rx_kokkos 2017-03-31 17:04:27 -06:00
697b072552 Merge pull request #21 from ibaned/dpd-memleaks
DPD memory leaks: round 2
2017-03-31 16:43:25 -06:00
5edbd63920 fix memory leak in fix_shardlow_kokkos 2017-03-31 16:03:05 -06:00
bf4f0817d4 fix memory leaks in pair_tabl_rx_kokkos 2017-03-31 15:57:00 -06:00
085958f065 Merge remote-tracking branch 'timattox/USER-DPD_GBhacks' into dpd-memleaks 2017-03-31 15:02:02 -06:00
b3d6d9f8cf fix memory leak via NeighListKokkos::clean_copy()
There were several clean_copy() calls in pair
styles *outside device code*.
They seem to have been left over from an abandoned
effort to copy the Kokkos neighbor list as
a member of the pair style, instead of copying
out the individual views needed.
These leftover clean_copy() calls were setting
pointers to NULL that had not been freed,
leading to large memory leaks.
I've removed the clean_copy() function entirely,
and replaced it with the copymode flag system used
in many other Kokkos objects.
The copymode flag is only set to one in
functors that hold copies of the neighbor list.
2017-03-28 13:01:22 -06:00
7041f75fce Merge pull request #20 from ibaned/dpd-memleaks
fix memory leak via NeighListKokkos::clean_copy()
2017-03-28 12:53:34 -06:00
20ae05055d fix memory leak via NeighListKokkos::clean_copy()
There were several clean_copy() calls in pair
styles *outside device code*.
They seem to have been left over from an abandoned
effort to copy the Kokkos neighbor list as
a member of the pair style, instead of copying
out the individual views needed.
These leftover clean_copy() calls were setting
pointers to NULL that had not been freed,
leading to large memory leaks.
I've removed the clean_copy() function entirely,
and replaced it with the copymode flag system used
in many other Kokkos objects.
The copymode flag is only set to one in
functors that hold copies of the neighbor list.
2017-03-28 11:38:26 -06:00
661bd37e15 Make read_restart evenly divide the work of reading when using mpiio.
Currently only affects restart files written without any per-atom fix data.
2017-03-27 15:03:34 -05:00
0463923e33 USER-DPD Kokkos: tighten up the SSA data allocation to what is needed.
A future version was planned to use more space for a ghost work queue.
2017-03-27 11:04:41 -05:00
28784a4ce2 Now with the correct math, make read_restart properly size the atom_vec_* data 2017-03-27 08:38:40 -05:00
5f0823172c Make read_restart properly size the atom_vec_* data when reading via mpiio 2017-03-27 06:56:28 -04:00
b418b46a03 USER-DPD: bugfix for an array that changed length in the non-kokkos version. 2017-03-27 06:56:16 -04:00
df95b2c566 testing simple ci, more complex #1 2017-03-23 22:27:42 -06:00
969325bf44 testing simple ci, attempt 4 2017-03-23 10:08:09 -06:00
e598762857 testing simple ci, attempt 3 2017-03-23 10:04:03 -06:00
8d793d4223 testing simple ci, attempt 2 2017-03-23 10:03:24 -06:00
756c899564 testing simple ci 2017-03-23 10:01:21 -06:00
3533df38d8 Merge branch 'virial1' into 'exaalt'
cleaned fix latte

See merge request !1
2017-03-22 15:48:36 +00:00
f7bdf128ea cleaned fix latte 2017-03-22 09:35:47 -06:00
7ed500e829 added virial 2017-03-21 17:09:42 -06:00
3c91f9734d make RK solver check in fix_rx_kokkos.cpp be as lenient as in fix_rx.cpp
NOTE: the (y < -MY_EPSILON) test was too strict, but don't know by how much
This needs to be revisited before merging back to LAMMPS master.
2017-03-21 17:12:09 -04:00
4ad1c82fcf Merge branch 'USER-DPD_GBhacks' into USER-DPD_GBhacks_cps 2017-03-20 14:37:32 -04:00
ce94d7a4df Merge branch 'USER-DPD_kokkos' into USER-DPD_GBhacks 2017-03-20 12:16:01 -06:00
2c93065786 Merge branch 'master' of https://github.com/lammps/lammps into USER-DPD_kokkos 2017-03-20 12:13:35 -06:00
20de98e898 Merge branch 'USER-DPD_kokkos' into USER-DPD_GBhacks, bring in bugfix 2017-03-19 21:22:59 -04:00
a68f3a93e5 USER-DPD Kokkos: bugfix, add a misisng line of code in pair_exp6_rx_kokkos.cpp 2017-03-19 21:12:52 -04:00
b3c46b7269 Merge branch 'USER-DPD_kokkos' into USER-DPD_GBhacks, bugfix for bonds 2017-03-17 20:15:24 -04:00
fff43a4604 USER-DPD Kokkos: bugfix for npair_ssa_kokkos.cpp corresponding to 0cd3f0cd 2017-03-17 19:33:04 -04:00
0cd3f0cd63 USER-DPD: bugfix for npair_half_bin_newton_ssa when bonds are involved.
Only locals have valid special[] arrays, so when finding neighbors of
ghosts, we have to swap the arguments to find_special().
2017-03-17 19:22:02 -04:00
75670244bb Added ONE-TYPE template capability to vectorized_operator and cleaned up timers. 2017-03-17 17:02:47 -04:00
64fdb1f528 Kokkos/pair_exp6_rx_kokkos optimized for SIMD on the inner j-loop. 2017-03-17 15:52:40 -04:00
eb1a4d11dd Merge branch 'USER-DPD_kokkos' into USER-DPD_GBhacks, as of patch 17March17 2017-03-17 15:18:24 -04:00
1c749d5cf5 Merge branch 'master' of https://github.com/lammps/lammps into USER-DPD_kokkos 2017-03-17 12:09:25 -06:00
a719f41426 Merge remote-tracking branch 'thunder/USER-DPD_kokkos_gb_test' into USER-DPD_GBhacks_cps 2017-03-17 10:26:44 -04:00
ba069fb755 Merge remote-tracking branch 'thunder/USER-DPD_GBhacks' into USER-DPD_GBhacks_cps 2017-03-17 10:11:00 -04:00
4a7bc115cb Merge branch 'USER-DPD_kokkos' into USER-DPD_GBhacks, bring in MPI deadlock fix 2017-03-17 03:24:03 -04:00
5ea096d08c Merge branch 'master_bugfix_irregular' into USER-DPD_kokkos 2017-03-17 03:19:29 -04:00
ec192a95cb Cleaned up the non-kokkos part of KOKKOS/pair_exp6_rx_kokkos.cpp 2017-03-16 22:28:19 -04:00
f5b7361ef6 Non-kokkos candidate of PairExp6rxKokkos::getMixingWeights to improve vectorization on the KNL.
- Moved the particle loop inside a replica of getMixingWeights, getMixingWeightsVect,
  and refactored to improve vectorization.
- Added OMP SIMD and OMP threading directly inside that function but will replace with
  kokkos parallel_for and parallel_reduce methods later.
2017-03-16 21:31:30 -04:00
acdb932c4e Fixing index issue in pair_exp6_rx_kokkos 2017-03-16 09:28:27 -06:00
8f37285b05 UPLOAD examples 2017-03-16 21:12:10 +09:00
ef72145540 Readme for examples 2017-03-16 21:10:41 +09:00
ce9b3f4fcb Merge branch 'USER-DPD_kokkos' into USER-DPD_GBhacks 2017-03-15 18:17:39 -05:00
7ebed717de Adding gb_test 2017-03-15 16:05:51 -06:00
bdee2fa234 Merge branch 'master' of https://github.com/lammps/lammps into USER-DPD_kokkos 2017-03-15 15:59:55 -06:00
bd7f4143e2 Merge pull request #18 from ibaned/pair-table-rx-kokkos-slow
pass Views by reference for pair_table_rx_kokkos
2017-03-15 09:47:42 -06:00
f4a08ba4fc pass Views by reference for pair_table_rx_kokkos
this greatly speeds up pair_table_rx_kokkos,
and should put it on par with pair_table_rx
in the Serial case
2017-03-15 09:25:16 -06:00
5925460a27 Improve the performance of read_data of gzip'ed files using taskset.
Normally, the gzip process would be pinned to the same core as the
MPI rank 0 process, which makes the pipe stay in one core's cache,
but forces the two process to fight for that core, slowing things down.
2017-03-14 14:27:23 -05:00
d2cbfef13b Add CUDA support to atom_vec_hybrid_kokkos 2017-03-13 09:01:35 -06:00
d17d99b9dd UPLOAD Formulas for EES 2017-03-13 22:54:09 +09:00
68b2a454b5 UPLOAD fix_wall_ees_image 2017-03-13 22:53:10 +09:00
23c3f5622a DOC files for USER-EES
txt doc files for fix_wall_ees and fix_wall_region_ees added.
2017-03-13 22:51:15 +09:00
6311d33a5d UPLOAD source files
source files and install.sh added
2017-03-13 22:49:04 +09:00
e136a9db02 Create README 2017-03-13 22:48:12 +09:00
4b4bc7dc3b USER-DPD: specialize PairTableRXKokkos's compute_all_items() on NEWTON_PAIR
No noticable performance change, but it does eliminate a deep conditional.
2017-03-13 03:03:27 -04:00
d5eceebf32 USER-DPD Kokkos: add support for full neighbor lists.
Note: "newton on" still required if using non-kokkos pair styles or fixes.
Non-kokkos pairs/fixes don't expect their half lists with newton off,
which happens if newton is turned off globally by kokkos via commandline.
Note2: Regardless, fix_shardlow* will still use half lists and newton on.
2017-03-13 01:56:00 -04:00
b1b377cb59 USER-DPD: fix_shardlow's neighbor request needs "newton on" override.
Even if other stuff is doing newton off, SSA must have it turned on.
2017-03-12 17:48:51 -04:00
e908b8dbea USER-DPD Kokkos: correct some error messages 2017-03-12 16:20:09 -04:00
d6f6c6faf1 USER-DPD: Make newton-off warning in pair_dpd_fdt* be more selective.
If using fix_shardlow, the pair_dpd_fdt* styles are okay with newton off,
because the stocastic forces are thus only done in fix_shardlow.
2017-03-12 16:05:28 -04:00
17c8e695a4 Merge branch 'master' into USER-DPD_kokkos as of patch 10 Mar 2017 2017-03-10 21:37:52 -05:00
c7eadfdefd Merge branch 'master' into USER-DPD_kokkos 2017-03-10 16:29:09 -05:00
6f71275db3 Add Kokkos version of atom_vec_hybrid_kokkos, without CUDA support 2017-03-09 15:35:07 -07:00
3298c37982 Makefile.lammps.gfortran for latte 2017-03-09 14:30:21 -07:00
35e1cf1d6e Fixing issue with ev_setup in pair_hybrid_kokkos 2017-03-08 20:02:02 -07:00
fc23f9cfe8 Disable allocation of per-atom arrays in ev_setup for USER-DPD Kokkos styles 2017-03-08 13:07:52 -07:00
0ce5dc0234 Merge remote branch 'stanmoore1/ev_setup_kk' into USER-DPD_kokkos_ev_setup_bugfix 2017-03-08 13:05:15 -07:00
d01f09dce2 Turn off use of OpenMP in MPIIO/dump_custom_mpiio.cpp if Kokkos is in use.
The convert_string_omp() method breaks when Kokkos is also using OpenMP.
2017-03-07 15:23:17 -05:00
de27305227 Merge branch 'master' of https://github.com/lammps/lammps into USER-DPD_kokkos 2017-03-07 11:47:18 -07:00
5b3101cb34 Merge pull request #16 from ibaned/cuda-runtime
Many CUDA runtime fixes
2017-03-06 16:02:52 -07:00
b8c72c7bdb don't query device variables from the host 2017-03-06 15:51:09 -07:00
527a573026 don't use device views to measure dimensions 2017-03-06 15:42:26 -07:00
3e3a24da48 consolidate sorting functions
two sort functions with different
names but identical functionality.
making them the same function
until we descide to use a different
algorithm for atoms and ghosts
2017-03-06 15:28:25 -07:00
a7d1b571be don't capture "this" in lambdas
CUDA lambdas can't capture the calling
object very well.
make local shallow copies of variables needed.
2017-03-06 15:07:07 -07:00
4a6f27935d fix lambda syntax for CUDA
KOKKOS_LAMBDA doesn't quite work on CUDA,
you have to use LAMMPS_LAMBDA.
Also, if you do use LAMMPS_LAMBDA, you need
to run on the default device type,
i.e. no using lambdas to run on OpenMP
when LAMMPS has been compiled for CUDA.
2017-03-06 14:58:40 -07:00
a2c80d2cca Merge remote-tracking branch 'fork/cuda-compile' into cuda-runtime 2017-03-06 14:50:43 -07:00
886cc69dfb Merge pull request #15 from ibaned/cuda-compile
add missing KOKKOS_INLINE_FUNCTION to fix_shardlow
2017-03-06 11:05:49 -07:00
3e8cfb8247 The wonders of git commit -a 2017-03-06 11:04:47 -07:00
c2c22fc2ed add missing KOKKOS_INLINE_FUNCTION to fix_shardlow 2017-03-06 10:57:19 -07:00
b35895ca12 USER-DPD Kokkos: Remove the SSA's ALLOW_NON_DETERMINISTIC_DPD option.
There was no measurable performance benefit to turning it on.
2017-03-03 15:21:09 -05:00
635c448b61 USER-DPD: sort bins for deterministic SSA instead of using Kokkos::Serial 2017-03-03 14:57:35 -05:00
c1739cae97 Merge pull request #14 from timattox/USER-DPD_kokkos_ssa
USER-DPD Kokkos: work around CUDA not having max_hardware_threads()
2017-03-03 13:29:20 -05:00
0651ea7f69 USER-DPD Kokkos: work around CUDA not having max_hardware_threads() 2017-03-03 12:50:13 -05:00
c468727db0 Fixing issue in fix_wall_lj93_kokkos 2017-03-03 10:49:15 -07:00
a7e8550962 USER-DPD Kokkos: turn one_type optimization into a template specialization 2017-03-03 10:38:45 -05:00
7e78921c96 USER-DPD Kokkos: propagate 763a00e8 bugfix to pair_multi_lucy_rx_kokkos.cpp 2017-03-03 10:12:44 -05:00
27d6284ebe Merge branch 'USER-DPD_bugfix' into USER-DPD_kokkos, pair_multi_lucy_rx 2017-03-03 09:52:42 -05:00
f11b83ecd2 Merge branch 'USER-DPD_kokkos_ssa' into USER-DPD_kokkos 2017-03-02 16:37:03 -05:00
3820c5881d Adding fix_wall_lj93_kokkos 2017-03-02 14:02:49 -07:00
27d2e9bf56 USER-DPD: add npair_halffull_newton_ssa to Purge.list
With the new SSA neighbor list, half from full can't work,
and will break compiles if the old files are in the src directory
2017-03-02 15:03:33 -05:00
d95fbf3a5e USER-DPD Kokkos: use Random_XorShift64() by default, but allow overrides 2017-03-02 15:01:41 -05:00
5c6b0cc85c removed fix_latte from src folder 2017-03-01 16:34:20 -07:00
03c05537fb Merge branch 'USER-DPD_kokkos' into USER-DPD_kokkos_ssa_debug 2017-03-01 15:49:12 -05:00
8210b25fb8 USER-DPD Kokkos: replicate 9a560b90 bugfix to atom_vec_dpd_kokkos.cpp 2017-03-01 15:34:24 -05:00
8c625a52de Merge branch 'USER-DPD_bugfix' into USER-DPD_kokkos, AtomVecDPD hybrid bugfix 2017-03-01 15:29:44 -05:00
ed089c34cf USER-DPD Kokkos: Now use the deterministic Random_XorShift64() for SSA 2017-03-01 14:18:14 -05:00
268e855a15 USER-DPD Kokkos: bugfix for the rare case were the SSA ghost
processing has more parallelism than for the locals.
2017-03-01 14:14:29 -05:00
48ed963fd2 latte in added 2017-03-01 12:05:00 -07:00
1025c25548 latte.in added 2017-03-01 09:55:33 -07:00
78a8f75a8f params added 2017-03-01 09:53:50 -07:00
641bf72f20 lib kokkos: Enable deterministic use of Random_XorShift*_Pool.
Add support for lock-free and deterministic use of Random_XorShift*_Pool
by giving state_idx selection and lock responsibility up to the
application.  Done by an overload of get_state() to take sate_idx as
an argument that the appplication guarantees is concurrently unique
and within the range of num_states that the application passed to init().
In other words, this allows the RNG state to be associated with some
application specific index, rather than a runtime arbitrary thread ID,
and thus the application can control which work is performed using
which RNG in a deterministic manner, regardless of which thread
performs the work.
2017-03-01 11:52:33 -05:00
6e26358ec3 lib kokkos bugfix: on a CUDA host, the random state wasn't preserved.
Random_XorShift*_Pool<Kokkos::Cuda>::free_state() has two purposes:
1) update the state value kept in the pool
2) unlock the state
For a CUDA host thread, ONLY skip step 2, not both.
2017-03-01 11:46:26 -05:00
bf1794f59a Merge branch 'USER-DPD_kokkos' into USER-DPD_kokkos_ssa_debug 2017-03-01 10:29:33 -05:00
0982331c71 USER-DPD Kokkos: replicate 7a593c2f bugfix to pair_table_rx_kokkos.cpp 2017-03-01 09:49:24 -05:00
3ae77e718a Merge branch 'USER-DPD_bugfix' into USER-DPD_kokkos 2017-03-01 09:45:50 -05:00
b26a434a50 USER-DPD Kokkos: Add "#ifdef ALLOW_NON_DETERMINISTIC_SSA" toggle
SSA atom binning algorithm was adjusted to do as much work in
parallel while preserving deterministic behavior.  The final
step is done serially to preserve deterministic behavior.
An alternative would be to sort the contents of the bins so
that they are always in the same order.
2017-02-28 12:53:56 -05:00
2b78ac2146 USER-DPD Kokkos: Add "#ifdef DPD_USE_RAN_MARS" toggle
Also, initialize the rand_pool with a seed in init_style()
2017-02-28 12:49:11 -05:00
9736fb3be8 added sucrose latte min example 2017-02-28 10:40:46 -07:00
a5507b291d USER-DPD Kokkos: give each workItem index a unique instance of RanMars
Makes fix_shardlow_kokkos deterministic across runs and thread count.
2017-02-26 18:00:20 -05:00
3eba3e5a1b USER-DPD Kokkos: for deterministic results, serialize bin_atoms() for now. 2017-02-26 17:57:13 -05:00
e4b544f934 Make pair_dpd_fdt_energy's random seed public so fix_shardlow can use it. 2017-02-26 17:53:45 -05:00
35ee24cfad use RandWrap in pair_dpd_fdt_energy_kokkos and fix_shardlow_kokkos 2017-02-26 14:50:58 -05:00
e4500859a3 USER-DPD: add "#ifdef DEBUG_PAIR_CT" debugging code to fix_shardlow* 2017-02-24 22:24:29 -05:00
fd1523c756 USER-DPD Kokkos: add missing () in STACKPARAMS check in ssa_update_* 2017-02-24 22:19:53 -05:00
21619b2976 USER-DPD Kokkos: correct the setup of the ghost SSA workplan 2017-02-24 22:16:33 -05:00
b053c367ea USER-DPD Kokkos: remove extranious debugging code 2017-02-24 19:09:07 -05:00
c2e3a76225 USER-DPD Kokkos: rand seed can't be zero, so add some salt. 2017-02-24 19:07:55 -05:00
6ea290a699 DEBUG: make FixShardlowKokkos have it's own rand_pool, plus debug code.
ssa_update_dpde() hangs on first use of rand_gen.normal()
Switching to not using a pointer to PairDPDfdtEnergyKokkos's rand_pool
had no noticble effect.
2017-02-24 17:41:57 -05:00
c56e0692b9 USER-DPD Kokkos: enable install of SSA Kokkos code 2017-02-24 17:38:46 -05:00
71379487ab USER-DPD: variety of fixes for new SSA Kokkos code. Still not functional. 2017-02-24 17:35:58 -05:00
f7a48719ad USER-DPD: first attempt at fix_shardlow_kokkos... It compiles! 2017-02-24 13:35:48 -05:00
a341a6bca9 USER-DPD: make locals & ghosts use similar SSA work plan data structure
Kokkos SSA won't use AIRct_ssa[], but still used for non-Kokkos for now.
2017-02-24 13:27:27 -05:00
2f04e87d07 USER-DPD: make PairDPDfdtEnergyKokkos's rand_pool public so it can be reused 2017-02-24 13:24:18 -05:00
aecafecaa2 USER-DPD: fix missing host prefixes in AtomVecDPDKokkos::pack_comm 2017-02-24 13:21:26 -05:00
1db62a57b5 USER-DPD: pair_dpd_fdt_energy_kokkos: enable STACKPARAMS specialization 2017-02-24 13:17:49 -05:00
2dcbc805ba min latte partially fixed 2017-02-23 18:20:02 -07:00
b27cc8f474 USER-DPD: use LAMBDA instead of functor for ghost binning in nbin_ssa_kokkos 2017-02-22 15:08:24 -05:00
8065d96761 USER-DPD: first attempt at npair_ssa_kokkos... It compiles! 2017-02-22 15:08:24 -05:00
01d0a5c4a2 BUGFIX: use Kokkos::atomic_fetch_max() to avoid a race on new_maxneighs 2017-02-22 15:08:24 -05:00
5c6e7b12c6 BUGFIX: fix a copy-o in build_Item_Ghost(): xbin2, etc. should be an int
xbin2, ybin2, and zbin2 are temporary integer bin coordinates, not floats!
2017-02-22 15:08:24 -05:00
19ffe59315 USER-DPD: fix typo in NPairHalfBinNewtonSSA::build(): sz1 instead of sx1
Luckily, no real change, since sz1 and sx1 are normally identical.
2017-02-22 15:08:23 -05:00
37810bdc53 USER-DPD: move centroid bin of stencil_ssa to the first slot.
Eliminates a special case version of a loop just for Subphase 0.
NOTE: pair evaluation order changes, causing numerical differences!
This changed the order that close neighbors of ghosts are processed.
2017-02-22 15:08:23 -05:00
7feb6c2853 USER-DPD: fix a bug in AtomVecDPDKokkos::unpack_restart() 2017-02-22 15:08:23 -05:00
d1a0a3e1c3 USER-DPD: first attempt at nbin_ssa_kokkos... It compiles! 2017-02-22 15:08:22 -05:00
c2ee3285fc USER-DPD: change nstencil_ssa[] to eliminate a corner case
Saves a conditional inside an NPairHalfBinNewtonSSA::build() inner loop
2017-02-22 15:08:22 -05:00
5289ec0b39 cleanup: remove unused binatomsItem() declaration in npair_kokkos.h 2017-02-22 15:08:22 -05:00
e0bafa499d indentation fixes in npair_kokkos.cpp, plus a comment question 2017-02-22 15:08:22 -05:00
4b3197202b USER-DPD: Rework SSA to use a new neighbor list structure, ready for Kokkos
NOTE: pair evaluation order changes, causing numerical differences!
Atom pair processing order is fully planned out in npair_half_bin_newton_ssa
Makes the SSA neighbor list structure very different. Do not use by others!
Each local is in ilist, numneigh, and firstneigh four times instead of once.

Changes LAMMPS core code that had been previously changed for USER-DPD/SSA:
Removes ssaAIR[] from class Atom as it is now unused.
Removes ndxAIR_ssa[] from class NeighList as it is now unused.
Increases length of ilist[], numneigh[], and firstneigh[] if SSA flag set.
2017-02-22 15:08:21 -05:00
ab32d136b9 USER-DPD: SSA with Kokkos: make stencil's sx, sy, sz variables public 2017-02-22 15:08:21 -05:00
151b3f552b USER-DPD: Save pointer to the NPair used to create the NeighList
Gives a user of NeighList access to data stored in a custom NPair
2017-02-22 15:08:21 -05:00
52aaad907f USER-DPD: SSA with Kokkos: Reorder stencil subphases to make things easier. 2017-02-22 15:08:20 -05:00
be166cb5bf USER-DPD: Use subphases when processing AIR zero (locals) in SSA.
NOTE: pair ordering was NOT changed, but tiny differences could occur.
2017-02-22 15:08:20 -05:00
ee83b755ea USER-DPD: Split the SSA stencil and neighbor list into subphases.
NOTE: pair evaluation order changes, causing numerical differences!
This enables processing neighbors in subphase groups that enforce
a geometrical seperation of pairs, allowing greater parallelism
once fix_shardlow (SSA) is converted to Kokkos.
2017-02-22 15:08:20 -05:00
ce2da5068b USER-DPD: renumber AIRs back to 1-7 for ghosts, and just 0 for locals.
This removes the the distinction between pure and impure locals.
Pure and impure locals messed up the directionality of half neighbor lists,
which turns out is crucial to the approach for SSA with kokkos.
2017-02-22 15:08:19 -05:00
641bb4bb16 USER-DPD: remove use of ssaAIR[], move coord2ssaAIR() to nbin_ssa.cpp
Saves an int per atom and ghost, also simplifies and reduces code size.
2017-02-22 15:08:19 -05:00
f73c9a43ab USER-DPD: remove broken code for building SSA half neighbor list from full 2017-02-22 15:08:19 -05:00
3dddeef365 USER-DPD: remove unneeded gairct_ssa[] & anum vars, and some > 0 guards 2017-02-22 15:08:19 -05:00
fb279a87f5 USER-DPD: properly compute AIRct_ssa values, and use them in fix_shardlow.
Eliminates last use of per-atom ssaAIR values within initial_integrate()
2017-02-22 15:08:18 -05:00
e9d46f4e7a USER-DPD: Correct an error message typo. 2017-02-22 15:08:18 -05:00
e42678ed51 USER-DPD: track & use the extent of the local atoms in the bins 2017-02-22 15:08:18 -05:00
ff2786c86c USER-DPD: Make another version of coord2bin() for nbin_ssa 2017-02-22 15:08:17 -05:00
6384486764 USER-DPD: Copy inline coord2bin() functions from nbin_kokkos into nbin_ssa 2017-02-22 15:08:17 -05:00
0512e78860 USER-DPD: new neighbor list code for SSA that gives neighbors to ghosts.
This simplifies the processing of the neighbor list in fix_shardlow.
NOTE: pair evaluation order changes, causing numerical differences!
2017-02-22 15:08:17 -05:00
2db66e49b4 USER-DPD: make pair_dpd_fdt* check more generically for use of fix_shardlow
Allows easier experimentation of alternative shardlow implementations.
2017-02-22 15:08:17 -05:00
e76cad358b Merge branch 'FixRX_Kokkos_merge' into USER-DPD_kokkos 2017-02-22 14:25:41 -05:00
0a751c5901 KOKKOS: fix a compile-time error caused by merge of patch 21Feb17
Remove the unused PairHybridOverlayKokkos::modify_requests() method
The patch removed the parent PairHybridOverlay::modify_requests()
2017-02-22 11:52:20 -05:00
83988a1026 Merge branch 'master' into USER-DPD_kokkos as of patch 21Feb17 2017-02-22 11:29:01 -05:00
acc5bde0fe Removed printf's from FixRXKokkos and FixRX.
- Commented out the printf's in FixRXKokkos and FixRX used for
  active debugging.
2017-02-13 16:36:30 -05:00
799d55e097 Switched to operator()'s and Tag's for the Kokkos launch objects.
- Switched from using lambda functions to operator()'s with type tags
  in FixRxKokkos. The lambda's were giving big problems in Cuda with
  the memory objects. This required that all referenced views be members
  of the FixRXKokkos class.
- Add copymode controls to solve_reactions() to avoid the destructor
  freeing pointers carried forward from the copy constructor. Added
  the same to FixRX since its called, too.
2017-02-13 16:33:21 -05:00
4e9c8f4962 Update FixRXKokkos for Cuda build. Added inline and other KOKKOS macros.
- Updated the function prototypes to include the necessary KOKKOS
macros for __host__ and __device__ functions and inlined functions.
- Changed several View definitions to match the disjoint memory spaces
that only come up with Cuda builds.
2017-02-13 16:33:21 -05:00
2f32c1a9af Switched to using Kokkos device data for ODE scratch data.
- Finished porting all scratch arrays to using the StridedArrayType
  template.
- Created a single, large Kokkos device array and using that for all
  scratch data passed into the StridedArrayType objects.
2017-02-13 16:33:20 -05:00
4ac7a5d1f2 Added Kokkos-like array datatype into RK4 and RHS in FixRXKokkos.
- Created an Array class that provides stride access for operator[]
  w/o needing Kokkos views. This was designed to avoid the performance
  issues encountered with Views and sub-views throughout the RHS and
  ODE solver functions.
2017-02-13 16:33:20 -05:00
93d99ec8d0 Added ODE diagnostics to FixRxKokkos using Kokkos managed data.
- Added the diagnostics performance analysis routine to FixRxKokkos
  using Kokkos views.
TODO:
  - Switch to using Kokkos data for the per-iteration scratch data.
    How to allocate only enouch for each work-unit and not all
    iterations? Can the shared-memory scratch memory work for this,
    even for large sizes?
2017-02-13 16:33:19 -05:00
4e8351d9c8 Code clean-up for FixRxKokkos.
- Removed dead code and old errors.
TODO:
  - Per-thread scratch data in kokkos.
  - ODE Diagnostics in kokkos.
2017-02-13 16:33:19 -05:00
f2d005fb8d Fixed errors in FixRxKokkos kokkos neighbor lists initialization and
usage and calls to computeLocalTemperature.

- Created request for kokkos neighbor list for fix and switched to
  that neighbor list datatype in computeLocalTemperature.
- Reconfigured pre_force and setup_pre_force to call a common
  solve_reactions() method to avoid duplicate code.
TODO:
  - Clean-up
  - Provide per-problem scratch data within kokkos framework (instead
    of C++ new/delete data).
2017-02-13 16:33:18 -05:00
0d57a1d831 Added setup_pre_force, pack/unpack methods to FixRxKokkos.
- Added a kokkos version of setup_pre_force that only sets dvector
  and then communicates that.
- Converted all for loops to parallel_for's in computeLocalTemperator()
  and setup_pre_force.
- Added pack/unpack forward/reverse methods with Kokkos host views.

TODO:
 - The Kokkos neighbor list is not working. Need to request a Kokkos
   neighbor list in ::init(). Then, replace objects like list->ilist[]
   with k_list->d_ilist().
2017-02-13 16:33:18 -05:00
acba25c383 Added kokkos datatypes to FixRxKokkos::computeLocalTemperature(...)
Added kokkos dual-view datatypes used in computeLocalTemperature and
pre_force (e.g., dpdThetaLocal) but still using the original host
pointers for the pack/unpack operations.

TODO:
- The Kokkos neighbor list is not working. Need to request a Kokkos
  neighbor list in ::init(). Then, replace objects like list->ilist[]
  with k_list->d_ilist().
- Add another template parameter for HALFTHREAD and create (automatic)
  atomic view of dpdThetaLocal and sumWeights.
- Add modify/sync comments and replace the host-only pointers in the
  pack/unpack methods.
2017-02-13 16:33:17 -05:00
843f3a9192 Updates to FixRxKokkos ...
- Added templated computeLocalTemp<>() to FixRxKokkos but still
  using the original host data pointers.
- Updated the copy-back to dvector operation to be the same with
  RK4 and RKF45 per discussion with J. Larentzos.
TODO:
  - Add kokkos data for computeLocalTemp and parallel_for loop.
2017-02-13 16:33:15 -05:00
2ea900df00 Updated FixRxKokkos to use kokkos-managed data objects.
- Switched to use kokkos dvector, mask, and dpdTheta views
  from atomKK.
2017-02-13 16:33:13 -05:00
70fa9189a8 Updated KOKKOS installer and updated USER-DPD FixRx to match KOKKOS version.
- Updated the KOKKOS installer to include the fix_rx_kokkos.[cpp,h].
- Updated the USER-DPD version of fix_rx.[cpp,h] to sync with the Kokkos
  version. Solves child->parent class dependencies.
2017-02-13 16:33:09 -05:00
41d3903f5a Added kokkos-managed parameters for FixRxKokkos.
- Added kokkos-managed parameter data for the kinetics equations.
- Removed dependencies in rhs() on atom and domain objects.

TODO:
  1. Switch to using KOKKOS data for dvector.
  2. Port ComputeLocalTemp(...) to Kokkos (needs pairing algorithm).
2017-02-13 16:33:05 -05:00
43d61f313f Initial bare-bones port of FixRX to Kokkos.
Initial port of USER-DPD/fix_rx.cpp to KOKKOS/fix_rx_kokkos.cpp.
Using parallel_reduce(...) but still using host-only data.
TODO:
  1. Switch to KOKKOS datatypes for sparse-kinetics data; dense
     is finished.
  2. Switch to using KOKKOS data for dvector.
  3. Remove dependencies in rhs(...) on atom. Store those consts
     in UserData{} or as member constants.
  4. Port ComputeLocalTemp(...) to Kokkos (needs pairing algorithm).
2017-02-13 16:33:02 -05:00
dc16228a60 Merge branch 'USER-DPD_ssa_update' into USER-DPD_kokkos 2017-02-13 15:03:14 -05:00
96a43e8ef1 Merge branch 'master' into USER-DPD_kokkos as of patch 13Feb17 2017-02-13 12:29:41 -05:00
dc9c2399b2 Merge branch 'master' into USER-DPD_kokkos
Fixed trivial merge conflict in src/KOKKOS/Install.sh
2017-02-06 15:45:26 -05:00
b3e9006aef Merge branch 'master' into USER-DPD_kokkos 2017-01-30 12:04:30 -05:00
a1f4551ac2 Adding missing sync/modified in atom_vec_dpd_kokkos 2017-01-27 10:18:41 -07:00
f3c5919606 Merge remote branch 'upstream/master' into USER-DPD_kokkos 2017-01-27 08:08:05 -07:00
ebe27c65e1 Removing duplicate code in pair_exp6_rx_kokkos 2017-01-26 10:33:03 -07:00
85c8db5f86 Fixing warning in pair_dpd_fdt_energy_kokkos 2017-01-26 10:10:52 -07:00
be13ecfa17 Fixing Kokkos warnings 2017-01-26 10:10:42 -07:00
6cc969db92 Fixing warnings in Kokkos 2017-01-26 09:24:13 -07:00
8050eb3aa8 Another tweak to sync/modify in pair_multi_lucy_rx_kokkos 2017-01-26 09:17:59 -07:00
c617bc180a Adding sync/modify to pair_multi_lucy_rx_kokkos 2017-01-26 08:52:17 -07:00
8e808f6c6b Zeroing variables in pair_exp6_rx_kokkos to match pull request 2017-01-24 11:45:27 -07:00
5897955e2e Fixing GPU memory issue in fix_eos_table_rx_kokkos 2017-01-24 11:24:47 -07:00
f9bc81b924 Merge branch 'master' into USER-DPD_kokkos as of patch 20 Jan 2017. 2017-01-20 16:43:13 -05:00
0887ff1273 Merge pull request #13 from timattox/master
simplified neighbor list copying, merge from Master branch, merged #13.
2017-01-20 09:37:07 -07:00
521f3df3d5 Initialize variables in pair_exp6_rx_kokkos 2017-01-19 16:54:50 -07:00
6d47cf350c Makefile for latte_dev 2017-01-19 15:42:09 -07:00
de6442d845 Fixing GPU memory issues in Kokkos 2017-01-19 11:55:22 -07:00
917ca19b34 Fixing GPU memory issue in modify_kokkos, need to cherry pick back to Master 2017-01-19 09:54:15 -07:00
cf83ce4543 Adding zero compute to pair_dpd_fdt_energy_kokkos 2017-01-19 08:44:30 -07:00
116ae9d0c4 Fixing copy bug in pair_exp6_rx_kokkos 2017-01-18 14:51:35 -07:00
e05b132289 Fixing error check in fix_eos_table_rx_kokkos 2017-01-18 14:18:35 -07:00
4f2fcee6df Merge branch 'master' into USER-DPD_kokkos as of 3af4b3c28 on 18 Jan. 2017
Includes a critical bugfix for using USER-DPD and MOLECULE together.
2017-01-18 15:08:32 -05:00
2d32fa8ccb Fixing GPU memory issues in atom_vec_dpd_kokkos 2017-01-18 12:53:40 -07:00
b38733e5a2 Fixing GPU memory issue in pair_exp6_rx_kokkos 2017-01-18 10:15:06 -07:00
96636c7514 Fixing warnings in pair_exp6_rx_kokkos 2017-01-17 16:43:55 -07:00
5569c4c130 Fixing GPU memory issue with fix_property_atom_kokkos 2017-01-17 16:19:25 -07:00
8b4130c0cb Fixing issue with pressure in pair_hybrid_kokkos 2017-01-17 13:28:55 -07:00
91d68e26ef Prevent overlapping host/device computation in pair_hybrid_kokkos 2017-01-17 12:26:00 -07:00
883385c8e4 Merge branch 'master' into USER-DPD_kokkos as of patch 17Jan17 2017-01-17 13:19:06 -05:00
e3153e0b30 Merge pull request #12 from ibaned/pair-table-rx-kokkos
fix CUDA type issues in pair_table_rx_kokkos
2017-01-13 14:43:48 -07:00
688df1c254 fix CUDA type issues in pair_table_rx_kokkos
stop using the global DAT, use the pair's
DeviceType for all the relevant types.
2017-01-13 14:40:36 -07:00
2b2998052c Fixing inheritance issue in pair_hybrid_overlay_kokkos 2017-01-13 13:50:21 -07:00
dc1b94cdd2 Merge pull request #11 from ibaned/pair-table-rx-kokkos
support for eatom and vatom in pair_table_rx_kokkos
2017-01-13 13:27:48 -07:00
a42a666142 support for eatom and vatom in pair_table_rx_kokkos 2017-01-13 13:23:26 -07:00
f16f9393ef Merge branch 'master' into USER-DPD_kokkos 2017-01-13 10:51:28 -07:00
2a35fa7a4e Adding initial versions of pair_hybrid_kokkos and pair_hybrid_overlay_kokkos 2017-01-13 10:37:31 -07:00
c15d6580da Fixing issue in pair_multi_lucy_rx_kokkos found by ibaned 2017-01-13 10:01:22 -07:00
1ae53d59fa Merge pull request #9 from ibaned/pair-table-rx-kokkos
pair_table_rx_kokkos from @ibaned
2017-01-13 09:26:30 -07:00
aaa7dca21b Makefile.lammps.gfortran 2017-01-12 17:13:02 -07:00
6bd17be454 Makefile.lammps.gfortran 2017-01-12 16:58:27 -07:00
5b7ab135dd Fixing Kokkos neighbor bug 2017-01-12 16:36:27 -07:00
0635151e2d Fixing neighbor bug 2017-01-12 16:36:04 -07:00
cce10f6dff remove more leftover code 2017-01-12 14:19:10 -07:00
4dab6737ba remove leftover code 2017-01-12 14:15:42 -07:00
0c3b942686 cleanup changes to Install.sh 2017-01-12 13:50:30 -07:00
f51ddf8450 Makefile.lammps.gfortran 2017-01-12 13:50:02 -07:00
3580e5409d Fixing Kokkos CUDA compile error 2017-01-12 09:00:07 -07:00
b7d0dc8440 Merge branch 'debug' into pair-table-rx-kokkos 2017-01-12 08:32:51 -07:00
52761aee0d it compiles. 2017-01-11 13:18:13 -07:00
5dcbbba4ce lots of work towards compiling 2017-01-11 13:15:01 -07:00
fdb6b91e29 near trying to compile 2017-01-11 12:50:32 -07:00
41804ff524 progress converting compute_style 2017-01-11 12:42:05 -07:00
c2bb20e60f made compute_fpair a free function as well 2017-01-11 11:54:01 -07:00
cb9fdf7801 starting to separate compute_item from the class 2017-01-11 11:44:54 -07:00
b5ff41f5ef made MixingWeights code non-member
CUDA was simply giving too many
errors dealing with captures of
member variables.
2017-01-11 11:10:33 -07:00
6a9a0e8c33 tracking down some invalid reads... 2017-01-11 09:25:13 -07:00
d65676e981 make everything public to appease NVCC 2017-01-10 16:08:55 -07:00
55aa91be6b copy uCG and uCGnew correctly 2017-01-10 15:28:19 -07:00
5d5751be19 fix class name in PAIR_CLASS setup 2017-01-10 15:28:19 -07:00
e4673d7fa8 fix compilation 2017-01-10 15:28:19 -07:00
c877c07491 progress towards custom compute functor
which is needed to handle uCG contributions.
2017-01-10 15:28:19 -07:00
4d5abe64d5 draft compute_fpair for PairTableRXKokkos 2017-01-10 15:28:19 -07:00
afbc6fc628 added coeff, settings, single, fix compile 2017-01-10 15:28:19 -07:00
21cde6261a add member variables from PairTableRX 2017-01-10 15:28:19 -07:00
f995bb4335 starting to add getMixingWeights
some compile errors to work out
2017-01-10 15:28:19 -07:00
6abefe7ef9 restarting PairTableRXKokkos
as an exact copy of PairTableKokkos,
now that it derives from PairTable
2017-01-10 15:28:19 -07:00
98c66089a9 Merge pull request #8 from ibaned/pair-multi-lucy-rx-kokkos-rho
fix race condition on rho, thanks @ibaned
2017-01-10 15:25:21 -07:00
d26f1403cd fix race condition on rho
the main bug here is the use of a local
rho_i accumulator which later gets assigned
back to rho[i].
in parallel, atomic additions can happen to
rho[i] while the local accumulator is held;
those atomic additions are lost when
the accumulator is atomically assigned.
we instead initialize the accumulator to zero
and atomically add it back to rho[i].
2017-01-10 15:22:52 -07:00
1f6cfb1b31 Makefile.lammps.gfortran changed 2017-01-10 10:56:31 -07:00
001964ecd8 Merge branch 'ibaned-pair-table-rx-inherit' into USER-DPD_kokkos 2017-01-09 14:04:31 -05:00
9807062594 Merge branch 'pair-table-rx-inherit' of https://github.com/ibaned/lammps into ibaned-pair-table-rx-inherit 2017-01-09 13:39:44 -05:00
26d50853e9 Merge branch 'master' as of patch 6Jan17 into USER-DPD_kokkos 2017-01-09 13:12:02 -05:00
7201f003e5 move another enum back
see lammps/lammps#325
2017-01-05 21:00:39 -07:00
d8ddef37ed put enum back in .cpp file
see lammps/lammps#325
2017-01-05 20:56:37 -07:00
ad1402562d Revert "move enum to pair.h"
This reverts commit a1ac2ae9b7.
2017-01-05 20:54:24 -07:00
70927d08e7 remove duplicate enum 2017-01-05 20:53:45 -07:00
a1ac2ae9b7 move enum to pair.h
to avoid having it be replicated
in several different locations
2017-01-05 20:53:45 -07:00
3941fe9ab7 fix compilation 2017-01-05 20:53:45 -07:00
318ab9a185 trying PairTableRX : public PairTable
saves a lot of duplicate code
2017-01-05 20:53:45 -07:00
49d644ec3a Merge pull request #7 from ibaned/pair-dpd-energy-kokkos-warnings
fix many warnings in pair_dpd_fdt_energy_kokkos
2017-01-05 16:46:04 -07:00
e5906dfba0 Merge branch 'exaalt' of gitlab.com:exaalt/lammps into exaalt 2017-01-05 15:37:21 -07:00
967cdd947e cleanup 2017-01-05 15:37:01 -07:00
19f2d2d1ec fix many warnings in pair_dpd_fdt_energy_kokkos
one Kokkos kernel was not annotated consistently,
STACKPARAMS was essentially uninitialized and
confused with a local variable,
plus lots of variables were unused in some
of the Kokkos kernels.
2017-01-05 15:34:05 -07:00
332372dec2 Renamed Makefile.afrl_thunder to Makefile.icex to be more general. 2017-01-05 14:03:16 -05:00
8503ac22a8 Fixed error->all instead of error->one bug in USER-DPD/fix_shardlow.cpp.
During dynamic load balancing, the subdomains will not be uniform so the
bbox size test in USER-DPD/fix_shardlow.cpp may only be called by one rank.
Using error->one allows any rank to stop the simulation in this scenario.
Added rcut and bbox information to help in diagnostics.
2017-01-05 13:58:11 -05:00
cc4040de10 Merge remote-tracking branch 'origin/USER-DPD_kokkos' into USER-DPD_kokkos 2017-01-05 12:25:45 -05:00
a4271ae8c5 Added a Makefile for AFRL Thunder. 2017-01-04 15:13:46 -05:00
79ed1b5258 Merge branch 'USER-DPD_updates' into USER-DPD_kokkos, bring over history. 2017-01-03 17:04:12 -05:00
b5c7d44299 Merge branch 'USER-DPD_kokkos_updates' into USER-DPD_kokkos 2017-01-03 12:35:24 -07:00
fe3c98cdbb Merge pull request #4 from ibaned/dpd-fixes
some warning fixes
2017-01-03 14:29:11 -05:00
50df3da343 Merge pull request #3 from ibaned/fix-dpd-energy-kokkos-pr
Implement a Kokkos version of fix_dpd_energy
2017-01-03 14:27:49 -05:00
ae0e882cde Updating pair_multi_lucy_rx_kokkos to USER-DPD changes 2017-01-03 11:51:28 -07:00
6d7607a6ad member function containing lambdas must be public 2017-01-03 11:50:44 -07:00
e3ebd8e7f1 remove syncs that shouldn't be needed 2017-01-03 11:50:44 -07:00
dae132c770 place newline at end of file 2017-01-03 11:42:40 -07:00
e632f8597a fix warning about enum comparisons 2017-01-03 11:42:39 -07:00
89795b3653 got fix_dpd_energy_kokkos to compile 2017-01-03 11:41:40 -07:00
04e2f170a3 first draft fix_dpd_energy_kokkos
had to make k_duCond and k_duMech
in pair_dpd_fdt_energy_kokkos
public so they could be accessed
and sync'ed
2017-01-03 11:41:40 -07:00
53e07996c6 save draft of fix_dpd_energy_kokkos.cpp 2017-01-03 11:41:39 -07:00
66cdd3a708 draft fix_dpd_energy_kokkos.h 2017-01-03 11:41:39 -07:00
ccaa0506cb LAMMPS_LAMBDA from ibaned/lammps@7559bc9 2017-01-03 11:41:39 -07:00
f220b07625 Updating pair_exp6_rx_kokkos to USER-DPD changes 2017-01-03 10:36:55 -07:00
2af10cb8da Updating fix_eos_table_rx_kokkos to USER-DPD changes 2017-01-03 10:09:44 -07:00
cc1b55e031 Merging USER-DPD updates 2016-12-23 12:36:05 -07:00
a36e563aa5 Temporarily reverting change to pair_table_kokkos to allow runtime testing 2016-12-22 14:37:42 -07:00
a4ab877c46 Change to allow pair_dpd_fdt_energy_kokkos 2016-12-22 13:16:57 -07:00
f6fe61196d CPU runtime tested version of pair_multi_lucy_rx_kokkos 2016-12-22 11:34:17 -07:00
163b61a32e Removing pair_table_rx_kokkos from Kokkos Install.sh since it isn't ready for runtime testing 2016-12-21 15:37:00 -07:00
26c21da45b Merge branch 'master' into USER-DPD_kokkos as of 21Dec16 patch 2016-12-21 16:50:42 -05:00
807d9529da Fixing issues found during GPU runtime testing 2016-12-21 10:41:29 -07:00
73326922d6 Fixing Kokkos issue in fix_eos_table_rx_kokkos 2016-12-21 08:56:48 -07:00
35803c75c9 Fixing issues found during GPU runtime testing 2016-12-20 17:03:46 -07:00
07bee39002 Merge branch 'USER-DPD_whitespace' into USER-DPD_kokkos 2016-12-20 12:23:02 -05:00
889ee78f8b Change necessary for pair_exp6_rx_kokkos to compile on GPU 2016-12-19 17:15:02 -07:00
f62a6fe5a5 Renaming rand_pool_wrap to rand_pool_wrap_kokkos 2016-12-19 16:50:22 -07:00
6f51c3b75c Fixing issues in pair_multi_lucy_rx_kokkos 2016-12-19 16:25:31 -07:00
99910fc432 Adding CPU runtime tested version of pair_dpd_fdt_energy_kokkos 2016-12-19 15:27:16 -07:00
000df6e1cf Fixing what seems to be a Kokkos bug, I will submit to Kokkos lib developers too 2016-12-19 15:20:10 -07:00
3f1f51c1c7 Changes necessary for runtime testing of Kokkos styles 2016-12-19 13:31:09 -07:00
21bb603b93 Porting recent changes from USER-DPD package to KOKKOS package 2016-12-19 13:30:00 -07:00
ac57f4721c Small whitespace tweak to pair_dpd_fdt_energy 2016-12-16 17:14:27 -07:00
5cae3eca8c Whitespace cleanup to pair_dpd_fdt_energy, should be cherry-picked to Master 2016-12-16 17:09:19 -07:00
8474453efd Merge branch 'master' into USER-DPD_kokkos: as of 17Dec16 patch 2016-12-16 15:02:41 -05:00
cfa61b98ae Fixing runtime issues in fix_eos_table_rx_kokkos 2016-12-16 12:37:41 -07:00
d93e3d1cee Fixing runtime issues with pair_exp6_rx_kokkos 2016-12-16 10:06:12 -07:00
f47a40b2e4 Fixing Kokkos memory deallocation issue 2016-12-16 10:02:01 -07:00
a3c1d385e8 Adding Kokkos version of fix_property_atom 2016-12-15 15:50:30 -07:00
d5f8f36442 Change to fix_property_atom to allow virtual override of grow_arrays() function 2016-12-15 15:48:09 -07:00
c0d6cbbdd3 Updates to Kokkos files 2016-12-15 11:18:50 -07:00
a58f7631c0 fix_latte unpdated 2016-12-15 10:57:02 -07:00
a9d26b3f4a Updates to Kokkos files 2016-12-14 12:58:02 -07:00
cf4010474d Merge branch 'exaalt' of gitlab.com:exaalt/lammps into exaalt 2016-12-14 12:50:52 -07:00
766b3fa457 Merge branch 'exaalt' of gitlab.com:exaalt/lammps into exaalt
Sync all changes made in lammps master branch with exaalt branch
2016-12-14 11:49:49 -07:00
ee4d1b340b test push 2016-12-14 11:48:06 -07:00
07d9f9d66e updated version of fix latte from SJP 2016-12-14 11:48:06 -07:00
f209c8c129 changes in fix_latte 2016-12-14 11:48:06 -07:00
ef8d507338 changes in latte makefile for lattelib and README 2016-12-14 11:48:06 -07:00
e59552c2ec changes for lattelib 2016-12-14 11:48:06 -07:00
7eb05b33fb initial dummy version of fix_latte.cpp 2016-12-14 11:48:06 -07:00
3e2cd6d265 Merging from master to 13Dec16 version 2016-12-14 11:46:04 -07:00
544e23f971 test push 2016-12-14 11:38:39 -07:00
16b15a636c updated version of fix latte from SJP 2016-12-14 11:38:39 -07:00
d43bd57a40 changes in fix_latte 2016-12-14 11:38:39 -07:00
b912db5c73 changes in latte makefile for lattelib and README 2016-12-14 11:38:39 -07:00
765fe3cdfe changes for lattelib 2016-12-14 11:38:39 -07:00
031d4acde8 initial dummy version of fix_latte.cpp 2016-12-14 11:38:39 -07:00
d47c6b2761 Merge branch 'master' into USER-DPD_kokkos 2016-12-14 11:25:11 -07:00
f93c62d3e2 Reverting accidental change 2016-12-13 16:54:00 -07:00
1dbf6d443f Adding Kokkos files 2016-12-13 16:43:40 -07:00
5f78c2b6a5 test push 2016-12-01 15:14:47 -07:00
45b85b1686 updated version of fix latte from SJP 2016-12-01 14:50:11 -07:00
3f68d370b5 Merge branch 'master' into USER-DPD_kokkos: up to date to 30Nov16 patch 2016-11-30 16:57:48 -05:00
6e6776f396 Finish moving/integrating atom_vec_dpd_kokkos into the Kokkos package 2016-11-30 16:25:07 -05:00
fe99fc287d changes in fix_latte 2016-11-28 15:29:37 -07:00
6d94439cfe Integrating pair_dpd_fdt_energy_kokkos files 2016-11-28 14:42:47 -07:00
91e38720d5 Adding pair_exp6_rx_kokkos files 2016-11-28 14:25:02 -07:00
7590791604 Integrating atom_vec_dpd into the Kokkos package 2016-11-21 13:54:14 -07:00
8f78157202 USER-DPD: aplly unpack_comm_hybrid bugfix d31121b to atom_vec_dpd_kokkos.cpp 2016-11-21 12:32:48 -05:00
1d939231a4 USER-DPD: initial Kokkos port, first steps from Aug 24th ARL Kokkos hackathon
atom_vec_dpd_kokkos
pair_dpd_fdt_energy_kokkos without the Oct 7th VV support from e27ed6c
2016-11-21 12:21:01 -05:00
f040f15218 changes in latte makefile for lattelib and README 2016-11-14 16:11:12 -07:00
f3d6ecf07b changes for lattelib 2016-11-14 07:58:47 -07:00
6f23f6535c initial dummy version of fix_latte.cpp 2016-11-09 13:48:11 -07:00
2361 changed files with 209640 additions and 64799 deletions

21
.github/CODEOWNERS vendored Normal file
View File

@ -0,0 +1,21 @@
# This file contains file patterns that triggers automatic
# code review requests from users that are owners of these files
# Order matters, the last match has the highest precedence
# library folders
lib/colvars/* @giacomofiorin
lib/compress/* @akohlmey
lib/kokkos/* @stanmoore1
lib/molfile/* @akohlmey
lib/qmmm/* @akohlmey
lib/vtk/* @rbberger
# packages
src/KOKKOS @stanmoore1
src/USER-CGSDK @akohlmey
src/USER-COLVARS @giacomofiorin
src/USER-OMP @akohlmey
src/USER-QMMM @akohlmey
# tools
tools/msi2lmp/* @akohlmey

112
.github/CONTRIBUTING.md vendored Normal file
View File

@ -0,0 +1,112 @@
# Contributing to LAMMPS via GitHub
Thank your for considering to contribute to the LAMMPS software project.
The following is a set of guidelines as well as explanations of policies and workflows for contributing to the LAMMPS molecular dynamics software project. These guidelines focus on submitting issues or pull requests on the LAMMPS GitHub project.
Thus please also have a look at:
* [The Section on submitting new features for inclusion in LAMMPS of the Manual](http://lammps.sandia.gov/doc/Section_modify.html#mod-15)
* [The LAMMPS GitHub Tutorial in the Manual](http://lammps.sandia.gov/doc/tutorial_github.html)
## Table of Contents
[I don't want to read this whole thing, I just have a question!](#i-dont-want-to-read-this-whole-thing-i-just-have-a-question)
[How Can I Contribute?](#how-can-i-contribute)
* [Discussing How To Use LAMMPS](#discussing-how-to-use-lammps)
* [Reporting Bugs](#reporting-bugs)
* [Suggesting Enhancements](#suggesting-enhancements)
* [Contributing Code](#contributing-code)
[GitHub Workflows](#github-workflows)
* [Issues](#issues)
* [Pull Requests](#pull-requests)
__
## I don't want to read this whole thing I just have a question!
> **Note:** Please do not file an issue to ask a general question about LAMMPS, its features, how to use specific commands, or how perform simulations or analysis in LAMMPS. Instead post your question to the ['lammps-users' mailing list](http://lammps.sandia.gov/mail.html). You do not need to be subscribed to post to the list (but a mailing list subscription avoids having your post delayed until it is approved by a mailing list moderator). Most posts to the mailing list receive a response within less than 24 hours. Before posting to the mailing list, please read the [mailing list guidelines](http://lammps.sandia.gov/guidelines.html). Following those guidelines will help greatly to get a helpful response. Always mention which LAMMPS version you are using.
## How Can I Contribute?
There are several ways how you can actively contribute to the LAMMPS project: you can discuss compiling and using LAMMPS, and solving LAMMPS related problems with other LAMMPS users on the lammps-users mailing list, you can report bugs or suggest enhancements by creating issues on GitHub (or posting them to the lammps-users mailing list), and you can contribute by submitting pull requests on GitHub or e-mail your code
to one of the [LAMMPS core developers](http://lammps.sandia.gov/authors.html). As you may see from the aforementioned developer page, the LAMMPS software package includes the efforts of a very large number of contributors beyond the principal authors and maintainers.
### Discussing How To Use LAMMPS
The LAMMPS mailing list is hosted at SourceForge. The mailing list began in 2005, and now includes tens of thousands of messages in thousands of threads. LAMMPS developers try to respond to posted questions in a timely manner, but there are no guarantees. Please consider that people live in different timezone and may not have time to answer e-mails outside of their work hours.
You can post to list by sending your email to lammps-users at lists.sourceforge.net (no subscription required), but before posting, please read the [mailing list guidelines](http://lammps.sandia.gov/guidelines.html) to maximize your chances to receive a helpful response.
Anyone can browse/search previous questions/answers in the archives. You do not have to subscribe to the list to post questions, receive answers (to your questions), or browse/search the archives. You **do** need to subscribe to the list if you want emails for **all** the posts (as individual messages or in digest form), or to answer questions yourself. Feel free to sign up and help us out! Answering questions from fellow LAMMPS users is a great way to pay back the community for providing you a useful tool for free, and to pass on the advice you have received yourself to others. It improves your karma and helps you understand your own research better.
If you post a message and you are a subscriber, your message will appear immediately. If you are not a subscriber, your message will be moderated, which typically takes one business day. Either way, when someone replies the reply will usually be sent to both, your personal email address and the mailing list. When replying to people, that responded to your post to the list, please always included the mailing list in your replies (i.e. use "Reply All" and **not** "Reply"). Responses will appear on the list in a few minutes, but it can take a few hours for postings and replies to show up in the SourceForge archive. Sending replies also to the mailing list is important, so that responses are archived and people with a similar issue can search for possible solutions in the mailing list archive.
### Reporting Bugs
While developers writing code for LAMMPS are careful to test their code, LAMMPS is such a large and complex software, that it is impossible to test for all combinations of features under all normal and not so normal circumstances. Thus bugs do happen, and if you suspect, that you have encountered one, please try to document it and report it as an [Issue](https://github.com/lammps/lammps/issues) on the LAMMPS GitHub project web page. However, before reporting a bug, you need to check whether this is something that may have already been corrected. The [Latest Features and Bug Fixes in LAMMPS](http://lammps.sandia.gov/bug.html) web page lists all significant changes to LAMMPS over the years. It also tells you what the current latest development version of LAMMPS is, and you should test whether your issue still applies to that version.
When you click on the green "New Issue" button, you will be provided with a text field, where you can enter your message. That text field with contain a template with several headlines and some descriptions. Keep the headlines that are relevant to your reported potential bug and replace the descriptions with the information as suggested by the descriptions.
You can also attach small text files (please add the file name extension `.txt` or it will be rejected), images, or small compressed text files (using gzip, do not use RAR or 7-ZIP or similar tools that are uncommon outside of Windows machines). In many cases, bugs are best illustrated by providing a small input deck (do **not** attach your entire production input, but remove everything that is not required to reproduce the issue, and scale down your system size, that the resulting calculation runs fast and can be run on small desktop quickly).
To be able to submit an issue on GitHub, you have to register for an account (for GitHub in general). If you do not want to do that, or have other reservations against submitting an issue there, you can - as an alternative and in decreasing preference - either send an e-mail to the lammps-users mailing list, the original authors of the feature that you suspect to be affected, or one or more of the core LAMMPS developers.
### Suggesting Enhancements
The LAMMPS developers welcome suggestions for enhancements or new features. These should be submitted using the [GitHub Issue Tracker](https://github.com/lammps/lammps/issues) of the LAMMPS project. This is particularly recommended, when you plan to implement the feature or enhancement yourself, as this allows to coordinate in case there are other similar or conflicting ongoing developments.
The LAMMPS developers will review your submission and consider implementing it. Whether this will actually happen depends on many factors: how difficult it would be, how much effort it would take, how many users would benefit from it, how well the individual developer would understand the underlying physics of the feature, and whether this is a feature that would fit into a software like LAMMPS, or would be better implemented as a separate tool. Because of these factors, it matters how well the suggested enhancement is formulated and the overall benefit is argued convincingly.
To be able to submit an issue on GitHub, you have to register for an account (for GitHub in general). If you do not want to do that, or have other reservations against submitting an issue there, you can - as an alternative - send an e-mail to the lammps-users mailing list.
### Contributing Code
We encourage users to submit new features or modifications for LAMMPS to the core developers so they can be added to the LAMMPS distribution. The preferred way to manage and coordinate this is by submitting a pull request at the LAMMPS project on GitHub. For any larger modifications or programming project, you are encouraged to contact the LAMMPS developers ahead of time, in order to discuss implementation strategies and coding guidelines, that will make it easier to integrate your contribution and result in less work for everybody involved. You are also encouraged to search through the list of open issues on GitHub and submit a new issue for a planned feature, so you would not duplicate the work of others (and possibly get scooped by them) or have your work duplicated by others.
How quickly your contribution will be integrated depends largely on how much effort it will cause to integrate and test it, how much it requires changes to the core code base, and of how much interest it is to the larger LAMMPS community. Please see below for a checklist of typical requirements. Once you have prepared everything, see [this tutorial](http://lammps.sandia.gov/doc/tutorial_github.html)
for instructions on how to submit your changes or new files through a GitHub pull request
Here is a checklist of steps you need to follow to submit a single file or user package for our consideration. Following these steps will save both you and us time. See existing files in packages in the source directory for examples. If you are uncertain, please ask on the lammps-users mailing list.
* All source files you provide must compile with the most current version of LAMMPS with multiple configurations. In particular you need to test compiling LAMMPS from scratch with `-DLAMMPS_BIGBIG` set in addition to the default `-DLAMMPS_SMALLBIG` setting. Your code will need to work correctly in serial and in parallel using MPI.
* For consistency with the rest of LAMMPS and especially, if you want your contribution(s) to be added to main LAMMPS code or one of its standard packages, it needs to be written in a style compatible with other LAMMPS source files. This means: 2-character indentation per level, no tabs, no lines over 80 characters. I/O is done via the C-style stdio library, class header files should not import any system headers outside <stdio.h>, STL containers should be avoided in headers, and forward declarations used where possible or needed. All added code should be placed into the LAMMPS_NS namespace or a sub-namespace; global or static variables should be avoided, as they conflict with the modular nature of LAMMPS and the C++ class structure. Header files must not import namespaces with using. This all is so the developers can more easily understand, integrate, and maintain your contribution and reduce conflicts with other parts of LAMMPS. This basically means that the code accesses data structures, performs its operations, and is formatted similar to other LAMMPS source files, including the use of the error class for error and warning messages.
* If you want your contribution to be added as a user-contributed feature, and it is a single file (actually a `<name>.cpp` and `<name>.h` file) it can be rapidly added to the USER-MISC directory. Include the one-line entry to add to the USER-MISC/README file in that directory, along with the 2 source files. You can do this multiple times if you wish to contribute several individual features.
* If you want your contribution to be added as a user-contribution and it is several related features, it is probably best to make it a user package directory with a name like USER-FOO. In addition to your new files, the directory should contain a README text file. The README should contain your name and contact information and a brief description of what your new package does. If your files depend on other LAMMPS style files also being installed (e.g. because your file is a derived class from the other LAMMPS class), then an Install.sh file is also needed to check for those dependencies. See other README and Install.sh files in other USER directories as examples. Send us a tarball of this USER-FOO directory.
* Your new source files need to have the LAMMPS copyright, GPL notice, and your name and email address at the top, like other user-contributed LAMMPS source files. They need to create a class that is inside the LAMMPS namespace. If the file is for one of the USER packages, including USER-MISC, then we are not as picky about the coding style (see above). I.e. the files do not need to be in the same stylistic format and syntax as other LAMMPS files, though that would be nice for developers as well as users who try to read your code.
* You **must** also create or extend a documentation file for each new command or style you are adding to LAMMPS. For simplicity and convenience, the documentation of groups of closely related commands or styles may be combined into a single file. This will be one file for a single-file feature. For a package, it might be several files. These are simple text files with a specific markup language, that are then auto-converted to HTML and PDF. The tools for this conversion are included in the source distribution, and the translation can be as simple as doing "make html pdf" in the doc folder. Thus the documentation source files must be in the same format and style as other `<name>.txt` files in the lammps/doc/src directory for similar commands and styles; use one or more of them as a starting point. A description of the markup can also be found in `lammps/doc/utils/txt2html/README.html` As appropriate, the text files can include links to equations (see doc/Eqs/*.tex for examples, we auto-create the associated JPG files), or figures (see doc/JPG for examples), or even additional PDF files with further details (see doc/PDF for examples). The doc page should also include literature citations as appropriate; see the bottom of doc/fix_nh.txt for examples and the earlier part of the same file for how to format the cite itself. The "Restrictions" section of the doc page should indicate that your command is only available if LAMMPS is built with the appropriate USER-MISC or USER-FOO package. See other user package doc files for examples of how to do this. The prerequisite for building the HTML format files are Python 3.x and virtualenv, the requirement for generating the PDF format manual is the htmldoc software. Please run at least "make html" and carefully inspect and proofread the resulting HTML format doc page before submitting your code.
* For a new package (or even a single command) you should include one or more example scripts demonstrating its use. These should run in no more than a couple minutes, even on a single processor, and not require large data files as input. See directories under examples/USER for examples of input scripts other users provided for their packages. These example inputs are also required for validating memory accesses and testing for memory leaks with valgrind
* If there is a paper of yours describing your feature (either the algorithm/science behind the feature itself, or its initial usage, or its implementation in LAMMPS), you can add the citation to the *.cpp source file. See src/USER-EFF/atom_vec_electron.cpp for an example. A LaTeX citation is stored in a variable at the top of the file and a single line of code that references the variable is added to the constructor of the class. Whenever a user invokes your feature from their input script, this will cause LAMMPS to output the citation to a log.cite file and prompt the user to examine the file. Note that you should only use this for a paper you or your group authored. E.g. adding a cite in the code for a paper by Nose and Hoover if you write a fix that implements their integrator is not the intended usage. That kind of citation should just be in the doc page you provide.
Finally, as a general rule-of-thumb, the more clear and self-explanatory you make your documentation and README files, and the easier you make it for people to get started, e.g. by providing example scripts, the more likely it is that users will try out your new feature.
If the new features/files are broadly useful we may add them as core files to LAMMPS or as part of a standard package. Else we will add them as a user-contributed file or package. Examples of user packages are in src sub-directories that start with USER. The USER-MISC package is simply a collection of (mostly) unrelated single files, which is the simplest way to have your contribution quickly added to the LAMMPS distribution. You can see a list of the both standard and user packages by typing "make package" in the LAMMPS src directory.
Note that by providing us files to release, you are agreeing to make them open-source, i.e. we can release them under the terms of the GPL, used as a license for the rest of LAMMPS. See Section 1.4 for details.
With user packages and files, all we are really providing (aside from the fame and fortune that accompanies having your name in the source code and on the Authors page of the LAMMPS WWW site), is a means for you to distribute your work to the LAMMPS user community, and a mechanism for others to easily try out your new feature. This may help you find bugs or make contact with new collaborators. Note that you are also implicitly agreeing to support your code which means answer questions, fix bugs, and maintain it if LAMMPS changes in some way that breaks it (an unusual event).
To be able to submit an issue on GitHub, you have to register for an account (for GitHub in general). If you do not want to do that, or have other reservations or difficulties to submit a pull request, you can - as an alternative - contact one or more of the core LAMMPS developers and ask if one of them would be interested in manually merging your code into LAMMPS and send them your source code. Since the effort to merge a pull request is a small fraction of the effort of integrating source code manually (which would usually be done by converting the contribution into a pull request), your chances to have your new code included quickly are the best with a pull request.
If you prefer to submit patches or full files, you should first make certain, that your code works correctly with the latest patch-level version of LAMMPS and contains all bug fixes from it. Then create a gzipped tar file of all changed or added files or a corresponding patch file using 'diff -u' or 'diff -c' and compress it with gzip. Please only use gzip compression, as this works well on all platforms.
## GitHub Workflows
This section briefly summarizes the steps that will happen **after** you have submitted either an issue or a pull request on the LAMMPS GitHub project page.
### Issues
After submitting an issue, one or more of the LAMMPS developers will review it and categorize it by assigning labels. Confirmed bug reports will be labeled `bug`; if the bug report also contains a suggestion for how to fix it, it will be labeled `bugfix`; if the issue is a feature request, it will be labeled `enhancement`. Other labels may be attached as well, depending on which parts of the LAMMPS code are affected. If the assessment is, that the issue does not warrant any changes, the `wontfix` label will be applied and if the submission is incorrect or something that should not be submitted as an issue, the `invalid` label will be applied. In both of the last two cases, the issue will then be closed without further action.
For feature requests, what happens next is that developers may comment on the viability or relevance of the request, discuss and make suggestions for how to implement it. If a LAMMPS developer or user is planning to implement the feature, the issue will be assigned to that developer. For developers, that are not yet listed as LAMMPS project collaborators, they will receive an invitation to be added to the LAMMPS project as a collaborator so they can get assigned. If the requested feature or enhancement is implemented, it will usually be submitted as a pull request, which will contain a reference to the issue number. And once the pull request is reviewed and accepted for inclusion into LAMMPS, the issue will be closed. For details on how pull requests are processed, please see below.
For bug reports, the next step is that one of the core LAMMPS developers will self-assign to the issue and try to confirm the bug. If confirmed, the `bug` label and potentially other labels are added to classify the issue and its impact to LAMMPS. Before confirming, further questions may be asked or requests for providing additional input files or details about the steps required to reproduce the issue. Any bugfix is likely to be submitted as a pull request (more about that below) and since most bugs require only local changes, the bugfix may be included in a pull request specifically set up to collect such local bugfixes or small enhancements. Once the bugfix is included in the master branch, the issue will be closed.
### Pull Requests
For submitting pull requests, there is a [detailed tutorial](http://lammps.sandia.gov/doc/tutorial_github.html) in the LAMMPS manual. Thus only a brief breakdown of the steps is presented here.
Immediately after the submission, the LAMMPS continuing integration server at ci.lammps.org will download your submitted branch and perform a simple compilation test, i.e. will test whether your submitted code can be compiled under various conditions. It will also do a check on whether your included documentation translates cleanly. Whether these tests are successful or fail will be recorded. If a test fails, please inspect the corresponding output on the CI server and take the necessary steps, if needed, so that the code can compile cleanly again. The test will be re-run each the pull request is updated with a push to the remote branch on GitHub.
Next a LAMMPS core developer will self-assign and do an overall technical assessment of the submission. If you are not yet registered as a LAMMPS collaborator, you will receive an invitation for that.
You may also receive comments and suggestions on the overall submission or specific details. If permitted, additional changes may be pushed into your pull request branch or a pull request may be filed in your LAMMPS fork on GitHub to include those changes.
The LAMMPS developer may then decide to assign the pull request to another developer (e.g. when that developer is more knowledgeable about the submitted feature or enhancement or has written the modified code). It may also happen, that additional developers are requested to provide a review and approve the changes. For submissions, that may change the general behavior of LAMMPS, or where a possibility of unwanted side effects exists, additional tests may be requested by the assigned developer.
If the assigned developer is satisfied and considers the submission ready for inclusion into LAMMPS, the pull request will be assigned to the LAMMPS lead developer, Steve Plimpton (@sjplimp), who will then have the final decision on whether the submission will be included, additional changes are required or it will be ultimately rejected. After the pull request is merged, you may delete the pull request branch in your personal LAMMPS fork.
Since the learning curve for git is quite steep for efficiently managing remote repositories, local and remote branches, pull requests and more, do not hesitate to ask questions, if you are not sure about how to do certain steps that are asked of you. Even if the changes asked of you do not make sense to you, they may be important for the LAMMPS developers. Please also note, that these all are guidelines and not set in stone.

31
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@ -0,0 +1,31 @@
## Summary
_Please provide a brief description of the issue_
## Type of Issue
_Is this a 'Bug Report' or a 'Suggestion for an Enhancement'?_
## Detailed Description (Enhancement Suggestion)
_Explain how you would like to see LAMMPS enhanced, what feature(s) you are looking for, provide references to relevant background information, and whether you are willing to implement the enhancement yourself or would like to participate in the implementation_
## LAMMPS Version (Bug Report)
_Please specify which LAMMPS version this issue was detected with. If this is not the latest development version, please stop and test that version, too, and report it here if the bug persists_
## Expected Behavior (Bug Report)
_Describe the expected behavior. Quote from the LAMMPS manual where needed or explain why the expected behavior is meaningful, especially when it differs from the manual_
## Actual Behavior (Bug Report)
_Describe the actual behavior, how it differs from the expected behavior, and how this can be observed. Try to be specific and do **not* use vague terms like "doesn't work" or "wrong result". Do not assume that the person reading this has any experience with or knowledge of your specific research._
## Steps to Reproduce (Bug Report)
_Describe the steps required to quickly reproduce the issue. You can attach (small) files to the section below or add URLs where to download an archive with all necessary files. Please try to create input that are as small as possible and run as fast as possible. NOTE: the less effort and time it takes to reproduce your issue, the more likely, that somebody will look into it._
## Further Information, Files, and Links
_Put any additional information here, attach relevant text or image files and URLs to external sites, e.g. relevant publications_

29
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@ -0,0 +1,29 @@
## Purpose
_Briefly describe the new feature(s), enhancement(s), or bugfix(es) included in this pull request. If this addresses an open GitHub Issue, mention the issue number, e.g. with `fixes #221` or `closes #135`, so that issue will be automatically closed when the pull request is merged_
## Author(s)
_Please state name and affiliation of the author or authors that should be credited with the changes in this pull request_
## Backward Compatibility
_Please state whether any changes in the pull request break backward compatibility for inputs, and - if yes - explain what has been changed and why_
## Implementation Notes
_Provide any relevant details about how the changes are implemented, how correctness was verified, how other features - if any - in LAMMPS are affected_
## Post Submission Checklist
_Please check the fields below as they are completed_
- [ ] The feature or features in this pull request is complete
- [ ] Suitable new documentation files and/or updates to the existing docs are included
- [ ] One or more example input decks are included
- [ ] The source code follows the LAMMPS formatting guidelines
## Further Information, Files, and Links
_Put any additional information here, attach relevant text or image files, and URLs to external sites (e.g. DOIs or webpages)_

8
.gitignore vendored
View File

@ -32,3 +32,11 @@ log.cite
.Trashes
ehthumbs.db
Thumbs.db
#cmake
/build*
/CMakeCache.txt
/CMakeFiles/
/Makefile
/cmake_install.cmake
/lmp

View File

@ -3,7 +3,7 @@ GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

View File

@ -1,55 +1,21 @@
These are input scripts used to run versions of several of the
benchmarks in the top-level bench directory using the GPU and
USER-CUDA accelerator packages. The results of running these scripts
on two different machines (a desktop with 2 Tesla GPUs and the ORNL
Titan supercomputer) are shown on the "GPU (Fermi)" section of the
Benchmark page of the LAMMPS WWW site: lammps.sandia.gov/bench.
benchmarks in the top-level bench directory using the GPU accelerator
package. The results of running these scripts on two different machines
(a desktop with 2 Tesla GPUs and the ORNL Titan supercomputer) are shown
on the "GPU (Fermi)" section of the Benchmark page of the LAMMPS WWW
site: lammps.sandia.gov/bench.
Examples are shown below of how to run these scripts. This assumes
you have built 3 executables with both the GPU and USER-CUDA packages
you have built 3 executables with the GPU package
installed, e.g.
lmp_linux_single
lmp_linux_mixed
lmp_linux_double
The precision (single, mixed, double) refers to the GPU and USER-CUDA
package precision. See the README files in the lib/gpu and lib/cuda
directories for instructions on how to build the packages with
different precisions. The GPU and USER-CUDA sub-sections of the
doc/Section_accelerate.html file also describes this process.
Make.py -d ~/lammps -j 16 -p #all orig -m linux -o cpu -a exe
Make.py -d ~/lammps -j 16 -p #all opt orig -m linux -o opt -a exe
Make.py -d ~/lammps -j 16 -p #all omp orig -m linux -o omp -a exe
Make.py -d ~/lammps -j 16 -p #all gpu orig -m linux \
-gpu mode=double arch=20 -o gpu_double -a libs exe
Make.py -d ~/lammps -j 16 -p #all gpu orig -m linux \
-gpu mode=mixed arch=20 -o gpu_mixed -a libs exe
Make.py -d ~/lammps -j 16 -p #all gpu orig -m linux \
-gpu mode=single arch=20 -o gpu_single -a libs exe
Make.py -d ~/lammps -j 16 -p #all cuda orig -m linux \
-cuda mode=double arch=20 -o cuda_double -a libs exe
Make.py -d ~/lammps -j 16 -p #all cuda orig -m linux \
-cuda mode=mixed arch=20 -o cuda_mixed -a libs exe
Make.py -d ~/lammps -j 16 -p #all cuda orig -m linux \
-cuda mode=single arch=20 -o cuda_single -a libs exe
Make.py -d ~/lammps -j 16 -p #all intel orig -m linux -o intel_cpu -a exe
Make.py -d ~/lammps -j 16 -p #all kokkos orig -m linux -o kokkos_omp -a exe
Make.py -d ~/lammps -j 16 -p #all kokkos orig -kokkos cuda arch=20 \
-m cuda -o kokkos_cuda -a exe
Make.py -d ~/lammps -j 16 -p #all opt omp gpu cuda intel kokkos orig \
-gpu mode=double arch=20 -cuda mode=double arch=20 -m linux \
-o all -a libs exe
Make.py -d ~/lammps -j 16 -p #all opt omp gpu cuda intel kokkos orig \
-kokkos cuda arch=20 -gpu mode=double arch=20 \
-cuda mode=double arch=20 -m cuda -o all_cuda -a libs exe
------------------------------------------------------------------------
To run on just CPUs (without using the GPU or USER-CUDA styles),
To run on just CPUs (without using the GPU styles),
do something like the following:
mpirun -np 1 lmp_linux_double -v x 8 -v y 8 -v z 8 -v t 100 < in.lj
@ -81,23 +47,5 @@ node via a "-ppn" setting.
------------------------------------------------------------------------
To run with the USER-CUDA package, do something like the following:
mpirun -np 1 lmp_linux_single -c on -sf cuda -v x 16 -v y 16 -v z 16 -v t 100 < in.lj
mpirun -np 2 lmp_linux_double -c on -sf cuda -pk cuda 2 -v x 32 -v y 64 -v z 64 -v t 100 < in.eam
The "xyz" settings determine the problem size. The "t" setting
determines the number of timesteps. The "np" setting determines how
many MPI tasks (per node) the problem will run on. The numeric
argument to the "-pk" setting is the number of GPUs (per node); 1 GPU
is the default. Note that the number of MPI tasks must equal the
number of GPUs (both per node) with the USER-CUDA package.
These mpirun commands run on a single node. To run on multiple nodes,
scale up the "-np" setting, and control the number of MPI tasks per
node via a "-ppn" setting.
------------------------------------------------------------------------
If the script has "titan" in its name, it was run on the Titan
supercomputer at ORNL.

View File

@ -71,49 +71,33 @@ integration
----------------------------------------------------------------------
Here is a src/Make.py command which will perform a parallel build of a
LAMMPS executable "lmp_mpi" with all the packages needed by all the
examples. This assumes you have an MPI installed on your machine so
that "mpicxx" can be used as the wrapper compiler. It also assumes
you have an Intel compiler to use as the base compiler. You can leave
off the "-cc mpi wrap=icc" switch if that is not the case. You can
also leave off the "-fft fftw3" switch if you do not have the FFTW
(v3) installed as an FFT package, in which case the default KISS FFT
library will be used.
cd src
Make.py -j 16 -p none molecule manybody kspace granular rigid orig \
-cc mpi wrap=icc -fft fftw3 -a file mpi
----------------------------------------------------------------------
Here is how to run each problem, assuming the LAMMPS executable is
named lmp_mpi, and you are using the mpirun command to launch parallel
runs:
Serial (one processor runs):
lmp_mpi < in.lj
lmp_mpi < in.chain
lmp_mpi < in.eam
lmp_mpi < in.chute
lmp_mpi < in.rhodo
lmp_mpi -in in.lj
lmp_mpi -in in.chain
lmp_mpi -in in.eam
lmp_mpi -in in.chute
lmp_mpi -in in.rhodo
Parallel fixed-size runs (on 8 procs in this case):
mpirun -np 8 lmp_mpi < in.lj
mpirun -np 8 lmp_mpi < in.chain
mpirun -np 8 lmp_mpi < in.eam
mpirun -np 8 lmp_mpi < in.chute
mpirun -np 8 lmp_mpi < in.rhodo
mpirun -np 8 lmp_mpi -in in.lj
mpirun -np 8 lmp_mpi -in in.chain
mpirun -np 8 lmp_mpi -in in.eam
mpirun -np 8 lmp_mpi -in in.chute
mpirun -np 8 lmp_mpi -in in.rhodo
Parallel scaled-size runs (on 16 procs in this case):
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 < in.lj
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 < in.chain.scaled
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 < in.eam
mpirun -np 16 lmp_mpi -var x 4 -var y 4 < in.chute.scaled
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 < in.rhodo.scaled
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 -in in.lj
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 -in in.chain.scaled
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 -in in.eam
mpirun -np 16 lmp_mpi -var x 4 -var y 4 -in in.chute.scaled
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 -in in.rhodo.scaled
For each of the scaled-size runs you must set 3 variables as -var
command line switches. The variables x,y,z are used in the input

723
cmake/CMakeLists.txt Normal file
View File

@ -0,0 +1,723 @@
########################################
# CMake build system
# This file is part of LAMMPS
# Created by Christoph Junghans and Richard Berger
cmake_minimum_required(VERSION 3.1)
project(lammps)
set(SOVERSION 0)
set(LAMMPS_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../src)
set(LAMMPS_LIB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib)
set(LAMMPS_LIB_BINARY_DIR ${CMAKE_BINARY_DIR}/lib)
#To not conflict with old Makefile build system, we build everything here
file(GLOB LIB_SOURCES ${LAMMPS_SOURCE_DIR}/*.cpp)
file(GLOB LMP_SOURCES ${LAMMPS_SOURCE_DIR}/main.cpp)
list(REMOVE_ITEM LIB_SOURCES ${LMP_SOURCES})
# Cmake modules/macros are in a subdirectory to keep this file cleaner
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules)
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CXX_FLAGS)
#release comes with -O3 by default
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
endif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CXX_FLAGS)
# remove any style headers in the src dir
file(GLOB SRC_STYLE_FILES ${LAMMPS_SOURCE_DIR}/style_*.h)
if(SRC_STYLE_FILES)
file(REMOVE ${SRC_STYLE_FILES})
endif()
enable_language(CXX)
######################################################################
# compiler tests
# these need ot be done early (before further tests).
#####################################################################
include(CheckCCompilerFlag)
if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -restrict")
endif()
########################################################################
# User input options #
########################################################################
option(BUILD_SHARED_LIBS "Build shared libs" OFF)
if(BUILD_SHARED_LIBS) # for all pkg libs, mpi_stubs and linalg
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif()
include(GNUInstallDirs)
set(LAMMPS_LINK_LIBS)
set(LAMMPS_DEPS)
set(LAMMPS_API_DEFINES)
option(ENABLE_MPI "Build MPI version" OFF)
if(ENABLE_MPI)
find_package(MPI REQUIRED)
include_directories(${MPI_C_INCLUDE_PATH})
list(APPEND LAMMPS_LINK_LIBS ${MPI_CXX_LIBRARIES})
option(LAMMPS_LONGLONG_TO_LONG "Workaround if your system or MPI version does not recognize 'long long' data types" OFF)
if(LAMMPS_LONGLONG_TO_LONG)
add_definitions(-DLAMMPS_LONGLONG_TO_LONG)
endif()
else()
file(GLOB MPI_SOURCES ${LAMMPS_SOURCE_DIR}/STUBS/mpi.c)
add_library(mpi_stubs STATIC ${MPI_SOURCES})
include_directories(${LAMMPS_SOURCE_DIR}/STUBS)
list(APPEND LAMMPS_LINK_LIBS mpi_stubs)
endif()
set(LAMMPS_SIZE_LIMIT "LAMMPS_SMALLBIG" CACHE STRING "Lammps size limit")
set_property(CACHE LAMMPS_SIZE_LIMIT PROPERTY STRINGS LAMMPS_SMALLBIG LAMMPS_BIGBIG LAMMPS_SMALLSMALL)
add_definitions(-D${LAMMPS_SIZE_LIMIT})
set(LAMMPS_API_DEFINES "${LAMMPS_API_DEFINES} -D${LAMMPS_SIZE_LIMIT}")
set(LAMMPS_MEMALIGN "64" CACHE STRING "enables the use of the posix_memalign() call instead of malloc() when large chunks or memory are allocated by LAMMPS")
add_definitions(-DLAMMPS_MEMALIGN=${LAMMPS_MEMALIGN})
option(LAMMPS_EXCEPTIONS "enable the use of C++ exceptions for error messages (useful for library interface)" OFF)
if(LAMMPS_EXCEPTIONS)
add_definitions(-DLAMMPS_EXCEPTIONS)
set(LAMMPS_API_DEFINES "${LAMMPS_API_DEFINES} -DLAMMPS_EXCEPTIONS")
endif()
set(LAMMPS_MACHINE "" CACHE STRING "Suffix to append to lmp binary and liblammps (WON'T enable any features automatically")
mark_as_advanced(LAMMPS_MACHINE)
if(LAMMPS_MACHINE)
set(LAMMPS_MACHINE "_${LAMMPS_MACHINE}")
endif()
option(CMAKE_VERBOSE_MAKEFILE "Verbose makefile" OFF)
option(ENABLE_TESTING "Enable testing" OFF)
if(ENABLE_TESTING)
enable_testing()
endif(ENABLE_TESTING)
option(ENABLE_ALL "Build all default packages" OFF)
set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GRANULAR
KSPACE MANYBODY MC MEAM MISC MOLECULE PERI QEQ
REAX REPLICA RIGID SHOCK SNAP SRD)
set(OTHER_PACKAGES KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE
USER-ATC USER-AWPMD USER-CGDNA USER-MESO
USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF
USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC
USER-MOLFILE USER-NETCDF USER-PHONON USER-QTB USER-REAXC USER-SMD
USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM)
set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU)
foreach(PKG ${DEFAULT_PACKAGES})
option(ENABLE_${PKG} "Build ${PKG} Package" ${ENABLE_ALL})
endforeach()
foreach(PKG ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
option(ENABLE_${PKG} "Build ${PKG} Package" OFF)
endforeach()
macro(pkg_depends PKG1 PKG2)
if(ENABLE_${PKG1} AND NOT ENABLE_${PKG2})
message(FATAL_ERROR "${PKG1} package needs LAMMPS to be build with ${PKG2}")
endif()
endmacro()
pkg_depends(MPIIO MPI)
pkg_depends(QEQ MANYBODY)
pkg_depends(USER-ATC MANYBODY)
pkg_depends(USER-H5MD MPI)
pkg_depends(USER-LB MPI)
pkg_depends(USER-MISC MANYBODY)
pkg_depends(USER-PHONON KSPACE)
if(ENABLE_BODY AND ENABLE_POEMS)
message(FATAL_ERROR "BODY and POEMS cannot be enabled at the same time")
endif()
######################################################
# packages with special compiler needs or external libs
######################################################
if(ENABLE_REAX OR ENABLE_MEAM OR ENABLE_USER-QUIP OR ENABLE_USER-QMMM OR ENABLE_LATTE)
enable_language(Fortran)
include(CheckFortranCompilerFlag)
check_Fortran_compiler_flag("-fno-second-underscore" FC_HAS_NO_SECOND_UNDERSCORE)
endif()
if(ENABLE_KOKKOS OR ENABLE_MSCG)
# starting with CMake 3.1 this is all you have to do to enforce C++11
set(CMAKE_CXX_STANDARD 11) # C++11...
set(CMAKE_CXX_STANDARD_REQUIRED ON) #...is required...
set(CMAKE_CXX_EXTENSIONS OFF) #...without compiler extensions like gnu++11
endif()
if(ENABLE_USER-OMP OR ENABLE_KOKKOS OR ENABLE_USER-INTEL)
find_package(OpenMP REQUIRED)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif()
if(ENABLE_KSPACE)
set(FFT "KISSFFT" CACHE STRING "FFT library for KSPACE package")
set_property(CACHE FFT PROPERTY STRINGS KISSFFT FFTW3 MKL FFTW2)
if(NOT FFT STREQUAL "KISSFFT")
find_package(${FFT} REQUIRED)
add_definitions(-DFFT_${FFT})
include_directories(${${FFT}_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${${FFT}_LIBRARIES})
endif()
set(PACK_OPTIMIZATION "PACK_ARRAY" CACHE STRING "Optimization for FFT")
set_property(CACHE PACK_OPTIMIZATION PROPERTY STRINGS PACK_ARRAY PACK_POINTER PACK_MEMCPY)
if(NOT PACK_OPTIMIZATION STREQUAL "PACK_ARRAY")
add_definitions(-D${PACK_OPTIMIZATION})
endif()
endif()
if(ENABLE_MISC)
option(LAMMPS_XDR "include XDR compatibility files for doing particle dumps in XTC format" OFF)
if(LAMMPS_XDR)
add_definitions(-DLAMMPS_XDR) # for liblammps
endif()
endif()
if(ENABLE_MSCG OR ENABLE_USER-ATC OR ENABLE_USER-AWPMD OR ENABLE_USER-QUIP OR ENABLE_LATTE)
find_package(LAPACK)
if(NOT LAPACK_FOUND)
enable_language(Fortran)
file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/*.f)
add_library(linalg STATIC ${LAPACK_SOURCES})
include(CheckFortranCompilerFlag)
check_Fortran_compiler_flag("-fno-second-underscore" FC_HAS_NO_SECOND_UNDERSCORE)
if(FC_HAS_NO_SECOND_UNDERSCORE)
target_compile_options(linalg PRIVATE -fno-second-underscore)
endif()
set(LAPACK_LIBRARIES linalg)
endif()
endif()
if(ENABLE_PYTHON)
find_package(PythonInterp REQUIRED)
find_package(PythonLibs REQUIRED)
add_definitions(-DLMP_PYTHON)
include_directories(${PYTHON_INCLUDE_DIR})
list(APPEND LAMMPS_LINK_LIBS ${PYTHON_LIBRARY})
if(NOT PYTHON_INSTDIR)
execute_process(COMMAND ${PYTHON_EXECUTABLE}
-c "import distutils.sysconfig as cg; print(cg.get_python_lib(1,0,prefix='${CMAKE_INSTALL_PREFIX}'))"
OUTPUT_VARIABLE PYTHON_INSTDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../python/lammps.py DESTINATION ${PYTHON_INSTDIR})
if(NOT BUILD_SHARED_LIBS)
message(FATAL_ERROR "Python package need lammps to be build shared, use -DBUILD_SHARED_LIBS=ON")
endif()
endif()
find_package(JPEG)
if(JPEG_FOUND)
add_definitions(-DLAMMPS_JPEG)
include_directories(${JPEG_INCLUDE_DIR})
list(APPEND LAMMPS_LINK_LIBS ${JPEG_LIBRARIES})
endif()
find_package(PNG)
find_package(ZLIB)
if(PNG_FOUND AND ZLIB_FOUND)
include_directories(${PNG_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${PNG_LIBRARIES} ${ZLIB_LIBRARIES})
add_definitions(-DLAMMPS_PNG)
endif()
find_program(GZIP_EXECUTABLE gzip)
find_package_handle_standard_args(GZIP REQUIRED_VARS GZIP_EXECUTABLE)
if(GZIP_FOUND)
add_definitions(-DLAMMPS_GZIP)
endif()
find_program(FFMPEG_EXECUTABLE ffmpeg)
find_package_handle_standard_args(FFMPEG REQUIRED_VARS FFMPEG_EXECUTABLE)
if(FFMPEG_FOUND)
add_definitions(-DLAMMPS_FFMPEG)
endif()
if(ENABLE_VORONOI)
find_package(VORO REQUIRED) #some distros
include_directories(${VORO_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${VORO_LIBRARIES})
endif()
if(ENABLE_LATTE)
find_package(LATTE QUIET)
if(NOT LATTE_FOUND)
message(STATUS "LATTE not found - we will build our own")
include(ExternalProject)
ExternalProject_Add(latte_build
URL https://github.com/lanl/LATTE/archive/v1.0.1.tar.gz
URL_MD5 5137e28cb1a64444bd571c98c98a6eee
SOURCE_SUBDIR cmake
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE}
)
ExternalProject_get_property(latte_build INSTALL_DIR)
set(LATTE_LIBRARIES ${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/liblatte.a)
list(APPEND LAMMPS_DEPS latte_build)
endif()
list(APPEND LAMMPS_LINK_LIBS ${LATTE_LIBRARIES} ${LAPACK_LIBRARIES} ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
endif()
if(ENABLE_USER-MOLFILE)
add_library(molfile INTERFACE)
target_include_directories(molfile INTERFACE ${LAMMPS_LIB_SOURCE_DIR}/molfile)
target_link_libraries(molfile INTERFACE ${CMAKE_DL_LIBS})
list(APPEND LAMMPS_LINK_LIBS molfile)
endif()
if(ENABLE_USER-NETCDF)
find_package(NetCDF REQUIRED)
include_directories(NETCDF_INCLUDE_DIR)
list(APPEND LAMMPS_LINK_LIBS ${NETCDF_LIBRARY})
add_definitions(-DLMP_HAS_NETCDF -DNC_64BIT_DATA=0x0020)
endif()
if(ENABLE_USER-SMD)
find_package(Eigen3 REQUIRED)
include_directories(${EIGEN3_INCLUDE_DIR})
endif()
if(ENABLE_USER-QUIP)
find_package(QUIP REQUIRED)
list(APPEND LAMMPS_LINK_LIBS ${QUIP_LIBRARIES} ${LAPACK_LIBRARIES} ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
endif()
if(ENABLE_USER-QMMM)
find_package(QE REQUIRED)
include_directories(${QE_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${QE_LIBRARIES} ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
endif()
if(ENABLE_USER-VTK)
find_package(VTK REQUIRED NO_MODULE)
include(${VTK_USE_FILE})
add_definitions(-DLAMMPS_VTK)
list(APPEND LAMMPS_LINK_LIBS ${VTK_LIBRARIES})
endif()
if(ENABLE_KIM)
find_package(KIM REQUIRED)
list(APPEND LAMMPS_LINK_LIBS ${KIM_LIBRARIES})
include_directories(${KIM_INCLUDE_DIRS})
endif()
if(ENABLE_MSCG)
find_package(GSL REQUIRED)
set(LAMMPS_LIB_MSCG_BIN_DIR ${LAMMPS_LIB_BINARY_DIR}/mscg)
set(MSCG_TARBALL ${LAMMPS_LIB_MSCG_BIN_DIR}/MS-CG-master.zip)
set(LAMMPS_LIB_MSCG_BIN_DIR ${LAMMPS_LIB_MSCG_BIN_DIR}/MSCG-release-master/src)
if(NOT EXISTS ${LAMMPS_LIB_MSCG_BIN_DIR})
if(NOT EXISTS ${MSCG_TARBALL})
message(STATUS "Downloading ${MSCG_TARBALL}")
file(DOWNLOAD
https://github.com/uchicago-voth/MSCG-release/archive/master.zip
${MSCG_TARBALL} SHOW_PROGRESS) #EXPECTED_MD5 cannot be due due to master
endif()
message(STATUS "Unpacking ${MSCG_TARBALL}")
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ${MSCG_TARBALL}
WORKING_DIRECTORY ${LAMMPS_LIB_BINARY_DIR}/mscg)
endif()
file(GLOB MSCG_SOURCES ${LAMMPS_LIB_MSCG_BIN_DIR}/*.cpp)
add_library(mscg STATIC ${MSCG_SOURCES})
list(APPEND LAMMPS_LINK_LIBS mscg)
target_compile_options(mscg PRIVATE -DDIMENSION=3 -D_exclude_gromacs=1)
target_include_directories(mscg PUBLIC ${LAMMPS_LIB_MSCG_BIN_DIR})
target_link_libraries(mscg ${GSL_LIBRARIES} ${LAPACK_LIBRARIES})
endif()
########################################################################
# Basic system tests (standard libraries, headers, functions, types) #
########################################################################
include(CheckIncludeFile)
foreach(HEADER math.h)
check_include_file(${HEADER} FOUND_${HEADER})
if(NOT FOUND_${HEADER})
message(FATAL_ERROR "Could not find needed header - ${HEADER}")
endif(NOT FOUND_${HEADER})
endforeach(HEADER)
set(MATH_LIBRARIES "m" CACHE STRING "math library")
mark_as_advanced( MATH_LIBRARIES )
include(CheckLibraryExists)
foreach(FUNC sin cos)
check_library_exists(${MATH_LIBRARIES} ${FUNC} "" FOUND_${FUNC}_${MATH_LIBRARIES})
if(NOT FOUND_${FUNC}_${MATH_LIBRARIES})
message(FATAL_ERROR "Could not find needed math function - ${FUNC}")
endif(NOT FOUND_${FUNC}_${MATH_LIBRARIES})
endforeach(FUNC)
list(APPEND LAMMPS_LINK_LIBS ${MATH_LIBRARIES})
######################################
# Generate Basic Style files
######################################
include(StyleHeaderUtils)
RegisterStyles(${LAMMPS_SOURCE_DIR})
##############################################
# add sources of enabled packages
############################################
foreach(PKG ${DEFAULT_PACKAGES} ${OTHER_PACKAGES})
set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG})
# ignore PKG files which were manually installed in src folder
# headers are ignored during RegisterStyles
file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/*.cpp)
file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/*.h)
foreach(PKG_FILE in ${${PKG}_SOURCES})
get_filename_component(FNAME ${PKG_FILE} NAME)
list(REMOVE_ITEM LIB_SOURCES ${LAMMPS_SOURCE_DIR}/${FNAME})
endforeach()
foreach(PKG_FILE in ${${PKG}_HEADERS})
get_filename_component(FNAME ${PKG_FILE} NAME)
DetectAndRemovePackageHeader(${LAMMPS_SOURCE_DIR}/${FNAME})
endforeach()
if(ENABLE_${PKG})
# detects styles in package and adds them to global list
RegisterStyles(${${PKG}_SOURCES_DIR})
list(APPEND LIB_SOURCES ${${PKG}_SOURCES})
include_directories(${${PKG}_SOURCES_DIR})
endif()
endforeach()
##############################################
# add lib sources of (simple) enabled packages
############################################
foreach(SIMPLE_LIB REAX MEAM POEMS USER-ATC USER-AWPMD USER-COLVARS USER-H5MD
USER-QMMM)
if(ENABLE_${SIMPLE_LIB})
string(REGEX REPLACE "^USER-" "" PKG_LIB "${SIMPLE_LIB}")
string(TOLOWER "${PKG_LIB}" PKG_LIB)
file(GLOB_RECURSE ${PKG_LIB}_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.F
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.c ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.cpp)
add_library(${PKG_LIB} STATIC ${${PKG_LIB}_SOURCES})
list(APPEND LAMMPS_LINK_LIBS ${PKG_LIB})
if(PKG_LIB STREQUAL awpmd)
target_include_directories(awpmd PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/awpmd/systems/interact ${LAMMPS_LIB_SOURCE_DIR}/awpmd/ivutils/include)
elseif(PKG_LIB STREQUAL h5md)
target_include_directories(h5md PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/h5md/include)
else()
target_include_directories(${PKG_LIB} PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB})
endif()
endif()
endforeach()
if(ENABLE_USER-AWPMD)
target_link_libraries(awpmd ${LAPACK_LIBRARIES})
endif()
if(ENABLE_USER-ATC)
target_link_libraries(atc ${LAPACK_LIBRARIES})
endif()
if(ENABLE_USER-H5MD)
find_package(HDF5 REQUIRED)
target_link_libraries(h5md ${HDF5_LIBRARIES})
target_include_directories(h5md PRIVATE ${HDF5_INCLUDE_DIRS})
endif()
if(ENABLE_MEAM AND FC_HAS_NO_SECOND_UNDERSCORE)
foreach(FSRC ${meam_SOURCES})
string(REGEX REPLACE "^.*\\." "" FEXT "${FSRC}")
list(FIND CMAKE_Fortran_SOURCE_FILE_EXTENSIONS "${FEXT}" FINDEX)
if(FINDEX GREATER -1)
set_property(SOURCE ${FSRC} APPEND PROPERTY COMPILE_FLAGS "-fno-second-underscore")
endif()
endforeach()
endif()
if(ENABLE_REAX AND FC_HAS_NO_SECOND_UNDERSCORE)
target_compile_options(reax PRIVATE -fno-second-underscore)
endif()
######################################################################
# packages which selectively include variants based on enabled styles
# e.g. accelerator packages
######################################################################
if(ENABLE_USER-OMP)
set(USER-OMP_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-OMP)
set(USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/thr_data.cpp
${USER-OMP_SOURCES_DIR}/thr_omp.cpp
${USER-OMP_SOURCES_DIR}/fix_nh_omp.cpp
${USER-OMP_SOURCES_DIR}/fix_nh_sphere_omp.cpp)
set_property(GLOBAL PROPERTY "OMP_SOURCES" "${USER-OMP_SOURCES}")
# detects styles which have USER-OMP version
RegisterStylesExt(${USER-OMP_SOURCES_DIR} omp OMP_SOURCES)
get_property(USER-OMP_SOURCES GLOBAL PROPERTY OMP_SOURCES)
list(APPEND LIB_SOURCES ${USER-OMP_SOURCES})
include_directories(${USER-OMP_SOURCES_DIR})
endif()
if(ENABLE_KOKKOS)
set(LAMMPS_LIB_KOKKOS_SRC_DIR ${LAMMPS_LIB_SOURCE_DIR}/kokkos)
set(LAMMPS_LIB_KOKKOS_BIN_DIR ${LAMMPS_LIB_BINARY_DIR}/kokkos)
add_definitions(-DLMP_KOKKOS)
add_subdirectory(${LAMMPS_LIB_KOKKOS_SRC_DIR} ${LAMMPS_LIB_KOKKOS_BIN_DIR})
set(Kokkos_INCLUDE_DIRS ${LAMMPS_LIB_KOKKOS_SRC_DIR}/core/src
${LAMMPS_LIB_KOKKOS_SRC_DIR}/containers/src
${LAMMPS_LIB_KOKKOS_SRC_DIR}/algorithms/src
${LAMMPS_LIB_KOKKOS_BIN_DIR})
include_directories(${Kokkos_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS kokkos)
set(KOKKOS_PKG_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/KOKKOS)
set(KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/atom_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/atom_vec_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/comm_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/comm_tiled_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/neighbor_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/neigh_list_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/neigh_bond_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/fix_nh_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/domain_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/modify_kokkos.cpp)
set_property(GLOBAL PROPERTY "KOKKOS_PKG_SOURCES" "${KOKKOS_PKG_SOURCES}")
# detects styles which have KOKKOS version
RegisterStylesExt(${KOKKOS_PKG_SOURCES_DIR} kokkos KOKKOS_PKG_SOURCES)
get_property(KOKKOS_PKG_SOURCES GLOBAL PROPERTY KOKKOS_PKG_SOURCES)
list(APPEND LIB_SOURCES ${KOKKOS_PKG_SOURCES})
include_directories(${KOKKOS_PKG_SOURCES_DIR})
endif()
if(ENABLE_OPT)
set(OPT_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/OPT)
set(OPT_SOURCES)
set_property(GLOBAL PROPERTY "OPT_SOURCES" "${OPT_SOURCES}")
# detects styles which have OPT version
RegisterStylesExt(${OPT_SOURCES_DIR} opt OPT_SOURCES)
get_property(OPT_SOURCES GLOBAL PROPERTY OPT_SOURCES)
list(APPEND LIB_SOURCES ${OPT_SOURCES})
include_directories(${OPT_SOURCES_DIR})
endif()
if(ENABLE_USER-INTEL)
set(USER-INTEL_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-INTEL)
set(USER-INTEL_SOURCES ${USER-INTEL_SOURCES_DIR}/intel_preprocess.h
${USER-INTEL_SOURCES_DIR}/intel_buffers.h
${USER-INTEL_SOURCES_DIR}/intel_buffers.cpp
${USER-INTEL_SOURCES_DIR}/math_extra_intel.h
${USER-INTEL_SOURCES_DIR}/nbin_intel.h
${USER-INTEL_SOURCES_DIR}/nbin_intel.cpp
${USER-INTEL_SOURCES_DIR}/npair_intel.h
${USER-INTEL_SOURCES_DIR}/npair_intel.cpp
${USER-INTEL_SOURCES_DIR}/intel_simd.h
${USER-INTEL_SOURCES_DIR}/intel_intrinsics.h)
set_property(GLOBAL PROPERTY "USER-INTEL_SOURCES" "${USER-INTEL_SOURCES}")
# detects styles which have USER-INTEL version
RegisterStylesExt(${USER-INTEL_SOURCES_DIR} opt USER-INTEL_SOURCES)
get_property(USER-INTEL_SOURCES GLOBAL PROPERTY USER-INTEL_SOURCES)
list(APPEND LIB_SOURCES ${USER-INTEL_SOURCES})
include_directories(${USER-INTEL_SOURCES_DIR})
endif()
if(ENABLE_GPU)
set(GPU_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/GPU)
set(GPU_SOURCES ${GPU_SOURCES_DIR}/gpu_extra.h
${GPU_SOURCES_DIR}/fix_gpu.h
${GPU_SOURCES_DIR}/fix_gpu.cpp)
set(GPU_API "OpenCL" CACHE STRING "API used by GPU package")
set_property(CACHE GPU_API PROPERTY STRINGS OpenCL CUDA)
set(GPU_PREC "SINGLE_DOUBLE" CACHE STRING "LAMMPS GPU precision size")
set_property(CACHE GPU_PREC PROPERTY STRINGS SINGLE_DOUBLE SINGLE_SINGLE DOUBLE_DOUBLE)
file(GLOB GPU_LIB_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cpp)
file(MAKE_DIRECTORY ${LAMMPS_LIB_BINARY_DIR}/gpu)
if(GPU_API STREQUAL "CUDA")
find_package(CUDA REQUIRED)
find_program(BIN2C bin2c)
if(NOT BIN2C)
message(FATAL_ERROR "Couldn't find bin2c, use -DBIN2C helping cmake to find it.")
endif()
option(CUDPP_OPT "Enable CUDPP_OPT" ON)
set(GPU_ARCH "sm_30" CACHE STRING "LAMMPS GPU CUDA SM architecture")
set_property(CACHE GPU_ARCH PROPERTY STRINGS sm_10 sm_20 sm_30 sm_60)
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/*.cu)
list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_pppm.cu)
cuda_include_directories(${LAMMPS_LIB_SOURCE_DIR}/gpu ${LAMMPS_LIB_BINARY_DIR}/gpu)
if(CUDPP_OPT)
cuda_include_directories(${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini)
file(GLOB GPU_LIB_CUDPP_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/*.cpp)
file(GLOB GPU_LIB_CUDPP_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/*.cu)
endif()
cuda_compile_cubin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS
-DUNIX -O3 -Xptxas -v --use_fast_math -DNV_KERNEL -DUCL_CUDADR -arch=${GPU_ARCH} -D_${GPU_PREC})
cuda_compile(GPU_OBJS ${GPU_LIB_CUDPP_CU} OPTIONS $<$<BOOL:${BUILD_SHARED_LIBS}>:-Xcompiler=-fPIC>
-DUNIX -O3 -Xptxas -v --use_fast_math -DUCL_CUDADR -arch=${GPU_ARCH} -D_${GPU_PREC})
foreach(CU_OBJ ${GPU_GEN_OBJS})
get_filename_component(CU_NAME ${CU_OBJ} NAME_WE)
string(REGEX REPLACE "^.*_lal_" "" CU_NAME "${CU_NAME}")
add_custom_command(OUTPUT ${LAMMPS_LIB_BINARY_DIR}/gpu/${CU_NAME}_cubin.h
COMMAND ${BIN2C} -c -n ${CU_NAME} ${CU_OBJ} > ${LAMMPS_LIB_BINARY_DIR}/gpu/${CU_NAME}_cubin.h
DEPENDS ${CU_OBJ}
COMMENT "Generating ${CU_NAME}_cubin.h")
list(APPEND GPU_LIB_SOURCES ${LAMMPS_LIB_BINARY_DIR}/gpu/${CU_NAME}_cubin.h)
endforeach()
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${LAMMPS_LIB_BINARY_DIR}/gpu/*_cubin.h")
add_library(gpu STATIC ${GPU_LIB_SOURCES} ${GPU_LIB_CUDPP_SOURCES} ${GPU_OBJS})
target_link_libraries(gpu ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY})
target_include_directories(gpu PRIVATE ${LAMMPS_LIB_BINARY_DIR}/gpu ${CUDA_INCLUDE_DIRS})
target_compile_definitions(gpu PRIVATE -D_${GPU_PREC} -DMPI_GERYON -DUCL_NO_EXIT)
if(CUDPP_OPT)
target_include_directories(gpu PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini)
target_compile_definitions(gpu PRIVATE -DUSE_CUDPP)
endif()
list(APPEND LAMMPS_LINK_LIBS gpu)
add_executable(nvc_get_devices ${LAMMPS_LIB_SOURCE_DIR}/gpu/geryon/ucl_get_devices.cpp)
target_compile_definitions(nvc_get_devices PRIVATE -DUCL_CUDADR)
target_link_libraries(nvc_get_devices PRIVATE ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY})
target_include_directories(nvc_get_devices PRIVATE ${CUDA_INCLUDE_DIRS})
elseif(GPU_API STREQUAL "OpenCL")
find_package(OpenCL REQUIRED)
set(OCL_TUNE "GENERIC" CACHE STRING "OpenCL Device Tuning")
set_property(CACHE OCL_TUNE PROPERTY STRINGS INTEL FERMI KEPLER CYPRESS GENERIC)
include(OpenCLUtils)
set(OCL_COMMON_HEADERS ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_preprocessor.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_aux_fun1.h)
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cu)
list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne.cu ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne_lj.cu)
foreach(GPU_KERNEL ${GPU_LIB_CU})
get_filename_component(basename ${GPU_KERNEL} NAME_WE)
string(SUBSTRING ${basename} 4 -1 KERNEL_NAME)
GenerateOpenCLHeader(${KERNEL_NAME} ${CMAKE_CURRENT_BINARY_DIR}/gpu/${KERNEL_NAME}_cl.h ${OCL_COMMON_HEADERS} ${GPU_KERNEL})
list(APPEND GPU_LIB_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/gpu/${KERNEL_NAME}_cl.h)
endforeach()
GenerateOpenCLHeader(gayberne ${CMAKE_CURRENT_BINARY_DIR}/gpu/gayberne_cl.h ${OCL_COMMON_HEADERS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_ellipsoid_extra.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne.cu)
GenerateOpenCLHeader(gayberne_lj ${CMAKE_CURRENT_BINARY_DIR}/gpu/gayberne_lj_cl.h ${OCL_COMMON_HEADERS} ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_ellipsoid_extra.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne_lj.cu)
list(APPEND GPU_LIB_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/gpu/gayberne_cl.h ${CMAKE_CURRENT_BINARY_DIR}/gpu/gayberne_lj_cl.h)
add_library(gpu STATIC ${GPU_LIB_SOURCES})
target_link_libraries(gpu ${OpenCL_LIBRARIES})
target_include_directories(gpu PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/gpu ${OpenCL_INCLUDE_DIRS})
target_compile_definitions(gpu PRIVATE -D_${GPU_PREC} -DMPI_GERYON -DUCL_NO_EXIT)
target_compile_definitions(gpu PRIVATE -DUSE_OPENCL)
list(APPEND LAMMPS_LINK_LIBS gpu)
add_executable(ocl_get_devices ${LAMMPS_LIB_SOURCE_DIR}/gpu/geryon/ucl_get_devices.cpp)
target_compile_definitions(ocl_get_devices PRIVATE -DUCL_OPENCL)
target_link_libraries(ocl_get_devices PRIVATE ${OpenCL_LIBRARIES})
target_include_directories(ocl_get_devices PRIVATE ${OpenCL_INCLUDE_DIRS})
endif()
# GPU package
FindStyleHeaders(${GPU_SOURCES_DIR} FIX_CLASS fix_ FIX)
set_property(GLOBAL PROPERTY "GPU_SOURCES" "${GPU_SOURCES}")
# detects styles which have GPU version
RegisterStylesExt(${GPU_SOURCES_DIR} gpu GPU_SOURCES)
get_property(GPU_SOURCES GLOBAL PROPERTY GPU_SOURCES)
list(APPEND LIB_SOURCES ${GPU_SOURCES})
include_directories(${GPU_SOURCES_DIR})
endif()
######################################################
# Generate style headers based on global list of
# styles registered during package selection
######################################################
set(LAMMPS_STYLE_HEADERS_DIR ${CMAKE_CURRENT_BINARY_DIR}/styles)
GenerateStyleHeaders(${LAMMPS_STYLE_HEADERS_DIR})
include_directories(${LAMMPS_SOURCE_DIR})
include_directories(${LAMMPS_STYLE_HEADERS_DIR})
###########################################
# Actually add executable and lib to build
############################################
add_library(lammps ${LIB_SOURCES})
target_link_libraries(lammps ${LAMMPS_LINK_LIBS})
if(LAMMPS_DEPS)
add_dependencies(lammps ${LAMMPS_DEPS})
endif()
set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LAMMPS_MACHINE})
if(BUILD_SHARED_LIBS)
set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps)
configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_MACHINE}.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_MACHINE}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
endif()
add_executable(lmp ${LMP_SOURCES})
target_link_libraries(lmp lammps)
set_target_properties(lmp PROPERTIES OUTPUT_NAME lmp${LAMMPS_MACHINE})
install(TARGETS lmp DESTINATION ${CMAKE_INSTALL_BINDIR})
if(ENABLE_TESTING)
add_test(ShowHelp lmp${LAMMPS_MACHINE} -help)
endif()
##################################
# Print package summary
##################################
foreach(PKG ${DEFAULT_PACKAGES} ${OTHER_PACKAGES} ${ACCEL_PACKAGES})
if(ENABLE_${PKG})
message(STATUS "Building package: ${PKG}")
endif()
endforeach()
string(TOUPPER "${CMAKE_BUILD_TYPE}" BTYPE)
message(STATUS "<<< Build configuration >>>
Build type ${CMAKE_BUILD_TYPE}
Install path ${CMAKE_INSTALL_PREFIX}
Compilers and Flags:
C++ Compiler ${CMAKE_CXX_COMPILER}
Type ${CMAKE_CXX_COMPILER_ID}
C++ Flags ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${BTYPE}}")
get_property(LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES)
if(LANGUAGES MATCHES ".*Fortran.*")
message(STATUS "Fortran Compiler ${CMAKE_Fortran_COMPILER}
Type ${CMAKE_Fortran_COMPILER_ID}
Fortran Flags ${CMAKE_Fortran_FLAGS} ${CMAKE_Fortran_FLAGS_${BTYPE}}")
endif()
message(STATUS "Linker flags:
Executable ${CMAKE_EXE_LINKER_FLAGS}")
if(BUILD_SHARED_LIBS)
message(STATUS "Shared libries ${CMAKE_SHARED_LINKER_FLAGS}")
else()
message(STATUS "Static libries ${CMAKE_STATIC_LINKER_FLAGS}")
endif()
message(STATUS "Link libraries: ${LAMMPS_LINK_LIBS}")

View File

@ -0,0 +1,22 @@
# - Find fftw2
# Find the native FFTW2 headers and libraries.
#
# FFTW2_INCLUDE_DIRS - where to find fftw2.h, etc.
# FFTW2_LIBRARIES - List of libraries when using fftw2.
# FFTW2_FOUND - True if fftw2 found.
#
find_path(FFTW2_INCLUDE_DIR fftw.h)
find_library(FFTW2_LIBRARY NAMES fftw)
set(FFTW2_LIBRARIES ${FFTW2_LIBRARY})
set(FFTW2_INCLUDE_DIRS ${FFTW2_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set FFTW2_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(FFTW2 DEFAULT_MSG FFTW2_LIBRARY FFTW2_INCLUDE_DIR)
mark_as_advanced(FFTW2_INCLUDE_DIR FFTW2_LIBRARY )

View File

@ -0,0 +1,25 @@
# - Find fftw3
# Find the native FFTW3 headers and libraries.
#
# FFTW3_INCLUDE_DIRS - where to find fftw3.h, etc.
# FFTW3_LIBRARIES - List of libraries when using fftw3.
# FFTW3_FOUND - True if fftw3 found.
#
find_package(PkgConfig)
pkg_check_modules(PC_FFTW3 fftw3)
find_path(FFTW3_INCLUDE_DIR fftw3.h HINTS ${PC_FFTW3_INCLUDE_DIRS})
find_library(FFTW3_LIBRARY NAMES fftw3 HINTS ${PC_FFTW3_LIBRARY_DIRS})
set(FFTW3_LIBRARIES ${FFTW3_LIBRARY})
set(FFTW3_INCLUDE_DIRS ${FFTW3_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set FFTW3_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(FFTW3 DEFAULT_MSG FFTW3_LIBRARY FFTW3_INCLUDE_DIR)
mark_as_advanced(FFTW3_INCLUDE_DIR FFTW3_LIBRARY )

View File

@ -0,0 +1,22 @@
# - Find kim
# Find the native KIM headers and libraries.
#
# KIM_INCLUDE_DIRS - where to find kim.h, etc.
# KIM_LIBRARIES - List of libraries when using kim.
# KIM_FOUND - True if kim found.
#
find_path(KIM_INCLUDE_DIR KIM_API.h PATH_SUFFIXES kim-api-v1)
find_library(KIM_LIBRARY NAMES kim-api-v1)
set(KIM_LIBRARIES ${KIM_LIBRARY})
set(KIM_INCLUDE_DIRS ${KIM_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set KIM_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(KIM DEFAULT_MSG KIM_LIBRARY KIM_INCLUDE_DIR)
mark_as_advanced(KIM_INCLUDE_DIR KIM_LIBRARY )

View File

@ -0,0 +1,18 @@
# - Find latte
# Find the native LATTE libraries.
#
# LATTE_LIBRARIES - List of libraries when using latte.
# LATTE_FOUND - True if latte found.
#
find_library(LATTE_LIBRARY NAMES latte)
set(LATTE_LIBRARIES ${LATTE_LIBRARY})
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set LATTE_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(LATTE DEFAULT_MSG LATTE_LIBRARY)
mark_as_advanced(LATTE_LIBRARY)

View File

@ -0,0 +1,22 @@
# - Find mkl
# Find the native MKL headers and libraries.
#
# MKL_INCLUDE_DIRS - where to find mkl.h, etc.
# MKL_LIBRARIES - List of libraries when using mkl.
# MKL_FOUND - True if mkl found.
#
find_path(MKL_INCLUDE_DIR mkl_dfti.h HINTS $ENV{MKLROOT}/include)
find_library(MKL_LIBRARY NAMES mkl_rt HINTS $ENV{MKLROOT}/lib $ENV{MKLROOT}/lib/intel64)
set(MKL_LIBRARIES ${MKL_LIBRARY})
set(MKL_INCLUDE_DIRS ${MKL_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set MKL_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(MKL DEFAULT_MSG MKL_LIBRARY MKL_INCLUDE_DIR)
mark_as_advanced(MKL_INCLUDE_DIR MKL_LIBRARY )

View File

@ -0,0 +1,118 @@
# - Find NetCDF
# Find the native NetCDF includes and library
#
# NETCDF_INCLUDE_DIR - user modifiable choice of where netcdf headers are
# NETCDF_LIBRARY - user modifiable choice of where netcdf libraries are
#
# Your package can require certain interfaces to be FOUND by setting these
#
# NETCDF_CXX - require the C++ interface and link the C++ library
# NETCDF_F77 - require the F77 interface and link the fortran library
# NETCDF_F90 - require the F90 interface and link the fortran library
#
# Or equivalently by calling FindNetCDF with a COMPONENTS argument containing one or
# more of "CXX;F77;F90".
#
# When interfaces are requested the user has access to interface specific hints:
#
# NETCDF_${LANG}_INCLUDE_DIR - where to search for interface header files
# NETCDF_${LANG}_LIBRARY - where to search for interface libraries
#
# This module returns these variables for the rest of the project to use.
#
# NETCDF_FOUND - True if NetCDF found including required interfaces (see below)
# NETCDF_LIBRARIES - All netcdf related libraries.
# NETCDF_INCLUDE_DIRS - All directories to include.
# NETCDF_HAS_INTERFACES - Whether requested interfaces were found or not.
# NETCDF_${LANG}_INCLUDE_DIRS/NETCDF_${LANG}_LIBRARIES - C/C++/F70/F90 only interface
#
# Normal usage would be:
# set (NETCDF_F90 "YES")
# find_package (NetCDF REQUIRED)
# target_link_libraries (uses_everthing ${NETCDF_LIBRARIES})
# target_link_libraries (only_uses_f90 ${NETCDF_F90_LIBRARIES})
#search starting from user editable cache var
if (NETCDF_INCLUDE_DIR AND NETCDF_LIBRARY)
# Already in cache, be silent
set (NETCDF_FIND_QUIETLY TRUE)
endif ()
set(USE_DEFAULT_PATHS "NO_DEFAULT_PATH")
if(NETCDF_USE_DEFAULT_PATHS)
set(USE_DEFAULT_PATHS "")
endif()
find_path (NETCDF_INCLUDE_DIR netcdf.h
HINTS "${NETCDF_DIR}/include")
mark_as_advanced (NETCDF_INCLUDE_DIR)
set (NETCDF_C_INCLUDE_DIRS ${NETCDF_INCLUDE_DIR})
find_library (NETCDF_LIBRARY NAMES netcdf
HINTS "${NETCDF_DIR}/lib")
mark_as_advanced (NETCDF_LIBRARY)
set (NETCDF_C_LIBRARIES ${NETCDF_LIBRARY})
#start finding requested language components
set (NetCDF_libs "")
set (NetCDF_includes "${NETCDF_INCLUDE_DIR}")
get_filename_component (NetCDF_lib_dirs "${NETCDF_LIBRARY}" PATH)
set (NETCDF_HAS_INTERFACES "YES") # will be set to NO if we're missing any interfaces
macro (NetCDF_check_interface lang header libs)
if (NETCDF_${lang})
#search starting from user modifiable cache var
find_path (NETCDF_${lang}_INCLUDE_DIR NAMES ${header}
HINTS "${NETCDF_INCLUDE_DIR}"
HINTS "${NETCDF_${lang}_ROOT}/include"
${USE_DEFAULT_PATHS})
find_library (NETCDF_${lang}_LIBRARY NAMES ${libs}
HINTS "${NetCDF_lib_dirs}"
HINTS "${NETCDF_${lang}_ROOT}/lib"
${USE_DEFAULT_PATHS})
mark_as_advanced (NETCDF_${lang}_INCLUDE_DIR NETCDF_${lang}_LIBRARY)
#export to internal varS that rest of project can use directly
set (NETCDF_${lang}_LIBRARIES ${NETCDF_${lang}_LIBRARY})
set (NETCDF_${lang}_INCLUDE_DIRS ${NETCDF_${lang}_INCLUDE_DIR})
if (NETCDF_${lang}_INCLUDE_DIR AND NETCDF_${lang}_LIBRARY)
list (APPEND NetCDF_libs ${NETCDF_${lang}_LIBRARY})
list (APPEND NetCDF_includes ${NETCDF_${lang}_INCLUDE_DIR})
else ()
set (NETCDF_HAS_INTERFACES "NO")
message (STATUS "Failed to find NetCDF interface for ${lang}")
endif ()
endif ()
endmacro ()
list (FIND NetCDF_FIND_COMPONENTS "CXX" _nextcomp)
if (_nextcomp GREATER -1)
set (NETCDF_CXX 1)
endif ()
list (FIND NetCDF_FIND_COMPONENTS "F77" _nextcomp)
if (_nextcomp GREATER -1)
set (NETCDF_F77 1)
endif ()
list (FIND NetCDF_FIND_COMPONENTS "F90" _nextcomp)
if (_nextcomp GREATER -1)
set (NETCDF_F90 1)
endif ()
NetCDF_check_interface (CXX netcdfcpp.h netcdf_c++)
NetCDF_check_interface (F77 netcdf.inc netcdff)
NetCDF_check_interface (F90 netcdf.mod netcdff)
#export accumulated results to internal varS that rest of project can depend on
list (APPEND NetCDF_libs "${NETCDF_C_LIBRARIES}")
set (NETCDF_LIBRARIES ${NetCDF_libs})
set (NETCDF_INCLUDE_DIRS ${NetCDF_includes})
# handle the QUIETLY and REQUIRED arguments and set NETCDF_FOUND to TRUE if
# all listed variables are TRUE
include (FindPackageHandleStandardArgs)
find_package_handle_standard_args (NetCDF
DEFAULT_MSG NETCDF_LIBRARIES NETCDF_INCLUDE_DIRS NETCDF_HAS_INTERFACES)

View File

@ -0,0 +1,29 @@
# - Find quantum-espresso
# Find the native QE headers and libraries.
#
# QE_INCLUDE_DIRS - where to find quantum-espresso.h, etc.
# QE_LIBRARIES - List of libraries when using quantum-espresso.
# QE_FOUND - True if quantum-espresso found.
#
find_path(QE_INCLUDE_DIR libqecouple.h PATH_SUFFIXES COUPLE/include)
find_library(QECOUPLE_LIBRARY NAMES qecouple)
find_library(PW_LIBRARY NAMES pw)
find_library(QEMOD_LIBRARY NAMES qemod)
find_library(QEFFT_LIBRARY NAMES qefft)
find_library(QELA_LIBRARY NAMES qela)
find_library(CLIB_LIBRARY NAMES clib)
find_library(IOTK_LIBRARY NAMES iotk)
set(QE_LIBRARIES ${QECOUPLE_LIBRARY} ${PW_LIBRARY} ${QEMOD_LIBRARY} ${QEFFT_LIBRARY} ${QELA_LIBRARY} ${CLIB_LIBRARY} ${IOTK_LIBRARY})
set(QE_INCLUDE_DIRS ${QE_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set QE_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(QE DEFAULT_MSG QECOUPLE_LIBRARY PW_LIBRARY QEMOD_LIBRARY QEFFT_LIBRARY QELA_LIBRARY CLIB_LIBRARY IOTK_LIBRARY QE_INCLUDE_DIR)
mark_as_advanced(QE_INCLUDE_DIR QECOUPLE_LIBRARY PW_LIBRARY QEMOD_LIBRARY QEFFT_LIBRARY QELA_LIBRARY CLIB_LIBRARY IOTK_LIBRARY)

View File

@ -0,0 +1,18 @@
# - Find quip
# Find the native QUIP libraries.
#
# QUIP_LIBRARIES - List of libraries when using fftw3.
# QUIP_FOUND - True if fftw3 found.
#
find_library(QUIP_LIBRARY NAMES quip)
set(QUIP_LIBRARIES ${QUIP_LIBRARY})
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set QUIP_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(QUIP DEFAULT_MSG QUIP_LIBRARY)
mark_as_advanced(QUIP_LIBRARY)

View File

@ -0,0 +1,22 @@
# - Find voro++
# Find the native VORO headers and libraries.
#
# VORO_INCLUDE_DIRS - where to find voro++.hh, etc.
# VORO_LIBRARIES - List of libraries when using voro++.
# VORO_FOUND - True if voro++ found.
#
find_path(VORO_INCLUDE_DIR voro++.hh PATH_SUFFIXES voro++)
find_library(VORO_LIBRARY NAMES voro++)
set(VORO_LIBRARIES ${VORO_LIBRARY})
set(VORO_INCLUDE_DIRS ${VORO_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set VORO_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(VORO DEFAULT_MSG VORO_LIBRARY VORO_INCLUDE_DIR)
mark_as_advanced(VORO_INCLUDE_DIR VORO_LIBRARY )

View File

@ -0,0 +1,18 @@
function(GenerateOpenCLHeader varname outfile files)
message("Creating ${outfile}...")
file(WRITE ${outfile} "const char * ${varname} = \n")
math(EXPR ARG_END "${ARGC}-1")
foreach(IDX RANGE 2 ${ARG_END})
list(GET ARGV ${IDX} filename)
file(READ ${filename} content)
string(REGEX REPLACE "\\s*//[^\n]*\n" "" content "${content}")
string(REGEX REPLACE "\\\\" "\\\\\\\\" content "${content}")
string(REGEX REPLACE "\"" "\\\\\"" content "${content}")
string(REGEX REPLACE "([^\n]+)\n" "\"\\1\\\\n\"\n" content "${content}")
string(REGEX REPLACE "\n+" "\n" content "${content}")
file(APPEND ${outfile} "${content}")
endforeach()
file(APPEND ${outfile} ";\n")
endfunction(GenerateOpenCLHeader)

View File

@ -0,0 +1,161 @@
function(FindStyleHeaders path style_class file_pattern headers)
file(GLOB files "${path}/${file_pattern}*.h")
get_property(hlist GLOBAL PROPERTY ${headers})
foreach(file_name ${files})
file(STRINGS ${file_name} is_style LIMIT_COUNT 1 REGEX ${style_class})
if(is_style)
list(APPEND hlist ${file_name})
endif()
endforeach()
set_property(GLOBAL PROPERTY ${headers} "${hlist}")
endfunction(FindStyleHeaders)
function(FindStyleHeadersExt path style_class extension headers sources)
get_property(hlist GLOBAL PROPERTY ${headers})
get_property(slist GLOBAL PROPERTY ${sources})
set(ext_list)
get_filename_component(abs_path "${path}" ABSOLUTE)
foreach(file_name ${hlist})
get_filename_component(basename ${file_name} NAME_WE)
set(ext_file_name "${abs_path}/${basename}_${extension}.h")
if(EXISTS "${ext_file_name}")
file(STRINGS ${ext_file_name} is_style LIMIT_COUNT 1 REGEX ${style_class})
if(is_style)
list(APPEND ext_list ${ext_file_name})
set(source_file_name "${abs_path}/${basename}_${extension}.cpp")
if(EXISTS "${source_file_name}")
list(APPEND slist ${source_file_name})
endif()
endif()
endif()
endforeach()
list(APPEND hlist ${ext_list})
set_property(GLOBAL PROPERTY ${headers} "${hlist}")
set_property(GLOBAL PROPERTY ${sources} "${slist}")
endfunction(FindStyleHeadersExt)
function(CreateStyleHeader path filename)
math(EXPR N "${ARGC}-2")
set(temp "")
if(N GREATER 0)
math(EXPR ARG_END "${ARGC}-1")
foreach(IDX RANGE 2 ${ARG_END})
list(GET ARGV ${IDX} FNAME)
get_filename_component(FNAME ${FNAME} NAME)
set(temp "${temp}#include \"${FNAME}\"\n")
endforeach()
endif()
message(STATUS "Generating ${filename}...")
file(WRITE "${path}/${filename}.tmp" "${temp}" )
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${path}/${filename}.tmp" "${path}/${filename}")
endfunction(CreateStyleHeader)
function(GenerateStyleHeader path property style)
get_property(files GLOBAL PROPERTY ${property})
#message("${property} = ${files}")
CreateStyleHeader("${path}" "style_${style}.h" ${files})
endfunction(GenerateStyleHeader)
function(RegisterStyles search_path)
FindStyleHeaders(${search_path} ANGLE_CLASS angle_ ANGLE ) # angle ) # force
FindStyleHeaders(${search_path} ATOM_CLASS atom_vec_ ATOM_VEC ) # atom ) # atom atom_vec_hybrid
FindStyleHeaders(${search_path} BODY_CLASS body_ BODY ) # body ) # atom_vec_body
FindStyleHeaders(${search_path} BOND_CLASS bond_ BOND ) # bond ) # force
FindStyleHeaders(${search_path} COMMAND_CLASS "" COMMAND ) # command ) # input
FindStyleHeaders(${search_path} COMPUTE_CLASS compute_ COMPUTE ) # compute ) # modify
FindStyleHeaders(${search_path} DIHEDRAL_CLASS dihedral_ DIHEDRAL ) # dihedral ) # force
FindStyleHeaders(${search_path} DUMP_CLASS dump_ DUMP ) # dump ) # output write_dump
FindStyleHeaders(${search_path} FIX_CLASS fix_ FIX ) # fix ) # modify
FindStyleHeaders(${search_path} IMPROPER_CLASS improper_ IMPROPER ) # improper ) # force
FindStyleHeaders(${search_path} INTEGRATE_CLASS "" INTEGRATE ) # integrate ) # update
FindStyleHeaders(${search_path} KSPACE_CLASS "" KSPACE ) # kspace ) # force
FindStyleHeaders(${search_path} MINIMIZE_CLASS min_ MINIMIZE ) # minimize ) # update
FindStyleHeaders(${search_path} NBIN_CLASS nbin_ NBIN ) # nbin ) # neighbor
FindStyleHeaders(${search_path} NPAIR_CLASS npair_ NPAIR ) # npair ) # neighbor
FindStyleHeaders(${search_path} NSTENCIL_CLASS nstencil_ NSTENCIL ) # nstencil ) # neighbor
FindStyleHeaders(${search_path} NTOPO_CLASS ntopo_ NTOPO ) # ntopo ) # neighbor
FindStyleHeaders(${search_path} PAIR_CLASS pair_ PAIR ) # pair ) # force
FindStyleHeaders(${search_path} READER_CLASS reader_ READER ) # reader ) # read_dump
FindStyleHeaders(${search_path} REGION_CLASS region_ REGION ) # region ) # domain
endfunction(RegisterStyles)
function(RemovePackageHeader headers pkg_header)
get_property(hlist GLOBAL PROPERTY ${headers})
list(REMOVE_ITEM hlist ${pkg_header})
set_property(GLOBAL PROPERTY ${headers} "${hlist}")
endfunction(RemovePackageHeader)
function(DetectAndRemovePackageHeader fname)
RemovePackageHeader(ANGLE ${fname})
RemovePackageHeader(ATOM_VEC ${fname})
RemovePackageHeader(BODY ${fname})
RemovePackageHeader(BOND ${fname})
RemovePackageHeader(COMMAND ${fname})
RemovePackageHeader(COMPUTE ${fname})
RemovePackageHeader(DIHEDRAL ${fname})
RemovePackageHeader(DUMP ${fname})
RemovePackageHeader(FIX ${fname})
RemovePackageHeader(IMPROPER ${fname})
RemovePackageHeader(INTEGRATE ${fname})
RemovePackageHeader(KSPACE ${fname})
RemovePackageHeader(MINIMIZE ${fname})
RemovePackageHeader(NBIN ${fname})
RemovePackageHeader(NPAIR ${fname})
RemovePackageHeader(NSTENCIL ${fname})
RemovePackageHeader(NTOPO ${fname})
RemovePackageHeader(PAIR ${fname})
RemovePackageHeader(READER ${fname})
RemovePackageHeader(REGION ${fname})
endfunction(DetectAndRemovePackageHeader)
function(RegisterStylesExt search_path extension sources)
FindStyleHeadersExt(${search_path} ANGLE_CLASS ${extension} ANGLE ${sources})
FindStyleHeadersExt(${search_path} ATOM_CLASS ${extension} ATOM_VEC ${sources})
FindStyleHeadersExt(${search_path} BODY_CLASS ${extension} BODY ${sources})
FindStyleHeadersExt(${search_path} BOND_CLASS ${extension} BOND ${sources})
FindStyleHeadersExt(${search_path} COMMAND_CLASS ${extension} COMMAND ${sources})
FindStyleHeadersExt(${search_path} COMPUTE_CLASS ${extension} COMPUTE ${sources})
FindStyleHeadersExt(${search_path} DIHEDRAL_CLASS ${extension} DIHEDRAL ${sources})
FindStyleHeadersExt(${search_path} DUMP_CLASS ${extension} DUMP ${sources})
FindStyleHeadersExt(${search_path} FIX_CLASS ${extension} FIX ${sources})
FindStyleHeadersExt(${search_path} IMPROPER_CLASS ${extension} IMPROPER ${sources})
FindStyleHeadersExt(${search_path} INTEGRATE_CLASS ${extension} INTEGRATE ${sources})
FindStyleHeadersExt(${search_path} KSPACE_CLASS ${extension} KSPACE ${sources})
FindStyleHeadersExt(${search_path} MINIMIZE_CLASS ${extension} MINIMIZE ${sources})
FindStyleHeadersExt(${search_path} NBIN_CLASS ${extension} NBIN ${sources})
FindStyleHeadersExt(${search_path} NPAIR_CLASS ${extension} NPAIR ${sources})
FindStyleHeadersExt(${search_path} NSTENCIL_CLASS ${extension} NSTENCIL ${sources})
FindStyleHeadersExt(${search_path} NTOPO_CLASS ${extension} NTOPO ${sources})
FindStyleHeadersExt(${search_path} PAIR_CLASS ${extension} PAIR ${sources})
FindStyleHeadersExt(${search_path} READER_CLASS ${extension} READER ${sources})
FindStyleHeadersExt(${search_path} REGION_CLASS ${extension} REGION ${sources})
endfunction(RegisterStylesExt)
function(GenerateStyleHeaders output_path)
GenerateStyleHeader(${output_path} ANGLE angle ) # force
GenerateStyleHeader(${output_path} ATOM_VEC atom ) # atom atom_vec_hybrid
GenerateStyleHeader(${output_path} BODY body ) # atom_vec_body
GenerateStyleHeader(${output_path} BOND bond ) # force
GenerateStyleHeader(${output_path} COMMAND command ) # input
GenerateStyleHeader(${output_path} COMPUTE compute ) # modify
GenerateStyleHeader(${output_path} DIHEDRAL dihedral ) # force
GenerateStyleHeader(${output_path} DUMP dump ) # output write_dump
GenerateStyleHeader(${output_path} FIX fix ) # modify
GenerateStyleHeader(${output_path} IMPROPER improper ) # force
GenerateStyleHeader(${output_path} INTEGRATE integrate ) # update
GenerateStyleHeader(${output_path} KSPACE kspace ) # force
GenerateStyleHeader(${output_path} MINIMIZE minimize ) # update
GenerateStyleHeader(${output_path} NBIN nbin ) # neighbor
GenerateStyleHeader(${output_path} NPAIR npair ) # neighbor
GenerateStyleHeader(${output_path} NSTENCIL nstencil ) # neighbor
GenerateStyleHeader(${output_path} NTOPO ntopo ) # neighbor
GenerateStyleHeader(${output_path} PAIR pair ) # force
GenerateStyleHeader(${output_path} READER reader ) # read_dump
GenerateStyleHeader(${output_path} REGION region ) # domain
endfunction(GenerateStyleHeaders)

19
cmake/README.md Normal file
View File

@ -0,0 +1,19 @@
cmake-buildsystem
-----------------
To use the cmake build system instead of the make-driven one, do:
```
cmake /path/to/lammps/source/cmake
```
(please note the cmake directory as the very end)
To enable package, e.g. GPU do
```
cmake /path/to/lammps/source/cmake -DENABLE_GPU=ON
```
cmake has many many options, do get an overview use the curses-based cmake interface, ccmake:
```
ccmake /path/to/lammps/source/cmake
```
(Don't forget to press "g" for generate once you are done with configuring)

4
cmake/gpu/lal_pppm_d.cu Normal file
View File

@ -0,0 +1,4 @@
#define grdtyp double
#define grdtyp4 double4
#include "lal_pppm.cu"

4
cmake/gpu/lal_pppm_f.cu Normal file
View File

@ -0,0 +1,4 @@
#define grdtyp float
#define grdtyp4 float4
#include "lal_pppm.cu"

View File

@ -0,0 +1,18 @@
# pkg-config file for lammps
# https://people.freedesktop.org/~dbn/pkg-config-guide.html
# Usage: cc `pkg-config --cflags --libs liblammps` -o myapp myapp.c
# after you added @CMAKE_INSTALL_FULL_LIBDIR@/pkg-config to PKG_CONFIG_PATH,
# e.g. export PKG_CONFIG_PATH=@CMAKE_INSTALL_FULL_LIBDIR@/pkgconfig
prefix=@CMAKE_INSTALL_FULL_PREFIX@
libdir=@CMAKE_INSTALL_FULL_LIBDIR@
includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
Name: liblammps@LAMMPS_MACHINE@
Description: Large-scale Atomic/Molecular Massively Parallel Simulator Library
URL: http://lammps.sandia.gov
Version:
Requires:
Libs: -L${libdir} -llammps@LAMMPS_MACHINE@
Libs.private: -lm
Cflags: -I${includedir} @LAMMPS_API_DEFINES@

BIN
doc/src/Eqs/bond_gromos.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,10 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
$$
E = K (r^2 - r_0^2)^2
$$
\end{document}

BIN
doc/src/Eqs/fix_mvv_dpd.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -0,0 +1,21 @@
\documentclass[12pt]{article}
\begin{document}
$$
v(t+\frac{\Delta t}{2}) = v(t) + \frac{\Delta t}{2}\cdot a(t),
$$
$$
r(t+\Delta t) = r(t) + \Delta t\cdot v(t+\frac{\Delta t}{2}),
$$
$$
a(t+\Delta t) = \frac{1}{m}\cdot F\left[ r(t+\Delta t), v(t) +\lambda \cdot \Delta t\cdot a(t)\right],
$$
$$
v(t+\Delta t) = v(t+\frac{\Delta t}{2}) + \frac{\Delta t}{2}\cdot a(t+\Delta t)
$$
\end{document}

BIN
doc/src/Eqs/fix_rhok.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

11
doc/src/Eqs/fix_rhok.tex Normal file
View File

@ -0,0 +1,11 @@
\documentclass[12pt]{article}
\begin{document}
\begin{eqnarray*}
U &=& \frac{1}{2} K (|\rho_{\vec{k}}| - a)^2 \\
\rho_{\vec{k}} &=& \sum_j^N \exp(-i\vec{k} \cdot \vec{r}_j )/\sqrt{N} \\
\vec{k} &=& (2\pi n_x /L_x , 2\pi n_y /L_y , 2\pi n_z/L_z )
\end{eqnarray*}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

View File

@ -0,0 +1,10 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = \epsilon \left[ \frac{2 \sigma_{LJ}^{12} \left(7 r^5+14 r^3 \sigma_{n}^2+3 r \sigma_{n}^4\right) }{945 \left(r^2-\sigma_{n}^2\right)^7} -\frac{ \sigma_{LJ}^6 \left(2 r \sigma_{n}^3+\sigma_{n}^2 \left(r^2-\sigma_{n}^2\right)\log{ \left[\frac{r-\sigma_{n}}{r+\sigma_{n}}\right]}\right) }{12 \sigma_{n}^5 \left(r^2-\sigma_{n}^2\right)} \right]\qquad \sigma_n < r < r_c
$$
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -0,0 +1,33 @@
\documentclass[12pt]{article}
\begin{document}
$$
\mathbf{F}_{ij}^{C} = \alpha_{ij}{\omega_{C}}(r_{ij})\mathbf{e}_{ij},
$$
$$
\mathbf{F}_{ij}^{D} = -\gamma {\omega_{D}}(r_{ij})(\mathbf{e}_{ij} \cdot \mathbf{v}_{ij})\mathbf{e}_{ij},
$$
$$
\mathbf{F}_{ij}^{R} = \sigma {\omega_{R}}(r_{ij}){\xi_{ij}}\Delta t^{-1/2} \mathbf{e}_{ij},
$$
$$
\omega_{C}(r) = 1 - r/r_c,
$$
$$
\alpha_{ij} = A\cdot k_B(T_i + T_j)/2,
$$
$$
\omega_{D}(r) = \omega^2_{R}(r) = (1-r/r_c)^s,
$$
$$
\sigma_{ij}^2 = 4\gamma k_B T_i T_j/(T_i + T_j),
$$
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -0,0 +1,15 @@
\documentclass[12pt]{article}
\begin{document}
$$
\frac{\mathrm{d}^2 \mathbf{r}_i}{\mathrm{d} t^2}=
\frac{\mathrm{d} \mathbf{v}_i}{\mathrm{d} t}
=\mathbf{F}_{i}=\sum_{i\neq j}(\mathbf{F}_{ij}^{C}+\mathbf{F}_{ij}^{D}+\mathbf{F}_{ij}^{R}),
$$
$$
C_v\frac{\mathrm{d} T_i}{\mathrm{d} t}= q_{i} = \sum_{i\neq j}(q_{ij}^{C}+q_{ij}^{V}+q_{ij}^{R}),
$$
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -0,0 +1,29 @@
\documentclass[12pt]{article}
\begin{document}
$$
q_i^C = \sum_{j \ne i} k_{ij} \omega_{CT}(r_{ij}) \left( \frac{1}{T_i} - \frac{1}{T_j} \right),
$$
$$
q_i^V = \frac{1}{2 C_v}\sum_{j \ne i}{ \left\{ \omega_D(r_{ij})\left[\gamma_{ij} \left( \mathbf{e}_{ij} \cdot \mathbf{v}_{ij} \right)^2 - \frac{\left( \sigma _{ij} \right)^2}{m}\right] - \sigma _{ij} \omega_R(r_{ij})\left( \mathbf{e}_{ij} \cdot \mathbf{v}_{ij} \right){\xi_{ij}} \right\} },
$$
$$
q_i^R = \sum_{j \ne i} \beta _{ij} \omega_{RT}(r_{ij}) d {t^{ - 1/2}} \xi_{ij}^e,
$$
$$
\omega_{CT}(r)=\omega_{RT}^2(r)=\left(1-r/r_{ct}\right)^{s_T},
$$
$$
k_{ij}=C_v^2\kappa(T_i + T_j)^2/4k_B,
$$
$$
\beta_{ij}^2=2k_Bk_{ij},
$$
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -0,0 +1,9 @@
\documentclass[12pt]{article}
\begin{document}
$$
\kappa = \frac{315k_B\upsilon }{2\pi \rho C_v r_{ct}^5}\frac{1}{Pr},
$$
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,17 @@
\documentclass[12pt]{article}
\begin{document}
$$
\mathbf{F}_{ij}^C = Aw_c(r_{ij})\mathbf{e}_{ij} + B(\rho_i+\rho_j)w_d(r_{ij})\mathbf{e}_{ij},
$$
$$
\mathbf{F}_{ij}^{D} = -\gamma {\omega_{D}}(r_{ij})(\mathbf{e}_{ij} \cdot \mathbf{v}_{ij})\mathbf{e}_{ij},
$$
$$
\mathbf{F}_{ij}^{R} = \sigma {\omega_{R}}(r_{ij}){\xi_{ij}}\Delta t^{-1/2} \mathbf{e}_{ij},
$$
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -0,0 +1,21 @@
\documentclass[12pt]{article}
\begin{document}
$$
Q_{ij}^D = -\kappa_{ij} w_{DC}(r_{ij}) \left( C_i - C_j \right),
$$
$$
Q_{ij}^R = \epsilon_{ij}\left( C_i + C_j \right) w_{RC}(r_{ij}) \xi_{ij},
$$
$$
w_{DC}(r_{ij})=w^2_{RC}(r_{ij}) = (1 - r/r_{cc})^{\rm power\_{cc}},
$$
$$
\epsilon_{ij}^2 = m_s^2\kappa_{ij}\rho,
$$
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -0,0 +1,29 @@
\documentclass[12pt]{article}
\begin{document}
$$
\mathbf{F}_{ij}^{C} = A{\omega_{C}}(r_{ij})\mathbf{e}_{ij},
$$
$$
\mathbf{F}_{ij}^{D} = -\gamma {\omega_{D}}(r_{ij})(\mathbf{e}_{ij} \cdot \mathbf{v}_{ij})\mathbf{e}_{ij},
$$
$$
\mathbf{F}_{ij}^{R} = \sigma {\omega_{R}}(r_{ij}){\xi_{ij}}\Delta t^{-1/2} \mathbf{e}_{ij},
$$
$$
\omega_{C}(r) = 1 - r/r_c,
$$
$$
\omega_{D}(r) = \omega^2_{R}(r) = (1-r/r_c)^{\rm power\_f},
$$
$$
\sigma^2 = 2\gamma k_B T,
$$
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,13 @@
\documentclass[12pt]{article}
\begin{document}
$$
\frac{\mathrm{d}^2 \mathbf{r}_i}{\mathrm{d} t^2} = \frac{\mathrm{d} \mathbf{v}_i}{\mathrm{d} t}=\mathbf{F}_{i}=\sum_{i\neq j}(\mathbf{F}_{ij}^{C}+\mathbf{F}_{ij}^{D}+\mathbf{F}_{ij}^{R}),
$$
$$
\frac{\mathrm{d} C_{i}}{\mathrm{d} t}= Q_{i} = \sum_{i\neq j}(Q_{ij}^{D}+Q_{ij}^{R}) + Q_{i}^{S},
$$
\end{document}

BIN
doc/src/JPG/bow_tutorial_01.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
doc/src/JPG/bow_tutorial_02.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
doc/src/JPG/bow_tutorial_03.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
doc/src/JPG/bow_tutorial_04.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
doc/src/JPG/bow_tutorial_05.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
doc/src/JPG/bow_tutorial_06.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
doc/src/JPG/bow_tutorial_07.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

BIN
doc/src/JPG/bow_tutorial_08.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
doc/src/JPG/bow_tutorial_09.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
doc/src/JPG/bow_tutorial_10.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 895 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
doc/src/JPG/uef_frames.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -1,7 +1,7 @@
<!-- HTML_ONLY -->
<HEAD>
<TITLE>LAMMPS Users Manual</TITLE>
<META NAME="docnumber" CONTENT="23 Jun 2017 version">
<META NAME="docnumber" CONTENT="23 Oct 2017 version">
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
</HEAD>
@ -21,7 +21,7 @@
<H1></H1>
LAMMPS Documentation :c,h3
23 Jun 2017 version :c,h4
23 Oct 2017 version :c,h4
Version info: :h4
@ -79,7 +79,7 @@ bug reports and feature requests are mainly coordinated through the
"LAMMPS project on GitHub."_https://github.com/lammps/lammps
The lammps.org domain, currently hosting "public continuous integration
testing"_https://ci.lammps.org/job/lammps/ and "precompiled Linux
RPM and Windows installer packages"_http://rpm.lammps.org is located
RPM and Windows installer packages"_http://packages.lammps.org is located
at Temple University and managed by Richard Berger,
richard.berger at temple.edu.
@ -261,7 +261,6 @@ END_RST -->
:link(start_6,Section_start.html#start_6)
:link(start_7,Section_start.html#start_7)
:link(start_8,Section_start.html#start_8)
:link(start_9,Section_start.html#start_9)
:link(cmd_1,Section_commands.html#cmd_1)
:link(cmd_2,Section_commands.html#cmd_2)

Binary file not shown.

View File

@ -56,7 +56,7 @@ timings; you can simply extrapolate from short runs.
For the set of runs, look at the timing data printed to the screen and
log file at the end of each LAMMPS run. "This
section"_Section_start.html#start_8 of the manual has an overview.
section"_Section_start.html#start_7 of the manual has an overview.
Running on one (or a few processors) should give a good estimate of
the serial performance and what portions of the timestep are taking
@ -226,16 +226,16 @@ re-build LAMMPS |
make machine |
prepare and test a regular LAMMPS simulation |
lmp_machine -in in.script; mpirun -np 32 lmp_machine -in in.script |
enable specific accelerator support via '-k on' "command-line switch"_Section_start.html#start_7, |
enable specific accelerator support via '-k on' "command-line switch"_Section_start.html#start_6, |
only needed for KOKKOS package |
set any needed options for the package via "-pk" "command-line switch"_Section_start.html#start_7 or "package"_package.html command, |
set any needed options for the package via "-pk" "command-line switch"_Section_start.html#start_6 or "package"_package.html command, |
only if defaults need to be changed |
use accelerated styles in your input via "-sf" "command-line switch"_Section_start.html#start_7 or "suffix"_suffix.html command | lmp_machine -in in.script -sf gpu
use accelerated styles in your input via "-sf" "command-line switch"_Section_start.html#start_6 or "suffix"_suffix.html command | lmp_machine -in in.script -sf gpu
:tb(c=2,s=|)
Note that the first 4 steps can be done as a single command, using the
src/Make.py tool. This tool is discussed in "Section
2.4"_Section_start.html#start_4 of the manual, and its use is
Note that the first 4 steps can be done as a single command with
suitable make command invocations. This is discussed in "Section
4"_Section_packages.html of the manual, and its use is
illustrated in the individual accelerator sections. Typically these
steps only need to be done once, to create an executable that uses one
or more accelerator packages.

View File

@ -532,7 +532,8 @@ package"_Section_start.html#start_3.
"dump vtk"_dump_vtk.html,
"group2ndx"_group2ndx.html,
"ndx2group"_group2ndx.html,
"temper/grem"_temper_grem.html :tb(c=3,ea=c)
"temper/grem"_temper_grem.html,
"temper/npt"_temper_npt.html :tb(c=3,ea=c)
:line
@ -579,6 +580,7 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.
"halt"_fix_halt.html,
"heat"_fix_heat.html,
"indent"_fix_indent.html,
"latte"_fix_latte.html,
"langevin (k)"_fix_langevin.html,
"lineforce"_fix_lineforce.html,
"momentum (k)"_fix_momentum.html,
@ -685,6 +687,7 @@ package"_Section_start.html#start_3.
"drude"_fix_drude.html,
"drude/transform/direct"_fix_drude_transform.html,
"drude/transform/reverse"_fix_drude_transform.html,
"edpd/source"_fix_dpd_source.html,
"eos/cv"_fix_eos_cv.html,
"eos/table"_fix_eos_table.html,
"eos/table/rx"_fix_eos_table_rx.html,
@ -704,6 +707,9 @@ package"_Section_start.html#start_3.
"meso"_fix_meso.html,
"manifoldforce"_fix_manifoldforce.html,
"meso/stationary"_fix_meso_stationary.html,
"mvv/dpd"_fix_mvv_dpd.html,
"mvv/edpd"_fix_mvv_dpd.html,
"mvv/tdpd"_fix_mvv_dpd.html,
"nve/dot"_fix_nve_dot.html,
"nve/dotc/langevin"_fix_nve_dotc_langevin.html,
"nve/manifold/rattle"_fix_nve_manifold_rattle.html,
@ -714,6 +720,8 @@ package"_Section_start.html#start_3.
"nve/eff"_fix_nve_eff.html,
"nvt/eff"_fix_nh_eff.html,
"nvt/sllod/eff"_fix_nvt_sllod_eff.html,
"npt/uef"_fix_nh_uef.html,
"nvt/uef"_fix_nh_uef.html,
"phonon"_fix_phonon.html,
"pimd"_fix_pimd.html,
"qbmsst"_fix_qbmsst.html,
@ -722,6 +730,7 @@ package"_Section_start.html#start_3.
"qtb"_fix_qtb.html,
"reax/c/bonds"_fix_reax_bonds.html,
"reax/c/species"_fix_reaxc_species.html,
"rhok"_fix_rhok.html,
"rx"_fix_rx.html,
"saed/vtk"_fix_saed_vtk.html,
"shardlow"_fix_shardlow.html,
@ -732,9 +741,12 @@ package"_Section_start.html#start_3.
"smd/move/triangulated/surface"_fix_smd_move_triangulated_surface.html,
"smd/setvel"_fix_smd_setvel.html,
"smd/wall/surface"_fix_smd_wall_surface.html,
"tdpd/source"_fix_dpd_source.html,
"temp/rescale/eff"_fix_temp_rescale_eff.html,
"ti/spring"_fix_ti_spring.html,
"ttm/mod"_fix_ttm.html :tb(c=6,ea=c)
"ttm/mod"_fix_ttm.html,
"wall/ees"_fix_wall_ees.html,
"wall/region/ees"_fix_wall_ees.html :tb(c=6,ea=c)
:line
@ -748,6 +760,7 @@ package"_Section_accelerate.html. This is indicated by additional
letters in parenthesis: g = GPU, i = USER-INTEL, k =
KOKKOS, o = USER-OMP, t = OPT.
"aggregate/atom"_compute_cluster_atom.html,
"angle"_compute_angle.html,
"angle/local"_compute_angle_local.html,
"angmom/chunk"_compute_angmom_chunk.html,
@ -773,6 +786,7 @@ KOKKOS, o = USER-OMP, t = OPT.
"erotate/sphere"_compute_erotate_sphere.html,
"erotate/sphere/atom"_compute_erotate_sphere_atom.html,
"event/displace"_compute_event_displace.html,
"fragment/atom"_compute_cluster_atom.html,
"global/atom"_compute_global_atom.html,
"group/group"_compute_group_group.html,
"gyration"_compute_gyration.html,
@ -834,6 +848,7 @@ package"_Section_start.html#start_3.
"cnp/atom"_compute_cnp_atom.html,
"dpd"_compute_dpd.html,
"dpd/atom"_compute_dpd_atom.html,
"edpd/temp/atom"_compute_edpd_temp_atom.html,
"fep"_compute_fep.html,
"force/tally"_compute_tally.html,
"heat/flux/tally"_compute_tally.html,
@ -844,6 +859,7 @@ package"_Section_start.html#start_3.
"meso/t/atom"_compute_meso_t_atom.html,
"pe/tally"_compute_tally.html,
"pe/mol/tally"_compute_tally.html,
"pressure/uef"_compute_pressure_uef.html,
"saed"_compute_saed.html,
"smd/contact/radius"_compute_smd_contact_radius.html,
"smd/damage"_compute_smd_damage.html,
@ -866,11 +882,13 @@ package"_Section_start.html#start_3.
"smd/ulsph/stress"_compute_smd_ulsph_stress.html,
"smd/vol"_compute_smd_vol.html,
"stress/tally"_compute_tally.html,
"tdpd/cc/atom"_compute_tdpd_cc_atom.html,
"temp/drude"_compute_temp_drude.html,
"temp/eff"_compute_temp_eff.html,
"temp/deform/eff"_compute_temp_deform_eff.html,
"temp/region/eff"_compute_temp_region_eff.html,
"temp/rotate"_compute_temp_rotate.html,
"temp/uef"_compute_temp_uef.html,
"xrd"_compute_xrd.html :tb(c=6,ea=c)
:line
@ -890,8 +908,8 @@ KOKKOS, o = USER-OMP, t = OPT.
"hybrid"_pair_hybrid.html,
"hybrid/overlay"_pair_hybrid.html,
"adp (o)"_pair_adp.html,
"airebo (o)"_pair_airebo.html,
"airebo/morse (o)"_pair_airebo.html,
"airebo (oi)"_pair_airebo.html,
"airebo/morse (oi)"_pair_airebo.html,
"beck (go)"_pair_beck.html,
"body"_pair_body.html,
"bop"_pair_bop.html,
@ -902,11 +920,12 @@ KOKKOS, o = USER-OMP, t = OPT.
"born/coul/long/cs"_pair_born.html,
"born/coul/msm (o)"_pair_born.html,
"born/coul/wolf (go)"_pair_born.html,
"born/coul/wolf/cs"_pair_born.html,
"brownian (o)"_pair_brownian.html,
"brownian/poly (o)"_pair_brownian.html,
"buck (gkio)"_pair_buck.html,
"buck/coul/cut (gkio)"_pair_buck.html,
"buck/coul/long (gkio)"_pair_buck.html,
"buck (giko)"_pair_buck.html,
"buck/coul/cut (giko)"_pair_buck.html,
"buck/coul/long (giko)"_pair_buck.html,
"buck/coul/long/cs"_pair_buck.html,
"buck/coul/msm (o)"_pair_buck.html,
"buck/long/coul/long (o)"_pair_buck_long.html,
@ -921,12 +940,13 @@ KOKKOS, o = USER-OMP, t = OPT.
"coul/msm"_pair_coul.html,
"coul/streitz"_pair_coul.html,
"coul/wolf (ko)"_pair_coul.html,
"dpd (go)"_pair_dpd.html,
"coul/wolf/cs"_pair_coul.html,
"dpd (gio)"_pair_dpd.html,
"dpd/tstat (go)"_pair_dpd.html,
"dsmc"_pair_dsmc.html,
"eam (gkiot)"_pair_eam.html,
"eam/alloy (gkot)"_pair_eam.html,
"eam/fs (gkot)"_pair_eam.html,
"eam (gikot)"_pair_eam.html,
"eam/alloy (gikot)"_pair_eam.html,
"eam/fs (gikot)"_pair_eam.html,
"eim (o)"_pair_eim.html,
"gauss (go)"_pair_gauss.html,
"gayberne (gio)"_pair_gayberne.html,
@ -940,7 +960,7 @@ KOKKOS, o = USER-OMP, t = OPT.
"kim"_pair_kim.html,
"lcbop"_pair_lcbop.html,
"line/lj"_pair_line_lj.html,
"lj/charmm/coul/charmm (ko)"_pair_charmm.html,
"lj/charmm/coul/charmm (iko)"_pair_charmm.html,
"lj/charmm/coul/charmm/implicit (ko)"_pair_charmm.html,
"lj/charmm/coul/long (giko)"_pair_charmm.html,
"lj/charmm/coul/msm"_pair_charmm.html,
@ -988,13 +1008,13 @@ KOKKOS, o = USER-OMP, t = OPT.
"polymorphic"_pair_polymorphic.html,
"python"_pair_python.html,
"reax"_pair_reax.html,
"rebo (o)"_pair_airebo.html,
"rebo (oi)"_pair_airebo.html,
"resquared (go)"_pair_resquared.html,
"snap"_pair_snap.html,
"soft (go)"_pair_soft.html,
"sw (gkio)"_pair_sw.html,
"sw (giko)"_pair_sw.html,
"table (gko)"_pair_table.html,
"tersoff (gkio)"_pair_tersoff.html,
"tersoff (giko)"_pair_tersoff.html,
"tersoff/mod (gko)"_pair_tersoff_mod.html,
"tersoff/mod/c (o)"_pair_tersoff_mod.html,
"tersoff/zbl (gko)"_pair_tersoff_zbl.html,
@ -1022,6 +1042,7 @@ package"_Section_start.html#start_3.
"eam/cd (o)"_pair_eam.html,
"edip (o)"_pair_edip.html,
"edip/multi"_pair_edip.html,
"edpd"_pair_meso.html,
"eff/cut"_pair_eff.html,
"exp6/rx"_pair_exp6_rx.html,
"gauss/cut"_pair_gauss.html,
@ -1039,6 +1060,9 @@ package"_Section_start.html#start_3.
"lj/sdk (gko)"_pair_sdk.html,
"lj/sdk/coul/long (go)"_pair_sdk.html,
"lj/sdk/coul/msm (o)"_pair_sdk.html,
"mdpd"_pair_meso.html,
"mdpd/rhosum"_pair_meso.html,
"meam/c"_pair_meam.html,
"meam/spline (o)"_pair_meam_spline.html,
"meam/sw/spline"_pair_meam_sw_spline.html,
"mgpt"_pair_mgpt.html,
@ -1071,6 +1095,7 @@ package"_Section_start.html#start_3.
"sph/taitwater/morris"_pair_sph_taitwater_morris.html,
"srp"_pair_srp.html,
"table/rx"_pair_table_rx.html,
"tdpd"_pair_meso.html,
"tersoff/table (o)"_pair_tersoff.html,
"thole"_pair_thole.html,
"tip4p/long/soft (o)"_pair_lj_soft.html :tb(c=4,ea=c)
@ -1093,6 +1118,7 @@ KOKKOS, o = USER-OMP, t = OPT.
"class2 (ko)"_bond_class2.html,
"fene (iko)"_bond_fene.html,
"fene/expand (o)"_bond_fene_expand.html,
"gromos (o)"_bond_gromos.html,
"harmonic (ko)"_bond_harmonic.html,
"morse (o)"_bond_morse.html,
"nonlinear (o)"_bond_nonlinear.html,
@ -1159,7 +1185,7 @@ USER-OMP, t = OPT.
"none"_dihedral_none.html,
"zero"_dihedral_zero.html,
"hybrid"_dihedral_hybrid.html,
"charmm (ko)"_dihedral_charmm.html,
"charmm (iko)"_dihedral_charmm.html,
"charmmfsw"_dihedral_charmm.html,
"class2 (ko)"_dihedral_class2.html,
"harmonic (io)"_dihedral_harmonic.html,
@ -1172,7 +1198,7 @@ used if "LAMMPS is built with the appropriate
package"_Section_start.html#start_3.
"cosine/shift/exp (o)"_dihedral_cosine_shift_exp.html,
"fourier (o)"_dihedral_fourier.html,
"fourier (io)"_dihedral_fourier.html,
"nharmonic (o)"_dihedral_nharmonic.html,
"quadratic (o)"_dihedral_quadratic.html,
"spherical (o)"_dihedral_spherical.html,
@ -1195,7 +1221,7 @@ USER-OMP, t = OPT.
"hybrid"_improper_hybrid.html,
"class2 (ko)"_improper_class2.html,
"cvff (io)"_improper_cvff.html,
"harmonic (ko)"_improper_harmonic.html,
"harmonic (iko)"_improper_harmonic.html,
"umbrella (o)"_improper_umbrella.html :tb(c=4,ea=c)
These are additional improper styles in USER packages, which can be

View File

@ -71,7 +71,7 @@ style", with ... being fix, compute, pair, etc, it means that you
mistyped the style name or that the command is part of an optional
package which was not compiled into your executable. The list of
available styles in your executable can be listed by using "the -h
command-line argument"_Section_start.html#start_7. The installation
command-line argument"_Section_start.html#start_6. The installation
and compilation of optional packages is explained in the "installation
instructions"_Section_start.html#start_3.
@ -4696,9 +4696,9 @@ Self-explanatory. :dd
{Fix bond/create induced too many angles/dihedrals/impropers per atom} :dt
See the read_data command for info on setting the "extra angle per
atom", etc header values to allow for additional angles, etc to be
formed. :dd
See the read_data command for info on using the "extra/angle/per/atom",
(or dihedral, improper) keywords to allow for additional
angles, dihedrals, and impropers to be formed. :dd
{Fix bond/create needs ghost atoms from further away} :dt
@ -7876,18 +7876,20 @@ See the setting for tagint in the src/lmptype.h file. :dd
{New bond exceeded bonds per atom in create_bonds} :dt
See the read_data command for info on setting the "extra bond per
atom" header value to allow for additional bonds to be formed. :dd
See the read_data command for info on using the "extra/bond/per/atom"
keyword to allow for additional bonds to be formed
{New bond exceeded bonds per atom in fix bond/create} :dt
See the read_data command for info on setting the "extra bond per
atom" header value to allow for additional bonds to be formed. :dd
See the read_data command for info on using the "extra/bond/per/atom"
keyword to allow for additional bonds to be formed :dd
{New bond exceeded special list size in fix bond/create} :dt
See the special_bonds extra command for info on how to leave space in
the special bonds list to allow for additional bonds to be formed. :dd
See the "read_data extra/special/per/atom" command
(or the "create_box extra/special/per/atom" command)
for info on how to leave space in the special bonds
list to allow for additional bonds to be formed. :dd
{Newton bond change after simulation box is defined} :dt
@ -9664,9 +9666,10 @@ you are running. :dd
{Special list size exceeded in fix bond/create} :dt
See the read_data command for info on setting the "extra special per
atom" header value to allow for additional special values to be
stored. :dd
See the "read_data extra/special/per/atom" command
(or the "create_box extra/special/per/atom" command)
for info on how to leave space in the special bonds
list to allow for additional bonds to be formed. :dd
{Specified processors != physical processors} :dt
@ -9683,23 +9686,23 @@ Self-explanatory. :dd
{Subsequent read data induced too many angles per atom} :dt
See the create_box extra/angle/per/atom or read_data "extra angle per
atom" header value to set this limit larger. :dd
See the extra/angle/per/atom keyword for the create_box
or the read_data command to set this limit larger :dd
{Subsequent read data induced too many bonds per atom} :dt
See the create_box extra/bond/per/atom or read_data "extra bond per
atom" header value to set this limit larger. :dd
See the extra/bond/per/atom keyword for the create_box
or the read_data command to set this limit larger :dd
{Subsequent read data induced too many dihedrals per atom} :dt
See the create_box extra/dihedral/per/atom or read_data "extra
dihedral per atom" header value to set this limit larger. :dd
See the extra/dihedral/per/atom keyword for the create_box
or the read_data command to set this limit larger :dd
{Subsequent read data induced too many impropers per atom} :dt
See the create_box extra/improper/per/atom or read_data "extra
improper per atom" header value to set this limit larger. :dd
See the extra/improper/per/atom keyword for the create_box
or the read_data command to set this limit larger :dd
{Substitution for illegal variable} :dt

View File

@ -49,6 +49,7 @@ Lists of both kinds of directories are given below.
Lowercase directories :h4
accelerate: run with various acceleration options (OpenMP, GPU, Phi)
airebo: polyethylene with AIREBO potential
balance: dynamic load balancing, 2d system
body: body particles, 2d system
cmap: CMAP 5-body contributions to CHARMM force field

View File

@ -54,7 +54,7 @@ restart files can be saved to disk using the "restart"_restart.html
command. At a later time, these binary files can be read via a
"read_restart"_read_restart.html command in a new script. Or they can
be converted to text data files using the "-r command-line
switch"_Section_start.html#start_7 and read by a
switch"_Section_start.html#start_6 and read by a
"read_data"_read_data.html command in a new script.
Here we give examples of 2 scripts that read either a binary restart
@ -337,7 +337,7 @@ All of the above examples work whether you are running on 1 or
multiple processors, but assumed you are running LAMMPS on a single
partition of processors. LAMMPS can be run on multiple partitions via
the "-partition" command-line switch as described in "this
section"_Section_start.html#start_7 of the manual.
section"_Section_start.html#start_6 of the manual.
In the last 2 examples, if LAMMPS were run on 3 partitions, the same
scripts could be used if the "index" and "loop" variables were
@ -387,7 +387,7 @@ for more info on packages.
In all these cases, you must run with one or more processors per
replica. The processors assigned to each replica are determined at
run-time by using the "-partition command-line
switch"_Section_start.html#start_7 to launch LAMMPS on multiple
switch"_Section_start.html#start_6 to launch LAMMPS on multiple
partitions, which in this context are the same as replicas. E.g.
these commands:
@ -395,7 +395,7 @@ mpirun -np 16 lmp_linux -partition 8x2 -in in.temper
mpirun -np 8 lmp_linux -partition 8x1 -in in.neb :pre
would each run 8 replicas, on either 16 or 8 processors. Note the use
of the "-in command-line switch"_Section_start.html#start_7 to specify
of the "-in command-line switch"_Section_start.html#start_6 to specify
the input script which is required when running in multi-replica mode.
Also note that with MPI installed on a machine (e.g. your desktop),
@ -1872,7 +1872,7 @@ void lammps_free(void *) :pre
The lammps_open() function is used to initialize LAMMPS, passing in a
list of strings as if they were "command-line
arguments"_Section_start.html#start_7 when LAMMPS is run in
arguments"_Section_start.html#start_6 when LAMMPS is run in
stand-alone mode from the command line, and a MPI communicator for
LAMMPS to run under. It returns a ptr to the LAMMPS object that is
created, and which is used in subsequent library calls. The
@ -2859,8 +2859,8 @@ The nature of the atoms (core, Drude particle or non-polarizable) is
specified via the "fix drude"_fix_drude.html command. The special
list of neighbors is automatically refactored to account for the
equivalence of core and Drude particles as regards special 1-2 to 1-4
screening. It may be necessary to use the {extra} keyword of the
"special_bonds"_special_bonds.html command. If using "fix
screening. It may be necessary to use the {extra/special/per/atom}
keyword of the "read_data"_read_data.html command. If using "fix
shake"_fix_shake.html, make sure no Drude particle is in this fix
group.

View File

@ -25,6 +25,17 @@ There are two kinds of packages in LAMMPS, standard and user packages:
"Table of standard packages"_#table_standard
"Table of user packages"_#table_user :ul
Either of these kinds of packages may work as is, may require some
additional code compiled located in the lib folder, or may require
an external library to be downloaded, compiled, installed, and LAMMPS
configured to know about its location and additional compiler flags.
You can often do the build of the internal or external libraries
in one step by typing "make lib-name args='...'" from the src dir,
with appropriate arguments included in args='...'. If you just type
"make lib-name" you should see a help message about supported flags
and some examples. For more details about this, please study the
tables below and the sections about the individual packages.
Standard packages are supported by the LAMMPS developers and are
written in a syntax and style consistent with the rest of LAMMPS.
This means the developers will answer questions about them, debug and
@ -34,7 +45,9 @@ LAMMPS.
User packages have been contributed by users, and begin with the
"user" prefix. If they are a single command (single file), they are
typically in the user-misc package. User packages don't necessarily
meet the requirements of the standard packages. If you have problems
meet the requirements of the standard packages. This means the
developers will try to keep things working and usually can answer
technical questions about compiling the package. If you have problems
using a feature provided in a user package, you may need to contact
the contributor directly to get help. Information on how to submit
additions you make to LAMMPS as single files or as a standard or user
@ -78,11 +91,12 @@ Package, Description, Doc page, Example, Library
"COMPRESS"_#COMPRESS, I/O compression, "dump */gz"_dump.html, -, sys
"CORESHELL"_#CORESHELL, adiabatic core/shell model, "Section 6.6.25"_Section_howto.html#howto_25, coreshell, -
"DIPOLE"_#DIPOLE, point dipole particles, "pair_style dipole/cut"_pair_dipole.html, dipole, -
"GPU"_#GPU, GPU-enabled styles, "Section 5.3.1"_accelerate_gpu.html, WWW bench, int
"GPU"_#GPU, GPU-enabled styles, "Section 5.3.1"_accelerate_gpu.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, int
"GRANULAR"_#GRANULAR, granular systems, "Section 6.6.6"_Section_howto.html#howto_6, pour, -
"KIM"_#KIM, openKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext
"KOKKOS"_#KOKKOS, Kokkos-enabled styles, "Section 5.3.3"_accelerate_kokkos.html, WWW bench, -
"KIM"_#KIM, OpenKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext
"KOKKOS"_#KOKKOS, Kokkos-enabled styles, "Section 5.3.3"_accelerate_kokkos.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
"KSPACE"_#KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, -
"LATTE"_#LATTE, quantum DFTB forces via LATTE, "fix latte"_fix_latte.html, latte, ext
"MANYBODY"_#MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, -
"MC"_#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, -
"MEAM"_#MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int
@ -90,7 +104,7 @@ Package, Description, Doc page, Example, Library
"MOLECULE"_#MOLECULE, molecular system force fields, "Section 6.6.3"_Section_howto.html#howto_3, peptide, -
"MPIIO"_#MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, -, -
"MSCG"_#MSCG, multi-scale coarse-graining wrapper, "fix mscg"_fix_mscg.html, mscg, ext
"OPT"_#OPT, optimized pair styles, "Section 5.3.5"_accelerate_opt.html, WWW bench, -
"OPT"_#OPT, optimized pair styles, "Section 5.3.5"_accelerate_opt.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
"PERI"_#PERI, Peridynamics models, "pair_style peri"_pair_peri.html, peri, -
"POEMS"_#POEMS, coupled rigid body motion, "fix poems"_fix_poems.html, rigid, int
"PYTHON"_#PYTHON, embed Python code in an input script, "python"_python.html, python, sys
@ -99,10 +113,9 @@ Package, Description, Doc page, Example, Library
"REPLICA"_#REPLICA, multi-replica methods, "Section 6.6.5"_Section_howto.html#howto_5, tad, -
"RIGID"_#RIGID, rigid bodies and constraints, "fix rigid"_fix_rigid.html, rigid, -
"SHOCK"_#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, -
"SNAP"_#SNAP, quantum-fitted potential, "pair snap"_pair_snap.html, snap, -
"SNAP"_#SNAP, quantum-fitted potential, "pair_style snap"_pair_snap.html, snap, -
"SRD"_#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, -
"VORONOI"_#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext
:tb(ea=c,ca1=l)
"VORONOI"_#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext :tb(ea=c,ca1=l)
[USER packages] :link(table_user),p
@ -118,14 +131,16 @@ Package, Description, Doc page, Example, Library
"USER-EFF"_#USER-EFF, electron force field,"pair_style eff/cut"_pair_eff.html, USER/eff, -
"USER-FEP"_#USER-FEP, free energy perturbation,"compute fep"_compute_fep.html, USER/fep, -
"USER-H5MD"_#USER-H5MD, dump output via HDF5,"dump h5md"_dump_h5md.html, -, ext
"USER-INTEL"_#USER-INTEL, optimized Intel CPU and KNL styles,"Section 5.3.2"_accelerate_intel.html, WWW bench, -
"USER-INTEL"_#USER-INTEL, optimized Intel CPU and KNL styles,"Section 5.3.2"_accelerate_intel.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
"USER-LB"_#USER-LB, Lattice Boltzmann fluid,"fix lb/fluid"_fix_lb_fluid.html, USER/lb, -
"USER-MANIFOLD"_#USER-MANIFOLD, motion on 2d surfaces,"fix manifoldforce"_fix_manifoldforce.html, USER/manifold, -
"USER-MEAMC"_#USER-MEAMC, modified EAM potential (C++), "pair_style meam/c"_pair_meam.html, meam, -
"USER-MESO"_#USER-MESO, mesoscale DPD models, "pair_style edpd"_pair_meso.html, USER/meso, -
"USER-MGPT"_#USER-MGPT, fast MGPT multi-ion potentials, "pair_style mgpt"_pair_mgpt.html, USER/mgpt, -
"USER-MISC"_#USER-MISC, single-file contributions, USER-MISC/README, USER/misc, -
"USER-MOLFILE"_#USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, -, ext
"USER-NETCDF"_#USER-NETCDF, dump output via NetCDF,"dump netcdf"_dump_netcdf.html, -, ext
"USER-OMP"_#USER-OMP, OpenMP-enabled styles,"Section 5.3.4"_accelerate_omp.html, WWW bench, -
"USER-OMP"_#USER-OMP, OpenMP-enabled styles,"Section 5.3.4"_accelerate_omp.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
"USER-PHONON"_#USER-PHONON, phonon dynamical matrix,"fix phonon"_fix_phonon.html, USER/phonon, -
"USER-QMMM"_#USER-QMMM, QM/MM coupling,"fix qmmm"_fix_qmmm.html, USER/qmmm, ext
"USER-QTB"_#USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, -
@ -135,8 +150,8 @@ Package, Description, Doc page, Example, Library
"USER-SMTBQ"_#USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, -
"USER-SPH"_#USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, -
"USER-TALLY"_#USER-TALLY, pairwise tally computes,"compute XXX/tally"_compute_tally.html, USER/tally, -
"USER-VTK"_#USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, -, ext
:tb(ea=c,ca1=l)
"USER-UEF"_#USER-UEF, extensional flow,"fix nvt/uef"_fix_nh_uef.html, USER/uef, -
"USER-VTK"_#USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, -, ext :tb(ea=c,ca1=l)
:line
:line
@ -363,12 +378,15 @@ GPU package :link(GPU),h4
[Contents:]
Dozens of pair styles and a version of the PPPM long-range Coulombic
solver optimized for NVIDIA GPUs. All such styles have a "gpu" as a
suffix in their style name. "Section 5.3.1"_accelerate_gpu.html gives
details of what hardware and Cuda software is required on your system,
solver optimized for GPUs. All such styles have a "gpu" as a
suffix in their style name. The GPU code can be compiled with either
CUDA or OpenCL, however the OpenCL variants are no longer actively
maintained and only the CUDA versions are regularly tested.
"Section 5.3.1"_accelerate_gpu.html gives details of what
hardware and GPU software is required on your system,
and details on how to build and use this package. Its styles can be
invoked at run time via the "-sf gpu" or "-suffix gpu" "command-line
switches"_Section_start.html#start_7. See also the "KOKKOS"_#KOKKOS
switches"_Section_start.html#start_6. See also the "KOKKOS"_#KOKKOS
package, which has GPU-enabled styles.
[Authors:] Mike Brown (Intel) while at Sandia and ORNL and Trung Nguyen
@ -377,32 +395,41 @@ package, which has GPU-enabled styles.
[Install or un-install:]
Before building LAMMPS with this package, you must first build the GPU
library in lib/gpu from a set of provided C and Cuda files. You can
library in lib/gpu from a set of provided C and CUDA files. You can
do this manually if you prefer; follow the instructions in
lib/gpu/README. You can also do it in one step from the lammps/src
lib/gpu/README. Please note, that the GPU library uses MPI calls, so
you have to make certain to use the same MPI library (or the STUBS
library) settings as the main LAMMPS code. That same applies to the
-DLAMMPS_BIGBIG, -DLAMMPS_SMALLBIG, or -DLAMMPS_SMALLSMALL define.
You can also do it in one step from the lammps/src
dir, using a command like these, which simply invoke the
lib/gpu/Install.py script with the specified args:
make lib-gpu # print help message
make lib-gpu args="-m" # build GPU library with default Makefile.linux
make lib-gpu args="-i xk7 -p single -o xk7.single" # create new Makefile.xk7.single, altered for single-precision
make lib-gpu args="-i xk7 -p single -o xk7.single -m" # ditto, also build GPU library
make lib-gpu # print help message
make lib-gpu args="-b" # build GPU library with default Makefile.linux
make lib-gpu args="-m xk7 -p single -o xk7.single" # create new Makefile.xk7.single, altered for single-precision
make lib-gpu args="-m mpi -p mixed -b" # build GPU library with mixed precision using settings in Makefile.mpi :pre
Note that this procedure starts with one of the existing
Makefile.machine files in lib/gpu. It allows you to alter 4 important
settings in that Makefile, via the -h, -a, -p, -e switches,
and save the new Makefile, if desired:
Note that this procedure through the '-m machine' flag starts with one of
the existing Makefile.machine files in lib/gpu. For your convenience,
machine makefiles for "mpi" and "serial" are provided, which have the
same settings as the corresponding machine makefiles in the main LAMMPS
source folder. In addition you can alter 4 important settings in that
Makefile, via the -h, -a, -p, -e switches, and also save a copy of the
new Makefile, if desired:
CUDA_HOME = where NVIDIA Cuda software is installed on your system
CUDA_HOME = where NVIDIA CUDA software is installed on your system
CUDA_ARCH = what GPU hardware you have (see help message for details)
CUDA_PRECISION = precision (double, mixed, single)
EXTRAMAKE = which Makefile.lammps.* file to copy to Makefile.lammps :ul
If the library build is successful, 2 files should be created:
lib/gpu/libgpu.a and lib/gpu/Makefile.lammps. The latter has settings
that enable LAMMPS to link with Cuda libraries. If the settings in
Makefile.lammps for your machine are not correct, the LAMMPS build
will fail.
If the library build is successful, at least 3 files should be created:
lib/gpu/libgpu.a, lib/gpu/nvc_get_devices, and lib/gpu/Makefile.lammps.
The latter has settings that enable LAMMPS to link with CUDA libraries.
If the settings in Makefile.lammps for your machine are not correct,
the LAMMPS build will fail, and lib/gpu/Makefile.lammps may need to
be edited.
You can then install/un-install the package and build LAMMPS in the
usual manner:
@ -426,8 +453,8 @@ src/GPU/README
lib/gpu/README
"Section 5.3"_Section_accelerate.html#acc_3
"Section 5.3.1"_accelerate_gpu.html
"Section 2.7 -sf gpu"_Section_start.html#start_7
"Section 2.7 -pk gpu"_Section_start.html#start_7
"Section 2.6 -sf gpu"_Section_start.html#start_6
"Section 2.6 -pk gpu"_Section_start.html#start_6
"package gpu"_package.html
Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 for pair styles followed by (g)
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
@ -491,14 +518,40 @@ Minnesota).
[Install or un-install:]
Using this package requires the KIM library and its models
(interatomic potentials) to be downloaded and installed on your
system. The library can be downloaded and built in lib/kim or
elsewhere on your system. Details of the download, build, and install
process for KIM are given in the lib/kim/README file.
Before building LAMMPS with this package, you must first download and
build the KIM library and include the KIM models that you want to
use. You can do this manually if you prefer; follow the instructions
in lib/kim/README. You can also do it in one step from the lammps/src
dir, using a command like these, which simply invoke the
lib/kim/Install.py script with the specified args.
Once that process is complete, you can then install/un-install the
package and build LAMMPS in the usual manner:
make lib-kim # print help message
make lib-kim args="-b " # (re-)install KIM API lib with only example models
make lib-kim args="-b -a Glue_Ercolessi_Adams_Al__MO_324507536345_001" # ditto plus one model
make lib-kim args="-b -a everything" # install KIM API lib with all models
make lib-kim args="-n -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # add one model or model driver
make lib-kim args="-p /usr/local/kim-api" # use an existing KIM API installation at the provided location
make lib-kim args="-p /usr/local/kim-api -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # ditto but add one model or driver :pre
Note that in LAMMPS lingo, a KIM model driver is a pair style
(e.g. EAM or Tersoff). A KIM model is a pair style for a particular
element or alloy and set of parameters, e.g. EAM for Cu with a
specific EAM potential file. Also note that installing the KIM API
library with all its models, may take around 30 min to build. Of
course you only need to do that once.
See the list of KIM model drivers here:
https://openkim.org/kim-items/model-drivers/alphabetical
See the list of all KIM models here:
https://openkim.org/kim-items/models/by-model-drivers
See the list of example KIM models included by default here:
https://openkim.org/kim-api in the "What is in the KIM API source
package?" section
You can then install/un-install the package and build LAMMPS in the
usual manner:
make yes-kim
make machine :pre
@ -522,13 +575,13 @@ KOKKOS package :link(KOKKOS),h4
Dozens of atom, pair, bond, angle, dihedral, improper, fix, compute
styles adapted to compile using the Kokkos library which can convert
them to OpenMP or Cuda code so that they run efficiently on multicore
them to OpenMP or CUDA code so that they run efficiently on multicore
CPUs, KNLs, or GPUs. All the styles have a "kk" as a suffix in their
style name. "Section 5.3.3"_accelerate_kokkos.html gives details of
what hardware and software is required on your system, and how to
build and use this package. Its styles can be invoked at run time via
the "-sf kk" or "-suffix kk" "command-line
switches"_Section_start.html#start_7. Also see the "GPU"_#GPU,
switches"_Section_start.html#start_6. Also see the "GPU"_#GPU,
"OPT"_#OPT, "USER-INTEL"_#USER-INTEL, and "USER-OMP"_#USER-OMP
packages, which have styles optimized for CPUs, KNLs, and GPUs.
@ -552,28 +605,28 @@ files for examples.
For multicore CPUs using OpenMP:
KOKKOS_DEVICES = OpenMP
KOKKOS_ARCH = HSW # HSW = Haswell, SNB = SandyBridge, BDW = Broadwell, etc
KOKKOS_ARCH = HSW # HSW = Haswell, SNB = SandyBridge, BDW = Broadwell, etc :pre
For Intel KNLs using OpenMP:
KOKKOS_DEVICES = OpenMP
KOKKOS_ARCH = KNL
KOKKOS_ARCH = KNL :pre
For NVIDIA GPUs using Cuda:
For NVIDIA GPUs using CUDA:
KOKKOS_DEVICES = Cuda
KOKKOS_ARCH = Pascal60,Power8 # P100 hosted by an IBM Power8, etc
KOKKOS_ARCH = Kepler37,Power8 # K80 hosted by an IBM Power8, etc
KOKKOS_ARCH = Kepler37,Power8 # K80 hosted by an IBM Power8, etc :pre
For GPUs, you also need these 2 lines in your Makefile.machine before
the CC line is defined, in this case for use with OpenMPI mpicxx. The
2 lines define a nvcc wrapper compiler, which will use nvcc for
compiling Cuda files or use a C++ compiler for non-Kokkos, non-Cuda
compiling CUDA files or use a C++ compiler for non-Kokkos, non-CUDA
files.
KOKKOS_ABSOLUTE_PATH = $(shell cd $(KOKKOS_PATH); pwd)
export OMPI_CXX = $(KOKKOS_ABSOLUTE_PATH)/config/nvcc_wrapper
CC = mpicxx
CC = mpicxx :pre
Once you have an appropriate Makefile.machine, you can
install/un-install the package and build LAMMPS in the usual manner.
@ -596,9 +649,9 @@ src/KOKKOS/README
lib/kokkos/README
"Section 5.3"_Section_accelerate.html#acc_3
"Section 5.3.3"_accelerate_kokkos.html
"Section 2.7 -k on ..."_Section_start.html#start_7
"Section 2.7 -sf kk"_Section_start.html#start_7
"Section 2.7 -pk kokkos"_Section_start.html#start_7
"Section 2.6 -k on ..."_Section_start.html#start_6
"Section 2.6 -sf kk"_Section_start.html#start_6
"Section 2.6 -pk kokkos"_Section_start.html#start_6
"package kokkos"_package.html
Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (k)
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
@ -644,6 +697,66 @@ bench/in.rhodo :ul
:line
LATTE package :link(LATTE),h4
[Contents:]
A fix command which wraps the LATTE DFTB code, so that molecular
dynamics can be run with LAMMPS using density-functional tight-binding
quantum forces calculated by LATTE.
More information on LATTE can be found at this web site:
"https://github.com/lanl/LATTE"_latte_home. A brief technical
description is given with the "fix latte"_fix_latte.html command.
:link(latte_home,https://github.com/lanl/LATTE)
[Authors:] Christian Negre (LANL) and Steve Plimpton (Sandia). LATTE
itself is developed at Los Alamos National Laboratory by Marc
Cawkwell, Anders Niklasson, and Christian Negre.
[Install or un-install:]
Before building LAMMPS with this package, you must first download and
build the LATTE library. You can do this manually if you prefer;
follow the instructions in lib/latte/README. You can also do it in
one step from the lammps/src dir, using a command like these, which
simply invokes the lib/latte/Install.py script with the specified
args:
make lib-latte # print help message
make lib-latte args="-b" # download and build in lib/latte/LATTE-master
make lib-latte args="-p $HOME/latte" # use existing LATTE installation in $HOME/latte
make lib-latte args="-b -m gfortran" # download and build in lib/latte and
# copy Makefile.lammps.gfortran to Makefile.lammps
:pre
Note that 3 symbolic (soft) links, "includelink" and "liblink" and
"filelink", are created in lib/latte to point into the LATTE home dir.
When LAMMPS builds in src it will use these links. You should
also check that the Makefile.lammps file you create is apporpriate
for the compiler you use on your system to build LATTE.
You can then install/un-install the package and build LAMMPS in the
usual manner:
make yes-latte
make machine :pre
make no-latte
make machine :pre
[Supporting info:]
src/LATTE: filenames -> commands
src/LATTE/README
lib/latte/README
"fix latte"_fix_latte.html
examples/latte
"LAMMPS-LATTE tutorial"_https://github.com/lanl/LATTE/wiki/Using-LATTE-through-LAMMPS :ul
:line
MANYBODY package :link(MANYBODY),h4
[Contents:]
@ -709,6 +822,12 @@ MEAM package :link(MEAM),h4
A pair style for the modified embedded atom (MEAM) potential.
Please note that the MEAM package has been superseded by the
"USER-MEAMC"_#USER-MEAMC package, which is a direct translation
of the MEAM package to C++. USER-MEAMC contains additional
optimizations making it run faster than MEAM on most machines,
while providing the identical features and USER interface.
[Author:] Greg Wagner (Northwestern U) while at Sandia.
[Install or un-install:]
@ -719,9 +838,10 @@ follow the instructions in lib/meam/README. You can also do it in one
step from the lammps/src dir, using a command like these, which simply
invoke the lib/meam/Install.py script with the specified args:
make lib-meam # print help message
make lib-meam args="-m gfortran" # build with GNU Fortran compiler
make lib-meam args="-m ifort" # build with Intel ifort compiler :pre
make lib-meam # print help message
make lib-meam args="-m mpi" # build with default Fortran compiler compatible with your MPI library
make lib-meam args="-m serial" # build with compiler compatible with "make serial" (GNU Fortran)
make lib-meam args="-m ifort" # build with Intel Fortran compiler using Makefile.ifort :pre
The build should produce two files: lib/meam/libmeam.a and
lib/meam/Makefile.lammps. The latter is copied from an existing
@ -764,6 +884,9 @@ A variety of compute, fix, pair, dump styles with specialized
capabilities that don't align with other packages. Do a directory
listing, "ls src/MISC", to see the list of commands.
NOTE: the MISC package contains styles that require using the
-restrict flag, when compiling with Intel compilers.
[Install or un-install:]
make yes-misc
@ -877,9 +1000,9 @@ University of Chicago.
Before building LAMMPS with this package, you must first download and
build the MS-CG library. Building the MS-CG library and using it from
LAMMPS requires a C++11 compatible compiler, and that LAPACK and GSL
(GNU Scientific Library) libraries be installed on your machine. See
the lib/mscg/README and MSCG/Install files for more details.
LAMMPS requires a C++11 compatible compiler and that the GSL
(GNU Scientific Library) headers and libraries are installed on your
machine. See the lib/mscg/README and MSCG/Install files for more details.
Assuming these libraries are in place, you can do the download and
build of MS-CG manually if you prefer; follow the instructions in
@ -887,15 +1010,16 @@ lib/mscg/README. You can also do it in one step from the lammps/src
dir, using a command like these, which simply invoke the
lib/mscg/Install.py script with the specified args:
make lib-mscg # print help message
make lib-mscg args="-g -b -l" # download and build in default lib/mscg/MSCG-release-master
make lib-mscg args="-h . MSCG -g -b -l" # download and build in lib/mscg/MSCG
make lib-mscg args="-h ~ MSCG -g -b -l" # download and build in ~/mscg :pre
make lib-mscg # print help message
make lib-mscg args="-b -m serial" # download and build in lib/mscg/MSCG-release-master
# with the settings compatible with "make serial"
make lib-mscg args="-b -m mpi" # download and build in lib/mscg/MSCG-release-master
# with the settings compatible with "make mpi"
make lib-mscg args="-p /usr/local/mscg-release" # use the existing MS-CG installation in /usr/local/mscg-release :pre
Note that the final -l switch is to create 2 symbolic (soft) links,
"includelink" and "liblink", in lib/mscg to point to the MS-CG src
dir. When LAMMPS builds it will use these links. You should not need
to edit the lib/mscg/Makefile.lammps file.
Note that 2 symbolic (soft) links, "includelink" and "liblink", will be created in lib/mscg
to point to the MS-CG src/installation dir. When LAMMPS is built in src it will use these links.
You should not need to edit the lib/mscg/Makefile.lammps file.
You can then install/un-install the package and build LAMMPS in the
usual manner:
@ -925,7 +1049,7 @@ CHARMM, and Morse potentials. The styles have an "opt" suffix in
their style name. "Section 5.3.5"_accelerate_opt.html gives details
of how to build and use this package. Its styles can be invoked at
run time via the "-sf opt" or "-suffix opt" "command-line
switches"_Section_start.html#start_7. See also the "KOKKOS"_#KOKKOS,
switches"_Section_start.html#start_6. See also the "KOKKOS"_#KOKKOS,
"USER-INTEL"_#USER-INTEL, and "USER-OMP"_#USER-OMP packages, which
have styles optimized for CPU performance.
@ -941,18 +1065,18 @@ make no-opt
make machine :pre
NOTE: The compile flag "-restrict" must be used to build LAMMPS with
the OPT package. It should be added to the CCFLAGS line of your
Makefile.machine. See Makefile.opt in src/MAKE/OPTIONS for an
example.
the OPT package when using Intel compilers. It should be added to
the CCFLAGS line of your Makefile.machine. See Makefile.opt in
src/MAKE/OPTIONS for an example.
CCFLAGS: add -restrict :ul
CCFLAGS: add -restrict for Intel compilers :ul
[Supporting info:]
src/OPT: filenames -> commands
"Section 5.3"_Section_accelerate.html#acc_3
"Section 5.3.5"_accelerate_opt.html
"Section 2.7 -sf opt"_Section_start.html#start_7
"Section 2.6 -sf opt"_Section_start.html#start_6
Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 for pair styles followed by (t)
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
@ -1014,9 +1138,10 @@ follow the instructions in lib/poems/README. You can also do it in
one step from the lammps/src dir, using a command like these, which
simply invoke the lib/poems/Install.py script with the specified args:
make lib-poems # print help message
make lib-poems args="-m g++" # build with GNU g++ compiler
make lib-poems args="-m icc" # build with Intel icc compiler :pre
make lib-poems # print help message
make lib-poems args="-m serial" # build with GNU g++ compiler (settings as with "make serial")
make lib-poems args="-m mpi" # build with default MPI C++ compiler (settings as with "make mpi")
make lib-poems args="-m icc" # build with Intel icc compiler :pre
The build should produce two files: lib/poems/libpoems.a and
lib/poems/Makefile.lammps. The latter is copied from an existing
@ -1126,9 +1251,10 @@ follow the instructions in lib/reax/README. You can also do it in one
step from the lammps/src dir, using a command like these, which simply
invoke the lib/reax/Install.py script with the specified args:
make lib-reax # print help message
make lib-reax args="-m gfortran" # build with GNU Fortran compiler
make lib-reax args="-m ifort" # build with Intel ifort compiler :pre
make lib-reax # print help message
make lib-reax args="-m serial" # build with GNU Fortran compiler (settings as with "make serial")
make lib-reax args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
make lib-reax args="-m ifort" # build with Intel ifort compiler :pre
The build should produce two files: lib/reax/libreax.a and
lib/reax/Makefile.lammps. The latter is copied from an existing
@ -1279,7 +1405,7 @@ make machine :pre
[Supporting info:]
src/SNAP: filenames -> commands
"pair snap"_pair_snap.html
"pair_style snap"_pair_snap.html
"compute sna/atom"_compute_sna_atom.html
"compute snad/atom"_compute_sna_atom.html
"compute snav/atom"_compute_sna_atom.html
@ -1345,15 +1471,15 @@ one step from the lammps/src dir, using a command like these, which
simply invoke the lib/voronoi/Install.py script with the specified
args:
make lib-voronoi # print help message
make lib-voronoi args="-g -b -l" # download and build in default lib/voronoi/voro++-0.4.6
make lib-voronoi args="-h . voro++ -g -b -l" # download and build in lib/voronoi/voro++
make lib-voronoi args="-h ~ voro++ -g -b -l" # download and build in ~/voro++ :pre
make lib-voronoi # print help message
make lib-voronoi args="-b" # download and build the default version in lib/voronoi/voro++-<version>
make lib-voronoi args="-p $HOME/voro++" # use existing Voro++ installation in $HOME/voro++
make lib-voronoi args="-b -v voro++0.4.6" # download and build the 0.4.6 version in lib/voronoi/voro++-0.4.6 :pre
Note that the final -l switch is to create 2 symbolic (soft) links,
"includelink" and "liblink", in lib/voronoi to point to the Voro++ src
dir. When LAMMPS builds it will use these links. You should not need
to edit the lib/voronoi/Makefile.lammps file.
Note that 2 symbolic (soft) links, "includelink" and "liblink", are
created in lib/voronoi to point to the Voro++ src dir. When LAMMPS
builds in src it will use these links. You should not need to edit
the lib/voronoi/Makefile.lammps file.
You can then install/un-install the package and build LAMMPS in the
usual manner:
@ -1395,7 +1521,8 @@ from the lammps/src dir, using a command like these, which simply
invoke the lib/atc/Install.py script with the specified args:
make lib-atc # print help message
make lib-atc args="-m g++" # build with GNU g++ compiler
make lib-atc args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
make lib-atc args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
make lib-atc args="-m icc" # build with Intel icc compiler :pre
The build should produce two files: lib/atc/libatc.a and
@ -1412,8 +1539,10 @@ can either exist on your system, or you can use the files provided in
lib/linalg. In the latter case you also need to build the library
in lib/linalg with a command like these:
make lib-linalg # print help message
make lib-atc args="-m gfortran" # build with GNU Fortran compiler
make lib-linalg # print help message
make lib-linalg args="-m serial" # build with GNU Fortran compiler (settings as with "make serial")
make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
make lib-linalg args="-m gfortran" # build with GNU Fortran compiler :pre
You can then install/un-install the package and build LAMMPS in the
usual manner:
@ -1453,9 +1582,10 @@ follow the instructions in lib/awpmd/README. You can also do it in
one step from the lammps/src dir, using a command like these, which
simply invoke the lib/awpmd/Install.py script with the specified args:
make lib-awpmd # print help message
make lib-awpmd args="-m g++" # build with GNU g++ compiler
make lib-awpmd args="-m icc" # build with Intel icc compiler :pre
make lib-awpmd # print help message
make lib-awpmd args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
make lib-awpmd args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
make lib-awpmd args="-m icc" # build with Intel icc compiler :pre
The build should produce two files: lib/awpmd/libawpmd.a and
lib/awpmd/Makefile.lammps. The latter is copied from an existing
@ -1471,8 +1601,10 @@ these can either exist on your system, or you can use the files
provided in lib/linalg. In the latter case you also need to build the
library in lib/linalg with a command like these:
make lib-linalg # print help message
make lib-atc args="-m gfortran" # build with GNU Fortran compiler
make lib-linalg # print help message
make lib-linalg args="-m serial" # build with GNU Fortran compiler (settings as with "make serial")
make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
make lib-linalg args="-m gfortran" # build with GNU Fortran compiler :pre
You can then install/un-install the package and build LAMMPS in the
usual manner:
@ -1487,7 +1619,7 @@ make machine :pre
src/USER-AWPMD: filenames -> commands
src/USER-AWPMD/README
"pair awpmd/cut"_pair_awpmd.html
"pair_style awpmd/cut"_pair_awpmd.html
examples/USER/awpmd :ul
:line
@ -1565,9 +1697,11 @@ Restraints. A "fix colvars"_fix_colvars.html command is implemented
which wraps a COLVARS library, which implements these methods.
simulations.
[Authors:] Axel Kohlmeyer (Temple U). The COLVARS library was written
by Giacomo Fiorin (ICMS, Temple University, Philadelphia, PA, USA) and
Jerome Henin (LISM, CNRS, Marseille, France).
[Authors:] The COLVARS library is written and maintained by
Giacomo Fiorin (ICMS, Temple University, Philadelphia, PA, USA)
and Jerome Henin (LISM, CNRS, Marseille, France), originally for
the NAMD MD code, but with portability in mind. Axel Kohlmeyer
(Temple U) provided the interface to LAMMPS.
[Install or un-install:]
@ -1579,7 +1713,9 @@ which simply invoke the lib/colvars/Install.py script with the
specified args:
make lib-colvars # print help message
make lib-colvars args="-m g++" # build with GNU g++ compiler :pre
make lib-colvars args="-m serial" # build with GNU g++ compiler (settings as with "make serial")
make lib-colvars args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
make lib-colvars args="-m g++-debug" # build with GNU g++ compiler and colvars debugging enabled :pre
The build should produce two files: lib/colvars/libcolvars.a and
lib/colvars/Makefile.lammps. The latter is copied from an existing
@ -1672,12 +1808,12 @@ src/USER-DPD: filenames -> commands
"fix eos/table/rx"_fix_eos_table_rx.html
"fix shardlow"_fix_shardlow.html
"fix rx"_fix_rx.html
"pair table/rx"_pair_table_rx.html
"pair dpd/fdt"_pair_dpd_fdt.html
"pair dpd/fdt/energy"_pair_dpd_fdt.html
"pair exp6/rx"_pair_exp6_rx.html
"pair multi/lucy"_pair_multi_lucy.html
"pair multi/lucy/rx"_pair_multi_lucy_rx.html
"pair_style table/rx"_pair_table_rx.html
"pair_style dpd/fdt"_pair_dpd_fdt.html
"pair_style dpd/fdt/energy"_pair_dpd_fdt.html
"pair_style exp6/rx"_pair_exp6_rx.html
"pair_style multi/lucy"_pair_multi_lucy.html
"pair_style multi/lucy/rx"_pair_multi_lucy_rx.html
examples/USER/dpd :ul
:line
@ -1712,8 +1848,8 @@ src/USER-DRUDE/README
"fix drude"_fix_drude.html
"fix drude/transform/*"_fix_drude_transform.html
"compute temp/drude"_compute_temp_drude.html
"pair thole"_pair_thole.html
"pair lj/cut/thole/long"_pair_thole.html
"pair_style thole"_pair_thole.html
"pair_style lj/cut/thole/long"_pair_thole.html
examples/USER/drude
tools/drude :ul
@ -1751,8 +1887,8 @@ src/USER-EFF/README
"fix npt/eff"_fix_nh_eff.html
"fix langevin/eff"_fix_langevin_eff.html
"compute temp/eff"_compute_temp_eff.html
"pair eff/cut"_pair_eff.html
"pair eff/inline"_pair_eff.html
"pair_style eff/cut"_pair_eff.html
"pair_style eff/inline"_pair_eff.html
examples/USER/eff
tools/eff/README
tools/eff
@ -1862,12 +1998,17 @@ All of them have an "intel" in their style name. "Section
5.3.2"_accelerate_intel.html gives details of what hardware and
compilers are required on your system, and how to build and use this
package. Its styles can be invoked at run time via the "-sf intel" or
"-suffix intel" "command-line switches"_Section_start.html#start_7.
"-suffix intel" "command-line switches"_Section_start.html#start_6.
Also see the "KOKKOS"_#KOKKOS, "OPT"_#OPT, and "USER-OMP"_#USER-OMP
packages, which have styles optimized for CPUs and KNLs.
You need to have an Intel compiler, version 14 or higher to take full
advantage of this package.
advantage of this package. While compilation with GNU compilers is
supported, performance will be suboptimal.
NOTE: the USER-INTEL package contains styles that require using the
-restrict flag, when compiling with Intel compilers.
[Author:] Mike Brown (Intel).
@ -1884,17 +2025,17 @@ For CPUs:
OPTFLAGS = -xHost -O2 -fp-model fast=2 -no-prec-div -qoverride-limits
CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \
-fno-alias -ansi-alias -restrict $(OPTFLAGS)
-fno-alias -ansi-alias -restrict $(OPTFLAGS)
LINKFLAGS = -g -qopenmp $(OPTFLAGS)
LIB = -ltbbmalloc -ltbbmalloc_proxy
LIB = -ltbbmalloc -ltbbmalloc_proxy :pre
For KNLs:
OPTFLAGS = -xMIC-AVX512 -O2 -fp-model fast=2 -no-prec-div -qoverride-limits
CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \
-fno-alias -ansi-alias -restrict $(OPTFLAGS)
-fno-alias -ansi-alias -restrict $(OPTFLAGS)
LINKFLAGS = -g -qopenmp $(OPTFLAGS)
LIB = -ltbbmalloc
LIB = -ltbbmalloc :pre
Once you have an appropriate Makefile.machine, you can
install/un-install the package and build LAMMPS in the usual manner.
@ -1918,8 +2059,8 @@ src/USER-INTEL: filenames -> commands
src/USER-INTEL/README
"Section 5.3"_Section_accelerate.html#acc_3
"Section 5.3.2"_accelerate_gpu.html
"Section 2.7 -sf intel"_Section_start.html#start_7
"Section 2.7 -pk intel"_Section_start.html#start_7
"Section 2.6 -sf intel"_Section_start.html#start_6
"Section 2.6 -pk intel"_Section_start.html#start_6
"package intel"_package.html
Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (i)
src/USER-INTEL/TEST
@ -2051,6 +2192,73 @@ http://lammps.sandia.gov/movies.html#manifold :ul
:line
USER-MEAMC package :link(USER-MEAMC),h4
[Contents:]
A pair style for the modified embedded atom (MEAM) potential
translated from the Fortran version in the "MEAM"_MEAM package
to plain C++. In contrast to the MEAM package, no library
needs to be compiled and the pair style can be instantiated
multiple times.
[Author:] Sebastian Huetter, (Otto-von-Guericke University Magdeburg)
based on the Fortran version of Greg Wagner (Northwestern U) while at
Sandia.
[Install or un-install:]
make yes-user-meamc
make machine :pre
make no-user-meamc
make machine :pre
[Supporting info:]
src/USER-MEAMC: filenames -> commands
src/USER-MEAMC/README
"pair_style meam/c"_pair_meam.html
examples/meam :ul
:line
USER-MESO package :link(USER-MESO),h4
[Contents:]
Several extensions of the the dissipative particle dynamics (DPD)
method. Specifically, energy-conserving DPD (eDPD) that can model
non-isothermal processes, many-body DPD (mDPD) for simulating
vapor-liquid coexistence, and transport DPD (tDPD) for modeling
advection-diffuion-reaction systems. The equations of motion of these
DPD extensions are integrated through a modified velocity-Verlet (MVV)
algorithm.
[Author:] Zhen Li (Division of Applied Mathematics, Brown University)
[Install or un-install:]
make yes-user-meso
make machine :pre
make no-user-meso
make machine :pre
[Supporting info:]
src/USER-MESO: filenames -> commands
src/USER-MESO/README
"atom_style edpd"_atom_style.html
"pair_style edpd"_pair_meso.html
"pair_style mdpd"_pair_meso.html
"pair_style tdpd"_pair_meso.html
"fix mvv/dpd"_fix_mvv_dpd.html
examples/USER/meso
http://lammps.sandia.gov/movies.html#mesodpd :ul
:line
USER-MOLFILE package :link(USER-MOLFILE),h4
[Contents:]
@ -2161,18 +2369,22 @@ via OpenMP directives. All of them have an "omp" in their style name.
"Section 5.3.4"_accelerate_omp.html gives details of what hardware and
compilers are required on your system, and how to build and use this
package. Its styles can be invoked at run time via the "-sf omp" or
"-suffix omp" "command-line switches"_Section_start.html#start_7.
"-suffix omp" "command-line switches"_Section_start.html#start_6.
Also see the "KOKKOS"_#KOKKOS, "OPT"_#OPT, and
"USER-INTEL"_#USER-INTEL packages, which have styles optimized for
CPUs.
[Author:] Axel Kohlmeyer (Temple U).
NOTE: The compile flags "-restrict" and "-fopenmp" must be used to
build LAMMPS with the USER-OMP package, as well as the link flag
"-fopenmp". They should be added to the CCFLAGS and LINKFLAGS lines
of your Makefile.machine. See src/MAKE/OPTIONS/Makefile.omp for an
example.
NOTE: To enable multi-threading support the compile flag "-fopenmp"
and the link flag "-fopenmp" (for GNU compilers, you have to look up
the equivalent flags for other compilers) must be used to build LAMMPS.
When using Intel compilers, also the "-restrict" flag is required.
The USER-OMP package can be compiled without enabling OpenMP; then
all code will be compiled as serial and the only improvement over the
regular styles are some data access optimization. These flags should
be added to the CCFLAGS and LINKFLAGS lines of your Makefile.machine.
See src/MAKE/OPTIONS/Makefile.omp for an example.
Once you have an appropriate Makefile.machine, you can
install/un-install the package and build LAMMPS in the usual manner:
@ -2185,7 +2397,7 @@ make machine :pre
make no-user-omp
make machine :pre
CCFLAGS: add -fopenmp and -restrict
CCFLAGS: add -fopenmp (and -restrict when using Intel compilers)
LINKFLAGS: add -fopenmp :ul
[Supporting info:]
@ -2194,8 +2406,8 @@ src/USER-OMP: filenames -> commands
src/USER-OMP/README
"Section 5.3"_Section_accelerate.html#acc_3
"Section 5.3.4"_accelerate_omp.html
"Section 2.7 -sf omp"_Section_start.html#start_7
"Section 2.7 -pk omp"_Section_start.html#start_7
"Section 2.6 -sf omp"_Section_start.html#start_6
"Section 2.6 -pk omp"_Section_start.html#start_6
"package omp"_package.html
Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (o)
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
@ -2254,12 +2466,14 @@ without changes to LAMMPS itself.
Before building LAMMPS with this package, you must first build the
QMMM library in lib/qmmm. You can do this manually if you prefer;
follow the first two steps explained in lib/colvars/README. You can
follow the first two steps explained in lib/qmmm/README. You can
also do it in one step from the lammps/src dir, using a command like
these, which simply invoke the lib/colvars/Install.py script with the
these, which simply invoke the lib/qmmm/Install.py script with the
specified args:
make lib-qmmm # print help message
make lib-qmmm args="-m serial" # build with GNU Fortran compiler (settings as in "make serial")
make lib-qmmm args="-m mpi" # build with default MPI compiler (settings as in "make mpi")
make lib-qmmm args="-m gfortran" # build with GNU Fortran compiler :pre
The build should produce two files: lib/qmmm/libqmmm.a and
@ -2436,15 +2650,13 @@ follow the instructions in lib/smd/README. You can also do it in one
step from the lammps/src dir, using a command like these, which simply
invoke the lib/smd/Install.py script with the specified args:
make lib-smd # print help message
make lib-smd args="-g -l" # download in default lib/smd/eigen-eigen-*
make lib-smd args="-h . eigen -g -l" # download in lib/smd/eigen
make lib-smd args="-h ~ eigen -g -l" # download and build in ~/eigen :pre
make lib-smd # print help message
make lib-smd args="-b" # download and build in default lib/smd/eigen-eigen-...
make lib-smd args="-p /usr/include/eigen3" # use existing Eigen installation in /usr/include/eigen3 :pre
Note that the final -l switch is to create a symbolic (soft) link
named "includelink" in lib/smd to point to the Eigen dir. When LAMMPS
builds it will use this link. You should not need to edit the
lib/smd/Makefile.lammps file.
Note that a symbolic (soft) link named "includelink" is created in
lib/smd to point to the Eigen dir. When LAMMPS builds it will use
this link. You should not need to edit the lib/smd/Makefile.lammps file.
You can then install/un-install the package and build LAMMPS in the
usual manner:
@ -2560,13 +2772,44 @@ examples/USER/tally :ul
:line
USER-UEF package :link(USER-UEF),h4
[Contents:]
A fix style for the integration of the equations of motion under
extensional flow with proper boundary conditions, as well as several
supporting compute styles and an output option.
[Author:] David Nicholson (MIT).
[Install or un-install:]
make yes-user-uef
make machine :pre
make no-user-uef
make machine :pre
[Supporting info:]
src/USER-UEF: filenames -> commands
src/USER-UEF/README
"fix nvt/uef"_fix_nh_uef.html
"fix npt/uef"_fix_nh_uef.html
"compute pressure/uef"_compute_pressure_uef.html
"compute temp/uef"_compute_temp_uef.html
"dump cfg/uef"_dump_cfg_uef.html
examples/uef :ul
:line
USER-VTK package :link(USER-VTK),h4
[Contents:]
A "dump vtk"_dump_vtk.html command which outputs
snapshot info in the "VTK format"_vtk, enabling visualization by
"Paraview"_paraview or other visuzlization packages.
A "dump vtk"_dump_vtk.html command which outputs snapshot info in the
"VTK format"_vtk, enabling visualization by "Paraview"_paraview or
other visuzlization packages.
:link(vtk,http://www.vtk.org)
:link(paraview,http://www.paraview.org)

View File

@ -198,7 +198,7 @@ file and the shared library.
11.3 Building LAMMPS as a shared library :link(py_3),h4
Instructions on how to build LAMMPS as a shared library are given in
"Section 2.5"_Section_start.html#start_5. A shared library is one
"Section 2.4"_Section_start.html#start_4. A shared library is one
that is dynamically loadable, which is what Python requires to wrap
LAMMPS. On Linux this is a library file that ends in ".so", not ".a".
@ -217,7 +217,7 @@ NOTE: If you are building LAMMPS with an MPI or FFT library or other
auxiliary libraries (used by various packages), then all of these
extra libraries must also be shared libraries. If the LAMMPS
shared-library build fails with an error complaining about this, see
"Section 2.5"_Section_start.html#start_5 for more details.
"Section 2.4"_Section_start.html#start_4 for more details.
:line
@ -439,7 +439,7 @@ first importing from the lammps.py file:
>>> CDLL("liblammps.so") :pre
If an error occurs, carefully go thru the steps in "Section
2.5"_Section_start.html#start_5 and above about building a shared
2.4"_Section_start.html#start_4 and above about building a shared
library and about insuring Python can find the necessary two files
it needs.

View File

@ -14,11 +14,11 @@ experienced users.
2.1 "What's in the LAMMPS distribution"_#start_1
2.2 "Making LAMMPS"_#start_2
2.3 "Making LAMMPS with optional packages"_#start_3
2.5 "Building LAMMPS as a library"_#start_4
2.6 "Running LAMMPS"_#start_5
2.7 "Command-line options"_#start_6
2.8 "Screen output"_#start_7
2.9 "Tips for users of previous versions"_#start_8 :all(b)
2.4 "Building LAMMPS as a library"_#start_4
2.5 "Running LAMMPS"_#start_5
2.6 "Command-line options"_#start_6
2.7 "Screen output"_#start_7
2.8 "Tips for users of previous versions"_#start_8 :all(b)
:line
@ -434,20 +434,39 @@ files. Note that on some large parallel machines which use "modules"
for their compile/link environements, you may simply need to include
the correct module in your build environment. Or the parallel machine
may have a vendor-provided FFT library which the compiler has no
trouble finding.
trouble finding. See the src/MAKE/OPTIONS/Makefile.fftw file for an
example of how to specify these variables to use the FFTW3 library.
FFTW is a fast, portable library that should also work on any
platform. You can download it from
FFTW is fast, portable library that should also work on any platform
and typically be faster than KISS FFT. You can download it from
"www.fftw.org"_http://www.fftw.org. Both the legacy version 2.1.X and
the newer 3.X versions are supported as -DFFT_FFTW2 or -DFFT_FFTW3.
Building FFTW for your box should be as simple as ./configure; make.
Note that on some platforms FFTW2 has been pre-installed, and uses
renamed files indicating the precision it was compiled with,
e.g. sfftw.h, or dfftw.h instead of fftw.h. In this case, you can
specify an additional define variable for FFT_INC called -DFFTW_SIZE,
which will select the correct include file. In this case, for FFT_LIB
you must also manually specify the correct library, namely -lsfftw or
-ldfftw.
Building FFTW for your box should be as simple as ./configure; make;
make install. The install command typically requires root privileges
(e.g. invoke it via sudo), unless you specify a local directory with
the "--prefix" option of configure. Type "./configure --help" to see
various options.
If you wish to have FFTW support for single-precision FFTs (see below
about -DFFT_SINGLE) in addition to the default double-precision FFTs,
you will need to build FFTW a second time for single-precision. For
FFTW3, do this via:
make clean
./configure --enable-single; make; make install :pre
which should produce the additional library libfftw3f.a.
For FFTW2, do this:
make clean
./configure --enable-float --enable-type-prefix; make; make install :pre
which should produce the additional library libsfftw.a and additional
include file sfttw.a. Note that on some platforms FFTW2 has been
pre-installed for both single- and double-precision, and may already
have these files as well as libdfftw.a and dfftw.h for double
precision.
The FFT_INC variable also allows for a -DFFT_SINGLE setting that will
use single-precision FFTs with PPPM, which can speed-up long-range
@ -459,6 +478,16 @@ accuracy for reduced memory use and parallel communication costs for
transposing 3d FFT data. Note that single precision FFTs have only
been tested with the FFTW3, FFTW2, MKL, and KISS FFT options.
When using -DFFT_SINGLE with FFTW3 or FFTW2, you need to build FFTW
with support for single-precision, as explained above. For FFTW3 you
also need to include -lfftw3f with the FFT_LIB setting, in addition to
-lfftw3. For FFTW2, you also need to specify -DFFT_SIZE with the
FFT_INC setting and -lsfftw with the FFT_LIB setting (in place of
-lfftw). Similarly, if FFTW2 has been preinstalled with an explicit
double-precision library (libdfftw.a and not the default libfftw.a),
then you can specify -DFFT_SIZE (and not -DFFT_SINGLE), and specify
-ldfftw to use double-precision FFTs.
Step 7 :h6
The 3 JPG variables allow you to specify a JPEG and/or PNG library
@ -507,7 +536,7 @@ You should get the executable lmp_foo when the build is complete.
:line
Errors that can occur when making LAMMPS: h5 :link(start_2_3)
Errors that can occur when making LAMMPS :h5 :link(start_2_3)
If an error occurs when building LAMMPS, the compiler or linker will
state very explicitly what the problem is. The error message should
@ -558,8 +587,7 @@ Typing "make clean-all" or "make clean-machine" will delete *.o object
files created when LAMMPS is built, for either all builds or for a
particular machine.
Changing the LAMMPS size limits via -DLAMMPS_SMALLBIG or
-DLAMMPS_BIGBIG or -DLAMMPS_SMALLSMALL :h6
Changing the LAMMPS size limits via -DLAMMPS_SMALLBIG or -DLAMMPS_BIGBIG or -DLAMMPS_SMALLSMALL :h6
As explained above, any of these 3 settings can be specified on the
LMP_INC line in your low-level src/MAKE/Makefile.foo.
@ -630,22 +658,29 @@ utilities.
For Cygwin and the MinGW cross-compilers, suitable makefiles are
provided in src/MAKE/MACHINES. When using other compilers, like
Visual C++ or Intel compilers for Windows, you may have to implement
your own build system. Since none of the current LAMMPS core developers
has significant experience building executables on Windows, we are
happy to distribute contributed instructions and modifications, but
we cannot provide support for those.
your own build system. Due to differences between the Windows OS
and Windows system libraries to Unix-like environments like Linux
or MacOS, when compiling for Windows a few adjustments may be needed:
Do [not] set the -DLAMMPS_MEMALIGN define (see LMP_INC makefile variable)
Add -lwsock32 -lpsapi to the linker flags (see LIB makefile variable)
Try adding -static-libgcc or -static or both to the linker flags when your LAMMPS executable complains about missing .dll files :ul
Since none of the current LAMMPS core developers has significant
experience building executables on Windows, we are happy to distribute
contributed instructions and modifications to improve the situation,
but we cannot provide support for those.
With the so-called "Anniversary Update" to Windows 10, there is a
Ubuntu Linux subsystem available for Windows, that can be installed
and then used to compile/install LAMMPS as if you are running on a
Ubuntu Linux system instead of Windows.
As an alternative, you can download "daily builds" (and some older
versions) of the installer packages from
"rpm.lammps.org/windows.html"_http://rpm.lammps.org/windows.html.
These executables are built with most optional packages and the
download includes documentation, potential files, some tools and
many examples, but no source code.
As an alternative, you can download pre-compiled installer packages from
"packages.lammps.org/windows.html"_http://packages.lammps.org/windows.html.
These executables are built with most optional packages included and the
download includes documentation, potential files, some tools and many
examples, but no source code.
:line
@ -685,7 +720,7 @@ type
lmp_machine -h :pre
to run your executable with the optional "-h command-line
switch"_#start_7 for "help", which will list the styles and commands
switch"_#start_6 for "help", which will list the styles and commands
known to your executable, and immediately exit.
:line
@ -880,12 +915,12 @@ src/MAKE/OPTIONS, which include the settings. Note that the
USER-INTEL and KOKKOS packages can use settings that build LAMMPS for
different hardware. The USER-INTEL package can be compiled for Intel
CPUs and KNLs; the KOKKOS package builds for CPUs (OpenMP), GPUs
(Cuda), and Intel KNLs.
(CUDA), and Intel KNLs.
Makefile.intel_cpu
Makefile.intel_phi
Makefile.kokkos_omp
Makefile.kokkos_cuda
Makefile.kokkos_cuda_mpi
Makefile.kokkos_phi
Makefile.omp
Makefile.opt :ul
@ -1058,7 +1093,7 @@ LAMMPS to be built with one or more of its optional packages.
:line
On a Windows box, you can skip making LAMMPS and simply download an
installer package from "here"_http://rpm.lammps.org/windows.html
installer package from "here"_http://packages.lammps.org/windows.html
For running the non-MPI executable, follow these steps:
@ -1070,18 +1105,27 @@ the [in.lj] input from the bench folder. (e.g. by typing: cd "Documents"). :l
At the command prompt, type "lmp_serial -in in.lj", replacing [in.lj]
with the name of your LAMMPS input script. :l
The serial executable includes support for multi-threading
parallelization from the styles in the USER-OMP packages.
To run with, e.g. 4 threads, type "lmp_serial -in in.lj -pk omp 4 -sf omp"
:ule
For the MPI version, which allows you to run LAMMPS under Windows on
multiple processors, follow these steps:
For the MPI version, which allows you to run LAMMPS under Windows with
the more general message passing parallel library (LAMMPS has been
designed from ground up to use MPI efficiently), follow these steps:
Download and install
"MPICH2"_http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads
for Windows. :ulb,l
Download and install a compatible MPI library binary package:
for 32-bit Windows
"mpich2-1.4.1p1-win-ia32.msi"_download.lammps.org/thirdparty/mpich2-1.4.1p1-win-ia32.msi
and for 64-bit Windows
"mpich2-1.4.1p1-win-x86-64.msi"_download.lammps.org/thirdparty/mpich2-1.4.1p1-win-x86-64.msi
:ulb,l
The LAMMPS Windows installer packages will automatically adjust your
path for the default location of this MPI package. After the installation
of the MPICH software, it needs to be integrated into the system.
of the MPICH2 software, it needs to be integrated into the system.
For this you need to start a Command Prompt in {Administrator Mode}
(right click on the icon and select it). Change into the MPICH2
installation directory, then into the subdirectory [bin] and execute
@ -1100,7 +1144,7 @@ or
mpiexec -np 4 lmp_mpi -in in.lj :pre
replacing in.lj with the name of your LAMMPS input script. For the latter
replacing [in.lj] with the name of your LAMMPS input script. For the latter
case, you may be prompted to enter your password. :l
In this mode, output may not immediately show up on the screen, so if
@ -1112,6 +1156,11 @@ something like:
lmp_mpi -in in.lj :pre
And the parallel executable also includes OpenMP multi-threading, which
can be combined with MPI using something like:
mpiexec -localonly 2 lmp_mpi -in in.lj -pk omp 2 -sf omp :pre
:ule
:line

View File

@ -54,7 +54,7 @@ specify the # of GPUs per node
use GPU styles in your input script :ul
The latter two steps can be done using the "-pk gpu" and "-sf gpu"
"command-line switches"_Section_start.html#start_7 respectively. Or
"command-line switches"_Section_start.html#start_6 respectively. Or
the effect of the "-pk" or "-sf" switches can be duplicated by adding
the "package gpu"_package.html or "suffix gpu"_suffix.html commands
respectively to your input script.
@ -62,7 +62,7 @@ respectively to your input script.
[Required hardware/software:]
To use this package, you currently need to have an NVIDIA GPU and
install the NVIDIA Cuda software on your system:
install the NVIDIA CUDA software on your system:
Check if you have an NVIDIA GPU: cat /proc/driver/nvidia/gpus/0/information
Go to http://www.nvidia.com/object/cuda_get.html
@ -74,13 +74,8 @@ Run lammps/lib/gpu/nvc_get_devices (after building the GPU library, see below) t
This requires two steps (a,b): build the GPU library, then build
LAMMPS with the GPU package.
You can do both these steps in one line, using the src/Make.py script,
described in "Section 2.4"_Section_start.html#start_4 of the manual.
Type "Make.py -h" for help. If run from the src directory, this
command will create src/lmp_gpu using src/MAKE/Makefile.mpi as the
starting Makefile.machine:
Make.py -p gpu -gpu mode=single arch=31 -o gpu -a lib-gpu file mpi :pre
You can do both these steps in one line as described in
"Section 4"_Section_packages.html of the manual.
Or you can follow these two (a,b) steps:
@ -90,7 +85,7 @@ The GPU library is in lammps/lib/gpu. Select a Makefile.machine (in
lib/gpu) appropriate for your system. You should pay special
attention to 3 settings in this makefile.
CUDA_HOME = needs to be where NVIDIA Cuda software is installed on your system
CUDA_HOME = needs to be where NVIDIA CUDA software is installed on your system
CUDA_ARCH = needs to be appropriate to your GPUs
CUDA_PREC = precision (double, mixed, single) you desire :ul
@ -151,9 +146,9 @@ automatically if you create more MPI tasks/node than there are
GPUs/mode. E.g. with 8 MPI tasks/node and 2 GPUs, each GPU will be
shared by 4 MPI tasks.
Use the "-sf gpu" "command-line switch"_Section_start.html#start_7,
Use the "-sf gpu" "command-line switch"_Section_start.html#start_6,
which will automatically append "gpu" to styles that support it. Use
the "-pk gpu Ng" "command-line switch"_Section_start.html#start_7 to
the "-pk gpu Ng" "command-line switch"_Section_start.html#start_6 to
set Ng = # of GPUs/node to use.
lmp_machine -sf gpu -pk gpu 1 -in in.script # 1 MPI task uses 1 GPU
@ -188,7 +183,7 @@ pair_style lj/cut/gpu 2.5 :pre
You must also use the "package gpu"_package.html command to enable the
GPU package, unless the "-sf gpu" or "-pk gpu" "command-line
switches"_Section_start.html#start_7 were used. It specifies the
switches"_Section_start.html#start_6 were used. It specifies the
number of GPUs/node to use, as well as other options.
[Speed-ups to expect:]

View File

@ -25,12 +25,14 @@ LAMMPS to run on the CPU cores and coprocessor cores simultaneously.
[Currently Available USER-INTEL Styles:]
Angle Styles: charmm, harmonic :ulb,l
Bond Styles: fene, harmonic :l
Bond Styles: fene, fourier, harmonic :l
Dihedral Styles: charmm, harmonic, opls :l
Fixes: nve, npt, nvt, nvt/sllod :l
Fixes: nve, npt, nvt, nvt/sllod, nve/asphere :l
Improper Styles: cvff, harmonic :l
Pair Styles: buck/coul/cut, buck/coul/long, buck, eam, gayberne,
charmm/coul/long, lj/cut, lj/cut/coul/long, lj/long/coul/long, sw, tersoff :l
Pair Styles: airebo, airebo/morse, buck/coul/cut, buck/coul/long,
buck, dpd, eam, eam/alloy, eam/fs, gayberne, lj/charmm/coul/charmm,
lj/charmm/coul/long, lj/cut, lj/cut/coul/long, lj/long/coul/long,
rebo, sw, tersoff :l
K-Space Styles: pppm, pppm/disp :l
:ule
@ -52,11 +54,12 @@ warmup run (for use with offload benchmarks).
:c,image(JPG/user_intel.png)
Results are speedups obtained on Intel Xeon E5-2697v4 processors
(code-named Broadwell) and Intel Xeon Phi 7250 processors
(code-named Knights Landing) with "June 2017" LAMMPS built with
Intel Parallel Studio 2017 update 2. Results are with 1 MPI task
per physical core. See {src/USER-INTEL/TEST/README} for the raw
simulation rates and instructions to reproduce.
(code-named Broadwell), Intel Xeon Phi 7250 processors (code-named
Knights Landing), and Intel Xeon Gold 6148 processors (code-named
Skylake) with "June 2017" LAMMPS built with Intel Parallel Studio
2017 update 2. Results are with 1 MPI task per physical core. See
{src/USER-INTEL/TEST/README} for the raw simulation rates and
instructions to reproduce.
:line
@ -80,6 +83,11 @@ this order :l
The {newton} setting applies to all atoms, not just atoms shared
between MPI tasks :l
Vectorization can change the order for adding pairwise forces :l
When using the -DLMP_USE_MKL_RNG define (all included intel optimized
makefiles do) at build time, the random number generator for
dissipative particle dynamics (pair style dpd/intel) uses the Mersenne
Twister generator included in the Intel MKL library (that should be
more robust than the default Masaglia random number generator) :l
:ule
The precision mode (described below) used with the USER-INTEL
@ -106,6 +114,8 @@ $t should be 2 for Intel Xeon CPUs and 2 or 4 for Intel Xeon Phi :l
For some of the simple 2-body potentials without long-range
electrostatics, performance and scalability can be better with
the "newton off" setting added to the input script :l
For simulations on higher node counts, add "processors * * * grid
numa" to the beginning of the input script for better scalability :l
If using {kspace_style pppm} in the input script, add
"kspace_modify diff ad" for better performance :l
:ule
@ -115,8 +125,8 @@ For Intel Xeon Phi CPUs:
Runs should be performed using MCDRAM. :ulb,l
:ule
For simulations using {kspace_style pppm} on Intel CPUs
supporting AVX-512:
For simulations using {kspace_style pppm} on Intel CPUs supporting
AVX-512:
Add "kspace_modify diff ad" to the input script :ulb,l
The command-line option should be changed to
@ -223,11 +233,9 @@ source /opt/intel/parallel_studio_xe_2016.3.067/psxevars.sh
# or psxevars.csh for C-shell
make intel_cpu_intelmpi :pre
Alternatively, the build can be accomplished with the src/Make.py
script, described in "Section 2.4"_Section_start.html#start_4 of the
manual. Type "Make.py -h" for help. For an example:
Make.py -v -p intel omp -intel cpu -a file intel_cpu_intelmpi :pre
Alternatively this can be done as a single command with
suitable make command invocations. This is discussed in "Section
4"_Section_packages.html of the manual.
Note that if you build with support for a Phi coprocessor, the same
binary can be used on nodes with or without coprocessors installed.
@ -235,15 +243,17 @@ However, if you do not have coprocessors on your system, building
without offload support will produce a smaller binary.
The general requirements for Makefiles with the USER-INTEL package
are as follows. "-DLAMMPS_MEMALIGN=64" is required for CCFLAGS. When
using Intel compilers, "-restrict" is required and "-qopenmp" is
highly recommended for CCFLAGS and LINKFLAGS. LIB should include
"-ltbbmalloc". For builds supporting offload, "-DLMP_INTEL_OFFLOAD"
is required for CCFLAGS and "-qoffload" is required for LINKFLAGS.
Other recommended CCFLAG options for best performance are
"-O2 -fno-alias -ansi-alias -qoverride-limits fp-model fast=2
-no-prec-div". The Make.py command will add all of these
automatically.
are as follows. When using Intel compilers, "-restrict" is required
and "-qopenmp" is highly recommended for CCFLAGS and LINKFLAGS.
CCFLAGS should include "-DLMP_INTEL_USELRT" (unless POSIX Threads
are not supported in the build environment) and "-DLMP_USE_MKL_RNG"
(unless Intel Math Kernel Library (MKL) is not available in the build
environment). For Intel compilers, LIB should include "-ltbbmalloc"
or if the library is not available, "-DLMP_INTEL_NO_TBB" can be added
to CCFLAGS. For builds supporting offload, "-DLMP_INTEL_OFFLOAD" is
required for CCFLAGS and "-qoffload" is required for LINKFLAGS. Other
recommended CCFLAG options for best performance are "-O2 -fno-alias
-ansi-alias -qoverride-limits fp-model fast=2 -no-prec-div".
NOTE: The vectorization and math capabilities can differ depending on
the CPU. For Intel compilers, the "-x" flag specifies the type of
@ -299,7 +309,7 @@ Hyper-Threading technology disabled.
To enable USER-INTEL optimizations for all available styles used in
the input script, the "-sf intel"
"command-line switch"_Section_start.html#start_7 can be used without
"command-line switch"_Section_start.html#start_6 can be used without
any requirement for editing the input script. This switch will
automatically append "intel" to styles that support it. It also
invokes a default command: "package intel 1"_package.html. This
@ -312,7 +322,7 @@ support, that 1 coprocessor per node will be used with automatic
balancing of work between the CPU and the coprocessor.
You can specify different options for the USER-INTEL package by using
the "-pk intel Nphi" "command-line switch"_Section_start.html#start_7
the "-pk intel Nphi" "command-line switch"_Section_start.html#start_6
with keyword/value pairs as specified in the documentation. Here,
Nphi = # of Xeon Phi coprocessors/node (ignored without offload
support). Common options to the USER-INTEL package include {omp} to
@ -360,10 +370,14 @@ intel"_package.html command that can improve performance when using
"PPPM"_kspace_style.html for long-range electrostatics on processors
with SMT. It generates an extra pthread for each MPI task. The thread
is dedicated to performing some of the PPPM calculations and MPI
communications. On Intel Xeon Phi x200 series CPUs, this will likely
always improve performance, even on a single node. On Intel Xeon
processors, using this mode might result in better performance when
using multiple nodes, depending on the machine. To use this mode,
communications. This feature requires setting the preprocessor flag
-DLMP_INTEL_USELRT in the makefile when compiling LAMMPS. It is unset
in the default makefiles ({Makefile.mpi} and {Makefile.serial}) but
it is set in all makefiles tuned for the USER-INTEL package. On Intel
Xeon Phi x200 series CPUs, the LRT feature will likely improve
performance, even on a single node. On Intel Xeon processors, using
this mode might result in better performance when using multiple nodes,
depending on the specific machine configuration. To enable LRT mode,
specify that the number of OpenMP threads is one less than would
normally be used for the run and add the "lrt yes" option to the "-pk"
command-line suffix or "package intel" command. For example, if a run
@ -385,13 +399,17 @@ can performed automatically by using "-sf hybrid intel opt" or
and "omp" suffixes can be appended manually in the input script. For
the latter, the "package omp"_package.html command must be in the
input script or the "-pk omp Nt" "command-line
switch"_Section_start.html#start_7 must be used where Nt is the
switch"_Section_start.html#start_6 must be used where Nt is the
number of OpenMP threads. The number of OpenMP threads should not be
set differently for the different packages. Note that the "suffix
hybrid intel omp"_suffix.html command can also be used within the
input script to automatically append the "omp" suffix to styles when
USER-INTEL styles are not available.
NOTE: For simulations on higher node counts, add "processors * * *
grid numa"_processors.html" to the beginning of the input script for
better scalability.
When running on many nodes, performance might be better when using
fewer OpenMP threads and more MPI tasks. This will depend on the
simulation and the machine. Using the "verlet/split"_run_style.html
@ -480,7 +498,7 @@ sorting"_atom_modify.html is changed to 1 so that the per-atom data is
effectively sorted at every rebuild of the neighbor lists. All the
available coprocessor threads on each Phi will be divided among MPI
tasks, unless the {tptask} option of the "-pk intel" "command-line
switch"_Section_start.html#start_7 is used to limit the coprocessor
switch"_Section_start.html#start_6 is used to limit the coprocessor
threads per MPI task.
[Restrictions:]

View File

@ -60,8 +60,7 @@ More details follow.
use a C++11 compatible compiler
make yes-kokkos
make mpi KOKKOS_DEVICES=OpenMP # build with the KOKKOS package
make kokkos_omp # or Makefile.kokkos_omp already has variable set
Make.py -v -p kokkos -kokkos omp -o mpi -a file mpi # or one-line build via Make.py :pre
make kokkos_omp # or Makefile.kokkos_omp already has variable set :pre
mpirun -np 16 lmp_mpi -k on -sf kk -in in.lj # 1 node, 16 MPI tasks/node, no threads
mpirun -np 2 -ppn 1 lmp_mpi -k on t 16 -sf kk -in in.lj # 2 nodes, 1 MPI task/node, 16 threads/task
@ -82,8 +81,7 @@ use a C++11 compatible compiler
KOKKOS_DEVICES = Cuda, OpenMP
KOKKOS_ARCH = Kepler35
make yes-kokkos
make machine
Make.py -p kokkos -kokkos cuda arch=31 -o kokkos_cuda -a file kokkos_cuda :pre
make machine :pre
mpirun -np 1 lmp_cuda -k on t 6 -sf kk -in in.lj # one MPI task, 6 threads on CPU
mpirun -np 4 -ppn 1 lmp_cuda -k on t 6 -sf kk -in in.lj # ditto on 4 nodes :pre
@ -98,8 +96,7 @@ use a C++11 compatible compiler
KOKKOS_DEVICES = OpenMP
KOKKOS_ARCH = KNC
make yes-kokkos
make machine
Make.py -p kokkos -kokkos phi -o kokkos_phi -a file mpi :pre
make machine :pre
host=MIC, Intel Phi with 61 cores (240 threads/phi via 4x hardware threading):
mpirun -np 1 lmp_g++ -k on t 240 -sf kk -in in.lj # 1 MPI task on 1 Phi, 1*240 = 240
@ -116,7 +113,7 @@ To build with Kokkos support for CPUs, your compiler must support the
OpenMP interface. You should have one or more multi-core CPUs so that
multiple threads can be launched by each MPI task running on a CPU.
To build with Kokkos support for NVIDIA GPUs, NVIDIA Cuda software
To build with Kokkos support for NVIDIA GPUs, NVIDIA CUDA software
version 7.5 or later must be installed on your system. See the
discussion for the "GPU"_accelerate_gpu.html package for details of
how to check and do this.
@ -135,16 +132,16 @@ mode like the USER-INTEL package supports.
You must choose at build time whether to build for CPUs (OpenMP),
GPUs, or Phi.
You can do any of these in one line, using the src/Make.py script,
described in "Section 2.4"_Section_start.html#start_4 of the manual.
Type "Make.py -h" for help. If run from the src directory, these
commands will create src/lmp_kokkos_omp, lmp_kokkos_cuda, and
You can do any of these in one line, using the suitable make command
line flags as described in "Section 4"_Section_packages.html of the
manual. If run from the src directory, these
commands will create src/lmp_kokkos_omp, lmp_kokkos_cuda_mpi, and
lmp_kokkos_phi. Note that the OMP and PHI options use
src/MAKE/Makefile.mpi as the starting Makefile.machine. The CUDA
option uses src/MAKE/OPTIONS/Makefile.kokkos_cuda.
option uses src/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi.
The latter two steps can be done using the "-k on", "-pk kokkos" and
"-sf kk" "command-line switches"_Section_start.html#start_7
"-sf kk" "command-line switches"_Section_start.html#start_6
respectively. Or the effect of the "-pk" or "-sf" switches can be
duplicated by adding the "package kokkos"_package.html or "suffix
kk"_suffix.html commands respectively to your input script.
@ -162,7 +159,7 @@ CPU-only (only MPI, no threading):
cd lammps/src
make yes-kokkos
make kokkos_mpi :pre
make kokkos_mpi_only :pre
Intel Xeon Phi (Intel Compiler, Intel MPI):
@ -170,11 +167,11 @@ cd lammps/src
make yes-kokkos
make kokkos_phi :pre
CPUs and GPUs (with MPICH):
CPUs and GPUs (with MPICH or OpenMPI):
cd lammps/src
make yes-kokkos
make kokkos_cuda_mpich :pre
make kokkos_cuda_mpi :pre
These examples set the KOKKOS-specific OMP, MIC, CUDA variables on the
make command line which requires a GNU-compatible make command. Try
@ -280,10 +277,10 @@ specify how many Phi coprocessors there are per node; each
coprocessors is simply treated as running some number of MPI tasks.
You must use the "-k on" "command-line
switch"_Section_start.html#start_7 to enable the KOKKOS package. It
switch"_Section_start.html#start_6 to enable the KOKKOS package. It
takes additional arguments for hardware settings appropriate to your
system. Those arguments are "documented
here"_Section_start.html#start_7. The two most commonly used
here"_Section_start.html#start_6. The two most commonly used
options are:
-k on t Nt g Ng :pre
@ -304,12 +301,12 @@ The "-k on" switch also issues a "package kokkos" command (with no
additional arguments) which sets various KOKKOS options to default
values, as discussed on the "package"_package.html command doc page.
Use the "-sf kk" "command-line switch"_Section_start.html#start_7,
Use the "-sf kk" "command-line switch"_Section_start.html#start_6,
which will automatically append "kk" to styles that support it. Use
the "-pk kokkos" "command-line switch"_Section_start.html#start_7 if
the "-pk kokkos" "command-line switch"_Section_start.html#start_6 if
you wish to change any of the default "package kokkos"_package.html
optionns set by the "-k on" "command-line
switch"_Section_start.html#start_7.
switch"_Section_start.html#start_6.
@ -323,7 +320,7 @@ However, when running in MPI-only mode with 1 thread per MPI task, it
will typically be faster to use "half" neighbor lists and set the
Newton flag to "on", just as is the case for non-accelerated pair
styles. You can do this with the "-pk" "command-line
switch"_Section_start.html#start_7.
switch"_Section_start.html#start_6.
[Or run with the KOKKOS package by editing an input script:]
@ -332,7 +329,7 @@ appropriate thread and GPU values for host=OMP or host=MIC or
device=CUDA are the same.
You must still use the "-k on" "command-line
switch"_Section_start.html#start_7 to enable the KOKKOS package, and
switch"_Section_start.html#start_6 to enable the KOKKOS package, and
specify its additional arguments for hardware options appropriate to
your system, as documented above.
@ -343,7 +340,7 @@ pair_style lj/cut/kk 2.5 :pre
You only need to use the "package kokkos"_package.html command if you
wish to change any of its option defaults, as set by the "-k on"
"command-line switch"_Section_start.html#start_7.
"command-line switch"_Section_start.html#start_6.
[Speed-ups to expect:]
@ -389,7 +386,7 @@ If N is the number of physical cores/node, then the number of MPI
tasks/node * number of threads/task should not exceed N, and should
typically equal N. Note that the default threads/task is 1, as set by
the "t" keyword of the "-k" "command-line
switch"_Section_start.html#start_7. If you do not change this, no
switch"_Section_start.html#start_6. If you do not change this, no
additional parallelism (beyond MPI) will be invoked on the host
CPU(s).
@ -429,7 +426,7 @@ details).
The -np setting of the mpirun command should set the number of MPI
tasks/node to be equal to the # of physical GPUs on the node.
Use the "-k" "command-line switch"_Section_commands.html#start_7 to
Use the "-k" "command-line switch"_Section_commands.html#start_6 to
specify the number of GPUs per node, and the number of threads per MPI
task. As above for multi-core CPUs (and no GPU), if N is the number
of physical cores/node, then the number of MPI tasks/node * number of

View File

@ -23,8 +23,7 @@ one or more 16-core nodes. More details follow.
use -fopenmp with CCFLAGS and LINKFLAGS in Makefile.machine
make yes-user-omp
make mpi # build with USER-OMP package, if settings added to Makefile.mpi
make omp # or Makefile.omp already has settings
Make.py -v -p omp -o mpi -a file mpi # or one-line build via Make.py :pre
make omp # or Makefile.omp already has settings :pre
lmp_mpi -sf omp -pk omp 16 < in.script # 1 MPI task, 16 threads
mpirun -np 4 lmp_mpi -sf omp -pk omp 4 -in in.script # 4 MPI tasks, 4 threads/task
@ -40,14 +39,11 @@ each MPI task running on a CPU.
The lines above illustrate how to include/build with the USER-OMP
package in two steps, using the "make" command. Or how to do it with
one command via the src/Make.py script, described in "Section
2.4"_Section_start.html#start_4 of the manual. Type "Make.py -h" for
help.
one command as described in "Section 4"_Section_packages.html of the manual.
Note that the CCFLAGS and LINKFLAGS settings in Makefile.machine must
include "-fopenmp". Likewise, if you use an Intel compiler, the
CCFLAGS setting must include "-restrict". The Make.py command will
add these automatically.
CCFLAGS setting must include "-restrict".
[Run with the USER-OMP package from the command line:]
@ -62,14 +58,14 @@ threads/task should not exceed the physical number of cores (on a
node), otherwise performance will suffer.
As in the lines above, use the "-sf omp" "command-line
switch"_Section_start.html#start_7, which will automatically append
switch"_Section_start.html#start_6, which will automatically append
"omp" to styles that support it. The "-sf omp" switch also issues a
default "package omp 0"_package.html command, which will set the
number of threads per MPI task via the OMP_NUM_THREADS environment
variable.
You can also use the "-pk omp Nt" "command-line
switch"_Section_start.html#start_7, to explicitly set Nt = # of OpenMP
switch"_Section_start.html#start_6, to explicitly set Nt = # of OpenMP
threads per MPI task to use, as well as additional options. Its
syntax is the same as the "package omp"_package.html command whose doc
page gives details, including the default values used if it is not

View File

@ -21,8 +21,7 @@ Here is a quick overview of how to use the OPT package. More details
follow.
make yes-opt
make mpi # build with the OPT package
Make.py -v -p opt -o mpi -a file mpi # or one-line build via Make.py :pre
make mpi # build with the OPT package :pre
lmp_mpi -sf opt -in in.script # run in serial
mpirun -np 4 lmp_mpi -sf opt -in in.script # run in parallel :pre
@ -35,18 +34,15 @@ None.
The lines above illustrate how to build LAMMPS with the OPT package in
two steps, using the "make" command. Or how to do it with one command
via the src/Make.py script, described in "Section
2.4"_Section_start.html#start_4 of the manual. Type "Make.py -h" for
help.
as described in "Section 4"_Section_packages.html of the manual.
Note that if you use an Intel compiler to build with the OPT package,
the CCFLAGS setting in your Makefile.machine must include "-restrict".
The Make.py command will add this automatically.
[Run with the OPT package from the command line:]
As in the lines above, use the "-sf opt" "command-line
switch"_Section_start.html#start_7, which will automatically append
switch"_Section_start.html#start_6, which will automatically append
"opt" to styles that support it.
[Or run with the OPT package by editing an input script:]

View File

@ -63,7 +63,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for

View File

@ -94,7 +94,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for

View File

@ -50,7 +50,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for

View File

@ -55,7 +55,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for

View File

@ -63,7 +63,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for

View File

@ -53,7 +53,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for

View File

@ -65,7 +65,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for

View File

@ -55,7 +55,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for

View File

@ -51,7 +51,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for

View File

@ -50,7 +50,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for

View File

@ -57,7 +57,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for

View File

@ -57,7 +57,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for

View File

@ -136,7 +136,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
switch"_Section_start.html#start_6 when you invoke LAMMPS, or you can
use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for

View File

@ -16,7 +16,7 @@ atom_modify keyword values ... :pre
one or more keyword/value pairs may be appended :ulb,l
keyword = {id} or {map} or {first} or {sort} :l
{id} value = {yes} or {no}
{map} value = {array} or {hash}
{map} value = {yes} or {array} or {hash}
{first} value = group-ID = group whose atoms will appear first in internal atom lists
{sort} values = Nfreq binsize
Nfreq = sort atoms spatially every this many time steps
@ -25,8 +25,8 @@ keyword = {id} or {map} or {first} or {sort} :l
[Examples:]
atom_modify map hash
atom_modify map array sort 10000 2.0
atom_modify map yes
atom_modify map hash sort 10000 2.0
atom_modify first colloid :pre
[Description:]
@ -62,29 +62,33 @@ switch. This is described in "Section 2.2"_Section_start.html#start_2
of the manual. If atom IDs are not used, they must be specified as 0
for all atoms, e.g. in a data or restart file.
The {map} keyword determines how atom ID lookup is done for molecular
atom styles. Lookups are performed by bond (angle, etc) routines in
LAMMPS to find the local atom index associated with a global atom ID.
The {map} keyword determines how atoms with specific IDs are found
when required. An example are the bond (angle, etc) methods which
need to find the local index of an atom with a specific global ID
which is a bond (angle, etc) partner. LAMMPS performs this operation
efficiently by creating a "map", which is either an {array} or {hash}
table, as descibed below.
When the {array} value is used, each processor stores a lookup table
of length N, where N is the largest atom ID in the system. This is a
When the {map} keyword is not specified in your input script, LAMMPS
only creates a map for "atom_styles"_atom_style.html for molecular
systems which have permanent bonds (angles, etc). No map is created
for atomic systems, since it is normally not needed. However some
LAMMPS commands require a map, even for atomic systems, and will
generate an error if one does not exist. The {map} keyword thus
allows you to force the creation of a map. The {yes} value will
create either an {array} or {hash} style map, as explained in the next
paragraph. The {array} and {hash} values create an atom-style or
hash-style map respectively.
For an {array}-style map, each processor stores a lookup table of
length N, where N is the largest atom ID in the system. This is a
fast, simple method for many simulations, but requires too much memory
for large simulations. The {hash} value uses a hash table to perform
the lookups. This can be slightly slower than the {array} method, but
its memory cost is proportional to the number of atoms owned by a
processor, i.e. N/P when N is the total number of atoms in the system
and P is the number of processors.
When this setting is not specified in your input script, LAMMPS
creates a map, if one is needed, as an array or hash. See the
discussion of default values below for how LAMMPS chooses which kind
of map to build. Note that atomic systems do not normally need to
create a map. However, even in this case some LAMMPS commands will
create a map to find atoms (and then destroy it), or require a
permanent map. An example of the former is the "velocity loop
all"_velocity.html command, which uses a map when looping over all
atoms and insuring the same velocity values are assigned to an atom
ID, no matter which processor owns it.
for large simulations. For a {hash}-style map, a hash table is
created on each processor, which finds an atom ID in constant time
(independent of the global number of atom IDs). It can be slightly
slower than the {array} map, but its memory cost is proportional to
the number of atoms owned by a processor, i.e. N/P when N is the total
number of atoms in the system and P is the number of processors.
The {first} keyword allows a "group"_group.html to be specified whose
atoms will be maintained as the first atoms in each processor's list

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