Compare commits

...

1140 Commits

Author SHA1 Message Date
0b3f1b8a15 patch 11Aug17 2017-08-11 12:19:02 -06: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
f68c6254d4 Merge pull request #611 from akohlmey/final-tweaks
More tweaks for stable release
2017-08-10 08:02:55 -06: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
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
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
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
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
e7d9aabca6 Merge branch 'kim-install' into install-and-docs-reviewed 2017-07-28 11:25:08 -04: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
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
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
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
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
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
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
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
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
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
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
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
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
81f342aafa fix variable name bug and synchronize with other ported Install.py files 2017-07-18 18:06:18 -04: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
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
a92d792537 update manual links that got broken when removing and renumbering a section 2017-07-18 12:55:55 -04: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
bda0730169 Modified the quip/lammps interface to pass lammps atom ids 2017-07-17 16:55:05 +01:00
992ce79701 add sanity checks to EAM potential file reader subroutine 2017-07-16 14:37:30 -04: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
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
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
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
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
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
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
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
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
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
1370385c8c patch 23Jun17 2017-06-23 17:10:59 -06:00
2240c3d7d3 Merge pull request #548 from lammps/doc-update
doc page clarifications for CHARMM energy and dipole pre-factors
2017-06-23 16:48:37 -06:00
4fcbd58d5a doc page clarifications for CHARMM energy and dipole pre-factors 2017-06-23 15:54:14 -06: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
25a5d12af3 Merge pull request #541 from lammps/charmm
use CHARMM energy conversion factor with new CHARMM pair styles
2017-06-23 09:10:04 -06: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
feb500b526 reword the kspace_modify fftbench keyword docs to reflect the current state (i.e. off by default) of code 2017-06-22 19:17:41 -04:00
a714b57741 make neighbor list reset message for minimization more explicit 2017-06-22 19:07:57 -04:00
c5430b0a26 print info messages when changing qqr2e constant in fully CHARMM compatible pair styles 2017-06-22 18:41:44 -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
60c3f3d64c use CHARMM energy conversion factor with new CHARMM pair styles 2017-06-22 09:15:15 -06:00
7a4a569859 Merge pull request #540 from lammps/neighrespa
fix issue with rRESPA inner/middle neighbor lists
2017-06-22 07:54:12 -06:00
4fc3f4f7e5 Merge pull request #538 from akohlmey/collected-small-changes
Collected small changes and bugfixes
2017-06-22 07:52:21 -06:00
f092da80a9 Fix some shadowing warnings 2017-06-22 13:28:12 +02:00
b0ddabbcde update examples for fix filter/corotate to comply with new CHARMM restrictions 2017-06-22 00:19:21 -04: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
de3157f720 document new restrictions to CHARMM compatible dihedral styles 2017-06-21 19:31:40 -04:00
0c6a751751 may check for 1-4 scaling factors in CHARMM dihedral styles only when "weightflag" is set, since they may be used with amber 2017-06-21 19:29:31 -04:00
612b44a895 enforce using 'special_bonds charmm' for dihedral styles charmm and charmmfsw 2017-06-21 19:15:52 -04:00
684b7334a5 enforce that CHARMM dihedral styles are run at the same r-RESPA level as pair 2017-06-21 19:08:02 -04:00
1fc2eb1e3e fix issue with rRESPA inner/middle neighbor lists 2017-06-21 15:12:51 -06:00
e69ef56f10 Merge pull request #539 from lammps/neighsize
insure compute pair/property local will use a copy of granular neighbor list
2017-06-21 15:03:12 -06:00
7dc380b113 insure compute pair/property local will use a copy of granular neigh list 2017-06-21 12:44:35 -06: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
1a77135ed6 whitespace cleanup in docs 2017-06-21 09:38:10 -04:00
f45c7e1fb0 update fix ti/spring docs to reflect it is part of USER-MISC 2017-06-21 09:36:30 -04:00
0cfe8980d4 dead code removal 2017-06-20 22:07:40 -04:00
2988508cee correct indexing bug in pair style lj/long/tip4p/long 2017-06-20 17:53:45 -04:00
15c596153a remove dead code 2017-06-20 17:38:28 -04:00
e13c94ed4f fix uninitialized variable bug spotted by coverity scan 2017-06-20 17:25:01 -04:00
812f1a8fab remove local variables shadowing global ones in BondsOMP() 2017-06-20 17:20:57 -04:00
218bc92c82 make pre-processor defines for using libc's qsort() consistent 2017-06-20 17:13:42 -04:00
ffa906de6f add C++ format identifiers to .h files 2017-06-20 16:18:34 -04:00
cccf72a21d make certain class member list is initialized to NULL before assigned to a neighbor list 2017-06-20 16:09:11 -04:00
87c028ed02 patch 20Jun17 2017-06-20 12:06:02 -06: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
84b530cca1 Merge pull request #537 from lammps/neb
minor changes to NEB doc pages and examples
2017-06-20 09:38:32 -06:00
50c9167913 small formatting correction in fix neb docs 2017-06-20 10:36:30 -04:00
d2610d9e7c minor changes to NEB doc pages and examples 2017-06-20 08:19:23 -06:00
326a8a1289 Merge pull request #536 from akohlmey/fix-nvcc-openmp-conflicts
Implement workaround for NVCC incompatibilities with OpenMP directives
2017-06-20 07:44:40 -06:00
b5300724bb Merge pull request #533 from lammps/user-intel
Updates for USER-INTEL package and NEB command flags/docs updates and issues
2017-06-20 07:44:17 -06:00
e129f18e6f Merge pull request #530 from akohlmey/no_static_sort_in_dump
Refactor Dump and Irregular classes to remove static class members
2017-06-20 07:43:49 -06:00
8c54fcd1b6 cleanup from aidan for fix reax/c/species and its KOKKOS version
this version eliminates the need for the PBCconnected list and avoids having to access the spec_atom array for ghost atoms
2017-06-19 17:31:54 -04:00
f5047ac3c7 augment fix shardlow check for ordering fixes to be KOKKOS compatible 2017-06-19 17:23:23 -04:00
164cedf353 protect all OpenMP pragmas with ifdefs and add special conditions for nvcc to ignore unsupported directives 2017-06-19 15:31:20 -04:00
3c329d1707 massive whitespace cleanup in USER-INTEL
removed are:
- DOS/Windows text format carriage return characters (^M)
- tabs replaced with spaces (tabs are evil!!)
- trailing whitespace
2017-06-19 13:23:01 -04:00
b687d16177 insert C++ file format indicator comments 2017-06-19 13:03:23 -04:00
9d3e34e492 add missing reference for lj/smooth/linear 2017-06-19 11:23:30 -04:00
8988b692a3 modified the documentation, first and last freeend can have different spring constants 2017-06-19 16:30:42 +02:00
c97415aefa corrected the initial free end 2017-06-19 14:57:39 +02:00
a9f3f90025 fix uninitialized members 2017-06-19 12:51:18 +02:00
9b8de3ba29 remove ifdefs for selecting between plain and hybrid merge sort. use hybrid only. 2017-06-17 09:30:41 -04:00
cd88b31450 same PR, also has cosmetic changes to new fix neb options 2017-06-16 17:02:05 -06:00
9b9f6d6fe2 USER-INTEL upgrade from M Brown 2017-06-16 16:56:28 -06:00
c1b0b1b3f9 restore old qsort() based code and add preprocessor directives to switch
-DLMP_USE_LIBC_QSORT will use qsort() from libc to sort (requires static/global variables).
-DLMP_USE_MERGE_SORT will use a plain merge sort. slightly slower for expensive comparisons.
-DLMP_USE_HYBRID_SORT will use hybrid merge sort. faster than merge sort (no static/global variables)
2017-06-16 18:17:48 -04:00
bc0241576f Merge pull request #532 from akohlmey/restore-heuristics-in-fix-shardlow
recover running USER-DPD with USER-OMP and suffixes
2017-06-16 09:46:58 -06:00
2a6f026853 mergesort performance improvements
- use insertion sort to pre-sort data in 32-element chunks
- swap pointers between merge runs instead of copying the data
2017-06-16 08:05:55 -04:00
8728a8ddae restore heuristics for checking against integrators that broke after PR #499 was merged 2017-06-15 15:16:50 -04:00
9aa450b832 Merge pull request #528 from akohlmey/no_static_in_ring_comm
Refactor ring communication to no longer require static class variables
2017-06-15 11:13:07 -06:00
0588c382f0 Merge pull request #513 from v0i0/bugfix-airebo-nconj-kronecker
Bugfix in AIREBO as reported in #59 by @KammIma
2017-06-15 11:12:29 -06:00
d3c90f3c14 Merge pull request #510 from akohlmey/collected-small-changes
Collected small changes
2017-06-15 11:12:14 -06:00
b62d526cc9 Revert "avoid undesired negative forces for high particle velocities in granular models"
This reverts commit 066123007c.
2017-06-15 11:01:36 -04:00
1a29048940 Merge pull request #531 from ohenrich/user-cgdna
Affiliation Update for USER-CGDNA
2017-06-15 08:54:52 -06:00
0a6b3f8790 Merge pull request #527 from dstelter92/master
Added compute_scalar to fix_grem
2017-06-15 08:54:22 -06:00
7227bc415d Merge pull request #526 from andeplane/vashishta_gpu
Implemented pair style vashishta in GPU package
2017-06-15 08:52:13 -06:00
a4bc233d86 Merge pull request #525 from akohlmey/user-tally-refactor
Refactoring of USER-TALLY computes to handle sparse/hybrid system for many processors plus bugfixes
2017-06-15 08:51:24 -06:00
5c5b4ffadb Merge pull request #522 from akohlmey/tip4p-cleanup-refactor
Refactor and bugfix for some TIP4P pair styles
2017-06-15 08:48:52 -06:00
30177c4eae Merge pull request #521 from pastewka/17_dump_nc
Updated NetCDF dump style (dump netcdf)
2017-06-15 08:47:29 -06:00
178eff237b Merge pull request #520 from stanmoore1/kokkos_update
Kokkos library update to v2.03.05
2017-06-15 08:47:09 -06:00
576b7f1d97 Merge pull request #519 from Pakketeretet2/USER-MANIFOLD-gaussian-bump
Some extensions/cleanup in USER-MANIFOLD
2017-06-15 08:46:55 -06:00
86369fec6b Merge pull request #517 from akohlmey/select-rigid-reinit-option
Add `reinit` keyword to rigid body fixes
2017-06-15 08:46:29 -06:00
79341ac5d1 Merge pull request #516 from akohlmey/check-rigid-overlap
Implement check whether commands or styles try to change cached properties in rigid body integrators
2017-06-15 08:44:05 -06:00
66945294a9 Merge pull request #515 from stanmoore1/remove_fences
Remove unnecessary thread fences in Kokkos package
2017-06-15 08:40:43 -06:00
9a7207e34c Merge pull request #511 from akohlmey/add-compute-cnp
Integrate compute cnp/atom contributed by Paulo Branicio (USC)
2017-06-15 08:38:05 -06:00
d41c617d1d Merge pull request #509 from akohlmey/add-atomonly-npair-for-omp
add "atomonly" optimized neighbor list build styles to USER-OMP
2017-06-15 08:24:44 -06:00
1ec9e588ff Merge pull request #504 from andeplane/hexorder_fix
Using correct ndegree instead of nnn
2017-06-15 08:24:25 -06:00
3c7417fb59 Merge pull request #497 from lammps/add-user-reaxc-omp
Add USER-OMP compatible OpenMP support to USER-REAXC
2017-06-15 08:24:03 -06:00
34cfc7bd51 Merge pull request #490 from EmileMaras/NEB-Change
added several features to the NEB
2017-06-15 08:23:04 -06:00
c98bb7fa5f Corrected minor bug in utility script 2017-06-15 12:57:44 +01:00
77ca68a2b4 Changed affiliation 2017-06-15 12:52:19 +01:00
06fe703eed add missing mergesort header 2017-06-14 23:22:49 -04:00
8500a197ae whitespace cleanup 2017-06-14 23:13:10 -04:00
1f17e8ebbb remove need for static class member variables in Dump and Irregular
The dump and irregular classes were using qsort() from the C-library
for sorting lists through custom comparison functions, which required
access to additional data, which was passed via static class variables,
i.e. globals. This collides with having multiple LAMMPS instances in
the same address space.

the calls to qsort() are replaced with a custom merge sort, which passes
a void pointer to the comparison functions, which can contain any kind
of desired information, e.g. a class handle or a list
2017-06-14 23:10:53 -04:00
fcc387f232 change ring communication API to no longer require a static variable pointing to 'this' of the caller 2017-06-14 17:01:06 -04:00
e7634a44f4 updated thermo_modify in example 2017-06-14 13:11:54 -04:00
3214d639aa removed unneeded .gitignore 2017-06-14 12:26:52 -04:00
0ad66ecb89 Added compute_scalar to fix_grem for easier output managment, updated example to show use 2017-06-14 12:18:22 -04:00
e139a7fd45 Updated docs for vashishta/gpu 2017-06-14 13:52:03 +02:00
d7646aeeed Fixed opencl error 2017-06-14 12:03:47 +02:00
5f9341813d Removed debug output 2017-06-14 10:57:54 +02:00
8441307185 Removed non-general CUDA-dir in makefile 2017-06-14 10:28:46 +02:00
720af5c360 Added vashishta to OpenCL makefile 2017-06-14 10:27:52 +02:00
eeff0b8633 Added vashishta GPU package for NVidia 2017-06-14 10:24:16 +02:00
32b967ed9c add rigid body overlap warnings to change_box and delete_atoms 2017-06-13 16:26:49 -04: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
11751521e7 remove dead code 2017-06-12 22:49:31 -04:00
7a05d87f7c update USER-TALLY examples 2017-06-12 22:20:36 -04:00
b01143102d refactoring of USER-TALLY computes to handle sparse and hybrid systems
with sparse and hybrid systems, Pair::ev_tally() may not be called on
every processor and thus the computes in USER-TALLY may hang during
reverse communication because of the error->all() call after checking
whether callback from Pair::ev_tally() has been called at least once.
To address this cleanly, a second callback function needs to be added,
which is run during Pair::ev_setup() and will now handle all memory
re-allocation and clearing of accumulators, just like it is done for
regular tallied data.
2017-06-12 22:12:12 -04:00
e530ba46f4 cleanup and bugfix for compute heat/flux/tally
- make heatj a pointer instead of a static array
- fix memory leaks for eatom, stress
- simplify and streamline computation
2017-06-12 21:46:00 -04:00
420db44596 print incompatible pair style warnings in USER-TALLY only on MPI rank 0 2017-06-12 20:05:15 -04:00
cfeb9b5ba5 Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes 2017-06-12 14:20:50 -04:00
0c805d0b70 correctly skip over point particles and point dipoles when counting extendend particles in fix rigid/small 2017-06-12 14:20:38 -04:00
6b289b0794 change incorrect EINERTIA constant in rigid body integrators from 4.0 to 2.0 (same as in other integrators) 2017-06-12 14:07:40 -04: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
daa77176ad add restart support to fix deform. only "initial" data is restored and some consistency check performed 2017-06-10 17:28:17 -04:00
8f18c284d3 add crude check to print warning when using compute cnp/atom on multi-type system 2017-06-10 17:08:07 -04:00
06915162b0 whitespace cleanup 2017-06-10 16:56:54 -04:00
a849f35dcd adjust compute cnp/atom to match the documentation. need to skip atoms not in compute group. 2017-06-10 16:55:42 -04:00
4c69bbcf5c apply rigid body check to displace_atoms command 2017-06-10 11:37:54 -04:00
dd44189d1f fix bug in compute orientorder/atom argument parsing 2017-06-10 04:35:11 -04:00
2f6bbcfbbc output detailed multi-thread performance data only with "timer full" 2017-06-09 15:11:40 -04:00
2686b7f830 simplify compatibility check for fix reax/c/bonds with pair styles 2017-06-09 14:39:52 -04:00
d3a863e7af when identifying molecules/clusters fall back to unfiltered coordinates for ghost atoms 2017-06-09 14:35:12 -04:00
64e8000720 expand error message requiring a reax/c derived pair style 2017-06-09 11:42:35 -04:00
c160d0cd5e fix reax/c/species/omp doesn't is not needed anymore 2017-06-09 11:04:11 -04:00
9222278fb5 match reax/c pair style variants against prefix and not full name 2017-06-09 11:00:16 -04:00
bdf03757e6 MAINT: Simplified GPL headers. 2017-06-08 23:20:21 +02:00
c81bc108f9 DOC: Updated dump_modify and dump netcdf documentation. 2017-06-08 23:19:38 +02:00
10d2e7c380 MAINT: DumpNetCDF and DumpNetCDFMPIIO need access to thermo output. 2017-06-08 23:18:54 +02:00
bd83c7c7f9 MAINT: Updated contact data and fixed typos. 2017-06-08 23:02:22 +02:00
d51cee1b82 MAINT: Turned 'global' options into a 'thermo yes'/'thermo no' option that enables dumping of thermo data to the netcdf file (for parallel NetCDF/MPIIO variant). 2017-06-08 22:58:27 +02:00
be476c9e1d MAINT: Turned 'global' options into a 'thermo yes'/'thermo no' option that enables dumping of thermo data to the netcdf file. 2017-06-08 22:43:10 +02:00
0ecdb99885 fix uninitialized data access as reported by @martok in #174 2017-06-08 13:50:17 -04:00
00ce15d043 Remove tpls dir 2017-06-08 10:43:19 -06:00
5c1d17d1c0 Updating Kokkos lib to v2.03.05 2017-06-08 10:42:08 -06:00
afd4f5b0a6 Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes 2017-06-07 17:37:13 -04:00
31a734b03d sbmask function should be flagged as const indicating no side effects 2017-06-07 17:10:33 -04:00
2e728972e2 make pair styles lj/cut/tip4p/long/omp, lj/long/tip4p/long and lj/long/tip4p/long/omp consistent with the reset of tip4p styles 2017-06-07 17:09:45 -04:00
36c8b26fef BUG: DumpNCMPIIO is now called DumpNetCDFMPIIO 2017-06-07 14:01:36 +02:00
99ef36f440 MAINT: Switched NetCDF from 64BIT_OFFSET to 64BIT_DATA which can handle frames (of unlimited dimension) > 2 GB. This becomes important for system sizes 100 Mio atoms and upwards. 2017-06-07 13:52:33 +02:00
a2edef7c9c local variable fp in pair style eam/cd was shadowing class member. renamed local variable to fptr 2017-06-07 00:23:53 -04:00
1f9504c546 some more bookkeeping updates triggered by the lj/sf style removal 2017-06-06 17:31:45 -04:00
04ebd81ac5 minor whitespace cleanup 2017-06-06 17:26:18 -04:00
5cb56796a2 alias pair style lj/sf to lj/smooth/linear and remove/update related files 2017-06-06 17:26:06 -04:00
0c1b87c8cf Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes 2017-06-06 16:27:07 -04:00
cd67eaa5f4 update e-mail and affiliation for stefan paquay in USER-MANIFOLD related files 2017-06-06 16:26:57 -04:00
18dee3f78e Added Gaussian bump. Updated e-mail address. 2017-06-06 16:03:09 -04:00
13643e185c Merge branch 'USER-MANIFOLD-gaussian-bump' 2017-06-06 15:47:41 -04:00
06c8e95774 corrected the fix_neb documentation 2017-06-06 14:20:54 +02:00
d437650c77 make certain Domain::box_change is initialized before use 2017-06-06 08:08:10 -04:00
46c5cbae8f update rigid fix documentation for added reinit keyword 2017-06-05 18:04:09 -04:00
deff6c666e add flag "reinit" with args "yes" / "no" to fixes rigid & rigid/small 2017-06-05 17:31:43 -04:00
3a01836325 simplify code for rigid body overlap checks 2017-06-05 16:39:17 -04:00
0034d2db35 apply the rigid body checks to some more example codes 2017-06-05 16:30:30 -04:00
ed50bd2254 Removing unnecessary fences 2017-06-05 13:54:13 -06:00
90ca0852c7 use "body" list via Fix::extract() to correctly identify atoms in bodies 2017-06-05 15:48:23 -04:00
968de8548c apply test for overlap with rigid bodies to set and velocity command 2017-06-05 13:06:53 -04:00
95d6f05a76 add 3 APIs to Modify for checking if atoms overlap with any rigid fixes 2017-06-05 12:41:37 -04:00
ff58ccac28 add clarification to impact of special bonds to manybody potentials 2017-06-04 21:21:32 -04:00
e03cc99467 made the command options more lammps standard style 2017-06-02 23:42:16 +02:00
f59ee5bd62 enable support for dynamic groups in fix planeforce and fix lineforce 2017-06-02 08:45:15 -04:00
af5f19604c remove no longer correct sentence from set command docs 2017-05-31 23:36:39 -04:00
3025996407 Merge branch 'master' into add-user-reaxc-omp
This updates the code base with several required updates from master
2017-05-31 12:53:38 -04:00
d2b6559039 Fixing issue in fix_qeq_reax 2017-05-31 10:52:03 -06:00
3c0cef9927 Merge branch 'fix_domain_pointer' of https://github.com/andeplane/lammps into collected-small-changes 2017-05-31 07:10:16 -04:00
937cf0b996 Bugfix: Kronecker term ignored in spline forces.
The code ignored the kronecker(ktype, 0) or kronecker(ltype, 0)
terms in the contributing terms to NconjtmpI and NconjtmpJ.
The issue was present both in ::bondorder and ::bondorderLJ and
led to energy conservation issues.
It has been fixed by checking for the atom type before entering
the offending calculations and adding clarifying comments.
2017-05-31 12:20:12 +02:00
f57f1efdff Setting lattice to NULL before creating 2017-05-31 00:34:26 -07:00
2b3c124e61 add example input for compute cnp/atom 2017-05-31 00:43:53 -04:00
85e917ae52 integrate compute cnp/atom contributed by Paulo Branicio (USC) 2017-05-31 00:38:44 -04:00
0be2cd3d43 fix bug reported on lammps-users, when not using the first molecule template 2017-05-30 23:58:56 -04:00
066123007c avoid undesired negative forces for high particle velocities in granular models 2017-05-30 21:54:16 -04:00
167a51538e support atom style variables for assigning image flags with the set command 2017-05-30 21:52:32 -04:00
5c6f63d8b4 Merge branch 'fix_adapt_doc_fix' of https://github.com/Pakketeretet2/lammps into collected-small-changes 2017-05-30 17:06:25 -04:00
03ab8d0f48 major neighbor list style whitespace cleanup 2017-05-30 17:04:48 -04:00
75b567a457 add "atomonly" optimized neighbor list build styles to USER-OMP 2017-05-30 16:50:38 -04:00
cace3e3530 Added missing :pre to doc/src/fix_adapt.txt 2017-05-30 16:08:32 -04:00
286d4f2743 Merge pull request #506 from lammps/snap
SNAP changes by Aidan
2017-05-30 13:32:00 -06:00
952b18fc02 Merge pull request #494 from rbberger/small_updates
Collection of minor updates
2017-05-30 10:51:24 -06:00
816fa93429 Merge pull request #499 from akohlmey/add-fix-compute-style-bugfix
Fix bug where fix/compute style names were not correctly set with suffixes
2017-05-30 10:49:27 -06:00
f4f975edd6 Merge pull request #495 from akohlmey/doc-fixes
Collected small updates and bugfixes
2017-05-30 10:48:57 -06:00
cff4e4a837 Merge pull request #468 from andeplane/gcmc_fix_nlocal
Using correct value for atom->nlocal in translate/rotate in fix_gcmc.cpp
2017-05-30 10:45:39 -06:00
32db4660bd Merge pull request #460 from andeplane/gcmc_fix
Setting molecule COM to 0 after moving atoms
2017-05-30 10:45:23 -06:00
22fdb1fc14 SNAP changes by Aidan 2017-05-30 10:21:07 -06:00
412cb8f089 avoid hang in fix reax/c/species when multiple atoms have the exact same x-coordinate 2017-05-30 08:15:55 -04:00
092806ad4f no need for special whitespace handling in library interface 2017-05-30 07:55:48 -04:00
4ae314731d must not use strtok() in library function as it is not re-entrant and may be used inside LAMMPS commands 2017-05-30 07:42:10 -04:00
4b8d2e829c triclinic member variable is referenced in destructor and thus must be initialized in constructor 2017-05-30 07:41:01 -04:00
d93938f7e1 displace_atom rotate needs to operate on unwrapped coordinates with image flags set to zero 2017-05-29 16:57:35 -04:00
c904cfb8bc removed a bug in fix_neb.cpp which prevented the freeend to work properly, plus added an example for the neb freeend 2017-05-29 15:49:04 +02:00
32c87f3131 removed a bug in fix_neb.cpp which prevented the freeend to work properly, plus added an example for the neb freeend 2017-05-29 14:00:13 +02:00
ba0ddea5e1 Using correct ndegree instead of nnn 2017-05-28 15:44:12 -07:00
c0339120d2 add missing neighbor list class definitions to USER-OMP 2017-05-26 21:28:41 -04:00
5a23d2d1da fix bug in computing mixed EAM potentials introduced by TI modifications 2017-05-26 20:28:45 -04:00
de446ace2f Merge branch 'user-manifold-doc-fix' of https://github.com/Pakketeretet2/lammps into doc-fixes 2017-05-26 18:44:29 -04:00
2055110e05 Fixed typo in dox. 2017-05-26 17:38:21 -04:00
5b1e582f03 prevent segfault when defining pair_style comb3 without arguments 2017-05-26 10:52:20 -04:00
f1ec6dc41a dead code removal and reformatting 2017-05-25 18:55:07 -04:00
c3f6e27bfe augment documentation for newly added multi-threaded reax/c styles 2017-05-25 17:00:19 -04:00
0a2fe70511 remove redundant code from fix qeq/reax and qeq/reax/omp 2017-05-25 16:31:31 -04:00
53e7fee5b7 Merge branch 'doc-fixes' of github.com:akohlmey/lammps into doc-fixes 2017-05-25 10:11:31 -04:00
5291f2ed6e fix bug in fix shear/history reported by kevin hanley. see #500 2017-05-25 10:11:24 -04:00
99a68e487f fix suffix style handling bug for adding fixes and computes 2017-05-25 02:01:04 -04:00
271431ab18 clean up code so it can be compiled with and without OpenMP enabled regardless of whether the USER-OMP package is installed 2017-05-24 17:25:57 -04:00
88d4150d2b remove trailing whitespace 2017-05-24 16:29:56 -04:00
0e3cfbc007 remove trailing whitespace 2017-05-24 16:29:26 -04:00
5345ad2da7 merge in the remainder of the USER-REAXC-OMP code. still a lot of work to do. compiles only with -fopenmp active 2017-05-24 16:24:43 -04:00
ead05f81c0 Merge branch 'pair_morse_soft-doc-fix' of https://github.com/Pakketeretet2/lammps into doc-fixes 2017-05-24 13:56:54 -04:00
4f9e7cbd16 Cleaned up docs for pair_mores, a missing :pre ruined formatting. 2017-05-24 13:36:14 -04:00
bb890941ca first chunk of code from USER-REAXC-OMP imported and adapted into USER-REAXC 2017-05-24 00:19:36 -04:00
4002dce639 restore explicit NAN constants in output 2017-05-22 22:39:52 -04:00
c801cdd81f some more formatting cleanup in fix neb 2017-05-22 22:33:14 -04:00
9008a31190 more formatting cleanup
This cleans up and simplifies the neb command code some more
2017-05-22 21:55:55 -04:00
bdfb7c69ea Remove unused code detected by coverity CID 177700 2017-05-22 17:51:40 -04:00
084626e60b Fixes coverity issue CID 179426 2017-05-22 17:36:16 -04:00
a7d790a827 Fixes coverity issue CID 179439 2017-05-22 17:33:47 -04:00
8a630ff4ec Fixes coverity issue CID 179440 2017-05-22 17:32:07 -04:00
617ca4e0c8 Fixes coverity issue CID 179436 2017-05-22 17:30:46 -04:00
62601678cd when growing arrays with reallocate, always check against atom->nmax and not atom->nlocal or else these arrays may be of inconsistent size and communication can lead to data corruption 2017-05-22 17:16:19 -04:00
081910adbc do not try to free null communicators 2017-05-22 17:15:14 -04:00
f73fd0625d rename nall class member to numall to avoid confusion with the common convention nall = atom->nlocal+atom->nghost 2017-05-22 17:14:38 -04:00
06a4f47a4c Merge remote-tracking branch 'upstream/master' into small_updates 2017-05-22 17:14:29 -04:00
7185db98b4 NEBLongRange was incorrectly set to false by default. revert to true. 2017-05-22 17:13:38 -04:00
4780d72809 use '&&' and '||' instead of 'and' and 'or' operators for consistency 2017-05-22 14:42:42 -04:00
3fd91a239f avoid use '&&' and '||' instead of 'and' and 'or' for consistency 2017-05-22 14:41:01 -04:00
8bc829c7f1 change example inputs to be backward compatible 2017-05-22 14:40:01 -04:00
97d3c843c4 small documentation fixes to fix typos and formatting issues 2017-05-21 11:13:47 -04:00
546aed7ccd plug some memory leaks 2017-05-19 16:14:59 -04:00
6ef79d3715 silence several compiler warnings 2017-05-19 15:13:19 -04:00
c2bf3269ac formatting cleanup. combine 8 MPI_Allreduce() calls into 1 2017-05-19 15:02:29 -04:00
aca16745e4 restore spelling fix and semantic fix from upstream 2017-05-19 12:17:19 -04:00
a5110d81ea correct a bunch of documentation formatting issues for updated neb and fix neb commands 2017-05-19 12:13:23 -04:00
2225fce94e patch 19May17 2017-05-19 07:35:36 -06:00
9593e05c9e Force PDF documentation build to fail on first error 2017-05-18 19:37:08 -04:00
941b737319 Merge pull request #493 from akohlmey/doc-and-example-fixes
Doc and example fixes
2017-05-18 16:40:46 -06:00
654e09e999 correct input examples affected by the Pair::settings() bugfix 2017-05-18 18:34:27 -04:00
8751850eca a few formatting fixes for pair style python 2017-05-18 18:34:03 -04:00
0f88348917 Merge pull request #492 from lammps/pre-patch
update docs before patch release
2017-05-18 13:44:34 -06:00
d4ee03c778 changed doc links 2017-05-18 21:31:39 +02:00
069f3e746b small formating changes 2017-05-18 21:23:29 +02:00
b28ecd44c2 update docs before patch release 2017-05-18 13:14:47 -06:00
9db9fc9de3 Merge pull request #491 from akohlmey/fix-bigint-thermo-in-variables-bug
convert bigint values for bonds/angles/dihedrals/impropers to doubles
2017-05-18 13:08:42 -06:00
6ac9b7a1b0 Merge pull request #482 from akohlmey/add-pair-python
Add python pair style for implementing simple pairwise additive potentials in python
2017-05-18 11:15:58 -06:00
34dbf6b225 do not compute properties twice 2017-05-18 12:45:43 -04:00
26d71b66e4 convert bigint values for bonds/angles/dihedrals/impropers to doubles when evaluating those keywords in variable expressions 2017-05-18 12:41:48 -04:00
65eacb6b90 Fix compilation warnings in fix_python 2017-05-18 12:20:39 -04:00
cb3344a337 Merge pull request #489 from akohlmey/thread-safe-biasing
port thread-safe temperature biasing from LAMMPS-ICMS
2017-05-18 09:15:07 -06:00
5d38cbbce9 Merge pull request #487 from akohlmey/pair_edip_multi_element
Import multi-element compatible pair style edip as edip/multi
2017-05-18 09:13:30 -06:00
30babd8157 Merge pull request #485 from akohlmey/pair_settings_cut_bugfix
Bugfix for correct resetting of previously set cutoffs to various Pair::settings() functions
2017-05-18 09:12:47 -06:00
aa09f45b7e Merge pull request #484 from akohlmey/add-gao-weber-styles
Add Gao-Weber manybody styles
2017-05-18 09:10:03 -06:00
4b61cf6f52 Merge pull request #483 from akohlmey/airebo-spline-bugfix-refactor
AIREBO spline code out-of-bounds and bondorder derivative bugfix and refactor
2017-05-18 09:01:33 -06:00
683f3d9d2a Merge pull request #481 from akohlmey/collected-small-changes
Collected small updates and bugfixes
2017-05-18 09:01:04 -06:00
ce18524251 Merge pull request #480 from akohlmey/pair_morse_smooth_linear_bugfix
corrections to pair style morse/smooth/linear
2017-05-18 08:57:24 -06:00
95dae9737b Merge pull request #488 from lammps/neigh_occasional_bugfix
bugfix for 2 recenty reported neighbor issues, also a ReaxFF fix species update from Stan
2017-05-18 08:53:54 -06:00
8daba01151 some small formating change but does not work anymore 2017-05-18 16:48:20 +02:00
640edbc1d4 added several features to the NEB 2017-05-18 11:08:08 +02:00
4b1914aa1f update citations for multi-element edip potential 2017-05-18 01:07:52 -04:00
bd11479a16 lock the sphinx command to version 1.5.6, since version 1.6.x seems to break one of the extensions we use 2017-05-18 00:50:35 -04:00
0208fe9996 update example outputs 2017-05-18 00:46:49 -04:00
24654ad28f small formatting corrections to pair python style 2017-05-18 00:38:36 -04:00
8d46aa6056 add readme file to discuss various python pair style usage examples 2017-05-18 00:31:54 -04:00
09f3b687f7 new long-rance example with using hybrid/overlay and table only for lj part 2017-05-18 00:31:15 -04:00
436d3fd761 make hybrid example use half the atoms with python, half with lj/cut 2017-05-18 00:30:41 -04:00
9833f38499 change coulomb example to use cutoff coulomb 2017-05-18 00:30:19 -04:00
9725708b90 update pair style python docs 2017-05-18 00:29:02 -04:00
67962b15fc a bunch refactoring changes in the python pair style and the examples
- make all python potential classes derived from LAMMPSPairPotential
  which contains shared functionality. We currently don't check
  for supported atom types. may want to add that again later.
- keep track of skipped atom types in the C++ code.
- add test against units setting. must set self.units='...' in constructor
- make compute_force method consistent with Pair::single() in LAMMPS and return force/r instead of force.
- rename potentials.py to py_pot.py
- update test runs. some small tweaks.
2017-05-17 20:55:48 -04:00
1d48f287f0 add partial documentation for pair style python 2017-05-17 19:05:18 -04:00
43efe9e417 adding Pair::single() support to python pair style and examples
with the single function, python pair styles can be massively
sped up and made compatible to accelerators, as one can translate
the analytic force and energy functions through LAMMPS into suitable
tables and then simply use the on-the-fly tables for production runs
2017-05-17 17:20:56 -04:00
278b9f7fba move pair gw and gw/zbl to USER-MISC package 2017-05-17 14:59:46 -04:00
085f3afdfb fix typo in docs 2017-05-17 09:59:30 -04:00
45becfb235 correct author attributions 2017-05-17 09:59:01 -04:00
a34c935e20 update log files in python pair style example 2017-05-17 08:00:21 -04:00
13e16dc3f1 update log files for pair style python examples 2017-05-17 07:52:13 -04:00
96f0a82aa5 simplify class names in pair style python examples. add SPC/E water example 2017-05-17 07:48:15 -04:00
7caf6cf459 Change how a Python pair style is loaded
Implements a class loader which takes a fully qualified Python class
name, loads the module and creates an object instance.

To add flexibility, the current working directory and the
directory specified by the LAMMPS_POTENTIALS environment variable are
added to the module search path.
2017-05-16 23:29:48 -04:00
8936b99e9f add contributed SiC.edip potential file 2017-05-16 18:15:53 -04:00
d2810f9f83 port thread-safe temperature biasing from LAMMPS-ICMS 2017-05-16 18:15:13 -04:00
597f95fb1b fix duplicate reference 2017-05-16 17:53:12 -04:00
7f9a331c73 bugfix for 2 recenty reported neighbor issues, also a ReaxFF fix species issue 2017-05-16 15:51:41 -06:00
35e92733e9 import multi-element compatible pair style edip as edip/multi 2017-05-16 17:40:59 -04:00
c11e87618b implement second bugfix suggestion from @CF17 on issue #59 2017-05-16 14:18:56 -04:00
ca87e57129 improved version of AIREBO splines based on a suggestion by markus hoehnerbach 2017-05-16 11:58:34 -04:00
66084ad1f4 fix typo in rerun docs. closes #486 2017-05-16 04:27:15 -04:00
d807ba1974 whitespace cleanup 2017-05-16 00:26:39 -04:00
51fc386e72 correct the inner loop range for resetting cutoffs when redefining a pair style
this was reported by frank uhlig on lammps-users for lj/cut, but it applies to many more pair styles
2017-05-16 00:26:18 -04:00
a6f0d700f1 Merge branch 'add-pair-python' of github.com:akohlmey/lammps into add-pair-python 2017-05-15 18:44:52 -04:00
14f3deed6b Minor coefficient lookup improvement 2017-05-15 18:43:46 -04:00
d66a696a84 avoid preprocessor warnings, by placing Python.h include file on the top, as suggested by python docs 2017-05-15 18:02:02 -04:00
69ccbd1562 Extract common wrappers to Python compatibility header 2017-05-15 17:46:57 -04:00
d9d4ef17c8 add gao-weber potentials (regular and with ZBL core) with SiC potential files
NOTE: documentation is missing
2017-05-15 17:44:25 -04:00
93cc6f4a5d Use in syntax for key lookup for Python 3 compatibility 2017-05-15 17:34:48 -04:00
0a40a7af7b whitespace cleanup 2017-05-15 17:00:41 -04:00
eb6f6a77e5 dead code removal 2017-05-15 16:16:12 -04:00
fb7164a811 replace pow(x,-0.5) with 1.0/sqrt(x) 2017-05-15 16:16:01 -04:00
64cf52d3b5 address spline out-of-bounds bug reported in issue #59 and refactor high-level spline code for consistency and efficiency 2017-05-15 15:55:15 -04:00
6a1f7e61f2 provide reference output for python pair style inputs 2017-05-15 00:25:11 -04:00
d662f5d429 whitspace cleanup and gitignore update 2017-05-15 00:22:22 -04:00
df55a90ef6 some example input file tweaks 2017-05-15 00:22:03 -04:00
6e113c1eaf basic feature complete version of lj melt example with python interaction function 2017-05-15 00:15:41 -04:00
f484ab6dfb completed lj parameter set and compute functions for melt example 2017-05-15 00:14:36 -04:00
86283c6309 make melt input consistent with melt example again 2017-05-15 00:13:32 -04:00
34cc3946b8 first few pieces of pair style python 2017-05-14 18:29:06 -04:00
6aa0250bc5 corrections to pair style morse/smooth/linear contributed by David R. Heine 2017-05-12 23:40:24 -04:00
c5db3ff401 two small doc corrections from Andrew Jewett for pair style gauss and dihedral style spherical 2017-05-12 23:27:58 -04:00
06c151421c Merge pull request #478 from akohlmey/add-python-source-cmd
Add python support features
2017-05-12 13:28:20 -06:00
0008b6fc2d Merge pull request #477 from lammps/renamings
rename some USER/misc dirs
2017-05-12 08:54:12 -06:00
b6a70ec6fd fixup docs after last change 2017-05-12 00:34:47 -04:00
c4d0f07093 Allow fix python to only execute every N steps 2017-05-12 00:29:58 -04:00
93f6033061 Add documentation about fix python 2017-05-11 23:50:40 -04:00
110bb79b14 Implement fix python mentioned in issue #454
Allows to call a python function at defined points in the integration loop
2017-05-11 23:50:30 -04:00
d84f8898b7 implement functions to execute arbitrary python code from strings or files and recast the python source keyword through using them. 2017-05-11 22:39:08 -04:00
27a6371f9b implement a python source command as suggested in issue #454 2017-05-11 19:18:09 -04:00
7c3b8e014c rename some USER/misc dirs 2017-05-11 10:15:28 -06:00
a069d21621 Merge pull request #476 from akohlmey/dump_custom_bugfix
dump custom memory allocation bugfix
2017-05-11 09:27:08 -06:00
d7f54464c6 Merge pull request #474 from rbberger/dump_vtk_fixes
Various dump vtk fixes
2017-05-11 09:25:42 -06:00
998eb44e83 Merge pull request #473 from akohlmey/compress-for-reaxc-fixes
compressed output via gzip for some ReaxFF fixes
2017-05-11 09:25:18 -06:00
96d1de8575 Merge pull request #471 from akohlmey/fix-4may2017-issues
Fix a bunch of remaining issues in the 4 may 2017 release
2017-05-11 09:24:35 -06:00
deff6ffaac Merge pull request #466 from DallasTrinkle/meam-spline-multicomponent
Meam spline multicomponent
2017-05-11 09:22:25 -06:00
328ef873d8 fix mixed memory alloc bug in dump custom. this closes #475 2017-05-10 22:41:41 -04:00
4ecf876a64 Added two examples of using the VTK dump style 2017-05-10 19:52:00 -04:00
c4ac5773cb Fix segmentation fault in dump vtk 2017-05-10 19:51:14 -04:00
cac1bf83ef Work around VTK 7 API change 2017-05-10 19:41:48 -04:00
abeb1e096a add support for gzip compressed output to fix reax/bonds, reax/c/bonds and reax/c/species 2017-05-10 11:19:18 -04:00
9f7ce39f9f correct some more omitted updates 2017-05-09 18:14:34 -04:00
29ae8d4ca3 correct broken links and references in documentation 2017-05-09 17:15:07 -04:00
3f4aee1046 implement overlooked changes from 4may2017 patch 2017-05-09 15:57:35 -04:00
d0da0639f0 add a couple of simple example single/multi-elment inputs for meam/spline pair styles 2017-05-09 15:51:59 -04:00
390ceb1475 whitespace cleanup 2017-05-09 15:49:37 -04:00
6c5edf6c70 performance improvement through avoiding function call and dereference overhead
- make i_to_potl() and ij_to_potl() functions inline and const
- don't dereference inside the functions, but cache, if possible in external variables
=> up to 15% speedup.
2017-05-09 15:38:10 -04:00
9cd994f57c fix issues with potential file parser
- use Force::open_potential()
- replace ftell()/fseek() with rewind()/fgets() which is safer on windows and other platforms with automatic CR/LF to LF conversion on text files
- make parser use properly NULL terminated strings through using strtok()
2017-05-09 15:35:48 -04:00
a6e2d5b5f7 Merge pull request #470 from lammps/integration
neighbor list bugfix to prevent cycle in copy lists
2017-05-09 10:32:25 -06:00
08ec55743e neighbor list bugfix to prevent cycle in copy lists 2017-05-09 08:55:18 -06:00
c4f90b3841 Merge pull request #449 from rbberger/python_refactoring
Add Python 3 compatibility and expand Python interface availability
2017-05-08 08:29:24 -06:00
f8af7edf92 Merge remote-tracking branch 'upstream/master' into python_refactoring 2017-05-06 16:00:22 -04:00
a73402ad93 update src/Purge.list with renamed reaxc src files 2017-05-04 14:53:08 -06:00
d7dbff0f54 jive Kokkos/reaxc file names with new user-reaxc file names 2017-05-04 14:46:59 -06:00
42531389df Cleanup of style (removing all tabs, shortened long lines). 2017-05-04 15:28:11 -05:00
f7230006fe OpenMP version added. 2017-05-04 15:08:04 -05:00
754b40cb31 Removed unused functions. 2017-05-04 13:16:46 -05:00
ffdc8b556d Cleanup. 2017-05-04 13:03:09 -05:00
5accce976a Cleanup. 2017-05-04 13:02:09 -05:00
349c1443a1 Cleanup. 2017-05-04 13:01:45 -05:00
2f71245d82 Removed extra "helper" functions. 2017-05-04 13:00:06 -05:00
51c6d50268 patch 4May17 2017-05-04 11:46:58 -06:00
6499cfcf52 Merge pull request #458 from stanmoore1/kokkos_sync_bugfix
Fixing auto_sync logic bug in modify_kokkos
2017-05-04 11:24:11 -06:00
f08e206991 Merge pull request #457 from stanmoore1/kokkos_ubuf
Adding ubuf union to Kokkos atom_vec styles
2017-05-04 11:23:55 -06:00
fbddfe2729 Merge pull request #455 from stanmoore1/kokkos_update
Updating Kokkos library to version 2.03.00
2017-05-04 11:23:39 -06:00
dcc5472cba Merge pull request #452 from akohlmey/small-fixes-and-updates
Small fixes and updates
2017-05-04 11:23:23 -06:00
addd87c0f7 new Section package and start doc pages and build scripts 2017-05-04 11:22:20 -06:00
480727815a Starting to refactor in preparation to contruct OMP version. 2017-05-04 11:27:55 -05:00
45187a0fc7 Fix system header #include style. 2017-05-04 11:05:50 -05:00
7409c6d781 Cleaned up atom->x and atom->f deferences. 2017-05-03 16:56:07 -05:00
11cb0212b7 Cleanup: two space indent + no trailing spaces on lines. 2017-05-03 16:49:43 -05:00
7f49ee8fd7 print warning about minimization energy with fix box/relax 2017-05-03 15:33:22 -04:00
7adc7f02e0 Stopped working on gaussian bump. 2017-05-03 11:21:18 -04:00
f5cf1f1314 Merge pull request #464 from akohlmey/rename-cg-cmm-to-cgsdk
Rename USER-CG-CMM package to USER-CGSDK
2017-05-03 08:37:20 -06:00
50c7234f26 Fix to communication for mpi. Tested, and now working correctly with MPI. 2017-05-02 09:43:57 -05:00
f58fc9488f Fixed neighbor list building that caused error in parallel runs with pair_meam_spline. 2017-05-01 21:56:19 -05:00
408cc19885 Fix for seg fault. 2017-05-01 20:36:09 -05:00
c76d27373e Another fix for seg fault in parallel allocation. 2017-05-01 20:33:07 -05:00
fb08dc09f3 Small error in elements allocation causing seg. fault for parallel runs; fixed. 2017-05-01 13:38:37 -05:00
914848433a Using correct value for atom->nlocal 2017-05-01 00:02:57 +02:00
8bddf105bf Updated version of equations, documentation. 2017-04-28 20:22:22 -05:00
31446e35b9 Cleanup on equations; JPG to be constructed. 2017-04-28 15:31:49 -05:00
9bdc43bb66 Updates to pair/meam/spline documentation. 2017-04-28 15:15:21 -05:00
a0b61d17b5 Updates to documentation: equation. 2017-04-28 15:08:59 -05:00
8cc8441367 Cleanup on pair_meam_spline.cpp 2017-04-28 14:53:25 -05:00
7d9670bc6c Addition of potential, code modifications to incorporate multicomponent spline MEAM in pair_meam_spline.
Backwards compatible with previous version of pair_meam_spline.
2017-04-28 14:48:34 -05:00
b8cb80b219 rename files in GPU library from cg_cmm to lj_sdk 2017-04-26 19:46:10 -04:00
cd435c0c58 change references from cg_cmm to lj_sdk and from cmm to sdk 2017-04-26 19:44:25 -04:00
548c589f82 update the README for USER-CGSDK 2017-04-26 19:35:54 -04:00
5c7a631988 rename USER-CG-CMM folder to USER-CGSDK 2017-04-26 19:29:39 -04:00
af74874516 rename references to USER-CG-CMM to USER-CGSDK 2017-04-26 19:27:13 -04:00
949d61e01e rename examples folder for USER-CGSDK package 2017-04-26 19:26:27 -04:00
3e60f79f1d remove cg/cmm style name aliases 2017-04-26 17:24:25 -04:00
8f9cb3590a correct units for some improper force constants in docs 2017-04-26 15:34:12 -04:00
67fced37c8 Setting molecule COM to 0 after moving atoms 2017-04-26 20:10:18 +02:00
0565b1df5f Fixing auto_sync logic bug in modify_kokkos 2017-04-26 10:49:20 -06:00
d73d70fa1f Adding ubuf union to Kokkos atom_vec styles 2017-04-26 08:15:42 -06:00
cc6104aeaf Merge branch 'master' into kokkos_update 2017-04-25 14:11:36 -06:00
8910ec6e59 Updating Kokkos lib to 2.03.00 2017-04-25 13:48:51 -06:00
ddc1e4e86e detect and refuse to run pair style srp together with fix rigid 2017-04-25 13:27:20 -04:00
2e1f8b4aef make Python::init() method public and remove the now redundant Python::request() method 2017-04-25 10:21:02 -04:00
958f05a6f3 Allow requesting Python interpreter without having to define a function just for that 2017-04-25 01:09:05 -04:00
0ac22e034c turn errors from manybody potentials for */tally computes into warnings 2017-04-22 21:50:27 -04:00
197ce4580b avoid division by zero also for ewald/disp 2017-04-21 17:27:08 -04:00
8f14511831 avoid division by zero by initializing unset (=automatic) g_ewald parameters to some number > 0. 2017-04-21 16:46:27 -04:00
396e0b5423 correct broken link in html bond doc overview 2017-04-21 14:02:17 -04:00
4e411364ff add support to pair_modify to selectively disable compute/tally callbacks in sub-styles for pair hybrid and hybrid/overlay 2017-04-21 14:01:38 -04:00
f0681f7e12 add support for USER-TALLY to pair styles hybrid and hybrid/overlay 2017-04-20 14:42:01 -04:00
dfa9815246 update for fix gle docs from michele ceriotti 2017-04-18 17:07:28 -04:00
25e8ed63a2 whitespace cleanup in VMD plugin headers 2017-04-18 11:46:19 -04:00
8d390100e0 update .gitignore and Purge.list for recent changes 2017-04-18 11:44:23 -04:00
dee3536144 update VMD molfile plugin headers and move them to lib/molfile (where they belong) 2017-04-18 11:42:31 -04:00
73c210b665 Merge branch 'unstable' of https://github.com/ketankhare/lammps into small-fixes-and-updates 2017-04-18 11:20:23 -04:00
4bad52f30c fix typos 2017-04-17 17:52:06 -04:00
481927ff16 correct 'thrid' instead of 'third' 2017-04-17 17:49:49 -04:00
dec36e9bfe fix typos and remove trailing whitespace 2017-04-17 17:40:57 -04:00
dd90c860ee refactor msi2lmp documentation to emphasize lack of active development
- put a note into the manual
- reorder contents of the README file
- request for information should be sent to lammps-users
- add list of known missing features
2017-04-17 17:40:21 -04:00
c9bc141335 remove doc text explaining restrictions that are lifted with the changes in this branch 2017-04-14 12:57:35 -04:00
3cbf4f3b58 correct logic bug in else branch of the conditional 2017-04-14 11:57:53 -04:00
6c2dd7ebb1 pass the name of the python interpreter compatible with the python package to 'make install-python' 2017-04-14 11:44:36 -04:00
d3187b22c4 restore lost change to PYTHON/Install.sh 2017-04-13 18:11:57 -04:00
2f32fb7f8b patch 13Apr17 2017-04-13 11:19:48 -06:00
e6f30ebc9c Merge remote-tracking branch 'origin/master' into python_refactoring 2017-04-12 20:26:57 -04:00
cb867ea91d Merge pull request #450 from rbberger/python_destruction_fix
Prevent segfault if Python was never initialized
2017-04-12 13:58:23 -06:00
961096f9df Prevent segfault if Python was never initialized 2017-04-12 11:17:15 -04:00
3fa9f0a27b Delete python_wrapper.h 2017-04-11 21:51:21 -04:00
05d7bc556f Initialize Python interpreter in PythonImpl constructor 2017-04-11 21:46:33 -04:00
2d8bce78a6 Refactor PYTHON package and wrapper classes 2017-04-11 21:22:30 -04:00
9a027a01da Add Python 3 compatibility to PYTHON package 2017-04-11 20:24:42 -04:00
4da8c1c4e2 patch 11Apr17 2017-04-11 09:00:37 -06:00
49dd9449b8 fix gcmc updates from Aidan, trimming of output for replica commands 2017-04-11 08:35:09 -06:00
76fd936972 Merge pull request #443 from Pakketeretet2/user-manifold-fix-every-keyword
User manifold fix every keyword
2017-04-11 08:27:53 -06:00
06cebb9fb4 Merge pull request #445 from Pakketeretet2/extract_for_bond
Extract for bond
2017-04-11 08:27:31 -06:00
b9d844ca8d Merge pull request #444 from ohenrich/user-cgdna
Minor updates to docu of USER-CGDNA package
2017-04-11 08:25:09 -06:00
ccc9367de7 Merge pull request #442 from akohlmey/small-updates-and-bugfixes
collected small updates and bugfixes
2017-04-11 08:24:32 -06:00
4c4a3fe5d1 Merge pull request #439 from rbberger/python_mixed_use_support
Support mixed Python use by honoring Python GIL
2017-04-11 08:24:06 -06:00
84ea8a79e6 correct link for dispersion parameter how-to and reformat 2017-04-10 20:43:24 -04:00
3d3d1061d3 README for updated header files from VMD 1.9.3 2017-04-10 18:41:36 -04:00
b9177fd6dc Updated to 1.108 from 1.103 2017-04-10 18:40:30 -04:00
8051b12ffc Updated to 1.33 from 1.32 2017-04-10 18:39:37 -04:00
f19f558220 Removed changed bond_harmonic from wrong position. 2017-04-10 10:06:03 -04:00
1ad7d856fe Added forgotten #include string to bond_harmonic.cpp 2017-04-10 09:57:54 -04:00
d6357420ae propagate global package installation bugfix to explicit package scripts 2017-04-07 15:29:56 -04:00
62b9fa22b8 when computing only rotational temperature, we must not subtract the default n-dim extra DOFs 2017-04-07 15:11:26 -04:00
1725832b6c address issue where uninstalling an empty package will erase all code in src 2017-04-06 11:08:57 -04:00
874944f2ec Made fix adapt support bond harmonic. 2017-04-04 19:37:17 -04:00
497a5d88af Merge branch 'master' into user-cgdna 2017-04-04 20:03:57 +01:00
8993daaa31 Minor update to docu 2017-04-04 19:54:22 +01:00
e190eb15f5 remove debug printf 2017-04-04 17:54:33 +00:00
b6bc33bac6 Merge branch 'user_manifold_fix' into user-manifold-fix-every-keyword 2017-04-04 13:31:22 -04:00
03a6f5237f Made every keyword for user-manifold work as advertised. 2017-04-04 13:30:49 -04:00
28e86917a0 Made fix adapt work with bond_harmonic. 2017-04-04 12:35:26 -04:00
6f1bbd3cec protect fix ave/histo from segfaulting on non-existing computes, fixes or variables 2017-04-03 18:08:15 -04:00
ae56b9ad89 patch 31Mar17 for stable release 2017-03-30 10:07:27 -06:00
4466d9fb4a Merge pull request #440 from ohenrich/user-cgdna
Updated lammps.book, USER-CGDNA install script
2017-03-30 09:34:35 -06:00
ac1aa9edea Updated README 2017-03-29 11:18:04 +01:00
c733204a70 Updated lammps.book and install script 2017-03-29 08:28:03 +01:00
1544b51dcb Support mixed Python use by honoring Python GIL
This enables support to both drive LAMMPS with a Python interpreter and
evaluating Python expressions inside of LAMMPS using that same interpreter.
Previously this has been avoided through an error message because the
binding code did not ensure that the necessary GIL (global interpreter lock)
structures exist (see issue #438).

All code paths which call Python C API functions must first acquire the
GIL through a call PyGILState_Ensure and release it with PyGILState_Release.
2017-03-29 01:49:15 -04:00
4b9d0a9566 sync with SVN 2017-03-28 13:26:12 -06:00
0637f23875 patch 28Mar17 2017-03-28 13:12:23 -06:00
9f6e126a2f Merge pull request #437 from ohenrich/user-cgdna
User cgdna
2017-03-28 12:52:26 -06:00
645f56cf70 Merge pull request #436 from Pakketeretet2/better_incorrect_input_handling_nh
Changed the check on initial and final temperature to <= 0 for both.
2017-03-28 12:51:17 -06:00
80e5111dca Merge pull request #434 from akohlmey/imgflags-in-library
improved image flag handling in library interface
2017-03-28 12:50:13 -06:00
7e9f05b617 Merge pull request #433 from akohlmey/fixes-for-stable
More small fixes for stable release
2017-03-28 12:49:09 -06:00
1d8f0c762d Merge branch 'master' into fixes-for-stable 2017-03-28 14:37:30 -04:00
ef6070cbde remove executable permissions for potential files 2017-03-28 14:35:58 -04:00
61f3ff1d2b Merge branch 'master' of github.com:lammps/lammps 2017-03-28 12:35:33 -06:00
111d350a22 fix gcmc units change for chemical potential 2017-03-28 12:34:46 -06:00
1dfd61f532 Merge pull request #432 from Pakketeretet2/user_manifold_fix
Fixed a bug with equal-style variables as manifold params.
2017-03-28 12:33:45 -06:00
5c1f5462e7 Removed contribution line from header files 2017-03-28 19:08:24 +01:00
66a6375405 Resolved merge conflict 2017-03-28 18:58:31 +01:00
604afebf6f Update to oxDNA2 2017-03-28 18:22:02 +01:00
8afed61db1 Upgrade to oxDNA2 2017-03-28 18:16:36 +01:00
ee55a98103 Changed the check on initial and final temperature to <= 0 for both. 2017-03-28 11:22:10 -04:00
f8da9a866a synchronize dump custom/vtk documentation with that of dump custom 2017-03-28 11:00:22 -04:00
28bdebd3c0 avoid segfault when calling PPPM*::memory_usage() before grid communication is initialized 2017-03-28 07:50:48 -04:00
fc51c38abb add some docs for the special treatment of image flags 2017-03-28 02:22:45 -04:00
443ea13eff add image flag packing/unpacking to library/python interface 2017-03-28 02:05:05 -04:00
5feeb79c13 one more line of dead code removed 2017-03-27 15:16:28 -04:00
a241b2d0f7 fix problems with references 2017-03-27 15:01:32 -04:00
61e7595a94 remove references to xmovie, streamline dump and viz descriptions 2017-03-27 14:59:58 -04:00
da9096750e update .gitignore for newly added files 2017-03-27 14:30:21 -04:00
87ea9ba661 bugfix for library interface 2017-03-27 14:29:13 -04:00
c041727e4f remove dead code and reduce trivial compiler warnings (clang++) 2017-03-27 14:28:50 -04:00
3feffbe1de Removed diagnostics. 2017-03-27 13:49:53 -04:00
04fd038d35 Fixed a bug with equal-style variables as manifold params. 2017-03-27 13:46:57 -04:00
3dfe4505dd 24Mar17 patch sync with SVN 2017-03-24 15:17:51 -06:00
394e9b42b0 new CHARMM pair styles with force swithing/shifting 2017-03-24 13:53:07 -06:00
e6fcaefe95 Merge pull request #431 from v0i0/fix-airebo-morse
Fix airebo/morse
2017-03-24 10:03:29 -06:00
f5a85d68ad Merge pull request #429 from akohlmey/updates-for-stable
Collected updates for stable release
2017-03-24 10:01:23 -06:00
277b93cb89 Merge pull request #417 from tonnamb/add-pair-zhou
add new pair potential for metal-organic interactions - pair style momb
2017-03-24 09:41:30 -06:00
8820315ff9 Merge branch 'master' into updates-for-stable 2017-03-23 17:57:02 -04:00
44841f6891 fix ave/chunk fixes, 2d disc option, fix_modify dynamic/dof 2017-03-23 15:31:27 -06:00
2cdcd6d630 remove one more reference to xmovie 2017-03-23 16:03:25 -04:00
47cade2bcf re-arranged functions to make it easier to compare with non-threaded. port bugfixes to airebo to USER-OMP 2017-03-23 15:19:02 -04:00
a72efbea36 whitespace cleanup 2017-03-23 15:18:23 -04:00
5c9892c083 apply airebo/m bugfix also to USER-OMP version 2017-03-23 14:14:49 -04:00
9ecc5c8cf7 Merge branch 'fix-airebo-morse' of https://github.com/v0i0/lammps into pull-431 2017-03-23 14:12:37 -04:00
47cebb0d23 And getting it right... 2017-03-23 17:43:27 +01:00
f127e428cc Fix airebo/morse
Introduced in b3d2fb91, PCCf_2_0 does not get initialized in ::settings
in PairAIREBOMorse. Future proof by calling super-class.
2017-03-23 17:37:49 +01:00
568b67eee9 include citation for reference paper into pair style momb 2017-03-23 12:00:53 -04:00
865b41e201 make pair style momb example follow LAMMPS conventions more closely 2017-03-23 11:50:10 -04:00
b88a749680 rename a couple more references to pair style zhou into momb 2017-03-23 11:38:33 -04:00
02e65900e6 add example log file generated from 17Nov16 version of lammps, make minimize and run short in system.in 2017-03-23 11:03:00 -04:00
343c9eda82 change zhou to momb in src/USER-MISC/README 2017-03-23 10:24:13 -04:00
df8dbec676 rename pair_zhou to pair_momb in src and change class name from PairZhou to PairMomb 2017-03-23 10:22:49 -04:00
1075be7eca rename zhou to momb in examples 2017-03-23 10:18:15 -04:00
6d395ec511 change name zhou to momb in docs, fix grammar 2017-03-23 10:08:47 -04:00
bf560e78f3 edit description and add related commands and default 2017-03-22 16:56:40 -04:00
daae76c465 Add names Tonnam and Ya to README 2017-03-22 15:59:00 -04:00
1ea9a14121 Add Tonnam and Ya names 2017-03-22 15:55:34 -04:00
1db5834b99 Revert "Cleanup of a few more references to obsoleted and removed tools like xmovie"
This reverts commit 127597023d.
2017-03-22 15:12:49 -04:00
3070b043be Revert "correct inconsistent anchors"
This reverts commit a14d58259c.
2017-03-22 15:12:47 -04:00
ef3f323fc4 Revert "remove reference to removed section on VMD scripts"
This reverts commit 66eb9c2486.
2017-03-22 15:12:43 -04:00
43a304f564 remove reference to removed section on VMD scripts 2017-03-22 15:12:09 -04:00
a79aef65e8 correct inconsistent anchors 2017-03-22 15:12:09 -04:00
dc1d93a491 some more whitespace cleanup 2017-03-22 15:08:09 -04:00
66eb9c2486 remove reference to removed section on VMD scripts 2017-03-22 15:01:11 -04:00
a14d58259c correct inconsistent anchors 2017-03-22 15:00:57 -04:00
127597023d Cleanup of a few more references to obsoleted and removed tools like xmovie 2017-03-22 14:57:37 -04:00
3ec16f3630 fully integrate support for doc_anchor_check into docs makefile 2017-03-22 14:40:30 -04:00
cb9059652d a few more small changes to integrate pair style zhou properly 2017-03-22 14:39:46 -04:00
43f27250b5 Merge branch 'add-pair-zhou' of https://github.com/tonnamb/lammps into pull-417 2017-03-22 14:05:16 -04:00
af0b5b0e84 Removed dead code 2017-03-22 16:23:29 +00:00
c5d561a312 pair_zhou docs: add equation, add link in section_commands and pairs 2017-03-22 12:00:32 -04:00
7435084375 Verified oxDNA with modified nucleotide layout 2017-03-22 15:59:10 +00:00
734e639c5d correct typo reported on lammps-users 2017-03-21 14:12:00 -04:00
dcede304df changes for next patch, 2d disc options for spheres, fix external upgrade, bug fixes for fix ave/chunk for density calcs, Aidan doc page citation deconvolution 2017-03-21 08:56:37 -06:00
145e682ad3 Merge pull request #427 from akohlmey/small-updates-and-corrections
Various updates and corrections for upcoming stable release
2017-03-21 08:18:21 -06:00
6482df6c2f remove references to deleted tools. update/clarify section on restart2data 2017-03-20 18:57:30 -04:00
0c9cd11b4e have the relevant LAMMPS version embedded into top part of the html manual 2017-03-20 18:25:11 -04:00
82d952ae0e mention NumPy dependency instead of Numeric for python tools 2017-03-20 17:26:19 -04:00
47d6451d03 fix compilation for pymol_asphere tool 2017-03-20 17:18:24 -04:00
e110d6961a remove obsolete tools and files 2017-03-20 17:17:35 -04:00
a42b0b7dcb update colvars abf integrate tool from git repo 2017-03-20 17:04:16 -04:00
03828b5836 adapt binary2txt.cpp source to current coding conventions 2017-03-20 16:57:32 -04:00
3b44c3ff1d remove non-ASCII characters from doc source files 2017-03-20 16:55:14 -04:00
0d0c2b65f7 correct stan's email address 2017-03-20 16:32:16 -04:00
2218a9d704 emphasize that the online manual is following the latest development version 2017-03-20 16:32:04 -04:00
0a6b33cd78 remove duplicate paragraph in nose-hoover fix docs 2017-03-20 16:27:00 -04:00
ecf17621aa more permission fixes 2017-03-20 16:25:06 -04:00
f0c6ed004d remove xmovie 2017-03-20 16:24:38 -04:00
554531a302 update permissions 2017-03-20 13:51:36 -04:00
d496c0fdfa Merge pull request #426 from dstelter92/master
fix for temper_grem exchange probability
2017-03-20 08:57:29 -06:00
5c39dfd740 re-ran example with fixed exchanges 2017-03-20 09:22:09 -04:00
5b842f0010 Teff and exchange bugfix, as per Greg Dignon to match python examples 2017-03-20 09:15:48 -04:00
52987a3615 Started writing pair_zhou.txt 2017-03-18 22:32:39 -04:00
b6ecfb91c4 deleted pair_zhou in main/src (moved to USER-MISC) 2017-03-18 21:22:02 -04:00
d04ea8653d add examples for pair_zhou 2017-03-18 21:21:25 -04:00
2ab77caa8b adapt to LAMMPS coding style 2017-03-18 21:01:40 -04:00
da81531906 move pair_zhou to USER-MISC and update USER-MISC/README 2017-03-18 20:54:12 -04:00
5be32f5d8d remove pair_zhou from Makefile.list 2017-03-18 20:48:49 -04:00
4a90bca7a3 patch 17Mar17 2017-03-17 11:29:23 -06:00
9f35b764f8 Merge pull request #424 from timattox/dpd_restart_fix
Remove unneeded restart_peratom flags in USER-DPD package
2017-03-17 11:19:04 -06:00
7ca5dce2f5 Merge pull request #423 from timattox/master_bugfix_irregular
bugfix for irregular::create_atom and create_data
2017-03-17 11:18:52 -06:00
fcc3b3bd36 Merge pull request #421 from akohlmey/memory-output
improve memory usage reporting in info and output class
2017-03-17 11:18:08 -06:00
53a3877c3d Merge pull request #420 from rbberger/doc_anchor_check
Add utility to detect duplicate anchors in docs
2017-03-17 11:17:28 -06:00
a936b7b2ab Merge pull request #419 from rbberger/python_fixes
Library interface fixes, Python example fixes and better Python 3 compatibility
2017-03-17 11:16:58 -06:00
a91b851f3d Merge pull request #416 from lukin17/filter_corotate
Added fix filter/corotate.
2017-03-17 11:14:59 -06:00
d31c591b60 Remove unneeded restart_peratom flags 2017-03-17 09:40:39 -06:00
ae5ebf6001 add support for MPI_Request_free() to MPI STUBS library 2017-03-17 11:40:09 -04:00
7fb741d53d Revert "In irregular.cpp use simpler and slightly faster MPI_Reduce_scatter_block()"
This reverts commit 8e75616c14.
2017-03-17 11:35:59 -04:00
8e75616c14 In irregular.cpp use simpler and slightly faster MPI_Reduce_scatter_block() 2017-03-17 03:02:42 -04:00
411c069ba6 BUGFIX: Prevent possible deadlock in Irregular::create_atom and create_data 2017-03-17 03:02:19 -04:00
ac82d041cc ignore package pair style 2017-03-16 23:12:49 -04:00
621d7d5ce0 Correct off-by-one error in line number reported 2017-03-16 23:05:03 -04:00
1bb9c7da42 Remove some duplicate anchors in documentation 2017-03-16 22:36:13 -04:00
f893104b18 Add anchor_check to doc Makefile 2017-03-16 22:21:55 -04:00
efb2a942e0 Add utility to detect duplicate anchors in documentation files 2017-03-16 22:21:12 -04:00
070ce33a13 improve memory usage reporting in info and output class 2017-03-16 18:35:04 -04:00
f604f86cfc add fix filter/corotate to some administrative files 2017-03-16 15:08:17 -04:00
bed288339e simplify and shorten examples for fix filter/corotate and combine into a single folder 2017-03-16 15:02:50 -04:00
1995f434f3 fix some more code formatting issues, add newline at EOF 2017-03-16 14:24:28 -04:00
db0281b4df Merge branch 'filter_corotate' of https://github.com/lukin17/lammps into pull-416 2017-03-16 12:14:09 -04:00
8f37285b05 UPLOAD examples 2017-03-16 21:12:10 +09:00
ef72145540 Readme for examples 2017-03-16 21:10:41 +09:00
2f5e711acd Merge remote-tracking branch 'upstream/master' into filter_corotate 2017-03-16 10:00:12 +01:00
bdb7669e27 Fixed coding style. 2017-03-16 09:44:07 +01:00
cda8213892 Added Python matplotlib plot example 2017-03-16 01:41:28 -04:00
ef940d226c Improve Python 3 compatibility of pizza tools and simplify read_snapshot code 2017-03-16 01:38:05 -04:00
36da9223ec Fix dump cfg in vizplotgui_atomeye.py example 2017-03-15 22:55:51 -04:00
eb29ef32b1 Fix space/tab error in pizza/gl.py 2017-03-15 22:43:00 -04:00
29550d472d Fix dump cfg in viz_atomeye.py example 2017-03-15 22:31:14 -04:00
79cae51156 Document property 'uses_exceptions' of Python interface 2017-03-15 22:20:30 -04:00
a210867025 Fixes lammps_create_atoms library function and its Python interface variant
The interface of that function has changed and includes two additional
parameters, which haven't been added to the Python interface either.
This showed up by trying to run the simple.py example.
2017-03-15 22:13:06 -04:00
0262a54ecf Fix Python 3 compatibility by encoding strings passed as c_char_p 2017-03-15 22:00:43 -04:00
0d8f74f0c5 Merge branch 'filter_corotate' of https://github.com/lukin17/lammps into pull-416 2017-03-15 18:54:41 -04:00
3a2da51a82 Merge pull request #413 from ohenrich/user-cgdna
User cgdna
2017-03-15 13:12:43 -06:00
b1c59126f7 Merge pull request #415 from stanmoore1/kk_qeq
Add neigh/qeq option to Kokkos package
2017-03-15 13:12:08 -06:00
4c77838514 Merge pull request #414 from sstrong99/flow-gauss-doc-addition
flow/gauss documentation update
2017-03-15 13:11:26 -06:00
f9468f46f5 Merge pull request #412 from timattox/master_typofix
Correct a typo in the fix_halt.txt documentation.
2017-03-15 13:10:58 -06:00
ec1778b586 add pair_zhou 2017-03-15 11:10:04 -04:00
c3ce3747e0 Added fix filter/corotate. 2017-03-15 11:34:01 +01:00
fdc390ad05 Tweaking docs for Kokkos package 2017-03-14 14:08:14 -06:00
580f6b567b Add neigh/qeq option to Kokkos 2017-03-14 10:44:31 -06:00
27b1c33a16 updated the NEMD discussion in the how-to documentation about flow/gauss 2017-03-14 10:39:06 -06:00
7a75cd111c Minor updates in documentation and setup tool, merge before upgrade to oxDNA2 2017-03-14 11:39:09 +00:00
23b8287933 Updated documentation and simple setup tool 2017-03-14 11:36:44 +00: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
4cfe623bc1 Correct a typo in the fix_halt.txt documentation. 2017-03-10 21:30:03 -05:00
f871ecdc67 change to RCB cuts in load-balancing commands, also a new option for fix halt 2017-03-10 15:55:07 -07:00
470353e320 Merge pull request #408 from giacomofiorin/colvars-update-2017-03-10
Colvars update 2017-03-10
2017-03-10 14:51:16 -07:00
ffe02d20ca Merge pull request #406 from stanmoore1/kokkos_bugfix
Fix Kokkos issues
2017-03-10 14:51:04 -07:00
f70752c18f Include PDF of Colvars doc missing in previous commit 2017-03-10 15:58:35 -05:00
07fcfd6d54 Merge pull request #405 from stanmoore1/ev_setup_kk
Add alloc flag to ev_setup
2017-03-10 11:01:51 -07:00
c97feafca6 Merge pull request #407 from frobnitzem/master
Add error check to lammps_gather_atoms/lammps_scatter_atoms in library.cpp
2017-03-10 11:00:30 -07:00
b20d95d495 Merge pull request #402 from timattox/USER-DPD_spelling
Fix spelling "correction" from 3a054d1a: iterations not interactions and imd_writen not imd_written
2017-03-10 10:59:43 -07:00
0b4adaa9e6 Backport typo fixes that were not previously pushed to the Colvars repository 2017-03-10 09:24:46 -05:00
5fe6206638 Update Colvars module to version 2017-03-10 2017-03-10 09:16:58 -05:00
65964f3b31 Add error check to lammps_gather_atoms/lammps_scatter_atoms in library.cpp 2017-03-09 16:49:07 -05:00
b28b84d444 Fix half from full nlist issue with Kokkos 2017-03-09 14:00:27 -07:00
a001a5ceb0 Fixing memory overflow issue in comm_kokkos 2017-03-09 12:20:49 -07:00
2ef713ea1b restore incorrect change due to spell checking in fix imd 2017-03-08 16:40:16 -05:00
1f6c1942b3 Disable allocation of per-atom arrays in ev_setup for Kokkos styles 2017-03-08 12:42:44 -07:00
683023d820 Adding alloc flag to ev_setup 2017-03-08 12:36:23 -07:00
42d3a8f498 Fix spelling "correction" from 3a054d1a: iterations not interactions. :-) 2017-03-07 15:41:06 -05:00
79b005dc3d patch 7Mar17 2017-03-07 11:40:07 -07:00
a2fa6ef452 Merge pull request #393 from akohlmey/small-bugfixes
Small bugfixes
2017-03-07 09:56:03 -07:00
920641bbff Merge pull request #399 from rbberger/docs_spelling_fixes
Correct spelling errors in documentation
2017-03-07 09:47:22 -07:00
c2aabdec22 Merge pull request #398 from stanmoore1/kokkos_changes
Kokkos changes
2017-03-07 09:46:54 -07:00
e4aa735a68 Merge pull request #395 from timattox/USER-DPD_bugfix
USER-DPD: a variety of small but important bugfixes
2017-03-07 09:46:40 -07:00
4af6557568 Merge pull request #394 from jaapkroe/kolmogorov-crespi
Added Kolmogorov-Crespi potential
2017-03-07 09:46:08 -07:00
0798885bdb Merge pull request #389 from akohlmey/update-agni-potential
update AGNI potential for Al, reference runs and output and citation
2017-03-07 09:35:31 -07:00
020e75e7ef Merge pull request #386 from akohlmey/doc-consistentcy
improve consistency of manual
2017-03-07 09:33:14 -07:00
d6866f1cfd Merge pull request #376 from v0i0/airebo-bondorderLJ-fixes
Fixes for PairAIREBO::bondorderLJ
2017-03-07 09:32:30 -07:00
efaa4c6710 new neigh_modify exclude option, other SNAP changes 2017-03-07 09:31:12 -07:00
08baaa9d8e Fix more typos in tools 2017-03-07 01:00:25 -05:00
359af419a7 Fix typo in python README 2017-03-07 00:58:35 -05:00
21be86c423 Fix typos in txt2html 2017-03-07 00:58:03 -05:00
d6800405a5 Fix more typos in examples 2017-03-07 00:57:23 -05:00
3a054d1a82 Fix more typos in src files 2017-03-07 00:55:01 -05:00
007f3c66a0 Third batch of spelling fixes in manual 2017-03-07 00:51:31 -05:00
32708860a9 Add remaining false positives 2017-03-07 00:27:35 -05:00
fc9eebb936 Added spellcheck utility to documentation build
Uses the sphinxcontrib-spelling extension and requires PyEnchant and
aspell-en to be installed.

Adds the optional make target 'spelling' which produces the file
spelling/output.txt. It contains all words it detects.

Due to the large number of false positives, words in
utils/sphinx-config/false_positives.txt are ignored.
2017-03-05 21:23:41 -05:00
dd76ac5010 Fix typos in tools folder 2017-03-05 21:18:01 -05:00
17486a9319 Convert USER/lb/polymer files to UNIX line endings and remove trailing whitespace 2017-03-05 21:16:21 -05:00
778a79b8ee Fix typos in examples folder 2017-03-05 21:10:33 -05:00
7dd60f9737 Fix typos in src files 2017-03-05 21:03:40 -05:00
084d831bce Second batch of spelling fixes in manual 2017-03-05 21:02:51 -05:00
e261bef7bb Spelling fixes in source files 2017-03-05 18:30:39 -05:00
fd78486086 First batch of spelling fixes in manual 2017-03-05 18:27:38 -05:00
6382d3c89a Improving memory access in comm_kokkos 2017-03-03 09:14:47 -07:00
763a00e8b0 USER-DPD: pair_multi_lucy_rx bugfix for systems with multiple atom types 2017-03-03 09:29:17 -05:00
ce1a3f25e1 Merge branch 'pair_write_fix' of https://github.com/andeplane/lammps into small-bugfixes 2017-03-03 08:11:55 -05:00
eaf7ed7707 Print error if pair_write does not get correct number of arguments 2017-03-02 21:25:27 -08:00
9a560b9091 USER-DPD bugfix: make atom_vec_dpd work properly with atom_vec_hybrid.
We were sending too much data during pack_comm_hybrid/unpack_comm_hybrid.
2017-03-01 15:22:28 -05:00
8a0e44db83 updated documentation and ev_tally 2017-03-01 16:13:44 +01:00
1dc78a7e58 USER-DPD: correct off-by-one errors in PairMultiLucyRX::coeff() 2017-02-28 17:45:21 -05:00
7a593c2fc8 USER-DPD: correct off-by-one errors in PairTableRX::coeff() 2017-02-28 14:25:03 -05:00
3ac74a1d69 update lammps.book file for latest doc changes 2017-02-28 11:21:18 -05:00
3605208a45 add a few more missing details for integrating pair style kolmogorov/crespi/z 2017-02-28 11:16:27 -05:00
9b01949cac make the introduction of the command-by-category list less confusing 2017-02-28 11:05:40 -05:00
323570c920 added jpg for kolmogorov-crespi-z equations and fixed hybrid/overlay check in source 2017-02-28 15:39:01 +01:00
df13a7a003 email added 2017-02-28 15:12:35 +01:00
a1b40b902d Added Kolmogorov-Crespi potential 2017-02-28 14:59:13 +01:00
b921b69f47 implement bugfix from issue #388
this closes #388
2017-02-27 18:22:21 -05:00
c0cf50bce5 trigger recomputing ichunk between runs unless requested otherwise
this fixes #390
2017-02-27 18:19:59 -05:00
2708c86836 fix typos: moleclue -> molecule
this closes #386
2017-02-27 18:03:18 -05:00
9999f363a1 remove outdated log files, too. 2017-02-24 15:34:59 -05:00
a18b4ef4b0 update AGNI potential for Al, reference runs and output and citation 2017-02-24 15:33:13 -05:00
3626496c7c Corrected comment in 3' to 5' directionality check 2017-02-22 20:06:49 +00:00
458b6749e7 Corrected comment in 3' to 5' directionality check. 2017-02-22 20:03:41 +00:00
20a9ffe69d improve consistency and resolve dead links for USER-CGDNA related doc files 2017-02-21 21:27:34 -05:00
49e83b4348 patch 21Feb17 sync with GHub 2017-02-21 16:07:26 -07:00
6e89ccd522 Merge pull request #385 from akohlmey/collected-small-bugfixes
collected small bugfixes and updates
2017-02-21 15:59:06 -07:00
53f3df5bfc Merge pull request #384 from lammps/another_neigh_refactor
more neighbor list changes, some new options
2017-02-21 15:57:23 -07:00
3dbbea342a remove a debug print line 2017-02-21 15:57:03 -07:00
b70c670aac Merge pull request #383 from stanmoore1/rshan_class2_kk
Kokkos version of class2 bond, angle, dihedral, and improper from Ray Shan
2017-02-21 15:52:10 -07:00
1d17cae407 Merge pull request #382 from timattox/master_kokkos_neigh_bugfix
neighbor_kokkos.cpp: Don't call grow() on neighbor lists that are copies
2017-02-21 15:51:35 -07:00
429264a12b Merge pull request #380 from hheenen/core_shell_documentation
updated documentation and examples for coreshell
2017-02-21 15:50:53 -07:00
d001a09345 Merge pull request #379 from ndtrung81/pppm-gpu-compute-group-group
Fixed bugs with pppm/gpu when used with compute group/group
2017-02-21 15:50:28 -07:00
cb9d42da08 Merge pull request #378 from timattox/USER-DPD_ssa_update
USER-DPD: performance optimizations to ssa_update() in fix_shardlow
2017-02-21 15:50:07 -07:00
7185ec92b3 Merge pull request #377 from stanmoore1/kokkos_update
Kokkos library update
2017-02-21 15:49:50 -07:00
1cd4c48ccc new SNAP potential for W 2017-02-21 15:49:21 -07:00
a88136c3f5 correct a logic bug in fix wall/gran/region 2017-02-17 17:58:24 -05:00
ce20c7ffe9 remove debug code 2017-02-17 12:42:07 -05:00
4a80df3a99 more neighbor list changes, some new options 2017-02-15 16:45:33 -07:00
5f93fad012 Add copymode protection to class2 styles 2017-02-15 13:56:16 -07:00
ccaec315db Updating docs for Kokkos class2 2017-02-15 13:00:33 -07:00
c6c1852b3b Fix a few issues with Kokkos class2 files 2017-02-15 12:44:54 -07:00
69a8e19dc5 Add files from Ray Shan for Kokkos version of class2 angle, bond, etc. 2017-02-15 12:29:52 -07:00
928947dcea neighbor_kokkos.cpp: Don't call grow() on neighbor lists that are copies.
This corresponds to a bugfix from commit 9161bd98 on neighbor.cpp
2017-02-15 11:49:34 -05:00
904609a7a3 Fixed issue with switching function derivative in PairAIREBO::FLJ
Since we compute dvdw as d vdw / d rij, we have to also compute
dslw as d slw / d rij. Currently, we compute -1/r d slw/d rij,
which leads to incorrect results when the two are later combined.
Alternatively, one could also modify dvdw to be -1/r d vdw/d rij,
which would be a more standard way to do LJ calculations, but this
way seems more consistent.
2017-02-15 16:38:13 +01:00
fc3505fac4 Fixed a number of issues after verifying against the KIM version 2017-02-15 16:37:29 +01:00
48070011d9 update names in example, too 2017-02-14 07:42:36 -05:00
0fb8dacc00 one more Finchham to Fincham change 2017-02-14 07:41:05 -05:00
6b923476b9 updated documentation and examples for coreshell 2017-02-14 13:14:22 +01:00
20806dd86a Fixed bugs with pppm/gpu when used with compute group/group 2017-02-14 00:26:55 -06:00
90e5ae965d Add missing flags to Kokkos Makefile 2017-02-13 11:19:46 -07:00
15008c9d18 USER-DPD: performance optimizations to ssa_update() in fix_shardlow
Overall improvements range from 2% to 18% on our benchmarks
1) Newton has to be turned on for SSA, so remove those conditionals
2) Rework the math in ssa_update() to eliminate many ops and temporaries
3) Split ssa_update() into two versions, based on DPD vs. DPDE
4) Reorder code in ssa_update_*() to reduce register pressure
2017-02-13 13:11:19 -05:00
33af7ab248 Remove merge line 2017-02-13 10:59:22 -07:00
8f9b2aca06 Removing unused files in Kokkos lib 2017-02-13 10:53:51 -07:00
383da816c2 Updating Kokkos lib 2017-02-13 10:50:34 -07:00
a323ca1edd Moved variable declarations to front for consistency 2017-02-13 18:11:09 +01:00
de4af6f15d In PairAIREBO::bondorderLJ correct omega sum d/drij.
The code tries to make this distinction between the real distance (r23) and the facticious one (rij), but does not do so very well.
It is better if those two variables have the same value everywhere, and apply the correction where necessary.
The current way to use the values is incorrrect.

Remove those calculations that effectively are derivatives w.r.t. |rij| (the facticious distance), is constant and thus the chained derivative (d|rij|/dRij) is always zero.

Apply the corrections due to drij/dRij in the sum omega term.
2017-02-13 18:11:09 +01:00
0e16dc3ead In PairAIREBO::bondorderLJ: p^sigma pi account for d/drij derivatives.
The bonderorderLJ function operates on a facticious distance |rij|, i.e. everything gets calculated "as if" atoms i and j were a given distance alpha apart.
Mathematically, bondorderLJ is a function of rij (a vector), that is (in terms of the real distance Rij) rij = alpha * Rij/|Rij|.
When we calculate the forces in bondorderLJ, we have to make sure to chain in this derivative whenever we calculate derivatives w.r.t. rij.
The right correction, as it turns our, is Fij = alpha / |Rij| * (Identity(3,3) - Rij * Rij^T / |Rij|^2) * fij.
This commit only fixes this for the p_ij^sigma pi terms, which were modified to separate out the d/drij derivative in the cosine calculation.
Now, derivatives are taken w.r.t. the connecting edges instead of the edge points.
2017-02-13 18:11:01 +01:00
1b3f6e257a In PairAIREBO::bondorderLJ only compute torsion term once.
Since Etmp (representing sum_kijl omega_kijl * w_ik * w_jl) is not reset between the forward and reverse pass, the value used by later calculation will be twice the expected values.
One could instead reset Etmp between these passes, but there really is no reason to calculate it twice.
2017-02-13 17:14:52 +01:00
cb982f2f28 sync 13Feb17 patch back to GH 2017-02-13 09:05:03 -07:00
4843296d4e Merge pull request #372 from akohlmey/fft-cleanup
simplify FFT3d code by removing support for outdated FFT libraries
2017-02-13 08:53:13 -07:00
2bdda8f6c0 patch 12Feb17 - change int to tagint for compute group/group 2017-02-13 08:40:54 -07:00
0068ef5616 added molecule option to compute group/group command 2017-02-10 09:25:32 -07:00
02b0e6cc55 Merge pull request #375 from akohlmey/small-updates-and-fixes
Small updates and fixes
2017-02-10 09:23:51 -07:00
fbb24c2406 Merge pull request #374 from agiliopadua/master
Updated polarizer.py in USER-DRUDE to use coul/long/cs
2017-02-10 09:22:22 -07:00
0efd209480 Merge branch 'master' into user-cgdna 2017-02-09 11:50:03 +00:00
a5f830c40c fix typo
(cherry picked from commit 6410797697)
2017-02-08 14:33:45 -05:00
8c074a363a Merge branch 'master' into small-updates-and-fixes 2017-02-08 14:32:44 -05:00
27aca14094 Updated polarizer.py to use coul/long/cs 2017-02-04 15:02:08 +01:00
191453e1c7 Merge branch 'master' into fft-cleanup 2017-02-03 16:53:10 -05:00
207adc3968 Merge pull request #373 from stanmoore1/kk_more_bugfixes
Fixing Kokkos per-atom energy/virial issues
2017-02-03 14:45:31 -07:00
84c517159d Merge pull request #368 from Pakketeretet2/kokkos_morse
Kokkos morse
2017-02-03 14:45:07 -07:00
6ca377436f Merge pull request #366 from rbberger/kokkos_lammps_bigbig_fix
Fix data type of molecule array in npair_kokkos.h
2017-02-03 14:43:33 -07:00
dc34a32602 Merge pull request #362 from ibaned/warnings2
fix Kokkos+kspace warnings
2017-02-03 14:43:12 -07:00
067119f6c6 Adding missing friend statement to pair_lj_class2_coul_cut_kokkos 2017-02-02 15:21:30 -07:00
1834a5e46c Fixing more Kokkos per-atom and fdotr issues 2017-02-02 15:21:21 -07:00
6a4918b39a Fixing typo in pair_buck_coul_cut_kokkos 2017-02-02 15:21:05 -07:00
5da0d39392 Fixing fdotr in pair_buck_coul_cut_kokkos 2017-02-02 13:35:51 -07:00
6f92429602 Fixing per-atom ev issue 2017-02-02 13:34:27 -07:00
38e0e4bb69 Add missing typedef in Kokkos pair styles 2017-02-02 13:24:05 -07:00
daf9f95381 Fixing Kokkos per-atom e/v issue 2017-02-02 13:09:52 -07:00
6595fde0a1 explain in more detail the handling of error checking for numerical inputs 2017-02-02 11:58:12 -05:00
6bcec9c61d Merge pull request #2 from stanmoore1/kk_tag_bugfixes
Fixing tagint and imageint issues in Kokkos package
2017-02-02 08:57:21 -05:00
9d1991bf84 remove support for obsolete legacy FFT libraries and point -DFFT_FFTW to FFTW3 2017-02-02 08:10:23 -05:00
0a87b7443a Updated contributing authors and docs 2017-02-02 13:42:47 +01:00
7ee45ec5f3 Fixing tagint and imageint issues in Kokkos package 2017-02-01 11:52:27 -07:00
d4c9e2500b Ported Morse to KOKKOS 2017-02-01 17:45:21 +01:00
6232073d3b Removed traces of pair morse/kk 2017-02-01 17:39:37 +01:00
ed59193d13 Removed traces of pair morse/kk 2017-02-01 17:39:06 +01:00
67bed8e853 Merge pull request #1 from akohlmey/tagint-issue
Fix additional tagint issue in fix qeq/reax/kk
2017-01-31 18:34:35 -05:00
bcb1d94b9a silence compiler warning about dead code 2017-01-31 18:28:04 -05:00
fbe30b5683 correct issue with compiling for -DLAMMPS_BIGBIG in fix qeq/reax/kk 2017-01-31 18:13:44 -05:00
9ef55fedf7 Merge branch 'kokkos_lammps_bigbig_fix' of https://github.com/rbberger/lammps into tagint-issue 2017-01-31 17:23:51 -05:00
997142a4c1 Merge pull request #364 from stanmoore1/kk_triclinic_neighlist
Add triclinic neighbor list support to Kokkos
2017-01-30 07:27:02 -07:00
033b07fdb7 Merge pull request #363 from ibaned/obey-datamask
Fix GPU sync bugs
2017-01-30 07:26:49 -07:00
ed0a347fbf Merge branch 'master' into user-cgdna 2017-01-30 10:31:50 +00:00
51a0b6b445 Fix data type of molecule array in npair_kokkos.h
This showed up when trying to compile with -DLAMMPS_BIGBIG.
Fixes issue #365
2017-01-28 07:49:08 -05:00
59f4a77dd5 Whitespace change to npair_kokkos 2017-01-27 15:17:39 -07:00
579cc6d7aa More tweaks to npair_kokkos for triclinic 2017-01-27 15:13:37 -07:00
5afd3e995b Adding support to npair_kokkos for triclinic-newton-on neighborlists 2017-01-27 14:18:01 -07:00
2a6f5e651c more preference of datamask over custom sync
see commit 09fc8b0 for details on why
2017-01-27 09:35:55 -07:00
09fc8b0bd7 kspace & dihedral can't do their own sync/modify
because the verlet_kokkos system has
a "clever" optimization which will
alter the datamasks before calling sync/modify,
so the datamask framework must be
strictly obeyed for GPU correctness.
(the optimization is to concurrently
compute forces on the host and GPU,
and add them up at the end of an iteration.
calling your own sync will overwrite
the partial GPU forces with the
partial host forces).
2017-01-27 08:39:55 -07:00
e5d0bde783 pppm_kokkos: remove useless statement 2017-01-27 08:35:37 -07:00
9daf7fb650 pppm_kokkos: don't shadow member variables 2017-01-27 08:35:37 -07:00
b5d622c6a3 pppm_kokkos: remove unused variables 2017-01-27 08:35:37 -07:00
2023fa28e0 consistent #ifdefs for fft3d variable (2)
this variable is only used when FFTW3
is enabled, so its declaration and
initialization should be protected
under the same conditions to avoid
compiler warnings
2017-01-27 08:35:37 -07:00
5b29515849 fft3d: use C++ loop declarations
the variable (offset) is only
used in a subset of numerous
scenarios with #ifdef, it seems
better just to have each loop
declare it as needed.
(avoids compiler warnings)
2017-01-27 08:35:37 -07:00
5b18421dd2 fft3d : remove unused variables 2017-01-27 08:35:37 -07:00
cf95ea0709 fft3d: only declare variables when used
avoids compiler warnings
2017-01-27 08:35:36 -07:00
6a74a81da0 consistent #ifdefs for fft3d variable
this variable is only used when FFTW3
is enabled, so its declaration and
initialization should be protected
under the same conditions to avoid
compiler warnings
2017-01-27 08:35:36 -07:00
f0a4ed615d add missing KOKKOS_INLINE_FUNCTION for params 2017-01-27 08:35:36 -07:00
cfe818a175 remove unused variables from fix_cmap 2017-01-27 08:35:36 -07:00
f8506fee23 sync GHub with SVN 2017-01-26 14:06:43 -07:00
18e5584311 Merge pull request #354 from stanmoore1/kokkos_bugfixes
Kokkos bugfixes
2017-01-26 13:51:47 -07:00
851f80464f Merge pull request #361 from akohlmey/user-omp-fix-per-atom-data
fix USER-OMP bug on per-atom data with hybrid styles
2017-01-26 13:50:13 -07:00
5971d4c994 Merge pull request #358 from ibaned/warnings
warning fixes (Kokkos+CUDA)
2017-01-26 13:49:56 -07:00
868d95f0a5 Merge pull request #352 from akohlmey/fix-skip-with-ghost-issue
Fix skip with ghost issue
2017-01-26 13:47:12 -07:00
a5ff35435a Merge pull request #351 from timattox/USER-DPD_pair_exp6_bugfix
USER-DPD: Possible uninitialized variable in pair_exp6_rx.cpp bugfix.
2017-01-26 13:45:45 -07:00
8b7bd9d88e fix bug where per atom data for USER-OMP was reducing the wrong arrays with hybrid styles 2017-01-26 14:59:10 -05:00
149f37e764 Corrected reference to Fig.1 2017-01-26 19:08:59 +00:00
672bbbe494 add more missing KOKKOS_INLINE_FUNCTION attributes 2017-01-25 16:03:11 -07:00
03c9c46533 add missing KOKKOS_INLINE_FUNCTION attributes 2017-01-25 15:49:05 -07:00
e992bfe510 remove unused variable 2017-01-25 15:40:52 -07:00
053ee54a27 remove unused variable 2017-01-25 15:38:41 -07:00
1074c6734b add missing return keywords 2017-01-25 15:37:27 -07:00
60b48c9d66 add missing KOKKOS_INLINE_FUNCTION attributes
this structure gets put inside a DualView,
so these members need to be able to execute
on the GPU
2017-01-25 15:36:24 -07:00
3d40b51708 remove unused variable 2017-01-25 15:24:52 -07:00
effbe18c46 fix domain boundary indexing
the compiler pointed out that
boundary[2][2] doesn't exist.
If I understand this correctly,
those checks should be against
boundary[*][0].
2017-01-25 15:24:01 -07:00
6328beb7d7 fix double-return warning
this #ifdef adds a return statement
for little endian machines, but leaves
the old one, which the compiler comlains
is unreachable. this commit combines
the conditionals so we can use #else
2017-01-25 15:22:42 -07:00
26c8d3d98f Fixing GPU memory issue in fix_langevin_kokkos 2017-01-25 12:53:55 -07:00
73177d650d Fixing GPU memory issue in domain_kokkos 2017-01-25 11:18:03 -07:00
b5cb74bd33 skip list build is compatible with NP_GHOST 2017-01-23 19:21:48 -05:00
31976d1dee skip list definition was missing NP_HALFFULL flag 2017-01-23 19:20:05 -05:00
c8260af37c Possible uninitialized variable in USER-DPD/pair_exp6_rx.cpp bugfix.
Added explicit initialization (to zero) for several variables inside the
inner j-loop to avoid using them uninitialized or from prior iterations
within rmOldij_12 == 0.
2017-01-23 13:34:51 -05:00
caea8973a3 add neighbor list kind output to screen 2017-01-20 13:24:09 -07:00
aa0ad9b483 Merge pull request #349 from akohlmey/collected-small-fixes
collected fixes and improvements
2017-01-20 13:19:43 -07:00
5d0e4e1ba9 Merge pull request #346 from stanmoore1/kokkos_fixes
Kokkos fixes
2017-01-20 13:15:16 -07:00
f8d3c4c740 Merge pull request #345 from timattox/USER-DPD_another_zero_compute
USER-DPD another zero compute optimization
2017-01-20 13:14:59 -07:00
e6996121d1 remove dead code 2017-01-20 14:30:46 -05:00
fbfb1df5eb fix typo causing wrong neighbor list copy selections 2017-01-19 20:47:10 -05:00
9a299875da simplified neighbor list copying to avoid possible same-timestep re-build issues 2017-01-19 17:01:15 -07:00
fc94f1bd18 Fixing GPU memory issues in Kokkos 2017-01-19 12:14:25 -07:00
5ce8e2fbae Fixing GPU memory issue in modify_kokkos, need to cherry pick back to Master 2017-01-19 12:13:48 -07:00
f6cd98636b USER-DPD: Also apply "check if a0 is zero" optimization to pair_dpd_fdt
This relates to commit 4eb08a5822 that was applied to pair_dpd_fdt_energy
2017-01-18 16:17:11 -05:00
05cafb716f USER-DPD: cleanup initialization of splitFDT_flag in pair_dpd_fdt.cpp 2017-01-18 15:51:50 -05:00
3af4b3c28c Merge pull request #337 from ohenrich/user-cgdna
Added source code and documentation for USER-CGDNA
2017-01-18 11:31:35 -07:00
7fc0970587 Merge pull request #344 from timattox/USER-DPD_zero_compute
USER-DPD: Skip a0*stuff computations, if a0 was set to zero in pair_coeff
2017-01-18 11:31:14 -07:00
93262b52b4 Merge pull request #343 from timattox/USER-DPD_bugfix_molecule
USER-DPD: bugfix for a segfault when using MOLECULE and DPD together.
2017-01-18 11:30:58 -07:00
4eb08a5822 USER-DPD: Skip a0*stuff computations, if a0 was set to zero in pair_coeff.
This saves around 10% of the runtime for many of our tests using SSA.
2017-01-17 15:55:39 -05:00
01609f55e2 USER-DPD: bugfix for a segfault when using MOLECULE and DPD together. 2017-01-17 12:47:59 -05:00
d2fc88a626 patch 17Jan17 2017-01-17 10:14:53 -07:00
c52a26382f Merge pull request #339 from akohlmey/fixes-for-srp-example
Fixes for srp example
2017-01-17 09:36:28 -07:00
ad4d299975 Merge pull request #335 from stanmoore1/neighbor_fixes
Neighbor fixes
2017-01-17 09:33:25 -07:00
83408b195f Merge pull request #342 from epfl-cosmo/ipi-multiinit-bug
Bugfix in the fix_ipi initialization - prevents multiple open_socket calls
2017-01-17 09:14:03 -07:00
cd7bdf9251 Merge pull request #341 from stanmoore1/qeq_kk_neighlist
Make fix_qeq_reax_kokkos request its own neighbor list
2017-01-17 09:13:47 -07:00
8c5b108900 Merge pull request #340 from stanmoore1/fix_rx_neighborlist
Make fix_rx request its own neighbor list
2017-01-17 09:13:27 -07:00
c19d2011bb Merge pull request #334 from sstrong99/flow_gauss_changeRef
Updated the reference for the flow/gauss method
2017-01-17 09:12:22 -07:00
973bef4d45 Merge pull request #332 from akohlmey/coord-atom-orientorder-atom-enhancements
Coord atom orientorder atom enhancements
2017-01-17 09:11:45 -07:00
1b9e50c8cb Merge pull request #331 from timattox/USER-DPD_fix_example_typo
USER-DPD: fix a typo in the DPD-H example input; update reference output.
2017-01-17 09:08:14 -07:00
252e07e083 Merge pull request #330 from akohlmey/collected-small-bugfixes
Collected small bugfixes
2017-01-17 09:08:00 -07:00
74a661ae26 Merge pull request #328 from akohlmey/print-last-command-on-error
print the last input line, when error->all() is called
2017-01-17 09:05:19 -07:00
d8bc590aaf Merge pull request #327 from stanmoore1/kokkos_lib_update
Updating Kokkos lib
2017-01-17 09:04:12 -07:00
c9bea60710 Merge pull request #326 from Pakketeretet2/github-tutorial-update
Updated images of succesful merge.
2017-01-17 09:03:46 -07:00
5cd856c97f fix spring doc page update 2017-01-17 09:02:56 -07:00
2f13365cf5 avoid spurious error message, when no storage fix is active/used 2017-01-16 17:08:00 -05:00
0a2b78acb8 rather than adjusting the communication cutoff, we just print out the minimum value needed and error out
i suspect, this communication cutoff adjustment was included into the code before it was possible to separately set it via comm_modify. stopping with an error message printing the needed/current value is cleaner, in keeping with other modules in LAMMPS and much less problematic.
2017-01-16 15:47:02 -05:00
3f46b6d782 fix bugs from incorrect code synchronization 2017-01-16 11:15:54 -05:00
5abd6e5122 reordering operations in Pair::init_style() to avoid segfaults w/o a kspace style 2017-01-16 11:08:48 -05:00
f3a82f454e Included a flag to prevent multiple open_socket calls if run is included multiple times in the LAMMPS input 2017-01-16 08:42:23 +01:00
473a3ebeef fix for bug with compute rdf with pair reax/c. we must not copy a neighbor list, if newton settings are not compatible
an alternate route to address this issue would be to allow an "ANY" setting for neighbor list requests and then query the neighbor list for newton setting instead of the force class.
2017-01-15 12:05:19 -05:00
b220850377 Removing neighbor list hack in fix_qeq_reax_kokkos 2017-01-14 16:16:02 -07:00
fa00e0593f Make fix_rx request its own neighbor list 2017-01-14 15:39:37 -07:00
4a09399dc6 during setup, checking timestep doesn't seem to be sufficient. comparing bins and stencil point, too.
in addition, relevant pointers were not properly initialized to NULL
2017-01-14 17:13:22 -05:00
5821fe8dd5 correct out-of-bounds accesses 2017-01-14 17:06:23 -05:00
8360e70f4e update USER-CGDNA examples to follow LAMMPS style 2017-01-13 18:56:45 -05:00
b988b29413 remove dead code 2017-01-13 18:43:35 -05:00
5d48bfdcab USER-CGDNA whitespace cleanup: expand tabs and remove trailing whitespace 2017-01-13 18:40:34 -05:00
fe8caa8a56 apply some LAMMPS formatting style conventions for include files 2017-01-13 18:33:32 -05:00
afaacc6173 add USER-CGDNA package with dependencies into the build system 2017-01-13 18:32:32 -05:00
98ceb6feb1 add missing html files to lammps.book 2017-01-13 18:11:23 -05:00
374abea0f0 some minor documentation integration tweaks for USER-CGDNA package 2017-01-13 18:09:45 -05:00
61cff85435 avoid not only division by zero, but also computing variance for short runs with insufficient resolution 2017-01-13 14:35:35 -05:00
aa0b327f7e Merge branch 'bugfix_dividebyzero' of https://github.com/timattox/lammps_USER-DPD into collected-small-bugfixes 2017-01-13 14:26:10 -05:00
04fe071968 Merge pull request #6 from ibaned/cuda-lj-ctor-warning
fix a CUDA constructor warning
2017-01-13 12:13:43 -07:00
78498715b4 Protect from divide by zero in mpi_timings() when printing results.
e.g. If neighbor list(s) are never rebuilt, the Neigh time will be zero.
2017-01-13 13:32:15 -05:00
96259ea2d2 Added source code and documentation for USER-CGDNA 2017-01-13 13:36:54 +00:00
b2f67fea30 Merge branch 'collected-small-bugfixes' of github.com:akohlmey/lammps into collected-small-bugfixes 2017-01-13 08:12:10 -05:00
c59bcf31d1 change $MKLROOT to $(MKLROOT) as reported by @WeiLiPenguin
This closes #336
2017-01-13 08:10:51 -05:00
2540fc281c Merge branch 'flow_gauss_changeRef' of github.com:sstrong99/lammps into pull-334 2017-01-12 23:54:52 -05:00
e8e03dd440 Updated the reference for the flow/gauss method, the new reference is much more comprehensive 2017-01-12 23:44:33 -05:00
daf766d4f8 Fixing Kokkos neighbor bug 2017-01-12 16:22:38 -07:00
630783c8e8 Fixing neighbor bug 2017-01-12 16:22:24 -07:00
c94030d966 put pair_lj_coul in kokkos_type.h
also rename pair_lj_coul_gromacs
so it doesn't conflict with the
one now in kokkos_type.h
2017-01-12 13:37:53 -07:00
1229f6f60b Updated the reference for the flow/gauss method, the new reference is much more comprehensive 2017-01-12 10:15:18 -07:00
0b081b0086 whitespace cleanup 2017-01-11 21:05:32 -05:00
8e1cf6643c apply bugfix to fix wall/gran by eric_lyster@agilent.com on lammps-users 2017-01-11 20:59:40 -05:00
6950a99162 Revert "remove obsolete warning about fix rigid image flag restrictions"
This reverts commit 51e52b477a.
2017-01-11 19:49:58 -05:00
9f4e5e0661 fix a CUDA constructor warning
The class params_lj_coul was copy-pasted
into many different pair styles, and only
one of them had the proper KOKKOS_INLINE_FUNCTION
annotations for CUDA.
created a header file for this class that
most of the pair styles now include.
One pair style did add extra members,
so it keeps a local copy of the class.
2017-01-11 09:11:35 -07:00
34cb4027df make formatting comment consistent 2017-01-11 07:46:07 -05:00
1d0e600ab7 formatting improvements and small corrections for timer settings and output discussions 2017-01-10 23:47:14 -05:00
7162cafdf5 Squelching output from Makefile 2017-01-10 14:46:30 -07:00
ee9e7cfbd5 Fixing Kokkos CUDA Makefile issue 2017-01-10 13:22:36 -07:00
7839c335da Fixing compile error with Kokkos CUDA Makefiles 2017-01-10 13:05:00 -07:00
622d926849 adapt example inputs for TAD and PRD to the change in compute coord/atom 2017-01-10 13:41:35 -05:00
92d15d4a89 replace string compare with enums, fix memory leak, formatting cleanup 2017-01-10 12:52:37 -05:00
95706ac846 import contributed code for computes coord/atom and orientorder/atom 2017-01-10 12:29:22 -05:00
d06688bb91 USER-DPD: fix a typo in the DPD-H example input; update reference output. 2017-01-10 12:11:20 -05:00
d014e00e53 ignore some newly added styles from packages. 2017-01-09 17:51:38 -05:00
0db2a07993 another workaround for duplicate labels (which sphinx does not like) 2017-01-09 17:51:19 -05:00
33412c76ed correct some formatting issues with USER-NC-DUMP 2017-01-09 17:50:49 -05:00
e5ac49d1de Merge branch 'master' into collected-small-bugfixes 2017-01-09 17:13:46 -05:00
1a81da0f73 print the last input line, when error->all() is called
this should help tracking down input file errors for many
common cases without having to repeat the run with -echo screen
and avoid having to explain how to use that feature all the time
2017-01-09 17:03:06 -05:00
c31f1e9f22 add fix mscg command, example, lib 2017-01-09 13:36:40 -07:00
ebd25cc078 Updating docs for Kokkos package 2017-01-09 12:40:33 -07:00
9250a55923 Adding enable_lambda to KOKKOS_CUDA_OPTIONS 2017-01-09 12:24:30 -07:00
a9f0b7d523 Updating Kokkos lib 2017-01-09 10:39:46 -07:00
20f8a8c219 Merge branch 'master' into github-tutorial-update 2017-01-09 14:38:09 +01:00
09af780aa8 remove misleading comments 2017-01-06 21:31:39 -05:00
51e52b477a remove obsolete warning about fix rigid image flag restrictions 2017-01-06 21:30:33 -05:00
20a4e365b7 reduce warning when processing manual with sphinx 2017-01-06 21:30:13 -05:00
ccd09e3967 Updated images of succesful merge. 2017-01-06 19:04:26 +01:00
2819 changed files with 534051 additions and 130016 deletions

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)_

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
pacakge 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

