marged with last stable

This commit is contained in:
Julien Guénolé
2017-08-18 19:34:19 +02:00
798 changed files with 41978 additions and 14269 deletions

21
.github/CODEOWNERS vendored Normal file
View File

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

13
.gitignore vendored
View File

@ -33,10 +33,11 @@ log.cite
.Trashes .Trashes
ehthumbs.db ehthumbs.db
Thumbs.db Thumbs.db
test
test_meam
srcBACKUP
model
doc/old
doc/html
#cmake
/build*
/CMakeCache.txt
/CMakeFiles/
/Makefile
/cmake_install.cmake
/lmp

View File

@ -3,7 +3,7 @@ GNU GENERAL PUBLIC LICENSE
Version 2, June 1991 Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc. 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 Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed. 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 These are input scripts used to run versions of several of the
benchmarks in the top-level bench directory using the GPU and benchmarks in the top-level bench directory using the GPU accelerator
USER-CUDA accelerator packages. The results of running these scripts package. The results of running these scripts on two different machines
on two different machines (a desktop with 2 Tesla GPUs and the ORNL (a desktop with 2 Tesla GPUs and the ORNL Titan supercomputer) are shown
Titan supercomputer) are shown on the "GPU (Fermi)" section of the on the "GPU (Fermi)" section of the Benchmark page of the LAMMPS WWW
Benchmark page of the LAMMPS WWW site: lammps.sandia.gov/bench. site: lammps.sandia.gov/bench.
Examples are shown below of how to run these scripts. This assumes 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. installed, e.g.
lmp_linux_single lmp_linux_single
lmp_linux_mixed lmp_linux_mixed
lmp_linux_double lmp_linux_double
The precision (single, mixed, double) refers to the GPU and USER-CUDA
package precision. See the README files in the lib/gpu and lib/cuda
directories for instructions on how to build the packages with
different precisions. The GPU and USER-CUDA sub-sections of the
doc/Section_accelerate.html file also describes this process.
Make.py -d ~/lammps -j 16 -p #all orig -m linux -o cpu -a exe
Make.py -d ~/lammps -j 16 -p #all opt orig -m linux -o opt -a exe
Make.py -d ~/lammps -j 16 -p #all omp orig -m linux -o omp -a exe
Make.py -d ~/lammps -j 16 -p #all gpu orig -m linux \
-gpu mode=double arch=20 -o gpu_double -a libs exe
Make.py -d ~/lammps -j 16 -p #all gpu orig -m linux \
-gpu mode=mixed arch=20 -o gpu_mixed -a libs exe
Make.py -d ~/lammps -j 16 -p #all gpu orig -m linux \
-gpu mode=single arch=20 -o gpu_single -a libs exe
Make.py -d ~/lammps -j 16 -p #all cuda orig -m linux \
-cuda mode=double arch=20 -o cuda_double -a libs exe
Make.py -d ~/lammps -j 16 -p #all cuda orig -m linux \
-cuda mode=mixed arch=20 -o cuda_mixed -a libs exe
Make.py -d ~/lammps -j 16 -p #all cuda orig -m linux \
-cuda mode=single arch=20 -o cuda_single -a libs exe
Make.py -d ~/lammps -j 16 -p #all intel orig -m linux -o intel_cpu -a exe
Make.py -d ~/lammps -j 16 -p #all kokkos orig -m linux -o kokkos_omp -a exe
Make.py -d ~/lammps -j 16 -p #all kokkos orig -kokkos cuda arch=20 \
-m cuda -o kokkos_cuda -a exe
Make.py -d ~/lammps -j 16 -p #all opt omp gpu cuda intel kokkos orig \
-gpu mode=double arch=20 -cuda mode=double arch=20 -m linux \
-o all -a libs exe
Make.py -d ~/lammps -j 16 -p #all opt omp gpu cuda intel kokkos orig \
-kokkos cuda arch=20 -gpu mode=double arch=20 \
-cuda mode=double arch=20 -m cuda -o all_cuda -a libs exe
------------------------------------------------------------------------ ------------------------------------------------------------------------
To run on just CPUs (without using the GPU or USER-CUDA styles), To run on just CPUs (without using the GPU styles),
do something like the following: 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 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 If the script has "titan" in its name, it was run on the Titan
supercomputer at ORNL. 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 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 named lmp_mpi, and you are using the mpirun command to launch parallel
runs: runs:
Serial (one processor runs): Serial (one processor runs):
lmp_mpi < in.lj lmp_mpi -in in.lj
lmp_mpi < in.chain lmp_mpi -in in.chain
lmp_mpi < in.eam lmp_mpi -in in.eam
lmp_mpi < in.chute lmp_mpi -in in.chute
lmp_mpi < in.rhodo lmp_mpi -in in.rhodo
Parallel fixed-size runs (on 8 procs in this case): Parallel fixed-size runs (on 8 procs in this case):
mpirun -np 8 lmp_mpi < in.lj mpirun -np 8 lmp_mpi -in in.lj
mpirun -np 8 lmp_mpi < in.chain mpirun -np 8 lmp_mpi -in in.chain
mpirun -np 8 lmp_mpi < in.eam mpirun -np 8 lmp_mpi -in in.eam
mpirun -np 8 lmp_mpi < in.chute mpirun -np 8 lmp_mpi -in in.chute
mpirun -np 8 lmp_mpi < in.rhodo mpirun -np 8 lmp_mpi -in in.rhodo
Parallel scaled-size runs (on 16 procs in this case): 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 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 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 2 -var y 2 -var z 4 -in in.eam
mpirun -np 16 lmp_mpi -var x 4 -var y 4 < in.chute.scaled 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.rhodo.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 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 command line switches. The variables x,y,z are used in the input

547
cmake/CMakeLists.txt Normal file
View File

