Merge branch 'develop' into BPM
This commit is contained in:
@ -23,6 +23,10 @@ either a user mistake or a bug in the code. Bugs can be reported in
|
||||
the LAMMPS project
|
||||
[issue tracker on GitHub](https://github.com/lammps/lammps/issues).
|
||||
|
||||
To mitigate issues with using homoglyphs or bidirectional reordering in
|
||||
unicode, which have been demonstrated as a vector to obfuscate and hide
|
||||
malicious changes to the source code, all LAMMPS submissions are checked
|
||||
for unicode characters and only all-ASCII source code is accepted.
|
||||
|
||||
# Version Updates
|
||||
|
||||
|
||||
@ -133,10 +133,7 @@ endif()
|
||||
set(LAMMPS_BINARY lmp${LAMMPS_MACHINE})
|
||||
|
||||
option(BUILD_SHARED_LIBS "Build shared library" OFF)
|
||||
if(BUILD_SHARED_LIBS) # for all pkg libs, mpi_stubs and linalg
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
|
||||
option(CMAKE_POSITION_INDEPENDENT_CODE "Create object compatible with shared libraries" ON)
|
||||
option(BUILD_TOOLS "Build and install LAMMPS tools (msi2lmp, binary2txt, chain)" OFF)
|
||||
option(BUILD_LAMMPS_SHELL "Build and install the LAMMPS shell" OFF)
|
||||
|
||||
@ -304,10 +301,12 @@ else()
|
||||
target_link_libraries(lmp PRIVATE mpi_stubs)
|
||||
target_include_directories(lmp INTERFACE $<BUILD_INTERFACE:${LAMMPS_SOURCE_DIR}/STUBS>)
|
||||
target_compile_definitions(lmp INTERFACE $<INSTALL_INTERFACE:LAMMPS_LIB_NO_MPI>)
|
||||
endif(MSVC)
|
||||
endif()
|
||||
target_include_directories(lammps INTERFACE $<BUILD_INTERFACE:${LAMMPS_SOURCE_DIR}/STUBS>)
|
||||
target_compile_definitions(lammps INTERFACE $<INSTALL_INTERFACE:LAMMPS_LIB_NO_MPI>)
|
||||
else()
|
||||
target_include_directories(lammps INTERFACE $<BUILD_INTERFACE:${LAMMPS_SOURCE_DIR}/STUBS>)
|
||||
target_compile_definitions(lammps INTERFACE $<INSTALL_INTERFACE:LAMMPS_LIB_NO_MPI>)
|
||||
target_link_libraries(lammps PUBLIC mpi_stubs)
|
||||
endif()
|
||||
add_library(MPI::MPI_CXX ALIAS mpi_stubs)
|
||||
@ -341,7 +340,6 @@ pkg_depends(ML-IAP ML-SNAP)
|
||||
pkg_depends(MPIIO MPI)
|
||||
pkg_depends(ATC MANYBODY)
|
||||
pkg_depends(LATBOLTZ MPI)
|
||||
pkg_depends(PHONON KSPACE)
|
||||
pkg_depends(SCAFACOS MPI)
|
||||
pkg_depends(DIELECTRIC KSPACE)
|
||||
pkg_depends(DIELECTRIC EXTRA-PAIR)
|
||||
@ -611,7 +609,7 @@ endif()
|
||||
# packages which selectively include variants based on enabled styles
|
||||
# e.g. accelerator packages
|
||||
######################################################################
|
||||
foreach(PKG_WITH_INCL CORESHELL QEQ OPENMP DPD-SMOOTH KOKKOS OPT INTEL GPU)
|
||||
foreach(PKG_WITH_INCL CORESHELL DPD-SMOOTH PHONON QEQ OPENMP KOKKOS OPT INTEL GPU)
|
||||
if(PKG_${PKG_WITH_INCL})
|
||||
include(Packages/${PKG_WITH_INCL})
|
||||
endif()
|
||||
@ -810,11 +808,17 @@ if(ClangFormat_FOUND)
|
||||
endif()
|
||||
|
||||
get_target_property(DEFINES lammps COMPILE_DEFINITIONS)
|
||||
get_property(BUILD_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||
if(BUILD_IS_MULTI_CONFIG)
|
||||
set(LAMMPS_BUILD_TYPE "Multi-Config")
|
||||
else()
|
||||
set(LAMMPS_BUILD_TYPE ${CMAKE_BUILD_TYPE})
|
||||
endif()
|
||||
include(FeatureSummary)
|
||||
feature_summary(DESCRIPTION "The following tools and libraries have been found and configured:" WHAT PACKAGES_FOUND)
|
||||
message(STATUS "<<< Build configuration >>>
|
||||
Operating System: ${CMAKE_SYSTEM_NAME} ${CMAKE_LINUX_DISTRO} ${CMAKE_DISTRO_VERSION}
|
||||
Build type: ${CMAKE_BUILD_TYPE}
|
||||
Build type: ${LAMMPS_BUILD_TYPE}
|
||||
Install path: ${CMAKE_INSTALL_PREFIX}
|
||||
Generator: ${CMAKE_GENERATOR} using ${CMAKE_MAKE_PROGRAM}")
|
||||
###############################################################################
|
||||
|
||||
@ -1,55 +1,111 @@
|
||||
{
|
||||
"configurations": [
|
||||
"configurations": [
|
||||
{
|
||||
"name": "x64-Debug-MSVC",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "Debug",
|
||||
"buildRoot": "${workspaceRoot}\\build\\${name}",
|
||||
"installRoot": "${workspaceRoot}\\install\\${name}",
|
||||
"cmakeCommandArgs": "-S ${workspaceRoot}\\cmake -C ${workspaceRoot}\\cmake\\presets\\windows.cmake -DENABLE_TESTING=on",
|
||||
"buildCommandArgs": "",
|
||||
"ctestCommandArgs": "",
|
||||
"inheritEnvironments": [ "msvc_x64_x64" ],
|
||||
"variables": [
|
||||
{
|
||||
"name": "x64-Debug-MSVC",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "Debug",
|
||||
"buildRoot": "${workspaceRoot}\\build\\${name}",
|
||||
"installRoot": "${workspaceRoot}\\install\\${name}",
|
||||
"cmakeCommandArgs": "-S ${workspaceRoot}\\cmake -C ${workspaceRoot}\\cmake\\presets\\windows.cmake",
|
||||
"buildCommandArgs": "",
|
||||
"ctestCommandArgs": "",
|
||||
"inheritEnvironments": [ "msvc_x64_x64" ],
|
||||
"variables": [
|
||||
{
|
||||
"name": "BUILD_SHARED_LIBS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
},
|
||||
{
|
||||
"name": "BUILD_TOOLS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
},
|
||||
{
|
||||
"name": "LAMMPS_EXCEPTIONS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
}
|
||||
]
|
||||
"name": "BUILD_SHARED_LIBS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
},
|
||||
{
|
||||
"name": "x64-Debug-Clang",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "Debug",
|
||||
"buildRoot": "${workspaceRoot}\\build\\${name}",
|
||||
"installRoot": "${workspaceRoot}\\install\\${name}",
|
||||
"cmakeCommandArgs": "-S ${workspaceRoot}\\cmake -C ${workspaceRoot}\\cmake\\presets\\windows.cmake",
|
||||
"buildCommandArgs": "",
|
||||
"ctestCommandArgs": "",
|
||||
"inheritEnvironments": [ "clang_cl_x64" ],
|
||||
"variables": [
|
||||
{
|
||||
"name": "BUILD_TOOLS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
},
|
||||
{
|
||||
"name": "LAMMPS_EXCEPTIONS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
}
|
||||
]
|
||||
"name": "BUILD_TOOLS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
},
|
||||
{
|
||||
"name": "LAMMPS_EXCEPTIONS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "x64-Debug-Clang",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "Debug",
|
||||
"buildRoot": "${workspaceRoot}\\build\\${name}",
|
||||
"installRoot": "${workspaceRoot}\\install\\${name}",
|
||||
"cmakeCommandArgs": "-S ${workspaceRoot}\\cmake -C ${workspaceRoot}\\cmake\\presets\\windows.cmake -DENABLE_TESTING=on",
|
||||
"buildCommandArgs": "",
|
||||
"ctestCommandArgs": "",
|
||||
"inheritEnvironments": [ "clang_cl_x64" ],
|
||||
"variables": [
|
||||
{
|
||||
"name": "BUILD_TOOLS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
},
|
||||
{
|
||||
"name": "LAMMPS_EXCEPTIONS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "x64-Debug-OneAPI",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "Debug",
|
||||
"buildRoot": "${workspaceRoot}\\build\\${name}",
|
||||
"installRoot": "${workspaceRoot}\\install\\${name}",
|
||||
"cmakeCommandArgs": "-S ${workspaceRoot}\\cmake -C ${workspaceRoot}\\cmake\\presets\\windows.cmake -DENABLE_TESTING=on -DCMAKE_CXX_COMPILER=icx -DCMAKE_C_COMPILER=icx -DBUILD_MPI=off",
|
||||
"buildCommandArgs": "",
|
||||
"ctestCommandArgs": "",
|
||||
"inheritEnvironments": [ "msvc_x64_x64" ],
|
||||
"variables": [
|
||||
{
|
||||
"name": "BUILD_SHARED_LIBS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
},
|
||||
{
|
||||
"name": "BUILD_TOOLS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
},
|
||||
{
|
||||
"name": "LAMMPS_EXCEPTIONS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "x64-Debug-Intel",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "Debug",
|
||||
"buildRoot": "${workspaceRoot}\\build\\${name}",
|
||||
"installRoot": "${workspaceRoot}\\install\\${name}",
|
||||
"cmakeCommandArgs": "-S ${workspaceRoot}\\cmake -C ${workspaceRoot}\\cmake\\presets\\windows.cmake -DENABLE_TESTING=off -DCMAKE_CXX_COMPILER=icl -DCMAKE_C_COMPILER=icl -DCMAKE_Fortran_COMPILER=ifort -DBUILD_MPI=off",
|
||||
"buildCommandArgs": "",
|
||||
"ctestCommandArgs": "",
|
||||
"inheritEnvironments": [ "msvc_x64_x64" ],
|
||||
"variables": [
|
||||
{
|
||||
"name": "BUILD_SHARED_LIBS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
},
|
||||
{
|
||||
"name": "BUILD_TOOLS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
},
|
||||
{
|
||||
"name": "LAMMPS_EXCEPTIONS",
|
||||
"value": "True",
|
||||
"type": "BOOL"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
33
cmake/Modules/ExternalCMakeProject.cmake
Normal file
33
cmake/Modules/ExternalCMakeProject.cmake
Normal file
@ -0,0 +1,33 @@
|
||||
# Build a CMake based external library as subdirectory.
|
||||
# The sources will be unpacked to ${CMAKE_BINARY_DIR}/_deps/${target}-src
|
||||
# The binaries will be built in ${CMAKE_BINARY_DIR}/_deps/${target}-build
|
||||
#
|
||||
function(ExternalCMakeProject target url hash basedir cmakedir cmakefile)
|
||||
# change settings locally
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
get_filename_component(archive ${url} NAME)
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/_deps/src)
|
||||
message(STATUS "Downloading ${url}")
|
||||
file(DOWNLOAD ${url} ${CMAKE_BINARY_DIR}/_deps/${archive} EXPECTED_HASH MD5=${hash} SHOW_PROGRESS)
|
||||
message(STATUS "Unpacking and configuring ${archive}")
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf ${CMAKE_BINARY_DIR}/_deps/${archive}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/_deps/src)
|
||||
file(GLOB TARGET_SOURCE "${CMAKE_BINARY_DIR}/_deps/src/${basedir}*")
|
||||
list(LENGTH TARGET_SOURCE _num)
|
||||
if(_num GREATER 1)
|
||||
message(FATAL_ERROR "Inconsistent ${target} library sources. "
|
||||
"Please delete ${CMAKE_BINARY_DIR}/_deps/src and re-run cmake")
|
||||
endif()
|
||||
file(REMOVE_RECURSE ${CMAKE_BINARY_DIR}/_deps/${target}-src)
|
||||
file(RENAME ${TARGET_SOURCE} ${CMAKE_BINARY_DIR}/_deps/${target}-src)
|
||||
if(NOT (cmakefile STREQUAL ""))
|
||||
file(COPY ${cmakefile} DESTINATION ${CMAKE_BINARY_DIR}/_deps/${target}-src/${cmakedir}/)
|
||||
get_filename_component(_cmakefile ${cmakefile} NAME)
|
||||
file(RENAME "${CMAKE_BINARY_DIR}/_deps/${target}-src/${cmakedir}/${_cmakefile}"
|
||||
"${CMAKE_BINARY_DIR}/_deps/${target}-src/${cmakedir}/CMakeLists.txt")
|
||||
endif()
|
||||
add_subdirectory("${CMAKE_BINARY_DIR}/_deps/${target}-src/${cmakedir}"
|
||||
"${CMAKE_BINARY_DIR}/_deps/${target}-build")
|
||||
endfunction(ExternalCMakeProject)
|
||||
@ -1,81 +0,0 @@
|
||||
message(STATUS "Downloading and building Google Test library")
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(GTEST_LIB_POSTFIX d)
|
||||
else()
|
||||
set(GTEST_LIB_POSTFIX)
|
||||
endif()
|
||||
|
||||
include(ExternalProject)
|
||||
set(GTEST_URL "https://github.com/google/googletest/archive/release-1.11.0.tar.gz" CACHE STRING "URL of googletest source")
|
||||
set(GTEST_MD5 "e8a8df240b6938bb6384155d4c37d937" CACHE STRING "MD5 sum for googletest source")
|
||||
mark_as_advanced(GTEST_URL)
|
||||
mark_as_advanced(GTEST_MD5)
|
||||
ExternalProject_Add(googletest
|
||||
URL ${GTEST_URL}
|
||||
URL_MD5 ${GTEST_MD5}
|
||||
SOURCE_DIR "${CMAKE_BINARY_DIR}/gtest-src"
|
||||
BINARY_DIR "${CMAKE_BINARY_DIR}/gtest-build"
|
||||
CMAKE_ARGS ${CMAKE_REQUEST_PIC} ${CMAKE_EXTRA_GTEST_OPTS}
|
||||
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
|
||||
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
|
||||
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
|
||||
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
|
||||
BUILD_BYPRODUCTS <BINARY_DIR>/lib/libgtest${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||
<BINARY_DIR>/lib/libgmock${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||
<BINARY_DIR>/lib/libgtest_main${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||
<BINARY_DIR>/lib/libgmock_main${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||
LOG_DOWNLOAD ON
|
||||
LOG_CONFIGURE ON
|
||||
LOG_BUILD ON
|
||||
INSTALL_COMMAND ""
|
||||
TEST_COMMAND "")
|
||||
|
||||
ExternalProject_Get_Property(googletest SOURCE_DIR)
|
||||
set(GTEST_INCLUDE_DIR ${SOURCE_DIR}/googletest/include)
|
||||
set(GMOCK_INCLUDE_DIR ${SOURCE_DIR}/googlemock/include)
|
||||
|
||||
# workaround for CMake 3.10 on ubuntu 18.04
|
||||
file(MAKE_DIRECTORY ${GTEST_INCLUDE_DIR})
|
||||
file(MAKE_DIRECTORY ${GMOCK_INCLUDE_DIR})
|
||||
|
||||
ExternalProject_Get_Property(googletest BINARY_DIR)
|
||||
set(GTEST_LIBRARY_PATH ${BINARY_DIR}/lib/libgtest${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
set(GMOCK_LIBRARY_PATH ${BINARY_DIR}/lib/libgmock${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
set(GTEST_MAIN_LIBRARY_PATH ${BINARY_DIR}/lib/libgtest_main${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
set(GMOCK_MAIN_LIBRARY_PATH ${BINARY_DIR}/lib/libgmock_main${GTEST_LIB_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
|
||||
# Prevent GoogleTest from overriding our compiler/linker options
|
||||
# when building with Visual Studio
|
||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||
|
||||
find_package(Threads QUIET)
|
||||
|
||||
add_library(GTest::GTest UNKNOWN IMPORTED)
|
||||
set_target_properties(GTest::GTest PROPERTIES
|
||||
IMPORTED_LOCATION ${GTEST_LIBRARY_PATH}
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIR}
|
||||
INTERFACE_LINK_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
|
||||
add_dependencies(GTest::GTest googletest)
|
||||
|
||||
add_library(GTest::GMock UNKNOWN IMPORTED)
|
||||
set_target_properties(GTest::GMock PROPERTIES
|
||||
IMPORTED_LOCATION ${GMOCK_LIBRARY_PATH}
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIR}
|
||||
INTERFACE_LINK_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
|
||||
add_dependencies(GTest::GMock googletest)
|
||||
|
||||
add_library(GTest::GTestMain UNKNOWN IMPORTED)
|
||||
set_target_properties(GTest::GTestMain PROPERTIES
|
||||
IMPORTED_LOCATION ${GTEST_MAIN_LIBRARY_PATH}
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIR}
|
||||
INTERFACE_LINK_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
|
||||
add_dependencies(GTest::GTestMain googletest)
|
||||
|
||||
add_library(GTest::GMockMain UNKNOWN IMPORTED)
|
||||
set_target_properties(GTest::GMockMain PROPERTIES
|
||||
IMPORTED_LOCATION ${GMOCK_MAIN_LIBRARY_PATH}
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIR}
|
||||
INTERFACE_LINK_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")
|
||||
add_dependencies(GTest::GMockMain googletest)
|
||||
@ -25,7 +25,7 @@ function(validate_option name values)
|
||||
endfunction(validate_option)
|
||||
|
||||
function(get_lammps_version version_header variable)
|
||||
file(READ ${version_header} line)
|
||||
file(STRINGS ${version_header} line REGEX LAMMPS_VERSION)
|
||||
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}")
|
||||
|
||||
@ -306,12 +306,12 @@ elseif(GPU_API STREQUAL "HIP")
|
||||
|
||||
if(HIP_COMPILER STREQUAL "clang")
|
||||
add_custom_command(OUTPUT ${CUBIN_FILE}
|
||||
VERBATIM COMMAND ${HIP_HIPCC_EXECUTABLE} --genco --offload-arch=${HIP_ARCH} -O3 -ffast-math -DUSE_HIP -D_${GPU_PREC_SETTING} -DLAMMPS_${LAMMPS_SIZES} -I${LAMMPS_LIB_SOURCE_DIR}/gpu -o ${CUBIN_FILE} ${CU_CPP_FILE}
|
||||
VERBATIM COMMAND ${HIP_HIPCC_EXECUTABLE} --genco --offload-arch=${HIP_ARCH} -O3 -DUSE_HIP -D_${GPU_PREC_SETTING} -DLAMMPS_${LAMMPS_SIZES} -I${LAMMPS_LIB_SOURCE_DIR}/gpu -o ${CUBIN_FILE} ${CU_CPP_FILE}
|
||||
DEPENDS ${CU_CPP_FILE}
|
||||
COMMENT "Generating ${CU_NAME}.cubin")
|
||||
else()
|
||||
add_custom_command(OUTPUT ${CUBIN_FILE}
|
||||
VERBATIM COMMAND ${HIP_HIPCC_EXECUTABLE} --genco -t="${HIP_ARCH}" -f=\"-O3 -ffast-math -DUSE_HIP -D_${GPU_PREC_SETTING} -DLAMMPS_${LAMMPS_SIZES} -I${LAMMPS_LIB_SOURCE_DIR}/gpu\" -o ${CUBIN_FILE} ${CU_CPP_FILE}
|
||||
VERBATIM COMMAND ${HIP_HIPCC_EXECUTABLE} --genco -t="${HIP_ARCH}" -f=\"-O3 -DUSE_HIP -D_${GPU_PREC_SETTING} -DLAMMPS_${LAMMPS_SIZES} -I${LAMMPS_LIB_SOURCE_DIR}/gpu\" -o ${CUBIN_FILE} ${CU_CPP_FILE}
|
||||
DEPENDS ${CU_CPP_FILE}
|
||||
COMMENT "Generating ${CU_NAME}.cubin")
|
||||
endif()
|
||||
|
||||
@ -39,8 +39,8 @@ if(DOWNLOAD_KOKKOS)
|
||||
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS}")
|
||||
list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}")
|
||||
include(ExternalProject)
|
||||
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/3.4.01.tar.gz" CACHE STRING "URL for KOKKOS tarball")
|
||||
set(KOKKOS_MD5 "4c84698917c93a18985b311bb6caf84f" CACHE STRING "MD5 checksum of KOKKOS tarball")
|
||||
set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/3.5.00.tar.gz" CACHE STRING "URL for KOKKOS tarball")
|
||||
set(KOKKOS_MD5 "079323d973ae0e1c38c0a54a150c674e" CACHE STRING "MD5 checksum of KOKKOS tarball")
|
||||
mark_as_advanced(KOKKOS_URL)
|
||||
mark_as_advanced(KOKKOS_MD5)
|
||||
ExternalProject_Add(kokkos_build
|
||||
@ -60,7 +60,7 @@ if(DOWNLOAD_KOKKOS)
|
||||
target_link_libraries(lmp PRIVATE LAMMPS::KOKKOS)
|
||||
add_dependencies(LAMMPS::KOKKOS kokkos_build)
|
||||
elseif(EXTERNAL_KOKKOS)
|
||||
find_package(Kokkos 3.4.01 REQUIRED CONFIG)
|
||||
find_package(Kokkos 3.5.00 REQUIRED CONFIG)
|
||||
target_link_libraries(lammps PRIVATE Kokkos::kokkos)
|
||||
target_link_libraries(lmp PRIVATE Kokkos::kokkos)
|
||||
else()
|
||||
|
||||
@ -32,7 +32,8 @@ if(DOWNLOAD_QUIP)
|
||||
foreach(flag ${LAPACK_LIBRARIES})
|
||||
set(temp "${temp} ${flag}")
|
||||
endforeach()
|
||||
set(temp "${temp}\n")
|
||||
# Fix cmake crashing when MATH_LINKOPTS not set, required for e.g. recent Cray Programming Environment
|
||||
set(temp "${temp} -L/_DUMMY_PATH_\n")
|
||||
set(temp "${temp}PYTHON=python\nPIP=pip\nEXTRA_LINKOPTS=\n")
|
||||
set(temp "${temp}HAVE_CP2K=0\nHAVE_VASP=0\nHAVE_TB=0\nHAVE_PRECON=1\nHAVE_LOTF=0\nHAVE_ONIOM=0\n")
|
||||
set(temp "${temp}HAVE_LOCAL_E_MIX=0\nHAVE_QC=0\nHAVE_GAP=1\nHAVE_DESCRIPTORS_NONCOMMERCIAL=1\n")
|
||||
|
||||
@ -12,41 +12,12 @@ if(DOWNLOAD_MSCG)
|
||||
mark_as_advanced(MSCG_URL)
|
||||
mark_as_advanced(MSCG_MD5)
|
||||
|
||||
# CMake cannot pass BLAS or LAPACK library variable to external project if they are a list
|
||||
list(LENGTH BLAS_LIBRARIES} NUM_BLAS)
|
||||
list(LENGTH LAPACK_LIBRARIES NUM_LAPACK)
|
||||
if((NUM_BLAS GREATER 1) OR (NUM_LAPACK GREATER 1))
|
||||
message(FATAL_ERROR "Cannot compile downloaded MSCG library due to a technical limitation")
|
||||
endif()
|
||||
include(ExternalCMakeProject)
|
||||
ExternalCMakeProject(mscg ${MSCG_URL} ${MSCG_MD5} MSCG-release src/CMake "")
|
||||
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(mscg_build
|
||||
URL ${MSCG_URL}
|
||||
URL_MD5 ${MSCG_MD5}
|
||||
SOURCE_SUBDIR src/CMake
|
||||
CMAKE_ARGS ${CMAKE_REQUEST_PIC} ${EXTRA_MSCG_OPTS}
|
||||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
|
||||
-DCMAKE_Fortran_COMPILER=${CMAKE_Fortran_COMPILER}
|
||||
-DBLAS_LIBRARIES=${BLAS_LIBRARIES} -DLAPACK_LIBRARIES=${LAPACK_LIBRARIES}
|
||||
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
|
||||
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
|
||||
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build . --target mscg
|
||||
INSTALL_COMMAND ""
|
||||
BUILD_BYPRODUCTS <BINARY_DIR>/libmscg.a
|
||||
)
|
||||
ExternalProject_get_property(mscg_build BINARY_DIR)
|
||||
ExternalProject_get_property(mscg_build SOURCE_DIR)
|
||||
file(MAKE_DIRECTORY ${SOURCE_DIR}/src)
|
||||
add_library(LAMMPS::MSCG UNKNOWN IMPORTED)
|
||||
set_target_properties(LAMMPS::MSCG PROPERTIES
|
||||
IMPORTED_LOCATION "${BINARY_DIR}/libmscg.a"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}/src"
|
||||
INTERFACE_LINK_LIBRARIES "${LAPACK_LIBRARIES}")
|
||||
target_link_libraries(lammps PRIVATE LAMMPS::MSCG)
|
||||
add_dependencies(LAMMPS::MSCG mscg_build)
|
||||
# set include and link library
|
||||
target_include_directories(lammps PRIVATE "${CMAKE_BINARY_DIR}/_deps/mscg-src/src")
|
||||
target_link_libraries(lammps PRIVATE mscg)
|
||||
else()
|
||||
find_package(MSCG)
|
||||
if(NOT MSCG_FOUND)
|
||||
|
||||
9
cmake/Modules/Packages/PHONON.cmake
Normal file
9
cmake/Modules/Packages/PHONON.cmake
Normal file
@ -0,0 +1,9 @@
|
||||
# fix phonon may only be installed if also the FFT wrappers from KSPACE are installed
|
||||
if(NOT PKG_KSPACE)
|
||||
get_property(LAMMPS_FIX_HEADERS GLOBAL PROPERTY FIX)
|
||||
list(REMOVE_ITEM LAMMPS_FIX_HEADERS ${LAMMPS_SOURCE_DIR}/PHONON/fix_phonon.h)
|
||||
set_property(GLOBAL PROPERTY FIX "${LAMMPS_FIX_HEADERS}")
|
||||
get_target_property(LAMMPS_SOURCES lammps SOURCES)
|
||||
list(REMOVE_ITEM LAMMPS_SOURCES ${LAMMPS_SOURCE_DIR}/PHONON/fix_phonon.cpp)
|
||||
set_property(TARGET lammps PROPERTY SOURCES "${LAMMPS_SOURCES}")
|
||||
endif()
|
||||
@ -54,8 +54,8 @@ if(DOWNLOAD_PLUMED)
|
||||
set(PLUMED_BUILD_BYPRODUCTS "<INSTALL_DIR>/lib/libplumedWrapper.a")
|
||||
endif()
|
||||
|
||||
set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.7.2/plumed-src-2.7.2.tgz" CACHE STRING "URL for PLUMED tarball")
|
||||
set(PLUMED_MD5 "cfa0b4dd90a81c25d3302e8d97bfeaea" CACHE STRING "MD5 checksum of PLUMED tarball")
|
||||
set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.7.3/plumed-src-2.7.3.tgz" CACHE STRING "URL for PLUMED tarball")
|
||||
set(PLUMED_MD5 "f00cc82edfefe6bb3df934911dbe32fb" CACHE STRING "MD5 checksum of PLUMED tarball")
|
||||
|
||||
mark_as_advanced(PLUMED_URL)
|
||||
mark_as_advanced(PLUMED_MD5)
|
||||
|
||||
@ -1,47 +0,0 @@
|
||||
message(STATUS "Downloading and building YAML library")
|
||||
|
||||
include(ExternalProject)
|
||||
set(YAML_URL "https://pyyaml.org/download/libyaml/yaml-0.2.5.tar.gz" CACHE STRING "URL for libyaml tarball")
|
||||
set(YAML_MD5 "bb15429d8fb787e7d3f1c83ae129a999" CACHE STRING "MD5 checksum of libyaml tarball")
|
||||
mark_as_advanced(YAML_URL)
|
||||
mark_as_advanced(YAML_MD5)
|
||||
|
||||
# support cross-compilation to windows
|
||||
if(CMAKE_CROSSCOMPILING AND (CMAKE_SYSTEM_NAME STREQUAL "Windows"))
|
||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86")
|
||||
set(YAML_CROSS_HOST --host=i686-mingw64)
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
|
||||
set(YAML_CROSS_HOST --host=x86_64-mingw64)
|
||||
else()
|
||||
message(FATAL_ERROR "Unsupported cross-compilation "
|
||||
" for ${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}"
|
||||
" on ${CMAKE_HOST_SYSTEM}/${CMAKE_HOST_SYSTEM_PROCESSOR}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(libyaml
|
||||
URL ${YAML_URL}
|
||||
URL_MD5 ${YAML_MD5}
|
||||
SOURCE_DIR "${CMAKE_BINARY_DIR}/yaml-src"
|
||||
BINARY_DIR "${CMAKE_BINARY_DIR}/yaml-build"
|
||||
CONFIGURE_COMMAND <SOURCE_DIR>/configure ${CONFIGURE_REQUEST_PIC}
|
||||
CXX=${CMAKE_CXX_COMPILER} CC=${CMAKE_C_COMPILER}
|
||||
--prefix=<INSTALL_DIR> --disable-shared ${YAML_CROSS_HOST}
|
||||
BUILD_BYPRODUCTS <INSTALL_DIR>/lib/libyaml${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||
TEST_COMMAND "")
|
||||
|
||||
ExternalProject_Get_Property(libyaml INSTALL_DIR)
|
||||
set(YAML_INCLUDE_DIR ${INSTALL_DIR}/include)
|
||||
set(YAML_LIBRARY_DIR ${INSTALL_DIR}/lib)
|
||||
|
||||
# workaround for CMake 3.10 on ubuntu 18.04
|
||||
file(MAKE_DIRECTORY ${YAML_INCLUDE_DIR})
|
||||
file(MAKE_DIRECTORY ${YAML_LIBRARY_DIR})
|
||||
|
||||
set(YAML_LIBRARY_PATH ${INSTALL_DIR}/lib/libyaml${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
|
||||
add_library(Yaml::Yaml UNKNOWN IMPORTED)
|
||||
set_target_properties(Yaml::Yaml PROPERTIES
|
||||
IMPORTED_LOCATION ${YAML_LIBRARY_PATH}
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${YAML_INCLUDE_DIR})
|
||||
add_dependencies(Yaml::Yaml libyaml)
|
||||
@ -48,7 +48,6 @@ set(ALL_PACKAGES
|
||||
PHONON
|
||||
PLUGIN
|
||||
POEMS
|
||||
PYTHON
|
||||
QEQ
|
||||
REACTION
|
||||
REAXFF
|
||||
|
||||
@ -230,7 +230,7 @@ $(VENV):
|
||||
)
|
||||
|
||||
$(MATHJAX):
|
||||
@git clone -b 3.2.0 -c advice.detachedHead=0 --depth 1 git://github.com/mathjax/MathJax.git $@
|
||||
@git clone -b 3.2.0 -c advice.detachedHead=0 --depth 1 https://github.com/mathjax/MathJax.git $@
|
||||
|
||||
$(ANCHORCHECK): $(VENV)
|
||||
@( \
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
.TH LAMMPS "1" "27 October 2021" "2021-10-27"
|
||||
.TH LAMMPS "1" "7 January 2022" "2022-1-7"
|
||||
.SH NAME
|
||||
.B LAMMPS
|
||||
\- Molecular Dynamics Simulator.
|
||||
|
||||
@ -1123,9 +1123,12 @@ Bibliography
|
||||
**(Sun)**
|
||||
Sun, J. Phys. Chem. B, 102, 7338-7364 (1998).
|
||||
|
||||
**(Surblys)**
|
||||
**(Surblys2019)**
|
||||
Surblys, Matsubara, Kikugawa, Ohara, Phys Rev E, 99, 051301(R) (2019).
|
||||
|
||||
**(Surblys2021)**
|
||||
Surblys, Matsubara, Kikugawa, Ohara, J Appl Phys 130, 215104 (2021).
|
||||
|
||||
**(Sutmann)**
|
||||
Sutmann, Arnold, Fahrenberger, et. al., Physical review / E 88(6), 063308 (2013)
|
||||
|
||||
|
||||
@ -150,6 +150,42 @@ for IDEs like Eclipse, CodeBlocks, or Kate can be selected using the *-G*
|
||||
command line flag. A list of available generator settings for your
|
||||
specific CMake version is given when running ``cmake --help``.
|
||||
|
||||
.. _cmake_multiconfig:
|
||||
|
||||
Multi-configuration build systems
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Throughout this manual it is mostly assumed that LAMMPS is being built
|
||||
on a Unix-like operating system with "make" as the underlying "builder",
|
||||
since this is the most common case. In this case the build "configuration"
|
||||
is chose using ``-D CMAKE_BUILD_TYPE=<configuration>`` with ``<configuration>``
|
||||
being one of "Release", "Debug", "RelWithDebInfo", or "MinSizeRel".
|
||||
Some build tools, however, can also use or even require to have a so-called
|
||||
multi-configuration build system setup. For those the built type (or
|
||||
configuration) is chosen at compile time using the same build files. E.g.
|
||||
with:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
cmake --build build-multi --config Release
|
||||
|
||||
In that case the resulting binaries are not in the build folder directly
|
||||
but in sub-directories corresponding to the build type (i.e. Release in
|
||||
the example from above). Similarly, for running unit tests the
|
||||
configuration is selected with the *-C* flag:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
ctest -C Debug
|
||||
|
||||
The CMake scripts in LAMMPS have basic support for being compiled using a
|
||||
multi-config build system, but not all of it has been ported. This is in
|
||||
particular applicable to compiling packages that require additional libraries
|
||||
that would be downloaded and compiled by CMake. The "windows" preset file
|
||||
tries to keep track of which packages can be compiled natively with the
|
||||
MSVC compilers out-of-the box. Not all of those external libraries are
|
||||
portable to Windows either.
|
||||
|
||||
|
||||
Installing CMake
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
@ -185,6 +185,10 @@ The ``ctest`` command has many options, the most important ones are:
|
||||
- run subset of tests matching the regular expression <regex>
|
||||
* - -E <regex>
|
||||
- exclude subset of tests matching the regular expression <regex>
|
||||
* - -L <regex>
|
||||
- run subset of tests with a label matching the regular expression <regex>
|
||||
* - -LE <regex>
|
||||
- exclude subset of tests with a label matching the regular expression <regex>
|
||||
* - -N
|
||||
- dry-run: display list of tests without running them
|
||||
* - -T memcheck
|
||||
@ -299,6 +303,12 @@ will destroy the original file, if the generation run does not complete,
|
||||
so using *-g* is recommended unless the YAML file is fully tested
|
||||
and working.
|
||||
|
||||
Some of the force style tests are rather slow to run and some are very
|
||||
sensitive to small differences like CPU architecture, compiler
|
||||
toolchain, compiler optimization. Those tests are flagged with a "slow"
|
||||
and/or "unstable" label, and thus those tests can be selectively
|
||||
excluded with the ``-LE`` flag or selected with the ``-L`` flag.
|
||||
|
||||
.. admonition:: Recommendations and notes for YAML files
|
||||
:class: note
|
||||
|
||||
|
||||
@ -341,6 +341,18 @@ minutes to hours) to build. Of course you only need to do that once.)
|
||||
$ make lib-kim args="-p /usr/local" # use an existing KIM API installation at the provided location
|
||||
$ make lib-kim args="-p /usr/local -a EAM_Dynamo_Ackland_W__MO_141627196590_002" # ditto but add one model or driver
|
||||
|
||||
When using the "-b " option, the KIM library is built using its native
|
||||
cmake build system. The ``lib/kim/Install.py`` script supports a
|
||||
``CMAKE`` environment variable if the cmake executable is named other
|
||||
than ``cmake`` on your system. Additional environment variables may be
|
||||
provided on the command line for use by cmake. For example, to use the
|
||||
``cmake3`` executable and tell it to use the gnu version 11 compilers
|
||||
to build KIM, one could use the following command line.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ CMAKE=cmake3 CXX=g++-11 CC=gcc-11 FC=gfortran-11 make lib-kim args="-b " # (re-)install KIM API lib using cmake3 and gnu v11 compilers with only example models
|
||||
|
||||
Settings for debugging OpenKIM web queries discussed below need to
|
||||
be applied by adding them to the ``LMP_INC`` variable through
|
||||
editing the ``Makefile.machine`` you are using. For example:
|
||||
@ -560,11 +572,26 @@ They must be specified in uppercase.
|
||||
* - VEGA908
|
||||
- GPU
|
||||
- AMD GPU MI100 GFX908
|
||||
* - INTEL_GEN
|
||||
* - VEGA90A
|
||||
- GPU
|
||||
- Intel GPUs Gen9+
|
||||
- AMD GPU
|
||||
* - INTEL_DG1
|
||||
- GPU
|
||||
- Intel Iris XeMAX GPU
|
||||
* - INTEL_GEN9
|
||||
- GPU
|
||||
- Intel GPU Gen9
|
||||
* - INTEL_GEN11
|
||||
- GPU
|
||||
- Intel GPU Gen11
|
||||
* - INTEL_GEN12LP
|
||||
- GPU
|
||||
- Intel GPU Gen12LP
|
||||
* - INTEL_XEHP
|
||||
- GPU
|
||||
- Intel GPUs Xe-HP
|
||||
|
||||
This list was last updated for version 3.4.1 of the Kokkos library.
|
||||
This list was last updated for version 3.5.0 of the Kokkos library.
|
||||
|
||||
.. tabs::
|
||||
|
||||
|
||||
@ -89,6 +89,11 @@ miss the correct master ``CMakeLists.txt``. Try to open the
|
||||
starting point. It is also possible to configure and compile LAMMPS
|
||||
from the command line with a CMake binary from `cmake.org <https://cmake.org>`_.
|
||||
|
||||
Please note, that for either approach CMake will create a so-called
|
||||
:ref:`"multi-configuration" build environment <cmake_multiconfig>`, and
|
||||
the command lines for building and testing LAMMPS must be adjusted
|
||||
accordingly.
|
||||
|
||||
To support running in parallel you can compile with OpenMP enabled using
|
||||
the OPENMP package or install Microsoft MPI (including the SDK) and compile
|
||||
LAMMPS with MPI enabled.
|
||||
|
||||
@ -37,6 +37,7 @@ OPT.
|
||||
* :doc:`class2 (ko) <bond_class2>`
|
||||
* :doc:`fene (iko) <bond_fene>`
|
||||
* :doc:`fene/expand (o) <bond_fene_expand>`
|
||||
* :doc:`fene/nm <bond_fene>`
|
||||
* :doc:`gaussian <bond_gaussian>`
|
||||
* :doc:`gromos (o) <bond_gromos>`
|
||||
* :doc:`harmonic (iko) <bond_harmonic>`
|
||||
|
||||
@ -28,6 +28,7 @@ KOKKOS, o = OPENMP, t = OPT.
|
||||
* :doc:`angle <compute_angle>`
|
||||
* :doc:`angle/local <compute_angle_local>`
|
||||
* :doc:`angmom/chunk <compute_angmom_chunk>`
|
||||
* :doc:`ave/sphere/atom (k) <compute_ave_sphere_atom>`
|
||||
* :doc:`basal/atom <compute_basal_atom>`
|
||||
* :doc:`body/local <compute_body_local>`
|
||||
* :doc:`bond <compute_bond>`
|
||||
|
||||
@ -210,6 +210,7 @@ OPT.
|
||||
* :doc:`nm/cut (o) <pair_nm>`
|
||||
* :doc:`nm/cut/coul/cut (o) <pair_nm>`
|
||||
* :doc:`nm/cut/coul/long (o) <pair_nm>`
|
||||
* :doc:`nm/cut/split <pair_nm>`
|
||||
* :doc:`oxdna/coaxstk <pair_oxdna>`
|
||||
* :doc:`oxdna/excv <pair_oxdna>`
|
||||
* :doc:`oxdna/hbond <pair_oxdna>`
|
||||
@ -262,6 +263,7 @@ OPT.
|
||||
* :doc:`spin/neel <pair_spin_neel>`
|
||||
* :doc:`srp <pair_srp>`
|
||||
* :doc:`sw (giko) <pair_sw>`
|
||||
* :doc:`sw/mod (o) <pair_sw>`
|
||||
* :doc:`table (gko) <pair_table>`
|
||||
* :doc:`table/rx (k) <pair_table_rx>`
|
||||
* :doc:`tdpd <pair_mesodpd>`
|
||||
|
||||
@ -118,6 +118,9 @@ Environment variable functions
|
||||
.. doxygenfunction:: putenv
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: unsetenv
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: list_pathenv
|
||||
:project: progguide
|
||||
|
||||
|
||||
@ -56,11 +56,11 @@ String to number conversions with validity check
|
||||
|
||||
These functions should be used to convert strings to numbers. They are
|
||||
are strongly preferred over C library calls like ``atoi()`` or
|
||||
``atof()`` since they check if the **entire** provided string is a valid
|
||||
``atof()`` since they check if the **entire** string is a valid
|
||||
(floating-point or integer) number, and will error out instead of
|
||||
silently returning the result of a partial conversion or zero in cases
|
||||
where the string is not a valid number. This behavior allows to more
|
||||
easily detect typos or issues when processing input files.
|
||||
where the string is not a valid number. This behavior improves
|
||||
detecting typos or issues when processing input files.
|
||||
|
||||
Similarly the :cpp:func:`logical() <LAMMPS_NS::utils::logical>` function
|
||||
will convert a string into a boolean and will only accept certain words.
|
||||
@ -76,19 +76,34 @@ strings for compliance without conversion.
|
||||
|
||||
----------
|
||||
|
||||
.. doxygenfunction:: numeric
|
||||
.. doxygenfunction:: numeric(const char *file, int line, const std::string &str, bool do_abort, LAMMPS *lmp)
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: inumeric
|
||||
.. doxygenfunction:: numeric(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp)
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: bnumeric
|
||||
.. doxygenfunction:: inumeric(const char *file, int line, const std::string &str, bool do_abort, LAMMPS *lmp)
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: tnumeric
|
||||
.. doxygenfunction:: inumeric(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp)
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: logical
|
||||
.. doxygenfunction:: bnumeric(const char *file, int line, const std::string &str, bool do_abort, LAMMPS *lmp)
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: bnumeric(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp)
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: tnumeric(const char *file, int line, const std::string &str, bool do_abort, LAMMPS *lmp)
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: tnumeric(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp)
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: logical(const char *file, int line, const std::string &str, bool do_abort, LAMMPS *lmp)
|
||||
:project: progguide
|
||||
|
||||
.. doxygenfunction:: logical(const char *file, int line, const char *str, bool do_abort, LAMMPS *lmp)
|
||||
:project: progguide
|
||||
|
||||
|
||||
|
||||
@ -55,7 +55,7 @@ of each timestep. First of all, implement a constructor:
|
||||
if (narg < 4)
|
||||
error->all(FLERR,"Illegal fix print/vel command");
|
||||
|
||||
nevery = force->inumeric(FLERR,arg[3]);
|
||||
nevery = utils::inumeric(FLERR,arg[3],false,lmp);
|
||||
if (nevery <= 0)
|
||||
error->all(FLERR,"Illegal fix print/vel command");
|
||||
}
|
||||
|
||||
@ -7772,9 +7772,6 @@ keyword to allow for additional bonds to be formed
|
||||
The system size must fit in a 32-bit integer to use this dump
|
||||
style.
|
||||
|
||||
*Too many atoms to dump sort*
|
||||
Cannot sort when running with more than 2\^31 atoms.
|
||||
|
||||
*Too many elements extracted from MEAM library.*
|
||||
Increase 'maxelt' in meam.h and recompile.
|
||||
|
||||
|
||||
@ -491,11 +491,6 @@ NPT ensemble using Nose-Hoover thermostat:
|
||||
**(Schroeder)** Schroeder and Steinhauser, J Chem Phys, 133,
|
||||
154511 (2010).
|
||||
|
||||
.. _Jiang2:
|
||||
|
||||
**(Jiang)** Jiang, Hardy, Phillips, MacKerell, Schulten, and Roux,
|
||||
J Phys Chem Lett, 2, 87-92 (2011).
|
||||
|
||||
.. _Thole2:
|
||||
|
||||
**(Thole)** Chem Phys, 59, 341 (1981).
|
||||
|
||||
@ -141,7 +141,8 @@ unrelated feature, you should switch branches!
|
||||
Committing changes to the *develop*, *release*, or *stable* branches
|
||||
is strongly discouraged. While it may be convenient initially, it
|
||||
will create more work in the long run. Various texts and tutorials
|
||||
on using git effectively discuss the motivation for this.
|
||||
on using git effectively discuss the motivation for using feature
|
||||
branches instead.
|
||||
|
||||
**After changes are made**
|
||||
|
||||
|
||||
@ -28,8 +28,9 @@ provides `limited support for subversion clients <svn_>`_.
|
||||
|
||||
You can follow the LAMMPS development on 3 different git branches:
|
||||
|
||||
* **stable** : this branch is updated with every stable release;
|
||||
updates are always "fast forward" merges from *develop*
|
||||
* **stable** : this branch is updated from the *release* branch with
|
||||
every stable release version and also has selected bug fixes and updates
|
||||
back-ported from the *develop* branch
|
||||
* **release** : this branch is updated with every patch release;
|
||||
updates are always "fast forward" merges from *develop*
|
||||
* **develop** : this branch follows the ongoing development and
|
||||
@ -47,20 +48,22 @@ your machine and "release" is one of the 3 branches listed above.
|
||||
(Note that you actually download all 3 branches; you can switch
|
||||
between them at any time using "git checkout <branch name>".)
|
||||
|
||||
.. note::
|
||||
.. admonition:: Saving time and disk space when using ``git clone``
|
||||
|
||||
The complete git history of the LAMMPS project is quite large because
|
||||
it contains the entire commit history of the project since fall 2006,
|
||||
which includes the time when LAMMPS was managed with subversion. This
|
||||
also includes commits that have added and removed some large files
|
||||
(mostly by accident). If you do not need access to the entire commit
|
||||
history, you can speed up the "cloning" process and reduce local disk
|
||||
space requirements by using the *--depth* git command line flag thus
|
||||
create a "shallow clone" of the repository that contains only a
|
||||
subset of the git history. Using a depth of 1000 is usually sufficient
|
||||
to include the head commits of the *develop* and the *release* branches.
|
||||
To include the head commit of the *stable* branch you may need a depth
|
||||
of up to 10000.
|
||||
which includes the time when LAMMPS was managed with subversion.
|
||||
This includes a few commits that have added and removed some large
|
||||
files (mostly by accident). If you do not need access to the entire
|
||||
commit history (most people don't), you can speed up the "cloning"
|
||||
process and reduce local disk space requirements by using the
|
||||
*--depth* git command line flag. That will create a "shallow clone"
|
||||
of the repository containing only a subset of the git history. Using
|
||||
a depth of 1000 is usually sufficient to include the head commits of
|
||||
the *develop* and the *release* branches. To include the head commit
|
||||
of the *stable* branch you may need a depth of up to 10000. If you
|
||||
later need more of the git history, you can always convert the
|
||||
shallow clone into a "full clone".
|
||||
|
||||
Once the command completes, your directory will contain the same files
|
||||
as if you unpacked a current LAMMPS tarball, with the exception, that
|
||||
@ -156,9 +159,9 @@ changed. How to do this depends on the build system you are using.
|
||||
.. admonition:: Git protocols
|
||||
:class: note
|
||||
|
||||
The servers at github.com support the "git://" and "https://" access
|
||||
protocols for anonymous, read-only access. If you have a suitably
|
||||
configured GitHub account, you may also use SSH protocol with the
|
||||
The servers at github.com support the "https://" access protocol for
|
||||
anonymous, read-only access. If you have a suitably configured GitHub
|
||||
account, you may also use SSH protocol with the
|
||||
URL "git@github.com:lammps/lammps.git".
|
||||
|
||||
The LAMMPS GitHub project is currently managed by Axel Kohlmeyer
|
||||
|
||||
@ -16,7 +16,7 @@ source code design, the program structure, the spatial decomposition
|
||||
approach, the neighbor finding, basic communications algorithms, and how
|
||||
users and developers have contributed to LAMMPS is:
|
||||
|
||||
`LAMMPS - A flexible simulation tool for particle-based materials modeling at the atomic, meso, and continuum scales, Comp. Phys. Comm. (accepted 09/2021), DOI:10.1016/j.cpc.2021.108171 <https://doi.org/10.1016/j.cpc.2021.108171>`_
|
||||
`LAMMPS - A flexible simulation tool for particle-based materials modeling at the atomic, meso, and continuum scales, Comp. Phys. Comm. 271, 108171 (2022) <https://doi.org/10.1016/j.cpc.2021.108171>`_
|
||||
|
||||
So a project using LAMMPS or a derivative application that uses LAMMPS
|
||||
as a simulation engine should cite this paper. The paper is expected to
|
||||
|
||||
@ -10,23 +10,31 @@ Whenever we fix a bug or update or add a feature, it will be merged into
|
||||
the *develop* branch of the git repository. When a sufficient number of
|
||||
changes have accumulated *and* the software passes a set of automated
|
||||
tests, we release it in the next *patch* release, which are made every
|
||||
few weeks. Info on patch releases are on `this website page
|
||||
few weeks. The *release* branch of the git repository is updated with
|
||||
every such release. Info on patch releases are on `this website page
|
||||
<https://www.lammps.org/bug.html>`_.
|
||||
|
||||
Once or twice a year, only bug fixes and small, non-intrusive changes are
|
||||
included for a period of time, and the code is subjected to more detailed
|
||||
Once or twice a year, we apply only bug fixes and small, non-intrusive
|
||||
changes to the *develop* branch and the code is subjected to more detailed
|
||||
and thorough testing than the default automated testing. The latest
|
||||
patch release after such a period is then labeled as a *stable* version.
|
||||
patch release after such a period is then also labeled as a *stable* version
|
||||
and the *stable* branch is updated with it. Between stable releases
|
||||
we occasionally release some updates to the stable release containing
|
||||
only bug fixes and updates back-ported from *develop* but no new features
|
||||
and update the *stable* branch accordingly.
|
||||
|
||||
Each version of LAMMPS contains all the features and bug-fixes up to
|
||||
and including its version date.
|
||||
Each version of LAMMPS contains all the documented features up to and
|
||||
including its version date.
|
||||
|
||||
The version date is printed to the screen and logfile every time you
|
||||
run LAMMPS. It is also in the file src/version.h and in the LAMMPS
|
||||
directory name created when you unpack a tarball. And it is on the
|
||||
first page of the :doc:`manual <Manual>`.
|
||||
|
||||
* If you browse the HTML pages on the LAMMPS WWW site, they always
|
||||
describe the most current patch release of LAMMPS.
|
||||
* If you browse the HTML pages on the LAMMPS WWW site, they will by
|
||||
default describe the most current patch release version of LAMMPS.
|
||||
In the navigation bar on the bottom left, there is the option to
|
||||
view instead the documentation for the most recent *stable* version
|
||||
or the latest version from the current development branch.
|
||||
* If you browse the HTML pages included in your tarball, they
|
||||
describe the version you have, which may be older.
|
||||
|
||||
@ -12,24 +12,24 @@ includes some optional methods to enable its use with rRESPA.
|
||||
|
||||
Here is a brief description of the class methods in pair.h:
|
||||
|
||||
+---------------------------------+-------------------------------------------------------------------+
|
||||
| compute | workhorse routine that computes pairwise interactions |
|
||||
+---------------------------------+-------------------------------------------------------------------+
|
||||
| settings | reads the input script line with arguments you define |
|
||||
+---------------------------------+-------------------------------------------------------------------+
|
||||
| coeff | set coefficients for one i,j type pair |
|
||||
+---------------------------------+-------------------------------------------------------------------+
|
||||
| init_one | perform initialization for one i,j type pair |
|
||||
+---------------------------------+-------------------------------------------------------------------+
|
||||
| init_style | initialization specific to this pair style |
|
||||
+---------------------------------+-------------------------------------------------------------------+
|
||||
| write & read_restart | write/read i,j pair coeffs to restart files |
|
||||
+---------------------------------+-------------------------------------------------------------------+
|
||||
| write & read_restart_settings | write/read global settings to restart files |
|
||||
+---------------------------------+-------------------------------------------------------------------+
|
||||
| single | force and energy of a single pairwise interaction between 2 atoms |
|
||||
+---------------------------------+-------------------------------------------------------------------+
|
||||
| compute_inner/middle/outer | versions of compute used by rRESPA |
|
||||
+---------------------------------+-------------------------------------------------------------------+
|
||||
+---------------------------------+---------------------------------------------------------------------+
|
||||
| compute | workhorse routine that computes pairwise interactions |
|
||||
+---------------------------------+---------------------------------------------------------------------+
|
||||
| settings | reads the input script line with arguments you define |
|
||||
+---------------------------------+---------------------------------------------------------------------+
|
||||
| coeff | set coefficients for one i,j type pair |
|
||||
+---------------------------------+---------------------------------------------------------------------+
|
||||
| init_one | perform initialization for one i,j type pair |
|
||||
+---------------------------------+---------------------------------------------------------------------+
|
||||
| init_style | initialization specific to this pair style |
|
||||
+---------------------------------+---------------------------------------------------------------------+
|
||||
| write & read_restart | write/read i,j pair coeffs to restart files |
|
||||
+---------------------------------+---------------------------------------------------------------------+
|
||||
| write & read_restart_settings | write/read global settings to restart files |
|
||||
+---------------------------------+---------------------------------------------------------------------+
|
||||
| single | force/r and energy of a single pairwise interaction between 2 atoms |
|
||||
+---------------------------------+---------------------------------------------------------------------+
|
||||
| compute_inner/middle/outer | versions of compute used by rRESPA |
|
||||
+---------------------------------+---------------------------------------------------------------------+
|
||||
|
||||
The inner/middle/outer routines are optional.
|
||||
|
||||
@ -1907,6 +1907,12 @@ MPIIO library. It adds :doc:`dump styles <dump>` with a "mpiio" in
|
||||
their style name. Restart files with an ".mpiio" suffix are also
|
||||
written and read in parallel.
|
||||
|
||||
.. warning::
|
||||
|
||||
The MPIIO package is currently unmaintained and has become
|
||||
unreliable. Use with caution.
|
||||
|
||||
|
||||
**Install:**
|
||||
|
||||
The MPIIO package requires that LAMMPS is build in :ref:`MPI parallel mode <serial>`.
|
||||
|
||||
@ -64,34 +64,44 @@ These are the 4 coefficients for the :math:`E_a` formula:
|
||||
radians internally; hence the various :math:`K` are effectively energy
|
||||
per radian\^2 or radian\^3 or radian\^4.
|
||||
|
||||
For the :math:`E_{bb}` formula, each line in a :doc:`angle_coeff <angle_coeff>`
|
||||
command in the input script lists 4 coefficients, the first of which
|
||||
is "bb" to indicate they are BondBond coefficients. In a data file,
|
||||
these coefficients should be listed under a "BondBond Coeffs" heading
|
||||
and you must leave out the "bb", i.e. only list 3 coefficients after
|
||||
the angle type.
|
||||
For the :math:`E_{bb}` formula, each line in a :doc:`angle_coeff
|
||||
<angle_coeff>` command in the input script lists 4 coefficients, the
|
||||
first of which is "bb" to indicate they are BondBond coefficients. In
|
||||
a data file, these coefficients should be listed under a "BondBond
|
||||
Coeffs" heading and you must leave out the "bb", i.e. only list 3
|
||||
coefficients after the angle type.
|
||||
|
||||
* bb
|
||||
* :math:`M` (energy/distance\^2)
|
||||
* :math:`r_1` (distance)
|
||||
* :math:`r_2` (distance)
|
||||
|
||||
For the :math:`E_{ba}` formula, each line in a :doc:`angle_coeff <angle_coeff>`
|
||||
command in the input script lists 5 coefficients, the first of which
|
||||
is "ba" to indicate they are BondAngle coefficients. In a data file,
|
||||
these coefficients should be listed under a "BondAngle Coeffs" heading
|
||||
and you must leave out the "ba", i.e. only list 4 coefficients after
|
||||
the angle type.
|
||||
For the :math:`E_{ba}` formula, each line in a :doc:`angle_coeff
|
||||
<angle_coeff>` command in the input script lists 5 coefficients, the
|
||||
first of which is "ba" to indicate they are BondAngle coefficients.
|
||||
In a data file, these coefficients should be listed under a "BondAngle
|
||||
Coeffs" heading and you must leave out the "ba", i.e. only list 4
|
||||
coefficients after the angle type.
|
||||
|
||||
* ba
|
||||
* :math:`N_1` (energy/distance\^2)
|
||||
* :math:`N_2` (energy/distance\^2)
|
||||
* :math:`N_1` (energy/distance)
|
||||
* :math:`N_2` (energy/distance)
|
||||
* :math:`r_1` (distance)
|
||||
* :math:`r_2` (distance)
|
||||
|
||||
The :math:`\theta_0` value in the :math:`E_{ba}` formula is not specified,
|
||||
since it is the same value from the :math:`E_a` formula.
|
||||
|
||||
.. note::
|
||||
|
||||
It is important that the order of the I,J,K atoms in each angle
|
||||
listed in the Angles section of the data file read by the
|
||||
:doc:`read_data <read_data>` command be consistent with the order
|
||||
of the :math:`r_1` and :math:`r_2` BondBond and BondAngle
|
||||
coefficients. This is because the terms in the formulas for
|
||||
:math:`E_{bb}` and :math:`E_{ba}` will use the I,J atoms to compute
|
||||
:math:`r_{ij}` and the J,K atoms to compute :math:`r_{jk}`.
|
||||
|
||||
----------
|
||||
|
||||
.. include:: accel_styles.rst
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
.. index:: bond_style fene
|
||||
.. index:: bond_style fene/nm
|
||||
.. index:: bond_style fene/intel
|
||||
.. index:: bond_style fene/kk
|
||||
.. index:: bond_style fene/omp
|
||||
@ -8,12 +9,16 @@ bond_style fene command
|
||||
|
||||
Accelerator Variants: *fene/intel*, *fene/kk*, *fene/omp*
|
||||
|
||||
bond_style fene/nm command
|
||||
==========================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
bond_style fene
|
||||
bond_style fene/nm
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
@ -23,6 +28,9 @@ Examples
|
||||
bond_style fene
|
||||
bond_coeff 1 30.0 1.5 1.0 1.0
|
||||
|
||||
bond_style fene/nm
|
||||
bond_coeff 1 2.25344 1.5 1.0 1.12246 2 6
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
@ -38,16 +46,36 @@ term is attractive, the second Lennard-Jones term is repulsive. The
|
||||
first term extends to :math:`R_0`, the maximum extent of the bond. The second
|
||||
term is cutoff at :math:`2^\frac{1}{6} \sigma`, the minimum of the LJ potential.
|
||||
|
||||
The following coefficients must be defined for each bond type via the
|
||||
:doc:`bond_coeff <bond_coeff>` command as in the example above, or in
|
||||
the data file or restart files read by the :doc:`read_data <read_data>`
|
||||
or :doc:`read_restart <read_restart>` commands:
|
||||
The *fene/nm* bond style substitutes the standard LJ potential with the generalized LJ potential
|
||||
in the same form as in pair style :doc:`nm/cut <pair_nm>`. The bond energy is then given by
|
||||
|
||||
.. math::
|
||||
|
||||
E = -0.5 K r_0^2 \ln \left[ 1 - \left(\frac{r}{R_0}\right)^2\right] + \frac{E_0}{(n-m)} \left[ m \left(\frac{r_0}{r}\right)^n - n \left(\frac{r_0}{r}\right)^m \right]
|
||||
|
||||
Similar to the *fene* style, the generalized Lennard-Jones is cut off at
|
||||
the potential minimum, :math:`r_0`, to be repulsive only. The following
|
||||
coefficients must be defined for each bond type via the :doc:`bond_coeff
|
||||
<bond_coeff>` command as in the example above, or in the data file or
|
||||
restart files read by the :doc:`read_data <read_data>` or
|
||||
:doc:`read_restart <read_restart>` commands:
|
||||
|
||||
* :math:`K` (energy/distance\^2)
|
||||
* :math:`R_0` (distance)
|
||||
* :math:`\epsilon` (energy)
|
||||
* :math:`\sigma` (distance)
|
||||
|
||||
For the *fene/nm* style, the following coefficients are used. Please
|
||||
note, that the standard LJ potential and thus the regular FENE potential
|
||||
is recovered for (n=12 m=6) and :math:`r_0 = 2^\frac{1}{6} \sigma`.
|
||||
|
||||
* :math:`K` (energy/distance\^2)
|
||||
* :math:`R_0` (distance)
|
||||
* :math:`E_0` (energy)
|
||||
* :math:`r_0` (distance)
|
||||
* :math:`n` (unitless)
|
||||
* :math:`m` (unitless)
|
||||
|
||||
----------
|
||||
|
||||
.. include:: accel_styles.rst
|
||||
@ -57,9 +85,10 @@ or :doc:`read_restart <read_restart>` commands:
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This bond style can only be used if LAMMPS was built with the MOLECULE
|
||||
package. See the :doc:`Build package <Build_package>` page for more
|
||||
info.
|
||||
The *fene* bond style can only be used if LAMMPS was built with the MOLECULE
|
||||
package; the *fene/nm* bond style can only be used if LAMMPS was built
|
||||
with the EXTRA-MOLECULE package. See the :doc:`Build package <Build_package>`
|
||||
page for more info.
|
||||
|
||||
You typically should specify :doc:`special_bonds fene <special_bonds>`
|
||||
or :doc:`special_bonds lj/coul 0 1 1 <special_bonds>` to use this bond
|
||||
@ -68,7 +97,8 @@ style. LAMMPS will issue a warning it that's not the case.
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`bond_coeff <bond_coeff>`, :doc:`delete_bonds <delete_bonds>`
|
||||
:doc:`bond_coeff <bond_coeff>`, :doc:`delete_bonds <delete_bonds>`,
|
||||
:doc:`pair style lj/cut <pair_lj>`, :doc:`pair style nm/cut <pair_nm>`.
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
@ -87,6 +87,7 @@ accelerated styles exist.
|
||||
* :doc:`class2 <bond_class2>` - COMPASS (class 2) bond
|
||||
* :doc:`fene <bond_fene>` - FENE (finite-extensible non-linear elastic) bond
|
||||
* :doc:`fene/expand <bond_fene_expand>` - FENE bonds with variable size particles
|
||||
* :doc:`fene/nm <bond_fene>` - FENE bonds with a generalized Lennard-Jones potential
|
||||
* :doc:`gaussian <bond_gaussian>` - multicentered Gaussian-based bond potential
|
||||
* :doc:`gromos <bond_gromos>` - GROMOS force field bond
|
||||
* :doc:`harmonic <bond_harmonic>` - harmonic bond
|
||||
|
||||
@ -174,6 +174,7 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
|
||||
* :doc:`angle <compute_angle>` - energy of each angle sub-style
|
||||
* :doc:`angle/local <compute_angle_local>` - theta and energy of each angle
|
||||
* :doc:`angmom/chunk <compute_angmom_chunk>` - angular momentum for each chunk
|
||||
* :doc:`ave/sphere/atom <compute_ave_sphere_atom>` - compute local density and temperature around each atom
|
||||
* :doc:`basal/atom <compute_basal_atom>` - calculates the hexagonal close-packed "c" lattice vector of each atom
|
||||
* :doc:`body/local <compute_body_local>` - attributes of body sub-particles
|
||||
* :doc:`bond <compute_bond>` - energy of each bond sub-style
|
||||
|
||||
101
doc/src/compute_ave_sphere_atom.rst
Normal file
101
doc/src/compute_ave_sphere_atom.rst
Normal file
@ -0,0 +1,101 @@
|
||||
.. index:: compute ave/sphere/atom
|
||||
.. index:: compute ave/sphere/atom/kk
|
||||
|
||||
compute ave/sphere/atom command
|
||||
================================
|
||||
|
||||
Accelerator Variants: *ave/sphere/atom/kk*
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
compute ID group-ID ave/sphere/atom keyword values ...
|
||||
|
||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||
* ave/sphere/atom = style name of this compute command
|
||||
* one or more keyword/value pairs may be appended
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
keyword = *cutoff*
|
||||
*cutoff* value = distance cutoff
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
compute 1 all ave/sphere/atom
|
||||
|
||||
compute 1 all ave/sphere/atom cutoff 5.0
|
||||
comm_modify cutoff 5.0
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Define a computation that calculates the local density and temperature
|
||||
for each atom and neighbors inside a spherical cutoff.
|
||||
|
||||
The optional keyword *cutoff* defines the distance cutoff
|
||||
used when searching for neighbors. The default value is the cutoff
|
||||
specified by the pair style. If no pair style is defined, then a cutoff
|
||||
must be defined using this keyword. If the specified cutoff is larger than
|
||||
that of the pair_style plus neighbor skin (or no pair style is defined),
|
||||
the *comm_modify cutoff* option must also be set to match that of the
|
||||
*cutoff* keyword.
|
||||
|
||||
The neighbor list needed to compute this quantity is constructed each
|
||||
time the calculation is performed (i.e. each time a snapshot of atoms
|
||||
is dumped). Thus it can be inefficient to compute/dump this quantity
|
||||
too frequently.
|
||||
|
||||
.. note::
|
||||
|
||||
If you have a bonded system, then the settings of
|
||||
:doc:`special_bonds <special_bonds>` command can remove pairwise
|
||||
interactions between atoms in the same bond, angle, or dihedral. This
|
||||
is the default setting for the :doc:`special_bonds <special_bonds>`
|
||||
command, and means those pairwise interactions do not appear in the
|
||||
neighbor list. Because this fix uses the neighbor list, it also means
|
||||
those pairs will not be included in the order parameter. This
|
||||
difficulty can be circumvented by writing a dump file, and using the
|
||||
:doc:`rerun <rerun>` command to compute the order parameter for
|
||||
snapshots in the dump file. The rerun script can use a
|
||||
:doc:`special_bonds <special_bonds>` command that includes all pairs in
|
||||
the neighbor list.
|
||||
|
||||
----------
|
||||
|
||||
|
||||
.. include:: accel_styles.rst
|
||||
|
||||
|
||||
----------
|
||||
|
||||
Output info
|
||||
"""""""""""
|
||||
|
||||
This compute calculates a per-atom array with two columns: density and temperature.
|
||||
|
||||
These values can be accessed by any command that uses per-atom values
|
||||
from a compute as input. See the :doc:`Howto output <Howto_output>` doc
|
||||
page for an overview of LAMMPS output options.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This compute is part of the EXTRA-COMPUTE package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`comm_modify <comm_modify>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
The option defaults are *cutoff* = pair style cutoff
|
||||
|
||||
@ -13,7 +13,7 @@ Syntax
|
||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||
* bond/local = style name of this compute command
|
||||
* one or more values may be appended
|
||||
* value = *dist* or *engpot* or *force* or *fx* or *fy* or *fz* or *engvib* or *engrot* or *engtrans* or *omega* or *velvib* or *v_name*
|
||||
* value = *dist* or *dx* or *dy* or *dz* or *engpot* or *force* or *fx* or *fy* or *fz* or *engvib* or *engrot* or *engtrans* or *omega* or *velvib* or *v_name*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -21,6 +21,7 @@ Syntax
|
||||
*engpot* = bond potential energy
|
||||
*force* = bond force
|
||||
|
||||
*dx*,\ *dy*,\ *dz* = components of pairwise distance
|
||||
*fx*,\ *fy*,\ *fz* = components of bond force
|
||||
*engvib* = bond kinetic energy of vibration
|
||||
*engrot* = bond kinetic energy of rotation
|
||||
@ -63,6 +64,9 @@ whether the 2 atoms represent a simple diatomic molecule, or are part
|
||||
of some larger molecule.
|
||||
|
||||
The value *dist* is the current length of the bond.
|
||||
The values *dx*, *dy*, and *dz* are the xyz components of the
|
||||
*distance* between the pair of atoms. This value is always the
|
||||
distance from the atom of lower to the one with the higher id.
|
||||
|
||||
The value *engpot* is the potential energy for the bond,
|
||||
based on the current separation of the pair of atoms in the bond.
|
||||
|
||||
@ -89,13 +89,20 @@ included in the calculation.
|
||||
.. warning::
|
||||
|
||||
The compute *heat/flux* has been reported to produce unphysical
|
||||
values for angle, dihedral and improper contributions
|
||||
values for angle, dihedral, improper and constraint force contributions
|
||||
when used with :doc:`compute stress/atom <compute_stress_atom>`,
|
||||
as discussed in :ref:`(Surblys) <Surblys2>` and :ref:`(Boone) <Boone>`.
|
||||
You are strongly advised to
|
||||
as discussed in :ref:`(Surblys2019) <Surblys3>`, :ref:`(Boone) <Boone>`
|
||||
and :ref:`(Surblys2021) <Surblys4>`. You are strongly advised to
|
||||
use :doc:`compute centroid/stress/atom <compute_stress_atom>`,
|
||||
which has been implemented specifically for such cases.
|
||||
|
||||
.. warning::
|
||||
|
||||
Due to an implementation detail, the :math:`y` and :math:`z`
|
||||
components of heat flux from :doc:`fix rigid <fix_rigid>`
|
||||
contribution when computed via :doc:`compute stress/atom <compute_stress_atom>`
|
||||
are highly unphysical and should not be used.
|
||||
|
||||
The Green-Kubo formulas relate the ensemble average of the
|
||||
auto-correlation of the heat flux :math:`\mathbf{J}`
|
||||
to the thermal conductivity :math:`\kappa`:
|
||||
@ -232,10 +239,14 @@ none
|
||||
|
||||
----------
|
||||
|
||||
.. _Surblys2:
|
||||
.. _Surblys3:
|
||||
|
||||
**(Surblys)** Surblys, Matsubara, Kikugawa, Ohara, Phys Rev E, 99, 051301(R) (2019).
|
||||
**(Surblys2019)** Surblys, Matsubara, Kikugawa, Ohara, Phys Rev E, 99, 051301(R) (2019).
|
||||
|
||||
.. _Boone:
|
||||
|
||||
**(Boone)** Boone, Babaei, Wilmer, J Chem Theory Comput, 15, 5579--5587 (2019).
|
||||
|
||||
.. _Surblys4:
|
||||
|
||||
**(Surblys2021)** Surblys, Matsubara, Kikugawa, Ohara, J Appl Phys 130, 215104 (2021).
|
||||
|
||||
@ -13,11 +13,12 @@ Syntax
|
||||
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||
* pair/local = style name of this compute command
|
||||
* one or more values may be appended
|
||||
* value = *dist* or *eng* or *force* or *fx* or *fy* or *fz* or *pN*
|
||||
* value = *dist* or *dx* or *dy* or *dz* or *eng* or *force* or *fx* or *fy* or *fz* or *pN*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*dist* = pairwise distance
|
||||
*dx*,\ *dy*,\ *dz* = components of pairwise distance
|
||||
*eng* = pairwise energy
|
||||
*force* = pairwise force
|
||||
*fx*,\ *fy*,\ *fz* = components of pairwise force
|
||||
@ -56,6 +57,9 @@ force cutoff distance for that interaction, as defined by the
|
||||
commands.
|
||||
|
||||
The value *dist* is the distance between the pair of atoms.
|
||||
The values *dx*, *dy*, and *dz* are the xyz components of the
|
||||
*distance* between the pair of atoms. This value is always the
|
||||
distance from the atom of lower to the one with the higher id.
|
||||
|
||||
The value *eng* is the interaction energy for the pair of atoms.
|
||||
|
||||
@ -89,10 +93,10 @@ from the second of the two sub-styles. If the referenced *pN*
|
||||
is not computed for the specific pairwise interaction (based on
|
||||
atom types), then the output will be 0.0.
|
||||
|
||||
The value *dist* will be in distance :doc:`units <units>`. The value
|
||||
*eng* will be in energy :doc:`units <units>`. The values *force*, *fx*,
|
||||
*fy*, and *fz* will be in force :doc:`units <units>`. The values *pN*
|
||||
will be in whatever units the pair style defines.
|
||||
The value *dist*, *dx*, *dy* and *dz* will be in distance :doc:`units <units>`.
|
||||
The value *eng* will be in energy :doc:`units <units>`.
|
||||
The values *force*, *fx*, *fy*, and *fz* will be in force :doc:`units <units>`.
|
||||
The values *pN* will be in whatever units the pair style defines.
|
||||
|
||||
The optional *cutoff* keyword determines how the force cutoff distance
|
||||
for an interaction is determined. For the default setting of *type*,
|
||||
|
||||
@ -87,6 +87,10 @@ Tersoff 3-body interaction) is assigned in equal portions to each atom
|
||||
in the set. E.g. 1/4 of the dihedral virial to each of the 4 atoms,
|
||||
or 1/3 of the fix virial due to SHAKE constraints applied to atoms in
|
||||
a water molecule via the :doc:`fix shake <fix_shake>` command.
|
||||
As an exception, the virial contribution from
|
||||
constraint forces in :doc:`fix rigid <fix_rigid>` on each atom
|
||||
is computed from the constraint force acting on the corresponding atom
|
||||
and its position, i.e. the total virial is not equally distributed.
|
||||
|
||||
In case of compute *centroid/stress/atom*, the virial contribution is:
|
||||
|
||||
@ -103,13 +107,25 @@ atom :math:`I` due to the interaction and the relative position
|
||||
:math:`\mathbf{r}_{I0}` of the atom :math:`I` to the geometric center
|
||||
of the interacting atoms, i.e. centroid, is used. As the geometric
|
||||
center is different for each interaction, the :math:`\mathbf{r}_{I0}`
|
||||
also differs. The sixth and seventh terms, Kspace and :doc:`fix
|
||||
<fix>` contribution respectively, are computed identical to compute
|
||||
*stress/atom*. Although the total system virial is the same as
|
||||
also differs. The sixth term, Kspace contribution,
|
||||
is computed identically to compute *stress/atom*.
|
||||
The seventh term is handed differently depending on
|
||||
if the constraint forces are due to :doc:`fix shake <fix_shake>`
|
||||
or :doc:`fix rigid <fix_rigid>`.
|
||||
In case of SHAKE constraints, each distance constraint is
|
||||
handed as a pairwise interaction.
|
||||
E.g. in case of a water molecule, two OH and one HH distance
|
||||
constraints are treated as three pairwise interactions.
|
||||
In case of :doc:`fix rigid <fix_rigid>`,
|
||||
all constraint forces in the molecule are treated
|
||||
as a single many-body interaction with a single centroid position.
|
||||
In case of water molecule, the formula expression would become
|
||||
identical to that of the three-body angle interaction.
|
||||
Although the total system virial is the same as
|
||||
compute *stress/atom*, compute *centroid/stress/atom* is know to
|
||||
result in more consistent heat flux values for angle, dihedrals and
|
||||
improper contributions when computed via :doc:`compute heat/flux
|
||||
<compute_heat_flux>`.
|
||||
result in more consistent heat flux values for angle, dihedrals,
|
||||
improper and constraint force contributions
|
||||
when computed via :doc:`compute heat/flux <compute_heat_flux>`.
|
||||
|
||||
If no extra keywords are listed, the kinetic contribution all of the
|
||||
virial contribution terms are included in the per-atom stress tensor.
|
||||
@ -134,7 +150,8 @@ contribution for the cluster interaction is divided evenly among those
|
||||
atoms.
|
||||
|
||||
Details of how compute *centroid/stress/atom* obtains the virial for
|
||||
individual atoms is given in :ref:`(Surblys) <Surblys1>`, where the
|
||||
individual atoms are given in :ref:`(Surblys2019) <Surblys1>` and
|
||||
:ref:`(Surblys2021) <Surblys2>`, where the
|
||||
idea is that the virial of the atom :math:`I` is the result of only
|
||||
the force :math:`\mathbf{F}_I` on the atom due to the interaction and
|
||||
its positional vector :math:`\mathbf{r}_{I0}`, relative to the
|
||||
@ -235,10 +252,10 @@ between the pair of particles. All bond styles are supported. All
|
||||
angle, dihedral, improper styles are supported with the exception of
|
||||
INTEL and KOKKOS variants of specific styles. It also does not
|
||||
support models with long-range Coulombic or dispersion forces,
|
||||
i.e. the kspace_style command in LAMMPS. It also does not support the
|
||||
following fixes which add rigid-body constraints: :doc:`fix shake
|
||||
<fix_shake>`, :doc:`fix rattle <fix_shake>`, :doc:`fix rigid
|
||||
<fix_rigid>`, :doc:`fix rigid/small <fix_rigid>`.
|
||||
i.e. the kspace_style command in LAMMPS. It also does not implement the
|
||||
following fixes which add rigid-body constraints:
|
||||
:doc:`fix rigid/* <fix_rigid>` and the OpenMP accelerated version of :doc:`fix rigid/small <fix_rigid>`,
|
||||
while all other :doc:`fix rigid/*/small <fix_rigid>` are implemented.
|
||||
|
||||
LAMMPS will generate an error if one of these options is included in
|
||||
your model. Extension of centroid stress calculations to these force
|
||||
@ -270,4 +287,8 @@ none
|
||||
|
||||
.. _Surblys1:
|
||||
|
||||
**(Surblys)** Surblys, Matsubara, Kikugawa, Ohara, Phys Rev E, 99, 051301(R) (2019).
|
||||
**(Surblys2019)** Surblys, Matsubara, Kikugawa, Ohara, Phys Rev E, 99, 051301(R) (2019).
|
||||
|
||||
.. _Surblys2:
|
||||
|
||||
**(Surblys2021)** Surblys, Matsubara, Kikugawa, Ohara, J Appl Phys 130, 215104 (2021).
|
||||
|
||||
@ -20,8 +20,10 @@ Syntax
|
||||
cutoff = delete one atom from pairs of atoms within the cutoff (distance units)
|
||||
group1-ID = one atom in pair must be in this group
|
||||
group2-ID = other atom in pair must be in this group
|
||||
*porosity* args = region-ID fraction seed
|
||||
*porosity* args = group-ID region-ID fraction seed
|
||||
group-ID = group within which to perform deletions
|
||||
region-ID = region within which to perform deletions
|
||||
or NULL to only impose the group criterion
|
||||
fraction = delete this fraction of atoms
|
||||
seed = random number seed (positive integer)
|
||||
|
||||
@ -43,7 +45,8 @@ Examples
|
||||
delete_atoms region sphere compress no
|
||||
delete_atoms overlap 0.3 all all
|
||||
delete_atoms overlap 0.5 solvent colloid
|
||||
delete_atoms porosity cube 0.1 482793 bond yes
|
||||
delete_atoms porosity all cube 0.1 482793 bond yes
|
||||
delete_atoms porosity polymer cube 0.1 482793 bond yes
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
@ -76,12 +79,17 @@ have occurred that no atom pairs within the cutoff will remain
|
||||
minimum number of atoms will be deleted, or that the same atoms will
|
||||
be deleted when running on different numbers of processors.
|
||||
|
||||
For style *porosity* a specified *fraction* of atoms are deleted
|
||||
within the specified region. For example, if fraction is 0.1, then
|
||||
10% of the atoms will be deleted. The atoms to delete are chosen
|
||||
randomly. There is no guarantee that the exact fraction of atoms will
|
||||
be deleted, or that the same atoms will be deleted when running on
|
||||
different numbers of processors.
|
||||
For style *porosity* a specified *fraction* of atoms are deleted which
|
||||
are both in the specified group and within the specified region. The
|
||||
region-ID can be specified as NULL to only impose the group criterion.
|
||||
Likewise, specifying the group-ID as *all* will only impose the region
|
||||
criterion.
|
||||
|
||||
For example, if fraction is 0.1, then 10% of the eligible atoms will
|
||||
be deleted. The atoms to delete are chosen randomly. There is no
|
||||
guarantee that the exact fraction of atoms will be deleted, or that
|
||||
the same atoms will be deleted when running on different numbers of
|
||||
processors.
|
||||
|
||||
If the *compress* keyword is set to *yes*, then after atoms are
|
||||
deleted, then atom IDs are re-assigned so that they run from 1 to the
|
||||
@ -89,8 +97,8 @@ number of atoms in the system. Note that this is not done for
|
||||
molecular systems (see the :doc:`atom_style <atom_style>` command),
|
||||
regardless of the *compress* setting, since it would foul up the bond
|
||||
connectivity that has already been assigned. However, the
|
||||
:doc:`reset_atom_ids <reset_atom_ids>` command can be used after this command to
|
||||
accomplish the same thing.
|
||||
:doc:`reset_atom_ids <reset_atom_ids>` command can be used after this
|
||||
command to accomplish the same thing.
|
||||
|
||||
Note that the re-assignment of IDs is not really a compression, where
|
||||
gaps in atom IDs are removed by decrementing atom IDs that are larger.
|
||||
@ -100,15 +108,15 @@ the :doc:`create_atoms <create_atoms>` command explains.
|
||||
|
||||
A molecular system with fixed bonds, angles, dihedrals, or improper
|
||||
interactions, is one where the topology of the interactions is
|
||||
typically defined in the data file read by the
|
||||
:doc:`read_data <read_data>` command, and where the interactions
|
||||
themselves are defined with the :doc:`bond_style <bond_style>`,
|
||||
:doc:`angle_style <angle_style>`, etc commands. If you delete atoms
|
||||
from such a system, you must be careful not to end up with bonded
|
||||
interactions that are stored by remaining atoms but which include
|
||||
deleted atoms. This will cause LAMMPS to generate a "missing atoms"
|
||||
error when the bonded interaction is computed. The *bond* and *mol*
|
||||
keywords offer two ways to do that.
|
||||
typically defined in the data file read by the :doc:`read_data
|
||||
<read_data>` command, and where the interactions themselves are
|
||||
defined with the :doc:`bond_style <bond_style>`, :doc:`angle_style
|
||||
<angle_style>`, etc commands. If you delete atoms from such a system,
|
||||
you must be careful not to end up with bonded interactions that are
|
||||
stored by remaining atoms but which include deleted atoms. This will
|
||||
cause LAMMPS to generate a "missing atoms" error when the bonded
|
||||
interaction is computed. The *bond* and *mol* keywords offer two ways
|
||||
to do that.
|
||||
|
||||
It the *bond* keyword is set to *yes* then any bond or angle or
|
||||
dihedral or improper interaction that includes a deleted atom is also
|
||||
|
||||
@ -137,7 +137,7 @@ Examples
|
||||
dump myDump all atom/gz 100 dump.atom.gz
|
||||
dump myDump all atom/zstd 100 dump.atom.zst
|
||||
dump 2 subgroup atom 50 dump.run.bin
|
||||
dump 2 subgroup atom 50 dump.run.mpiio.bin
|
||||
dump 2 subgroup atom/mpiio 50 dump.run.mpiio.bin
|
||||
dump 4a all custom 100 dump.myforce.* id type x y vx fx
|
||||
dump 4b flow custom 100 dump.%.myforce id type c_myF[3] v_ke
|
||||
dump 4b flow custom 100 dump.%.myforce id type c_myF[*] v_ke
|
||||
@ -169,11 +169,12 @@ or multiple smaller files).
|
||||
|
||||
.. note::
|
||||
|
||||
Because periodic boundary conditions are enforced only on
|
||||
timesteps when neighbor lists are rebuilt, the coordinates of an atom
|
||||
written to a dump file may be slightly outside the simulation box.
|
||||
Re-neighbor timesteps will not typically coincide with the timesteps
|
||||
dump snapshots are written. See the :doc:`dump_modify pbc <dump_modify>` command if you with to force coordinates to be
|
||||
Because periodic boundary conditions are enforced only on timesteps
|
||||
when neighbor lists are rebuilt, the coordinates of an atom written
|
||||
to a dump file may be slightly outside the simulation box.
|
||||
Re-neighbor timesteps will not typically coincide with the
|
||||
timesteps dump snapshots are written. See the :doc:`dump_modify
|
||||
pbc <dump_modify>` command if you with to force coordinates to be
|
||||
strictly inside the simulation box.
|
||||
|
||||
.. note::
|
||||
@ -189,20 +190,21 @@ or multiple smaller files).
|
||||
multiple processors, each of which owns a subset of the atoms.
|
||||
|
||||
For the *atom*, *custom*, *cfg*, and *local* styles, sorting is off by
|
||||
default. For the *dcd*, *xtc*, *xyz*, and *molfile* styles, sorting by
|
||||
atom ID is on by default. See the :doc:`dump_modify <dump_modify>` doc
|
||||
page for details.
|
||||
default. For the *dcd*, *xtc*, *xyz*, and *molfile* styles, sorting
|
||||
by atom ID is on by default. See the :doc:`dump_modify <dump_modify>`
|
||||
doc page for details.
|
||||
|
||||
The *atom/gz*, *cfg/gz*, *custom/gz*, *local/gz*, and *xyz/gz* styles are identical
|
||||
in command syntax to the corresponding styles without "gz", however,
|
||||
they generate compressed files using the zlib library. Thus the filename
|
||||
suffix ".gz" is mandatory. This is an alternative approach to writing
|
||||
compressed files via a pipe, as done by the regular dump styles, which
|
||||
may be required on clusters where the interface to the high-speed network
|
||||
disallows using the fork() library call (which is needed for a pipe).
|
||||
For the remainder of this doc page, you should thus consider the *atom*
|
||||
and *atom/gz* styles (etc) to be inter-changeable, with the exception
|
||||
of the required filename suffix.
|
||||
The *atom/gz*, *cfg/gz*, *custom/gz*, *local/gz*, and *xyz/gz* styles
|
||||
are identical in command syntax to the corresponding styles without
|
||||
"gz", however, they generate compressed files using the zlib
|
||||
library. Thus the filename suffix ".gz" is mandatory. This is an
|
||||
alternative approach to writing compressed files via a pipe, as done
|
||||
by the regular dump styles, which may be required on clusters where
|
||||
the interface to the high-speed network disallows using the fork()
|
||||
library call (which is needed for a pipe). For the remainder of this
|
||||
doc page, you should thus consider the *atom* and *atom/gz* styles
|
||||
(etc) to be inter-changeable, with the exception of the required
|
||||
filename suffix.
|
||||
|
||||
Similarly, the *atom/zstd*, *cfg/zstd*, *custom/zstd*, *local/zstd*,
|
||||
and *xyz/zstd* styles are identical to the gz styles, but use the Zstd
|
||||
@ -219,6 +221,11 @@ you should thus consider the *atom* and *atom/mpiio* styles (etc) to
|
||||
be inter-changeable. The one exception is how the filename is
|
||||
specified for the MPI-IO styles, as explained below.
|
||||
|
||||
.. warning::
|
||||
|
||||
The MPIIO package is currently unmaintained and has become
|
||||
unreliable. Use with caution.
|
||||
|
||||
The precision of values output to text-based dump files can be
|
||||
controlled by the :doc:`dump_modify format <dump_modify>` command and
|
||||
its options.
|
||||
@ -275,10 +282,11 @@ This bounding box is convenient for many visualization programs. The
|
||||
meaning of the 6 character flags for "xx yy zz" is the same as above.
|
||||
|
||||
Note that the first two numbers on each line are now xlo_bound instead
|
||||
of xlo, etc, since they represent a bounding box. See the :doc:`Howto triclinic <Howto_triclinic>` page for a geometric description
|
||||
of triclinic boxes, as defined by LAMMPS, simple formulas for how the
|
||||
6 bounding box extents (xlo_bound,xhi_bound,etc) are calculated from
|
||||
the triclinic parameters, and how to transform those parameters to and
|
||||
of xlo, etc, since they represent a bounding box. See the :doc:`Howto
|
||||
triclinic <Howto_triclinic>` page for a geometric description of
|
||||
triclinic boxes, as defined by LAMMPS, simple formulas for how the 6
|
||||
bounding box extents (xlo_bound,xhi_bound,etc) are calculated from the
|
||||
triclinic parameters, and how to transform those parameters to and
|
||||
from other commonly used triclinic representations.
|
||||
|
||||
The "ITEM: ATOMS" line in each snapshot lists column descriptors for
|
||||
@ -310,23 +318,24 @@ written to the dump file. This local data is typically calculated by
|
||||
each processor based on the atoms it owns, but there may be zero or
|
||||
more entities per atom, e.g. a list of bond distances. An explanation
|
||||
of the possible dump local attributes is given below. Note that by
|
||||
using input from the :doc:`compute property/local <compute_property_local>` command with dump local,
|
||||
it is possible to generate information on bonds, angles, etc that can
|
||||
be cut and pasted directly into a data file read by the
|
||||
:doc:`read_data <read_data>` command.
|
||||
using input from the :doc:`compute property/local
|
||||
<compute_property_local>` command with dump local, it is possible to
|
||||
generate information on bonds, angles, etc that can be cut and pasted
|
||||
directly into a data file read by the :doc:`read_data <read_data>`
|
||||
command.
|
||||
|
||||
Style *cfg* has the same command syntax as style *custom* and writes
|
||||
extended CFG format files, as used by the
|
||||
`AtomEye <http://li.mit.edu/Archive/Graphics/A/>`_ visualization
|
||||
package. Since the extended CFG format uses a single snapshot of the
|
||||
system per file, a wildcard "\*" must be included in the filename, as
|
||||
discussed below. The list of atom attributes for style *cfg* must
|
||||
begin with either "mass type xs ys zs" or "mass type xsu ysu zsu"
|
||||
since these quantities are needed to write the CFG files in the
|
||||
appropriate format (though the "mass" and "type" fields do not appear
|
||||
explicitly in the file). Any remaining attributes will be stored as
|
||||
"auxiliary properties" in the CFG files. Note that you will typically
|
||||
want to use the :doc:`dump_modify element <dump_modify>` command with
|
||||
extended CFG format files, as used by the `AtomEye
|
||||
<http://li.mit.edu/Archive/Graphics/A/>`_ visualization package.
|
||||
Since the extended CFG format uses a single snapshot of the system per
|
||||
file, a wildcard "\*" must be included in the filename, as discussed
|
||||
below. The list of atom attributes for style *cfg* must begin with
|
||||
either "mass type xs ys zs" or "mass type xsu ysu zsu" since these
|
||||
quantities are needed to write the CFG files in the appropriate format
|
||||
(though the "mass" and "type" fields do not appear explicitly in the
|
||||
file). Any remaining attributes will be stored as "auxiliary
|
||||
properties" in the CFG files. Note that you will typically want to
|
||||
use the :doc:`dump_modify element <dump_modify>` command with
|
||||
CFG-formatted files, to associate element names with atom types, so
|
||||
that AtomEye can render atoms appropriately. When unwrapped
|
||||
coordinates *xsu*, *ysu*, and *zsu* are requested, the nominal AtomEye
|
||||
@ -452,6 +461,11 @@ use the :doc:`read_dump <read_dump>` command or perform other
|
||||
post-processing, just as if the dump file was not written using
|
||||
MPI-IO.
|
||||
|
||||
.. warning::
|
||||
|
||||
The MPIIO package is currently unmaintained and has become
|
||||
unreliable. Use with caution.
|
||||
|
||||
Note that MPI-IO dump files are one large file which all processors
|
||||
write to. You thus cannot use the "%" wildcard character described
|
||||
above in the filename since that specifies generation of multiple
|
||||
@ -708,8 +722,9 @@ are part of the MPIIO package. They are only enabled if LAMMPS was
|
||||
built with that package. See the :doc:`Build package <Build_package>`
|
||||
doc page for more info.
|
||||
|
||||
The *xtc* style is part of the MISC package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
||||
The *xtc* and *dcd* styles are part of the EXTRA-DUMP package. They
|
||||
are only enabled if LAMMPS was built with that package. See the
|
||||
:doc:`Build package <Build_package>` page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
@ -6,6 +6,8 @@ dump image command
|
||||
dump movie command
|
||||
==================
|
||||
|
||||
(see below for :ref:`dump_modify options <dump_modify_image>` specific to dump image/movie)
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
@ -15,7 +17,7 @@ Syntax
|
||||
|
||||
* ID = user-assigned name for the dump
|
||||
* group-ID = ID of the group of atoms to be imaged
|
||||
* style = *image* or *movie* = style of dump command (other styles *atom* or *cfg* or *dcd* or *xtc* or *xyz* or *local* or *custom* are discussed on the :doc:`dump <dump>` doc page)
|
||||
* style = *image* or *movie* = style of dump command (other styles such as *atom* or *cfg* or *dcd* or *xtc* or *xyz* or *local* or *custom* are discussed on the :doc:`dump <dump>` doc page)
|
||||
* N = dump every this many timesteps
|
||||
* file = name of file to write image to
|
||||
* color = atom attribute that determines color of each atom
|
||||
@ -79,6 +81,69 @@ Syntax
|
||||
seed = random # seed (positive integer)
|
||||
dfactor = strength of shading from 0.0 to 1.0
|
||||
|
||||
|
||||
.. _dump_modify_image:
|
||||
|
||||
dump_modify options for dump image/movie
|
||||
========================================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
dump_modify dump-ID keyword values ...
|
||||
|
||||
* these keywords apply only to the *image* and *movie* styles and are documented on this page
|
||||
* keyword = *acolor* or *adiam* or *amap* or *backcolor* or *bcolor* or *bdiam* or *boxcolor* or *color* or *bitrate* or *framerate*
|
||||
* see the :doc:`dump modify <dump_modify>` doc page for more general keywords
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*acolor* args = type color
|
||||
type = atom type or range of types (see below)
|
||||
color = name of color or color1/color2/...
|
||||
*adiam* args = type diam
|
||||
type = atom type or range of types (see below)
|
||||
diam = diameter of atoms of that type (distance units)
|
||||
*amap* args = lo hi style delta N entry1 entry2 ... entryN
|
||||
lo = number or *min* = lower bound of range of color map
|
||||
hi = number or *max* = upper bound of range of color map
|
||||
style = 2 letters = "c" or "d" or "s" plus "a" or "f"
|
||||
"c" for continuous
|
||||
"d" for discrete
|
||||
"s" for sequential
|
||||
"a" for absolute
|
||||
"f" for fractional
|
||||
delta = binsize (only used for style "s", otherwise ignored)
|
||||
binsize = range is divided into bins of this width
|
||||
N = # of subsequent entries
|
||||
entry = value color (for continuous style)
|
||||
value = number or *min* or *max* = single value within range
|
||||
color = name of color used for that value
|
||||
entry = lo hi color (for discrete style)
|
||||
lo/hi = number or *min* or *max* = lower/upper bound of subset of range
|
||||
color = name of color used for that subset of values
|
||||
entry = color (for sequential style)
|
||||
color = name of color used for a bin of values
|
||||
*backcolor* arg = color
|
||||
color = name of color for background
|
||||
*bcolor* args = type color
|
||||
type = bond type or range of types (see below)
|
||||
color = name of color or color1/color2/...
|
||||
*bdiam* args = type diam
|
||||
type = bond type or range of types (see below)
|
||||
diam = diameter of bonds of that type (distance units)
|
||||
*boxcolor* arg = color
|
||||
color = name of color for simulation box lines and processor sub-domain lines
|
||||
*color* args = name R G B
|
||||
name = name of color
|
||||
R,G,B = red/green/blue numeric values from 0.0 to 1.0
|
||||
*bitrate* arg = rate
|
||||
rate = target bitrate for movie in kbps
|
||||
*framerate* arg = fps
|
||||
fps = frames per second for movie
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
@ -91,6 +156,8 @@ Examples
|
||||
dump m1 all movie 1000 movie.avi type type size 640 480
|
||||
dump m2 all movie 100 movie.m4v type type zoom 1.8 adiam v_value size 1280 720
|
||||
|
||||
dump_modify 1 amap min max cf 0.0 3 min green 0.5 yellow max blue boxcolor red
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
@ -145,10 +212,10 @@ is used.
|
||||
Similarly, the format of the resulting movie is chosen with the
|
||||
*movie* dump style. This is handled by the underlying FFmpeg converter
|
||||
and thus details have to be looked up in the `FFmpeg documentation
|
||||
<http://ffmpeg.org/ffmpeg.html>`_.
|
||||
Typical examples are: .avi, .mpg, .m4v, .mp4, .mkv, .flv, .mov, .gif
|
||||
Additional settings of the movie compression like bitrate and
|
||||
framerate can be set using the :doc:`dump_modify <dump_modify>` command.
|
||||
<http://ffmpeg.org/ffmpeg.html>`_. Typical examples are: .avi, .mpg,
|
||||
.m4v, .mp4, .mkv, .flv, .mov, .gif Additional settings of the movie
|
||||
compression like bitrate and framerate can be set using the
|
||||
dump_modify command as described below.
|
||||
|
||||
To write out JPEG and PNG format files, you must build LAMMPS with
|
||||
support for the corresponding JPEG or PNG library. To convert images
|
||||
@ -210,19 +277,20 @@ to colors is as follows:
|
||||
* type 6 = cyan
|
||||
|
||||
and repeats itself for types > 6. This mapping can be changed by the
|
||||
:doc:`dump_modify acolor <dump_modify>` command.
|
||||
"dump_modify acolor" command, as described below.
|
||||
|
||||
If *type* is specified for the *diameter* setting then the diameter of
|
||||
each atom is determined by its atom type. By default all types have
|
||||
diameter 1.0. This mapping can be changed by the :doc:`dump_modify adiam <dump_modify>` command.
|
||||
diameter 1.0. This mapping can be changed by the "dump_modify adiam"
|
||||
command, as described below.
|
||||
|
||||
If *element* is specified for the *color* and/or *diameter* setting,
|
||||
then the color and/or diameter of each atom is determined by which
|
||||
element it is, which in turn is specified by the element-to-type
|
||||
mapping specified by the "dump_modify element" command. By default
|
||||
every atom type is C (carbon). Every element has a color and diameter
|
||||
associated with it, which is the same as the colors and sizes used by
|
||||
the `AtomEye <atomeye_>`_ visualization package.
|
||||
mapping specified by the "dump_modify element" command, as described
|
||||
below. By default every atom type is C (carbon). Every element has a
|
||||
color and diameter associated with it, which is the same as the colors
|
||||
and sizes used by the `AtomEye <atomeye_>`_ visualization package.
|
||||
|
||||
.. _atomeye: http://li.mit.edu/Archive/Graphics/A/
|
||||
|
||||
@ -232,13 +300,13 @@ settings, they are interpreted in the following way.
|
||||
If "vx", for example, is used as the *color* setting, then the color
|
||||
of the atom will depend on the x-component of its velocity. The
|
||||
association of a per-atom value with a specific color is determined by
|
||||
a "color map", which can be specified via the
|
||||
:doc:`dump_modify <dump_modify>` command. The basic idea is that the
|
||||
atom-attribute will be within a range of values, and every value
|
||||
within the range is mapped to a specific color. Depending on how the
|
||||
color map is defined, that mapping can take place via interpolation so
|
||||
that a value of -3.2 is halfway between "red" and "blue", or
|
||||
discretely so that the value of -3.2 is "orange".
|
||||
a "color map", which can be specified via the dump_modify command, as
|
||||
described below. The basic idea is that the atom-attribute will be
|
||||
within a range of values, and every value within the range is mapped
|
||||
to a specific color. Depending on how the color map is defined, that
|
||||
mapping can take place via interpolation so that a value of -3.2 is
|
||||
halfway between "red" and "blue", or discretely so that the value of
|
||||
-3.2 is "orange".
|
||||
|
||||
If "vx", for example, is used as the *diameter* setting, then the atom
|
||||
will be rendered using the x-component of its velocity as the
|
||||
@ -251,9 +319,10 @@ diameter, which can be used as the *diameter* setting.
|
||||
|
||||
The various keywords listed above control how the image is rendered.
|
||||
As listed below, all of the keywords have defaults, most of which you
|
||||
will likely not need to change. The :doc:`dump modify <dump_modify>`
|
||||
also has options specific to the dump image style, particularly for
|
||||
assigning colors to atoms, bonds, and other image features.
|
||||
will likely not need to change. As described below, the dump modify
|
||||
command also has options specific to the dump image style,
|
||||
particularly for assigning colors to atoms, bonds, and other image
|
||||
features.
|
||||
|
||||
----------
|
||||
|
||||
@ -295,7 +364,7 @@ types to colors is as follows:
|
||||
* type 6 = cyan
|
||||
|
||||
and repeats itself for bond types > 6. This mapping can be changed by
|
||||
the :doc:`dump_modify bcolor <dump_modify>` command.
|
||||
the "dump_modify bcolor" command, as described below.
|
||||
|
||||
The bond *width* value can be a numeric value or *atom* or *type* (or
|
||||
*none* as indicated above).
|
||||
@ -310,7 +379,8 @@ of the 2 atoms in the bond.
|
||||
|
||||
If *type* is specified for the *width* value then the diameter of each
|
||||
bond is determined by its bond type. By default all types have
|
||||
diameter 0.5. This mapping can be changed by the :doc:`dump_modify bdiam <dump_modify>` command.
|
||||
diameter 0.5. This mapping can be changed by the "dump_modify bdiam" command,
|
||||
as described below.
|
||||
|
||||
----------
|
||||
|
||||
@ -330,7 +400,7 @@ mapping of types to colors is as follows:
|
||||
* type 6 = cyan
|
||||
|
||||
and repeats itself for types > 6. There is not yet an option to
|
||||
change this via the :doc:`dump_modify <dump_modify>` command.
|
||||
change this via the dump_modify command.
|
||||
|
||||
The line *width* can only be a numeric value, which specifies that all
|
||||
lines will be drawn as cylinders with that diameter, e.g. 1.0, which
|
||||
@ -357,7 +427,7 @@ default the mapping of types to colors is as follows:
|
||||
* type 6 = cyan
|
||||
|
||||
and repeats itself for types > 6. There is not yet an option to
|
||||
change this via the :doc:`dump_modify <dump_modify>` command.
|
||||
change this via the dump_modify command.
|
||||
|
||||
----------
|
||||
|
||||
@ -390,7 +460,7 @@ particle. By default the mapping of types to colors is as follows:
|
||||
* type 6 = cyan
|
||||
|
||||
and repeats itself for types > 6. There is not yet an option to
|
||||
change this via the :doc:`dump_modify <dump_modify>` command.
|
||||
change this via the dump_modify command.
|
||||
|
||||
----------
|
||||
|
||||
@ -414,7 +484,7 @@ the mapping of types to colors is as follows:
|
||||
* type 6 = cyan
|
||||
|
||||
and repeats itself for types > 6. There is not yet an option to
|
||||
change this via the :doc:`dump_modify <dump_modify>` command.
|
||||
change this via the dump_modify command.
|
||||
|
||||
----------
|
||||
|
||||
@ -488,7 +558,8 @@ are rendered as thin cylinders in the image. If *no* is set, then the
|
||||
box boundaries are not drawn and the *diam* setting is ignored. If
|
||||
*yes* is set, the 12 edges of the box are drawn, with a diameter that
|
||||
is a fraction of the shortest box length in x,y,z (for 3d) or x,y (for
|
||||
2d). The color of the box boundaries can be set with the :doc:`dump_modify boxcolor <dump_modify>` command.
|
||||
2d). The color of the box boundaries can be set with the "dump_modify
|
||||
boxcolor" command.
|
||||
|
||||
The *axes* keyword determines if and how the coordinate axes are
|
||||
rendered as thin cylinders in the image. If *no* is set, then the
|
||||
@ -507,7 +578,8 @@ set (default), then the sub-domain boundaries are not drawn and the
|
||||
*diam* setting is ignored. If *yes* is set, the 12 edges of each
|
||||
processor sub-domain are drawn, with a diameter that is a fraction of
|
||||
the shortest box length in x,y,z (for 3d) or x,y (for 2d). The color
|
||||
of the sub-domain boundaries can be set with the :doc:`dump_modify boxcolor <dump_modify>` command.
|
||||
of the sub-domain boundaries can be set with the "dump_modify
|
||||
boxcolor" command.
|
||||
|
||||
----------
|
||||
|
||||
@ -607,9 +679,272 @@ Play the movie:
|
||||
|
||||
----------
|
||||
|
||||
See the :doc:`Modify <Modify>` page for information on how to add
|
||||
new compute and fix styles to LAMMPS to calculate per-atom quantities
|
||||
which could then be output into dump files.
|
||||
Dump_modify keywords for dump image and dump movie
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
The following dump_modify keywords apply only to the dump image and
|
||||
dump movie styles. Any keyword that works with dump image also works
|
||||
with dump movie, since the movie is simply a collection of images.
|
||||
Some of the keywords only affect the dump movie style. The
|
||||
descriptions give details.
|
||||
|
||||
----------
|
||||
|
||||
The *acolor* keyword can be used with the dump image command, when its
|
||||
atom color setting is *type*, to set the color that atoms of each type
|
||||
will be drawn in the image.
|
||||
|
||||
The specified *type* should be an integer from 1 to Ntypes = the
|
||||
number of atom types. A wildcard asterisk can be used in place of or
|
||||
in conjunction with the *type* argument to specify a range of atom
|
||||
types. This takes the form "\*" or "\*n" or "n\*" or "m\*n". If N =
|
||||
the number of atom types, then an asterisk with no numeric values
|
||||
means all types from 1 to N. A leading asterisk means all types from
|
||||
1 to n (inclusive). A trailing asterisk means all types from n to N
|
||||
(inclusive). A middle asterisk means all types from m to n
|
||||
(inclusive).
|
||||
|
||||
The specified *color* can be a single color which is any of the 140
|
||||
pre-defined colors (see below) or a color name defined by the
|
||||
"dump_modify color" command, as described below. Or it can be two or
|
||||
more colors separated by a "/" character, e.g. red/green/blue. In the
|
||||
former case, that color is assigned to all the specified atom types.
|
||||
In the latter case, the list of colors are assigned in a round-robin
|
||||
fashion to each of the specified atom types.
|
||||
|
||||
----------
|
||||
|
||||
The *adiam* keyword can be used with the dump image command, when its
|
||||
atom diameter setting is *type*, to set the size that atoms of each
|
||||
type will be drawn in the image. The specified *type* should be an
|
||||
integer from 1 to Ntypes. As with the *acolor* keyword, a wildcard
|
||||
asterisk can be used as part of the *type* argument to specify a range
|
||||
of atom types. The specified *diam* is the size in whatever distance
|
||||
:doc:`units <units>` the input script is using, e.g. Angstroms.
|
||||
|
||||
----------
|
||||
|
||||
The *amap* keyword can be used with the dump image command, with its
|
||||
*atom* keyword, when its atom setting is an atom-attribute, to setup a
|
||||
color map. The color map is used to assign a specific RGB
|
||||
(red/green/blue) color value to an individual atom when it is drawn,
|
||||
based on the atom's attribute, which is a numeric value, e.g. its
|
||||
x-component of velocity if the atom-attribute "vx" was specified.
|
||||
|
||||
The basic idea of a color map is that the atom-attribute will be
|
||||
within a range of values, and that range is associated with a series
|
||||
of colors (e.g. red, blue, green). An atom's specific value (vx =
|
||||
-3.2) can then mapped to the series of colors (e.g. halfway between
|
||||
red and blue), and a specific color is determined via an interpolation
|
||||
procedure.
|
||||
|
||||
There are many possible options for the color map, enabled by the
|
||||
*amap* keyword. Here are the details.
|
||||
|
||||
The *lo* and *hi* settings determine the range of values allowed for
|
||||
the atom attribute. If numeric values are used for *lo* and/or *hi*,
|
||||
then values that are lower/higher than that value are set to the
|
||||
value. I.e. the range is static. If *lo* is specified as *min* or
|
||||
*hi* as *max* then the range is dynamic, and the lower and/or
|
||||
upper bound will be calculated each time an image is drawn, based
|
||||
on the set of atoms being visualized.
|
||||
|
||||
The *style* setting is two letters, such as "ca". The first letter is
|
||||
either "c" for continuous, "d" for discrete, or "s" for sequential.
|
||||
The second letter is either "a" for absolute, or "f" for fractional.
|
||||
|
||||
A continuous color map is one in which the color changes continuously
|
||||
from value to value within the range. A discrete color map is one in
|
||||
which discrete colors are assigned to sub-ranges of values within the
|
||||
range. A sequential color map is one in which discrete colors are
|
||||
assigned to a sequence of sub-ranges of values covering the entire
|
||||
range.
|
||||
|
||||
An absolute color map is one in which the values to which colors are
|
||||
assigned are specified explicitly as values within the range. A
|
||||
fractional color map is one in which the values to which colors are
|
||||
assigned are specified as a fractional portion of the range. For
|
||||
example if the range is from -10.0 to 10.0, and the color red is to be
|
||||
assigned to atoms with a value of 5.0, then for an absolute color map
|
||||
the number 5.0 would be used. But for a fractional map, the number
|
||||
0.75 would be used since 5.0 is 3/4 of the way from -10.0 to 10.0.
|
||||
|
||||
The *delta* setting must be specified for all styles, but is only used
|
||||
for the sequential style; otherwise the value is ignored. It
|
||||
specifies the bin size to use within the range for assigning
|
||||
consecutive colors to. For example, if the range is from -10.0 to
|
||||
10.0 and a *delta* of 1.0 is used, then 20 colors will be assigned to
|
||||
the range. The first will be from -10.0 <= color1 < -9.0, then second
|
||||
from -9.0 <= color2 < -8.0, etc.
|
||||
|
||||
The *N* setting is how many entries follow. The format of the entries
|
||||
depends on whether the color map style is continuous, discrete or
|
||||
sequential. In all cases the *color* setting can be any of the 140
|
||||
pre-defined colors (see below) or a color name defined by the
|
||||
dump_modify color option.
|
||||
|
||||
For continuous color maps, each entry has a *value* and a *color*\ .
|
||||
The *value* is either a number within the range of values or *min* or
|
||||
*max*\ . The *value* of the first entry must be *min* and the *value*
|
||||
of the last entry must be *max*\ . Any entries in between must have
|
||||
increasing values. Note that numeric values can be specified either
|
||||
as absolute numbers or as fractions (0.0 to 1.0) of the range,
|
||||
depending on the "a" or "f" in the style setting for the color map.
|
||||
|
||||
Here is how the entries are used to determine the color of an
|
||||
individual atom, given the value X of its atom attribute. X will fall
|
||||
between 2 of the entry values. The color of the atom is linearly
|
||||
interpolated (in each of the RGB values) between the 2 colors
|
||||
associated with those entries. For example, if X = -5.0 and the 2
|
||||
surrounding entries are "red" at -10.0 and "blue" at 0.0, then the
|
||||
atom's color will be halfway between "red" and "blue", which happens
|
||||
to be "purple".
|
||||
|
||||
For discrete color maps, each entry has a *lo* and *hi* value and a
|
||||
*color*\ . The *lo* and *hi* settings are either numbers within the
|
||||
range of values or *lo* can be *min* or *hi* can be *max*\ . The *lo*
|
||||
and *hi* settings of the last entry must be *min* and *max*\ . Other
|
||||
entries can have any *lo* and *hi* values and the sub-ranges of
|
||||
different values can overlap. Note that numeric *lo* and *hi* values
|
||||
can be specified either as absolute numbers or as fractions (0.0 to
|
||||
1.0) of the range, depending on the "a" or "f" in the style setting
|
||||
for the color map.
|
||||
|
||||
Here is how the entries are used to determine the color of an
|
||||
individual atom, given the value X of its atom attribute. The entries
|
||||
are scanned from first to last. The first time that *lo* <= X <=
|
||||
*hi*, X is assigned the color associated with that entry. You can
|
||||
think of the last entry as assigning a default color (since it will
|
||||
always be matched by X), and the earlier entries as colors that
|
||||
override the default. Also note that no interpolation of a color RGB
|
||||
is done. All atoms will be drawn with one of the colors in the list
|
||||
of entries.
|
||||
|
||||
For sequential color maps, each entry has only a *color*\ . Here is how
|
||||
the entries are used to determine the color of an individual atom,
|
||||
given the value X of its atom attribute. The range is partitioned
|
||||
into N bins of width *binsize*\ . Thus X will fall in a specific bin
|
||||
from 1 to N, say the Mth bin. If it falls on a boundary between 2
|
||||
bins, it is considered to be in the higher of the 2 bins. Each bin is
|
||||
assigned a color from the E entries. If E < N, then the colors are
|
||||
repeated. For example if 2 entries with colors red and green are
|
||||
specified, then the odd numbered bins will be red and the even bins
|
||||
green. The color of the atom is the color of its bin. Note that the
|
||||
sequential color map is really a shorthand way of defining a discrete
|
||||
color map without having to specify where all the bin boundaries are.
|
||||
|
||||
Here is an example of using a sequential color map to color all the
|
||||
atoms in individual molecules with a different color. See the
|
||||
examples/pour/in.pour.2d.molecule input script for an example of how
|
||||
this is used.
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
variable colors string &
|
||||
"red green blue yellow white &
|
||||
purple pink orange lime gray"
|
||||
variable mol atom mol%10
|
||||
dump 1 all image 250 image.*.jpg v_mol type &
|
||||
zoom 1.6 adiam 1.5
|
||||
dump_modify 1 pad 5 amap 0 10 sa 1 10 ${colors}
|
||||
|
||||
In this case, 10 colors are defined, and molecule IDs are
|
||||
mapped to one of the colors, even if there are 1000s of molecules.
|
||||
|
||||
----------
|
||||
|
||||
The *backcolor* sets the background color of the images. The color
|
||||
name can be any of the 140 pre-defined colors (see below) or a color
|
||||
name defined by the dump_modify color option.
|
||||
|
||||
----------
|
||||
|
||||
The *bcolor* keyword can be used with the dump image command, with its
|
||||
*bond* keyword, when its color setting is *type*, to set the color
|
||||
that bonds of each type will be drawn in the image.
|
||||
|
||||
The specified *type* should be an integer from 1 to Nbondtypes = the
|
||||
number of bond types. A wildcard asterisk can be used in place of or
|
||||
in conjunction with the *type* argument to specify a range of bond
|
||||
types. This takes the form "\*" or "\*n" or "n\*" or "m\*n". If N =
|
||||
the number of bond types, then an asterisk with no numeric values
|
||||
means all types from 1 to N. A leading asterisk means all types from
|
||||
1 to n (inclusive). A trailing asterisk means all types from n to N
|
||||
(inclusive). A middle asterisk means all types from m to n
|
||||
(inclusive).
|
||||
|
||||
The specified *color* can be a single color which is any of the 140
|
||||
pre-defined colors (see below) or a color name defined by the
|
||||
dump_modify color option. Or it can be two or more colors separated
|
||||
by a "/" character, e.g. red/green/blue. In the former case, that
|
||||
color is assigned to all the specified bond types. In the latter
|
||||
case, the list of colors are assigned in a round-robin fashion to each
|
||||
of the specified bond types.
|
||||
|
||||
----------
|
||||
|
||||
The *bdiam* keyword can be used with the dump image command, with its
|
||||
*bond* keyword, when its diam setting is *type*, to set the diameter
|
||||
that bonds of each type will be drawn in the image. The specified
|
||||
*type* should be an integer from 1 to Nbondtypes. As with the
|
||||
*bcolor* keyword, a wildcard asterisk can be used as part of the
|
||||
*type* argument to specify a range of bond types. The specified
|
||||
*diam* is the size in whatever distance :doc:`units <units>` you are
|
||||
using, e.g. Angstroms.
|
||||
|
||||
----------
|
||||
|
||||
The *bitrate* keyword can be used with the :doc:`dump movie
|
||||
<dump_image>` command to define the size of the resulting movie file
|
||||
and its quality via setting how many kbits per second are to be used
|
||||
for the movie file. Higher bitrates require less compression and will
|
||||
result in higher quality movies. The quality is also determined by
|
||||
the compression format and encoder. The default setting is 2000
|
||||
kbit/s, which will result in average quality with older compression
|
||||
formats.
|
||||
|
||||
.. note::
|
||||
|
||||
Not all movie file formats supported by dump movie allow the
|
||||
bitrate to be set. If not, the setting is silently ignored.
|
||||
|
||||
----------
|
||||
|
||||
The *boxcolor* keyword sets the color of the simulation box drawn
|
||||
around the atoms in each image as well as the color of processor
|
||||
sub-domain boundaries. See the "dump image box" command for how to
|
||||
specify that a box be drawn via the *box* keyword, and the sub-domain
|
||||
boundaries via the *subbox* keyword. The color name can be any of the
|
||||
140 pre-defined colors (see below) or a color name defined by the
|
||||
dump_modify color option.
|
||||
|
||||
----------
|
||||
|
||||
The *color* keyword allows definition of a new color name, in addition
|
||||
to the 140-predefined colors (see below), and associates 3
|
||||
red/green/blue RGB values with that color name. The color name can
|
||||
then be used with any other dump_modify keyword that takes a color
|
||||
name as a value. The RGB values should each be floating point values
|
||||
between 0.0 and 1.0 inclusive.
|
||||
|
||||
When a color name is converted to RGB values, the user-defined color
|
||||
names are searched first, then the 140 pre-defined color names. This
|
||||
means you can also use the *color* keyword to overwrite one of the
|
||||
pre-defined color names with new RBG values.
|
||||
|
||||
----------
|
||||
|
||||
The *framerate* keyword can be used with the :doc:`dump movie
|
||||
<dump_image>` command to define the duration of the resulting movie
|
||||
file. Movie files written by the dump *movie* command have a default
|
||||
frame rate of 24 frames per second and the images generated will be
|
||||
converted at that rate. Thus a sequence of 1000 dump images will
|
||||
result in a movie of about 42 seconds. To make a movie run longer you
|
||||
can either generate images more frequently or lower the frame rate.
|
||||
To speed a movie up, you can do the inverse. Using a frame rate
|
||||
higher than 24 is not recommended, as it will result in simply
|
||||
dropping the rendered images. It is more efficient to dump images less
|
||||
frequently.
|
||||
|
||||
----------
|
||||
|
||||
@ -664,7 +999,7 @@ Related commands
|
||||
Default
|
||||
"""""""
|
||||
|
||||
The defaults for the keywords are as follows:
|
||||
The defaults for the dump image and dump movie keywords are as follows:
|
||||
|
||||
* adiam = not specified (use diameter setting)
|
||||
* atom = yes
|
||||
@ -682,3 +1017,101 @@ The defaults for the keywords are as follows:
|
||||
* subbox no 0.0
|
||||
* shiny = 1.0
|
||||
* ssao = no
|
||||
|
||||
----------
|
||||
|
||||
The defaults for the dump_modify keywords specific to dump image and dump movie are as follows:
|
||||
|
||||
* acolor = \* red/green/blue/yellow/aqua/cyan
|
||||
* adiam = \* 1.0
|
||||
* amap = min max cf 0.0 2 min blue max red
|
||||
* backcolor = black
|
||||
* bcolor = \* red/green/blue/yellow/aqua/cyan
|
||||
* bdiam = \* 0.5
|
||||
* bitrate = 2000
|
||||
* boxcolor = yellow
|
||||
* color = 140 color names are pre-defined as listed below
|
||||
* framerate = 24
|
||||
|
||||
----------
|
||||
|
||||
These are the standard 109 element names that LAMMPS pre-defines for
|
||||
use with the dump image and dump_modify commands.
|
||||
|
||||
* 1-10 = "H", "He", "Li", "Be", "B", "C", "N", "O", "F", "Ne"
|
||||
* 11-20 = "Na", "Mg", "Al", "Si", "P", "S", "Cl", "Ar", "K", "Ca"
|
||||
* 21-30 = "Sc", "Ti", "V", "Cr", "Mn", "Fe", "Co", "Ni", "Cu", "Zn"
|
||||
* 31-40 = "Ga", "Ge", "As", "Se", "Br", "Kr", "Rb", "Sr", "Y", "Zr"
|
||||
* 41-50 = "Nb", "Mo", "Tc", "Ru", "Rh", "Pd", "Ag", "Cd", "In", "Sn"
|
||||
* 51-60 = "Sb", "Te", "I", "Xe", "Cs", "Ba", "La", "Ce", "Pr", "Nd"
|
||||
* 61-70 = "Pm", "Sm", "Eu", "Gd", "Tb", "Dy", "Ho", "Er", "Tm", "Yb"
|
||||
* 71-80 = "Lu", "Hf", "Ta", "W", "Re", "Os", "Ir", "Pt", "Au", "Hg"
|
||||
* 81-90 = "Tl", "Pb", "Bi", "Po", "At", "Rn", "Fr", "Ra", "Ac", "Th"
|
||||
* 91-100 = "Pa", "U", "Np", "Pu", "Am", "Cm", "Bk", "Cf", "Es", "Fm"
|
||||
* 101-109 = "Md", "No", "Lr", "Rf", "Db", "Sg", "Bh", "Hs", "Mt"
|
||||
|
||||
----------
|
||||
|
||||
These are the 140 colors that LAMMPS pre-defines for use with the dump
|
||||
image and dump_modify commands. Additional colors can be defined with
|
||||
the dump_modify color command. The 3 numbers listed for each name are
|
||||
the RGB (red/green/blue) values. Divide each value by 255 to get the
|
||||
equivalent 0.0 to 1.0 value.
|
||||
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| aliceblue = 240, 248, 255 | antiquewhite = 250, 235, 215 | aqua = 0, 255, 255 | aquamarine = 127, 255, 212 | azure = 240, 255, 255 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| beige = 245, 245, 220 | bisque = 255, 228, 196 | black = 0, 0, 0 | blanchedalmond = 255, 255, 205 | blue = 0, 0, 255 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| blueviolet = 138, 43, 226 | brown = 165, 42, 42 | burlywood = 222, 184, 135 | cadetblue = 95, 158, 160 | chartreuse = 127, 255, 0 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| chocolate = 210, 105, 30 | coral = 255, 127, 80 | cornflowerblue = 100, 149, 237 | cornsilk = 255, 248, 220 | crimson = 220, 20, 60 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| cyan = 0, 255, 255 | darkblue = 0, 0, 139 | darkcyan = 0, 139, 139 | darkgoldenrod = 184, 134, 11 | darkgray = 169, 169, 169 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| darkgreen = 0, 100, 0 | darkkhaki = 189, 183, 107 | darkmagenta = 139, 0, 139 | darkolivegreen = 85, 107, 47 | darkorange = 255, 140, 0 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| darkorchid = 153, 50, 204 | darkred = 139, 0, 0 | darksalmon = 233, 150, 122 | darkseagreen = 143, 188, 143 | darkslateblue = 72, 61, 139 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| darkslategray = 47, 79, 79 | darkturquoise = 0, 206, 209 | darkviolet = 148, 0, 211 | deeppink = 255, 20, 147 | deepskyblue = 0, 191, 255 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| dimgray = 105, 105, 105 | dodgerblue = 30, 144, 255 | firebrick = 178, 34, 34 | floralwhite = 255, 250, 240 | forestgreen = 34, 139, 34 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| fuchsia = 255, 0, 255 | gainsboro = 220, 220, 220 | ghostwhite = 248, 248, 255 | gold = 255, 215, 0 | goldenrod = 218, 165, 32 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| gray = 128, 128, 128 | green = 0, 128, 0 | greenyellow = 173, 255, 47 | honeydew = 240, 255, 240 | hotpink = 255, 105, 180 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| indianred = 205, 92, 92 | indigo = 75, 0, 130 | ivory = 255, 240, 240 | khaki = 240, 230, 140 | lavender = 230, 230, 250 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| lavenderblush = 255, 240, 245 | lawngreen = 124, 252, 0 | lemonchiffon = 255, 250, 205 | lightblue = 173, 216, 230 | lightcoral = 240, 128, 128 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| lightcyan = 224, 255, 255 | lightgoldenrodyellow = 250, 250, 210 | lightgreen = 144, 238, 144 | lightgrey = 211, 211, 211 | lightpink = 255, 182, 193 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| lightsalmon = 255, 160, 122 | lightseagreen = 32, 178, 170 | lightskyblue = 135, 206, 250 | lightslategray = 119, 136, 153 | lightsteelblue = 176, 196, 222 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| lightyellow = 255, 255, 224 | lime = 0, 255, 0 | limegreen = 50, 205, 50 | linen = 250, 240, 230 | magenta = 255, 0, 255 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| maroon = 128, 0, 0 | mediumaquamarine = 102, 205, 170 | mediumblue = 0, 0, 205 | mediumorchid = 186, 85, 211 | mediumpurple = 147, 112, 219 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| mediumseagreen = 60, 179, 113 | mediumslateblue = 123, 104, 238 | mediumspringgreen = 0, 250, 154 | mediumturquoise = 72, 209, 204 | mediumvioletred = 199, 21, 133 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| midnightblue = 25, 25, 112 | mintcream = 245, 255, 250 | mistyrose = 255, 228, 225 | moccasin = 255, 228, 181 | navajowhite = 255, 222, 173 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| navy = 0, 0, 128 | oldlace = 253, 245, 230 | olive = 128, 128, 0 | olivedrab = 107, 142, 35 | orange = 255, 165, 0 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| orangered = 255, 69, 0 | orchid = 218, 112, 214 | palegoldenrod = 238, 232, 170 | palegreen = 152, 251, 152 | paleturquoise = 175, 238, 238 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| palevioletred = 219, 112, 147 | papayawhip = 255, 239, 213 | peachpuff = 255, 239, 213 | peru = 205, 133, 63 | pink = 255, 192, 203 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| plum = 221, 160, 221 | powderblue = 176, 224, 230 | purple = 128, 0, 128 | red = 255, 0, 0 | rosybrown = 188, 143, 143 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| royalblue = 65, 105, 225 | saddlebrown = 139, 69, 19 | salmon = 250, 128, 114 | sandybrown = 244, 164, 96 | seagreen = 46, 139, 87 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| seashell = 255, 245, 238 | sienna = 160, 82, 45 | silver = 192, 192, 192 | skyblue = 135, 206, 235 | slateblue = 106, 90, 205 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| slategray = 112, 128, 144 | snow = 255, 250, 250 | springgreen = 0, 255, 127 | steelblue = 70, 130, 180 | tan = 210, 180, 140 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| teal = 0, 128, 128 | thistle = 216, 191, 216 | tomato = 253, 99, 71 | turquoise = 64, 224, 208 | violet = 238, 130, 238 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| wheat = 245, 222, 179 | white = 255, 255, 255 | whitesmoke = 245, 245, 245 | yellow = 255, 255, 0 | yellowgreen = 154, 205, 50 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
|
||||
@ -3,6 +3,9 @@
|
||||
dump_modify command
|
||||
===================
|
||||
|
||||
:doc:`dump_modify <dump_image>` command for image/movie options
|
||||
===============================================================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
@ -12,8 +15,9 @@ Syntax
|
||||
|
||||
* dump-ID = ID of dump to modify
|
||||
* one or more keyword/value pairs may be appended
|
||||
|
||||
* these keywords apply to various dump styles
|
||||
* keyword = *append* or *at* or *buffer* or *delay* or *element* or *every* or *fileper* or *first* or *flush* or *format* or *image* or *label* or *maxfiles* or *nfile* or *pad* or *pbc* or *precision* or *region* or *refresh* or *scale* or *sfactor* or *sort* or *tfactor* or *thermo* or *thresh* or *time* or *units* or *unwrap*
|
||||
* keyword = *append* or *at* or *buffer* or *delay* or *element* or *every* or *every/time* or *fileper* or *first* or *flush* or *format* or *header* or *image* or *label* or *maxfiles* or *nfile* or *pad* or *pbc* or *precision* or *region* or *refresh* or *scale* or *sfactor* or *sort* or *tfactor* or *thermo* or *thresh* or *time* or *units* or *unwrap*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -28,6 +32,9 @@ Syntax
|
||||
*every* arg = N
|
||||
N = dump every this many timesteps
|
||||
N can be a variable (see below)
|
||||
*every/time* arg = Delta
|
||||
Delta = dump every this interval in simulation time (time units)
|
||||
Delta can be a variable (see below)
|
||||
*fileper* arg = Np
|
||||
Np = write one file for every this many processors
|
||||
*first* arg = *yes* or *no*
|
||||
@ -35,6 +42,9 @@ Syntax
|
||||
*format* args = *line* string, *int* string, *float* string, M string, or *none*
|
||||
string = C-style format string
|
||||
M = integer from 1 to N, where N = # of per-atom quantities being output
|
||||
*header* arg = *yes* or *no*
|
||||
*yes* to write the header
|
||||
*no* to not write the header
|
||||
*image* arg = *yes* or *no*
|
||||
*label* arg = string
|
||||
string = character string (e.g. BONDS) to use in header of dump local file
|
||||
@ -66,56 +76,11 @@ Syntax
|
||||
*unwrap* arg = *yes* or *no*
|
||||
|
||||
* these keywords apply only to the *image* and *movie* :doc:`styles <dump_image>`
|
||||
* keyword = *acolor* or *adiam* or *amap* or *backcolor* or *bcolor* or *bdiam* or *boxcolor* or *color* or *bitrate* or *framerate* or *header*
|
||||
* keyword = *acolor* or *adiam* or *amap* or *backcolor* or *bcolor* or *bdiam* or *boxcolor* or *color* or *bitrate* or *framerate*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*acolor* args = type color
|
||||
type = atom type or range of types (see below)
|
||||
color = name of color or color1/color2/...
|
||||
*adiam* args = type diam
|
||||
type = atom type or range of types (see below)
|
||||
diam = diameter of atoms of that type (distance units)
|
||||
*amap* args = lo hi style delta N entry1 entry2 ... entryN
|
||||
lo = number or *min* = lower bound of range of color map
|
||||
hi = number or *max* = upper bound of range of color map
|
||||
style = 2 letters = "c" or "d" or "s" plus "a" or "f"
|
||||
"c" for continuous
|
||||
"d" for discrete
|
||||
"s" for sequential
|
||||
"a" for absolute
|
||||
"f" for fractional
|
||||
delta = binsize (only used for style "s", otherwise ignored)
|
||||
binsize = range is divided into bins of this width
|
||||
N = # of subsequent entries
|
||||
entry = value color (for continuous style)
|
||||
value = number or *min* or *max* = single value within range
|
||||
color = name of color used for that value
|
||||
entry = lo hi color (for discrete style)
|
||||
lo/hi = number or *min* or *max* = lower/upper bound of subset of range
|
||||
color = name of color used for that subset of values
|
||||
entry = color (for sequential style)
|
||||
color = name of color used for a bin of values
|
||||
*backcolor* arg = color
|
||||
color = name of color for background
|
||||
*bcolor* args = type color
|
||||
type = bond type or range of types (see below)
|
||||
color = name of color or color1/color2/...
|
||||
*bdiam* args = type diam
|
||||
type = bond type or range of types (see below)
|
||||
diam = diameter of bonds of that type (distance units)
|
||||
*boxcolor* arg = color
|
||||
color = name of color for simulation box lines and processor sub-domain lines
|
||||
*color* args = name R G B
|
||||
name = name of color
|
||||
R,G,B = red/green/blue numeric values from 0.0 to 1.0
|
||||
*bitrate* arg = rate
|
||||
rate = target bitrate for movie in kbps
|
||||
*framerate* arg = fps
|
||||
fps = frames per second for movie
|
||||
*header* arg = *yes* or *no*
|
||||
*yes* to write the header
|
||||
*no* to not write the header
|
||||
see the :doc:`dump image <dump_image>` doc page for details
|
||||
|
||||
* these keywords apply only to the */gz* and */zstd* dump styles
|
||||
* keyword = *compression_level*
|
||||
@ -126,7 +91,7 @@ Syntax
|
||||
level = integer specifying the compression level that should be used (see below for supported levels)
|
||||
|
||||
* these keywords apply only to the */zstd* dump styles
|
||||
* keyword = *compression_level*
|
||||
* keyword = *checksum*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -144,7 +109,6 @@ Examples
|
||||
dump_modify xtcdump precision 10000 sfactor 0.1
|
||||
dump_modify 1 every 1000 nfile 20
|
||||
dump_modify 1 every v_myVar
|
||||
dump_modify 1 amap min max cf 0.0 3 min green 0.5 yellow max blue boxcolor red
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
@ -163,8 +127,9 @@ which allow for use of MPI-IO.
|
||||
|
||||
----------
|
||||
|
||||
These keywords apply to various dump styles, including the :doc:`dump image <dump_image>` and :doc:`dump movie <dump_image>` styles. The
|
||||
description gives details.
|
||||
Unless otherwise noted, the following keywords apply to all the
|
||||
various dump styles, including the :doc:`dump image <dump_image>` and
|
||||
:doc:`dump movie <dump_image>` styles.
|
||||
|
||||
----------
|
||||
|
||||
@ -235,11 +200,19 @@ will be accepted.
|
||||
|
||||
----------
|
||||
|
||||
The *every* keyword changes the dump frequency originally specified by
|
||||
the :doc:`dump <dump>` command to a new value. The every keyword can be
|
||||
specified in one of two ways. It can be a numeric value in which case
|
||||
it must be > 0. Or it can be an :doc:`equal-style variable <variable>`,
|
||||
which should be specified as v_name, where name is the variable name.
|
||||
The *every* keyword can be used with any dump style except the *dcd*
|
||||
and *xtc* styles. It does two things. It specifies that the interval
|
||||
between dump snapshots will be set in timesteps, which is the default
|
||||
if the *every* or *every/time* keywords are not used. See the
|
||||
*every/time* keyword for how to specify the interval in simulation
|
||||
time, i.e. in time units of the :doc:`units <units>` command. The
|
||||
*every* keyword also sets the interval value, which overrides the dump
|
||||
frequency originally specified by the :doc:`dump <dump>` command.
|
||||
|
||||
The *every* keyword can be specified in one of two ways. It can be a
|
||||
numeric value in which case it must be > 0. Or it can be an
|
||||
:doc:`equal-style variable <variable>`, which should be specified as
|
||||
v_name, where name is the variable name.
|
||||
|
||||
In this case, the variable is evaluated at the beginning of a run to
|
||||
determine the next timestep at which a dump snapshot will be written
|
||||
@ -248,11 +221,12 @@ determine the next timestep, etc. Thus the variable should return
|
||||
timestep values. See the stagger() and logfreq() and stride() math
|
||||
functions for :doc:`equal-style variables <variable>`, as examples of
|
||||
useful functions to use in this context. Other similar math functions
|
||||
could easily be added as options for :doc:`equal-style variables <variable>`. Also see the next() function, which allows
|
||||
use of a file-style variable which reads successive values from a
|
||||
file, each time the variable is evaluated. Used with the *every*
|
||||
keyword, if the file contains a list of ascending timesteps, you can
|
||||
output snapshots whenever you wish.
|
||||
could easily be added as options for :doc:`equal-style variables
|
||||
<variable>`. Also see the next() function, which allows use of a
|
||||
file-style variable which reads successive values from a file, each
|
||||
time the variable is evaluated. Used with the *every* keyword, if the
|
||||
file contains a list of ascending timesteps, you can output snapshots
|
||||
whenever you wish.
|
||||
|
||||
Note that when using the variable option with the *every* keyword, you
|
||||
need to use the *first* option if you want an initial snapshot written
|
||||
@ -293,14 +267,103 @@ in file tmp.times:
|
||||
|
||||
----------
|
||||
|
||||
The *every/time* keyword can be used with any dump style except the
|
||||
*dcd* and *xtc* styles. It does two things. It specifies that the
|
||||
interval between dump snapshots will be set in simulation time,
|
||||
i.e. in time units of the :doc:`units <units>` command. This can be
|
||||
useful when the timestep size varies during a simulation run, e.g. by
|
||||
use of the :doc:`fix dt/reset <fix_dt_reset>` command. The default is
|
||||
to specify the interval in timesteps; see the *every* keyword. The
|
||||
*every/time* command also sets the interval value.
|
||||
|
||||
.. note::
|
||||
|
||||
If you wish dump styles *atom*, *custom*, *local*, or *xyz* to
|
||||
include the simulation time as a field in the header portion of
|
||||
each snapshot, you also need to use the dump_modify *time* keyword
|
||||
with a setting of *yes*. See its documentation below.
|
||||
|
||||
Note that since snapshots are output on simulation steps, each
|
||||
snapshot will be written on the first timestep whose associated
|
||||
simulation time is >= the exact snapshot time value.
|
||||
|
||||
As with the *every* option, the *Delta* value can be specified in one
|
||||
of two ways. It can be a numeric value in which case it must be >
|
||||
0.0. Or it can be an :doc:`equal-style variable <variable>`, which
|
||||
should be specified as v_name, where name is the variable name.
|
||||
|
||||
In this case, the variable is evaluated at the beginning of a run to
|
||||
determine the next simulation time at which a dump snapshot will be
|
||||
written out. On that timestep the variable will be evaluated again to
|
||||
determine the next simulation time, etc. Thus the variable should
|
||||
return values in time units. Note the current timestep or simulation
|
||||
time can be used in an :doc:`equal-style variables <variable>` since
|
||||
they are both thermodynamic keywords. Also see the next() function,
|
||||
which allows use of a file-style variable which reads successive
|
||||
values from a file, each time the variable is evaluated. Used with
|
||||
the *every/time* keyword, if the file contains a list of ascending
|
||||
simulation times, you can output snapshots whenever you wish.
|
||||
|
||||
Note that when using the variable option with the *every/time*
|
||||
keyword, you need to use the *first* option if you want an initial
|
||||
snapshot written to the dump file. The *every/time* keyword cannot be
|
||||
used with the dump *dcd* style.
|
||||
|
||||
For example, the following commands will write snapshots at successive
|
||||
simulation times which grow by a factor of 1.5 with each interval.
|
||||
The dt value used in the variable is to avoid a zero result when the
|
||||
initial simulation time is 0.0.
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
variable increase equal 1.5*(time+dt)
|
||||
dump 1 all atom 100 tmp.dump
|
||||
dump_modify 1 every/time v_increase first yes
|
||||
|
||||
The following commands would write snapshots at the times listed in
|
||||
file tmp.times:
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
variable f file tmp.times
|
||||
variable s equal next(f)
|
||||
dump 1 all atom 100 tmp.dump
|
||||
dump_modify 1 every/time v_s
|
||||
|
||||
.. note::
|
||||
|
||||
When using a file-style variable with the *every/time* keyword, the
|
||||
file of timesteps must list a first time that is beyond the time
|
||||
associated with the current timestep (e.g. it cannot be 0.0). And
|
||||
it must list one or more times beyond the length of the run you
|
||||
perform. This is because the dump command will generate an error
|
||||
if the next time it reads from the file is not a value greater than
|
||||
the current time. Thus if you wanted output at times 0,15,100 of a
|
||||
run of length 100 in simulation time, the file should contain the
|
||||
values 15,100,101 and you should also use the dump_modify first
|
||||
command. Any final value > 100 could be used in place of 101.
|
||||
|
||||
----------
|
||||
|
||||
The *first* keyword determines whether a dump snapshot is written on
|
||||
the very first timestep after the dump command is invoked. This will
|
||||
always occur if the current timestep is a multiple of N, the frequency
|
||||
specified in the :doc:`dump <dump>` command, including timestep 0. But
|
||||
if this is not the case, a dump snapshot will only be written if the
|
||||
setting of this keyword is *yes*\ . If it is *no*, which is the
|
||||
always occur if the current timestep is a multiple of $N$, the
|
||||
frequency specified in the :doc:`dump <dump>` command or
|
||||
:doc:`dump_modify every <dump_modify>` command, including timestep 0.
|
||||
It will also always occur if the current simulation time is a multiple
|
||||
of *Delta*, the time interval specified in the doc:`dump_modify
|
||||
every/time <dump_modify>` command.
|
||||
|
||||
But if this is not the case, a dump snapshot will only be written if
|
||||
the setting of this keyword is *yes*\ . If it is *no*, which is the
|
||||
default, then it will not be written.
|
||||
|
||||
Note that if the argument to the :doc:`dump_modify every
|
||||
<dump_modify>` doc:`dump_modify every/time <dump_modify>` commands is
|
||||
a variable and not a numeric value, then specifying *first yes* is the
|
||||
only way to write a dump snapshot on the first timestep after the dump
|
||||
command is invoked.
|
||||
|
||||
----------
|
||||
|
||||
The *flush* keyword determines whether a flush operation is invoked
|
||||
@ -380,6 +443,13 @@ The *fileper* keyword is documented below with the *nfile* keyword.
|
||||
|
||||
----------
|
||||
|
||||
The *header* keyword toggles whether the dump file will include a
|
||||
header. Excluding a header will reduce the size of the dump file for
|
||||
fixes such as :doc:`fix pair/tracker <fix_pair_tracker>` which do not
|
||||
require the information typically written to the header.
|
||||
|
||||
----------
|
||||
|
||||
The *image* keyword applies only to the dump *atom* style. If the
|
||||
image value is *yes*, 3 flags are appended to each atom's coords which
|
||||
are the absolute box image of the atom in each dimension. For
|
||||
@ -592,7 +662,9 @@ The dump *local* style cannot be sorted by atom ID, since there are
|
||||
typically multiple lines of output per atom. Some dump styles, such
|
||||
as *dcd* and *xtc*, require sorting by atom ID to format the output
|
||||
file correctly. If multiple processors are writing the dump file, via
|
||||
the "%" wildcard in the dump filename, then sorting cannot be
|
||||
the "%" wildcard in the dump filename and the *nfile* or *fileper*
|
||||
keywords are set to non-default values (i.e. the number of dump file
|
||||
pieces is not equal to the number of procs), then sorting cannot be
|
||||
performed.
|
||||
|
||||
.. note::
|
||||
@ -670,16 +742,20 @@ threshold criterion is met. Otherwise it is not met.
|
||||
|
||||
----------
|
||||
|
||||
The *time* keyword only applies to the dump *atom*, *custom*, and
|
||||
*local* styles (and their COMPRESS package versions *atom/gz*,
|
||||
*custom/gz* and *local/gz*\ ). If set to *yes*, each frame will will
|
||||
contain two extra lines before the "ITEM: TIMESTEP" entry:
|
||||
The *time* keyword only applies to the dump *atom*, *custom*, *local*,
|
||||
and *xyz* styles (and their COMPRESS package versions *atom/gz*,
|
||||
*custom/gz* and *local/gz*\ ). For the first 3 styles, if set to
|
||||
*yes*, each frame will will contain two extra lines before the "ITEM:
|
||||
TIMESTEP" entry:
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
ITEM: TIME
|
||||
\<elapsed time\>
|
||||
|
||||
For the *xyz* style, the simulation time is included on the same line
|
||||
as the timestep value.
|
||||
|
||||
This will output the current elapsed simulation time in current
|
||||
time units equivalent to the :doc:`thermo keyword <thermo_style>` *time*\ .
|
||||
This is to simplify post-processing of trajectories using a variable time
|
||||
@ -715,303 +791,35 @@ box size stored with the snapshot.
|
||||
|
||||
----------
|
||||
|
||||
These keywords apply only to the :doc:`dump image <dump_image>` and
|
||||
:doc:`dump movie <dump_image>` styles. Any keyword that affects an
|
||||
image, also affects a movie, since the movie is simply a collection of
|
||||
images. Some of the keywords only affect the :doc:`dump movie <dump_image>` style. The descriptions give details.
|
||||
The COMPRESS package offers both GZ and Zstd compression variants of
|
||||
styles atom, custom, local, cfg, and xyz. When using these styles the
|
||||
compression level can be controlled by the :code:`compression_level`
|
||||
keyword. File names with these styles have to end in either
|
||||
:code:`.gz` or :code:`.zst`.
|
||||
|
||||
----------
|
||||
|
||||
The *acolor* keyword can be used with the :doc:`dump image <dump_image>`
|
||||
command, when its atom color setting is *type*, to set the color that
|
||||
atoms of each type will be drawn in the image.
|
||||
|
||||
The specified *type* should be an integer from 1 to Ntypes = the
|
||||
number of atom types. A wildcard asterisk can be used in place of or
|
||||
in conjunction with the *type* argument to specify a range of atom
|
||||
types. This takes the form "\*" or "\*n" or "n\*" or "m\*n". If N = the
|
||||
number of atom types, then an asterisk with no numeric values means
|
||||
all types from 1 to N. A leading asterisk means all types from 1 to n
|
||||
(inclusive). A trailing asterisk means all types from n to N
|
||||
(inclusive). A middle asterisk means all types from m to n
|
||||
(inclusive).
|
||||
|
||||
The specified *color* can be a single color which is any of the 140
|
||||
pre-defined colors (see below) or a color name defined by the
|
||||
dump_modify color option. Or it can be two or more colors separated
|
||||
by a "/" character, e.g. red/green/blue. In the former case, that
|
||||
color is assigned to all the specified atom types. In the latter
|
||||
case, the list of colors are assigned in a round-robin fashion to each
|
||||
of the specified atom types.
|
||||
|
||||
----------
|
||||
|
||||
The *adiam* keyword can be used with the :doc:`dump image <dump_image>`
|
||||
command, when its atom diameter setting is *type*, to set the size
|
||||
that atoms of each type will be drawn in the image. The specified
|
||||
*type* should be an integer from 1 to Ntypes. As with the *acolor*
|
||||
keyword, a wildcard asterisk can be used as part of the *type*
|
||||
argument to specify a range of atom types. The specified *diam* is
|
||||
the size in whatever distance :doc:`units <units>` the input script is
|
||||
using, e.g. Angstroms.
|
||||
|
||||
----------
|
||||
|
||||
The *amap* keyword can be used with the :doc:`dump image <dump_image>`
|
||||
command, with its *atom* keyword, when its atom setting is an
|
||||
atom-attribute, to setup a color map. The color map is used to assign
|
||||
a specific RGB (red/green/blue) color value to an individual atom when
|
||||
it is drawn, based on the atom's attribute, which is a numeric value,
|
||||
e.g. its x-component of velocity if the atom-attribute "vx" was
|
||||
specified.
|
||||
|
||||
The basic idea of a color map is that the atom-attribute will be
|
||||
within a range of values, and that range is associated with a series
|
||||
of colors (e.g. red, blue, green). An atom's specific value (vx =
|
||||
-3.2) can then mapped to the series of colors (e.g. halfway between
|
||||
red and blue), and a specific color is determined via an interpolation
|
||||
procedure.
|
||||
|
||||
There are many possible options for the color map, enabled by the
|
||||
*amap* keyword. Here are the details.
|
||||
|
||||
The *lo* and *hi* settings determine the range of values allowed for
|
||||
the atom attribute. If numeric values are used for *lo* and/or *hi*,
|
||||
then values that are lower/higher than that value are set to the
|
||||
value. I.e. the range is static. If *lo* is specified as *min* or
|
||||
*hi* as *max* then the range is dynamic, and the lower and/or
|
||||
upper bound will be calculated each time an image is drawn, based
|
||||
on the set of atoms being visualized.
|
||||
|
||||
The *style* setting is two letters, such as "ca". The first letter is
|
||||
either "c" for continuous, "d" for discrete, or "s" for sequential.
|
||||
The second letter is either "a" for absolute, or "f" for fractional.
|
||||
|
||||
A continuous color map is one in which the color changes continuously
|
||||
from value to value within the range. A discrete color map is one in
|
||||
which discrete colors are assigned to sub-ranges of values within the
|
||||
range. A sequential color map is one in which discrete colors are
|
||||
assigned to a sequence of sub-ranges of values covering the entire
|
||||
range.
|
||||
|
||||
An absolute color map is one in which the values to which colors are
|
||||
assigned are specified explicitly as values within the range. A
|
||||
fractional color map is one in which the values to which colors are
|
||||
assigned are specified as a fractional portion of the range. For
|
||||
example if the range is from -10.0 to 10.0, and the color red is to be
|
||||
assigned to atoms with a value of 5.0, then for an absolute color map
|
||||
the number 5.0 would be used. But for a fractional map, the number
|
||||
0.75 would be used since 5.0 is 3/4 of the way from -10.0 to 10.0.
|
||||
|
||||
The *delta* setting must be specified for all styles, but is only used
|
||||
for the sequential style; otherwise the value is ignored. It
|
||||
specifies the bin size to use within the range for assigning
|
||||
consecutive colors to. For example, if the range is from -10.0 to
|
||||
10.0 and a *delta* of 1.0 is used, then 20 colors will be assigned to
|
||||
the range. The first will be from -10.0 <= color1 < -9.0, then second
|
||||
from -9.0 <= color2 < -8.0, etc.
|
||||
|
||||
The *N* setting is how many entries follow. The format of the entries
|
||||
depends on whether the color map style is continuous, discrete or
|
||||
sequential. In all cases the *color* setting can be any of the 140
|
||||
pre-defined colors (see below) or a color name defined by the
|
||||
dump_modify color option.
|
||||
|
||||
For continuous color maps, each entry has a *value* and a *color*\ .
|
||||
The *value* is either a number within the range of values or *min* or
|
||||
*max*\ . The *value* of the first entry must be *min* and the *value*
|
||||
of the last entry must be *max*\ . Any entries in between must have
|
||||
increasing values. Note that numeric values can be specified either
|
||||
as absolute numbers or as fractions (0.0 to 1.0) of the range,
|
||||
depending on the "a" or "f" in the style setting for the color map.
|
||||
|
||||
Here is how the entries are used to determine the color of an
|
||||
individual atom, given the value X of its atom attribute. X will fall
|
||||
between 2 of the entry values. The color of the atom is linearly
|
||||
interpolated (in each of the RGB values) between the 2 colors
|
||||
associated with those entries. For example, if X = -5.0 and the 2
|
||||
surrounding entries are "red" at -10.0 and "blue" at 0.0, then the
|
||||
atom's color will be halfway between "red" and "blue", which happens
|
||||
to be "purple".
|
||||
|
||||
For discrete color maps, each entry has a *lo* and *hi* value and a
|
||||
*color*\ . The *lo* and *hi* settings are either numbers within the
|
||||
range of values or *lo* can be *min* or *hi* can be *max*\ . The *lo*
|
||||
and *hi* settings of the last entry must be *min* and *max*\ . Other
|
||||
entries can have any *lo* and *hi* values and the sub-ranges of
|
||||
different values can overlap. Note that numeric *lo* and *hi* values
|
||||
can be specified either as absolute numbers or as fractions (0.0 to
|
||||
1.0) of the range, depending on the "a" or "f" in the style setting
|
||||
for the color map.
|
||||
|
||||
Here is how the entries are used to determine the color of an
|
||||
individual atom, given the value X of its atom attribute. The entries
|
||||
are scanned from first to last. The first time that *lo* <= X <=
|
||||
*hi*, X is assigned the color associated with that entry. You can
|
||||
think of the last entry as assigning a default color (since it will
|
||||
always be matched by X), and the earlier entries as colors that
|
||||
override the default. Also note that no interpolation of a color RGB
|
||||
is done. All atoms will be drawn with one of the colors in the list
|
||||
of entries.
|
||||
|
||||
For sequential color maps, each entry has only a *color*\ . Here is how
|
||||
the entries are used to determine the color of an individual atom,
|
||||
given the value X of its atom attribute. The range is partitioned
|
||||
into N bins of width *binsize*\ . Thus X will fall in a specific bin
|
||||
from 1 to N, say the Mth bin. If it falls on a boundary between 2
|
||||
bins, it is considered to be in the higher of the 2 bins. Each bin is
|
||||
assigned a color from the E entries. If E < N, then the colors are
|
||||
repeated. For example if 2 entries with colors red and green are
|
||||
specified, then the odd numbered bins will be red and the even bins
|
||||
green. The color of the atom is the color of its bin. Note that the
|
||||
sequential color map is really a shorthand way of defining a discrete
|
||||
color map without having to specify where all the bin boundaries are.
|
||||
|
||||
Here is an example of using a sequential color map to color all the
|
||||
atoms in individual molecules with a different color. See the
|
||||
examples/pour/in.pour.2d.molecule input script for an example of how
|
||||
this is used.
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
variable colors string &
|
||||
"red green blue yellow white &
|
||||
purple pink orange lime gray"
|
||||
variable mol atom mol%10
|
||||
dump 1 all image 250 image.*.jpg v_mol type &
|
||||
zoom 1.6 adiam 1.5
|
||||
dump_modify 1 pad 5 amap 0 10 sa 1 10 ${colors}
|
||||
|
||||
In this case, 10 colors are defined, and molecule IDs are
|
||||
mapped to one of the colors, even if there are 1000s of molecules.
|
||||
|
||||
----------
|
||||
|
||||
The *backcolor* sets the background color of the images. The color
|
||||
name can be any of the 140 pre-defined colors (see below) or a color
|
||||
name defined by the dump_modify color option.
|
||||
|
||||
----------
|
||||
|
||||
The *bcolor* keyword can be used with the :doc:`dump image <dump_image>`
|
||||
command, with its *bond* keyword, when its color setting is *type*, to
|
||||
set the color that bonds of each type will be drawn in the image.
|
||||
|
||||
The specified *type* should be an integer from 1 to Nbondtypes = the
|
||||
number of bond types. A wildcard asterisk can be used in place of or
|
||||
in conjunction with the *type* argument to specify a range of bond
|
||||
types. This takes the form "\*" or "\*n" or "n\*" or "m\*n". If N = the
|
||||
number of bond types, then an asterisk with no numeric values means
|
||||
all types from 1 to N. A leading asterisk means all types from 1 to n
|
||||
(inclusive). A trailing asterisk means all types from n to N
|
||||
(inclusive). A middle asterisk means all types from m to n
|
||||
(inclusive).
|
||||
|
||||
The specified *color* can be a single color which is any of the 140
|
||||
pre-defined colors (see below) or a color name defined by the
|
||||
dump_modify color option. Or it can be two or more colors separated
|
||||
by a "/" character, e.g. red/green/blue. In the former case, that
|
||||
color is assigned to all the specified bond types. In the latter
|
||||
case, the list of colors are assigned in a round-robin fashion to each
|
||||
of the specified bond types.
|
||||
|
||||
----------
|
||||
|
||||
The *bdiam* keyword can be used with the :doc:`dump image <dump_image>`
|
||||
command, with its *bond* keyword, when its diam setting is *type*, to
|
||||
set the diameter that bonds of each type will be drawn in the image.
|
||||
The specified *type* should be an integer from 1 to Nbondtypes. As
|
||||
with the *bcolor* keyword, a wildcard asterisk can be used as part of
|
||||
the *type* argument to specify a range of bond types. The specified
|
||||
*diam* is the size in whatever distance :doc:`units <units>` you are
|
||||
using, e.g. Angstroms.
|
||||
|
||||
----------
|
||||
|
||||
The *bitrate* keyword can be used with the :doc:`dump movie <dump_image>` command to define the size of the resulting
|
||||
movie file and its quality via setting how many kbits per second are
|
||||
to be used for the movie file. Higher bitrates require less
|
||||
compression and will result in higher quality movies. The quality is
|
||||
also determined by the compression format and encoder. The default
|
||||
setting is 2000 kbit/s, which will result in average quality with
|
||||
older compression formats.
|
||||
|
||||
.. note::
|
||||
|
||||
Not all movie file formats supported by dump movie allow the
|
||||
bitrate to be set. If not, the setting is silently ignored.
|
||||
|
||||
----------
|
||||
|
||||
The *boxcolor* keyword sets the color of the simulation box drawn
|
||||
around the atoms in each image as well as the color of processor
|
||||
sub-domain boundaries. See the "dump image box" command for how to
|
||||
specify that a box be drawn via the *box* keyword, and the sub-domain
|
||||
boundaries via the *subbox* keyword. The color name can be any of the
|
||||
140 pre-defined colors (see below) or a color name defined by the
|
||||
dump_modify color option.
|
||||
|
||||
----------
|
||||
|
||||
The *color* keyword allows definition of a new color name, in addition
|
||||
to the 140-predefined colors (see below), and associates 3
|
||||
red/green/blue RGB values with that color name. The color name can
|
||||
then be used with any other dump_modify keyword that takes a color
|
||||
name as a value. The RGB values should each be floating point values
|
||||
between 0.0 and 1.0 inclusive.
|
||||
|
||||
When a color name is converted to RGB values, the user-defined color
|
||||
names are searched first, then the 140 pre-defined color names. This
|
||||
means you can also use the *color* keyword to overwrite one of the
|
||||
pre-defined color names with new RBG values.
|
||||
|
||||
----------
|
||||
|
||||
The *framerate* keyword can be used with the :doc:`dump movie <dump_image>` command to define the duration of the resulting
|
||||
movie file. Movie files written by the dump *movie* command have a
|
||||
default frame rate of 24 frames per second and the images generated
|
||||
will be converted at that rate. Thus a sequence of 1000 dump images
|
||||
will result in a movie of about 42 seconds. To make a movie run
|
||||
longer you can either generate images more frequently or lower the
|
||||
frame rate. To speed a movie up, you can do the inverse. Using a
|
||||
frame rate higher than 24 is not recommended, as it will result in
|
||||
simply dropping the rendered images. It is more efficient to dump
|
||||
images less frequently.
|
||||
|
||||
----------
|
||||
|
||||
The *header* keyword toggles whether the dump file will include a header.
|
||||
Excluding a header will reduce the size of the dump file for fixes such as
|
||||
:doc:`fix pair/tracker <fix_pair_tracker>` which do not require the information
|
||||
typically written to the header.
|
||||
|
||||
----------
|
||||
|
||||
The COMPRESS package offers both GZ and Zstd compression variants of styles
|
||||
atom, custom, local, cfg, and xyz. When using these styles the compression
|
||||
level can be controlled by the :code:`compression_level` parameter. File names
|
||||
with these styles have to end in either :code:`.gz` or :code:`.zst`.
|
||||
|
||||
GZ supports compression levels from -1 (default), 0 (no compression), and 1 to
|
||||
9. 9 being the best compression. The COMPRESS :code:`/gz` styles use 9 as
|
||||
default compression level.
|
||||
GZ supports compression levels from -1 (default), 0 (no compression),
|
||||
and 1 to
|
||||
9. 9 being the best compression. The COMPRESS :code:`/gz` styles use 9
|
||||
as default compression level.
|
||||
|
||||
Zstd offers a wider range of compression levels, including negative
|
||||
levels that sacrifice compression for performance. 0 is the
|
||||
default, positive levels are 1 to 22, with 22 being the most expensive
|
||||
levels that sacrifice compression for performance. 0 is the default,
|
||||
positive levels are 1 to 22, with 22 being the most expensive
|
||||
compression. Zstd promises higher compression/decompression speeds for
|
||||
similar compression ratios. For more details see
|
||||
`http://facebook.github.io/zstd/`.
|
||||
|
||||
In addition, Zstd compressed files can have a checksum of the entire
|
||||
contents. The Zstd enabled dump styles enable this feature by default and it
|
||||
can be disabled with the :code:`checksum` parameter.
|
||||
In addition, Zstd compressed files can include a checksum of the
|
||||
entire contents. The Zstd enabled dump styles enable this feature by
|
||||
default and it can be disabled with the :code:`checksum` keyword.
|
||||
|
||||
----------
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
none
|
||||
|
||||
Not all *dump_modify* options can be applied to all dump styles.
|
||||
Details are in the discussions of the individual options.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
@ -1046,100 +854,7 @@ The option defaults are
|
||||
* units = no
|
||||
* unwrap = no
|
||||
|
||||
* acolor = \* red/green/blue/yellow/aqua/cyan
|
||||
* adiam = \* 1.0
|
||||
* amap = min max cf 0.0 2 min blue max red
|
||||
* backcolor = black
|
||||
* bcolor = \* red/green/blue/yellow/aqua/cyan
|
||||
* bdiam = \* 0.5
|
||||
* bitrate = 2000
|
||||
* boxcolor = yellow
|
||||
* color = 140 color names are pre-defined as listed below
|
||||
* framerate = 24
|
||||
|
||||
* compression_level = 9 (gz variants)
|
||||
* compression_level = 0 (zstd variants)
|
||||
* checksum = yes (zstd variants)
|
||||
|
||||
----------
|
||||
|
||||
These are the standard 109 element names that LAMMPS pre-defines for
|
||||
use with the :doc:`dump image <dump_image>` and dump_modify commands.
|
||||
|
||||
* 1-10 = "H", "He", "Li", "Be", "B", "C", "N", "O", "F", "Ne"
|
||||
* 11-20 = "Na", "Mg", "Al", "Si", "P", "S", "Cl", "Ar", "K", "Ca"
|
||||
* 21-30 = "Sc", "Ti", "V", "Cr", "Mn", "Fe", "Co", "Ni", "Cu", "Zn"
|
||||
* 31-40 = "Ga", "Ge", "As", "Se", "Br", "Kr", "Rb", "Sr", "Y", "Zr"
|
||||
* 41-50 = "Nb", "Mo", "Tc", "Ru", "Rh", "Pd", "Ag", "Cd", "In", "Sn"
|
||||
* 51-60 = "Sb", "Te", "I", "Xe", "Cs", "Ba", "La", "Ce", "Pr", "Nd"
|
||||
* 61-70 = "Pm", "Sm", "Eu", "Gd", "Tb", "Dy", "Ho", "Er", "Tm", "Yb"
|
||||
* 71-80 = "Lu", "Hf", "Ta", "W", "Re", "Os", "Ir", "Pt", "Au", "Hg"
|
||||
* 81-90 = "Tl", "Pb", "Bi", "Po", "At", "Rn", "Fr", "Ra", "Ac", "Th"
|
||||
* 91-100 = "Pa", "U", "Np", "Pu", "Am", "Cm", "Bk", "Cf", "Es", "Fm"
|
||||
* 101-109 = "Md", "No", "Lr", "Rf", "Db", "Sg", "Bh", "Hs", "Mt"
|
||||
|
||||
----------
|
||||
|
||||
These are the 140 colors that LAMMPS pre-defines for use with the
|
||||
:doc:`dump image <dump_image>` and dump_modify commands. Additional
|
||||
colors can be defined with the dump_modify color command. The 3
|
||||
numbers listed for each name are the RGB (red/green/blue) values.
|
||||
Divide each value by 255 to get the equivalent 0.0 to 1.0 value.
|
||||
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| aliceblue = 240, 248, 255 | antiquewhite = 250, 235, 215 | aqua = 0, 255, 255 | aquamarine = 127, 255, 212 | azure = 240, 255, 255 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| beige = 245, 245, 220 | bisque = 255, 228, 196 | black = 0, 0, 0 | blanchedalmond = 255, 255, 205 | blue = 0, 0, 255 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| blueviolet = 138, 43, 226 | brown = 165, 42, 42 | burlywood = 222, 184, 135 | cadetblue = 95, 158, 160 | chartreuse = 127, 255, 0 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| chocolate = 210, 105, 30 | coral = 255, 127, 80 | cornflowerblue = 100, 149, 237 | cornsilk = 255, 248, 220 | crimson = 220, 20, 60 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| cyan = 0, 255, 255 | darkblue = 0, 0, 139 | darkcyan = 0, 139, 139 | darkgoldenrod = 184, 134, 11 | darkgray = 169, 169, 169 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| darkgreen = 0, 100, 0 | darkkhaki = 189, 183, 107 | darkmagenta = 139, 0, 139 | darkolivegreen = 85, 107, 47 | darkorange = 255, 140, 0 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| darkorchid = 153, 50, 204 | darkred = 139, 0, 0 | darksalmon = 233, 150, 122 | darkseagreen = 143, 188, 143 | darkslateblue = 72, 61, 139 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| darkslategray = 47, 79, 79 | darkturquoise = 0, 206, 209 | darkviolet = 148, 0, 211 | deeppink = 255, 20, 147 | deepskyblue = 0, 191, 255 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| dimgray = 105, 105, 105 | dodgerblue = 30, 144, 255 | firebrick = 178, 34, 34 | floralwhite = 255, 250, 240 | forestgreen = 34, 139, 34 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| fuchsia = 255, 0, 255 | gainsboro = 220, 220, 220 | ghostwhite = 248, 248, 255 | gold = 255, 215, 0 | goldenrod = 218, 165, 32 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| gray = 128, 128, 128 | green = 0, 128, 0 | greenyellow = 173, 255, 47 | honeydew = 240, 255, 240 | hotpink = 255, 105, 180 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| indianred = 205, 92, 92 | indigo = 75, 0, 130 | ivory = 255, 240, 240 | khaki = 240, 230, 140 | lavender = 230, 230, 250 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| lavenderblush = 255, 240, 245 | lawngreen = 124, 252, 0 | lemonchiffon = 255, 250, 205 | lightblue = 173, 216, 230 | lightcoral = 240, 128, 128 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| lightcyan = 224, 255, 255 | lightgoldenrodyellow = 250, 250, 210 | lightgreen = 144, 238, 144 | lightgrey = 211, 211, 211 | lightpink = 255, 182, 193 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| lightsalmon = 255, 160, 122 | lightseagreen = 32, 178, 170 | lightskyblue = 135, 206, 250 | lightslategray = 119, 136, 153 | lightsteelblue = 176, 196, 222 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| lightyellow = 255, 255, 224 | lime = 0, 255, 0 | limegreen = 50, 205, 50 | linen = 250, 240, 230 | magenta = 255, 0, 255 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| maroon = 128, 0, 0 | mediumaquamarine = 102, 205, 170 | mediumblue = 0, 0, 205 | mediumorchid = 186, 85, 211 | mediumpurple = 147, 112, 219 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| mediumseagreen = 60, 179, 113 | mediumslateblue = 123, 104, 238 | mediumspringgreen = 0, 250, 154 | mediumturquoise = 72, 209, 204 | mediumvioletred = 199, 21, 133 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| midnightblue = 25, 25, 112 | mintcream = 245, 255, 250 | mistyrose = 255, 228, 225 | moccasin = 255, 228, 181 | navajowhite = 255, 222, 173 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| navy = 0, 0, 128 | oldlace = 253, 245, 230 | olive = 128, 128, 0 | olivedrab = 107, 142, 35 | orange = 255, 165, 0 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| orangered = 255, 69, 0 | orchid = 218, 112, 214 | palegoldenrod = 238, 232, 170 | palegreen = 152, 251, 152 | paleturquoise = 175, 238, 238 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| palevioletred = 219, 112, 147 | papayawhip = 255, 239, 213 | peachpuff = 255, 239, 213 | peru = 205, 133, 63 | pink = 255, 192, 203 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| plum = 221, 160, 221 | powderblue = 176, 224, 230 | purple = 128, 0, 128 | red = 255, 0, 0 | rosybrown = 188, 143, 143 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| royalblue = 65, 105, 225 | saddlebrown = 139, 69, 19 | salmon = 250, 128, 114 | sandybrown = 244, 164, 96 | seagreen = 46, 139, 87 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| seashell = 255, 245, 238 | sienna = 160, 82, 45 | silver = 192, 192, 192 | skyblue = 135, 206, 235 | slateblue = 106, 90, 205 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| slategray = 112, 128, 144 | snow = 255, 250, 250 | springgreen = 0, 255, 127 | steelblue = 70, 130, 180 | tan = 210, 180, 140 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| teal = 0, 128, 128 | thistle = 216, 191, 216 | tomato = 253, 99, 71 | turquoise = 64, 224, 208 | violet = 238, 130, 238 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
| wheat = 245, 222, 179 | white = 255, 255, 255 | whitesmoke = 245, 245, 245 | yellow = 255, 255, 0 | yellowgreen = 154, 205, 50 |
|
||||
+-------------------------------+--------------------------------------+---------------------------------+--------------------------------+--------------------------------+
|
||||
|
||||
@ -99,7 +99,7 @@ invoked by the :doc:`minimize <minimize>` command.
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This fix is part of the MISC package. It is only enabled if
|
||||
This fix is part of the EXTRA-FIX package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package
|
||||
<Build_package>` page for more info.
|
||||
|
||||
|
||||
@ -78,13 +78,20 @@ outer loop (largest) timestep, which is the same timestep that the
|
||||
|
||||
Note that the cumulative simulation time (in time units), which
|
||||
accounts for changes in the timestep size as a simulation proceeds,
|
||||
can be accessed by the :doc:`thermo_style time <thermo_style>` keyword.
|
||||
can be accessed by the :doc:`thermo_style time <thermo_style>`
|
||||
keyword.
|
||||
|
||||
Also note that the :doc:`dump_modify every/time <dump_modify>` option
|
||||
allows dump files to be written at intervals specified by simulation
|
||||
time, rather than by timesteps. Simulation time is in time units;
|
||||
see the :doc:`units <units>` doc page for details.
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
No information about this fix is written to :doc:`binary restart files <restart>`. None of the :doc:`fix_modify <fix_modify>` options
|
||||
are relevant to this fix.
|
||||
No information about this fix is written to :doc:`binary restart files
|
||||
<restart>`. None of the :doc:`fix_modify <fix_modify>` options are
|
||||
relevant to this fix.
|
||||
|
||||
This fix computes a global scalar which can be accessed by various
|
||||
:doc:`output commands <Howto_output>`. The scalar stores the last
|
||||
@ -93,7 +100,8 @@ timestep on which the timestep was reset to a new value.
|
||||
The scalar value calculated by this fix is "intensive".
|
||||
|
||||
No parameter of this fix can be used with the *start/stop* keywords of
|
||||
the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minimization <minimize>`.
|
||||
the :doc:`run <run>` command. This fix is not invoked during
|
||||
:doc:`energy minimization <minimize>`.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
@ -102,7 +110,7 @@ Restrictions
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`timestep <timestep>`
|
||||
:doc:`timestep <timestep>`, :doc:`dump_modify every/time <dump_modify>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
@ -40,7 +40,7 @@ Example input scripts available: examples/PACKAGES/drude
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Apply two Langevin thermostats as described in :ref:`(Jiang) <Jiang1>` for
|
||||
Apply two Langevin thermostats as described in :ref:`(Jiang1) <Jiang1>` for
|
||||
thermalizing the reduced degrees of freedom of Drude oscillators.
|
||||
This link describes how to use the :doc:`thermalized Drude oscillator model <Howto_drude>` in LAMMPS and polarizable models in LAMMPS
|
||||
are discussed on the :doc:`Howto polarizable <Howto_polarizable>` doc
|
||||
@ -300,5 +300,5 @@ The option defaults are zero = no.
|
||||
|
||||
.. _Jiang1:
|
||||
|
||||
**(Jiang)** Jiang, Hardy, Phillips, MacKerell, Schulten, and Roux, J
|
||||
**(Jiang1)** Jiang, Hardy, Phillips, MacKerell, Schulten, and Roux, J
|
||||
Phys Chem Lett, 2, 87-92 (2011).
|
||||
|
||||
@ -51,7 +51,7 @@ the :doc:`run <run>` command. This fix is not invoked during :doc:`energy minim
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This fix is part of the MISC package. It is only enabled if LAMMPS
|
||||
This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS
|
||||
was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
||||
|
||||
Related commands
|
||||
|
||||
@ -144,7 +144,7 @@ the :doc:`run <run>` command. This fix is not invoked during
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
This fix is part of the MISC package. It is only enabled if
|
||||
This fix is part of the EXTRA-FIX package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` page for more info.
|
||||
|
||||
Related commands
|
||||
|
||||
@ -310,7 +310,7 @@ Forschungszentrum Juelich.
|
||||
|
||||
The library is available for download at "http://scafacos.de" or can
|
||||
be cloned from the git-repository
|
||||
"git://github.com/scafacos/scafacos.git".
|
||||
"https://github.com/scafacos/scafacos.git".
|
||||
|
||||
In order to use this KSpace style, you must download and build the
|
||||
ScaFaCoS library, then build LAMMPS with the SCAFACOS package
|
||||
|
||||
@ -205,7 +205,7 @@ For *damping mass_velocity*, the normal damping is given by:
|
||||
\eta_n = \eta_{n0} m_{eff}
|
||||
|
||||
Here, :math:`\eta_{n0}` is the damping coefficient specified for the normal
|
||||
contact model, in units of *mass*\ /\ *time* and
|
||||
contact model, in units of 1/\ *time* and
|
||||
:math:`m_{eff} = m_i m_j/(m_i + m_j)` is the effective mass.
|
||||
Use *damping mass_velocity* to reproduce the damping behavior of
|
||||
*pair gran/hooke/\**.
|
||||
|
||||
@ -74,14 +74,17 @@ atoms interact with each other via an *eam* potential, the surface atoms
|
||||
interact with each other via a *lj/cut* potential, and the metal/surface
|
||||
interaction is also computed via a *lj/cut* potential. The
|
||||
*hybrid/overlay* style could be used as in the second example above,
|
||||
where multiple potentials are superposed in an additive fashion to
|
||||
where multiple potentials are superimposed in an additive fashion to
|
||||
compute the interaction between atoms. In this example, using *lj/cut*
|
||||
and *coul/long* together gives the same result as if the
|
||||
*lj/cut/coul/long* potential were used by itself. In this case, it
|
||||
would be more efficient to use the single combined potential, but in
|
||||
general any combination of pair potentials can be used together in to
|
||||
produce an interaction that is not encoded in any single pair_style
|
||||
file, e.g. adding Coulombic forces between granular particles.
|
||||
file, e.g. adding Coulombic forces between granular particles. Another
|
||||
limitation of using the *hybrid/overlay* variant, that it does not generate
|
||||
*lj/cut* parameters for mixed atom types from a mixing rule due to
|
||||
restrictions discussed below.
|
||||
|
||||
If the *hybrid/scaled* style is used instead of *hybrid/overlay*,
|
||||
contributions from sub-styles are weighted by their scale factors, which
|
||||
@ -150,10 +153,14 @@ with Tersoff, and the cross-interactions with Lennard-Jones:
|
||||
pair_coeff * * tersoff 2 C.tersoff NULL C
|
||||
pair_coeff 1 2 lj/cut 1.0 1.5
|
||||
|
||||
If pair coefficients are specified in the data file read via the
|
||||
:doc:`read_data <read_data>` command, then the same rule applies.
|
||||
E.g. "eam/alloy" or "lj/cut" must be added after the atom type, for
|
||||
each line in the "Pair Coeffs" section, e.g.
|
||||
|
||||
It is not recommended to read pair coefficients for a hybrid style from a "Pair Coeffs"
|
||||
or "PairIJ Coeffs" section of a data file via the :doc:`read_data <read_data>` command,
|
||||
since those sections expect a fixed number of lines, either one line per atom type or
|
||||
one line pair pair of atom types, respectively. When reading from a data file, the
|
||||
lines of the "Pair Coeffs" and "PairIJ Coeffs" are changed in the same way as the *pair_coeff*
|
||||
command, i.e. the name of the pair style to which the parameters apply must follow the
|
||||
atom type (or atom types), e.g.
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -162,6 +169,11 @@ each line in the "Pair Coeffs" section, e.g.
|
||||
1 lj/cut/coul/cut 1.0 1.0
|
||||
...
|
||||
|
||||
PairIJ Coeffs
|
||||
|
||||
1 1 lj/cut/coul/cut 1.0 1.0
|
||||
...
|
||||
|
||||
Note that the pair_coeff command for some potentials such as
|
||||
:doc:`pair_style eam/alloy <pair_eam>` includes a mapping specification
|
||||
of elements to all atom types, which in the hybrid case, can include
|
||||
@ -208,12 +220,22 @@ examples above, or in the data file read by the :doc:`read_data
|
||||
<read_data>`, or by mixing as described below. Also all sub-styles
|
||||
must be used at least once in a :doc:`pair_coeff <pair_coeff>` command.
|
||||
|
||||
.. note::
|
||||
.. warning::
|
||||
|
||||
LAMMPS never performs mixing of parameters from different sub-styles,
|
||||
**even** if they use the same type of coefficients, e.g. contain
|
||||
a Lennard-Jones potential variant. Those parameters must be provided
|
||||
explicitly.
|
||||
With hybrid pair styles the use of mixing to generate pair
|
||||
coefficients is significantly limited compared to the individual pair
|
||||
styles. LAMMPS **never** performs mixing of parameters from
|
||||
different sub-styles, **even** if they use the same type of
|
||||
coefficients, e.g. contain a Lennard-Jones potential variant. Those
|
||||
parameters must be provided explicitly. Also for *hybrid/overlay*
|
||||
and *hybrid/scaled* mixing is **only** performed for pairs of atom
|
||||
types for which only a single pair style is assigned.
|
||||
|
||||
Thus it is strongly recommended to provide all mixed terms
|
||||
explicitly. For non-hybrid styles those could be generated and
|
||||
written out using the :doc:`write_coeff command <write_coeff>` and
|
||||
then edited as needed to comply with the requirements for hybrid
|
||||
styles as explained above.
|
||||
|
||||
If you want there to be no interactions between a particular pair of
|
||||
atom types, you have 3 choices. You can assign the pair of atom types
|
||||
|
||||
@ -26,15 +26,29 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
The *lebedeva/z* style computes the Lebedeva interaction
|
||||
potential as described in :ref:`(Lebedeva et al.) <Leb01>`. An important simplification is made,
|
||||
which is to take all normals along the z-axis.
|
||||
The *lebedeva/z* pair style computes the Lebedeva interaction potential
|
||||
as described in :ref:`(Lebedeva1) <Leb01>` and :ref:`(Lebedeva2)
|
||||
<Leb02>`. An important simplification is made, which is to take all
|
||||
normals along the z-axis.
|
||||
|
||||
The Lebedeva potential is intended for the description of the interlayer
|
||||
interaction between graphene layers. To perform a realistic simulation,
|
||||
this potential must be used in combination with an intralayer potential
|
||||
such as :doc:`AIREBO <pair_airebo>` or :doc:`Tersoff <pair_tersoff>`
|
||||
facilitated by using pair style :doc:`hybrid/overlay <pair_hybrid>`. To
|
||||
keep the intralayer properties unaffected, the interlayer interaction
|
||||
within the same layers should be avoided. This can be achieved by
|
||||
assigning different atom types to atoms of different layers (e.g. 1 and
|
||||
2 in the examples above).
|
||||
|
||||
Other interactions can be set to zero using pair_style *none*\ .
|
||||
|
||||
|
||||
.. math::
|
||||
|
||||
E = & \frac{1}{2} \sum_i \sum_{i \neq j} V_{ij}\\
|
||||
E = & \frac{1}{2} \sum_i \sum_{j \neq i} V_{ij}\\
|
||||
V_{ij} = & B e^{-\alpha(r_{ij} - z_0)} \\
|
||||
& + C(1 + D_1\rho^2_{ij} + D_2\rho^4_{ij} e^{-\lambda_1\rho^2_{ij}} e^{-\lambda_2 (z^2_{ij} - z^2_0)} \\
|
||||
& + C(1 + D_1\rho^2_{ij} + D_2\rho^4_{ij}) e^{-\lambda_1\rho^2_{ij}} e^{-\lambda_2 (z^2_{ij} - z^2_0)} \\
|
||||
& - A \left(\frac{z_0}{r_ij}\right)^6 + A \left( \frac{z_0}{r_c} \right)^6 \\
|
||||
\rho^2_{ij} = & x^2_{ij} + y^2_{ij} \qquad (\mathbf{n_i} \equiv \mathbf{\hat{z}})
|
||||
|
||||
@ -43,12 +57,15 @@ Energies are shifted so that they go continuously to zero at the cutoff assuming
|
||||
that the exponential part of :math:`V_{ij}` (first term) decays sufficiently fast.
|
||||
This shift is achieved by the last term in the equation for :math:`V_{ij}` above.
|
||||
|
||||
The parameter file (e.g. CC.Lebedeva), is intended for use with metal
|
||||
:doc:`units <units>`, with energies in meV. An additional parameter, *S*,
|
||||
is available to facilitate scaling of energies.
|
||||
The provided parameter file (CC.Lebedeva) contains two sets of parameters.
|
||||
|
||||
This potential must be used in combination with hybrid/overlay.
|
||||
Other interactions can be set to zero using pair_style *none*\ .
|
||||
- The first set (element name "C") is suitable for normal conditions and
|
||||
is taken from :ref:`(Popov1) <Popov>`
|
||||
- The second set (element name "C1") is suitable for high-pressure
|
||||
conditions and is taken from :ref:`(Koziol1) <Koziol>`
|
||||
|
||||
Both sets contain an additional parameter, *S*, that can be used to
|
||||
facilitate scaling of energies and is set to 1.0 by default.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
@ -77,4 +94,16 @@ none
|
||||
|
||||
.. _Leb01:
|
||||
|
||||
**(Lebedeva et al.)** I. V. Lebedeva, A. A. Knizhnik, A. M. Popov, Y. E. Lozovik, B. V. Potapkin, Phys. Rev. B, 84, 245437 (2011)
|
||||
**(Lebedeva1)** I. V. Lebedeva, A. A. Knizhnik, A. M. Popov, Y. E. Lozovik, B. V. Potapkin, Phys. Rev. B, 84, 245437 (2011)
|
||||
|
||||
.. _Leb02:
|
||||
|
||||
**(Lebedeva2)** I. V. Lebedeva, A. A. Knizhnik, A. M. Popov, Y. E. Lozovik, B. V. Potapkin, Physica E: 44, 949-954 (2012)
|
||||
|
||||
.. _Popov:
|
||||
|
||||
**(Popov1)** A.M. Popov, I. V. Lebedeva, A. A. Knizhnik, Y. E. Lozovik and B. V. Potapkin, Chem. Phys. Lett. 536, 82-86 (2012).
|
||||
|
||||
.. _Koziol:
|
||||
|
||||
**(Koziol1)** Z. Koziol, G. Gawlik and J. Jagielski, Chinese Phys. B 28, 096101 (2019).
|
||||
|
||||
@ -26,23 +26,25 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
The local density (LD) potential is a mean-field manybody potential, and, in some
|
||||
sense,a generalization of embedded atom models (EAM). The name "local density
|
||||
potential" arises from the fact that it assigns an energy to an atom depending
|
||||
on the number of neighboring atoms of given type around it within a predefined
|
||||
spherical volume (i.e., within a cutoff). The bottom-up coarse-graining (CG)
|
||||
literature suggests that such potentials can be widely useful in capturing
|
||||
effective multibody forces in a computationally efficient manner so as to
|
||||
improve the quality of CG models of implicit solvation:ref:`(Sanyal1) <Sanyal1>` and
|
||||
phase-segregation in liquid mixtures:ref:`(Sanyal2) <Sanyal2>`, and provide guidelines
|
||||
to determine the extent of manybody correlations present in a CG
|
||||
model.:ref:`(Rosenberger) <Rosenberger>` The LD potential in LAMMPS is primarily
|
||||
intended to be used as a corrective potential over traditional pair potentials
|
||||
in bottom-up CG models, i.e., as a hybrid pair style with
|
||||
other explicit pair interaction terms (e.g., table spline, Lennard Jones, etc.).
|
||||
Because the LD potential is not a pair potential per se, it is implemented
|
||||
simply as a single auxiliary file with all specifications that will be read
|
||||
upon initialization.
|
||||
The local density (LD) potential is a mean-field manybody potential,
|
||||
and, in some way, a generalization of embedded atom models (EAM). The
|
||||
name "local density potential" arises from the fact that it assigns an
|
||||
energy to an atom depending on the number of neighboring atoms of a
|
||||
given type around it within a predefined spherical volume (i.e., within
|
||||
the cutoff). The bottom-up coarse-graining (CG) literature suggests
|
||||
that such potentials can be widely useful in capturing effective
|
||||
multibody forces in a computationally efficient manner and thus improve
|
||||
the quality of CG models of implicit solvation :ref:`(Sanyal1)
|
||||
<Sanyal1>` and phase-segregation in liquid mixtures :ref:`(Sanyal2)
|
||||
<Sanyal2>`, and provide guidelines to determine the extent of manybody
|
||||
correlations present in a CG model :ref:`(Rosenberger) <Rosenberger>`.
|
||||
The LD potential in LAMMPS is primarily intended to be used as a
|
||||
corrective potential over traditional pair potentials in bottom-up CG
|
||||
models via :doc:`hybrid/overlay pair style <pair_hybrid>` with other
|
||||
explicit pair interaction terms (e.g., tabulated, Lennard-Jones, Morse
|
||||
etc.). Because the LD potential is not a pair potential per se, it is
|
||||
implemented simply as a single auxiliary file with all specifications
|
||||
that will be read upon initialization.
|
||||
|
||||
.. note::
|
||||
|
||||
|
||||
@ -28,16 +28,16 @@ Description
|
||||
as of November 2010; see description below of the mixture_ref_t
|
||||
parameter
|
||||
|
||||
Style *meam* computes pairwise interactions for a variety of materials
|
||||
using modified embedded-atom method (MEAM) potentials
|
||||
Pair style *meam* computes non-bonded interactions for a variety of materials
|
||||
using the modified embedded-atom method (MEAM)
|
||||
:ref:`(Baskes) <Baskes>`. Conceptually, it is an extension to the original
|
||||
:doc:`EAM potentials <pair_eam>` which adds angular forces. It is
|
||||
:doc:`EAM method <pair_eam>` which adds angular forces. It is
|
||||
thus suitable for modeling metals and alloys with fcc, bcc, hcp and
|
||||
diamond cubic structures, as well as covalently bonded materials like
|
||||
silicon and carbon. Style *meam* is a translation of the (now obsolete)
|
||||
*meam* code from Fortran to C++. It is functionally equivalent to *meam*
|
||||
but more efficient, and thus *meam* has been removed from LAMMPS after
|
||||
the 12 December 2018 release.
|
||||
diamond cubic structures, as well as materials with covalent interactions
|
||||
like silicon and carbon. This *meam* pair style is a translation of the
|
||||
original Fortran version to C++. It is functionally equivalent but more
|
||||
efficient and has additional features. The Fortran version of the *meam*
|
||||
pair style has been removed from LAMMPS after the 12 December 2018 release.
|
||||
|
||||
In the MEAM formulation, the total energy E of a system of atoms is
|
||||
given by:
|
||||
|
||||
@ -71,21 +71,23 @@ The *mix* keyword affects pair coefficients for interactions between
|
||||
atoms of type I and J, when I != J and the coefficients are not
|
||||
explicitly set in the input script. Note that coefficients for I = J
|
||||
must be set explicitly, either in the input script via the
|
||||
:doc:`pair_coeff <pair_coeff>` command or in the "Pair Coeffs" section of the
|
||||
:doc:`data file <read_data>`. For some pair styles it is not
|
||||
:doc:`pair_coeff <pair_coeff>` command or in the "Pair Coeffs" or "PairIJ Coeffs"
|
||||
sections of the :doc:`data file <read_data>`. For some pair styles it is not
|
||||
necessary to specify coefficients when I != J, since a "mixing" rule
|
||||
will create them from the I,I and J,J settings. The pair_modify
|
||||
*mix* value determines what formulas are used to compute the mixed
|
||||
coefficients. In each case, the cutoff distance is mixed the same way
|
||||
as sigma.
|
||||
|
||||
Note that not all pair styles support mixing and some mix options
|
||||
are not available for certain pair styles. Also, there are additional
|
||||
restrictions when using :doc:`pair style hybrid or hybrid/overlay <pair_hybrid>`.
|
||||
See the page for individual pair styles for those restrictions. Note also that the
|
||||
:doc:`pair_coeff <pair_coeff>` command also can be used to directly set
|
||||
coefficients for a specific I != J pairing, in which case no mixing is
|
||||
performed.
|
||||
Note that not all pair styles support mixing and some mix options are
|
||||
not available for certain pair styles. Also, there are additional
|
||||
restrictions when using :doc:`pair style hybrid or hybrid/overlay
|
||||
<pair_hybrid>`. See the page for individual pair styles for those
|
||||
restrictions. Note also that the :doc:`pair_coeff <pair_coeff>` command
|
||||
also can be used to directly set coefficients for a specific I != J
|
||||
pairing, in which case no mixing is performed. If possible, LAMMPS will
|
||||
print an informational message about how many of the mixed pair
|
||||
coefficients were generated and which mixing rule was applied.
|
||||
|
||||
- mix *geometric*
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
.. index:: pair_style nm/cut
|
||||
.. index:: pair_style nm/cut/split
|
||||
.. index:: pair_style nm/cut/coul/cut
|
||||
.. index:: pair_style nm/cut/coul/long
|
||||
.. index:: pair_style nm/cut/omp
|
||||
@ -10,6 +11,9 @@ pair_style nm/cut command
|
||||
|
||||
Accelerator Variants: *nm/cut/omp*
|
||||
|
||||
pair_style nm/cut/split command
|
||||
===============================
|
||||
|
||||
pair_style nm/cut/coul/cut command
|
||||
==================================
|
||||
|
||||
@ -27,13 +31,15 @@ Syntax
|
||||
|
||||
pair_style style args
|
||||
|
||||
* style = *nm/cut* or *nm/cut/coul/cut* or *nm/cut/coul/long*
|
||||
* style = *nm/cut* or *nm/cut/split* or *nm/cut/coul/cut* or *nm/cut/coul/long*
|
||||
* args = list of arguments for a particular style
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*nm/cut* args = cutoff
|
||||
cutoff = global cutoff for Pair interactions (distance units)
|
||||
*nm/cut/split* args = cutoff
|
||||
cutoff = global cutoff for Pair interactions (distance units)
|
||||
*nm/cut/coul/cut* args = cutoff (cutoff2)
|
||||
cutoff = global cutoff for Pair (and Coulombic if only 1 arg) (distance units)
|
||||
cutoff2 = global cutoff for Coulombic (optional) (distance units)
|
||||
@ -50,6 +56,10 @@ Examples
|
||||
pair_coeff * * 0.01 5.4 8.0 7.0
|
||||
pair_coeff 1 1 0.01 4.4 7.0 6.0
|
||||
|
||||
pair_style nm/cut/split 1.12246
|
||||
pair_coeff 1 1 1.0 1.1246 12 6
|
||||
pair_coeff * * 1.0 1.1246 11 6
|
||||
|
||||
pair_style nm/cut/coul/cut 12.0 15.0
|
||||
pair_coeff * * 0.01 5.4 8.0 7.0
|
||||
pair_coeff 1 1 0.01 4.4 7.0 6.0
|
||||
@ -71,7 +81,15 @@ interaction has the following form:
|
||||
E = \frac{E_0}{(n-m)} \left[ m \left(\frac{r_0}{r}\right)^n - n
|
||||
\left(\frac{r_0}{r}\right)^m \right] \qquad r < r_c
|
||||
|
||||
where :math:`r_c` is the cutoff.
|
||||
where :math:`r_c` is the cutoff and :math:`r_0` is the minimum of the
|
||||
potential. Please note that this differs from the convention used for
|
||||
other Lennard-Jones potentials in LAMMPS where :math:`\sigma` represents
|
||||
the location where the energy is zero.
|
||||
|
||||
Style *nm/cut/split* applies the standard LJ (12-6) potential above
|
||||
:math:`r_0 = 2^\frac{1}{6}\sigma`. Style *nm/cut/split* is employed in
|
||||
polymer equilibration protocols that combine core-softening approaches
|
||||
with topology-changing moves :ref:`Dietz <Dietz>`.
|
||||
|
||||
Style *nm/cut/coul/cut* adds a Coulombic pairwise interaction given by
|
||||
|
||||
@ -155,7 +173,6 @@ the :doc:`run_style respa <run_style>` command. They do not support the
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
These pair styles are part of the EXTRA-PAIR package. They are only enabled if
|
||||
LAMMPS was built with that package. See the
|
||||
:doc:`Build package <Build_package>` page for more info.
|
||||
@ -163,7 +180,7 @@ LAMMPS was built with that package. See the
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`pair_coeff <pair_coeff>`
|
||||
:doc:`pair_coeff <pair_coeff>`, :doc:`pair style lj/cut <pair_lj>`, :doc:`bond style fene/nm <bond_fene>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
@ -175,3 +192,7 @@ none
|
||||
.. _Clarke:
|
||||
|
||||
**(Clarke)** Clarke and Smith, J Chem Phys, 84, 2290 (1986).
|
||||
|
||||
.. _Dietz:
|
||||
|
||||
**(Dietz)** Dietz and Hoy, J. Chem Phys, 156, 014103 (2022).
|
||||
|
||||
@ -126,11 +126,11 @@ and *compute_energy*, which both take 3 numerical arguments:
|
||||
* itype = the (numerical) type of the first atom
|
||||
* jtype = the (numerical) type of the second atom
|
||||
|
||||
This functions need to compute the force and the energy, respectively,
|
||||
and use the result as return value. The functions need to use the
|
||||
*pmap* dictionary to convert the LAMMPS atom type number to the symbolic
|
||||
value of the internal potential parameter data structure. Following
|
||||
the *LJCutMelt* example, here are the two functions:
|
||||
This functions need to compute the (scaled) force and the energy,
|
||||
respectively, and use the result as return value. The functions need
|
||||
to use the *pmap* dictionary to convert the LAMMPS atom type number
|
||||
to the symbolic value of the internal potential parameter data structure.
|
||||
Following the *LJCutMelt* example, here are the two functions:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
@ -154,10 +154,10 @@ the *LJCutMelt* example, here are the two functions:
|
||||
|
||||
for consistency with the C++ pair styles in LAMMPS, the
|
||||
*compute_force* function follows the conventions of the Pair::single()
|
||||
methods and does not return the full force, but the force scaled by
|
||||
the distance between the two atoms, so this value only needs to be
|
||||
multiplied by delta x, delta y, and delta z to conveniently obtain the
|
||||
three components of the force vector between these two atoms.
|
||||
methods and does not return the pairwise force directly, but the force
|
||||
divided by the distance between the two atoms, so this value only needs
|
||||
to be multiplied by delta x, delta y, and delta z to conveniently obtain
|
||||
the three components of the force vector between these two atoms.
|
||||
|
||||
----------
|
||||
|
||||
|
||||
@ -274,6 +274,7 @@ accelerated styles exist.
|
||||
* :doc:`nm/cut <pair_nm>` - N-M potential
|
||||
* :doc:`nm/cut/coul/cut <pair_nm>` - N-M potential with cutoff Coulomb
|
||||
* :doc:`nm/cut/coul/long <pair_nm>` - N-M potential with long-range Coulomb
|
||||
* :doc:`nm/cut/split <pair_nm>` - Split 12-6 Lennard-Jones and N-M potential
|
||||
* :doc:`oxdna/coaxstk <pair_oxdna>` -
|
||||
* :doc:`oxdna/excv <pair_oxdna>` -
|
||||
* :doc:`oxdna/hbond <pair_oxdna>` -
|
||||
@ -327,6 +328,7 @@ accelerated styles exist.
|
||||
* :doc:`spin/neel <pair_spin_neel>` -
|
||||
* :doc:`srp <pair_srp>` -
|
||||
* :doc:`sw <pair_sw>` - Stillinger-Weber 3-body potential
|
||||
* :doc:`sw/mod <pair_sw>` - modified Stillinger-Weber 3-body potential
|
||||
* :doc:`table <pair_table>` - tabulated pair potential
|
||||
* :doc:`table/rx <pair_table_rx>` -
|
||||
* :doc:`tdpd <pair_mesodpd>` - tDPD particle interactions
|
||||
|
||||
@ -3,18 +3,34 @@
|
||||
.. index:: pair_style sw/intel
|
||||
.. index:: pair_style sw/kk
|
||||
.. index:: pair_style sw/omp
|
||||
.. index:: pair_style sw/mod
|
||||
.. index:: pair_style sw/mod/omp
|
||||
|
||||
pair_style sw command
|
||||
=====================
|
||||
|
||||
Accelerator Variants: *sw/gpu*, *sw/intel*, *sw/kk*, *sw/omp*
|
||||
|
||||
pair_style sw/mod command
|
||||
=========================
|
||||
|
||||
Accelerator Variants: *sw/mod/omp*
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. code-block:: LAMMPS
|
||||
|
||||
pair_style sw
|
||||
pair_style style keyword values
|
||||
|
||||
* style = *sw* or *sw/mod*
|
||||
* keyword = *maxdelcs*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*maxdelcs* value = delta1 delta2 (optional)
|
||||
delta1 = The minimum thershold for cosine of three-body angle
|
||||
delta2 = The maximum threshold for cosine of three-body angle
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
@ -25,6 +41,9 @@ Examples
|
||||
pair_coeff * * si.sw Si
|
||||
pair_coeff * * GaN.sw Ga N Ga
|
||||
|
||||
pair_style sw/mod maxdelcs 0.25 0.35
|
||||
pair_coeff * * tmd.sw.mod Mo S S
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
@ -48,8 +67,52 @@ where :math:`\phi_2` is a two-body term and :math:`\phi_3` is a
|
||||
three-body term. The summations in the formula are over all neighbors J
|
||||
and K of atom I within a cutoff distance :math:`a `\sigma`.
|
||||
|
||||
Only a single pair_coeff command is used with the *sw* style which
|
||||
specifies a Stillinger-Weber potential file with parameters for all
|
||||
The *sw/mod* style is designed for simulations of materials when
|
||||
distinguishing three-body angles are necessary, such as borophene
|
||||
and transition metal dichalcogenide, which cannot be described
|
||||
by the original code for the Stillinger-Weber potential.
|
||||
For instance, there are several types of angles around each Mo atom in `MoS_2`,
|
||||
and some unnecessary angle types should be excluded in the three-body interaction.
|
||||
Such exclusion may be realized by selecting proper angle types directly.
|
||||
The exclusion of unnecessary angles is achieved here by the cut-off function (`f_C(\delta)`),
|
||||
which induces only minimum modifications for LAMMPS.
|
||||
|
||||
Validation, benchmark tests, and applications of the *sw/mod* style
|
||||
can be found in :ref:`(Jiang2) <Jiang2>` and :ref:`(Jiang3) <Jiang3>`.
|
||||
|
||||
The *sw/mod* style computes the energy E of a system of atoms, whose potential
|
||||
function is mostly the same as the Stillinger-Weber potential. The only modification
|
||||
is in the three-body term, where the value of :math:`\delta = \cos \theta_{ijk} - \cos \theta_{0ijk}`
|
||||
used in the original energy and force expression is scaled by a switching factor :math:`f_C(\delta)`:
|
||||
|
||||
.. math::
|
||||
|
||||
f_C(\delta) & = \left\{ \begin{array} {r@{\quad:\quad}l}
|
||||
1 & \left| \delta \right| < \delta_1 \\
|
||||
\frac{1}{2} + \frac{1}{2} \cos \left( \pi \frac{\left| \delta \right| - \delta_1}{\delta_2 - \delta_1} \right) &
|
||||
\delta_1 < \left| \delta \right| < \delta_2 \\
|
||||
0 & \left| \delta \right| > \delta_2
|
||||
\end{array} \right. \\
|
||||
|
||||
This cut-off function decreases smoothly from 1 to 0 over the range :math:`[\delta_1, \delta_2]`.
|
||||
This smoothly turns off the energy and force contributions for :math:`\left| \delta \right| > \delta_2`.
|
||||
It is suggested that :math:`\delta 1` and :math:`\delta_2` to be the value around
|
||||
:math:`0.5 \left| \cos \theta_1 - \cos \theta_2 \right|`, with
|
||||
:math:`\theta_1` and :math:`\theta_2` as the different types of angles around an atom.
|
||||
For borophene and transition metal dichalcogenide, :math:`\delta_1 = 0.25` and :math:`\delta_2 = 0.35`.
|
||||
This value enables the cut-off function to exclude unnecessary angles in the three-body SW terms.
|
||||
|
||||
.. note::
|
||||
|
||||
The cut-off function is just to be used as a technique to exclude some unnecessary angles,
|
||||
and it has no physical meaning. It should be noted that the force and potential are inconsistent
|
||||
with each other in the decaying range of the cut-off function, as the angle dependence for the
|
||||
cut-off function is not implemented in the force (first derivation of potential).
|
||||
However, the angle variation is much smaller than the given threshold value for actual simulations,
|
||||
so the inconsistency between potential and force can be neglected in actual simulations.
|
||||
|
||||
Only a single pair_coeff command is used with the *sw* and *sw/mod* styles
|
||||
which specifies a Stillinger-Weber potential file with parameters for all
|
||||
needed elements. These are mapped to LAMMPS atom types by specifying
|
||||
N additional arguments after the filename in the pair_coeff command,
|
||||
where N is the number of LAMMPS atom types:
|
||||
@ -213,10 +276,19 @@ Related commands
|
||||
Default
|
||||
"""""""
|
||||
|
||||
none
|
||||
The default values for the *maxdelcs* setting of the *sw/mod* pair
|
||||
style are *delta1* = 0.25 and *delta2* = 0.35`.
|
||||
|
||||
----------
|
||||
|
||||
.. _Stillinger2:
|
||||
|
||||
**(Stillinger)** Stillinger and Weber, Phys Rev B, 31, 5262 (1985).
|
||||
|
||||
.. _Jiang2:
|
||||
|
||||
**(Jiang2)** J.-W. Jiang, Nanotechnology 26, 315706 (2015).
|
||||
|
||||
.. _Jiang3:
|
||||
|
||||
**(Jiang3)** J.-W. Jiang, Acta Mech. Solida. Sin 32, 17 (2019).
|
||||
|
||||
@ -23,7 +23,7 @@ Syntax
|
||||
|
||||
pair_style style keywords values
|
||||
|
||||
* style = *tersoff* or *tersoff/table* or *tersoff/gpu* or *tersoff/omp* or *tersoff/table/omp*
|
||||
* style = *tersoff* or *tersoff/table*
|
||||
* keyword = *shift*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -17,7 +17,7 @@ Syntax
|
||||
|
||||
pair_style style args
|
||||
|
||||
* style = *thole* or *lj/cut/thole/long* or *lj/cut/thole/long/omp*
|
||||
* style = *thole* or *lj/cut/thole/long*
|
||||
* args = list of arguments for a particular style
|
||||
|
||||
.. parsed-literal::
|
||||
@ -25,7 +25,7 @@ Syntax
|
||||
*thole* args = damp cutoff
|
||||
damp = global damping parameter
|
||||
cutoff = global cutoff (distance units)
|
||||
*lj/cut/thole/long* or *lj/cut/thole/long/omp* args = damp cutoff (cutoff2)
|
||||
*lj/cut/thole/long* args = damp cutoff (cutoff2)
|
||||
damp = global damping parameter
|
||||
cutoff = global cutoff for LJ (and Thole if only 1 arg) (distance units)
|
||||
cutoff2 = global cutoff for Thole (optional) (distance units)
|
||||
|
||||
@ -22,13 +22,13 @@ Syntax
|
||||
|
||||
pair_style style args
|
||||
|
||||
* style = *vashishta* or *vashishta/table* or *vashishta/omp* or *vashishta/table/omp*
|
||||
* style = *vashishta* or *vashishta/table*
|
||||
* args = list of arguments for a particular style
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
*vashishta* or *vashishta/omp* args = none
|
||||
*vashishta/table* or *vashishta/table/omp* args = Ntable cutinner
|
||||
*vashishta* args = none
|
||||
*vashishta/table* args = Ntable cutinner
|
||||
Ntable = # of tabulation points
|
||||
cutinner = tablulate from cutinner to cutoff
|
||||
|
||||
|
||||
@ -98,8 +98,7 @@ command, after the dump snapshot is read.
|
||||
----------
|
||||
|
||||
If the dump filename specified as *file* ends with ".gz", the dump
|
||||
file is read in gzipped format. You cannot (yet) read a dump file
|
||||
that was written in binary format with a ".bin" suffix.
|
||||
file is read in gzipped format.
|
||||
|
||||
You can read dump files that were written (in parallel) to multiple
|
||||
files via the "%" wild-card character in the dump file name. If any
|
||||
@ -115,8 +114,8 @@ to tell LAMMPS how many parallel files exist, via its specified
|
||||
The format of the dump file is selected through the *format* keyword.
|
||||
If specified, it must be the last keyword used, since all remaining
|
||||
arguments are passed on to the dump reader. The *native* format is
|
||||
for native LAMMPS dump files, written with a :doc:`dump atom <dump>` or
|
||||
:doc:`dump custom <dump>` command. The *xyz* format is for generic XYZ
|
||||
for native LAMMPS dump files, written with a :doc:`dump atom <dump>`
|
||||
or :doc:`dump custom <dump>` command. The *xyz* format is for generic XYZ
|
||||
formatted dump files. These formats take no additional values.
|
||||
|
||||
The *molfile* format supports reading data through using the `VMD <vmd_>`_
|
||||
@ -370,8 +369,6 @@ needed to generate absolute, unscaled coordinates.
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
The *native* dump file reader does not support binary .bin dump files.
|
||||
|
||||
To read gzipped dump files, you must compile LAMMPS with the
|
||||
-DLAMMPS_GZIP option. See the :doc:`Build settings <Build_settings>`
|
||||
doc page for details.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
Sphinx
|
||||
sphinxcontrib-spelling
|
||||
git+git://github.com/akohlmey/sphinx-fortran@parallel-read
|
||||
git+https://github.com/akohlmey/sphinx-fortran@parallel-read
|
||||
sphinx_tabs
|
||||
breathe
|
||||
Pygments
|
||||
|
||||
@ -308,6 +308,7 @@ boolean
|
||||
boostostat
|
||||
boostostatting
|
||||
Boresch
|
||||
borophene
|
||||
Botero
|
||||
Botu
|
||||
Bouguet
|
||||
@ -688,8 +689,10 @@ diagonalizers
|
||||
diagonalizing
|
||||
Diallo
|
||||
diblock
|
||||
dichalcogenide
|
||||
Dickel
|
||||
diel
|
||||
Dietz
|
||||
differentiable
|
||||
diffusively
|
||||
diffusivity
|
||||
@ -1125,6 +1128,7 @@ gaussian
|
||||
gaussians
|
||||
Gaussians
|
||||
Gavhane
|
||||
Gawlik
|
||||
gayberne
|
||||
gcc
|
||||
gcmc
|
||||
@ -1308,6 +1312,7 @@ hotpink
|
||||
Houlle
|
||||
howto
|
||||
Howto
|
||||
Hoy
|
||||
Hoyt
|
||||
Hs
|
||||
hstyle
|
||||
@ -1483,6 +1488,7 @@ Izz
|
||||
Jacobsen
|
||||
Jadhao
|
||||
Jadhav
|
||||
Jagielski
|
||||
jagreat
|
||||
Jahn
|
||||
Jalalvand
|
||||
@ -1609,6 +1615,7 @@ Koslowski
|
||||
Kosovan
|
||||
Koster
|
||||
Kosztin
|
||||
Koziol
|
||||
Kp
|
||||
kradius
|
||||
Kraker
|
||||
@ -1995,6 +2002,7 @@ minimizer
|
||||
minimizers
|
||||
minneigh
|
||||
minorder
|
||||
MinSizeRel
|
||||
minSteps
|
||||
mintcream
|
||||
Mintmire
|
||||
@ -2386,6 +2394,7 @@ ohenrich
|
||||
ok
|
||||
Okabe
|
||||
Okamoto
|
||||
O'Hearn
|
||||
O'Keefe
|
||||
OKeefe
|
||||
oldlace
|
||||
@ -2784,6 +2793,7 @@ relink
|
||||
relres
|
||||
relTol
|
||||
relu
|
||||
RelWithDebInfo
|
||||
remappings
|
||||
remd
|
||||
Ren
|
||||
@ -3073,6 +3083,7 @@ snav
|
||||
Snodin
|
||||
Sodani
|
||||
Soderlind
|
||||
Solida
|
||||
solvated
|
||||
solvation
|
||||
someuser
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
# NOTE: This script can be modified for different pair styles
|
||||
# See in.elastic for more info.
|
||||
|
||||
# we must undefine any fix ave/* fix before using reset_timestep
|
||||
if "$(is_defined(fix,avp)" then "unfix avp"
|
||||
reset_timestep 0
|
||||
|
||||
# Choose potential
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# local density potentials: (B,B), (W,W), (B,W), (W,B)
|
||||
# local density potentials: (B,B), (W,W), (B,W), (W,B) UNITS: real
|
||||
|
||||
4 500
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
|
||||
# UNITS: real
|
||||
PairBB
|
||||
N 500 R 2.00000e-02 1.32500e+01
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
# Initialize simulation box
|
||||
dimension 3
|
||||
boundary p p p
|
||||
boundary p p p
|
||||
units real
|
||||
atom_style molecular
|
||||
|
||||
@ -32,7 +32,7 @@ pair_coeff * * local/density benzene_water.localdensity.table
|
||||
fix recentering all recenter 0.0 0.0 0.0 units box
|
||||
|
||||
# Thermostat & time integration
|
||||
timestep 2.0
|
||||
timestep 2.0
|
||||
thermo 100
|
||||
thermo_style custom temp ke pe etotal ebond eangle edihed evdwl
|
||||
|
||||
@ -49,14 +49,14 @@ run 5000
|
||||
|
||||
# Turn off recentering during production phase
|
||||
unfix recentering
|
||||
reset_timestep 0
|
||||
|
||||
# Setup trajectory output
|
||||
dump myDump all custom 100 benzene_water.lammpstrj.gz id type x y z element
|
||||
dump_modify myDump element B W
|
||||
dump_modify myDump sort id
|
||||
#dump myDump all custom 100 benzene_water.lammpstrj.gz id type x y z element
|
||||
#dump_modify myDump element B W
|
||||
#dump_modify myDump sort id
|
||||
|
||||
# Production (for realistic results, run for 10000000 steps)
|
||||
reset_timestep 0
|
||||
run 1000
|
||||
run 1000
|
||||
|
||||
|
||||
@ -1,267 +0,0 @@
|
||||
LAMMPS (7 Aug 2019)
|
||||
# LAMMPS input file for 26.5% benzene mole fraction solution
|
||||
# with 380 benzene and 1000 water molecules,
|
||||
# using all possible local density potentials
|
||||
# between benzene and water
|
||||
#
|
||||
# Author: Tanmoy Sanyal, Shell Group, UC Santa Barbara
|
||||
#
|
||||
# Refer: Sanyal and Shell, JPC-B, 2018, 122 (21), 5678-5693
|
||||
|
||||
|
||||
|
||||
# Initialize simulation box
|
||||
dimension 3
|
||||
boundary p p p
|
||||
units real
|
||||
atom_style molecular
|
||||
|
||||
# Set potential styles
|
||||
pair_style hybrid/overlay table spline 500 local/density
|
||||
|
||||
# Read molecule data and set initial velocities
|
||||
read_data benzene_water.data
|
||||
orthogonal box = (-12.865 -12.865 -64.829) to (12.865 12.865 64.829)
|
||||
1 by 1 by 8 MPI processor grid
|
||||
reading atoms ...
|
||||
1380 atoms
|
||||
0 = max # of 1-2 neighbors
|
||||
0 = max # of 1-3 neighbors
|
||||
0 = max # of 1-4 neighbors
|
||||
1 = max # of special neighbors
|
||||
special bonds CPU = 0.000566959 secs
|
||||
read_data CPU = 0.00661397 secs
|
||||
velocity all create 3.0000e+02 16611 rot yes dist gaussian
|
||||
|
||||
# Assign potentials
|
||||
pair_coeff 1 1 table benzene_water.pair.table PairBB
|
||||
WARNING: 33 of 500 force values in table are inconsistent with -dE/dr.
|
||||
Should only be flagged at inflection points (../pair_table.cpp:483)
|
||||
WARNING: 150 of 500 distance values in table with relative error
|
||||
over 1e-06 to re-computed values (../pair_table.cpp:492)
|
||||
pair_coeff 1 2 table benzene_water.pair.table PairWW
|
||||
WARNING: 61 of 500 force values in table are inconsistent with -dE/dr.
|
||||
Should only be flagged at inflection points (../pair_table.cpp:483)
|
||||
WARNING: 90 of 500 distance values in table with relative error
|
||||
over 1e-06 to re-computed values (../pair_table.cpp:492)
|
||||
pair_coeff 2 2 table benzene_water.pair.table PairBW
|
||||
WARNING: 108 of 500 force values in table are inconsistent with -dE/dr.
|
||||
Should only be flagged at inflection points (../pair_table.cpp:483)
|
||||
WARNING: 135 of 500 distance values in table with relative error
|
||||
over 1e-06 to re-computed values (../pair_table.cpp:492)
|
||||
pair_coeff * * local/density benzene_water.localdensity.table
|
||||
|
||||
# Recentering during minimization and equilibration
|
||||
fix recentering all recenter 0.0 0.0 0.0 units box
|
||||
|
||||
# Thermostat & time integration
|
||||
timestep 2.0
|
||||
thermo 100
|
||||
thermo_style custom temp ke pe etotal ebond eangle edihed evdwl
|
||||
|
||||
# Minimization
|
||||
minimize 1.e-4 0.0 10000 10000
|
||||
WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:168)
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 0 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 15.25
|
||||
ghost atom cutoff = 15.25
|
||||
binsize = 7.625, bins = 4 4 18
|
||||
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||
(1) pair table, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
(2) pair local/density, perpetual, copy from (1)
|
||||
attributes: half, newton on
|
||||
pair build: copy
|
||||
stencil: none
|
||||
bin: none
|
||||
Per MPI rank memory allocation (min/avg/max) = 8.061 | 8.32 | 8.674 Mbytes
|
||||
Temp KinEng PotEng TotEng E_bond E_angle E_dihed E_vdwl
|
||||
300 1233.1611 4162.3053 5395.4665 0 0 0 4162.3053
|
||||
300 1233.1611 2275.526 3508.6871 0 0 0 2275.526
|
||||
Loop time of 0.352822 on 8 procs for 40 steps with 1380 atoms
|
||||
|
||||
71.3% CPU use with 8 MPI tasks x no OpenMP threads
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = linesearch alpha is zero
|
||||
Energy initial, next-to-last, final =
|
||||
4162.30533361 2208.86525108 2275.52597861
|
||||
Force two-norm initial, final = 259.364 69.3915
|
||||
Force max component initial, final = 22.2077 8.31436
|
||||
Final line search alpha, max atom move = 2.90022e-12 2.41135e-11
|
||||
Iterations, force evaluations = 40 110
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.053192 | 0.23903 | 0.32779 | 17.2 | 67.75
|
||||
Bond | 9.0599e-06 | 1.6302e-05 | 2.5272e-05 | 0.0 | 0.00
|
||||
Neigh | 0.00044513 | 0.0023614 | 0.0063851 | 5.1 | 0.67
|
||||
Comm | 0.015469 | 0.090432 | 0.20295 | 20.0 | 25.63
|
||||
Output | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Other | | 0.02098 | | | 5.95
|
||||
|
||||
Nlocal: 172.5 ave 348 max 72 min
|
||||
Histogram: 5 0 0 0 0 0 0 0 1 2
|
||||
Nghost: 2193.62 ave 4352 max 932 min
|
||||
Histogram: 3 0 0 2 0 0 2 0 0 1
|
||||
Neighs: 9700.5 ave 20535 max 3685 min
|
||||
Histogram: 5 0 0 0 0 0 0 1 0 2
|
||||
|
||||
Total # of neighbors = 77604
|
||||
Ave neighs/atom = 56.2348
|
||||
Ave special neighs/atom = 0
|
||||
Neighbor list builds = 2
|
||||
Dangerous builds = 0
|
||||
|
||||
# Set up integration parameters
|
||||
fix timeintegration all nve
|
||||
fix thermostat all langevin 3.0000e+02 3.0000e+02 1.0000e+02 81890
|
||||
|
||||
# Equilibration (for realistic results, run for 5000000 steps)
|
||||
reset_timestep 0
|
||||
run 5000
|
||||
WARNING: Fix recenter should come after all other integration fixes (../fix_recenter.cpp:131)
|
||||
Per MPI rank memory allocation (min/avg/max) = 6.936 | 7.195 | 7.552 Mbytes
|
||||
Temp KinEng PotEng TotEng E_bond E_angle E_dihed E_vdwl
|
||||
300 1233.1611 2866.9109 4100.0721 0 0 0 2866.9109
|
||||
273.33541 1123.5553 3983.2007 5106.756 0 0 0 3983.2007
|
||||
293.68078 1207.1857 3319.6601 4526.8458 0 0 0 3319.6601
|
||||
314.21462 1291.5908 3389.2178 4680.8086 0 0 0 3389.2178
|
||||
323.77563 1330.8917 3332.9828 4663.8745 0 0 0 3332.9828
|
||||
302.5902 1243.8082 3461.7692 4705.5774 0 0 0 3461.7692
|
||||
295.39324 1214.2249 3411.5727 4625.7976 0 0 0 3411.5727
|
||||
320.52341 1317.5234 3453.1931 4770.7164 0 0 0 3453.1931
|
||||
312.00777 1282.5195 3403.3443 4685.8638 0 0 0 3403.3443
|
||||
307.96774 1265.9128 3429.7809 4695.6937 0 0 0 3429.7809
|
||||
294.75922 1211.6187 3388.8404 4600.4591 0 0 0 3388.8404
|
||||
311.24567 1279.3869 3514.9603 4794.3472 0 0 0 3514.9603
|
||||
306.6152 1260.3531 3447.2011 4707.5542 0 0 0 3447.2011
|
||||
305.23306 1254.6718 3375.5092 4630.181 0 0 0 3375.5092
|
||||
321.62889 1322.0675 3460.2581 4782.3256 0 0 0 3460.2581
|
||||
316.37725 1300.4804 3437.0312 4737.5116 0 0 0 3437.0312
|
||||
322.90522 1327.3139 3389.1262 4716.44 0 0 0 3389.1262
|
||||
307.57893 1264.3146 3359.8491 4624.1637 0 0 0 3359.8491
|
||||
302.22607 1242.3115 3406.1711 4648.4826 0 0 0 3406.1711
|
||||
302.73997 1244.4239 3220.2582 4464.6821 0 0 0 3220.2582
|
||||
303.66194 1248.2137 3318.4629 4566.6765 0 0 0 3318.4629
|
||||
308.73862 1269.0815 3369.5894 4638.671 0 0 0 3369.5894
|
||||
315.60294 1297.2976 3411.2405 4708.5381 0 0 0 3411.2405
|
||||
310.0113 1274.3129 3360.1054 4634.4183 0 0 0 3360.1054
|
||||
302.36229 1242.8714 3326.9845 4569.8559 0 0 0 3326.9845
|
||||
317.78659 1306.2735 3355.4976 4661.7711 0 0 0 3355.4976
|
||||
302.50479 1243.4571 3317.6846 4561.1417 0 0 0 3317.6846
|
||||
304.29249 1250.8056 3423.5068 4674.3124 0 0 0 3423.5068
|
||||
305.99948 1257.8222 3432.9395 4690.7617 0 0 0 3432.9395
|
||||
309.93363 1273.9937 3393.657 4667.6506 0 0 0 3393.657
|
||||
316.14884 1299.5415 3463.0636 4762.6051 0 0 0 3463.0636
|
||||
300.38817 1234.7567 3309.2495 4544.0062 0 0 0 3309.2495
|
||||
311.05735 1278.6128 3304.4418 4583.0546 0 0 0 3304.4418
|
||||
311.11872 1278.865 3291.1891 4570.0542 0 0 0 3291.1891
|
||||
315.74338 1297.8749 3341.3063 4639.1812 0 0 0 3341.3063
|
||||
297.5658 1223.1552 3316.3862 4539.5414 0 0 0 3316.3862
|
||||
311.79033 1281.6257 3357.4556 4639.0813 0 0 0 3357.4556
|
||||
310.93666 1278.1167 3414.7694 4692.8861 0 0 0 3414.7694
|
||||
307.37298 1263.468 3337.3889 4600.8569 0 0 0 3337.3889
|
||||
298.84185 1228.4005 3329.6173 4558.0178 0 0 0 3329.6173
|
||||
310.54684 1276.5143 3351.0852 4627.5995 0 0 0 3351.0852
|
||||
300.0871 1233.5191 3302.2315 4535.7506 0 0 0 3302.2315
|
||||
304.69078 1252.4427 3324.2508 4576.6935 0 0 0 3324.2508
|
||||
313.50714 1288.6827 3330.4088 4619.0915 0 0 0 3330.4088
|
||||
329.80018 1355.6559 3301.86 4657.5159 0 0 0 3301.86
|
||||
304.57609 1251.9713 3365.2938 4617.2652 0 0 0 3365.2938
|
||||
308.73584 1269.0701 3344.4155 4613.4856 0 0 0 3344.4155
|
||||
306.90951 1261.5629 3304.4698 4566.0327 0 0 0 3304.4698
|
||||
308.85761 1269.5707 3392.1511 4661.7218 0 0 0 3392.1511
|
||||
302.78788 1244.6208 3317.0849 4561.7057 0 0 0 3317.0849
|
||||
321.68092 1322.2813 3321.5755 4643.8568 0 0 0 3321.5755
|
||||
Loop time of 16.3061 on 8 procs for 5000 steps with 1380 atoms
|
||||
|
||||
Performance: 52.986 ns/day, 0.453 hours/ns, 306.634 timesteps/s
|
||||
69.6% CPU use with 8 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 2.1872 | 10.542 | 14.607 | 116.7 | 64.65
|
||||
Bond | 0.00044084 | 0.00069669 | 0.00095081 | 0.0 | 0.00
|
||||
Neigh | 0.026948 | 0.15225 | 0.44344 | 42.0 | 0.93
|
||||
Comm | 0.63452 | 4.2953 | 9.49 | 133.9 | 26.34
|
||||
Output | 0.0016391 | 0.012378 | 0.050919 | 13.9 | 0.08
|
||||
Modify | 0.45894 | 1.2107 | 4.4629 | 116.4 | 7.42
|
||||
Other | | 0.09292 | | | 0.57
|
||||
|
||||
Nlocal: 172.5 ave 380 max 70 min
|
||||
Histogram: 5 0 0 0 0 0 0 1 1 1
|
||||
Nghost: 2213 ave 4440 max 903 min
|
||||
Histogram: 3 0 0 2 0 0 2 0 0 1
|
||||
Neighs: 10042.5 ave 24051 max 3500 min
|
||||
Histogram: 5 0 0 0 0 0 0 1 1 1
|
||||
|
||||
Total # of neighbors = 80340
|
||||
Ave neighs/atom = 58.2174
|
||||
Ave special neighs/atom = 0
|
||||
Neighbor list builds = 123
|
||||
Dangerous builds = 1
|
||||
|
||||
# Turn off recentering during production phase
|
||||
unfix recentering
|
||||
|
||||
# Setup trajectory output
|
||||
dump myDump all custom 100 benzene_water.lammpstrj.gz id type x y z element
|
||||
dump_modify myDump element B W
|
||||
dump_modify myDump sort id
|
||||
|
||||
# Production (for realistic results, run for 10000000 steps)
|
||||
reset_timestep 0
|
||||
run 1000
|
||||
Per MPI rank memory allocation (min/avg/max) = 8.232 | 8.492 | 8.851 Mbytes
|
||||
Temp KinEng PotEng TotEng E_bond E_angle E_dihed E_vdwl
|
||||
321.68092 1322.2813 3784.0834 5106.3647 0 0 0 3784.0834
|
||||
310.59763 1276.7231 3318.3283 4595.0513 0 0 0 3318.3283
|
||||
303.39445 1247.1141 3324.1191 4571.2332 0 0 0 3324.1191
|
||||
311.37275 1279.9092 3305.0901 4584.9993 0 0 0 3305.0901
|
||||
311.29071 1279.572 3248.216 4527.788 0 0 0 3248.216
|
||||
314.53456 1292.906 3283.4563 4576.3623 0 0 0 3283.4563
|
||||
316.52595 1301.0916 3258.9171 4560.0087 0 0 0 3258.9171
|
||||
318.92447 1310.9509 3235.6256 4546.5765 0 0 0 3235.6256
|
||||
311.79212 1281.6331 3308.099 4589.7321 0 0 0 3308.099
|
||||
305.52477 1255.8709 3267.6907 4523.5616 0 0 0 3267.6907
|
||||
301.07457 1237.5782 3206.3997 4443.9779 0 0 0 3206.3997
|
||||
Loop time of 4.44139 on 8 procs for 1000 steps with 1380 atoms
|
||||
|
||||
Performance: 38.907 ns/day, 0.617 hours/ns, 225.155 timesteps/s
|
||||
60.8% CPU use with 8 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.656 | 2.5078 | 3.5775 | 57.7 | 56.46
|
||||
Bond | 0.00013375 | 0.0001854 | 0.0002377 | 0.0 | 0.00
|
||||
Neigh | 0.0048757 | 0.029188 | 0.090432 | 18.9 | 0.66
|
||||
Comm | 0.51836 | 1.4427 | 2.6285 | 56.9 | 32.48
|
||||
Output | 0.083084 | 0.089199 | 0.10333 | 2.3 | 2.01
|
||||
Modify | 0.0087376 | 0.019705 | 0.038437 | 8.4 | 0.44
|
||||
Other | | 0.3526 | | | 7.94
|
||||
|
||||
Nlocal: 172.5 ave 388 max 69 min
|
||||
Histogram: 5 0 0 0 0 0 0 2 0 1
|
||||
Nghost: 2207.88 ave 4429 max 896 min
|
||||
Histogram: 3 0 0 2 0 0 2 0 0 1
|
||||
Neighs: 10094.1 ave 24847 max 3403 min
|
||||
Histogram: 5 0 0 0 0 0 1 1 0 1
|
||||
|
||||
Total # of neighbors = 80753
|
||||
Ave neighs/atom = 58.5167
|
||||
Ave special neighs/atom = 0
|
||||
Neighbor list builds = 23
|
||||
Dangerous builds = 0
|
||||
|
||||
|
||||
Total wall time: 0:00:21
|
||||
@ -0,0 +1,300 @@
|
||||
LAMMPS (27 Oct 2021)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# LAMMPS input file for 26.5% benzene mole fraction solution
|
||||
# with 380 benzene and 1000 water molecules,
|
||||
# using all possible local density potentials
|
||||
# between benzene and water
|
||||
#
|
||||
# Author: Tanmoy Sanyal, Shell Group, UC Santa Barbara
|
||||
#
|
||||
# Refer: Sanyal and Shell, JPC-B, 2018, 122 (21), 5678-5693
|
||||
|
||||
|
||||
|
||||
# Initialize simulation box
|
||||
dimension 3
|
||||
boundary p p p
|
||||
units real
|
||||
atom_style molecular
|
||||
|
||||
# Set potential styles
|
||||
pair_style hybrid/overlay table spline 500 local/density
|
||||
|
||||
# Read molecule data and set initial velocities
|
||||
read_data benzene_water.data
|
||||
Reading data file ...
|
||||
orthogonal box = (-12.865000 -12.865000 -64.829000) to (12.865000 12.865000 64.829000)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
1380 atoms
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 0 0
|
||||
special bond factors coul: 0 0 0
|
||||
0 = max # of 1-2 neighbors
|
||||
0 = max # of 1-3 neighbors
|
||||
0 = max # of 1-4 neighbors
|
||||
1 = max # of special neighbors
|
||||
special bonds CPU = 0.000 seconds
|
||||
read_data CPU = 0.006 seconds
|
||||
velocity all create 3.0000e+02 16611 rot yes dist gaussian
|
||||
|
||||
# Assign potentials
|
||||
pair_coeff 1 1 table benzene_water.pair.table PairBB
|
||||
WARNING: 33 of 500 force values in table PairBB are inconsistent with -dE/dr.
|
||||
WARNING: Should only be flagged at inflection points (src/pair_table.cpp:465)
|
||||
WARNING: 150 of 500 distance values in table 1e-06 with relative error
|
||||
WARNING: over PairBB to re-computed values (src/pair_table.cpp:473)
|
||||
pair_coeff 1 2 table benzene_water.pair.table PairWW
|
||||
WARNING: 61 of 500 force values in table PairWW are inconsistent with -dE/dr.
|
||||
WARNING: Should only be flagged at inflection points (src/pair_table.cpp:465)
|
||||
WARNING: 90 of 500 distance values in table 1e-06 with relative error
|
||||
WARNING: over PairWW to re-computed values (src/pair_table.cpp:473)
|
||||
pair_coeff 2 2 table benzene_water.pair.table PairBW
|
||||
WARNING: 108 of 500 force values in table PairBW are inconsistent with -dE/dr.
|
||||
WARNING: Should only be flagged at inflection points (src/pair_table.cpp:465)
|
||||
WARNING: 135 of 500 distance values in table 1e-06 with relative error
|
||||
WARNING: over PairBW to re-computed values (src/pair_table.cpp:473)
|
||||
pair_coeff * * local/density benzene_water.localdensity.table
|
||||
|
||||
# Recentering during minimization and equilibration
|
||||
fix recentering all recenter 0.0 0.0 0.0 units box
|
||||
|
||||
# Thermostat & time integration
|
||||
timestep 2.0
|
||||
thermo 100
|
||||
thermo_style custom temp ke pe etotal ebond eangle edihed evdwl
|
||||
|
||||
# Minimization
|
||||
minimize 1.e-4 0.0 10000 10000
|
||||
|
||||
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||
|
||||
Your simulation uses code contributions which should be cited:
|
||||
|
||||
- pair_style local/density command:
|
||||
|
||||
@Article{Sanyal16,
|
||||
author = {T.Sanyal and M.Scott Shell},
|
||||
title = {Coarse-grained models using local-density potentials optimized with the relative entropy: Application to implicit solvation},
|
||||
journal = {J.~Chem.~Phys.},
|
||||
year = 2016,
|
||||
DOI = doi.org/10.1063/1.4958629}
|
||||
|
||||
@Article{Sanyal18,
|
||||
author = {T.Sanyal and M.Scott Shell},
|
||||
title = {Transferable coarse-grained models of liquid-liquid equilibrium using local density potentials optimized with the relative entropy},
|
||||
journal = {J.~Phys.~Chem. B},
|
||||
year = 2018,
|
||||
DOI = doi.org/10.1021/acs.jpcb.7b12446}
|
||||
|
||||
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||
|
||||
WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (src/min.cpp:187)
|
||||
generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 0 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 15.25
|
||||
ghost atom cutoff = 15.25
|
||||
binsize = 7.625, bins = 4 4 18
|
||||
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||
(1) pair table, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d
|
||||
bin: standard
|
||||
(2) pair local/density, perpetual, copy from (1)
|
||||
attributes: half, newton on
|
||||
pair build: copy
|
||||
stencil: none
|
||||
bin: none
|
||||
Per MPI rank memory allocation (min/avg/max) = 8.754 | 8.754 | 8.754 Mbytes
|
||||
Temp KinEng PotEng TotEng E_bond E_angle E_dihed E_vdwl
|
||||
300 1233.1611 2374.6749 3607.836 0 0 0 2374.6749
|
||||
300 1233.1611 985.54829 2218.7094 0 0 0 985.54829
|
||||
300 1233.1611 962.66036 2195.8215 0 0 0 962.66036
|
||||
Loop time of 0.812343 on 1 procs for 134 steps with 1380 atoms
|
||||
|
||||
99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = energy tolerance
|
||||
Energy initial, next-to-last, final =
|
||||
2374.67491482358 962.664796664787 962.660357218268
|
||||
Force two-norm initial, final = 263.77519 15.741017
|
||||
Force max component initial, final = 22.412654 7.9360139
|
||||
Final line search alpha, max atom move = 0.014975513 0.11884588
|
||||
Iterations, force evaluations = 134 240
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.78539 | 0.78539 | 0.78539 | 0.0 | 96.68
|
||||
Bond | 2.0149e-05 | 2.0149e-05 | 2.0149e-05 | 0.0 | 0.00
|
||||
Neigh | 0.016759 | 0.016759 | 0.016759 | 0.0 | 2.06
|
||||
Comm | 0.0045 | 0.0045 | 0.0045 | 0.0 | 0.55
|
||||
Output | 2.9402e-05 | 2.9402e-05 | 2.9402e-05 | 0.0 | 0.00
|
||||
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Other | | 0.005647 | | | 0.70
|
||||
|
||||
Nlocal: 1380.00 ave 1380 max 1380 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 5832.00 ave 5832 max 5832 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 78165.0 ave 78165 max 78165 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 78165
|
||||
Ave neighs/atom = 56.641304
|
||||
Ave special neighs/atom = 0.0000000
|
||||
Neighbor list builds = 5
|
||||
Dangerous builds = 0
|
||||
|
||||
# Set up integration parameters
|
||||
fix timeintegration all nve
|
||||
fix thermostat all langevin 3.0000e+02 3.0000e+02 1.0000e+02 81890
|
||||
|
||||
# Equilibration (for realistic results, run for 5000000 steps)
|
||||
reset_timestep 0
|
||||
run 5000
|
||||
generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||
WARNING: Fix recenter should come after all other integration fixes (src/fix_recenter.cpp:133)
|
||||
Per MPI rank memory allocation (min/avg/max) = 7.629 | 7.629 | 7.629 Mbytes
|
||||
Temp KinEng PotEng TotEng E_bond E_angle E_dihed E_vdwl
|
||||
300 1233.1611 962.66036 2195.8215 0 0 0 962.66036
|
||||
253.1913 1040.7522 1803.711 2844.4633 0 0 0 1803.711
|
||||
290.31049 1193.332 2059.0637 3252.3958 0 0 0 2059.0637
|
||||
299.30778 1230.3157 2140.226 3370.5417 0 0 0 2140.226
|
||||
309.81524 1273.507 2178.3782 3451.8853 0 0 0 2178.3782
|
||||
299.79526 1232.3195 2229.9248 3462.2444 0 0 0 2229.9248
|
||||
299.24909 1230.0745 2260.7129 3490.7874 0 0 0 2260.7129
|
||||
299.5898 1231.475 2244.2384 3475.7134 0 0 0 2244.2384
|
||||
297.81223 1224.1682 2320.27 3544.4382 0 0 0 2320.27
|
||||
301.53975 1239.4903 2277.0431 3516.5334 0 0 0 2277.0431
|
||||
292.00572 1200.3003 2292.3073 3492.6076 0 0 0 2292.3073
|
||||
309.19709 1270.9661 2303.6055 3574.5716 0 0 0 2303.6055
|
||||
297.54933 1223.0876 2304.127 3527.2146 0 0 0 2304.127
|
||||
303.48106 1247.4702 2303.5673 3551.0375 0 0 0 2303.5673
|
||||
296.46047 1218.6118 2256.1591 3474.7709 0 0 0 2256.1591
|
||||
299.4835 1231.038 2280.0452 3511.0832 0 0 0 2280.0452
|
||||
306.25958 1258.8914 2307.9795 3566.8709 0 0 0 2307.9795
|
||||
304.67335 1252.3711 2284.8252 3537.1963 0 0 0 2284.8252
|
||||
298.33637 1226.3227 2289.8499 3516.1726 0 0 0 2289.8499
|
||||
303.1338 1246.0427 2342.2148 3588.2575 0 0 0 2342.2148
|
||||
305.86051 1257.251 2341.0106 3598.2616 0 0 0 2341.0106
|
||||
297.75418 1223.9296 2303.5613 3527.4909 0 0 0 2303.5613
|
||||
296.79348 1219.9806 2327.5207 3547.5013 0 0 0 2327.5207
|
||||
307.25403 1262.9791 2288.4219 3551.401 0 0 0 2288.4219
|
||||
301.26976 1238.3805 2291.2465 3529.627 0 0 0 2291.2465
|
||||
297.17249 1221.5385 2283.3926 3504.9311 0 0 0 2283.3926
|
||||
313.99072 1290.6705 2293.9661 3584.6366 0 0 0 2293.9661
|
||||
301.70804 1240.1821 2331.1694 3571.3515 0 0 0 2331.1694
|
||||
300.62599 1235.7343 2325.4367 3561.171 0 0 0 2325.4367
|
||||
292.13495 1200.8316 2315.631 3516.4626 0 0 0 2315.631
|
||||
313.9981 1290.7008 2286.0536 3576.7545 0 0 0 2286.0536
|
||||
300.25311 1234.2015 2324.2379 3558.4394 0 0 0 2324.2379
|
||||
309.3746 1271.6958 2322.2298 3593.9256 0 0 0 2322.2298
|
||||
300.23041 1234.1082 2332.7521 3566.8603 0 0 0 2332.7521
|
||||
302.97054 1245.3716 2303.1689 3548.5405 0 0 0 2303.1689
|
||||
294.77155 1211.6694 2334.5087 3546.1781 0 0 0 2334.5087
|
||||
296.81476 1220.0681 2322.5932 3542.6613 0 0 0 2322.5932
|
||||
301.83238 1240.6932 2345.4841 3586.1773 0 0 0 2345.4841
|
||||
295.0399 1212.7724 2312.3889 3525.1614 0 0 0 2312.3889
|
||||
300.73565 1236.185 2338.8384 3575.0235 0 0 0 2338.8384
|
||||
303.02264 1245.5858 2310.0868 3555.6726 0 0 0 2310.0868
|
||||
302.86404 1244.9339 2332.2001 3577.134 0 0 0 2332.2001
|
||||
293.77916 1207.5901 2293.2799 3500.8701 0 0 0 2293.2799
|
||||
299.30072 1230.2867 2317.5065 3547.7933 0 0 0 2317.5065
|
||||
311.05029 1278.5837 2311.0476 3589.6313 0 0 0 2311.0476
|
||||
293.25646 1205.4416 2314.7398 3520.1814 0 0 0 2314.7398
|
||||
310.49018 1276.2814 2337.4909 3613.7723 0 0 0 2337.4909
|
||||
302.37336 1242.9169 2340.3197 3583.2366 0 0 0 2340.3197
|
||||
297.06862 1221.1116 2323.9136 3545.0252 0 0 0 2323.9136
|
||||
300.54817 1235.4144 2315.2405 3550.6549 0 0 0 2315.2405
|
||||
309.10643 1270.5934 2333.1848 3603.7783 0 0 0 2333.1848
|
||||
Loop time of 15.2696 on 1 procs for 5000 steps with 1380 atoms
|
||||
|
||||
Performance: 56.583 ns/day, 0.424 hours/ns, 327.447 timesteps/s
|
||||
99.9% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 14.432 | 14.432 | 14.432 | 0.0 | 94.51
|
||||
Bond | 0.00032375 | 0.00032375 | 0.00032375 | 0.0 | 0.00
|
||||
Neigh | 0.41541 | 0.41541 | 0.41541 | 0.0 | 2.72
|
||||
Comm | 0.0975 | 0.0975 | 0.0975 | 0.0 | 0.64
|
||||
Output | 0.0013044 | 0.0013044 | 0.0013044 | 0.0 | 0.01
|
||||
Modify | 0.30336 | 0.30336 | 0.30336 | 0.0 | 1.99
|
||||
Other | | 0.01973 | | | 0.13
|
||||
|
||||
Nlocal: 1380.00 ave 1380 max 1380 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 5843.00 ave 5843 max 5843 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 76949.0 ave 76949 max 76949 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 76949
|
||||
Ave neighs/atom = 55.760145
|
||||
Ave special neighs/atom = 0.0000000
|
||||
Neighbor list builds = 121
|
||||
Dangerous builds = 1
|
||||
|
||||
# Turn off recentering during production phase
|
||||
unfix recentering
|
||||
|
||||
# Setup trajectory output
|
||||
dump myDump all custom 100 benzene_water.lammpstrj.gz id type x y z element
|
||||
dump_modify myDump element B W
|
||||
dump_modify myDump sort id
|
||||
|
||||
# Production (for realistic results, run for 10000000 steps)
|
||||
reset_timestep 0
|
||||
run 1000
|
||||
generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||
Per MPI rank memory allocation (min/avg/max) = 9.022 | 9.022 | 9.022 Mbytes
|
||||
Temp KinEng PotEng TotEng E_bond E_angle E_dihed E_vdwl
|
||||
309.10643 1270.5934 2333.1848 3603.7783 0 0 0 2333.1848
|
||||
300.84572 1236.6375 2331.3493 3567.9868 0 0 0 2331.3493
|
||||
300.90599 1236.8852 2337.6775 3574.5627 0 0 0 2337.6775
|
||||
302.77895 1244.5841 2341.7778 3586.362 0 0 0 2341.7778
|
||||
291.66639 1198.9055 2320.3512 3519.2567 0 0 0 2320.3512
|
||||
298.7003 1227.8187 2292.8195 3520.6382 0 0 0 2292.8195
|
||||
301.11163 1237.7305 2310.017 3547.7475 0 0 0 2310.017
|
||||
305.22515 1254.6393 2315.1355 3569.7748 0 0 0 2315.1355
|
||||
295.15921 1213.2629 2310.184 3523.4468 0 0 0 2310.184
|
||||
299.2024 1229.8826 2332.2118 3562.0943 0 0 0 2332.2118
|
||||
302.80078 1244.6738 2320.3763 3565.0502 0 0 0 2320.3763
|
||||
Loop time of 3.07208 on 1 procs for 1000 steps with 1380 atoms
|
||||
|
||||
Performance: 56.249 ns/day, 0.427 hours/ns, 325.512 timesteps/s
|
||||
99.9% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 2.8993 | 2.8993 | 2.8993 | 0.0 | 94.37
|
||||
Bond | 6.5327e-05 | 6.5327e-05 | 6.5327e-05 | 0.0 | 0.00
|
||||
Neigh | 0.083502 | 0.083502 | 0.083502 | 0.0 | 2.72
|
||||
Comm | 0.019967 | 0.019967 | 0.019967 | 0.0 | 0.65
|
||||
Output | 0.012268 | 0.012268 | 0.012268 | 0.0 | 0.40
|
||||
Modify | 0.052801 | 0.052801 | 0.052801 | 0.0 | 1.72
|
||||
Other | | 0.004203 | | | 0.14
|
||||
|
||||
Nlocal: 1380.00 ave 1380 max 1380 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 5860.00 ave 5860 max 5860 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 77055.0 ave 77055 max 77055 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 77055
|
||||
Ave neighs/atom = 55.836957
|
||||
Ave special neighs/atom = 0.0000000
|
||||
Neighbor list builds = 24
|
||||
Dangerous builds = 0
|
||||
|
||||
|
||||
Total wall time: 0:00:19
|
||||
@ -0,0 +1,299 @@
|
||||
LAMMPS (27 Oct 2021)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# LAMMPS input file for 26.5% benzene mole fraction solution
|
||||
# with 380 benzene and 1000 water molecules,
|
||||
# using all possible local density potentials
|
||||
# between benzene and water
|
||||
#
|
||||
# Author: Tanmoy Sanyal, Shell Group, UC Santa Barbara
|
||||
#
|
||||
# Refer: Sanyal and Shell, JPC-B, 2018, 122 (21), 5678-5693
|
||||
|
||||
|
||||
|
||||
# Initialize simulation box
|
||||
dimension 3
|
||||
boundary p p p
|
||||
units real
|
||||
atom_style molecular
|
||||
|
||||
# Set potential styles
|
||||
pair_style hybrid/overlay table spline 500 local/density
|
||||
|
||||
# Read molecule data and set initial velocities
|
||||
read_data benzene_water.data
|
||||
Reading data file ...
|
||||
orthogonal box = (-12.865000 -12.865000 -64.829000) to (12.865000 12.865000 64.829000)
|
||||
1 by 1 by 4 MPI processor grid
|
||||
reading atoms ...
|
||||
1380 atoms
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 0 0
|
||||
special bond factors coul: 0 0 0
|
||||
0 = max # of 1-2 neighbors
|
||||
0 = max # of 1-3 neighbors
|
||||
0 = max # of 1-4 neighbors
|
||||
1 = max # of special neighbors
|
||||
special bonds CPU = 0.000 seconds
|
||||
read_data CPU = 0.007 seconds
|
||||
velocity all create 3.0000e+02 16611 rot yes dist gaussian
|
||||
|
||||
# Assign potentials
|
||||
pair_coeff 1 1 table benzene_water.pair.table PairBB
|
||||
WARNING: 33 of 500 force values in table PairBB are inconsistent with -dE/dr.
|
||||
WARNING: Should only be flagged at inflection points (src/pair_table.cpp:465)
|
||||
WARNING: 150 of 500 distance values in table 1e-06 with relative error
|
||||
WARNING: over PairBB to re-computed values (src/pair_table.cpp:473)
|
||||
pair_coeff 1 2 table benzene_water.pair.table PairWW
|
||||
WARNING: 61 of 500 force values in table PairWW are inconsistent with -dE/dr.
|
||||
WARNING: Should only be flagged at inflection points (src/pair_table.cpp:465)
|
||||
WARNING: 90 of 500 distance values in table 1e-06 with relative error
|
||||
WARNING: over PairWW to re-computed values (src/pair_table.cpp:473)
|
||||
pair_coeff 2 2 table benzene_water.pair.table PairBW
|
||||
WARNING: 108 of 500 force values in table PairBW are inconsistent with -dE/dr.
|
||||
WARNING: Should only be flagged at inflection points (src/pair_table.cpp:465)
|
||||
WARNING: 135 of 500 distance values in table 1e-06 with relative error
|
||||
WARNING: over PairBW to re-computed values (src/pair_table.cpp:473)
|
||||
pair_coeff * * local/density benzene_water.localdensity.table
|
||||
|
||||
# Recentering during minimization and equilibration
|
||||
fix recentering all recenter 0.0 0.0 0.0 units box
|
||||
|
||||
# Thermostat & time integration
|
||||
timestep 2.0
|
||||
thermo 100
|
||||
thermo_style custom temp ke pe etotal ebond eangle edihed evdwl
|
||||
|
||||
# Minimization
|
||||
minimize 1.e-4 0.0 10000 10000
|
||||
|
||||
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||
|
||||
Your simulation uses code contributions which should be cited:
|
||||
|
||||
- pair_style local/density command:
|
||||
|
||||
@Article{Sanyal16,
|
||||
author = {T.Sanyal and M.Scott Shell},
|
||||
title = {Coarse-grained models using local-density potentials optimized with the relative entropy: Application to implicit solvation},
|
||||
journal = {J.~Chem.~Phys.},
|
||||
year = 2016,
|
||||
DOI = doi.org/10.1063/1.4958629}
|
||||
|
||||
@Article{Sanyal18,
|
||||
author = {T.Sanyal and M.Scott Shell},
|
||||
title = {Transferable coarse-grained models of liquid-liquid equilibrium using local density potentials optimized with the relative entropy},
|
||||
journal = {J.~Phys.~Chem. B},
|
||||
year = 2018,
|
||||
DOI = doi.org/10.1021/acs.jpcb.7b12446}
|
||||
|
||||
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||
|
||||
WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (src/min.cpp:187)
|
||||
generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 0 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 15.25
|
||||
ghost atom cutoff = 15.25
|
||||
binsize = 7.625, bins = 4 4 18
|
||||
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||
(1) pair table, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d
|
||||
bin: standard
|
||||
(2) pair local/density, perpetual, copy from (1)
|
||||
attributes: half, newton on
|
||||
pair build: copy
|
||||
stencil: none
|
||||
bin: none
|
||||
Per MPI rank memory allocation (min/avg/max) = 8.441 | 8.589 | 8.688 Mbytes
|
||||
Temp KinEng PotEng TotEng E_bond E_angle E_dihed E_vdwl
|
||||
300 1233.1611 2374.6749 3607.836 0 0 0 2374.6749
|
||||
300 1233.1611 1024.8113 2257.9724 0 0 0 1024.8113
|
||||
Loop time of 0.240559 on 4 procs for 74 steps with 1380 atoms
|
||||
|
||||
98.5% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = energy tolerance
|
||||
Energy initial, next-to-last, final =
|
||||
2374.67491482358 1024.89407898645 1024.81130011575
|
||||
Force two-norm initial, final = 263.77519 20.459697
|
||||
Force max component initial, final = 22.412654 8.6082349
|
||||
Final line search alpha, max atom move = 0.027790997 0.23923143
|
||||
Iterations, force evaluations = 74 118
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.15928 | 0.1873 | 0.22814 | 6.5 | 77.86
|
||||
Bond | 3.857e-06 | 4.4012e-06 | 5.496e-06 | 0.0 | 0.00
|
||||
Neigh | 0.00064142 | 0.0028761 | 0.0058864 | 4.2 | 1.20
|
||||
Comm | 0.0040776 | 0.039595 | 0.074187 | 12.6 | 16.46
|
||||
Output | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Other | | 0.01078 | | | 4.48
|
||||
|
||||
Nlocal: 345.000 ave 664 max 147 min
|
||||
Histogram: 2 0 0 0 0 1 0 0 0 1
|
||||
Nghost: 2850.50 ave 4438 max 1208 min
|
||||
Histogram: 1 0 0 1 0 0 1 0 0 1
|
||||
Neighs: 19377.5 ave 37718 max 7456 min
|
||||
Histogram: 2 0 0 0 0 1 0 0 0 1
|
||||
|
||||
Total # of neighbors = 77510
|
||||
Ave neighs/atom = 56.166667
|
||||
Ave special neighs/atom = 0.0000000
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
|
||||
# Set up integration parameters
|
||||
fix timeintegration all nve
|
||||
fix thermostat all langevin 3.0000e+02 3.0000e+02 1.0000e+02 81890
|
||||
|
||||
# Equilibration (for realistic results, run for 5000000 steps)
|
||||
reset_timestep 0
|
||||
run 5000
|
||||
generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||
WARNING: Fix recenter should come after all other integration fixes (src/fix_recenter.cpp:133)
|
||||
Per MPI rank memory allocation (min/avg/max) = 7.316 | 7.465 | 7.563 Mbytes
|
||||
Temp KinEng PotEng TotEng E_bond E_angle E_dihed E_vdwl
|
||||
300 1233.1611 1024.8113 2257.9724 0 0 0 1024.8113
|
||||
263.61917 1083.6164 1866.745 2950.3614 0 0 0 1866.745
|
||||
296.0253 1216.823 2122.8463 3339.6692 0 0 0 2122.8463
|
||||
301.93846 1241.1292 2172.9802 3414.1095 0 0 0 2172.9802
|
||||
293.9491 1208.2887 2205.4892 3413.7779 0 0 0 2205.4892
|
||||
286.33795 1177.0027 2204.8908 3381.8935 0 0 0 2204.8908
|
||||
295.48217 1214.5904 2230.8849 3445.4753 0 0 0 2230.8849
|
||||
293.88908 1208.0419 2218.7563 3426.7982 0 0 0 2218.7563
|
||||
295.13798 1213.1756 2277.4515 3490.6271 0 0 0 2277.4515
|
||||
290.39538 1193.681 2273.4385 3467.1195 0 0 0 2273.4385
|
||||
297.56782 1223.1635 2268.7182 3491.8817 0 0 0 2268.7182
|
||||
306.45578 1259.6978 2289.1507 3548.8486 0 0 0 2289.1507
|
||||
308.54582 1268.289 2284.8514 3553.1404 0 0 0 2284.8514
|
||||
302.17353 1242.0955 2262.5577 3504.6532 0 0 0 2262.5577
|
||||
295.30087 1213.8452 2315.8853 3529.7305 0 0 0 2315.8853
|
||||
308.59197 1268.4787 2291.8314 3560.3101 0 0 0 2291.8314
|
||||
297.75618 1223.9378 2287.2003 3511.1381 0 0 0 2287.2003
|
||||
303.43395 1247.2765 2297.7158 3544.9923 0 0 0 2297.7158
|
||||
307.16233 1262.6021 2255.9769 3518.5791 0 0 0 2255.9769
|
||||
301.34428 1238.6868 2284.416 3523.1028 0 0 0 2284.416
|
||||
295.43209 1214.3846 2294.1043 3508.4889 0 0 0 2294.1043
|
||||
287.86904 1183.2963 2257.0204 3440.3168 0 0 0 2257.0204
|
||||
297.2661 1221.9233 2251.4194 3473.3428 0 0 0 2251.4194
|
||||
298.90221 1228.6486 2261.834 3490.4826 0 0 0 2261.834
|
||||
288.07202 1184.1307 2284.1918 3468.3225 0 0 0 2284.1918
|
||||
300.41201 1234.8547 2303.9573 3538.812 0 0 0 2303.9573
|
||||
283.91279 1167.034 2329.7936 3496.8277 0 0 0 2329.7936
|
||||
297.27507 1221.9602 2337.0516 3559.0118 0 0 0 2337.0516
|
||||
296.22263 1217.6341 2335.6424 3553.2765 0 0 0 2335.6424
|
||||
296.13784 1217.2856 2364.7034 3581.989 0 0 0 2364.7034
|
||||
308.17642 1266.7706 2320.2753 3587.0459 0 0 0 2320.2753
|
||||
310.26592 1275.3596 2301.9318 3577.2914 0 0 0 2301.9318
|
||||
292.97391 1204.2801 2289.8116 3494.0917 0 0 0 2289.8116
|
||||
294.81231 1211.8369 2315.0388 3526.8757 0 0 0 2315.0388
|
||||
298.66155 1227.6594 2317.2844 3544.9437 0 0 0 2317.2844
|
||||
302.77939 1244.5859 2301.2063 3545.7922 0 0 0 2301.2063
|
||||
291.47597 1198.1228 2285.1757 3483.2985 0 0 0 2285.1757
|
||||
286.19045 1176.3964 2265.2665 3441.6629 0 0 0 2265.2665
|
||||
295.58144 1214.9984 2272.3165 3487.315 0 0 0 2272.3165
|
||||
283.86988 1166.8577 2320.6142 3487.4719 0 0 0 2320.6142
|
||||
300.0576 1233.3979 2330.8962 3564.2941 0 0 0 2330.8962
|
||||
299.86413 1232.6026 2321.2281 3553.8308 0 0 0 2321.2281
|
||||
292.79017 1203.5248 2334.2308 3537.7557 0 0 0 2334.2308
|
||||
291.5027 1198.2327 2335.2119 3533.4446 0 0 0 2335.2119
|
||||
299.55471 1231.3307 2332.5216 3563.8524 0 0 0 2332.5216
|
||||
293.29613 1205.6046 2295.3263 3500.9309 0 0 0 2295.3263
|
||||
303.13151 1246.0333 2310.0548 3556.0881 0 0 0 2310.0548
|
||||
298.83954 1228.391 2297.3117 3525.7027 0 0 0 2297.3117
|
||||
297.44775 1222.67 2307.2483 3529.9183 0 0 0 2307.2483
|
||||
309.59874 1272.6171 2309.2439 3581.861 0 0 0 2309.2439
|
||||
307.47844 1263.9015 2274.998 3538.8995 0 0 0 2274.998
|
||||
Loop time of 11.2235 on 4 procs for 5000 steps with 1380 atoms
|
||||
|
||||
Performance: 76.982 ns/day, 0.312 hours/ns, 445.495 timesteps/s
|
||||
98.5% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 7.1444 | 8.5074 | 10.534 | 44.9 | 75.80
|
||||
Bond | 0.00017048 | 0.00020672 | 0.00030488 | 0.0 | 0.00
|
||||
Neigh | 0.026174 | 0.12108 | 0.26052 | 28.2 | 1.08
|
||||
Comm | 0.21788 | 1.8597 | 3.3375 | 81.2 | 16.57
|
||||
Output | 0.0008989 | 0.0069895 | 0.021647 | 10.2 | 0.06
|
||||
Modify | 0.19418 | 0.7044 | 2.1378 | 98.6 | 6.28
|
||||
Other | | 0.02368 | | | 0.21
|
||||
|
||||
Nlocal: 345.000 ave 678 max 148 min
|
||||
Histogram: 2 0 0 0 1 0 0 0 0 1
|
||||
Nghost: 2854.25 ave 4464 max 1181 min
|
||||
Histogram: 1 0 0 1 0 0 1 0 0 1
|
||||
Neighs: 19366.8 ave 38533 max 7481 min
|
||||
Histogram: 2 0 0 0 0 1 0 0 0 1
|
||||
|
||||
Total # of neighbors = 77467
|
||||
Ave neighs/atom = 56.135507
|
||||
Ave special neighs/atom = 0.0000000
|
||||
Neighbor list builds = 121
|
||||
Dangerous builds = 1
|
||||
|
||||
# Turn off recentering during production phase
|
||||
unfix recentering
|
||||
|
||||
# Setup trajectory output
|
||||
dump myDump all custom 100 benzene_water.lammpstrj.gz id type x y z element
|
||||
dump_modify myDump element B W
|
||||
dump_modify myDump sort id
|
||||
|
||||
# Production (for realistic results, run for 10000000 steps)
|
||||
reset_timestep 0
|
||||
run 1000
|
||||
generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
|
||||
Per MPI rank memory allocation (min/avg/max) = 8.640 | 8.791 | 8.894 Mbytes
|
||||
Temp KinEng PotEng TotEng E_bond E_angle E_dihed E_vdwl
|
||||
307.47844 1263.9015 2274.998 3538.8995 0 0 0 2274.998
|
||||
309.46142 1272.0526 2274.8499 3546.9026 0 0 0 2274.8499
|
||||
300.70977 1236.0787 2301.0588 3537.1374 0 0 0 2301.0588
|
||||
300.53659 1235.3668 2316.1008 3551.4675 0 0 0 2316.1008
|
||||
300.48582 1235.1581 2296.3009 3531.459 0 0 0 2296.3009
|
||||
299.2618 1230.1267 2325.7501 3555.8768 0 0 0 2325.7501
|
||||
303.00905 1245.5299 2321.8238 3567.3537 0 0 0 2321.8238
|
||||
300.07018 1233.4496 2339.2833 3572.7329 0 0 0 2339.2833
|
||||
304.20292 1250.4374 2353.1018 3603.5392 0 0 0 2353.1018
|
||||
304.19487 1250.4043 2334.5087 3584.913 0 0 0 2334.5087
|
||||
294.24283 1209.4961 2335.0535 3544.5496 0 0 0 2335.0535
|
||||
Loop time of 2.90512 on 4 procs for 1000 steps with 1380 atoms
|
||||
|
||||
Performance: 59.481 ns/day, 0.403 hours/ns, 344.220 timesteps/s
|
||||
98.4% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 1.8627 | 2.2082 | 2.7289 | 22.6 | 76.01
|
||||
Bond | 4.042e-05 | 5.3677e-05 | 8.4044e-05 | 0.0 | 0.00
|
||||
Neigh | 0.0066184 | 0.030172 | 0.064523 | 13.9 | 1.04
|
||||
Comm | 0.05914 | 0.51145 | 0.86887 | 40.7 | 17.61
|
||||
Output | 0.0057814 | 0.0073478 | 0.011158 | 2.6 | 0.25
|
||||
Modify | 0.0085337 | 0.020869 | 0.042248 | 9.4 | 0.72
|
||||
Other | | 0.127 | | | 4.37
|
||||
|
||||
Nlocal: 345.000 ave 682 max 147 min
|
||||
Histogram: 2 0 0 0 1 0 0 0 0 1
|
||||
Nghost: 2836.25 ave 4427 max 1175 min
|
||||
Histogram: 1 0 0 1 0 0 1 0 0 1
|
||||
Neighs: 19249.8 ave 38683 max 7433 min
|
||||
Histogram: 2 0 0 0 1 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 76999
|
||||
Ave neighs/atom = 55.796377
|
||||
Ave special neighs/atom = 0.0000000
|
||||
Neighbor list builds = 23
|
||||
Dangerous builds = 0
|
||||
|
||||
|
||||
Total wall time: 0:00:14
|
||||
@ -1,6 +1,6 @@
|
||||
# LAMMPS input file for 50.0% methanol mole fraction solution
|
||||
# with 2500 methanol molecules in implicit water.
|
||||
#
|
||||
#
|
||||
#
|
||||
# Author: David Rosenberger, van der Vegt Group, TU Darmstadt
|
||||
#
|
||||
@ -9,7 +9,7 @@
|
||||
|
||||
# Initialize simulation box
|
||||
dimension 3
|
||||
boundary p p p
|
||||
boundary p p p
|
||||
units real
|
||||
atom_style molecular
|
||||
|
||||
@ -17,7 +17,7 @@ atom_style molecular
|
||||
pair_style hybrid/overlay table spline 500 local/density
|
||||
|
||||
# Read molecule data and set initial velocities
|
||||
read_data methanol_implicit_water.data
|
||||
read_data methanol_implicit_water.data
|
||||
velocity all create 3.0000e+02 12142 rot yes dist gaussian
|
||||
|
||||
# Assign potentials
|
||||
@ -31,7 +31,7 @@ pair_coeff * * local/density methanol_implicit_water.localdensity.t
|
||||
fix recentering all recenter 0.0 0.0 0.0 units box
|
||||
|
||||
#Thermostat & time integration
|
||||
timestep 1.0
|
||||
timestep 1.0
|
||||
thermo 100
|
||||
thermo_style custom etotal ke pe temp evdwl
|
||||
|
||||
@ -52,15 +52,14 @@ run 2000
|
||||
|
||||
#turn off recentering during production run
|
||||
unfix recentering
|
||||
|
||||
reset_timestep 0
|
||||
|
||||
#setup trajectory output
|
||||
dump myDump all custom 100 methanol_implicit_water.lammpstrj.gz id type x y z element
|
||||
dump_modify myDump element M
|
||||
dump_modify myDump sort id
|
||||
#dump myDump all custom 100 methanol_implicit_water.lammpstrj.gz id type x y z element
|
||||
#dump_modify myDump element M
|
||||
#dump_modify myDump sort id
|
||||
|
||||
#run production (for realistic results, run for 10000000 steps)
|
||||
reset_timestep 0
|
||||
thermo 1000
|
||||
thermo_style custom etotal ke pe temp evdwl
|
||||
run 10000
|
||||
@ -1,226 +0,0 @@
|
||||
LAMMPS (7 Aug 2019)
|
||||
# LAMMPS input file for 50.0% methanol mole fraction solution
|
||||
# with 2500 methanol molecules in implicit water.
|
||||
#
|
||||
#
|
||||
# Author: David Rosenberger, van der Vegt Group, TU Darmstadt
|
||||
#
|
||||
# Refer: Rosenberger, Sanyal, Shell, van der Vegt, J. Chem. Theory Comput. 15, 2881-2895 (2019)
|
||||
|
||||
|
||||
# Initialize simulation box
|
||||
dimension 3
|
||||
boundary p p p
|
||||
units real
|
||||
atom_style molecular
|
||||
|
||||
# Set potential styles
|
||||
pair_style hybrid/overlay table spline 500 local/density
|
||||
|
||||
# Read molecule data and set initial velocities
|
||||
read_data methanol_implicit_water.data
|
||||
orthogonal box = (-31.123 -31.123 -31.123) to (31.123 31.123 31.123)
|
||||
2 by 2 by 2 MPI processor grid
|
||||
reading atoms ...
|
||||
2500 atoms
|
||||
0 = max # of 1-2 neighbors
|
||||
0 = max # of 1-3 neighbors
|
||||
0 = max # of 1-4 neighbors
|
||||
1 = max # of special neighbors
|
||||
special bonds CPU = 0.00063014 secs
|
||||
read_data CPU = 0.00599909 secs
|
||||
velocity all create 3.0000e+02 12142 rot yes dist gaussian
|
||||
|
||||
# Assign potentials
|
||||
pair_coeff 1 1 table methanol_implicit_water.pair.table PairMM
|
||||
WARNING: 93 of 500 force values in table are inconsistent with -dE/dr.
|
||||
Should only be flagged at inflection points (../pair_table.cpp:483)
|
||||
WARNING: 254 of 500 distance values in table with relative error
|
||||
over 1e-06 to re-computed values (../pair_table.cpp:492)
|
||||
pair_coeff * * local/density methanol_implicit_water.localdensity.table
|
||||
|
||||
|
||||
|
||||
|
||||
#Recentering during minimization and equilibration
|
||||
fix recentering all recenter 0.0 0.0 0.0 units box
|
||||
|
||||
#Thermostat & time integration
|
||||
timestep 1.0
|
||||
thermo 100
|
||||
thermo_style custom etotal ke pe temp evdwl
|
||||
|
||||
#minimization
|
||||
minimize 1.e-4 0.0 1000 1000
|
||||
WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:168)
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 0 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 17
|
||||
ghost atom cutoff = 17
|
||||
binsize = 8.5, bins = 8 8 8
|
||||
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||
(1) pair table, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
(2) pair local/density, perpetual, copy from (1)
|
||||
attributes: half, newton on
|
||||
pair build: copy
|
||||
stencil: none
|
||||
bin: none
|
||||
Per MPI rank memory allocation (min/avg/max) = 7.411 | 7.411 | 7.412 Mbytes
|
||||
TotEng KinEng PotEng Temp E_vdwl
|
||||
1470.3564 2234.7133 -764.35689 300 -764.35689
|
||||
46.496766 2234.7133 -2188.2165 300 -2188.2165
|
||||
7.9030246 2234.7133 -2226.8103 300 -2226.8103
|
||||
Loop time of 0.463996 on 8 procs for 121 steps with 2500 atoms
|
||||
|
||||
91.4% CPU use with 8 MPI tasks x no OpenMP threads
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = linesearch alpha is zero
|
||||
Energy initial, next-to-last, final =
|
||||
-764.356892369 -2227.85589084 -2226.81026984
|
||||
Force two-norm initial, final = 134.911 3.83896
|
||||
Force max component initial, final = 14.1117 1.07422
|
||||
Final line search alpha, max atom move = 5.06747e-10 5.44356e-10
|
||||
Iterations, force evaluations = 121 154
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.41442 | 0.41976 | 0.42434 | 0.5 | 90.47
|
||||
Bond | 1.1683e-05 | 2.0713e-05 | 3.5048e-05 | 0.0 | 0.00
|
||||
Neigh | 0.0084722 | 0.0090862 | 0.010038 | 0.5 | 1.96
|
||||
Comm | 0.022712 | 0.028157 | 0.034072 | 1.9 | 6.07
|
||||
Output | 3.1948e-05 | 3.6925e-05 | 6.6996e-05 | 0.0 | 0.01
|
||||
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Other | | 0.006937 | | | 1.50
|
||||
|
||||
Nlocal: 312.5 ave 333 max 299 min
|
||||
Histogram: 2 2 0 0 1 0 2 0 0 1
|
||||
Nghost: 2546 ave 2580 max 2517 min
|
||||
Histogram: 1 1 0 3 0 1 0 0 0 2
|
||||
Neighs: 33215.4 ave 37251 max 29183 min
|
||||
Histogram: 1 0 0 1 2 2 0 1 0 1
|
||||
|
||||
Total # of neighbors = 265723
|
||||
Ave neighs/atom = 106.289
|
||||
Ave special neighs/atom = 0
|
||||
Neighbor list builds = 6
|
||||
Dangerous builds = 0
|
||||
|
||||
#set up integration parameters
|
||||
fix timeintegration all nve
|
||||
fix thermostat all langevin 3.0000e+02 3.0000e+02 1.0000e+02 59915
|
||||
|
||||
#Equilibration (for realistic results, run for 2000000 steps)
|
||||
reset_timestep 0
|
||||
thermo 200
|
||||
thermo_style custom etotal ke pe temp evdwl
|
||||
|
||||
#run equilibration
|
||||
run 2000
|
||||
WARNING: Fix recenter should come after all other integration fixes (../fix_recenter.cpp:131)
|
||||
Per MPI rank memory allocation (min/avg/max) = 6.286 | 6.286 | 6.287 Mbytes
|
||||
TotEng KinEng PotEng Temp E_vdwl
|
||||
177.26822 2234.7133 -2057.4451 300 -2057.4451
|
||||
736.24287 2151.2608 -1415.0179 288.79688 -1415.0179
|
||||
963.07617 2090.6433 -1127.5671 280.65926 -1127.5671
|
||||
1148.9049 2173.1327 -1024.2279 291.73309 -1024.2279
|
||||
1303.6409 2279.8586 -976.21767 306.06055 -976.21767
|
||||
1355.42 2281.0383 -925.61826 306.21892 -925.61826
|
||||
1394.5206 2276.2093 -881.68863 305.57064 -881.68863
|
||||
1346.9764 2215.2973 -868.32091 297.3935 -868.32091
|
||||
1381.3654 2248.8061 -867.44063 301.89189 -867.44063
|
||||
1315.8059 2189.3193 -873.51332 293.90606 -873.51332
|
||||
1314.4456 2209.7431 -895.29752 296.64787 -895.29752
|
||||
Loop time of 6.38989 on 8 procs for 2000 steps with 2500 atoms
|
||||
|
||||
Performance: 27.043 ns/day, 0.887 hours/ns, 312.994 timesteps/s
|
||||
80.5% CPU use with 8 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 5.2693 | 5.3572 | 5.457 | 2.1 | 83.84
|
||||
Bond | 0.00028825 | 0.00033835 | 0.00039148 | 0.0 | 0.01
|
||||
Neigh | 0.0296 | 0.032337 | 0.035071 | 0.9 | 0.51
|
||||
Comm | 0.64679 | 0.73397 | 0.80847 | 5.2 | 11.49
|
||||
Output | 0.00033498 | 0.00051582 | 0.0015228 | 0.0 | 0.01
|
||||
Modify | 0.16395 | 0.18919 | 0.21056 | 3.9 | 2.96
|
||||
Other | | 0.07636 | | | 1.19
|
||||
|
||||
Nlocal: 312.5 ave 337 max 295 min
|
||||
Histogram: 2 2 0 1 0 0 0 1 1 1
|
||||
Nghost: 2551.62 ave 2582 max 2525 min
|
||||
Histogram: 2 1 0 0 1 1 1 0 1 1
|
||||
Neighs: 33241.8 ave 37659 max 29705 min
|
||||
Histogram: 2 0 0 2 2 0 0 0 1 1
|
||||
|
||||
Total # of neighbors = 265934
|
||||
Ave neighs/atom = 106.374
|
||||
Ave special neighs/atom = 0
|
||||
Neighbor list builds = 21
|
||||
Dangerous builds = 0
|
||||
|
||||
#turn off recentering during production run
|
||||
unfix recentering
|
||||
|
||||
|
||||
#setup trajectory output
|
||||
dump myDump all custom 100 methanol_implicit_water.lammpstrj.gz id type x y z element
|
||||
dump_modify myDump element M
|
||||
dump_modify myDump sort id
|
||||
|
||||
#run production (for realistic results, run for 10000000 steps)
|
||||
reset_timestep 0
|
||||
thermo 1000
|
||||
thermo_style custom etotal ke pe temp evdwl
|
||||
run 10000
|
||||
Per MPI rank memory allocation (min/avg/max) = 7.588 | 7.589 | 7.589 Mbytes
|
||||
TotEng KinEng PotEng Temp E_vdwl
|
||||
1442.5428 2209.7431 -767.20027 296.64787 -767.20027
|
||||
1391.8624 2262.6889 -870.82656 303.7556 -870.82656
|
||||
1375.914 2244.6176 -868.7036 301.3296 -868.7036
|
||||
1345.9064 2227.2324 -881.32599 298.99573 -881.32599
|
||||
1379.2334 2278.1156 -898.88222 305.82657 -898.88222
|
||||
1389.7928 2255.8062 -866.01341 302.83163 -866.01341
|
||||
1380.4549 2258.2108 -877.75582 303.15443 -877.75582
|
||||
1380.8489 2256.9432 -876.09428 302.98426 -876.09428
|
||||
1326.5151 2225.7408 -899.22577 298.79549 -899.22577
|
||||
1376.6025 2253.0128 -876.41028 302.45662 -876.41028
|
||||
1331.0008 2218.1033 -887.10258 297.77019 -887.10258
|
||||
Loop time of 25.4591 on 8 procs for 10000 steps with 2500 atoms
|
||||
|
||||
Performance: 33.937 ns/day, 0.707 hours/ns, 392.787 timesteps/s
|
||||
89.3% CPU use with 8 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 21.635 | 21.916 | 22.237 | 3.9 | 86.08
|
||||
Bond | 0.0011308 | 0.0013149 | 0.0016932 | 0.5 | 0.01
|
||||
Neigh | 0.14593 | 0.15675 | 0.16667 | 1.9 | 0.62
|
||||
Comm | 1.3789 | 1.7502 | 1.9558 | 13.7 | 6.87
|
||||
Output | 0.34664 | 0.82927 | 1.2013 | 32.8 | 3.26
|
||||
Modify | 0.24904 | 0.25842 | 0.26907 | 1.2 | 1.02
|
||||
Other | | 0.5475 | | | 2.15
|
||||
|
||||
Nlocal: 312.5 ave 327 max 298 min
|
||||
Histogram: 2 0 0 1 1 0 1 1 1 1
|
||||
Nghost: 2575 ave 2601 max 2559 min
|
||||
Histogram: 2 0 3 1 0 0 0 0 1 1
|
||||
Neighs: 33223.2 ave 35920 max 30303 min
|
||||
Histogram: 1 1 1 1 0 1 0 0 0 3
|
||||
|
||||
Total # of neighbors = 265786
|
||||
Ave neighs/atom = 106.314
|
||||
Ave special neighs/atom = 0
|
||||
Neighbor list builds = 103
|
||||
Dangerous builds = 0
|
||||
|
||||
|
||||
Total wall time: 0:00:32
|
||||
@ -0,0 +1,259 @@
|
||||
LAMMPS (27 Oct 2021)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# LAMMPS input file for 50.0% methanol mole fraction solution
|
||||
# with 2500 methanol molecules in implicit water.
|
||||
#
|
||||
#
|
||||
# Author: David Rosenberger, van der Vegt Group, TU Darmstadt
|
||||
#
|
||||
# Refer: Rosenberger, Sanyal, Shell, van der Vegt, J. Chem. Theory Comput. 15, 2881-2895 (2019)
|
||||
|
||||
|
||||
# Initialize simulation box
|
||||
dimension 3
|
||||
boundary p p p
|
||||
units real
|
||||
atom_style molecular
|
||||
|
||||
# Set potential styles
|
||||
pair_style hybrid/overlay table spline 500 local/density
|
||||
|
||||
# Read molecule data and set initial velocities
|
||||
read_data methanol_implicit_water.data
|
||||
Reading data file ...
|
||||
orthogonal box = (-31.123000 -31.123000 -31.123000) to (31.123000 31.123000 31.123000)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
2500 atoms
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 0 0
|
||||
special bond factors coul: 0 0 0
|
||||
0 = max # of 1-2 neighbors
|
||||
0 = max # of 1-3 neighbors
|
||||
0 = max # of 1-4 neighbors
|
||||
1 = max # of special neighbors
|
||||
special bonds CPU = 0.001 seconds
|
||||
read_data CPU = 0.016 seconds
|
||||
velocity all create 3.0000e+02 12142 rot yes dist gaussian
|
||||
|
||||
# Assign potentials
|
||||
pair_coeff 1 1 table methanol_implicit_water.pair.table PairMM
|
||||
WARNING: 93 of 500 force values in table PairMM are inconsistent with -dE/dr.
|
||||
WARNING: Should only be flagged at inflection points (src/pair_table.cpp:465)
|
||||
WARNING: 254 of 500 distance values in table 1e-06 with relative error
|
||||
WARNING: over PairMM to re-computed values (src/pair_table.cpp:473)
|
||||
pair_coeff * * local/density methanol_implicit_water.localdensity.table
|
||||
|
||||
|
||||
|
||||
|
||||
#Recentering during minimization and equilibration
|
||||
fix recentering all recenter 0.0 0.0 0.0 units box
|
||||
|
||||
#Thermostat & time integration
|
||||
timestep 1.0
|
||||
thermo 100
|
||||
thermo_style custom etotal ke pe temp evdwl
|
||||
|
||||
#minimization
|
||||
minimize 1.e-4 0.0 1000 1000
|
||||
|
||||
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||
|
||||
Your simulation uses code contributions which should be cited:
|
||||
|
||||
- pair_style local/density command:
|
||||
|
||||
@Article{Sanyal16,
|
||||
author = {T.Sanyal and M.Scott Shell},
|
||||
title = {Coarse-grained models using local-density potentials optimized with the relative entropy: Application to implicit solvation},
|
||||
journal = {J.~Chem.~Phys.},
|
||||
year = 2016,
|
||||
DOI = doi.org/10.1063/1.4958629}
|
||||
|
||||
@Article{Sanyal18,
|
||||
author = {T.Sanyal and M.Scott Shell},
|
||||
title = {Transferable coarse-grained models of liquid-liquid equilibrium using local density potentials optimized with the relative entropy},
|
||||
journal = {J.~Phys.~Chem. B},
|
||||
year = 2018,
|
||||
DOI = doi.org/10.1021/acs.jpcb.7b12446}
|
||||
|
||||
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||
|
||||
WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (src/min.cpp:187)
|
||||
generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 0 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 17
|
||||
ghost atom cutoff = 17
|
||||
binsize = 8.5, bins = 8 8 8
|
||||
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||
(1) pair table, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d
|
||||
bin: standard
|
||||
(2) pair local/density, perpetual, copy from (1)
|
||||
attributes: half, newton on
|
||||
pair build: copy
|
||||
stencil: none
|
||||
bin: none
|
||||
Per MPI rank memory allocation (min/avg/max) = 9.535 | 9.535 | 9.535 Mbytes
|
||||
TotEng KinEng PotEng Temp E_vdwl
|
||||
1283.8556 2234.7133 -950.85771 300 -950.85771
|
||||
-10.187232 2234.7133 -2244.9005 300 -2244.9005
|
||||
-124.79406 2234.7133 -2359.5074 300 -2359.5074
|
||||
-126.7619 2234.7133 -2361.4752 300 -2361.4752
|
||||
Loop time of 3.74581 on 1 procs for 205 steps with 2500 atoms
|
||||
|
||||
99.5% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = energy tolerance
|
||||
Energy initial, next-to-last, final =
|
||||
-950.857712502514 -2361.24417962983 -2361.47519428972
|
||||
Force two-norm initial, final = 135.25170 2.8038329
|
||||
Force max component initial, final = 14.083102 1.1154133
|
||||
Final line search alpha, max atom move = 0.16981022 0.18940857
|
||||
Iterations, force evaluations = 205 223
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 3.5678 | 3.5678 | 3.5678 | 0.0 | 95.25
|
||||
Bond | 7.5831e-05 | 7.5831e-05 | 7.5831e-05 | 0.0 | 0.00
|
||||
Neigh | 0.12962 | 0.12962 | 0.12962 | 0.0 | 3.46
|
||||
Comm | 0.019204 | 0.019204 | 0.019204 | 0.0 | 0.51
|
||||
Output | 0.00023948 | 0.00023948 | 0.00023948 | 0.0 | 0.01
|
||||
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Other | | 0.02886 | | | 0.77
|
||||
|
||||
Nlocal: 2500.00 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 6729.00 ave 6729 max 6729 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 265637.0 ave 265637 max 265637 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 265637
|
||||
Ave neighs/atom = 106.25480
|
||||
Ave special neighs/atom = 0.0000000
|
||||
Neighbor list builds = 11
|
||||
Dangerous builds = 0
|
||||
|
||||
#set up integration parameters
|
||||
fix timeintegration all nve
|
||||
fix thermostat all langevin 3.0000e+02 3.0000e+02 1.0000e+02 59915
|
||||
|
||||
#Equilibration (for realistic results, run for 2000000 steps)
|
||||
reset_timestep 0
|
||||
thermo 200
|
||||
thermo_style custom etotal ke pe temp evdwl
|
||||
|
||||
#run equilibration
|
||||
run 2000
|
||||
generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
|
||||
WARNING: Fix recenter should come after all other integration fixes (src/fix_recenter.cpp:133)
|
||||
Per MPI rank memory allocation (min/avg/max) = 8.410 | 8.410 | 8.410 Mbytes
|
||||
TotEng KinEng PotEng Temp E_vdwl
|
||||
-126.7619 2234.7133 -2361.4752 300 -2361.4752
|
||||
517.05047 2015.8636 -1498.8131 270.62043 -1498.8131
|
||||
931.78263 2135.4332 -1203.6506 286.6721 -1203.6506
|
||||
1162.6209 2242.1662 -1079.5453 301.00051 -1079.5453
|
||||
1164.2129 2211.6204 -1047.4075 296.89989 -1047.4075
|
||||
1258.0085 2286.5942 -1028.5857 306.96477 -1028.5857
|
||||
1231.1937 2200.814 -969.62032 295.44917 -969.62032
|
||||
1251.2144 2245.0533 -993.83885 301.3881 -993.83885
|
||||
1237.2495 2239.8802 -1002.6307 300.69363 -1002.6307
|
||||
1232.3342 2224.3415 -992.00722 298.60763 -992.00722
|
||||
1235.3228 2197.191 -961.86817 294.9628 -961.86817
|
||||
Loop time of 23.6478 on 1 procs for 2000 steps with 2500 atoms
|
||||
|
||||
Performance: 7.307 ns/day, 3.284 hours/ns, 84.575 timesteps/s
|
||||
99.5% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 22.797 | 22.797 | 22.797 | 0.0 | 96.40
|
||||
Bond | 0.00070412 | 0.00070412 | 0.00070412 | 0.0 | 0.00
|
||||
Neigh | 0.2249 | 0.2249 | 0.2249 | 0.0 | 0.95
|
||||
Comm | 0.12259 | 0.12259 | 0.12259 | 0.0 | 0.52
|
||||
Output | 0.00088925 | 0.00088925 | 0.00088925 | 0.0 | 0.00
|
||||
Modify | 0.46447 | 0.46447 | 0.46447 | 0.0 | 1.96
|
||||
Other | | 0.03711 | | | 0.16
|
||||
|
||||
Nlocal: 2500.00 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 6752.00 ave 6752 max 6752 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 265940.0 ave 265940 max 265940 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 265940
|
||||
Ave neighs/atom = 106.37600
|
||||
Ave special neighs/atom = 0.0000000
|
||||
Neighbor list builds = 20
|
||||
Dangerous builds = 0
|
||||
|
||||
#turn off recentering during production run
|
||||
unfix recentering
|
||||
|
||||
|
||||
#setup trajectory output
|
||||
dump myDump all custom 100 methanol_implicit_water.lammpstrj.gz id type x y z element
|
||||
dump_modify myDump element M
|
||||
dump_modify myDump sort id
|
||||
|
||||
#run production (for realistic results, run for 10000000 steps)
|
||||
reset_timestep 0
|
||||
thermo 1000
|
||||
thermo_style custom etotal ke pe temp evdwl
|
||||
run 10000
|
||||
generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
|
||||
Per MPI rank memory allocation (min/avg/max) = 9.918 | 9.918 | 9.918 Mbytes
|
||||
TotEng KinEng PotEng Temp E_vdwl
|
||||
1235.3228 2197.191 -961.86817 294.9628 -961.86817
|
||||
1289.8463 2236.1425 -946.29622 300.19186 -946.29622
|
||||
1348.0825 2305.0295 -956.94703 309.43963 -956.94703
|
||||
1279.5478 2241.1582 -961.61041 300.86521 -961.61041
|
||||
1231.8597 2201.9591 -970.09949 295.60291 -970.09949
|
||||
1277.3424 2221.3696 -944.02725 298.20867 -944.02725
|
||||
1296.0116 2222.0998 -926.08818 298.3067 -926.08818
|
||||
1266.2849 2206.3727 -940.08782 296.1954 -940.08782
|
||||
1313.2808 2260.5077 -947.22683 303.46278 -947.22683
|
||||
1309.3076 2234.3895 -925.08198 299.95654 -925.08198
|
||||
1275.9792 2221.3037 -945.32449 298.19982 -945.32449
|
||||
Loop time of 67.3224 on 1 procs for 10000 steps with 2500 atoms
|
||||
|
||||
Performance: 12.834 ns/day, 1.870 hours/ns, 148.539 timesteps/s
|
||||
99.4% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 64.476 | 64.476 | 64.476 | 0.0 | 95.77
|
||||
Bond | 0.0014504 | 0.0014504 | 0.0014504 | 0.0 | 0.00
|
||||
Neigh | 0.71333 | 0.71333 | 0.71333 | 0.0 | 1.06
|
||||
Comm | 0.32846 | 0.32846 | 0.32846 | 0.0 | 0.49
|
||||
Output | 0.46997 | 0.46997 | 0.46997 | 0.0 | 0.70
|
||||
Modify | 1.2336 | 1.2336 | 1.2336 | 0.0 | 1.83
|
||||
Other | | 0.09996 | | | 0.15
|
||||
|
||||
Nlocal: 2500.00 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 6662.00 ave 6662 max 6662 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 265774.0 ave 265774 max 265774 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 265774
|
||||
Ave neighs/atom = 106.30960
|
||||
Ave special neighs/atom = 0.0000000
|
||||
Neighbor list builds = 104
|
||||
Dangerous builds = 0
|
||||
|
||||
|
||||
Total wall time: 0:01:34
|
||||
@ -0,0 +1,259 @@
|
||||
LAMMPS (27 Oct 2021)
|
||||
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
|
||||
using 1 OpenMP thread(s) per MPI task
|
||||
# LAMMPS input file for 50.0% methanol mole fraction solution
|
||||
# with 2500 methanol molecules in implicit water.
|
||||
#
|
||||
#
|
||||
# Author: David Rosenberger, van der Vegt Group, TU Darmstadt
|
||||
#
|
||||
# Refer: Rosenberger, Sanyal, Shell, van der Vegt, J. Chem. Theory Comput. 15, 2881-2895 (2019)
|
||||
|
||||
|
||||
# Initialize simulation box
|
||||
dimension 3
|
||||
boundary p p p
|
||||
units real
|
||||
atom_style molecular
|
||||
|
||||
# Set potential styles
|
||||
pair_style hybrid/overlay table spline 500 local/density
|
||||
|
||||
# Read molecule data and set initial velocities
|
||||
read_data methanol_implicit_water.data
|
||||
Reading data file ...
|
||||
orthogonal box = (-31.123000 -31.123000 -31.123000) to (31.123000 31.123000 31.123000)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
reading atoms ...
|
||||
2500 atoms
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 0 0
|
||||
special bond factors coul: 0 0 0
|
||||
0 = max # of 1-2 neighbors
|
||||
0 = max # of 1-3 neighbors
|
||||
0 = max # of 1-4 neighbors
|
||||
1 = max # of special neighbors
|
||||
special bonds CPU = 0.000 seconds
|
||||
read_data CPU = 0.005 seconds
|
||||
velocity all create 3.0000e+02 12142 rot yes dist gaussian
|
||||
|
||||
# Assign potentials
|
||||
pair_coeff 1 1 table methanol_implicit_water.pair.table PairMM
|
||||
WARNING: 93 of 500 force values in table PairMM are inconsistent with -dE/dr.
|
||||
WARNING: Should only be flagged at inflection points (src/pair_table.cpp:465)
|
||||
WARNING: 254 of 500 distance values in table 1e-06 with relative error
|
||||
WARNING: over PairMM to re-computed values (src/pair_table.cpp:473)
|
||||
pair_coeff * * local/density methanol_implicit_water.localdensity.table
|
||||
|
||||
|
||||
|
||||
|
||||
#Recentering during minimization and equilibration
|
||||
fix recentering all recenter 0.0 0.0 0.0 units box
|
||||
|
||||
#Thermostat & time integration
|
||||
timestep 1.0
|
||||
thermo 100
|
||||
thermo_style custom etotal ke pe temp evdwl
|
||||
|
||||
#minimization
|
||||
minimize 1.e-4 0.0 1000 1000
|
||||
|
||||
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||
|
||||
Your simulation uses code contributions which should be cited:
|
||||
|
||||
- pair_style local/density command:
|
||||
|
||||
@Article{Sanyal16,
|
||||
author = {T.Sanyal and M.Scott Shell},
|
||||
title = {Coarse-grained models using local-density potentials optimized with the relative entropy: Application to implicit solvation},
|
||||
journal = {J.~Chem.~Phys.},
|
||||
year = 2016,
|
||||
DOI = doi.org/10.1063/1.4958629}
|
||||
|
||||
@Article{Sanyal18,
|
||||
author = {T.Sanyal and M.Scott Shell},
|
||||
title = {Transferable coarse-grained models of liquid-liquid equilibrium using local density potentials optimized with the relative entropy},
|
||||
journal = {J.~Phys.~Chem. B},
|
||||
year = 2018,
|
||||
DOI = doi.org/10.1021/acs.jpcb.7b12446}
|
||||
|
||||
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
|
||||
|
||||
WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (src/min.cpp:187)
|
||||
generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 0 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 17
|
||||
ghost atom cutoff = 17
|
||||
binsize = 8.5, bins = 8 8 8
|
||||
2 neighbor lists, perpetual/occasional/extra = 2 0 0
|
||||
(1) pair table, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d
|
||||
bin: standard
|
||||
(2) pair local/density, perpetual, copy from (1)
|
||||
attributes: half, newton on
|
||||
pair build: copy
|
||||
stencil: none
|
||||
bin: none
|
||||
Per MPI rank memory allocation (min/avg/max) = 7.855 | 7.855 | 7.855 Mbytes
|
||||
TotEng KinEng PotEng Temp E_vdwl
|
||||
1283.8556 2234.7133 -950.85771 300 -950.85771
|
||||
-10.187232 2234.7133 -2244.9005 300 -2244.9005
|
||||
-124.3661 2234.7133 -2359.0794 300 -2359.0794
|
||||
-146.7158 2234.7133 -2381.4291 300 -2381.4291
|
||||
Loop time of 0.528503 on 4 procs for 244 steps with 2500 atoms
|
||||
|
||||
99.7% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = energy tolerance
|
||||
Energy initial, next-to-last, final =
|
||||
-950.857712502527 -2381.2294195605 -2381.42909821383
|
||||
Force two-norm initial, final = 135.25170 2.3117934
|
||||
Force max component initial, final = 14.083102 0.60833889
|
||||
Final line search alpha, max atom move = 0.18347073 0.11161238
|
||||
Iterations, force evaluations = 244 278
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.48518 | 0.48843 | 0.49223 | 0.4 | 92.42
|
||||
Bond | 1.0084e-05 | 1.0861e-05 | 1.1483e-05 | 0.0 | 0.00
|
||||
Neigh | 0.018199 | 0.019153 | 0.020036 | 0.5 | 3.62
|
||||
Comm | 0.010229 | 0.014832 | 0.018994 | 2.6 | 2.81
|
||||
Output | 3.7985e-05 | 4.2069e-05 | 5.3874e-05 | 0.0 | 0.01
|
||||
Modify | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Other | | 0.006032 | | | 1.14
|
||||
|
||||
Nlocal: 625.000 ave 638 max 618 min
|
||||
Histogram: 2 0 0 0 1 0 0 0 0 1
|
||||
Nghost: 3613.75 ave 3640 max 3580 min
|
||||
Histogram: 1 0 0 0 1 0 0 0 1 1
|
||||
Neighs: 66411.2 ave 70713 max 62416 min
|
||||
Histogram: 1 0 1 0 0 0 1 0 0 1
|
||||
|
||||
Total # of neighbors = 265645
|
||||
Ave neighs/atom = 106.25800
|
||||
Ave special neighs/atom = 0.0000000
|
||||
Neighbor list builds = 13
|
||||
Dangerous builds = 0
|
||||
|
||||
#set up integration parameters
|
||||
fix timeintegration all nve
|
||||
fix thermostat all langevin 3.0000e+02 3.0000e+02 1.0000e+02 59915
|
||||
|
||||
#Equilibration (for realistic results, run for 2000000 steps)
|
||||
reset_timestep 0
|
||||
thermo 200
|
||||
thermo_style custom etotal ke pe temp evdwl
|
||||
|
||||
#run equilibration
|
||||
run 2000
|
||||
generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
|
||||
WARNING: Fix recenter should come after all other integration fixes (src/fix_recenter.cpp:133)
|
||||
Per MPI rank memory allocation (min/avg/max) = 6.730 | 6.730 | 6.731 Mbytes
|
||||
TotEng KinEng PotEng Temp E_vdwl
|
||||
-146.7158 2234.7133 -2381.4291 300 -2381.4291
|
||||
540.68168 2041.44 -1500.7584 274.05395 -1500.7584
|
||||
945.4949 2163.7509 -1218.256 290.47363 -1218.256
|
||||
1118.7729 2195.7579 -1076.985 294.77042 -1076.985
|
||||
1215.0058 2233.2445 -1018.2387 299.80282 -1018.2387
|
||||
1251.8045 2240.8439 -989.03944 300.823 -989.03944
|
||||
1206.649 2149.5807 -942.93169 288.57134 -942.93169
|
||||
1290.6111 2248.3623 -957.75117 301.83231 -957.75117
|
||||
1312.8944 2219.147 -906.25264 297.9103 -906.25264
|
||||
1260.002 2211.4176 -951.41561 296.87266 -951.41561
|
||||
1335.0956 2270.1367 -935.04108 304.75543 -935.04108
|
||||
Loop time of 3.56721 on 4 procs for 2000 steps with 2500 atoms
|
||||
|
||||
Performance: 48.441 ns/day, 0.495 hours/ns, 560.663 timesteps/s
|
||||
99.8% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 3.3122 | 3.3399 | 3.3633 | 1.0 | 93.63
|
||||
Bond | 7.5941e-05 | 8.062e-05 | 8.7627e-05 | 0.0 | 0.00
|
||||
Neigh | 0.03524 | 0.036666 | 0.037864 | 0.6 | 1.03
|
||||
Comm | 0.080116 | 0.10444 | 0.13373 | 6.1 | 2.93
|
||||
Output | 0.00019977 | 0.00022502 | 0.00029007 | 0.0 | 0.01
|
||||
Modify | 0.077781 | 0.078206 | 0.078752 | 0.1 | 2.19
|
||||
Other | | 0.007641 | | | 0.21
|
||||
|
||||
Nlocal: 625.000 ave 637 max 616 min
|
||||
Histogram: 1 0 1 0 1 0 0 0 0 1
|
||||
Nghost: 3597.25 ave 3610 max 3586 min
|
||||
Histogram: 1 0 1 0 0 0 1 0 0 1
|
||||
Neighs: 66468.2 ave 69230 max 62721 min
|
||||
Histogram: 1 0 0 1 0 0 0 0 0 2
|
||||
|
||||
Total # of neighbors = 265873
|
||||
Ave neighs/atom = 106.34920
|
||||
Ave special neighs/atom = 0.0000000
|
||||
Neighbor list builds = 20
|
||||
Dangerous builds = 0
|
||||
|
||||
#turn off recentering during production run
|
||||
unfix recentering
|
||||
|
||||
|
||||
#setup trajectory output
|
||||
dump myDump all custom 100 methanol_implicit_water.lammpstrj.gz id type x y z element
|
||||
dump_modify myDump element M
|
||||
dump_modify myDump sort id
|
||||
|
||||
#run production (for realistic results, run for 10000000 steps)
|
||||
reset_timestep 0
|
||||
thermo 1000
|
||||
thermo_style custom etotal ke pe temp evdwl
|
||||
run 10000
|
||||
generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
|
||||
Per MPI rank memory allocation (min/avg/max) = 8.071 | 8.071 | 8.071 Mbytes
|
||||
TotEng KinEng PotEng Temp E_vdwl
|
||||
1335.0956 2270.1367 -935.04108 304.75543 -935.04108
|
||||
1266.2305 2227.2123 -960.98186 298.99303 -960.98186
|
||||
1304.2289 2238.1343 -933.90544 300.45925 -933.90544
|
||||
1311.3201 2232.0862 -920.7661 299.64733 -920.7661
|
||||
1289.9028 2241.3533 -951.45049 300.89139 -951.45049
|
||||
1314.2234 2244.8514 -930.62797 301.361 -930.62797
|
||||
1282.2744 2240.6716 -958.39719 300.79987 -958.39719
|
||||
1239.302 2181.5711 -942.2691 292.86591 -942.2691
|
||||
1327.0954 2242.6441 -915.54875 301.06468 -915.54875
|
||||
1334.9799 2239.6841 -904.70423 300.66731 -904.70423
|
||||
1320.6105 2263.4912 -942.88066 303.8633 -942.88066
|
||||
Loop time of 23.3399 on 4 procs for 10000 steps with 2500 atoms
|
||||
|
||||
Performance: 37.018 ns/day, 0.648 hours/ns, 428.451 timesteps/s
|
||||
99.5% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 21.343 | 21.606 | 21.766 | 3.7 | 92.57
|
||||
Bond | 0.00045963 | 0.0004817 | 0.0005083 | 0.0 | 0.00
|
||||
Neigh | 0.20708 | 0.22081 | 0.22733 | 1.7 | 0.95
|
||||
Comm | 0.63014 | 0.80326 | 1.0801 | 19.8 | 3.44
|
||||
Output | 0.11791 | 0.14443 | 0.22211 | 11.8 | 0.62
|
||||
Modify | 0.37291 | 0.389 | 0.41719 | 2.7 | 1.67
|
||||
Other | | 0.1761 | | | 0.75
|
||||
|
||||
Nlocal: 625.000 ave 636 max 613 min
|
||||
Histogram: 1 0 0 0 0 2 0 0 0 1
|
||||
Nghost: 3597.00 ave 3613 max 3580 min
|
||||
Histogram: 1 0 0 1 0 0 0 1 0 1
|
||||
Neighs: 66408.5 ave 69186 max 61728 min
|
||||
Histogram: 1 0 0 0 0 0 1 0 1 1
|
||||
|
||||
Total # of neighbors = 265634
|
||||
Ave neighs/atom = 106.25360
|
||||
Ave special neighs/atom = 0.0000000
|
||||
Neighbor list builds = 102
|
||||
Dangerous builds = 0
|
||||
|
||||
|
||||
Total wall time: 0:00:27
|
||||
@ -1,4 +1,4 @@
|
||||
#LOCAL DENSITY POTENTIALS
|
||||
#LOCAL DENSITY POTENTIALS UNITS: real
|
||||
|
||||
1 500
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
|
||||
# UNITS: real
|
||||
PairMM
|
||||
N 500 R 2.00000e-02 1.50000e+01
|
||||
|
||||
|
||||
@ -14,26 +14,29 @@ endif()
|
||||
|
||||
project(plugins VERSION 1.0 LANGUAGES CXX)
|
||||
|
||||
# ugly hacks for MSVC which by default always reports an old C++ standard in the __cplusplus macro
|
||||
# and prints lots of pointless warnings about "unsafe" functions
|
||||
if(MSVC)
|
||||
add_compile_options(/Zc:__cplusplus)
|
||||
add_compile_options(/wd4244)
|
||||
add_compile_options(/wd4267)
|
||||
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
|
||||
endif()
|
||||
|
||||
# NOTE: the next line should be commented out when used outside of the LAMMPS package
|
||||
get_filename_component(LAMMPS_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../src ABSOLUTE)
|
||||
set(LAMMPS_HEADER_DIR ${LAMMPS_SOURCE_DIR} CACHE PATH "Location of LAMMPS headers")
|
||||
if(NOT LAMMPS_HEADER_DIR)
|
||||
message(FATAL_ERROR "Must set LAMMPS_HEADER_DIR")
|
||||
endif()
|
||||
|
||||
# by default, install into $HOME/.local (not /usr/local),
|
||||
# so that no root access (and sudo) is needed
|
||||
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||
set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/.local" CACHE PATH "Default install path" FORCE)
|
||||
# when this file is included as subdirectory in the LAMMPS build, many settings are directly imported
|
||||
if(LAMMPS_DIR)
|
||||
set(LAMMPS_HEADER_DIR ${LAMMPS_SOURCE_DIR})
|
||||
else()
|
||||
# NOTE: the next line should be commented out when used outside of the LAMMPS package
|
||||
get_filename_component(LAMMPS_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../src ABSOLUTE)
|
||||
set(LAMMPS_HEADER_DIR ${LAMMPS_SOURCE_DIR} CACHE PATH "Location of LAMMPS headers")
|
||||
if(NOT LAMMPS_HEADER_DIR)
|
||||
message(FATAL_ERROR "Must set LAMMPS_HEADER_DIR")
|
||||
endif()
|
||||
# by default, install into $HOME/.local (not /usr/local),
|
||||
# so that no root access (and sudo) is needed
|
||||
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||
set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/.local" CACHE PATH "Default install path" FORCE)
|
||||
endif()
|
||||
# ugly hacks for MSVC which by default always reports an old C++ standard in the __cplusplus macro
|
||||
# and prints lots of pointless warnings about "unsafe" functions
|
||||
if(MSVC)
|
||||
add_compile_options(/Zc:__cplusplus)
|
||||
add_compile_options(/wd4244)
|
||||
add_compile_options(/wd4267)
|
||||
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# C++11 is required
|
||||
@ -45,9 +48,11 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -restrict")
|
||||
endif()
|
||||
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR})
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
include(CheckIncludeFileCXX)
|
||||
include(LAMMPSInterfaceCXX)
|
||||
if(NOT LAMMPS_DIR)
|
||||
include(LAMMPSInterfaceCXX)
|
||||
endif()
|
||||
|
||||
##########################
|
||||
# building the plugins
|
||||
@ -66,7 +71,7 @@ add_library(zero2plugin MODULE zero2plugin.cpp pair_zero2.cpp bond_zero2.cpp
|
||||
angle_zero2.cpp dihedral_zero2.cpp improper_zero2.cpp)
|
||||
target_link_libraries(zero2plugin PRIVATE lammps)
|
||||
|
||||
set_target_properties(morse2plugin nve2plugin helloplugin zero2plugin PROPERTIES PREFIX "")
|
||||
set_target_properties(morse2plugin nve2plugin helloplugin zero2plugin PROPERTIES PREFIX "" SUFFIX ".so")
|
||||
|
||||
# MacOS seems to need this
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
|
||||
@ -84,3 +89,6 @@ else()
|
||||
set_target_properties(morse2plugin nve2plugin helloplugin zero2plugin PROPERTIES
|
||||
LINK_FLAGS "-rdynamic")
|
||||
endif()
|
||||
|
||||
add_custom_target(plugins ALL ${CMAKE_COMMAND} -E echo "Building Plugins"
|
||||
DEPENDS morse2plugin nve2plugin helloplugin zero2plugin morse2plugin)
|
||||
|
||||
30
examples/threebody/in.mos2.sw.mod
Normal file
30
examples/threebody/in.mos2.sw.mod
Normal file
@ -0,0 +1,30 @@
|
||||
# monolayer MoS2
|
||||
units metal
|
||||
boundary p p f
|
||||
processors * * 1
|
||||
|
||||
atom_style atomic
|
||||
read_data single_layer_MoS2.data
|
||||
|
||||
mass * 32.065 # mass of sulphur atom , uint: a.u.=1.66X10^(-27)kg
|
||||
mass 1 95.94 # mass of molebdenum atom , uint: a.u.=1.66X10^(-27)kg
|
||||
|
||||
########################## Define potentials ################################
|
||||
pair_style sw/mod maxdelcs 0.25 0.35
|
||||
pair_coeff * * tmd.sw.mod Mo S S
|
||||
#########################################################################
|
||||
|
||||
### Simulation settings ####
|
||||
timestep 0.001
|
||||
velocity all create 300.0 12345
|
||||
|
||||
############################
|
||||
|
||||
# Output
|
||||
thermo 500
|
||||
thermo_style custom step etotal pe ke temp
|
||||
thermo_modify lost warn
|
||||
|
||||
###### Run molecular dynamics ######
|
||||
fix thermostat all nve
|
||||
run 5000
|
||||
92
examples/threebody/log.27Oct21.mos2_sw_mod.g++.1
Normal file
92
examples/threebody/log.27Oct21.mos2_sw_mod.g++.1
Normal file
@ -0,0 +1,92 @@
|
||||
LAMMPS (27 Oct 2021)
|
||||
# monolayer MoS2
|
||||
units metal
|
||||
boundary p p f
|
||||
processors * * 1
|
||||
|
||||
atom_style atomic
|
||||
read_data single_layer_MoS2.data
|
||||
Reading data file ...
|
||||
triclinic box = (0.0000000 0.0000000 -100.00000) to (51.152320 44.299209 100.00000) with tilt (25.576160 0.0000000 0.0000000)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
768 atoms
|
||||
read_data CPU = 0.043 seconds
|
||||
|
||||
mass * 32.065 # mass of sulphur atom , uint: a.u.=1.66X10^(-27)kg
|
||||
mass 1 95.94 # mass of molebdenum atom , uint: a.u.=1.66X10^(-27)kg
|
||||
|
||||
########################## Define potentials ################################
|
||||
pair_style sw/mod maxdelcs 0.25 0.35
|
||||
pair_coeff * * tmd.sw.mod Mo S S
|
||||
Reading sw potential file tmd.sw.mod with DATE: 2018-03-26
|
||||
#########################################################################
|
||||
|
||||
### Simulation settings ####
|
||||
timestep 0.001
|
||||
velocity all create 300.0 12345
|
||||
|
||||
############################
|
||||
|
||||
# Output
|
||||
thermo 500
|
||||
thermo_style custom step etotal pe ke temp
|
||||
thermo_modify lost warn
|
||||
|
||||
###### Run molecular dynamics ######
|
||||
fix thermostat all nve
|
||||
run 5000
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 5.158796
|
||||
ghost atom cutoff = 5.158796
|
||||
binsize = 2.579398, bins = 30 18 78
|
||||
1 neighbor lists, perpetual/occasional/extra = 1 0 0
|
||||
(1) pair sw/mod, perpetual
|
||||
attributes: full, newton on
|
||||
pair build: full/bin/atomonly
|
||||
stencil: full/bin/3d
|
||||
bin: standard
|
||||
Per MPI rank memory allocation (min/avg/max) = 3.466 | 3.466 | 3.466 Mbytes
|
||||
Step TotEng PotEng KinEng Temp
|
||||
0 -899.28605 -929.02881 29.742759 300
|
||||
500 -899.28626 -922.45519 23.168929 233.69313
|
||||
1000 -899.29247 -925.86547 26.573002 268.02828
|
||||
1500 -899.27957 -916.95478 17.675214 178.28084
|
||||
2000 -899.28171 -918.38728 19.105573 192.70814
|
||||
2500 -899.28732 -922.50423 23.21691 234.17709
|
||||
3000 -899.28195 -918.74112 19.459174 196.27473
|
||||
3500 -899.27944 -918.03105 18.751604 189.13784
|
||||
4000 -899.28397 -920.50737 21.223397 214.06955
|
||||
4500 -899.28386 -919.79154 20.507685 206.85053
|
||||
5000 -899.28077 -918.78947 19.508698 196.77425
|
||||
Loop time of 5.84317 on 1 procs for 5000 steps with 768 atoms
|
||||
|
||||
Performance: 73.932 ns/day, 0.325 hours/ns, 855.700 timesteps/s
|
||||
99.8% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 5.6796 | 5.6796 | 5.6796 | 0.0 | 97.20
|
||||
Neigh | 0 | 0 | 0 | 0.0 | 0.00
|
||||
Comm | 0.026354 | 0.026354 | 0.026354 | 0.0 | 0.45
|
||||
Output | 0.0014959 | 0.0014959 | 0.0014959 | 0.0 | 0.03
|
||||
Modify | 0.090437 | 0.090437 | 0.090437 | 0.0 | 1.55
|
||||
Other | | 0.04524 | | | 0.77
|
||||
|
||||
Nlocal: 768.000 ave 768 max 768 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 354.000 ave 354 max 354 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 0.00000 ave 0 max 0 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
FullNghs: 20480.0 ave 20480 max 20480 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 20480
|
||||
Ave neighs/atom = 26.666667
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
Total wall time: 0:00:06
|
||||
781
examples/threebody/single_layer_MoS2.data
Normal file
781
examples/threebody/single_layer_MoS2.data
Normal file
@ -0,0 +1,781 @@
|
||||
Single layer MoS2
|
||||
|
||||
768 atoms
|
||||
|
||||
3 atom types
|
||||
|
||||
0.0000000000000000 51.1523200000000177 xlo xhi
|
||||
0.0000000000000000 44.2992085825108320 ylo yhi
|
||||
-100.0000000000000000 100.0000000000000000 zlo zhi
|
||||
25.5761600000000088 0.0000000000000000 0.0000000000000000 xy xz yz
|
||||
|
||||
Atoms
|
||||
|
||||
1 2 0.000000000000000 0.000000000000000 -1.596930000000000
|
||||
2 3 0.000000000000000 0.000000000000000 1.596930000000000
|
||||
3 1 0.000000000000000 1.845800357604618 0.000000000000000
|
||||
4 2 1.598510000000001 2.768700536406927 -1.596930000000000
|
||||
5 3 1.598510000000001 2.768700536406927 1.596930000000000
|
||||
6 1 1.598510000000001 4.614500894011545 0.000000000000000
|
||||
7 2 3.197020000000001 5.537401072813854 -1.596930000000000
|
||||
8 3 3.197020000000001 5.537401072813854 1.596930000000000
|
||||
9 1 3.197020000000001 7.383201430418472 0.000000000000000
|
||||
10 2 4.795530000000002 8.306101609220781 -1.596930000000000
|
||||
11 3 4.795530000000002 8.306101609220781 1.596930000000000
|
||||
12 1 4.795530000000002 10.151901966825399 0.000000000000000
|
||||
13 2 6.394040000000002 11.074802145627708 -1.596930000000000
|
||||
14 3 6.394040000000002 11.074802145627708 1.596930000000000
|
||||
15 1 6.394040000000002 12.920602503232326 0.000000000000000
|
||||
16 2 7.992550000000003 13.843502682034635 -1.596930000000000
|
||||
17 3 7.992550000000003 13.843502682034635 1.596930000000000
|
||||
18 1 7.992550000000003 15.689303039639253 0.000000000000000
|
||||
19 2 9.591060000000003 16.612203218441562 -1.596930000000000
|
||||
20 3 9.591060000000003 16.612203218441562 1.596930000000000
|
||||
21 1 9.591060000000003 18.458003576046180 0.000000000000000
|
||||
22 2 11.189570000000004 19.380903754848489 -1.596930000000000
|
||||
23 3 11.189570000000004 19.380903754848489 1.596930000000000
|
||||
24 1 11.189570000000004 21.226704112453107 0.000000000000000
|
||||
25 2 12.788080000000004 22.149604291255416 -1.596930000000000
|
||||
26 3 12.788080000000004 22.149604291255416 1.596930000000000
|
||||
27 1 12.788080000000004 23.995404648860034 0.000000000000000
|
||||
28 2 14.386590000000005 24.918304827662343 -1.596930000000000
|
||||
29 3 14.386590000000005 24.918304827662343 1.596930000000000
|
||||
30 1 14.386590000000005 26.764105185266961 0.000000000000000
|
||||
31 2 15.985100000000006 27.687005364069270 -1.596930000000000
|
||||
32 3 15.985100000000006 27.687005364069270 1.596930000000000
|
||||
33 1 15.985100000000006 29.532805721673888 0.000000000000000
|
||||
34 2 17.583610000000006 30.455705900476197 -1.596930000000000
|
||||
35 3 17.583610000000006 30.455705900476197 1.596930000000000
|
||||
36 1 17.583610000000006 32.301506258080815 0.000000000000000
|
||||
37 2 19.182120000000007 33.224406436883124 -1.596930000000000
|
||||
38 3 19.182120000000007 33.224406436883124 1.596930000000000
|
||||
39 1 19.182120000000007 35.070206794487742 0.000000000000000
|
||||
40 2 20.780630000000007 35.993106973290051 -1.596930000000000
|
||||
41 3 20.780630000000007 35.993106973290051 1.596930000000000
|
||||
42 1 20.780630000000007 37.838907330894669 0.000000000000000
|
||||
43 2 22.379140000000008 38.761807509696978 -1.596930000000000
|
||||
44 3 22.379140000000008 38.761807509696978 1.596930000000000
|
||||
45 1 22.379140000000008 40.607607867301596 0.000000000000000
|
||||
46 2 23.977650000000008 41.530508046103905 -1.596930000000000
|
||||
47 3 23.977650000000008 41.530508046103905 1.596930000000000
|
||||
48 1 23.977650000000008 43.376308403708523 0.000000000000000
|
||||
49 2 3.197020000000001 0.000000000000000 -1.596930000000000
|
||||
50 3 3.197020000000001 0.000000000000000 1.596930000000000
|
||||
51 1 3.197020000000001 1.845800357604618 0.000000000000000
|
||||
52 2 4.795530000000002 2.768700536406927 -1.596930000000000
|
||||
53 3 4.795530000000002 2.768700536406927 1.596930000000000
|
||||
54 1 4.795530000000002 4.614500894011545 0.000000000000000
|
||||
55 2 6.394040000000002 5.537401072813854 -1.596930000000000
|
||||
56 3 6.394040000000002 5.537401072813854 1.596930000000000
|
||||
57 1 6.394040000000002 7.383201430418472 0.000000000000000
|
||||
58 2 7.992550000000003 8.306101609220781 -1.596930000000000
|
||||
59 3 7.992550000000003 8.306101609220781 1.596930000000000
|
||||
60 1 7.992550000000003 10.151901966825399 0.000000000000000
|
||||
61 2 9.591060000000003 11.074802145627708 -1.596930000000000
|
||||
62 3 9.591060000000003 11.074802145627708 1.596930000000000
|
||||
63 1 9.591060000000003 12.920602503232326 0.000000000000000
|
||||
64 2 11.189570000000004 13.843502682034635 -1.596930000000000
|
||||
65 3 11.189570000000004 13.843502682034635 1.596930000000000
|
||||
66 1 11.189570000000004 15.689303039639253 0.000000000000000
|
||||
67 2 12.788080000000004 16.612203218441562 -1.596930000000000
|
||||
68 3 12.788080000000004 16.612203218441562 1.596930000000000
|
||||
69 1 12.788080000000004 18.458003576046180 0.000000000000000
|
||||
70 2 14.386590000000005 19.380903754848489 -1.596930000000000
|
||||
71 3 14.386590000000005 19.380903754848489 1.596930000000000
|
||||
72 1 14.386590000000005 21.226704112453107 0.000000000000000
|
||||
73 2 15.985100000000006 22.149604291255416 -1.596930000000000
|
||||
74 3 15.985100000000006 22.149604291255416 1.596930000000000
|
||||
75 1 15.985100000000006 23.995404648860034 0.000000000000000
|
||||
76 2 17.583610000000006 24.918304827662343 -1.596930000000000
|
||||
77 3 17.583610000000006 24.918304827662343 1.596930000000000
|
||||
78 1 17.583610000000006 26.764105185266961 0.000000000000000
|
||||
79 2 19.182120000000007 27.687005364069270 -1.596930000000000
|
||||
80 3 19.182120000000007 27.687005364069270 1.596930000000000
|
||||
81 1 19.182120000000007 29.532805721673888 0.000000000000000
|
||||
82 2 20.780630000000007 30.455705900476197 -1.596930000000000
|
||||
83 3 20.780630000000007 30.455705900476197 1.596930000000000
|
||||
84 1 20.780630000000007 32.301506258080815 0.000000000000000
|
||||
85 2 22.379140000000008 33.224406436883124 -1.596930000000000
|
||||
86 3 22.379140000000008 33.224406436883124 1.596930000000000
|
||||
87 1 22.379140000000008 35.070206794487742 0.000000000000000
|
||||
88 2 23.977650000000008 35.993106973290051 -1.596930000000000
|
||||
89 3 23.977650000000008 35.993106973290051 1.596930000000000
|
||||
90 1 23.977650000000008 37.838907330894669 0.000000000000000
|
||||
91 2 25.576160000000009 38.761807509696978 -1.596930000000000
|
||||
92 3 25.576160000000009 38.761807509696978 1.596930000000000
|
||||
93 1 25.576160000000009 40.607607867301596 0.000000000000000
|
||||
94 2 27.174670000000009 41.530508046103905 -1.596930000000000
|
||||
95 3 27.174670000000009 41.530508046103905 1.596930000000000
|
||||
96 1 27.174670000000009 43.376308403708523 0.000000000000000
|
||||
97 2 6.394040000000002 0.000000000000000 -1.596930000000000
|
||||
98 3 6.394040000000002 0.000000000000000 1.596930000000000
|
||||
99 1 6.394040000000002 1.845800357604618 0.000000000000000
|
||||
100 2 7.992550000000003 2.768700536406927 -1.596930000000000
|
||||
101 3 7.992550000000003 2.768700536406927 1.596930000000000
|
||||
102 1 7.992550000000003 4.614500894011545 0.000000000000000
|
||||
103 2 9.591060000000003 5.537401072813854 -1.596930000000000
|
||||
104 3 9.591060000000003 5.537401072813854 1.596930000000000
|
||||
105 1 9.591060000000003 7.383201430418472 0.000000000000000
|
||||
106 2 11.189570000000004 8.306101609220781 -1.596930000000000
|
||||
107 3 11.189570000000004 8.306101609220781 1.596930000000000
|
||||
108 1 11.189570000000004 10.151901966825399 0.000000000000000
|
||||
109 2 12.788080000000004 11.074802145627708 -1.596930000000000
|
||||
110 3 12.788080000000004 11.074802145627708 1.596930000000000
|
||||
111 1 12.788080000000004 12.920602503232326 0.000000000000000
|
||||
112 2 14.386590000000005 13.843502682034635 -1.596930000000000
|
||||
113 3 14.386590000000005 13.843502682034635 1.596930000000000
|
||||
114 1 14.386590000000005 15.689303039639253 0.000000000000000
|
||||
115 2 15.985100000000006 16.612203218441562 -1.596930000000000
|
||||
116 3 15.985100000000006 16.612203218441562 1.596930000000000
|
||||
117 1 15.985100000000006 18.458003576046180 0.000000000000000
|
||||
118 2 17.583610000000006 19.380903754848489 -1.596930000000000
|
||||
119 3 17.583610000000006 19.380903754848489 1.596930000000000
|
||||
120 1 17.583610000000006 21.226704112453107 0.000000000000000
|
||||
121 2 19.182120000000007 22.149604291255416 -1.596930000000000
|
||||
122 3 19.182120000000007 22.149604291255416 1.596930000000000
|
||||
123 1 19.182120000000007 23.995404648860034 0.000000000000000
|
||||
124 2 20.780630000000007 24.918304827662343 -1.596930000000000
|
||||
125 3 20.780630000000007 24.918304827662343 1.596930000000000
|
||||
126 1 20.780630000000007 26.764105185266961 0.000000000000000
|
||||
127 2 22.379140000000008 27.687005364069270 -1.596930000000000
|
||||
128 3 22.379140000000008 27.687005364069270 1.596930000000000
|
||||
129 1 22.379140000000008 29.532805721673888 0.000000000000000
|
||||
130 2 23.977650000000008 30.455705900476197 -1.596930000000000
|
||||
131 3 23.977650000000008 30.455705900476197 1.596930000000000
|
||||
132 1 23.977650000000008 32.301506258080815 0.000000000000000
|
||||
133 2 25.576160000000009 33.224406436883124 -1.596930000000000
|
||||
134 3 25.576160000000009 33.224406436883124 1.596930000000000
|
||||
135 1 25.576160000000009 35.070206794487742 0.000000000000000
|
||||
136 2 27.174670000000009 35.993106973290051 -1.596930000000000
|
||||
137 3 27.174670000000009 35.993106973290051 1.596930000000000
|
||||
138 1 27.174670000000009 37.838907330894669 0.000000000000000
|
||||
139 2 28.773180000000010 38.761807509696978 -1.596930000000000
|
||||
140 3 28.773180000000010 38.761807509696978 1.596930000000000
|
||||
141 1 28.773180000000010 40.607607867301596 0.000000000000000
|
||||
142 2 30.371690000000011 41.530508046103905 -1.596930000000000
|
||||
143 3 30.371690000000011 41.530508046103905 1.596930000000000
|
||||
144 1 30.371690000000011 43.376308403708523 0.000000000000000
|
||||
145 2 9.591060000000003 0.000000000000000 -1.596930000000000
|
||||
146 3 9.591060000000003 0.000000000000000 1.596930000000000
|
||||
147 1 9.591060000000003 1.845800357604618 0.000000000000000
|
||||
148 2 11.189570000000004 2.768700536406927 -1.596930000000000
|
||||
149 3 11.189570000000004 2.768700536406927 1.596930000000000
|
||||
150 1 11.189570000000004 4.614500894011545 0.000000000000000
|
||||
151 2 12.788080000000004 5.537401072813854 -1.596930000000000
|
||||
152 3 12.788080000000004 5.537401072813854 1.596930000000000
|
||||
153 1 12.788080000000004 7.383201430418472 0.000000000000000
|
||||
154 2 14.386590000000005 8.306101609220781 -1.596930000000000
|
||||
155 3 14.386590000000005 8.306101609220781 1.596930000000000
|
||||
156 1 14.386590000000005 10.151901966825399 0.000000000000000
|
||||
157 2 15.985100000000006 11.074802145627708 -1.596930000000000
|
||||
158 3 15.985100000000006 11.074802145627708 1.596930000000000
|
||||
159 1 15.985100000000006 12.920602503232326 0.000000000000000
|
||||
160 2 17.583610000000006 13.843502682034635 -1.596930000000000
|
||||
161 3 17.583610000000006 13.843502682034635 1.596930000000000
|
||||
162 1 17.583610000000006 15.689303039639253 0.000000000000000
|
||||
163 2 19.182120000000007 16.612203218441562 -1.596930000000000
|
||||
164 3 19.182120000000007 16.612203218441562 1.596930000000000
|
||||
165 1 19.182120000000007 18.458003576046180 0.000000000000000
|
||||
166 2 20.780630000000007 19.380903754848489 -1.596930000000000
|
||||
167 3 20.780630000000007 19.380903754848489 1.596930000000000
|
||||
168 1 20.780630000000007 21.226704112453107 0.000000000000000
|
||||
169 2 22.379140000000008 22.149604291255416 -1.596930000000000
|
||||
170 3 22.379140000000008 22.149604291255416 1.596930000000000
|
||||
171 1 22.379140000000008 23.995404648860034 0.000000000000000
|
||||
172 2 23.977650000000008 24.918304827662343 -1.596930000000000
|
||||
173 3 23.977650000000008 24.918304827662343 1.596930000000000
|
||||
174 1 23.977650000000008 26.764105185266961 0.000000000000000
|
||||
175 2 25.576160000000009 27.687005364069270 -1.596930000000000
|
||||
176 3 25.576160000000009 27.687005364069270 1.596930000000000
|
||||
177 1 25.576160000000009 29.532805721673888 0.000000000000000
|
||||
178 2 27.174670000000009 30.455705900476197 -1.596930000000000
|
||||
179 3 27.174670000000009 30.455705900476197 1.596930000000000
|
||||
180 1 27.174670000000009 32.301506258080815 0.000000000000000
|
||||
181 2 28.773180000000010 33.224406436883124 -1.596930000000000
|
||||
182 3 28.773180000000010 33.224406436883124 1.596930000000000
|
||||
183 1 28.773180000000010 35.070206794487742 0.000000000000000
|
||||
184 2 30.371690000000011 35.993106973290051 -1.596930000000000
|
||||
185 3 30.371690000000011 35.993106973290051 1.596930000000000
|
||||
186 1 30.371690000000011 37.838907330894669 0.000000000000000
|
||||
187 2 31.970200000000011 38.761807509696978 -1.596930000000000
|
||||
188 3 31.970200000000011 38.761807509696978 1.596930000000000
|
||||
189 1 31.970200000000011 40.607607867301596 0.000000000000000
|
||||
190 2 33.568710000000012 41.530508046103905 -1.596930000000000
|
||||
191 3 33.568710000000012 41.530508046103905 1.596930000000000
|
||||
192 1 33.568710000000012 43.376308403708523 0.000000000000000
|
||||
193 2 12.788080000000004 0.000000000000000 -1.596930000000000
|
||||
194 3 12.788080000000004 0.000000000000000 1.596930000000000
|
||||
195 1 12.788080000000004 1.845800357604618 0.000000000000000
|
||||
196 2 14.386590000000005 2.768700536406927 -1.596930000000000
|
||||
197 3 14.386590000000005 2.768700536406927 1.596930000000000
|
||||
198 1 14.386590000000005 4.614500894011545 0.000000000000000
|
||||
199 2 15.985100000000006 5.537401072813854 -1.596930000000000
|
||||
200 3 15.985100000000006 5.537401072813854 1.596930000000000
|
||||
201 1 15.985100000000006 7.383201430418472 0.000000000000000
|
||||
202 2 17.583610000000006 8.306101609220781 -1.596930000000000
|
||||
203 3 17.583610000000006 8.306101609220781 1.596930000000000
|
||||
204 1 17.583610000000006 10.151901966825399 0.000000000000000
|
||||
205 2 19.182120000000007 11.074802145627708 -1.596930000000000
|
||||
206 3 19.182120000000007 11.074802145627708 1.596930000000000
|
||||
207 1 19.182120000000007 12.920602503232326 0.000000000000000
|
||||
208 2 20.780630000000007 13.843502682034635 -1.596930000000000
|
||||
209 3 20.780630000000007 13.843502682034635 1.596930000000000
|
||||
210 1 20.780630000000007 15.689303039639253 0.000000000000000
|
||||
211 2 22.379140000000008 16.612203218441562 -1.596930000000000
|
||||
212 3 22.379140000000008 16.612203218441562 1.596930000000000
|
||||
213 1 22.379140000000008 18.458003576046180 0.000000000000000
|
||||
214 2 23.977650000000008 19.380903754848489 -1.596930000000000
|
||||
215 3 23.977650000000008 19.380903754848489 1.596930000000000
|
||||
216 1 23.977650000000008 21.226704112453107 0.000000000000000
|
||||
217 2 25.576160000000009 22.149604291255416 -1.596930000000000
|
||||
218 3 25.576160000000009 22.149604291255416 1.596930000000000
|
||||
219 1 25.576160000000009 23.995404648860034 0.000000000000000
|
||||
220 2 27.174670000000009 24.918304827662343 -1.596930000000000
|
||||
221 3 27.174670000000009 24.918304827662343 1.596930000000000
|
||||
222 1 27.174670000000009 26.764105185266961 0.000000000000000
|
||||
223 2 28.773180000000010 27.687005364069270 -1.596930000000000
|
||||
224 3 28.773180000000010 27.687005364069270 1.596930000000000
|
||||
225 1 28.773180000000010 29.532805721673888 0.000000000000000
|
||||
226 2 30.371690000000011 30.455705900476197 -1.596930000000000
|
||||
227 3 30.371690000000011 30.455705900476197 1.596930000000000
|
||||
228 1 30.371690000000011 32.301506258080815 0.000000000000000
|
||||
229 2 31.970200000000011 33.224406436883124 -1.596930000000000
|
||||
230 3 31.970200000000011 33.224406436883124 1.596930000000000
|
||||
231 1 31.970200000000011 35.070206794487742 0.000000000000000
|
||||
232 2 33.568710000000012 35.993106973290051 -1.596930000000000
|
||||
233 3 33.568710000000012 35.993106973290051 1.596930000000000
|
||||
234 1 33.568710000000012 37.838907330894669 0.000000000000000
|
||||
235 2 35.167220000000012 38.761807509696978 -1.596930000000000
|
||||
236 3 35.167220000000012 38.761807509696978 1.596930000000000
|
||||
237 1 35.167220000000012 40.607607867301596 0.000000000000000
|
||||
238 2 36.765730000000013 41.530508046103905 -1.596930000000000
|
||||
239 3 36.765730000000013 41.530508046103905 1.596930000000000
|
||||
240 1 36.765730000000013 43.376308403708523 0.000000000000000
|
||||
241 2 15.985100000000006 0.000000000000000 -1.596930000000000
|
||||
242 3 15.985100000000006 0.000000000000000 1.596930000000000
|
||||
243 1 15.985100000000006 1.845800357604618 0.000000000000000
|
||||
244 2 17.583610000000006 2.768700536406927 -1.596930000000000
|
||||
245 3 17.583610000000006 2.768700536406927 1.596930000000000
|
||||
246 1 17.583610000000006 4.614500894011545 0.000000000000000
|
||||
247 2 19.182120000000007 5.537401072813854 -1.596930000000000
|
||||
248 3 19.182120000000007 5.537401072813854 1.596930000000000
|
||||
249 1 19.182120000000007 7.383201430418472 0.000000000000000
|
||||
250 2 20.780630000000007 8.306101609220781 -1.596930000000000
|
||||
251 3 20.780630000000007 8.306101609220781 1.596930000000000
|
||||
252 1 20.780630000000007 10.151901966825399 0.000000000000000
|
||||
253 2 22.379140000000008 11.074802145627708 -1.596930000000000
|
||||
254 3 22.379140000000008 11.074802145627708 1.596930000000000
|
||||
255 1 22.379140000000008 12.920602503232326 0.000000000000000
|
||||
256 2 23.977650000000008 13.843502682034635 -1.596930000000000
|
||||
257 3 23.977650000000008 13.843502682034635 1.596930000000000
|
||||
258 1 23.977650000000008 15.689303039639253 0.000000000000000
|
||||
259 2 25.576160000000009 16.612203218441562 -1.596930000000000
|
||||
260 3 25.576160000000009 16.612203218441562 1.596930000000000
|
||||
261 1 25.576160000000009 18.458003576046180 0.000000000000000
|
||||
262 2 27.174670000000009 19.380903754848489 -1.596930000000000
|
||||
263 3 27.174670000000009 19.380903754848489 1.596930000000000
|
||||
264 1 27.174670000000009 21.226704112453107 0.000000000000000
|
||||
265 2 28.773180000000010 22.149604291255416 -1.596930000000000
|
||||
266 3 28.773180000000010 22.149604291255416 1.596930000000000
|
||||
267 1 28.773180000000010 23.995404648860034 0.000000000000000
|
||||
268 2 30.371690000000011 24.918304827662343 -1.596930000000000
|
||||
269 3 30.371690000000011 24.918304827662343 1.596930000000000
|
||||
270 1 30.371690000000011 26.764105185266961 0.000000000000000
|
||||
271 2 31.970200000000011 27.687005364069270 -1.596930000000000
|
||||
272 3 31.970200000000011 27.687005364069270 1.596930000000000
|
||||
273 1 31.970200000000011 29.532805721673888 0.000000000000000
|
||||
274 2 33.568710000000012 30.455705900476197 -1.596930000000000
|
||||
275 3 33.568710000000012 30.455705900476197 1.596930000000000
|
||||
276 1 33.568710000000012 32.301506258080815 0.000000000000000
|
||||
277 2 35.167220000000012 33.224406436883124 -1.596930000000000
|
||||
278 3 35.167220000000012 33.224406436883124 1.596930000000000
|
||||
279 1 35.167220000000012 35.070206794487742 0.000000000000000
|
||||
280 2 36.765730000000013 35.993106973290051 -1.596930000000000
|
||||
281 3 36.765730000000013 35.993106973290051 1.596930000000000
|
||||
282 1 36.765730000000013 37.838907330894669 0.000000000000000
|
||||
283 2 38.364240000000013 38.761807509696978 -1.596930000000000
|
||||
284 3 38.364240000000013 38.761807509696978 1.596930000000000
|
||||
285 1 38.364240000000013 40.607607867301596 0.000000000000000
|
||||
286 2 39.962750000000014 41.530508046103905 -1.596930000000000
|
||||
287 3 39.962750000000014 41.530508046103905 1.596930000000000
|
||||
288 1 39.962750000000014 43.376308403708523 0.000000000000000
|
||||
289 2 19.182120000000007 0.000000000000000 -1.596930000000000
|
||||
290 3 19.182120000000007 0.000000000000000 1.596930000000000
|
||||
291 1 19.182120000000007 1.845800357604618 0.000000000000000
|
||||
292 2 20.780630000000007 2.768700536406927 -1.596930000000000
|
||||
293 3 20.780630000000007 2.768700536406927 1.596930000000000
|
||||
294 1 20.780630000000007 4.614500894011545 0.000000000000000
|
||||
295 2 22.379140000000008 5.537401072813854 -1.596930000000000
|
||||
296 3 22.379140000000008 5.537401072813854 1.596930000000000
|
||||
297 1 22.379140000000008 7.383201430418472 0.000000000000000
|
||||
298 2 23.977650000000008 8.306101609220781 -1.596930000000000
|
||||
299 3 23.977650000000008 8.306101609220781 1.596930000000000
|
||||
300 1 23.977650000000008 10.151901966825399 0.000000000000000
|
||||
301 2 25.576160000000009 11.074802145627708 -1.596930000000000
|
||||
302 3 25.576160000000009 11.074802145627708 1.596930000000000
|
||||
303 1 25.576160000000009 12.920602503232326 0.000000000000000
|
||||
304 2 27.174670000000009 13.843502682034635 -1.596930000000000
|
||||
305 3 27.174670000000009 13.843502682034635 1.596930000000000
|
||||
306 1 27.174670000000009 15.689303039639253 0.000000000000000
|
||||
307 2 28.773180000000010 16.612203218441562 -1.596930000000000
|
||||
308 3 28.773180000000010 16.612203218441562 1.596930000000000
|
||||
309 1 28.773180000000010 18.458003576046180 0.000000000000000
|
||||
310 2 30.371690000000011 19.380903754848489 -1.596930000000000
|
||||
311 3 30.371690000000011 19.380903754848489 1.596930000000000
|
||||
312 1 30.371690000000011 21.226704112453107 0.000000000000000
|
||||
313 2 31.970200000000011 22.149604291255416 -1.596930000000000
|
||||
314 3 31.970200000000011 22.149604291255416 1.596930000000000
|
||||
315 1 31.970200000000011 23.995404648860034 0.000000000000000
|
||||
316 2 33.568710000000012 24.918304827662343 -1.596930000000000
|
||||
317 3 33.568710000000012 24.918304827662343 1.596930000000000
|
||||
318 1 33.568710000000012 26.764105185266961 0.000000000000000
|
||||
319 2 35.167220000000012 27.687005364069270 -1.596930000000000
|
||||
320 3 35.167220000000012 27.687005364069270 1.596930000000000
|
||||
321 1 35.167220000000012 29.532805721673888 0.000000000000000
|
||||
322 2 36.765730000000013 30.455705900476197 -1.596930000000000
|
||||
323 3 36.765730000000013 30.455705900476197 1.596930000000000
|
||||
324 1 36.765730000000013 32.301506258080815 0.000000000000000
|
||||
325 2 38.364240000000013 33.224406436883124 -1.596930000000000
|
||||
326 3 38.364240000000013 33.224406436883124 1.596930000000000
|
||||
327 1 38.364240000000013 35.070206794487742 0.000000000000000
|
||||
328 2 39.962750000000014 35.993106973290051 -1.596930000000000
|
||||
329 3 39.962750000000014 35.993106973290051 1.596930000000000
|
||||
330 1 39.962750000000014 37.838907330894669 0.000000000000000
|
||||
331 2 41.561260000000014 38.761807509696978 -1.596930000000000
|
||||
332 3 41.561260000000014 38.761807509696978 1.596930000000000
|
||||
333 1 41.561260000000014 40.607607867301596 0.000000000000000
|
||||
334 2 43.159770000000015 41.530508046103905 -1.596930000000000
|
||||
335 3 43.159770000000015 41.530508046103905 1.596930000000000
|
||||
336 1 43.159770000000015 43.376308403708523 0.000000000000000
|
||||
337 2 22.379140000000008 0.000000000000000 -1.596930000000000
|
||||
338 3 22.379140000000008 0.000000000000000 1.596930000000000
|
||||
339 1 22.379140000000008 1.845800357604618 0.000000000000000
|
||||
340 2 23.977650000000008 2.768700536406927 -1.596930000000000
|
||||
341 3 23.977650000000008 2.768700536406927 1.596930000000000
|
||||
342 1 23.977650000000008 4.614500894011545 0.000000000000000
|
||||
343 2 25.576160000000009 5.537401072813854 -1.596930000000000
|
||||
344 3 25.576160000000009 5.537401072813854 1.596930000000000
|
||||
345 1 25.576160000000009 7.383201430418472 0.000000000000000
|
||||
346 2 27.174670000000009 8.306101609220781 -1.596930000000000
|
||||
347 3 27.174670000000009 8.306101609220781 1.596930000000000
|
||||
348 1 27.174670000000009 10.151901966825399 0.000000000000000
|
||||
349 2 28.773180000000010 11.074802145627708 -1.596930000000000
|
||||
350 3 28.773180000000010 11.074802145627708 1.596930000000000
|
||||
351 1 28.773180000000010 12.920602503232326 0.000000000000000
|
||||
352 2 30.371690000000011 13.843502682034635 -1.596930000000000
|
||||
353 3 30.371690000000011 13.843502682034635 1.596930000000000
|
||||
354 1 30.371690000000011 15.689303039639253 0.000000000000000
|
||||
355 2 31.970200000000011 16.612203218441562 -1.596930000000000
|
||||
356 3 31.970200000000011 16.612203218441562 1.596930000000000
|
||||
357 1 31.970200000000011 18.458003576046180 0.000000000000000
|
||||
358 2 33.568710000000012 19.380903754848489 -1.596930000000000
|
||||
359 3 33.568710000000012 19.380903754848489 1.596930000000000
|
||||
360 1 33.568710000000012 21.226704112453107 0.000000000000000
|
||||
361 2 35.167220000000012 22.149604291255416 -1.596930000000000
|
||||
362 3 35.167220000000012 22.149604291255416 1.596930000000000
|
||||
363 1 35.167220000000012 23.995404648860034 0.000000000000000
|
||||
364 2 36.765730000000013 24.918304827662343 -1.596930000000000
|
||||
365 3 36.765730000000013 24.918304827662343 1.596930000000000
|
||||
366 1 36.765730000000013 26.764105185266961 0.000000000000000
|
||||
367 2 38.364240000000013 27.687005364069270 -1.596930000000000
|
||||
368 3 38.364240000000013 27.687005364069270 1.596930000000000
|
||||
369 1 38.364240000000013 29.532805721673888 0.000000000000000
|
||||
370 2 39.962750000000014 30.455705900476197 -1.596930000000000
|
||||
371 3 39.962750000000014 30.455705900476197 1.596930000000000
|
||||
372 1 39.962750000000014 32.301506258080815 0.000000000000000
|
||||
373 2 41.561260000000014 33.224406436883124 -1.596930000000000
|
||||
374 3 41.561260000000014 33.224406436883124 1.596930000000000
|
||||
375 1 41.561260000000014 35.070206794487742 0.000000000000000
|
||||
376 2 43.159770000000015 35.993106973290051 -1.596930000000000
|
||||
377 3 43.159770000000015 35.993106973290051 1.596930000000000
|
||||
378 1 43.159770000000015 37.838907330894669 0.000000000000000
|
||||
379 2 44.758280000000015 38.761807509696978 -1.596930000000000
|
||||
380 3 44.758280000000015 38.761807509696978 1.596930000000000
|
||||
381 1 44.758280000000015 40.607607867301596 0.000000000000000
|
||||
382 2 46.356790000000016 41.530508046103905 -1.596930000000000
|
||||
383 3 46.356790000000016 41.530508046103905 1.596930000000000
|
||||
384 1 46.356790000000016 43.376308403708523 0.000000000000000
|
||||
385 2 25.576160000000009 0.000000000000000 -1.596930000000000
|
||||
386 3 25.576160000000009 0.000000000000000 1.596930000000000
|
||||
387 1 25.576160000000009 1.845800357604618 0.000000000000000
|
||||
388 2 27.174670000000009 2.768700536406927 -1.596930000000000
|
||||
389 3 27.174670000000009 2.768700536406927 1.596930000000000
|
||||
390 1 27.174670000000009 4.614500894011545 0.000000000000000
|
||||
391 2 28.773180000000010 5.537401072813854 -1.596930000000000
|
||||
392 3 28.773180000000010 5.537401072813854 1.596930000000000
|
||||
393 1 28.773180000000010 7.383201430418472 0.000000000000000
|
||||
394 2 30.371690000000011 8.306101609220781 -1.596930000000000
|
||||
395 3 30.371690000000011 8.306101609220781 1.596930000000000
|
||||
396 1 30.371690000000011 10.151901966825399 0.000000000000000
|
||||
397 2 31.970200000000011 11.074802145627708 -1.596930000000000
|
||||
398 3 31.970200000000011 11.074802145627708 1.596930000000000
|
||||
399 1 31.970200000000011 12.920602503232326 0.000000000000000
|
||||
400 2 33.568710000000012 13.843502682034635 -1.596930000000000
|
||||
401 3 33.568710000000012 13.843502682034635 1.596930000000000
|
||||
402 1 33.568710000000012 15.689303039639253 0.000000000000000
|
||||
403 2 35.167220000000012 16.612203218441562 -1.596930000000000
|
||||
404 3 35.167220000000012 16.612203218441562 1.596930000000000
|
||||
405 1 35.167220000000012 18.458003576046180 0.000000000000000
|
||||
406 2 36.765730000000013 19.380903754848489 -1.596930000000000
|
||||
407 3 36.765730000000013 19.380903754848489 1.596930000000000
|
||||
408 1 36.765730000000013 21.226704112453107 0.000000000000000
|
||||
409 2 38.364240000000013 22.149604291255416 -1.596930000000000
|
||||
410 3 38.364240000000013 22.149604291255416 1.596930000000000
|
||||
411 1 38.364240000000013 23.995404648860034 0.000000000000000
|
||||
412 2 39.962750000000014 24.918304827662343 -1.596930000000000
|
||||
413 3 39.962750000000014 24.918304827662343 1.596930000000000
|
||||
414 1 39.962750000000014 26.764105185266961 0.000000000000000
|
||||
415 2 41.561260000000014 27.687005364069270 -1.596930000000000
|
||||
416 3 41.561260000000014 27.687005364069270 1.596930000000000
|
||||
417 1 41.561260000000014 29.532805721673888 0.000000000000000
|
||||
418 2 43.159770000000015 30.455705900476197 -1.596930000000000
|
||||
419 3 43.159770000000015 30.455705900476197 1.596930000000000
|
||||
420 1 43.159770000000015 32.301506258080815 0.000000000000000
|
||||
421 2 44.758280000000015 33.224406436883124 -1.596930000000000
|
||||
422 3 44.758280000000015 33.224406436883124 1.596930000000000
|
||||
423 1 44.758280000000015 35.070206794487742 0.000000000000000
|
||||
424 2 46.356790000000016 35.993106973290051 -1.596930000000000
|
||||
425 3 46.356790000000016 35.993106973290051 1.596930000000000
|
||||
426 1 46.356790000000016 37.838907330894669 0.000000000000000
|
||||
427 2 47.955300000000017 38.761807509696978 -1.596930000000000
|
||||
428 3 47.955300000000017 38.761807509696978 1.596930000000000
|
||||
429 1 47.955300000000017 40.607607867301596 0.000000000000000
|
||||
430 2 49.553810000000017 41.530508046103905 -1.596930000000000
|
||||
431 3 49.553810000000017 41.530508046103905 1.596930000000000
|
||||
432 1 49.553810000000017 43.376308403708523 0.000000000000000
|
||||
433 2 28.773180000000010 0.000000000000000 -1.596930000000000
|
||||
434 3 28.773180000000010 0.000000000000000 1.596930000000000
|
||||
435 1 28.773180000000010 1.845800357604618 0.000000000000000
|
||||
436 2 30.371690000000011 2.768700536406927 -1.596930000000000
|
||||
437 3 30.371690000000011 2.768700536406927 1.596930000000000
|
||||
438 1 30.371690000000011 4.614500894011545 0.000000000000000
|
||||
439 2 31.970200000000011 5.537401072813854 -1.596930000000000
|
||||
440 3 31.970200000000011 5.537401072813854 1.596930000000000
|
||||
441 1 31.970200000000011 7.383201430418472 0.000000000000000
|
||||
442 2 33.568710000000012 8.306101609220781 -1.596930000000000
|
||||
443 3 33.568710000000012 8.306101609220781 1.596930000000000
|
||||
444 1 33.568710000000012 10.151901966825399 0.000000000000000
|
||||
445 2 35.167220000000012 11.074802145627708 -1.596930000000000
|
||||
446 3 35.167220000000012 11.074802145627708 1.596930000000000
|
||||
447 1 35.167220000000012 12.920602503232326 0.000000000000000
|
||||
448 2 36.765730000000013 13.843502682034635 -1.596930000000000
|
||||
449 3 36.765730000000013 13.843502682034635 1.596930000000000
|
||||
450 1 36.765730000000013 15.689303039639253 0.000000000000000
|
||||
451 2 38.364240000000013 16.612203218441562 -1.596930000000000
|
||||
452 3 38.364240000000013 16.612203218441562 1.596930000000000
|
||||
453 1 38.364240000000013 18.458003576046180 0.000000000000000
|
||||
454 2 39.962750000000014 19.380903754848489 -1.596930000000000
|
||||
455 3 39.962750000000014 19.380903754848489 1.596930000000000
|
||||
456 1 39.962750000000014 21.226704112453107 0.000000000000000
|
||||
457 2 41.561260000000014 22.149604291255416 -1.596930000000000
|
||||
458 3 41.561260000000014 22.149604291255416 1.596930000000000
|
||||
459 1 41.561260000000014 23.995404648860034 0.000000000000000
|
||||
460 2 43.159770000000015 24.918304827662343 -1.596930000000000
|
||||
461 3 43.159770000000015 24.918304827662343 1.596930000000000
|
||||
462 1 43.159770000000015 26.764105185266961 0.000000000000000
|
||||
463 2 44.758280000000015 27.687005364069270 -1.596930000000000
|
||||
464 3 44.758280000000015 27.687005364069270 1.596930000000000
|
||||
465 1 44.758280000000015 29.532805721673888 0.000000000000000
|
||||
466 2 46.356790000000016 30.455705900476197 -1.596930000000000
|
||||
467 3 46.356790000000016 30.455705900476197 1.596930000000000
|
||||
468 1 46.356790000000016 32.301506258080815 0.000000000000000
|
||||
469 2 47.955300000000017 33.224406436883124 -1.596930000000000
|
||||
470 3 47.955300000000017 33.224406436883124 1.596930000000000
|
||||
471 1 47.955300000000017 35.070206794487742 0.000000000000000
|
||||
472 2 49.553810000000017 35.993106973290051 -1.596930000000000
|
||||
473 3 49.553810000000017 35.993106973290051 1.596930000000000
|
||||
474 1 49.553810000000017 37.838907330894669 0.000000000000000
|
||||
475 2 51.152320000000018 38.761807509696978 -1.596930000000000
|
||||
476 3 51.152320000000018 38.761807509696978 1.596930000000000
|
||||
477 1 51.152320000000018 40.607607867301596 0.000000000000000
|
||||
478 2 52.750830000000018 41.530508046103905 -1.596930000000000
|
||||
479 3 52.750830000000018 41.530508046103905 1.596930000000000
|
||||
480 1 52.750830000000018 43.376308403708523 0.000000000000000
|
||||
481 2 31.970200000000011 0.000000000000000 -1.596930000000000
|
||||
482 3 31.970200000000011 0.000000000000000 1.596930000000000
|
||||
483 1 31.970200000000011 1.845800357604618 0.000000000000000
|
||||
484 2 33.568710000000012 2.768700536406927 -1.596930000000000
|
||||
485 3 33.568710000000012 2.768700536406927 1.596930000000000
|
||||
486 1 33.568710000000012 4.614500894011545 0.000000000000000
|
||||
487 2 35.167220000000012 5.537401072813854 -1.596930000000000
|
||||
488 3 35.167220000000012 5.537401072813854 1.596930000000000
|
||||
489 1 35.167220000000012 7.383201430418472 0.000000000000000
|
||||
490 2 36.765730000000013 8.306101609220781 -1.596930000000000
|
||||
491 3 36.765730000000013 8.306101609220781 1.596930000000000
|
||||
492 1 36.765730000000013 10.151901966825399 0.000000000000000
|
||||
493 2 38.364240000000013 11.074802145627708 -1.596930000000000
|
||||
494 3 38.364240000000013 11.074802145627708 1.596930000000000
|
||||
495 1 38.364240000000013 12.920602503232326 0.000000000000000
|
||||
496 2 39.962750000000014 13.843502682034635 -1.596930000000000
|
||||
497 3 39.962750000000014 13.843502682034635 1.596930000000000
|
||||
498 1 39.962750000000014 15.689303039639253 0.000000000000000
|
||||
499 2 41.561260000000014 16.612203218441562 -1.596930000000000
|
||||
500 3 41.561260000000014 16.612203218441562 1.596930000000000
|
||||
501 1 41.561260000000014 18.458003576046180 0.000000000000000
|
||||
502 2 43.159770000000015 19.380903754848489 -1.596930000000000
|
||||
503 3 43.159770000000015 19.380903754848489 1.596930000000000
|
||||
504 1 43.159770000000015 21.226704112453107 0.000000000000000
|
||||
505 2 44.758280000000015 22.149604291255416 -1.596930000000000
|
||||
506 3 44.758280000000015 22.149604291255416 1.596930000000000
|
||||
507 1 44.758280000000015 23.995404648860034 0.000000000000000
|
||||
508 2 46.356790000000016 24.918304827662343 -1.596930000000000
|
||||
509 3 46.356790000000016 24.918304827662343 1.596930000000000
|
||||
510 1 46.356790000000016 26.764105185266961 0.000000000000000
|
||||
511 2 47.955300000000017 27.687005364069270 -1.596930000000000
|
||||
512 3 47.955300000000017 27.687005364069270 1.596930000000000
|
||||
513 1 47.955300000000017 29.532805721673888 0.000000000000000
|
||||
514 2 49.553810000000017 30.455705900476197 -1.596930000000000
|
||||
515 3 49.553810000000017 30.455705900476197 1.596930000000000
|
||||
516 1 49.553810000000017 32.301506258080815 0.000000000000000
|
||||
517 2 51.152320000000018 33.224406436883124 -1.596930000000000
|
||||
518 3 51.152320000000018 33.224406436883124 1.596930000000000
|
||||
519 1 51.152320000000018 35.070206794487742 0.000000000000000
|
||||
520 2 52.750830000000018 35.993106973290051 -1.596930000000000
|
||||
521 3 52.750830000000018 35.993106973290051 1.596930000000000
|
||||
522 1 52.750830000000018 37.838907330894669 0.000000000000000
|
||||
523 2 54.349340000000019 38.761807509696978 -1.596930000000000
|
||||
524 3 54.349340000000019 38.761807509696978 1.596930000000000
|
||||
525 1 54.349340000000019 40.607607867301596 0.000000000000000
|
||||
526 2 55.947850000000019 41.530508046103905 -1.596930000000000
|
||||
527 3 55.947850000000019 41.530508046103905 1.596930000000000
|
||||
528 1 55.947850000000019 43.376308403708523 0.000000000000000
|
||||
529 2 35.167220000000012 0.000000000000000 -1.596930000000000
|
||||
530 3 35.167220000000012 0.000000000000000 1.596930000000000
|
||||
531 1 35.167220000000012 1.845800357604618 0.000000000000000
|
||||
532 2 36.765730000000013 2.768700536406927 -1.596930000000000
|
||||
533 3 36.765730000000013 2.768700536406927 1.596930000000000
|
||||
534 1 36.765730000000013 4.614500894011545 0.000000000000000
|
||||
535 2 38.364240000000013 5.537401072813854 -1.596930000000000
|
||||
536 3 38.364240000000013 5.537401072813854 1.596930000000000
|
||||
537 1 38.364240000000013 7.383201430418472 0.000000000000000
|
||||
538 2 39.962750000000014 8.306101609220781 -1.596930000000000
|
||||
539 3 39.962750000000014 8.306101609220781 1.596930000000000
|
||||
540 1 39.962750000000014 10.151901966825399 0.000000000000000
|
||||
541 2 41.561260000000014 11.074802145627708 -1.596930000000000
|
||||
542 3 41.561260000000014 11.074802145627708 1.596930000000000
|
||||
543 1 41.561260000000014 12.920602503232326 0.000000000000000
|
||||
544 2 43.159770000000015 13.843502682034635 -1.596930000000000
|
||||
545 3 43.159770000000015 13.843502682034635 1.596930000000000
|
||||
546 1 43.159770000000015 15.689303039639253 0.000000000000000
|
||||
547 2 44.758280000000015 16.612203218441562 -1.596930000000000
|
||||
548 3 44.758280000000015 16.612203218441562 1.596930000000000
|
||||
549 1 44.758280000000015 18.458003576046180 0.000000000000000
|
||||
550 2 46.356790000000016 19.380903754848489 -1.596930000000000
|
||||
551 3 46.356790000000016 19.380903754848489 1.596930000000000
|
||||
552 1 46.356790000000016 21.226704112453107 0.000000000000000
|
||||
553 2 47.955300000000017 22.149604291255416 -1.596930000000000
|
||||
554 3 47.955300000000017 22.149604291255416 1.596930000000000
|
||||
555 1 47.955300000000017 23.995404648860034 0.000000000000000
|
||||
556 2 49.553810000000017 24.918304827662343 -1.596930000000000
|
||||
557 3 49.553810000000017 24.918304827662343 1.596930000000000
|
||||
558 1 49.553810000000017 26.764105185266961 0.000000000000000
|
||||
559 2 51.152320000000018 27.687005364069270 -1.596930000000000
|
||||
560 3 51.152320000000018 27.687005364069270 1.596930000000000
|
||||
561 1 51.152320000000018 29.532805721673888 0.000000000000000
|
||||
562 2 52.750830000000018 30.455705900476197 -1.596930000000000
|
||||
563 3 52.750830000000018 30.455705900476197 1.596930000000000
|
||||
564 1 52.750830000000018 32.301506258080815 0.000000000000000
|
||||
565 2 54.349340000000019 33.224406436883124 -1.596930000000000
|
||||
566 3 54.349340000000019 33.224406436883124 1.596930000000000
|
||||
567 1 54.349340000000019 35.070206794487742 0.000000000000000
|
||||
568 2 55.947850000000019 35.993106973290051 -1.596930000000000
|
||||
569 3 55.947850000000019 35.993106973290051 1.596930000000000
|
||||
570 1 55.947850000000019 37.838907330894669 0.000000000000000
|
||||
571 2 57.546360000000020 38.761807509696978 -1.596930000000000
|
||||
572 3 57.546360000000020 38.761807509696978 1.596930000000000
|
||||
573 1 57.546360000000020 40.607607867301596 0.000000000000000
|
||||
574 2 59.144870000000020 41.530508046103905 -1.596930000000000
|
||||
575 3 59.144870000000020 41.530508046103905 1.596930000000000
|
||||
576 1 59.144870000000020 43.376308403708523 0.000000000000000
|
||||
577 2 38.364240000000013 0.000000000000000 -1.596930000000000
|
||||
578 3 38.364240000000013 0.000000000000000 1.596930000000000
|
||||
579 1 38.364240000000013 1.845800357604618 0.000000000000000
|
||||
580 2 39.962750000000014 2.768700536406927 -1.596930000000000
|
||||
581 3 39.962750000000014 2.768700536406927 1.596930000000000
|
||||
582 1 39.962750000000014 4.614500894011545 0.000000000000000
|
||||
583 2 41.561260000000014 5.537401072813854 -1.596930000000000
|
||||
584 3 41.561260000000014 5.537401072813854 1.596930000000000
|
||||
585 1 41.561260000000014 7.383201430418472 0.000000000000000
|
||||
586 2 43.159770000000015 8.306101609220781 -1.596930000000000
|
||||
587 3 43.159770000000015 8.306101609220781 1.596930000000000
|
||||
588 1 43.159770000000015 10.151901966825399 0.000000000000000
|
||||
589 2 44.758280000000015 11.074802145627708 -1.596930000000000
|
||||
590 3 44.758280000000015 11.074802145627708 1.596930000000000
|
||||
591 1 44.758280000000015 12.920602503232326 0.000000000000000
|
||||
592 2 46.356790000000016 13.843502682034635 -1.596930000000000
|
||||
593 3 46.356790000000016 13.843502682034635 1.596930000000000
|
||||
594 1 46.356790000000016 15.689303039639253 0.000000000000000
|
||||
595 2 47.955300000000017 16.612203218441562 -1.596930000000000
|
||||
596 3 47.955300000000017 16.612203218441562 1.596930000000000
|
||||
597 1 47.955300000000017 18.458003576046180 0.000000000000000
|
||||
598 2 49.553810000000017 19.380903754848489 -1.596930000000000
|
||||
599 3 49.553810000000017 19.380903754848489 1.596930000000000
|
||||
600 1 49.553810000000017 21.226704112453107 0.000000000000000
|
||||
601 2 51.152320000000018 22.149604291255416 -1.596930000000000
|
||||
602 3 51.152320000000018 22.149604291255416 1.596930000000000
|
||||
603 1 51.152320000000018 23.995404648860034 0.000000000000000
|
||||
604 2 52.750830000000018 24.918304827662343 -1.596930000000000
|
||||
605 3 52.750830000000018 24.918304827662343 1.596930000000000
|
||||
606 1 52.750830000000018 26.764105185266961 0.000000000000000
|
||||
607 2 54.349340000000019 27.687005364069270 -1.596930000000000
|
||||
608 3 54.349340000000019 27.687005364069270 1.596930000000000
|
||||
609 1 54.349340000000019 29.532805721673888 0.000000000000000
|
||||
610 2 55.947850000000019 30.455705900476197 -1.596930000000000
|
||||
611 3 55.947850000000019 30.455705900476197 1.596930000000000
|
||||
612 1 55.947850000000019 32.301506258080815 0.000000000000000
|
||||
613 2 57.546360000000020 33.224406436883124 -1.596930000000000
|
||||
614 3 57.546360000000020 33.224406436883124 1.596930000000000
|
||||
615 1 57.546360000000020 35.070206794487742 0.000000000000000
|
||||
616 2 59.144870000000020 35.993106973290051 -1.596930000000000
|
||||
617 3 59.144870000000020 35.993106973290051 1.596930000000000
|
||||
618 1 59.144870000000020 37.838907330894669 0.000000000000000
|
||||
619 2 60.743380000000021 38.761807509696978 -1.596930000000000
|
||||
620 3 60.743380000000021 38.761807509696978 1.596930000000000
|
||||
621 1 60.743380000000021 40.607607867301596 0.000000000000000
|
||||
622 2 62.341890000000022 41.530508046103905 -1.596930000000000
|
||||
623 3 62.341890000000022 41.530508046103905 1.596930000000000
|
||||
624 1 62.341890000000022 43.376308403708523 0.000000000000000
|
||||
625 2 41.561260000000014 0.000000000000000 -1.596930000000000
|
||||
626 3 41.561260000000014 0.000000000000000 1.596930000000000
|
||||
627 1 41.561260000000014 1.845800357604618 0.000000000000000
|
||||
628 2 43.159770000000015 2.768700536406927 -1.596930000000000
|
||||
629 3 43.159770000000015 2.768700536406927 1.596930000000000
|
||||
630 1 43.159770000000015 4.614500894011545 0.000000000000000
|
||||
631 2 44.758280000000015 5.537401072813854 -1.596930000000000
|
||||
632 3 44.758280000000015 5.537401072813854 1.596930000000000
|
||||
633 1 44.758280000000015 7.383201430418472 0.000000000000000
|
||||
634 2 46.356790000000016 8.306101609220781 -1.596930000000000
|
||||
635 3 46.356790000000016 8.306101609220781 1.596930000000000
|
||||
636 1 46.356790000000016 10.151901966825399 0.000000000000000
|
||||
637 2 47.955300000000017 11.074802145627708 -1.596930000000000
|
||||
638 3 47.955300000000017 11.074802145627708 1.596930000000000
|
||||
639 1 47.955300000000017 12.920602503232326 0.000000000000000
|
||||
640 2 49.553810000000017 13.843502682034635 -1.596930000000000
|
||||
641 3 49.553810000000017 13.843502682034635 1.596930000000000
|
||||
642 1 49.553810000000017 15.689303039639253 0.000000000000000
|
||||
643 2 51.152320000000018 16.612203218441562 -1.596930000000000
|
||||
644 3 51.152320000000018 16.612203218441562 1.596930000000000
|
||||
645 1 51.152320000000018 18.458003576046180 0.000000000000000
|
||||
646 2 52.750830000000018 19.380903754848489 -1.596930000000000
|
||||
647 3 52.750830000000018 19.380903754848489 1.596930000000000
|
||||
648 1 52.750830000000018 21.226704112453107 0.000000000000000
|
||||
649 2 54.349340000000019 22.149604291255416 -1.596930000000000
|
||||
650 3 54.349340000000019 22.149604291255416 1.596930000000000
|
||||
651 1 54.349340000000019 23.995404648860034 0.000000000000000
|
||||
652 2 55.947850000000019 24.918304827662343 -1.596930000000000
|
||||
653 3 55.947850000000019 24.918304827662343 1.596930000000000
|
||||
654 1 55.947850000000019 26.764105185266961 0.000000000000000
|
||||
655 2 57.546360000000020 27.687005364069270 -1.596930000000000
|
||||
656 3 57.546360000000020 27.687005364069270 1.596930000000000
|
||||
657 1 57.546360000000020 29.532805721673888 0.000000000000000
|
||||
658 2 59.144870000000020 30.455705900476197 -1.596930000000000
|
||||
659 3 59.144870000000020 30.455705900476197 1.596930000000000
|
||||
660 1 59.144870000000020 32.301506258080815 0.000000000000000
|
||||
661 2 60.743380000000021 33.224406436883124 -1.596930000000000
|
||||
662 3 60.743380000000021 33.224406436883124 1.596930000000000
|
||||
663 1 60.743380000000021 35.070206794487742 0.000000000000000
|
||||
664 2 62.341890000000022 35.993106973290051 -1.596930000000000
|
||||
665 3 62.341890000000022 35.993106973290051 1.596930000000000
|
||||
666 1 62.341890000000022 37.838907330894669 0.000000000000000
|
||||
667 2 63.940400000000022 38.761807509696978 -1.596930000000000
|
||||
668 3 63.940400000000022 38.761807509696978 1.596930000000000
|
||||
669 1 63.940400000000022 40.607607867301596 0.000000000000000
|
||||
670 2 65.538910000000023 41.530508046103905 -1.596930000000000
|
||||
671 3 65.538910000000023 41.530508046103905 1.596930000000000
|
||||
672 1 65.538910000000023 43.376308403708523 0.000000000000000
|
||||
673 2 44.758280000000015 0.000000000000000 -1.596930000000000
|
||||
674 3 44.758280000000015 0.000000000000000 1.596930000000000
|
||||
675 1 44.758280000000015 1.845800357604618 0.000000000000000
|
||||
676 2 46.356790000000016 2.768700536406927 -1.596930000000000
|
||||
677 3 46.356790000000016 2.768700536406927 1.596930000000000
|
||||
678 1 46.356790000000016 4.614500894011545 0.000000000000000
|
||||
679 2 47.955300000000017 5.537401072813854 -1.596930000000000
|
||||
680 3 47.955300000000017 5.537401072813854 1.596930000000000
|
||||
681 1 47.955300000000017 7.383201430418472 0.000000000000000
|
||||
682 2 49.553810000000017 8.306101609220781 -1.596930000000000
|
||||
683 3 49.553810000000017 8.306101609220781 1.596930000000000
|
||||
684 1 49.553810000000017 10.151901966825399 0.000000000000000
|
||||
685 2 51.152320000000018 11.074802145627708 -1.596930000000000
|
||||
686 3 51.152320000000018 11.074802145627708 1.596930000000000
|
||||
687 1 51.152320000000018 12.920602503232326 0.000000000000000
|
||||
688 2 52.750830000000018 13.843502682034635 -1.596930000000000
|
||||
689 3 52.750830000000018 13.843502682034635 1.596930000000000
|
||||
690 1 52.750830000000018 15.689303039639253 0.000000000000000
|
||||
691 2 54.349340000000019 16.612203218441562 -1.596930000000000
|
||||
692 3 54.349340000000019 16.612203218441562 1.596930000000000
|
||||
693 1 54.349340000000019 18.458003576046180 0.000000000000000
|
||||
694 2 55.947850000000019 19.380903754848489 -1.596930000000000
|
||||
695 3 55.947850000000019 19.380903754848489 1.596930000000000
|
||||
696 1 55.947850000000019 21.226704112453107 0.000000000000000
|
||||
697 2 57.546360000000020 22.149604291255416 -1.596930000000000
|
||||
698 3 57.546360000000020 22.149604291255416 1.596930000000000
|
||||
699 1 57.546360000000020 23.995404648860034 0.000000000000000
|
||||
700 2 59.144870000000020 24.918304827662343 -1.596930000000000
|
||||
701 3 59.144870000000020 24.918304827662343 1.596930000000000
|
||||
702 1 59.144870000000020 26.764105185266961 0.000000000000000
|
||||
703 2 60.743380000000021 27.687005364069270 -1.596930000000000
|
||||
704 3 60.743380000000021 27.687005364069270 1.596930000000000
|
||||
705 1 60.743380000000021 29.532805721673888 0.000000000000000
|
||||
706 2 62.341890000000022 30.455705900476197 -1.596930000000000
|
||||
707 3 62.341890000000022 30.455705900476197 1.596930000000000
|
||||
708 1 62.341890000000022 32.301506258080815 0.000000000000000
|
||||
709 2 63.940400000000022 33.224406436883124 -1.596930000000000
|
||||
710 3 63.940400000000022 33.224406436883124 1.596930000000000
|
||||
711 1 63.940400000000022 35.070206794487742 0.000000000000000
|
||||
712 2 65.538910000000023 35.993106973290051 -1.596930000000000
|
||||
713 3 65.538910000000023 35.993106973290051 1.596930000000000
|
||||
714 1 65.538910000000023 37.838907330894669 0.000000000000000
|
||||
715 2 67.137420000000023 38.761807509696978 -1.596930000000000
|
||||
716 3 67.137420000000023 38.761807509696978 1.596930000000000
|
||||
717 1 67.137420000000023 40.607607867301596 0.000000000000000
|
||||
718 2 68.735930000000024 41.530508046103905 -1.596930000000000
|
||||
719 3 68.735930000000024 41.530508046103905 1.596930000000000
|
||||
720 1 68.735930000000024 43.376308403708523 0.000000000000000
|
||||
721 2 47.955300000000017 0.000000000000000 -1.596930000000000
|
||||
722 3 47.955300000000017 0.000000000000000 1.596930000000000
|
||||
723 1 47.955300000000017 1.845800357604618 0.000000000000000
|
||||
724 2 49.553810000000017 2.768700536406927 -1.596930000000000
|
||||
725 3 49.553810000000017 2.768700536406927 1.596930000000000
|
||||
726 1 49.553810000000017 4.614500894011545 0.000000000000000
|
||||
727 2 51.152320000000018 5.537401072813854 -1.596930000000000
|
||||
728 3 51.152320000000018 5.537401072813854 1.596930000000000
|
||||
729 1 51.152320000000018 7.383201430418472 0.000000000000000
|
||||
730 2 52.750830000000018 8.306101609220781 -1.596930000000000
|
||||
731 3 52.750830000000018 8.306101609220781 1.596930000000000
|
||||
732 1 52.750830000000018 10.151901966825399 0.000000000000000
|
||||
733 2 54.349340000000019 11.074802145627708 -1.596930000000000
|
||||
734 3 54.349340000000019 11.074802145627708 1.596930000000000
|
||||
735 1 54.349340000000019 12.920602503232326 0.000000000000000
|
||||
736 2 55.947850000000019 13.843502682034635 -1.596930000000000
|
||||
737 3 55.947850000000019 13.843502682034635 1.596930000000000
|
||||
738 1 55.947850000000019 15.689303039639253 0.000000000000000
|
||||
739 2 57.546360000000020 16.612203218441562 -1.596930000000000
|
||||
740 3 57.546360000000020 16.612203218441562 1.596930000000000
|
||||
741 1 57.546360000000020 18.458003576046180 0.000000000000000
|
||||
742 2 59.144870000000020 19.380903754848489 -1.596930000000000
|
||||
743 3 59.144870000000020 19.380903754848489 1.596930000000000
|
||||
744 1 59.144870000000020 21.226704112453107 0.000000000000000
|
||||
745 2 60.743380000000021 22.149604291255416 -1.596930000000000
|
||||
746 3 60.743380000000021 22.149604291255416 1.596930000000000
|
||||
747 1 60.743380000000021 23.995404648860034 0.000000000000000
|
||||
748 2 62.341890000000022 24.918304827662343 -1.596930000000000
|
||||
749 3 62.341890000000022 24.918304827662343 1.596930000000000
|
||||
750 1 62.341890000000022 26.764105185266961 0.000000000000000
|
||||
751 2 63.940400000000022 27.687005364069270 -1.596930000000000
|
||||
752 3 63.940400000000022 27.687005364069270 1.596930000000000
|
||||
753 1 63.940400000000022 29.532805721673888 0.000000000000000
|
||||
754 2 65.538910000000023 30.455705900476197 -1.596930000000000
|
||||
755 3 65.538910000000023 30.455705900476197 1.596930000000000
|
||||
756 1 65.538910000000023 32.301506258080815 0.000000000000000
|
||||
757 2 67.137420000000023 33.224406436883124 -1.596930000000000
|
||||
758 3 67.137420000000023 33.224406436883124 1.596930000000000
|
||||
759 1 67.137420000000023 35.070206794487742 0.000000000000000
|
||||
760 2 68.735930000000024 35.993106973290051 -1.596930000000000
|
||||
761 3 68.735930000000024 35.993106973290051 1.596930000000000
|
||||
762 1 68.735930000000024 37.838907330894669 0.000000000000000
|
||||
763 2 70.334440000000024 38.761807509696978 -1.596930000000000
|
||||
764 3 70.334440000000024 38.761807509696978 1.596930000000000
|
||||
765 1 70.334440000000024 40.607607867301596 0.000000000000000
|
||||
766 2 71.932950000000025 41.530508046103905 -1.596930000000000
|
||||
767 3 71.932950000000025 41.530508046103905 1.596930000000000
|
||||
768 1 71.932950000000025 43.376308403708523 0.000000000000000
|
||||
1
examples/threebody/tmd.sw.mod
Symbolic link
1
examples/threebody/tmd.sw.mod
Symbolic link
@ -0,0 +1 @@
|
||||
../../potentials/tmd.sw.mod
|
||||
@ -1,5 +1,5 @@
|
||||
# /* ----------------------------------------------------------------------
|
||||
# Generic Linux Makefile for CUDA
|
||||
# Generic Linux Makefile for CUDA with the Multi-Process Service (MPS)
|
||||
# - change CUDA_ARCH for your GPU
|
||||
# ------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
@ -39,11 +39,9 @@ HIP_PLATFORM=$(shell $(HIP_PATH)/bin/hipconfig --platform)
|
||||
HIP_COMPILER=$(shell $(HIP_PATH)/bin/hipconfig --compiler)
|
||||
|
||||
ifeq (hcc,$(HIP_PLATFORM))
|
||||
HIP_OPTS += -ffast-math
|
||||
# possible values: gfx803,gfx900,gfx906
|
||||
HIP_ARCH = gfx906
|
||||
else ifeq (amd,$(HIP_PLATFORM))
|
||||
HIP_OPTS += -ffast-math
|
||||
# possible values: gfx803,gfx900,gfx906
|
||||
HIP_ARCH = gfx906
|
||||
else ifeq (nvcc,$(HIP_PLATFORM))
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
# /* ----------------------------------------------------------------------
|
||||
# Generic Linux Makefile for CUDA
|
||||
# Generic Linux Makefile for CUDA
|
||||
# - Change CUDA_ARCH for your GPU
|
||||
# ------------------------------------------------------------------------- */
|
||||
|
||||
@ -13,7 +13,7 @@ endif
|
||||
|
||||
NVCC = nvcc
|
||||
|
||||
# obsolete hardware. not supported by current drivers anymore.
|
||||
# obsolete hardware. not supported by current drivers and toolkits anymore.
|
||||
#CUDA_ARCH = -arch=sm_13
|
||||
#CUDA_ARCH = -arch=sm_10 -DCUDA_PRE_THREE
|
||||
|
||||
@ -28,11 +28,11 @@ NVCC = nvcc
|
||||
#CUDA_ARCH = -arch=sm_37
|
||||
|
||||
# Maxwell hardware
|
||||
CUDA_ARCH = -arch=sm_50
|
||||
#CUDA_ARCH = -arch=sm_50
|
||||
#CUDA_ARCH = -arch=sm_52
|
||||
|
||||
# Pascal hardware
|
||||
#CUDA_ARCH = -arch=sm_60
|
||||
CUDA_ARCH = -arch=sm_60
|
||||
#CUDA_ARCH = -arch=sm_61
|
||||
|
||||
# Volta hardware
|
||||
@ -70,7 +70,7 @@ LIB_DIR = ./
|
||||
AR = ar
|
||||
BSH = /bin/sh
|
||||
|
||||
# GPU binning not recommended with modern GPUs
|
||||
# GPU binning not recommended for most modern GPUs
|
||||
CUDPP_OPT = #-DUSE_CUDPP -Icudpp_mini
|
||||
|
||||
include Nvidia.makefile
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# /* ----------------------------------------------------------------------
|
||||
# Generic Linux Makefile for CUDA
|
||||
# - Change CUDA_ARCH for your GPU
|
||||
# Generic Linux Makefile for CUDA complied for multiple compute capabilities
|
||||
# - Add your GPU to CUDA_CODE
|
||||
# ------------------------------------------------------------------------- */
|
||||
|
||||
# which file will be copied to Makefile.lammps
|
||||
|
||||
1
lib/gpu/Makefile.mpi
Symbolic link
1
lib/gpu/Makefile.mpi
Symbolic link
@ -0,0 +1 @@
|
||||
Makefile.linux
|
||||
@ -1,5 +1,5 @@
|
||||
# /* ----------------------------------------------------------------------
|
||||
# Generic Linux Makefile for CUDA
|
||||
# Generic Linux Makefile for CUDA without MPI libraries
|
||||
# - Change CUDA_ARCH for your GPU
|
||||
# ------------------------------------------------------------------------- */
|
||||
|
||||
@ -28,11 +28,11 @@ NVCC = nvcc
|
||||
#CUDA_ARCH = -arch=sm_37
|
||||
|
||||
# Maxwell hardware
|
||||
CUDA_ARCH = -arch=sm_50
|
||||
#CUDA_ARCH = -arch=sm_50
|
||||
#CUDA_ARCH = -arch=sm_52
|
||||
|
||||
# Pascal hardware
|
||||
#CUDA_ARCH = -arch=sm_60
|
||||
CUDA_ARCH = -arch=sm_60
|
||||
#CUDA_ARCH = -arch=sm_61
|
||||
|
||||
# Volta hardware
|
||||
@ -41,6 +41,10 @@ CUDA_ARCH = -arch=sm_50
|
||||
# Turing hardware
|
||||
#CUDA_ARCH = -arch=sm_75
|
||||
|
||||
# Ampere hardware
|
||||
#CUDA_ARCH = -arch=sm_80
|
||||
#CUDA_ARCH = -arch=sm_86
|
||||
|
||||
# this setting should match LAMMPS Makefile
|
||||
# one of LAMMPS_SMALLBIG (default), LAMMPS_BIGBIG and LAMMPS_SMALLSMALL
|
||||
|
||||
|
||||
@ -1,23 +0,0 @@
|
||||
NVCC = $(CUDA_HOME)/bin/nvcc
|
||||
EXTRAMAKE = Makefile.lammps.standard
|
||||
|
||||
CUDA_ARCH = -arch=sm_75
|
||||
CUDA_PRECISION = -D_SINGLE_DOUBLE
|
||||
CUDA_INCLUDE = -I$(CUDA_HOME)/include
|
||||
CUDA_LIB = -L$(CUDA_HOME)/lib64 -Xlinker -rpath -Xlinker $(CUDA_HOME)/lib64 -lcudart
|
||||
CUDA_OPTS = -DUNIX -O3 --use_fast_math --ftz=true
|
||||
|
||||
CUDR_CPP = mpic++ -DMPI_GERYON -DUCL_NO_EXIT -I$(CUDA_HOME)/include
|
||||
CUDR_OPTS = -O3 -ffast-math -funroll-loops -DMPI_GERYON -DLAMMPS_SMALLBIG
|
||||
|
||||
BIN_DIR = .
|
||||
OBJ_DIR = obj
|
||||
LIB_DIR = .
|
||||
AR = ar
|
||||
BSH = /bin/sh
|
||||
|
||||
# GPU binning not recommended with most modern GPUs
|
||||
CUDPP_OPT = #-DUSE_CUDPP -Icudpp_mini
|
||||
|
||||
include Nvidia.makefile
|
||||
|
||||
@ -17,6 +17,8 @@ parser = ArgumentParser(prog='Install.py',
|
||||
|
||||
# settings
|
||||
|
||||
CMAKE = os.environ.get('CMAKE') or 'cmake'
|
||||
|
||||
thisdir = fullpath('.')
|
||||
version = "2.2.1"
|
||||
|
||||
@ -141,7 +143,7 @@ if buildflag:
|
||||
# configure kim-api
|
||||
|
||||
print("Configuring kim-api ...")
|
||||
cmd = 'cd "%s/kim-api-%s" && mkdir build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX="%s" -DCMAKE_BUILD_TYPE=Release' % (thisdir,version,kimdir)
|
||||
cmd = 'cd "%s/kim-api-%s" && mkdir build && cd build && %s .. -DCMAKE_INSTALL_PREFIX="%s" -DCMAKE_BUILD_TYPE=Release' % (thisdir,version,CMAKE,kimdir)
|
||||
txt = subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
|
||||
if verboseflag: print(txt.decode("UTF-8"))
|
||||
|
||||
|
||||
@ -1,5 +1,165 @@
|
||||
# Change Log
|
||||
|
||||
## [3.5.00](https://github.com/kokkos/kokkos/tree/3.5.00) (2021-10-19)
|
||||
[Full Changelog](https://github.com/kokkos/kokkos/compare/3.4.01...3.5.00)
|
||||
|
||||
### Features:
|
||||
|
||||
- Add support for quad-precision math functions/traits [\#4098](https://github.com/kokkos/kokkos/pull/4098)
|
||||
- Adding ExecutionSpace partitioning function [\#4096](https://github.com/kokkos/kokkos/pull/4096)
|
||||
- Improve Python Interop Capabilities [\#4065](https://github.com/kokkos/kokkos/pull/4065)
|
||||
- Add half_t Kokkos::rand specialization [\#3922](https://github.com/kokkos/kokkos/pull/3922)
|
||||
- Add math special functions: erf, erfcx, expint1, Bessel functions, Hankel functions [\#3920](https://github.com/kokkos/kokkos/pull/3920)
|
||||
- Add missing common mathematical functions [\#4043](https://github.com/kokkos/kokkos/pull/4043) [\#4036](https://github.com/kokkos/kokkos/pull/4036) [\#4034](https://github.com/kokkos/kokkos/pull/4034)
|
||||
- Let the numeric traits be SFINAE-friendly [\#4038](https://github.com/kokkos/kokkos/pull/4038)
|
||||
- Add Desul atomics - enabling memory-order and memory-scope parameters [\#3247](https://github.com/kokkos/kokkos/pull/3247)
|
||||
- Add detection idiom from the C++ standard library extension version 2 [\#3980](https://github.com/kokkos/kokkos/pull/3980)
|
||||
- Fence Profiling Support in all backends [\#3966](https://github.com/kokkos/kokkos/pull/3966) [\#4304](https://github.com/kokkos/kokkos/pull/4304) [\#4258](https://github.com/kokkos/kokkos/pull/4258) [\#4232](https://github.com/kokkos/kokkos/pull/4232)
|
||||
- Significant SYCL enhancements (see below)
|
||||
|
||||
### Deprecations:
|
||||
|
||||
- Deprecate CUDA_SAFE_CALL and HIP_SAFE_CALL [\#4249](https://github.com/kokkos/kokkos/pull/4249)
|
||||
- Deprecate Kokkos::Impl::Timer (Kokkos::Timer has been available for a long time) [\#4201](https://github.com/kokkos/kokkos/pull/4201)
|
||||
- Deprecate Experimental::MasterLock [\#4094](https://github.com/kokkos/kokkos/pull/4094)
|
||||
- Deprecate Kokkos_TaskPolicy.hpp (headers got reorganized, doesn't remove functionality) [\#4011](https://github.com/kokkos/kokkos/pull/4011)
|
||||
- Deprecate backward compatibility features [\#3978](https://github.com/kokkos/kokkos/pull/3978)
|
||||
- Update and deprecate is_space::host_memory/execution/mirror_space [\#3973](https://github.com/kokkos/kokkos/pull/3973)
|
||||
|
||||
|
||||
### Backends and Archs Enhancements:
|
||||
|
||||
- Enabling constbitset constructors in kernels [\#4296](https://github.com/kokkos/kokkos/pull/4296)
|
||||
- Use ZeroMemset in View constructor to improve performance [\#4226](https://github.com/kokkos/kokkos/pull/4226)
|
||||
- Use memset in deep_copy [\#3944](https://github.com/kokkos/kokkos/pull/3944)
|
||||
- Add missing fence() calls in resize(View) that effectively do deep_copy(resized, orig) [\#4212](https://github.com/kokkos/kokkos/pull/4212)
|
||||
- Avoid allocations in resize and realloc [\#4207](https://github.com/kokkos/kokkos/pull/4207)
|
||||
- StaticCsrGraph: use device type instead of execution space to construct views [\#3991](https://github.com/kokkos/kokkos/pull/3991)
|
||||
- Consider std::sort when view is accessible from host [\#3929](https://github.com/kokkos/kokkos/pull/3929)
|
||||
- Fix CPP20 warnings except for volatile [\#4312](https://github.com/kokkos/kokkos/pull/4312)
|
||||
|
||||
#### SYCL:
|
||||
- Introduce SYCLHostUSMSpace [\#4268](https://github.com/kokkos/kokkos/pull/4268)
|
||||
- Implement SYCL TeamPolicy for vector_size > 1 [\#4183](https://github.com/kokkos/kokkos/pull/4183)
|
||||
- Enable 64bit ranges for SYCL [\#4211](https://github.com/kokkos/kokkos/pull/4211)
|
||||
- Don't print SYCL device info in execution space intialization [\#4168](https://github.com/kokkos/kokkos/pull/4168)
|
||||
- Improve SYCL MDRangePolicy performance [\#4161](https://github.com/kokkos/kokkos/pull/4161)
|
||||
- Use sub_groups in SYCL parallel_scan [\#4147](https://github.com/kokkos/kokkos/pull/4147)
|
||||
- Implement subgroup reduction for SYCL RangePolicy parallel_reduce [\#3940](https://github.com/kokkos/kokkos/pull/3940)
|
||||
- Use DPC++ broadcast extension in SYCL team_broadcast [\#4103](https://github.com/kokkos/kokkos/pull/4103)
|
||||
- Only fence in SYCL parallel_reduce for non-device-accessible result_ptr [\#4089](https://github.com/kokkos/kokkos/pull/4089)
|
||||
- Improve fencing behavior in SYCL backend [\#4088](https://github.com/kokkos/kokkos/pull/4088)
|
||||
- Fence all registered SYCL queues before deallocating memory [\#4086](https://github.com/kokkos/kokkos/pull/4086)
|
||||
- Implement SYCL::print_configuration [\#3992](https://github.com/kokkos/kokkos/pull/3992)
|
||||
- Reuse scratch memory in parallel_scan and TeamPolicy (decreases memory footprint) [\#3899](https://github.com/kokkos/kokkos/pull/3899) [\#3889](https://github.com/kokkos/kokkos/pull/3889)
|
||||
|
||||
#### CUDA:
|
||||
- Cuda improve heuristic for blocksize [\#4271](https://github.com/kokkos/kokkos/pull/4271)
|
||||
- Don't use [[deprecated]] for nvcc [\#4229](https://github.com/kokkos/kokkos/pull/4229)
|
||||
- Improve error message for NVHPC as host compiler [\#4227](https://github.com/kokkos/kokkos/pull/4227)
|
||||
- Update support for cuda reductions to work with types < 4bytes [\#4156](https://github.com/kokkos/kokkos/pull/4156)
|
||||
- Fix incompatible team size deduction in rare cases parallel_reduce [\#4142](https://github.com/kokkos/kokkos/pull/4142)
|
||||
- Remove UVM usage in DynamicView [\#4129](https://github.com/kokkos/kokkos/pull/4129)
|
||||
- Remove dependency between core and containers [\#4114](https://github.com/kokkos/kokkos/pull/4114)
|
||||
- Adding opt-in CudaMallocSync support when using CUDA version >= 11.2 [\#4026](https://github.com/kokkos/kokkos/pull/4026) [\#4233](https://github.com/kokkos/kokkos/pull/4233)
|
||||
- Fix a potential race condition in the CUDA backend [\#3999](https://github.com/kokkos/kokkos/pull/3999)
|
||||
|
||||
#### HIP:
|
||||
- Implement new blocksize deduction method for HIP Backend [\#3953](https://github.com/kokkos/kokkos/pull/3953)
|
||||
- Add multiple LaunchMechanism [\#3820](https://github.com/kokkos/kokkos/pull/3820)
|
||||
- Make HIP backend thread-safe [\#4170](https://github.com/kokkos/kokkos/pull/4170)
|
||||
|
||||
#### Serial:
|
||||
- Refactor Serial backend and fix thread-safety issue [\#4053](https://github.com/kokkos/kokkos/pull/4053)
|
||||
|
||||
#### OpenMPTarget:
|
||||
- OpenMPTarget: support array reductions in RangePolicy [\#4040](https://github.com/kokkos/kokkos/pull/4040)
|
||||
- OpenMPTarget: add MDRange parallel_reduce [\#4032](https://github.com/kokkos/kokkos/pull/4032)
|
||||
- OpenMPTarget: Fix bug in for the case of a reducer. [\#4044](https://github.com/kokkos/kokkos/pull/4044)
|
||||
- OpenMPTarget: verify process fix [\#4041](https://github.com/kokkos/kokkos/pull/4041)
|
||||
|
||||
### Implemented enhancements BuildSystem
|
||||
|
||||
#### Important BuildSystem Updates:
|
||||
- Use hipcc architecture autodetection when Kokkos_ARCH is not set [\#3941](https://github.com/kokkos/kokkos/pull/3941)
|
||||
- Introduce Kokkos_ENABLE_DEPRECATION_WARNINGS and remove deprecated code with Kokkos_ENABLE_DEPRECATED_CODE_3 [\#4106](https://github.com/kokkos/kokkos/pull/4106) [\#3855](https://github.com/kokkos/kokkos/pull/3855)
|
||||
|
||||
#### Other Improvements:
|
||||
- Add allow-unsupported-compiler flag to nvcc-wrapper [\#4298](https://github.com/kokkos/kokkos/pull/4298)
|
||||
- nvcc_wrapper: fix errors in argument handling [\#3993](https://github.com/kokkos/kokkos/pull/3993)
|
||||
- Adds support for -time=<file> and -time <file> in nvcc_wrapper [\#4015](https://github.com/kokkos/kokkos/pull/4015)
|
||||
- nvcc_wrapper: suppress duplicates of GPU architecture and RDC flags [\#3968](https://github.com/kokkos/kokkos/pull/3968)
|
||||
- Fix TMPDIR support in nvcc_wrapper [\#3792](https://github.com/kokkos/kokkos/pull/3792)
|
||||
- NVHPC: update PGI compiler arch flags [\#4133](https://github.com/kokkos/kokkos/pull/4133)
|
||||
- Replace PGI with NVHPC (works for both) [\#4196](https://github.com/kokkos/kokkos/pull/4196)
|
||||
- Make sure that KOKKOS_CXX_HOST_COMPILER_ID is defined [\#4235](https://github.com/kokkos/kokkos/pull/4235)
|
||||
- Add options to Makefile builds for deprecated code and warnings [\#4215](https://github.com/kokkos/kokkos/pull/4215)
|
||||
- Use KOKKOS_CXX_HOST_COMPILER_ID for identifying CPU arch flags [\#4199](https://github.com/kokkos/kokkos/pull/4199)
|
||||
- Added support for Cray Clang to Makefile.kokkos [\#4176](https://github.com/kokkos/kokkos/pull/4176)
|
||||
- Add XLClang as compiler [\#4120](https://github.com/kokkos/kokkos/pull/4120)
|
||||
- Keep quoted compiler flags when passing to Trilinos [\#3987](https://github.com/kokkos/kokkos/pull/3987)
|
||||
- Add support for AMD Zen3 CPU architecture [\#3972](https://github.com/kokkos/kokkos/pull/3972)
|
||||
- Rename IntelClang to IntelLLVM [\#3945](https://github.com/kokkos/kokkos/pull/3945)
|
||||
- Add cppcoreguidelines-pro-type-cstyle-cast to clang-tidy [\#3522](https://github.com/kokkos/kokkos/pull/3522)
|
||||
- Add sve bit size definition for A64FX [\#3947](https://github.com/kokkos/kokkos/pull/3947) [\#3946](https://github.com/kokkos/kokkos/pull/3946)
|
||||
- Remove KOKKOS_ENABLE_DEBUG_PRINT_KERNEL_NAMES [\#4150](https://github.com/kokkos/kokkos/pull/4150)
|
||||
|
||||
### Other Changes:
|
||||
|
||||
#### Tool Enhancements:
|
||||
|
||||
- Retrieve original value from a point in a MultidimensionalSparseTuningProblem [\#3977](https://github.com/kokkos/kokkos/pull/3977)
|
||||
- Allow extension of built-in tuners with additional tuning axes [\#3961](https://github.com/kokkos/kokkos/pull/3961)
|
||||
- Added a categorical tuner [\#3955](https://github.com/kokkos/kokkos/pull/3955)
|
||||
|
||||
|
||||
#### Miscellaneous:
|
||||
|
||||
- hpcbind: Use double quotes around $@ when invoking user command [\#4284](https://github.com/kokkos/kokkos/pull/4284)
|
||||
- Add file and line to error message [\#3985](https://github.com/kokkos/kokkos/pull/3985)
|
||||
- Fix compiler warnings when compiling with nvc++ [\#4198](https://github.com/kokkos/kokkos/pull/4198)
|
||||
- Add OpenMPTarget CI build on AMD GPUs [\#4055](https://github.com/kokkos/kokkos/pull/4055)
|
||||
- CI: icpx is now part of intel container [\#4002](https://github.com/kokkos/kokkos/pull/4002)
|
||||
|
||||
### Incompatibilities:
|
||||
|
||||
- Remove pre CUDA 9 KOKKOS_IMPL_CUDA_* macros [\#4138](https://github.com/kokkos/kokkos/pull/4138)
|
||||
|
||||
### Bug Fixes:
|
||||
- UnorderedMap::clear() should zero the size() [\#4130](https://github.com/kokkos/kokkos/pull/4130)
|
||||
- Add memory fence for HostSharedPtr::cleanup() [\#4144](https://github.com/kokkos/kokkos/pull/4144)
|
||||
- SYCL: Fix race conditions in TeamPolicy::parallel_reduce [\#4418](https://github.com/kokkos/kokkos/pull/4418)
|
||||
- Adding missing memory fence to serial exec space fence. [\#4292](https://github.com/kokkos/kokkos/pull/4292)
|
||||
- Fix using external SYCL queues in tests [\#4291](https://github.com/kokkos/kokkos/pull/4291)
|
||||
- Fix digits10 bug [\#4281](https://github.com/kokkos/kokkos/pull/4281)
|
||||
- Fixes constexpr errors with frounding-math on gcc < 10. [\#4278](https://github.com/kokkos/kokkos/pull/4278)
|
||||
- Fix compiler flags for PGI/NVHPC [\#4264](https://github.com/kokkos/kokkos/pull/4264)
|
||||
- Fix Zen2/3 also implying Zen Arch with Makefiles [\#4260](https://github.com/kokkos/kokkos/pull/4260)
|
||||
- Kokkos_Cuda.hpp: Fix shadow warning with cuda/11.0 [\#4252](https://github.com/kokkos/kokkos/pull/4252)
|
||||
- Fix issue w/ static initialization of function attributes [\#4242](https://github.com/kokkos/kokkos/pull/4242)
|
||||
- Disable long double hypot test on Power systems [\#4221](https://github.com/kokkos/kokkos/pull/4221)
|
||||
- Fix false sharing in random pool [\#4218](https://github.com/kokkos/kokkos/pull/4218)
|
||||
- Fix a missing memory_fence for debug shared alloc code [\#4216](https://github.com/kokkos/kokkos/pull/4216)
|
||||
- Fix two xl issues [\#4179](https://github.com/kokkos/kokkos/pull/4179)
|
||||
- Makefile.kokkos: fix (standard_in) 1: syntax error [\#4173](https://github.com/kokkos/kokkos/pull/4173)
|
||||
- Fixes for query_device example [\#4172](https://github.com/kokkos/kokkos/pull/4172)
|
||||
- Fix a bug when using HIP atomic with Kokkos::Complex [\#4159](https://github.com/kokkos/kokkos/pull/4159)
|
||||
- Fix mistaken logic in pthread creation [\#4157](https://github.com/kokkos/kokkos/pull/4157)
|
||||
- Define KOKKOS_ENABLE_AGGRESSIVE_VECTORIZATION when requesting Kokkos_ENABLE_AGGRESSIVE_VECTORIZATION=ON [\#4107](https://github.com/kokkos/kokkos/pull/4107)
|
||||
- Fix compilation with latest MSVC version [\#4102](https://github.com/kokkos/kokkos/pull/4102)
|
||||
- Fix incorrect macro definitions when compiling with Intel compiler on Windows [\#4087](https://github.com/kokkos/kokkos/pull/4087)
|
||||
- Fixup global buffer overflow in hand rolled string manipulation [\#4070](https://github.com/kokkos/kokkos/pull/4070)
|
||||
- Fixup heap buffer overflow in cmd line args parsing unit tests [\#4069](https://github.com/kokkos/kokkos/pull/4069)
|
||||
- Only add quotes in compiler flags for Trilinos if necessary [\#4067](https://github.com/kokkos/kokkos/pull/4067)
|
||||
- Fixed invocation of tools init callbacks [\#4061](https://github.com/kokkos/kokkos/pull/4061)
|
||||
- Work around SYCL JIT compiler issues with static variables [\#4013](https://github.com/kokkos/kokkos/pull/4013)
|
||||
- Fix TestDetectionIdiom.cpp test inclusion for Trilinos/TriBITS [\#4010](https://github.com/kokkos/kokkos/pull/4010)
|
||||
- Fixup allocation headers with OpenMPTarget backend [\#4003](https://github.com/kokkos/kokkos/pull/4003)
|
||||
- Add missing specialization for OMPT to Kokkos Random [\#3967](https://github.com/kokkos/kokkos/pull/3967)
|
||||
- Disable hypot long double test on power arches [\#3962](https://github.com/kokkos/kokkos/pull/3962)
|
||||
- Use different EBO workaround for MSVC (rebased) [\#3924](https://github.com/kokkos/kokkos/pull/3924)
|
||||
- Fix SYCL Kokkos::Profiling::(de)allocateData calls [\#3928](https://github.com/kokkos/kokkos/pull/3928)
|
||||
|
||||
## [3.4.01](https://github.com/kokkos/kokkos/tree/3.4.01) (2021-05-19)
|
||||
[Full Changelog](https://github.com/kokkos/kokkos/compare/3.4.00...3.4.01)
|
||||
|
||||
|
||||
@ -111,8 +111,8 @@ ENDIF()
|
||||
|
||||
|
||||
set(Kokkos_VERSION_MAJOR 3)
|
||||
set(Kokkos_VERSION_MINOR 4)
|
||||
set(Kokkos_VERSION_PATCH 01)
|
||||
set(Kokkos_VERSION_MINOR 5)
|
||||
set(Kokkos_VERSION_PATCH 00)
|
||||
set(Kokkos_VERSION "${Kokkos_VERSION_MAJOR}.${Kokkos_VERSION_MINOR}.${Kokkos_VERSION_PATCH}")
|
||||
math(EXPR KOKKOS_VERSION "${Kokkos_VERSION_MAJOR} * 10000 + ${Kokkos_VERSION_MINOR} * 100 + ${Kokkos_VERSION_PATCH}")
|
||||
|
||||
@ -210,7 +210,12 @@ IF (KOKKOS_HAS_TRILINOS)
|
||||
# which needs another workaround.
|
||||
SET(KOKKOS_COMPILE_OPTIONS_TMP)
|
||||
FOREACH(OPTION ${KOKKOS_COMPILE_OPTIONS})
|
||||
LIST(APPEND KOKKOS_COMPILE_OPTIONS_TMP \"${OPTION}\")
|
||||
STRING(FIND "${OPTION}" " " OPTION_HAS_WHITESPACE)
|
||||
IF(OPTION_HAS_WHITESPACE EQUAL -1)
|
||||
LIST(APPEND KOKKOS_COMPILE_OPTIONS_TMP "${OPTION}")
|
||||
ELSE()
|
||||
LIST(APPEND KOKKOS_COMPILE_OPTIONS_TMP "\"${OPTION}\"")
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
STRING(REPLACE ";" " " KOKKOSCORE_COMPILE_OPTIONS "${KOKKOS_COMPILE_OPTIONS_TMP}")
|
||||
LIST(APPEND KOKKOS_ALL_COMPILE_OPTIONS ${KOKKOS_COMPILE_OPTIONS})
|
||||
|
||||
@ -11,20 +11,21 @@ CXXFLAGS += $(SHFLAGS)
|
||||
endif
|
||||
|
||||
KOKKOS_VERSION_MAJOR = 3
|
||||
KOKKOS_VERSION_MINOR = 4
|
||||
KOKKOS_VERSION_PATCH = 01
|
||||
KOKKOS_VERSION_MINOR = 5
|
||||
KOKKOS_VERSION_PATCH = 00
|
||||
KOKKOS_VERSION = $(shell echo $(KOKKOS_VERSION_MAJOR)*10000+$(KOKKOS_VERSION_MINOR)*100+$(KOKKOS_VERSION_PATCH) | bc)
|
||||
|
||||
# Options: Cuda,HIP,OpenMP,Pthread,Serial
|
||||
# Options: Cuda,HIP,SYCL,OpenMPTarget,OpenMP,Pthread,Serial
|
||||
KOKKOS_DEVICES ?= "OpenMP"
|
||||
#KOKKOS_DEVICES ?= "Pthread"
|
||||
# Options:
|
||||
# Options:
|
||||
# Intel: KNC,KNL,SNB,HSW,BDW,SKX
|
||||
# NVIDIA: Kepler,Kepler30,Kepler32,Kepler35,Kepler37,Maxwell,Maxwell50,Maxwell52,Maxwell53,Pascal60,Pascal61,Volta70,Volta72,Turing75,Ampere80,Ampere86
|
||||
# ARM: ARMv80,ARMv81,ARMv8-ThunderX,ARMv8-TX2,A64FX
|
||||
# IBM: BGQ,Power7,Power8,Power9
|
||||
# AMD-GPUS: Vega900,Vega906,Vega908
|
||||
# AMD-GPUS: Vega900,Vega906,Vega908,Vega90A
|
||||
# AMD-CPUS: AMDAVX,Zen,Zen2,Zen3
|
||||
# Intel-GPUs: Gen9,Gen11,Gen12LP,DG1,XeHP
|
||||
KOKKOS_ARCH ?= ""
|
||||
# Options: yes,no
|
||||
KOKKOS_DEBUG ?= "no"
|
||||
@ -32,8 +33,8 @@ KOKKOS_DEBUG ?= "no"
|
||||
KOKKOS_USE_TPLS ?= ""
|
||||
# Options: c++14,c++1y,c++17,c++1z,c++2a
|
||||
KOKKOS_CXX_STANDARD ?= "c++14"
|
||||
# Options: aggressive_vectorization,disable_profiling,enable_large_mem_tests,disable_complex_align
|
||||
KOKKOS_OPTIONS ?= ""
|
||||
# Options: aggressive_vectorization,disable_profiling,enable_large_mem_tests,disable_complex_align,disable_deprecated_code,enable_deprecation_warnings,enable_desul_atomics
|
||||
KOKKOS_OPTIONS ?= "enable_desul_atomics"
|
||||
KOKKOS_CMAKE ?= "no"
|
||||
KOKKOS_TRIBITS ?= "no"
|
||||
KOKKOS_STANDALONE_CMAKE ?= "no"
|
||||
@ -80,7 +81,7 @@ KOKKOS_INTERNAL_USE_MEMKIND := $(call kokkos_has_string,$(KOKKOS_USE_TPLS),exper
|
||||
|
||||
# Check for advanced settings.
|
||||
KOKKOS_INTERNAL_ENABLE_COMPILER_WARNINGS := $(call kokkos_has_string,$(KOKKOS_OPTIONS),compiler_warnings)
|
||||
KOKKOS_INTERNAL_OPT_RANGE_AGGRESSIVE_VECTORIZATION := $(call kokkos_has_string,$(KOKKOS_OPTIONS),aggressive_vectorization)
|
||||
KOKKOS_INTERNAL_AGGRESSIVE_VECTORIZATION := $(call kokkos_has_string,$(KOKKOS_OPTIONS),aggressive_vectorization)
|
||||
KOKKOS_INTERNAL_ENABLE_TUNING := $(call kokkos_has_string,$(KOKKOS_OPTIONS),enable_tuning)
|
||||
KOKKOS_INTERNAL_DISABLE_COMPLEX_ALIGN := $(call kokkos_has_string,$(KOKKOS_OPTIONS),disable_complex_align)
|
||||
KOKKOS_INTERNAL_DISABLE_DUALVIEW_MODIFY_CHECK := $(call kokkos_has_string,$(KOKKOS_OPTIONS),disable_dualview_modify_check)
|
||||
@ -92,6 +93,9 @@ KOKKOS_INTERNAL_CUDA_USE_RELOC := $(call kokkos_has_string,$(KOKKOS_CUDA_OPTIONS
|
||||
KOKKOS_INTERNAL_CUDA_USE_LAMBDA := $(call kokkos_has_string,$(KOKKOS_CUDA_OPTIONS),enable_lambda)
|
||||
KOKKOS_INTERNAL_CUDA_USE_CONSTEXPR := $(call kokkos_has_string,$(KOKKOS_CUDA_OPTIONS),enable_constexpr)
|
||||
KOKKOS_INTERNAL_HPX_ENABLE_ASYNC_DISPATCH := $(call kokkos_has_string,$(KOKKOS_HPX_OPTIONS),enable_async_dispatch)
|
||||
KOKKOS_INTERNAL_ENABLE_DESUL_ATOMICS := $(call kokkos_has_string,$(KOKKOS_OPTIONS),enable_desul_atomics)
|
||||
KOKKOS_INTERNAL_DISABLE_DEPRECATED_CODE := $(call kokkos_has_string,$(KOKKOS_OPTIONS),disable_deprecated_code)
|
||||
KOKKOS_INTERNAL_ENABLE_DEPRECATION_WARNINGS := $(call kokkos_has_string,$(KOKKOS_OPTIONS),enable_deprecation_warnings)
|
||||
|
||||
KOKKOS_INTERNAL_HIP_USE_RELOC := $(call kokkos_has_string,$(KOKKOS_HIP_OPTIONS),rdc)
|
||||
|
||||
@ -112,6 +116,7 @@ endif
|
||||
# Check for other Execution Spaces.
|
||||
KOKKOS_INTERNAL_USE_CUDA := $(call kokkos_has_string,$(KOKKOS_DEVICES),Cuda)
|
||||
KOKKOS_INTERNAL_USE_HIP := $(call kokkos_has_string,$(KOKKOS_DEVICES),HIP)
|
||||
KOKKOS_INTERNAL_USE_SYCL := $(call kokkos_has_string,$(KOKKOS_DEVICES),SYCL)
|
||||
KOKKOS_INTERNAL_USE_OPENMPTARGET := $(call kokkos_has_string,$(KOKKOS_DEVICES),OpenMPTarget)
|
||||
|
||||
KOKKOS_DEVICELIST =
|
||||
@ -133,11 +138,18 @@ endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1)
|
||||
KOKKOS_DEVICELIST += HIP
|
||||
endif
|
||||
KOKKOS_INTERNAL_HAVE_CXX17_OR_NEWER := $(shell expr $(KOKKOS_INTERNAL_ENABLE_CXX17) \
|
||||
+ $(KOKKOS_INTERNAL_ENABLE_CXX20) \
|
||||
+ $(KOKKOS_INTERNAL_ENABLE_CXX2A))
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_SYCL), 1)
|
||||
KOKKOS_DEVICELIST += SYCL
|
||||
ifneq ($(KOKKOS_INTERNAL_HAVE_CXX17_OR_NEWER), 1)
|
||||
$(error SYCL backend requires C++17 or newer)
|
||||
endif
|
||||
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1)
|
||||
KOKKOS_DEVICELIST += OPENMPTARGET
|
||||
KOKKOS_INTERNAL_HAVE_CXX17_OR_NEWER := $(shell expr $(KOKKOS_INTERNAL_ENABLE_CXX17) \
|
||||
+ $(KOKKOS_INTERNAL_ENABLE_CXX20) \
|
||||
+ $(KOKKOS_INTERNAL_ENABLE_CXX2A))
|
||||
ifneq ($(KOKKOS_INTERNAL_HAVE_CXX17_OR_NEWER), 1)
|
||||
$(error OpenMPTarget backend requires C++17 or newer)
|
||||
endif
|
||||
@ -168,6 +180,8 @@ KOKKOS_INTERNAL_COMPILER_XL := $(strip $(shell $(CXX) -qversion 2
|
||||
KOKKOS_INTERNAL_COMPILER_CRAY := $(strip $(shell $(CXX) -craype-verbose 2>&1 | grep -c "CC-"))
|
||||
KOKKOS_INTERNAL_COMPILER_NVCC := $(strip $(shell echo "$(shell export OMPI_CXX=$(OMPI_CXX); export MPICH_CXX=$(MPICH_CXX); $(CXX) --version 2>&1 | grep -c nvcc)>0" | bc))
|
||||
KOKKOS_INTERNAL_COMPILER_CLANG := $(call kokkos_has_string,$(KOKKOS_CXX_VERSION),clang)
|
||||
KOKKOS_INTERNAL_COMPILER_CRAY_CLANG := $(strip $(shell $(CXX) -craype-verbose 2>&1 | grep -c "clang++"))
|
||||
KOKKOS_INTERNAL_COMPILER_INTEL_CLANG := $(call kokkos_has_string,$(KOKKOS_CXX_VERSION),oneAPI)
|
||||
KOKKOS_INTERNAL_COMPILER_APPLE_CLANG := $(call kokkos_has_string,$(KOKKOS_CXX_VERSION),Apple clang)
|
||||
KOKKOS_INTERNAL_COMPILER_HCC := $(call kokkos_has_string,$(KOKKOS_CXX_VERSION),HCC)
|
||||
KOKKOS_INTERNAL_COMPILER_GCC := $(call kokkos_has_string,$(KOKKOS_CXX_VERSION),GCC)
|
||||
@ -247,7 +261,11 @@ ifeq ($(KOKKOS_INTERNAL_COMPILER_PGI), 1)
|
||||
KOKKOS_INTERNAL_OPENMP_FLAG := -mp
|
||||
else
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_CLANG), 1)
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_CRAY_CLANG), 1)
|
||||
KOKKOS_INTERNAL_OPENMP_FLAG := -fopenmp
|
||||
else
|
||||
KOKKOS_INTERNAL_OPENMP_FLAG := -fopenmp=libomp
|
||||
endif
|
||||
else
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_APPLE_CLANG), 1)
|
||||
KOKKOS_INTERNAL_OPENMP_FLAG := -fopenmp=libomp
|
||||
@ -259,7 +277,11 @@ else
|
||||
# OpenMP is turned on by default in Cray compiler environment.
|
||||
KOKKOS_INTERNAL_OPENMP_FLAG :=
|
||||
else
|
||||
KOKKOS_INTERNAL_OPENMP_FLAG := -fopenmp
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_INTEL_CLANG), 1)
|
||||
KOKKOS_INTERNAL_OPENMP_FLAG := -fiopenmp
|
||||
else
|
||||
KOKKOS_INTERNAL_OPENMP_FLAG := -fopenmp
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@ -317,6 +339,13 @@ KOKKOS_INTERNAL_USE_ARCH_BDW := $(call kokkos_has_string,$(KOKKOS_ARCH),BDW)
|
||||
KOKKOS_INTERNAL_USE_ARCH_SKX := $(call kokkos_has_string,$(KOKKOS_ARCH),SKX)
|
||||
KOKKOS_INTERNAL_USE_ARCH_KNL := $(call kokkos_has_string,$(KOKKOS_ARCH),KNL)
|
||||
|
||||
KOKKOS_INTERNAL_USE_ARCH_INTEL_GEN := $(call kokkos_has_string,$(KOKKOS_ARCH),IntelGen)
|
||||
KOKKOS_INTERNAL_USE_ARCH_INTEL_GEN9 := $(call kokkos_has_string,$(KOKKOS_ARCH),IntelGen9)
|
||||
KOKKOS_INTERNAL_USE_ARCH_INTEL_GEN11 := $(call kokkos_has_string,$(KOKKOS_ARCH),IntelGen11)
|
||||
KOKKOS_INTERNAL_USE_ARCH_INTEL_GEN12LP := $(call kokkos_has_string,$(KOKKOS_ARCH),IntelGen12LP)
|
||||
KOKKOS_INTERNAL_USE_ARCH_INTEL_DG1 := $(call kokkos_has_string,$(KOKKOS_ARCH),IntelDG1)
|
||||
KOKKOS_INTERNAL_USE_ARCH_INTEL_XEHP := $(call kokkos_has_string,$(KOKKOS_ARCH),IntelXeHP)
|
||||
|
||||
# NVIDIA based.
|
||||
NVCC_WRAPPER := $(KOKKOS_PATH)/bin/nvcc_wrapper
|
||||
KOKKOS_INTERNAL_USE_ARCH_KEPLER30 := $(call kokkos_has_string,$(KOKKOS_ARCH),Kepler30)
|
||||
@ -384,20 +413,25 @@ KOKKOS_INTERNAL_USE_ARCH_IBM := $(strip $(shell echo $(KOKKOS_INTERNAL_USE_ARCH_
|
||||
KOKKOS_INTERNAL_USE_ARCH_AMDAVX := $(call kokkos_has_string,$(KOKKOS_ARCH),AMDAVX)
|
||||
KOKKOS_INTERNAL_USE_ARCH_ZEN3 := $(call kokkos_has_string,$(KOKKOS_ARCH),Zen3)
|
||||
KOKKOS_INTERNAL_USE_ARCH_ZEN2 := $(call kokkos_has_string,$(KOKKOS_ARCH),Zen2)
|
||||
KOKKOS_INTERNAL_USE_ARCH_ZEN := $(call kokkos_has_string,$(KOKKOS_ARCH),Zen)
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ZEN3), 0)
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_ZEN2), 0)
|
||||
KOKKOS_INTERNAL_USE_ARCH_ZEN := $(call kokkos_has_string,$(KOKKOS_ARCH),Zen)
|
||||
endif
|
||||
endif
|
||||
KOKKOS_INTERNAL_USE_ARCH_VEGA900 := $(call kokkos_has_string,$(KOKKOS_ARCH),Vega900)
|
||||
KOKKOS_INTERNAL_USE_ARCH_VEGA906 := $(call kokkos_has_string,$(KOKKOS_ARCH),Vega906)
|
||||
KOKKOS_INTERNAL_USE_ARCH_VEGA908 := $(call kokkos_has_string,$(KOKKOS_ARCH),Vega908)
|
||||
KOKKOS_INTERNAL_USE_ARCH_VEGA90A := $(call kokkos_has_string,$(KOKKOS_ARCH),Vega90A)
|
||||
|
||||
# Any AVX?
|
||||
KOKKOS_INTERNAL_USE_ARCH_SSE42 := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_WSM))
|
||||
KOKKOS_INTERNAL_USE_ARCH_AVX := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_SNB) + $(KOKKOS_INTERNAL_USE_ARCH_AMDAVX))
|
||||
KOKKOS_INTERNAL_USE_ARCH_AVX2 := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_HSW) + $(KOKKOS_INTERNAL_USE_ARCH_BDW) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN2)) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN3))
|
||||
KOKKOS_INTERNAL_USE_ARCH_AVX2 := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_HSW) + $(KOKKOS_INTERNAL_USE_ARCH_BDW) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN2) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN3))
|
||||
KOKKOS_INTERNAL_USE_ARCH_AVX512MIC := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_KNL))
|
||||
KOKKOS_INTERNAL_USE_ARCH_AVX512XEON := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_SKX))
|
||||
|
||||
# Decide what ISA level we are able to support.
|
||||
KOKKOS_INTERNAL_USE_ISA_X86_64 := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_WSM) + $(KOKKOS_INTERNAL_USE_ARCH_SNB) + $(KOKKOS_INTERNAL_USE_ARCH_HSW) + $(KOKKOS_INTERNAL_USE_ARCH_BDW) + $(KOKKOS_INTERNAL_USE_ARCH_KNL) + $(KOKKOS_INTERNAL_USE_ARCH_SKX) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN2)) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN3))
|
||||
KOKKOS_INTERNAL_USE_ISA_X86_64 := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_WSM) + $(KOKKOS_INTERNAL_USE_ARCH_SNB) + $(KOKKOS_INTERNAL_USE_ARCH_HSW) + $(KOKKOS_INTERNAL_USE_ARCH_BDW) + $(KOKKOS_INTERNAL_USE_ARCH_KNL) + $(KOKKOS_INTERNAL_USE_ARCH_SKX) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN2) + $(KOKKOS_INTERNAL_USE_ARCH_ZEN3))
|
||||
KOKKOS_INTERNAL_USE_ISA_KNC := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_KNC))
|
||||
KOKKOS_INTERNAL_USE_ISA_POWERPCLE := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_POWER8) + $(KOKKOS_INTERNAL_USE_ARCH_POWER9))
|
||||
KOKKOS_INTERNAL_USE_ISA_POWERPCBE := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_POWER7))
|
||||
@ -406,7 +440,7 @@ KOKKOS_INTERNAL_USE_ISA_POWERPCBE := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_POW
|
||||
KOKKOS_INTERNAL_USE_TM := $(shell expr $(KOKKOS_INTERNAL_USE_ARCH_BDW) + $(KOKKOS_INTERNAL_USE_ARCH_SKX))
|
||||
|
||||
# Incompatible flags?
|
||||
KOKKOS_INTERNAL_USE_ARCH_MULTIHOST := $(strip $(shell echo "$(KOKKOS_INTERNAL_USE_ARCH_SSE42)+$(KOKKOS_INTERNAL_USE_ARCH_AVX)+$(KOKKOS_INTERNAL_USE_ARCH_AVX2)+$(KOKKOS_INTERNAL_USE_ARCH_AVX512MIC)+$(KOKKOS_INTERNAL_USE_ARCH_AVX512XEON)+$(KOKKOS_INTERNAL_USE_ARCH_KNC)+$(KOKKOS_INTERNAL_USE_ARCH_IBM)+$(KOKKOS_INTERNAL_USE_ARCH_ARM)>1") | bc )
|
||||
KOKKOS_INTERNAL_USE_ARCH_MULTIHOST := $(strip $(shell echo "$(KOKKOS_INTERNAL_USE_ARCH_SSE42)+$(KOKKOS_INTERNAL_USE_ARCH_AVX)+$(KOKKOS_INTERNAL_USE_ARCH_AVX2)+$(KOKKOS_INTERNAL_USE_ARCH_AVX512MIC)+$(KOKKOS_INTERNAL_USE_ARCH_AVX512XEON)+$(KOKKOS_INTERNAL_USE_ARCH_KNC)+$(KOKKOS_INTERNAL_USE_ARCH_IBM)+$(KOKKOS_INTERNAL_USE_ARCH_ARM)>1") | bc)
|
||||
KOKKOS_INTERNAL_USE_ARCH_MULTIGPU := $(strip $(shell echo "$(KOKKOS_INTERNAL_USE_ARCH_NVIDIA)>1") | bc)
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_MULTIHOST), 1)
|
||||
@ -442,6 +476,10 @@ KOKKOS_LINK_FLAGS =
|
||||
KOKKOS_SRC =
|
||||
KOKKOS_HEADERS =
|
||||
|
||||
#ifeq ($(KOKKOS_INTERNAL_COMPILER_GCC), 1)
|
||||
KOKKOS_LIBS += -latomic
|
||||
#endif
|
||||
|
||||
# Generating the KokkosCore_config.h file.
|
||||
|
||||
KOKKOS_INTERNAL_CONFIG_TMP=KokkosCore_config.tmp
|
||||
@ -478,6 +516,10 @@ ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1)
|
||||
tmp := $(call kokkos_append_header,'$H''define KOKKOS_ENABLE_HIP')
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_SYCL), 1)
|
||||
tmp := $(call kokkos_append_header,'$H''define KOKKOS_ENABLE_SYCL')
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1)
|
||||
tmp := $(call kokkos_append_header,'$H''define KOKKOS_ENABLE_OPENMPTARGET')
|
||||
ifeq ($(KOKKOS_INTERNAL_COMPILER_GCC), 1)
|
||||
@ -533,6 +575,12 @@ endif
|
||||
|
||||
#only add the c++ standard flags if this is not CMake
|
||||
tmp := $(call kokkos_append_header,"/* General Settings */")
|
||||
ifneq ($(KOKKOS_INTERNAL_DISABLE_DEPRECATED_CODE), 1)
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_DEPRECATED_CODE_3")
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_ENABLE_DEPRECATION_WARNINGS), 1)
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_DEPRECATION_WARNINGS")
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_ENABLE_CXX14), 1)
|
||||
ifneq ($(KOKKOS_STANDALONE_CMAKE), yes)
|
||||
KOKKOS_CXXFLAGS += $(KOKKOS_INTERNAL_CXX14_FLAG)
|
||||
@ -635,8 +683,10 @@ endif
|
||||
|
||||
tmp := $(call kokkos_append_header,"/* Optimization Settings */")
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_OPT_RANGE_AGGRESSIVE_VECTORIZATION), 1)
|
||||
ifeq ($(KOKKOS_INTERNAL_AGGRESSIVE_VECTORIZATION), 1)
|
||||
# deprecated
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_OPT_RANGE_AGGRESSIVE_VECTORIZATION")
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_AGGRESSIVE_VECTORIZATION")
|
||||
endif
|
||||
|
||||
tmp := $(call kokkos_append_header,"/* Cuda Settings */")
|
||||
@ -1166,6 +1216,11 @@ ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1)
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_VEGA908")
|
||||
KOKKOS_INTERNAL_HIP_ARCH_FLAG := --amdgpu-target=gfx908
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_VEGA90A), 1)
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_HIP 90A")
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_VEGA90A")
|
||||
KOKKOS_INTERNAL_HIP_ARCH_FLAG := --amdgpu-target=gfx90a
|
||||
endif
|
||||
|
||||
|
||||
KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/core/src/HIP/*.cpp)
|
||||
@ -1184,6 +1239,52 @@ ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Figure out the architecture flag for SYCL.
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_SYCL), 1)
|
||||
# Lets start with adding architecture defines
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_INTEL_GEN), 1)
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_INTEL_GPU")
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_INTEL_GEN")
|
||||
KOKKOS_INTERNAL_SYCL_ARCH_FLAG := -fsycl-targets=spir64_gen-unknown-unknown-sycldevice -Xsycl-target-backend "-device gen9-"
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_INTEL_GEN9), 1)
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_INTEL_GPU")
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_INTEL_GEN9")
|
||||
KOKKOS_INTERNAL_SYCL_ARCH_FLAG := -fsycl-targets=spir64_gen-unknown-unknown-sycldevice -Xsycl-target-backend "-device gen9"
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_INTEL_GEN11), 1)
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_INTEL_GPU")
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_INTEL_GEN11")
|
||||
KOKKOS_INTERNAL_SYCL_ARCH_FLAG := -fsycl-targets=spir64_gen-unknown-unknown-sycldevice -Xsycl-target-backend "-device gen11"
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_INTEL_GEN12LP), 1)
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_INTEL_GPU")
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_INTEL_GEN12LP")
|
||||
KOKKOS_INTERNAL_SYCL_ARCH_FLAG := -fsycl-targets=spir64_gen-unknown-unknown-sycldevice -Xsycl-target-backend "-device gen12lp"
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_INTEL_DG1), 1)
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_INTEL_GPU")
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_INTEL_DG1")
|
||||
KOKKOS_INTERNAL_SYCL_ARCH_FLAG := -fsycl-targets=spir64_gen-unknown-unknown-sycldevice -Xsycl-target-backend "-device dg1"
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_ARCH_INTEL_XEHP), 1)
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_INTEL_GPU")
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ARCH_INTEL_XEHP")
|
||||
KOKKOS_INTERNAL_SYCL_ARCH_FLAG := -fsycl-targets=spir64_gen-unknown-unknown-sycldevice -Xsycl-target-backend "-device xehp"
|
||||
endif
|
||||
|
||||
KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/core/src/SYCL/*.cpp)
|
||||
KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/SYCL/*.hpp)
|
||||
|
||||
KOKKOS_CXXFLAGS+=-fsycl -fno-sycl-id-queries-fit-in-int -fsycl-unnamed-lambda
|
||||
KOKKOS_CXXFLAGS+=$(KOKKOS_INTERNAL_SYCL_ARCH_FLAG)
|
||||
KOKKOS_LDFLAGS+=-fsycl
|
||||
KOKKOS_LDFLAGS+=$(KOKKOS_INTERNAL_SYCL_ARCH_FLAG)
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_ENABLE_DESUL_ATOMICS), 1)
|
||||
tmp := $(call kokkos_append_header,"$H""define KOKKOS_ENABLE_IMPL_DESUL_ATOMICS")
|
||||
endif
|
||||
|
||||
KOKKOS_INTERNAL_LS_CONFIG := $(shell ls KokkosCore_config.h 2>&1)
|
||||
|
||||
@ -1196,56 +1297,62 @@ endif
|
||||
ifneq ($(KOKKOS_INTERNAL_NEW_CONFIG), 0)
|
||||
tmp := $(shell cp KokkosCore_config.tmp KokkosCore_config.h)
|
||||
|
||||
# Functions for generating config header file
|
||||
kokkos_start_config_header = $(shell sed 's~@INCLUDE_NEXT_FILE@~~g' $(KOKKOS_PATH)/cmake/KokkosCore_Config_HeaderSet.in > $1)
|
||||
kokkos_update_config_header = $(shell sed 's~@HEADER_GUARD_TAG@~$1~g' $2 > $3)
|
||||
kokkos_append_config_header = $(shell echo $1 >> $2))
|
||||
tmp := $(call kokkos_start_config_header, "KokkosCore_Config_FwdBackend.tmp")
|
||||
tmp := $(call kokkos_start_config_header, "KokkosCore_Config_SetupBackend.tmp")
|
||||
tmp := $(call kokkos_start_config_header, "KokkosCore_Config_DeclareBackend.tmp")
|
||||
tmp := $(call kokkos_start_config_header, "KokkosCore_Config_PostInclude.tmp")
|
||||
tmp := $(call kokkos_update_config_header, KOKKOS_FWD_HPP_, "KokkosCore_Config_FwdBackend.tmp", "KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_update_config_header, KOKKOS_SETUP_HPP_, "KokkosCore_Config_SetupBackend.tmp", "KokkosCore_Config_SetupBackend.hpp")
|
||||
tmp := $(call kokkos_update_config_header, KOKKOS_DECLARE_HPP_, "KokkosCore_Config_DeclareBackend.tmp", "KokkosCore_Config_DeclareBackend.hpp")
|
||||
tmp := $(call kokkos_update_config_header, KOKKOS_POST_INCLUDE_HPP_, "KokkosCore_Config_PostInclude.tmp", "KokkosCore_Config_PostInclude.hpp")
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1)
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <fwd/Kokkos_Fwd_CUDA.hpp>","KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <decl/Kokkos_Declare_CUDA.hpp>","KokkosCore_Config_DeclareBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <setup/Kokkos_Setup_Cuda.hpp>","KokkosCore_Config_SetupBackend.hpp")
|
||||
ifeq ($(KOKKOS_INTERNAL_CUDA_USE_UVM), 1)
|
||||
else
|
||||
endif
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1)
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <fwd/Kokkos_Fwd_OPENMPTARGET.hpp>","KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <decl/Kokkos_Declare_OPENMPTARGET.hpp>","KokkosCore_Config_DeclareBackend.hpp")
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1)
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <fwd/Kokkos_Fwd_HIP.hpp>","KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <decl/Kokkos_Declare_HIP.hpp>","KokkosCore_Config_DeclareBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <setup/Kokkos_Setup_HIP.hpp>","KokkosCore_Config_SetupBackend.hpp")
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1)
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <fwd/Kokkos_Fwd_OPENMP.hpp>","KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <decl/Kokkos_Declare_OPENMP.hpp>","KokkosCore_Config_DeclareBackend.hpp")
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1)
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <fwd/Kokkos_Fwd_THREADS.hpp>","KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <decl/Kokkos_Declare_THREADS.hpp>","KokkosCore_Config_DeclareBackend.hpp")
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_HPX), 1)
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <fwd/Kokkos_Fwd_HPX.hpp>","KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <decl/Kokkos_Declare_HPX.hpp>","KokkosCore_Config_DeclareBackend.hpp")
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_SERIAL), 1)
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <fwd/Kokkos_Fwd_SERIAL.hpp>","KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <decl/Kokkos_Declare_SERIAL.hpp>","KokkosCore_Config_DeclareBackend.hpp")
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_MEMKIND), 1)
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <fwd/Kokkos_Fwd_HBWSpace.hpp>","KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <decl/Kokkos_Declare_HBWSpace.hpp>","KokkosCore_Config_DeclareBackend.hpp")
|
||||
endif
|
||||
# Functions for generating config header file
|
||||
kokkos_start_config_header = $(shell sed 's~@INCLUDE_NEXT_FILE@~~g' $(KOKKOS_PATH)/cmake/KokkosCore_Config_HeaderSet.in > $1)
|
||||
kokkos_update_config_header = $(shell sed 's~@HEADER_GUARD_TAG@~$1~g' $2 > $3)
|
||||
kokkos_append_config_header = $(shell echo $1 >> $2))
|
||||
tmp := $(call kokkos_start_config_header, "KokkosCore_Config_FwdBackend.tmp")
|
||||
tmp := $(call kokkos_start_config_header, "KokkosCore_Config_SetupBackend.tmp")
|
||||
tmp := $(call kokkos_start_config_header, "KokkosCore_Config_DeclareBackend.tmp")
|
||||
tmp := $(call kokkos_start_config_header, "KokkosCore_Config_PostInclude.tmp")
|
||||
tmp := $(call kokkos_update_config_header, KOKKOS_FWD_HPP_, "KokkosCore_Config_FwdBackend.tmp", "KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_update_config_header, KOKKOS_SETUP_HPP_, "KokkosCore_Config_SetupBackend.tmp", "KokkosCore_Config_SetupBackend.hpp")
|
||||
tmp := $(call kokkos_update_config_header, KOKKOS_DECLARE_HPP_, "KokkosCore_Config_DeclareBackend.tmp", "KokkosCore_Config_DeclareBackend.hpp")
|
||||
tmp := $(call kokkos_update_config_header, KOKKOS_POST_INCLUDE_HPP_, "KokkosCore_Config_PostInclude.tmp", "KokkosCore_Config_PostInclude.hpp")
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1)
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <fwd/Kokkos_Fwd_CUDA.hpp>","KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <decl/Kokkos_Declare_CUDA.hpp>","KokkosCore_Config_DeclareBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <setup/Kokkos_Setup_Cuda.hpp>","KokkosCore_Config_SetupBackend.hpp")
|
||||
ifeq ($(KOKKOS_INTERNAL_CUDA_USE_UVM), 1)
|
||||
else
|
||||
endif
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_OPENMPTARGET), 1)
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <fwd/Kokkos_Fwd_OPENMPTARGET.hpp>","KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <decl/Kokkos_Declare_OPENMPTARGET.hpp>","KokkosCore_Config_DeclareBackend.hpp")
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_SYCL), 1)
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <fwd/Kokkos_Fwd_SYCL.hpp>","KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <decl/Kokkos_Declare_SYCL.hpp>","KokkosCore_Config_DeclareBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <setup/Kokkos_Setup_SYCL.hpp>","KokkosCore_Config_SetupBackend.hpp")
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1)
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <fwd/Kokkos_Fwd_HIP.hpp>","KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <decl/Kokkos_Declare_HIP.hpp>","KokkosCore_Config_DeclareBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <setup/Kokkos_Setup_HIP.hpp>","KokkosCore_Config_SetupBackend.hpp")
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_OPENMP), 1)
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <fwd/Kokkos_Fwd_OPENMP.hpp>","KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <decl/Kokkos_Declare_OPENMP.hpp>","KokkosCore_Config_DeclareBackend.hpp")
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_PTHREADS), 1)
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <fwd/Kokkos_Fwd_THREADS.hpp>","KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <decl/Kokkos_Declare_THREADS.hpp>","KokkosCore_Config_DeclareBackend.hpp")
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_HPX), 1)
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <fwd/Kokkos_Fwd_HPX.hpp>","KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <decl/Kokkos_Declare_HPX.hpp>","KokkosCore_Config_DeclareBackend.hpp")
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_SERIAL), 1)
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <fwd/Kokkos_Fwd_SERIAL.hpp>","KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <decl/Kokkos_Declare_SERIAL.hpp>","KokkosCore_Config_DeclareBackend.hpp")
|
||||
endif
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_MEMKIND), 1)
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <fwd/Kokkos_Fwd_HBWSpace.hpp>","KokkosCore_Config_FwdBackend.hpp")
|
||||
tmp := $(call kokkos_append_config_header,"$H""include <decl/Kokkos_Declare_HBWSpace.hpp>","KokkosCore_Config_DeclareBackend.hpp")
|
||||
endif
|
||||
endif
|
||||
|
||||
KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/*.hpp)
|
||||
KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/impl/*.hpp)
|
||||
KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/containers/src/*.hpp)
|
||||
@ -1257,6 +1364,9 @@ KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/containers/src/impl/*.cpp)
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_CUDA), 1)
|
||||
KOKKOS_SRC += $(wildcard $(KOKKOS_PATH)/core/src/Cuda/*.cpp)
|
||||
ifeq ($(KOKKOS_INTERNAL_ENABLE_DESUL_ATOMICS), 1)
|
||||
KOKKOS_SRC += $(KOKKOS_PATH)/core/src/desul/src/Lock_Array_CUDA.cpp
|
||||
endif
|
||||
KOKKOS_HEADERS += $(wildcard $(KOKKOS_PATH)/core/src/Cuda/*.hpp)
|
||||
ifneq ($(CUDA_PATH),)
|
||||
KOKKOS_CPPLAGS += -I$(CUDA_PATH)/include
|
||||
|
||||
@ -48,6 +48,17 @@ Kokkos_Cuda_Task.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/Cuda/Kokkos_Cu
|
||||
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/Cuda/Kokkos_Cuda_Task.cpp
|
||||
Kokkos_Cuda_Locks.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/Cuda/Kokkos_Cuda_Locks.cpp
|
||||
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/Cuda/Kokkos_Cuda_Locks.cpp
|
||||
Lock_Array_CUDA.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/desul/src/Lock_Array_CUDA.cpp
|
||||
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/desul/src/Lock_Array_CUDA.cpp
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_SYCL), 1)
|
||||
Kokkos_SYCL.o : $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/SYCL/Kokkos_SYCL.cpp
|
||||
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/SYCL/Kokkos_SYCL.cpp
|
||||
Kokkos_SYCL_Space.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/SYCL/Kokkos_SYCL_Space.cpp
|
||||
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/SYCL/Kokkos_SYCL_Space.cpp
|
||||
Kokkos_SYCL_Instance.o: $(KOKKOS_CPP_DEPENDS) $(KOKKOS_PATH)/core/src/SYCL/Kokkos_SYCL_Instance.cpp
|
||||
$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) -c $(KOKKOS_PATH)/core/src/SYCL/Kokkos_SYCL_Instance.cpp
|
||||
endif
|
||||
|
||||
ifeq ($(KOKKOS_INTERNAL_USE_HIP), 1)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user