1
doc/.gitignore vendored
View File

@ -1,4 +1,5 @@
/html
/spelling
/LAMMPS.epub
/LAMMPS.mobi
/Manual.pdf

View File

@ -6,6 +6,7 @@ BUILDDIR = /tmp/lammps-docs-$(SHA1)
RSTDIR = $(BUILDDIR)/rst
VENV = $(BUILDDIR)/docenv
TXT2RST = $(VENV)/bin/txt2rst
ANCHORCHECK = $(VENV)/bin/doc_anchor_check
PYTHON = $(shell which python3)
HAS_PYTHON3 = NO
@ -22,7 +23,7 @@ endif
SOURCES=$(wildcard src/*.txt)
OBJECTS=$(SOURCES:src/%.txt=$(RSTDIR)/%.rst)
.PHONY: help clean-all clean epub html pdf old venv
.PHONY: help clean-all clean epub html pdf old venv spelling anchor_check
# ------------------------------------------
@ -36,6 +37,7 @@ help:
@echo " clean remove all intermediate RST files"
@echo " clean-all reset the entire build environment"
@echo " txt2html build txt2html tool"
@echo " anchor_check scan for duplicate anchor labels"
# ------------------------------------------
@ -44,12 +46,19 @@ clean-all:
clean:
rm -rf $(RSTDIR) html
rm -rf spelling
html: $(OBJECTS)
clean-spelling:
rm -rf spelling
html: $(OBJECTS) $(ANCHORCHECK)
@(\
. $(VENV)/bin/activate ;\
cp -r src/* $(RSTDIR)/ ;\
sphinx-build -j 8 -b html -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) html ;\
echo "############################################" ;\
doc_anchor_check src/*.txt ;\
echo "############################################" ;\
deactivate ;\
)
-rm html/searchindex.js
@ -64,6 +73,17 @@ html: $(OBJECTS)
@rm -rf html/USER/*/*.[sg]*
@echo "Build finished. The HTML pages are in doc/html."
spelling: $(OBJECTS) utils/sphinx-config/false_positives.txt
@(\
. $(VENV)/bin/activate ;\
pip install sphinxcontrib-spelling ;\
cp -r src/* $(RSTDIR)/ ;\
cp utils/sphinx-config/false_positives.txt $(RSTDIR)/ ;\
sphinx-build -b spelling -c utils/sphinx-config -d $(BUILDDIR)/doctrees $(RSTDIR) spelling ;\
deactivate ;\
)
@echo "Spell check finished."
epub: $(OBJECTS)
@mkdir -p epub
@rm -f LAMMPS.epub
@ -80,6 +100,7 @@ epub: $(OBJECTS)
pdf: utils/txt2html/txt2html.exe
@(\
set -e; \
cd src; \
../utils/txt2html/txt2html.exe -b *.txt; \
htmldoc --batch lammps.book; \
@ -112,6 +133,13 @@ fetch:
txt2html: utils/txt2html/txt2html.exe
anchor_check : $(ANCHORCHECK)
@(\
. $(VENV)/bin/activate ;\
doc_anchor_check src/*.txt ;\
deactivate ;\
)
# ------------------------------------------
utils/txt2html/txt2html.exe: utils/txt2html/txt2html.cpp
@ -131,12 +159,12 @@ $(VENV):
@( \
virtualenv -p $(PYTHON) $(VENV); \
. $(VENV)/bin/activate; \
pip install Sphinx; \
pip install Sphinx==1.5.6; \
pip install sphinxcontrib-images; \
deactivate;\
)
$(TXT2RST): $(VENV)
$(TXT2RST) $(ANCHORCHECK): $(VENV)
@( \
. $(VENV)/bin/activate; \
(cd utils/converters;\

View File

@ -464,7 +464,7 @@ the angletype option can only be assigned to a "fix style" of "shake",
entirely rigid (e.g. water)
the angletype option enables an additional check when SHAKE constraints
are computed: if a cluster is of size 3 and both bonds in
the cluster are of a bondtype specified by the 2nd paramter of
the cluster are of a bondtype specified by the 2nd parameter of
angletype, then the cluster is SHAKEn with an additional angle
constraint that makes it rigid, using the equilibrium angle appropriate
to the specified angletype
@ -476,7 +476,7 @@ IMPORTANT NOTE: the angletype option has one additional affect, namely
since they will not be SHAKEn but neither will the angle force by computed
for style region, a coeff of INF means + or - infinity (all the way
to the boundary)
an atom can be assigned to multiple constraints, the contraints will be
an atom can be assigned to multiple constraints, the constraints will be
applied in the reverse order they are assigned to that atom
(e.g. each timestep, the last fix assigned to an atom will be applied
to it first, then the next-to-last applied second, etc)
@ -689,7 +689,7 @@ coeffs: types
remainder
no other parameters required
used with &quot;create temp&quot; commmand to initialize velocities of atoms
used with &quot;create temp&quot; command to initialize velocities of atoms
by default, the &quot;create temp&quot; command initializes the velocities of all atoms,
this command limits the initialization to a group of atoms
this command is only in force for the next &quot;create temp&quot; command, any
@ -1263,7 +1263,7 @@ when using constraints with the minimizer, fixes are
applied when atoms move except for the following
fixes associated with temperature control are not allowed
(rescale, hoover/drag, langevin)
the minimizer does not invoke the &quot;fix style shake&quot; contraints on
the minimizer does not invoke the &quot;fix style shake&quot; constraints on
bond lengths
the minimizer does not invoke pressure control or volume control settings
for good convergence, should specify use of smooth nonbond force fields
@ -1566,7 +1566,7 @@ mesh dimensions that are power-of-two are fastest for FFTs, but any sizes
can be used that are supported by native machine libraries
this command is optional - if not used, a default
mesh size will be chosen to satisfy accuracy criterion - if used, the
specifed mesh size will override the default
specified mesh size will override the default
</PRE>
<HR>
<H3>
@ -1788,7 +1788,7 @@ if the style is 2, restart information will be written alternately to files
when the minimizer is invoked this command means create a restart file
at the end of the minimization with the filename filename.timestep.min
a restart file stores atom and force-field information in binary form
allows program to restart from where it left off (see &quot;read restart&quot; commmand)
allows program to restart from where it left off (see &quot;read restart&quot; command)
Default = 0
</PRE>

View File

@ -167,7 +167,7 @@ tool on the small-system data file.</P>
<P>
(6) flow</P>
<P>
2-d flow of Lennard-Jones atoms in a channel using various contraint
2-d flow of Lennard-Jones atoms in a channel using various constraint
options.</P>
<P>
(7) polymer</P>
@ -201,7 +201,7 @@ The tools directory also has a F77 program called setup_chain.f
(compile and link with print.c) which can be used to generate random
initial polymer configurations for bead-spring models like those used
in examples/polymer. It uses an input polymer definition file (see
examples/polymer for two sample def files) that specfies how many
examples/polymer for two sample def files) that specifies how many
chains of what length, a random number seed, etc.</P>
</BODY>
</HTML>

View File

@ -40,7 +40,7 @@ Note: this file is somewhat out-of-date for LAMMPS 99.</P>
<LI>
maxtype = max # of atom types
<LI>
maxbond = max # of bonds to compute on one procesor
maxbond = max # of bonds to compute on one processor
<LI>
maxangle = max # of angles to compute on one processor
<LI>

View File

@ -294,7 +294,7 @@ assign a group of atoms to a particular constraint
use appropriate number of coeffs for a particular style
the constraint itself is defined by the &quot;fix style&quot; command
multiple groups of atoms can be assigned to the same constraint
an atom can be assigned to multiple constraints, the contraints will be
an atom can be assigned to multiple constraints, the constraints will be
applied in the reverse order they are assigned to that atom
(e.g. each timestep, the last fix assigned to an atom will be applied
to it first, then the next-to-last applied second, etc)
@ -477,7 +477,7 @@ coeffs: types
remainder
no other parameters required
used with &quot;create temp&quot; commmand to initialize velocities of atoms
used with &quot;create temp&quot; command to initialize velocities of atoms
by default, the &quot;create temp&quot; command initializes the velocities of all atoms,
this command limits the initialization to a group of atoms
this command is only in force for the next &quot;create temp&quot; command, any
@ -1124,7 +1124,7 @@ mesh dimensions that are power-of-two are fastest for FFTs, but any size
can be used that are supported by native machine libraries
this command is optional - if not used, a default
mesh size will be chosen to satisfy accuracy criterion - if used, the
specifed mesh size will override the default
specified mesh size will override the default
Default = none
</PRE>
@ -1343,7 +1343,7 @@ value of 0 means never create one
program will toggle between 2 filenames as the run progresses
so always have at least one good file even if the program dies in mid-write
restart file stores atom positions and velocities in binary form
allows program to restart from where it left off (see &quot;read restart&quot; commmand)
allows program to restart from where it left off (see &quot;read restart&quot; command)
Default = 0
</PRE>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -0,0 +1,10 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
$$
E = - \frac{\epsilon}{2} \ln \left[ 1 - \left(\frac{r-r0}{\Delta}\right)^2\right]
$$
\end{document}

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,14 @@
\documentclass[12pt,article]{article}
\usepackage{indentfirst}
\usepackage{amsmath}
\begin{document}
\begin{eqnarray*}
r_{c}^{fcc} & = & \frac{1}{2} \left(\frac{\sqrt{2}}{2} + 1\right) \mathrm{a} \simeq 0.8536 \:\mathrm{a} \\
r_{c}^{bcc} & = & \frac{1}{2}(\sqrt{2} + 1) \mathrm{a} \simeq 1.207 \:\mathrm{a} \\
r_{c}^{hcp} & = & \frac{1}{2}\left(1+\sqrt{\frac{4+2x^{2}}{3}}\right) \mathrm{a}
\end{eqnarray*}
\end{document}

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,12 @@
\documentclass[12pt,article]{article}
\usepackage{indentfirst}
\usepackage{amsmath}
\begin{document}
$$
Rc + Rs > 2*{\rm cutoff}
$$
\end{document}

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

9
doc/src/Eqs/cnp_eq.tex Normal file
View File

@ -0,0 +1,9 @@
\documentclass[12pt]{article}
\begin{document}
$$
Q_{i} = \frac{1}{n_i}\sum_{j = 1}^{n_i} | \sum_{k = 1}^{n_{ij}} \vec{R}_{ik} + \vec{R}_{jk} |^2
$$
\end{document}

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -0,0 +1,9 @@
\documentclass[12pt]{article}
\begin{document}
\begin{eqnarray*}
\mu &=&\mu^{id} + \mu^{ex}
\end{eqnarray*}
\end{document}

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

10
doc/src/Eqs/fix_gcmc2.tex Normal file
View File

@ -0,0 +1,10 @@
\documentclass[12pt]{article}
\begin{document}
\begin{eqnarray*}
\mu^{id} &=& k T \ln{\rho \Lambda^3} \\
&=& k T \ln{\frac{\phi P \Lambda^3}{k T}}
\end{eqnarray*}
\end{document}

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

@ -0,0 +1,9 @@
\documentclass[12pt]{article}
\begin{document}
\begin{eqnarray*}
\Lambda &=& \sqrt{ \frac{h^2}{2 \pi m k T}}
\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: 18 KiB

View File

@ -0,0 +1,13 @@
\documentclass[12pt]{article}
\thispagestyle{empty}
\begin{document}
\begin{eqnarray*}
E & = & \frac{1}{2} \sum_i \sum_{j \neq i} V_{ij} \\
V_{ij} & = & e^{-\lambda(r_{ij} -z_0}) \left[ C + f(\rho_{ij}) + f(\rho_{ji}) \right] - A \left( \frac{r_{ij}}{z_0}\right)^{-6} + A \left( \frac{\textrm{cutoff}}{z_0}\right)^{-6} \\
\rho_{ij}^2 = \rho_{ji}^2 & = & x_{ij}^2 + y_{ij}^2 ~\hspace{2cm} (\mathbf{n_i}\equiv\hat \mathbf{z})\\
f(\rho) & = & e^{-(\rho/\delta)^2} \sum_{n=0}^2 C_{2n} \left( \rho/\delta \right) ^{2n}
\end{eqnarray*}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@ -1,11 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
\begin{eqnarray*}
F & = & F_{\mathrm{LJ}}(r) - F_{\mathrm{LJ}}(r_{\mathrm{c}}) \qquad r < r_{\mathrm{c}} \\
E & = & E_{\mathrm{LJ}}(r) - E_{\mathrm{LJ}}(r_{\mathrm{c}}) + (r - r_{\mathrm{c}}) F_{\mathrm{LJ}}(r_{\mathrm{c}}) \qquad r < r_{\mathrm{c}} \\
\mathrm{with} \qquad E_{\mathrm{LJ}}(r) & = & 4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^6 \right] \qquad \mathrm{and} \qquad F_{\mathrm{LJ}}(r) = - E^\prime_{\mathrm{LJ}}(r)
\end{eqnarray*}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -1,13 +1,14 @@
\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{document}
$$
E=\sum_{ij}\phi(r_{ij})+\sum_{i}U(\rho_{i}),
E=\sum_{i<j}\phi(r_{ij})+\sum_{i}U(n_{i}),
$$
$$
\rho_{i}=\sum_{j}\rho(r_{ij})+\sum_{jk}f(r_{ij})f(r_{ik})g[\cos(\theta_{jik})]
n_{i}=\sum_{j}\rho(r_{ij})+\sum_{\substack{j<k,\\j,k\neq i}}f(r_{ij})f(r_{ik})g[\cos(\theta_{jik})]
$$
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -0,0 +1,14 @@
\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{document}
$$
E=\sum_{i<j}\phi_{ij}(r_{ij})+\sum_{i}U_i(n_{i}),
$$
$$
n_{i}=\sum_{j\ne i}\rho_j(r_{ij})+\sum_{\substack{j<k,\\j,k\neq i}}f_{j}(r_{ij})f_{k}(r_{ik})g_{jk}[\cos(\theta_{jik})]
$$
\end{document}

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

13
doc/src/Eqs/pair_momb.tex Normal file
View File

@ -0,0 +1,13 @@
\documentclass[12pt,fleqn]{article}
\usepackage{amsmath}
\thispagestyle{empty}
\begin{document}
\setlength{\jot}{2ex}
\begin{gather*}
E = D_0 [\exp^{-2 \alpha (r-r_0)} - 2\exp^{-\alpha (r-r_0)}] - s_6 \frac{C_6}{r^6} f_{damp}(r,R_r) \\
f_{damp}(r,R_r) = \frac{1}{1 + \exp^{-d(r/R_r - 1)}}
\end{gather*}
\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: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,7 +1,7 @@
<!-- HTML_ONLY -->
<HEAD>
<TITLE>LAMMPS Users Manual</TITLE>
<META NAME="docnumber" CONTENT="6 Jan 2017 version">
<META NAME="docnumber" CONTENT="11 Aug 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
6 Jan 2017 version :c,h4
11 Aug 2017 version :c,h4
Version info: :h4
@ -39,7 +39,7 @@ directory name created when you unpack a tarball, and at the top of
the first page of the manual (this page).
If you browse the HTML doc pages on the LAMMPS WWW site, they always
describe the most current version of LAMMPS. :ulb,l
describe the most current [development] version of LAMMPS. :ulb,l
If you browse the HTML doc pages included in your tarball, they
describe the version you have. :l
@ -67,7 +67,7 @@ Labs and Temple University:
"Steve Plimpton"_sjp, sjplimp at sandia.gov :ulb,l
Aidan Thompson, athomps at sandia.gov :l
Stan Moore, stamoore at sandia.gov :l
Stan Moore, stamoor at sandia.gov :l
"Axel Kohlmeyer"_ako, akohlmey at gmail.com :l
:ule
@ -158,12 +158,11 @@ END_RST -->
2.1 "What's in the LAMMPS distribution"_start_1 :ulb,b
2.2 "Making LAMMPS"_start_2 :b
2.3 "Making LAMMPS with optional packages"_start_3 :b
2.4 "Building LAMMPS via the Make.py script"_start_4 :b
2.5 "Building LAMMPS as a library"_start_5 :b
2.6 "Running LAMMPS"_start_6 :b
2.7 "Command-line options"_start_7 :b
2.8 "Screen output"_start_8 :b
2.9 "Tips for users of previous versions"_start_9 :ule,b
2.4 "Building LAMMPS as a library"_start_4 :b
2.5 "Running LAMMPS"_start_5 :b
2.6 "Command-line options"_start_6 :b
2.7 "Screen output"_start_7 :b
2.8 "Tips for users of previous versions"_start_8 :ule,b
"Commands"_Section_commands.html :l
3.1 "LAMMPS input script"_cmd_1 :ulb,b
3.2 "Parsing rules"_cmd_2 :b
@ -262,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

@ -281,12 +281,12 @@ the "minimize"_minimize.html command. A parallel tempering
3.4 Commands listed by category :link(cmd_4),h4
This section lists all LAMMPS commands, grouped by category. The
"next section"_#cmd_5 lists the same commands alphabetically. The
This section lists core LAMMPS commands, grouped by category.
The "next section"_#cmd_5 lists all commands alphabetically. The
next section also includes (long) lists of style options for entries
that appear in the following categories as a single command (fix,
compute, pair, etc). Commands that are added by user packages are not
included in these categories, but they are in the next section.
included in the categories here, but they are in the next section.
Initialization:
@ -361,7 +361,7 @@ Settings:
"timer"_timer.html,
"timestep"_timestep.html
Operations within timestepping (fixes) and diagnositics (computes):
Operations within timestepping (fixes) and diagnostics (computes):
"compute"_compute.html,
"compute_modify"_compute_modify.html,
@ -527,9 +527,9 @@ These are additional commands in USER packages, which can be used if
"LAMMPS is built with the appropriate
package"_Section_start.html#start_3.
"dump custom/vtk"_dump_custom_vtk.html,
"dump nc"_dump_nc.html,
"dump nc/mpiio"_dump_nc.html,
"dump netcdf"_dump_netcdf.html,
"dump netcdf/mpiio"_dump_netcdf.html,
"dump vtk"_dump_vtk.html,
"group2ndx"_group2ndx.html,
"ndx2group"_group2ndx.html,
"temper/grem"_temper_grem.html :tb(c=3,ea=c)
@ -583,6 +583,7 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.
"lineforce"_fix_lineforce.html,
"momentum (k)"_fix_momentum.html,
"move"_fix_move.html,
"mscg"_fix_mscg.html,
"msst"_fix_msst.html,
"neb"_fix_neb.html,
"nph (ko)"_fix_nh.html,
@ -617,6 +618,7 @@ USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.
"press/berendsen"_fix_press_berendsen.html,
"print"_fix_print.html,
"property/atom"_fix_property_atom.html,
"python"_fix_python.html,
"qeq/comb (o)"_fix_qeq_comb.html,
"qeq/dynamic"_fix_qeq.html,
"qeq/fire"_fix_qeq.html,
@ -686,6 +688,7 @@ package"_Section_start.html#start_3.
"eos/cv"_fix_eos_cv.html,
"eos/table"_fix_eos_table.html,
"eos/table/rx"_fix_eos_table_rx.html,
"filter/corotate"_fix_filter_corotate.html,
"flow/gauss"_fix_flow_gauss.html,
"gle"_fix_gle.html,
"grem"_fix_grem.html,
@ -701,6 +704,8 @@ package"_Section_start.html#start_3.
"meso"_fix_meso.html,
"manifoldforce"_fix_manifoldforce.html,
"meso/stationary"_fix_meso_stationary.html,
"nve/dot"_fix_nve_dot.html,
"nve/dotc/langevin"_fix_nve_dotc_langevin.html,
"nve/manifold/rattle"_fix_nve_manifold_rattle.html,
"nvk"_fix_nvk.html,
"nvt/manifold/rattle"_fix_nvt_manifold_rattle.html,
@ -712,7 +717,7 @@ package"_Section_start.html#start_3.
"phonon"_fix_phonon.html,
"pimd"_fix_pimd.html,
"qbmsst"_fix_qbmsst.html,
"qeq/reax"_fix_qeq_reax.html,
"qeq/reax (ko)"_fix_qeq_reax.html,
"qmmm"_fix_qmmm.html,
"qtb"_fix_qtb.html,
"reax/c/bonds"_fix_reax_bonds.html,
@ -729,7 +734,9 @@ package"_Section_start.html#start_3.
"smd/wall/surface"_fix_smd_wall_surface.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
@ -826,6 +833,7 @@ package"_Section_start.html#start_3.
"ackland/atom"_compute_ackland_atom.html,
"basal/atom"_compute_basal_atom.html,
"cnp/atom"_compute_cnp_atom.html,
"dpd"_compute_dpd.html,
"dpd/atom"_compute_dpd_atom.html,
"fep"_compute_fep.html,
@ -918,7 +926,7 @@ KOKKOS, o = USER-OMP, t = OPT.
"dpd (go)"_pair_dpd.html,
"dpd/tstat (go)"_pair_dpd.html,
"dsmc"_pair_dsmc.html,
"eam (gkot)"_pair_eam.html,
"eam (gkiot)"_pair_eam.html,
"eam/alloy (gkot)"_pair_eam.html,
"eam/fs (gkot)"_pair_eam.html,
"eim (o)"_pair_eim.html,
@ -927,6 +935,8 @@ KOKKOS, o = USER-OMP, t = OPT.
"gran/hertz/history (o)"_pair_gran.html,
"gran/hooke (o)"_pair_gran.html,
"gran/hooke/history (o)"_pair_gran.html,
"gw"_pair_gw.html,
"gw/zbl"_pair_gw.html,
"hbond/dreiding/lj (o)"_pair_hbond_dreiding.html,
"hbond/dreiding/morse (o)"_pair_hbond_dreiding.html,
"kim"_pair_kim.html,
@ -936,6 +946,8 @@ KOKKOS, o = USER-OMP, t = OPT.
"lj/charmm/coul/charmm/implicit (ko)"_pair_charmm.html,
"lj/charmm/coul/long (giko)"_pair_charmm.html,
"lj/charmm/coul/msm"_pair_charmm.html,
"lj/charmmfsw/coul/charmmfsh"_pair_charmm.html,
"lj/charmmfsw/coul/long"_pair_charmm.html,
"lj/class2 (gko)"_pair_class2.html,
"lj/class2/coul/cut (ko)"_pair_class2.html,
"lj/class2/coul/long (gko)"_pair_class2.html,
@ -954,7 +966,7 @@ KOKKOS, o = USER-OMP, t = OPT.
"lj/expand (gko)"_pair_lj_expand.html,
"lj/gromacs (gko)"_pair_gromacs.html,
"lj/gromacs/coul/gromacs (ko)"_pair_gromacs.html,
"lj/long/coul/long (o)"_pair_lj_long.html,
"lj/long/coul/long (io)"_pair_lj_long.html,
"lj/long/dipole/long"_pair_dipole.html,
"lj/long/tip4p/long"_pair_lj_long.html,
"lj/smooth (o)"_pair_lj_smooth.html,
@ -966,7 +978,7 @@ KOKKOS, o = USER-OMP, t = OPT.
"lubricateU/poly"_pair_lubricateU.html,
"meam"_pair_meam.html,
"mie/cut (o)"_pair_mie.html,
"morse (got)"_pair_morse.html,
"morse (gkot)"_pair_morse.html,
"nb3b/harmonic (o)"_pair_nb3b_harmonic.html,
"nm/cut (o)"_pair_nm.html,
"nm/cut/coul/cut (o)"_pair_nm.html,
@ -976,6 +988,7 @@ KOKKOS, o = USER-OMP, t = OPT.
"peri/pmb (o)"_pair_peri.html,
"peri/ves"_pair_peri.html,
"polymorphic"_pair_polymorphic.html,
"python"_pair_python.html,
"reax"_pair_reax.html,
"rebo (o)"_pair_airebo.html,
"resquared (go)"_pair_resquared.html,
@ -1010,9 +1023,11 @@ package"_Section_start.html#start_3.
"dpd/fdt/energy"_pair_dpd_fdt.html,
"eam/cd (o)"_pair_eam.html,
"edip (o)"_pair_edip.html,
"edip/multi"_pair_edip.html,
"eff/cut"_pair_eff.html,
"exp6/rx"_pair_exp6_rx.html,
"gauss/cut"_pair_gauss.html,
"kolmogorov/crespi/z"_pair_kolmogorov_crespi_z.html,
"lennard/mdf"_pair_mdf.html,
"list"_pair_list.html,
"lj/charmm/coul/long/soft (o)"_pair_charmm.html,
@ -1026,16 +1041,26 @@ 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,
"lj/sf (o)"_pair_lj_sf.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,
"momb"_pair_momb.html,
"morse/smooth/linear"_pair_morse.html,
"morse/soft"_pair_morse.html,
"multi/lucy"_pair_multi_lucy.html,
"multi/lucy/rx"_pair_multi_lucy_rx.html,
"oxdna/coaxstk"_pair_oxdna.html,
"oxdna/excv"_pair_oxdna.html,
"oxdna/hbond"_pair_oxdna.html,
"oxdna/stk"_pair_oxdna.html,
"oxdna/xstk"_pair_oxdna.html,
"oxdna2/coaxstk"_pair_oxdna2.html,
"oxdna2/dh"_pair_oxdna2.html,
"oxdna2/excv"_pair_oxdna2.html,
"oxdna2/stk"_pair_oxdna2.html,
"quip"_pair_quip.html,
"reax/c (k)"_pair_reax_c.html,
"reax/c (ko)"_pair_reaxc.html,
"smd/hertz"_pair_smd_hertz.html,
"smd/tlsph"_pair_smd_tlsph.html,
"smd/triangulated/surface"_pair_smd_triangulated_surface.html,
@ -1068,7 +1093,7 @@ KOKKOS, o = USER-OMP, t = OPT.
"none"_bond_none.html,
"zero"_bond_zero.html,
"hybrid"_bond_hybrid.html,
"class2 (o)"_bond_class2.html,
"class2 (ko)"_bond_class2.html,
"fene (iko)"_bond_fene.html,
"fene/expand (o)"_bond_fene_expand.html,
"harmonic (ko)"_bond_harmonic.html,
@ -1082,7 +1107,9 @@ if "LAMMPS is built with the appropriate
package"_Section_start.html#start_3.
"harmonic/shift (o)"_bond_harmonic_shift.html,
"harmonic/shift/cut (o)"_bond_harmonic_shift_cut.html :tb(c=4,ea=c)
"harmonic/shift/cut (o)"_bond_harmonic_shift_cut.html,
"oxdna/fene"_bond_oxdna.html,
"oxdna2/fene"_bond_oxdna.html :tb(c=4,ea=c)
:line
@ -1100,7 +1127,7 @@ USER-OMP, t = OPT.
"zero"_angle_zero.html,
"hybrid"_angle_hybrid.html,
"charmm (ko)"_angle_charmm.html,
"class2 (o)"_angle_class2.html,
"class2 (ko)"_angle_class2.html,
"cosine (o)"_angle_cosine.html,
"cosine/delta (o)"_angle_cosine_delta.html,
"cosine/periodic (o)"_angle_cosine_periodic.html,
@ -1136,7 +1163,8 @@ USER-OMP, t = OPT.
"zero"_dihedral_zero.html,
"hybrid"_dihedral_hybrid.html,
"charmm (ko)"_dihedral_charmm.html,
"class2 (o)"_dihedral_class2.html,
"charmmfsw"_dihedral_charmm.html,
"class2 (ko)"_dihedral_class2.html,
"harmonic (io)"_dihedral_harmonic.html,
"helix (o)"_dihedral_helix.html,
"multi/harmonic (o)"_dihedral_multi_harmonic.html,
@ -1168,7 +1196,7 @@ USER-OMP, t = OPT.
"none"_improper_none.html,
"zero"_improper_zero.html,
"hybrid"_improper_hybrid.html,
"class2 (o)"_improper_class2.html,
"class2 (ko)"_improper_class2.html,
"cvff (io)"_improper_cvff.html,
"harmonic (ko)"_improper_harmonic.html,
"umbrella (o)"_improper_umbrella.html :tb(c=4,ea=c)
@ -1200,7 +1228,7 @@ USER-OMP, t = OPT.
"msm/cg (o)"_kspace_style.html,
"pppm (go)"_kspace_style.html,
"pppm/cg (o)"_kspace_style.html,
"pppm/disp"_kspace_style.html,
"pppm/disp (i)"_kspace_style.html,
"pppm/disp/tip4p"_kspace_style.html,
"pppm/stagger"_kspace_style.html,
"pppm/tip4p (o)"_kspace_style.html :tb(c=4,ea=c)

View File

@ -22,7 +22,7 @@ either conceptually, or as printed out by the program.
12.1 Common problems :link(err_1),h4
If two LAMMPS runs do not produce the same answer on different
If two LAMMPS runs do not produce the exact same answer on different
machines or different numbers of processors, this is typically not a
bug. In theory you should get identical answers on any number of
processors and on any machine. In practice, numerical round-off can
@ -55,12 +55,13 @@ LAMMPS errors are detected at setup time; others like a bond
stretching too far may not occur until the middle of a run.
LAMMPS tries to flag errors and print informative error messages so
you can fix the problem. Of course, LAMMPS cannot figure out your
physics or numerical mistakes, like choosing too big a timestep,
specifying erroneous force field coefficients, or putting 2 atoms on
top of each other! If you run into errors that LAMMPS doesn't catch
that you think it should flag, please send an email to the
"developers"_http://lammps.sandia.gov/authors.html.
you can fix the problem. For most errors it will also print the last
input script command that it was processing. Of course, LAMMPS cannot
figure out your physics or numerical mistakes, like choosing too big a
timestep, specifying erroneous force field coefficients, or putting 2
atoms on top of each other! If you run into errors that LAMMPS
doesn't catch that you think it should flag, please send an email to
the "developers"_http://lammps.sandia.gov/authors.html.
If you get an error message about an invalid command in your input
script, you can determine what command is causing the problem by
@ -70,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.
@ -79,12 +80,24 @@ order. If you mess this up, LAMMPS will often flag the error, but it
may also simply read a bogus argument and assign a value that is
valid, but not what you wanted. E.g. trying to read the string "abc"
as an integer value of 0. Careful reading of the associated doc page
for the command should allow you to fix these problems. Note that
some commands allow for variables to be specified in place of numeric
constants so that the value can be evaluated and change over the
course of a run. This is typically done with the syntax {v_name} for
a parameter, where name is the name of the variable. This is only
allowed if the command documentation says it is.
for the command should allow you to fix these problems. In most cases,
where LAMMPS expects to read a number, either integer or floating point,
it performs a stringent test on whether the provided input actually
is an integer or floating-point number, respectively, and reject the
input with an error message (for instance, when an integer is required,
but a floating-point number 1.0 is provided):
ERROR: Expected integer parameter in input script or data file :pre
Some commands allow for using variable references in place of numeric
constants so that the value can be evaluated and may change over the
course of a run. This is typically done with the syntax {v_name} for a
parameter, where name is the name of the variable. On the other hand,
immediate variable expansion with the syntax ${name} is performed while
reading the input and before parsing commands,
NOTE: Using a variable reference (i.e. {v_name}) is only allowed if
the documentation of the corresponding command explicitly says it is.
Generally, LAMMPS will print a message to the screen and logfile and
exit gracefully when it encounters a fatal error. Sometimes it will
@ -561,11 +574,11 @@ group of atoms correctly. :dd
{Bad quadratic solve for particle/line collision} :dt
This is an internal error. It should nornally not occur. :dd
This is an internal error. It should normally not occur. :dd
{Bad quadratic solve for particle/tri collision} :dt
This is an internal error. It should nornally not occur. :dd
This is an internal error. It should normally not occur. :dd
{Bad real space Coulomb cutoff in fix tune/kspace} :dt
@ -899,7 +912,7 @@ Atoms can not be added afterwards to this fix option. :dd
{Cannot append atoms to a triclinic box} :dt
The simulation box must be defined with edges alligned with the
The simulation box must be defined with edges aligned with the
Cartesian axes. :dd
{Cannot balance in z dimension for 2d simulation} :dt
@ -979,7 +992,7 @@ file. :dd
LAMMPS failed to compute an initial guess for the PPPM_disp g_ewald_6
factor that partitions the computation between real space and k-space
for Disptersion interactions. :dd
for Dispersion interactions. :dd
{Cannot create an atom map unless atoms have IDs} :dt
@ -1314,7 +1327,7 @@ Self-explanatory. :dd
This file is created when you use some LAMMPS features, to indicate
what paper you should cite on behalf of those who implemented
the feature. Check that you have write priveleges into the directory
the feature. Check that you have write privileges into the directory
you are running in. :dd
{Cannot open log.lammps for writing} :dt
@ -1992,7 +2005,7 @@ Self-explanatory. :dd
{Cannot use fix reax/bonds without pair_style reax} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Cannot use fix rigid npt/nph and fix deform on same component of stress tensor} :dt
@ -2075,7 +2088,7 @@ Self-explanatory. :dd
{Cannot use lines with fix srd unless overlap is set} :dt
This is because line segements are connected to each other. :dd
This is because line segments are connected to each other. :dd
{Cannot use multiple fix wall commands with pair brownian} :dt
@ -2118,7 +2131,7 @@ Self-explanatory. :dd
{Cannot use newton pair with born/gpu pair style} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Cannot use newton pair with buck/coul/cut/gpu pair style} :dt
@ -2278,7 +2291,7 @@ Self-explanatory. :dd
{Cannot use newton pair with zbl/gpu pair style} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Cannot use non-zero forces in an energy minimization} :dt
@ -2628,11 +2641,11 @@ uses a pairwise neighbor list. :dd
{Compute chunk/atom bin/cylinder radius is too large for periodic box} :dt
Radius cannot be bigger than 1/2 of a non-axis periodic dimention. :dd
Radius cannot be bigger than 1/2 of a non-axis periodic dimension. :dd
{Compute chunk/atom bin/sphere radius is too large for periodic box} :dt
Radius cannot be bigger than 1/2 of any periodic dimention. :dd
Radius cannot be bigger than 1/2 of any periodic dimension. :dd
{Compute chunk/atom compute array is accessed out-of-range} :dt
@ -2693,15 +2706,15 @@ It will only store IDs if its compress option is enabled. :dd
{Compute chunk/atom stores no coord1 for compute property/chunk} :dt
Only certain binning options for comptue chunk/atom store coordinates. :dd
Only certain binning options for compute chunk/atom store coordinates. :dd
{Compute chunk/atom stores no coord2 for compute property/chunk} :dt
Only certain binning options for comptue chunk/atom store coordinates. :dd
Only certain binning options for compute chunk/atom store coordinates. :dd
{Compute chunk/atom stores no coord3 for compute property/chunk} :dt
Only certain binning options for comptue chunk/atom store coordinates. :dd
Only certain binning options for compute chunk/atom store coordinates. :dd
{Compute chunk/atom variable is not atom-style variable} :dt
@ -2722,11 +2735,11 @@ is used to find clusters. :dd
{Compute cna/atom cutoff is longer than pairwise cutoff} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Compute cna/atom requires a pair style be defined} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Compute com/chunk does not use chunk/atom compute} :dt
@ -2734,7 +2747,7 @@ The style of the specified compute is not chunk/atom. :dd
{Compute contact/atom requires a pair style be defined} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Compute contact/atom requires atom style sphere} :dt
@ -2747,7 +2760,7 @@ since those atoms are not in the neighbor list. :dd
{Compute coord/atom requires a pair style be defined} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Compute damage/atom requires peridynamic potential} :dt
@ -2777,7 +2790,7 @@ Self-explanatory. :dd
{Compute erotate/asphere requires extended particles} :dt
This compute cannot be used with point paritlces. :dd
This compute cannot be used with point particles. :dd
{Compute erotate/rigid with non-rigid fix-ID} :dt
@ -2822,7 +2835,7 @@ Cannot compute order parameter beyond cutoff. :dd
{Compute hexorder/atom requires a pair style be defined} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Compute improper/local used when impropers are not allowed} :dt
@ -2868,11 +2881,11 @@ Cannot compute order parameter beyond cutoff. :dd
{Compute orientorder/atom requires a pair style be defined} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Compute pair must use group all} :dt
Pair styles accumlate energy on all atoms. :dd
Pair styles accumulate energy on all atoms. :dd
{Compute pe must use group all} :dt
@ -2922,7 +2935,7 @@ The style of the specified compute is not chunk/atom. :dd
{Compute property/local cannot use these inputs together} :dt
Only inputs that generate the same number of datums can be used
togther. E.g. bond and angle quantities cannot be mixed. :dd
together. E.g. bond and angle quantities cannot be mixed. :dd
{Compute property/local does not (yet) work with atom_style template} :dt
@ -3066,7 +3079,7 @@ Self-explanatory. :dd
{Compute temp/asphere requires extended particles} :dt
This compute cannot be used with point paritlces. :dd
This compute cannot be used with point particles. :dd
{Compute temp/body requires atom style body} :dt
@ -3511,12 +3524,12 @@ path and name are correct. :dd
{Could not process Python file} :dt
The Python code in the specified file was not run sucessfully by
The Python code in the specified file was not run successfully by
Python, probably due to errors in the Python code. :dd
{Could not process Python string} :dt
The Python code in the here string was not run sucessfully by Python,
The Python code in the here string was not run successfully by Python,
probably due to errors in the Python code. :dd
{Coulomb PPPMDisp order has been reduced below minorder} :dt
@ -3625,7 +3638,7 @@ Self-explanatory. :dd
{Cutoffs missing in pair_style buck/long/coul/long} :dt
Self-exlanatory. :dd
Self-explanatory. :dd
{Cutoffs missing in pair_style lj/long/coul/long} :dt
@ -4372,7 +4385,7 @@ Self-explanatory. :dd
{Fix ave/chunk does not use chunk/atom compute} :dt
The specified conpute is not for a compute chunk/atom command. :dd
The specified compute is not for a compute chunk/atom command. :dd
{Fix ave/chunk fix does not calculate a per-atom array} :dt
@ -4604,11 +4617,11 @@ An index for the array is out of bounds. :dd
{Fix ave/time compute does not calculate a scalar} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Fix ave/time compute does not calculate a vector} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Fix ave/time compute does not calculate an array} :dt
@ -4683,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
@ -4957,7 +4970,7 @@ Self-explanatory. :dd
{Fix langevin angmom requires extended particles} :dt
This fix option cannot be used with point paritlces. :dd
This fix option cannot be used with point particles. :dd
{Fix langevin omega is not yet implemented with kokkos} :dt
@ -6158,7 +6171,7 @@ map command will force an atom map to be created. :dd
{Initial temperatures not all set in fix ttm} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Input line quote not followed by whitespace} :dt
@ -6186,7 +6199,7 @@ Eigensolve for rigid body was not sufficiently accurate. :dd
{Insufficient Jacobi rotations for triangle} :dt
The calculation of the intertia tensor of the triangle failed. This
The calculation of the inertia tensor of the triangle failed. This
should not happen if it is a reasonably shaped triangle. :dd
{Insufficient memory on accelerator} :dt
@ -6450,15 +6463,15 @@ Self-explanatory. :dd
{Invalid attribute in dump custom command} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Invalid attribute in dump local command} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Invalid attribute in dump modify command} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Invalid basis setting in create_atoms command} :dt
@ -6724,7 +6737,7 @@ or cause multiple files to be written. :dd
Filenames used with the dump xyz style cannot be binary or cause files
to be written by each processor. :dd
{Invalid dump_modify threshhold operator} :dt
{Invalid dump_modify threshold operator} :dt
Operator keyword used for threshold specification in not recognized. :dd
@ -6738,7 +6751,7 @@ The fix is not recognized. :dd
{Invalid fix ave/time off column} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Invalid fix box/relax command for a 2d simulation} :dt
@ -7300,7 +7313,7 @@ Self-explanatory. Check the input script or data file. :dd
{LJ6 off not supported in pair_style buck/long/coul/long} :dt
Self-exlanatory. :dd
Self-explanatory. :dd
{Label wasn't found in input script} :dt
@ -7348,7 +7361,7 @@ This should not occur. Report the problem to the developers. :dd
Lost atoms are checked for each time thermo output is done. See the
thermo_modify lost command for options. Lost atoms usually indicate
bad dynamics, e.g. atoms have been blown far out of the simulation
box, or moved futher than one processor's sub-domain away before
box, or moved further than one processor's sub-domain away before
reneighboring. :dd
{MEAM library error %d} :dt
@ -7513,7 +7526,7 @@ Self-explanatory. :dd
{Molecule template ID for create_atoms does not exist} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Molecule template ID for fix deposit does not exist} :dt
@ -7539,7 +7552,7 @@ Self-explanatory. :dd
Self-explanatory. :dd
{Molecule toplogy/atom exceeds system topology/atom} :dt
{Molecule topology/atom exceeds system topology/atom} :dt
The number of bonds, angles, etc per-atom in the molecule exceeds the
system setting. See the create_box command for how to specify these
@ -7779,7 +7792,7 @@ Self-explanatory. :dd
{Must use variable energy with fix addforce} :dt
Must define an energy vartiable when applyting a dynamic
Must define an energy variable when applying a dynamic
force during minimization. :dd
{Must use variable energy with fix efield} :dt
@ -7863,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 "special_bonds extra" command
(or the "read_data extra/special/per/atom" command)
for info on how to leave space in the special bonds
list to allow for additional bonds to be formed. :dd
{Newton bond change after simulation box is defined} :dt
@ -8029,7 +8044,7 @@ Self-explanatory. :dd
{Non digit character between brackets in variable} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Non integer # of swaps in temper command} :dt
@ -8650,7 +8665,7 @@ not be invoked by bond_style quartic. :dd
{Pair style does not support compute group/group} :dt
The pair_style does not have a single() function, so it cannot be
invokded by the compute group/group command. :dd
invoked by the compute group/group command. :dd
{Pair style does not support compute pair/local} :dt
@ -8877,6 +8892,14 @@ This is a requirement to use this potential. :dd
See the newton command. This is a restriction to use this potential. :dd
{Pair style vashishta/gpu requires atom IDs} :dt
This is a requirement to use this potential. :dd
{Pair style vashishta/gpu requires newton pair off} :dt
See the newton command. This is a restriction to use this potential. :dd
{Pair style tersoff/gpu requires atom IDs} :dt
This is a requirement to use the tersoff/gpu potential. :dd
@ -8935,11 +8958,11 @@ Self-explanatory. :dd
{Pair yukawa/colloid requires atom style sphere} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Pair yukawa/colloid requires atoms with same type have same radius} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Pair yukawa/colloid/gpu requires atom style sphere} :dt
@ -9153,7 +9176,7 @@ Self-explanatory. :dd
{Python function evaluation failed} :dt
The Python function did not run succesfully and/or did not return a
The Python function did not run successfully and/or did not return a
value (if it is supposed to return a value). This is probably due to
some error condition in the function. :dd
@ -9643,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 special_bonds extra command
(or the read_data extra/special/per/atom command)
for info on how to leave space in the special bonds
list to allow for additional bonds to be formed. :dd
{Specified processors != physical processors} :dt
@ -9662,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
@ -10012,7 +10036,7 @@ make sense in between runs. :dd
{Threshhold for an atom property that isn't allocated} :dt
A dump threshhold has been requested on a quantity that is
A dump threshold has been requested on a quantity that is
not defined by the atom style used in this simulation. :dd
{Timestep must be >= 0} :dt
@ -10074,7 +10098,7 @@ to a large size. :dd
{Too many atom triplets for pair bop} :dt
The number of three atom groups for angle determinations exceeds the
expected number. Check your atomic structrure to ensure that it is
expected number. Check your atomic structure to ensure that it is
realistic. :dd
{Too many atoms for dump dcd} :dt
@ -10142,7 +10166,7 @@ to a large size. :dd
{Too many timesteps} :dt
The cummulative timesteps must fit in a 64-bit integer. :dd
The cumulative timesteps must fit in a 64-bit integer. :dd
{Too many timesteps for NEB} :dt
@ -10641,7 +10665,7 @@ Only atom-style variables can be used. :dd
{Variable for region cylinder is invalid style} :dt
Only equal-style varaibles are allowed. :dd
Only equal-style variables are allowed. :dd
{Variable for region is invalid style} :dt
@ -10653,7 +10677,7 @@ Self-explanatory. :dd
{Variable for region sphere is invalid style} :dt
Only equal-style varaibles are allowed. :dd
Only equal-style variables are allowed. :dd
{Variable for restart is invalid style} :dt
@ -10694,7 +10718,7 @@ Self-explanatory. :dd
{Variable has circular dependency} :dt
A circular dependency is when variable "a" in used by variable "b" and
variable "b" is also used by varaible "a". Circular dependencies with
variable "b" is also used by variable "a". Circular dependencies with
longer chains of dependence are also not allowed. :dd
{Variable name between brackets must be alphanumeric or underscore characters} :dt
@ -10783,7 +10807,7 @@ Self-explanatory. :dd
{Variable name for fix deform does not exist} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Variable name for fix efield does not exist} :dt
@ -11070,7 +11094,7 @@ for a dihedral) and adding a small amount of stretch. :dd
{Both groups in compute group/group have a net charge; the Kspace boundary correction to energy will be non-zero} :dt
Self-explantory. :dd
Self-explanatory. :dd
{Calling write_dump before a full system init.} :dt
@ -11158,6 +11182,12 @@ Self-explanatory. :dd
If the fix changes the timestep, the dump dcd file will not
reflect the change. :dd
{Energy due to X extra global DOFs will be included in minimizer energies} :dt
When using fixes like box/relax, the potential energy used by the minimizer
is augmented by an additional energy provided by the fix. Thus the printed
converged energy may be different from the total potential energy. :dd
{Energy tally does not account for 'zero yes'} :dt
The energy removed by using the 'zero yes' flag is not accounted
@ -11401,7 +11431,7 @@ The command options you have used caused atoms to be lost. :dd
Lost atoms are checked for each time thermo output is done. See the
thermo_modify lost command for options. Lost atoms usually indicate
bad dynamics, e.g. atoms have been blown far out of the simulation
box, or moved futher than one processor's sub-domain away before
box, or moved further than one processor's sub-domain away before
reneighboring. :dd
{MSM mesh too small, increasing to 2 points in each direction} :dt
@ -11439,7 +11469,7 @@ i.e. the first molecule in the template. :dd
{Molecule template for fix shake has multiple molecules} :dt
The fix shake command will only recoginze molecules of a single
The fix shake command will only recognize molecules of a single
type, i.e. the first molecule in the template. :dd
{More than one compute centro/atom} :dt
@ -11524,7 +11554,7 @@ neigh_modify exclude command. :dd
If a thermo_style command is used after a thermo_modify command, the
settings changed by the thermo_modify command will be reset to their
default values. This is because the thermo_modify commmand acts on
default values. This is because the thermo_modify command acts on
the currently defined thermo style, and a thermo_style command creates
a new style. :dd
@ -11576,7 +11606,7 @@ This may not be what you intended. :dd
{One or more dynamic groups may not be updated at correct point in timestep} :dt
If there are other fixes that act immediately after the intitial stage
If there are other fixes that act immediately after the initial stage
of time integration within a timestep (i.e. after atoms move), then
the command that sets up the dynamic group should appear after those
fixes. This will insure that dynamic group assignments are made
@ -11873,7 +11903,7 @@ Self-explanatory. :dd
{Using largest cutoff for buck/long/coul/long} :dt
Self-exlanatory. :dd
Self-explanatory. :dd
{Using largest cutoff for lj/long/coul/long} :dt

View File

@ -25,9 +25,7 @@ files and image files.
If you uncomment the "dump"_dump.html command in the input script, a
text dump file will be produced, which can be animated by various
"visualization programs"_http://lammps.sandia.gov/viz.html. It can
also be animated using the xmovie tool described in the "Additional
Tools"_Section_tools.html section of the LAMMPS documentation.
"visualization programs"_http://lammps.sandia.gov/viz.html.
If you uncomment the "dump image"_dump.html command in the input
script, and assuming you have built LAMMPS with a JPG library, JPG
@ -51,11 +49,14 @@ 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
colloid: big colloid particles in a small particle solvent, 2d system
comb: models using the COMB potential
coreshell: core/shell model using CORESHELL package
controller: use of fix controller as a thermostat
crack: crack propagation in a 2d solid
deposit: deposit atoms and molecules on a surface
dipole: point dipolar particles, 2d system
@ -64,6 +65,8 @@ eim: NaCl using the EIM potential
ellipse: ellipsoidal particles in spherical solvent, 2d system
flow: Couette and Poiseuille flow in a 2d channel
friction: frictional contact of spherical asperities between 2d surfaces
gcmc: Grand Canonical Monte Carlo (GCMC) via the fix gcmc command
granregion: use of fix wall/region/gran as boundary on granular particles
hugoniostat: Hugoniostat shock dynamics
indent: spherical indenter into a 2d solid
kim: use of potentials in Knowledge Base for Interatomic Models (KIM)
@ -71,6 +74,7 @@ meam: MEAM test for SiC and shear (same as shear examples)
melt: rapid melt of 3d LJ system
micelle: self-assembly of small lipid-like molecules into 2d bilayers
min: energy minimization of 2d LJ melt
mscg: parameterize a multi-scale coarse-graining (MSCG) model
msst: MSST shock dynamics
nb3b: use of nonbonded 3-body harmonic pair style
neb: nudged elastic band (NEB) calculation for barrier finding
@ -89,7 +93,8 @@ snap: NVE dynamics for BCC tantalum crystal using SNAP potential
srd: stochastic rotation dynamics (SRD) particles as solvent
streitz: use of Streitz/Mintmire potential with charge equilibration
tad: temperature-accelerated dynamics of vacancy diffusion in bulk Si
vashishta: use of the Vashishta potential :tb(s=:)
vashishta: use of the Vashishta potential
voronoi: Voronoi tesselation via compute voronoi/atom command :tb(s=:)
Here is how you can run and visualize one of the sample problems:

View File

@ -37,7 +37,7 @@ pitfalls or alternatives.
Please see some of the closed issues for examples of how to
suggest code enhancements, submit proposed changes, or report
possible bugs and how they are resoved.
possible bugs and how they are resolved.
As an alternative to using GitHub, you may e-mail the
"core developers"_http://lammps.sandia.gov/authors.html or send

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
@ -165,9 +165,16 @@ Many of the example input scripts included in the LAMMPS distribution
are for 2d models.
NOTE: Some models in LAMMPS treat particles as finite-size spheres, as
opposed to point particles. In 2d, the particles will still be
spheres, not disks, meaning their moment of inertia will be the same
as in 3d.
opposed to point particles. See the "atom_style
sphere"_atom_style.html and "fix nve/sphere"_fix_nve_sphere.html
commands for details. By default, for 2d simulations, such particles
will still be modeled as 3d spheres, not 2d discs (circles), meaning
their moment of inertia will be that of a sphere. If you wish to
model them as 2d discs, see the "set density/disc"_set.html command
and the {disc} option for the "fix nve/sphere"_fix_nve_sphere.html,
"fix nvt/sphere"_fix_nvt_sphere.html, "fix
nph/sphere"_fix_nph_sphere.html, "fix npt/sphere"_fix_npt_sphere.html
commands.
:line
@ -197,7 +204,10 @@ documentation for the formula it computes.
"bond_style"_bond_harmonic.html harmonic
"angle_style"_angle_charmm.html charmm
"dihedral_style"_dihedral_charmm.html charmmfsh
"dihedral_style"_dihedral_charmm.html charmm
"pair_style"_pair_charmm.html lj/charmmfsw/coul/charmmfsh
"pair_style"_pair_charmm.html lj/charmmfsw/coul/long
"pair_style"_pair_charmm.html lj/charmm/coul/charmm
"pair_style"_pair_charmm.html lj/charmm/coul/charmm/implicit
"pair_style"_pair_charmm.html lj/charmm/coul/long :ul
@ -205,6 +215,12 @@ documentation for the formula it computes.
"special_bonds"_special_bonds.html charmm
"special_bonds"_special_bonds.html amber :ul
NOTE: For CHARMM, newer {charmmfsw} or {charmmfsh} styles were
released in March 2017. We recommend they be used instead of the
older {charmm} styles. See discussion of the differences on the "pair
charmm"_pair_charmm.html and "dihedral charmm"_dihedral_charmm.html
doc pages.
DREIDING is a generic force field developed by the "Goddard
group"_http://www.wag.caltech.edu at Caltech and is useful for
predicting structures and dynamics of organic, biological and
@ -321,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
@ -371,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:
@ -379,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),
@ -434,6 +450,12 @@ computations between frozen atoms by using this command:
"neigh_modify"_neigh_modify.html exclude :ul
NOTE: By default, for 2d systems, granular particles are still modeled
as 3d spheres, not 2d discs (circles), meaning their moment of inertia
will be the same as in 3d. If you wish to model granular particles in
2d as 2d discs, see the note on this topic in "Section
6.2"_Section_howto.html#howto_2, where 2d simulations are disussed.
:line
6.7 TIP3P water model :link(howto_7),h4
@ -451,7 +473,7 @@ atoms and the water molecule to run a rigid TIP3P-CHARMM model with a
cutoff. The K values can be used if a flexible TIP3P model (without
fix shake) is desired. If the LJ epsilon and sigma for HH and OH are
set to 0.0, it corresponds to the original 1983 TIP3P model
"(Jorgensen)"_#Jorgensen.
"(Jorgensen)"_#Jorgensen1.
O mass = 15.9994
H mass = 1.008
@ -469,7 +491,7 @@ K of HOH angle = 55
theta of HOH angle = 104.52 :all(b),p
These are the parameters to use for TIP3P with a long-range Coulombic
solver (e.g. Ewald or PPPM in LAMMPS), see "(Price)"_#Price for
solver (e.g. Ewald or PPPM in LAMMPS), see "(Price)"_#Price1 for
details:
O mass = 15.9994
@ -513,7 +535,7 @@ using the "fix shake"_fix_shake.html command.
These are the additional parameters (in real units) to set for O and H
atoms and the water molecule to run a rigid TIP4P model with a cutoff
"(Jorgensen)"_#Jorgensen. Note that the OM distance is specified in
"(Jorgensen)"_#Jorgensen1. Note that the OM distance is specified in
the "pair_style"_pair_style.html command, not as part of the pair
coefficients.
@ -573,7 +595,7 @@ LJ epsilon of O-O = 0.16275
LJ sigma of O-O = 3.16435
LJ epsilon, sigma of OH, HH = 0.0 :all(b),p
Note that the when using the TIP4P pair style, the neighobr list
Note that the when using the TIP4P pair style, the neighbor list
cutoff for Coulomb interactions is effectively extended by a distance
2 * (OM distance), to account for the offset distance of the
fictitious charges on O atoms in water molecules. Thus it is
@ -618,7 +640,7 @@ any of the parameters above, though it becomes a different model in
that mode of usage.
The SPC/E (extended) water model is the same, except
the partial charge assignemnts change:
the partial charge assignments change:
O charge = -0.8476
H charge = 0.4238 :all(b),p
@ -737,23 +759,14 @@ LAMMPS itself does not do visualization, but snapshots from LAMMPS
simulations can be visualized (and analyzed) in a variety of ways.
LAMMPS snapshots are created by the "dump"_dump.html command which can
create files in several formats. The native LAMMPS dump format is a
create files in several formats. The native LAMMPS dump format is a
text file (see "dump atom" or "dump custom") which can be visualized
by the "xmovie"_Section_tools.html#xmovie program, included with the
LAMMPS package. This produces simple, fast 2d projections of 3d
systems, and can be useful for rapid debugging of simulation geometry
and atom trajectories.
by several popular visualization tools. The "dump image"_dump_image.html
and "dump movie"_dump_image.html styles can output internally rendered
images and convert a sequence of them to a movie during the MD run.
Several programs included with LAMMPS as auxiliary tools can convert
native LAMMPS dump files to other formats. See the
"Section 9"_Section_tools.html doc page for details. The first is
the "ch2lmp tool"_Section_tools.html#charmm, which contains a
lammps2pdb Perl script which converts LAMMPS dump files into PDB
files. The second is the "lmp2arc tool"_Section_tools.html#arc which
converts LAMMPS dump files into Accelrys' Insight MD program files.
The third is the "lmp2cfg tool"_Section_tools.html#cfg which converts
LAMMPS dump files into CFG files which can be read into the
"AtomEye"_atomeye visualizer.
between LAMMPS format files and other formats.
See the "Section 9"_Section_tools.html doc page for details.
A Python-based toolkit distributed by our group can read native LAMMPS
dump files, including custom dump files with additional columns of
@ -766,22 +779,7 @@ RasMol visualization programs. Pizza.py has tools that do interactive
3d OpenGL visualization and one that creates SVG images of dump file
snapshots.
LAMMPS can create XYZ files directly (via "dump xyz") which is a
simple text-based file format used by many visualization programs
including "VMD"_vmd.
LAMMPS can create DCD files directly (via "dump dcd") which can be
read by "VMD"_vmd in conjunction with a CHARMM PSF file. Using this
form of output avoids the need to convert LAMMPS snapshots to PDB
files. See the "dump"_dump.html command for more information on DCD
files.
LAMMPS can create XTC files directly (via "dump xtc") which is GROMACS
file format which can also be read by "VMD"_vmd for visualization.
See the "dump"_dump.html command for more information on XTC files.
:link(pizza,http://www.sandia.gov/~sjplimp/pizza.html)
:link(vmd,http://www.ks.uiuc.edu/Research/vmd)
:link(ensight,http://www.ensight.com)
:link(atomeye,http://mt.seas.upenn.edu/Archive/Graphics/A)
@ -863,7 +861,7 @@ boundary conditions in specific dimensions. See the command doc pages
for details.
The 9 parameters (xlo,xhi,ylo,yhi,zlo,zhi,xy,xz,yz) are defined at the
time the simluation box is created. This happens in one of 3 ways.
time the simulation box is created. This happens in one of 3 ways.
If the "create_box"_create_box.html command is used with a region of
style {prism}, then a triclinic box is setup. See the
"region"_region.html command for details. If the
@ -982,10 +980,10 @@ used with non-orthogonal basis vectors to define a lattice that will
tile a triclinic simulation box via the
"create_atoms"_create_atoms.html command.
A second use is to run Parinello-Rahman dyanamics via the "fix
A second use is to run Parinello-Rahman dynamics via the "fix
npt"_fix_nh.html command, which will adjust the xy, xz, yz tilt
factors to compensate for off-diagonal components of the pressure
tensor. The analalog for an "energy minimization"_minimize.html is
tensor. The analog for an "energy minimization"_minimize.html is
the "fix box/relax"_fix_box_relax.html command.
A third use is to shear a bulk solid to study the response of the
@ -1032,6 +1030,10 @@ profile consistent with the applied shear strain rate.
An alternative method for calculating viscosities is provided via the
"fix viscosity"_fix_viscosity.html command.
NEMD simulations can also be used to measure transport properties of a fluid
through a pore or channel. Simulations of steady-state flow can be performed
using the "fix flow/gauss"_fix_flow_gauss.html command.
:line
6.14 Finite-size spherical and aspherical particles :link(howto_14),h4
@ -1392,7 +1394,7 @@ custom"_dump.html command.
There is also a "dump local"_dump.html format where the user specifies
what local values to output. A pre-defined index keyword can be
specified to enumuerate the local values. Two additional kinds of
specified to enumerate the local values. Two additional kinds of
keywords can also be specified (c_ID, f_ID), where a
"compute"_compute.html or "fix"_fix.html or "variable"_variable.html
provides the values to be output. In each case, the compute or fix
@ -1525,7 +1527,7 @@ Variables that generate values to output :h5,link(variable)
"Variables"_variable.html defined in an input script can store one or
more strings. But equal-style, vector-style, and atom-style or
atomfile-style variables generate a global scalar value, global vector
or values, or a per-atom vector, resepctively, when accessed. The
or values, or a per-atom vector, respectively, when accessed. The
formulas used to define these variables can contain references to the
thermodynamic keywords and to global and per-atom data generated by
computes, fixes, and other variables. The values generated by
@ -1585,7 +1587,7 @@ Temperature is computed as kinetic energy divided by some number of
degrees of freedom (and the Boltzmann constant). Since kinetic energy
is a function of particle velocity, there is often a need to
distinguish between a particle's advection velocity (due to some
aggregate motiion of particles) and its thermal velocity. The sum of
aggregate motion of particles) and its thermal velocity. The sum of
the two is the particle's total velocity, but the latter is often what
is wanted to compute a temperature.
@ -1640,14 +1642,14 @@ nvt/asphere"_fix_nvt_asphere.html thermostat not only translation
velocities but also rotational velocities for spherical and aspherical
particles.
DPD thermostatting alters pairwise interactions in a manner analagous
DPD thermostatting alters pairwise interactions in a manner analogous
to the per-particle thermostatting of "fix
langevin"_fix_langevin.html.
Any of the thermostatting fixes can use temperature computes that
remove bias which has two effects. First, the current calculated
temperature, which is compared to the requested target temperature, is
caluclated with the velocity bias removed. Second, the thermostat
calculated with the velocity bias removed. Second, the thermostat
adjusts only the thermal temperature component of the particle's
velocities, which are the velocities with the bias removed. The
removed bias is then added back to the adjusted velocities. See the
@ -1684,7 +1686,7 @@ nph) and Berendsen:
The "fix npt"_fix_nh.html commands include a Nose-Hoover thermostat
and barostat. "Fix nph"_fix_nh.html is just a Nose/Hoover barostat;
it does no thermostatting. Both "fix nph"_fix_nh.html and "fix
press/bernendsen"_fix_press_berendsen.html can be used in conjunction
press/berendsen"_fix_press_berendsen.html can be used in conjunction
with any of the thermostatting fixes.
As with the thermostats, "fix npt"_fix_nh.html and "fix
@ -1834,7 +1836,7 @@ the deformation must be chosen judiciously, and care must be taken to
fully equilibrate the deformed cell before sampling the stress
tensor. Another approach is to sample the triclinic cell fluctuations
that occur in an NPT simulation. This method can also be slow to
converge and requires careful post-processing "(Shinoda)"_#Shinoda
converge and requires careful post-processing "(Shinoda)"_#Shinoda1
:line
@ -1870,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
@ -1888,7 +1890,7 @@ instances of LAMMPS to perform different calculations.
The lammps_open_no_mpi() function is similar except that no MPI
communicator is passed from the caller. Instead, MPI_COMM_WORLD is
used to instantiate LAMMPS, and MPI is initialzed if necessary.
used to instantiate LAMMPS, and MPI is initialized if necessary.
The lammps_close() function is used to shut down an instance of LAMMPS
and free all its memory.
@ -1936,7 +1938,7 @@ documentation in the src/library.cpp file for details, including
which quantities can be queried by name:
void *lammps_extract_global(void *, char *)
void lammps_extract_box(void *, double *, double *,
void lammps_extract_box(void *, double *, double *,
double *, double *, double *, int *, int *)
void *lammps_extract_atom(void *, char *)
void *lammps_extract_compute(void *, char *, int, int)
@ -1957,9 +1959,12 @@ The extract functions return a pointer to various global or per-atom
quantities stored in LAMMPS or to values calculated by a compute, fix,
or variable. The pointer returned by the extract_global() function
can be used as a permanent reference to a value which may change. For
the other extract functions, the underlying storage may be reallocated
as LAMMPS runs, so you need to re-call the function to assure a
current pointer or returned value(s).
the extract_atom() method, see the extract() method in the
src/atom.cpp file for a list of valid per-atom properties. New names
could easily be added if the property you want is not listed. For the
other extract functions, the underlying storage may be reallocated as
LAMMPS runs, so you need to re-call the function to assure a current
pointer or returned value(s).
The lammps_reset_box() function resets the size and shape of the
simulation box, e.g. as part of restoring a previously extracted and
@ -1975,11 +1980,20 @@ keyword as a double precision value.
The lammps_get_natoms() function returns the total number of atoms in
the system and can be used by the caller to allocate space for the
lammps_gather_atoms() and lammps_scatter_atoms() functions. The
gather function collects atom info of the requested type (atom coords,
types, forces, etc) from all procsesors, orders them by atom ID, and
returns a full list to each calling processor. The scatter function
does the inverse. It distributes the same kinds of values,
gather function collects peratom info of the requested type (atom
coords, types, forces, etc) from all processors, orders them by atom
ID, and returns a full list to each calling processor. The scatter
function does the inverse. It distributes the same peratom values,
passed by the caller, to each atom owned by individual processors.
Both methods are thus a means to extract or assign (overwrite) any
peratom quantities within LAMMPS. See the extract() method in the
src/atom.cpp file for a list of valid per-atom properties. New names
could easily be added if the property you want is not listed.
A special treatment is applied for accessing image flags via the
"image" property. Image flags are stored in a packed format with all
three image flags stored in a single integer. When signaling to access
the image flags as 3 individual values per atom instead of 1, the data
is transparently packed or unpacked by the library interface.
The lammps_create_atoms() function takes a list of N atoms as input
with atom types and coords (required), an optionally atom IDs and
@ -2013,7 +2027,7 @@ a simple Lennard-Jones fluid model. Also, see "this
section"_Section_howto.html#howto_21 of the manual for an analogous
discussion for viscosity.
The thermal conducitivity tensor kappa is a measure of the propensity
The thermal conductivity tensor kappa is a measure of the propensity
of a material to transmit heat energy in a diffusive manner as given
by Fourier's law
@ -2099,7 +2113,7 @@ and grad(Vstream) is the spatial gradient of the velocity of the fluid
moving in another direction, normal to the area through which the
momentum flows. Viscosity thus has units of pressure-time.
The first method is to perform a non-equlibrium MD (NEMD) simulation
The first method is to perform a non-equilibrium MD (NEMD) simulation
by shearing the simulation box via the "fix deform"_fix_deform.html
command, and using the "fix nvt/sllod"_fix_nvt_sllod.html command to
thermostat the fluid via the SLLOD equations of motion.
@ -2125,7 +2139,7 @@ the rNEMD algorithm of Muller-Plathe. Momentum in one dimension is
swapped between atoms in two different layers of the simulation box in
a different dimension. This induces a velocity gradient which can be
monitored with the "fix ave/chunk"_fix_ave_chunk.html command.
The fix tallies the cummulative momentum transfer that it performs.
The fix tallies the cumulative momentum transfer that it performs.
See the "fix viscosity"_fix_viscosity.html command for details.
The fourth method is based on the Green-Kubo (GK) formula which
@ -2268,7 +2282,7 @@ atoms with same local defect structure | chunk ID = output of "compute centro/at
Note that chunk IDs are integer values, so for atom properties or
computes that produce a floating point value, they will be truncated
to an integer. You could also use the compute in a variable that
scales the floating point value to spread it across multiple intergers.
scales the floating point value to spread it across multiple integers.
Spatial bins can be of various kinds, e.g. 1d bins = slabs, 2d bins =
pencils, 3d bins = boxes, spherical bins, cylindrical bins.
@ -2353,7 +2367,7 @@ largest cluster or fastest diffusing molecule. :l
Example calculations with chunks :h5
Here are eaxmples using chunk commands to calculate various
Here are examples using chunk commands to calculate various
properties:
(1) Average velocity in each of 1000 2d spatial bins:
@ -2424,7 +2438,7 @@ which both have their up- and downsides.
The first approach is to set desired real-space an kspace accuracies
via the {kspace_modify force/disp/real} and {kspace_modify
force/disp/kspace} commands. Note that the accuracies have to be
specified in force units and are thus dependend on the chosen unit
specified in force units and are thus dependent on the chosen unit
settings. For real units, 0.0001 and 0.002 seem to provide reasonable
accurate and efficient computations for the real-space and kspace
accuracies. 0.002 and 0.05 work well for most systems using lj
@ -2444,7 +2458,7 @@ performance. This approach provides a fast initialization of the
simulation. However, it is sensitive to errors: A combination of
parameters that will perform well for one system might result in
far-from-optimal conditions for other simulations. For example,
parametes that provide accurate and fast computations for
parameters that provide accurate and fast computations for
all-atomistic force fields can provide insufficient accuracy or
united-atomistic force fields (which is related to that the latter
typically have larger dispersion coefficients).
@ -2478,7 +2492,7 @@ arithmetic mixing rule substantially increases the computational cost.
The computational overhead can be reduced using the {kspace_modify
mix/disp geom} and {kspace_modify splittol} commands. The first
command simply enforces geometric mixing of the dispersion
coeffiecients in kspace computations. This introduces some error in
coefficients in kspace computations. This introduces some error in
the computations but will also significantly speed-up the
simulations. The second keyword sets the accuracy with which the
dispersion coefficients are approximated using a matrix factorization
@ -2497,7 +2511,7 @@ to specify this command explicitly.
6.25 Polarizable models :link(howto_25),h4
In polarizable force fields the charge distributions in molecules and
materials respond to their electrostatic environements. Polarizable
materials respond to their electrostatic environments. Polarizable
systems can be simulated in LAMMPS using three methods:
the fluctuating charge method, implemented in the "QEQ"_fix_qeq.html
@ -2551,7 +2565,7 @@ this is done by "fix qeq/dynamic"_fix_qeq.html, and for the
charge-on-spring models by the methods outlined in the next two
sections. The assignment of masses to the additional degrees of
freedom can lead to unphysical trajectories if care is not exerted in
choosing the parameters of the poarizable models and the simulation
choosing the parameters of the polarizable models and the simulation
conditions.
In the core-shell model the vibration of the shells is kept faster
@ -2573,7 +2587,7 @@ well.
6.26 Adiabatic core/shell model :link(howto_26),h4
The adiabatic core-shell model by "Mitchell and
Finchham"_#MitchellFinchham is a simple method for adding
Fincham"_#MitchellFincham is a simple method for adding
polarizability to a system. In order to mimic the electron shell of
an ion, a satellite particle is attached to it. This way the ions are
split into a core and a shell where the latter is meant to react to
@ -2667,13 +2681,16 @@ bond_coeff 1 63.014 0.0
bond_coeff 2 25.724 0.0 :pre
When running dynamics with the adiabatic core/shell model, the
following issues should be considered. Since the relative motion of
the core and shell particles corresponds to the polarization, typical
thermostats can alter the polarization behaviour, meaning the shell
will not react freely to its electrostatic environment. This is
critical during the equilibration of the system. Therefore
it's typically desirable to decouple the relative motion of the
core/shell pair, which is an imaginary degree of freedom, from the
following issues should be considered. The relative motion of
the core and shell particles corresponds to the polarization,
hereby an instantaneous relaxation of the shells is approximated
and a fast core/shell spring frequency ensures a nearly constant
internal kinetic energy during the simulation.
Thermostats can alter this polarization behaviour, by scaling the
internal kinetic energy, meaning the shell will not react freely to
its electrostatic environment.
Therefore it is typically desirable to decouple the relative motion of
the core/shell pair, which is an imaginary degree of freedom, from the
real physical system. To do that, the "compute
temp/cs"_compute_temp_cs.html command can be used, in conjunction with
any of the thermostat fixes, such as "fix nvt"_fix_nh.html or "fix
@ -2704,44 +2721,54 @@ fix thermostatequ all nve # integrator as needed f
fix_modify thermoberendsen temp CSequ
thermo_modify temp CSequ # output of center-of-mass derived temperature :pre
The pressure for the core/shell system is computed via the regular
LAMMPS convention by "treating the cores and shells as individual
particles"_#MitchellFincham2. For the thermo output of the pressure
as well as for the application of a barostat, it is necessary to
use an additional "pressure"_compute_pressure compute based on the
default "temperature"_compute_temp and specifying it as a second
argument in "fix modify"_fix_modify.html and
"thermo_modify"_thermo_modify.html resulting in:
(...)
compute CSequ all temp/cs cores shells
compute thermo_press_lmp all pressure thermo_temp # pressure for individual particles
thermo_modify temp CSequ press thermo_press_lmp # modify thermo to regular pressure
fix press_bar all npt temp 300 300 0.04 iso 0 0 0.4
fix_modify press_bar temp CSequ press thermo_press_lmp # pressure modification for correct kinetic scalar :pre
If "compute temp/cs"_compute_temp_cs.html is used, the decoupled
relative motion of the core and the shell should in theory be
stable. However numerical fluctuation can introduce a small
momentum to the system, which is noticable over long trajectories.
Therefore it is recomendable to use the "fix
Therefore it is recommendable to use the "fix
momentum"_fix_momentum.html command in combination with "compute
temp/cs"_compute_temp_cs.html when equilibrating the system to
prevent any drift.
When intializing the velocities of a system with core/shell pairs, it
When initializing the velocities of a system with core/shell pairs, it
is also desirable to not introduce energy into the relative motion of
the core/shell particles, but only assign a center-of-mass velocity to
the pairs. This can be done by using the {bias} keyword of the
"velocity create"_velocity.html command and assigning the "compute
temp/cs"_compute_temp_cs.html command to the {temp} keyword of the
"velocity"_velocity.html commmand, e.g.
"velocity"_velocity.html command, e.g.
velocity all create 1427 134 bias yes temp CSequ
velocity all scale 1427 temp CSequ :pre
It is important to note that the polarizability of the core/shell
pairs is based on their relative motion. Therefore the choice of
spring force and mass ratio need to ensure much faster relative motion
of the 2 atoms within the core/shell pair than their center-of-mass
velocity. This allow the shells to effectively react instantaneously
to the electrostatic environment. This fast movement also limits the
timestep size that can be used.
To maintain the correct polarizability of the core/shell pairs, the
kinetic energy of the internal motion shall remain nearly constant.
Therefore the choice of spring force and mass ratio need to ensure
much faster relative motion of the 2 atoms within the core/shell pair
than their center-of-mass velocity. This allows the shells to
effectively react instantaneously to the electrostatic environment and
limits energy transfer to or from the core/shell oscillators.
This fast movement also dictates the timestep that can be used.
The primary literature of the adiabatic core/shell model suggests that
the fast relative motion of the core/shell pairs only allows negligible
energy transfer to the environment. Therefore it is not intended to
decouple the core/shell degree of freedom from the physical system
during production runs. In other words, the "compute
temp/cs"_compute_temp_cs.html command should not be used during
production runs and is only required during equilibration. This way one
is consistent with literature (based on the code packages DL_POLY or
GULP for instance).
energy transfer to the environment.
The mentioned energy transfer will typically lead to a small drift
in total energy over time. This internal energy can be monitored
using the "compute chunk/atom"_compute_chunk_atom.html and "compute
@ -2761,14 +2788,20 @@ command, to use as input to the "compute
chunk/atom"_compute_chunk_atom.html command to define the core/shell
pairs as chunks.
For example,
For example if core/shell pairs are the only molecules:
read_data NaCl_CS_x0.1_prop.data
compute prop all property/atom molecule
compute cs_chunk all chunk/atom c_prop
compute cstherm all temp/chunk cs_chunk temp internal com yes cdof 3.0 # note the chosen degrees of freedom for the core/shell pairs
fix ave_chunk all ave/time 10 1 10 c_cstherm file chunk.dump mode vector :pre
For example if core/shell pairs and other molecules are present:
fix csinfo all property/atom i_CSID # property/atom command
read_data NaCl_CS_x0.1_prop.data fix csinfo NULL CS-Info # atom property added in the data-file
compute prop all property/atom i_CSID
compute cs_chunk all chunk/atom c_prop
compute cstherm all temp/chunk cs_chunk temp internal com yes cdof 3.0 # note the chosen degrees of freedom for the core/shell pairs
fix ave_chunk all ave/time 10 1 10 c_cstherm file chunk.dump mode vector :pre
(...) :pre
The additional section in the date file would be formatted like this:
@ -2789,7 +2822,7 @@ CS-Info # header of additional section :pre
6.27 Drude induced dipoles :link(howto_27),h4
The thermalized Drude model, similarly to the "core-shell"_#howto_26
model, representes induced dipoles by a pair of charges (the core atom
model, represents induced dipoles by a pair of charges (the core atom
and the Drude particle) connected by a harmonic spring. The Drude
model has a number of features aimed at its use in molecular systems
("Lamoureux and Roux"_#howto-Lamoureux):
@ -2880,19 +2913,23 @@ Fischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998).
[(Mayo)] Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909
(1990).
:link(Jorgensen)
:link(Jorgensen1)
[(Jorgensen)] Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem
Phys, 79, 926 (1983).
:link(Price)
:link(Price1)
[(Price)] Price and Brooks, J Chem Phys, 121, 10096 (2004).
:link(Shinoda)
:link(Shinoda1)
[(Shinoda)] Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004).
:link(MitchellFinchham)
[(Mitchell and Finchham)] Mitchell, Finchham, J Phys Condensed Matter,
:link(MitchellFincham)
[(Mitchell and Fincham)] Mitchell, Fincham, J Phys Condensed Matter,
5, 1031-1038 (1993).
:link(MitchellFincham2)
[(Fincham)] Fincham, Mackrodt and Mitchell, J Phys Condensed Matter,
6, 393-404 (1994).
:link(howto-Lamoureux)
[(Lamoureux and Roux)] G. Lamoureux, B. Roux, J. Chem. Phys 119, 3025 (2003)

View File

@ -249,8 +249,12 @@ Pizza.py WWW site"_pizza. :l
Specialized features :h5
These are LAMMPS capabilities which you may not think of as typical
molecular dynamics options:
LAMMPS can be built with optional packages which implement a variety
of additional capabilities. An overview of all the packages is "given
here"_Section_packages.html.
These are some LAMMPS capabilities which you may not think of as
typical classical molecular dynamics options:
"static"_balance.html and "dynamic load-balancing"_fix_balance.html
"generalized aspherical particles"_body.html
@ -338,15 +342,13 @@ dynamics timestepping, particularly if the computations are not
parallel, so it is often better to leave such analysis to
post-processing codes.
A very simple (yet fast) visualizer is provided with the LAMMPS
package - see the "xmovie"_Section_tools.html#xmovie tool in "this
section"_Section_tools.html. It creates xyz projection views of
atomic coordinates and animates them. We find it very useful for
debugging purposes. For high-quality visualization we recommend the
For high-quality visualization we recommend the
following packages:
"VMD"_http://www.ks.uiuc.edu/Research/vmd
"AtomEye"_http://mt.seas.upenn.edu/Archive/Graphics/A
"OVITO"_http://www.ovito.org/
"ParaView"_http://www.paraview.org/
"PyMol"_http://www.pymol.org
"Raster3d"_http://www.bmsc.washington.edu/raster3d/raster3d.html
"RasMol"_http://www.openrasmol.org :ul
@ -517,7 +519,7 @@ the packages they have written are somewhat unique to LAMMPS and the
code would not be as general-purpose as it is without their expertise
and efforts.
Axel Kohlmeyer (Temple U), akohlmey at gmail.com, SVN and Git repositories, indefatigable mail list responder, USER-CG-CMM and USER-OMP packages
Axel Kohlmeyer (Temple U), akohlmey at gmail.com, SVN and Git repositories, indefatigable mail list responder, USER-CGSDK and USER-OMP packages
Roy Pollock (LLNL), Ewald and PPPM solvers
Mike Brown (ORNL), brownw at ornl.gov, GPU package
Greg Wagner (Sandia), gjwagne at sandia.gov, MEAM package for MEAM potential

View File

@ -159,17 +159,17 @@ pack_comm_vel: add velocity info to communication buffer (required)
pack_comm_hybrid: store extra info unique to this atom style (optional)
unpack_comm: retrieve an atom's info from the buffer (required)
unpack_comm_vel: also retrieve velocity info (required)
unpack_comm_hybrid: retreive extra info unique to this atom style (optional)
unpack_comm_hybrid: retrieve extra info unique to this atom style (optional)
pack_reverse: store an atom's info in a buffer communicating partial forces (required)
pack_reverse_hybrid: store extra info unique to this atom style (optional)
unpack_reverse: retrieve an atom's info from the buffer (required)
unpack_reverse_hybrid: retreive extra info unique to this atom style (optional)
unpack_reverse_hybrid: retrieve extra info unique to this atom style (optional)
pack_border: store an atom's info in a buffer communicated on neighbor re-builds (required)
pack_border_vel: add velocity info to buffer (required)
pack_border_hybrid: store extra info unique to this atom style (optional)
unpack_border: retrieve an atom's info from the buffer (required)
unpack_border_vel: also retrieve velocity info (required)
unpack_border_hybrid: retreive extra info unique to this atom style (optional)
unpack_border_hybrid: retrieve extra info unique to this atom style (optional)
pack_exchange: store all an atom's info to migrate to another processor (required)
unpack_exchange: retrieve an atom's info from the buffer (required)
size_restart: number of restart quantities associated with proc's atoms (required)
@ -369,7 +369,7 @@ pre_force_respa: same as pre_force, but for rRESPA (optional)
post_force_respa: same as post_force, but for rRESPA (optional)
final_integrate_respa: same as final_integrate, but for rRESPA (optional)
min_pre_force: called after pair & molecular forces are computed in minimizer (optional)
min_post_force: called after pair & molecular forces are computed and communicated in minmizer (optional)
min_post_force: called after pair & molecular forces are computed and communicated in minimizer (optional)
min_store: store extra data for linesearch based minimization on a LIFO stack (optional)
min_pushstore: push the minimization LIFO stack one element down (optional)
min_popstore: pop the minimization LIFO stack one element up (optional)
@ -517,7 +517,7 @@ class. See region.h for details.
inside: determine whether a point is in the region
surface_interior: determine if a point is within a cutoff distance inside of surc
surface_exterior: determine if a point is within a cutoff distance outside of surf
shape_update : change region shape if set by time-depedent variable :tb(s=:)
shape_update : change region shape if set by time-dependent variable :tb(s=:)
:line
@ -601,16 +601,16 @@ Adding keywords for the "thermo_style custom"_thermo_style.html command
"here"_Section_modify.html#mod_13 on this page.
Adding a new math function of one or two arguments can be done by
editing one section of the Variable::evaulate() method. Search for
editing one section of the Variable::evaluate() method. Search for
the word "customize" to find the appropriate location.
Adding a new group function can be done by editing one section of the
Variable::evaulate() method. Search for the word "customize" to find
Variable::evaluate() method. Search for the word "customize" to find
the appropriate location. You may need to add a new method to the
Group class as well (see the group.cpp file).
Accessing a new atom-based vector can be done by editing one section
of the Variable::evaulate() method. Search for the word "customize"
of the Variable::evaluate() method. Search for the word "customize"
to find the appropriate location.
Adding new "compute styles"_compute.html (whose calculated values can
@ -740,7 +740,7 @@ entry to add to the USER-MISC/README file in that dir, along with the
contribute several individual features. :l
If you want your contribution to be added as a user-contribution and
it is several related featues, it is probably best to make it a user
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
@ -785,10 +785,10 @@ 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
prerequiste for building the HTML format files are Python 3.x and
prerequisite for building the HTML format files are Python 3.x and
virtualenv, the requirement for generating the PDF format manual
is the "htmldoc"_http://www.htmldoc.org/ software. Please run at least
"make html" and carefully inspect and proofread the resuling HTML format
"make html" and carefully inspect and proofread the resulting HTML format
doc page before submitting your code. :l
For a new package (or even a single command) you should include one or

File diff suppressed because it is too large Load Diff

View File

@ -69,7 +69,7 @@ bench/in.lj input script.
For all the benchmarks, a useful metric is the CPU cost per atom per
timestep. Since performance scales roughly linearly with problem size
and timesteps for all LAMMPS models (i.e. inteatomic or coarse-grained
and timesteps for all LAMMPS models (i.e. interatomic or coarse-grained
potentials), the run time of any problem using the same model (atom
style, force field, cutoff, etc) can then be estimated.

View File

@ -97,7 +97,7 @@ current LAMMPS library interface and how to call them from Python.
Section 11.8 gives some examples of coupling LAMMPS to other tools via
Python. For example, LAMMPS can easily be coupled to a GUI or other
visualization tools that display graphs or animations in real time as
LAMMPS runs. Examples of such scripts are inlcluded in the python
LAMMPS runs. Examples of such scripts are included in the python
directory.
Two advantages of using Python to run LAMMPS are how concise the
@ -118,18 +118,21 @@ check which version of Python you have installed, by simply typing
11.2 Overview of using Python from a LAMMPS script :link(py_2),h4
NOTE: It is not currently possible to use the "python"_python.html
command described in this section with Python 3, only with Python 2.
The C API changed from Python 2 to 3 and the LAMMPS code is not
compatible with both.
LAMMPS has several commands which can be used to invoke Python
code directly from an input script:
LAMMPS has a "python"_python.html command which can be used in an
input script to define and execute a Python function that you write
the code for. The Python function can also be assigned to a LAMMPS
python-style variable via the "variable"_variable.html command. Each
time the variable is evaluated, either in the LAMMPS input script
itself, or by another LAMMPS command that uses the variable, this will
trigger the Python function to be invoked.
"python"_python.html
"variable python"_variable.html
"fix python"_fix_python.html
"pair_style python"_pair_python.html :ul
The "python"_python.html command which can be used to define and
execute a Python function that you write the code for. The Python
function can also be assigned to a LAMMPS python-style variable via
the "variable"_variable.html command. Each time the variable is
evaluated, either in the LAMMPS input script itself, or by another
LAMMPS command that uses the variable, this will trigger the Python
function to be invoked.
The Python code for the function can be included directly in the input
script or in an auxiliary file. The function can have arguments which
@ -162,8 +165,16 @@ doc page for its python-style variables for more info, including
examples of Python code you can write for both pure Python operations
and callbacks to LAMMPS.
To run pure Python code from LAMMPS, you only need to build LAMMPS
with the PYTHON package installed:
The "fix python"_fix_python.html command can execute
Python code at selected timesteps during a simulation run.
The "pair_style python"_pair_python command allows you to define
pairwise potentials as python code which encodes a single pairwise
interaction. This is useful for rapid-developement and debugging of a
new potential.
To use any of these commands, you only need to build LAMMPS with the
PYTHON package installed:
make yes-python
make machine :pre
@ -177,7 +188,7 @@ of Python and your machine to successfully build LAMMPS. See the
lib/python/README file for more info.
If you want to write Python code with callbacks to LAMMPS, then you
must also follow the steps overviewed in the preceeding section (11.1)
must also follow the steps overviewed in the preceding section (11.1)
for running LAMMPS from Python. I.e. you must build LAMMPS as a
shared library and insure that Python can find the python/lammps.py
file and the shared library.
@ -187,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".
@ -206,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
@ -325,7 +336,7 @@ sudo python setup.py install :pre
Again, the "sudo" is only needed if required to copy PyPar files into
your Python distribution's site-packages directory.
If you have successully installed PyPar, you should be able to run
If you have successfully installed PyPar, you should be able to run
Python and type
import pypar :pre
@ -369,7 +380,7 @@ user privilege into the user local directory type
python setup.py install --user :pre
If you have successully installed mpi4py, you should be able to run
If you have successfully installed mpi4py, you should be able to run
Python and type
from mpi4py import MPI :pre
@ -428,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.
@ -594,10 +605,10 @@ flag = lmp.set_variable(name,value) # set existing named string-style vari
value = lmp.get_thermo(name) # return current value of a thermo keyword
natoms = lmp.get_natoms() # total # of atoms as int
data = lmp.gather_atoms(name,type,count) # return atom attribute of all atoms gathered into data, ordered by atom ID
data = lmp.gather_atoms(name,type,count) # return per-atom property of all atoms gathered into data, ordered by atom ID
# name = "x", "charge", "type", etc
# count = # of per-atom values, 1 or 3, etc
lmp.scatter_atoms(name,type,count,data) # scatter atom attribute of all atoms from data, ordered by atom ID
lmp.scatter_atoms(name,type,count,data) # scatter per-atom property to all atoms from data, ordered by atom ID
# name = "x", "charge", "type", etc
# count = # of per-atom values, 1 or 3, etc :pre
@ -610,7 +621,7 @@ lmp = lammps() :pre
create an instance of LAMMPS, wrapped in a Python class by the lammps
Python module, and return an instance of the Python class as lmp. It
is used to make all subequent calls to the LAMMPS library.
is used to make all subsequent calls to the LAMMPS library.
Additional arguments to lammps() can be used to tell Python the name
of the shared library to load or to pass arguments to the LAMMPS
@ -656,13 +667,13 @@ argument.
For extract_atom(), a pointer to internal LAMMPS atom-based data is
returned, which you can use via normal Python subscripting. See the
extract() method in the src/atom.cpp file for a list of valid names.
Again, new names could easily be added. A pointer to a vector of
doubles or integers, or a pointer to an array of doubles (double **)
or integers (int **) is returned. You need to specify the appropriate
data type via the type argument.
Again, new names could easily be added if the property you want is not
listed. A pointer to a vector of doubles or integers, or a pointer to
an array of doubles (double **) or integers (int **) is returned. You
need to specify the appropriate data type via the type argument.
For extract_compute() and extract_fix(), the global, per-atom, or
local data calulated by the compute or fix can be accessed. What is
local data calculated by the compute or fix can be accessed. What is
returned depends on whether the compute or fix calculates a scalar or
vector or array. For a scalar, a single double value is returned. If
the compute or fix calculates a vector or array, a pointer to the
@ -689,12 +700,21 @@ specified group.
The get_natoms() method returns the total number of atoms in the
simulation, as an int.
The gather_atoms() method returns a ctypes vector of ints or doubles
as specified by type, of length count*natoms, for the property of all
the atoms in the simulation specified by name, ordered by count and
then by atom ID. The vector can be used via normal Python
subscripting. If atom IDs are not consecutively ordered within
LAMMPS, a None is returned as indication of an error.
The gather_atoms() method allows any per-atom property (coordinates,
velocities, etc) to be extracted from LAMMPS. It returns a ctypes
vector of ints or doubles as specified by type, of length
count*natoms, for the named property for all atoms in the simulation.
The data is ordered by count and then by atom ID. See the extract()
method in the src/atom.cpp file for a list of valid names. Again, new
names could easily be added if the property you want is missing. The
vector can be used via normal Python subscripting. If atom IDs are
not consecutively ordered within LAMMPS, a None is returned as
indication of an error. A special treatment is applied for image flags
stored in the "image" property. All three image flags are stored in
a packed format in a single integer, so count would be 1 to retrieve
that integer, however also a count value of 3 can be used and then
the image flags will be unpacked into 3 individual integers, ordered
in a similar fashion as coordinates.
Note that the data structure gather_atoms("x") returns is different
from the data structure returned by extract_atom("x") in four ways.
@ -711,14 +731,22 @@ assigning a new values to the extract_atom() array. To do this with
the gather_atoms() vector, you need to change values in the vector,
then invoke the scatter_atoms() method.
The scatter_atoms() method takes a vector of ints or doubles as
specified by type, of length count*natoms, for the property of all the
atoms in the simulation specified by name, ordered by bount and then
by atom ID. It uses the vector of data to overwrite the corresponding
properties for each atom inside LAMMPS. This requires LAMMPS to have
its "map" option enabled; see the "atom_modify"_atom_modify.html
command for details. If it is not, or if atom IDs are not
consecutively ordered, no coordinates are reset.
The scatter_atoms() method allows any per-atom property (coordinates,
velocities, etc) to be inserted into LAMMPS, overwriting the current
property. It takes a vector of ints or doubles as specified by type,
of length count*natoms, for the named property for all atoms in the
simulation. The data should be ordered by count and then by atom ID.
See the extract() method in the src/atom.cpp file for a list of valid
names. Again, new names could easily be added if the property you
want is missing. It uses the vector of data to overwrite the
corresponding properties for each atom inside LAMMPS. This requires
LAMMPS to have its "map" option enabled; see the
"atom_modify"_atom_modify.html command for details. If it is not, or
if atom IDs are not consecutively ordered, no coordinates are reset.
Similar as for gather_atoms() a special treatment is applied for image
flags, which can be provided in packed (count = 1) or unpacked (count = 3)
format and in the latter case, they will be packed before applied to
atoms.
The array of coordinates passed to scatter_atoms() must be a ctypes
vector of ints or doubles, allocated and initialized something like
@ -734,7 +762,7 @@ x\[2\] = z coord of atom with ID 1
x\[3\] = x coord of atom with ID 2
...
x\[n3-1\] = z coord of atom with ID natoms
lmp.scatter_coords("x",1,3,x) :pre
lmp.scatter_atoms("x",1,3,x) :pre
Alternatively, you can just change values in the vector returned by
gather_atoms("x",1,3), since it is a ctypes vector of doubles.
@ -774,7 +802,7 @@ demo.py, invoke various LAMMPS library interface routines,
simple.py, run in parallel, similar to examples/COUPLE/simple/simple.cpp,
split.py, same as simple.py but running in parallel on a subset of procs,
gui.py, GUI go/stop/temperature-slider to control LAMMPS,
plot.py, real-time temeperature plot with GnuPlot via Pizza.py,
plot.py, real-time temperature plot with GnuPlot via Pizza.py,
viz_tool.py, real-time viz via some viz package,
vizplotgui_tool.py, combination of viz_tool.py and plot.py and gui.py :tb(c=2)

View File

@ -14,12 +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.4 "Building LAMMPS via the Make.py script"_#start_4
2.5 "Building LAMMPS as a library"_#start_5
2.6 "Running LAMMPS"_#start_6
2.7 "Command-line options"_#start_7
2.8 "Screen output"_#start_8
2.9 "Tips for users of previous versions"_#start_9 :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
@ -96,7 +95,7 @@ make serial :pre
Note that on a facility supercomputer, there are often "modules"
loaded in your environment that provide the compilers and MPI you
should use. In this case, the "mpicxx" compile/link command in
Makefile.mpi should just work by accessing those modules.
Makefile.mpi should simply work by accessing those modules.
It may be the case that one of the other Makefile.machine files in the
src/MAKE sub-directories is a better match to your system (type "make"
@ -107,33 +106,35 @@ make stampede :pre
If any of these builds (with an existing Makefile.machine) works on
your system, then you're done!
If you need to install an optional package with a LAMMPS command you
want to use, and the package does not depend on an extra library, you
can simply type
make name :pre
before invoking (or re-invoking) the above steps. "Name" is the
lower-case name of the package, e.g. replica or user-misc.
If you want to do one of the following:
use optional LAMMPS features that require additional libraries
use optional packages that require additional libraries
use optional accelerator packages that require special compiler/linker settings
run on a specialized platform that has its own compilers, settings, or other libs to use :ul
use a LAMMPS command that requires an extra library (e.g. "dump image"_dump_image.html)
build with a package that requires an extra library
build with an accelerator package that requires special compiler/linker settings
run on a machine that has its own compilers, settings, or libraries :ul
then building LAMMPS is more complicated. You may need to find where
auxiliary libraries exist on your machine or install them if they
don't. You may need to build additional libraries that are part of
the LAMMPS package, before building LAMMPS. You may need to edit a
extra libraries exist on your machine or install them if they don't.
You may need to build extra libraries that are included in the LAMMPS
distribution, before building LAMMPS itself. You may need to edit a
Makefile.machine file to make it compatible with your system.
Note that there is a Make.py tool in the src directory that automates
several of these steps, but you still have to know what you are doing.
"Section 2.4"_#start_4 below describes the tool. It is a convenient
way to work with installing/un-installing various packages, the
Makefile.machine changes required by some packages, and the auxiliary
libraries some of them use.
Please read the following sections carefully. If you are not
comfortable with makefiles, or building codes on a Unix platform, or
running an MPI job on your machine, please find a local expert to help
you. Many compilation, linking, and run problems that users have are
often not really LAMMPS issues - they are peculiar to the user's
system, compilers, libraries, etc. Such questions are better answered
by a local expert.
you. Many compilation, linking, and run problems users experience are
often not LAMMPS issues - they are peculiar to the user's system,
compilers, libraries, etc. Such questions are better answered by a
local expert.
If you have a build problem that you are convinced is a LAMMPS issue
(e.g. the compiler complains about a line of LAMMPS source code), then
@ -413,7 +414,7 @@ uses (for performing 1d FFTs) when running the particle-particle
particle-mesh (PPPM) option for long-range Coulombics via the
"kspace_style"_kspace_style.html command.
LAMMPS supports various open-source or vendor-supplied FFT libraries
LAMMPS supports common open-source or vendor-supplied FFT libraries
for this purpose. If you leave these 3 variables blank, LAMMPS will
use the open-source "KISS FFT library"_http://kissfft.sf.net, which is
included in the LAMMPS distribution. This library is portable to all
@ -423,10 +424,9 @@ package in your build, you can also leave the 3 variables blank.
Otherwise, select which kinds of FFTs to use as part of the FFT_INC
setting by a switch of the form -DFFT_XXX. Recommended values for XXX
are: MKL, SCSL, FFTW2, and FFTW3. Legacy options are: INTEL, SGI,
ACML, and T3E. For backward compatability, using -DFFT_FFTW will use
the FFTW2 library. Using -DFFT_NONE will use the KISS library
described above.
are: MKL or FFTW3. FFTW2 and NONE are supported as legacy options.
Selecting -DFFT_FFTW will use the FFTW3 library and -DFFT_NONE will
use the KISS library described above.
You may also need to set the FFT_INC, FFT_PATH, and FFT_LIB variables,
so the compiler and linker can find the needed FFT header and library
@ -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
@ -509,13 +538,13 @@ You should get the executable lmp_foo when the build is complete.
Errors that can occur when making LAMMPS: h5 :link(start_2_3)
NOTE: If an error occurs when building LAMMPS, the compiler or linker
will state very explicitly what the problem is. The error message
should give you a hint as to which of the steps above has failed, and
what you need to do in order to fix it. Building a code with a
Makefile is a very logical process. The compiler and linker need to
find the appropriate files and those files need to be compatible with
LAMMPS source files. When a make fails, there is usually a very
If an error occurs when building LAMMPS, the compiler or linker will
state very explicitly what the problem is. The error message should
give you a hint as to which of the steps above has failed, and what
you need to do in order to fix it. Building a code with a Makefile is
a very logical process. The compiler and linker need to find the
appropriate files and those files need to be compatible with LAMMPS
settings and source files. When a make fails, there is usually a very
simple reason, which you or a local expert will need to fix.
Here are two non-obvious errors that can occur:
@ -629,7 +658,16 @@ 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
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, but
we cannot provide support for those.
@ -654,13 +692,7 @@ This section has the following sub-sections:
2.3.1 "Package basics"_#start_3_1
2.3.2 "Including/excluding packages"_#start_3_2
2.3.3 "Packages that require extra libraries"_#start_3_3
2.3.4 "Packages that require Makefile.machine settings"_#start_3_4 :all(b)
Note that the following "Section 2.4"_#start_4 describes the Make.py
tool which can be used to install/un-install packages and build the
auxiliary libraries which some of them use. It can also auto-edit a
Makefile.machine to add settings needed by some packages.
2.3.3 "Packages that require extra libraries"_#start_3_3 :all(b)
:line
@ -671,235 +703,221 @@ are always included, plus optional packages. Packages are groups of
files that enable a specific set of features. For example, force
fields for molecular systems or granular systems are in packages.
"Section 4"_Section_packages.html in the manual has details
about all the packages, including specific instructions for building
LAMMPS with each package, which are covered in a more general manner
"Section 4"_Section_packages.html in the manual has details about all
the packages, which come in two flavors: [standard] and [user]
packages. It also has specific instructions for building LAMMPS with
any package which requires an extra library. General instructions are
below.
You can see the list of all packages by typing "make package" from
within the src directory of the LAMMPS distribution. This also lists
various make commands that can be used to manipulate packages.
within the src directory of the LAMMPS distribution. It will also
list various make commands that can be used to manage packages.
If you use a command in a LAMMPS input script that is part of a
package, you must have built LAMMPS with that package, else you will
get an error that the style is invalid or the command is unknown.
Every command's doc page specfies if it is part of a package. You can
also type
type
lmp_machine -h :pre
to run your executable with the optional "-h command-line
switch"_#start_7 for "help", which will simply list the styles and
commands known to your executable, and immediately exit.
There are two kinds of packages in LAMMPS, standard and user packages.
More information about the contents of standard and user packages is
given in "Section 4"_Section_packages.html of the manual. The
difference between standard and user packages is as follows:
Standard packages, such as molecule or kspace, are supported by the
LAMMPS developers and are written in a syntax and style consistent
with the rest of LAMMPS. This means we will answer questions about
them, debug and fix them if necessary, and keep them compatible with
future changes to LAMMPS.
User packages, such as user-atc or user-omp, have been contributed by
users, and always begin with the user prefix. If they are a single
command (single file), they are typically in the user-misc package.
Otherwise, they are a set of files grouped together which add a
specific functionality to the code.
User packages don't necessarily meet the requirements of the standard
packages. 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 either a standard or user-contributed package are given in
"this section"_Section_modify.html#mod_15 of the documentation.
switch"_#start_6 for "help", which will list the styles and commands
known to your executable, and immediately exit.
:line
Including/excluding packages :h5,link(start_3_2)
To use (or not use) a package you must include it (or exclude it)
before building LAMMPS. From the src directory, this is typically as
simple as:
To use (or not use) a package you must install it (or un-install it)
before building LAMMPS. From the src directory, this is as simple as:
make yes-colloid
make mpi :pre
or
make no-manybody
make no-user-omp
make mpi :pre
NOTE: You should NOT include/exclude packages and build LAMMPS in a
NOTE: You should NOT install/un-install packages and build LAMMPS in a
single make command using multiple targets, e.g. make yes-colloid mpi.
This is because the make procedure creates a list of source files that
will be out-of-date for the build if the package configuration changes
within the same command.
Some packages have individual files that depend on other packages
being included. LAMMPS checks for this and does the right thing.
I.e. individual files are only included if their dependencies are
already included. Likewise, if a package is excluded, other files
Any package can be installed or not in a LAMMPS build, independent of
all other packages. However, some packages include files derived from
files in other packages. LAMMPS checks for this and does the right
thing. I.e. individual files are only included if their dependencies
are already included. Likewise, if a package is excluded, other files
dependent on that package are also excluded.
NOTE: The one exception is that we do not recommend building with both
the KOKKOS package installed and any of the other acceleration
packages (GPU, OPT, USER-INTEL, USER-OMP) also installed. This is
because of how Kokkos sometimes builds using a wrapper compiler which
can make it difficult to invoke all the compile/link flags correctly
for both Kokkos and non-Kokkos files.
If you will never run simulations that use the features in a
particular packages, there is no reason to include it in your build.
For some packages, this will keep you from having to build auxiliary
libraries (see below), and will also produce a smaller executable
which may run a bit faster.
For some packages, this will keep you from having to build extra
libraries, and will also produce a smaller executable which may run a
bit faster.
When you download a LAMMPS tarball, these packages are pre-installed
in the src directory: KSPACE, MANYBODY,MOLECULE, because they are so
commonly used. When you download LAMMPS source files from the SVN or
Git repositories, no packages are pre-installed.
When you download a LAMMPS tarball, three packages are pre-installed
in the src directory -- KSPACE, MANYBODY, MOLECULE -- because they are
so commonly used. When you download LAMMPS source files from the SVN
or Git repositories, no packages are pre-installed.
Packages are included or excluded by typing "make yes-name" or "make
no-name", where "name" is the name of the package in lower-case, e.g.
name = kspace for the KSPACE package or name = user-atc for the
USER-ATC package. You can also type "make yes-standard", "make
no-standard", "make yes-std", "make no-std", "make yes-user", "make
no-user", "make yes-lib", "make no-lib", "make yes-all", or "make
no-all" to include/exclude various sets of packages. Type "make
package" to see all of the package-related make options.
Packages are installed or un-installed by typing
NOTE: Inclusion/exclusion of a package works by simply moving files
back and forth between the main src directory and sub-directories with
the package name (e.g. src/KSPACE, src/USER-ATC), so that the files
are seen or not seen when LAMMPS is built. After you have included or
excluded a package, you must re-build LAMMPS.
make yes-name
make no-name :pre
Additional package-related make options exist to help manage LAMMPS
files that exist in both the src directory and in package
sub-directories. You do not normally need to use these commands
unless you are editing LAMMPS files or have downloaded a patch from
the LAMMPS WWW site.
where "name" is the name of the package in lower-case, e.g. name =
kspace for the KSPACE package or name = user-atc for the USER-ATC
package. You can also type any of these commands:
Typing "make package-update" or "make pu" will overwrite src files
with files from the package sub-directories if the package has been
included. It should be used after a patch is installed, since patches
only update the files in the package sub-directory, but not the src
files. Typing "make package-overwrite" will overwrite files in the
package sub-directories with src files.
make yes-all | install all packages
make no-all | un-install all packages
make yes-standard or make yes-std | install standard packages
make no-standard or make no-std| un-install standard packages
make yes-user | install user packages
make no-user | un-install user packages
make yes-lib | install packages that require extra libraries
make no-lib | un-install packages that require extra libraries
make yes-ext | install packages that require external libraries
make no-ext | un-install packages that require external libraries :tb(s=|)
which install/un-install various sets of packages. Typing "make
package" will list all the these commands.
NOTE: Installing or un-installing a package works by simply moving
files back and forth between the main src directory and
sub-directories with the package name (e.g. src/KSPACE, src/USER-ATC),
so that the files are included or excluded when LAMMPS is built.
After you have installed or un-installed a package, you must re-build
LAMMPS for the action to take effect.
The following make commands help manage files that exist in both the
src directory and in package sub-directories. You do not normally
need to use these commands unless you are editing LAMMPS files or have
downloaded a patch from the LAMMPS web site.
Typing "make package-status" or "make ps" will show which packages are
currently included. For those that are included, it will list any
currently installed. For those that are installed, it will list any
files that are different in the src directory and package
sub-directory. Typing "make package-diff" lists all differences
between these files. Again, type "make package" to see all of the
package-related make options.
sub-directory.
Typing "make package-update" or "make pu" will overwrite src files
with files from the package sub-directories if the package is
installed. It should be used after a patch has been applied, since
patches only update the files in the package sub-directory, but not
the src files.
Typing "make package-overwrite" will overwrite files in the package
sub-directories with src files.
Typing "make package-diff" lists all differences between these files.
Again, just type "make package" to see all of the package-related make
options.
:line
Packages that require extra libraries :h5,link(start_3_3)
A few of the standard and user packages require additional auxiliary
libraries. Many of them are provided with LAMMPS, in which case they
must be compiled first, before LAMMPS is built, if you wish to include
that package. If you get a LAMMPS build error about a missing
library, this is likely the reason. See the
"Section 4"_Section_packages.html doc page for a list of
packages that have these kinds of auxiliary libraries.
A few of the standard and user packages require extra libraries. See
"Section 4"_Section_packages.html for two tables of packages which
indicate which ones require libraries. For each such package, the
Section 4 doc page gives details on how to build the extra library,
including how to download it if necessary. The basic ideas are
summarized here.
The lib directory in the distribution has sub-directories with package
names that correspond to the needed auxiliary libs, e.g. lib/gpu.
Each sub-directory has a README file that gives more details. Code
for most of the auxiliary libraries is included in that directory.
Examples are the USER-ATC and MEAM packages.
[System libraries:]
A few of the lib sub-directories do not include code, but do include
instructions (and sometimes scripts) that automate the process of
downloading the auxiliary library and installing it so LAMMPS can link
to it. Examples are the KIM, VORONOI, USER-MOLFILE, and USER-SMD
packages.
Packages in the tables "Section 4"_Section_packages.html with a "sys"
in the last column link to system libraries that typically already
exist on your machine. E.g. the python package links to a system
Python library. If your machine does not have the required library,
you will have to download and install it on your machine, in either
the system or user space.
The lib/python directory (for the PYTHON package) contains only a
choice of Makefile.lammps.* files. This is because no auxiliary code
or libraries are needed, only the Python library and other system libs
that should already available on your system. However, the
Makefile.lammps file is needed to tell LAMMPS which libs to use and
where to find them.
[Internal libraries:]
For libraries with provided code, the sub-directory README file
(e.g. lib/atc/README) has instructions on how to build that library.
This information is also summarized in "Section
4"_Section_packages.html. Typically this is done by typing
something like:
Packages in the tables "Section 4"_Section_packages.html with an "int"
in the last column link to internal libraries whose source code is
included with LAMMPS, in the lib/name directory where name is the
package name. You must first build the library in that directory
before building LAMMPS with that package installed. E.g. the gpu
package links to a library you build in the lib/gpu dir. You can
often do the build in one step by typing "make lib-name args=..."
from the src dir, with appropriate arguments. You can leave off the
args to see a help message. See "Section 4"_Section_packages.html for
details for each package.
make -f Makefile.g++ :pre
[External libraries:]
If one of the provided Makefiles is not appropriate for your system
you will need to edit or add one. Note that all the Makefiles have a
setting for EXTRAMAKE at the top that specifies a Makefile.lammps.*
file.
Packages in the tables "Section 4"_Section_packages.html with an "ext"
in the last column link to exernal libraries whose source code is not
included with LAMMPS. You must first download and install the library
before building LAMMPS with that package installed. E.g. the voronoi
package links to the freely available "Voro++ library"_voro_home2. You
can often do the download/build in one step by typing "make lib-name
args=..." from the src dir, with appropriate arguments. You can leave
off the args to see a help message. See "Section
4"_Section_packages.html for details for each package.
If the library build is successful, it will produce 2 files in the lib
directory:
:link(voro_home2,http://math.lbl.gov/voro++)
libpackage.a
Makefile.lammps :pre
[Possible errors:]
The Makefile.lammps file will typically be a copy of one of the
Makefile.lammps.* files in the library directory.
There are various common errors which can occur when building extra
libraries or when building LAMMPS with packages that require the extra
libraries.
Note that you must insure that the settings in Makefile.lammps are
appropriate for your system. If they are not, the LAMMPS build may
fail. To fix this, you can edit or create a new Makefile.lammps.*
file for your system, and copy it to Makefile.lammps.
If you cannot build the extra library itself successfully, you may
need to edit or create an appropriate Makefile for your machine, e.g.
with appropriate compiler or system settings. Provided makefiles are
typically in the lib/name directory. E.g. see the Makefile.* files in
lib/gpu.
As explained in the lib/package/README files, the settings in
Makefile.lammps are used to specify additional system libraries and
their locations so that LAMMPS can build with the auxiliary library.
For example, if the MEAM package is used, the auxiliary library
consists of F90 code, built with a Fortran complier. To link that
library with LAMMPS (a C++ code) via whatever C++ compiler LAMMPS is
built with, typically requires additional Fortran-to-C libraries be
included in the link. Another example are the BLAS and LAPACK
libraries needed to use the USER-ATC or USER-AWPMD packages.
The LAMMPS build often uses settings in a lib/name/Makefile.lammps
file which either exists in the LAMMPS distribution or is created or
copied from a lib/name/Makefile.lammps.* file when the library is
built. If those settings are not correct for your machine you will
need to edit or create an appropriate Makefile.lammps file.
For libraries without provided code, the sub-directory README file has
information on where to download the library and how to build it,
e.g. lib/voronoi/README and lib/smd/README. The README files also
describe how you must either (a) create soft links, via the "ln"
command, in those directories to point to where you built or installed
the packages, or (b) check or edit the Makefile.lammps file in the
same directory to provide that information.
Package-specific details for these steps are given in "Section
4"_Section_packages.html an in README files in the lib/name
directories.
Some of the sub-directories, e.g. lib/voronoi, also have an install.py
script which can be used to automate the process of
downloading/building/installing the auxiliary library, and setting the
needed soft links. Type "python install.py" for further instructions.
[Compiler options needed for accelerator packages:]
As with the sub-directories containing library code, if the soft links
or settings in the lib/package/Makefile.lammps files are not correct,
the LAMMPS build will typically fail.
Several packages contain code that is optimized for specific hardware,
e.g. CPU, KNL, or GPU. These are the OPT, GPU, KOKKOS, USER-INTEL,
and USER-OMP packages. Compiling and linking the source files in
these accelerator packages for optimal performance requires specific
settings in the Makefile.machine file you use.
:line
Packages that require Makefile.machine settings :h5,link(start_3_4)
A few packages require specific settings in Makefile.machine, to
either build or use the package effectively. These are the
USER-INTEL, KOKKOS, USER-OMP, and OPT packages, used for accelerating
code performance on CPUs or other hardware, as discussed in "Section
5.3"_Section_accelerate.html#acc_3.
A summary of what Makefile.machine changes are needed for each of
these packages is given in "Section 4"_Section_packages.html.
The details are given on the doc pages that describe each of these
accelerator packages in detail:
A summary of the Makefile.machine settings needed for each of these
packages is given in "Section 4"_Section_packages.html. More info is
given on the doc pages that describe each package in detail:
5.3.1 "USER-INTEL package"_accelerate_intel.html
5.3.2 "GPU package"_accelerate_intel.html
5.3.3 "KOKKOS package"_accelerate_kokkos.html
5.3.4 "USER-OMP package"_accelerate_omp.html
5.3.5 "OPT package"_accelerate_opt.html :all(b)
You can also look at the following machine Makefiles in
src/MAKE/OPTIONS, which include the changes. Note that the USER-INTEL
and KOKKOS packages allow for settings that build LAMMPS for different
hardware. The USER-INTEL package builds for CPU and the Xeon Phi, the
KOKKOS package builds for OpenMP, GPUs (Cuda), and the Xeon Phi.
You can also use or examine the following machine Makefiles in
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.
Makefile.intel_cpu
Makefile.intel_phi
@ -909,127 +927,9 @@ Makefile.kokkos_phi
Makefile.omp
Makefile.opt :ul
Also note that the Make.py tool, described in the next "Section
2.4"_#start_4 can automatically add the needed info to an existing
machine Makefile, using simple command-line arguments.
:line
2.4 Building LAMMPS via the Make.py tool :h4,link(start_4)
The src directory includes a Make.py script, written in Python, which
can be used to automate various steps of the build process. It is
particularly useful for working with the accelerator packages, as well
as other packages which require auxiliary libraries to be built.
The goal of the Make.py tool is to allow any complex multi-step LAMMPS
build to be performed as a single Make.py command. And you can
archive the commands, so they can be re-invoked later via the -r
(redo) switch. If you find some LAMMPS build procedure that can't be
done in a single Make.py command, let the developers know, and we'll
see if we can augment the tool.
You can run Make.py from the src directory by typing either:
Make.py -h
python Make.py -h :pre
which will give you help info about the tool. For the former to work,
you may need to edit the first line of Make.py to point to your local
Python. And you may need to insure the script is executable:
chmod +x Make.py :pre
Here are examples of build tasks you can perform with Make.py:
Install/uninstall packages: Make.py -p no-lib kokkos omp intel
Build specific auxiliary libs: Make.py -a lib-atc lib-meam
Build libs for all installed packages: Make.py -p cuda gpu -gpu mode=double arch=31 -a lib-all
Create a Makefile from scratch with compiler and MPI settings: Make.py -m none -cc g++ -mpi mpich -a file
Augment Makefile.serial with settings for installed packages: Make.py -p intel -intel cpu -m serial -a file
Add JPG and FFTW support to Makefile.mpi: Make.py -m mpi -jpg -fft fftw -a file
Build LAMMPS with a parallel make using Makefile.mpi: Make.py -j 16 -m mpi -a exe
Build LAMMPS and libs it needs using Makefile.serial with accelerator settings: Make.py -p gpu intel -intel cpu -a lib-all file serial :tb(s=:)
The bench and examples directories give Make.py commands that can be
used to build LAMMPS with the various packages and options needed to
run all the benchmark and example input scripts. See these files for
more details:
bench/README
bench/FERMI/README
bench/KEPLER/README
bench/PHI/README
examples/README
examples/accelerate/README
examples/accelerate/make.list :ul
All of the Make.py options and syntax help can be accessed by using
the "-h" switch.
E.g. typing "Make.py -h" gives
Syntax: Make.py switch args ...
switches can be listed in any order
help switch:
-h prints help and syntax for all other specified switches
switch for actions:
-a lib-all, lib-dir, clean, file, exe or machine
list one or more actions, in any order
machine is a Makefile.machine suffix, must be last if used
one-letter switches:
-d (dir), -j (jmake), -m (makefile), -o (output),
-p (packages), -r (redo), -s (settings), -v (verbose)
switches for libs:
-atc, -awpmd, -colvars, -cuda
-gpu, -meam, -poems, -qmmm, -reax
switches for build and makefile options:
-intel, -kokkos, -cc, -mpi, -fft, -jpg, -png :pre
Using the "-h" switch with other switches and actions gives additional
info on all the other specified switches or actions. The "-h" can be
anywhere in the command-line and the other switches do not need their
arguments. E.g. type "Make.py -h -d -atc -intel" will print:
-d dir
dir = LAMMPS home dir
if -d not specified, working dir must be lammps/src :pre
-atc make=suffix lammps=suffix2
all args are optional and can be in any order
make = use Makefile.suffix (def = g++)
lammps = use Makefile.lammps.suffix2 (def = EXTRAMAKE in makefile) :pre
-intel mode
mode = cpu or phi (def = cpu)
build Intel package for CPU or Xeon Phi :pre
Note that Make.py never overwrites an existing Makefile.machine.
Instead, it creates src/MAKE/MINE/Makefile.auto, which you can save or
rename if desired. Likewise it creates an executable named
src/lmp_auto, which you can rename using the -o switch if desired.
The most recently executed Make.py commmand is saved in
src/Make.py.last. You can use the "-r" switch (for redo) to re-invoke
the last command, or you can save a sequence of one or more Make.py
commands to a file and invoke the file of commands using "-r". You
can also label the commands in the file and invoke one or more of them
by name.
A typical use of Make.py is to start with a valid Makefile.machine for
your system, that works for a vanilla LAMMPS build, i.e. when optional
packages are not installed. You can then use Make.py to add various
settings (FFT, JPG, PNG) to the Makefile.machine as well as change its
compiler and MPI options. You can also add additional packages to the
build, as well as build the needed supporting libraries.
You can also use Make.py to create a new Makefile.machine from
scratch, using the "-m none" switch, if you also specify what compiler
and MPI options to use, via the "-cc" and "-mpi" switches.
:line
2.5 Building LAMMPS as a library :h4,link(start_5)
2.4 Building LAMMPS as a library :h4,link(start_4)
LAMMPS can be built as either a static or shared library, which can
then be called from another application or a scripting language. See
@ -1151,7 +1051,7 @@ interface and how to extend it for your needs.
:line
2.6 Running LAMMPS :h4,link(start_6)
2.5 Running LAMMPS :h4,link(start_5)
By default, LAMMPS runs by reading commands from standard input. Thus
if you run the LAMMPS executable by itself, e.g.
@ -1283,7 +1183,7 @@ more processors or setup a smaller problem.
:line
2.7 Command-line options :h4,link(start_7)
2.6 Command-line options :h4,link(start_6)
At run time, LAMMPS recognizes several optional command-line switches
which may be used in any order. Either the full word or a one-or-two
@ -1713,7 +1613,7 @@ negative numeric value. It is OK if the first value1 starts with a
:line
2.8 LAMMPS screen output :h4,link(start_8)
2.7 LAMMPS screen output :h4,link(start_7)
As LAMMPS reads an input script, it prints information to both the
screen and a log file about significant actions it takes to setup a
@ -1727,7 +1627,7 @@ thermodynamic state and a total run time for the simulation. It then
appends statistics about the CPU time and storage requirements for the
simulation. An example set of statistics is shown here:
Loop time of 2.81192 on 4 procs for 300 steps with 2004 atoms
Loop time of 2.81192 on 4 procs for 300 steps with 2004 atoms :pre
Performance: 18.436 ns/day 1.302 hours/ns 106.689 timesteps/s
97.0% CPU use with 4 MPI tasks x no OpenMP threads :pre
@ -1757,14 +1657,14 @@ Ave special neighs/atom = 2.34032
Neighbor list builds = 26
Dangerous builds = 0 :pre
The first section provides a global loop timing summary. The loop time
The first section provides a global loop timing summary. The {loop time}
is the total wall time for the section. The {Performance} line is
provided for convenience to help predicting the number of loop
continuations required and for comparing performance with other
similar MD codes. The CPU use line provides the CPU utilzation per
continuations required and for comparing performance with other,
similar MD codes. The {CPU use} line provides the CPU utilzation per
MPI task; it should be close to 100% times the number of OpenMP
threads (or 1). Lower numbers correspond to delays due to file I/O or
insufficient thread utilization.
threads (or 1 of no OpenMP). Lower numbers correspond to delays due
to file I/O or insufficient thread utilization.
The MPI task section gives the breakdown of the CPU run time (in
seconds) into major categories:
@ -1791,7 +1691,7 @@ is present that also prints the CPU utilization in percent. In
addition, when using {timer full} and the "package omp"_package.html
command are active, a similar timing summary of time spent in threaded
regions to monitor thread utilization and load balance is provided. A
new entry is the {Reduce} section, which lists the time spend in
new entry is the {Reduce} section, which lists the time spent in
reducing the per-thread data elements to the storage for non-threaded
computation. These thread timings are taking from the first MPI rank
only and and thus, as the breakdown for MPI tasks can change from MPI
@ -1869,7 +1769,7 @@ communication, roughly 75% in the example above.
:line
2.9 Tips for users of previous LAMMPS versions :h4,link(start_9)
2.8 Tips for users of previous LAMMPS versions :h4,link(start_8)
The current C++ began with a complete rewrite of LAMMPS 2001, which
was written in F90. Features of earlier versions of LAMMPS are listed

View File

@ -12,9 +12,12 @@ Section"_Section_modify.html :c
LAMMPS is designed to be a computational kernel for performing
molecular dynamics computations. Additional pre- and post-processing
steps are often necessary to setup and analyze a simulation. A few
additional tools are provided with the LAMMPS distribution and are
described in this section.
steps are often necessary to setup and analyze a simulation. A
list of such tools can be found on the LAMMPS home page
at "http://lammps.sandia.gov/prepost.html"_http://lammps.sandia.gov/prepost.html
A few additional tools are provided with the LAMMPS distribution
and are described in this section.
Our group has also written and released a separate toolkit called
"Pizza.py"_pizza which provides tools for doing setup, analysis,
@ -36,16 +39,16 @@ authors.
The source code for each of these codes is in the tools sub-directory
of the LAMMPS distribution. There is a Makefile (which you may need
to edit for your platform) which will build several of the tools which
reside in that directory. Some of them are larger packages in their
own sub-directories with their own Makefiles.
reside in that directory. Most of them are larger packages in their
own sub-directories with their own Makefiles and/or README files.
"amber2lmp"_#amber
"binary2txt"_#binary
"ch2lmp"_#charmm
"chain"_#chain
"colvars"_#colvars
"createatoms"_#create
"data2xmovie"_#data
"createatoms"_#createatoms
"drude"_#drude
"eam database"_#eamdb
"eam generate"_#eamgn
"eff"_#eff
@ -56,20 +59,18 @@ own sub-directories with their own Makefiles.
"kate"_#kate
"lmp2arc"_#arc
"lmp2cfg"_#cfg
"lmp2vmd"_#vmd
"matlab"_#matlab
"micelle2d"_#micelle
"moltemplate"_#moltemplate
"msi2lmp"_#msi
"phonon"_#phonon
"polymer bonding"_#polybond
"polybond"_#polybond
"pymol_asphere"_#pymol
"python"_#pythontools
"reax"_#reax_tool
"restart2data"_#restart
"smd"_#smd
"vim"_#vim
"xmgrace"_#xmgrace
"xmovie"_#xmovie :ul
:line
@ -158,7 +159,7 @@ gmail.com) at ICTP, Italy.
:line
createatoms tool :h4,link(create)
createatoms tool :h4,link(createatoms)
The tools/createatoms directory contains a Fortran program called
createAtoms.f which can generate a variety of interesting crystal
@ -171,16 +172,16 @@ The tool is authored by Xiaowang Zhou (Sandia), xzhou at sandia.gov.
:line
data2xmovie tool :h4,link(data)
drude tool :h4,link(drude)
The file data2xmovie.c converts a LAMMPS data file into a snapshot
suitable for visualizing with the "xmovie"_#xmovie tool, as if it had
been output with a dump command from LAMMPS itself. The syntax for
running the tool is
The tools/drude directory contains a Python script called
polarizer.py which can add Drude oscillators to a LAMMPS
data file in the required format.
data2xmovie \[options\] < infile > outfile :pre
See the header of the polarizer.py file for details.
See the top of the data2xmovie.c file for a discussion of the options.
The tool is authored by Agilio Padua and Alain Dequidt: agilio.padua
at univ-bpclermont.fr, alain.dequidt at univ-bpclermont.fr
:line
@ -317,18 +318,6 @@ This tool was written by Ara Kooser at Sandia (askoose at sandia.gov).
:line
lmp2vmd tool :h4,link(vmd)
The lmp2vmd sub-directory contains a README.txt file that describes
details of scripts and plugin support within the "VMD
package"_http://www.ks.uiuc.edu/Research/vmd for visualizing LAMMPS
dump files.
The VMD plugins and other supporting scripts were written by Axel
Kohlmeyer (akohlmey at cmm.chem.upenn.edu) at U Penn.
:line
matlab tool :h4,link(matlab)
The matlab sub-directory contains several "MATLAB"_matlabhome scripts for
@ -380,17 +369,18 @@ supports it. It has its own WWW page at
msi2lmp tool :h4,link(msi)
The msi2lmp sub-directory contains a tool for creating LAMMPS input
data files from Accelrys' Insight MD code (formerly MSI/Biosym and
its Discover MD code). See the README file for more information.
The msi2lmp sub-directory contains a tool for creating LAMMPS template
input and data files from BIOVIA's Materias Studio files (formerly Accelrys'
Insight MD code, formerly MSI/Biosym and its Discover MD code).
This tool was written by John Carpenter (Cray), Michael Peachey
(Cray), and Steve Lustig (Dupont). John is now at the Mayo Clinic
(jec at mayo.edu), but still fields questions about the tool.
(Cray), and Steve Lustig (Dupont). Several people contributed changes
to remove bugs and adapt its output to changes in LAMMPS.
This tool may be out-of-date with respect to the current LAMMPS and
Insight versions. Since we don't use it at Sandia, you'll need to
experiment with it yourself.
This tool has several known limitations and is no longer under active
development, so there are no changes except for the occasional bugfix.
See the README file in the tools/msi2lmp folder for more information.
:line
@ -409,7 +399,7 @@ University.
:line
polymer bonding tool :h4,link(polybond)
polybond tool :h4,link(polybond)
The polybond sub-directory contains a Python-based tool useful for
performing "programmable polymer bonding". The Python file
@ -468,48 +458,19 @@ These tools were written by Aidan Thompson at Sandia.
:line
restart2data tool :h4,link(restart)
smd tool :h4,link(smd)
NOTE: This tool is now obsolete and is not included in the current
LAMMPS distribution. This is becaues there is now a
"write_data"_write_data.html command, which can create a data file
from within an input script. Running LAMMPS with the "-r"
"command-line switch"_Section_start.html#start_7 as follows:
The smd sub-directory contains a C++ file dump2vtk_tris.cpp and
Makefile which can be compiled and used to convert triangle output
files created by the Smooth-Mach Dynamics (USER-SMD) package into a
VTK-compatible unstructured grid file. It could then be read in and
visualized by VTK.
lmp_g++ -r restartfile datafile
See the header of dump2vtk.cpp for more details.
is the same as running a 2-line input script:
read_restart restartfile
write_data datafile
which will produce the same data file that the restart2data tool used
to create. The following information is included in case you have an
older version of LAMMPS which still includes the restart2data tool.
The file restart2data.cpp converts a binary LAMMPS restart file into
an ASCII data file. The syntax for running the tool is
restart2data restart-file data-file (input-file) :pre
Input-file is optional and if specified will contain LAMMPS input
commands for the masses and force field parameters, instead of putting
those in the data-file. Only a few force field styles currently
support this option.
This tool must be compiled on a platform that can read the binary file
created by a LAMMPS run, since binary files are not compatible across
all platforms.
Note that a text data file has less precision than a binary restart
file. Hence, continuing a run from a converted data file will
typically not conform as closely to a previous run as will restarting
from a binary restart file.
If a "%" appears in the specified restart-file, the tool expects a set
of multiple files to exist. See the "restart"_restart.html and
"write_restart"_write_restart.html commands for info on how such sets
of files are written by LAMMPS, and how the files are named.
This tool was written by the USER-SMD package author, Georg
Ganzenmuller at the Fraunhofer-Institute for High-Speed Dynamics,
Ernst Mach Institute in Germany (georg.ganzenmueller at emi.fhg.de).
:line
@ -537,32 +498,3 @@ See the README file for details.
These files were provided by Vikas Varshney (vv0210 at gmail.com)
:line
xmovie tool :h4,link(xmovie)
The xmovie tool is an X-based visualization package that can read
LAMMPS dump files and animate them. It is in its own sub-directory
with the tools directory. You may need to modify its Makefile so that
it can find the appropriate X libraries to link against.
The syntax for running xmovie is
xmovie \[options\] dump.file1 dump.file2 ... :pre
If you just type "xmovie" you will see a list of options. Note that
by default, LAMMPS dump files are in scaled coordinates, so you
typically need to use the -scale option with xmovie. When xmovie runs
it opens a visualization window and a control window. The control
options are straightforward to use.
Xmovie was mostly written by Mike Uttormark (U Wisconsin) while he
spent a summer at Sandia. It displays 2d projections of a 3d domain.
While simple in design, it is an amazingly fast program that can
render large numbers of atoms very quickly. It's a useful tool for
debugging LAMMPS input and output and making sure your simulation is
doing what you think it should. The animations on the Examples page
of the "LAMMPS WWW site"_lws were created with xmovie.
I've lost contact with Mike, so I hope he's comfortable with us
distributing his great tool!

View File

@ -27,7 +27,7 @@
syntax</a></h2>
<p>fix_modify AtC consistent_fe_initialization &lt;on | off&gt;</p>
<ul>
<li>&lt;on|off&gt; = switch to activiate/deactiviate the intial setting of FE intrinsic field to match the projected MD field </li>
<li>&lt;on|off&gt; = switch to activiate/deactiviate the initial setting of FE intrinsic field to match the projected MD field </li>
</ul>
<h2><a class="anchor" id="examples">
examples</a></h2>

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

@ -20,7 +20,7 @@ coprocessors via offloading neighbor list and non-bonded force
calculations to the Phi. The same C++ code is used in both cases.
When offloading to a coprocessor from a CPU, the same routine is run
twice, once on the CPU and once with an offload flag. This allows
LAMMPS to run on the CPU cores and coprocessor cores simulataneously.
LAMMPS to run on the CPU cores and coprocessor cores simultaneously.
[Currently Available USER-INTEL Styles:]
@ -29,9 +29,9 @@ Bond Styles: fene, harmonic :l
Dihedral Styles: charmm, harmonic, opls :l
Fixes: nve, npt, nvt, nvt/sllod :l
Improper Styles: cvff, harmonic :l
Pair Styles: buck/coul/cut, buck/coul/long, buck, gayberne,
charmm/coul/long, lj/cut, lj/cut/coul/long, sw, tersoff :l
K-Space Styles: pppm :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
K-Space Styles: pppm, pppm/disp :l
:ule
[Speed-ups to expect:]
@ -42,61 +42,90 @@ precision mode. Performance improvements are shown compared to
LAMMPS {without using other acceleration packages} as these are
under active development (and subject to performance changes). The
measurements were performed using the input files available in
the src/USER-INTEL/TEST directory. These are scalable in size; the
results given are with 512K particles (524K for Liquid Crystal).
Most of the simulations are standard LAMMPS benchmarks (indicated
by the filename extension in parenthesis) with modifications to the
run length and to add a warmup run (for use with offload
benchmarks).
the src/USER-INTEL/TEST directory with the provided run script.
These are scalable in size; the results given are with 512K
particles (524K for Liquid Crystal). Most of the simulations are
standard LAMMPS benchmarks (indicated by the filename extension in
parenthesis) with modifications to the run length and to add a
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 "18 Jun 2016" LAMMPS built with
Intel Parallel Studio 2016 update 3. Results are with 1 MPI task
(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.
:line
[Accuracy and order of operations:]
In most molecular dynamics software, parallelization parameters
(# of MPI, OpenMP, and vectorization) can change the results due
to changing the order of operations with finite-precision
calculations. The USER-INTEL package is deterministic. This means
that the results should be reproducible from run to run with the
{same} parallel configurations and when using determinstic
libraries or library settings (MPI, OpenMP, FFT). However, there
are differences in the USER-INTEL package that can change the
order of operations compared to LAMMPS without acceleration:
Neighbor lists can be created in a different order :ulb,l
Bins used for sorting atoms can be oriented differently :l
The default stencil order for PPPM is 7. By default, LAMMPS will
calculate other PPPM parameters to fit the desired acuracy with
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
:ule
The precision mode (described below) used with the USER-INTEL
package can change the {accuracy} of the calculations. For the
default {mixed} precision option, calculations between pairs or
triplets of atoms are performed in single precision, intended to
be within the inherent error of MD simulations. All accumulation
is performed in double precision to prevent the error from growing
with the number of atoms in the simulation. {Single} precision
mode should not be used without appropriate validation.
:line
[Quick Start for Experienced Users:]
LAMMPS should be built with the USER-INTEL package installed.
Simulations should be run with 1 MPI task per physical {core},
not {hardware thread}.
For Intel Xeon CPUs:
Edit src/MAKE/OPTIONS/Makefile.intel_cpu_intelmpi as necessary. :ulb,l
If using {kspace_style pppm} in the input script, add "neigh_modify binsize 3" and "kspace_modify diff ad" to the input script for better
performance. :l
"-pk intel 0 omp 2 -sf intel" added to LAMMPS command-line :l
Set the environment variable KMP_BLOCKTIME=0 :l
"-pk intel 0 omp $t -sf intel" added to LAMMPS command-line :l
$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
For Intel Xeon Phi CPUs for simulations without {kspace_style
pppm} in the input script :
For Intel Xeon Phi CPUs:
Edit src/MAKE/OPTIONS/Makefile.knl as necessary. :ulb,l
Runs should be performed using MCDRAM. :l
"-pk intel 0 omp 2 -sf intel" {or} "-pk intel 0 omp 4 -sf intel"
should be added to the LAMMPS command-line. Choice for best
performance will depend on the simulation. :l
Runs should be performed using MCDRAM. :ulb,l
:ule
For Intel Xeon Phi CPUs for simulations with {kspace_style
pppm} in the input script:
For simulations using {kspace_style pppm} on Intel CPUs
supporting AVX-512:
Edit src/MAKE/OPTIONS/Makefile.knl as necessary. :ulb,l
Runs should be performed using MCDRAM. :l
Add "neigh_modify binsize 3" to the input script for better
performance. :l
Add "kspace_modify diff ad" to the input script for better
performance. :l
export KMP_AFFINITY=none :l
"-pk intel 0 omp 3 lrt yes -sf intel" or "-pk intel 0 omp 1 lrt yes
-sf intel" added to LAMMPS command-line. Choice for best performance
will depend on the simulation. :l
Add "kspace_modify diff ad" to the input script :ulb,l
The command-line option should be changed to
"-pk intel 0 omp $r lrt yes -sf intel" where $r is the number of
threads minus 1. :l
Do not use thread affinity (set KMP_AFFINITY=none) :l
The "newton off" setting may provide better scalability :l
:ule
For Intel Xeon Phi coprocessors (Offload):
@ -115,7 +144,7 @@ coprocessor and an Intel compiler are required. For this, the
recommended version of the Intel compiler is 14.0.1.106 or
versions 15.0.2.044 and higher.
Although any compiler can be used with the USER-INTEL pacakge,
Although any compiler can be used with the USER-INTEL package,
currently, vectorization directives are disabled by default when
not using Intel compilers due to lack of standard support and
observations of decreased performance. The OpenMP standard now
@ -168,6 +197,10 @@ cat /proc/cpuinfo :pre
[Building LAMMPS with the USER-INTEL package:]
NOTE: See the src/USER-INTEL/README file for additional flags that
might be needed for best performance on Intel server processors
code-named "Skylake".
The USER-INTEL package must be installed into the source directory:
make yes-user-intel :pre
@ -192,11 +225,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.
@ -211,8 +242,7 @@ highly recommended for CCFLAGS and LINKFLAGS. LIB should include
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.
-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
@ -268,7 +298,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
@ -281,7 +311,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
@ -321,8 +351,8 @@ follow in the input script.
NOTE: The USER-INTEL package will perform better with modifications
to the input script when "PPPM"_kspace_style.html is used:
"kspace_modify diff ad"_kspace_modify.html and "neigh_modify binsize
3"_neigh_modify.html should be added to the input script.
"kspace_modify diff ad"_kspace_modify.html should be added to the
input script.
Long-Range Thread (LRT) mode is an option to the "package
intel"_package.html command that can improve performance when using
@ -341,6 +371,10 @@ would normally perform best with "-pk intel 0 omp 4", instead use
environment variable "KMP_AFFINITY=none". LRT mode is not supported
when using offload.
NOTE: Changing the "newton"_newton.html setting to off can improve
performance and/or scalability for simple 2-body potentials such as
lj/cut or when using LRT mode on processors supporting AVX-512.
Not all styles are supported in the USER-INTEL package. You can mix
the USER-INTEL package with styles from the "OPT"_accelerate_opt.html
package or the "USER-OMP package"_accelerate_omp.html. Of course,
@ -350,13 +384,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
@ -428,7 +466,7 @@ to the card. This allows for overlap of MPI communication of forces
with computation on the coprocessor when the "newton"_newton.html
setting is "on". The default is dependent on the style being used,
however, better performance may be achieved by setting this option
explictly.
explicitly.
When using offload with CPU Hyper-Threading disabled, it may help
performance to use fewer MPI tasks and OpenMP threads than available
@ -445,7 +483,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:]
@ -464,9 +502,9 @@ supported.
[References:]
Brown, W.M., Carrillo, J.-M.Y., Mishra, B., Gavhane, N., Thakker, F.M., De Kraker, A.R., Yamada, M., Ang, J.A., Plimpton, S.J., Optimizing Classical Molecular Dynamics in LAMMPS, in Intel Xeon Phi Processor High Performance Programming: Knights Landing Edition, J. Jeffers, J. Reinders, A. Sodani, Eds. Morgan Kaufmann. :ulb,l
Brown, W.M., Carrillo, J.-M.Y., Mishra, B., Gavhane, N., Thakker, F.M., De Kraker, A.R., Yamada, M., Ang, J.A., Plimpton, S.J., "Optimizing Classical Molecular Dynamics in LAMMPS," in Intel Xeon Phi Processor High Performance Programming: Knights Landing Edition, J. Jeffers, J. Reinders, A. Sodani, Eds. Morgan Kaufmann. :ulb,l
Brown, W. M., Semin, A., Hebenstreit, M., Khvostov, S., Raman, K., Plimpton, S.J. Increasing Molecular Dynamics Simulation Rates with an 8-Fold Increase in Electrical Power Efficiency. 2016 International Conference for High Performance Computing. In press. :l
Brown, W. M., Semin, A., Hebenstreit, M., Khvostov, S., Raman, K., Plimpton, S.J. "Increasing Molecular Dynamics Simulation Rates with an 8-Fold Increase in Electrical Power Efficiency."_http://dl.acm.org/citation.cfm?id=3014915 2016 High Performance Computing, Networking, Storage and Analysis, SC16: International Conference (pp. 82-95). :l
Brown, W.M., Carrillo, J.-M.Y., Gavhane, N., Thakkar, F.M., Plimpton, S.J. Optimizing Legacy Molecular Dynamics Software with Directive-Based Offload. Computer Physics Communications. 2015. 195: p. 95-101. :l
:ule

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
@ -110,14 +107,14 @@ mpirun -np 96 -ppn 12 lmp_g++ -k on t 20 -sf kk -in in.lj # ditto on 8 Phis :p
[Required hardware/software:]
Kokkos support within LAMMPS must be built with a C++11 compatible
compiler. If using gcc, version 4.8.1 or later is required.
compiler. If using gcc, version 4.7.2 or later is required.
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
version 6.5 or later must be installed on your system. See the
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
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, 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.
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.
@ -217,7 +214,7 @@ best performance its CCFLAGS setting should use -O3 and have a
KOKKOS_ARCH setting that matches the compute capability of your NVIDIA
hardware and software installation, e.g. KOKKOS_ARCH=Kepler30. Note
the minimal required compute capability is 2.0, but this will give
signicantly reduced performance compared to Kepler generation GPUs
significantly reduced performance compared to Kepler generation GPUs
with compute capability 3.x. For the LINK setting, "nvcc" should not
be used; instead use g++ or another compiler suitable for linking C++
applications. Often you will want to use your MPI compiler wrapper
@ -234,7 +231,7 @@ provides alternative methods via environment variables for binding
threads to hardware cores. More info on binding threads to cores is
given in "Section 5.3"_Section_accelerate.html#acc_3.
KOKKOS_ARCH=KNC enables compiler switches needed when compling for an
KOKKOS_ARCH=KNC enables compiler switches needed when compiling for an
Intel Phi processor.
KOKKOS_USE_TPLS=librt enables use of a more accurate timer mechanism
@ -272,7 +269,7 @@ coprocessor support you need to insure there are one or more MPI tasks
per coprocessor, and choose the number of coprocessor threads to use
per MPI task (via the "-k" command-line switch discussed below). The
product of MPI tasks * coprocessor threads/task should not exceed the
maximum number of threads the coproprocessor is designed to run,
maximum number of threads the coprocessor is designed to run,
otherwise performance will suffer. This value is 240 for current
generation Xeon Phi(TM) chips, which is 60 physical cores * 4
threads/core. Note that with the KOKKOS package you do not need to
@ -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,8 +329,8 @@ 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
specify its additional arguments for hardware options appopriate to
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.
Use the "suffix kk"_suffix.html command, or you can explicitly add a
@ -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).
@ -415,21 +412,21 @@ For binding threads with the KOKKOS OMP option, use thread affinity
environment variables to force binding. With OpenMP 3.1 (gcc 4.7 or
later, intel 12 or later) setting the environment variable
OMP_PROC_BIND=true should be sufficient. For binding threads with the
KOKKOS pthreads option, compile LAMMPS the KOKKOS HWLOC=yes option, as
discussed in "Section 2.3.4"_Sections_start.html#start_3_4 of the
manual.
KOKKOS pthreads option, compile LAMMPS the KOKKOS HWLOC=yes option
(see "this section"_Section_packages.html#KOKKOS of the manual for
details).
[Running on GPUs:]
Insure the -arch setting in the machine makefile you are using,
e.g. src/MAKE/Makefile.cuda, is correct for your GPU hardware/software
(see "this section"_Section_start.html#start_3_4 of the manual for
e.g. src/MAKE/Makefile.cuda, is correct for your GPU hardware/software.
(see "this section"_Section_packages.html#KOKKOS of the manual for
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

@ -8,6 +8,7 @@
angle_style class2 command :h3
angle_style class2/omp command :h3
angle_style class2/kk command :h3
[Syntax:]
@ -93,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

@ -41,7 +41,7 @@ angle.
The torque on the dipole can be obtained by differentiating the
potential using the 'chain rule' as in appendix C.3 of
"(Allen)"_#Allen:
"(Allen)"_#Allen1:
:c,image(Eqs/angle_dipole_torque.jpg)
@ -121,6 +121,6 @@ This angle style should not be used with SHAKE.
[(Orsi)] Orsi & Essex, The ELBA force field for coarse-grain modeling of
lipid membranes, PloS ONE 6(12): e28637, 2011.
:link(Allen)
:link(Allen1)
[(Allen)] Allen & Tildesley, Computer Simulation of Liquids,
Clarendon Press, Oxford, 1987.

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

@ -81,7 +81,7 @@ LAMMPS"_Section_start.html#start_3 section for more info on packages.
Unlike other angle styles, the hybrid angle style does not store angle
coefficient info for individual sub-styles in a "binary restart
files"_restart.html. Thus when retarting a simulation from a restart
files"_restart.html. Thus when restarting a simulation from a restart
file, you need to re-specify angle_coeff commands.
[Related commands:]

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

@ -46,7 +46,7 @@ from the pair_style.
[Restrictions:]
This angle style can only be used if LAMMPS was built with the
USER-CG-CMM package. See the "Making
USER-CGSDK package. See the "Making
LAMMPS"_Section_start.html#start_3 section for more info on packages.
[Related commands:]

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

@ -103,7 +103,7 @@ turns off the {first} option.
It is OK to use the {first} keyword with a group that has not yet been
defined, e.g. to use the atom_modify first command at the beginning of
your input script. LAMMPS does not use the group until a simullation
your input script. LAMMPS does not use the group until a simulation
is run.
The {sort} keyword turns on a spatial sorting or reordering of atoms
@ -116,7 +116,7 @@ various other factors. As a general rule, sorting is typically more
effective at speeding up simulations of liquids as opposed to solids.
In tests we have done, the speed-up can range from zero to 3-4x.
Reordering is peformed every {Nfreq} timesteps during a dynamics run
Reordering is performed every {Nfreq} timesteps during a dynamics run
or iterations during a minimization. More precisely, reordering
occurs at the first reneighboring that occurs after the target
timestep. The reordering is performed locally by each processor,
@ -130,7 +130,7 @@ the processor's 1d list of atoms.
The goal of this procedure is for atoms to put atoms close to each
other in the processor's one-dimensional list of atoms that are also
near to each other spatially. This can improve cache performance when
pairwise intereractions and neighbor lists are computed. Note that if
pairwise interactions and neighbor lists are computed. Note that if
bins are too small, there will be few atoms/bin. Likewise if bins are
too large, there will be many atoms/bin. In both cases, the goal of
cache locality will be undermined.
@ -138,7 +138,7 @@ cache locality will be undermined.
NOTE: Running a simulation with sorting on versus off should not
change the simulation results in a statistical sense. However, a
different ordering will induce round-off differences, which will lead
to diverging trajectories over time when comparing two simluations.
to diverging trajectories over time when comparing two simulations.
Various commands, particularly those which use random numbers
(e.g. "velocity create"_velocity.html, and "fix
langevin"_fix_langevin.html), may generate (statistically identical)

View File

@ -110,12 +110,17 @@ basis.
For the {sphere} style, the particles are spheres and each stores a
per-particle diameter and mass. If the diameter > 0.0, the particle
is a finite-size sphere. If the diameter = 0.0, it is a point
particle.
particle. Note that by use of the {disc} keyword with the "fix
nve/sphere"_fix_nve_sphere.html, "fix nvt/sphere"_fix_nvt_sphere.html,
"fix nph/sphere"_fix_nph_sphere.html, "fix
npt/sphere"_fix_npt_sphere.html commands, spheres can be effectively
treated as 2d discs for a 2d simulation if desired. See also the "set
density/disc"_set.html command.
For the {ellipsoid} style, the particles are ellipsoids and each
stores a flag which indicates whether it is a finite-size ellipsoid or
a point particle. If it is an ellipsoid, it also stores a shape
vector with the 3 diamters of the ellipsoid and a quaternion 4-vector
vector with the 3 diameters of the ellipsoid and a quaternion 4-vector
with its orientation.
For the {dipole} style, a point dipole is defined for each point
@ -149,7 +154,7 @@ Hydrodynamics. Both fluids and solids can be modeled. Particles
store the mass and volume of an integration point, a kernel diameter
used for calculating the field variables (e.g. stress and deformation)
and a contact radius for calculating repulsive forces which prevent
individual physical bodies from penetretating each other.
individual physical bodies from penetrating each other.
The {wavepacket} style is similar to {electron}, but the electrons may
consist of several Gaussian wave packets, summed up with coefficients
@ -165,7 +170,7 @@ For the {tri} style, the particles are planar triangles and each
stores a per-particle mass and size and orientation (i.e. the corner
points of the triangle).
The {template} style allows molecular topolgy (bonds,angles,etc) to be
The {template} style allows molecular topology (bonds,angles,etc) to be
defined via a molecule template using the "molecule"_molecule.html
command. The template stores one or more molecules with a single copy
of the topology info (bonds,angles,etc) of each. Individual atoms
@ -195,7 +200,7 @@ the {bstyle} argument. Body particles can represent complex entities,
such as surface meshes of discrete points, collections of
sub-particles, deformable objects, etc.
The "body"_body.html doc page descibes the body styles LAMMPS
The "body"_body.html doc page describes the body styles LAMMPS
currently supports, and provides more details as to the kind of body
particles they represent. For all styles, each body particle stores
moments of inertia and a quaternion 4-vector, so that its orientation
@ -280,7 +285,7 @@ The {dpd} style is part of the USER-DPD package for dissipative
particle dynamics (DPD).
The {meso} style is part of the USER-SPH package for smoothed particle
hydrodyanmics (SPH). See "this PDF
hydrodynamics (SPH). See "this PDF
guide"_USER/sph/SPH_LAMMPS_userguide.pdf to using SPH in LAMMPS.
The {wavepacket} style is part of the USER-AWPMD package for the

View File

@ -12,7 +12,7 @@ balance command :h3
balance thresh style args ... keyword args ... :pre
thresh = imbalance threshhold that must be exceeded to perform a re-balance :ulb,l
thresh = imbalance threshold that must be exceeded to perform a re-balance :ulb,l
one style/arg pair can be used (or multiple for {x},{y},{z}) :l
style = {x} or {y} or {z} or {shift} or {rcb} :l
{x} args = {uniform} or Px-1 numbers between 0 and 1
@ -30,7 +30,7 @@ style = {x} or {y} or {z} or {shift} or {rcb} :l
{shift} args = dimstr Niter stopthresh
dimstr = sequence of letters containing "x" or "y" or "z", each not more than once
Niter = # of times to iterate within each dimension of dimstr sequence
stopthresh = stop balancing when this imbalance threshhold is reached
stopthresh = stop balancing when this imbalance threshold is reached
{rcb} args = none :pre
zero or more keyword/arg pairs may be appended :l
keyword = {weight} or {out} :l
@ -76,13 +76,13 @@ sub-domain sizes and shapes on-the-fly during a "run"_run.html.
Load-balancing is typically most useful if the particles in the
simulation box have a spatially-varying density distribution or when
the computational cost varies signficantly between different
the computational cost varies significantly between different
particles. E.g. a model of a vapor/liquid interface, or a solid with
an irregular-shaped geometry containing void regions, or "hybrid pair
style simulations"_pair_hybrid.html which combine pair styles with
different computational cost. In these cases, the LAMMPS default of
dividing the simulation box volume into a regular-spaced grid of 3d
bricks, with one equal-volume sub-domain per procesor, may assign
bricks, with one equal-volume sub-domain per processor, may assign
numbers of particles per processor in a way that the computational
effort varies significantly. This can lead to poor performance when
the simulation is run in parallel.
@ -91,7 +91,7 @@ The balancing can be performed with or without per-particle weighting.
With no weighting, the balancing attempts to assign an equal number of
particles to each processor. With weighting, the balancing attempts
to assign an equal aggregate computational weight to each processor,
which typically inducces a diffrent number of atoms assigned to each
which typically induces a different number of atoms assigned to each
processor. Details on the various weighting options and examples for
how they can be used are "given below"_#weighted_balance.
@ -222,7 +222,7 @@ listed in ascending order. They represent the fractional position of
the cutting place. The left (or lower) edge of the box is 0.0, and
the right (or upper) edge is 1.0. Neither of these values is
specified. Only the interior Ps-1 positions are specified. Thus is
there are 2 procesors in the x dimension, you specify a single value
there are 2 processors in the x dimension, you specify a single value
such as 0.75, which would make the left processor's sub-domain 3x
larger than the right processor's sub-domain.
@ -266,7 +266,7 @@ assigned, particles are migrated to their new owning processor, and
the balance procedure ends.
NOTE: At each rebalance operation, the bisectioning for each cutting
plane (line in 2d) typcially starts with low and high bounds separated
plane (line in 2d) typically starts with low and high bounds separated
by the extent of a processor's sub-domain in one dimension. The size
of this bracketing region shrinks by 1/2 every iteration. Thus if
{Niter} is specified as 10, the cutting plane will typically be
@ -286,24 +286,32 @@ above. It performs a recursive coordinate bisectioning (RCB) of the
simulation domain. The basic idea is as follows.
The simulation domain is cut into 2 boxes by an axis-aligned cut in
the longest dimension, leaving one new box on either side of the cut.
All the processors are also partitioned into 2 groups, half assigned
to the box on the lower side of the cut, and half to the box on the
upper side. (If the processor count is odd, one side gets an extra
processor.) The cut is positioned so that the number of particles in
the lower box is exactly the number that the processors assigned to
that box should own for load balance to be perfect. This also makes
load balance for the upper box perfect. The positioning is done
iteratively, by a bisectioning method. Note that counting particles
on either side of the cut requires communication between all
processors at each iteration.
one of the dimensions, leaving one new sub-box on either side of the
cut. Which dimension is chosen for the cut depends on the particle
(weight) distribution within the parent box. Normally the longest
dimension of the box is cut, but if all (or most) of the particles are
at one end of the box, a cut may be performed in another dimension to
induce sub-boxes that are more cube-ish (3d) or square-ish (2d) in
shape.
After the cut is made, all the processors are also partitioned into 2
groups, half assigned to the box on the lower side of the cut, and
half to the box on the upper side. (If the processor count is odd,
one side gets an extra processor.) The cut is positioned so that the
number of (weighted) particles in the lower box is exactly the number
that the processors assigned to that box should own for load balance
to be perfect. This also makes load balance for the upper box
perfect. The positioning of the cut is done iteratively, by a
bisectioning method (median search). Note that counting particles on
either side of the cut requires communication between all processors
at each iteration.
That is the procedure for the first cut. Subsequent cuts are made
recursively, in exactly the same manner. The subset of processors
assigned to each box make a new cut in the longest dimension of that
box, splitting the box, the subset of processsors, and the particles
in the box in two. The recursion continues until every processor is
assigned a sub-box of the entire simulation domain, and owns the
assigned to each box make a new cut in one dimension of that box,
splitting the box, the subset of processors, and the particles in the
box in two. The recursion continues until every processor is assigned
a sub-box of the entire simulation domain, and owns the (weighted)
particles in that sub-box.
:line
@ -368,7 +376,7 @@ of about 0.8 often results in the best performance, since the number
of neighbors is likely to overestimate the ideal weight.
This weight style is useful for systems where there are different
cutoffs used for different pairs of interations, or the density
cutoffs used for different pairs of interactions, or the density
fluctuates, or a large number of particles are in the vicinity of a
wall, or a combination of these effects. If a simulation uses
multiple neighbor lists, this weight style will use the first suitable
@ -386,7 +394,7 @@ weights. It assigns the same weight to each particle owned by a
processor based on the total computational time spent by that
processor. See details below on what time window is used. It uses
the same timing information as is used for the "MPI task timing
breakdown"_Section_start.html#start_8, namely, for sections {Pair},
breakdown"_Section_start.html#start_7, namely, for sections {Pair},
{Bond}, {Kspace}, and {Neigh}. The time spent in those portions of
the timestep are measured for each MPI rank, summed, then divided by
the number of particles owned by that processor. I.e. the weight is
@ -402,7 +410,7 @@ decrease the weights so that the ratio of max weight to min weight
decreases by {factor}. In both cases the intermediate weight values
increase/decrease proportionally as well. A value = 1.0 has no effect
on the {time} weights. As a rule of thumb, effective values to use
are typicall between 0.5 and 1.2. Note that the timer quantities
are typically between 0.5 and 1.2. Note that the timer quantities
mentioned above can be affected by communication which occurs in the
middle of the operations, e.g. pair styles with intermediate exchange
of data witin the force computation, and likewise for KSpace solves.

View File

@ -82,7 +82,7 @@ internal stress that induces fragmentation :ul
then the interaction between pairs of particles is likely to be more
complex than the summation of simple sub-particle interactions. An
example is contact or frictional forces between particles with planar
sufaces that inter-penetrate.
surfaces that inter-penetrate.
These are additional LAMMPS commands that can be used with body
particles of different styles
@ -105,7 +105,7 @@ in the sections below.
The {nparticle} body style represents body particles as a rigid body
with a variable number N of sub-particles. It is provided as a
vanillia, prototypical example of a body particle, although as
vanilla, prototypical example of a body particle, although as
mentioned above, the "fix rigid"_fix_rigid.html command already
duplicates its functionality.
@ -140,7 +140,7 @@ for more details.
The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the
values consistent with the current orientation of the rigid body
around its center of mass. The values are with respect to the
simulation box XYZ axes, not with respect to the prinicpal axes of the
simulation box XYZ axes, not with respect to the principal axes of the
rigid body itself. LAMMPS performs the latter calculation internally.
The coordinates of each sub-particle are specified as its x,y,z
displacement from the center-of-mass of the body particle. The
@ -218,7 +218,7 @@ wish; see the "read_data"_read_data.html command for more details.
The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the
values consistent with the current orientation of the rigid body
around its center of mass. The values are with respect to the
simulation box XYZ axes, not with respect to the prinicpal axes of the
simulation box XYZ axes, not with respect to the principal axes of the
rigid body itself. LAMMPS performs the latter calculation internally.
The coordinates of each vertex are specified as its x,y,z displacement
from the center-of-mass of the body particle. The center-of-mass

View File

@ -8,6 +8,7 @@
bond_style class2 command :h3
bond_style class2/omp command :h3
bond_style class2/kk command :h3
[Syntax:]
@ -55,7 +56,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

@ -59,7 +59,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

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