forked from lijiext/lammps
Merge branch 'master' of github.com:lammps/lammps into granular-kokkos
This commit is contained in:
commit
3d0722b974
|
@ -17,6 +17,7 @@ src/GPU/* @ndtrung81
|
|||
src/KOKKOS/* @stanmoore1
|
||||
src/KIM/* @ellio167
|
||||
src/LATTE/* @cnegre
|
||||
src/MESSAGE/* @sjplimp
|
||||
src/SPIN/* @julient31
|
||||
src/USER-CGDNA/* @ohenrich
|
||||
src/USER-CGSDK/* @akohlmey
|
||||
|
@ -29,19 +30,86 @@ src/USER-MOFFF/* @hheenen
|
|||
src/USER-MOLFILE/* @akohlmey
|
||||
src/USER-NETCDF/* @pastewka
|
||||
src/USER-PHONON/* @lingtikong
|
||||
src/USER-PTM/* @pmla
|
||||
src/USER-OMP/* @akohlmey
|
||||
src/USER-QMMM/* @akohlmey
|
||||
src/USER-REAXC/* @hasanmetin
|
||||
src/USER-SCAFACOS/* @rhalver
|
||||
src/USER-TALLY/* @akohlmey
|
||||
src/USER-UEF/* @danicholson
|
||||
src/USER-VTK/* @rbberger
|
||||
|
||||
|
||||
# individual files in packages
|
||||
src/GPU/pair_vashishta_gpu.* @andeplane
|
||||
src/KOKKOS/pair_vashishta_kokkos.* @andeplane
|
||||
src/MANYBODY/pair_vashishta_table.* @andeplane
|
||||
src/MANYBODY/pair_atm.* @sergeylishchuk
|
||||
src/USER-MISC/fix_bond_react.* @jrgissing
|
||||
src/USER-MISC/*_grem.* @dstelter92
|
||||
src/USER-MISC/compute_stress_mop*.* @RomainVermorel
|
||||
|
||||
# core LAMMPS classes
|
||||
src/lammps.* @sjplimp
|
||||
src/pointers.h @sjplimp
|
||||
src/atom.* @sjplimp
|
||||
src/atom_vec.* @sjplimp
|
||||
src/angle.* @sjplimp
|
||||
src/bond.* @sjplimp
|
||||
src/comm*.* @sjplimp
|
||||
src/compute.* @sjplimp
|
||||
src/dihedral.* @sjplimp
|
||||
src/domain.* @sjplimp
|
||||
src/dump*.* @sjplimp
|
||||
src/error.* @sjplimp
|
||||
src/finish.* @sjplimp
|
||||
src/fix.* @sjplimp
|
||||
src/force.* @sjplimp
|
||||
src/group.* @sjplimp
|
||||
src/improper.* @sjplimp
|
||||
src/kspace.* @sjplimp
|
||||
src/lmptyp.h @sjplimp
|
||||
src/library.* @sjplimp
|
||||
src/main.cpp @sjplimp
|
||||
src/memory.* @sjplimp
|
||||
src/modify.* @sjplimp
|
||||
src/molecule.* @sjplimp
|
||||
src/my_page.h @sjplimp
|
||||
src/my_pool_chunk.h @sjplimp
|
||||
src/npair*.* @sjplimp
|
||||
src/ntopo*.* @sjplimp
|
||||
src/nstencil*.* @sjplimp
|
||||
src/neighbor.* @sjplimp
|
||||
src/nbin*.* @sjplimp
|
||||
src/neigh_*.* @sjplimp
|
||||
src/output.* @sjplimp
|
||||
src/pair.* @sjplimp
|
||||
src/rcb.* @sjplimp
|
||||
src/random_*.* @sjplimp
|
||||
src/region*.* @sjplimp
|
||||
src/rcb.* @sjplimp
|
||||
src/read*.* @sjplimp
|
||||
src/rerun.* @sjplimp
|
||||
src/run.* @sjplimp
|
||||
src/respa.* @sjplimp
|
||||
src/set.* @sjplimp
|
||||
src/special.* @sjplimp
|
||||
src/suffix.h @sjplimp
|
||||
src/thermo.* @sjplimp
|
||||
src/universe.* @sjplimp
|
||||
src/update.* @sjplimp
|
||||
src/variable.* @sjplimp
|
||||
src/verlet.* @sjplimp
|
||||
src/velocity.* @sjplimp
|
||||
src/write_data.* @sjplimp
|
||||
src/write_restart.* @sjplimp
|
||||
|
||||
# overrides for specific files
|
||||
src/dump_movie.* @akohlmey
|
||||
src/exceptions.h @rbberger
|
||||
src/fix_nh.* @athomps
|
||||
src/info.* @akohlmey @rbberger
|
||||
src/timer.* @akohlmey
|
||||
|
||||
# tools
|
||||
tools/msi2lmp/* @akohlmey
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
*~
|
||||
*.o
|
||||
*.so
|
||||
*.lo
|
||||
*.cu_o
|
||||
*.ptx
|
||||
*_ptx.h
|
||||
|
@ -32,6 +33,7 @@ log.cite
|
|||
.Trashes
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
.clang-format
|
||||
|
||||
#cmake
|
||||
/build*
|
||||
|
|
|
@ -13,7 +13,7 @@ get_filename_component(LAMMPS_DOC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../doc ABSOLUT
|
|||
|
||||
|
||||
# To avoid conflicts with the conventional Makefile build system, we build everything here
|
||||
file(GLOB LIB_SOURCES ${LAMMPS_SOURCE_DIR}/*.cpp)
|
||||
file(GLOB LIB_SOURCES ${LAMMPS_SOURCE_DIR}/[^.]*.cpp)
|
||||
file(GLOB LMP_SOURCES ${LAMMPS_SOURCE_DIR}/main.cpp)
|
||||
list(REMOVE_ITEM LIB_SOURCES ${LMP_SOURCES})
|
||||
|
||||
|
@ -43,6 +43,29 @@ function(validate_option name values)
|
|||
endif()
|
||||
endfunction(validate_option)
|
||||
|
||||
function(get_lammps_version version_header variable)
|
||||
file(READ ${version_header} line)
|
||||
set(MONTHS x Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
|
||||
string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\1" day "${line}")
|
||||
string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\2" month "${line}")
|
||||
string(REGEX REPLACE "#define LAMMPS_VERSION \"([0-9]+) ([A-Za-z]+) ([0-9]+)\"" "\\3" year "${line}")
|
||||
string(STRIP ${day} day)
|
||||
string(STRIP ${month} month)
|
||||
string(STRIP ${year} year)
|
||||
list(FIND MONTHS "${month}" month)
|
||||
string(LENGTH ${day} day_length)
|
||||
string(LENGTH ${month} month_length)
|
||||
if(day_length EQUAL 1)
|
||||
set(day "0${day}")
|
||||
endif()
|
||||
if(month_length EQUAL 1)
|
||||
set(month "0${month}")
|
||||
endif()
|
||||
set(${variable} "${year}${month}${day}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
get_lammps_version(${LAMMPS_SOURCE_DIR}/version.h LAMMPS_VERSION)
|
||||
|
||||
# Cmake modules/macros are in a subdirectory to keep this file cleaner
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules)
|
||||
|
||||
|
@ -113,6 +136,7 @@ if(BUILD_EXE)
|
|||
if(LAMMPS_MACHINE)
|
||||
set(LAMMPS_MACHINE "_${LAMMPS_MACHINE}")
|
||||
endif()
|
||||
set(LAMMPS_BINARY lmp${LAMMPS_MACHINE})
|
||||
endif()
|
||||
|
||||
option(BUILD_LIB "Build LAMMPS library" OFF)
|
||||
|
@ -121,10 +145,10 @@ if(BUILD_LIB)
|
|||
if(BUILD_SHARED_LIBS) # for all pkg libs, mpi_stubs and linalg
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
set(LIB_SUFFIX "" CACHE STRING "Suffix to append to liblammps and pkg-config file")
|
||||
mark_as_advanced(LIB_SUFFIX)
|
||||
if(LIB_SUFFIX)
|
||||
set(LIB_SUFFIX "_${LIB_SUFFIX}")
|
||||
set(LAMMPS_LIB_SUFFIX "" CACHE STRING "Suffix to append to liblammps and pkg-config file")
|
||||
mark_as_advanced(LAMMPS_LIB_SUFFIX)
|
||||
if(LAMMPS_LIB_SUFFIX)
|
||||
set(LAMMPS_LIB_SUFFIX "_${LAMMPS_LIB_SUFFIX}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
@ -139,6 +163,35 @@ set(LAMMPS_LINK_LIBS)
|
|||
set(LAMMPS_DEPS)
|
||||
set(LAMMPS_API_DEFINES)
|
||||
|
||||
set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR
|
||||
KSPACE MANYBODY MC MEAM MESSAGE MISC MOLECULE PERI REAX REPLICA RIGID SHOCK
|
||||
SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD
|
||||
USER-BOCS USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION
|
||||
USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD
|
||||
USER-MEAMC USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF
|
||||
USER-PHONON USER-PTM USER-QTB USER-REAXC USER-SCAFACOS USER-SMD USER-SMTBQ
|
||||
USER-SPH USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM)
|
||||
set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU)
|
||||
set(OTHER_PACKAGES CORESHELL QEQ)
|
||||
foreach(PKG ${DEFAULT_PACKAGES})
|
||||
option(PKG_${PKG} "Build ${PKG} Package" OFF)
|
||||
endforeach()
|
||||
foreach(PKG ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
|
||||
option(PKG_${PKG} "Build ${PKG} Package" OFF)
|
||||
endforeach()
|
||||
|
||||
######################################################
|
||||
# packages with special compiler needs or external libs
|
||||
######################################################
|
||||
if(PKG_REAX OR PKG_MEAM OR PKG_USER-QUIP OR PKG_USER-QMMM OR PKG_LATTE OR PKG_USER-SCAFACOS)
|
||||
enable_language(Fortran)
|
||||
endif()
|
||||
|
||||
if(PKG_MEAM OR PKG_USER-H5MD OR PKG_USER-QMMM OR PKG_USER-SCAFACOS)
|
||||
enable_language(C)
|
||||
endif()
|
||||
|
||||
# do MPI detection after language activation, if MPI for these language is required
|
||||
find_package(MPI QUIET)
|
||||
option(BUILD_MPI "Build MPI version" ${MPI_FOUND})
|
||||
if(BUILD_MPI)
|
||||
|
@ -183,25 +236,52 @@ endif()
|
|||
option(CMAKE_VERBOSE_MAKEFILE "Verbose makefile" OFF)
|
||||
|
||||
option(ENABLE_TESTING "Enable testing" OFF)
|
||||
if(ENABLE_TESTING)
|
||||
if(ENABLE_TESTING AND BUILD_EXE)
|
||||
enable_testing()
|
||||
endif(ENABLE_TESTING)
|
||||
option(LAMMPS_TESTING_SOURCE_DIR "Location of lammps-testing source directory" "")
|
||||
option(LAMMPS_TESTING_GIT_TAG "Git tag of lammps-testing" "master")
|
||||
mark_as_advanced(LAMMPS_TESTING_SOURCE_DIR LAMMPS_TESTING_GIT_TAG)
|
||||
|
||||
set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE GRANULAR
|
||||
KSPACE MANYBODY MC MEAM MISC MOLECULE PERI REAX REPLICA RIGID SHOCK SPIN SNAP
|
||||
SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD USER-BOCS
|
||||
USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE
|
||||
USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC
|
||||
USER-MOFFF USER-MOLFILE USER-NETCDF USER-PHONON USER-QTB USER-REAXC USER-SMD
|
||||
USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-VTK USER-QUIP USER-QMMM)
|
||||
set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU)
|
||||
set(OTHER_PACKAGES CORESHELL QEQ)
|
||||
foreach(PKG ${DEFAULT_PACKAGES})
|
||||
option(PKG_${PKG} "Build ${PKG} Package" OFF)
|
||||
endforeach()
|
||||
foreach(PKG ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
|
||||
option(PKG_${PKG} "Build ${PKG} Package" OFF)
|
||||
endforeach()
|
||||
if (CMAKE_VERSION VERSION_GREATER "3.10.3" AND NOT LAMMPS_TESTING_SOURCE_DIR)
|
||||
include(FetchContent)
|
||||
|
||||
FetchContent_Declare(lammps-testing
|
||||
GIT_REPOSITORY https://github.com/lammps/lammps-testing.git
|
||||
GIT_TAG ${LAMMPS_TESTING_GIT_TAG}
|
||||
)
|
||||
|
||||
FetchContent_GetProperties(lammps-testing)
|
||||
if(NOT lammps-testing_POPULATED)
|
||||
message(STATUS "Downloading tests...")
|
||||
FetchContent_Populate(lammps-testing)
|
||||
endif()
|
||||
|
||||
set(LAMMPS_TESTING_SOURCE_DIR ${lammps-testing_SOURCE_DIR})
|
||||
elseif(NOT LAMMPS_TESTING_SOURCE_DIR)
|
||||
message(WARNING "Full test-suite requires CMake >= 3.11 or copy of\n"
|
||||
"https://github.com/lammps/lammps-testing in LAMMPS_TESTING_SOURCE_DIR")
|
||||
endif()
|
||||
|
||||
if(EXISTS ${LAMMPS_TESTING_SOURCE_DIR})
|
||||
message(STATUS "Running test discovery...")
|
||||
|
||||
file(GLOB_RECURSE TEST_SCRIPTS ${LAMMPS_TESTING_SOURCE_DIR}/tests/core/*/in.*)
|
||||
foreach(script_path ${TEST_SCRIPTS})
|
||||
get_filename_component(TEST_NAME ${script_path} EXT)
|
||||
get_filename_component(SCRIPT_NAME ${script_path} NAME)
|
||||
get_filename_component(PARENT_DIR ${script_path} DIRECTORY)
|
||||
string(SUBSTRING ${TEST_NAME} 1 -1 TEST_NAME)
|
||||
string(REPLACE "-" "_" TEST_NAME ${TEST_NAME})
|
||||
string(REPLACE "+" "_" TEST_NAME ${TEST_NAME})
|
||||
set(TEST_NAME "test_core_${TEST_NAME}_serial")
|
||||
add_test(${TEST_NAME} ${CMAKE_BINARY_DIR}/${LAMMPS_BINARY} -in ${SCRIPT_NAME})
|
||||
set_tests_properties(${TEST_NAME} PROPERTIES WORKING_DIRECTORY ${PARENT_DIR})
|
||||
endforeach()
|
||||
list(LENGTH TEST_SCRIPTS NUM_TESTS)
|
||||
|
||||
message(STATUS "Found ${NUM_TESTS} tests.")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
macro(pkg_depends PKG1 PKG2)
|
||||
if(PKG_${PKG1} AND NOT (PKG_${PKG2} OR BUILD_${PKG2}))
|
||||
|
@ -215,17 +295,7 @@ pkg_depends(MPIIO MPI)
|
|||
pkg_depends(USER-ATC MANYBODY)
|
||||
pkg_depends(USER-LB MPI)
|
||||
pkg_depends(USER-PHONON KSPACE)
|
||||
|
||||
######################################################
|
||||
# packages with special compiler needs or external libs
|
||||
######################################################
|
||||
if(PKG_REAX OR PKG_MEAM OR PKG_USER-QUIP OR PKG_USER-QMMM OR PKG_LATTE)
|
||||
enable_language(Fortran)
|
||||
endif()
|
||||
|
||||
if(PKG_MEAM OR PKG_USER-H5MD OR PKG_USER-QMMM)
|
||||
enable_language(C)
|
||||
endif()
|
||||
pkg_depends(USER-SCAFACOS MPI)
|
||||
|
||||
find_package(OpenMP QUIET)
|
||||
option(BUILD_OMP "Build with OpenMP support" ${OpenMP_FOUND})
|
||||
|
@ -276,11 +346,14 @@ endif()
|
|||
|
||||
if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE)
|
||||
find_package(LAPACK)
|
||||
if(NOT LAPACK_FOUND)
|
||||
find_package(BLAS)
|
||||
if(NOT LAPACK_FOUND OR NOT BLAS_FOUND)
|
||||
enable_language(Fortran)
|
||||
file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/*.[fF])
|
||||
file(GLOB LAPACK_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/linalg/[^.]*.[fF])
|
||||
add_library(linalg STATIC ${LAPACK_SOURCES})
|
||||
set(LAPACK_LIBRARIES linalg)
|
||||
else()
|
||||
list(APPEND LAPACK_LIBRARIES ${BLAS_LIBRARIES})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
@ -400,6 +473,57 @@ if(PKG_LATTE)
|
|||
list(APPEND LAMMPS_LINK_LIBS ${LATTE_LIBRARIES} ${LAPACK_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(PKG_USER-SCAFACOS)
|
||||
find_package(GSL REQUIRED)
|
||||
option(DOWNLOAD_SCAFACOS "Download ScaFaCoS (instead of using the system's one)" OFF)
|
||||
if(DOWNLOAD_SCAFACOS)
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(scafacos_build
|
||||
URL https://github.com/scafacos/scafacos/releases/download/v1.0.1/scafacos-1.0.1.tar.gz
|
||||
URL_MD5 bd46d74e3296bd8a444d731bb10c1738
|
||||
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR>
|
||||
--disable-doc
|
||||
--enable-fcs-solvers=fmm,p2nfft,direct,ewald,p3m
|
||||
--with-internal-fftw
|
||||
--with-internal-pfft
|
||||
--with-internal-pnfft
|
||||
$<$<BOOL:${BUILD_SHARED_LIBS}>:--with-pic>
|
||||
FC=${CMAKE_MPI_Fortran_COMPILER}
|
||||
CXX=${CMAKE_MPI_CXX_COMPILER}
|
||||
CC=${CMAKE_MPI_C_COMPILER}
|
||||
F77=
|
||||
)
|
||||
ExternalProject_get_property(scafacos_build INSTALL_DIR)
|
||||
set(SCAFACOS_BUILD_DIR ${INSTALL_DIR})
|
||||
set(SCAFACOS_INCLUDE_DIRS ${SCAFACOS_BUILD_DIR}/include)
|
||||
list(APPEND LAMMPS_DEPS scafacos_build)
|
||||
# list and order from pkg_config file of ScaFaCoS build
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_direct.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_ewald.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_fmm.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_p2nfft.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_p3m.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${GSL_LIBRARIES})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_near.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_gridsort.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_resort.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_redist.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_common.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_pnfft.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_pfft.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_fftw3_mpi.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_BUILD_DIR}/lib/libfcs_fftw3.a)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${MPI_Fortran_LIBRARIES})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${MPI_C_LIBRARIES})
|
||||
else()
|
||||
FIND_PACKAGE(PkgConfig REQUIRED)
|
||||
PKG_CHECK_MODULES(SCAFACOS scafacos REQUIRED)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_LDFLAGS})
|
||||
endif()
|
||||
include_directories(${SCAFACOS_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
if(PKG_USER-MOLFILE)
|
||||
add_library(molfile INTERFACE)
|
||||
target_include_directories(molfile INTERFACE ${LAMMPS_LIB_SOURCE_DIR}/molfile)
|
||||
|
@ -409,8 +533,8 @@ endif()
|
|||
|
||||
if(PKG_USER-NETCDF)
|
||||
find_package(NetCDF REQUIRED)
|
||||
include_directories(NETCDF_INCLUDE_DIR)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${NETCDF_LIBRARY})
|
||||
include_directories(${NETCDF_INCLUDE_DIRS})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${NETCDF_LIBRARIES})
|
||||
add_definitions(-DLMP_HAS_NETCDF -DNC_64BIT_DATA=0x0020)
|
||||
endif()
|
||||
|
||||
|
@ -427,8 +551,9 @@ if(PKG_USER-SMD)
|
|||
set(EIGEN3_INCLUDE_DIR ${SOURCE_DIR})
|
||||
list(APPEND LAMMPS_DEPS Eigen3_build)
|
||||
else()
|
||||
find_package(Eigen3)
|
||||
if(NOT Eigen3_FOUND)
|
||||
find_package(Eigen3 NO_MODULE)
|
||||
mark_as_advanced(Eigen3_DIR)
|
||||
if(NOT EIGEN3_FOUND)
|
||||
message(FATAL_ERROR "Eigen3 not found, help CMake to find it by setting EIGEN3_INCLUDE_DIR, or set DOWNLOAD_EIGEN3=ON to download it")
|
||||
endif()
|
||||
endif()
|
||||
|
@ -478,6 +603,40 @@ if(PKG_KIM)
|
|||
include_directories(${KIM_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
if(PKG_MESSAGE)
|
||||
option(MESSAGE_ZMQ "Use ZeroMQ in MESSAGE package" OFF)
|
||||
file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.F
|
||||
${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.c
|
||||
${LAMMPS_LIB_SOURCE_DIR}/message/cslib/[^.]*.cpp)
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
add_library(cslib SHARED ${cslib_SOURCES})
|
||||
else()
|
||||
add_library(cslib STATIC ${cslib_SOURCES})
|
||||
endif()
|
||||
|
||||
if(BUILD_MPI)
|
||||
target_compile_definitions(cslib PRIVATE -DMPI_YES)
|
||||
set_target_properties(cslib PROPERTIES OUTPUT_NAME "csmpi")
|
||||
else()
|
||||
target_compile_definitions(cslib PRIVATE -DMPI_NO)
|
||||
set_target_properties(cslib PROPERTIES OUTPUT_NAME "csnompi")
|
||||
endif()
|
||||
|
||||
if(MESSAGE_ZMQ)
|
||||
target_compile_definitions(cslib PRIVATE -DZMQ_YES)
|
||||
find_package(ZMQ REQUIRED)
|
||||
target_include_directories(cslib PRIVATE ${ZMQ_INCLUDE_DIRS})
|
||||
target_link_libraries(cslib PUBLIC ${ZMQ_LIBRARIES})
|
||||
else()
|
||||
target_compile_definitions(cslib PRIVATE -DZMQ_NO)
|
||||
target_include_directories(cslib PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src/STUBS_ZMQ)
|
||||
endif()
|
||||
|
||||
list(APPEND LAMMPS_LINK_LIBS cslib)
|
||||
include_directories(${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src)
|
||||
endif()
|
||||
|
||||
if(PKG_MSCG)
|
||||
find_package(GSL REQUIRED)
|
||||
option(DOWNLOAD_MSCG "Download latte (instead of using the system's one)" OFF)
|
||||
|
@ -564,8 +723,8 @@ RegisterStyles(${LAMMPS_SOURCE_DIR})
|
|||
foreach(PKG ${DEFAULT_PACKAGES})
|
||||
set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG})
|
||||
|
||||
file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/*.cpp)
|
||||
file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/*.h)
|
||||
file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/[^.]*.cpp)
|
||||
file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/[^.]*.h)
|
||||
|
||||
# check for package files in src directory due to old make system
|
||||
DetectBuildSystemConflict(${LAMMPS_SOURCE_DIR} ${${PKG}_SOURCES} ${${PKG}_HEADERS})
|
||||
|
@ -583,8 +742,8 @@ endforeach()
|
|||
foreach(PKG ${ACCEL_PACKAGES})
|
||||
set(${PKG}_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/${PKG})
|
||||
|
||||
file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/*.cpp)
|
||||
file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/*.h)
|
||||
file(GLOB ${PKG}_SOURCES ${${PKG}_SOURCES_DIR}/[^.]*.cpp)
|
||||
file(GLOB ${PKG}_HEADERS ${${PKG}_SOURCES_DIR}/[^.]*.h)
|
||||
|
||||
# check for package files in src directory due to old make system
|
||||
DetectBuildSystemConflict(${LAMMPS_SOURCE_DIR} ${${PKG}_SOURCES} ${${PKG}_HEADERS})
|
||||
|
@ -598,8 +757,10 @@ foreach(SIMPLE_LIB REAX MEAM POEMS USER-ATC USER-AWPMD USER-COLVARS USER-H5MD
|
|||
if(PKG_${SIMPLE_LIB})
|
||||
string(REGEX REPLACE "^USER-" "" PKG_LIB "${SIMPLE_LIB}")
|
||||
string(TOLOWER "${PKG_LIB}" PKG_LIB)
|
||||
file(GLOB_RECURSE ${PKG_LIB}_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.F
|
||||
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.c ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/*.cpp)
|
||||
file(GLOB_RECURSE ${PKG_LIB}_SOURCES
|
||||
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.F
|
||||
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.c
|
||||
${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB}/[^.]*.cpp)
|
||||
add_library(${PKG_LIB} STATIC ${${PKG_LIB}_SOURCES})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${PKG_LIB})
|
||||
if(PKG_LIB STREQUAL awpmd)
|
||||
|
@ -674,13 +835,16 @@ if(PKG_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_omp.cpp
|
||||
${USER-OMP_SOURCES_DIR}/fix_nh_omp.cpp
|
||||
${USER-OMP_SOURCES_DIR}/fix_nh_sphere_omp.cpp)
|
||||
${USER-OMP_SOURCES_DIR}/fix_nh_sphere_omp.cpp
|
||||
${USER-OMP_SOURCES_DIR}/domain_omp.cpp)
|
||||
add_definitions(-DLMP_USER_OMP)
|
||||
set_property(GLOBAL PROPERTY "OMP_SOURCES" "${USER-OMP_SOURCES}")
|
||||
|
||||
# detects styles which have USER-OMP version
|
||||
RegisterStylesExt(${USER-OMP_SOURCES_DIR} omp OMP_SOURCES)
|
||||
|
||||
RegisterFixStyle("${USER-OMP_SOURCES_DIR}/fix_omp.h")
|
||||
|
||||
get_property(USER-OMP_SOURCES GLOBAL PROPERTY OMP_SOURCES)
|
||||
|
||||
|
@ -880,7 +1044,7 @@ if(PKG_GPU)
|
|||
set(GPU_PREC_SETTING "SINGLE_SINGLE")
|
||||
endif()
|
||||
|
||||
file(GLOB GPU_LIB_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cpp)
|
||||
file(GLOB GPU_LIB_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cpp)
|
||||
file(MAKE_DIRECTORY ${LAMMPS_LIB_BINARY_DIR}/gpu)
|
||||
|
||||
if(GPU_API STREQUAL "CUDA")
|
||||
|
@ -893,15 +1057,15 @@ if(PKG_GPU)
|
|||
|
||||
set(GPU_ARCH "sm_30" CACHE STRING "LAMMPS GPU CUDA SM architecture (e.g. sm_60)")
|
||||
|
||||
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/*.cu)
|
||||
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu ${CMAKE_CURRENT_SOURCE_DIR}/gpu/[^.]*.cu)
|
||||
list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_pppm.cu)
|
||||
|
||||
cuda_include_directories(${LAMMPS_LIB_SOURCE_DIR}/gpu ${LAMMPS_LIB_BINARY_DIR}/gpu)
|
||||
|
||||
if(CUDPP_OPT)
|
||||
cuda_include_directories(${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini)
|
||||
file(GLOB GPU_LIB_CUDPP_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/*.cpp)
|
||||
file(GLOB GPU_LIB_CUDPP_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/*.cu)
|
||||
file(GLOB GPU_LIB_CUDPP_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/[^.]*.cpp)
|
||||
file(GLOB GPU_LIB_CUDPP_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini/[^.]*.cu)
|
||||
endif()
|
||||
|
||||
cuda_compile_cubin(GPU_GEN_OBJS ${GPU_LIB_CU} OPTIONS
|
||||
|
@ -950,7 +1114,7 @@ if(PKG_GPU)
|
|||
include(OpenCLUtils)
|
||||
set(OCL_COMMON_HEADERS ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_preprocessor.h ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_aux_fun1.h)
|
||||
|
||||
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cu)
|
||||
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/[^.]*.cu)
|
||||
list(REMOVE_ITEM GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne.cu ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_gayberne_lj.cu)
|
||||
|
||||
foreach(GPU_KERNEL ${GPU_LIB_CU})
|
||||
|
@ -1008,7 +1172,9 @@ include_directories(${LAMMPS_STYLE_HEADERS_DIR})
|
|||
######################################
|
||||
set(temp "#ifndef LMP_INSTALLED_PKGS_H\n#define LMP_INSTALLED_PKGS_H\n")
|
||||
set(temp "${temp}const char * LAMMPS_NS::LAMMPS::installed_packages[] = {\n")
|
||||
foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
|
||||
set(temp_PKG_LIST ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
|
||||
list(SORT temp_PKG_LIST)
|
||||
foreach(PKG ${temp_PKG_LIST})
|
||||
if(PKG_${PKG})
|
||||
set(temp "${temp} \"${PKG}\",\n")
|
||||
endif()
|
||||
|
@ -1033,14 +1199,14 @@ if(BUILD_LIB)
|
|||
if(LAMMPS_DEPS)
|
||||
add_dependencies(lammps ${LAMMPS_DEPS})
|
||||
endif()
|
||||
set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LIB_SUFFIX})
|
||||
if(BUILD_SHARED_LIBS)
|
||||
set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
|
||||
install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps)
|
||||
configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc @ONLY)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||
endif()
|
||||
set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LAMMPS_LIB_SUFFIX})
|
||||
set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION})
|
||||
install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps)
|
||||
configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_LIB_SUFFIX}.pc @ONLY)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||
configure_file(FindLAMMPS.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LAMMPS_LIB_SUFFIX}.cmake @ONLY)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LAMMPS_LIB_SUFFIX}.cmake DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/Module)
|
||||
else()
|
||||
list(APPEND LMP_SOURCES ${LIB_SOURCES})
|
||||
endif()
|
||||
|
@ -1056,10 +1222,11 @@ if(BUILD_EXE)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
set_target_properties(lmp PROPERTIES OUTPUT_NAME lmp${LAMMPS_MACHINE})
|
||||
set_target_properties(lmp PROPERTIES OUTPUT_NAME ${LAMMPS_BINARY})
|
||||
install(TARGETS lmp DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(FILES ${LAMMPS_DOC_DIR}/lammps.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 RENAME ${LAMMPS_BINARY}.1)
|
||||
if(ENABLE_TESTING)
|
||||
add_test(ShowHelp lmp${LAMMPS_MACHINE} -help)
|
||||
add_test(ShowHelp ${LAMMPS_BINARY} -help)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
@ -1074,7 +1241,7 @@ if(BUILD_DOC)
|
|||
|
||||
set(VIRTUALENV ${PYTHON_EXECUTABLE} -m virtualenv)
|
||||
|
||||
file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/*.txt)
|
||||
file(GLOB DOC_SOURCES ${LAMMPS_DOC_DIR}/src/[^.]*.txt)
|
||||
file(GLOB PDF_EXTRA_SOURCES ${LAMMPS_DOC_DIR}/src/lammps_commands*.txt ${LAMMPS_DOC_DIR}/src/lammps_support.txt ${LAMMPS_DOC_DIR}/src/lammps_tutorials.txt)
|
||||
list(REMOVE_ITEM DOC_SOURCES ${PDF_EXTRA_SOURCES})
|
||||
|
||||
|
@ -1127,7 +1294,7 @@ endif()
|
|||
# Install potential files in data directory
|
||||
###############################################################################
|
||||
set(LAMMPS_POTENTIALS_DIR ${CMAKE_INSTALL_FULL_DATADIR}/lammps/potentials)
|
||||
install(DIRECTORY ${LAMMPS_SOURCE_DIR}/../potentials DESTINATION ${CMAKE_INSTALL_DATADIR}/lammps/potentials)
|
||||
install(DIRECTORY ${LAMMPS_SOURCE_DIR}/../potentials/ DESTINATION ${LAMMPS_POTENTIALS_DIR})
|
||||
|
||||
configure_file(etc/profile.d/lammps.sh.in ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.sh @ONLY)
|
||||
configure_file(etc/profile.d/lammps.csh.in ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.csh @ONLY)
|
||||
|
@ -1169,7 +1336,7 @@ endif()
|
|||
###############################################################################
|
||||
# Print package summary
|
||||
###############################################################################
|
||||
foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES})
|
||||
foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES} ${OTHER_PACKAGES})
|
||||
if(PKG_${PKG})
|
||||
message(STATUS "Building package: ${PKG}")
|
||||
endif()
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
# - Find liblammps
|
||||
# Find the native liblammps headers and libraries.
|
||||
#
|
||||
# The following variables will set:
|
||||
# LAMMPS_INCLUDE_DIRS - where to find lammps/library.h, etc.
|
||||
# LAMMPS_LIBRARIES - List of libraries when using lammps.
|
||||
# LAMMPS_API_DEFINES - lammps library api defines
|
||||
# LAMMPS_VERSION - lammps library version
|
||||
# LAMMPS_FOUND - True if liblammps found.
|
||||
#
|
||||
# In addition a LAMMPS::LAMMPS imported target is getting created.
|
||||
#
|
||||
# LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
# http://lammps.sandia.gov, Sandia National Laboratories
|
||||
# Steve Plimpton, sjplimp@sandia.gov
|
||||
#
|
||||
# Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
# DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
# certain rights in this software. This software is distributed under
|
||||
# the GNU General Public License.
|
||||
#
|
||||
# See the README file in the top-level LAMMPS directory.
|
||||
#
|
||||
|
||||
find_package(PkgConfig)
|
||||
|
||||
pkg_check_modules(PC_LAMMPS liblammps@LAMMPS_LIB_SUFFIX@)
|
||||
find_path(LAMMPS_INCLUDE_DIR lammps/library.h HINTS ${PC_LAMMPS_INCLUDE_DIRS} @CMAKE_INSTALL_FULL_INCLUDEDIR@)
|
||||
|
||||
set(LAMMPS_VERSION @LAMMPS_VERSION@)
|
||||
set(LAMMPS_API_DEFINES @LAMMPS_API_DEFINES@)
|
||||
|
||||
find_library(LAMMPS_LIBRARY NAMES lammps@LAMMPS_LIB_SUFFIX@ HINTS ${PC_LAMMPS_LIBRARY_DIRS} @CMAKE_INSTALL_FULL_LIBDIR@)
|
||||
|
||||
set(LAMMPS_INCLUDE_DIRS "${LAMMPS_INCLUDE_DIR}")
|
||||
set(LAMMPS_LIBRARIES "${LAMMPS_LIBRARY}")
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
# handle the QUIETLY and REQUIRED arguments and set LAMMPS_FOUND to TRUE
|
||||
# if all listed variables are TRUE
|
||||
find_package_handle_standard_args(LAMMPS REQUIRED_VARS LAMMPS_LIBRARY LAMMPS_INCLUDE_DIR VERSION_VAR LAMMPS_VERSION)
|
||||
|
||||
mark_as_advanced(LAMMPS_INCLUDE_DIR LAMMPS_LIBRARY)
|
||||
|
||||
if(LAMMPS_FOUND AND NOT TARGET LAMMPS::LAMMPS)
|
||||
add_library(LAMMPS::LAMMPS UNKNOWN IMPORTED)
|
||||
set_target_properties(LAMMPS::LAMMPS PROPERTIES IMPORTED_LOCATION "${LAMMPS_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${LAMMPS_INCLUDE_DIR}" INTERFACE_COMPILE_DEFINITIONS "${LAMMPS_API_DEFINES}")
|
||||
endif()
|
|
@ -0,0 +1,8 @@
|
|||
find_path(ZMQ_INCLUDE_DIR zmq.h)
|
||||
find_library(ZMQ_LIBRARY NAMES zmq)
|
||||
|
||||
set(ZMQ_LIBRARIES ${ZMQ_LIBRARY})
|
||||
set(ZMQ_INCLUDE_DIRS ${ZMQ_INCLUDE_DIR})
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(ZMQ DEFAULT_MSG ZMQ_LIBRARY ZMQ_INCLUDE_DIR)
|
|
@ -48,8 +48,13 @@ function(CreateStyleHeader path filename)
|
|||
set(temp "")
|
||||
if(ARGC GREATER 2)
|
||||
list(REMOVE_AT ARGV 0 1)
|
||||
set(header_list)
|
||||
foreach(FNAME ${ARGV})
|
||||
get_filename_component(FNAME ${FNAME} NAME)
|
||||
list(APPEND header_list ${FNAME})
|
||||
endforeach()
|
||||
list(SORT header_list)
|
||||
foreach(FNAME ${header_list})
|
||||
set(temp "${temp}#include \"${FNAME}\"\n")
|
||||
endforeach()
|
||||
endif()
|
||||
|
@ -80,19 +85,23 @@ function(RegisterNPairStyle path)
|
|||
AddStyleHeader(${path} NPAIR)
|
||||
endfunction(RegisterNPairStyle)
|
||||
|
||||
function(RegisterFixStyle path)
|
||||
AddStyleHeader(${path} FIX)
|
||||
endfunction(RegisterFixStyle)
|
||||
|
||||
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} 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} 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
|
||||
|
|
|
@ -275,6 +275,16 @@ cmake -C ../cmake/presets/std_nolib.cmake -D PKG_GPU=on ../cmake
|
|||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>BUILD_EXE</code></td>
|
||||
<td>control whether to build LAMMPS executable</td>
|
||||
<td>
|
||||
<dl>
|
||||
<dt><code>on</code> (default)</dt>
|
||||
<dt><code>off</code></dt>
|
||||
</dl>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>BUILD_SHARED_LIBS</code></td>
|
||||
<td>control whether to build LAMMPS as a shared-library</td>
|
||||
|
|
|
@ -4,15 +4,15 @@
|
|||
# after you added @CMAKE_INSTALL_FULL_LIBDIR@/pkg-config to PKG_CONFIG_PATH,
|
||||
# e.g. export PKG_CONFIG_PATH=@CMAKE_INSTALL_FULL_LIBDIR@/pkgconfig
|
||||
|
||||
prefix=@CMAKE_INSTALL_FULL_PREFIX@
|
||||
prefix=@CMAKE_INSTALL_PREFIX@
|
||||
libdir=@CMAKE_INSTALL_FULL_LIBDIR@
|
||||
includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
|
||||
|
||||
Name: liblammps@LAMMPS_MACHINE@
|
||||
Description: Large-scale Atomic/Molecular Massively Parallel Simulator Library
|
||||
URL: http://lammps.sandia.gov
|
||||
Version:
|
||||
Version: @LAMMPS_VERSION@
|
||||
Requires:
|
||||
Libs: -L${libdir} -llammps@LIB_SUFFIX@@
|
||||
Libs: -L${libdir} -llammps@LAMMPS_LIB_SUFFIX@
|
||||
Libs.private: -lm
|
||||
Cflags: -I${includedir} @LAMMPS_API_DEFINES@
|
||||
|
|
21
doc/Makefile
21
doc/Makefile
|
@ -31,17 +31,19 @@ SPHINXEXTRA = -j $(shell $(PYTHON) -c 'import multiprocessing;print(multiprocess
|
|||
SOURCES=$(filter-out $(wildcard src/lammps_commands*.txt) src/lammps_support.txt src/lammps_tutorials.txt,$(wildcard src/*.txt))
|
||||
OBJECTS=$(SOURCES:src/%.txt=$(RSTDIR)/%.rst)
|
||||
|
||||
.PHONY: help clean-all clean epub html pdf old venv spelling anchor_check
|
||||
.PHONY: help clean-all clean epub mobi html pdf old venv spelling anchor_check
|
||||
|
||||
# ------------------------------------------
|
||||
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo " html create HTML doc pages in html dir"
|
||||
@echo " pdf create Manual.pdf and Developer.pdf in this dir"
|
||||
@echo " pdf create Developer.pdf and Manual.pdf in this dir"
|
||||
@echo " old create old-style HTML doc pages in old dir"
|
||||
@echo " fetch fetch HTML and PDF files from LAMMPS web site"
|
||||
@echo " epub create ePUB format manual for e-book readers"
|
||||
@echo " mobi convert ePUB to MOBI format manual for e-book readers (e.g. Kindle)"
|
||||
@echo " (requires ebook-convert tool from calibre)"
|
||||
@echo " clean remove all intermediate RST files"
|
||||
@echo " clean-all reset the entire build environment"
|
||||
@echo " txt2html build txt2html tool"
|
||||
|
@ -106,20 +108,25 @@ epub: $(OBJECTS)
|
|||
@rm -rf epub
|
||||
@echo "Build finished. The ePUB manual file is created."
|
||||
|
||||
mobi: epub
|
||||
@rm -f LAMMPS.mobi
|
||||
@ebook-convert LAMMPS.epub LAMMPS.mobi
|
||||
@echo "Conversion finished. The MOBI manual file is created."
|
||||
|
||||
pdf: utils/txt2html/txt2html.exe
|
||||
@(\
|
||||
set -e; \
|
||||
cd src; \
|
||||
cd src/Developer; \
|
||||
pdflatex developer; \
|
||||
pdflatex developer; \
|
||||
mv developer.pdf ../../Developer.pdf; \
|
||||
cd ..; \
|
||||
../utils/txt2html/txt2html.exe -b *.txt; \
|
||||
htmldoc --batch lammps.book; \
|
||||
for s in `echo *.txt | sed -e 's,\.txt,\.html,g'` ; \
|
||||
do grep -q $$s lammps.book || \
|
||||
echo doc file $$s missing in src/lammps.book; done; \
|
||||
rm *.html; \
|
||||
cd Developer; \
|
||||
pdflatex developer; \
|
||||
pdflatex developer; \
|
||||
mv developer.pdf ../../Developer.pdf; \
|
||||
)
|
||||
|
||||
old: utils/txt2html/txt2html.exe
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
.TH LAMMPS "2018-08-22"
|
||||
.SH NAME
|
||||
.B LAMMPS
|
||||
\- Molecular Dynamics Simulator.
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B lmp
|
||||
-in in.file
|
||||
|
||||
or
|
||||
|
||||
mpirun \-np 2
|
||||
.B lmp
|
||||
-in in.file
|
||||
|
||||
.SH DESCRIPTION
|
||||
.B LAMMPS
|
||||
LAMMPS is a classical molecular dynamics code, and an acronym for Large-scale
|
||||
Atomic/Molecular Massively Parallel Simulator. LAMMPS has potentials for soft
|
||||
materials (biomolecules, polymers) and solid-state materials (metals,
|
||||
semiconductors) and coarse-grained or mesoscopic systems. It can be used to
|
||||
model atoms or, more generically, as a parallel particle simulator at the
|
||||
atomic, meso, or continuum scale.
|
||||
|
||||
See http://lammps.sandia.gov/ for documentation.
|
||||
|
||||
.SH OPTIONS
|
||||
See https://lammps.sandia.gov/doc/Run_options.html for details on
|
||||
command-line options.
|
||||
|
||||
.SH COPYRIGHT
|
||||
© 2003--2018 Sandia Corporation
|
||||
|
||||
This package is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This package is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
On Debian systems, the complete text of the GNU General
|
||||
Public License can be found in `/usr/share/common-licenses/GPL-2'.
|
|
@ -28,6 +28,7 @@ as described on the "Install"_Install.html doc page.
|
|||
Build_settings
|
||||
Build_package
|
||||
Build_extras
|
||||
Build_windows
|
||||
|
||||
END_RST -->
|
||||
|
||||
|
@ -39,7 +40,8 @@ END_RST -->
|
|||
"Basic build options"_Build_basics.html
|
||||
"Optional build settings"_Build_settings.html
|
||||
"Include packages in build"_Build_package.html
|
||||
"Packages with extra build options"_Build_extras.html :all(b)
|
||||
"Packages with extra build options"_Build_extras.html
|
||||
"Notes for building LAMMPS on Windows"_Build_windows.html :all(b)
|
||||
|
||||
If you have problems building LAMMPS, it is often due to software
|
||||
issues on your local machine. If you can, find a local expert to
|
||||
|
|
|
@ -61,7 +61,7 @@ library files. Failing this, these 3 variables can be used to specify
|
|||
where the mpi.h file (MPI_INC), and the MPI library files (MPI_PATH)
|
||||
are found, and the name of the library files (MPI_LIB).
|
||||
|
||||
For a serial build, you need to specify the 3 varaibles, as shown
|
||||
For a serial build, you need to specify the 3 variables, as shown
|
||||
above.
|
||||
|
||||
For a serial LAMMPS build, use the dummy MPI library provided in
|
||||
|
@ -145,7 +145,7 @@ By default CMake will use a compiler it finds and it will add
|
|||
optimization flags appropriate to that compiler and any "accelerator
|
||||
packages"_Speed_packages.html you have included in the build.
|
||||
|
||||
You can tell CMake to look for a specific compiler with these varaible
|
||||
You can tell CMake to look for a specific compiler with these variable
|
||||
settings. Likewise you can specify the FLAGS variables if you want to
|
||||
experiment with alternate optimization flags. You should specify all
|
||||
3 compilers, so that the small number of LAMMPS source files written
|
||||
|
@ -216,8 +216,8 @@ LAMMPS can be built as either an executable or as a static or shared
|
|||
library. The LAMMPS library can be called from another application or
|
||||
a scripting language. See the "Howto couple"_Howto_couple.html doc
|
||||
page for more info on coupling LAMMPS to other codes. See the
|
||||
"Python"_Python doc page for more info on wrapping and running LAMMPS
|
||||
from Python via its library interface.
|
||||
"Python"_Python_head.html doc page for more info on wrapping and
|
||||
running LAMMPS from Python via its library interface.
|
||||
|
||||
[CMake variables]:
|
||||
|
||||
|
@ -247,7 +247,7 @@ Note that for a shared library to be usable by a calling program, all
|
|||
the auxiliary libraries it depends on must also exist as shared
|
||||
libraries. This will be the case for libraries included with LAMMPS,
|
||||
such as the dummy MPI library in src/STUBS or any package libraries in
|
||||
the lib/packages directroy, since they are always built as shared
|
||||
the lib/packages directory, since they are always built as shared
|
||||
libraries using the -fPIC switch. However, if a library like MPI or
|
||||
FFTW does not exist as a shared library, the shared library build will
|
||||
generate an error. This means you will need to install a shared
|
||||
|
@ -292,6 +292,10 @@ This will create a lammps/doc/html dir with the HTML doc pages so that
|
|||
you can browse them locally on your system. Type "make" from the
|
||||
lammps/doc dir to see other options.
|
||||
|
||||
NOTE: You can also download a tarball of the documention for the
|
||||
current LAMMPS version (HTML and PDF files), from the website
|
||||
"download page"_http://lammps.sandia.gov/download.html.
|
||||
|
||||
:line
|
||||
|
||||
Install LAMMPS after a build :h4,link(install)
|
||||
|
@ -299,7 +303,7 @@ Install LAMMPS after a build :h4,link(install)
|
|||
After building LAMMPS, you may wish to copy the LAMMPS executable of
|
||||
library, along with other LAMMPS files (library header, doc files) to
|
||||
a globally visible place on your system, for others to access. Note
|
||||
that you may need super-user priveleges (e.g. sudo) if the directory
|
||||
that you may need super-user privileges (e.g. sudo) if the directory
|
||||
you want to copy files to is protected.
|
||||
|
||||
[CMake variable]:
|
||||
|
|
|
@ -40,7 +40,7 @@ executable called "lmp" and a library called "liblammps.a" in the
|
|||
If your machine has multiple CPU cores (most do these days), using a
|
||||
command like "make -jN" (with N being the number of available local
|
||||
CPU cores) can be much faster. If you plan to do development on
|
||||
LAMMPS or need to recompile LAMMPS repeatedly, installation of the
|
||||
LAMMPS or need to re-compile LAMMPS repeatedly, installation of the
|
||||
ccache (= Compiler Cache) software may speed up compilation even more.
|
||||
|
||||
After compilation, you can optionally copy the LAMMPS executable and
|
||||
|
@ -50,7 +50,7 @@ make install # optional, copy LAMMPS executable & library elsewhere :pre
|
|||
|
||||
:line
|
||||
|
||||
There are 3 variants of CMake: a command-line verison (cmake), a text mode
|
||||
There are 3 variants of CMake: a command-line version (cmake), a text mode
|
||||
UI version (ccmake), and a graphical GUI version (cmake-GUI). You can use
|
||||
any of them interchangeably to configure and create the LAMMPS build
|
||||
environment. On Linux all the versions produce a Makefile as their
|
||||
|
@ -188,7 +188,7 @@ module list # is a cmake module already loaded?
|
|||
module avail # is a cmake module available?
|
||||
module load cmake3 # load cmake module with appropriate name :pre
|
||||
|
||||
Most Linux distributions offer precompiled cmake packages through
|
||||
Most Linux distributions offer pre-compiled cmake packages through
|
||||
their package management system. If you do not have CMake or a new
|
||||
enough version, you can download the latest version at
|
||||
"https://cmake.org/download/"_https://cmake.org/download/.
|
||||
|
|
|
@ -31,6 +31,7 @@ This is the list of packages that may require additional steps.
|
|||
"KOKKOS"_#kokkos,
|
||||
"LATTE"_#latte,
|
||||
"MEAM"_#meam,
|
||||
"MESSAGE"_#message,
|
||||
"MSCG"_#mscg,
|
||||
"OPT"_#opt,
|
||||
"POEMS"_#poems,
|
||||
|
@ -47,6 +48,7 @@ This is the list of packages that may require additional steps.
|
|||
"USER-OMP"_#user-omp,
|
||||
"USER-QMMM"_#user-qmmm,
|
||||
"USER-QUIP"_#user-quip,
|
||||
"USER-SCAFACOS"_#user-scafacos,
|
||||
"USER-SMD"_#user-smd,
|
||||
"USER-VTK"_#user-vtk :tb(c=6,ea=c,a=l)
|
||||
|
||||
|
@ -340,7 +342,7 @@ NOTE: the use of the MEAM package is discouraged, as it has been
|
|||
superseded by the USER-MEAMC package, which is a direct translation of
|
||||
the Fortran code in the MEAM library to C++. The code in USER-MEAMC
|
||||
should be functionally equivalent to the MEAM package, fully supports
|
||||
use of "pair_style hybrid"_pair_hybrid.html (the MEAM packaged doesn
|
||||
use of "pair_style hybrid"_pair_hybrid.html (the MEAM package does
|
||||
not), and has optimizations that make it significantly faster than the
|
||||
MEAM package.
|
||||
|
||||
|
@ -361,6 +363,10 @@ make lib-meam args="-m mpi" # build with default Fortran compiler compatible
|
|||
make lib-meam args="-m serial" # build with compiler compatible with "make serial" (GNU Fortran)
|
||||
make lib-meam args="-m ifort" # build with Intel Fortran compiler using Makefile.ifort :pre
|
||||
|
||||
NOTE: You should test building the MEAM library with both the Intel
|
||||
and GNU compilers to see if a simulation runs faster with one versus
|
||||
the other on your system.
|
||||
|
||||
The build should produce two files: lib/meam/libmeam.a and
|
||||
lib/meam/Makefile.lammps. The latter is copied from an existing
|
||||
Makefile.lammps.* and has settings needed to link C++ (LAMMPS) with
|
||||
|
@ -373,6 +379,35 @@ file.
|
|||
|
||||
:line
|
||||
|
||||
MESSAGE package :h4,link(message)
|
||||
|
||||
This package can optionally include support for messaging via sockets,
|
||||
using the open-source "ZeroMQ library"_http://zeromq.org, which must
|
||||
be installed on your system.
|
||||
|
||||
[CMake build]:
|
||||
|
||||
-D MESSAGE_ZMQ=value # build with ZeroMQ support, value = no (default) or yes
|
||||
|
||||
[Traditional make]:
|
||||
|
||||
Before building LAMMPS, you must build the CSlib library in
|
||||
lib/message. You can build the CSlib library manually if you prefer;
|
||||
follow the instructions in lib/message/README. You can also do it in
|
||||
one step from the lammps/src dir, using a command like these, which
|
||||
simply invoke the lib/message/Install.py script with the specified args:
|
||||
|
||||
make lib-message # print help message
|
||||
make lib-message args="-m -z" # build with MPI and socket (ZMQ) support
|
||||
make lib-message args="-s" # build as serial lib with no ZMQ support
|
||||
|
||||
The build should produce two files: lib/message/cslib/src/libmessage.a
|
||||
and lib/message/Makefile.lammps. The latter is copied from an
|
||||
existing Makefile.lammps.* and has settings to link with the ZeroMQ
|
||||
library if requested in the build.
|
||||
|
||||
:line
|
||||
|
||||
MSCG package :h4,link(mscg)
|
||||
|
||||
To build with this package, you must download and build the MS-CG
|
||||
|
@ -470,7 +505,7 @@ lib/python/README for more details.
|
|||
|
||||
-D PYTHON_EXECUTABLE=path # path to Python executable to use :pre
|
||||
|
||||
Without this setting, CMake will ues the default Python on your
|
||||
Without this setting, CMake will guess the default Python on your
|
||||
system. To use a different Python version, you can either create a
|
||||
virtualenv, activate it and then run cmake. Or you can set the
|
||||
PYTHON_EXECUTABLE variable to specify which Python interpreter should
|
||||
|
@ -687,7 +722,7 @@ the HDF5 library.
|
|||
|
||||
No additional settings are needed besides "-D PKG_USER-H5MD=yes".
|
||||
|
||||
This should autodetect the H5MD library on your system. Several
|
||||
This should auto-detect the H5MD library on your system. Several
|
||||
advanced CMake H5MD options exist if you need to specify where it is
|
||||
installed. Use the ccmake (terminal window) or cmake-gui (graphical)
|
||||
tools to see these options and set them interactively from their user
|
||||
|
@ -777,7 +812,7 @@ on your system.
|
|||
|
||||
No additional settings are needed besides "-D PKG_USER-NETCDF=yes".
|
||||
|
||||
This should autodetect the NETCDF library if it is installed on your
|
||||
This should auto-detect the NETCDF library if it is installed on your
|
||||
system at standard locations. Several advanced CMake NETCDF options
|
||||
exist if you need to specify where it was installed. Use the ccmake
|
||||
(terminal window) or cmake-gui (graphical) tools to see these options
|
||||
|
@ -894,6 +929,45 @@ successfully build on your system.
|
|||
|
||||
:line
|
||||
|
||||
USER-SCAFACOS package :h4,link(user-scafacos)
|
||||
|
||||
To build with this package, you must download and build the "ScaFaCoS
|
||||
Coulomb solver library"_scafacos_home
|
||||
|
||||
:link(scafacos_home,http://www.scafacos.de)
|
||||
|
||||
[CMake build]:
|
||||
|
||||
-D DOWNLOAD_SCAFACOS=value # download ScaFaCoS for build, value = no (default) or yes
|
||||
-D SCAFACOS_LIBRARY=path # ScaFaCos library file (only needed if at custom location)
|
||||
-D SCAFACOS_INCLUDE_DIR=path # ScaFaCoS include directory (only needed if at custom location) :pre
|
||||
|
||||
If DOWNLOAD_SCAFACOS is set, the ScaFaCoS library will be downloaded
|
||||
and built inside the CMake build directory. If the ScaFaCoS library
|
||||
is already on your system (in a location CMake cannot find it),
|
||||
SCAFACOS_LIBRARY is the filename (plus path) of the ScaFaCoS library
|
||||
file, not the directory the library file is in. SCAFACOS_INCLUDE_DIR
|
||||
is the directory the ScaFaCoS include file is in.
|
||||
|
||||
[Traditional make]:
|
||||
|
||||
You can download and build the ScaFaCoS library manually if you
|
||||
prefer; follow the instructions in lib/scafacos/README. You can also
|
||||
do it in one step from the lammps/src dir, using a command like these,
|
||||
which simply invoke the lib/scafacos/Install.py script with the
|
||||
specified args:
|
||||
|
||||
make lib-scafacos # print help message
|
||||
make lib-scafacos args="-b" # download and build in lib/scafacos/scafacos-<version>
|
||||
make lib-scafacos args="-p $HOME/scafacos # use existing ScaFaCoS installation in $HOME/scafacos
|
||||
|
||||
Note that 2 symbolic (soft) links, "includelink" and "liblink", are
|
||||
created in lib/scafacos to point to the ScaFaCoS src dir. When LAMMPS
|
||||
builds in src it will use these links. You should not need to edit
|
||||
the lib/scafacos/Makefile.lammps file.
|
||||
|
||||
:line
|
||||
|
||||
USER-SMD package :h4,link(user-smd)
|
||||
|
||||
To build with this package, you must download the Eigen3 library.
|
||||
|
@ -905,7 +979,7 @@ Eigen3 is a template library, so you do not need to build it.
|
|||
-D EIGEN3_INCLUDE_DIR=path # path to Eigen library (only needed if a custom location) :pre
|
||||
|
||||
If DOWNLOAD_EIGEN3 is set, the Eigen3 library will be downloaded and
|
||||
inside the CMake build directory. If the Eig3n3 library is already on
|
||||
inside the CMake build directory. If the Eigen3 library is already on
|
||||
your system (in a location CMake cannot find it), EIGEN3_INCLUDE_DIR
|
||||
is the directory the Eigen3++ include file is in.
|
||||
|
||||
|
@ -936,7 +1010,7 @@ your system.
|
|||
|
||||
No additional settings are needed besides "-D PKG_USER-VTK=yes".
|
||||
|
||||
This should autodetect the VTK library if it is installed on your
|
||||
This should auto-detect the VTK library if it is installed on your
|
||||
system at standard locations. Several advanced VTK options exist if
|
||||
you need to specify where it was installed. Use the ccmake (terminal
|
||||
window) or cmake-gui (graphical) tools to see these options and set
|
||||
|
|
|
@ -35,16 +35,16 @@ This initial compilation can take a long time, since LAMMPS is a large
|
|||
project with many features. If your machine has multiple CPU cores
|
||||
(most do these days), using a command like "make -jN mpi" (with N =
|
||||
the number of available CPU cores) can be much faster. If you plan to
|
||||
do development on LAMMPS or need to recompile LAMMPS repeatedly, the
|
||||
do development on LAMMPS or need to re-compile LAMMPS repeatedly, the
|
||||
installation of the ccache (= Compiler Cache) software may speed up
|
||||
compilation even more.
|
||||
|
||||
After the initial build, whenever you edit LAMMPS source files, or add
|
||||
or remove new files to the source directory (e.g. by installing or
|
||||
uninstalling packages), you must recompile and relink the LAMMPS
|
||||
uninstalling packages), you must re-compile and relink the LAMMPS
|
||||
executable with the same "make" command. This makefiles dependencies
|
||||
should insure that only the subset of files that need to be are
|
||||
recompiled.
|
||||
re-compiled.
|
||||
|
||||
NOTE: When you build LAMMPS for the first time, a long list of *.d
|
||||
files will be printed out rapidly. This is not an error; it is the
|
||||
|
@ -71,8 +71,8 @@ Makefiles you may wish to try include these (some require a package
|
|||
first be installed). Many of these include specific compiler flags
|
||||
for optimized performance. Please note, however, that some of these
|
||||
customized machine Makefile are contributed by users. Since both
|
||||
compilers, OS configs, and LAMMPS itself keep changing, their settings
|
||||
may become outdated:
|
||||
compilers, OS configurations, and LAMMPS itself keep changing, their
|
||||
settings may become outdated:
|
||||
|
||||
make mac # build serial LAMMPS on a Mac
|
||||
make mac_mpi # build parallel LAMMPS on a Mac
|
||||
|
|
|
@ -42,6 +42,7 @@ packages:
|
|||
"KOKKOS"_Build_extras.html#kokkos,
|
||||
"LATTE"_Build_extras.html#latte,
|
||||
"MEAM"_Build_extras.html#meam,
|
||||
"MESSAGE"_Build_extras.html#message,
|
||||
"MSCG"_Build_extras.html#mscg,
|
||||
"OPT"_Build_extras.html#opt,
|
||||
"POEMS"_Build_extras.html#poems,
|
||||
|
@ -58,6 +59,7 @@ packages:
|
|||
"USER-OMP"_Build_extras.html#user-omp,
|
||||
"USER-QMMM"_Build_extras.html#user-qmmm,
|
||||
"USER-QUIP"_Build_extras.html#user-quip,
|
||||
"USER-SCAFACOS"_Build_extras.html#user-scafacos,
|
||||
"USER-SMD"_Build_extras.html#user-smd,
|
||||
"USER-VTK"_Build_extras.html#user-vtk :tb(c=6,ea=c,a=l)
|
||||
|
||||
|
|
|
@ -80,8 +80,8 @@ per-timestep CPU cost, FFTs are only a portion of long-range
|
|||
Coulombics, and 1d FFTs are only a portion of the FFT cost (parallel
|
||||
communication can be costly). A breakdown of these timings is printed
|
||||
to the screen at the end of a run using the "kspace_style
|
||||
pppm"_kspace_style.html command. The "Run output"_doc page gives more
|
||||
details.
|
||||
pppm"_kspace_style.html command. The "Run output"_Run_output.html
|
||||
doc page gives more details.
|
||||
|
||||
FFTW is a fast, portable FFT library that should also work on any
|
||||
platform and can be faster than the KISS FFT library. You can
|
||||
|
@ -101,7 +101,7 @@ Performing 3d FFTs in parallel can be time consuming due to data
|
|||
access and required communication. This cost can be reduced by
|
||||
performing single-precision FFTs instead of double precision. Single
|
||||
precision means the real and imaginary parts of a complex datum are
|
||||
4-byte floats. Double precesion means they are 8-byte doubles. Note
|
||||
4-byte floats. Double precision means they are 8-byte doubles. Note
|
||||
that Fourier transform and related PPPM operations are somewhat less
|
||||
sensitive to floating point truncation errors and thus the resulting
|
||||
error is less than the difference in precision. Using the -DFFT_SINGLE
|
||||
|
@ -193,7 +193,7 @@ Output of JPG, PNG, and movie files :h4,link(graphics)
|
|||
|
||||
The "dump image"_dump_image.html command has options to output JPEG or
|
||||
PNG image files. Likewise the "dump movie"_dump_image.html command
|
||||
ouputs movie files in MPEG format. Using these options requires the
|
||||
outputs movie files in MPEG format. Using these options requires the
|
||||
following settings:
|
||||
|
||||
[CMake variables]:
|
||||
|
@ -206,7 +206,7 @@ following settings:
|
|||
# default = yes if CMake can find ffmpeg, else no :pre
|
||||
|
||||
Usually these settings are all that is needed. If CMake cannot find
|
||||
the graphics header, library, executuable files, you can set these
|
||||
the graphics header, library, executable files, you can set these
|
||||
variables:
|
||||
|
||||
-D JPEG_INCLUDE_DIR=path # path to jpeglib.h header file
|
||||
|
|
|
@ -0,0 +1,97 @@
|
|||
"Higher level section"_Build.html - "LAMMPS WWW Site"_lws - "LAMMPS
|
||||
Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Commands_all.html)
|
||||
|
||||
:line
|
||||
|
||||
Notes for building LAMMPS on Windows :h3
|
||||
|
||||
"General remarks"_#generic
|
||||
"Running Linux on Windows"_#linux
|
||||
"Using GNU GCC ported to Windows"_#gnu
|
||||
"Using a cross-compiler"_#cross :ul
|
||||
|
||||
:line
|
||||
|
||||
General remarks :h4,link(generic)
|
||||
|
||||
LAMMPS is developed and tested primarily on Linux machines. The vast
|
||||
majority of HPC clusters and supercomputers today runs on Linux as well.
|
||||
Thus portability to other platforms is desired, but not always achieved.
|
||||
The LAMMPS developers strongly rely on LAMMPS users giving feedback and
|
||||
providing assistance in resolving portability issues. This particularly
|
||||
true for compiling LAMMPS on Windows, since this platform has significant
|
||||
differences with some low-level functionality.
|
||||
|
||||
|
||||
Running Linux on Windows :h4,link(linux)
|
||||
|
||||
So before trying to build LAMMPS on Windows, please consider if using
|
||||
the pre-compiled Windows binary packages are sufficient for your needs
|
||||
(as an aside, those packages themselves are build on a Linux machine
|
||||
using cross-compilers). If it is necessary for your to compile LAMMPS
|
||||
on a Windows machine (e.g. because it is your main desktop), please also
|
||||
consider using a virtual machine software and run a Linux virtual machine,
|
||||
or - if have a recently updated Windows 10 installation - consider using
|
||||
the Windows subsystem for Linux, which allows to run a bash shell from
|
||||
Ubuntu and from there on, you can pretty much use that shell like you
|
||||
are running on an Ubuntu Linux machine (e.g. installing software via
|
||||
apt-get). For more details on that, please see "this tutorial"_Howto_bash.html
|
||||
|
||||
|
||||
Using GNU GCC ported to Windows :h4,link(gnu)
|
||||
|
||||
One option for compiling LAMMPS on Windows natively, that has been known
|
||||
to work in the past is to install a bash shell, unix shell utilities,
|
||||
perl, GNU make, and a GNU compiler ported to Windows. The Cygwin package
|
||||
provides a unix/linux interface to low-level Windows functions, so LAMMPS
|
||||
can be compiled on Windows. The necessary (minor) modifications to LAMMPS
|
||||
are included, but may not always up-to-date for recently added functionality
|
||||
and the corresponding new code. A machine makefile for using cygwin for
|
||||
the old build system is provided. The CMake build system is untested
|
||||
for this; you will have to request that makefiles are generated and
|
||||
manually set the compiler.
|
||||
|
||||
When compiling for Windows [not] set the -DLAMMPS_MEMALIGN define
|
||||
in the LMP_INC makefile variable and add -lwsock32 -lpsapi to the linker
|
||||
flags in LIB makefile variable. Try adding -static-libgcc or -static or
|
||||
both to the linker flags when your resulting LAMMPS Windows executable
|
||||
complains about missing .dll files. The CMake configuration should set
|
||||
this up automatically, but is untested.
|
||||
|
||||
In case of problems, you are recommended to contact somebody with
|
||||
experience in using cygwin. If you do come across portability problems
|
||||
requiring changes to the LAMMPS source code, or figure out corrections
|
||||
yourself, please report them on the lammps-users mailing list, or file
|
||||
them as an issue or pull request on the LAMMPS github project.
|
||||
|
||||
|
||||
Using a cross-compiler :h4,link(cross)
|
||||
|
||||
If you need to provide custom LAMMPS binaries for Windows, but do not
|
||||
need to do the compilation on Windows, please consider using a Linux
|
||||
to Windows cross-compiler. This is how currently the Windows binary
|
||||
packages are created by the LAMMPS developers. Because of that, this is
|
||||
probably the currently best tested and supported way to build LAMMPS
|
||||
executables for Windows. There are makefiles provided for the
|
||||
traditional build system, but CMake has also been successfully tested
|
||||
using the mingw32-cmake and mingw64-cmake wrappers that are bundled
|
||||
with the cross-compiler environment on Fedora machines.
|
||||
|
||||
Please keep in mind, though, that this only applies to compiling LAMMPS.
|
||||
Whether the resulting binaries do work correctly is no tested by the
|
||||
LAMMPS developers. We instead rely on the feedback of the users
|
||||
of these pre-compiled LAMMPS packages for Windows. We will try to resolve
|
||||
issues to the best of our abilities if we become aware of them. However
|
||||
this is subject to time constraints and focus on HPC platforms.
|
||||
|
||||
|
||||
Native Visual C++ support :h4,link(native)
|
||||
|
||||
Support for the Visual C++ compilers is currently not available. The
|
||||
CMake build system is capable of creating suitable a Visual Studio
|
||||
style build environment, but the LAMMPS code itself is not fully ported
|
||||
to support Visual C++. Volunteers to take on this task are welcome.
|
|
@ -19,7 +19,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
|||
|
||||
All commands :h3
|
||||
|
||||
An alphabetic list of all LAMMPS commmands.
|
||||
An alphabetic list of all LAMMPS commands.
|
||||
|
||||
"angle_coeff"_angle_coeff.html,
|
||||
"angle_style"_angle_style.html,
|
||||
|
@ -71,6 +71,7 @@ An alphabetic list of all LAMMPS commmands.
|
|||
"lattice"_lattice.html,
|
||||
"log"_log.html,
|
||||
"mass"_mass.html,
|
||||
"message"_message.html,
|
||||
"minimize"_minimize.html,
|
||||
"min_modify"_min_modify.html,
|
||||
"min_style"_min_style.html,
|
||||
|
@ -103,6 +104,7 @@ An alphabetic list of all LAMMPS commmands.
|
|||
"restart"_restart.html,
|
||||
"run"_run.html,
|
||||
"run_style"_run_style.html,
|
||||
"server"_server.html,
|
||||
"set"_set.html,
|
||||
"shell"_shell.html,
|
||||
"special_bonds"_special_bonds.html,
|
||||
|
|
|
@ -70,7 +70,7 @@ OPT.
|
|||
"fourier/simple (o)"_angle_fourier_simple.html,
|
||||
"harmonic (iko)"_angle_harmonic.html,
|
||||
"quartic (o)"_angle_quartic.html,
|
||||
"sdk"_angle_sdk.html,
|
||||
"sdk (o)"_angle_sdk.html,
|
||||
"table (o)"_angle_table.html :tb(c=4,ea=c)
|
||||
|
||||
:line
|
||||
|
@ -95,7 +95,7 @@ OPT.
|
|||
"helix (o)"_dihedral_helix.html,
|
||||
"multi/harmonic (o)"_dihedral_multi_harmonic.html,
|
||||
"nharmonic (o)"_dihedral_nharmonic.html,
|
||||
"opls (iko)"_dihedral_opls.htm;,
|
||||
"opls (iko)"_dihedral_opls.html,
|
||||
"quadratic (o)"_dihedral_quadratic.html,
|
||||
"spherical (o)"_dihedral_spherical.html,
|
||||
"table (o)"_dihedral_table.html,
|
||||
|
|
|
@ -35,6 +35,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
|||
"bond/local"_compute_bond_local.html,
|
||||
"centro/atom"_compute_centro_atom.html,
|
||||
"chunk/atom"_compute_chunk_atom.html,
|
||||
"chunk/spread/atom"_compute_chunk_spread_atom.html,
|
||||
"cluster/atom"_compute_cluster_atom.html,
|
||||
"cna/atom"_compute_cna_atom.html,
|
||||
"cnp/atom"_compute_cnp_atom.html,
|
||||
|
@ -95,8 +96,10 @@ KOKKOS, o = USER-OMP, t = OPT.
|
|||
"property/atom"_compute_property_atom.html,
|
||||
"property/chunk"_compute_property_chunk.html,
|
||||
"property/local"_compute_property_local.html,
|
||||
"ptm/atom"_compute_ptm_atom.html,
|
||||
"rdf"_compute_rdf.html,
|
||||
"reduce"_compute_reduce.html,
|
||||
"reduce/chunk"_compute_reduce_chunk.html,
|
||||
"reduce/region"_compute_reduce.html,
|
||||
"rigid/local"_compute_rigid_local.html,
|
||||
"saed"_compute_saed.html,
|
||||
|
@ -115,7 +118,7 @@ KOKKOS, o = USER-OMP, t = OPT.
|
|||
"smd/tlsph/strain"_compute_smd_tlsph_strain.html,
|
||||
"smd/tlsph/strain/rate"_compute_smd_tlsph_strain_rate.html,
|
||||
"smd/tlsph/stress"_compute_smd_tlsph_stress.html,
|
||||
"smd/triangle/mesh/vertices"_compute_smd_triangle_mesh_vertices.html,
|
||||
"smd/triangle/mesh/vertices"_compute_smd_triangle_vertices.html,
|
||||
"smd/ulsph/num/neighs"_compute_smd_ulsph_num_neighs.html,
|
||||
"smd/ulsph/strain"_compute_smd_ulsph_strain.html,
|
||||
"smd/ulsph/strain/rate"_compute_smd_ulsph_strain_rate.html,
|
||||
|
|
|
@ -65,6 +65,7 @@ OPT.
|
|||
"eos/table/rx (k)"_fix_eos_table_rx.html,
|
||||
"evaporate"_fix_evaporate.html,
|
||||
"external"_fix_external.html,
|
||||
"ffl"_fix_ffl.html,
|
||||
"filter/corotate"_fix_filter_corotate.html,
|
||||
"flow/gauss"_fix_flow_gauss.html,
|
||||
"freeze (k)"_fix_freeze.html,
|
||||
|
@ -216,7 +217,7 @@ OPT.
|
|||
"wall/body/polyhedron"_fix_wall_body_polyhedron.html,
|
||||
"wall/colloid"_fix_wall.html,
|
||||
"wall/ees"_fix_wall_ees.html,
|
||||
"wall/gran"_fix_wall_gran.html,
|
||||
"wall/gran (o)"_fix_wall_gran.html,
|
||||
"wall/gran/region"_fix_wall_gran_region.html,
|
||||
"wall/harmonic"_fix_wall.html,
|
||||
"wall/lj1043"_fix_wall.html,
|
||||
|
|
|
@ -33,4 +33,5 @@ OPT.
|
|||
"pppm/disp (i)"_kspace_style.html,
|
||||
"pppm/disp/tip4p"_kspace_style.html,
|
||||
"pppm/stagger"_kspace_style.html,
|
||||
"pppm/tip4p (o)"_kspace_style.html :tb(c=4,ea=c)
|
||||
"pppm/tip4p (o)"_kspace_style.html,
|
||||
"scafacos"_kspace_style.html :tb(c=4,ea=c)
|
||||
|
|
|
@ -26,13 +26,14 @@ OPT.
|
|||
|
||||
"none"_pair_none.html,
|
||||
"zero"_pair_zero.html,
|
||||
"hybrid"_pair_hybrid.html,
|
||||
"hybrid (k)"_pair_hybrid.html,
|
||||
"hybrid/overlay (k)"_pair_hybrid.html :tb(c=4,ea=c)
|
||||
|
||||
"adp (o)"_pair_adp.html,
|
||||
"agni (o)"_pair_agni.html,
|
||||
"airebo (oi)"_pair_airebo.html,
|
||||
"airebo/morse (oi)"_pair_airebo.html,
|
||||
"atm"_pair_atm.html,
|
||||
"awpmd/cut"_pair_awpmd.html,
|
||||
"beck (go)"_pair_beck.html,
|
||||
"body/nparticle"_pair_body_nparticle.html,
|
||||
|
@ -80,6 +81,7 @@ OPT.
|
|||
"eam (gikot)"_pair_eam.html,
|
||||
"eam/alloy (gikot)"_pair_eam.html,
|
||||
"eam/cd (o)"_pair_eam.html,
|
||||
"eam/cd/old (o)"_pair_eam.html,
|
||||
"eam/fs (gikot)"_pair_eam.html,
|
||||
"edip (o)"_pair_edip.html,
|
||||
"edip/multi"_pair_edip.html,
|
||||
|
@ -166,7 +168,7 @@ OPT.
|
|||
"morse/soft"_pair_morse.html,
|
||||
"multi/lucy"_pair_multi_lucy.html,
|
||||
"multi/lucy/rx (k)"_pair_multi_lucy_rx.html,
|
||||
"nb3b/harmonic (o)"_pair_nb3b_harmonic.html,
|
||||
"nb3b/harmonic"_pair_nb3b_harmonic.html,
|
||||
"nm/cut (o)"_pair_nm.html,
|
||||
"nm/cut/coul/cut (o)"_pair_nm.html,
|
||||
"nm/cut/coul/long (o)"_pair_nm.html,
|
||||
|
|
|
@ -14,7 +14,7 @@ LAMMPS commands are case sensitive. Command names are lower-case, as
|
|||
are specified command arguments. Upper case letters may be used in
|
||||
file names or user-chosen ID strings.
|
||||
|
||||
Here are 6 rulse for how each line in the input script is parsed by
|
||||
Here are 6 rules for how each line in the input script is parsed by
|
||||
LAMMPS:
|
||||
|
||||
(1) If the last printable character on the line is a "&" character,
|
||||
|
@ -71,7 +71,7 @@ floating-point value. The format string is used to output the result
|
|||
of the variable expression evaluation. If a format string is not
|
||||
specified a high-precision "%.20g" is used as the default.
|
||||
|
||||
This can be useful for formatting print output to a desired precion:
|
||||
This can be useful for formatting print output to a desired precision:
|
||||
|
||||
print "Final energy per atom: $(pe/atoms:%10.3f) eV/atom" :pre
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 5.3 KiB |
|
@ -0,0 +1,9 @@
|
|||
\documentclass[12pt]{article}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{equation}
|
||||
E=\nu\frac{1+3\cos\gamma_1\cos\gamma_2\cos\gamma_3}{r_{12}^3r_{23}^3r_{31}^3}
|
||||
\end{equation}
|
||||
|
||||
\end{document}
|
Binary file not shown.
After Width: | Height: | Size: 6.7 KiB |
|
@ -0,0 +1,21 @@
|
|||
\documentclass[12pt,article]{article}
|
||||
|
||||
\usepackage{indentfirst}
|
||||
\usepackage{amsmath}
|
||||
|
||||
\newcommand{\set}[1]{\ensuremath{\mathbf{#1}}}
|
||||
\newcommand{\mean}[1]{\ensuremath{\overline{#1}}}
|
||||
\newcommand{\norm}[1]{\ensuremath{\left|\left|{#1}\right|\right|}}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{equation*}
|
||||
\text{RMSD}(\set{u}, \set{v}) = \min_{s, \set{Q}} \sqrt{\frac{1}{N} \sum\limits_{i=1}^{N}
|
||||
\norm{
|
||||
s[\vec{u_i} - \mean{\set{u}}]
|
||||
-
|
||||
\set{Q} \vec{v_i}
|
||||
}^2}
|
||||
\end{equation*}
|
||||
|
||||
\end{document}
|
|
@ -743,7 +743,7 @@ Self-explanatory. :dd
|
|||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Cannot (yet) use single precision with MSM (remove -DFFT_SINGLE from Makefile and recompile)} :dt
|
||||
{Cannot (yet) use single precision with MSM (remove -DFFT_SINGLE from Makefile and re-compile)} :dt
|
||||
|
||||
Single precision cannot be used with MSM. :dd
|
||||
|
||||
|
@ -1092,11 +1092,6 @@ correct. :dd
|
|||
The specified file cannot be opened. Check that the path and name are
|
||||
correct. :dd
|
||||
|
||||
{Cannot open fix ave/spatial file %s} :dt
|
||||
|
||||
The specified file cannot be opened. Check that the path and name are
|
||||
correct. :dd
|
||||
|
||||
{Cannot open fix ave/time file %s} :dt
|
||||
|
||||
The specified file cannot be opened. Check that the path and name are
|
||||
|
@ -1677,10 +1672,6 @@ provided by an atom map. An atom map does not exist (by default) for
|
|||
non-molecular problems. Using the atom_modify map command will force
|
||||
an atom map to be created. :dd
|
||||
|
||||
{Cannot use fix ave/spatial z for 2 dimensional model} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Cannot use fix bond/break with non-molecular systems} :dt
|
||||
|
||||
Only systems with bonds that can be changed can be used. Atom_style
|
||||
|
@ -2425,10 +2416,6 @@ Self-explanatory. :dd
|
|||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Compute ID for fix ave/spatial does not exist} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Compute ID for fix ave/time does not exist} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
@ -4074,10 +4061,6 @@ Self-explanatory. :dd
|
|||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Fix ID for fix ave/spatial does not exist} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Fix ID for fix ave/time does not exist} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
@ -4379,51 +4362,6 @@ same style. :dd
|
|||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Fix ave/spatial compute does not calculate a per-atom array} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Fix ave/spatial compute does not calculate a per-atom vector} :dt
|
||||
|
||||
A compute used by fix ave/spatial must generate per-atom values. :dd
|
||||
|
||||
{Fix ave/spatial compute does not calculate per-atom values} :dt
|
||||
|
||||
A compute used by fix ave/spatial must generate per-atom values. :dd
|
||||
|
||||
{Fix ave/spatial compute vector is accessed out-of-range} :dt
|
||||
|
||||
The index for the vector is out of bounds. :dd
|
||||
|
||||
{Fix ave/spatial fix does not calculate a per-atom array} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Fix ave/spatial fix does not calculate a per-atom vector} :dt
|
||||
|
||||
A fix used by fix ave/spatial must generate per-atom values. :dd
|
||||
|
||||
{Fix ave/spatial fix does not calculate per-atom values} :dt
|
||||
|
||||
A fix used by fix ave/spatial must generate per-atom values. :dd
|
||||
|
||||
{Fix ave/spatial fix vector is accessed out-of-range} :dt
|
||||
|
||||
The index for the vector is out of bounds. :dd
|
||||
|
||||
{Fix ave/spatial for triclinic boxes requires units reduced} :dt
|
||||
|
||||
Self-explanatory. :dd
|
||||
|
||||
{Fix ave/spatial settings invalid with changing box size} :dt
|
||||
|
||||
If the box size changes, only the units reduced option can be
|
||||
used. :dd
|
||||
|
||||
{Fix ave/spatial variable is not atom-style variable} :dt
|
||||
|
||||
A variable used by fix ave/spatial must generate per-atom values. :dd
|
||||
|
||||
{Fix ave/time cannot set output array intensive/extensive from these inputs} :dt
|
||||
|
||||
One of more of the vector inputs has individual elements which are
|
||||
|
@ -5078,7 +5016,7 @@ Self-explanatory. :dd
|
|||
|
||||
Occurs when number of neighbor atoms for an atom increased too much
|
||||
during a run. Increase SAFE_ZONE and MIN_CAP in fix_qeq.h and
|
||||
recompile. :dd
|
||||
re-compile. :dd
|
||||
|
||||
{Fix qeq/point requires atom attribute q} :dt
|
||||
|
||||
|
@ -5092,7 +5030,7 @@ Self-explanatory. :dd
|
|||
|
||||
Occurs when number of neighbor atoms for an atom increased too much
|
||||
during a run. Increase SAFE_ZONE and MIN_CAP in fix_qeq.h and
|
||||
recompile. :dd
|
||||
re-compile. :dd
|
||||
|
||||
{Fix qeq/shielded requires atom attribute q} :dt
|
||||
|
||||
|
@ -5110,7 +5048,7 @@ Self-explanatory. :dd
|
|||
|
||||
Occurs when number of neighbor atoms for an atom increased too much
|
||||
during a run. Increase SAFE_ZONE and MIN_CAP in fix_qeq.h and
|
||||
recompile. :dd
|
||||
re-compile. :dd
|
||||
|
||||
{Fix qeq/slater requires atom attribute q} :dt
|
||||
|
||||
|
@ -5541,7 +5479,7 @@ See the package gpu command. :dd
|
|||
|
||||
{GPUs are requested but Kokkos has not been compiled for CUDA} :dt
|
||||
|
||||
Recompile Kokkos with CUDA support to use GPUs. :dd
|
||||
Re-compile Kokkos with CUDA support to use GPUs. :dd
|
||||
|
||||
{Ghost velocity forward comm not yet implemented with Kokkos} :dt
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ This is an alphabetic list of the WARNING messages LAMMPS prints out
|
|||
and the reason why. If the explanation here is not sufficient, the
|
||||
documentation for the offending command may help. Warning messages
|
||||
also list the source file and line number where the warning was
|
||||
generated. For example, a message lile this:
|
||||
generated. For example, a message like this:
|
||||
|
||||
WARNING: Bond atom missing in box size check (domain.cpp:187) :pre
|
||||
|
||||
|
@ -291,24 +291,6 @@ This may cause accuracy problems. :dd
|
|||
|
||||
This may cause accuracy problems. :dd
|
||||
|
||||
{Fix thermal/conductivity comes before fix ave/spatial} :dt
|
||||
|
||||
The order of these 2 fixes in your input script is such that fix
|
||||
thermal/conductivity comes first. If you are using fix ave/spatial to
|
||||
measure the temperature profile induced by fix viscosity, then this
|
||||
may cause a glitch in the profile since you are averaging immediately
|
||||
after swaps have occurred. Flipping the order of the 2 fixes
|
||||
typically helps. :dd
|
||||
|
||||
{Fix viscosity comes before fix ave/spatial} :dt
|
||||
|
||||
The order of these 2 fixes in your input script is such that
|
||||
fix viscosity comes first. If you are using fix ave/spatial
|
||||
to measure the velocity profile induced by fix viscosity, then
|
||||
this may cause a glitch in the profile since you are averaging
|
||||
immediately after swaps have occurred. Flipping the order
|
||||
of the 2 fixes typically helps. :dd
|
||||
|
||||
{Fixes cannot send data in Kokkos communication, switching to classic communication} :dt
|
||||
|
||||
This is current restriction with Kokkos. :dd
|
||||
|
|
|
@ -54,6 +54,7 @@ General howto :h3
|
|||
Howto_replica
|
||||
Howto_library
|
||||
Howto_couple
|
||||
Howto_client_server
|
||||
|
||||
END_RST -->
|
||||
|
||||
|
@ -64,7 +65,8 @@ END_RST -->
|
|||
"Run multiple simulations from one input script"_Howto_multiple.html
|
||||
"Multi-replica simulations"_Howto_replica.html
|
||||
"Library interface to LAMMPS"_Howto_library.html
|
||||
"Couple LAMMPS to other codes"_Howto_couple.html :all(b)
|
||||
"Couple LAMMPS to other codes"_Howto_couple.html
|
||||
"Using LAMMPS in client/server mode"_Howto_client_server.html :all(b)
|
||||
|
||||
<!-- END_HTML_ONLY -->
|
||||
|
||||
|
|
|
@ -64,11 +64,11 @@ Thermodynamic output, which can be setup via the
|
|||
"thermo_style"_thermo_style.html command, often includes pressure
|
||||
values. As explained on the doc page for the
|
||||
"thermo_style"_thermo_style.html command, the default pressure is
|
||||
setup by the thermo command itself. It is NOT the presure associated
|
||||
setup by the thermo command itself. It is NOT the pressure associated
|
||||
with any barostatting fix you have defined or with any compute you
|
||||
have defined that calculates a presure. The doc pages for the
|
||||
have defined that calculates a pressure. The doc pages for the
|
||||
barostatting fixes explain the ID of the pressure compute they create.
|
||||
Thus if you want to view these pressurse, you need to specify them
|
||||
Thus if you want to view these pressures, you need to specify them
|
||||
explicitly via the "thermo_style custom"_thermo_style.html command.
|
||||
Or you can use the "thermo_modify"_thermo_modify.html command to
|
||||
re-define what pressure compute is used for default thermodynamic
|
||||
|
|
|
@ -337,7 +337,7 @@ the sphere that surrounds each vertex. The diameter value can be
|
|||
different for each body particle. These floating-point values can be
|
||||
listed on as many lines as you wish; see the
|
||||
"read_data"_read_data.html command for more details. Because the
|
||||
maxmimum vertices per face is hard-coded to be 4
|
||||
maximum number of vertices per face is hard-coded to be 4
|
||||
(i.e. quadrilaterals), faces with more than 4 vertices need to be
|
||||
split into triangles or quadrilaterals. For triangular faces, the
|
||||
last vertex index should be set to -1.
|
||||
|
|
|
@ -22,7 +22,7 @@ commands, to calculate various properties of a system:
|
|||
"fix ave/chunk"_fix_ave_chunk.html
|
||||
any of the "compute */chunk"_compute.html commands :ul
|
||||
|
||||
Here, each of the 3 kinds of chunk-related commands is briefly
|
||||
Here, each of the 4 kinds of chunk-related commands is briefly
|
||||
overviewed. Then some examples are given of how to compute different
|
||||
properties with chunk commands.
|
||||
|
||||
|
@ -83,8 +83,9 @@ chunk.
|
|||
|
||||
Compute */chunk commands: :h4
|
||||
|
||||
Currently the following computes operate on chunks of atoms to produce
|
||||
per-chunk values.
|
||||
The following computes operate on chunks of atoms to produce per-chunk
|
||||
values. Any compute whose style name ends in "/chunk" is in this
|
||||
category:
|
||||
|
||||
"compute com/chunk"_compute_com_chunk.html
|
||||
"compute gyration/chunk"_compute_gyration_chunk.html
|
||||
|
@ -111,8 +112,8 @@ of a center of mass, which requires summing mass*position over the
|
|||
atoms and then dividing by summed mass.
|
||||
|
||||
All of these computes produce a global vector or global array as
|
||||
output, wih one or more values per chunk. They can be used
|
||||
in various ways:
|
||||
output, wih one or more values per chunk. The output can be used in
|
||||
various ways:
|
||||
|
||||
As input to the "fix ave/time"_fix_ave_time.html command, which can
|
||||
write the values to a file and optionally time average them. :ulb,l
|
||||
|
@ -122,9 +123,27 @@ histogram values across chunks. E.g. a histogram of cluster sizes or
|
|||
molecule diffusion rates. :l
|
||||
|
||||
As input to special functions of "equal-style
|
||||
variables"_variable.html, like sum() and max(). E.g. to find the
|
||||
largest cluster or fastest diffusing molecule. :l
|
||||
:ule
|
||||
variables"_variable.html, like sum() and max() and ave(). E.g. to
|
||||
find the largest cluster or fastest diffusing molecule or average
|
||||
radius-of-gyration of a set of molecules (chunks). :l,ule
|
||||
|
||||
Other chunk commands: :h4
|
||||
|
||||
"compute chunk/spread/atom"_compute_chunk_spread_atom.html
|
||||
"compute reduce/chunk"_compute_reduce_chunk.html :ul
|
||||
|
||||
The "compute chunk/spread/atom"_compute_chunk_spread_atom.html command
|
||||
spreads per-chunk values to each atom in the chunk, producing per-atom
|
||||
values as its output. This can be useful for outputting per-chunk
|
||||
values to a per-atom "dump file"_dump.html. Or for using an atom's
|
||||
associated chunk value in an "atom-style variable"_variable.html.
|
||||
|
||||
The "compute reduce/chunk"_compute_reduce_chunk.html command reduces a
|
||||
peratom value across the atoms in each chunk to produce a value per
|
||||
chunk. When used with the "compute
|
||||
chunk/spread/atom"_compute_chunk_spread_atom.html command it can
|
||||
create peratom values that induce a new set of chunks with a second
|
||||
"compute chunk/atom"_compute_chunk_atom.html command.
|
||||
|
||||
Example calculations with chunks :h4
|
||||
|
||||
|
@ -164,3 +183,13 @@ compute cluster all cluster/atom 1.0
|
|||
compute cc1 all chunk/atom c_cluster compress yes
|
||||
compute size all property/chunk cc1 count
|
||||
fix 1 all ave/histo 100 1 100 0 20 20 c_size mode vector ave running beyond ignore file tmp.histo :pre
|
||||
|
||||
(6) An example of using a per-chunk value to apply per-atom forces to
|
||||
compress individual polymer chains (molecules) in a mixture, is
|
||||
explained on the "compute
|
||||
chunk/spread/atom"_compute_chunk_spread_atom.html command doc page.
|
||||
|
||||
(7) An example of using one set of per-chunk values for molecule
|
||||
chunks, to create a 2nd set of micelle-scale chunks (clustered
|
||||
molecules, due to hydrophobicity), is explained on the "compute
|
||||
chunk/reduce"_compute_reduce_chunk.html command doc page.
|
||||
|
|
|
@ -0,0 +1,131 @@
|
|||
"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS
|
||||
Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Commands_all.html)
|
||||
|
||||
:line
|
||||
|
||||
Using LAMMPS in client/server mode :h3
|
||||
|
||||
Client/server coupling of two codes is where one code is the "client"
|
||||
and sends request messages to a "server" code. The server responds to
|
||||
each request with a reply message. This enables the two codes to work
|
||||
in tandem to perform a simulation. LAMMPS can act as either a client
|
||||
or server code.
|
||||
|
||||
Some advantages of client/server coupling are that the two codes run
|
||||
as stand-alone executables; they are not linked together. Thus
|
||||
neither code needs to have a library interface. This often makes it
|
||||
easier to run the two codes on different numbers of processors. If a
|
||||
message protocol (format and content) is defined for a particular kind
|
||||
of simulation, then in principle any code that implements the
|
||||
client-side protocol can be used in tandem with any code that
|
||||
implements the server-side protocol, without the two codes needing to
|
||||
know anything more specific about each other.
|
||||
|
||||
A simple example of client/server coupling is where LAMMPS is the
|
||||
client code performing MD timestepping. Each timestep it sends a
|
||||
message to a server quantum code containing current coords of all the
|
||||
atoms. The quantum code computes energy and forces based on the
|
||||
coords. It returns them as a message to LAMMPS, which completes the
|
||||
timestep.
|
||||
|
||||
Alternate methods for code coupling with LAMMPS are described on
|
||||
the "Howto couple"_Howto_couple.html doc page.
|
||||
|
||||
LAMMPS support for client/server coupling is in its "MESSAGE
|
||||
package"_Packages_details.html#PKG-MESSAGE which implements several
|
||||
commands that enable LAMMPS to act as a client or server, as discussed
|
||||
below. The MESSAGE package also wraps a client/server library called
|
||||
CSlib which enables two codes to exchange messages in different ways,
|
||||
either via files, sockets, or MPI. The CSlib is provided with LAMMPS
|
||||
in the lib/message dir. The CSlib has its own
|
||||
"website"_http://cslib.sandia.gov with documentation and test
|
||||
programs.
|
||||
|
||||
NOTE: For client/server coupling to work between LAMMPS and another
|
||||
code, the other code also has to use the CSlib. This can sometimes be
|
||||
done without any modifications to the other code by simply wrapping it
|
||||
with a Python script that exchanges CSlib messages with LAMMPS and
|
||||
prepares input for or processes output from the other code. The other
|
||||
code also has to implement a matching protocol for the format and
|
||||
content of messages that LAMMPS exchanges with it.
|
||||
|
||||
These are the commands currently in the MESSAGE package for two
|
||||
protocols, MD and MC (Monte Carlo). New protocols can easily be
|
||||
defined and added to this directory, where LAMMPS acts as either the
|
||||
client or server.
|
||||
|
||||
"message"_message.html
|
||||
"fix client md"_fix_client_md.html = LAMMPS is a client for running MD
|
||||
"server md"_server_md.html = LAMMPS is a server for computing MD forces
|
||||
"server mc"_server_mc.html = LAMMPS is a server for computing a Monte Carlo energy :ul
|
||||
|
||||
The server doc files give details of the message protocols
|
||||
for data that is exchanged bewteen the client and server.
|
||||
|
||||
These example directories illustrate how to use LAMMPS as either a
|
||||
client or server code:
|
||||
|
||||
examples/message
|
||||
examples/COUPLE/README
|
||||
examples/COUPLE/lammps_mc
|
||||
examples/COUPLE/lammps_vasp :ul
|
||||
|
||||
The examples/message dir couples a client instance of LAMMPS to a
|
||||
server instance of LAMMPS.
|
||||
|
||||
The lammps_mc dir shows how to couple LAMMPS as a server to a simple
|
||||
Monte Carlo client code as the driver.
|
||||
|
||||
The lammps_vasp dir shows how to couple LAMMPS as a client code
|
||||
running MD timestepping to VASP acting as a server providing quantum
|
||||
DFT forces, thru a Python wrapper script on VASP.
|
||||
|
||||
Here is how to launch a client and server code together for any of the
|
||||
4 modes of message exchange that the "message"_message.html command
|
||||
and the CSlib support. Here LAMMPS is used as both the client and
|
||||
server code. Another code could be subsitituted for either.
|
||||
|
||||
The examples below show launching both codes from the same window (or
|
||||
batch script), using the "&" character to launch the first code in the
|
||||
background. For all modes except {mpi/one}, you could also launch the
|
||||
codes in separate windows on your desktop machine. It does not
|
||||
matter whether you launch the client or server first.
|
||||
|
||||
In these examples either code can be run on one or more processors.
|
||||
If running in a non-MPI mode (file or zmq) you can launch a code on a
|
||||
single processor without using mpirun.
|
||||
|
||||
IMPORTANT: If you run in mpi/two mode, you must launch both codes via
|
||||
mpirun, even if one or both of them runs on a single processor. This
|
||||
is so that MPI can figure out how to connect both MPI processes
|
||||
together to exchange MPI messages between them.
|
||||
|
||||
For message exchange in {file}, {zmq}, or {mpi/two} modes:
|
||||
|
||||
% mpirun -np 1 lmp_mpi -log log.client < in.client &
|
||||
% mpirun -np 2 lmp_mpi -log log.server < in.server :pre
|
||||
|
||||
% mpirun -np 4 lmp_mpi -log log.client < in.client &
|
||||
% mpirun -np 1 lmp_mpi -log log.server < in.server :pre
|
||||
|
||||
% mpirun -np 2 lmp_mpi -log log.client < in.client &
|
||||
% mpirun -np 4 lmp_mpi -log log.server < in.server :pre
|
||||
|
||||
For message exchange in {mpi/one} mode:
|
||||
|
||||
Launch both codes in a single mpirun command:
|
||||
|
||||
mpirun -np 2 lmp_mpi -mpicolor 0 -in in.message.client -log log.client : -np 4 lmp_mpi -mpicolor 1 -in in.message.server -log log.server :pre
|
||||
|
||||
The two -np values determine how many procs the client and the server
|
||||
run on.
|
||||
|
||||
A LAMMPS executable run in this manner must use the -mpicolor color
|
||||
command-line option as their its option, where color is an integer
|
||||
label that will be used to distinguish one executable from another in
|
||||
the multiple executables that the mpirun command launches. In this
|
||||
example the client was colored with a 0, and the server with a 1.
|
|
@ -16,10 +16,12 @@ atoms and pass those forces to LAMMPS. Or a continuum finite element
|
|||
nodal points, compute a FE solution, and return interpolated forces on
|
||||
MD atoms.
|
||||
|
||||
LAMMPS can be coupled to other codes in at least 3 ways. Each has
|
||||
LAMMPS can be coupled to other codes in at least 4 ways. Each has
|
||||
advantages and disadvantages, which you'll have to think about in the
|
||||
context of your application.
|
||||
|
||||
:line
|
||||
|
||||
(1) Define a new "fix"_fix.html command that calls the other code. In
|
||||
this scenario, LAMMPS is the driver code. During its timestepping,
|
||||
the fix is invoked, and can make library calls to the other code,
|
||||
|
@ -32,6 +34,8 @@ LAMMPS.
|
|||
|
||||
:link(poems,http://www.rpi.edu/~anderk5/lab)
|
||||
|
||||
:line
|
||||
|
||||
(2) Define a new LAMMPS command that calls the other code. This is
|
||||
conceptually similar to method (1), but in this case LAMMPS and the
|
||||
other code are on a more equal footing. Note that now the other code
|
||||
|
@ -52,6 +56,8 @@ command writes and reads.
|
|||
See the "Modify command"_Modify_command.html doc page for info on how
|
||||
to add a new command to LAMMPS.
|
||||
|
||||
:line
|
||||
|
||||
(3) Use LAMMPS as a library called by another code. In this case the
|
||||
other code is the driver and calls LAMMPS as needed. Or a wrapper
|
||||
code could link and call both LAMMPS and another code as libraries.
|
||||
|
@ -102,3 +108,9 @@ on all the processors. Or it might allocate half the processors to
|
|||
LAMMPS and half to the other code and run both codes simultaneously
|
||||
before syncing them up periodically. Or it might instantiate multiple
|
||||
instances of LAMMPS to perform different calculations.
|
||||
|
||||
:line
|
||||
|
||||
(4) Couple LAMMPS with another code in a client/server mode. This is
|
||||
described on the "Howto client/server"_Howto_client_server.html doc
|
||||
page.
|
||||
|
|
|
@ -171,16 +171,16 @@ void lammps_create_atoms(void *, int, tagint *, int *, double *, double *,
|
|||
|
||||
The gather functions collect peratom info of the requested type (atom
|
||||
coords, atom types, forces, etc) from all processors, and returns the
|
||||
same vector of values to each callling processor. The scatter
|
||||
same vector of values to each calling processor. The scatter
|
||||
functions do the inverse. They distribute a vector of peratom values,
|
||||
passed by all calling processors, to invididual atoms, which may be
|
||||
owned by different processos.
|
||||
passed by all calling processors, to individual atoms, which may be
|
||||
owned by different processors.
|
||||
|
||||
The lammps_gather_atoms() function does this for all N atoms in the
|
||||
system, ordered by atom ID, from 1 to N. The
|
||||
lammps_gather_atoms_concat() function does it for all N atoms, but
|
||||
simply concatenates the subset of atoms owned by each processor. The
|
||||
resulting vector is not ordered by atom ID. Atom IDs can be requetsed
|
||||
resulting vector is not ordered by atom ID. Atom IDs can be requested
|
||||
by the same function if the caller needs to know the ordering. The
|
||||
lammps_gather_subset() function allows the caller to request values
|
||||
for only a subset of atoms (identified by ID).
|
||||
|
|
|
@ -24,6 +24,11 @@ by subtracting out the streaming velocity of the shearing atoms. The
|
|||
velocity profile or other properties of the fluid can be monitored via
|
||||
the "fix ave/chunk"_fix_ave_chunk.html command.
|
||||
|
||||
NOTE: A recent (2017) book by "(Daivis and Todd)"_#Daivis-nemd
|
||||
discusses use of the SLLOD method and non-equilibrium MD (NEMD)
|
||||
thermostatting generally, for both simple and complex fluids,
|
||||
e.g. molecular systems. The latter can be tricky to do correctly.
|
||||
|
||||
As discussed in the previous section on non-orthogonal simulation
|
||||
boxes, the amount of tilt or skew that can be applied is limited by
|
||||
LAMMPS for computational efficiency to be 1/2 of the parallel box
|
||||
|
@ -46,3 +51,9 @@ An alternative method for calculating viscosities is provided via the
|
|||
NEMD simulations can also be used to measure transport properties of a fluid
|
||||
through a pore or channel. Simulations of steady-state flow can be performed
|
||||
using the "fix flow/gauss"_fix_flow_gauss.html command.
|
||||
|
||||
:line
|
||||
|
||||
:link(Daivis-nemd)
|
||||
[(Daivis and Todd)] Daivis and Todd, Nonequilibrium Molecular Dyanmics (book),
|
||||
Cambridge University Press, https://doi.org/10.1017/9781139017848, (2017).
|
||||
|
|
|
@ -73,7 +73,7 @@ that package into your current Python installation.
|
|||
cd $LAMMPS_DIR/python
|
||||
python install.py :pre
|
||||
|
||||
NOTE: Recompiling the shared library requires reinstalling the Python package
|
||||
NOTE: Recompiling the shared library requires re-installing the Python package
|
||||
|
||||
|
||||
Installation inside of a virtualenv :h5
|
||||
|
|
|
@ -159,7 +159,7 @@ ellipsoidal particles:
|
|||
|
||||
The advantage of these fixes is that those which thermostat the
|
||||
particles include the rotational degrees of freedom in the temperature
|
||||
calculation and thermostatting. The "fix langevin"_fix_langevin
|
||||
calculation and thermostatting. The "fix langevin"_fix_langevin.html
|
||||
command can also be used with its {omgea} or {angmom} options to
|
||||
thermostat the rotational degrees of freedom for spherical or
|
||||
ellipsoidal particles. Other thermostatting fixes only operate on the
|
||||
|
|
|
@ -9,10 +9,10 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
|||
|
||||
Magnetic spins :h3
|
||||
|
||||
The magnetic spin simualtions are enabled by the SPIN package, whose
|
||||
The magnetic spin simulations are enabled by the SPIN package, whose
|
||||
implementation is detailed in "Tranchida"_#Tranchida7.
|
||||
|
||||
The model representents the simulation of atomic magnetic spins coupled
|
||||
The model represents the simulation of atomic magnetic spins coupled
|
||||
to lattice vibrations. The dynamics of those magnetic spins can be used
|
||||
to simulate a broad range a phenomena related to magneto-elasticity, or
|
||||
or to study the influence of defects on the magnetic properties of
|
||||
|
@ -43,7 +43,7 @@ langevin/spin"_fix_langevin_spin.html. It allows to either dissipate
|
|||
the thermal energy of the Langevin thermostat, or to perform a
|
||||
relaxation of the magnetic configuration toward an equilibrium state.
|
||||
|
||||
All the computed magnetic properties can be outputed by two main
|
||||
All the computed magnetic properties can be output by two main
|
||||
commands. The first one is "compute spin"_compute_spin.html, that
|
||||
enables to evaluate magnetic averaged quantities, such as the total
|
||||
magnetization of the system along x, y, or z, the spin temperature, or
|
||||
|
|
|
@ -43,6 +43,11 @@ nvt/asphere"_fix_nvt_asphere.html thermostat not only translation
|
|||
velocities but also rotational velocities for spherical and aspherical
|
||||
particles.
|
||||
|
||||
NOTE: A recent (2017) book by "(Daivis and Todd)"_#Daivis-thermostat
|
||||
discusses use of the SLLOD method and non-equilibrium MD (NEMD)
|
||||
thermostatting generally, for both simple and complex fluids,
|
||||
e.g. molecular systems. The latter can be tricky to do correctly.
|
||||
|
||||
DPD thermostatting alters pairwise interactions in a manner analogous
|
||||
to the per-particle thermostatting of "fix
|
||||
langevin"_fix_langevin.html.
|
||||
|
@ -87,3 +92,9 @@ specify them explicitly via the "thermo_style
|
|||
custom"_thermo_style.html command. Or you can use the
|
||||
"thermo_modify"_thermo_modify.html command to re-define what
|
||||
temperature compute is used for default thermodynamic output.
|
||||
|
||||
:line
|
||||
|
||||
:link(Daivis-thermostat)
|
||||
[(Daivis and Todd)] Daivis and Todd, Nonequilibrium Molecular Dyanmics (book),
|
||||
Cambridge University Press, https://doi.org/10.1017/9781139017848, (2017).
|
||||
|
|
|
@ -37,6 +37,11 @@ used to shear the fluid in between them, again with some kind of
|
|||
thermostat that modifies only the thermal (non-shearing) components of
|
||||
velocity to prevent the fluid from heating up.
|
||||
|
||||
NOTE: A recent (2017) book by "(Daivis and Todd)"_#Daivis-viscosity
|
||||
discusses use of the SLLOD method and non-equilibrium MD (NEMD)
|
||||
thermostatting generally, for both simple and complex fluids,
|
||||
e.g. molecular systems. The latter can be tricky to do correctly.
|
||||
|
||||
In both cases, the velocity profile setup in the fluid by this
|
||||
procedure can be monitored by the "fix ave/chunk"_fix_ave_chunk.html
|
||||
command, which determines grad(Vstream) in the equation above.
|
||||
|
@ -131,3 +136,9 @@ mean-square-displacement formulation for self-diffusivity. The
|
|||
time-integrated momentum fluxes play the role of Cartesian
|
||||
coordinates, whose mean-square displacement increases linearly
|
||||
with time at sufficiently long times.
|
||||
|
||||
:line
|
||||
|
||||
:link(Daivis-viscosity)
|
||||
[(Daivis and Todd)] Daivis and Todd, Nonequilibrium Molecular Dyanmics (book),
|
||||
Cambridge University Press, https://doi.org/10.1017/9781139017848, (2017).
|
||||
|
|
|
@ -9,39 +9,16 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
|||
|
||||
Download an executable for Linux :h3
|
||||
|
||||
Binaries are available for many different versions of Linux:
|
||||
Binaries are available for different versions of Linux:
|
||||
|
||||
"Pre-built binary RPMs for Fedora/RedHat/CentOS/openSUSE"_#rpm
|
||||
"Pre-built Ubuntu Linux executables"_#ubuntu
|
||||
"Pre-built Fedora Linux executables"_#fedora
|
||||
"Pre-built EPEL Linux executables (RHEL, CentOS)"_#epel
|
||||
"Pre-built OpenSuse Linux executables"_#opensuse
|
||||
"Pre-built Gentoo Linux executable"_#gentoo :all(b)
|
||||
|
||||
:line
|
||||
|
||||
Pre-built binary RPMs for Fedora/RedHat/CentOS/openSUSE :h4,link(rpm)
|
||||
|
||||
Pre-built LAMMPS executables for various Linux distributions
|
||||
can be downloaded as binary RPM files from this site:
|
||||
|
||||
"http://rpm.lammps.org"_http://rpm.lammps.org
|
||||
|
||||
There are multiple package variants supporting serial, parallel and
|
||||
Python wrapper versions. The LAMMPS binaries contain all optional
|
||||
packages included in the source distribution except: GPU, KIM, REAX,
|
||||
and USER-INTEL.
|
||||
|
||||
Installation instructions for the various versions are here:
|
||||
|
||||
"http://rpm.lammps.org/install.html"_http://rpm.lammps.org/install.html
|
||||
|
||||
The instructions show how to enable the repository in the respective
|
||||
system's package management system. Installing and updating are then
|
||||
straightforward and automatic.
|
||||
|
||||
Thanks to Axel Kohlmeyer (Temple U, akohlmey at gmail.com) for setting
|
||||
up this RPM capability.
|
||||
|
||||
:line
|
||||
|
||||
Pre-built Ubuntu Linux executables :h4,link(ubuntu)
|
||||
|
||||
A pre-built LAMMPS executable suitable for running on the latest
|
||||
|
@ -60,10 +37,10 @@ To install LAMMPS do the following once:
|
|||
|
||||
sudo apt-get install lammps-daily :pre
|
||||
|
||||
This downloads an executable named "lammps-daily" to your box, which
|
||||
This downloads an executable named "lmp_daily" to your box, which
|
||||
can then be used in the usual way to run input scripts:
|
||||
|
||||
lammps-daily < in.lj :pre
|
||||
lmp_daily -in in.lj :pre
|
||||
|
||||
To update LAMMPS to the most current version, do the following:
|
||||
|
||||
|
@ -99,6 +76,80 @@ Ubuntu package capability.
|
|||
|
||||
:line
|
||||
|
||||
Pre-built Fedora Linux executables :h4,link(fedora)
|
||||
|
||||
Pre-built LAMMPS packages for stable releases are available
|
||||
in the Fedora Linux distribution as of version 28. The packages
|
||||
can be installed via the dnf package manager. There are 3 basic
|
||||
varieties (lammps = no MPI, lammps-mpich = MPICH MPI library,
|
||||
lammps-openmpi = OpenMPI MPI library) and for each support for
|
||||
linking to the C library interface (lammps-devel, lammps-mpich-devel,
|
||||
lammps-openmpi-devel), the header for compiling programs using
|
||||
the C library interface (lammps-headers), and the LAMMPS python
|
||||
module for Python 3. All packages can be installed at the same
|
||||
time and the name of the LAMMPS executable is {lmp} in all 3 cases.
|
||||
By default, {lmp} will refer to the serial executable, unless
|
||||
one of the MPI environment modules is loaded
|
||||
("module load mpi/mpich-x86_64" or "module load mpi/openmpi-x86_64").
|
||||
Then the corresponding parallel LAMMPS executable is used.
|
||||
The same mechanism applies when loading the LAMMPS python module.
|
||||
|
||||
To install LAMMPS with OpenMPI and run an input in.lj with 2 CPUs do:
|
||||
|
||||
dnf install lammps-openmpi
|
||||
module load mpi/openmpi-x86_64
|
||||
mpirun -np 2 lmp -in in.lj :pre
|
||||
|
||||
The "dnf install" command is needed only once. In case of a new LAMMPS
|
||||
stable release, "dnf update" will automatically update to the newer
|
||||
version as soon at the RPM files are built and uploaded to the download
|
||||
mirrors. The "module load" command is needed once per (shell) session
|
||||
or shell terminal instance, unless it is automatically loaded from the
|
||||
shell profile.
|
||||
|
||||
Please use "lmp -help" to see which compilation options, packages,
|
||||
and styles are included in the binary.
|
||||
|
||||
Thanks to Christoph Junghans (LANL) for making LAMMPS available in Fedora.
|
||||
|
||||
:line
|
||||
|
||||
Pre-built EPEL Linux executable :h4,link(epel)
|
||||
|
||||
Pre-built LAMMPS packages for stable releases are available
|
||||
in the "Extra Packages for Enterprise Linux (EPEL) repository"_https://fedoraproject.org/wiki/EPEL
|
||||
for use with Red Hat Enterprise Linux (RHEL) or CentOS version 7.x
|
||||
and compatible Linux distributions. Names of packages, executable,
|
||||
and content are the same as described above for Fedora Linux.
|
||||
But RHEL/CentOS 7.x uses the "yum" package manager instead of "dnf"
|
||||
in Fedora 28.
|
||||
|
||||
Please use "lmp -help" to see which compilation options, packages,
|
||||
and styles are included in the binary.
|
||||
|
||||
Thanks to Christoph Junghans (LANL) for making LAMMPS available in EPEL.
|
||||
|
||||
:line
|
||||
|
||||
Pre-built OpenSuse Linux executable :h4,link(opensuse)
|
||||
|
||||
A pre-built LAMMPS package for stable releases is available
|
||||
in OpenSuse as of Leap 15.0. You can install the package with:
|
||||
|
||||
zypper install lammps :pre
|
||||
|
||||
This includes support for OpenMPI. The name of the LAMMPS executable
|
||||
is {lmp}. Thus to run an input in parallel on 2 CPUs you would do:
|
||||
|
||||
mpirun -np 2 lmp -in in.lj :pre
|
||||
|
||||
Please use "lmp -help" to see which compilation options, packages,
|
||||
and styles are included in the binary.
|
||||
|
||||
Thanks to Christoph Junghans (LANL) for making LAMMPS available in OpenSuse.
|
||||
|
||||
:line
|
||||
|
||||
Pre-built Gentoo Linux executable :h4,link(gentoo)
|
||||
|
||||
LAMMPS is part of Gentoo's main package tree and can be installed by
|
||||
|
|
|
@ -17,10 +17,11 @@ how to stay current are on the "Install git"_Install_git.html and
|
|||
If you prefer to download a tarball, as described on the "Install
|
||||
git"_Install_tarball.html doc page, you can stay current by
|
||||
downloading "patch files" when new patch releases are made. A link to
|
||||
a patch file is posted on the "bug and feature page"_bug of the
|
||||
website, along with a list of changed files and details about what is
|
||||
in the new patch release. This page explains how to apply the patch
|
||||
file to your local LAMMPS directory.
|
||||
a patch file is posted on the "bug and feature
|
||||
page"_http://lammps.sandia.gov/bug.html of the LAMMPS website, along
|
||||
with a list of changed files and details about what is in the new patch
|
||||
release. This page explains how to apply the patch file to your local
|
||||
LAMMPS directory.
|
||||
|
||||
NOTE: You should not apply patch files to a local Git or SVN repo of
|
||||
LAMMPS, only to an unpacked tarball. Use Git and SVN commands to
|
||||
|
|
|
@ -7,7 +7,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
|||
|
||||
:line
|
||||
|
||||
Download source as a tarball :h3
|
||||
Download source and documentation as a tarball :h3
|
||||
|
||||
You can download a current LAMMPS tarball from the "download page"_download
|
||||
of the "LAMMPS website"_lws.
|
||||
|
@ -22,6 +22,10 @@ few times per year, and undergo more testing before release. Patch
|
|||
releases occur a couple times per month. The new contents in all
|
||||
releases are listed on the "bug and feature page"_bug of the website.
|
||||
|
||||
Both tarballs include LAMMPS documentation (HTML and PDF files)
|
||||
corresponding to that version. The download page also has an option
|
||||
to download the current-version LAMMPS documentation by itself.
|
||||
|
||||
Older versions of LAMMPS can also be downloaded from "this
|
||||
page"_older.
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ variety of interatomic potentials (force fields) and boundary
|
|||
conditions. It can model 2d or 3d systems with only a few particles
|
||||
up to millions or billions.
|
||||
|
||||
LAMMPS can be built and run on a laptop or destop machine, but is
|
||||
LAMMPS can be built and run on a laptop or desktop machine, but is
|
||||
designed for parallel computers. It will run on any parallel machine
|
||||
that supports the "MPI"_mpi message-passing library. This includes
|
||||
shared-memory boxes and distributed-memory clusters and
|
||||
|
@ -45,7 +45,7 @@ nature; some long-range models are included as well.
|
|||
LAMMPS uses neighbor lists to keep track of nearby particles. The
|
||||
lists are optimized for systems with particles that are repulsive at
|
||||
short distances, so that the local density of particles never becomes
|
||||
too large. This is in contrast to methods used for modeling plasmas
|
||||
too large. This is in contrast to methods used for modeling plasma
|
||||
or gravitational bodies (e.g. galaxy formation).
|
||||
|
||||
On parallel machines, LAMMPS uses spatial-decomposition techniques to
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
|
@ -1,7 +1,7 @@
|
|||
<!-- HTML_ONLY -->
|
||||
<HEAD>
|
||||
<TITLE>LAMMPS Users Manual</TITLE>
|
||||
<META NAME="docnumber" CONTENT="16 Aug 2018 version">
|
||||
<META NAME="docnumber" CONTENT="10 Oct 2018 version">
|
||||
<META NAME="author" CONTENT="http://lammps.sandia.gov - Sandia National Laboratories">
|
||||
<META NAME="copyright" CONTENT="Copyright (2003) Sandia Corporation. This software and manual is distributed under the GNU General Public License.">
|
||||
</HEAD>
|
||||
|
@ -21,7 +21,7 @@
|
|||
:line
|
||||
|
||||
LAMMPS Documentation :c,h1
|
||||
16 Aug 2018 version :c,h2
|
||||
10 Oct 2018 version :c,h2
|
||||
|
||||
"What is a LAMMPS version?"_Manual_version.html
|
||||
|
||||
|
|
|
@ -10,15 +10,16 @@ Section"_Manual.html :c
|
|||
|
||||
Building the LAMMPS manual :h2
|
||||
|
||||
Depending on how you obtained LAMMPS, the doc directory has
|
||||
2 or 3 sub-directories and optionally 2 PDF files and an ePUB file:
|
||||
Depending on how you obtained LAMMPS, the doc directory has 2 or 3
|
||||
sub-directories and optionally 2 PDF files and 2 e-book format files:
|
||||
|
||||
src # content files for LAMMPS documentation
|
||||
html # HTML version of the LAMMPS manual (see html/Manual.html)
|
||||
tools # tools and settings for building the documentation
|
||||
Manual.pdf # large PDF version of entire manual
|
||||
Developer.pdf # small PDF with info about how LAMMPS is structured
|
||||
LAMMPS.epub # Manual in ePUB format :pre
|
||||
LAMMPS.epub # Manual in ePUB e-book format
|
||||
LAMMPS.mobi # Manual in MOBI e-book format :pre
|
||||
|
||||
If you downloaded LAMMPS as a tarball from the web site, all these
|
||||
directories and files should be included.
|
||||
|
@ -40,7 +41,7 @@ HTML files already exist. This requires various tools including
|
|||
Sphinx, which the build process will attempt to download and install
|
||||
on your system, if not already available. See more details below.
|
||||
|
||||
(c) You can genererate an older, simpler, less-fancy style of HTML
|
||||
(c) You can generate an older, simpler, less-fancy style of HTML
|
||||
documentation by typing "make old". This will create an "old"
|
||||
directory. This can be useful if (b) does not work on your box for
|
||||
some reason, or you want to quickly view the HTML version of a doc
|
||||
|
@ -61,6 +62,7 @@ make old # generate old-style HTML pages in old dir via txt2html
|
|||
make fetch # fetch HTML doc pages and 2 PDF files from web site
|
||||
# as a tarball and unpack into html dir and 2 PDFs
|
||||
make epub # generate LAMMPS.epub in ePUB format using Sphinx
|
||||
make mobi # generate LAMMPS.mobi in MOBI format using ebook-convert
|
||||
make clean # remove intermediate RST files created by HTML build
|
||||
make clean-all # remove entire build folder and any cached data :pre
|
||||
|
||||
|
@ -68,7 +70,7 @@ make clean-all # remove entire build folder and any cached data :pre
|
|||
|
||||
Installing prerequisites for HTML build :h3
|
||||
|
||||
To run the HTML documention build toolchain, Python 3 and virtualenv
|
||||
To run the HTML documentation build toolchain, Python 3 and virtualenv
|
||||
have to be installed. Here are instructions for common setups:
|
||||
|
||||
Ubuntu :h4
|
||||
|
@ -115,10 +117,8 @@ ePUB :h4
|
|||
Same as for HTML. This uses the same tools and configuration
|
||||
files as the HTML tree.
|
||||
|
||||
For converting the generated ePUB file to a mobi format file
|
||||
For converting the generated ePUB file to a MOBI format file
|
||||
(for e-book readers like Kindle, that cannot read ePUB), you
|
||||
also need to have the 'ebook-convert' tool from the "calibre"
|
||||
software installed. "http://calibre-ebook.com/"_http://calibre-ebook.com/
|
||||
You first create the ePUB file with 'make epub' and then do:
|
||||
|
||||
ebook-convert LAMMPS.epub LAMMPS.mobi :pre
|
||||
You first create the ePUB file and then convert it with 'make mobi'
|
||||
|
|
|
@ -10,7 +10,7 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
|||
Overview :h3
|
||||
|
||||
The best way to add a new feature to LAMMPS is to find a similar
|
||||
featureand look at the corresponding source and header files to figure
|
||||
feature and look at the corresponding source and header files to figure
|
||||
out what it does. You will need some knowledge of C++ to be able to
|
||||
understand the hi-level structure of LAMMPS and its class
|
||||
organization, but functions (class methods) that do actual
|
||||
|
|
|
@ -46,6 +46,7 @@ as contained in the file name.
|
|||
"MANYBODY"_#PKG-MANYBODY,
|
||||
"MC"_#PKG-MC,
|
||||
"MEAM"_#PKG-MEAM,
|
||||
"MESSAGE"_#PKG-MESSAGE,
|
||||
"MISC"_#PKG-MISC,
|
||||
"MOLECULE"_#PKG-MOLECULE,
|
||||
"MPIIO"_#PKG-MPIIO,
|
||||
|
@ -88,10 +89,12 @@ as contained in the file name.
|
|||
"USER-NETCDF"_#PKG-USER-NETCDF,
|
||||
"USER-OMP"_#PKG-USER-OMP,
|
||||
"USER-PHONON"_#PKG-USER-PHONON,
|
||||
"USER-PTM"_#PKG-USER-PTM,
|
||||
"USER-QMMM"_#PKG-USER-QMMM,
|
||||
"USER-QTB"_#PKG-USER-QTB,
|
||||
"USER-QUIP"_#PKG-USER-QUIP,
|
||||
"USER-REAXC"_#PKG-USER-REAXC,
|
||||
"USER-SCAFACOS"_#PKG-USER-SCAFACOS,
|
||||
"USER-SMD"_#PKG-USER-SMD,
|
||||
"USER-SMTBQ"_#PKG-USER-SMTBQ,
|
||||
"USER-SPH"_#PKG-USER-SPH,
|
||||
|
@ -297,7 +300,7 @@ lib/gpu/README
|
|||
"Section 2.6 -sf gpu"_Run_options.html
|
||||
"Section 2.6 -pk gpu"_Run_options.html
|
||||
"package gpu"_package.html
|
||||
"Commands all"_Commands_all.html pages (pair,kspace) for styles followed by (g)
|
||||
"Commands all"_lc pages (pair,kspace) for styles followed by (g)
|
||||
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
|
||||
|
||||
:line
|
||||
|
@ -412,7 +415,7 @@ lib/kokkos/README
|
|||
"Section 2.6 -sf kk"_Run_options.html
|
||||
"Section 2.6 -pk kokkos"_Run_options.html
|
||||
"package kokkos"_package.html
|
||||
"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (k)
|
||||
"Commands all"_lc pages (fix,compute,pair,etc) for styles followed by (k)
|
||||
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
|
||||
|
||||
:line
|
||||
|
@ -549,10 +552,6 @@ This package has "specific installation
|
|||
instructions"_Build_extras.html#gpu on the "Build
|
||||
extras"_Build_extras.html doc page.
|
||||
|
||||
NOTE: You should test building the MEAM library with both the Intel
|
||||
and GNU compilers to see if a simulation runs faster with one versus
|
||||
the other on your system.
|
||||
|
||||
[Supporting info:]
|
||||
|
||||
src/MEAM: filenames -> commands
|
||||
|
@ -563,6 +562,31 @@ examples/meam :ul
|
|||
|
||||
:line
|
||||
|
||||
MESSAGE package :link(PKG-MESSAGE),h4
|
||||
|
||||
[Contents:]
|
||||
|
||||
Commands to use LAMMPS as either a client or server and couple it to
|
||||
another application.
|
||||
|
||||
[Install:]
|
||||
|
||||
This package has "specific installation
|
||||
instructions"_Build_extras.html#message on the "Build
|
||||
extras"_Build_extras.html doc page.
|
||||
|
||||
[Supporting info:]
|
||||
|
||||
src/MESSAGE: filenames -> commands
|
||||
lib/message/README
|
||||
"message"_message.html
|
||||
"fix client/md"_fix_client_md.html
|
||||
"server md"_server_md.html
|
||||
"server mc"_server_mc.html
|
||||
examples/message :ul
|
||||
|
||||
:line
|
||||
|
||||
MISC package :link(PKG-MISC),h4
|
||||
|
||||
[Contents:]
|
||||
|
@ -851,7 +875,7 @@ multi-replica simulations in LAMMPS. Methods in the package include
|
|||
nudged elastic band (NEB), parallel replica dynamics (PRD),
|
||||
temperature accelerated dynamics (TAD), parallel tempering, and a
|
||||
verlet/split algorithm for performing long-range Coulombics on one set
|
||||
of processors, and the remainder of the force field calcalation on
|
||||
of processors, and the remainder of the force field calculation on
|
||||
another set.
|
||||
|
||||
[Supporting info:]
|
||||
|
@ -874,7 +898,7 @@ RIGID package :link(PKG-RIGID),h4
|
|||
[Contents:]
|
||||
|
||||
Fixes which enforce rigid constraints on collections of atoms or
|
||||
particles. This includes SHAKE and RATTLE, as well as varous
|
||||
particles. This includes SHAKE and RATTLE, as well as various
|
||||
rigid-body integrators for a few large bodies or many small bodies.
|
||||
Also several computes which calculate properties of rigid bodies.
|
||||
|
||||
|
@ -1370,7 +1394,7 @@ which have styles optimized for CPUs and KNLs.
|
|||
|
||||
You need to have an Intel compiler, version 14 or higher to take full
|
||||
advantage of this package. While compilation with GNU compilers is
|
||||
supported, performance will be suboptimal.
|
||||
supported, performance will be sub-optimal.
|
||||
|
||||
NOTE: the USER-INTEL package contains styles that require using the
|
||||
-restrict flag, when compiling with Intel compilers.
|
||||
|
@ -1392,7 +1416,7 @@ src/USER-INTEL/README
|
|||
"Section 2.6 -sf intel"_Run_options.html
|
||||
"Section 2.6 -pk intel"_Run_options.html
|
||||
"package intel"_package.html
|
||||
"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (i)
|
||||
"Commands all"_lc pages (fix,compute,pair,etc) for styles followed by (i)
|
||||
src/USER-INTEL/TEST
|
||||
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
|
||||
|
||||
|
@ -1582,8 +1606,6 @@ molecular visualization and analysis program, to enable LAMMPS to dump
|
|||
snapshots in formats compatible with various molecular simulation
|
||||
tools.
|
||||
|
||||
:link(vmd_home,http://www.ks.uiuc.edu/Research/vmd)
|
||||
|
||||
To use this package you must have the desired VMD plugins available on
|
||||
your system.
|
||||
|
||||
|
@ -1593,7 +1615,7 @@ plugin via the "dump molfile"_dump_molfile.html command. Plugins can
|
|||
be obtained from a VMD installation which has to match the platform
|
||||
that you are using to compile LAMMPS for. By adding plugins to VMD,
|
||||
support for new file formats can be added to LAMMPS (or VMD or other
|
||||
programs that use them) without having to recompile the application
|
||||
programs that use them) without having to re-compile the application
|
||||
itself. More information about the VMD molfile plugins can be found
|
||||
at
|
||||
"http://www.ks.uiuc.edu/Research/vmd/plugins/molfile"_http://www.ks.uiuc.edu/Research/vmd/plugins/molfile.
|
||||
|
@ -1635,6 +1657,7 @@ tools:
|
|||
"AtomEye"_atomeye (the libAtoms version of AtomEye contains a NetCDF reader not present in the standard distribution) :ul
|
||||
|
||||
:link(ovito,http://www.ovito.org)
|
||||
:link(vmd_home,https://www.ks.uiuc.edu/Research/vmd/)
|
||||
:link(atomeye,http://www.libatoms.org)
|
||||
|
||||
[Author:] Lars Pastewka (Karlsruhe Institute of Technology).
|
||||
|
@ -1698,7 +1721,7 @@ src/USER-OMP/README
|
|||
"Section 2.6 -sf omp"_Run_options.html
|
||||
"Section 2.6 -pk omp"_Run_options.html
|
||||
"package omp"_package.html
|
||||
"Commands all"_Commands_all.html pages (fix,compute,pair,etc) for styles followed by (o)
|
||||
"Commands all"_lc pages (fix,compute,pair,etc) for styles followed by (o)
|
||||
"Benchmarks page"_http://lammps.sandia.gov/bench.html of web site :ul
|
||||
|
||||
:line
|
||||
|
@ -1722,6 +1745,24 @@ examples/USER/phonon :ul
|
|||
|
||||
:line
|
||||
|
||||
USER-PTM package :link(PKG-USER-PTM),h4
|
||||
|
||||
[Contents:]
|
||||
|
||||
A "compute ptm/atom"_compute_ptm_atom.html command that calculates
|
||||
local structure characterization using the Polyhedral Template
|
||||
Matching methodology.
|
||||
|
||||
[Author:] Peter Mahler Larsen (MIT).
|
||||
|
||||
[Supporting info:]
|
||||
|
||||
src/USER-PTM: filename starting with ptm_ -> supporting code, other filenames -> commands
|
||||
src/USER-PTM/LICENSE
|
||||
"compute ptm/atom"_compute_ptm_atom.html :ul
|
||||
|
||||
:line
|
||||
|
||||
USER-QMMM package :link(PKG-USER-QMMM),h4
|
||||
|
||||
[Contents:]
|
||||
|
@ -1839,6 +1880,41 @@ examples/reax :ul
|
|||
|
||||
:line
|
||||
|
||||
USER-SCAFACOS package :link(PKG-USER-SCAFACOS),h4
|
||||
|
||||
[Contents:]
|
||||
|
||||
A KSpace style which wraps the "ScaFaCoS Coulomb solver
|
||||
library"_http://www.scafacos.de to compute long-range Coulombic
|
||||
interactions.
|
||||
|
||||
To use this package you must have the ScaFaCoS library available on
|
||||
your system.
|
||||
|
||||
[Author:] Rene Halver (JSC) wrote the scafacos LAMMPS command.
|
||||
|
||||
ScaFaCoS itself was developed by a consortium of German research
|
||||
facilities with a BMBF (German Ministry of Science and Education)
|
||||
funded project in 2009-2012. Participants of the consortium were the
|
||||
Universities of Bonn, Chemnitz, Stuttgart, and Wuppertal as well as
|
||||
the Forschungszentrum Juelich.
|
||||
|
||||
[Install:]
|
||||
|
||||
This package has "specific installation
|
||||
instructions"_Build_extras.html#user-scafacos on the "Build
|
||||
extras"_Build_extras.html doc page.
|
||||
|
||||
[Supporting info:]
|
||||
|
||||
src/USER-SCAFACOS: filenames -> commands
|
||||
src/USER-SCAFACOS/README
|
||||
"kspace_style scafacos"_kspace_style.html
|
||||
"kspace_modify"_kspace_modify.html
|
||||
examples/USER/scafacos :ul
|
||||
|
||||
:line
|
||||
|
||||
USER-SMD package :link(PKG-USER-SMD),h4
|
||||
|
||||
[Contents:]
|
||||
|
@ -1998,3 +2074,5 @@ src/USER-VTK: filenames -> commands
|
|||
src/USER-VTK/README
|
||||
lib/vtk/README
|
||||
"dump vtk"_dump_vtk.html :ul
|
||||
|
||||
|
||||
|
|
|
@ -47,7 +47,8 @@ Package, Description, Doc page, Example, Library
|
|||
"MANYBODY"_Packages_details.html#PKG-MANYBODY, many-body potentials, "pair_style tersoff"_pair_tersoff.html, shear, no
|
||||
"MC"_Packages_details.html#PKG-MC, Monte Carlo options, "fix gcmc"_fix_gcmc.html, n/a, no
|
||||
"MEAM"_Packages_details.html#PKG-MEAM, modified EAM potential, "pair_style meam"_pair_meam.html, meam, int
|
||||
"MISC"_Packages_details.html#PKG-MISC, miscellanous single-file commands, n/a, no, no
|
||||
"MESSAGE"_Packages_details.html#PKG-MESSAGE, client/server messaging, "message"_message.html, message, int
|
||||
"MISC"_Packages_details.html#PKG-MISC, miscellaneous single-file commands, n/a, no, no
|
||||
"MOLECULE"_Packages_details.html#PKG-MOLECULE, molecular system force fields, "Howto bioFF"_Howto_bioFF.html, peptide, no
|
||||
"MPIIO"_Packages_details.html#PKG-MPIIO, MPI parallel I/O dump and restart, "dump"_dump.html, n/a, no
|
||||
"MSCG"_Packages_details.html#PKG-MSCG, multi-scale coarse-graining wrapper, "fix mscg"_fix_mscg.html, mscg, ext
|
||||
|
|
|
@ -58,14 +58,16 @@ Package, Description, Doc page, Example, Library
|
|||
"USER-MGPT"_Packages_details.html#PKG-USER-MGPT, fast MGPT multi-ion potentials, "pair_style mgpt"_pair_mgpt.html, USER/mgpt, no
|
||||
"USER-MISC"_Packages_details.html#PKG-USER-MISC, single-file contributions, USER-MISC/README, USER/misc, no
|
||||
"USER-MOFFF"_Packages_details.html#PKG-USER-MOFFF, styles for "MOF-FF"_MOFplus force field, "pair_style buck6d/coul/gauss"_pair_buck6d_coul_gauss.html, USER/mofff, no
|
||||
"USER-MOLFILE"_Packages_details.html#PKG-USER-MOLFILE, "VMD"_vmd_home molfile plug-ins,"dump molfile"_dump_molfile.html, n/a, ext
|
||||
"USER-MOLFILE"_Packages_details.html#PKG-USER-MOLFILE, "VMD"_https://www.ks.uiuc.edu/Research/vmd/ molfile plug-ins,"dump molfile"_dump_molfile.html, n/a, ext
|
||||
"USER-NETCDF"_Packages_details.html#PKG-USER-NETCDF, dump output via NetCDF,"dump netcdf"_dump_netcdf.html, n/a, ext
|
||||
"USER-OMP"_Packages_details.html#PKG-USER-OMP, OpenMP-enabled styles,"Speed omp"_Speed_omp.html, "Benchmarks"_http://lammps.sandia.gov/bench.html, no
|
||||
"USER-PHONON"_Packages_details.html#PKG-USER-PHONON, phonon dynamical matrix,"fix phonon"_fix_phonon.html, USER/phonon, no
|
||||
"USER-PTM"_Packages_details.html#PKG-USER-PTM, Polyhedral Template Matching,"compute ptm/atom"_compute_ptm_atom.html, n/a, no
|
||||
"USER-QMMM"_Packages_details.html#PKG-USER-QMMM, QM/MM coupling,"fix qmmm"_fix_qmmm.html, USER/qmmm, ext
|
||||
"USER-QTB"_Packages_details.html#PKG-USER-QTB, quantum nuclear effects,"fix qtb"_fix_qtb.html "fix qbmsst"_fix_qbmsst.html, qtb, no
|
||||
"USER-QUIP"_Packages_details.html#PKG-USER-QUIP, QUIP/libatoms interface,"pair_style quip"_pair_quip.html, USER/quip, ext
|
||||
"USER-REAXC"_Packages_details.html#PKG-USER-REAXC, ReaxFF potential (C/C++) ,"pair_style reaxc"_pair_reaxc.html, reax, no
|
||||
"USER-SCAFACOS"_Packages_details.html#PKG-USER-SCAFACOS, wrapper on ScaFaCoS solver,"kspace_style scafacos"_kspace_style.html, USER/scafacos, ext
|
||||
"USER-SMD"_Packages_details.html#PKG-USER-SMD, smoothed Mach dynamics,"SMD User Guide"_PDF/SMD_LAMMPS_userguide.pdf, USER/smd, ext
|
||||
"USER-SMTBQ"_Packages_details.html#PKG-USER-SMTBQ, second moment tight binding QEq potential,"pair_style smtbq"_pair_smtbq.html, USER/smtbq, no
|
||||
"USER-SPH"_Packages_details.html#PKG-USER-SPH, smoothed particle hydrodynamics,"SPH User Guide"_PDF/SPH_LAMMPS_userguide.pdf, USER/sph, no
|
||||
|
|
|
@ -59,9 +59,9 @@ and callbacks to LAMMPS.
|
|||
The "fix python/invoke"_fix_python_invoke.html command can execute
|
||||
Python code at selected timesteps during a simulation run.
|
||||
|
||||
The "pair_style python"_pair_python command allows you to define
|
||||
The "pair_style python"_pair_python.html command allows you to define
|
||||
pairwise potentials as python code which encodes a single pairwise
|
||||
interaction. This is useful for rapid-developement and debugging of a
|
||||
interaction. This is useful for rapid development and debugging of a
|
||||
new potential.
|
||||
|
||||
To use any of these commands, you only need to build LAMMPS with the
|
||||
|
|
|
@ -62,11 +62,11 @@ library interface provided in src/library.h and src/library.h. That
|
|||
interface is exposed to Python either when calling LAMMPS from Python
|
||||
or when calling Python from a LAMMPS input script and then calling
|
||||
back to LAMMPS from Python code. The library interface is designed to
|
||||
be easy to add funcionality to. Thus the Python interface to LAMMPS
|
||||
be easy to add functionality to. Thus the Python interface to LAMMPS
|
||||
is also easy to extend as well.
|
||||
|
||||
If you create interesting Python scripts that run LAMMPS or
|
||||
interesting Python functions that can be called from a LAMMPS input
|
||||
script, that you think would be genearlly useful, please post them as
|
||||
script, that you think would be generally useful, please post them as
|
||||
a pull request to our "GitHub site"_https://github.com/lammps/lammps,
|
||||
and they can be added to the LAMMPS distribution or webpage.
|
||||
|
|
|
@ -186,20 +186,20 @@ keyword as a float.
|
|||
The get_natoms() method returns the total number of atoms in the
|
||||
simulation, as an int.
|
||||
|
||||
The set_variable() methosd sets an existing string-style variable to a
|
||||
The set_variable() method sets an existing string-style variable to a
|
||||
new string value, so that subsequent LAMMPS commands can access the
|
||||
variable.
|
||||
|
||||
The reset_box() emthods resets the size and shape of the simulation
|
||||
The reset_box() method resets the size and shape of the simulation
|
||||
box, e.g. as part of restoring a previously extracted and saved state
|
||||
of a simulation.
|
||||
|
||||
The gather methods collect peratom info of the requested type (atom
|
||||
coords, atom types, forces, etc) from all processors, and returns the
|
||||
same vector of values to each callling processor. The scatter
|
||||
same vector of values to each calling processor. The scatter
|
||||
functions do the inverse. They distribute a vector of peratom values,
|
||||
passed by all calling processors, to invididual atoms, which may be
|
||||
owned by different processos.
|
||||
passed by all calling processors, to individual atoms, which may be
|
||||
owned by different processors.
|
||||
|
||||
Note that the data returned by the gather methods,
|
||||
e.g. gather_atoms("x"), is different from the data structure returned
|
||||
|
|
|
@ -75,7 +75,7 @@ setenv OMP_NUM_THREADS 2 # csh or tcsh :pre
|
|||
This can also be done via the "package"_package.html command or via
|
||||
the "-pk command-line switch"_Run_options.html which invokes the
|
||||
package command. See the "package"_package.html command or
|
||||
"Speed"_Speed.html doc pages for more details about which accerlarator
|
||||
"Speed"_Speed.html doc pages for more details about which accelerator
|
||||
packages and which commands support multi-threading.
|
||||
|
||||
:line
|
||||
|
|
|
@ -18,6 +18,7 @@ letter abbreviation can be used:
|
|||
"-i or -in"_#file
|
||||
"-k or -kokkos"_#run-kokkos
|
||||
"-l or -log"_#log
|
||||
"-m or -mpicolor"_#mpicolor
|
||||
"-nc or -nocite"_#nocite
|
||||
"-pk or -package"_#package
|
||||
"-p or -partition"_#partition
|
||||
|
@ -175,6 +176,30 @@ Option -plog will override the name of the partition log files file.N.
|
|||
|
||||
:line
|
||||
|
||||
[-mpicolor] color :link(mpicolor)
|
||||
|
||||
If used, this must be the first command-line argument after the LAMMPS
|
||||
executable name. It is only used when LAMMPS is launched by an mpirun
|
||||
command which also launches another executable(s) at the same time.
|
||||
(The other executable could be LAMMPS as well.) The color is an
|
||||
integer value which should be different for each executable (another
|
||||
application may set this value in a different way). LAMMPS and the
|
||||
other executable(s) perform an MPI_Comm_split() with their own colors
|
||||
to shrink the MPI_COMM_WORLD communication to be the subset of
|
||||
processors they are actually running on.
|
||||
|
||||
Currently, this is only used in LAMMPS to perform client/server
|
||||
messaging with another application. LAMMPS can act as either a client
|
||||
or server (or both). More details are given on the "Howto
|
||||
client/server"_Howto_client_server.html doc page.
|
||||
|
||||
Specifically, this refers to the "mpi/one" mode of messaging provided
|
||||
by the "message"_message.html command and the CSlib library LAMMPS
|
||||
links with from the lib/message directory. See the
|
||||
"message"_message.html command for more details.
|
||||
|
||||
:line
|
||||
|
||||
[-nocite] :link(nocite)
|
||||
|
||||
Disable writing the log.cite file which is normally written to list
|
||||
|
|
|
@ -33,8 +33,8 @@ in parallel, follow these steps.
|
|||
|
||||
Download and install a compatible MPI library binary package:
|
||||
|
||||
for 32-bit Windows: "mpich2-1.4.1p1-win-ia32.msi"_download.lammps.org/thirdparty/mpich2-1.4.1p1-win-ia32.msi
|
||||
for 64-bit Windows: "mpich2-1.4.1p1-win-x86-64.msi"_download.lammps.org/thirdparty/mpich2-1.4.1p1-win-x86-64.msi :ul
|
||||
for 32-bit Windows: "mpich2-1.4.1p1-win-ia32.msi"_http://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-ia32.msi
|
||||
for 64-bit Windows: "mpich2-1.4.1p1-win-x86-64.msi"_http://download.lammps.org/thirdparty/mpich2-1.4.1p1-win-x86-64.msi :ul
|
||||
|
||||
The LAMMPS Windows installer packages will automatically adjust your
|
||||
path for the default location of this MPI package. After the
|
||||
|
|
|
@ -11,7 +11,7 @@ Benchmarks :h3
|
|||
|
||||
Current LAMMPS performance is discussed on the "Benchmarks
|
||||
page"_http://lammps.sandia.gov/bench.html of the "LAMMPS website"_lws
|
||||
where timings and parallel efficiencies are listed. The page has
|
||||
where timings and parallel efficiency are listed. The page has
|
||||
several sections, which are briefly described below:
|
||||
|
||||
CPU performance on 5 standard problems, strong and weak scaling
|
||||
|
@ -77,8 +77,8 @@ style, force field, cutoff, etc) can then be estimated.
|
|||
Performance on a parallel machine can also be predicted from one-core
|
||||
or one-node timings if the parallel efficiency can be estimated. The
|
||||
communication bandwidth and latency of a particular parallel machine
|
||||
affects the efficiency. On most machines LAMMPS will give parallel
|
||||
efficiencies on these benchmarks above 50% so long as the number of
|
||||
affects the efficiency. On most machines LAMMPS will give a parallel
|
||||
efficiency on these benchmarks above 50% so long as the number of
|
||||
atoms/core is a few 100 or greater, and closer to 100% for large
|
||||
numbers of atoms/core. This is for all-MPI mode with one MPI task per
|
||||
core. For nodes with accelerator options or hardware (OpenMP, GPU,
|
||||
|
|
|
@ -9,17 +9,17 @@ Documentation"_ld - "LAMMPS Commands"_lc :c
|
|||
|
||||
GPU package :h3
|
||||
|
||||
The GPU package was developed by Mike Brown at ORNL and his
|
||||
collaborators, particularly Trung Nguyen (ORNL). It provides GPU
|
||||
versions of many pair styles, including the 3-body Stillinger-Weber
|
||||
pair style, and for "kspace_style pppm"_kspace_style.html for
|
||||
long-range Coulombics. It has the following general features:
|
||||
The GPU package was developed by Mike Brown while at SNL and ORNL
|
||||
and his collaborators, particularly Trung Nguyen (now at Northwestern).
|
||||
It provides GPU versions of many pair styles and for parts of the
|
||||
"kspace_style pppm"_kspace_style.html for long-range Coulombics.
|
||||
It has the following general features:
|
||||
|
||||
It is designed to exploit common GPU hardware configurations where one
|
||||
or more GPUs are coupled to many cores of one or more multi-core CPUs,
|
||||
e.g. within a node of a parallel machine. :ulb,l
|
||||
|
||||
Atom-based data (e.g. coordinates, forces) moves back-and-forth
|
||||
Atom-based data (e.g. coordinates, forces) are moved back-and-forth
|
||||
between the CPU(s) and GPU every timestep. :l
|
||||
|
||||
Neighbor lists can be built on the CPU or on the GPU :l
|
||||
|
@ -28,8 +28,8 @@ The charge assignment and force interpolation portions of PPPM can be
|
|||
run on the GPU. The FFT portion, which requires MPI communication
|
||||
between processors, runs on the CPU. :l
|
||||
|
||||
Asynchronous force computations can be performed simultaneously on the
|
||||
CPU(s) and GPU. :l
|
||||
Force computations of different style (pair vs. bond/angle/dihedral/improper)
|
||||
can be performed concurrently on the GPU and CPU(s), respectively. :l
|
||||
|
||||
It allows for GPU computations to be performed in single or double
|
||||
precision, or in mixed-mode precision, where pairwise forces are
|
||||
|
@ -39,21 +39,32 @@ force vectors. :l
|
|||
LAMMPS-specific code is in the GPU package. It makes calls to a
|
||||
generic GPU library in the lib/gpu directory. This library provides
|
||||
NVIDIA support as well as more general OpenCL support, so that the
|
||||
same functionality can eventually be supported on a variety of GPU
|
||||
hardware. :l
|
||||
same functionality is supported on a variety of hardware. :l
|
||||
:ule
|
||||
|
||||
[Required hardware/software:]
|
||||
|
||||
To use this package, you currently need to have an NVIDIA GPU and
|
||||
install the NVIDIA CUDA software on your system:
|
||||
To compile and use this package in CUDA mode, you currently need
|
||||
to have an NVIDIA GPU and install the corresponding NVIDIA CUDA
|
||||
toolkit software on your system (this is primarily tested on Linux
|
||||
and completely unsupported on Windows):
|
||||
|
||||
Check if you have an NVIDIA GPU: cat
|
||||
/proc/driver/nvidia/gpus/0/information Go to
|
||||
http://www.nvidia.com/object/cuda_get.html Install a driver and
|
||||
toolkit appropriate for your system (SDK is not necessary) Run
|
||||
lammps/lib/gpu/nvc_get_devices (after building the GPU library, see
|
||||
below) to list supported devices and properties :ul
|
||||
Check if you have an NVIDIA GPU: cat /proc/driver/nvidia/gpus/*/information :ulb,l
|
||||
Go to http://www.nvidia.com/object/cuda_get.html :l
|
||||
Install a driver and toolkit appropriate for your system (SDK is not necessary) :l
|
||||
Run lammps/lib/gpu/nvc_get_devices (after building the GPU library, see below) to
|
||||
list supported devices and properties :ule,l
|
||||
|
||||
To compile and use this package in OpenCL mode, you currently need
|
||||
to have the OpenCL headers and the (vendor neutral) OpenCL library installed.
|
||||
In OpenCL mode, the acceleration depends on having an "OpenCL Installable Client
|
||||
Driver (ICD)"_https://www.khronos.org/news/permalink/opencl-installable-client-driver-icd-loader
|
||||
installed. There can be multiple of them for the same or different hardware
|
||||
(GPUs, CPUs, Accelerators) installed at the same time. OpenCL refers to those
|
||||
as 'platforms'. The GPU library will select the [first] suitable platform,
|
||||
but this can be overridden using the device option of the "package"_package.html
|
||||
command. run lammps/lib/gpu/ocl_get_devices to get a list of available
|
||||
platforms and devices with a suitable ICD available.
|
||||
|
||||
[Building LAMMPS with the GPU package:]
|
||||
|
||||
|
@ -120,7 +131,10 @@ GPUs/node to use, as well as other options.
|
|||
|
||||
The performance of a GPU versus a multi-core CPU is a function of your
|
||||
hardware, which pair style is used, the number of atoms/GPU, and the
|
||||
precision used on the GPU (double, single, mixed).
|
||||
precision used on the GPU (double, single, mixed). Using the GPU package
|
||||
in OpenCL mode on CPUs (which uses vectorization and multithreading) is
|
||||
usually resulting in inferior performance compared to using LAMMPS' native
|
||||
threading and vectorization support in the USER-OMP and USER-INTEL packages.
|
||||
|
||||
See the "Benchmark page"_http://lammps.sandia.gov/bench.html of the
|
||||
LAMMPS web site for performance of the GPU package on various
|
||||
|
@ -146,7 +160,7 @@ The "package gpu"_package.html command has several options for tuning
|
|||
performance. Neighbor lists can be built on the GPU or CPU. Force
|
||||
calculations can be dynamically balanced across the CPU cores and
|
||||
GPUs. GPU-specific settings can be made which can be optimized
|
||||
for different hardware. See the "packakge"_package.html command
|
||||
for different hardware. See the "package"_package.html command
|
||||
doc page for details. :l
|
||||
|
||||
As described by the "package gpu"_package.html command, GPU
|
||||
|
|
|
@ -68,7 +68,7 @@ In most molecular dynamics software, parallelization parameters
|
|||
to changing the order of operations with finite-precision
|
||||
calculations. The USER-INTEL package is deterministic. This means
|
||||
that the results should be reproducible from run to run with the
|
||||
{same} parallel configurations and when using determinstic
|
||||
{same} parallel configurations and when using deterministic
|
||||
libraries or library settings (MPI, OpenMP, FFT). However, there
|
||||
are differences in the USER-INTEL package that can change the
|
||||
order of operations compared to LAMMPS without acceleration:
|
||||
|
@ -400,7 +400,7 @@ within the input script to automatically append the "omp" suffix to
|
|||
styles when USER-INTEL styles are not available.
|
||||
|
||||
NOTE: For simulations on higher node counts, add "processors * * *
|
||||
grid numa"_processors.html" to the beginning of the input script for
|
||||
grid numa"_processors.html to the beginning of the input script for
|
||||
better scalability.
|
||||
|
||||
When running on many nodes, performance might be better when using
|
||||
|
|
|
@ -93,12 +93,12 @@ The "t Nt" option specifies how many OpenMP threads per MPI task to
|
|||
use with a node. The default is Nt = 1, which is MPI-only mode. Note
|
||||
that the product of MPI tasks * OpenMP threads/task should not exceed
|
||||
the physical number of cores (on a node), otherwise performance will
|
||||
suffer. If hyperthreading is enabled, then the product of MPI tasks *
|
||||
OpenMP threads/task should not exceed the physical number of cores *
|
||||
hardware threads. The "-k on" switch also issues a "package kokkos"
|
||||
command (with no additional arguments) which sets various KOKKOS
|
||||
options to default values, as discussed on the "package"_package.html
|
||||
command doc page.
|
||||
suffer. If Hyper-Threading (HT) is enabled, then the product of MPI
|
||||
tasks * OpenMP threads/task should not exceed the physical number of
|
||||
cores * hardware threads. The "-k on" switch also issues a
|
||||
"package kokkos" command (with no additional arguments) which sets
|
||||
various KOKKOS options to default values, as discussed on the
|
||||
"package"_package.html command doc page.
|
||||
|
||||
The "-sf kk" "command-line switch"_Run_options.html will automatically
|
||||
append the "/kk" suffix to styles that support it. In this manner no
|
||||
|
@ -106,6 +106,11 @@ modification to the input script is needed. Alternatively, one can run
|
|||
with the KOKKOS package by editing the input script as described
|
||||
below.
|
||||
|
||||
NOTE: When using a single OpenMP thread, the Kokkos Serial backend (i.e.
|
||||
Makefile.kokkos_mpi_only) will give better performance than the OpenMP
|
||||
backend (i.e. Makefile.kokkos_omp) because some of the overhead to make
|
||||
the code thread-safe is removed.
|
||||
|
||||
NOTE: The default for the "package kokkos"_package.html command is to
|
||||
use "full" neighbor lists and set the Newton flag to "off" for both
|
||||
pairwise and bonded interactions. However, when running on CPUs, it
|
||||
|
@ -122,6 +127,22 @@ mpirun -np 16 lmp_kokkos_mpi_only -k on -sf kk -pk kokkos newton on neigh half c
|
|||
If the "newton"_newton.html command is used in the input
|
||||
script, it can also override the Newton flag defaults.
|
||||
|
||||
For half neighbor lists and OpenMP, the KOKKOS package uses data
|
||||
duplication (i.e. thread-private arrays) by default to avoid
|
||||
thread-level write conflicts in the force arrays (and other data
|
||||
structures as necessary). Data duplication is typically fastest for
|
||||
small numbers of threads (i.e. 8 or less) but does increase memory
|
||||
footprint and is not scalable to large numbers of threads. An
|
||||
alternative to data duplication is to use thread-level atomics, which
|
||||
don't require duplication. The use of atomics can be forced by compiling
|
||||
with the "-DLMP_KOKKOS_USE_ATOMICS" compile switch. Most but not all
|
||||
Kokkos-enabled pair_styles support data duplication. Alternatively, full
|
||||
neighbor lists avoid the need for duplication or atomics but require
|
||||
more compute operations per atom. When using the Kokkos Serial backend
|
||||
or the OpenMP backend with a single thread, no duplication or atomics are
|
||||
used. For CUDA and half neighbor lists, the KOKKOS package always uses
|
||||
atomics.
|
||||
|
||||
[Core and Thread Affinity:]
|
||||
|
||||
When using multi-threading, it is important for performance to bind
|
||||
|
@ -149,7 +170,7 @@ Intel Knight's Landing (KNL) Xeon Phi:
|
|||
|
||||
KNL Intel Phi chips have 68 physical cores. Typically 1 to 4 cores are
|
||||
reserved for the OS, and only 64 or 66 cores are used. Each core has 4
|
||||
hyperthreads,so there are effectively N = 256 (4*64) or N = 264 (4*66)
|
||||
Hyper-Threads,so there are effectively N = 256 (4*64) or N = 264 (4*66)
|
||||
cores to run on. The product of MPI tasks * OpenMP threads/task should
|
||||
not exceed this limit, otherwise performance will suffer. Note that
|
||||
with the KOKKOS package you do not need to specify how many KNLs there
|
||||
|
@ -228,7 +249,7 @@ for details and default settings. Experimenting with its options can
|
|||
provide a speed-up for specific calculations. For example:
|
||||
|
||||
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos binsize 2.8 -in in.lj # Set binsize = neighbor ghost cutoff
|
||||
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighborlist, set binsize = neighbor ghost cutoff :pre
|
||||
mpirun -np 2 lmp_kokkos_cuda_openmpi -k on g 2 -sf kk -pk kokkos newton on neigh half binsize 2.8 -in in.lj # Newton on, half neighbor list, set binsize = neighbor ghost cutoff :pre
|
||||
|
||||
NOTE: For good performance of the KOKKOS package on GPUs, you must
|
||||
have Kepler generation GPUs (or later). The Kokkos library exploits
|
||||
|
|
|
@ -50,6 +50,6 @@ inaccurate relative timing data, because processors have to wait when
|
|||
communication occurs for other processors to catch up. Thus the
|
||||
reported times for "Communication" or "Other" may be higher than they
|
||||
really are, due to load-imbalance. If this is an issue, you can
|
||||
uncomment the MPI_Barrier() lines in src/timer.cpp, and recompile
|
||||
uncomment the MPI_Barrier() lines in src/timer.cpp, and re-compile
|
||||
LAMMPS, to obtain synchronized timings.
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ instructions.
|
|||
|
||||
[Run with the USER-OMP package from the command line:]
|
||||
|
||||
These example asume one or more 16-core nodes.
|
||||
These examples assume one or more 16-core nodes.
|
||||
|
||||
env OMP_NUM_THREADS=16 lmp_omp -sf omp -in in.script # 1 MPI task, 16 threads according to OMP_NUM_THREADS
|
||||
lmp_mpi -sf omp -in in.script # 1 MPI task, no threads, optimized kernels
|
||||
|
|
|
@ -72,7 +72,7 @@ Lennard-Jones "pair_style lj/cut"_pair_lj.html:
|
|||
"pair_style lj/cut/opt"_pair_lj.html :ul
|
||||
|
||||
To see what accelerate styles are currently available for a particular
|
||||
style, find the style name in the "Commands_all"_Commands_all.html
|
||||
style, find the style name in the "Commands_all"_lc
|
||||
style pages (fix,compute,pair,etc) and see what suffixes are listed
|
||||
(g,i,k,o,t) with it. The doc pages for individual commands
|
||||
(e.g. "pair lj/cut"_pair_lj.html or "fix nve"_fix_nve.html) also list
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<a href="http://lammps.sandia.gov">LAMMPS Website</a>
|
||||
<a href="../../Manual.html">LAMMPS Manual</a>
|
||||
<a href="../../fix_atc.html">USER-AtC Manual</a>
|
||||
<a href="../../Section_commands.html#comm">Commands</a>
|
||||
<a href="../../Commands_all.html">Commands</a>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue