Merge branch 'master' into ScaFaCoS

This commit is contained in:
Richard Berger 2018-09-04 21:35:46 -04:00
commit ff2e13e063
730 changed files with 24971 additions and 1469 deletions

2
.gitignore vendored
View File

@ -1,6 +1,7 @@
*~
*.o
*.so
*.lo
*.cu_o
*.ptx
*_ptx.h
@ -32,6 +33,7 @@ log.cite
.Trashes
ehthumbs.db
Thumbs.db
.clang-format
#cmake
/build*

View File

@ -43,6 +43,29 @@ function(validate_option name values)
endif()
endfunction(validate_option)
function(get_lammps_version version_header variable)
file(READ ${version_header} line)
set(MONTHS x Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\1" day "${line}")
string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\2" month "${line}")
string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\3" year "${line}")
string(STRIP ${day} day)
string(STRIP ${month} month)
string(STRIP ${year} year)
list(FIND MONTHS "${month}" month)
string(LENGTH ${day} day_length)
string(LENGTH ${month} month_length)
if(day_length EQUAL 1)
set(day "0${day}")
endif()
if(month_length EQUAL 1)
set(month "0${month}")
endif()
set(${variable} "${year}${month}${day}" PARENT_SCOPE)
endfunction()
get_lammps_version(${LAMMPS_SOURCE_DIR}/version.h LAMMPS_VERSION)
# Cmake modules/macros are in a subdirectory to keep this file cleaner
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules)
@ -113,6 +136,7 @@ if(BUILD_EXE)
if(LAMMPS_MACHINE)
set(LAMMPS_MACHINE "_${LAMMPS_MACHINE}")
endif()
set(LAMMPS_BINARY lmp${LAMMPS_MACHINE})
endif()
option(BUILD_LIB "Build LAMMPS library" OFF)
@ -121,10 +145,10 @@ if(BUILD_LIB)
if(BUILD_SHARED_LIBS) # for all pkg libs, mpi_stubs and linalg
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif()
set(LIB_SUFFIX "" CACHE STRING "Suffix to append to liblammps and pkg-config file")
mark_as_advanced(LIB_SUFFIX)
if(LIB_SUFFIX)
set(LIB_SUFFIX "_${LIB_SUFFIX}")
set(LAMMPS_LIB_SUFFIX "" CACHE STRING "Suffix to append to liblammps and pkg-config file")
mark_as_advanced(LAMMPS_LIB_SUFFIX)
if(LAMMPS_LIB_SUFFIX)
set(LAMMPS_LIB_SUFFIX "_${LAMMPS_LIB_SUFFIX}")
endif()
endif()
@ -140,7 +164,7 @@ set(LAMMPS_DEPS)
set(LAMMPS_API_DEFINES)
set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR
KSPACE MANYBODY MC MEAM MISC MOLECULE PERI REAX REPLICA RIGID SHOCK SPIN SNAP
KSPACE MANYBODY MC MEAM MESSAGE MISC MOLECULE PERI REAX REPLICA RIGID SHOCK SPIN SNAP
SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD USER-BOCS
USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE
USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC
@ -213,6 +237,49 @@ option(CMAKE_VERBOSE_MAKEFILE "Verbose makefile" OFF)
option(ENABLE_TESTING "Enable testing" OFF)
if(ENABLE_TESTING)
enable_testing()
option(LAMMPS_TESTING_SOURCE_DIR "Location of lammps-testing source directory" "")
option(LAMMPS_TESTING_GIT_TAG "Git tag of lammps-testing" "master")
mark_as_advanced(LAMMPS_TESTING_SOURCE_DIR LAMMPS_TESTING_GIT_TAG)
if (CMAKE_VERSION VERSION_GREATER "3.10.3" AND NOT LAMMPS_TESTING_SOURCE_DIR)
include(FetchContent)
FetchContent_Declare(lammps-testing
GIT_REPOSITORY https://github.com/lammps/lammps-testing.git
GIT_TAG ${LAMMPS_TESTING_GIT_TAG}
)
FetchContent_GetProperties(lammps-testing)
if(NOT lammps-testing_POPULATED)
message(STATUS "Downloading tests...")
FetchContent_Populate(lammps-testing)
endif()
set(LAMMPS_TESTING_SOURCE_DIR ${lammps-testing_SOURCE_DIR})
elseif(NOT LAMMPS_TESTING_SOURCE_DIR)
message(WARNING "Full test-suite requires CMake >= 3.11 or copy of\n"
"https://github.com/lammps/lammps-testing in LAMMPS_TESTING_SOURCE_DIR")
endif()
if(EXISTS ${LAMMPS_TESTING_SOURCE_DIR})
message(STATUS "Running test discovery...")
file(GLOB_RECURSE TEST_SCRIPTS ${LAMMPS_TESTING_SOURCE_DIR}/tests/core/*/in.*)
foreach(script_path ${TEST_SCRIPTS})
get_filename_component(TEST_NAME ${script_path} EXT)
get_filename_component(SCRIPT_NAME ${script_path} NAME)
get_filename_component(PARENT_DIR ${script_path} DIRECTORY)
string(SUBSTRING ${TEST_NAME} 1 -1 TEST_NAME)
string(REPLACE "-" "_" TEST_NAME ${TEST_NAME})
string(REPLACE "+" "_" TEST_NAME ${TEST_NAME})
set(TEST_NAME "test_core_${TEST_NAME}_serial")
add_test(${TEST_NAME} ${CMAKE_BINARY_DIR}/${LAMMPS_BINARY} -in ${SCRIPT_NAME})
set_tests_properties(${TEST_NAME} PROPERTIES WORKING_DIRECTORY ${PARENT_DIR})
endforeach()
list(LENGTH TEST_SCRIPTS NUM_TESTS)
message(STATUS "Found ${NUM_TESTS} tests.")
endif()
endif(ENABLE_TESTING)
macro(pkg_depends PKG1 PKG2)
@ -278,11 +345,14 @@ endif()
if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE)
find_package(LAPACK)
if(NOT LAPACK_FOUND)
find_package(BLAS)
if(NOT LAPACK_FOUND OR NOT BLAS_FOUND)
enable_language(Fortran)
file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/*.[fF])
add_library(linalg STATIC ${LAPACK_SOURCES})
set(LAPACK_LIBRARIES linalg)
else()
list(APPEND LAPACK_LIBRARIES ${BLAS_LIBRARIES})
endif()
endif()
@ -531,6 +601,39 @@ if(PKG_KIM)
include_directories(${KIM_INCLUDE_DIRS})
endif()
if(PKG_MESSAGE)
option(MESSAGE_ZMQ "Use ZeroMQ in MESSAGE package" OFF)
file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.F
${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.c ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.cpp)
if(BUILD_SHARED_LIBS)
add_library(cslib SHARED ${cslib_SOURCES})
else()
add_library(cslib STATIC ${cslib_SOURCES})
endif()
if(BUILD_MPI)
target_compile_definitions(cslib PRIVATE -DMPI_YES)
set_target_properties(cslib PROPERTIES OUTPUT_NAME "csmpi")
else()
target_compile_definitions(cslib PRIVATE -DMPI_NO)
set_target_properties(cslib PROPERTIES OUTPUT_NAME "csnompi")
endif()
if(MESSAGE_ZMQ)
target_compile_definitions(cslib PRIVATE -DZMQ_YES)
find_package(ZMQ REQUIRED)
target_include_directories(cslib PRIVATE ${ZMQ_INCLUDE_DIRS})
target_link_libraries(cslib PUBLIC ${ZMQ_LIBRARIES})
else()
target_compile_definitions(cslib PRIVATE -DZMQ_NO)
target_include_directories(cslib PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src/STUBS_ZMQ)
endif()
list(APPEND LAMMPS_LINK_LIBS cslib)
include_directories(${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src)
endif()
if(PKG_MSCG)
find_package(GSL REQUIRED)
option(DOWNLOAD_MSCG "Download latte (instead of using the system's one)" OFF)
@ -728,7 +831,9 @@ if(PKG_USER-OMP)
set(USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/thr_data.cpp
${USER-OMP_SOURCES_DIR}/thr_omp.cpp
${USER-OMP_SOURCES_DIR}/fix_nh_omp.cpp
${USER-OMP_SOURCES_DIR}/fix_nh_sphere_omp.cpp)
${USER-OMP_SOURCES_DIR}/fix_nh_sphere_omp.cpp
${USER-OMP_SOURCES_DIR}/domain_omp.cpp)
add_definitions(-DLMP_USER_OMP)
set_property(GLOBAL PROPERTY "OMP_SOURCES" "${USER-OMP_SOURCES}")
# detects styles which have USER-OMP version
@ -1061,7 +1166,9 @@ include_directories(${LAMMPS_STYLE_HEADERS_DIR})
######################################
set(temp "#ifndef LMP_INSTALLED_PKGS_H\n#define LMP_INSTALLED_PKGS_H\n")
set(temp "${temp}const char * LAMMPS_NS::LAMMPS::installed_packages[] = {\n")
foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
set(temp_PKG_LIST ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
list(SORT temp_PKG_LIST)
foreach(PKG ${temp_PKG_LIST})
if(PKG_${PKG})
set(temp "${temp} \"${PKG}\",\n")
endif()
@ -1086,14 +1193,14 @@ if(BUILD_LIB)
if(LAMMPS_DEPS)
add_dependencies(lammps ${LAMMPS_DEPS})
endif()
set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LIB_SUFFIX})
if(BUILD_SHARED_LIBS)
set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps)
configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
endif()
set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LAMMPS_LIB_SUFFIX})
set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps)
configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_LIB_SUFFIX}.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
configure_file(FindLAMMPS.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LAMMPS_LIB_SUFFIX}.cmake @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LAMMPS_LIB_SUFFIX}.cmake DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/Module)
else()
list(APPEND LMP_SOURCES ${LIB_SOURCES})
endif()
@ -1109,10 +1216,11 @@ if(BUILD_EXE)
endif()
endif()
set_target_properties(lmp PROPERTIES OUTPUT_NAME lmp${LAMMPS_MACHINE})
set_target_properties(lmp PROPERTIES OUTPUT_NAME ${LAMMPS_BINARY})
install(TARGETS lmp DESTINATION ${CMAKE_INSTALL_BINDIR})
install(FILES ${LAMMPS_DOC_DIR}/lammps.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 RENAME ${LAMMPS_BINARY}.1)
if(ENABLE_TESTING)
add_test(ShowHelp lmp${LAMMPS_MACHINE} -help)
add_test(ShowHelp ${LAMMPS_BINARY} -help)
endif()
endif()
@ -1180,7 +1288,7 @@ endif()
# Install potential files in data directory
###############################################################################
set(LAMMPS_POTENTIALS_DIR ${CMAKE_INSTALL_FULL_DATADIR}/lammps/potentials)
install(DIRECTORY ${LAMMPS_SOURCE_DIR}/../potentials DESTINATION ${CMAKE_INSTALL_DATADIR}/lammps/potentials)
install(DIRECTORY ${LAMMPS_SOURCE_DIR}/../potentials/ DESTINATION ${LAMMPS_POTENTIALS_DIR})
configure_file(etc/profile.d/lammps.sh.in ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.sh @ONLY)
configure_file(etc/profile.d/lammps.csh.in ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.csh @ONLY)
@ -1222,7 +1330,7 @@ endif()
###############################################################################
# Print package summary
###############################################################################
foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES})
foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
if(PKG_${PKG})
message(STATUS "Building package: ${PKG}")
endif()

48
cmake/FindLAMMPS.cmake.in Normal file
View File

@ -0,0 +1,48 @@
# - Find liblammps
# Find the native liblammps headers and libraries.
#
# The following variables will set:
# LAMMPS_INCLUDE_DIRS - where to find lammps/library.h, etc.
# LAMMPS_LIBRARIES - List of libraries when using lammps.
# LAMMPS_API_DEFINES - lammps library api defines
# LAMMPS_VERSION - lammps library version
# LAMMPS_FOUND - True if liblammps found.
#
# In addition a LAMMPS::LAMMPS imported target is getting created.
#
# LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
# http://lammps.sandia.gov, Sandia National Laboratories
# Steve Plimpton, sjplimp@sandia.gov
#
# Copyright (2003) Sandia Corporation. Under the terms of Contract
# DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
# certain rights in this software. This software is distributed under
# the GNU General Public License.
#
# See the README file in the top-level LAMMPS directory.
#
find_package(PkgConfig)
pkg_check_modules(PC_LAMMPS liblammps@LAMMPS_LIB_SUFFIX@)
find_path(LAMMPS_INCLUDE_DIR lammps/library.h HINTS ${PC_LAMMPS_INCLUDE_DIRS} @CMAKE_INSTALL_FULL_INCLUDEDIR@)
set(LAMMPS_VERSION @LAMMPS_VERSION@)
set(LAMMPS_API_DEFINES @LAMMPS_API_DEFINES@)
find_library(LAMMPS_LIBRARY NAMES lammps@LAMMPS_LIB_SUFFIX@ HINTS ${PC_LAMMPS_LIBRARY_DIRS} @CMAKE_INSTALL_FULL_LIBDIR@)
set(LAMMPS_INCLUDE_DIRS "${LAMMPS_INCLUDE_DIR}")
set(LAMMPS_LIBRARIES "${LAMMPS_LIBRARY}")
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set LAMMPS_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(LAMMPS REQUIRED_VARS LAMMPS_LIBRARY LAMMPS_INCLUDE_DIR VERSION_VAR LAMMPS_VERSION)
mark_as_advanced(LAMMPS_INCLUDE_DIR LAMMPS_LIBRARY)
if(LAMMPS_FOUND AND NOT TARGET LAMMPS::LAMMPS)
add_library(LAMMPS::LAMMPS UNKNOWN IMPORTED)
set_target_properties(LAMMPS::LAMMPS PROPERTIES IMPORTED_LOCATION "${LAMMPS_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${LAMMPS_INCLUDE_DIR}" INTERFACE_COMPILE_DEFINITIONS "${LAMMPS_API_DEFINES}")
endif()

View File

@ -0,0 +1,8 @@
find_path(ZMQ_INCLUDE_DIR zmq.h)
find_library(ZMQ_LIBRARY NAMES zmq)
set(ZMQ_LIBRARIES ${ZMQ_LIBRARY})
set(ZMQ_INCLUDE_DIRS ${ZMQ_INCLUDE_DIR})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(ZMQ DEFAULT_MSG ZMQ_LIBRARY ZMQ_INCLUDE_DIR)

View File

@ -48,8 +48,13 @@ function(CreateStyleHeader path filename)
set(temp "")
if(ARGC GREATER 2)
list(REMOVE_AT ARGV 0 1)
set(header_list)
foreach(FNAME ${ARGV})
get_filename_component(FNAME ${FNAME} NAME)
list(APPEND header_list ${FNAME})
endforeach()
list(SORT header_list)
foreach(FNAME ${header_list})
set(temp "${temp}#include \"${FNAME}\"\n")
endforeach()
endif()

View File

@ -4,15 +4,15 @@
# after you added @CMAKE_INSTALL_FULL_LIBDIR@/pkg-config to PKG_CONFIG_PATH,
# e.g. export PKG_CONFIG_PATH=@CMAKE_INSTALL_FULL_LIBDIR@/pkgconfig
prefix=@CMAKE_INSTALL_FULL_PREFIX@
prefix=@CMAKE_INSTALL_PREFIX@
libdir=@CMAKE_INSTALL_FULL_LIBDIR@
includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
Name: liblammps@LAMMPS_MACHINE@
Description: Large-scale Atomic/Molecular Massively Parallel Simulator Library
URL: http://lammps.sandia.gov
Version:
Version: @LAMMPS_VERSION@
Requires:
Libs: -L${libdir} -llammps@LIB_SUFFIX@@
Libs: -L${libdir} -llammps@LAMMPS_LIB_SUFFIX@
Libs.private: -lm
Cflags: -I${includedir} @LAMMPS_API_DEFINES@

View File

@ -31,7 +31,7 @@ SPHINXEXTRA = -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocess
SOURCES=$(filter-out $(wildcard src/lammps_commands*.txt) src/lammps_support.txt src/lammps_tutorials.txt,$(wildcard src/*.txt))
OBJECTS=$(SOURCES:src/%.txt=$(RSTDIR)/%.rst)
.PHONY: help clean-all clean epub html pdf old venv spelling anchor_check
.PHONY: help clean-all clean epub mobi html pdf old venv spelling anchor_check
# ------------------------------------------
@ -42,6 +42,8 @@ help:
@echo " old create old-style HTML doc pages in old dir"
@echo " fetch fetch HTML and PDF files from LAMMPS web site"
@echo " epub create ePUB format manual for e-book readers"
@echo " mobi convert ePUB to MOBI format manual for e-book readers (e.g. Kindle)"
@echo " (requires ebook-convert tool from calibre)"
@echo " clean remove all intermediate RST files"
@echo " clean-all reset the entire build environment"
@echo " txt2html build txt2html tool"
@ -106,6 +108,11 @@ epub: $(OBJECTS)
@rm -rf epub
@echo "Build finished. The ePUB manual file is created."
mobi: epub
@rm -f LAMMPS.mobi
@ebook-convert LAMMPS.epub LAMMPS.mobi
@echo "Conversion finished. The MOBI manual file is created."
pdf: utils/txt2html/txt2html.exe
@(\
set -e; \

45
doc/lammps.1 Normal file
View File

@ -0,0 +1,45 @@
.TH LAMMPS "2018-08-22"
.SH NAME
.B LAMMPS
\- Molecular Dynamics Simulator.
.SH SYNOPSIS
.B lmp
-in in.file
or
mpirun \-np 2
.B lmp
-in in.file
.SH DESCRIPTION
.B LAMMPS
LAMMPS is a classical molecular dynamics code, and an acronym for Large-scale
Atomic/Molecular Massively Parallel Simulator. LAMMPS has potentials for soft
materials (biomolecules, polymers) and solid-state materials (metals,
semiconductors) and coarse-grained or mesoscopic systems. It can be used to
model atoms or, more generically, as a parallel particle simulator at the
atomic, meso, or continuum scale.
See http://lammps.sandia.gov/ for documentation.
.SH OPTIONS
See https://lammps.sandia.gov/doc/Run_options.html for details on
command-line options.
.SH COPYRIGHT
© 2003--2018 Sandia Corporation
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL-2'.

View File

@ -61,7 +61,7 @@ library files. Failing this, these 3 variables can be used to specify
where the mpi.h file (MPI_INC), and the MPI library files (MPI_PATH)
are found, and the name of the library files (MPI_LIB).
For a serial build, you need to specify the 3 varaibles, as shown
For a serial build, you need to specify the 3 variables, as shown
above.
For a serial LAMMPS build, use the dummy MPI library provided in
@ -145,7 +145,7 @@ By default CMake will use a compiler it finds and it will add
optimization flags appropriate to that compiler and any "accelerator
packages"_Speed_packages.html you have included in the build.
You can tell CMake to look for a specific compiler with these varaible
You can tell CMake to look for a specific compiler with these variable
settings. Likewise you can specify the FLAGS variables if you want to
experiment with alternate optimization flags. You should specify all
3 compilers, so that the small number of LAMMPS source files written
@ -216,8 +216,8 @@ LAMMPS can be built as either an executable or as a static or shared
library. The LAMMPS library can be called from another application or
a scripting language. See the "Howto couple"_Howto_couple.html doc
page for more info on coupling LAMMPS to other codes. See the
"Python"_Python doc page for more info on wrapping and running LAMMPS
from Python via its library interface.
"Python"_Python_head.html doc page for more info on wrapping and
running LAMMPS from Python via its library interface.
[CMake variables]:
@ -247,7 +247,7 @@ Note that for a shared library to be usable by a calling program, all
the auxiliary libraries it depends on must also exist as shared
libraries. This will be the case for libraries included with LAMMPS,
such as the dummy MPI library in src/STUBS or any package libraries in
the lib/packages directroy, since they are always built as shared
the lib/packages directory, since they are always built as shared
libraries using the -fPIC switch. However, if a library like MPI or
FFTW does not exist as a shared library, the shared library build will
generate an error. This means you will need to install a shared
@ -299,7 +299,7 @@ Install LAMMPS after a build :h4,link(install)
After building LAMMPS, you may wish to copy the LAMMPS executable of
library, along with other LAMMPS files (library header, doc files) to
a globally visible place on your system, for others to access. Note
that you may need super-user priveleges (e.g. sudo) if the directory
that you may need super-user privileges (e.g. sudo) if the directory
you want to copy files to is protected.
[CMake variable]:

View File

@ -40,7 +40,7 @@ executable called "lmp" and a library called "liblammps.a" in the
If your machine has multiple CPU cores (most do these days), using a
command like "make -jN" (with N being the number of available local
CPU cores) can be much faster. If you plan to do development on
LAMMPS or need to recompile LAMMPS repeatedly, installation of the
LAMMPS or need to re-compile LAMMPS repeatedly, installation of the
ccache (= Compiler Cache) software may speed up compilation even more.
After compilation, you can optionally copy the LAMMPS executable and
@ -50,7 +50,7 @@ make install # optional, copy LAMMPS executable & library elsewhere :pre
:line
There are 3 variants of CMake: a command-line verison (cmake), a text mode
There are 3 variants of CMake: a command-line version (cmake), a text mode
UI version (ccmake), and a graphical GUI version (cmake-GUI). You can use
any of them interchangeably to configure and create the LAMMPS build
environment. On Linux all the versions produce a Makefile as their
@ -188,7 +188,7 @@ module list # is a cmake module already loaded?
module avail # is a cmake module available?
module load cmake3 # load cmake module with appropriate name :pre
Most Linux distributions offer precompiled cmake packages through
Most Linux distributions offer pre-compiled cmake packages through
their package management system. If you do not have CMake or a new
enough version, you can download the latest version at
"https://cmake.org/download/"_https://cmake.org/download/.

View File

@ -31,6 +31,7 @@ This is the list of packages that may require additional steps.
"KOKKOS"_#kokkos,
"LATTE"_#latte,
"MEAM"_#meam,
"MESSAGE"_#message,
"MSCG"_#mscg,
"OPT"_#opt,
"POEMS"_#poems,
@ -341,7 +342,7 @@ NOTE: the use of the MEAM package is discouraged, as it has been
superseded by the USER-MEAMC package, which is a direct translation of
the Fortran code in the MEAM library to C++. The code in USER-MEAMC
should be functionally equivalent to the MEAM package, fully supports
use of "pair_style hybrid"_pair_hybrid.html (the MEAM packaged doesn
use of "pair_style hybrid"_pair_hybrid.html (the MEAM package does
not), and has optimizations that make it significantly faster than the
MEAM package.
@ -362,6 +363,10 @@ make lib-meam args="-m mpi" # build with default Fortran compiler compatible
make lib-meam args="-m serial" # build with compiler compatible with "make serial" (GNU Fortran)
make lib-meam args="-m ifort" # build with Intel Fortran compiler using Makefile.ifort :pre
NOTE: You should test building the MEAM library with both the Intel
and GNU compilers to see if a simulation runs faster with one versus
the other on your system.
The build should produce two files: lib/meam/libmeam.a and
lib/meam/Makefile.lammps. The latter is copied from an existing
Makefile.lammps.* and has settings needed to link C++ (LAMMPS) with
@ -374,6 +379,35 @@ file.
:line
MESSAGE package :h4,link(message)
This package can optionally include support for messaging via sockets,
using the open-source "ZeroMQ library"_http://zeromq.org, which must
be installed on your system.
[CMake build]:
-D MESSAGE_ZMQ=value # build with ZeroMQ support, value = no (default) or yes
[Traditional make]:
Before building LAMMPS, you must build the CSlib library in
lib/message. You can build the CSlib library manually if you prefer;
follow the instructions in lib/message/README. You can also do it in
one step from the lammps/src dir, using a command like these, which
simply invoke the lib/message/Install.py script with the specified args:
make lib-message # print help message
make lib-message args="-m -z" # build with MPI and socket (ZMQ) support
make lib-message args="-s" # build as serial lib with no ZMQ support
The build should produce two files: lib/message/cslib/src/libmessage.a
and lib/message/Makefile.lammps. The latter is copied from an
existing Makefile.lammps.* and has settings to link with the ZeroMQ
library if requested in the build.
:line
MSCG package :h4,link(mscg)
To build with this package, you must download and build the MS-CG
@ -471,7 +505,7 @@ lib/python/README for more details.
-D PYTHON_EXECUTABLE=path # path to Python executable to use :pre
Without this setting, CMake will ues the default Python on your
Without this setting, CMake will guess the default Python on your
system. To use a different Python version, you can either create a
virtualenv, activate it and then run cmake. Or you can set the
PYTHON_EXECUTABLE variable to specify which Python interpreter should
@ -688,7 +722,7 @@ the HDF5 library.
No additional settings are needed besides "-D PKG_USER-H5MD=yes".
This should autodetect the H5MD library on your system. Several
This should auto-detect the H5MD library on your system. Several
advanced CMake H5MD options exist if you need to specify where it is
installed. Use the ccmake (terminal window) or cmake-gui (graphical)
tools to see these options and set them interactively from their user
@ -778,7 +812,7 @@ on your system.
No additional settings are needed besides "-D PKG_USER-NETCDF=yes".
This should autodetect the NETCDF library if it is installed on your
This should auto-detect the NETCDF library if it is installed on your
system at standard locations. Several advanced CMake NETCDF options
exist if you need to specify where it was installed. Use the ccmake
(terminal window) or cmake-gui (graphical) tools to see these options
@ -945,7 +979,7 @@ Eigen3 is a template library, so you do not need to build it.
-D EIGEN3_INCLUDE_DIR=path # path to Eigen library (only needed if a custom location) :pre
If DOWNLOAD_EIGEN3 is set, the Eigen3 library will be downloaded and
inside the CMake build directory. If the Eig3n3 library is already on
inside the CMake build directory. If the Eigen3 library is already on
your system (in a location CMake cannot find it), EIGEN3_INCLUDE_DIR
is the directory the Eigen3++ include file is in.
@ -976,7 +1010,7 @@ your system.
No additional settings are needed besides "-D PKG_USER-VTK=yes".
This should autodetect the VTK library if it is installed on your
This should auto-detect the VTK library if it is installed on your
system at standard locations. Several advanced VTK options exist if
you need to specify where it was installed. Use the ccmake (terminal
window) or cmake-gui (graphical) tools to see these options and set

View File

@ -35,16 +35,16 @@ This initial compilation can take a long time, since LAMMPS is a large
project with many features. If your machine has multiple CPU cores
(most do these days), using a command like "make -jN mpi" (with N =
the number of available CPU cores) can be much faster. If you plan to
do development on LAMMPS or need to recompile LAMMPS repeatedly, the
do development on LAMMPS or need to re-compile LAMMPS repeatedly, the
installation of the ccache (= Compiler Cache) software may speed up
compilation even more.
After the initial build, whenever you edit LAMMPS source files, or add
or remove new files to the source directory (e.g. by installing or
uninstalling packages), you must recompile and relink the LAMMPS
uninstalling packages), you must re-compile and relink the LAMMPS
executable with the same "make" command. This makefiles dependencies
should insure that only the subset of files that need to be are
recompiled.
re-compiled.
NOTE: When you build LAMMPS for the first time, a long list of *.d
files will be printed out rapidly. This is not an error; it is the
@ -71,8 +71,8 @@ Makefiles you may wish to try include these (some require a package
first be installed). Many of these include specific compiler flags
for optimized performance. Please note, however, that some of these
customized machine Makefile are contributed by users. Since both
compilers, OS configs, and LAMMPS itself keep changing, their settings
may become outdated:
compilers, OS configurations, and LAMMPS itself keep changing, their
settings may become outdated:
make mac # build serial LAMMPS on a Mac
make mac_mpi # build parallel LAMMPS on a Mac

View File

@ -42,6 +42,7 @@ packages:
"KOKKOS"_Build_extras.html#kokkos,
"LATTE"_Build_extras.html#latte,
"MEAM"_Build_extras.html#meam,
"MESSAGE"_#Build_extras.html#message,
"MSCG"_Build_extras.html#mscg,
"OPT"_Build_extras.html#opt,
"POEMS"_Build_extras.html#poems,

View File

@ -80,8 +80,8 @@ per-timestep CPU cost, FFTs are only a portion of long-range
Coulombics, and 1d FFTs are only a portion of the FFT cost (parallel
communication can be costly). A breakdown of these timings is printed
to the screen at the end of a run using the "kspace_style
pppm"_kspace_style.html command. The "Run output"_doc page gives more
details.
pppm"_kspace_style.html command. The "Run output"_Run_output.html
doc page gives more details.
FFTW is a fast, portable FFT library that should also work on any
platform and can be faster than the KISS FFT library. You can
@ -101,7 +101,7 @@ Performing 3d FFTs in parallel can be time consuming due to data
access and required communication. This cost can be reduced by
performing single-precision FFTs instead of double precision. Single
precision means the real and imaginary parts of a complex datum are
4-byte floats. Double precesion means they are 8-byte doubles. Note
4-byte floats. Double precision means they are 8-byte doubles. Note
that Fourier transform and related PPPM operations are somewhat less
sensitive to floating point truncation errors and thus the resulting
error is less than the difference in precision. Using the -DFFT_SINGLE
@ -193,7 +193,7 @@ Output of JPG, PNG, and movie files :h4,link(graphics)
The "dump image"_dump_image.html command has options to output JPEG or
PNG image files. Likewise the "dump movie"_dump_image.html command
ouputs movie files in MPEG format. Using these options requires the
outputs movie files in MPEG format. Using these options requires the
following settings:
[CMake variables]:
@ -206,7 +206,7 @@ following settings:
# default = yes if CMake can find ffmpeg, else no :pre
Usually these settings are all that is needed. If CMake cannot find
the graphics header, library, executuable files, you can set these
the graphics header, library, executable files, you can set these
variables:
-D JPEG_INCLUDE_DIR=path # path to jpeglib.h header file

View File

@ -84,7 +84,7 @@ with the cross-compiler environment on Fedora machines.
Please keep in mind, though, that this only applies to compiling LAMMPS.
Whether the resulting binaries do work correctly is no tested by the
LAMMPS developers. We instead rely on the feedback of the users
of these precompiled LAMMPS packages for Windows. We will try to resolve
of these pre-compiled LAMMPS packages for Windows. We will try to resolve
issues to the best of our abilities if we become aware of them. However
this is subject to time constraints and focus on HPC platforms.

View File

@ -19,7 +19,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
All commands :h3
An alphabetic list of all LAMMPS commmands.
An alphabetic list of all LAMMPS commands.
"angle_coeff"_angle_coeff.html,
"angle_style"_angle_style.html,
@ -71,6 +71,7 @@ An alphabetic list of all LAMMPS commmands.
"lattice"_lattice.html,
"log"_log.html,
"mass"_mass.html,
"message"_message.html,
"minimize"_minimize.html,
"min_modify"_min_modify.html,
"min_style"_min_style.html,
@ -103,6 +104,7 @@ An alphabetic list of all LAMMPS commmands.
"restart"_restart.html,
"run"_run.html,
"run_style"_run_style.html,
"server"_server.html,
"set"_set.html,
"shell"_shell.html,
"special_bonds"_special_bonds.html,

View File

@ -95,7 +95,7 @@ OPT.
"helix (o)"_dihedral_helix.html,
"multi/harmonic (o)"_dihedral_multi_harmonic.html,
"nharmonic (o)"_dihedral_nharmonic.html,
"opls (iko)"_dihedral_opls.htm;,
"opls (iko)"_dihedral_opls.html,
"quadratic (o)"_dihedral_quadratic.html,
"spherical (o)"_dihedral_spherical.html,
"table (o)"_dihedral_table.html,

View File

@ -33,6 +33,7 @@ OPT.
"agni (o)"_pair_agni.html,
"airebo (oi)"_pair_airebo.html,
"airebo/morse (oi)"_pair_airebo.html,
"atm"_pair_atm.html,
"awpmd/cut"_pair_awpmd.html,
"beck (go)"_pair_beck.html,
"body/nparticle"_pair_body_nparticle.html,

View File

@ -14,7 +14,7 @@ LAMMPS commands are case sensitive. Command names are lower-case, as
are specified command arguments. Upper case letters may be used in
file names or user-chosen ID strings.
Here are 6 rulse for how each line in the input script is parsed by
Here are 6 rules for how each line in the input script is parsed by
LAMMPS:
(1) If the last printable character on the line is a "&" character,
@ -71,7 +71,7 @@ floating-point value. The format string is used to output the result
of the variable expression evaluation. If a format string is not
specified a high-precision "%.20g" is used as the default.
This can be useful for formatting print output to a desired precion:
This can be useful for formatting print output to a desired precision:
print "Final energy per atom: $(pe/atoms:%10.3f) eV/atom" :pre

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

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

@ -0,0 +1,9 @@
\documentclass[12pt]{article}
\begin{document}
\begin{equation}
E=\nu\frac{1+3\cos\gamma_1\cos\gamma_2\cos\gamma_3}{r_{12}^3r_{23}^3r_{31}^3}
\end{equation}
\end{document}

View File

@ -743,7 +743,7 @@ Self-explanatory. :dd
Self-explanatory. :dd
{Cannot (yet) use single precision with MSM (remove -DFFT_SINGLE from Makefile and recompile)} :dt
{Cannot (yet) use single precision with MSM (remove -DFFT_SINGLE from Makefile and re-compile)} :dt
Single precision cannot be used with MSM. :dd
@ -5078,7 +5078,7 @@ Self-explanatory. :dd
Occurs when number of neighbor atoms for an atom increased too much
during a run. Increase SAFE_ZONE and MIN_CAP in fix_qeq.h and
recompile. :dd
re-compile. :dd
{Fix qeq/point requires atom attribute q} :dt
@ -5092,7 +5092,7 @@ Self-explanatory. :dd
Occurs when number of neighbor atoms for an atom increased too much
during a run. Increase SAFE_ZONE and MIN_CAP in fix_qeq.h and
recompile. :dd
re-compile. :dd
{Fix qeq/shielded requires atom attribute q} :dt
@ -5110,7 +5110,7 @@ Self-explanatory. :dd
Occurs when number of neighbor atoms for an atom increased too much
during a run. Increase SAFE_ZONE and MIN_CAP in fix_qeq.h and
recompile. :dd
re-compile. :dd
{Fix qeq/slater requires atom attribute q} :dt
@ -5541,7 +5541,7 @@ See the package gpu command. :dd
{GPUs are requested but Kokkos has not been compiled for CUDA} :dt
Recompile Kokkos with CUDA support to use GPUs. :dd
Re-compile Kokkos with CUDA support to use GPUs. :dd
{Ghost velocity forward comm not yet implemented with Kokkos} :dt

View File

@ -13,7 +13,7 @@ This is an alphabetic list of the WARNING messages LAMMPS prints out
and the reason why. If the explanation here is not sufficient, the
documentation for the offending command may help. Warning messages
also list the source file and line number where the warning was
generated. For example, a message lile this:
generated. For example, a message like this:
WARNING: Bond atom missing in box size check (domain.cpp:187) :pre

View File

@ -54,6 +54,7 @@ General howto :h3
Howto_replica
Howto_library
Howto_couple
Howto_client_server
END_RST -->
@ -64,7 +65,8 @@ END_RST -->
"Run multiple simulations from one input script"_Howto_multiple.html
"Multi-replica simulations"_Howto_replica.html
"Library interface to LAMMPS"_Howto_library.html
"Couple LAMMPS to other codes"_Howto_couple.html :all(b)
"Couple LAMMPS to other codes"_Howto_couple.html
"Using LAMMPS in client/server mode"_Howto_client_server.html :all(b)
<!-- END_HTML_ONLY -->

View File

@ -64,11 +64,11 @@ Thermodynamic output, which can be setup via the
"thermo_style"_thermo_style.html command, often includes pressure
values. As explained on the doc page for the
"thermo_style"_thermo_style.html command, the default pressure is
setup by the thermo command itself. It is NOT the presure associated
setup by the thermo command itself. It is NOT the pressure associated
with any barostatting fix you have defined or with any compute you
have defined that calculates a presure. The doc pages for the
have defined that calculates a pressure. The doc pages for the
barostatting fixes explain the ID of the pressure compute they create.
Thus if you want to view these pressurse, you need to specify them
Thus if you want to view these pressures, you need to specify them
explicitly via the "thermo_style custom"_thermo_style.html command.
Or you can use the "thermo_modify"_thermo_modify.html command to
re-define what pressure compute is used for default thermodynamic

View File

@ -337,7 +337,7 @@ the sphere that surrounds each vertex. The diameter value can be
different for each body particle. These floating-point values can be
listed on as many lines as you wish; see the
"read_data"_read_data.html command for more details. Because the
maxmimum vertices per face is hard-coded to be 4
maximum number of vertices per face is hard-coded to be 4
(i.e. quadrilaterals), faces with more than 4 vertices need to be
split into triangles or quadrilaterals. For triangular faces, the
last vertex index should be set to -1.

View File

@ -0,0 +1,131 @@
"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS
Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Commands_all.html)
:line
Using LAMMPS in client/server mode
Client/server coupling of two codes is where one code is the "client"
and sends request messages to a "server" code. The server responds to
each request with a reply message. This enables the two codes to work
in tandem to perform a simulation. LAMMPS can act as either a client
or server code.
Some advantages of client/server coupling are that the two codes run
as stand-alone executables; they are not linked together. Thus
neither code needs to have a library interface. This often makes it
easier to run the two codes on different numbers of processors. If a
message protocol (format and content) is defined for a particular kind
of simulation, then in principle any code that implements the
client-side protocol can be used in tandem with any code that
implements the server-side protocol, without the two codes needing to
know anything more specific about each other.
A simple example of client/server coupling is where LAMMPS is the
client code performing MD timestepping. Each timestep it sends a
message to a server quantum code containing current coords of all the
atoms. The quantum code computes energy and forces based on the
coords. It returns them as a message to LAMMPS, which completes the
timestep.
Alternate methods for code coupling with LAMMPS are described on
the "Howto couple"_Howto_couple.html doc page.
LAMMPS support for client/server coupling is in its "MESSAGE
package"_Packages_details.html#PKG-MESSAGE which implements several
commands that enable LAMMPS to act as a client or server, as discussed
below. The MESSAGE package also wraps a client/server library called
CSlib which enables two codes to exchange messages in different ways,
either via files, sockets, or MPI. The CSlib is provided with LAMMPS
in the lib/message dir. The CSlib has its own
"website"_http://cslib.sandia.gov with documentation and test
programs.
NOTE: For client/server coupling to work between LAMMPS and another
code, the other code also has to use the CSlib. This can sometimes be
done without any modifications to the other code by simply wrapping it
with a Python script that exchanges CSlib messages with LAMMPS and
prepares input for or processes output from the other code. The other
code also has to implement a matching protocol for the format and
content of messages that LAMMPS exchanges with it.
These are the commands currently in the MESSAGE package for two
protocols, MD and MC (Monte Carlo). New protocols can easily be
defined and added to this directory, where LAMMPS acts as either the
client or server.
"message"_message.html
"fix client md"_fix_client_md.html = LAMMPS is a client for running MD
"server md"_server_md.html = LAMMPS is a server for computing MD forces
"server mc"_server_mc.html = LAMMPS is a server for computing a Monte Carlo energy
The server doc files give details of the message protocols
for data that is exchanged bewteen the client and server.
These example directories illustrate how to use LAMMPS as either a
client or server code:
examples/message
examples/COUPLE/README
examples/COUPLE/lammps_mc
examples/COUPLE/lammps_vasp :ul
The examples/message dir couples a client instance of LAMMPS to a
server instance of LAMMPS.
The lammps_mc dir shows how to couple LAMMPS as a server to a simple
Monte Carlo client code as the driver.
The lammps_vasp dir shows how to couple LAMMPS as a client code
running MD timestepping to VASP acting as a server providing quantum
DFT forces, thru a Python wrapper script on VASP.
Here is how to launch a client and server code together for any of the
4 modes of message exchange that the "message"_message.html command
and the CSlib support. Here LAMMPS is used as both the client and
server code. Another code could be subsitituted for either.
The examples below show launching both codes from the same window (or
batch script), using the "&" character to launch the first code in the
background. For all modes except {mpi/one}, you could also launch the
codes in separate windows on your desktop machine. It does not
matter whether you launch the client or server first.
In these examples either code can be run on one or more processors.
If running in a non-MPI mode (file or zmq) you can launch a code on a
single processor without using mpirun.
IMPORTANT: If you run in mpi/two mode, you must launch both codes via
mpirun, even if one or both of them runs on a single processor. This
is so that MPI can figure out how to connect both MPI processes
together to exchange MPI messages between them.
For message exchange in {file}, {zmq}, or {mpi/two} modes:
% mpirun -np 1 lmp_mpi -log log.client < in.client &
% mpirun -np 2 lmp_mpi -log log.server < in.server :pre
% mpirun -np 4 lmp_mpi -log log.client < in.client &
% mpirun -np 1 lmp_mpi -log log.server < in.server :pre
% mpirun -np 2 lmp_mpi -log log.client < in.client &
% mpirun -np 4 lmp_mpi -log log.server < in.server :pre
For message exchange in {mpi/one} mode:
Launch both codes in a single mpirun command:
mpirun -np 2 lmp_mpi -mpicolor 0 -in in.message.client -log log.client : -np 4 lmp_mpi -mpicolor 1 -in in.message.server -log log.server
The two -np values determine how many procs the client and the server
run on.
A LAMMPS executable run in this manner must use the -mpicolor color
command-line option as their its option, where color is an integer
label that will be used to distinguish one executable from another in
the multiple executables that the mpirun command launches. In this
example the client was colored with a 0, and the server with a 1.

View File

@ -16,10 +16,12 @@ atoms and pass those forces to LAMMPS. Or a continuum finite element
nodal points, compute a FE solution, and return interpolated forces on
MD atoms.
LAMMPS can be coupled to other codes in at least 3 ways. Each has
LAMMPS can be coupled to other codes in at least 4 ways. Each has
advantages and disadvantages, which you'll have to think about in the
context of your application.
:line
(1) Define a new "fix"_fix.html command that calls the other code. In
this scenario, LAMMPS is the driver code. During its timestepping,
the fix is invoked, and can make library calls to the other code,
@ -32,6 +34,8 @@ LAMMPS.
:link(poems,http://www.rpi.edu/~anderk5/lab)
:line
(2) Define a new LAMMPS command that calls the other code. This is
conceptually similar to method (1), but in this case LAMMPS and the
other code are on a more equal footing. Note that now the other code
@ -52,6 +56,8 @@ command writes and reads.
See the "Modify command"_Modify_command.html doc page for info on how
to add a new command to LAMMPS.
:line
(3) Use LAMMPS as a library called by another code. In this case the
other code is the driver and calls LAMMPS as needed. Or a wrapper
code could link and call both LAMMPS and another code as libraries.
@ -102,3 +108,9 @@ on all the processors. Or it might allocate half the processors to
LAMMPS and half to the other code and run both codes simultaneously
before syncing them up periodically. Or it might instantiate multiple
instances of LAMMPS to perform different calculations.
:line
(4) Couple LAMMPS with another code in a client/server mode. This is
described on the "Howto client/server"_Howto_client_server.html doc
page.

View File

@ -171,16 +171,16 @@ void lammps_create_atoms(void *, int, tagint *, int *, double *, double *,
The gather functions collect peratom info of the requested type (atom
coords, atom types, forces, etc) from all processors, and returns the
same vector of values to each callling processor. The scatter
same vector of values to each calling processor. The scatter
functions do the inverse. They distribute a vector of peratom values,
passed by all calling processors, to invididual atoms, which may be
owned by different processos.
passed by all calling processors, to individual atoms, which may be
owned by different processors.
The lammps_gather_atoms() function does this for all N atoms in the
system, ordered by atom ID, from 1 to N. The
lammps_gather_atoms_concat() function does it for all N atoms, but
simply concatenates the subset of atoms owned by each processor. The
resulting vector is not ordered by atom ID. Atom IDs can be requetsed
resulting vector is not ordered by atom ID. Atom IDs can be requested
by the same function if the caller needs to know the ordering. The
lammps_gather_subset() function allows the caller to request values
for only a subset of atoms (identified by ID).

View File

@ -73,7 +73,7 @@ that package into your current Python installation.
cd $LAMMPS_DIR/python
python install.py :pre
NOTE: Recompiling the shared library requires reinstalling the Python package
NOTE: Recompiling the shared library requires re-installing the Python package
Installation inside of a virtualenv :h5

View File

@ -159,7 +159,7 @@ ellipsoidal particles:
The advantage of these fixes is that those which thermostat the
particles include the rotational degrees of freedom in the temperature
calculation and thermostatting. The "fix langevin"_fix_langevin
calculation and thermostatting. The "fix langevin"_fix_langevin.html
command can also be used with its {omgea} or {angmom} options to
thermostat the rotational degrees of freedom for spherical or
ellipsoidal particles. Other thermostatting fixes only operate on the

View File

@ -9,10 +9,10 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
Magnetic spins :h3
The magnetic spin simualtions are enabled by the SPIN package, whose
The magnetic spin simulations are enabled by the SPIN package, whose
implementation is detailed in "Tranchida"_#Tranchida7.
The model representents the simulation of atomic magnetic spins coupled
The model represents the simulation of atomic magnetic spins coupled
to lattice vibrations. The dynamics of those magnetic spins can be used
to simulate a broad range a phenomena related to magneto-elasticity, or
or to study the influence of defects on the magnetic properties of
@ -43,7 +43,7 @@ langevin/spin"_fix_langevin_spin.html. It allows to either dissipate
the thermal energy of the Langevin thermostat, or to perform a
relaxation of the magnetic configuration toward an equilibrium state.
All the computed magnetic properties can be outputed by two main
All the computed magnetic properties can be output by two main
commands. The first one is "compute spin"_compute_spin.html, that
enables to evaluate magnetic averaged quantities, such as the total
magnetization of the system along x, y, or z, the spin temperature, or

View File

@ -17,10 +17,11 @@ how to stay current are on the "Install git"_Install_git.html and
If you prefer to download a tarball, as described on the "Install
git"_Install_tarball.html doc page, you can stay current by
downloading "patch files" when new patch releases are made. A link to
a patch file is posted on the "bug and feature page"_bug of the
website, along with a list of changed files and details about what is
in the new patch release. This page explains how to apply the patch
file to your local LAMMPS directory.
a patch file is posted on the "bug and feature
page"_http://lammps.sandia.gov/bug.html of the LAMMPS website, along
with a list of changed files and details about what is in the new patch
release. This page explains how to apply the patch file to your local
LAMMPS directory.
NOTE: You should not apply patch files to a local Git or SVN repo of
LAMMPS, only to an unpacked tarball. Use Git and SVN commands to

View File

@ -17,7 +17,7 @@ variety of interatomic potentials (force fields) and boundary
conditions. It can model 2d or 3d systems with only a few particles
up to millions or billions.
LAMMPS can be built and run on a laptop or destop machine, but is
LAMMPS can be built and run on a laptop or desktop machine, but is
designed for parallel computers. It will run on any parallel machine
that supports the "MPI"_mpi message-passing library. This includes
shared-memory boxes and distributed-memory clusters and
@ -45,7 +45,7 @@ nature; some long-range models are included as well.
LAMMPS uses neighbor lists to keep track of nearby particles. The
lists are optimized for systems with particles that are repulsive at
short distances, so that the local density of particles never becomes
too large. This is in contrast to methods used for modeling plasmas
too large. This is in contrast to methods used for modeling plasma
or gravitational bodies (e.g. galaxy formation).
On parallel machines, LAMMPS uses spatial-decomposition techniques to

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View File

@ -1,7 +1,7 @@
<!-- HTML_ONLY -->
<HEAD>
<TITLE>LAMMPS Users Manual</TITLE>
<META NAME="docnumber" CONTENT="22 Aug 2018 version">
<META NAME="docnumber" CONTENT="31 Aug 2018 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 @@
:line
LAMMPS Documentation :c,h1
22 Aug 2018 version :c,h2
31 Aug 2018 version :c,h2
"What is a LAMMPS version?"_Manual_version.html

View File

@ -10,15 +10,16 @@ Section"_Manual.html :c
Building the LAMMPS manual :h2
Depending on how you obtained LAMMPS, the doc directory has
2 or 3 sub-directories and optionally 2 PDF files and an ePUB file:
Depending on how you obtained LAMMPS, the doc directory has 2 or 3
sub-directories and optionally 2 PDF files and 2 e-book format files:
src # content files for LAMMPS documentation
html # HTML version of the LAMMPS manual (see html/Manual.html)
tools # tools and settings for building the documentation
Manual.pdf # large PDF version of entire manual
Developer.pdf # small PDF with info about how LAMMPS is structured
LAMMPS.epub # Manual in ePUB format :pre
LAMMPS.epub # Manual in ePUB e-book format
LAMMPS.mobi # Manual in MOBI e-book format :pre
If you downloaded LAMMPS as a tarball from the web site, all these
directories and files should be included.
@ -40,7 +41,7 @@ HTML files already exist. This requires various tools including
Sphinx, which the build process will attempt to download and install
on your system, if not already available. See more details below.
(c) You can genererate an older, simpler, less-fancy style of HTML
(c) You can generate an older, simpler, less-fancy style of HTML
documentation by typing "make old". This will create an "old"
directory. This can be useful if (b) does not work on your box for
some reason, or you want to quickly view the HTML version of a doc
@ -61,6 +62,7 @@ make old # generate old-style HTML pages in old dir via txt2html
make fetch # fetch HTML doc pages and 2 PDF files from web site
# as a tarball and unpack into html dir and 2 PDFs
make epub # generate LAMMPS.epub in ePUB format using Sphinx
make mobi # generate LAMMPS.mobi in MOBI format using ebook-convert
make clean # remove intermediate RST files created by HTML build
make clean-all # remove entire build folder and any cached data :pre
@ -68,7 +70,7 @@ make clean-all # remove entire build folder and any cached data :pre
Installing prerequisites for HTML build :h3
To run the HTML documention build toolchain, Python 3 and virtualenv
To run the HTML documentation build toolchain, Python 3 and virtualenv
have to be installed. Here are instructions for common setups:
Ubuntu :h4
@ -115,10 +117,8 @@ ePUB :h4
Same as for HTML. This uses the same tools and configuration
files as the HTML tree.
For converting the generated ePUB file to a mobi format file
For converting the generated ePUB file to a MOBI format file
(for e-book readers like Kindle, that cannot read ePUB), you
also need to have the 'ebook-convert' tool from the "calibre"
software installed. "http://calibre-ebook.com/"_http://calibre-ebook.com/
You first create the ePUB file with 'make epub' and then do:
ebook-convert LAMMPS.epub LAMMPS.mobi :pre
You first create the ePUB file and then convert it with 'make mobi'

View File

@ -10,7 +10,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
Overview :h3
The best way to add a new feature to LAMMPS is to find a similar
featureand look at the corresponding source and header files to figure
feature and look at the corresponding source and header files to figure
out what it does. You will need some knowledge of C++ to be able to
understand the hi-level structure of LAMMPS and its class
organization, but functions (class methods) that do actual

View File

@ -298,7 +298,7 @@ lib/gpu/README
"Section 2.6 -sf gpu"_Run_options.html
"Section 2.6 -pk gpu"_Run_options.html
"package gpu"_package.html
"Commands all"_Commands_all.html pages (pair,kspace) for styles followed by (g)
"Commands all"_lc pages (pair,kspace) for styles followed by (g)
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
:line
@ -413,7 +413,7 @@ lib/kokkos/README
"Section 2.6 -sf kk"_Run_options.html
"Section 2.6 -pk kokkos"_Run_options.html
"package kokkos"_package.html
"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (k)
"Commands all"_lc pages (fix,compute,pair,etc) for styles followed by (k)
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
:line
@ -550,10 +550,6 @@ This package has "specific installation
instructions"_Build_extras.html#gpu on the "Build
extras"_Build_extras.html doc page.
NOTE: You should test building the MEAM library with both the Intel
and GNU compilers to see if a simulation runs faster with one versus
the other on your system.
[Supporting info:]
src/MEAM: filenames -> commands
@ -564,6 +560,31 @@ examples/meam :ul
:line
MESSAGE package :link(PKG-MESSAGE),h4
[Contents:]
Commands to use LAMMPS as either a client or server and couple it to
another application.
[Install:]
This package has "specific installation
instructions"_Build_extras.html#message on the "Build
extras"_Build_extras.html doc page.
[Supporting info:]
src/MESSAGE: filenames -> commands
lib/message/README
"message"_message.html
"fix client/md"_fix_client_md.html
"server md"_server_md.html
"server mc"_server_mc.html
examples/message :ul
:line
MISC package :link(PKG-MISC),h4
[Contents:]
@ -852,7 +873,7 @@ multi-replica simulations in LAMMPS. Methods in the package include
nudged elastic band (NEB), parallel replica dynamics (PRD),
temperature accelerated dynamics (TAD), parallel tempering, and a
verlet/split algorithm for performing long-range Coulombics on one set
of processors, and the remainder of the force field calcalation on
of processors, and the remainder of the force field calculation on
another set.
[Supporting info:]
@ -875,7 +896,7 @@ RIGID package :link(PKG-RIGID),h4
[Contents:]
Fixes which enforce rigid constraints on collections of atoms or
particles. This includes SHAKE and RATTLE, as well as varous
particles. This includes SHAKE and RATTLE, as well as various
rigid-body integrators for a few large bodies or many small bodies.
Also several computes which calculate properties of rigid bodies.
@ -1371,7 +1392,7 @@ which have styles optimized for CPUs and KNLs.
You need to have an Intel compiler, version 14 or higher to take full
advantage of this package. While compilation with GNU compilers is
supported, performance will be suboptimal.
supported, performance will be sub-optimal.
NOTE: the USER-INTEL package contains styles that require using the
-restrict flag, when compiling with Intel compilers.
@ -1393,7 +1414,7 @@ src/USER-INTEL/README
"Section 2.6 -sf intel"_Run_options.html
"Section 2.6 -pk intel"_Run_options.html
"package intel"_package.html
"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (i)
"Commands all"_lc pages (fix,compute,pair,etc) for styles followed by (i)
src/USER-INTEL/TEST
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
@ -1583,8 +1604,6 @@ molecular visualization and analysis program, to enable LAMMPS to dump
snapshots in formats compatible with various molecular simulation
tools.
:link(vmd_home,http://www.ks.uiuc.edu/Research/vmd)
To use this package you must have the desired VMD plugins available on
your system.
@ -1594,7 +1613,7 @@ plugin via the "dump molfile"_dump_molfile.html command. Plugins can
be obtained from a VMD installation which has to match the platform
that you are using to compile LAMMPS for. By adding plugins to VMD,
support for new file formats can be added to LAMMPS (or VMD or other
programs that use them) without having to recompile the application
programs that use them) without having to re-compile the application
itself. More information about the VMD molfile plugins can be found
at
"http://www.ks.uiuc.edu/Research/vmd/plugins/molfile"_http://www.ks.uiuc.edu/Research/vmd/plugins/molfile.
@ -1636,6 +1655,7 @@ tools:
"AtomEye"_atomeye (the libAtoms version of AtomEye contains a NetCDF reader not present in the standard distribution) :ul
:link(ovito,http://www.ovito.org)
:link(vmd_home,https://www.ks.uiuc.edu/Research/vmd/)
:link(atomeye,http://www.libatoms.org)
[Author:] Lars Pastewka (Karlsruhe Institute of Technology).
@ -1699,7 +1719,7 @@ src/USER-OMP/README
"Section 2.6 -sf omp"_Run_options.html
"Section 2.6 -pk omp"_Run_options.html
"package omp"_package.html
"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (o)
"Commands all"_lc pages (fix,compute,pair,etc) for styles followed by (o)
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
:line
@ -2034,3 +2054,5 @@ src/USER-VTK: filenames -> commands
src/USER-VTK/README
lib/vtk/README
"dump vtk"_dump_vtk.html :ul

View File

@ -47,7 +47,8 @@ Package, Description, Doc page, Example, Library
"MANYBODY"_Packages_details.html#PKG-MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, no
"MC"_Packages_details.html#PKG-MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, n/a, no
"MEAM"_Packages_details.html#PKG-MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int
"MISC"_Packages_details.html#PKG-MISC, miscellanous single-file commands, n/a, no, no
"MESSAGE"_Packages_details.html#PKG-MESSAGE, client/server messaging, "message"_message.html, message, int
"MISC"_Packages_details.html#PKG-MISC, miscellaneous single-file commands, n/a, no, no
"MOLECULE"_Packages_details.html#PKG-MOLECULE, molecular system force fields, "Howto bioFF"_Howto_bioFF.html, peptide, no
"MPIIO"_Packages_details.html#PKG-MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, n/a, no
"MSCG"_Packages_details.html#PKG-MSCG, multi-scale coarse-graining wrapper, "fix mscg"_fix_mscg.html, mscg, ext

View File

@ -58,7 +58,7 @@ Package, Description, Doc page, Example, Library
"USER-MGPT"_Packages_details.html#PKG-USER-MGPT, fast MGPT multi-ion potentials, "pair_style mgpt"_pair_mgpt.html, USER/mgpt, no
"USER-MISC"_Packages_details.html#PKG-USER-MISC, single-file contributions, USER-MISC/README, USER/misc, no
"USER-MOFFF"_Packages_details.html#PKG-USER-MOFFF, styles for "MOF-FF"_MOFplus force field, "pair_style buck6d/coul/gauss"_pair_buck6d_coul_gauss.html, USER/mofff, no
"USER-MOLFILE"_Packages_details.html#PKG-USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, n/a, ext
"USER-MOLFILE"_Packages_details.html#PKG-USER-MOLFILE, "VMD"_https://www.ks.uiuc.edu/Research/vmd/ molfile plug-ins,"dump molfile"_dump_molfile.html, n/a, ext
"USER-NETCDF"_Packages_details.html#PKG-USER-NETCDF, dump output via NetCDF,"dump netcdf"_dump_netcdf.html, n/a, ext
"USER-OMP"_Packages_details.html#PKG-USER-OMP, OpenMP-enabled styles,"Speed omp"_Speed_omp.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, no
"USER-PHONON"_Packages_details.html#PKG-USER-PHONON, phonon dynamical matrix,"fix phonon"_fix_phonon.html, USER/phonon, no

View File

@ -59,9 +59,9 @@ and callbacks to LAMMPS.
The "fix python/invoke"_fix_python_invoke.html command can execute
Python code at selected timesteps during a simulation run.
The "pair_style python"_pair_python command allows you to define
The "pair_style python"_pair_python.html 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
interaction. This is useful for rapid development and debugging of a
new potential.
To use any of these commands, you only need to build LAMMPS with the

View File

@ -62,11 +62,11 @@ library interface provided in src/library.h and src/library.h. That
interface is exposed to Python either when calling LAMMPS from Python
or when calling Python from a LAMMPS input script and then calling
back to LAMMPS from Python code. The library interface is designed to
be easy to add funcionality to. Thus the Python interface to LAMMPS
be easy to add functionality to. Thus the Python interface to LAMMPS
is also easy to extend as well.
If you create interesting Python scripts that run LAMMPS or
interesting Python functions that can be called from a LAMMPS input
script, that you think would be genearlly useful, please post them as
script, that you think would be generally useful, please post them as
a pull request to our "GitHub site"_https://github.com/lammps/lammps,
and they can be added to the LAMMPS distribution or webpage.

View File

@ -186,20 +186,20 @@ keyword as a float.
The get_natoms() method returns the total number of atoms in the
simulation, as an int.
The set_variable() methosd sets an existing string-style variable to a
The set_variable() method sets an existing string-style variable to a
new string value, so that subsequent LAMMPS commands can access the
variable.
The reset_box() emthods resets the size and shape of the simulation
The reset_box() method resets the size and shape of the simulation
box, e.g. as part of restoring a previously extracted and saved state
of a simulation.
The gather methods collect peratom info of the requested type (atom
coords, atom types, forces, etc) from all processors, and returns the
same vector of values to each callling processor. The scatter
same vector of values to each calling processor. The scatter
functions do the inverse. They distribute a vector of peratom values,
passed by all calling processors, to invididual atoms, which may be
owned by different processos.
passed by all calling processors, to individual atoms, which may be
owned by different processors.
Note that the data returned by the gather methods,
e.g. gather_atoms("x"), is different from the data structure returned

View File

@ -75,7 +75,7 @@ setenv OMP_NUM_THREADS 2 # csh or tcsh :pre
This can also be done via the "package"_package.html command or via
the "-pk command-line switch"_Run_options.html which invokes the
package command. See the "package"_package.html command or
"Speed"_Speed.html doc pages for more details about which accerlarator
"Speed"_Speed.html doc pages for more details about which accelerator
packages and which commands support multi-threading.
:line

View File

@ -18,6 +18,7 @@ letter abbreviation can be used:
"-i or -in"_#file
"-k or -kokkos"_#run-kokkos
"-l or -log"_#log
"-m or -mpicolor"_#mpicolor
"-nc or -nocite"_#nocite
"-pk or -package"_#package
"-p or -partition"_#partition
@ -175,6 +176,30 @@ Option -plog will override the name of the partition log files file.N.
:line
[-mpicolor] color :link(mpi)
If used, this must be the first command-line argument after the LAMMPS
executable name. It is only used when LAMMPS is launched by an mpirun
command which also launches another executable(s) at the same time.
(The other executable could be LAMMPS as well.) The color is an
integer value which should be different for each executable (another
application may set this value in a different way). LAMMPS and the
other executable(s) perform an MPI_Comm_split() with their own colors
to shrink the MPI_COMM_WORLD communication to be the subset of
processors they are actually running on.
Currently, this is only used in LAMMPS to perform client/server
messaging with another application. LAMMPS can act as either a client
or server (or both). More details are given on the "Howto
client/server"_Howto_client_server.html doc page.
Specifically, this refers to the "mpi/one" mode of messaging provided
by the "message"_message.html command and the CSlib library LAMMPS
links with from the lib/message directory. See the
"message"_message.html command for more details.
:line
[-nocite] :link(nocite)
Disable writing the log.cite file which is normally written to list

View File

@ -33,8 +33,8 @@ in parallel, follow these steps.
Download and install a compatible MPI library binary package:
for 32-bit Windows: "mpich2-1.4.1p1-win-ia32.msi"_download.lammps.org/thirdparty/mpich2-1.4.1p1-win-ia32.msi
for 64-bit Windows: "mpich2-1.4.1p1-win-x86-64.msi"_download.lammps.org/thirdparty/mpich2-1.4.1p1-win-x86-64.msi :ul
for 32-bit Windows: "mpich2-1.4.1p1-win-ia32.msi"_http://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-ia32.msi
for 64-bit Windows: "mpich2-1.4.1p1-win-x86-64.msi"_http://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-x86-64.msi :ul
The LAMMPS Windows installer packages will automatically adjust your
path for the default location of this MPI package. After the

View File

@ -11,7 +11,7 @@ Benchmarks :h3
Current LAMMPS performance is discussed on the "Benchmarks
page"_http://lammps.sandia.gov/bench.html of the "LAMMPS website"_lws
where timings and parallel efficiencies are listed. The page has
where timings and parallel efficiency are listed. The page has
several sections, which are briefly described below:
CPU performance on 5 standard problems, strong and weak scaling
@ -77,8 +77,8 @@ style, force field, cutoff, etc) can then be estimated.
Performance on a parallel machine can also be predicted from one-core
or one-node timings if the parallel efficiency can be estimated. The
communication bandwidth and latency of a particular parallel machine
affects the efficiency. On most machines LAMMPS will give parallel
efficiencies on these benchmarks above 50% so long as the number of
affects the efficiency. On most machines LAMMPS will give a parallel
efficiency on these benchmarks above 50% so long as the number of
atoms/core is a few 100 or greater, and closer to 100% for large
numbers of atoms/core. This is for all-MPI mode with one MPI task per
core. For nodes with accelerator options or hardware (OpenMP, GPU,

View File

@ -62,7 +62,7 @@ Driver (ICD)"_https://www.khronos.org/news/permalink/opencl-installable-client-d
installed. There can be multiple of them for the same or different hardware
(GPUs, CPUs, Accelerators) installed at the same time. OpenCL refers to those
as 'platforms'. The GPU library will select the [first] suitable platform,
but this can be overridded using the device option of the "package"_package.html
but this can be overridden using the device option of the "package"_package.html
command. run lammps/lib/gpu/ocl_get_devices to get a list of available
platforms and devices with a suitable ICD available.

View File

@ -68,7 +68,7 @@ In most molecular dynamics software, parallelization parameters
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
{same} parallel configurations and when using deterministic
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:
@ -400,7 +400,7 @@ 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
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

View File

@ -93,12 +93,12 @@ The "t Nt" option specifies how many OpenMP threads per MPI task to
use with a node. The default is Nt = 1, which is MPI-only mode. Note
that the product of MPI tasks * OpenMP threads/task should not exceed
the physical number of cores (on a node), otherwise performance will
suffer. If hyperthreading is enabled, then the product of MPI tasks *
OpenMP threads/task should not exceed the physical number of cores *
hardware threads. 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.
suffer. If Hyper-Threading (HT) is enabled, then the product of MPI
tasks * OpenMP threads/task should not exceed the physical number of
cores * hardware threads. 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.
The "-sf kk" "command-line switch"_Run_options.html will automatically
append the "/kk" suffix to styles that support it. In this manner no
@ -149,7 +149,7 @@ Intel Knight's Landing (KNL) Xeon Phi:
KNL Intel Phi chips have 68 physical cores. Typically 1 to 4 cores are
reserved for the OS, and only 64 or 66 cores are used. Each core has 4
hyperthreads,so there are effectively N = 256 (4*64) or N = 264 (4*66)
Hyper-Threads,so there are effectively N = 256 (4*64) or N = 264 (4*66)
cores to run on. The product of MPI tasks * OpenMP threads/task should
not exceed this limit, otherwise performance will suffer. Note that
with the KOKKOS package you do not need to specify how many KNLs there
@ -228,7 +228,7 @@ for details and default settings. Experimenting with its options can
provide a speed-up for specific calculations. For example:
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos binsize 2.8 -in in.lj # Set binsize = neighbor ghost cutoff
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighborlist, set binsize = neighbor ghost cutoff :pre
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighbor list, set binsize = neighbor ghost cutoff :pre
NOTE: For good performance of the KOKKOS package on GPUs, you must
have Kepler generation GPUs (or later). The Kokkos library exploits

View File

@ -50,6 +50,6 @@ inaccurate relative timing data, because processors have to wait when
communication occurs for other processors to catch up. Thus the
reported times for "Communication" or "Other" may be higher than they
really are, due to load-imbalance. If this is an issue, you can
uncomment the MPI_Barrier() lines in src/timer.cpp, and recompile
uncomment the MPI_Barrier() lines in src/timer.cpp, and re-compile
LAMMPS, to obtain synchronized timings.

View File

@ -29,7 +29,7 @@ instructions.
[Run with the USER-OMP package from the command line:]
These example asume one or more 16-core nodes.
These examples assume one or more 16-core nodes.
env OMP_NUM_THREADS=16 lmp_omp -sf omp -in in.script # 1 MPI task, 16 threads according to OMP_NUM_THREADS
lmp_mpi -sf omp -in in.script # 1 MPI task, no threads, optimized kernels

View File

@ -72,7 +72,7 @@ Lennard-Jones "pair_style lj/cut"_pair_lj.html:
"pair_style lj/cut/opt"_pair_lj.html :ul
To see what accelerate styles are currently available for a particular
style, find the style name in the "Commands_all"_Commands_all.html
style, find the style name in the "Commands_all"_lc
style pages (fix,compute,pair,etc) and see what suffixes are listed
(g,i,k,o,t) with it. The doc pages for individual commands
(e.g. "pair lj/cut"_pair_lj.html or "fix nve"_fix_nve.html) also list

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

View File

@ -11,7 +11,7 @@
<a href="http://lammps.sandia.gov">LAMMPS Website</a> &nbsp; &nbsp;
<a href="../../Manual.html">LAMMPS Manual</a> &nbsp; &nbsp;
<a href="../../fix_atc.html">USER-AtC Manual</a> &nbsp; &nbsp;
<a href="../../Section_commands.html#comm">Commands</a>
<a href="../../Commands_all.html">Commands</a>
</center>
<hr>

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