@ -0,0 +1,547 @@
########################################
# CMake build system
# This file is part of LAMMPS
# Created by Christoph Junghans and Richard Berger
cmake_minimum_required(VERSION 3.1)
project(lammps)
set(SOVERSION 0)
set(LAMMPS_SOURCE_DIR ${CMAKE_SOURCE_DIR}/../src)
set(LAMMPS_LIB_SOURCE_DIR ${CMAKE_SOURCE_DIR}/../lib)
set(LAMMPS_LIB_BINARY_DIR ${CMAKE_BINARY_DIR}/lib)
#To not conflict with old Makefile build system, we build everything here
file(GLOB LIB_SOURCES ${LAMMPS_SOURCE_DIR}/*.cpp)
file(GLOB LMP_SOURCES ${LAMMPS_SOURCE_DIR}/main.cpp)
list(REMOVE_ITEM LIB_SOURCES ${LMP_SOURCES})
# Cmake modules/macros are in a subdirectory to keep this file cleaner
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/Modules)
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CXX_FLAGS)
#release comes with -O3 by default
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
endif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CXX_FLAGS)
foreach(STYLE_FILE style_angle.h style_atom.h style_body.h style_bond.h style_command.h style_compute.h style_dihedral.h style_dump.h
style_fix.h style_improper.h style_integrate.h style_kspace.h style_minimize.h style_nbin.h style_npair.h style_nstencil.h
style_ntopo.h style_pair.h style_reader.h style_region.h)
if(EXISTS ${LAMMPS_SOURCE_DIR}/${STYLE_FILE})
message(FATAL_ERROR "There is a ${STYLE_FILE} in ${LAMMPS_SOURCE_DIR}, please clean up the source directory first")
endif()
endforeach()
enable_language(CXX)
######################################################################
# compiler tests
# these need ot be done early (before further tests).
#####################################################################
include(CheckCCompilerFlag)
########################################################################
# User input options #
########################################################################
option(BUILD_SHARED_LIBS "Build shared libs" OFF)
option(INSTALL_LIB "Install lammps library and header" ON)
include(GNUInstallDirs)
set(LAMMPS_LINK_LIBS)
option(ENABLE_MPI "Build MPI version" OFF)
if(ENABLE_MPI)
find_package(MPI REQUIRED)
include_directories(${MPI_C_INCLUDE_PATH})
list(APPEND LAMMPS_LINK_LIBS ${MPI_CXX_LIBRARIES})
option(LAMMPS_LONGLONG_TO_LONG "Workaround if your system or MPI version does not recognize 'long long' data types" OFF)
if(LAMMPS_LONGLONG_TO_LONG)
add_definitions(-DLAMMPS_LONGLONG_TO_LONG)
endif()
else()
file(GLOB MPI_SOURCES ${LAMMPS_SOURCE_DIR}/STUBS/mpi.c)
list(APPEND LIB_SOURCES ${MPI_SOURCES})
include_directories(${LAMMPS_SOURCE_DIR}/STUBS)
endif()
set(LAMMPS_SIZE_LIMIT "LAMMPS_SMALLBIG" CACHE STRING "Lammps size limit")
set_property(CACHE LAMMPS_SIZE_LIMIT PROPERTY STRINGS LAMMPS_SMALLBIG LAMMPS_BIGBIG LAMMPS_SMALLSMALL)
add_definitions(-D${LAMMPS_SIZE_LIMIT})
set(LAMMPS_MEMALIGN "64" CACHE STRING "enables the use of the posix_memalign() call instead of malloc() when large chunks or memory are allocated by LAMMPS")
add_definitions(-DLAMMPS_MEMALIGN=${LAMMPS_MEMALIGN})
option(LAMMPS_EXCEPTIONS "enable the use of C++ exceptions for error messages (useful for library interface)" OFF)
if(LAMMPS_EXCEPTIONS)
add_definitions(-DLAMMPS_EXCEPTIONS)
endif()
option(CMAKE_VERBOSE_MAKEFILE "Verbose makefile" OFF)
option(ENABLE_TESTING "Enable testing" OFF)
if(ENABLE_TESTING)
enable_testing()
endif(ENABLE_TESTING)
option(ENABLE_ALL "Build all default packages" OFF)
set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GRANULAR
KSPACE MANYBODY MC MEAM MISC MOLECULE PERI QEQ
REAX REPLICA RIGID SHOCK SNAP SRD)
set(OTHER_PACKAGES KIM PYTHON MSCG MPIIO VORONOI POEMS
USER-ATC USER-AWPMD USER-CGDNA
USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF
USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC
USER-MOLFILE USER-NETCDF USER-PHONON USER-QTB USER-REAXC USER-SMD
USER-SMTBQ USER-SPH USER-TALLY USER-VTK USER-QUIP USER-QMMM)
set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU)
foreach(PKG ${DEFAULT_PACKAGES})
option(ENABLE_${PKG} "Build ${PKG} Package" ${ENABLE_ALL})
endforeach()
foreach(PKG ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
option(ENABLE_${PKG} "Build ${PKG} Package" OFF)
endforeach()
macro(pkg_depends PKG1 PKG2)
if(ENABLE_${PKG1} AND NOT ENABLE_${PKG2})
message(FATAL_ERROR "${PKG1} package needs LAMMPS to be build with ${PKG2}")
endif()
endmacro()
pkg_depends(MPIIO MPI)
pkg_depends(QEQ MANYBODY)
pkg_depends(USER-ATC MANYBODY)
pkg_depends(USER-H5MD MPI)
pkg_depends(USER-LB MPI)
pkg_depends(USER-MISC MANYBODY)
pkg_depends(USER-PHONON KSPACE)
if(ENABLE_BODY AND ENABLE_POEMS)
message(FATAL_ERROR "BODY and POEMS cannot be enabled at the same time")
endif()
######################################################
# packages with special compiler needs or external libs
######################################################
if(ENABLE_REAX OR ENABLE_MEAM OR ENABLE_USER-QUIP OR ENABLE_USER-QMMM)
enable_language(Fortran)
endif()
if(ENABLE_KOKKOS OR ENABLE_MSCG)
# starting with CMake 3.1 this is all you have to do to enforce C++11
set(CMAKE_CXX_STANDARD 11) # C++11...
set(CMAKE_CXX_STANDARD_REQUIRED ON) #...is required...
set(CMAKE_CXX_EXTENSIONS OFF) #...without compiler extensions like gnu++11
endif()
if(ENABLE_USER-OMP OR ENABLE_KOKKOS OR ENABLE_USER-INTEL)
find_package(OpenMP REQUIRED)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif()
if(ENABLE_KSPACE)
set(FFT "KISSFFT" CACHE STRING "FFT library for KSPACE package")
set_property(CACHE FFT PROPERTY STRINGS KISSFFT FFTW3 MKL FFTW2)
if(NOT FFT STREQUAL "KISSFFT")
find_package(${FFT} REQUIRED)
add_definitions(-DFFT_${FFT})
include_directories(${${FFT}_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${${FFT}_LIBRARIES})
endif()
set(PACK_OPTIMIZATION "PACK_ARRAY" CACHE STRING "Optimization for FFT")
set_property(CACHE PACK_OPTIMIZATION PROPERTY STRINGS PACK_ARRAY PACK_POINTER PACK_MEMCPY)
if(NOT PACK_OPTIMIZATION STREQUAL "PACK_ARRAY")
add_definitions(-D${PACK_OPTIMIZATION})
endif()
endif()
if(ENABLE_MISC)
option(LAMMPS_XDR "include XDR compatibility files for doing particle dumps in XTC format" OFF)
if(LAMMPS_XDR)
add_definitions(-DLAMMPS_XDR)
endif()
endif()
if(ENABLE_MSCG OR ENABLE_USER-ATC OR ENABLE_USER-AWPMD OR ENABLE_USER-QUIP)
find_package(LAPACK)
if(LAPACK_FOUND)
list(APPEND LAMMPS_LINK_LIBS ${LAPACK_LIBRARIES})
else()
enable_language(Fortran)
file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/*.f)
list(APPEND LIB_SOURCES ${LAPACK_SOURCES})
endif()
endif()
if(ENABLE_PYTHON)
find_package(PythonInterp REQUIRED)
find_package(PythonLibs REQUIRED)
add_definitions(-DLMP_PYTHON)
include_directories(${PYTHON_INCLUDE_DIR})
list(APPEND LAMMPS_LINK_LIBS ${PYTHON_LIBRARY})
if(NOT PYTHON_INSTDIR)
execute_process(COMMAND ${PYTHON_EXECUTABLE}
-c "import distutils.sysconfig as cg; print(cg.get_python_lib(1,0,prefix='${CMAKE_INSTALL_PREFIX}'))"
OUTPUT_VARIABLE PYTHON_INSTDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
install(FILES ${CMAKE_SOURCE_DIR}/../python/lammps.py DESTINATION ${PYTHON_INSTDIR})
if(NOT BUILD_SHARED_LIBS)
message(FATAL_ERROR "Python package need lammps to be build shared, use -DBUILD_SHARED_LIBS=ON")
endif()
endif()
find_package(JPEG)
if(JPEG_FOUND)
add_definitions(-DLAMMPS_JPEG)
include_directories(${JPEG_INCLUDE_DIR})
list(APPEND LAMMPS_LINK_LIBS ${JPEG_LIBRARIES})
endif()
find_package(PNG)
find_package(ZLIB)
if(PNG_FOUND AND ZLIB_FOUND)
include_directories(${PNG_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${PNG_LIBRARIES} ${ZLIB_LIBRARIES})
add_definitions(-DLAMMPS_PNG)
endif()
find_program(GZIP_EXECUTABLE gzip)
find_package_handle_standard_args(GZIP REQUIRED_VARS GZIP_EXECUTABLE)
if(GZIP_FOUND)
add_definitions(-DLAMMPS_GZIP)
endif()
find_program(FFMPEG_EXECUTABLE ffmpeg)
find_package_handle_standard_args(FFMPEG REQUIRED_VARS FFMPEG_EXECUTABLE)
if(FFMPEG_FOUND)
add_definitions(-DLAMMPS_FFMPEG)
endif()
if(ENABLE_VORONOI)
find_package(VORO REQUIRED) #some distros
include_directories(${VORO_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${VORO_LIBRARIES})
endif()
if(ENABLE_USER-MOLFILE)
list(APPEND LAMMPS_LINK_LIBS ${CMAKE_DL_LIBS})
endif()
if(ENABLE_USER-NETCDF)
find_package(NetCDF REQUIRED)
include_directories(NETCDF_INCLUDE_DIR)
list(APPEND LAMMPS_LINK_LIBS ${NETCDF_LIBRARY})
add_definitions(-DLMP_HAS_NETCDF -DNC_64BIT_DATA=0x0020)
endif()
if(ENABLE_USER-SMD)
find_package(Eigen3 REQUIRED)
include_directories(${EIGEN3_INCLUDE_DIR})
endif()
if(ENABLE_USER-QUIP)
find_package(QUIP REQUIRED)
list(APPEND LAMMPS_LINK_LIBS ${QUIP_LIBRARIES} ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
endif()
if(ENABLE_USER-QMMM)
find_package(QE REQUIRED)
include_directories(${QE_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${QE_LIBRARIES} ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES})
endif()
if(ENABLE_USER-AWPMD)
include_directories(${LAMMPS_LIB_SOURCE_DIR}/awpmd/systems/interact
${LAMMPS_LIB_SOURCE_DIR}/awpmd/ivutils/include)
endif()
if(ENABLE_USER-H5MD)
find_package(HDF5 REQUIRED)
list(APPEND LAMMPS_LINK_LIBS ${HDF5_LIBRARIES})
include_directories(${HDF5_INCLUDE_DIRS} ${LAMMPS_LIB_SOURCE_DIR}/h5md/include)
endif()
if(ENABLE_USER-VTK)
find_package(VTK REQUIRED NO_MODULE)
include(${VTK_USE_FILE})
add_definitions(-DLAMMPS_VTK)
list(APPEND LAMMPS_LINK_LIBS ${VTK_LIBRARIES})
endif()
if(ENABLE_KIM)
find_package(KIM REQUIRED)
list(APPEND LAMMPS_LINK_LIBS ${KIM_LIBRARIES})
include_directories(${KIM_INCLUDE_DIRS})
endif()
if(ENABLE_MSCG)
find_package(GSL REQUIRED)
set(LAMMPS_LIB_MSCG_BIN_DIR ${LAMMPS_LIB_BINARY_DIR}/mscg)
set(MSCG_TARBALL ${LAMMPS_LIB_MSCG_BIN_DIR}/MS-CG-master.zip)
set(LAMMPS_LIB_MSCG_BIN_DIR ${LAMMPS_LIB_MSCG_BIN_DIR}/MSCG-release-master/src)
if(NOT EXISTS ${LAMMPS_LIB_MSCG_BIN_DIR})
if(NOT EXISTS ${MSCG_TARBALL})
message(STATUS "Downloading ${MSCG_TARBALL}")
file(DOWNLOAD
https://github.com/uchicago-voth/MSCG-release/archive/master.zip
${MSCG_TARBALL} SHOW_PROGRESS) #EXPECTED_MD5 cannot be due due to master
endif()
message(STATUS "Unpacking ${MSCG_TARBALL}")
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ${MSCG_TARBALL}
WORKING_DIRECTORY ${LAMMPS_LIB_BINARY_DIR}/mscg)
endif()
file(GLOB MSCG_SOURCES ${LAMMPS_LIB_MSCG_BIN_DIR}/*.cpp)
list(APPEND LIB_SOURCES ${MSCG_SOURCES})
foreach(MSCG_SOURCE ${MSCG_SOURCES})
set_property(SOURCE ${MSCG_SOURCE} APPEND PROPERTY COMPILE_DEFINITIONS
DIMENSION=3 _exclude_gromacs=1)
endforeach()
include_directories(${LAMMPS_LIB_MSCG_BIN_DIR} ${GSL_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${GSL_LIBRARIES})
endif()
########################################################################
# Basic system tests (standard libraries, headers, functions, types) #
########################################################################
include(CheckIncludeFile)
foreach(HEADER math.h)
check_include_file(${HEADER} FOUND_${HEADER})
if(NOT FOUND_${HEADER})
message(FATAL_ERROR "Could not find needed header - ${HEADER}")
endif(NOT FOUND_${HEADER})
endforeach(HEADER)
set(MATH_LIBRARIES "m" CACHE STRING "math library")
mark_as_advanced( MATH_LIBRARIES )
include(CheckLibraryExists)
foreach(FUNC sin cos)
check_library_exists(${MATH_LIBRARIES} ${FUNC} "" FOUND_${FUNC}_${MATH_LIBRARIES})
if(NOT FOUND_${FUNC}_${MATH_LIBRARIES})
message(FATAL_ERROR "Could not find needed math function - ${FUNC}")
endif(NOT FOUND_${FUNC}_${MATH_LIBRARIES})
endforeach(FUNC)
list(APPEND LAMMPS_LINK_LIBS ${MATH_LIBRARIES})
######################################
# Generate Basic Style files
######################################
include(StyleHeaderUtils)
RegisterStyles(${LAMMPS_SOURCE_DIR})
##############################################
# add sources of enabled packages
############################################
foreach(PKG ${DEFAULT_PACKAGES} ${OTHER_PACKAGES})
if(ENABLE_${PKG})
set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG})
# detects styles in package and adds them to global list
RegisterStyles(${${PKG}_SOURCES_DIR})
file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/*.cpp)
list(APPEND LIB_SOURCES ${${PKG}_SOURCES})
include_directories(${${PKG}_SOURCES_DIR})
endif()
endforeach()
##############################################
# add lib sources of (simple) enabled packages
############################################
foreach(SIMPLE_LIB REAX MEAM POEMS USER-ATC USER-AWPMD USER-COLVARS USER-H5MD
USER-MOLFILE USER-QMMM)
if(ENABLE_${SIMPLE_LIB})
string(REGEX REPLACE "^USER-" "" SIMPLE_LIB "${SIMPLE_LIB}")
string(TOLOWER "${SIMPLE_LIB}" INC_DIR)
file(GLOB_RECURSE ${SIMPLE_LIB}_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/${INC_DIR}/*.F
${LAMMPS_LIB_SOURCE_DIR}/${INC_DIR}/*.c ${LAMMPS_LIB_SOURCE_DIR}/${INC_DIR}/*.cpp)
list(APPEND LIB_SOURCES ${${SIMPLE_LIB}_SOURCES})
include_directories(${LAMMPS_LIB_SOURCE_DIR}/${INC_DIR})
endif()
endforeach()
######################################################################
# packages which selectively include variants based on enabled styles
# e.g. accelerator packages
######################################################################
if(ENABLE_USER-OMP)
set(USER-OMP_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-OMP)
set(USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/thr_data.cpp
${USER-OMP_SOURCES_DIR}/thr_omp.cpp
${USER-OMP_SOURCES_DIR}/fix_nh_omp.cpp
${USER-OMP_SOURCES_DIR}/fix_nh_sphere_omp.cpp)
set_property(GLOBAL PROPERTY "OMP_SOURCES" "${USER-OMP_SOURCES}")
# detects styles which have USER-OMP version
RegisterStylesExt(${USER-OMP_SOURCES_DIR} omp OMP_SOURCES)
get_property(USER-OMP_SOURCES GLOBAL PROPERTY OMP_SOURCES)
list(APPEND LIB_SOURCES ${USER-OMP_SOURCES})
include_directories(${USER-OMP_SOURCES_DIR})
endif()
if(ENABLE_KOKKOS)
set(LAMMPS_LIB_KOKKOS_SRC_DIR ${LAMMPS_LIB_SOURCE_DIR}/kokkos)
set(LAMMPS_LIB_KOKKOS_BIN_DIR ${LAMMPS_LIB_BINARY_DIR}/kokkos)
add_definitions(-DLMP_KOKKOS)
add_subdirectory(${LAMMPS_LIB_KOKKOS_SRC_DIR} ${LAMMPS_LIB_KOKKOS_BIN_DIR})
set(Kokkos_INCLUDE_DIRS ${LAMMPS_LIB_KOKKOS_SRC_DIR}/core/src
${LAMMPS_LIB_KOKKOS_SRC_DIR}/containers/src
${LAMMPS_LIB_KOKKOS_SRC_DIR}/algorithms/src
${LAMMPS_LIB_KOKKOS_BIN_DIR})
include_directories(${Kokkos_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS kokkos)
set(KOKKOS_PKG_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/KOKKOS)
set(KOKKOS_PKG_SOURCES ${KOKKOS_PKG_SOURCES_DIR}/kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/atom_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/atom_vec_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/comm_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/comm_tiled_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/neighbor_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/neigh_list_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/neigh_bond_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/fix_nh_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/domain_kokkos.cpp
${KOKKOS_PKG_SOURCES_DIR}/modify_kokkos.cpp)
set_property(GLOBAL PROPERTY "KOKKOS_PKG_SOURCES" "${KOKKOS_PKG_SOURCES}")
# detects styles which have KOKKOS version
RegisterStylesExt(${KOKKOS_PKG_SOURCES_DIR} kokkos KOKKOS_PKG_SOURCES)
get_property(KOKKOS_PKG_SOURCES GLOBAL PROPERTY KOKKOS_PKG_SOURCES)
list(APPEND LIB_SOURCES ${KOKKOS_PKG_SOURCES})
include_directories(${KOKKOS_PKG_SOURCES_DIR})
endif()
if(ENABLE_OPT)
set(OPT_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/OPT)
set(OPT_SOURCES)
set_property(GLOBAL PROPERTY "OPT_SOURCES" "${OPT_SOURCES}")
# detects styles which have OPT version
RegisterStylesExt(${OPT_SOURCES_DIR} opt OPT_SOURCES)
get_property(OPT_SOURCES GLOBAL PROPERTY OPT_SOURCES)
list(APPEND LIB_SOURCES ${OPT_SOURCES})
include_directories(${OPT_SOURCES_DIR})
endif()
if(ENABLE_USER-INTEL)
set(USER-INTEL_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-INTEL)
set(USER-INTEL_SOURCES ${USER-INTEL_SOURCES_DIR}/intel_preprocess.h
${USER-INTEL_SOURCES_DIR}/intel_buffers.h
${USER-INTEL_SOURCES_DIR}/intel_buffers.cpp
${USER-INTEL_SOURCES_DIR}/math_extra_intel.h
${USER-INTEL_SOURCES_DIR}/nbin_intel.h
${USER-INTEL_SOURCES_DIR}/nbin_intel.cpp
${USER-INTEL_SOURCES_DIR}/npair_intel.h
${USER-INTEL_SOURCES_DIR}/npair_intel.cpp
${USER-INTEL_SOURCES_DIR}/intel_simd.h
${USER-INTEL_SOURCES_DIR}/intel_intrinsics.h)
set_property(GLOBAL PROPERTY "USER-INTEL_SOURCES" "${USER-INTEL_SOURCES}")
# detects styles which have USER-INTEL version
RegisterStylesExt(${USER-INTEL_SOURCES_DIR} opt USER-INTEL_SOURCES)
get_property(USER-INTEL_SOURCES GLOBAL PROPERTY USER-INTEL_SOURCES)
list(APPEND LIB_SOURCES ${USER-INTEL_SOURCES})
include_directories(${USER-INTEL_SOURCES_DIR})
endif()
if(ENABLE_GPU)
find_package(CUDA REQUIRED)
find_program(BIN2C bin2c)
if(NOT BIN2C)
message(FATAL_ERROR "Couldn't find bin2c, use -DBIN2C helping cmake to find it.")
endif()
include_directories(${CUDA_INCLUDE_DIRS})
list(APPEND LAMMPS_LINK_LIBS ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY})
set(GPU_PREC "SINGLE_DOUBLE" CACHE STRING "Lammps gpu precision size")
set_property(CACHE GPU_PREC PROPERTY STRINGS SINGLE_DOUBLE SINGLE_SINGLE DOUBLE_DOUBLE)
add_definitions(-D_${GPU_PREC})
add_definitions(-DNV_KERNEL -DUCL_CUDADR)
option(CUDPP_OPT "Enable CUDPP_OPT" ON)
set(GPU_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/GPU)
set(GPU_SOURCES ${GPU_SOURCES_DIR}/gpu_extra.h)
set_property(GLOBAL PROPERTY "GPU_SOURCES" "${GPU_SOURCES}")
# detects styles which have GPU version
RegisterStylesExt(${GPU_SOURCES_DIR} opt GPU_SOURCES)
get_property(GPU_SOURCES GLOBAL PROPERTY GPU_SOURCES)
file(GLOB GPU_LIB_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cpp)
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cu ${CMAKE_SOURCE_DIR}/gpu/*.cu)
file(GLOB_RECURSE GPU_NOT_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_pppm.cu)
list(REMOVE_ITEM GPU_LIB_CU ${GPU_NOT_LIB_CU})
include_directories(${GPU_SOURCES_DIR} ${LAMMPS_LIB_SOURCE_DIR}/gpu ${LAMMPS_LIB_BINARY_DIR}/gpu)
if(CUDPP_OPT)
include_directories(${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini)
add_definitions(-DCUDPP_OPT)
file(GLOB GPU_LIB_CUDPP_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/*.cpp)
file(GLOB GPU_LIB_CUDPP_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/*.cu)
endif()
cuda_compile(GPU_OBJS ${GPU_LIB_CU} ${GPU_LIB_CUDPP_CU} OPTIONS $<$<BOOL:${BUILD_SHARED_LIBS}>:-Xcompiler=-fPIC>)
file(MAKE_DIRECTORY ${LAMMPS_LIB_BINARY_DIR}/gpu)
foreach(CU_OBJ ${GPU_OBJS})
get_filename_component(CU_NAME ${CU_OBJ} NAME_WE)
string(REGEX REPLACE "^.*_lal_" "" CU_NAME "${CU_NAME}")
add_custom_command(OUTPUT ${LAMMPS_LIB_BINARY_DIR}/gpu/${CU_NAME}_cubin.h
COMMAND ${BIN2C} -c -n ${CU_NAME} ${CU_OBJ} > ${LAMMPS_LIB_BINARY_DIR}/gpu/${CU_NAME}_cubin.h
DEPENDS ${CU_OBJ}
COMMENT "Generating ${CU_NAME}_cubin.h")
list(APPEND LIB_SOURCES ${LAMMPS_LIB_BINARY_DIR}/gpu/${CU_NAME}_cubin.h)
if(${CU_NAME} STREQUAL "pppm_d") #pppm_d doesn't get linked into the lib
set(CU_FORBIDDEN_OBJ "${CU_OBJ}")
endif()
endforeach()
list(REMOVE_ITEM GPU_OBJS "${CU_FORBIDDEN_OBJ}")
list(APPEND LIB_SOURCES ${GPU_SOURCES} ${GPU_LIB_SOURCES} ${GPU_LIB_CUDPP_SOURCES} ${GPU_OBJS})
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${LAMMPS_LIB_BINARY_DIR}/gpu/*_cubin.h")
endif()
######################################################
# Generate style headers based on global list of
# styles registered during package selection
######################################################
set(LAMMPS_STYLE_HEADERS_DIR ${CMAKE_CURRENT_BINARY_DIR}/styles)
GenerateStyleHeaders(${LAMMPS_STYLE_HEADERS_DIR})
include_directories(${LAMMPS_SOURCE_DIR})
include_directories(${LAMMPS_STYLE_HEADERS_DIR})
###########################################
# Actually add executable and lib to build
############################################
add_library(lammps ${LIB_SOURCES})
target_link_libraries(lammps ${LAMMPS_LINK_LIBS})
set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
if(INSTALL_LIB)
install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(FILES ${LAMMPS_SOURCE_DIR}/lammps.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
elseif(BUILD_SHARED_LIBS)
message(FATAL_ERROR "Shared library has to be installed, use -DINSTALL_LIB=ON to install lammps with a library")
endif()
add_executable(lmp ${LMP_SOURCES})
target_link_libraries(lmp lammps)
install(TARGETS lmp DESTINATION ${CMAKE_INSTALL_BINDIR})
if(ENABLE_TESTING)
add_test(ShowHelp ${CMAKE_CURRENT_BINARY_DIR}/lmp -help)
endif()
##################################
# Print package summary
##################################
foreach(PKG ${DEFAULT_PACKAGES} ${OTHER_PACKAGES} ${ACCEL_PACKAGES})
if(ENABLE_${PKG})
message(STATUS "Building package: ${PKG}")
endif()
endforeach()

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

19
cmake/README Normal file
View File

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

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

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

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

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

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}

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: 14 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

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

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 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 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 Running on one (or a few processors) should give a good estimate of
the serial performance and what portions of the timestep are taking the serial performance and what portions of the timestep are taking
@ -226,16 +226,16 @@ re-build LAMMPS |
make machine | make machine |
prepare and test a regular LAMMPS simulation | prepare and test a regular LAMMPS simulation |
lmp_machine -in in.script; mpirun -np 32 lmp_machine -in in.script | 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 | 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 | 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=|) :tb(c=2,s=|)
Note that the first 4 steps can be done as a single command, using the Note that the first 4 steps can be done as a single command with
src/Make.py tool. This tool is discussed in "Section suitable make command invocations. This is discussed in "Section
2.4"_Section_start.html#start_4 of the manual, and its use is 4"_Section_packages.html of the manual, and its use is
illustrated in the individual accelerator sections. Typically these illustrated in the individual accelerator sections. Typically these
steps only need to be done once, to create an executable that uses one steps only need to be done once, to create an executable that uses one
or more accelerator packages. or more accelerator packages.

View File

@ -734,7 +734,9 @@ package"_Section_start.html#start_3.
"smd/wall/surface"_fix_smd_wall_surface.html, "smd/wall/surface"_fix_smd_wall_surface.html,
"temp/rescale/eff"_fix_temp_rescale_eff.html, "temp/rescale/eff"_fix_temp_rescale_eff.html,
"ti/spring"_fix_ti_spring.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 :line
@ -890,8 +892,8 @@ KOKKOS, o = USER-OMP, t = OPT.
"hybrid"_pair_hybrid.html, "hybrid"_pair_hybrid.html,
"hybrid/overlay"_pair_hybrid.html, "hybrid/overlay"_pair_hybrid.html,
"adp (o)"_pair_adp.html, "adp (o)"_pair_adp.html,
"airebo (o)"_pair_airebo.html, "airebo (oi)"_pair_airebo.html,
"airebo/morse (o)"_pair_airebo.html, "airebo/morse (oi)"_pair_airebo.html,
"beck (go)"_pair_beck.html, "beck (go)"_pair_beck.html,
"body"_pair_body.html, "body"_pair_body.html,
"bop"_pair_bop.html, "bop"_pair_bop.html,
@ -925,8 +927,8 @@ KOKKOS, o = USER-OMP, t = OPT.
"dpd/tstat (go)"_pair_dpd.html, "dpd/tstat (go)"_pair_dpd.html,
"dsmc"_pair_dsmc.html, "dsmc"_pair_dsmc.html,
"eam (gkiot)"_pair_eam.html, "eam (gkiot)"_pair_eam.html,
"eam/alloy (gkot)"_pair_eam.html, "eam/alloy (gkiot)"_pair_eam.html,
"eam/fs (gkot)"_pair_eam.html, "eam/fs (gkiot)"_pair_eam.html,
"eim (o)"_pair_eim.html, "eim (o)"_pair_eim.html,
"gauss (go)"_pair_gauss.html, "gauss (go)"_pair_gauss.html,
"gayberne (gio)"_pair_gayberne.html, "gayberne (gio)"_pair_gayberne.html,
@ -940,9 +942,9 @@ KOKKOS, o = USER-OMP, t = OPT.
"kim"_pair_kim.html, "kim"_pair_kim.html,
"lcbop"_pair_lcbop.html, "lcbop"_pair_lcbop.html,
"line/lj"_pair_line_lj.html, "line/lj"_pair_line_lj.html,
"lj/charmm/coul/charmm (ko)"_pair_charmm.html, "lj/charmm/coul/charmm (kio)"_pair_charmm.html,
"lj/charmm/coul/charmm/implicit (ko)"_pair_charmm.html, "lj/charmm/coul/charmm/implicit (ko)"_pair_charmm.html,
"lj/charmm/coul/long (giko)"_pair_charmm.html, "lj/charmm/coul/long (gkio)"_pair_charmm.html,
"lj/charmm/coul/msm"_pair_charmm.html, "lj/charmm/coul/msm"_pair_charmm.html,
"lj/charmmfsw/coul/charmmfsh"_pair_charmm.html, "lj/charmmfsw/coul/charmmfsh"_pair_charmm.html,
"lj/charmmfsw/coul/long"_pair_charmm.html, "lj/charmmfsw/coul/long"_pair_charmm.html,
@ -988,7 +990,7 @@ KOKKOS, o = USER-OMP, t = OPT.
"polymorphic"_pair_polymorphic.html, "polymorphic"_pair_polymorphic.html,
"python"_pair_python.html, "python"_pair_python.html,
"reax"_pair_reax.html, "reax"_pair_reax.html,
"rebo (o)"_pair_airebo.html, "rebo (oi)"_pair_airebo.html,
"resquared (go)"_pair_resquared.html, "resquared (go)"_pair_resquared.html,
"snap"_pair_snap.html, "snap"_pair_snap.html,
"soft (go)"_pair_soft.html, "soft (go)"_pair_soft.html,

View File

@ -71,7 +71,7 @@ style", with ... being fix, compute, pair, etc, it means that you
mistyped the style name or that the command is part of an optional mistyped the style name or that the command is part of an optional
package which was not compiled into your executable. The list of package which was not compiled into your executable. The list of
available styles in your executable can be listed by using "the -h 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 and compilation of optional packages is explained in the "installation
instructions"_Section_start.html#start_3. instructions"_Section_start.html#start_3.
@ -7886,8 +7886,8 @@ keyword to allow for additional bonds to be formed :dd
{New bond exceeded special list size in fix bond/create} :dt {New bond exceeded special list size in fix bond/create} :dt
See the "special_bonds extra" command See the "read_data extra/special/per/atom" command
(or the "read_data extra/special/per/atom" command) (or the "create_box extra/special/per/atom" command)
for info on how to leave space in the special bonds for info on how to leave space in the special bonds
list to allow for additional bonds to be formed. :dd list to allow for additional bonds to be formed. :dd
@ -9666,8 +9666,8 @@ you are running. :dd
{Special list size exceeded in fix bond/create} :dt {Special list size exceeded in fix bond/create} :dt
See the special_bonds extra command See the "read_data extra/special/per/atom" command
(or the read_data extra/special/per/atom command) (or the "create_box extra/special/per/atom" command)
for info on how to leave space in the special bonds for info on how to leave space in the special bonds
list to allow for additional bonds to be formed. :dd list to allow for additional bonds to be formed. :dd

View File

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

View File

@ -54,7 +54,7 @@ restart files can be saved to disk using the "restart"_restart.html
command. At a later time, these binary files can be read via a 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 "read_restart"_read_restart.html command in a new script. Or they can
be converted to text data files using the "-r command-line 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. "read_data"_read_data.html command in a new script.
Here we give examples of 2 scripts that read either a binary restart Here we give examples of 2 scripts that read either a binary restart
@ -337,7 +337,7 @@ All of the above examples work whether you are running on 1 or
multiple processors, but assumed you are running LAMMPS on a single multiple processors, but assumed you are running LAMMPS on a single
partition of processors. LAMMPS can be run on multiple partitions via partition of processors. LAMMPS can be run on multiple partitions via
the "-partition" command-line switch as described in "this 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 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 scripts could be used if the "index" and "loop" variables were
@ -387,7 +387,7 @@ for more info on packages.
In all these cases, you must run with one or more processors per In all these cases, you must run with one or more processors per
replica. The processors assigned to each replica are determined at replica. The processors assigned to each replica are determined at
run-time by using the "-partition command-line 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. partitions, which in this context are the same as replicas. E.g.
these commands: these commands:
@ -395,7 +395,7 @@ mpirun -np 16 lmp_linux -partition 8x2 -in in.temper
mpirun -np 8 lmp_linux -partition 8x1 -in in.neb :pre 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 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. 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), Also note that with MPI installed on a machine (e.g. your desktop),
@ -1872,7 +1872,7 @@ void lammps_free(void *) :pre
The lammps_open() function is used to initialize LAMMPS, passing in a The lammps_open() function is used to initialize LAMMPS, passing in a
list of strings as if they were "command-line 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 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 LAMMPS to run under. It returns a ptr to the LAMMPS object that is
created, and which is used in subsequent library calls. The created, and which is used in subsequent library calls. The

View File

@ -25,6 +25,17 @@ There are two kinds of packages in LAMMPS, standard and user packages:
"Table of standard packages"_#table_standard "Table of standard packages"_#table_standard
"Table of user packages"_#table_user :ul "Table of user packages"_#table_user :ul
Either of these kinds of packages may work as is, may require some
additional code compiled located in the lib folder, or may require
an external library to be downloaded, compiled, installed, and LAMMPS
configured to know about its location and additional compiler flags.
You can often do the build of the internal or external libraries
in one step by typing "make lib-name args='...'" from the src dir,
with appropriate arguments included in args='...'. If you just type
"make lib-name" you should see a help message about supported flags
and some examples. For more details about this, please study the
tables below and the sections about the individual packages.
Standard packages are supported by the LAMMPS developers and are Standard packages are supported by the LAMMPS developers and are
written in a syntax and style consistent with the rest of LAMMPS. written in a syntax and style consistent with the rest of LAMMPS.
This means the developers will answer questions about them, debug and This means the developers will answer questions about them, debug and
@ -34,7 +45,9 @@ LAMMPS.
User packages have been contributed by users, and begin with the User packages have been contributed by users, and begin with the
"user" prefix. If they are a single command (single file), they are "user" prefix. If they are a single command (single file), they are
typically in the user-misc package. User packages don't necessarily typically in the user-misc package. User packages don't necessarily
meet the requirements of the standard packages. If you have problems meet the requirements of the standard packages. This means the
developers will try to keep things working and usually can answer
technical questions about compiling the package. If you have problems
using a feature provided in a user package, you may need to contact using a feature provided in a user package, you may need to contact
the contributor directly to get help. Information on how to submit the contributor directly to get help. Information on how to submit
additions you make to LAMMPS as single files or as a standard or user additions you make to LAMMPS as single files or as a standard or user
@ -78,10 +91,10 @@ Package, Description, Doc page, Example, Library
"COMPRESS"_#COMPRESS, I/O compression, "dump */gz"_dump.html, -, sys "COMPRESS"_#COMPRESS, I/O compression, "dump */gz"_dump.html, -, sys
"CORESHELL"_#CORESHELL, adiabatic core/shell model, "Section 6.6.25"_Section_howto.html#howto_25, coreshell, - "CORESHELL"_#CORESHELL, adiabatic core/shell model, "Section 6.6.25"_Section_howto.html#howto_25, coreshell, -
"DIPOLE"_#DIPOLE, point dipole particles, "pair_style dipole/cut"_pair_dipole.html, dipole, - "DIPOLE"_#DIPOLE, point dipole particles, "pair_style dipole/cut"_pair_dipole.html, dipole, -
"GPU"_#GPU, GPU-enabled styles, "Section 5.3.1"_accelerate_gpu.html, WWW bench, int "GPU"_#GPU, GPU-enabled styles, "Section 5.3.1"_accelerate_gpu.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, int
"GRANULAR"_#GRANULAR, granular systems, "Section 6.6.6"_Section_howto.html#howto_6, pour, - "GRANULAR"_#GRANULAR, granular systems, "Section 6.6.6"_Section_howto.html#howto_6, pour, -
"KIM"_#KIM, openKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext "KIM"_#KIM, OpenKIM wrapper, "pair_style kim"_pair_kim.html, kim, ext
"KOKKOS"_#KOKKOS, Kokkos-enabled styles, "Section 5.3.3"_accelerate_kokkos.html, WWW bench, - "KOKKOS"_#KOKKOS, Kokkos-enabled styles, "Section 5.3.3"_accelerate_kokkos.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
"KSPACE"_#KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, - "KSPACE"_#KSPACE, long-range Coulombic solvers, "kspace_style"_kspace_style.html, peptide, -
"MANYBODY"_#MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, - "MANYBODY"_#MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, -
"MC"_#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, - "MC"_#MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, -, -
@ -90,7 +103,7 @@ Package, Description, Doc page, Example, Library
"MOLECULE"_#MOLECULE, molecular system force fields, "Section 6.6.3"_Section_howto.html#howto_3, peptide, - "MOLECULE"_#MOLECULE, molecular system force fields, "Section 6.6.3"_Section_howto.html#howto_3, peptide, -
"MPIIO"_#MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, -, - "MPIIO"_#MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, -, -
"MSCG"_#MSCG, multi-scale coarse-graining wrapper, "fix mscg"_fix_mscg.html, mscg, ext "MSCG"_#MSCG, multi-scale coarse-graining wrapper, "fix mscg"_fix_mscg.html, mscg, ext
"OPT"_#OPT, optimized pair styles, "Section 5.3.5"_accelerate_opt.html, WWW bench, - "OPT"_#OPT, optimized pair styles, "Section 5.3.5"_accelerate_opt.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
"PERI"_#PERI, Peridynamics models, "pair_style peri"_pair_peri.html, peri, - "PERI"_#PERI, Peridynamics models, "pair_style peri"_pair_peri.html, peri, -
"POEMS"_#POEMS, coupled rigid body motion, "fix poems"_fix_poems.html, rigid, int "POEMS"_#POEMS, coupled rigid body motion, "fix poems"_fix_poems.html, rigid, int
"PYTHON"_#PYTHON, embed Python code in an input script, "python"_python.html, python, sys "PYTHON"_#PYTHON, embed Python code in an input script, "python"_python.html, python, sys
@ -101,8 +114,7 @@ Package, Description, Doc page, Example, Library
"SHOCK"_#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, - "SHOCK"_#SHOCK, shock loading methods, "fix msst"_fix_msst.html, -, -
"SNAP"_#SNAP, quantum-fitted potential, "pair snap"_pair_snap.html, snap, - "SNAP"_#SNAP, quantum-fitted potential, "pair snap"_pair_snap.html, snap, -
"SRD"_#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, - "SRD"_#SRD, stochastic rotation dynamics, "fix srd"_fix_srd.html, srd, -
"VORONOI"_#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext "VORONOI"_#VORONOI, Voronoi tesselation, "compute voronoi/atom"_compute_voronoi_atom.html, -, ext :tb(ea=c,ca1=l)
:tb(ea=c,ca1=l)
[USER packages] :link(table_user),p [USER packages] :link(table_user),p
@ -118,7 +130,7 @@ Package, Description, Doc page, Example, Library
"USER-EFF"_#USER-EFF, electron force field,"pair_style eff/cut"_pair_eff.html, USER/eff, - "USER-EFF"_#USER-EFF, electron force field,"pair_style eff/cut"_pair_eff.html, USER/eff, -
"USER-FEP"_#USER-FEP, free energy perturbation,"compute fep"_compute_fep.html, USER/fep, - "USER-FEP"_#USER-FEP, free energy perturbation,"compute fep"_compute_fep.html, USER/fep, -
"USER-H5MD"_#USER-H5MD, dump output via HDF5,"dump h5md"_dump_h5md.html, -, ext "USER-H5MD"_#USER-H5MD, dump output via HDF5,"dump h5md"_dump_h5md.html, -, ext
"USER-INTEL"_#USER-INTEL, optimized Intel CPU and KNL styles,"Section 5.3.2"_accelerate_intel.html, WWW bench, - "USER-INTEL"_#USER-INTEL, optimized Intel CPU and KNL styles,"Section 5.3.2"_accelerate_intel.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
"USER-LB"_#USER-LB, Lattice Boltzmann fluid,"fix lb/fluid"_fix_lb_fluid.html, USER/lb, - "USER-LB"_#USER-LB, Lattice Boltzmann fluid,"fix lb/fluid"_fix_lb_fluid.html, USER/lb, -
"USER-MANIFOLD"_#USER-MANIFOLD, motion on 2d surfaces,"fix manifoldforce"_fix_manifoldforce.html, USER/manifold, - "USER-MANIFOLD"_#USER-MANIFOLD, motion on 2d surfaces,"fix manifoldforce"_fix_manifoldforce.html, USER/manifold, -
"USER-MEAMC"_#USER-MEAMC, modified EAM potential (C++), "pair_style meam/c"_pair_meam.html, meam, - "USER-MEAMC"_#USER-MEAMC, modified EAM potential (C++), "pair_style meam/c"_pair_meam.html, meam, -
@ -126,7 +138,7 @@ Package, Description, Doc page, Example, Library
"USER-MISC"_#USER-MISC, single-file contributions, USER-MISC/README, USER/misc, - "USER-MISC"_#USER-MISC, single-file contributions, USER-MISC/README, USER/misc, -
"USER-MOLFILE"_#USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, -, ext "USER-MOLFILE"_#USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, -, ext
"USER-NETCDF"_#USER-NETCDF, dump output via NetCDF,"dump netcdf"_dump_netcdf.html, -, ext "USER-NETCDF"_#USER-NETCDF, dump output via NetCDF,"dump netcdf"_dump_netcdf.html, -, ext
"USER-OMP"_#USER-OMP, OpenMP-enabled styles,"Section 5.3.4"_accelerate_omp.html, WWW bench, - "USER-OMP"_#USER-OMP, OpenMP-enabled styles,"Section 5.3.4"_accelerate_omp.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, -
"USER-PHONON"_#USER-PHONON, phonon dynamical matrix,"fix phonon"_fix_phonon.html, USER/phonon, - "USER-PHONON"_#USER-PHONON, phonon dynamical matrix,"fix phonon"_fix_phonon.html, USER/phonon, -
"USER-QMMM"_#USER-QMMM, QM/MM coupling,"fix qmmm"_fix_qmmm.html, USER/qmmm, ext "USER-QMMM"_#USER-QMMM, QM/MM coupling,"fix qmmm"_fix_qmmm.html, USER/qmmm, ext
"USER-QTB"_#USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, - "USER-QTB"_#USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, -
@ -136,8 +148,7 @@ Package, Description, Doc page, Example, Library
"USER-SMTBQ"_#USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, - "USER-SMTBQ"_#USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, -
"USER-SPH"_#USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, - "USER-SPH"_#USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, -
"USER-TALLY"_#USER-TALLY, pairwise tally computes,"compute XXX/tally"_compute_tally.html, USER/tally, - "USER-TALLY"_#USER-TALLY, pairwise tally computes,"compute XXX/tally"_compute_tally.html, USER/tally, -
"USER-VTK"_#USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, -, ext "USER-VTK"_#USER-VTK, dump output via VTK, "compute vtk"_dump_vtk.html, -, ext :tb(ea=c,ca1=l)
:tb(ea=c,ca1=l)
:line :line
:line :line
@ -364,12 +375,15 @@ GPU package :link(GPU),h4
[Contents:] [Contents:]
Dozens of pair styles and a version of the PPPM long-range Coulombic Dozens of pair styles and a version of the PPPM long-range Coulombic
solver optimized for NVIDIA GPUs. All such styles have a "gpu" as a solver optimized for GPUs. All such styles have a "gpu" as a
suffix in their style name. "Section 5.3.1"_accelerate_gpu.html gives suffix in their style name. The GPU code can be compiled with either
details of what hardware and Cuda software is required on your system, CUDA or OpenCL, however the OpenCL variants are no longer actively
maintained and only the CUDA versions are regularly tested.
"Section 5.3.1"_accelerate_gpu.html gives details of what
hardware and GPU software is required on your system,
and details on how to build and use this package. Its styles can be and details on how to build and use this package. Its styles can be
invoked at run time via the "-sf gpu" or "-suffix gpu" "command-line invoked at run time via the "-sf gpu" or "-suffix gpu" "command-line
switches"_Section_start.html#start_7. See also the "KOKKOS"_#KOKKOS switches"_Section_start.html#start_6. See also the "KOKKOS"_#KOKKOS
package, which has GPU-enabled styles. package, which has GPU-enabled styles.
[Authors:] Mike Brown (Intel) while at Sandia and ORNL and Trung Nguyen [Authors:] Mike Brown (Intel) while at Sandia and ORNL and Trung Nguyen
@ -378,32 +392,41 @@ package, which has GPU-enabled styles.
[Install or un-install:] [Install or un-install:]
Before building LAMMPS with this package, you must first build the GPU Before building LAMMPS with this package, you must first build the GPU
library in lib/gpu from a set of provided C and Cuda files. You can library in lib/gpu from a set of provided C and CUDA files. You can
do this manually if you prefer; follow the instructions in do this manually if you prefer; follow the instructions in
lib/gpu/README. You can also do it in one step from the lammps/src lib/gpu/README. Please note, that the GPU library uses MPI calls, so
you have to make certain to use the same MPI library (or the STUBS
library) settings as the main LAMMPS code. That same applies to the
-DLAMMPS_BIGBIG, -DLAMMPS_SMALLBIG, or -DLAMMPS_SMALLSMALL define.
You can also do it in one step from the lammps/src
dir, using a command like these, which simply invoke the dir, using a command like these, which simply invoke the
lib/gpu/Install.py script with the specified args: lib/gpu/Install.py script with the specified args:
make lib-gpu # print help message make lib-gpu # print help message
make lib-gpu args="-m" # build GPU library with default Makefile.linux make lib-gpu args="-b" # build GPU library with default Makefile.linux
make lib-gpu args="-i xk7 -p single -o xk7.single" # create new Makefile.xk7.single, altered for single-precision make lib-gpu args="-m xk7 -p single -o xk7.single" # create new Makefile.xk7.single, altered for single-precision
make lib-gpu args="-i xk7 -p single -o xk7.single -m" # ditto, also build GPU library make lib-gpu args="-m mpi -p mixed -b" # build GPU library with mixed precision using settings in Makefile.mpi :pre
Note that this procedure starts with one of the existing Note that this procedure through the '-m machine' flag starts with one of
Makefile.machine files in lib/gpu. It allows you to alter 4 important the existing Makefile.machine files in lib/gpu. For your convenience,
settings in that Makefile, via the -h, -a, -p, -e switches, machine makefiles for "mpi" and "serial" are provided, which have the
and save the new Makefile, if desired: same settings as the corresponding machine makefiles in the main LAMMPS
source folder. In addition you can alter 4 important settings in that
Makefile, via the -h, -a, -p, -e switches, and also save a copy of the
new Makefile, if desired:
CUDA_HOME = where NVIDIA Cuda software is installed on your system CUDA_HOME = where NVIDIA CUDA software is installed on your system
CUDA_ARCH = what GPU hardware you have (see help message for details) CUDA_ARCH = what GPU hardware you have (see help message for details)
CUDA_PRECISION = precision (double, mixed, single) CUDA_PRECISION = precision (double, mixed, single)
EXTRAMAKE = which Makefile.lammps.* file to copy to Makefile.lammps :ul EXTRAMAKE = which Makefile.lammps.* file to copy to Makefile.lammps :ul
If the library build is successful, 2 files should be created: If the library build is successful, at least 3 files should be created:
lib/gpu/libgpu.a and lib/gpu/Makefile.lammps. The latter has settings lib/gpu/libgpu.a, lib/gpu/nvc_get_devices, and lib/gpu/Makefile.lammps.
that enable LAMMPS to link with Cuda libraries. If the settings in The latter has settings that enable LAMMPS to link with CUDA libraries.
Makefile.lammps for your machine are not correct, the LAMMPS build If the settings in Makefile.lammps for your machine are not correct,
will fail. the LAMMPS build will fail, and lib/gpu/Makefile.lammps may need to
be edited.
You can then install/un-install the package and build LAMMPS in the You can then install/un-install the package and build LAMMPS in the
usual manner: usual manner:
@ -427,8 +450,8 @@ src/GPU/README
lib/gpu/README lib/gpu/README
"Section 5.3"_Section_accelerate.html#acc_3 "Section 5.3"_Section_accelerate.html#acc_3
"Section 5.3.1"_accelerate_gpu.html "Section 5.3.1"_accelerate_gpu.html
"Section 2.7 -sf gpu"_Section_start.html#start_7 "Section 2.6 -sf gpu"_Section_start.html#start_6
"Section 2.7 -pk gpu"_Section_start.html#start_7 "Section 2.6 -pk gpu"_Section_start.html#start_6
"package gpu"_package.html "package gpu"_package.html
Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 for pair styles followed by (g) Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 for pair styles followed by (g)
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
@ -492,14 +515,40 @@ Minnesota).
[Install or un-install:] [Install or un-install:]
Using this package requires the KIM library and its models Before building LAMMPS with this package, you must first download and
(interatomic potentials) to be downloaded and installed on your build the KIM library and include the KIM models that you want to
system. The library can be downloaded and built in lib/kim or use. You can do this manually if you prefer; follow the instructions
elsewhere on your system. Details of the download, build, and install in lib/kim/README. You can also do it in one step from the lammps/src
process for KIM are given in the lib/kim/README file. dir, using a command like these, which simply invoke the
lib/kim/Install.py script with the specified args.
Once that process is complete, you can then install/un-install the make lib-kim # print help message
package and build LAMMPS in the usual manner: make lib-kim args="-b " # (re-)install KIM API lib with only example models
make lib-kim args="-b -a Glue_Ercolessi_Adams_Al__MO_324507536345_001" # ditto plus one model
make lib-kim args="-b -a everything" # install KIM API lib with all models
make lib-kim args="-n -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # add one model or model driver
make lib-kim args="-p /usr/local/kim-api" # use an existing KIM API installation at the provided location
make lib-kim args="-p /usr/local/kim-api -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # ditto but add one model or driver :pre
Note that in LAMMPS lingo, a KIM model driver is a pair style
(e.g. EAM or Tersoff). A KIM model is a pair style for a particular
element or alloy and set of parameters, e.g. EAM for Cu with a
specific EAM potential file. Also note that installing the KIM API
library with all its models, may take around 30 min to build. Of
course you only need to do that once.
See the list of KIM model drivers here:
https://openkim.org/kim-items/model-drivers/alphabetical
See the list of all KIM models here:
https://openkim.org/kim-items/models/by-model-drivers
See the list of example KIM models included by default here:
https://openkim.org/kim-api in the "What is in the KIM API source
package?" section
You can then install/un-install the package and build LAMMPS in the
usual manner:
make yes-kim make yes-kim
make machine :pre make machine :pre
@ -523,13 +572,13 @@ KOKKOS package :link(KOKKOS),h4
Dozens of atom, pair, bond, angle, dihedral, improper, fix, compute Dozens of atom, pair, bond, angle, dihedral, improper, fix, compute
styles adapted to compile using the Kokkos library which can convert styles adapted to compile using the Kokkos library which can convert
them to OpenMP or Cuda code so that they run efficiently on multicore them to OpenMP or CUDA code so that they run efficiently on multicore
CPUs, KNLs, or GPUs. All the styles have a "kk" as a suffix in their CPUs, KNLs, or GPUs. All the styles have a "kk" as a suffix in their
style name. "Section 5.3.3"_accelerate_kokkos.html gives details of style name. "Section 5.3.3"_accelerate_kokkos.html gives details of
what hardware and software is required on your system, and how to what hardware and software is required on your system, and how to
build and use this package. Its styles can be invoked at run time via build and use this package. Its styles can be invoked at run time via
the "-sf kk" or "-suffix kk" "command-line the "-sf kk" or "-suffix kk" "command-line
switches"_Section_start.html#start_7. Also see the "GPU"_#GPU, switches"_Section_start.html#start_6. Also see the "GPU"_#GPU,
"OPT"_#OPT, "USER-INTEL"_#USER-INTEL, and "USER-OMP"_#USER-OMP "OPT"_#OPT, "USER-INTEL"_#USER-INTEL, and "USER-OMP"_#USER-OMP
packages, which have styles optimized for CPUs, KNLs, and GPUs. packages, which have styles optimized for CPUs, KNLs, and GPUs.
@ -553,28 +602,28 @@ files for examples.
For multicore CPUs using OpenMP: For multicore CPUs using OpenMP:
KOKKOS_DEVICES = OpenMP KOKKOS_DEVICES = OpenMP
KOKKOS_ARCH = HSW # HSW = Haswell, SNB = SandyBridge, BDW = Broadwell, etc KOKKOS_ARCH = HSW # HSW = Haswell, SNB = SandyBridge, BDW = Broadwell, etc :pre
For Intel KNLs using OpenMP: For Intel KNLs using OpenMP:
KOKKOS_DEVICES = OpenMP KOKKOS_DEVICES = OpenMP
KOKKOS_ARCH = KNL KOKKOS_ARCH = KNL :pre
For NVIDIA GPUs using Cuda: For NVIDIA GPUs using CUDA:
KOKKOS_DEVICES = Cuda KOKKOS_DEVICES = Cuda
KOKKOS_ARCH = Pascal60,Power8 # P100 hosted by an IBM Power8, etc KOKKOS_ARCH = Pascal60,Power8 # P100 hosted by an IBM Power8, etc
KOKKOS_ARCH = Kepler37,Power8 # K80 hosted by an IBM Power8, etc KOKKOS_ARCH = Kepler37,Power8 # K80 hosted by an IBM Power8, etc :pre
For GPUs, you also need these 2 lines in your Makefile.machine before For GPUs, you also need these 2 lines in your Makefile.machine before
the CC line is defined, in this case for use with OpenMPI mpicxx. The the CC line is defined, in this case for use with OpenMPI mpicxx. The
2 lines define a nvcc wrapper compiler, which will use nvcc for 2 lines define a nvcc wrapper compiler, which will use nvcc for
compiling Cuda files or use a C++ compiler for non-Kokkos, non-Cuda compiling CUDA files or use a C++ compiler for non-Kokkos, non-CUDA
files. files.
KOKKOS_ABSOLUTE_PATH = $(shell cd $(KOKKOS_PATH); pwd) KOKKOS_ABSOLUTE_PATH = $(shell cd $(KOKKOS_PATH); pwd)
export OMPI_CXX = $(KOKKOS_ABSOLUTE_PATH)/config/nvcc_wrapper export OMPI_CXX = $(KOKKOS_ABSOLUTE_PATH)/config/nvcc_wrapper
CC = mpicxx CC = mpicxx :pre
Once you have an appropriate Makefile.machine, you can Once you have an appropriate Makefile.machine, you can
install/un-install the package and build LAMMPS in the usual manner. install/un-install the package and build LAMMPS in the usual manner.
@ -597,9 +646,9 @@ src/KOKKOS/README
lib/kokkos/README lib/kokkos/README
"Section 5.3"_Section_accelerate.html#acc_3 "Section 5.3"_Section_accelerate.html#acc_3
"Section 5.3.3"_accelerate_kokkos.html "Section 5.3.3"_accelerate_kokkos.html
"Section 2.7 -k on ..."_Section_start.html#start_7 "Section 2.6 -k on ..."_Section_start.html#start_6
"Section 2.7 -sf kk"_Section_start.html#start_7 "Section 2.6 -sf kk"_Section_start.html#start_6
"Section 2.7 -pk kokkos"_Section_start.html#start_7 "Section 2.6 -pk kokkos"_Section_start.html#start_6
"package kokkos"_package.html "package kokkos"_package.html
Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (k) Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (k)
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
@ -710,6 +759,12 @@ MEAM package :link(MEAM),h4
A pair style for the modified embedded atom (MEAM) potential. A pair style for the modified embedded atom (MEAM) potential.
Please note that the MEAM package has been superseded by the
"USER-MEAMC"_#USER-MEAMC package, which is a direct translation
of the MEAM package to C++. USER-MEAMC contains additional
optimizations making it run faster than MEAM on most machines,
while providing the identical features and USER interface.
[Author:] Greg Wagner (Northwestern U) while at Sandia. [Author:] Greg Wagner (Northwestern U) while at Sandia.
[Install or un-install:] [Install or un-install:]
@ -721,8 +776,9 @@ step from the lammps/src dir, using a command like these, which simply
invoke the lib/meam/Install.py script with the specified args: invoke the lib/meam/Install.py script with the specified args:
make lib-meam # print help message make lib-meam # print help message
make lib-meam args="-m gfortran" # build with GNU Fortran compiler make lib-meam args="-m mpi" # build with default Fortran compiler compatible with your MPI library
make lib-meam args="-m ifort" # build with Intel ifort compiler :pre make lib-meam args="-m serial" # build with compiler compatible with "make serial" (GNU Fortran)
make lib-meam args="-m ifort" # build with Intel Fortran compiler using Makefile.ifort :pre
The build should produce two files: lib/meam/libmeam.a and The build should produce two files: lib/meam/libmeam.a and
lib/meam/Makefile.lammps. The latter is copied from an existing lib/meam/Makefile.lammps. The latter is copied from an existing
@ -765,6 +821,9 @@ A variety of compute, fix, pair, dump styles with specialized
capabilities that don't align with other packages. Do a directory capabilities that don't align with other packages. Do a directory
listing, "ls src/MISC", to see the list of commands. listing, "ls src/MISC", to see the list of commands.
NOTE: the MISC package contains styles that require using the
-restrict flag, when compiling with Intel compilers.
[Install or un-install:] [Install or un-install:]
make yes-misc make yes-misc
@ -878,9 +937,9 @@ University of Chicago.
Before building LAMMPS with this package, you must first download and Before building LAMMPS with this package, you must first download and
build the MS-CG library. Building the MS-CG library and using it from build the MS-CG library. Building the MS-CG library and using it from
LAMMPS requires a C++11 compatible compiler, and that LAPACK and GSL LAMMPS requires a C++11 compatible compiler and that the GSL
(GNU Scientific Library) libraries be installed on your machine. See (GNU Scientific Library) headers and libraries are installed on your
the lib/mscg/README and MSCG/Install files for more details. machine. See the lib/mscg/README and MSCG/Install files for more details.
Assuming these libraries are in place, you can do the download and Assuming these libraries are in place, you can do the download and
build of MS-CG manually if you prefer; follow the instructions in build of MS-CG manually if you prefer; follow the instructions in
@ -889,14 +948,15 @@ dir, using a command like these, which simply invoke the
lib/mscg/Install.py script with the specified args: lib/mscg/Install.py script with the specified args:
make lib-mscg # print help message make lib-mscg # print help message
make lib-mscg args="-g -b -l" # download and build in default lib/mscg/MSCG-release-master make lib-mscg args="-b -m serial" # download and build in lib/mscg/MSCG-release-master
make lib-mscg args="-h . MSCG -g -b -l" # download and build in lib/mscg/MSCG # with the settings compatible with "make serial"
make lib-mscg args="-h ~ MSCG -g -b -l" # download and build in ~/mscg :pre make lib-mscg args="-b -m mpi" # download and build in lib/mscg/MSCG-release-master
# with the settings compatible with "make mpi"
make lib-mscg args="-p /usr/local/mscg-release" # use the existing MS-CG installation in /usr/local/mscg-release :pre
Note that the final -l switch is to create 2 symbolic (soft) links, Note that 2 symbolic (soft) links, "includelink" and "liblink", will be created in lib/mscg
"includelink" and "liblink", in lib/mscg to point to the MS-CG src to point to the MS-CG src/installation dir. When LAMMPS is built in src it will use these links.
dir. When LAMMPS builds it will use these links. You should not need You should not need to edit the lib/mscg/Makefile.lammps file.
to edit the lib/mscg/Makefile.lammps file.
You can then install/un-install the package and build LAMMPS in the You can then install/un-install the package and build LAMMPS in the
usual manner: usual manner:
@ -926,7 +986,7 @@ CHARMM, and Morse potentials. The styles have an "opt" suffix in
their style name. "Section 5.3.5"_accelerate_opt.html gives details their style name. "Section 5.3.5"_accelerate_opt.html gives details
of how to build and use this package. Its styles can be invoked at of how to build and use this package. Its styles can be invoked at
run time via the "-sf opt" or "-suffix opt" "command-line run time via the "-sf opt" or "-suffix opt" "command-line
switches"_Section_start.html#start_7. See also the "KOKKOS"_#KOKKOS, switches"_Section_start.html#start_6. See also the "KOKKOS"_#KOKKOS,
"USER-INTEL"_#USER-INTEL, and "USER-OMP"_#USER-OMP packages, which "USER-INTEL"_#USER-INTEL, and "USER-OMP"_#USER-OMP packages, which
have styles optimized for CPU performance. have styles optimized for CPU performance.
@ -942,18 +1002,18 @@ make no-opt
make machine :pre make machine :pre
NOTE: The compile flag "-restrict" must be used to build LAMMPS with NOTE: The compile flag "-restrict" must be used to build LAMMPS with
the OPT package. It should be added to the CCFLAGS line of your the OPT package when using Intel compilers. It should be added to
Makefile.machine. See Makefile.opt in src/MAKE/OPTIONS for an the CCFLAGS line of your Makefile.machine. See Makefile.opt in
example. src/MAKE/OPTIONS for an example.
CCFLAGS: add -restrict :ul CCFLAGS: add -restrict for Intel compilers :ul
[Supporting info:] [Supporting info:]
src/OPT: filenames -> commands src/OPT: filenames -> commands
"Section 5.3"_Section_accelerate.html#acc_3 "Section 5.3"_Section_accelerate.html#acc_3
"Section 5.3.5"_accelerate_opt.html "Section 5.3.5"_accelerate_opt.html
"Section 2.7 -sf opt"_Section_start.html#start_7 "Section 2.6 -sf opt"_Section_start.html#start_6
Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 for pair styles followed by (t) Pair Styles section of "Section 3.5"_Section_commands.html#cmd_5 for pair styles followed by (t)
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
@ -1016,7 +1076,8 @@ one step from the lammps/src dir, using a command like these, which
simply invoke the lib/poems/Install.py script with the specified args: simply invoke the lib/poems/Install.py script with the specified args:
make lib-poems # print help message make lib-poems # print help message
make lib-poems args="-m g++" # build with GNU g++ compiler make lib-poems args="-m serial" # build with GNU g++ compiler (settings as with "make serial")
make lib-poems args="-m mpi" # build with default MPI C++ compiler (settings as with "make mpi")
make lib-poems args="-m icc" # build with Intel icc compiler :pre make lib-poems args="-m icc" # build with Intel icc compiler :pre
The build should produce two files: lib/poems/libpoems.a and The build should produce two files: lib/poems/libpoems.a and
@ -1128,7 +1189,8 @@ step from the lammps/src dir, using a command like these, which simply
invoke the lib/reax/Install.py script with the specified args: invoke the lib/reax/Install.py script with the specified args:
make lib-reax # print help message make lib-reax # print help message
make lib-reax args="-m gfortran" # build with GNU Fortran compiler make lib-reax args="-m serial" # build with GNU Fortran compiler (settings as with "make serial")
make lib-reax args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
make lib-reax args="-m ifort" # build with Intel ifort compiler :pre make lib-reax args="-m ifort" # build with Intel ifort compiler :pre
The build should produce two files: lib/reax/libreax.a and The build should produce two files: lib/reax/libreax.a and
@ -1347,14 +1409,14 @@ simply invoke the lib/voronoi/Install.py script with the specified
args: args:
make lib-voronoi # print help message make lib-voronoi # print help message
make lib-voronoi args="-g -b -l" # download and build in default lib/voronoi/voro++-0.4.6 make lib-voronoi args="-b" # download and build the default version in lib/voronoi/voro++-<version>
make lib-voronoi args="-h . voro++ -g -b -l" # download and build in lib/voronoi/voro++ make lib-voronoi args="-p $HOME/voro++" # use existing Voro++ installation in $HOME/voro++
make lib-voronoi args="-h ~ voro++ -g -b -l" # download and build in ~/voro++ :pre make lib-voronoi args="-b -v voro++0.4.6" # download and build the 0.4.6 version in lib/voronoi/voro++-0.4.6 :pre
Note that the final -l switch is to create 2 symbolic (soft) links, Note that 2 symbolic (soft) links, "includelink" and "liblink", are
"includelink" and "liblink", in lib/voronoi to point to the Voro++ src created in lib/voronoi to point to the Voro++ src dir. When LAMMPS
dir. When LAMMPS builds it will use these links. You should not need builds in src it will use these links. You should not need to edit
to edit the lib/voronoi/Makefile.lammps file. the lib/voronoi/Makefile.lammps file.
You can then install/un-install the package and build LAMMPS in the You can then install/un-install the package and build LAMMPS in the
usual manner: usual manner:
@ -1396,7 +1458,8 @@ from the lammps/src dir, using a command like these, which simply
invoke the lib/atc/Install.py script with the specified args: invoke the lib/atc/Install.py script with the specified args:
make lib-atc # print help message make lib-atc # print help message
make lib-atc args="-m g++" # build with GNU g++ compiler make lib-atc args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
make lib-atc args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
make lib-atc args="-m icc" # build with Intel icc compiler :pre make lib-atc args="-m icc" # build with Intel icc compiler :pre
The build should produce two files: lib/atc/libatc.a and The build should produce two files: lib/atc/libatc.a and
@ -1414,7 +1477,9 @@ lib/linalg. In the latter case you also need to build the library
in lib/linalg with a command like these: in lib/linalg with a command like these:
make lib-linalg # print help message make lib-linalg # print help message
make lib-atc args="-m gfortran" # build with GNU Fortran compiler make lib-linalg args="-m serial" # build with GNU Fortran compiler (settings as with "make serial")
make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
make lib-linalg args="-m gfortran" # build with GNU Fortran compiler :pre
You can then install/un-install the package and build LAMMPS in the You can then install/un-install the package and build LAMMPS in the
usual manner: usual manner:
@ -1455,7 +1520,8 @@ one step from the lammps/src dir, using a command like these, which
simply invoke the lib/awpmd/Install.py script with the specified args: simply invoke the lib/awpmd/Install.py script with the specified args:
make lib-awpmd # print help message make lib-awpmd # print help message
make lib-awpmd args="-m g++" # build with GNU g++ compiler make lib-awpmd args="-m serial" # build with GNU g++ compiler and MPI STUBS (settings as with "make serial")
make lib-awpmd args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
make lib-awpmd args="-m icc" # build with Intel icc compiler :pre make lib-awpmd args="-m icc" # build with Intel icc compiler :pre
The build should produce two files: lib/awpmd/libawpmd.a and The build should produce two files: lib/awpmd/libawpmd.a and
@ -1473,7 +1539,9 @@ provided in lib/linalg. In the latter case you also need to build the
library in lib/linalg with a command like these: library in lib/linalg with a command like these:
make lib-linalg # print help message make lib-linalg # print help message
make lib-atc args="-m gfortran" # build with GNU Fortran compiler make lib-linalg args="-m serial" # build with GNU Fortran compiler (settings as with "make serial")
make lib-linalg args="-m mpi" # build with default MPI Fortran compiler (settings as with "make mpi")
make lib-linalg args="-m gfortran" # build with GNU Fortran compiler :pre
You can then install/un-install the package and build LAMMPS in the You can then install/un-install the package and build LAMMPS in the
usual manner: usual manner:
@ -1566,9 +1634,11 @@ Restraints. A "fix colvars"_fix_colvars.html command is implemented
which wraps a COLVARS library, which implements these methods. which wraps a COLVARS library, which implements these methods.
simulations. simulations.
[Authors:] Axel Kohlmeyer (Temple U). The COLVARS library was written [Authors:] The COLVARS library is written and maintained by
by Giacomo Fiorin (ICMS, Temple University, Philadelphia, PA, USA) and Giacomo Fiorin (ICMS, Temple University, Philadelphia, PA, USA)
Jerome Henin (LISM, CNRS, Marseille, France). and Jerome Henin (LISM, CNRS, Marseille, France), originally for
the NAMD MD code, but with portability in mind. Axel Kohlmeyer
(Temple U) provided the interface to LAMMPS.
[Install or un-install:] [Install or un-install:]
@ -1580,7 +1650,9 @@ which simply invoke the lib/colvars/Install.py script with the
specified args: specified args:
make lib-colvars # print help message make lib-colvars # print help message
make lib-colvars args="-m g++" # build with GNU g++ compiler :pre make lib-colvars args="-m serial" # build with GNU g++ compiler (settings as with "make serial")
make lib-colvars args="-m mpi" # build with default MPI compiler (settings as with "make mpi")
make lib-colvars args="-m g++-debug" # build with GNU g++ compiler and colvars debugging enabled :pre
The build should produce two files: lib/colvars/libcolvars.a and The build should produce two files: lib/colvars/libcolvars.a and
lib/colvars/Makefile.lammps. The latter is copied from an existing lib/colvars/Makefile.lammps. The latter is copied from an existing
@ -1863,12 +1935,17 @@ All of them have an "intel" in their style name. "Section
5.3.2"_accelerate_intel.html gives details of what hardware and 5.3.2"_accelerate_intel.html gives details of what hardware and
compilers are required on your system, and how to build and use this compilers are required on your system, and how to build and use this
package. Its styles can be invoked at run time via the "-sf intel" or package. Its styles can be invoked at run time via the "-sf intel" or
"-suffix intel" "command-line switches"_Section_start.html#start_7. "-suffix intel" "command-line switches"_Section_start.html#start_6.
Also see the "KOKKOS"_#KOKKOS, "OPT"_#OPT, and "USER-OMP"_#USER-OMP Also see the "KOKKOS"_#KOKKOS, "OPT"_#OPT, and "USER-OMP"_#USER-OMP
packages, which have styles optimized for CPUs and KNLs. packages, which have styles optimized for CPUs and KNLs.
You need to have an Intel compiler, version 14 or higher to take full You need to have an Intel compiler, version 14 or higher to take full
advantage of this package. advantage of this package. While compilation with GNU compilers is
supported, performance will be suboptimal.
NOTE: the USER-INTEL package contains styles that require using the
-restrict flag, when compiling with Intel compilers.
[Author:] Mike Brown (Intel). [Author:] Mike Brown (Intel).
@ -1887,7 +1964,7 @@ OPTFLAGS = -xHost -O2 -fp-model fast=2 -no-prec-div -qoverride-limits
CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \ CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \
-fno-alias -ansi-alias -restrict $(OPTFLAGS) -fno-alias -ansi-alias -restrict $(OPTFLAGS)
LINKFLAGS = -g -qopenmp $(OPTFLAGS) LINKFLAGS = -g -qopenmp $(OPTFLAGS)
LIB = -ltbbmalloc -ltbbmalloc_proxy LIB = -ltbbmalloc -ltbbmalloc_proxy :pre
For KNLs: For KNLs:
@ -1895,7 +1972,7 @@ OPTFLAGS = -xMIC-AVX512 -O2 -fp-model fast=2 -no-prec-div -qoverride-limits
CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \ CCFLAGS = -g -qopenmp -DLAMMPS_MEMALIGN=64 -no-offload \
-fno-alias -ansi-alias -restrict $(OPTFLAGS) -fno-alias -ansi-alias -restrict $(OPTFLAGS)
LINKFLAGS = -g -qopenmp $(OPTFLAGS) LINKFLAGS = -g -qopenmp $(OPTFLAGS)
LIB = -ltbbmalloc LIB = -ltbbmalloc :pre
Once you have an appropriate Makefile.machine, you can Once you have an appropriate Makefile.machine, you can
install/un-install the package and build LAMMPS in the usual manner. install/un-install the package and build LAMMPS in the usual manner.
@ -1919,8 +1996,8 @@ src/USER-INTEL: filenames -> commands
src/USER-INTEL/README src/USER-INTEL/README
"Section 5.3"_Section_accelerate.html#acc_3 "Section 5.3"_Section_accelerate.html#acc_3
"Section 5.3.2"_accelerate_gpu.html "Section 5.3.2"_accelerate_gpu.html
"Section 2.7 -sf intel"_Section_start.html#start_7 "Section 2.6 -sf intel"_Section_start.html#start_6
"Section 2.7 -pk intel"_Section_start.html#start_7 "Section 2.6 -pk intel"_Section_start.html#start_6
"package intel"_package.html "package intel"_package.html
Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (i) Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (i)
src/USER-INTEL/TEST src/USER-INTEL/TEST
@ -2193,18 +2270,22 @@ via OpenMP directives. All of them have an "omp" in their style name.
"Section 5.3.4"_accelerate_omp.html gives details of what hardware and "Section 5.3.4"_accelerate_omp.html gives details of what hardware and
compilers are required on your system, and how to build and use this compilers are required on your system, and how to build and use this
package. Its styles can be invoked at run time via the "-sf omp" or package. Its styles can be invoked at run time via the "-sf omp" or
"-suffix omp" "command-line switches"_Section_start.html#start_7. "-suffix omp" "command-line switches"_Section_start.html#start_6.
Also see the "KOKKOS"_#KOKKOS, "OPT"_#OPT, and Also see the "KOKKOS"_#KOKKOS, "OPT"_#OPT, and
"USER-INTEL"_#USER-INTEL packages, which have styles optimized for "USER-INTEL"_#USER-INTEL packages, which have styles optimized for
CPUs. CPUs.
[Author:] Axel Kohlmeyer (Temple U). [Author:] Axel Kohlmeyer (Temple U).
NOTE: The compile flags "-restrict" and "-fopenmp" must be used to NOTE: To enable multi-threading support the compile flag "-fopenmp"
build LAMMPS with the USER-OMP package, as well as the link flag and the link flag "-fopenmp" (for GNU compilers, you have to look up
"-fopenmp". They should be added to the CCFLAGS and LINKFLAGS lines the equivalent flags for other compilers) must be used to build LAMMPS.
of your Makefile.machine. See src/MAKE/OPTIONS/Makefile.omp for an When using Intel compilers, also the "-restrict" flag is required.
example. The USER-OMP package can be compiled without enabling OpenMP; then
all code will be compiled as serial and the only improvement over the
regular styles are some data access optimization. These flags should
be added to the CCFLAGS and LINKFLAGS lines of your Makefile.machine.
See src/MAKE/OPTIONS/Makefile.omp for an example.
Once you have an appropriate Makefile.machine, you can Once you have an appropriate Makefile.machine, you can
install/un-install the package and build LAMMPS in the usual manner: install/un-install the package and build LAMMPS in the usual manner:
@ -2217,7 +2298,7 @@ make machine :pre
make no-user-omp make no-user-omp
make machine :pre make machine :pre
CCFLAGS: add -fopenmp and -restrict CCFLAGS: add -fopenmp (and -restrict when using Intel compilers)
LINKFLAGS: add -fopenmp :ul LINKFLAGS: add -fopenmp :ul
[Supporting info:] [Supporting info:]
@ -2226,8 +2307,8 @@ src/USER-OMP: filenames -> commands
src/USER-OMP/README src/USER-OMP/README
"Section 5.3"_Section_accelerate.html#acc_3 "Section 5.3"_Section_accelerate.html#acc_3
"Section 5.3.4"_accelerate_omp.html "Section 5.3.4"_accelerate_omp.html
"Section 2.7 -sf omp"_Section_start.html#start_7 "Section 2.6 -sf omp"_Section_start.html#start_6
"Section 2.7 -pk omp"_Section_start.html#start_7 "Section 2.6 -pk omp"_Section_start.html#start_6
"package omp"_package.html "package omp"_package.html
Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (o) Styles sections of "Section 3.5"_Section_commands.html#cmd_5 for styles followed by (o)
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul "Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
@ -2286,12 +2367,14 @@ without changes to LAMMPS itself.
Before building LAMMPS with this package, you must first build the Before building LAMMPS with this package, you must first build the
QMMM library in lib/qmmm. You can do this manually if you prefer; QMMM library in lib/qmmm. You can do this manually if you prefer;
follow the first two steps explained in lib/colvars/README. You can follow the first two steps explained in lib/qmmm/README. You can
also do it in one step from the lammps/src dir, using a command like also do it in one step from the lammps/src dir, using a command like
these, which simply invoke the lib/colvars/Install.py script with the these, which simply invoke the lib/qmmm/Install.py script with the
specified args: specified args:
make lib-qmmm # print help message make lib-qmmm # print help message
make lib-qmmm args="-m serial" # build with GNU Fortran compiler (settings as in "make serial")
make lib-qmmm args="-m mpi" # build with default MPI compiler (settings as in "make mpi")
make lib-qmmm args="-m gfortran" # build with GNU Fortran compiler :pre make lib-qmmm args="-m gfortran" # build with GNU Fortran compiler :pre
The build should produce two files: lib/qmmm/libqmmm.a and The build should produce two files: lib/qmmm/libqmmm.a and
@ -2469,14 +2552,12 @@ step from the lammps/src dir, using a command like these, which simply
invoke the lib/smd/Install.py script with the specified args: invoke the lib/smd/Install.py script with the specified args:
make lib-smd # print help message make lib-smd # print help message
make lib-smd args="-g -l" # download in default lib/smd/eigen-eigen-* make lib-smd args="-b" # download and build in default lib/smd/eigen-eigen-...
make lib-smd args="-h . eigen -g -l" # download in lib/smd/eigen make lib-smd args="-p /usr/include/eigen3" # use existing Eigen installation in /usr/include/eigen3 :pre
make lib-smd args="-h ~ eigen -g -l" # download and build in ~/eigen :pre
Note that the final -l switch is to create a symbolic (soft) link Note that a symbolic (soft) link named "includelink" is created in
named "includelink" in lib/smd to point to the Eigen dir. When LAMMPS lib/smd to point to the Eigen dir. When LAMMPS builds it will use
builds it will use this link. You should not need to edit the this link. You should not need to edit the lib/smd/Makefile.lammps file.
lib/smd/Makefile.lammps file.
You can then install/un-install the package and build LAMMPS in the You can then install/un-install the package and build LAMMPS in the
usual manner: usual manner:

View File

@ -198,7 +198,7 @@ file and the shared library.
11.3 Building LAMMPS as a shared library :link(py_3),h4 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 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 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". LAMMPS. On Linux this is a library file that ends in ".so", not ".a".
@ -217,7 +217,7 @@ NOTE: If you are building LAMMPS with an MPI or FFT library or other
auxiliary libraries (used by various packages), then all of these auxiliary libraries (used by various packages), then all of these
extra libraries must also be shared libraries. If the LAMMPS extra libraries must also be shared libraries. If the LAMMPS
shared-library build fails with an error complaining about this, see 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 :line
@ -439,7 +439,7 @@ first importing from the lammps.py file:
>>> CDLL("liblammps.so") :pre >>> CDLL("liblammps.so") :pre
If an error occurs, carefully go thru the steps in "Section 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 library and about insuring Python can find the necessary two files
it needs. it needs.

View File

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

View File

@ -54,7 +54,7 @@ specify the # of GPUs per node
use GPU styles in your input script :ul use GPU styles in your input script :ul
The latter two steps can be done using the "-pk gpu" and "-sf gpu" 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 effect of the "-pk" or "-sf" switches can be duplicated by adding
the "package gpu"_package.html or "suffix gpu"_suffix.html commands the "package gpu"_package.html or "suffix gpu"_suffix.html commands
respectively to your input script. respectively to your input script.
@ -62,7 +62,7 @@ respectively to your input script.
[Required hardware/software:] [Required hardware/software:]
To use this package, you currently need to have an NVIDIA GPU and 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 Check if you have an NVIDIA GPU: cat /proc/driver/nvidia/gpus/0/information
Go to http://www.nvidia.com/object/cuda_get.html 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 This requires two steps (a,b): build the GPU library, then build
LAMMPS with the GPU package. LAMMPS with the GPU package.
You can do both these steps in one line, using the src/Make.py script, You can do both these steps in one line as described in
described in "Section 2.4"_Section_start.html#start_4 of the manual. "Section 4"_Section_packages.html 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
Or you can follow these two (a,b) steps: 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 lib/gpu) appropriate for your system. You should pay special
attention to 3 settings in this makefile. 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_ARCH = needs to be appropriate to your GPUs
CUDA_PREC = precision (double, mixed, single) you desire :ul 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 GPUs/mode. E.g. with 8 MPI tasks/node and 2 GPUs, each GPU will be
shared by 4 MPI tasks. 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 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. set Ng = # of GPUs/node to use.
lmp_machine -sf gpu -pk gpu 1 -in in.script # 1 MPI task uses 1 GPU 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 You must also use the "package gpu"_package.html command to enable the
GPU package, unless the "-sf gpu" or "-pk gpu" "command-line 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. number of GPUs/node to use, as well as other options.
[Speed-ups to expect:] [Speed-ups to expect:]

View File

@ -29,8 +29,10 @@ Bond Styles: fene, harmonic :l
Dihedral Styles: charmm, harmonic, opls :l Dihedral Styles: charmm, harmonic, opls :l
Fixes: nve, npt, nvt, nvt/sllod :l Fixes: nve, npt, nvt, nvt/sllod :l
Improper Styles: cvff, harmonic :l Improper Styles: cvff, harmonic :l
Pair Styles: buck/coul/cut, buck/coul/long, buck, eam, gayberne, Pair Styles: airebo, airebo/morse, buck/coul/cut, buck/coul/long,
charmm/coul/long, lj/cut, lj/cut/coul/long, lj/long/coul/long, sw, tersoff :l buck, eam, eam/alloy, eam/fs, gayberne, lj/charmm/coul/charmm,
lj/charmm/coul/long, lj/cut, lj/cut/coul/long, lj/long/coul/long, rebo,
sw, tersoff :l
K-Space Styles: pppm, pppm/disp :l K-Space Styles: pppm, pppm/disp :l
:ule :ule
@ -225,11 +227,9 @@ source /opt/intel/parallel_studio_xe_2016.3.067/psxevars.sh
# or psxevars.csh for C-shell # or psxevars.csh for C-shell
make intel_cpu_intelmpi :pre make intel_cpu_intelmpi :pre
Alternatively, the build can be accomplished with the src/Make.py Alternatively this can be done as a single command with
script, described in "Section 2.4"_Section_start.html#start_4 of the suitable make command invocations. This is discussed in "Section
manual. Type "Make.py -h" for help. For an example: 4"_Section_packages.html of the manual.
Make.py -v -p intel omp -intel cpu -a file intel_cpu_intelmpi :pre
Note that if you build with support for a Phi coprocessor, the same Note that if you build with support for a Phi coprocessor, the same
binary can be used on nodes with or without coprocessors installed. binary can be used on nodes with or without coprocessors installed.
@ -244,8 +244,7 @@ highly recommended for CCFLAGS and LINKFLAGS. LIB should include
is required for CCFLAGS and "-qoffload" is required for LINKFLAGS. is required for CCFLAGS and "-qoffload" is required for LINKFLAGS.
Other recommended CCFLAG options for best performance are Other recommended CCFLAG options for best performance are
"-O2 -fno-alias -ansi-alias -qoverride-limits fp-model fast=2 "-O2 -fno-alias -ansi-alias -qoverride-limits fp-model fast=2
-no-prec-div". The Make.py command will add all of these -no-prec-div".
automatically.
NOTE: The vectorization and math capabilities can differ depending on NOTE: The vectorization and math capabilities can differ depending on
the CPU. For Intel compilers, the "-x" flag specifies the type of the CPU. For Intel compilers, the "-x" flag specifies the type of
@ -301,7 +300,7 @@ Hyper-Threading technology disabled.
To enable USER-INTEL optimizations for all available styles used in To enable USER-INTEL optimizations for all available styles used in
the input script, the "-sf intel" 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 any requirement for editing the input script. This switch will
automatically append "intel" to styles that support it. It also automatically append "intel" to styles that support it. It also
invokes a default command: "package intel 1"_package.html. This invokes a default command: "package intel 1"_package.html. This
@ -314,7 +313,7 @@ support, that 1 coprocessor per node will be used with automatic
balancing of work between the CPU and the coprocessor. balancing of work between the CPU and the coprocessor.
You can specify different options for the USER-INTEL package by using 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, with keyword/value pairs as specified in the documentation. Here,
Nphi = # of Xeon Phi coprocessors/node (ignored without offload Nphi = # of Xeon Phi coprocessors/node (ignored without offload
support). Common options to the USER-INTEL package include {omp} to support). Common options to the USER-INTEL package include {omp} to
@ -387,7 +386,7 @@ can performed automatically by using "-sf hybrid intel opt" or
and "omp" suffixes can be appended manually in the input script. For and "omp" suffixes can be appended manually in the input script. For
the latter, the "package omp"_package.html command must be in the the latter, the "package omp"_package.html command must be in the
input script or the "-pk omp Nt" "command-line 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 number of OpenMP threads. The number of OpenMP threads should not be
set differently for the different packages. Note that the "suffix set differently for the different packages. Note that the "suffix
hybrid intel omp"_suffix.html command can also be used within the hybrid intel omp"_suffix.html command can also be used within the
@ -486,7 +485,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 effectively sorted at every rebuild of the neighbor lists. All the
available coprocessor threads on each Phi will be divided among MPI available coprocessor threads on each Phi will be divided among MPI
tasks, unless the {tptask} option of the "-pk intel" "command-line 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. threads per MPI task.
[Restrictions:] [Restrictions:]

View File

@ -60,8 +60,7 @@ More details follow.
use a C++11 compatible compiler use a C++11 compatible compiler
make yes-kokkos make yes-kokkos
make mpi KOKKOS_DEVICES=OpenMP # build with the KOKKOS package make mpi KOKKOS_DEVICES=OpenMP # build with the KOKKOS package
make kokkos_omp # or Makefile.kokkos_omp already has variable set make kokkos_omp # or Makefile.kokkos_omp already has variable set :pre
Make.py -v -p kokkos -kokkos omp -o mpi -a file mpi # or one-line build via Make.py :pre
mpirun -np 16 lmp_mpi -k on -sf kk -in in.lj # 1 node, 16 MPI tasks/node, no threads 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 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_DEVICES = Cuda, OpenMP
KOKKOS_ARCH = Kepler35 KOKKOS_ARCH = Kepler35
make yes-kokkos make yes-kokkos
make machine make machine :pre
Make.py -p kokkos -kokkos cuda arch=31 -o kokkos_cuda -a file kokkos_cuda :pre
mpirun -np 1 lmp_cuda -k on t 6 -sf kk -in in.lj # one MPI task, 6 threads on CPU 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 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_DEVICES = OpenMP
KOKKOS_ARCH = KNC KOKKOS_ARCH = KNC
make yes-kokkos make yes-kokkos
make machine make machine :pre
Make.py -p kokkos -kokkos phi -o kokkos_phi -a file mpi :pre
host=MIC, Intel Phi with 61 cores (240 threads/phi via 4x hardware threading): 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 mpirun -np 1 lmp_g++ -k on t 240 -sf kk -in in.lj # 1 MPI task on 1 Phi, 1*240 = 240
@ -116,7 +113,7 @@ To build with Kokkos support for CPUs, your compiler must support the
OpenMP interface. You should have one or more multi-core CPUs so that 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. multiple threads can be launched by each MPI task running on a CPU.
To build with Kokkos support for NVIDIA GPUs, NVIDIA Cuda software To build with Kokkos support for NVIDIA GPUs, NVIDIA CUDA software
version 7.5 or later must be installed on your system. See the version 7.5 or later must be installed on your system. See the
discussion for the "GPU"_accelerate_gpu.html package for details of discussion for the "GPU"_accelerate_gpu.html package for details of
how to check and do this. 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), You must choose at build time whether to build for CPUs (OpenMP),
GPUs, or Phi. GPUs, or Phi.
You can do any of these in one line, using the src/Make.py script, You can do any of these in one line, using the suitable make command
described in "Section 2.4"_Section_start.html#start_4 of the manual. line flags as described in "Section 4"_Section_packages.html of the
Type "Make.py -h" for help. If run from the src directory, these manual. If run from the src directory, these
commands will create src/lmp_kokkos_omp, lmp_kokkos_cuda, and commands will create src/lmp_kokkos_omp, lmp_kokkos_cuda, and
lmp_kokkos_phi. Note that the OMP and PHI options use lmp_kokkos_phi. Note that the OMP and PHI options use
src/MAKE/Makefile.mpi as the starting Makefile.machine. The CUDA src/MAKE/Makefile.mpi as the starting Makefile.machine. The CUDA
option uses src/MAKE/OPTIONS/Makefile.kokkos_cuda. option uses src/MAKE/OPTIONS/Makefile.kokkos_cuda.
The latter two steps can be done using the "-k on", "-pk kokkos" and 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 respectively. Or the effect of the "-pk" or "-sf" switches can be
duplicated by adding the "package kokkos"_package.html or "suffix duplicated by adding the "package kokkos"_package.html or "suffix
kk"_suffix.html commands respectively to your input script. kk"_suffix.html commands respectively to your input script.
@ -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. coprocessors is simply treated as running some number of MPI tasks.
You must use the "-k on" "command-line 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 takes additional arguments for hardware settings appropriate to your
system. Those arguments are "documented 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: options are:
-k on t Nt g Ng :pre -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 additional arguments) which sets various KOKKOS options to default
values, as discussed on the "package"_package.html command doc page. 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 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 you wish to change any of the default "package kokkos"_package.html
optionns set by the "-k on" "command-line 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 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 Newton flag to "on", just as is the case for non-accelerated pair
styles. You can do this with the "-pk" "command-line 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:] [Or run with the KOKKOS package by editing an input script:]
@ -332,7 +329,7 @@ appropriate thread and GPU values for host=OMP or host=MIC or
device=CUDA are the same. device=CUDA are the same.
You must still use the "-k on" "command-line You must still use the "-k on" "command-line
switch"_Section_start.html#start_7 to enable the KOKKOS package, and switch"_Section_start.html#start_6 to enable the KOKKOS package, and
specify its additional arguments for hardware options appropriate to specify its additional arguments for hardware options appropriate to
your system, as documented above. your system, as documented above.
@ -343,7 +340,7 @@ pair_style lj/cut/kk 2.5 :pre
You only need to use the "package kokkos"_package.html command if you 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" 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:] [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 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 typically equal N. Note that the default threads/task is 1, as set by
the "t" keyword of the "-k" "command-line 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 additional parallelism (beyond MPI) will be invoked on the host
CPU(s). CPU(s).
@ -429,7 +426,7 @@ details).
The -np setting of the mpirun command should set the number of MPI 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. 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 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 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 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 use -fopenmp with CCFLAGS and LINKFLAGS in Makefile.machine
make yes-user-omp make yes-user-omp
make mpi # build with USER-OMP package, if settings added to Makefile.mpi make mpi # build with USER-OMP package, if settings added to Makefile.mpi
make omp # or Makefile.omp already has settings make omp # or Makefile.omp already has settings :pre
Make.py -v -p omp -o mpi -a file mpi # or one-line build via Make.py :pre
lmp_mpi -sf omp -pk omp 16 < in.script # 1 MPI task, 16 threads 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 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 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 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 one command as described in "Section 4"_Section_packages.html of the manual.
2.4"_Section_start.html#start_4 of the manual. Type "Make.py -h" for
help.
Note that the CCFLAGS and LINKFLAGS settings in Makefile.machine must Note that the CCFLAGS and LINKFLAGS settings in Makefile.machine must
include "-fopenmp". Likewise, if you use an Intel compiler, the include "-fopenmp". Likewise, if you use an Intel compiler, the
CCFLAGS setting must include "-restrict". The Make.py command will CCFLAGS setting must include "-restrict".
add these automatically.
[Run with the USER-OMP package from the command line:] [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. node), otherwise performance will suffer.
As in the lines above, use the "-sf omp" "command-line 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 "omp" to styles that support it. The "-sf omp" switch also issues a
default "package omp 0"_package.html command, which will set the default "package omp 0"_package.html command, which will set the
number of threads per MPI task via the OMP_NUM_THREADS environment number of threads per MPI task via the OMP_NUM_THREADS environment
variable. variable.
You can also use the "-pk omp Nt" "command-line 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 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 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 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. follow.
make yes-opt make yes-opt
make mpi # build with the OPT package make mpi # build with the OPT package :pre
Make.py -v -p opt -o mpi -a file mpi # or one-line build via Make.py :pre
lmp_mpi -sf opt -in in.script # run in serial lmp_mpi -sf opt -in in.script # run in serial
mpirun -np 4 lmp_mpi -sf opt -in in.script # run in parallel :pre 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 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 two steps, using the "make" command. Or how to do it with one command
via the src/Make.py script, described in "Section as described in "Section 4"_Section_packages.html of the manual.
2.4"_Section_start.html#start_4 of the manual. Type "Make.py -h" for
help.
Note that if you use an Intel compiler to build with the OPT package, 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 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:] [Run with the OPT package from the command line:]
As in the lines above, use the "-sf opt" "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. "opt" to styles that support it.
[Or run with the OPT package by editing an input script:] [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 You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

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

View File

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

View File

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

View File

@ -394,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 based on the total computational time spent by that
processor. See details below on what time window is used. It uses processor. See details below on what time window is used. It uses
the same timing information as is used for the "MPI task timing 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 {Bond}, {Kspace}, and {Neigh}. The time spent in those portions of
the timestep are measured for each MPI rank, summed, then divided by 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 the number of particles owned by that processor. I.e. the weight is

View File

@ -56,7 +56,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for 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 You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -62,7 +62,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -54,7 +54,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for 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 You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for 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 You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for 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 You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for 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 You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -88,7 +88,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -133,7 +133,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -117,7 +117,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -180,9 +180,18 @@ will register an arbitrarily large spike at whatever distance they
happen to be at, and zero everywhere else. Coord(r) will show a step happen to be at, and zero everywhere else. Coord(r) will show a step
change from zero to one at the location of the spike in g(r). change from zero to one at the location of the spike in g(r).
NOTE: compute rdf can handle dynamic groups and systems where atoms
are added or removed, but this causes that certain normalization
parameters need to be recomputed in every step and include collective
communication operations. This will reduce performance and limit
parallel efficiency and scaling. For systems, where only the type
of atoms changes (e.g. when using "fix atom/swap"_fix_atom_swap.html),
you need to explicitly request the dynamic normalization updates
via "compute_modify dynamic yes"_compute_modify.html
[Related commands:] [Related commands:]
"fix ave/time"_fix_ave_time.html "fix ave/time"_fix_ave_time.html, "compute_modify"_compute_modify.html
[Default:] [Default:]

View File

@ -79,7 +79,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -86,7 +86,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -217,7 +217,7 @@ This compute is part of the VORONOI package. It is only enabled if
LAMMPS was built with that package. See the "Making LAMMPS was built with that package. See the "Making
LAMMPS"_Section_start.html#start_3 section for more info. LAMMPS"_Section_start.html#start_3 section for more info.
It also requiers you have a copy of the Voro++ library built and It also requires you have a copy of the Voro++ library built and
installed on your system. See instructions on obtaining and installed on your system. See instructions on obtaining and
installing the Voro++ software in the src/VORONOI/README file. installing the Voro++ software in the src/VORONOI/README file.

View File

@ -128,7 +128,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -153,7 +153,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -64,7 +64,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for 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 You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for 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 You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -58,7 +58,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -52,7 +52,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -52,7 +52,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -60,7 +60,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for 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 You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -26,7 +26,7 @@ command to the screen and/or log file as it is read and processed. If
an input script has errors, it can be useful to look at echoed output an input script has errors, it can be useful to look at echoed output
to see the last command processed. to see the last command processed.
The "command-line switch"_Section_start.html#start_5 -echo can be used The "command-line switch"_Section_start.html#start_6 -echo can be used
in place of this command. in place of this command.
[Restrictions:] none [Restrictions:] none

View File

@ -117,7 +117,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -77,7 +77,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -150,10 +150,9 @@ atoms. Note that adding a single bond always adds a new 1st neighbor
but may also induce *many* new 2nd and 3rd neighbors, depending on the but may also induce *many* new 2nd and 3rd neighbors, depending on the
molecular topology of your system. The "extra special per atom" molecular topology of your system. The "extra special per atom"
parameter must typically be set to allow for the new maximum total parameter must typically be set to allow for the new maximum total
size (1st + 2nd + 3rd neighbors) of this per-atom list. There are 3 size (1st + 2nd + 3rd neighbors) of this per-atom list. There are 2
ways to do this. See the "read_data"_read_data.html or ways to do this. See the "read_data"_read_data.html or
"create_box"_create_box.html or "special_bonds extra" commands for "create_box"_create_box.html commands for details.
details.
NOTE: Even if you do not use the {atype}, {dtype}, or {itype} NOTE: Even if you do not use the {atype}, {dtype}, or {itype}
keywords, the list of topological neighbors is updated for atoms keywords, the list of topological neighbors is updated for atoms

View File

@ -557,7 +557,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -41,7 +41,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -45,7 +45,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -383,6 +383,9 @@ called. Reneighboring is required.
Can be run in parallel, but aspects of the GCMC part will not scale Can be run in parallel, but aspects of the GCMC part will not scale
well in parallel. Only usable for 3D simulations. well in parallel. Only usable for 3D simulations.
When using fix gcmc in combination with fix shake or fix rigid,
only gcmc exchange moves are supported.
Note that very lengthy simulations involving insertions/deletions of Note that very lengthy simulations involving insertions/deletions of
billions of gas molecules may run out of atom or molecule IDs and billions of gas molecules may run out of atom or molecule IDs and
trigger an error, so it is better to run multiple shorter-duration trigger an error, so it is better to run multiple shorter-duration

View File

@ -102,7 +102,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for See "Section 5"_Section_accelerate.html of the manual for

View File

@ -276,7 +276,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script
by including their suffix, or you can use the "-suffix command-line 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. use the "suffix"_suffix.html command in your input script.
See "Section 5"_Section_accelerate.html of the manual for 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